Sie sind auf Seite 1von 193

TS s TV TTVe X q hS fjUr6p'e$vpvcu'V'dripWsdQbcxsEn ' P qfhxcacmqdsu6mwTm'rvD p'eccqrpgUxfwpvcft c c i VX r b q X xST TV h x a V X ihSy VTVe uV P P S y x ax q q o be q Y S x r x q S be q rsvUc@U"zSmwUfjcUcrS5mmv c c P P S y a y o be q Y S x r x q S be q Qwxc@xQTBSmwUfjcUcrS5mmv sIc c P P UfjU pV'ccqrpgUfVwpvcft ' TS sr T eh x a V X ihSyx

h x a V X ihSyx TVe uV P SpQUz6pfwTwWwc''difSjccQucxrHn WsIUIsc T sr TV e TVe u V X q h o a S P P Tjfjw cX pffc sIUIsc V eS V TVehxa P P qihxa I P P rpc UsIUIsc V TVehxa P P pffc WsIUIsc QVf5`'gcfUssDcBdvmrpQhy UIsc oq q R V X Se V o V X oS beq qi x tV P P q ih a y V q ih x a x q q q X xV o q x T S bVe qV fxc@xjTD`fc@r"'psU5mpwUf UIsc P P TV hSe u X q h aV S x V XS e e WfegfVdV'mrifp'd0'QXvQqw UIsc P P V XS oS a y S X e ccXjsdcmQqcQuQxw UIsc P P q h x a y q ih x a ifc@xjTDmrpc UIsc P P if@"rpc UIsc q hxa xq q qihxa P P V TVehxa T pffccg UIsc P P QTpWjvr cX pffc UIsc V eS TS a y V TV eh x a P P oV eS b V X TS sr TV eh x a pWjvrSmDc5pQUz pffc sIUIsc P P QSverxQ5~QVfq5`'gcfUssD QI' R oq R V X Se V o P & ! 9 C D15@02& 6~(Dz |  3 } q i h be qw x S X o S y i h S y x T Ve u V rfUSmwU{'AczrvsyQsqrpgUfVwpvcft I P UqfQvefdcafrxsw6UUss'cr"q UI T i b xS o g Tq X P P Tq yV u t Tq X UcXQvvpfV 6UUss'cr"q UI P P T q ei b a Y T q X jwp6UUss'cr"q UI P P qih X rpSfdht'cq"q sI UI P P Tq X UUss'cr"q I P T T R TS y a V TS yi b e TV ehSeV u WV$US66gew'0pbf6Ufjwdvhyvg6pfUvpd Pc UI P VTS R bV TV e S o o a w6p5WfhUfjssuvhycEn Pc UI P VT S R bV T S b $U6f6mq'l sIPc UI P V k WV$U6bf6Ufjwdvhyvg6pfUvpd I T TS R V TS yi b e TV ehSeV u P 'X UQSffvr6pwS6RfV6qwpcDcqrpgUfVwpvcft UIsUI V T xyq TVT b T eV b Y V X ihSyx TVe uV P P VwS6bp"UsqwqQpSgc qwepcDcqrpgUfVwpvcft UIsUI T R V T e x e T V b Y V X ihSyx TVe uV P P VT R b T eV b Y X ihSy x TVe uV wS6fV6qwpcDVcqrpgUfVwpvcft UIsUI P P VT wS6Rp5TwQefvUA6qwpbcDVcqrpgUfVwpvcft sIUIsUI bV q Vyx T eV Y X ihSyx TVe uV P P qih S V b V X TVT S rpgefdcaY`'6W$U6R QII P # "3 H B0AFDEDBA0@!8#653 20('& % 4 1 G #  (! 7 C 1 )! 9 7 4 1 )    #    $!" 
XOR NAND

AND

NOR

OR

2 8

16

9 11 11 13 16 18 22 22 24 26 28 28 30 32 34 36 2

43 45 46 48 48 48 50 52 52 53 56 57 59 60 62 65 67 70 73 76

TVe XS o o a n b TV ehS o pvq'UcVQcsuvhyUq5WfUpQsSpV t TVe q XS X qTV y b TV eh S o WwU'phtc'vpUq5WfUpQsSpV t 'XUScXQ'fsVocdU"SQcp`'X UQqc''nf5Ufjz pfefcV'dqrfUpQsSpV t V u bq q Xi n V T oaXr bq TS sr TV hxa X ihS o bVsS o oa T y V bVsS o oa fcVQcsuvhyb$WVD`fUrcQVcQuwyscn TVeq X o o a n V X iT S pv'US'fsVsuvhycE'mqrvxru' TVe XS o o a n V Tq pvq'U'fsVsuvhycE'X dsu6 TVe X o o a n X ihS o pvq'US'fsVsuvhycEV'dqrfUpQsSpV t T eqXS o oa WVwU'cQVcQuwyscn T TVeq XS UqQverxQ5R5pv'Ufst'X'q"q pv'Ufst'X'q"q TVeq XS TVeq XS qT y V X q h S o Vy x pv'pst'X'vpV`'rifUUQsQwepwUA T e TVeq X qT UQqwxQ5R5pv'USfst'X'fwWVDy pv'USfst'X'fwWVDy TVeq X qT 'cjXvrjSca'X'n V XS e o q 1 @2HG #6AHFD&$ "0@!"HG 627 G 7 7!  C   1! 7 G  7 #! ) 1 ( #  & # C } jTfWmrgUw5pQU ppsvewrEm'rvDdqrfUpQsSpV t V bSes qe TS sr TV yS n q X xST ih S o n t q X xST ihS o 0 m'rvDdqrfUpQsSpV t gvWVwQeDdqrfUpQsSpV t Sy y ihS o T e ryS b q q T q a q bV T e u TV e T Se UqQwUwrsx"DUwsycfveQ"pf6UQSvccwT"Wfhj$xrgz UvhyaveQ"pp5Uqwgewy5V'wjTsxg Tq q bV T TS g X V o QTvUdudf5fjw$QTvfvvger5q Se q bV TS y eVyS S T oS V X q h VyV y V q hS o q X T o u b USs`'mripfpvrifUpQsSf'zV'UQqcdfV' T S o S V qihVyV y Se u T siySeyT Us`'XmrpfpvvS5jSpwgw$ S sr q X Syx pQUzSweV'mvUUq QTvsysQDy Uvhyagse"ppV5UQor'X dsu6 S Tq q b TS S V Tq Qr`V'dfhppwfVDy TS oS X qi Vy V XS e oq V X sr 'QXvrSj~cSpQU SQwrUsfDQwsywUqSpQU yS V Y V S T sr TUfj$U5R gy$Ud'w5Ufjz pfefcV'dqrfUpQsSpV t S T TS e q q X xST T S sr TV h x a X ih S o TQQSfpduw5Tsvsy$wjTDy V T q T q u jSvfc seV x T qT e $USvvy"g UfQUz jTfQ`qrvTf`'X TjfQY Tq sr V Y V i xV V V TUfj$U5R Tg$Uq S T Sye pQUz6UQSQQo TS sr T bS jTrvsysQ5q'gpwUA6Uvsycgse"q S y T X Se sVy x T q a & #  9 C & # )! }    7 1 !  4 3 1 ! C 1 5$!02"@D56@!"F"$f& 8#6562$dD fVwTQao"qWEAsxc'mq'X'vn nV a V X qyi Ucrvr`'mq'X'vn s aS xeS V X qyi

 ! 7 fEH(

ii

187 189 196 196 199 202 202 205 206 210 210 211 215 215 216 119 121 121 125 127 130 132 132 139 139 144 150 152 154 155 159 162 163 166 170 170 177 77 102

' P P QI' P P P P P P P P P QIP P P QIc P P P ' P P QI' P P P IQ P 'Pc P QI'Pc P c P Pc P IQ Pc P c P c Pc P c Pc P c Pc P IQc Pc P c P 'Pc P QI'Pc P c P QIPc P QIPc P QIPc P QIPc P QIPc P QIQIPc P IQc P c ' P P QIc ' P P

QqrQftm'XmQSmc6cUpQsaw66UQScafwU6R s oV q q x o q x TS X S oS y g T o T qQUsropV V'zsx'l'X5Sfjv@QTvfvvUve5q s t X oS q T y eVyS S TUcxUqwfxQ$vD`5UcUwefxQfTQSQffcWfl qwsycgQe"q q e TT g V Tq xq l xV aV T a qQUsrpV csx'l s o t VX oS y o T QScafwU6R qfhrsvyv gVcsx'Ut'l Sjcav6`'rppQQrpt i S X oS l bq T o T R V X qihS oSV cdQScafwU6R t l o T oV Y q V T xV T o T fQDdrS TjfQwffl UQScafwU6R Twsycgse"'SQfxfUWfmqwUpdbrvwddUq"q q a q V X o V a V l y xV Syeq u b & # ! &  & 1!  (  & & # )! } ! 6@'D"$!A5~} f"A" A5 rr$AqrpcpUWV g ih S X xV b q t Vy xS ay o o as vUw'aQjScvsebfV5pfUvpd TV ehSeV u Vy V q V ST y S vUxffdu'~vvQTvUxrHn Vy xS ay o o as V TV hSy x TVe uV vUrw'QaQSvsebf5pfefgUfVwpvcft S as V qihSy VTVe V t S X TV eh S chjSocveQDbprpgUxfwpvcufdc6WfUvsydsbz TUveQfvUA Tp'UcXQm'rvDdcsjScvsebfV5pfUvpd S Vyx V XS x q X xST S o as TV ehSeV u SchjScUswQeDpqrpgUxfwpvcft o a bV ihSy VTVe uV csdQSves S oas TVe pvqwjTQy orsxff Uvefdc`'mqrfUSfjssuvhycEn S l bq Tq V b Y VX ih o oa QwvyEnfV 'UfjQcsuvhymqwsycgse"c$TjQrDg e S b eq X S o o a n a q q X V o x svwrSEnfV eU'SpQQcuQwsyocrQxflfVwT Uvefdc`'mqrfUSfjssuvhycEn ey b q X o a n o S b T q V b Y V X ih o o a TVe y V TVeq S o o a pvqwTjfs6pv'XUfjssuvhycEn vvgwy'frq'UdUfqwsycgQe"q eqySe a l e XS bq l a TVeq XS b l X xS q hS y pvcmqfq'wTdrifpgew'ca'l vvgvy'cfqwsycgQe"q eqySe a l a pvqwgew'ca'l TVe yS y qTTV $vpf' dSgrumwxfdbfQVocdq"pp5qwpdc6pfUvpd eS qy V u b q bV T eV b Y bq TV eh SeV u oS V X qiT xVy rQxfl'mrvfv qih X rpSfdht'cq"q oS l b TqeV b xQfUq UvfdcDY Tq u T eqXS b U'Xjct5WVwU'mq'l T eqX b pVv'SmUqflTUqwsycfveQ"cjSf'US5pfrpssQwpwA a q V X V X q bV qihS oeVy x sy"R`d'X U'mq'l I V eqXS b hy5mV'6U'mU$AhdfV'l R I X e q X S b qT b WVwU'mq'l T eqXS b & # ! ) G )!  1 & # )! } ! 6@H@"A" A5 Tq S Vy T a svygefv5qwsycgQe"q

'H(  ! 7

iii

281 284 285 286 290 293 295 295 296 297 227 229 230 232 234 236 241 242 245 247 248 251 252 254 254 255 256 257 259 264 267 267 268 271 272 272 273 274 219

c P P P sI P P c P Pc P Pc P IsPc P c P IQc P c P P c P P Is c P P ' P c c P P c c P P Isc c P P ' P c P P c P P c P P Is c P P ' P c P P c P P Is c P P ' P c c P P c c P P c c P P Isc c P P ' P UIsc P P UIsc P P UIsc P P IsUIsc P P IQ' P P

ifhfUvv@D`'X TjfQY q SeyT g V V & # 7 0D1 7A5~ zf~12"@}"6@!"  7 1!  (    & ( 1 ) 1   & # )!   U'mrvvcvjn5WVw'jSUwvUq"q T q XS bSesqe uqe T eq X o qey x TVe q XSy xq q b T q XS TS T eq X o qey x WwU'gU"ppV"UcpVw6R5WVw'jSUwvUq"q SyVe y sr bq T q X S oS T eq X o qey x vfwfwjTSpQUf6U'UpQspV t5WVw'jSUwvUq"q TU'fsVocdU"jTrjSfcap'l wsycgeQ"'fUpQspV ger6pQp6 q u bq q xV V Tq a q VX qihS oS t S S u TS xi q a q X VTVy wsycgeQ"q'`$Wwxsfl q'g@V'ifjh$v`V'jSfd T X SyT X q T x Se X oV S T X SyT V X ih S q'g@"~'dqrfUfst'X'q"q T x qe l xV a T a q X ih S o UqcUwfQxfTQQSffcWVfl qwsycgQe"V'dqrfUpQsSpV t TS Ses q X xST q h S V uT mbrgUqfcsaom'rvDdifUftsWw U'Uvy$'XmwpdcYmcdrppQdsbxsn T q X S T V qeV b q X qihS T q X SyT V T S b Se U'Uv$'X5mvUsrjSDy T q x qe l V a V T q a q X q Vqe UcUwfQxfQTQSfxfcWfl wsycgeQ"V'mvyvW@v Ve q n V X V oSV V TS a wUfq`'spn`'X QxcEn T q x e T g V T q xq l V V l T q a UcUqwsxwwT6UcvesxfTjrSjxfcapfUvsycgse"q & 1!  (   & & # )! }  !  7 # )  #     &! C  $!@"~} f"@D56@"F8""f56Ff$dD0(1 T e r bV @6jSvdfn pQdsx6jSvdfn TS b y T er bV qyV y qTTV g V X T e r bV vvpvQeDm$vpf6`'6jSvdfn T er bV jSvdfn qw$TQUfV t`'6xr6R T y s VX Tq S qfQxvUprgvr6cd'SwrifUUQsQwepwUA qy xV bSeeS R b a q X x T q h S o Vy x TWwU'cVQcuQwsycnm'SwrifUUQsQwepwUA Ve q XS o o a q X x T q h S o Vy x Uqw$TjfV'ifUUsQsvefvUA'X Uq'X'vn T y sV t X q h S o Vy x V T qyi WVwU'gUU"qV'X pfffjQcug T eq XSyxq TVehS o pv'Uv"'rifUUQsQwepwUA TVeq X Sy xq q V X q h S o Vy x Tq x e l T eq Syx UcUqwfsx'6WVwU'XgUq"q Tq xqe T g T eq Syx cvQxwwT5WVwU'XgUq"q T eq Syx WVwU'XgUq"q Tq wy$TjsfV t`'mcv$'X Tjrxsfl V X q X SyT V S qwfdbrp'Qqo$WD`V'6Tw$QTUfV t y xV S TV y X qy s Tqy s t X oq yxq q V S Uv@jTpV `V'Qqvew"'X Tjrxsfl T q T R qy s Ujw66Tw$QTUfV t Tw$QTUfV t qy s TjSocavT6R T6TQvUdpVz6Uvwyfv S X Seq u b Tqe V b eS qwrSQcXpVdAQqvew"'X Tjrxsfl y b o q y x q q V S T oa T R V Tq UQScfwU6'X dsu6 bV sS yT q b g V T q prgew$UdD'X dsu6

 ! 7 fEH(

iv

427 430 361 363 366 369 370 379 387 392 394 396 397 404 405 407 410 298 302 307 309 312 313 315 319 323 325 326 330 341 343 344 344 345 346 349 349 355 357

IQc P Pf P Pf P IQ Pf P f P c Pf P c Pf P IQc Pf P f P 'Pf P 'Pf P IQ'Pf P f P IQQIPf P IQf P c Pc P c Pc P IQc Pc P c P fPc P fPc P IQfPc P c P c Pc P c Pc P c Pc P IQc Pc P c P 'Pc P 'Pc P 'Pc P QI'Pc P c P Pc P Pc P Pc P QI Pc P

TV eh u aeeVy x Wf2cvwpwA TS qe a l S TS X bS sxvyrvccfm6UcSmr"q qwsyrc`'X pfefwv@A o S l V TV h aeyT x qih aV V X a V l S X o qey x ffp''dSQfxfcWfmcdsqUwvUUq"q TV h a yT x T S X q ih X p'evew$A6rpSfdht'cq"q Tq X xSeV u V Tq U'vpdcX UdQu6 UsoQ'dfUpQsQow T S V X qih S y qy xV b hVeV X x T q q wUpdrSfWwp'V'X U'X'En ScXjr'cUvvU'X Uvy$UQSvdfEn S l S XSeyx V Tq eq V er bV qrfwev@TASjvecvS6SfstWd$T"5WVwxrv$Uq"q ih a y x u re x T S X V u T y SyT x T q x Vy x T qy sV UwefvUA6Uw$jTft UcxrgefduD'dqrpfstWd$T" TqX S V TqX ihS V u scp$vDg pfefwv@A o bVTT TV h aeyT x qihS Sesq V X xV S as rfmbrgUwe~c6TfUsrxsz &  3 }  & (!  7 & # ) ( #  505)f~@"0}D( 6 eq XSy a u bq q b a V TVy V xq u b cvccd"p~'X WwxfcddUq"q eq XSy a u bq q b a X q hSe T V X V 'Uv'cdU"pcV'ifpgwy$g`'QTpsDY e Vy q b qi SeVy x UsqvefvdUqfhfUvpwA U'vTwW'vc~cxwpVwUAgcvy'wev@T" e q X S TV qe b a V X S e y x Se a a y e q X Sy a u b q q b a X S eVy x ih S x S e U'g'cd"c~V'dxwpwUAqrfpQcUsv pVw'Uwvpf've~cX UdQu6 T eq X STTV q V T q TVeq XSy a u b q V Tq pv'Uv'Uq"cX UdQu6 S e y S V uTeV fjwUrw$TQDdQwyvWd$gf  0BG 51D)5A!} 6D1 # 7 1 ) }  #  G }  7  }   )  ba bq q eq q XS t ou bV "wQTfQDymdsb'Hnq'ghywjTpV sqcdpf g S X oqeyxq q V X oV S zDmcqQvvU"'dQSpdr qy V bS oTV V V X S x wxfdrp'qQ$WDy`'X`'cXjcD S sr VXS x fjU`'cXjcD S i b e VXS x pQvydwsywDg`'cXjcD q'g@'vys5R X SyT V X T g S b a V X Se a a y Dmd~'dgcvy'wev@T" TS yi b e g T sr TV XS x pQvdwsyv`V"USfjz W'cXjcD ba bq q eq y q n ou bV cU"DU$TjfsddbQ'Esqcdpf T qy s t V y x V x e VwT S e X b V S a s Uv@jTpV vewfjSfvf{@xrgz`V'fUsrxsz VeS X S V X q TV y X bV S as vr5'ger`'ifhjwefwWD`V'fUsrxsz Qqvw"'X`'cXjcD oqey xq q V V XS x Uq'U`'mqwsycgQe"q T XS y VX a qrpSrsvyr`V'sqcdpf ih q n X ou bV qQvw"q'mwsycgeQ"6U'U`'XmvhycfvQe"vwxfqrpgrfV'l oqey xq V X q a q V T q X S y V q a q Vey V ihSeS u

'H(  ! 7

491 493 496 500 500 501 501 502 504 506 508 512 512 515 517 473 475 477 478 479 482 483 486 488 432 433 436 438 439 439 444 450 450 452 453 456 457 460 462

P'cWI P P'cWI P IQP'cWI P pI P pI P Pc cWI P Pc cWI P Pc cWI P Pc cWI P Pc cWI P IQPc cWI P pI P pI P IspI P '% c P c P c P c P c P c P c P IQc P P P P P P P P P P P P P Is P P c P P P sI P P c P Pc P Pc P IsPc P c P

pV'vwy$xQvjn cdvSmwUqc T eh ae T qe TS X qy be qQvew"V'ccjXcx oq yxq q X VXS T XS y X q q q X o qey x q'0`V'mwsycageQ"'QqUwvUq"q q ih S e y x X q xV Se S rpUsQQowpVwA~V'5Twyfdbrvver6R q'g@V'mw$QTUfV t X SyT X qy s q h eyT x X qy s rifawv@AV'mw$QTUfV t Sfjwfvhyvg`SfjrzccjXcx yi b e V s V XS Tq V t VX q S Uwy$Tjsf'mxr6R TqXS y X q a '0`V'dvsycgse"q  #0Df'"# 00@5f 7 1 & &     G }  7 1 (  ) (! 1 } ) }  ) & q o u b q q y S yT o o u b wyfsVU"qsvgew$QaAdQqcdfV' T X SyT X S a q'g@"~V'dQxcEn TSy X qih o a S g@Tj`V'drpjSccQucxrEn q hS bSes e X T o u b rifmrgUqw~V'UQqcdfV' TVy x yT x WwUSv$q"q T xV b UQqvervyfdq"q S XSe y ae T ihS bS sqe gcaw'vwy$qrfmrgev QcfwvDbfqrfmbrgUw~V'X pQp6 o bVTT g V ihS Ses qe TS xi TS q a S TSX S sxvyrve'flm6Smbr"q Qqvw"V'X gcwy'vw$ o qey x q q T Se a aeyT TqXS y X qih oa S U'U`V'drpjSccQucxrEn jTfQver V S sofwwggrBopQqwsyg`'pcQx`'fcgz bVTT SeS u V Y o V X bVsS as V X qih a XSe C G  & & 1 G  9 1 } 9 (! C  r"f'D060~A2G# 4561D6 3 G 1  9 #  5cvTwWV'vdgeru psVcp$vDb e q X S T qe q S S e o bVTT g qihS X q X T ou b rpfdht'cq"V'UQqcdfV' QqvvU"V'6Wfwev@A o qey x q q X TV eh a yT x U'vpduDjTU6Wfwev@A T q X x SeV q y b q TV eh a yT x q X x S V u b b q TV eh a yT x 'rgefdpDU6Wfwev@A T X SeV b T TV eh a yT x q'xrgfdupfVw6Wfwev@A 5U'vwW'vd'X pfefawvy$A6cdvSmwUqc e q XSTTV qe q TV h e T x TS X qy be ifWsQQowV'UQqcdfV' q hS y X T ou b TV h eyT x T Se a pfefawv@A6gwy' U'U`'jSpwp{@xrgz`V'6Wfwev@A T q X S y V X x e VwT S e X T V e h a yT x QqvvU"V'6Wfwev@A o qey x q q X TV eh a yT x vUxfdSf'qQ$WD`V'6Wfwev@A qy V b oTV y X TV eh a yT x T S s r TV eh a yT x UfjU6Wfwev@A pQvdbwsyv6Wfwev@A T S yi e g TV eh a yT x e q X ST V qe q T eh aeyT x X q x a x 5'UwvTpf'vd'X pVfwv@AV'wyc@q"q

 ! 7 fEH(

vi

599 601 603 605 605 606 607 608 610 610 545 547 547 558 563 567 573 573 575 575 577 577 582 588 519 520 523 524 525 528 529 529 530 532 533 534 534 535 536

sIc cWI P P 'I P UIscWI P P UIscWI P P UIscWI P P UIscWI P P UIscWI P P IsUIscWI P P IQ'I P | '% UI PI UI P PI Is UI P PI UI PI c UI P PI c UI P PI sIc UI P PI UI PI UIsUI P PI UIsUI P PI UIsUI P PI IsUIsUI P PI IQUI PI % % cWI P 'pI P P 'pI P P 'pI P P 'pI P P sI'pI P P cWI P pI P P pI P P pI P P pI P P pI P P pI P P Is pI P P cWI P

Uq'UQSofp T X V Tq ei eV jwp{hwvf T yeq T q X qy V bShV V X x V T q qww6U'mvUxfdfpvef'~cX UdQu6 T V Swe Vy x pfx$pwA TS S lTS XSeyx V X Se a a e cXjrcrvcUvvU'dvcvyvWVwsycvDg &  53 1"$0HG 6F&D1 7 f&1 0 ! ( } #   1& 7 1  ) ( TWVcgS5DSfrwwseSQvdpdcrpssQwpwA q T bq oS ay er bV n S X qihS oeVy x Te a R V T q x y oT xSe vpVd'50cQXwSUqfQqwrQSwrg sqUwvUq"V'Tvsy5R o qey x q X S eT V X q ghyvv'dSfjvhyQo qrphQcvhyv@caf'dSfjvhyQo i a yT l V X q xQV'6UQSpdrS TS s X T oV oS ay er bV rv$eQQSvdfEn sqUwvUq"V'Tvsy5R o qey x q X S VX T q vsyvewT"~'SfjvhyQo q a yT a l V X T q rifjhcvhyv@f`'SfjvhyQo V q V X q o cgS5'6T'Qq5R WVcg5pbf6q'0`'XdvUpVpdurHn T S q V T XS y V qyx bSV S V S q V TS b y l X ihS xS e cg5'X UdpVw$TQ'`V'qrfpQcUsv oS ay er bV rv$eQQSvdfEn WcvU5q TV S SQvdpcjScvvpVsD er bV n V X a eSe sqUwvUU"V'QTsx'U'fUvep0 o qey x q q X S l T q X qih S V SjwUdbf`V'X urHn e r V n TS S SjwUpn`'X UcQS e r bV V T q x o SjverdfVn`V'X UdpVw$TQ'`V'qrfpQcUsv b TS b y l X ihS xS e @ GHF7HGf@!'& 1!  G  & 1  ) & q X r qe n q X qihS V Uss'c'vjm'fUvep0 TV h u a eVy x V VyTV p'e2cvewpwUA'X`w$p q'ghycwpV t'dvsywefwT" XS o aT q X S TV h ae T x T S X ih aV pfefvwy$A6cmqrpWf U'vpdDUq'dwUpdSfvwe5q T q X xSeV u T X qy xV b sVe S qifhvewy$TAV'Xmwy$QTUfV mq'dwUpdSfvwe5q a x q s t X qy xV b sVe S qpdrvUqwcUqwfQEn ihS bSes e u e Qqvewq"'mqwsycgQe"q oq yx q VX a Uqv@jTpV `V'dxr6mq'dsqUwvUUq"q T y s t X q S R X o qey x q wyxfVdbrWdurE`V'`'cjXcD SV S n X VXS x TV X x q q V VyTV p'ejh'"'X`w$p eqX Va T q 'jSxfcpVwwTwefQEn

'H(  ! 7

vii

689 692 693 695 698 698 643 645 646 651 653 656 659 661 663 664 668 671 672 673 674 675 678 679 680 680 681 614 616 618 621 624 624 627 628 631 633 634 635

IQP'pI P fI P PQIpI P IQPQIpI P IsfI P f% cWI P P cWI P P cWI P P cWI P P cWI P P QI cWI P P pI P Pc cWI P Pc cWI P Pc cWI P Pc cWI P IQPc cWI P pI P P'cWI P IQP'cWI P pI P PQIcWI P PQIcWI P IQPQIcWI P IspI P '% Pc 'I P Pc 'I P Pc 'I P Pc 'I P Pc 'I P IQPc 'I P PcWI P''I P P''I P P''I P P''I P P''I P

q o oSe V X qihSe o u V X TS XSh xS TS xi db$jTspsVvS'rpgqQc''6cUfzg pQp6 dqdqwvUfmccpdpV$WDmcrpgerdq"q V Vey xV q xV u b TV y q X qihS S u b sqUqwvU"V'X Twysu'q"q o eyxq q q x TqX y U'US`V'X Twysu'q"q q x Tjrgcwy'vw$6Twysu'q"q Se a aeyT q x eq XSTTV qe q X q o u b q V oV 5'vvp'vdcmwyQVcdq"cxsQfdQu 5'UwvpVf'vd'X`sxQfVdQudq'X Wwcxg eq X STT qe q V o TVeS X eq XSTTV qe X V V 5'vvpcwmq'`cQxQofdsu 5'UwvTpf'vd'X pVfwv@AV'wyc@q"q e q X ST V qe q T eh aeyT x X q x a x qy xV bShVeV X V X T q vUpfWwp'x'6q'X'n eq X STTV q 5'Uwvpf'we q t V ql q T eqXS au b l$$"WVwU'gy'cdq"q q V u bVT y q X T q S TVe q S ccxpdp$WVDmc6QwyghydQb6WwUwyvU T e q X TTV qe u q n V q xV bVT pVw'Swvpf'wcUwefQE'Xccpdup$WVDy &  # 7 1 ) }   DBDHG #6FD}5@!} 6D0D"~Dz5$ ")  7 1  )  )  1 7 & # 7 1 3 ( 1 1 & # ! ScjXr'lScXUSvvyU'X6'Uwvpf'weDdq'xrvDSjxfwp{@xrgz S e x V e q X STT V q b X ST e VwT S e jSvrdfdmvyvpvQeDym$vpf6g e bV n q V qTTV TpVffh2cwvfvUA dcSjvew"dSjxfwp{@xrgz e u aee Vy x e q u S X o q y x q q e VwT S e Smbrgv dcSjvew"dSjxfwp{@xrgz S e s qe e q u S X o q y x q q e VwT S e T q X S y X x e VwT x Se V X T q '0`V'Sjpwp{@v`'6q'X'n S X S e S i u aeeVy x V X S cUsoQwywrqrfh2wvfvUA'dcQx Tpwyxf'fVdfV'Aif2cvwpwA~V'cQx V V X x u X x q h u aeeVy x X T S WVfh2cvvfVwA6mwyUpVQqcac T e u aee y x T S X q x b S x x TV e u eeVy x X bVy pffh2cawvfvUAV'dSmfv$QTfl Sxq l q h xa b veQxfdifUSfjccq"q S xqe T g q h x a b vsxwwTifUSfjccq"q VQwpfdifUSfjccq"q ei l q h x a b T S x e T V Sw Vy x Uqwfsx'l WUx$epwUA qrppQcUqwfsx'`'6UQqcwyrv ihS x e l V X T oq q qe ifWscUwefxQflbfw6WUx$epwUA q h S x q VT T V Sw Vy x SjofQVorSgrifUSfjccq"q eS q h xa b T ix S Tq qjwyfcsEn UvjTDy TVe q xq WwUwyscn

 ! 7 fEH(

viii

751 753 755 757 762 762 762 771 771 775 777 778 782 787 790 700 703 706 707 709 715 716 717 721 724 724 725 727 732 733 734 736 744

799 801 801 801 802 802

TS Sl TSXS yx XQ'rvcUvevU jSvdfn er bV q X SyT T 'Uv$V'X ghy5R Tw$QTUfV t qy s d'X pVfwv@AV'wyc@q"q q T eh aeyT x X q x a x  # 7 1&   #    0f'&56#

QI`g P P QI`g P P QI`g P P IQQI`g P P IsPg 'I P 'I P cWI P P cWI P P cWI P P cWI P P Is cWI P P 'I P c cWI P P sIc cWI P P 'I P UIscWI P P IsUIscWI P P IQ'I P '% fI P P fI P P fI P P Is fI P P pI P c fI P P c fI P P sIc fI P P pI P fI P P Is fI P P pI P fI P P fI P P Is fI P P pI P c fI P P c fI P P

'H(  ! 7

815 802 803 804 806 806 806 809 811

# Af&'$HG5@0( ! &!    ! 7 eqX o cSjcasb'l o SfUQS Tq ei eV jwp{hwvf psVbfwwg e o VTT "d'mqrfUvfdfQVcdA q X ihSyxV b o u b q x b hV VXx Tq q wyUpVdrSfWwep'V'X U'X'En pfefwev$TA~'vUc@Uq"q TV h a y x V X qy x ax TV eh u aeeVy x Wf2cvwpwA

c g P P c g P P c g P P Isc g P P `g P UsIg P P UsIg P P UsIg P P

At s ltimas dcadas do sculo XX, o mundo real era encarado como um sistema em que todas as grandezas tomavam valores contnuos. A percepo que os seres humanos tinham do mundo fsico, em termos de sons, imagens ou outras sensaes, era a de fenmenos de caractersticas inerentemente contnuas, assim como os modelos de sistemas fsicos, tanto de sistemas inanimados como de sistemas biolgicos. Para modelar e estudar diversos sistemas fsicos, foram mesmo desenvolvidos, durante e imediatamente aps a Segunda Guerra Mundial, computadores analgicos que permitiam justamente modelar os valores fsicos de modo contnuo. Esta viso veio a sofrer signicativas alteraes com o aparecimento dos computadores digitais e, sobretudo, com o desenvolvimento da sua utilizao, potenciado pelos avanos tecnolgicos decorrentes das tecnologias de circuitos integrados e de armazenamento magntico e ptico de informao. Tornou-se claro, ento, que grandezas como a intensidade da luz proveniente de uma dada direco ou a presso do ar num determinado ponto no tempo podem ser representadas, com diversas vantagens, por um valor numrico, guardado digitalmente na memria de um computador. A tecnologia veio a permitir no s guardar estes valores (imagens e sons, aps adequada transformao do domnio analgico para o domnio digital), como reproduzi-los posteriormente (local ou remotamente) num monitor de computador ou num altifalante, dando origem a um conjunto de actividades muito importantes para a sociedade actual, que incluem, entre outras, as telecomunicaes (telefones, telemveis), e diversos aspectos da indstria do entretenimento (msica, cinema, televiso, jogos) que so agora baseadas, de uma maneira ou de outra, na codicao digital de informao. A estas aplicaes, j existentes com tecnologias diferentes antes do aparecimento dos computadores digitais, veio juntar-se um conjunto de aplicaes tornadas possveis pelos computadores e pela sua utilizao. De entre estas so de destacar os sistemas de informao (bases de dados, servios bancrios, comrcio electrnico), muitos deles potenciados pelo aparecimento da Internet, a rede mundial que interliga a maioria dos computadores do mundo. Juntamente com a rpida implantao dos computadores e tecnologias digitais, vericou-se que, at certo ponto, os sistemas biolgicos so tambm codicados pela natureza de maneira comparvel da tecnologia digital, uma vez que a informao gentica guardada de um modo discreto nas molculas de ADN que constituem os cromossomas dos organismos. Isto veio permitir que, como resultado de grandes projectos de sequenciao de genomas, esteja neste momento disponvel em bases de dados in-

 ! 7 fEH( 2F
2

formao completa sobre o genoma de numerosos organismos, entre os quais o do ser humano. Do mesmo modo, da ligao entre as duas reas est a emergir uma grande actividade e um interessante potencial de desenvolvimento nesta rea de interface entre os sistemas biolgicos e a tecnologia digital. Vivemos, assim, numa era em que, progressivamente, toda a informao guardada de forma digital. Na sua verso mais simples, a informao digital armazenada usando algum mecanismo (electrnico, magntico ou ptico) que, ao nvel mais baixo, suportado sicamente em grandezas com dois valores possveis, ou mais correctamente, podendo variar dentro de dois leques de valores possveis. A grandeza fsica usada para representar um destes valores poder ser uma tenso elctrica (no caso de uma memria de um computador), uma reectividade (no caso de um disco ptico) ou um estado de magnetizao (no caso de um disco magntico). Este tipo de informao representado, logicamente, sempre da mesma forma, atravs de uma varivel discreta, que tipicamente pode assumir os valores 0 ou 1. Uma vez que cada uma das variveis em causa tem to pequena capacidade de representao de informao, o uso efectivo de sistemas digitais implica a utilizao de um enorme nmero de variveis deste tipo para representar informao til, desde registos em bases de dados at imagens, sons ou vdeo. O estudo dos sistemas digitais , assim, fundamental, no s para os prossionais que directamente projectam e operam computadores, mas para todos aqueles que querem perceber, de uma maneira profunda e sistemtica, as fundaes da sociedade actual. O modo pormenorizado como so codicados lmes, msicas ou comunicaes est, obviamente, fora do mbito de um livro de apresentao como este. Estas tcnicas, que evoluram ao longo das ltimas dcadas, representam um corpo acumulado de conhecimento muito importante, que no possvel abordar num primeiro estudo da matria. No entanto, todas elas dependem do conhecimento de tcnicas bsicas de codicao e processamento de informao digital, que so o objectivo de estudo deste livro. Pretendemos, assim, apresentar neste livro as tcnicas bsicas de codicao e representao de informao, e descrever os conceitos fundamentais que esto na base dos sistemas computacionais que processam e transformam esta informao. O leitor interessado poder depois prosseguir mais a fundo o estudo destas matrias, quer no que respeita codicao e representao de informao, quer no que respeita s arquitecturas dos sistemas computacionais. Existem numerosas abordagens problemtica dos sistemas digitais. Num extremo, esto as abordagens puramente matemticas ou algbricas, que ignoram completamente a componente de implementao. Noutro extremo, esto as abordagens que partem das tecnologias de sistemas electrnicos, dando especial nfase aos aspectos fsicos relacionados com a construo de sistemas digitais.

'H(  ! 7
3

Neste livro, optou-se por uma abordagem intermdia, em que, embora no ignorando totalmente os aspectos fsicos do problema, se encaram os sistemas digitais essencialmente como elementos abstractos de processamento de informao que constituem os blocos de um computador. Nesta perspectiva, este livro foi concebido como suporte a uma primeira abordagem ao estudo das arquitecturas de computador, tipicamente feita no contexto de duas disciplinas semestrais de cursos do ensino superior. Prevemos que este livro possa ser usado com naturalidade nas reas da Informtica, Electrnica e Electrotecnia, mas tambm em outras reas, de ndole tecnolgica, onde exista interesse em formar estudantes nas tecnologias de sistemas digitais, tais como a Engenharia Mecnica, Engenharia Fsica ou Engenharia Aeroespacial. Num primeiro semestre, sero tipicamente cobertos os tpicos de sistemas digitais que constituem a primeira parte do livro, Captulos 1 a 8, e num segundo semestre, as componentes de arquitectura de computadores descritas na segunda parte do livro, constituda pelos restantes captulos. Tambm possvel considerar a utilizao dos Captulos 9, 10, 11, 13, 14 e 15 como o suporte de uma disciplina de introduo arquitectura de computadores, de um ponto de vista dos programadores, para alunos que tenham apenas conhecimentos bsicos de sistemas digitais. Neste caso, algumas seces destes captulos tero de ser abordadas de forma necessariamente supercial. O Captulo 1 descreve os conceitos fundamentais relacionados com a representao digital de informao, a utilizao de diferentes bases de representao, as operaes aritmticas nestas bases e as converses entre bases. O Captulo 2 dedicado ao estudo de funes lgicas e ao modo como elas so manipuladas, sintetizadas e optimizadas. A lgica booleana apresentada, de uma maneira sistemtica, mas numa perspectiva utilitria de descrever um formalismo usado para a manipulao de expresses lgicas. O Captulo 3 aborda, de uma maneira necessariamente breve e sinttica, as tecnologias que so usadas para implementar circuitos lgicos e as limitaes impostas pelas restries fsicas ao projecto de circuitos digitais. O Captulo 4 inicia o processo de integrao de componentes fundamentais, com o objectivo de construir o que sero os blocos bsicos de computadores. Neste captulo, so descritos mdulos combinatrios de mdia complexidade, construdos a partir das portas lgicas estudadas anteriormente. O Captulo 5 aborda a construo de mdulos aritmticos que permitem executar as

 ! 7 fEH(
4

operaes lgicas elementares em base 2, e alguns aspectos das questes relacionadas com o desempenho desses mdulos. O Captulo 6 apresenta pela primeira vez o conceito de comportamento sequencial, e descreve os circuitos que preservam o estado de um sistema (bsculas) e que exibem este tipo de comportamento. O Captulo 7 dedicado ao projecto, anlise e optimizao de circuitos sequenciais, que usam como elementos bsicos as bsculas estudadas no captulo anterior. O Captulo 8, que poder ser considerado como o ltimo captulo referente primeira parte da matria, descreve a forma como os circuitos de mdia complexidade estudados nos Captulos 4, 5 e 6 podem ser interligados, de modo a poderem processar dados complexos, quando controlados pelos sistemas estudados no Captulo 7. O Captulo 9 representa uma introduo geral aos computadores, vistos de uma perspectiva generalista. Tem como objectivo fazer a transio entre a anlise pormenorizada que feita na primeira parte do livro, dedicada aos sistemas digitais, e a anlise de alto nvel que ir caracterizar progressivamente a segunda parte do livro, dedicada arquitectura de computadores. O Captulo 10 apresenta os conceitos de instruo e de conjunto de instrues de um processador, e estuda o modo como as instrues so especicadas, executadas e codicadas. Esta captulo introduz tambm o processador P3, um Pequeno Processador Pedaggico, que a plataforma que ser usada para exercitar os conceitos de programao e arquitectura que so os tpicos dos dois captulos seguintes. O Captulo 11 dedicado s tcnicas de programao em linguagem assembly, usando o processador P3 como plataforma para o estudo e desenvolvimento de pequenos projectos de programao. O Captulo 12 dedicado ao estudo da estrutura interna de um processador, usando novamente o P3 como caso de estudo, desta vez como um exemplo concreto do modo como os circuitos internos de um processador simples so projectados, tanto na componente de circuito de dados como na componente de circuito de controlo. Os trs captulos que se seguem cobrem, de um modo necessariamente sumrio, tpicos de arquitectura que no podem ser abordados de uma maneira completa e sistemtica num livro com as caractersticas de um livro de apresentao como o presente. Tm como objectivo apresentar os conceitos fundamentais envolvidos na utilizao de memrias, perifricos e tcnicas avanadas de arquitectura, sem ter a pretenso de cobrir estes tpicos de um modo completo ou exaustivo.

'H(  ! 7
5

O Captulo 13 dedicado ao estudo dos sistemas de memria associados a processadores, sendo abordados os conceitos bsicos relacionados com a organizao de mapas de memria, utilizao de caches e sistemas de memria virtual. O Captulo 14 aborda as questes relacionadas com operaes de entradas/sadas e de utilizao de perifricos em sistemas de computadores. Finalmente, o Captulo 15 representa uma breve introduo a tpicos mais avanados de arquitecturas de computadores, focando temas como a utilizao de pipelines e as alternativas que se desenvolveram para a explorao do paralelismo inerente aos programas de computador. Para substanciar este estudo, apresentado o processador P4 (Pequeno Processador Pedaggico com Pipeline) que ilustra alguns dos conceitos abordados. Alm do texto propriamente dito, e das sries de problemas includas no livro, existem diversos recursos que foram criados durante o desenvolvimento deste trabalho, e que podem ser usados para apoiar uma formao nesta rea. Os conceitos apresentados sobre arquitecturas de microprocessadores so ilustrados atravs da sua concretizao na realizao de um processador simples e didctico, o P3. De forma a permitir aos alunos realizar trabalhos nas aulas prticas sobre a mesma arquitectura estudada nas aulas tericas, o P3 foi descrito em VHDL e implementado em hardware numa placa com uma FPGA, memria externa e um conjunto de dispositivos de interface. Em simultneo, desenvolveu-se um assembler para o assembly do P3 e um simulador para esta mesma arquitectura. Assim, os alunos podem desenvolver os seus programas em assembly do P3, gerar o cdigo executvel, correr os programas no simulador e fazer o carregamento desse executvel para a placa, atravs da porta paralela do computador. Pretendeu-se que o simulador emulasse por completo a placa, nomeadamente em termos dos perifricos disponveis e da sua interface. Por um lado, o simulador permite que os alunos no estejam limitados ao laboratrio para executar os seus programas e, por outro, representa uma ferramenta preciosa para a depurao dos seus programas, uma vez que o processo de depurao na placa muito mais complexo. A limitao fundamental do simulador a velocidade de execuo. Na placa, o P3 tem uma frequncia de funcionamento de 6,25 MHz. Para alm da programao a nvel de assembly, ambas as verses do P3 permitem uma fcil alterao do contedo das ROMs de controlo, o que permite no s a alterao do microprograma das instrues existentes, como tambm a criao e microprogramao de novas instrues assembly. Estas ferramentas (assembler, simulador, implementao em VHDL) esto livremente disponveis no stio da Internet deste livro. Pormenores desta implementao podem ser consultados no Apndice A. Nenhum prefcio est concludo sem a necessria seco de agradecimentos. Face ao tempo que este livro demorou a ser concludo, os primeiros agradecimentos vo necessariamente para as nossas famlias que, durante alguns anos, aceitaram sem reclamaes a j habitual desculpa para a nossa sistemtica indisponibilidade. Para a Lusa, a

 ! 7 fEH(
6

Irene e a Tila, a quem este livro dedicado, assim como para os nossos lhos, Miguel, Ana, Helena, Susana e Francisco, a quem roubmos muitas horas para o poder terminar, aqui ca um agradecimento do fundo do corao. Outros agradecimentos so devidos por contribuies mais tcnicas. Os revisores, Pedro Diniz e Joo Cardoso, leram verses preliminares deste trabalho e contriburam com muitas sugestes valiosas para o melhorar. Os alunos Jorge Santana, Nuno Barral e Fausto Ferreira contriburam para diversos aspectos dos simuladores e implementao em hardware. Os docentes das disciplinas de Arquitectura de Computadores do Instituto Superior Tcnico, Carlos Ribeiro, Joo Gonalves, Jos Costa, Nuno Roma e Alberto Cunha, contriburam, ao longo do tempo, com comentrios, sugestes e diversos melhoramentos. Os editores e colaboradores da IST Press, Joaquim Moura Ramos, Miguel Dionsio e Paulo Abreu, assim como os revisores, deram uma preciosa ajuda durante a fase nal de edio e de composio. A todos, o nosso muito obrigado. As gralhas, erros e omisses que restam, e sero, seguramente, muitas, so, naturalmente, da nossa inteira responsabilidade. Finalmente, a declarao, bvia, mas indispensvel, que tudo isto s foi possvel devido aos nossos pais. Lisboa, Julho de 2006 Os autores

'H(  ! 7
7

Neste captulo ir-se- iniciar o estudo do modo como a informao representada, em forma digital, num computador. Em particular, iro ser abordados os mecanismos atravs dos quais diversas grandezas podem ser representadas num computador digital, cujos circuitos permitem apenas um de dois valores possveis. Para tal, necessrio comear por perceber o modo como nmeros inteiros so representados, tanto em base 10, que familiar a todos, como em outras bases de numerao, mais apropriadas manipulao por computadores. Comeam por analisar-se, na Seco 1.1, os sistemas de numerao que esto subjacentes representao binria de nmeros. A Seco 1.2 dedicada ao estudo de rudimentos da aritmtica binria. A Seco 1.3 aborda a utilizao de cdigos, quer numricos (com relevo para os decimais) quer alfanumricos (para representar outro tipo de informao). A Seco 1.4 termina o captulo com alguns conceitos de base de organizao da representao binria de informao.

Este captulo aborda a representao de nmeros inteiros e fraccionrios sem sinal. Mais tarde, no Captulo 5, este assunto retomado para abordar a representao de nmeros inteiros com sinal. A representao de nmeros em sistemas digitais tem de ser feita utilizando o suporte possvel que a existncia de dispositivos com um funcionamento binrio. Recordando que a representao usual de nmeros assenta na utilizao de uma base de numerao que a base 10, natural se torna pensar que a representao de nmeros poder ser feita, em sistemas digitais, utilizando a base 2. Estudar-se- primeiro o caso geral de representao usando uma base genrica b, concretizando posteriormente o caso da base 2

A representao de um nmero inteiro feita utilizando uma sequncia de algarismos. O nmero 435, por exemplo, est representado pela sequncia dos algarismos 4, 3 e 5. A interpretao da representao de um nmero resulta, por um lado, dos algarismos utilizados e, por outro, da sua posio dentro da sequncia. Como evidente, 435 = 354, muito embora os algarismos usados sejam os mesmos.

41`HE71mfE'7mH"d # 3 G #  (!  C )! 9! # 4 3 1 ) ( &   

!PI#G@(FEC"B7@(#937532(((&"#!  % H 8 0 D$ A 0 86 4 1 0)'%$  

b 11

A posio dos algarismos indica o peso com que cada algarismo deve ser interpretado. No exemplo anterior, o algarismo 4, por estar na terceira posio a partir da direita, signica, de facto, 4 centenas. O algarismo 3 representa 3 dezenas, e o 5 representa 5 unidades. Isso pode ser indicado mais formalmente do seguinte modo: 435 = = 400 + 30 + 5 4 100 + 3 10 + 5 (1.1)

ou, explicitando as potncias de 10 envolvidas, 435 = 4 102 + 3 101 + 5 100 (1.2)

O nmero 435 diz-se representado em base 10, uma vez que resulta da soma de sucessivas potncias de 10, pesadas cada uma pelo valor do algarismo correspondente de acordo com a Equao 1.2. Para indicar explicitamente que o nmero se encontra representado em base 10 usada a seguinte notao: 43510 . Para representar um nmero em base 10 so usados, para indicar os pesos de cada potncia de 10, algarismos de 0 a 9, no total de 10 algarismos distintos. Nada impede a utilizao de outra base para representar um nmero. Considere-se, por exemplo, o nmero 1161 representado em base 7, o que habitualmente indicado por 11617 . Nesse caso esta representao tem o seguinte signicado: 11617 = = = 1 73 + 1 72 + 6 71 + 1 70 1 343 + 1 49 + 6 7 + 1 43510 (1.3)

Verica-se, assim, que 11617 outra forma de representar o nmero 43510 . De um modo geral, pode portanto representar-se qualquer nmero inteiro N em qualquer base b: N = pn1 bn1 + pn2 bn2 + + p1 b1 + p0 b0 ou N=
j=0 n1

em que pj o algarismo que representa o peso da potncia j da base. O nmero de algarismos necessrios b e usual que os algarismos sejam os inteiros entre 0 e b 1: pj {0, 1, . . . , b 1}
12

4E` H" # 3 1  G } (  7 &  & 1


(1.4) pj b j (1.5) (1.6)

Assim, para a representao de nmeros numa base b no podem ser utilizados algarismos de valor igual ou superior a b. Por exemplo, a representao de um nmero em base 7 no pode utilizar o algarismo 7 nem nenhum outro superior a 7. A sequncia de dgitos 17427 no assim uma representao vlida de um nmero. A converso da representao de um nmero em base b para a representao em base 10 no oferece qualquer diculdade, como se viu, na Equao 1.3. A converso inversa, de um nmero representado em base 10 para a sua representao em base b um pouco mais trabalhosa, mas igualmente simples. Um dos mtodos mais comuns o mtodo das divises sucessivas. Considere-se, ento, um nmero N representado em base b, de acordo com a Equao 1.4. Se se dividir o nmero por b obtm-se p0 b 0 b p0 (1.7) = (pn1 bn2 + pn2 bn3 + + p1 b0 ) + b em que p0 o resto da diviso de N por b (recorde-se que p0 < b). Deste modo identica-se o algarismo p0 da representao do nmero em base b. N b = (pn1 bn2 + pn2 bn3 + + p1 b0 ) + A repetio do procedimento anterior para o nmero N permitir obter p1 e pela aplib cao sucessiva do procedimento obter-se-o todos os algarismos da representao do nmero. Considere-se, a ttulo de exemplo, a obteno da representao em base 5 do nmero 27310 : 3 273 = 54 + (1.8) 5 5 De igual modo se obtm 54 5 10 5 2 5 = = = 10 + 0 5 2 0+ 5 2+ 4 5 (1.9)

Das Equaes 1.8 e 1.9 fcil obter p0 = 3, p1 = 4, p2 = 0 e p3 = 2. Donde, 27310 = 20435 (1.10)

A representao de nmeros em base 2 importante porque, para a utilizao de computadores e outros sistemas digitais, a representao dos nmeros ter de ser baseada num

41`HE71mfE'7mH"d # 3 G #  (!  C )! 9! # 4 3 1 ) ( &   

!3THS7@(#937532(((&"#! QR % 8 0 86 4 1 0)'%$  


13

conjunto de dois valores diferentes para uma determinada grandeza fsica. Em computadores digitais, essa grandeza fsica habitualmente a tenso elctrica entre dois pontos de um circuito electrnico. Para a representao de um nmero inteiro em base 2, so necessrios, naturalmente, 2 algarismos, usualmente designados por 0 e 1. Tal como para outras bases, um nmero inteiro , portanto, representado por uma sequncia de algarismos, neste caso, algarismos binrios ou bits (do ingls, Binary Digit). Na Tabela 1.1 encontram-se os nmeros inteiros de 0 a 15 representados em base 2.

Base 10 0 1 2 3 4 5 6 7

Por exemplo 1101012 um nmero representado em base 2 ou, como tambm se diz, representado em binrio. Na seco anterior apresentou-se uma metodologia para, a partir de um nmero em binrio (ou representado em qualquer outra base), obter a representao do mesmo nmero em base 10, uma vez que essa a base habitual de representao. A tcnica utilizada consistiu em explicitar a representao do nmero em termos de somas pesadas de potncias da base e calcular em base 10 o valor do nmero. Esta uma tcnica de aplicao geral que pode, portanto, ser tambm aplicada no caso de nmeros representados em base 2. No caso do nmero 1101012 acima referido, considerando que se trata de um nmero de 6 algarismos, vir

1101012

= = =

1 25 + 1 24 + 0 23 + 1 22 + 0 21 + 1 20 32 + 16 + 4 + 1 5310
14

4E` H" # 3 1  G } (  7 &  & 1

Y %WV X&(% U

Representao dos inteiros de 0 a 15 em base 2. Base 2 0 1 10 11 100 101 110 111 Base 10 8 9 10 11 12 13 14 15 Base 2 1000 1001 1010 1011 1100 1101 1110 1111

(1.11)

O problema inverso, a determinao da representao de um nmero em base 2 (ou noutra base b qualquer) dada a sua representao em base 10 foi igualmente tratado, tendo sido apresentado o mtodo das divises sucessivas. Usando, agora, como exemplo o nmero 2610 note-se que 26 = 13 2 + 0 (1.12) explicitando o quociente e o resto da diviso do nmero por 2. O nmero 13 , por sua vez, representvel como 13 = 6 2 + 1, pelo que substituindo na Equao 1.12, se obtm 26 = = (6 2 + 1) 2 + 0 6 22 + 1 2 + 0 (1.13)

Considerando agora que 6 = 3 2 + 0, resulta 26 = = E, como 3 = 1 2 + 1, vem 26 = = (1 2 + 1) 23 + 1 2 + 0 1 24 + 1 23 + 1 2 + 0 (1.15) (3 2) 22 + 1 2 + 0 3 23 + 1 2 + 0 (1.14)

Representando, por m, explicitamente todas as potncias de 2, vem 26 = 1 24 + 1 23 + 0 22 + 1 21 + 0 20 (1.16)

agora fcil ver que o nmero 2610 se representa em base 2 por 110102 . Os diversos algarismos binrios so, como se viu, os sucessivos restos da diviso por 2 do nmero inicial e dos sucessivos quocientes. A forma mais habitual (e rpida) de realizar os clculos , porm, a da aplicao sucessiva do modo habitual de realizar o algoritmo da diviso recolhendo-se, no nal, os diversos restos: 26 0 2 13 1

O algarismo de maior peso corresponde ao resto da ltima diviso e sucessivamente at ao algarismo de menor peso, que o resto da primeira diviso.

41`HE71mfE'7mH"d # 3 G #  (!  C )! 9! # 4 3 1 ) ( &   
2 6 0 2 3 1 2 1 1 2 0
15

A converso de nmeros fraccionrios, representados em base 2 (ou em qualquer outra), para base 10 no apresenta quaisquer problemas, utilizando-se a mesma metodologia que se utiliza para inteiros. Um nmero fraccionrio pode ter uma parte inteira e uma parte decimal, isto , uma parte menor que 1. Essa parte decimal, com n algarismos, representvel pela seguinte expresso: N = p1 b1 + p2 b2 + + pn bn ou N=
i=1 n

Considere-se, a ttulo de exemplo, o nmero 0, 10110102 . A converso imediata: 0, 10110102 = = = 1 21 + 1 23 + 1 24 + 1 26 (1.19)

A converso de um nmero fraccionrio entre uma base b e a base 10 feita, portanto, usando o mesmo algoritmo que no caso de nmeros inteiros, tendo o cuidado de no acrescentar atravs do processo de converso maior preciso ao nmero de que se partiu, uma vez que isso no teria qualquer signicado. De facto, o nmero 0,10110102 representado com 7 algarismos binrios aps a vrgula. Isso signica que est representado com uma preciso de 1 em 2 7 , uma vez que com esses 7 algarismos, possvel representar 27 nmeros diferentes. O nmero que se obtm por converso da base representa a mesma grandeza e, portanto, o nmero de algarismos deve ser tal que a preciso no ultrapasse a da representao inicial. Teremos, assim, de escolher um nmero p de algarismos, tais que p seja o maior inteiro que verique a equao 10p 27 (1.20) p = log10 27 (1.21)

e venha, portanto,

Da Expresso 1.211 resulta p = 2. Assim, a representao correcta em base 10 do nmero 0,10110102 0,7010 , que se obtm por arredondamento do resultado obtido na Expresso 1.19
1A

!3THS8h@0Fbg@0FDC(@bdGb(a3G532@C@&!## R` %  Df " ee% c 0 86 4 1 0)'%$" 


pi b i 0,5 + 0,125 + 0,0625 + 0,015625 0,70312510
16

funo x (em ingls, oor, devolve, para o nmero real x, o maior inteiro menor ou igual a x

4E` H" # 3 1  G } (  7 &  & 1


2

(1.17)

(1.18)

O problema inverso de converso de um nmero fraccionrio representado em base 10 para uma base qualquer, nomeadamente a base 2, utiliza, tal como no caso dos nmeros inteiros, um algoritmo mais complexo, se no se pretender realizar as operaes aritmticas na base para onde se converte. O procedimento a utilizar ser apresentado de seguida, usando um exemplo. Considere-se, assim, o nmero 0,627 10 . Este nmero, quando representado em base 2, ser 0,62710 = 0,p1 p2 p3 p4 . . . pn 2 (1.22)

Pretende-se obter o valor dos sucessivos algarismos p 1 , p2 , p3 , p4 e pn . Multiplicando ambos os membros da Equao 1.22 por 2, resulta: 1,35410 = p1 ,p2 p3 p4 . . . pn 2 (1.23)

De facto, a multiplicao por 2 em base 2 corresponde ao deslocamento de todos os algarismos do nmero de uma posio para a esquerda, tal como a multiplicao por 10 em base 10. Da anlise da Equao 1.23 e notando que as partes inteiras dos dois membros da equao tm de ser iguais, tal como as partes fraccionrias vem, portanto, 1 = p1 e 0,35410 = 0,p2 p3 p4 . . . pn 2 (1.25) (1.24)

A Equao 1.24 permite identicar o algarismo p1 . Para o segundo algarismo, p2 , aplica-se agora o mesmo algoritmo parte fraccionria resultante, representada na Expresso 1.25. A aplicao sucessiva da multiplicao por 2 permite obter a sucesso de algarismos da parte fraccionria do nmero. bvio que, tal como na converso inversa, se deve utilizar, na base para onde se converte, o nmero mximo de algarismos que no aumente a preciso do nmero em relao sua representao original. No 1 exemplo acima, para no ultrapassar a preciso inicial ( 103 ) sero utilizados 9 algarismos na representao em base 2 (29 = 512 e 210 = 1024). Completando o exemplo: 0,62710 = 0,1010110102 (1.26)

Quando se pretender fazer a converso da representao de nmeros com parte inteira e fraccionria entre duas bases, procede-se converso separadamente da parte inteira e da parte fraccionria usando os respectivos algoritmos, somando-se no nal os dois nmeros obtidos.

41`HE71mfE'7mH"d # 3 G #  (!  C )! 9! # 4 3 1 ) ( &   
17

A representao de nmeros em base 2 necessria, pois a utilizada pelos sistemas digitais para representar nmeros internamente, mas tem a grande desvantagem de utilizar sequncias de algarismos relativamente longas. Por exemplo, 153,845 10 representa-se em base 2 por 10011001,1101100012 . Estas representaes tornam-se de difcil percepo e manipulao. A representao em base 10 no tem esses inconvenientes, mas no pode ser utilizada para representao interna em sistemas digitais. A soluo para este dilema a utilizao de formas condensadas da representao binria, que se tornam possveis representando o nmero em bases que so uma potncia de 2, isto , 4, 8, 16, . . . Normalmente utiliza-se a base 8 ou, mais frequentemente, a 16. Estas representaes permitem, como se ver, a representao condensada e facilmente convertvel de nmeros binrios com muitos dgitos. A base 8 utiliza os algarismos de 0 a 7, e a converso de nmeros entre a base 8 e a base 10 utiliza, naturalmente, os procedimentos atrs descritos. Um nmero representado em base 8 diz-se, tambm, representado em octal. A representao de nmeros em base 16, ou em hexadecimal, como hbito designar este tipo de representao, semelhante a qualquer outra base, sendo apenas necessrio ter em conta que existem 16 algarismos, de 0 a 15. No caso dos algarismos que representam 10, 11, 12, 13, 14 e 15, usam-se habitualmente, as letras maisculas de A a F. Os 16 algarismos esto listados na Tabela 1.2:

O nmero 4A6F16 tem portanto em decimal a seguinte representao: 4A6F16 = = = 4 163 + 10 162 + 6 16 + 15

Qt3h3%(g"sC(rG!3TSGb(a3G532@C@&!## pi 1 De $0 q % H 8 0 86 4 1 0)'%$" 


Nmero 0 1 2 3 4 5 6 7

4E` H" # 3 1  G } (  7 &  & 1

(QRvu#C3% U Y %WV

Algarismos da base 16. Nmero 8 9 10 11 12 13 14 15 Algarismo 8 9 A B C D E F

Algarismo 0 1 2 3 4 5 6 7

1905510

4 4096 + 10 256 + 6 16 + 15

(1.27)

18

Do mesmo modo, em base 8 o nmero 36058 36058 = 3 83 + 6 82 + 5 = 192510

A converso entre bases em que uma uma potncia da outra faz-se de um modo muito fcil. Considere-se, com algum pormenor, a converso do nmero 101101110101 2 para a base 16. Comea-se por representar o nmero, explicitando a sua expresso em termos das potncias da base, semelhana do que j atrs se fez: 1011011101012 = 1 211 + 0 210 + 1 29 + 1 28 + 0 27 + +0 2 + 1 2 +1 26 + 1 25 + 1 24 + 0 23 + 1 22 +
1 0

Seguidamente agrupam-se os termos em grupos de 4 a partir dos menos signicativos: 1011011101012 = (1 211 + 0 210 + 1 29 + 1 28 ) + +(0 27 + 1 26 + 1 25 + 1 24 ) + +(0 23 + 1 22 + 0 21 + 1 20 )

Colocam-se em evidncia em cada grupo as potncias de 2 necessrias para deixar cada grupo representado em termos de soma pesada das potncias de ordem 0, 1, 2 e 3. 1011011101012 = (1 23 + 0 22 + 1 21 + 1 20 ) 28 + +(0 23 + 1 22 + 0 21 + 1 20 ) 20

Mas 28 = 162 , 24 = 161 e 20 = 160 so potncias de 16. Pode-se portanto escrever: 1011011101012 = 11 162 + 7 161 + 5 160 agora fcil concluir que 1011011101012 = B7516 (1.33) (1.32)

Repare-se que cada algarismo em base 16 foi denido pelos 4 algarismos binrios que inicialmente foram agrupados. Ento, se se conhecer a equivalncia entre os algarismos da base 16 e a sua correspondncia num nmero binrio de 4 algarismos, pode

41`HE71mfE'7mH"d # 3 G #  (!  C )! 9! # 4 3 1 ) ( &   
= 3 512 + 6 64 + 5 (1.28) (1.29) (1.30) +(0 23 + 1 22 + 1 21 + 1 20 ) 24 + (1.31)
19

Correspondncia entre os algarismos da base 16 e a sua representao em binrio com 4 algarismos. Nmero 0000 0001 0010 0011 0100 0101 0110 0111 Algarismo 0 1 2 3 4 5 6 7 Nmero 1000 1001 1010 1011 1100 1101 1110 1111 Algarismo 8 9 A B C D E F

determinar-se directamente o nmero em base 16 a partir do nmero em base 2. Essa correspondncia pode ser facilmente obtida e est representada na Tabela 1.3 Se se isolarem os grupos de 4 algarismos binrios do nmero 1011 0111 0101, pode este ser assim convertido directamente para a base 16 1011 0111 0101 B 7 5

obtendo-se o nmero B7516 , como se viu. de notar que os grupos de 4 algarismos so formados a partir do algarismo menos signicativo, isto , da direita. Tal decorre, como se pode deduzir facilmente, do modo como o algoritmo foi denido. No caso de um nmero em binrio ter um nmero de bits que no mltiplo de 4, o mtodo aplica-se exactamente da mesma maneira. Considere-se o nmero 1101011011 2 . Isolando os algarismos em grupos de 4 a partir do menos signicativo, obtm-se 11010110112 = = = 11 0101 10112 3 5 B16 35B16 (1.34)

No caso de outra base potncia de 2, como por exemplo a base 8, o mtodo semelhante, variando apenas o nmero de algarismos que se agrupam. No caso da base 8, os

4E` H" # 3 1  G } (  7 &  & 1

Y %WV (R`wu#C3% U

20

algarismos juntam-se em grupos de 3 (23 = 8). Exemplicando: 100101101010012 = = = 10 010 110 101 0012 2 2 6 5 18 226518 (1.35)

Do mesmo modo, a passagem de uma base potncia de 2 para a base 2 realiza-se pelo processo inverso: 7DA3F16 = = = 7 D A 3 F16 0111 1101 1010 0011 11112 011111011010001111112 (1.36)

Exemplo semelhante pode ser considerado para base 8: 34618 = = = 3 4 6 18 011 100 110 0012 111001100012 (1.37)

Uma maneira alternativa, muitas vezes utilizada, de indicar que um nmero est representado em base 16 consiste em terminar o nmero com a letra h. Assim, por exemplo, escrever 487116 o mesmo que escrever 4871h. Do mesmo modo habitual usar as letras b, o e d para indicar que um nmero est representado, respectivamente em binrio, octal ou decimal. Por exemplo, 11101012 pode ser representado por 1110101b. Este modo de representao ser a partir daqui o preferido quando for necessrio indicar a base em que um nmero est representado. O uso da representao de nmeros em bases potncias de 2, nomeadamente nas bases 8 e 16, permite, assim, a representao em forma compacta de nmeros binrios com muitos dgitos. Existe, para alm disso, como se viu, um modo muito simples de converter os nmeros entre a base 2 e essas bases, que praticamente independente em complexidade do nmero de algarismos da representao dos nmeros. Por m, permite converses parciais de zonas do nmero que podem interessar. fcil conhecer, por exemplo, os dgitos binrios menos ou mais signicativos de um nmero representado numa dessas bases, sem a necessidade da converso completa. Por exemplo, no nmero A23Bh fcil vericar que os 5 algarismos mais signicativos em binrio so 10100. A converso de nmeros com parte fraccionria entre a base 2 e bases potncias de 2 realiza-se exactamente do mesmo modo, tendo o cuidado de agrupar os algarismos binrios a partir da vrgula, como pode ser facilmente concludo. Considere-se, a ttulo

41`HE71mfE'7mH"d # 3 G #  (!  C )! 9! # 4 3 1 ) ( &   
21

2 8

de exemplo, o nmero 1001010,101100111111b: 1001010,101000111111b = = = 100 1010, 1011 0011 1111b 4 A, C 3 Fh 4A,C3Fh (1.38)

Do mesmo modo, a passagem de base potncia de 2 para a base 2 no oferece qualquer diculdade para nmeros com parte fraccionria: 5271,3527o = = = 5 2 7 1, 3 5 2 7o 101 010 111 001, 011 101 010 111b 101010111001,011101010111b (1.39)

2 8

Nesta seco refere-se brevemente a aritmtica elementar nas bases 2, 8 e 16. Limita-se a abordagem a somas e produtos de nmeros inteiros positivos. O estudo da aritmtica abordando inteiros negativos ser feito mais tarde, no Captulo 5. A ser considerada tambm a subtraco.

A soma em base 2, tal como em qualquer outra base, no fundamentalmente diferente da soma em base 10. O procedimento adoptado assenta na existncia de uma tabuada da soma e na metodologia de somar nmeros algarismo a algarismo. A soma efectuada, somando, para cada ordem a comear pelo algarismo menos signicativo, os algarismos dos nmeros a somar com o transporte da ordem anterior. A soma deve tambm gerar o transporte para a ordem seguinte. A tabuada da soma em base 2 (Tabela 1.4) particularmente simples.

Tabuada da soma em base 2. X +Y X 0 1 Y 0 0 1 1 1 10

22

&"  E1'd Gdfd#  & 1 G & ! ) )!  1 &   3 1  

16

BHG

Y@Riv&C3% U %WV

 % H 8 % 80 !PI#G39@C (RQ

y6 x

16

Repare-se que, na soma 1 + 1, o resultado j no representvel num nico algarismo, sendo, portanto, necessrio utilizar dois algarismos. Isso signica que, no algoritmo da soma, surgir, neste caso, um transporte de 1. Nos restantes casos da soma, o transporte sempre 0. Considere-se, a ttulo exemplicativo, a soma de 100011112 com 10110102 . Nos algarismos menos signicativos, isto , de ordem 0, na coluna mais direita, a soma no tem de ter em conta o transporte da coluna anterior. A soma de 1 com 0 , de acordo com a Tabela 1.4, 1, e o transporte, 0: 10001111 +1011010 1 0

Na segunda coluna, somando os algarismos de ordem 1, a soma de 1 com 1 tem como resultado 10 (isto , 210 ). Como o transporte da coluna anterior 0, a soma no se altera. Mas 10 um nmero de dois algarismos, donde, nesta coluna, o resultado da soma 0, e o transporte, 1: 10001111 +1011010 01 10

Na coluna seguinte, somando 1 com 0, obtm-se 1. Como o transporte 1, necessrio somar ainda esse 1, obtendo-se 10. Logo, a soma 0, e o transporte 1: 10001111 +1011010 001 110

Na coluna de ordem 3, temos a soma de 1 com 1, o que resulta em 10, somado ainda com um transporte de 1, sendo o resultado 11. Neste caso, a soma 1, tal como o transporte: 10001111 +1011010 1001 1110

41`HE71mfE'7mH"d # 3 G #  (!  C )! 9! # 4 3 1 ) ( &   
transporte transporte transporte transporte
23

2 8

Continuando o raciocnio, obter-se-, por m, 10001111 +1011010 11101001 00011110

transporte

Claro que possvel somar mais de dois nmeros. O nico aspecto a ter em conta que, agora, o transporte pode no se limitar a um algarismo. Considere-se a soma de 4 nmeros adiante indicada: 10011101 101011 11001 +1011011 Na primeira coluna, a soma d 1002 . Aqui, a soma , naturalmente, 0, e o transporte, 10. Tendo em conta este aspecto, o resultado nal ser: 10011101 101011 11001 + 1011011 100111100 Normalmente, nos sistemas digitais, as somas so realizadas entre dois nmeros, sendo as somas de mais de dois nmeros realizadas por somas sucessivas das diversas parcelas a somar.

Tal como no caso da adio, a multiplicao em base 2 segue os mesmos mtodos da multiplicao em base 10. A tabuada da multiplicao representada na Tabela 1.5. Cada algarismo do multiplicador multiplicado pelo multiplicando, gerando um produto parcial. A soma de todos os produtos parciais o produto dos dois nmeros. De facto, o produto M N pode ser explicitado, se representarmos o multiplicador N em
24

&"  E1'd Gdfd#  & 1 G & ! ) )!  1 &   3 1  

16

 % H 8 ' DW D W !PI#b(@%CFeuF$3X RQ(RQ

termos da sua representao em base 2 (o mesmo se poderia fazer para qualquer base) pela Equao 1.40. M N = = M (pn1 2n1 + pn2 2n2 + + p1 21 + p0 20 ) + M p 0 20

Por exemplo, se se pretender multiplicar M = 10001111 por N = 1010, o produto obtm-se somando os quatro produtos parciais 10001111 10001111 10001111 10001111 1000 0 10 0

correspondentes aos quatro algarimos do multiplicador. No algoritmo corrente, fundamental, portanto, colocar os vrios produtos parciais alinhados com o respectivo algarismo do multiplicador: 10001111 1010 00000000 10001111 00000000 10001111 10110010110

Naturalmente que, tal como no caso da multiplicao em base 10, se podem omitir os resultados do produto do multiplicando por algarismos 0 do multiplicador:

41`HE71mfE'7mH"d # 3 G #  (!  C )! 9! # 4 3 1 ) ( &   
M pn1 2n1 + M pn2 2n2 + + M p1 21 + (1.40)

Cv&C3% U Y %WV

Tabuada do produto em base 2. X Y X 0 1 Y 0 0 0 1 0 1

(= 10001111 0) (= 10001111 10) (= 10001111 0) (= 10001111 1000)

25

2 8

10001111 1010 10001111 10001111 10110010110 Repare-se que, em base 2, s h duas hipteses para os produtos parciais: ou o algarismo do multiplicador 0, e o produto parcial 0, ou esse algarismo 1, e o produto parcial igual ao multiplicando com o deslocamento correspondente ao peso do algarismo. Ver-se-, adiante, que esta caracterstica importante na realizao desta operao por sistemas digitais.

A realizao de operaes em outras bases no levanta quaisquer problemas para alm de conhecer a tabuada das operaes nessas bases. Exemplicando para a soma em base 16, pode construir-se a tabuada da soma (Tabela 1.6).

Tabuada da soma em base 16. C C D E F 10 11 12 13 14 15 16 17 18 19 1A 1B D D E F 10 11 12 13 14 15 16 17 18 19 1A 1B 1C E E F 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D F F 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E

X +Y 0 1 2 3 4 5 6 7 8 9 A B C D E F

0 0 1 2 3 4 5 6 7 8 9 A B C D E F

1 1 2 3 4 5 6 7 8 9 A B C D E F 10

2 2 3 4 5 6 7 8 9 A B C D E F 10 11

Y 3 4 5 6 7 8 9 A B 3 4 5 6 7 8 9 A B 4 5 6 7 8 9 A B C 5 6 7 8 9 A B C D 6 7 8 9 A B C D E 7 8 9 A B C D E F 8 9 A B C D E F 10 9 A B C D E F 10 11 A B C D E F 10 11 12 B C D E F 10 11 12 13 C D E F 10 11 12 13 14 D E F 10 11 12 13 14 15 E F 10 11 12 13 14 15 16 F 10 11 12 13 14 15 16 17 10 11 12 13 14 15 16 17 18 11 12 13 14 15 16 17 18 19 12 13 14 15 16 17 18 19 1A

26

&"  E1'd Gdfd#  & 1 G & ! ) )!  1 &   3 1  

16

!3T73@Cbadh3CFea$b#@@@@#a R`(RQ % H %$ 8 % D$ 8 D '%  Y %WV (eRv&C3% U

A construo desta tabela pode ser feita de diversas formas. Uma delas considerar, para cada soma, o valor dos algarismos, som-los em decimal e transferir o resultado para hexadecimal. Exemplicando com a soma 5 + D, tem-se a soma de 5 com 13 (o valor do algarismo D). O resultado desta soma 18d ou, em hexadecimal, 12h, que o valor a colocar na tabuada. A ttulo de exemplo considere-se a soma de 1F3A5h com A542h: 1F 3A5 +A5 4 2 2 9 8E7 01000

A multiplicao tambm de fcil concretizao. Exemplica-se com a tabuada da multiplicao em base 8 (Tabela 1.7) e com o produto de dois nmeros nessa base:

O produto de 1537o por 314o ser 1537 314 6574 1537 5035 527664 A operao de multiplicao em base b, embora no seja conceptualmente diferente da operao em base 10, obriga a um bom domnio da respectiva tabuada, o que, em geral,

41`HE71mfE'7mH"d # 3 G #  (!  C )! 9! # 4 3 1 ) ( &   
transporte

Y %WV fv&C3% U
X Y 0 1 2 3 4 5 6 7 X 0 0 0 0 0 0 0 0 0

Tabuada do produto em base 8. Y 1 0 1 2 3 4 5 6 7 2 0 2 4 6 10 12 14 16 3 0 3 6 11 14 17 22 25 4 0 4 10 14 20 24 30 34 5 0 5 12 17 24 31 36 43 6 0 6 14 22 30 36 44 52 7 0 7 16 25 34 43 52 61

27

no se verica. Nessas circunstncias, evidente que a realizao de multiplicaes directamente nas bases consideradas reveste-se de alguma diculdade. No por isso comum a realizao deste tipo de operaes. A soma, contudo, muito til, como se ver mais tarde, no contexto da arquitectura e programao de computadores.

A representao em base 2 permite a representao de nmeros em sistemas digitais. Nem toda a informao, porm, numrica. H muitos outros tipos de dados que necessitam de ser processados e tratados. O texto um exemplo bvio, mas est longe de ser nico. Nesta seco sero analisados os mtodos de representao de informao utilizando cdigos. Ser dado particular realce aos cdigos binrio e BCD e a cdigos alfanumricos. A representao de outros tipos de informao est fora do mbito deste livro.

A representao de informao em sistemas digitais assenta no facto de os sistemas deste tipo apenas terem como base, para representar seja o que for, as quantidades 0 e 1. Tal como no caso dos algarismos binrios, uma entidade que pode assumir dois valores designada por bit. Se existir uma entidade que gera informao e essa informao se concretizar em sequncias de um de entre vrios possveis valores, a soluo para a representao desses valores num sistema digital a de os codicar. Isso signica que se faz corresponder, a cada valor possvel, uma congurao determinada de bits que passam a representar aquele valor. Considere-se, como exemplo, um elevador num edifcio com 6 pisos: duas caves, o r/c e mais 3 andares. Se se pretender registar num sistema digital o andar em que o elevador se encontra ou para onde se dirige, se em movimento, h que codicar essa informao, isto , fazer corresponder a cada andar uma determinada congurao de bits. O nmero de bits a usar ser, pelo menos, o necessrio para realizar 6 combinaes. Como facilmente pode ser visto, bastam, portanto, 3 bits para esse cdigo. Um exemplo de codicao est ilustrado na Tabela 1.8. correspondncia entre as entidades a representar e a sua codicao chama-se cdigo. A tabela anterior dene, assim, um cdigo. Cada uma das conguraes designa-se por palavra do cdigo. O nmero de bits da palavra de cdigo, se for igual para todas as conguraes, designa-se por comprimento do cdigo. Este cdigo , portanto, um cdigo de comprimento 3. Como bvio, este no o nico cdigo possvel para esta aplicao. Na Tabela 1.9 ilustra-se outro cdigo.

H' & # 9! 7

0)'% D D10 @C@CFelFk@Tj (R`


28

y6 i h g

A nica restrio para um cdigo vlido a de no haver codicaes repetidas, o que signica que, duas entidades diferentes no podem ser codicadas com a mesma palavra de cdigo.

Qualquer das codicaes aceitvel. Os dois cdigos apresentados no tm nenhuma caracterstica que os distinga signicativamente um do outro. No entanto, podem ser concebidos cdigos com algumas caractersticas especiais. Por exemplo, usando agora palavras de 4 bits para representar os vrios andares, possvel conceber um cdigo que represente cada andar com uma sequncia com dois bits a 0 e dois bits a 1, como se mostra na Tabela 1.10. Um possvel uso para cdigos deste tipo detectar alguns erros de codicao ou de processamento. Se, em determinado momento, o sistema tiver registado que o elevador est no andar representado pela palavra 0010, imediato que houve um erro de codicao ou processamento, uma vez que a palavra 0010 no pertence ao cdigo.

41`HE71mfE'7mH"d # 3 G #  (!  C )! 9! # 4 3 1 ) ( &   

Y %WV (Rmvu#C3% U
Andar 2a cave 1a cave R/C o andar 1 2o andar 3o andar

Exemplo de cdigo. Codicao 000 001 010 011 100 101

Y %WV Cnv&C3% U

Exemplo alternativo de cdigo. Codicao 110 111 000 001 010 011

Andar 2a cave 1a cave R/C o andar 1 2o andar 3o andar

29

Exemplo de cdigo com restries. Codicao 0011 0101 1001 0110 1010 1100

Andar 2a cave 1a cave R/C o andar 1 2o andar 3o andar

Embora os nmeros sejam habitualmente representados pela sua representao em base 2 (e, de algum modo, isso corresponde tambm a um cdigo), muitas vezes necessrio utilizar cdigos para representar nmeros, nomeadamente nmeros inteiros. Esses cdigos denominam-se cdigos numricos. A maneira mais simples para representar um inteiro por um cdigo fazer representar cada nmero por uma palavra de cdigo que a sua representao em binrio. Na Tabela 1.11 ilustra-se um cdigo deste tipo com palavras de comprimento constante. Repare-se que todas as palavras de cdigo tm o mesmo comprimento. Por exemplo, o nmero 3 representa-se por 00011 e no por 11, que seria a sua normal representao em base 2. Este tipo de cdigo em que cada nmero codicado pela sua representao em base 2 com um nmero xo de bits, denomina-se cdigo binrio natural. Como evidente h cdigos binrios naturais com qualquer nmero de bits. Uma situao muito comum, mas de diferente carcter, a necessidade de codicar os algarismos decimais. Tal necessidade resulta de que, por vezes, conveniente representar um nmero no pelo seu cdigo binrio natural, mas sim pela codicao em binrio de cada um dos seus algarismos em base 10. Uma situao bvia a de um mostrador de uma mquina de calcular em que se representa um nmero em decimal para leitura fcil pelo utilizador, mas que, do ponto de vista da mquina, representado com bits. A soluo clssica a de representar cada algarismo decimal do nmero pela sua representao em binrio, de acordo com a Tabela 1.12. Este cdigo chama-se cdigo BCD (do ingls, Binary Coded Decimal) o que signica, em portugus, Decimal Codicado em Binrio. Repare-se que o cdigo BCD tem, para cada algarismo, a mesma representao do cdigo binrio natural de 4 bits. Acontece, porm, que nem todas as posies do cdigo tm signicado. A indicao de que um

H' & # 9! 7

(ovu#CV3% U Y %W b(Fe@#a7GbgFq@Tj RQ(R` 0 D 8 4 0 D1p

30

nmero est representado em BCD faz-se indicando BCD em ndice. Por exemplo, 7 10 representado por 0111BCD em BCD. A representao de um nmero em cdigo BCD faz-se representando cada algarismo

41`HE71mfE'7mH"d # 3 G #  (!  C )! 9! # 4 3 1 ) ( &   
Nmero 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

Y %WV (QEX&(% U

Y#v&C3% U %WV

Cdigo binrio natural de 5 bits. Nmero 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Codicao 10000 10001 10010 10011 10100 10101 10110 10111 11000 11001 11010 11011 11100 11101 11110 11111

Codicao 00000 00001 00010 00011 00100 00101 00110 00111 01000 01001 01010 01011 01100 01101 01110 01111

Cdigo BCD. Codicao 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001

Algarismo 0 1 2 3 4 5 6 7 8 9

31

decimal pela sua representao binria, como se ilustra representando o nmero 2719 em BCD: 271910 = 0010011100011001BCD (1.41) em que 0010 corresponde ao algarismo 210 ; 0111, ao 710 ; 0001, ao 110 ; e 1001, ao 910 . Repare-se que nem todas as sequncias de bits podem corresponder a uma codicao usando o cdigo BCD. Por exemplo, a sequncia 10110101 no um nmero codicado em BCD, uma vez que os quatro bits da esquerda (1011) no correspondem a qualquer algarismo, conforme se pode ver na Tabela 1.12. De igual modo importante referir que uma representao de um nmero no cdigo BCD no uma representao desse nmero em binrio. Retomando o exemplo anterior, 0010011100011001BCD = 271910 (1.42) mas a mesma sequncia de bits interpretada como um nmero em base 2 tem outro signicado: 00100111000110012 = 1000910 (1.43) o que, claramente, no corresponde ao mesmo nmero.

Um tipo de cdigos numricos particularmente importante so os cdigos reectidos (por vezes, referidos como cdigo de Gray). Estes cdigos tm como caracterstica fundamental o facto de duas palavras que codicam dois nmeros sucessivos terem apenas um bit diferente. Esta caracterstica importante, como se ver no Captulo 2. Na Tabela 1.13 ilustra-se um cdigo reectido de 3 bits. Repare-se que, com 3 bits, possvel codicar 8 nmeros diferentes. Como fcil de ver, neste cdigo, cada nmero no , excepto em alguns casos, representado pela sua representao em binrio. possvel vericar que entre cada dois nmeros sucessivos se altera apenas um bit da sua representao em binrio. Isso acontece de igual modo entre as representaes do 0 e do 7, os dois valores extremos representados. A maneira mais directa de construir o cdigo reectido de n bits partir do cdigo de n 1 bits. Parte-se das 2n1 conguraes do cdigo de n 1 bits e repetem-se essas
32

H' & # 9! 7

b3F1CrGbgFq@Tj R`(R` 0 D$eWk  0 D1p

conguraes por ordem inversa, isto , como se estivessem reectidas num espelho imaginrio (da o nome de cdigo reectido), como se ilustra na Tabela 1.14. Seguidamente junta-se o quarto bit da codicao, fazendo-o igual a 0, nas posies iniciais, e igual a 1, nas posies reectidas, como se ilustra na Tabela 1.15, onde o cdigo j representado.

41`HE71mfE'7mH"d # 3 G #  (!  C )! 9! # 4 3 1 ) ( &   

Y` %WV (X&(% U Y@lv&C3% U i %WV

Cdigo reectido de 3 bits. Codicao 000 001 011 010 110 111 101 100

Numero 0 1 2 3 4 5 6 7

Construo do cdigo reectido de 4 bits. 000 001 011 010 110 111 101 100 100 101 111 110 010 011 001 000

33

Construo do cdigo reectido de 4 bits (concluso). Nmero 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Codicao 0000 0001 0011 0010 0110 0111 0101 0100 1100 1101 1111 1110 1010 1011 1001 1000

A ttulo de exerccio sugere-se a obteno dos cdigos reectidos de 2 e 3 bits, a partir do cdigo de 1 bit. Como evidente, este ltimo no difere de um cdigo binrio natural de 1 bit.

Um tipo de informao que importante representar em sistemas digitais um texto. Por isso, fundamental utilizar um cdigo para representar todos os caracteres possveis num texto. Ao longo da evoluo dos sistemas digitais foram utilizados vrios cdigos com essa nalidade. Actualmente, o cdigo mais usado o cdigo ASCII (do ingls, American Standard Code for Information Interchange), que, tendo tido origem nos Estados Unidos da Amrica, rapidamente se tornou no cdigo universalmente aceite. Um cdigo deste tipo tem de codicar as 26 letras do alfabeto em maisculas e minsculas, os 10 algarismos, todos os sinais de pontuao e alguns caracteres especiais. O cdigo tem palavras de 7 bits, o nmero necessrio para codicar todos os caracteres. usual representar a palavra do cdigo com os bits ordenados de 1 a 7 da seguinte maneira: b6 b5 b4 b3 b2 b1 b0 . O cdigo est representado na Tabela 1.16.
34

H' & # 9! 7

b(Fe@#93tsrGbgFq@Tj pi(R` 0 D  8 " %kW 0 D 1 p

Y %WV (Evu#C3% U

O carcter SP o espao. Os caracteres das duas primeiras colunas e o DEL na ltima posio da tabela so caracteres de controlo. O signicado dos caracteres de controlo est ligado, para a sua maioria, a aplicaes do cdigo em transmisso de informao entre equipamentos. Em muitos casos esses caracteres j no so utilizados por terem evoludo os protocolos de comunicao. A representao de um texto em ASCII feita indicando a sucesso de cdigos dos caracteres do texto. Por exemplo, o texto Sistemas Digitais ser codicado em ASCII como: 1010011 1101001 1110011 1110100 1100101 1101101 1100001 1110011 0100000 1000100 1101001 1100111 1101001 1110100 1100001 1101001 1110011 . Torna-se conveniente representar as conguraes do cdigo ASCII em hexadecimal. Neste caso, o texto acima seria, portanto, codicado como: 53h 69h 73h 74h 65h 6Dh 61h 73h 20h 44h 69h 67h 69h 74h 61h 69h 73h.

41`HE71mfE'7mH"d # 3 G #  (!  C )! 9! # 4 3 1 ) ( &   
b6 b5 b4 b3 b2 b1 b0 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 000 NUL STH STX ETX EOT ENQ ACK BEL BS HT LF VT FF CR SO SI

Y %WV CeEv&C3% U
001 DLE DC1 DC2 DC3 DC4 NAK SYN ETB CAN EM SUB ESC FS GS RS US 010 SP ! " # $ % & ( ) + , . /

Cdigo ASCII. 011 0 1 2 3 4 5 6 7 8 9 : ; < = > ? 100 @ A B C D E F G H I J K L M N O 101 P Q R S T U V W X Y Z [ \ ] _ 110 a b c d e f g h i j k l m n o 111 p q r s t u v w x y z { | } DEL

35

A sequncia ASCII 4Fh 73h 20h 73h 49h 73h 74h 65h 6Dh 61h 73h 20h 64h 49h 67h 69h 74h 61h 69h 73h 20h 75h 73h 61h 6Dh 20h 41h 53h 43h 49h 49h 20h 70h 61h 72h 61h 63h 6Fh 64h 49h 66h 69h 63h 61h 72h 20h 63h 61h 72h 61h 63h 74h 65h 72h 65h 73h 2Eh codica a seguinte frase: Os sistemas digitais usam ASCII para representar caracteres.. Por vezes, a designao dos cdigos ASCII dos caracteres faz-se em decimal e no em hexadecimal. Por exemplo, a letra A, que tem o cdigo 41h em hexadecimal, tem, em decimal, o cdigo 65d. O cdigo ASCII permite representar um texto, mas tem algumas limitaes. Por um lado, no permite representar caracteres especiais especcos de uma lngua, como por exemplo o em portugus, o em sueco ou o em alemo. Por outro, no permite acentuar caracteres. Para alm disso, no so representados outros alfabetos. Por isso, foram desenvolvidas vrias extenses para representar os caracteres especcos e os caracteres acentuados. A extenso foi feita passando o cdigo a 8 bits, mantendo compatibilidade com o ASCII de base. Infelizmente existem actualmente vrios cdigos incompatveis entre si. Em todos eles, porm, para os valores 00h a 7Fh, a representao igual do ASCII clssico, de modo a manter compatibilidade entre essas extenses e o ASCII. Por exemplo, o cdigo ISO-8859-1, a extenso normalizada pela ISO (do ingls, International Standard Organization), Organizao Internacional de Normalizao, para alfabetos de pases da Europa Ocidental, tem para os caracteres codicados de 80h a FFh a correspondncia ilustrada na Tabela 1.17. O carcter nbsp um espao especial que inibe a quebra de uma linha de texto por um processador de texto ou um browser. A norma ISO-8859 tem outras subnormas que denem cdigos para caracteres de outras zonas ou grupos lingusticos. Mais recentemente surgiu o cdigo UNICODE, que pretende codicar todos os caracteres de todas as lnguas. Cada palavra do cdigo tem 16 bits e, se necessrio, utiliza uma extenso de 20 bits. O ASCII normal e a extenso ISO-8859-1, apresentada acima, tm compatibilidade com o UNICODE. Este cdigo foi j recomendado como suporte para todos os futuros protocolos da Internet.

De um ponto de vista abstracto, a informao digital pode ser representada usando dois valores, habitualmente designados por 0 e 1. Como tambm j foi referido, uma

41`H! E71mHfE#EmE("d` # 3 G #  ( 1 C )! 9! 7 4 3 1 )  &  


36

x d F

FF

u v6

entidade desse tipo tem a designao de bit. Como evidente, um bit que s pode assumir um de dois valores no pode, por si s, dar suporte ao tipo de informao que se referiu atrs. habitual, para representar informao, organizar os bits em unidades de maior capacidade. Se se considerar, por exemplo, informao alfanumrica representada utilizando o cdigo ISO-8859-1, cada carcter, que a unidade mnima til de informao, ocupa 8 bits. Esses 8 bits, sendo uma unidade bsica de informao, se se estiver a tratar de texto, devem ser processados, transferidos e armazenados em conjunto. Um conjunto de 8 bits designado por byte, ou octeto. Um byte tem essa designao, independentemente do signicado que se atribui informao que veicula. indiferente se um byte representa um carcter, dois algarismos codicados em BCD, a cor de um pixel da imagem no monitor de um computador, ou qualquer outro tipo de informao. O conceito de byte est ligado ao conjunto de 8 bits interpretados como uma entidade coerente. Do mesmo modo, se dene o nibble, como um conjunto de 4 bits que interpretado como uma unidade coerente. Um algarismo codicado em BCD, por exemplo, representado

b7 b6 b5 b4 b3 b2 b1 b0 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111

41`HE71mfE'7mH"d # 3 G #  (!  C )! 9! # 4 3 1 ) ( &   

X&(V% U Yf %W
1000 1001

Cdigo ISO-8859-1 (com b7 = 1). 1010 nbsp c 1011


2 3

1100

1101

1110

1111

| c R

1 1

/4 /2 3 /4

37

por um nibble. A unidade bsica processada por um Intel 4004, um dos primeiros microprocessadores, que processava conjuntos de 4 bits, , tambm um nibble. Como evidente, o conjunto de dois nibbles, se considerado como uma unidade, um byte. Uma outra entidade que convm desde j considerar a palavra (word, em ingls). A palavra a unidade mnima processada ou armazenada num sistema. Por exemplo, o Intel 4004 de que se falou atrs um processador com palavras de 4 bits. O Intel 8080 ou o Motorola 6800, por exemplo, que processavam bytes, tinham palavras de 8 bits. O Intel 8086 ou o Motorola 68000 ou o processador P3, apresentado mais frente neste livro, processam palavras de 16 bits. H computadores com palavras de outras dimenses. Ao contrrio dos conceitos de byte ou nibble, portanto, o conceito de palavra no est ligado a uma dimenso xa. O nmero de bits de uma palavra depende do contexto que se considerar. No entanto, comum admitir o comprimento de 16 bits quando se refere uma palavra, a no ser que explicitamente seja especicada outra dimenso. Nenhum texto, imagem, lme ou som, no trivial, pode ser representado por um byte ou uma palavra. As aplicaes teis de sistemas digitais obrigam, na esmagadora maioria dos casos, a armazenar grandes quantidades de informao em conjuntos de bytes ou palavras. Quando se consideram grandes quantidades de objectos ou entidades abstractas usual a referncia a centenas, milhares ou milhes de unidades. Essa referncia assume, como evidente, que a base de representao dos nmeros com que se trabalha a base 10, em que conceitos como milhar e milho so naturais por serem potncias da base. Nos sistemas digitais, porm, a base normal de trabalho para representar nmeros a base 2, por condicionantes tecnolgicas. Em base 2, tambm as dimenses so habitualmente representadas como potncias da base. Em base 10, como se sabe dos sistemas de unidades de medida, a representao de nmeros relativamente elevados pode ser feita recorrendo a mltiplos das unidades. Por exemplo, em vez de se falar de 1000 m habitual falar de 1 km. O k representa aqui 1000. Em base 2, 1000d = 1111101000b. A losoa que esteve na base da representao de mltiplos em base 10 pode ser aplicada em qualquer base, mas com diferentes valores. Esses valores devem ser, tal como em base 10, potncias da base. Mas convinha ter em base 2 mltiplos teis, isto , mltiplos que no se afastassem do que habitual em base 10 para manter aquilo que o hbito cultural dos seres humanos. A potncia de 2 mais perto de 1000d 210 = 10000000000b = 1024d (1.44)

41`H! E71mHfE#EmE("d` # 3 G #  ( 1 C )! 9! 7 4 3 1 )  &  


38

Por isso, convencionou-se que, em sistemas digitais de todos os tipos (incluindo computadores), 1k = 210 = 1024d. Assim, 1 kbyte signica exactamente 1024 bytes, mas pode ser tomado com pequeno erro por 1 milhar de bytes. Os mltiplos habitualmente usados em sistemas digitais so os descritos na Tabela 1.18.

Mltiplo 1k 1M 1G 1T

Neste captulo foram apresentadas diversas maneiras de representar informao em sistemas digitais. O primeiro aspecto abordado foi o da representao de nmeros inteiros e fraccionrios no negativos, sendo apresentada a representao de nmeros em binrio e os processos de converso entre a representao em binrio e a representao em decimal. No sentido de facilitar a representao e manipulao de nmeros binrios com nmero elevado de algarismos foram ainda estudadas as representaes em octal e hexadecimal. A problemtica da representao de nmeros incluiu ainda a ilustrao da utilizao das regras habituais da aritmtica para a realizao de operaes directamente em binrio, octal ou hexadecimal. A representao de informao de contedo no numrico foi tambm abordada, tendo sido introduzida a utilizao de cdigos. Para alm de cdigos numricos e alfanumricos, foram ainda introduzidos os cdigos reectidos, de grande importncia no estudo dos mtodos de simplicao de funes lgicas apresentados no captulo seguinte. O captulo termina com algumas denies relacionadas com aspectos bsicos de representao de informao.

41`HE71mfE'7mH"d # 3 G #  (!  C )! 9! # 4 3 1 ) ( &   
Potncia 210 220 230 240

YCEv&C3% U m %WV
=2 k = 210 M = 210 G
10

Mltiplos em base 2. Representao em base 10 1 024d 1 048 576d 1 073 741 824d 1 099 511 627 776d Denominao Quilo Mega Giga Tera

Relao com mltiplo inferior

B
39

1.1 Represente os seguintes nmeros em base 2: 1. 3310 . 2. 16210 . 1.2 Considere os seguintes nmeros e represente-os em base 2, tendo o cuidado de no exceder a preciso representada nos nmeros originais: 1. 28,5410 . 2. 28,54010 . 3. 143,710 . 4. 143,7010 . 1.3 Represente os seguintes nmeros nas bases 8, 10 e 16: 1. 101011010112 . 2. 110000001,11012 . 3. 11111000,00112 . 1.4 Represente os seguintes nmeros nas bases 2 e 8: 1. A57D16 . 2. CAFE16 . 3. 17D, A816 . 1.5 Considere o nmero 35x . Sabe-se que este nmero inferior a 6410 . Que valores pode x assumir? 1.6 Os nmeros so habitualmente representados em bases n, com n positivo. Tal no , porm, estritamente necessrio. Considere-se, por exemplo, a base 2. Nada impede a representao de nmeros nessa base. Represente os primeiros 16 nmeros inteiros em base 2. Note que o nmero de bits necessrios pode ser superior a quatro, o nmero mnimo de bits necessrios para representar 16 conguraes. 1.7 Realize as seguintes operaes nas bases indicadas: 1. 1001,110112 + 0,101012 2. 10010,112 10,012 3. 2314,215 + 12,4135 4. 24,15 3, 25
40

41`H! E71mHfE#EmE("d` # 3 G #  ( 1 C )! 9! 7 4 3 1 )  &   BBF7 { z

1.8 Proponha o algoritmo da subtraco em base 2. 1.9 Construa as tabelas da soma e da multiplicao em base 16. Use-as para realizar as seguintes operaes: 1. A57D16 + CAFE16 . 2. A57D16 3716 . 3. 35A,7E16 + 2D,1A616 .

4. 35A,7E16 7,F16 . 1.10 A converso de nmeros de uma base b para a base 10 , como se viu, fcil de realizar, descrevendo o nmero como soma pesada (pelos algarismos) de potncias da base e realizando as operaes assim explicitadas. As operaes so realizadas na base 10. Na passagem inversa, da base 10 para a base b, foi apresentado um algoritmo diferente. No entanto, a situao perfeitamente simtrica, e o nmero em base 10 pode ser descrito como uma soma pesada de potncias de 10, com todos os nmeros intervenientes expressos em base b. Realizando seguidamente as operaes em base b pode obter-se a representao do nmero nessa base. Experimente utilizar este mtodo para representar em base 2 e 5 os nmeros 35 10 e 57210 e conrme utilizando os algoritmos usuais. O mtodo tambm funciona com nmeros fraccionrios? 1.11 Partindo do algoritmo habitual da diviso decimal, obtenha o algoritmo da diviso em binrio, execute e valide (usando a operao inversa) a diviso de 1010110 2 por 1012 . 1.12 Considere a seguinte sequncia de bits: 100001110011 1. Se a sequncia for um nmero em binrio, qual o nmero representado? 2. Se a sequncia for a representao de um nmero em BCD, qual o nmero representado? 3. Se a sequncia for um nmero em base 3, qual o nmero representado? 1.13 Considere os nmeros do Problema 1.1. 1. Represente-os no cdigo BCD. 2. Represente-os no cdigo ASCII. 3. Represente-os no cdigo ISO-Latin (ISO-8859-1).

41`HE71mfE'7mH"d # 3 G #  (!  C )! 9! # 4 3 1 ) ( &   
41

1.14 Qual a frase representada pela sequncia de palavras do cdigo ISO-8859-1 indicada seguidamente? 41h, 20h, 75h, 74h, 69h, 6Ch, 69h, 7Ah, 61h, E7h, E3h, 6Fh, 20h, 64h, 65h, 20h, 63h, F3h, 64h, 69h, 67h, 6Fh, 73h, 20h, 70h, 65h, 72h, 6Dh, 69h, 74h, 65h, 20h, 72h, 65h, 70h, 72h, 65h, 73h, 65h, 6Eh, 74h, 61h, 72h, 20h, 69h, 6Eh, 66h, 6Fh, 72h, 6Dh, 61h, E7h, E3h, 6Fh, 2Eh 1.15 Os nomes dos aeroportos so codicados por sequncias de trs letras maisculas. Por exemplo, o Aeroporto da Portela em Lisboa tem o cdigo LIS, o Aeroporto de El Prat em Barcelona tem o cdigo BCN, e o Aeroporto John Kennedy em Nova Iorque tem o cdigo JFK. 1. Quantos aeroportos podem ser codicados deste modo? 2. Quantos bits sero necessrios em cdigo ASCII para codicar em binrio os cdigos dos aeroportos? E se se utilizasse o cdigo mais eciente possvel para codicar apenas letras maisculas? 3. Quantos bits seriam necessrios se se atribusse um cdigo binrio nico para cada aeroporto com um nmero mnimo de bits? 1.16 Um cdigo ponderado um cdigo numrico em que cada bit do cdigo tem um peso, e o nmero codicado se obtm por soma dos pesos multiplicados pelo valor do bit em cada respectiva posio. O cdigo binrio natural e o cdigo BCD so cdigos ponderados de pesos 8, 4, 2 e 1. Represente os dez algarismos decimais nos cdigos ponderados seguintes: 1. 2, 4, 2, 1. 2. 5, 4, 2, 1. 3. 8, 4, 2, 1.

41`H! E71mHfE#EmE("d` # 3 G #  ( 1 C )! 9! 7 4 3 1 )  &  


42

 I

} ~

|S

Os sistemas digitais, como j foi referido, assentam na utilizao de circuitos electrnicos que podem assumir, em cada momento, um de dois estados. No Captulo 1 vericou-se como possvel representar informao de vrios tipos usando grandezas binrias. A concepo e anlise de circuitos do tipo dos utilizados em sistemas digitais carece de ferramentas tericas que sirvam de base a tcnicas que permitam esse tipo de trabalho. Em muitos casos, os circuitos electrnicos bsicos devem desempenhar uma determinada funo lgica. Por exemplo, imagine-se um sistema de alarme de incndio que dever disparar quando a temperatura se encontrar acima de um patamar e um de dois sensores de fumo se encontrar activado. A realizao deste sistema passa por uma fase de anlise e especicao, seguida de uma possvel simplicao e implementao do resultado. A funcionalidade do sistema tipicamente especicada usando formalismos matemticos, dos quais o mais importante a lgebra de Boole. Do ponto de vista matemtico, a lgebra de Boole binria a teoria sobre a qual se suportam muitas das ferramentas prticas que so correntemente utilizadas em sistemas digitais. A lgebra de Boole binria ser apresentada na Seco 2.1. Aquela lgebra permite a utilizao de funes booleanas, tambm designadas por funes lgicas, que so essenciais para as metodologias de anlise e sntese de circuitos normalmente utilizadas. Formas de representao de funes lgicas sero apresentadas na Seco 2.2. Um aspecto central na concepo de circuitos digitais a minimizao das funes lgicas, no sentido de reduzir a complexidade das expresses e, implicitamente, a complexidade dos circuitos usados para dar suporte a essas funes em sistemas digitais. Essa problemtica ser focada na Seco 2.3.

H diversas formas de abordar a lgebra de Boole. Do ponto de vista algbrico, a maneira mais correcta consiste na denio axiomtica de uma lgebra de Boole abstracta, com a consequente derivao da estrutura. Para os sistemas digitais, renar-se-ia ento a estrutura obtida para o caso da lgebra de Boole binria, isto , a dois valores, decorrendo da todas as propriedades interessantes no contexto dos sistemas digitais. A abordagem seguida neste livro diferente. A estrutura ir ser construda a partir do facto de se ter de trabalhar com entidades binrias, e a lgebra de Boole aparecer a posteriori.

& 1 ! 9 C &  3 ( } fHE~ d


45

i x

Dx

Como se referiu j, e se ver com um pouco mais de pormenor no Captulo 3, os circuitos electrnicos que so a base de sistemas digitais podem exibir em cada momento um valor de tenso de entre dois intervalos possveis. Essa situao pode ser encarada a um nvel de maior abstraco por uma grandeza que pode assumir dois valores. Esses valores so habitualmente referidos como 0 e 1. Repare-se que a grandeza no tem qualquer signicado numrico e os dois valores 0 e 1 no so nmeros. Repare-se, ainda, que, em vez de 0 e 1, se podia usar qualquer outro conjunto de duas designaes diferentes. So comuns as designaes alternativas F e T (do ingls, False e True ) ou L e H (do ingls, Low e High), por exemplo. Uma grandeza que pode assumir um de dois valores representada por uma varivel binria ou varivel lgica ou, ainda, varivel booleana. Do mesmo modo, aos valores 0 e 1 que a varivel booleana pode assumir chamam-se valores booleanos, valores binrios ou valores lgicos.

O universo de partida , portanto, o conjunto B = {0, 1}. Trata-se de um conjunto nito de dois elementos, o que vai permitir uma abordagem algbrica muito simples. Sobre este conjunto podem ser denidas funes denominadas funes lgicas, funes binrias ou funes booleanas. Como s h dois elementos no conjunto, o nmero de funes nito. O nmero de funes de uma varivel f (x), por exemplo, corresponde s diversas formas de fazer corresponder elementos do conjunto B a cada um dos dois elementos desse conjunto. O nmero de funes diferentes de uma varivel , como fcil de ver, quatro. Estas funes so descritas na Tabela 2.1.

f (x)

x=0 0 0 1 1

Repare-se que, ao contrrio do que acontece com o conjunto R dos nmeros reais ou at com o N dos nmeros inteiros, neste conjunto B as funes f (x) podem ser denidas

1!   (!  C # #  fHDE7 1E0   9 C

W D% % 8 1 % Dqp '" #3rf@39h53G(eg@h#@@g3dc (Q Y %WV CQ&C3% U


x=1 0 1 0 1 Funes lgicas de uma varivel. Expresso da funo f0 (x) = 0 f1 (x) = x f2 (x) = x f3 (x) = 1 Nome da Funo constante 0 identidade negao constante 1
46

pela indicao exaustiva dos seus valores para cada valor possvel da varivel x, uma vez que estamos perante um nmero no s nito, mas tambm muito limitado de possibilidades. , assim, possvel denir realmente uma funo de uma varivel pela indicao do seu valor para cada valor da varivel. Este tipo de tabelas designado por tabela de verdade ou simplesmente por tabela da funo. Tal acontece, por exemplo, com a funo f2 (x). Trata-se de uma funo que faz corresponder a cada valor x de B o outro valor do mesmo conjunto. Esta funo uma funo importante e tem a designao de negao, complementao ou ainda NOT. A designao desta funo decorre do estudo inicial de Boole, que estudou a lgebra das proposies em que a funo negao transformava uma armao falsa numa verdadeira, e vice-versa. Os valores falso e verdadeiro constituem o conjunto de dois valores, homlogo do conjunto B, que motivou Boole para iniciar o estudo deste tipo de lgebras. Das quatro funes de uma varivel, a negao a nica que, como veremos, assume relevo. De facto, f0 (x) e f3 (x) so as duas possveis constantes, f0 (x) = 0 e f3 (x) = 1, e a funo f1 (x) = x tambm trivial. Estas funes podem tambm ser representadas pela sua expresso lgica, como j foi feito para as trs funes triviais no pargrafo anterior. A negao, por sua vez, representada pela Expresso 2.1. f2 (x) = x (2.1)

Uma outra maneira de representar as funes lgicas gracamente. A negao gracamente representada por um dos smbolos da Figura 2.1.

O facto de as funes lgicas poderem ser denidas pela sua tabela de verdade permite, no processo de algebrizao formal, encarar a hiptese de demonstrar teoremas por induo completa. bvio que tambm vlida a metodologia que permite realizar essas demonstraes por deduo a partir de um conjunto de axiomas, mas o facto de existir a alternativa citada , em si, um facto relevante com consequncias vrias.

& 1 ! 9 C &  3 ( } fHE~


x x 1 x

Y Q  D C%@3tqc

Representao grca da negao.

47

O que se disse pode ser exemplicado para um importante teorema, o teorema da dupla negao: x=x (2.2) A demonstrao por induo completa parte do facto de s existirem dois valores possveis para x. Se se vericar que, para cada um dos valores de x, a Expresso 2.2 se verica, ento o teorema ca demonstrado. A Tabela 2.2 permite organizar essa vericao. De facto, verica-se que, para os dois valores de x, a coluna x igual coluna x, o que demonstra por induo completa o teorema da dupla negao.

As funes lgicas de duas variveis f (x, y) so tambm em nmero limitado, como bvio, se bem que em maior quantidade. De facto, uma tabela de duas variveis tem 22 = 4 linhas, ou, pensando em termos mais abstractos, o nmero de conguraes possveis de duas variveis binrias 22 = 4; portanto, o nmero de funes ser de 24 = 16, uma vez que para cada funo teremos uma sequncia diferente de quatro grandezas binrias. As 16 funes esto representadas na Tabela 2.3.
AND

Algumas das funes apontadas na Tabela 2.3 so mais relevantes que outras no contexto das aplicaes ligadas aos sistemas digitais. A conjuno ou AND e a disjuno ou OR so, em particular, da maior relevncia.

A funo conjuno ou AND representada pela Expresso 2.3. f (x, y) = x y


48

1!   (!  C # #  fHDE7 1E0   9 C

FEgrfb3GG53h#@@g3dc RQ(Q D D% % 1 '"

0 )' " " 0 j 0 ' " @Ct3bbrX()(g3dc pi(Q

(QR(u#C3% U Y Q %WV b(g3d7 R`(Q '"c

Demonstrao do teorema da dupla negao. x 0 1 x 1 0 x 0 1

OR

(2.3)

x y

f (x, y)

0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1

0 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1

1 0 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1

1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

Normalmente, porm, sempre que no haja possibilidade de confuso entre o AND e a multiplicao numrica, usa-se a representao da Expresso 2.4 que d relevo ao facto de o AND ser uma funo com carcter algbrico de produto. f (x, y) = x y (2.4)

Muitas vezes, para simplicar ainda mais, suprime-se o sinal sempre que isso no cause confuso, como se representa na Expresso 2.5. f (x, y) = x y A tabela de verdade do AND individualizada na Tabela 2.4. A funo AND, designao mais corrente que conjuno, uma funo que deriva o seu nome do facto de, como se pode ver na tabela, a funo ser 1, apenas quando x = 1 e y = 1. tambm comum designar a conjuno por produto lgico. O AND gracamente representado por um dos smbolos da Figura 2.2. (2.5)

& 1 ! 9 C &  3 ( } fHE~

(`C&C3% U Y Q %WV

Funes lgicas de duas variveis. Expresso da Funo f0 (x, y) = 0 f1 (x, y) = x y f2 (x, y) = x y f3 (x, y) = x f4 (x, y) = x y f5 (x, y) = y f6 (x, y) = x y f7 (x, y) = x y f8 (x, y) = x y f9 (x, y) = x y f10 (x, y) = y f11 (x, y) = x y f12 (x, y) = x f13 (x, y) = x y f14 (x, y) = x y f15 (x, y) = 1 Nome da Funo constante 0 conjuno ou AND implicao negada identidade implicao negada identidade disjuno exclusiva ou XOR disjuno ou OR
NOR

equivalncia negao implicao negao implicao


NAND

constante 1

49

Tabela de verdade da funo conjuno de duas variveis. x 0 0 1 1 y 0 1 0 1 xy 0 0 0 1

H vrios teoremas 1 envolvendo a conjuno que so importantes. Listam-se alguns: Comutatividade da conjuno Associatividade da conjuno Idempotncia da conjuno Elemento neutro da conjuno Elemento absorvente da conjuno Complemento xy =yx (x y) z = x (y z) xx=x x1=x x0=0 xx=0 (2.6) (2.7) (2.8) (2.9) (2.10) (2.11)

A outra funo j referida, que em conjunto com o AND , como se ver na Seco 2.1.9, importante na denio da lgebra de Boole, o OR ou disjuno. A expresso lgica da
1 Na

Seco 2.1.9 analisar-se- em que contexto alguns destes teoremas o so realmente.

1!   (!  C # #  fHDE7 1E0   9 C

CQCb3gqDc Y Q %

0)'" 0 '" @Cg3!yFD()(g3dc R(Q

Y(iRC&C3% U Q %WV

x y

x xy y

&

xy

Representao grca da conjuno.

50

funo disjuno ou OR est representada na Expresso 2.12 f (x, y) = x y (2.12)

Normalmente, porm, sempre que no haja possibilidade de confuso entre o OR e a soma numrica, usa-se a representao da Expresso 2.13, que d relevo ao facto do OR ser uma funo com carcter algbrico de soma. f (x, y) = x + y A tabela de verdade do OR representada agora isoladamente na Tabela 2.5. (2.13)

Tabela de verdade da funo disjuno de duas variveis. x 0 0 1 1 y 0 1 0 1 x+y 0 1 1 1

A disjuno ou OR uma funo que deriva o seu nome do facto de a funo ser 1 quando x = 1 ou y = 1. tambm comum designar a disjuno por soma lgica. O OR gracamente representado por um dos smbolos da Figura 2.3.

x y

Tal como no caso da conjuno, h vrios teoremas referentes disjuno que so importantes: Comutatividade da disjuno x+y =y+x Associatividade da disjuno (x + y) + z = x + (y + z) (2.15) (2.14)

& 1 ! 9 C &  3 ( } fHE~

Y Q % D C`Cb3gqc

Y Q %WV CC&C3% U

x x+y y

>1

x+y

Representao grca da disjuno.

51

Idempotncia da disjuno x+x=x Elemento neutro da disjuno x+0=x Elemento absorvente da disjuno x+1=1 Complemento x+x=1 (2.19) (2.18) (2.17) (2.16)

Como se pode ver dos dois conjuntos de teoremas apresentados para a conjuno e disjuno, para cada expresso vlida num dos conjuntos, existe uma expresso no outro que se obtm a partir da primeira, trocando entre si o par de valores 0 e 1 e o par de operadores AND e OR. Por exemplo, considerando o teorema do elemento neutro do produto lgico, x 1 = x, e substituindo o 1 pelo 0 e o operador pelo +, obtm-se x + 0 = x, que o teorema do elemento neutro da soma lgica. Essa situao comum no tipo de estrutura algbrica que aqui se apresenta e resulta do princpio da dualidade. O princpio da dualidade arma, precisamente, que, se se verica que uma expresso em termos de AND, OR e NOT verdadeira, tambm o a expresso que se obtm por troca de todos os operadores AND por OR, de todos os operadores OR por AND, de todos os valores 0 por 1 e de todos os valores 1 por 0. O princpio da dualidade resulta de uma certa simetria que existe entre as operaes conjuno e disjuno, patente nas respectivas tabelas. De facto, a conjuno ou AND uma funo em que o resultado s 1 quando as duas variveis so 1. Simetricamente, a disjuno ou OR s tem resultado 0 quando as duas variveis da funo so 0. Ao longo de todo o desenvolvimento da matria se poder observar que esta simetria, que est na base do princpio da dualidade, vai apresentar diversas manifestaes que suportam a oportunidade de observar sistematicamente a mesma realidade a partir de duas perspectivas simtricas.

Quando existem expresses lgicas que envolvem mais que uma operao, necessrio saber qual a prioridade na execuo das operaes. Por exemplo, na expresso x + y z,
52

1!   (!  C # #  fHDE7 1E0   9 C

#b(@@#a32@C3(#33"33CF1b@0Fbrq f(Q '% 1 0)'e % 1% D D

33(F1u3h(w0FCg"Fbrq Re(Q  1 % DW % %1 D e D

a ordem de execuo das operaes no irrelevante. Na Tabela 2.6 ilustra-se o que acontece para o caso de se realizar em primeiro lugar o AND ou o OR.

Tabela de verdade mostrando a ambiguidade da expresso x + y z. x 0 0 0 0 1 1 1 1 y 0 0 1 1 0 0 1 1 z 0 1 0 1 0 1 0 1 Prioridade ao OR 0 0 0 1 0 1 0 1 Prioridade ao AND 0 0 0 1 1 1 1 1

A ambiguidade eliminada pela utilizao de parnteses. Assim, se se pretender realizar primeiro o produto lgico de y e z, deve indicar-se x + (y z), enquanto que se se pretender executar primeiro a soma de x com y se deve representar (x + y) z. Para simplicar as expresses, porm, admite-se que o produto tem prioridade sobre a soma (como usual na lgebra clssica) e, portanto, no primeiro caso apresentado podem suprimir-se os parnteses.

Dois dos teoremas fundamentais que envolvem o AND e o OR simultaneamente so o par de teoremas referentes distributividade. A existncia de dois teoremas de distributividade, sendo um da soma em relao ao produto, e o outro, do produto em relao a soma, compatvel com o princpio da dualidade. Esses dois teoremas so o teorema da distributividade do produto em relao soma (Expresso 2.20), x (y + z) = x y + x z e o teorema da distributividade da soma em relao ao produto (Expresso 2.21). x + y z = (x + y) (x + z) (2.21) (2.20)

Qualquer dos teoremas apresentados nesta seco pode ser demonstrado por induo completa, semelhana do que se fez para o teorema da dupla negao. A demonstrao por induo completa para, por exemplo, o Teorema 2.21 est ilustrada na Tabela 2.7.

0 ' D  0 ' " " 0 j 0 1 " 0 " % 8  0 @)Cg"3Ft@)Cg3!bbr3tgWbbh39@# U mRCQ

& 1 ! 9 C &  3 ( } fHE~

Y Q %WV (eR(u#C3% U

53

Demonstrao do teorema da distributividade da disjuno em relao

conjuno.

x 0 0 0 0 1 1 1 1

y 0 0 1 1 0 0 1 1

z 0 1 0 1 0 1 0 1

Estas duas igualdades so importantes, uma vez que na aproximao axiomtica da lgebra de Boole elas so postulados denidores da estrutura algbrica, como se ver na Seco 2.1.9. Outros teoremas importantes envolvendo simultaneamente o AND e o OR so os seguintes: Absoro x+xy = x = x (2.22) (2.23)

Redundncia x+xy = = x+y xy (2.24) (2.25)

Consenso xy+yz+xz = = xy+xz (2.26) (2.27)

(x + y) (y + z) (x + z) Leis de Morgan x+y xy = =

1!   (!  C # #  fHDE7 1E0   9 C

YfCu#C3% U Q %WV

x+y 0 0 1 1 1 1 1 1

x+z 0 1 0 1 1 1 1 1

(x + y) (x + z) 0 0 0 1 1 1 1 1

yz 0 0 0 1 0 0 0 1

x+yz 0 0 0 1 1 1 1 1

x (x + y)

x (x + y)

(x + y) (x + z)

xy

(2.28) (2.29)

x+y

54

As leis de Morgan, em particular, so extremamente importantes, uma vez que permitem transformar expresses em termos de somas em expresses em termos de produtos a menos de uma negao, como se ilustra, por exemplo, na Expresso 2.30.

xy+zw

Gracamente, a mudana de estrutura mais evidente. Na Figura 2.4 ilustra-se o mesmo exemplo.

x y x y + z w z w

x y (x + y) (z + w) z w

Exemplo de aplicao de uma das leis de Morgan.

A representao grca de uma funo como a feita no exemplo anterior tem o nome de logigrama da funo. O logigrama de uma funo , portanto, um dos modos de representar uma funo.

& 1 ! 9 C &  3 ( } fHE~


= xy+zw = = xyzw (x + y) (z + w) (2.30)

Y Q % D (iR(b3gFqc

55

Ao longo deste captulo tem vindo a construir-se, de maneira natural, uma estrutura algbrica a partir de um conjunto B de dois elementos e de algumas das funes que possvel denir sobre ele. Esta estrutura uma de um conjunto de estruturas designadas por lgebras de Boole. Na perspectiva que tem vindo a ser seguida, todas as propriedades anteriormente listadas so teoremas, uma vez que podem ser demonstradas a partir da denio das funes sobre o conjunto B. At aqui foi usado o mtodo de induo completa para demonstrar esses teoremas. Os teoremas no so, contudo, independentes entre si e alguns podem ser demonstrados por deduo a partir de outros. No exemplo seguinte ilustra-se como se pode demonstrar por deduo o teorema representado na Expresso 2.31. x+xy =x+y (2.31) De facto, utilizando a distributividade, verica-se que x + x y = (x + x) (x + y) Mas, considerando que x + x = 1, resulta que x + x y = 1 (x + y) De acordo com a comutatividade, vem x + x y = (x + y) 1 E, em virtude do teorema do elemento neutro do produto lgico, x+xy =x+y o que demonstra o teorema. Um outro modo de encarar a denio de uma lgebra de Boole ser a denio de um conjunto de postulados da estrutura algbrica, sendo, a partir deles, deduzidos os teoremas que permitem a caracterizao da estrutura. Nessa perspectiva, uma lgebra de Boole um terno {B, , } de um conjunto B e duas operaes e sobre os elementos do conjunto, que cumpre os seguintes postulados:
56

1!   (!  C # #  fHDE7 1E0   9 C

W00  %V qW 1 W% 0 c 0 D Dk &bbPH531bCt&53398@2()('3F"lG Rn(Q


(2.32) (2.33) (2.34) (2.35)

P1: Se a, b B, ento ab P2: Se a, b, c B, ento a (b c) a (b c) = = (a b) (a c) (a b) (a c) (2.38) (2.39) ab = = ba ba (2.36) (2.37)

P3: O conjunto B inclui dois elementos, designados por 0 e 1, tais que, para cada a B, 0a=a0=a (2.40) (2.41) 1a=a1=a

P4: Para cada a B, existe um elemento a B designado por complemento de a, tal que, aa = = 1 0 (2.42) (2.43)

Desde que uma estrutura algbrica cumpra os postulados expostos, uma lgebra de Boole. O conjunto dos subconjuntos de um conjunto e as operaes reunio () e interseco (), por exemplo, constituem uma lgebra de Boole. As lgebras de Boole de 2 elementos so um caso particular. A lgebra que se deniu atrs , como se pode vericar, uma lgebra de Boole. Desse ponto de vista, todos os teoremas que foram apresentados podem ser deduzidos dos postulados agora expostos.

NAND

NOR

Para alm das funes base da lgebra de Boole (AND, OR e NOT), h, como se apresentou j, um certo nmero de outras funes de duas variveis denveis sobre o conjunto binrio {0, 1}. Duas outras importantes funes de duas variveis so o NAND (a negao do AND) e o NOR (a negao do OR). As expresses algbricas do Expresso 2.45.
NAND

& 1 ! 9 C &  3 ( } fHE~


aa

b(t3dc oCQ '"

e do

NOR

so respectivamente a Expresso 2.44 e a (2.44)

f (x, y) = x y
57

O NAND pode ser representado, mais simplesmente, pela Expresso 2.46. f (x, y) = x y (2.46)

A Tabela 2.8 repete aqui, por convenincia, a tabela de verdade das duas funes.

A representao grca da funo na Figura 2.6.

x y

x y

Estas funes so comutativas, mas no gozam da propriedade da associatividade nem da da distributividade. A sua importncia ser clara um pouco mais adiante.

1!   (!  C # #  fHDE7 1E0   9 C
f (x, y) = x + y (2.45)

Y Q %WV (mC&C3% U
x 0 0 1 1 y 0 1 0 1

Funes NAND e NOR. x y 1 1 1 0 x+y 1 0 0 0

NAND

ilustrada na Figura 2.5, e a da funo

NOR

x x y y

&

x y

Y Q  D (eR(%b3gFqc

CC%b3gqc Y Q  D

Representao grca do NAND.

x x+y y

>1

x+y

Representao grca do NOR.

58

XOR

A ltima funo de duas variveis apresentada a funo disjuno exclusiva ou, como tambm conhecida, XOR (do ingls, eXclusive OR). A tabela de verdade do XOR repetida, por convenincia, na Tabela 2.9.

A funo disjuno exclusiva tem essa designao por assumir o valor 1, apenas quando uma e s uma das variveis 1. A Expresso 2.47 a expresso lgica do XOR. f (x, y) = x y A representao grca do XOR est ilustrada na Figura 2.7. (2.47)

x y

A disjuno exclusiva uma funo comutativa e associativa. Outros teoremas mais especcos e de grande interesse prtico esto representados nas Expresses 2.48 e 2.49. xy = xy+xy (2.48) (2.49)

xy

Estes dois teoremas permitem relacionar a disjuno exclusiva com a conjuno, a disjuno e a negao e represent-la em termos dessas funes.

& 1 ! 9 C &  3 ( } fHE~

Y Q %WV (nCu#C3% U

Y Q  D f(%b3gFqc

@Ct3dc CQ 0)'"

Funo XOR. xy 0 1 1 0

x 0 0 1 1

y 0 1 0 1

x xy y

=1

xy

Representao grca do XOR.

(x + y) (x + y)

59

Os dois teoremas ilustrados nas Expresses 2.50 e 2.51 permitem uma nova perspectiva do XOR. x0 = = x x (2.50) (2.51)

Considerando que uma das variveis pode ser usada para controlar a funo (c), e a outra ser a varivel de entrada (x), o XOR y = x c pode ser visto como uma negao controlada. De facto, se c = 0, vir y = x, e se c = 1, vir y = x. Outro interessante teorema est denido na Expresso 2.52. xy =xy =xy (2.52)

Este teorema mostra que a negao do XOR igual ao XOR de uma das variveis negada com a outra varivel. Tem como consequncia bvia o teorema da Expresso 2.53. xy =xy (2.53)

Nas seces anteriores foram estudadas as funes lgicas de uma e duas variveis e foi apresentada a lgebra de Boole, estrutura matemtica que d suporte sua utilizao e manipulao. Com base na lgebra de Boole possvel generalizar os conceitos apresentados a funes com mais de duas variveis. Algumas das funes apresentadas so facilmente generalizveis. o caso das funes conjuno e disjuno. A funo conjuno de trs entradas denida, aproveitando a associatividade, pela Expresso 2.54. x y z = (x y) z = x (y z) A generalizao para n variveis imediata. Do mesmo modo, para a disjuno, a denio feita pela Expresso 2.55 x + y + z = (x + y) + z = x + (y + z) (2.55) (2.54)

Noutros casos necessrio proceder com mais cuidado. No caso do NAND e NOR, por exemplo, em que essas duas funes no so associativas, a denio parte das funes conjuno e disjuno e aproveita o facto de essas duas serem, como vimos, funes associativas, como se ilustra nas Expresses 2.56 e 2.57. x y z = (x y) z = x (y z) (2.56) (2.57)

x + y + z = (x + y) + z = x + (y + z)

1!   (!  C # #  fHDE7 1E0   9 C
x1

3rf@3 3Gb(g3dc E(Q D D% 1 '" Q


n 60

A disjuno exclusiva, por outro lado, no tem generalizao para mais de duas variveis. possvel, agora, denir funes com n variveis, usando as funes anteriores. Por exemplo, a funo representada na Expresso 2.58 uma funo de quatro variveis denida atravs de uma expresso lgica. f (x, y, z, w) = x y + x y z + (x y + w) + (x y z) (2.58)

Nas expresses lgicas envolvendo a disjuno exclusiva, a funo conjuno tem prioridade sobre a disjuno exclusiva, pelo que no h ambiguidade no ltimo termo da Expresso 2.58. No denida qualquer ordem de prioridade entre a disjuno e a disjuno exclusiva, o que obriga, nesses casos, ao uso de parnteses. Claro que se podem tambm representar funes de n variveis atravs da sua tabela ou de um logigrama. A Figura 2.8 e a Tabela 2.10 so duas outras representaes da funo denida pela Expresso 2.58. Repare-se no smbolo do OR usado na gura que comum quando o nmero de entradas o impe. Do mesmo modo, o smbolo do AND pode ser alterado para acomodar um maior nmero de entradas, como se ilustra para o caso de cinco variveis na Figura 2.9.

x y

Representao grca da funo denida pela Expresso 2.58.

& 1 ! 9 C &  3 ( } fHE~


f (x, y, z, w)

Y Q  D (mR(%b3gFqc

61

O conjunto de teoremas apresentados nas seces anteriores permite manipular algebricamente expresses lgicas, quer para as simplicar, quer para obter expresses equivalentes que cumpram determinados critrios. Nesta seco sero apresentados exemplos dos dois tipos de manipulao. Como atrs se referiu, a funo conjuno pode ser representada de trs formas diferentes em termos de expresso lgica. A conjuno de duas variveis x e y pode ser representada por x y, ou mais geralmente por x y e at, quando no haja possibili62

1!   (!  C # #  fHDE7 1E0   9 C

3%Cegq@hb!!532((@u3g% E(Q D p     1 0)'%W D " `

Yo Q %W V @l(&(% U Y Q % D (nR(b3gFqc

Tabela da funo denida pela Expresso 2.58. x 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 y 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 z 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 w 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 f (x, y, z, w) 0 0 1 1 0 0 1 1 1 0 1 1 1 1 1 1

v w x y z

v w x y z

Smbolo de uma conjuno de cinco variveis.

dade de confuso, por x y. A partir desta seco, a menos que seja necessrio proceder de outro modo, utilizar-se- sistematicamente a terceira forma, mais comum, de representar a conjuno ou AND. A questo da simplicao de expresses do maior interesse, pois, como se ver adiante, a implementao de circuitos que concretizem funes lgicas conduz a estruturas com maior ou menor nmero de componentes, de acordo com a complexidade das expresses que denem as funes. Considere-se a ttulo de exemplo a simplicao da Expresso 2.59 de uma funo lgica de trs variveis: f (a, b, c) = a b c + b c + a c (2.59) Por aplicao da comutatividade (Expresso 2.6), obtm-se, f (a, b, c) = c a b + c b + c a (2.60)

Tendo em conta a distributividade do produto em relao soma (Expresso 2.20), temos f (a, b, c) = c (a b + b) + c a (2.61) Da comutatividade (Expresso 2.6) e do Teorema 2.24 resulta que f (a, b, c) = c (a + b) + c a Aplicando de novo a distributividade do produto em relao soma: f (a, b, c) = c (a + b + a) (2.63) (2.62)

Tendo, de novo, em considerao a comutatividade (Expresso 2.6) e, ainda, o Teorema 2.19, vem f (a, b, c) = c (1 + b) (2.64) e, portanto (Expresso 2.6, Expresso 2.18 e Expresso 2.9), f (a, b, c) = c (2.65)

Neste caso verica-se que a funo de trs variveis inicial s nominalmente o , uma vez que, como se verica, cou reduzida funo trivial da Expresso 2.65. Outro exemplo a simplicao da expresso da funo usada como exemplo na seco anterior (Expresso 2.58). Desta vez, deixado como exerccio a identicao dos diversos teoremas usados.

& 1 ! 9 C &  3 ( } fHE~


63

f (x, y, z, w)

Como fcil de ver, a manipulao da expresso permitiu obter uma expresso muito mais simples, que tambm se reecte no logigrama da Figura 2.10, com muito menos operadores e com uma complexidade muito inferior da Figura 2.8.

x y z w f (x, y, z, w)

Representao grca da funo denida pela Expresso 2.66.

Como se referiu, por vezes a manipulao de expresses lgicas tem como m a obteno de determinadas formas e no a sua simplicao. Como exemplo, considere-se a manipulao da Expresso 2.67 para obter uma representao utilizando apenas negaes e operadores de duas variveis de entrada: f (a, b, c, d) = a b d + a c d + a c d + a b d (2.67)

fcil, aplicando o teorema da distributividade do produto em relao soma, chegar Expresso 2.68. f (a, b, c, d) = a (b d + c d) + a (c d + b d) (2.68) Esta expresso utiliza apenas operadores de duas entradas, para alm de negaes. Essa estrutura , talvez, mais evidente na Figura 2.11. Outro exemplo o da manipulao da Expresso 2.69 para obter uma expresso da mesma funo, usando apenas NAND, e negaes. f (a, b, c, d) = (a b) c + b c d + a c (b + d)
64

1!   (!  C # #  fHDE7 1E0   9 C
= = = = = = x y + x y z + (x y + w) + (x y z) x y+y z+x y w+x y z+x y z x y+y z+x w+x y z x y+y z+x w+z x y+x w+z (2.66) (x + x z) y + (x + y + w) + x y z + x y z

@lCQb3gqc Yo % D

(2.69)

d b

c a f (a, b, c, d)

Representao grca da funo denida pela Expresso 2.68.

Aplicando o Teorema 2.48 e a distributividade do produto em relao soma (Expresso 2.20), obtm-se facilmente a Expresso 2.70. f (a, b, c, d) = = = (a b) c + b c d + a c (b + d)

Por aplicao do teorema da dupla negao (Expresso 2.2) e de uma das leis de Morgan (Expresso 2.28), obtm-se a Expresso 2.71, que a expresso pretendida. f (a, b, c, d) = = = a b c+a b c+b c d+a c b+a c d a b c+a b c+b c d+a c b+a c d a b c a b c b c d a c b a c d (2.71)

Como se viu, h diversas formas de representao de funes lgicas, nomeadamente pela sua expresso lgica, pela sua tabela ou pelo seu logigrama. Considere-se, a ttulo de exemplo, a funo representada pela Expresso 2.72.

65

ih x

& 1 ! 9 C &  3 ( } fHE~

Y Q % D #(b3gFqc
FF

(a b + a b) c + b c d + a c (b + d) a b c+a b c+b c d+a c b+a c d

(2.70)

x yDx

A expresso indicada uma forma de representar a funo. No a nica. fcil de ver que a Expresso 2.73 igualmente uma representao da mesma funo f (a, b, c). f (a, b, c) = b (c + a) (2.73)

A Expresso 2.72 tem a forma de uma disjuno de conjunes. Expresses com este formato dizem-se estar na forma normal disjuntiva. Na forma normal disjuntiva, uma ou mais das conjunes pode estar reduzida a uma varivel eventualmente negada. A Expresso 2.73 tem a forma de uma conjuno de disjunes (uma das disjunes est reduzida varivel b). A este formato chama-se forma normal conjuntiva. semelhana do caso anterior, uma ou mais das disjunes podem estar reduzidas a uma varivel, negada ou no. Uma outra forma de representar a funo pela sua tabela. A obteno da tabela de uma funo a partir da sua expresso relativamente fcil. Obtm-se tabelas para partes da expresso da funo que sejam fceis de obter por serem operadores simples e, a partir da, constri-se a tabela nal, operando sobre as tabelas parciais. No caso da funo em estudo, pode obter-se, por exemplo, a tabela de c, construindo, a partir dela, a tabela de b c e, em paralelo, a tabela de a b. Por m, pode obter-se a tabela da soma dos dois produtos, que a tabela pretendida. Na Tabela 2.11 est ilustrada a metodologia exposta.

A tabela de uma funo, ao contrrio da expresso, , como fcil de compreender, nica.

& ! 9 C  3 ( }   7 # 4 1 )  &     1fH&E~E3mH("d


f (a, b, c) = b c + a b (2.72)

Y Q %W #C&CV3% U
a 0 0 0 0 1 1 1 1 b 0 0 1 1 0 0 1 1

Construo da tabela de uma funo. c 0 1 0 1 0 1 0 1 c 1 0 1 0 1 0 1 0 b c 0 0 1 0 0 0 1 0 a b 0 0 0 0 0 0 1 1 f (a, b, c) 0 0 1 0 0 0 1 1

66

Uma terceira forma de representar uma funo o seu logigrama. Como o logigrama corresponde representao grca de uma expresso lgica, no h um logigrama nico para representar uma funo. No caso da funo em estudo, haver um logigrama para cada expresso possvel da funo. O logigrama correspondente Expresso 2.72 est representado na Figura 2.12.

b c f (a, b, c) a

Representao grca da funo denida pela Expresso 2.72.

Todas as formas de representar uma dada funo representam a mesma informao, sendo, portanto, possvel passar de cada uma delas a todas as outras. Se, por exemplo, se partir de uma expresso de uma funo, a obteno das outras duas formas , como se viu, fcil. De igual modo, a passagem do logigrama para uma expresso e seguidamente para a tabela no oferece quaisquer diculdades. J a obteno de uma expresso de uma funo a partir da sua tabela, no to imediata. Nas subseces seguintes, analisaremos esse problema.

Considere-se, de novo, a Tabela 2.11. Observando a tabela, fcil concluir que a funo representada tem valor 1 em trs posies da tabela e valor 0 nas restantes cinco posies. Pode-se concluir da que a funo f (a, b, c) representada pode ser considerada como a soma de trs funes fx (a, b, c), fy (a, b, c) e fz (a, b, c), em que cada uma destas funes representada por uma tabela com apenas uma linha com valor 1. A Tabela 2.12 ilustra, para alm da funo f (a, b, c), essas trs funes. As linhas da tabela esto numeradas de 0 a 7 para facilitar a identicao. Repare-se que a numerao de cada linha corresponde interpretao como um nmero binrio das conguraes das trs variveis lgicas a, b e c da respectiva linha. fcil perceber que f (a, b, c) = fx (a, b, c) + fy (a, b, c) + fz (a, b, c) (2.74)

& 1 ! 9 C &  3 ( } fHE~

"3!h3PbGCFe3"bg3v9@0c (QCQ % D$ D W% 80 4 % D p"%j % 8

YQ Q % D ((b3gFqc

67

Linha 0 1 2 3 4 5 6 7

A identicao das expresses das funes fx (a, b, c), fy (a, b, c) e fz (a, b, c) no to imediata. Mas, se se considerar a funo fz (a, b, c), fcil vericar que se trata de um AND de trs variveis: fz (a, b, c) = a b c (2.75) tambm possvel vericar que fy (a, b, c) uma funo que assume valor 1, apenas quando a = 1, b = 1 e c = 0, isto , quando a = 1, b = 1 e c = 1. Ento, fy (a, b, c) = a b c Do mesmo modo possvel concluir que fx (a, b, c) = a b c Das Expresses 2.74 a 2.77 fcil obter uma expresso da funo f (a, b, c): f (a, b, c) = a b c + a b c + a b c (2.78) (2.77) (2.76)

O mtodo utilizvel com generalidade e, portanto, sempre possvel denir a expresso de uma funo a partir da sua tabela. Este mtodo possibilita, assim, a obteno de uma expresso lgica de uma funo a partir da sua tabela de verdade. A expresso obtida no a expresso mais simples. Tem, no entanto, uma caracterstica muito importante: trata-se de uma forma normal disjuntiva em que todos os produtos envolvem todas as variveis da funo, ainda que algumas possam estar negadas. Os produtos deste tipo chamam-se mintermos ou termos mnimos. A expresso em termos de soma de mintermos nica. De facto, como a tabela de uma funo nica e esta

& ! 9 C  3 ( }   7 # 4 1 )  &     1fH&E~E3mH("d

Y Q %WV (QC&C3% U
a 0 0 0 0 1 1 1 1

Tabela das funes f (a, b, c), fx (a, b, c), fy (a, b, c) e fz (a, b, c). b 0 0 1 1 0 0 1 1 c 0 1 0 1 0 1 0 1 f (a, b, c) 0 0 1 0 0 0 1 1 fx (a, b, c) 0 0 1 0 0 0 0 0 fy (a, b, c) 0 0 0 0 0 0 1 0 fz (a, b, c) 0 0 0 0 0 0 0 1

68

expresso reecte, na sua estrutura, a estrutura da tabela, esta igualmente nica. Esta expresso tem o nome de primeira forma cannica ou forma cannica normal disjuntiva. Na forma cannica normal disjuntiva de uma funo, cada mintermo corresponde a uma linha da tabela, em que a funo assume o valor 1. Repare-se, uma vez mais, que cada mintermo corresponde a um dos valores 1 da funo. Por exemplo, o mintermo a b c corresponde ao 1 da ltima linha da tabela. usual numerar as linhas da tabela, como se fez na Tabela 2.12. Podemos, ento, referir cada um dos mintermos pelo nmero da respectiva linha da tabela. Por exemplo, o mintermo a b c poder ser designado por m7 . E, desse modo, podemos abreviar a Expresso 2.78 para f (a, b, c) = m2 + m6 + m7 (2.79) ou, de forma ainda mais abreviada, f (a, b, c) = m(2, 6, 7) (2.80)

Como evidente, esta conveno exige que seja assumida uma determinada ordem das variveis na tabela da funo. Nos exemplos referidos, a varivel a foi tomada como a varivel correspondente ao bit de maior peso, e a varivel c, ao de menor peso na numerao das linhas da tabela. A obteno da expresso de um mintermo a partir do seu nmero realiza-se fazendo a correspondncia do nmero em binrio com as diversas variveis ou as suas negaes. O mintermo m2 , por exemplo, corresponde posio da linha 2 da tabela, isto , linha em que a = 0, b = 1 e c = 0 (congurao 010 em binrio). Daqui se conclui que m2 = a b c. Inversamente, se se conhecer a expresso de um mintermo de uma funo, por exemplo, a b c, fcil concluir que a expresso s assume o valor 1 quando a = 1, b = 0 e c = 0, o que corresponde a 100 em binrio, correspondendo, portanto, linha 4 da tabela. Trata-se, pois, do mintermo m4 . A partir de uma tabela de uma funo no oferece, portanto, diculdade obter a forma cannica normal disjuntiva da funo representada, ainda que esta no seja em geral a expresso mais simples. forma cannica normal disjuntiva de uma funo corresponde, como evidente, um logigrama. No caso da funo em estudo, o logigrama correspondente est ilustrado na Figura 2.13. Considerando o que j foi dito sobre a estrutura da forma cannica normal disjuntiva, agora possvel concluir que, no logigrama correspondente a essa forma, cada operador AND corresponde tambm a uma das linhas da tabela da funo, em que esta assume o valor 1. fcil perceber, quer pela expresso da forma cannica normal disjuntiva, quer pela observao do logigrama correspondente, que a funo representada, se no tivermos

& 1 ! 9 C &  3 ( } fHE~


69

f (a, b, c).

em conta as negaes, por dois nveis de operadores. No primeiro nvel encontram-se conjunes e, no segundo, uma disjuno. usual designar este tipo de representao por representao a dois nveis. Como se ver, este tipo de representao de grande importncia. A no considerao das negaes como um terceiro nvel resulta de que, na prtica, muitas vezes as variveis esto disponveis, quer na forma no negada, quer na negada, no sendo necessrio, por isso, considerar explicitamente operadores de negao.

Na Seco 2.2.1 foi apresentado um processo de obter uma expresso de uma funo, a forma normal disjuntiva, a partir da sua tabela. Como se viu, a expresso construda atravs da soma dos seus mintermos, correspondendo estes s posies da tabela em que a funo assume o valor 1. O princpio da dualidade permite, porm, antever que um mtodo inteiramente semelhante possvel, partindo agora das conguraes de variveis em que a funo vale 0. De facto, repetindo a tabela da funo, isolando agora os valores 0, obtm-se a Tabela 2.13. Cada uma das funes Mi tem na sua tabela apenas um 0, que corresponde a uma das possveis conguraes de variveis. Por exemplo a funo M 0 assume o valor 0, apenas para a congurao a = b = c = 0 e, como fcil de ver, corresponde ao OR das variveis: M0 = a + b + c
70

& ! 9 C  3 ( }   7 # 4 1 )  &     1fH&E~E3mH("d


a b c f (a, b, c)

33bbTj9@7Ceg@trjvPbc RQ(RQ(Q % D$ " " 0 W % 8 0 4 % D " p " % % 8 0

C`E(%b3gFqDc Y Q 

Logigrama correspondente forma cannica normal disjuntiva de

(2.81)

Tabela da funo f (a, b, c) e dos seus maxtermos. b 0 0 1 1 0 0 1 1 c 0 1 0 1 0 1 0 1 f (a, b, c) 0 0 1 0 0 0 1 1 M0 0 1 1 1 1 1 1 1 M1 1 0 1 1 1 1 1 1 M3 1 1 1 0 1 1 1 1 M4 1 1 1 1 0 1 1 1 M5 1 1 1 1 1 0 1 1

Linha 0 1 2 3 4 5 6 7

a 0 0 0 0 1 1 1 1

Do mesmo modo, M1 M3 M4 M5 = = = = a+b+c a+b+c a+b+c a+b+c (2.82) (2.83) (2.84) (2.85)

Cada uma destas funes designada por maxtermo ou termo mximo. Maxtermos so somas lgicas em que esto representadas todas as variveis da funo, ainda que possam estar negadas. A obteno da expresso do maxtermo a partir do seu nmero semelhante ao que se observou no caso dos mintermos, mas aqui com as alteraes impostas pelo princpio da dualidade. Assim, por exemplo, o maxtermo M3 o maxtermo que s assume o valor 0 quando a = 0, b = 1 e c = 1. Isto corresponde congurao binria 011. A funo M 3 assume, portanto, o valor 1 quando a = 1 ou b = 0 ou c = 0. Da que M3 = a + b + c. A expresso da funo pode ser obtida por conjuno dos diversos maxtermos: f (a, b, c) = (a + b + c) (a + b + c) (a + b + c) (a + b + c) (a + b + c) (2.86)

Esta expresso, em termos de produto de maxtermos, tem o nome de segunda forma cannica ou forma cannica normal conjuntiva e, tal como no caso da forma cannica normal disjuntiva, nica. Na forma cannica normal conjuntiva de uma funo cada maxtermo corresponde a uma linha da tabela em que a funo assume o valor 0. Na Figura 2.14 representa-se o logigrama correspondente forma normal conjuntiva da funo como descrita na Expresso 2.86.

& 1 ! 9 C &  3 ( } fHE~

Y` Q %WV CE(u#C3% U

71

a b c

f (a, b, c).

Do mesmo modo que acontece no caso da forma cannica normal disjuntiva, possvel indicar a expresso de forma abreviada por indicao dos maxtermos de que feito o produto: f (a, b, c) = M0 M1 M3 M4 M5 (2.87) ou, de maneira ainda mais abreviada, f (a, b, c) = M (0, 1, 3, 4, 5) (2.88)

Tal como no caso da forma normal disjuntiva, esta representao uma representao a dois nveis.

& ! 9 C  3 ( }   7 # 4 1 )  &     1fH&E~E3mH("d


f (a, b, c)

Y Q  @i(%b3gFqDc

Logigrama correspondente forma cannica normal conjuntiva de

72

Repare-se que, para qualquer funo, em cada linha da tabela existe, em alternativa, um 0 ou um 1. Isso signica que se essa linha corresponde a um mintermo da funo no pode corresponder a um maxtermo, e vice-versa. Tal como na tabela, se se conhecerem todas as linhas a 1, conhecem-se implicitamente todas as linhas a 0; se se conhecer a forma cannica normal disjuntiva de uma funo, conhece-se a forma cannica normal conjuntiva, e vice-versa. Por exemplo, para a funo f (a, b, c) = m(0, 3, 6), possvel concluir de maneira imediata que f (a, b, c) = M (1, 2, 4, 5, 7). assim possvel obter directamente a expresso da forma cannica normal disjuntiva (Expresso 2.86) a partir da forma cannica normal conjuntiva (Expresso 2.78). O processo inverso anlogo.

As duas seces anteriores apresentaram os procedimentos para obter uma expresso lgica de uma funo a partir da sua tabela. O mtodo usado, para obter as formas cannicas normais disjuntiva e conjuntiva, conduz a expresses em que apenas so utilizadas as funes negao, disjuno e conjuno. Como no se fez qualquer restrio ao tipo possvel de funes, qualquer funo de qualquer nmero de variveis pode ser submetida ao procedimento apresentado, sendo este, portanto, geral. Uma consequncia bvia da maior importncia que qualquer funo lgica pode ser representada por uma expresso utilizando apenas funes do tipo das indicadas, isto , negaes, disjunes e conjunes. Um conjunto de funes que permite, quando utilizado em expresses lgicas, representar qualquer outra funo chama-se conjunto completo. O conjunto {negao, conjuno, disjuno} , ento, um conjunto completo. H diversos outros conjuntos completos, incluindo dois subconjuntos do conjunto anterior. Dois conjuntos completos assumem, porm, grande importncia. Trata-se do conjunto constitudo apenas pela funo NAND e do conjunto constitudo pela funo NOR. Se for possvel representar qualquer das trs funes negao, conjuno e disjuno apenas por funes NAND ou NOR, considerando que qualquer funo pode ser representada por aquelas trs funes, ca provado que qualquer funo se pode representar usando apenas funes NAND ou NOR. fcil fazer a prova. Exemplica-se para o caso do NAND (o caso do NOR seria semelhante). Considere-se a funo negao. Recorrendo ao teorema da idempotncia (Expresso 2.8)

0 ' c 1 0 p 8 1 "% ' " c 1 0)'%$   @)Cg"3d532FD U !SG03g3Gh#@@g3d532(((&"#! `R(QCQ

& 1 ! 9 C &  3 ( } fHE~


73

fcil vericar a Expresso 2.89. x=x x Mas x x a funo NAND. Utilizando, agora, o teorema da dupla negao (Expresso 2.2) e a Expresso 2.89, possvel vericar que a conjuno pode ser facilmente representada, utilizando apenas NAND (Expresso 2.90). x y = = x y x y x y (2.90) (2.89)

Para a representao da disjuno, recorre-se de novo ao teorema da dupla negao e a uma das leis de Morgan (Expresso 2.28), como se ilustra na Expresso 2.91. x+y = = x+y x y (2.91)

A representao usando logigramas mais clara, como se pode ver na Figura 2.15.

x y

x y

, portanto, possvel representar qualquer funo por uma expresso lgica, utilizando apenas funes NAND ou NOR. A forma de fazer isso pode conduzir a expresses muito

& ! 9 C  3 ( }   7 # 4 1 )  &     1fH&E~E3mH("d


= x x y y

x y

x y

x y

x x+y y x+y

CE(b3gqFc Y Q % D

Representao das funes NOT, AND e OR com NANDs.

74

complexas se se proceder a partir de outra expresso, substituindo cada funo negao, conjuno e disjuno por NAND ou NOR, de acordo com as regras apresentadas. H, contudo, em alguns casos, formas mais simples e estruturadas de obter esse tipo de expresses. Se uma funo estiver representada em termos de forma normal disjuntiva, a aplicao do teorema da dupla negao e, seguidamente, de uma das leis de Morgan conduz directamente expresso em termos de NAND. Considere-se, a ttulo de exemplo, a funo anteriormente estudada, representada pela Expresso 2.72. A metodologia referida conduz Expresso 2.92. f (a, b, c) = = = b c+a b b c+a b b c c a b (2.92)

Da Expresso 2.86 por manipulao fcil encontrar a Expresso 2.93, que representa a mesma funo na forma normal conjuntiva, numa forma muito mais simplicada. f (a, b, c) = (a + b) (b + c) (2.93)

A partir desta expresso fcil obter uma expresso em termos de NOR, como se ilustra na Expresso 2.94. f (a, b, c) = (a + b) (b + c) (2.94)

A funo negao pode ser considerada como um caso particular de NAND e de NOR. Seria o NAND e o NOR de uma varivel. Por isso, quando se pretende representar funes em expresses lgicas s com uma daquelas funes, usam-se, muitas vezes, expresses no transformando as negaes. Assim as Expresses 2.92 e 2.94 seriam nesse caso representadas respectivamente pelas Expresses 2.95 e 2.96. f (a, b, c) g(a, b, c) = b c a b (2.95) (2.96)

Como evidente, pode aplicar-se a metodologia a uma expresso nas formas cannicas normais. Se se partir da forma cannica normal disjuntiva, obtm-se uma expresso

& 1 ! 9 C &  3 ( } fHE~


= (a + b) (b + c) = a+b+b+b+b+c+c = b+b+b+c
75

em termos de NAND, que se designa por terceira forma cannica. Se, por outro lado, se partir da forma cannica normal conjuntiva, obtm-se uma expresso, apenas em termos de NOR, designada por quarta forma cannica. As Expresses 2.97 e 2.98, em que, para no tornar a expresso mais complexa, no se substituram as negaes, so, respectivamente, a terceira e quarta forma cannica da funo f (a, b, c) = b c + a b, que temos vindo a estudar. f (a, b, c) f (a, b, c) = a b c a b c a b c = (2.97) (2.98)

Como se discutiu na Seco 2.1.13 possvel, utilizando as regras da lgebra de Boole, tentar obter expresses simplicadas de funes lgicas. Essa simplicao importante, uma vez que, como se ver, os diversos circuitos em sistemas digitais so implementados a partir de expresses lgicas das funes, e expresses mais simples conduzem a circuitos mais simples. O ideal mesmo obter as expresses mnimas das funes. Esse processo denomina-se minimizao de funes lgicas. Para casos complexos de funes com muitas variveis, pode ser extremamente difcil ou mesmo impossvel, mas para funes com um reduzido nmero de variveis, a determinao da expresso mnima relativamente fcil. Como, por vezes, existem vrias expresses com a mesma complexidade que no podem simplicadas, usa-se a designao expresso minimal e no a de expresso mnima para designar essa formas. Existem muitos graus de liberdade na obteno de expresses de funes, como se viu. Assim, aquilo que parece ser uma expresso minimal utilizando um determinado tipo de funes e um determinado tipo de estrutura para a expresso pode ser simplicado se optarmos por outras funes ou estruturas. Os mtodos que iro ser apresentados inicialmente aplicam-se obteno de expresses em termos de formas normais. Este tipo de expresso designa-se, como j foi referido na Seco 2.2.1, por expresso a dois nveis ou a duas camadas. H tcnicas que permitem a obteno de expresses a mais de dois nveis, embora no sejam tratadas neste livro. Um primeiro processo consiste, como bvio, na aplicao dos teoremas da lgebra de Boole para reduzir as expresses. No entanto, nem sempre fcil garantir que se minimiza uma expresso. Isso depende muito da experincia e percia de quem executa a minimizao. Considere-se, por exemplo, a funo representada na Expresso 2.99. f (a, b, c, d) = b (a c) + a b d + b c (a d) + a c d + a c d
76

& 1  9 C '!E&55`73f!GfH! G  & &     # 4 1 ! (


(a + b + c) + (a + b + c) + (a + b + c) + (a + b + c) + (a + b + c)

B
(2.99)

h ~ i x

z 7

g yDx

Para qualquer expresso h em geral muitas formas de atacar a simplicao. Seguidamente exemplica-se uma dessas formas. Aplicando o Teorema 2.48, obtm-se f (a, b, c, d) = a b c + a b c + a b d + a b c d + a b c d + a c d + a c d (2.100)

Considerando, agora, a distributividade do produto em relao soma (Expresso 2.20), f (a, b, c, d) = a b (c + d + c d) + a b c + a c (b d + d + d) Tendo em conta as Expresses 2.18, 2.19 e 2.24, vem f (a, b, c, d) = a b + a b c + a c E, por m (Expresses 2.20 e 2.24), f (a, b, c, d) = a b + b c + a c (2.103) (2.102) (2.101)

A Expresso 2.103 pode parecer uma expresso minimal da funo lgica considerada. No entanto, se se aplicar o teorema do consenso (Expresso 2.26), verica-se que se pode simplicar a expresso um pouco mais, obtendo a Expresso 2.104. f (a, b, c, d) = a b + a c que de facto uma expresso minimal da funo. Este exemplo simples mostra que, embora a manipulao algbrica das expresses permita simplic-las, seria mais interessante ter disponvel um mtodo para obter, de forma sistemtica, uma expresso minimal. Na seco seguinte vai estudar-se um primeiro mtodo com esse objectivo. (2.104)

Retome-se o exemplo da funo f (a, b, c) = b c + a b. Como se viu na Seco 2.2.1, essa funo representada pela Tabela 2.11, que se repete aqui no seu essencial. Como se viu, a leitura da tabela produz a Expresso 2.105 em forma cannica normal disjuntiva. f (a, b, c) = a b c + a b c + a b c (2.105)

& 1 ! 9 C &  3 ( } fHE~

g3@3753231bC$X (`CQ q%"% 1 0 0


77

possvel simplicar esta expresso, de modo a obter a expresso mais simplicada j conhecida. Assim: f (a, b, c) = = = = a b c+a b c+a b c a b c+a b c+a b c+a b c (a + a) b c + a b (c + c) b c+a b (2.106)

Do mesmo modo que a representao de funes pode ser feita indiferentemente de uma forma tabular ou com uma expresso lgica, o prprio processo de simplicao pode ser feito dos dois modos. Repare-se na forma como se chegou ao termo a b na Expresso 2.106. Isso conseguiu-se por juno dos mintermos a b c e a b c, mintermos 6 e 7 que correspondem s linhas 6 e 7 da tabela. Mas, na tabela, podemos observar que essas linhas tm uma particularidade: em ambas a funo vale 1 e, por outro lado, so as duas nicas linhas da tabela em que a e b so simultaneamente 1. A diferena entre as duas est na varivel c. Logo, pode concluir-se que, nesta funo, basta que a e b sejam 1 para que a funo assuma o valor 1. Da pode concluir-se que f (a, b, c) = a b + Podia ser feito o mesmo raciocnio para o outro produto. Mas, aqui, as linhas em causa so a 2 e a 6. fcil de ver que, aqui, basta que b seja 1 e c seja 0 para concluir que a funo vale 1. Podemos ento simplicar directamente a funo por observao da tabela, associando linhas em que a funo assuma o valor 1 e que diram apenas de uma varivel: no primeiro produto associmos as linhas 6 e 7. que diferem apenas na varivel c, e no segundo associmos 2 e 6, que diferem apenas na varivel a. Denem-se como adjacentes, linhas que diferem apenas de uma varivel.

& 1  9 C '!E&55`73f!GfH! G  & &     # 4 1 ! (

Yi %WV (CQ&C3% U

Tabela da funo f (a, b, c) = b c + a b. a 0 0 0 0 1 1 1 1 b 0 0 1 1 0 0 1 1 c 0 1 0 1 0 1 0 1 f (a, b, c) 0 0 1 0 0 0 1 1

Linha 0 1 2 3 4 5 6 7

78

Para aplicao da metodologia apresentada, claro que facilitaria a leitura da expresso a partir da tabela, como aconteceu no primeiro caso, que todas as posies que diferem apenas no valor de uma varivel estivessem sicamente adjacentes. Mas, para funes de trs variveis, cada posio tem sempre trs posies adjacentes, e isso impossibilita que, numa tabela com a estrutura da Tabela 2.14, todas as adjacncias estejam contguas. Isso levou a alterar a estrutura, de modo que se satiszessem estes requisitos, obtendo-se uma nova organizao em que cada clula da tabela adjacente a clulas que diferem apenas no valor de uma varivel. Esse novo tipo de tabela o mapa de Karnaugh. Uma possvel estrutura de um mapa de Karnaugh para funes de trs variveis a, b e c est representada na Figura 2.16.

bc 00 0 1
0 4

O mapa de Karnaugh uma tabela de duas entradas, em que a codicao das diversas variveis em cada uma das duas dimenses das entradas feita segundo o cdigo reectido. Isso conduz directamente a que cada posio na tabela tenha sempre sicamente justapostas, quer na horizontal, quer na vertical, posies adjacentes. A contrapartida uma maior complexidade na numerao das posies da tabela. No mapa ilustrado na Figura 2.16 est indicado, para cada posio, o nmero da linha da tabela de verdade correspondente. Repare-se que, agora, cada posio tem justapostas as trs posies adjacentes. Por exemplo, se considerarmos o mintermo m5 = a b c, correspondente posio 5 na tabela e no mapa de Karnaugh, as trs posies adjacentes correspondem a m 1 = a b c, que se encontra no mapa na posio imediatamente acima, m7 = a b c, que se encontra no mapa na posio imediatamente direita, e m4 = a b c, na posio imediatamente esquerda no mapa. No mapa de Karnaugh, tudo se passa como se as posies laterais estivessem encostadas, o que se conseguiria com o mapa desenhado sobre um cilindro de eixo vertical. Por exemplo, o mintermo m0 corresponde posio 0 do mapa cujas posies adjacentes
79

& 1 ! 9 C &  3 ( } fHE~

3rfD@3# U 3Xg3@3"3%G531 D  % s  1 q %   % %
01
1 5

11
3 7

10
2 6

Ye Q  D (E(%b3gFqc

Mapa de Karnaugh de trs variveis.

so a posio 4, imediatamente abaixo, a posio 1, imediatamente direita, e a posio 2 (que seria esquerda, isto , que se situa na outra extremidade da linha do mapa). Uma outra maneira de visualizar as adjacncias no mapa de Karnaugh relacion-las com eixos de simetria correspondentes posio dos espelhos no cdigo reectido. Na Figura 2.17 repete-se o mapa da Figura 2.16, assinalando os eixos de simetria.

O eixo 1 evidencia a simetria entre as posies indicadas nos seguintes pares: (0, 2), (1, 3), (4, 6) e (5, 7). O eixo 2 evidencia a simetria entre as posies agrupadas nos pares (0, 4), (1, 5), (3, 7) e (2, 6). O eixo 3 est ligado aos pares (0, 1) e (4, 5), e o eixo 4, aos pares (2, 3) e (6, 7). A funo que tem vindo a considerar-se est ilustrada no mapa representado na Figura 2.18.

agora possvel observar no mapa as adjacncias e marc-las com a utilizao de laos que se encontram representados na Figura 2.19. Nessa gura est ainda representada a leitura do produto simplicado correspondente a cada lao.

& 1  9 C '!E&55`73f!GfH! G  & &     # 4 1 ! (


a bc 00 0 2 1
0 4

1 01
1 5

11
3 7

10
2 6

Ym % D (E(Qb3gFqc

Yf Q % D #C@3tqc

Mapa de Karnaugh de trs variveis assinalando os eixos de simetria.

bc 00 0 1 0 0
0 4

01 0 0
1 5

11 0 1
3 7

10 1 1
2 6

Mapa de Karnaugh da funo f (a, b, c).

80

bc 00 0 1 0 0 01 0 0 11 0 1 10 1 1 ab bc

Leitura do mapa de Karnaugh da funo f (a, b, c).

A leitura da expresso de cada produto resulta da observao de quais so as variveis que se mantm constantes nas posies abraadas pelos laos. Por exemplo, no grupo lido como a b, fcil de observar que a varivel a assume o valor 1 em ambas as posies e que, de igual modo, a varivel b assume tambm o valor 1. A varivel c, pelo contrrio, vale 0, na posio 6, e 1 na posio 7. Conclui-se que o valor do produto no sensvel varivel c e que s assume o valor 1 quando simultaneamente a = 1 e b = 1, isto , quando a b = 1 e corresponde, portanto, ao produto a b. De igual modo fcil vericar que o outro lao assume o valor 1, apenas quando b = 0 e c = 1, sendo insensvel ao valor de a, correspondendo, portanto, ao produto b c. Do mapa l-se, portanto, directamente a Expresso 2.107. f (a, b, c) = b c + a b (2.107)

, portanto, possvel ler directamente do mapa de Karnaugh a expresso simplicada da funo. So vlidas no mapa de Karnaugh todas as associaes em laos que agrupem duas posies adjacentes no s no sentido formal do termo, mas tambm no de localizao contgua no mapa. No obrigatrio que o mapa de Karnaugh tenha as variveis distribudas da maneira indicada na Figura 2.16, nem que tenha o formato apresentado na mesma gura. Por um lado, as variveis podem ser distribudas de outro modo, desde que utilizando o cdigo binrio reectido e, por outro, o mapa pode ser representado ao alto com 4 linhas de 2 posies ou at noutras conguraes. Alguns exemplos alternativos de representao do mapa de Karnaugh para funes de trs variveis esto representados na Figura 2.20. Como natural, a correspondncia entre as posies do mapa e as linhas da tabela de verdade tambm alterada e, na mesma gura, essa correspondncia apresentada. Considere-se outro exemplo, representando a funo g(a, b, c) = m(0, 2, 4, 5, 6) num

& 1 ! 9 C &  3 ( } fHE~

CEC%@3tqc Yn Q  D

81

mapa de Karnaugh. A Figura 2.21 ilustra o respectivo mapa. fcil de ler no mapa a

funo dada pela Expresso 2.108. g(a, b, c) = a b + b c + b c (2.108)

Como evidente, porm, os dois termos nais podem ser associados colocando c em evidncia, obtendo-se a Expresso 2.109 mais simples que a anterior. g(a, b, c) = a b + c (2.109)

Ora isso legvel do Mapa de Karnaugh. De facto, os dois grupos de dois 1 nas pontas do mapa so adjacentes e podem juntar-se entre si para originar o mapa representado na Figura 2.22, onde fcil agora ler directamente a expresso mais simplicada. Repare-se que a leitura do produto correspondente ao lao de quatro posies obedece mesma losoa que no caso de duas posies. De facto, a nica varivel que constante

& 1  9 C '!E&55`73f!GfH! G  & &     # 4 1 ! (


a ab 00 0 1
0 1

bc 01
2 3

0
0 1 3 2

1
4 5 7 6

11
6 7

10
4 5

00 01 11 10

YQ(b3gFqc Q % D

@QCQ%btqc Yo  D

Variantes de representao do mapa de Karnaugh de trs variveis.

bc 00 0 1 1 01 0 1 11 0 0 ab
Mapa de Karnaugh da funo g(a, b, c).

10 1 1 bc

bc

82

bc 00 0 1 1 1 01 0 1 11 0 0 ab 10 1 c 1

Segunda leitura do mapa de Karnaugh da funo g(a, b, c).

nas quatro posies a varivel c com o valor 0. Assim, o produto ca reduzido a apenas uma varivel com o valor c. Num mapa de Karnaugh, um lao de quatro posies corresponde existncia de dois laos de duas posies adjacentes entre si. Dois laos so laos adjacentes quando cada posio de um deles adjacente a uma posio diferente do outro e no h posies comuns. No possvel associar quatro posies que no correspondam a dois laos adjacentes. Os laos a associar tm de corresponder a produtos cuja expresso difere apenas em uma varivel representada directamente num deles e negada no outro para se poder, de um ponto de vista algbrico pr em evidncia. assim interessante, quando da utilizao do mapa de Karnaugh para minimizar expresses lgicas, procurar obter os laos de maior dimenso possvel. Mas, como se ver adiante, este no um critrio absoluto. fcil de generalizar este procedimento para associar grupos adjacentes de quatro posies para formar grupos de oito posies. Em mapas correspondentes a funes com nmero maior de variveis possvel agrupar laos de oito posies para obter laos de 16 posies, e assim por diante. Repare-se que, uma vez que se agrupam sempre laos com o mesmo nmero de posies, se obtm sempre laos com uma dimenso que uma potncia de 2. Na Figura 2.23 representam-se algumas associaes ilegais no mapa de Karnaugh. Em (a) esto associados dois laos iguais de duas posies, mas os dois grupos no so adjacentes. A posio 1 de um dos grupos adjacente posio 3 do outro, mas as restantes posies no o so (a posio 2 no adjacente posio 5). Em (b) a situao semelhante. Assim, a posio 4 do lao da esquerda adjacente posio 5 do lao da direita, tal como a posio 5 do da esquerda adjacente posio 7 do lao da direita, mas h sobreposio, uma vez que a posio 5 comum aos dois laos. Finalmente em

& 1 ! 9 C &  3 ( } fHE~

YQ Q % D (#QCb3gqFc

83

bc 00 0 1 0 0 01 1 1
(a)

(c) associam-se dois laos de dimenses diferentes. At agora apenas se exemplicou a utilizao do mapa de Karnaugh para obter expresses na forma normal disjuntiva, associando mintermos. O princpio da dualidade (Seco 2.1.6) sugere, porm, que se podero associar maxtermos para obter expresses na forma normal conjuntiva. Considere-se, ento, de novo o mapa de Karnaugh da funo que temos vindo a estudar, procurando, agora, agrupar posies com valor 0. Obtm-se o mapa ilustrado na Figura 2.24.

& 1  9 C '!E&55`73f!GfH! G  & &     # 4 1 ! (


11 1 0 10 1 0 a bc 00 0 1 0 1 01 0 1
(b)

11 0 1

10 0 0

bc 00 0 1 1 1 01 1 1
(c)

11 1 1

10 0 0

Y` Q % D (QR(b3gFqc
a

Associaes ilegais no mapa de Karnaugh.

bc 00 0 1 1 1 a+c 01 0 1 11 0 0 10 1 1 b+c

Yi Q  D @#RQ(%b3gFqc

Mapa de Karnaugh da funo g(a, b, c) com associao de maxtermos.

84

possvel ler agora a Expresso 2.110. g(a, b, c) = (a + c) (b + c) (2.110)

Repare-se que, na leitura, tal como j tinha acontecido atrs na Seco 2.2.2, estamos agora a ler produtos (associaes de maxtermos), e as variveis, quando esto a 0, so lidas no negadas e, quando a 1, so lidas negadas. A Expresso 2.110 uma expresso minimal na forma normal conjuntiva. evidente que, para cada funo, podem obter-se dois tipos de expresses minimais. Trata-se de expresses minimais em termos de cada uma das formas normais. A funo que temos vindo a discutir tem uma expresso minimal, na forma normal disjuntiva (Expresso 2.109), e outra expresso minimal, na forma normal conjuntiva (Expresso 2.110).

O mapa de Karnaugh foi apresentado para trs variveis, mas pode ser usado, em teoria, com qualquer nmero de variveis. Na prtica, com mais de seis variveis torna-se muito difcil e h outros mtodos, de que veremos um exemplo na Seco 2.3.2, que, no entanto, assentam nos mesmos princpios do mtodo agora apresentado. O mapa de quatro variveis constri-se facilmente. A partir de um mapa de trs variveis, replica-se o quadro atravs de uma reexo num espelho imaginrio, obtendo-se um quadro com quatro linhas e quatro colunas. O espelho imaginrios referido constitui um novo eixo de simetria do mapa. As conguraes de variveis correspondem a um cdigo reectido, como se ilustra na Figura 2.25, em que se indica ainda a linha correspondente na tabela de verdade, para cada posio. Para alm de todas as adjacncias que j existiam, passam a ser vlidas as adjacncias determinadas pelo novo eixo de simetria introduzido. Na Figura 2.26 ilustram-se os eixos de simetria. Na Figura 2.27 mostram-se alguns exemplos de associaes vlidas no mapa de 4 variveis. Considere-se, a ttulo de exemplo, a funo f (a, b, c, d) = m(2, 3, 5, 7, 9, 11, 14, 15) de quatro variveis. A Figura 2.28 ilustra o correspondente mapa de Karnaugh. No mapa fcil ler a Expresso 2.111. f (a, b, c, d) = a b c + a b d + a b c + a b d (2.111)

primeira vista poderia parecer interessante juntar os quatro valores 1 da coluna assinalada num lao nico, que corresponderia ao produto c d. No entanto, para cobrir os

& 1 ! 9 C &  3 ( } fHE~

FDEgrfb32(CEa3Xg3@33G53%%  D% 0$% 1 q%"% 1 


85

restantes valores 1, haveria necessidade de associar cada um deles com um dos valores 1 do lao vertical. Verica-se, portanto, que esse lao seria redundante. No verdade, portanto, que, neste mtodo de minimizao, se deva sempre optar pelos laos de maior dimenso. Adiante se regressar a esta questo. Analise-se outro exemplo, partindo agora da especicao da funo por uma sua expresso lgica. Considere-se a funo representada pela Expresso 2.112. f (a, b, c, d) = a b c + a (c d) + a b c d + b (c d) + a b c (2.112)

A construo do mapa de Karnaugh para esta funo assenta no processo inverso ao

& 1  9 C '!E&55`73f!GfH! G  & &     # 4 1 ! (


cd ab 00 01 11 10 00
0 4 12 8

01
1 5 13 9

11
3 7 15 11

10
2 6 14 10

Y Q % D (QR(b3gFqc
cd ab 00 01 11 10

Mapa de Karnaugh de quatro variveis.

00
0 4 12 8

01
1 5 13 9

11
3 7 15 11

10
2 6 14 10

Y Q % D (e#Q(b3gqFc

Eixos de simetria no mapa de Karnaugh de quatro variveis.

86

cd ab 00 01 11 10 00 0 0 0 0 01 1 1 1 1 (a) cd ab 00 01 11 10 00 1 0 0 1 01 0 0 0 0 (c) 11 0 0 0 0 10 1 0 0 1 11 1 1 1 1 10 0 0 0 0

Exemplos de associaes vlidas no mapa de Karnaugh.

da leitura da expresso a partir do mapa. Para cada termo so assinaladas no mapa as posies que tm valor 1 para esse termo. Por exemplo, o primeiro termo a b c corresponde no mapa existncia de valores 1 nas posies em que a = b = c = 0, como se assinala no mapa da Figura 2.29. A marcao no mapa das posies correspondentes ao segundo termo parece mais difcil, uma vez que surge no termo uma disjuno exclusiva. O problema pode resolver-se aplicando o Teorema 2.48 e desdobrando o termo a (c d) em dois produtos. No entanto, possvel raciocinar directamente sobre o termo, se se tiver em conta que uma disjuno exclusiva uma funo que apenas exibe o valor 1 quando as duas variveis so diferentes. Assim, o termo em causa corresponde s posies em que, sendo a varivel a = 0, simultaneamente verdade que as varivais c e d so diferentes. Isso

& 1 ! 9 C &  3 ( } fHE~


cd ab 00 01 11 10 00 0 1 1 0 01 0 0 0 0 (b) cd ab 00 01 11 10 00 1 0 0 1 01 1 0 0 1 (d) 11 1 0 0 1 10 1 0 0 1 11 0 0 0 0 10 0 1 1 0

fQCb3gFqc Y Q % D

87

corresponde as posies assinaladas no mapa da Figura 2.30. fcil, portanto, construir o mapa de Karnaugh que representa a funo em estudo, que se ilustra na Figura 2.31. O mapa tem assinalados um conjunto de laos que permite ler a Expresso 2.113, que uma expresso minimal. f (a, b, c, d) = a c + a d + a b d + a b c (2.113)

A expresso obtida uma expresso minimal, mas no nica. De facto, se, em vez de se associar o mintermo m10 com o m11 , se associarem, por exemplo, os mintermos m10 e m2 , como se assinala na Figura 2.32, poder obter-se uma nova expresso para a funo, a Expresso 2.114.

& 1  9 C '!E&55`73f!GfH! G  & &     # 4 1 ! (


ab cd 00 00 01 11 10 0 0 0 0 01 0 1 0 1 11 1 1 1 1 10 1 0 1 0

Ym Q % D (QR(b3gFqc Yn Q  D (#Q(%b3gqFc

Mapa de Karnaugh da funo f (a, b, c, d).

cd ab 00 01 11 10
Mapa de Karnaugh com o termo a b c assinalado.

00 1

01 1

11

10

88

cd ab 00 01 11 10 00 01 1 1 11 10 1 1

Mapa de Karnaugh com o termo a (c d) assinalado.

cd ab 00 01 11 10 00 1 1 0 0 01 1 1 0 1 11 0 0 0 1 10 1 1 0 1

Mapa de Karnaugh representando a funo em estudo. (2.114)

f (a, b, c, d) = a c + a d + a b d + b c d

Existe ainda uma terceira variante com a Expresso 2.115, como se pode facilmente vericar. f (a, b, c, d) = a c + a d + b c d + a b c (2.115)

As trs expresses tm o mesmo grau de complexidade e so todas tomadas como expresses minimais da funo. Existem, portanto, funes com vrias expresses minimais.

& 1 ! 9 C &  3 ( } fHE~

Yo % D @`(Qb3gFqc YC`C@3tqc Q % D

89

Na continuao, o mtodo de Karnaugh vai ser estudado com um pouco mais de profundidade, e as questes que foram sendo deixadas em aberto vo ser analisadas numa perspectiva mais integrada. Uma melhor compreenso dos mecanismos apresentados vai permitir denir procedimentos mais adequados ao objectivo de minimizar expresses lgicas. O primeiro conceito importante o de implicao entre funes. Para funes das mesmas variveis, diz-se que uma funo f1 implica outra f2 com a representao f1 f2 , quando, para todas as conguraes de entrada em que a funo f 1 vale 1, a funo f2 tambm vale 1. Quando f1 um produto, diz-se ser um implicante da funo f2 . Num mapa de Karnaugh, de uma funo f , todos os produtos correspondentes a associaes vlidas de posies com valor 1 so implicantes. Por exemplo, na funo representada no mapa de Karnaugh da Figura 2.28, que se repete na Figura 2.33 por convenincia, o produto a b c um implicante da funo f (a, b, c, d), o que pode ser indicado por a b c f (a, b, c, d). Do mesmo modo, o produto c d um implicante da funo. Repare-se que o produto a c d, no representado por um lao no mapa, igualmente um implicante da funo f (a, b, c, d). De igual modo se pode observar que a c d c d. Repare-se, ainda, que todos os mintermos da funo so implicantes dessa funo. A implicao goza de transitividade, isto , se f1 f2 e f2 f3 , ento f1 f3 . O mintermo m3 = a b c d um dos implicantes do produto a b c f (a, b, c, d). Isto , m3 a b c f (a, b, c, d). e da funo

Um implicante que no implica nenhum outro implicante designa-se por implicante

& 1  9 C '!E&55`73f!GfH! G  & &     # 4 1 ! (


cd ab 00 01 11 10 00 1 1 0 0 01 1 1 0 1 11 0 0 0 1 10 1 1 0 1

g3@33G53131@C$X31@C@&a3(g3dc q%"%  0 0 0 0)'%$" 8%1 "


90

Y(#`(Q%b3gFqc Q  D

Mapa de Karnaugh alternativo representando a funo em estudo.

ab

primo ou implicante principal. No exemplo que tem vindo a utilizar-se, o implicante a b c um implicante primo, tal como o implicante c d. Pelo contrrio, o implicante a c d no um implicante primo, uma vez que a c d c d. A importncia dos implicantes primos decorre de eles corresponderem, no mapa de Karnaugh, s associaes maiores, que no podem ser expandidas. Ora acontece que esses so exactamente os grupos que nos interessam para as simplicaes. Da que a expresso algbrica minimizada de uma funo expressa na forma normal disjuntiva sempre uma soma de implicantes primos. No mapa da funo que tem sido usada como exemplo, esto assinalados todos os implicantes primos da funo. Porm, como se viu, nem todos os implicantes primos da funo foram usados na expresso minimizada. S foram utilizados os implicantes necessrios para incluir todos os mintermos da funo ou, em termos do mapa de Karnaugh, foram usadas as associaes necessrias para incluir todos os 1 do mapa. Os implicantes usados foram os quatro seguintes: a b c, a b d, a b c e a b d. Repare-se que cada um dos implicantes usados tem uma particularidade fundamental: o implicante primo a b c, por exemplo, o nico que associa o mintermo m 2 . Do mesmo modo, cada um dos outros implicantes primos associa um mintermo que no pode ser associado de outra forma. Ao contrrio, o implicante primo c d (que acabou por no ser usado) associa apenas mintermos que podem ser associados de outra forma. Os implicantes primos que associam mintermos que no podem ser associados em implicantes primos de outra forma so chamados implicantes primos essenciais. No exemplo que tem vindo a ser usado, os quatro produtos usados na expresso lgica da funo (Expresso 2.116) so, portanto, implicantes primos essenciais. f (a, b, c, d) = a b c + a b d + a b c + a b d (2.116)

& 1 ! 9 C &  3 ( } fHE~


cd 00 00 01 11 10 0 0 0 0 01 0 1 0 1 11 1 1 1 1 10 1 0 1 0

C``C%@3tqc Y Q  D

Mapa de Karnaugh da funo f (a, b, c, d).

91

Como se viu j, a expresso algbrica de uma funo em termos de soma de produtos uma soma de implicantes primos. Mas no tm de ser usados todos os implicantes primos da funo. No entanto, todos os implicantes primos essenciais tm de estar presentes na expresso. Se um implicante primo essencial no estivesse presente na expresso da funo, isso signicaria que pelo menos um mintermo no estaria includo, e a funo representada pela expresso diferiria da funo a representar pelo menos na congurao de variveis de entrada correspondente a esse(s) mintermo(s). Convm referir que, embora neste exemplo os nicos implicantes primos usados sejam implicantes primos essenciais, isso no uma regra. Considere-se, agora, a funo representada pelo mapa de Karnaugh da Figura 2.31. Os implicantes primos essenciais desta funo so: a d, que o nico implicante primo a incluir o mintermo m6 e a c, que o nico implicante primo a incluir m5 . A funo possui ainda quatro implicantes primos no essenciais: a b d, a b c, b c d e b c d. As trs possveis expresses minimais da funo incluem os implicantes primos essenciais e, cada uma delas, dois dos implicantes primos no essenciais, como se pode rever nas Expresses 2.117. f (a, b, c, d) f (a, b, c, d) f (a, b, c, d) = = a c+a d+a b d+a b c a c+a d+a b d+b c d (2.117)

Convm tambm chamar a ateno para o facto de que pode ocorrer a existncia de funes sem implicantes primos essenciais. Considere-se o exemplo da Figura 2.34. A funo representada tem duas possveis expresses minimais representadas pelas Expresses 2.118 e 2.119 sem quaisquer implicantes primos essenciais.

O princpio da dualidade d suporte ao desenvolvimento de uma viso dual da exposta em termos de utilizao dos zeros da funo, funes implicadas, maxtermos, implicados, implicados primos e implicados primos essenciais. Sugere-se, como exerccio, a repetio da anlise dos dois exemplos anteriores neste novo contexto.

& 1  9 C '!E&55`73f!GfH! G  & &     # 4 1 ! (


= a c+a d+b c d+a b c f (a, b, c, d) f (a, b, c, d) = = a b c+a b d+a b c+a b d a c d+b c d+a c d+b c d (2.118) (2.119)
92

ab

cd 00 00 01 11 10 0 0 1 1 01 0 1 1 0 11 1 1 0 0 10 1 0 0 1

Exemplo de uma funo sem implicantes primos essenciais.

Por vezes acontece que, numa funo lgica, certas conguraes de entradas nunca ocorrem. possvel tirar partido desse facto para, em muitos casos, minimizar adicionalmente a expresso algbrica da funo. Ir-se- estudar um exemplo, ao longo do qual se expor a metodologia a usar. Uma outra forma de perspectivar esta situao a de considerar que as funes nessas circunstncias so funes incompletamente especicadas. Considere-se que se pretende obter uma funo que tem como variveis de entrada os quatro bits de uma representao em cdigo BCD e que deve dar sada 1, apenas quando o nmero representado for mltiplo positivo de 3. H quatro variveis de entrada, A3 , A2 , A1 e A0 que representam os quatro bits do cdigo BCD, representando os ndices das variveis o peso dos respectivos bits. A Tabela 2.15 representa a funo pretendida. Repare-se que h trs situaes diferentes: - Nmeros BCD que so mltiplos positivos de 3 (f = 1) - Nmeros BCD que no so mltiplos positivos de 3 (f = 0) - Conguraes que no so BCD. Neste ltimo caso, no importante considerar o valor da funo, uma vez que as conguraes de entrada respectivas nunca ocorrem por no serem algarismos BCD e, portanto, o valor que a funo teria nessa situao indiferente. habitual referir o valor assumido pela funo nestes casos como indiferena (em ingls, dont care). Isso equivale

& 1 ! 9 C &  3 ( } fHE~


ab cd 00 00 01 11 10 0 0 1 1 01 0 1 1 0 11 1 1 0 0 10 1 0 0 1

3C'tFkgBS8b(Gb(g3dc % "   D 1 "A 0 e ' "


93

Yi % D (#R`(Qb3gqFc

BCD 0 1 2 3 4 5 6 7 8 9 -

a dizer que, para essa congurao de entrada, a funo no est especicada. Inicialmente no se ter isso em conta e vai obter-se a expresso minimal da funo com valores 0 nessas posies (a opo mais conservadora). O mapa de Karnaugh correspondente est ilustrado na Figura 2.35.

& 1  9 C '!E&55`73f!GfH! G  & &     # 4 1 ! (

(C&C3% U Y Q %WV
A3 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1

Tabela da funo detectora de mltiplos de 3 em BCD. A2 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 A1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 A0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 f 0 0 0 1 0 0 1 0 0 1 Observaes No mltiplo positivo de 3 No mltiplo positivo de 3 No mltiplo positivo de 3 mltiplo positivo de 3 No mltiplo positivo de 3 No mltiplo positivo de 3 mltiplo positivo de 3 No mltiplo positivo de 3 No mltiplo positivo de 3 mltiplo positivo de 3 No BCD No BCD No BCD No BCD No BCD No BCD

A 3A2

A1 A 0 00 01 11 10

00 0 0 0 0

01 0 0 0 1

11 1 0 0 0

10 0 1 0 0

Y Q  D (R`(%b3gFqc

Mapa de Karnaugh da funo detectora de mltiplos de 3 em BCD.

94

Verica-se que no h associaes possveis no mapa e que todos os mintermos so, simultaneamente, implicantes primos essenciais. A expresso minimal da funo , portanto, a sua forma normal disjuntiva representada na Expresso 2.120. f (A3 , A2 , A1 , A0 ) = A3 A2 A1 A0 + A3 A2 A1 A0 + A3 A2 A1 A0 (2.120)

Mas experimente-se agora protelar para mais tarde a atribuio de valores funo nas conguraes que no correspondem a BCD. Obtm-se um mapa de Karnaugh, em que se assinalam, para alm das posies com valores 0 e 1, as posies com indiferenas, representadas por X. O mapa assim construdo est representado na Figura 2.36.

A 3A 2 00 01 11 10

Mapa de Karnaugh da funo detectora de mltiplos de 3 em BCD com as indiferenas assinaladas. Considere-se, agora, o mintermo m9 . Se, nas posies 11, 13 e 15, correspondentes a indiferenas, o valor da funo fosse 1, poder-se-iam associar os quatro mintermos respectivos, simplicando consideravelmente a expresso. Mas como, de facto, o valor que a funo toma nestas posies indiferente, possvel colocar l os valores que mais convm simplicao, sem alterar a funcionalidade pretendida. O mesmo acontece para outras posies no mapa. Pode, ento, fazer-se a minimizao baseada nos agrupamentos ilustrados no mapa da Figura 2.37, obtendo-se a Expresso 2.121. f (A3 , A2 , A1 , A0 ) = A3 A0 + A2 A1 A0 + A2 A1 A0 (2.121)

Como se v, muito mais simples a expresso obtida por se ter recorrido exibilidade que existe por serem certas posies indiferentes. Tenha-se em conta que a funo descrita pela Expresso 2.121 deixou de ter posies no denidas. As conguraes de

& 1 ! 9 C &  3 ( } fHE~


A1 A 0 00 0 0 X 0 01 0 0 X 1 11 1 0 X X 10 0 1 X X

Y(#`C@3tqc e Q % D

95

Mapa de Karnaugh da funo detectora de mltiplos de 3 em BCD com as indiferenas aproveitadas. variveis de entrada correspondentes s indiferenas que foram associadas com mintermos da funo passaram a ter sada 1 da funo. As no associadas passaram a ter sada 0, uma vez que foram, de facto, tratadas como 0. Esta tcnica de utilizao das indiferenas generalizadamente usada para minimizar as expresses das funes lgicas, sempre que possvel.

A obteno de mapas de Karnaugh de cinco variveis faz-se a partir de um mapa de quatro variveis, do mesmo modo que este se obteve a partir de um mapa de trs variveis. Ilustra-se, na Figura 2.38, um mapa de cinco variveis mostrando tambm a numerao das diversas posies, assumindo que a varivel de maior peso a a e a de menor peso a e e ainda os eixos de simetria do mapa. Tal como acontece nos mapas de funes de menor nmero de variveis, h muitas outras hipteses de construir o mapa, colocando as variveis noutras posies e, naturalmente, numerando as posies de maneira coerente. Para alm de todas as adjacncias vlidas no mapa de 4 variveis (em cada uma das metades), existem agora adjacncias entre posies simtricas em relao ao novo eixo de simetria vertical. medida que o nmero de variveis aumenta, a complexidade do mapa aumenta da mesma maneira, mas, sobretudo, aumenta a diculdade em encontrar os agrupamentos adequados para realizar a minimizao da funo. Considere-se ento um exemplo,

& 1  9 C '!E&55`73f!GfH! G  & &     # 4 1 ! (


A1 A 0 A A
3 2

00 0 0 X 0

01 0 0 X 1

11 1 0 X X

10 0 1 X X

00 01 11 10

FEgrfb32(gF"rj3Xg3@3753!3 D D  % 0e D  1 q % "  %  1 % %

Yf Q  `C%b3gFqDc

96

cde ab 00 01 11 10 000
0 8 24 16

001
1 9 25 17

utilizando o mapa de Karnaugh para minimizar a funo dada pela Expresso 2.122 em termos de soma de mintermos. f (a, b, c, d, e) = m(1, 3, 5, 6, 7, 8, 9, 12, 15, 20, 21, 22, 29, 30, 31) (2.122)

Considere-se, ainda, que a funo tem indiferenas para as conguraes de entrada correspondentes s posies 10, 17, 24, 25 e 27. Isto muitas vezes indicado na expresso da funo por um somatrio de termos designados por md 2 . Nessa hiptese de representao, a funo em causa seria representada pela Expresso 2.123. f (a, b, c, d, e) = + m(1, 3, 5, 6, 7, 8, 9, 12, 15, 20, 21, 22, 29, 30, 31) + md(10, 17, 24, 25, 27) (2.123)

O mapa de Karnaugh correspondente a esta funo est ilustrado na Figura 2.39. A melhor estratgia para atacar o problema encontrando os agrupamentos adequados , naturalmente, comear pela procura dos implicantes primos essenciais. Se existirem, tero de ser considerados e, para alm disso, cam j cobertos vrios dos mintermos da funo. Analisando o mapa, possvel vericar que quase todos os mintermos se podem agrupar pelo menos de duas formas em implicantes primos. H duas excepes, que esto assinaladas na Figura 2.40 com fundo cinzento. O mintermo m 3 apenas se
2o

d provm da designao em ingls, dont care

& 1 ! 9 C &  3 ( } fHE~


011
3 11 27 19

010
2 10 26 18

110
6 14 30 22

111
7 15 31 23

101
5 13 29 21

100
4 12 28 20

Ym Q % D (`R(b3gFqc

Mapa de Karnaugh de cinco variveis.

97

pode agrupar no implicante primo a b e, assinalado com a referncia 1 na gura. Por sua vez, o mintermo m12 apenas pode agrupar-se no implicante primo a b d e (referncia 2). Repare-se que os implicantes primos essenciais, neste exemplo, no agrupam indiferenas, mas tal no o caso geral.

ab 00 01 11 10

Mapa de Karnaugh de uma funo de cinco variveis com os implicantes primos essenciais assinalados. A minimizao prossegue com a determinao de um conjunto mnimo de implicantes

& 1  9 C '!E&55`73f!GfH! G  & &     # 4 1 ! (


cde ab 00 01 11 10 000 0 1 X 0 001 1 1 X X 011 1 0 X 0 010 0 X 0 0 110 1 0 1 1 111 1 1 1 0 101 1 0 1 1 100 0 1 0 1

Yn Q  D CR`(%b3gFqc
cde

Mapa de Karnaugh de uma funo de cinco variveis.

1 000 0 1 X 0 001 1 1 X X 011 1 0 X 0 010 0 X 0 0 110 1 0 1 1 111 1 1 1 0 101 1 0 1 1 100 0 1 0 1

Yo  @pi(Q%b3gFqDc

98

primos, correspondentes a agrupamentos da maior dimenso possvel, que cubra todos os mintermos. Esta procura pode conduzir ao mapa da Figura 2.41.

cde ab 00 01 11 4 10 0 X 0 000 0 1 X 001 1 1 X

Mapa de Karnaugh de uma funo de cinco variveis com um conjunto mnimo de implicantes primos assinalados. Na gura, numeraram-se os implicantes primos, para facilitar a sua identicao. Do trabalho feito resulta a Expresso 2.124, em que os termos esto pela mesma ordem. f (a, b, c, d, e) = a b e+a b d e+a b c d+c d e+a d e+ +a c d e+b c d e+a b c d (2.124)

Uma mtrica da complexidade de uma expresso pode ser obtida, de forma simplicada, pelo nmero de implicantes envolvidos e pelo nmero de variveis envolvidos em cada um deles. Este critrio pode ser resumido ao nmero total de entradas em todas as funes AND e OR da expresso. Desse ponto de vista, esta expresso tem oito implicantes primos, dos quais trs so produtos de trs variveis, e os restantes cinco so produtos de 4 variveis. A complexidade C seria, portanto, dada por C = 8 + 3 3 + 5 4 = 37. Como se viu j, por vezes existem vrias expresses minimais diferentes para a mesma funo com, naturalmente, a mesma complexidade. Na Figura 2.42, um diferente conjunto de associaes no mapa de Karnaugh conduz Expresso 2.125, que tem a mesma complexidade que a expresso anterior, como fcil de vericar. Esta funo tem, na

& 1 ! 9 C &  3 ( } fHE~


3 011 1 0 X 010 0 X 0 0 1 110 1 0 1 1 111 1 1 1 0 101 1 0 1 1 100 0 1 0 1 7 5 6 2 8

Y Q % D (iRC@3tqc

99

ab 00 01 11 4 10

da Figura 2.41. realidade, um grande nmero de expresses minimais, como se pode constatar. f (a, b, c, d, e) = a b e+a b d e+b c d e+b c d+a b e+a b c d+ +a c d e+a b c d (2.125)

At aqui, a funo que tem vindo a ser usada como exemplo deu origem a expresses na forma normal disjuntiva. evidentemente possvel obter expresses minimais na forma normal conjuntiva, se se trabalhar com os 0 da funo, maxtermos, implicados, etc.. A Figura 2.43 ilustra, para a mesma funo, os agrupamentos escolhidos no mapa de Karnaugh. Note-se que todos os implicados primos assinalados so essenciais, com excepo do (b + c + d). Para cada um dos implicados primos essenciais est assinalado a cinzento o maxtermo responsvel pela sua essencialidade. A Expresso 2.126 a expresso minimal lida do mapa de Karnaugh. f (a, b, c, d, e) = (a + b + d + e) (b + c + d) (a + b + d + e) (a + b + d + e) (b + c + d) (a + b + c + d + e) (a + b + d + e) (2.126)

A expresso obtida tem um grau de complexidade semelhante, ainda que um pouco

& 1  9 C '!E&55`73f!GfH! G  & &     # 4 1 ! (


6 cde 000 0 1 X 0 001 1 1 X X 011 1 0 X 0 010 0 X 0 0 1 110 1 0 1 1 111 1 1 1 0 101 1 0 1 1 100 0 1 0 1 7 3 5 2 8

Y Q  CQRiC%b3gFqDc

Minimizao alternativa da funo representada no mapa de Karnaugh

100

2 cde ab 00 01 7 11 10 000 0 1 X 0 001 1 1 X X 011 1 0 X 0

Minimizao alternativa da funo representada no mapa de Karnaugh da Figura 2.41, usando agrupamento de maxtermos. inferior (C = 34) ao obtido com as minimizaes em termos da forma normal disjuntiva. Note-se que, apesar de esta expresso ter um implicado primo no essencial, no possvel obter outra expresso minimal em termos de produtos de somas. As diversas expresses obtidas correspondem a funes onde, como se referiu j, deixou de haver indiferenas. De facto, cada indiferena foi escolhida, no mapa de Karnaugh, como assumindo o valor 0 ou o valor 1 para serem realizados os agrupamentos que conduziram s expresses minimais. importante salientar que, embora cada expresso seja uma expresso minimal, as diversas expresses correspondem a diferentes funes. Assim, por exemplo, como se pode vericar no mapa correspondente, a Expresso 2.124 corresponde a uma funo que assume o valor 0, para a congurao correspondente ao mintermo m24 , e 1, para a congurao correspondente ao mintermo m17 , enquanto que a Expresso 2.125 corresponde a uma funo em que m24 = 1 e m17 = 0. Existem mais diferenas, mas estas so sucientes para mostrar que as duas funes e no apenas as expresses so diferentes. Repare-se porm que, onde a funo original tinha valores especicados, todas as funes correspondentes s expresses minimais assumem

& 1 ! 9 C &  3 ( } fHE~


1 3 010 0 X 0 0 110 1 0 1 1 111 1 1 1 0 101 1 0 1 1 100 0 1 0 1 4 6 5

Y(iRC@3tqc ` Q % D

101

os mesmos valores.

O mtodo de minimizao usando o mapa de Karnaugh tem limitaes decorrentes do facto de ser difcil de utilizar para funes com um nmero elevado de variveis. Para mapas de sete ou oito variveis j praticamente impossvel identicar as adjacncias entre posies. No entanto, os aspectos basilares da tcnica utilizada determinao dos implicantes (ou implicados) primos e primos essenciais, com escolha de um conjunto mnimo de implicantes (ou implicados) so gerais e podem ser utilizados para qualquer funo. Uma metodologia diferente, que consiste no processamento de tabelas em vez de observao de padres grcos de adjacncia, utilizada no mtodo de Quine-McCluskey, que ir ser analisado de seguida. Este mtodo permite trabalhar com funes com um nmero muito maior de variveis, alargando-se muito os limites de praticabilidade da minimizao ptima. No estudo deste mtodo vai considerar-se apenas a variante correspondente utilizao de implicantes para obteno de expresses em termos de forma normal disjuntiva. Sugere-se, como exerccio, a utilizao de implicados para obter a forma normal conjuntiva. O mtodo de Quine-McCluskey comea por obter todos os implicantes primos. Seguidamente selecciona os implicantes primos essenciais. Se estes no forem sucientes para a representao da funo, selecciona, seguidamente, um conjunto suciente e mnimo de implicantes primos. Para se obter a lista de implicantes primos, comea-se pela obteno de implicantes correspondentes associao de dois mintermos, que sero designados por implicantes de nvel 1. Os mintermos no associados so j implicantes primos. Seguidamente, associam-se todos os possveis pares de implicantes de nvel 1 para obter implicantes de nvel 2 (implicantes resultantes da associao de implicantes de nvel 1). Os implicantes de nvel 1 no associveis so, naturalmente, implicantes primos. Procede-se da mesma forma, recursivamente, at no poder haver mais associao de implicantes, obtendo-se, assim, a lista completa de implicantes primos. O exemplo seguinte procura esclarecer o mtodo. Considere-se a funo dada pela Expresso 2.127. f (a, b, c, d, e) = m(0, 1, 2, 3, 8, 11, 13, 15, 17, 18, 21, 23, 25, 27, 29, 31) (2.127)

Para obter a associao inicial de mintermos em implicantes primos de nvel 1, haver

& 1  9 C '!E&55`73f!GfH! G  & &     # 4 1 ! (

 W je  D 1 010 t!3&TXvgF"a323bC$X RQ(R`(Q


102

que representar os diversos mintermos e testar a possibilidade de se associar cada um deles com todos os outros. A este nvel podem ser tomadas trs medidas para simplicar o processamento: por um lado, em vez de representar os mintermos pela sua expresso, representar-se-o pela congurao de variveis para a qual assumem o valor 1. O mintermo m11 , por exemplo, ser representado por 01011 em vez de a b c d e. A segunda medida resulta de se compreender que, s podendo ser associados mintermos que diferem apenas numa varivel, isso corresponde, com a representao anteriormente assumida, a pares de mintermos em que um deles tem n uns na sua representao e o outro n + 1 uns na representao. Por exemplo, o mintermo m 3 , representado por 00011, e o m11 , representado por 01011, diferem apenas na posio correspondente varivel b e tm respectivamente dois e trs uns na sua representao. De tudo isto resulta que se devem agrupar os mintermos em conjuntos de mintermos com o mesmo nmero de uns na representao e que s vale a pena testar pares de mintermos correspondentes a conjuntos sucessivos de nmero de uns. Por m, a terceira vericao que, sendo os pares de mintermos obtidos no ordenados, no vale a pena comparar o mintermo my com o mintermo mx , se o mintermo mx j tiver sido comparado com my . De tudo isto resulta que se pode organizar uma tabela com uma certa estrutura reectindo as consideraes anteriormente feitas. Assim, para este exemplo, organiza-se uma tabela de mintermos com a estrutura ilustrada na Tabela 2.16. Repare-se que se agruparam os mintermos pelo nmero de uns. A primeira coluna da tabela indica o nmero do mintermo respectivo. Seguidamente procede-se comparao dos mintermos de grupos contguos, medida que se vai construindo uma segunda tabela, a dos implicantes de nvel 1. Assim, o mintermo m0 difere do mintermo m1 , apenas na posio da direita. Cria-se uma entrada na nova tabela, onde se lana essa associao e, simultaneamente, marcam-se os dois mintermos como j associados, usando o sinal . Esse processo est ilustrado na Tabela 2.17. Vai-se construindo, deste modo, a tabela de implicantes de nvel 1. Na nova tabela so referidos, para cada associao, os mintermos associados (neste caso os mintermos 0 e 1). Repare-se que a varivel que foi reduzida no implicante (neste caso a varivel e) est assinalada com o smbolo X. Prosseguindo o processo at esgotar todas as associaes possveis, obtm-se a Tabela 2.18. Repare-se que, na Tabela 2.18, todos os mintermos foram associados e que, portanto, nenhum deles implicante primo.

& 1 ! 9 C &  3 ( } fHE~


103

Incio da tabela dos implicantes de nvel 1 e dos mintermos associados da funo dada como exemplo. abcde 00000 00001 00010 abcde 0000X

Pelo modo como estas tabelas so construdas, obtm-se grupos em que o nmero de uns presentes em cada linha da tabela sucessivamente maior. Esses grupos esto separados por linhas horizontais, tal como j acontecia com a tabela dos mintermos. Na fase seguinte vo procurar associar-se pares de implicantes deste nvel para obter implicantes de nvel 2. S so associveis pares com o smbolo X na mesma posio, como evidente. Na Tabela 2.19 listam-se os implicantes de nvel 2 e, novamente, os implicantes de nvel 1, assinalando agora os implicantes associados.

& 1  9 C '!E&55`73f!GfH! G  & &     # 4 1 ! (

Y Q %WV (e(&(% U Yf Q %WV #(u#C3% U


(0) (1) (2)

Tabela dos mintermos da funo usada como exemplo. abcde 00000 00001 00010 01000 00011 10001 10010 01011 01101 10101 11001 01111 10111 11011 11101 11111

(0) (1) (2) (8) (3) (17) (18) (11) (13) (21) (25) (15) (23) (27) (29) (31)

(0, 1)

104

Tabela completa (a) dos mintermos e (b) dos implicantes primos de nvel 1 da funo usada como exemplo. abcde 00000 00001 00010 01000 00011 10001 10010 01011 01101 10101 11001 01111 10111 11011 11101 11111 (a) abcde 0000X 000X0 0X000 000X1 X0001 0001X X0010 0X011 10X01 1X001 01X11 X1011 011X1 X1101 101X1 1X101 110X1 11X01 X1111 1X111 11X11 1111X

(0) (1) (2) (8) (3) (17) (18) (11) (13) (21) (25) (15) (23) (27) (29) (31)

A Tabela 2.19 mostra que nem todos os implicantes de nvel 1 foram associados entre si para produzir implicantes de nvel 2. Os que caram por associar so j implicantes primos. Trata-se dos implicantes listados na Tabela 2.20. Por no existirem, agora, dois pares com X na mesma posio, no possvel associar quaisquer pares de implicantes de nvel 2 para obter implicantes de nvel 3, pelo que todos os implicantes da Tabela 2.18 so implicantes primos. Trata-se dos implicantes listados na Tabela 2.21. Neste ponto do algoritmo foram determinados todos os implicantes primos. A fase se-

& 1 ! 9 C &  3 ( } fHE~

Ym Q %WV ((&C3% U

(0, 1) (0, 2) (0, 8) (1, 3) (1, 17) (2, 3) (2, 18) (3, 11) (17, 21) (17, 25) (11, 15) (11, 27) (13, 15) (13, 29) (21, 23) (21, 29) (25, 27) (25, 29) (15, 31) (23, 31) (27, 31) (29, 31) (b)

105

Tabela dos (a) implicantes de nvel 1 associados e dos (b) implicantes de nvel 2 da funo usada como exemplo. abcde 0000X 000X0 0X000 000X1 X0001 0001X X0010 0X011 10X01 1X001 01X11 X1011 011X1 X1101 101X1 1X101 110X1 11X01 X1111 1X111 11X11 111X1 (a) abcde 000XX 1XX01 X1X11 X11X1 1X1X1 11XX1

(0, 1) (0, 2) (0, 8) (1, 3) (1, 17) (2, 3) (2, 18) (3, 11) (17, 21) (17, 25) (11, 15) (11, 27) (13, 15) (13, 29) (21, 23) (21, 29) (25, 27) (25, 29) (15, 31) (23, 31) (27, 31) (29, 31)

& 1  9 C '!E&55`73f!GfH! G  & &     # 4 1 ! (

Y %WV @o#RQ(Qu#C3% U

Y Q %WV (n(u#C3% U

(0, 1, 2, 3) (17, 21, 25, 29) (11, 15, 27, 31) (13, 15, 29, 31) (21, 23, 29, 31) (25, 27, 29, 31) (b)

Implicantes primos de nvel 1 da funo usada como exemplo. Designao (0, 8) (1, 17) (2, 18) (3, 11) Expresso a c d e b c d e b c d e a c d e

106

Implicantes primos de nvel 2 da funo usada como exemplo. Designao (0, 1, 2, 3) (17, 21, 25, 29) (11, 15, 27, 31) (13, 15, 29, 31) (21, 23, 29, 31) (25, 27, 29, 31) Expresso a b c a d e b d e b c e a c e a b e

guinte consiste em identicar, destes, quais so os implicantes primos essenciais. Para isso, necessrio construir a tabela dos implicantes primos, que permite vericar, para cada mintermo, quais os implicantes primos que o representam. Essa tabela est representada na Tabela 2.22.

Tabela dos implicantes primos da funo usada como exemplo.

(0, 8) (1, 17) (2, 18) (3, 11) (0, 1, 2, 3) (17, 21, 25, 29) (11, 15, 27, 31) (13, 15, 29, 31) (21, 23, 29, 31) (25, 27, 29, 31)

Por anlise da Tabela 2.22 verica-se que o nico implicante primo que associa o mintermo m8 o implicante primo designado por (0, 8) (a c d e), que , assim, um implicante primo essencial. De igual modo, fcil vericar que o implicante primo (2, 18) essencial por causa do mintermo m18 , que (13, 15, 29, 31) essencial por causa do mintermo m13 , e que, nalmente, (21, 23, 29, 31) essencial por causa do mintermo m 23 . Esto, assim, encontrados os implicantes primos essenciais da funo. fcil ver que este conjunto de implicantes primos essenciais associa muitos dos mintermos da fun-

& 1 ! 9 C &  3 ( } fHE~

YCQCQu#C3% U %WV Y(QR(u#C3% U Q Q %WV

11

13

15

17

18

21

23

25

27

29

31

107

o os mintermos m(0, 2, 8, 13, 15, 18, 21, 23, 29, 31) , mas que h ainda mintermos da funo no representados (1, 3, 11, 17, 25, 27). A fase seguinte do processo consiste em refazer a tabela dos implicantes primos, tomando agora em considerao apenas os mintermos no representados e retirando da tabela os implicantes primos essenciais, j seleccionados. Obtm-se, desse modo, a Tabela 2.23. Esta tabela poderia levar a denir novos implicantes primos que, nas actuais circunstncias, fossem necessrios para cobrir algum ou alguns dos mintermos ainda no representados. Esta uma situao comum, mas no esse o caso para esta funo. Aquilo que se obteve uma tabela que indica que, para cada mintermo, h dois implicantes primos que podem ser escolhidos. Nestas circunstncias, o problema passa a ser o da escolha de um conjunto mnimo de implicantes primos que associem a totalidade dos mintermos. Isso pode ser feito de forma heurstica por observao da tabela. Para facilitar a exposio do raciocnio, os implicantes primos foram, nesta nova tabela, designados por um conjunto de letras de A a F. Repare-se que, se forem escolhidos os implicantes A e B, cam cobertos os primeiros quatro mintermos e, claramente, j no precisamos do implicante C. Ficaram por cobrir os dois ltimos mintermos, o que pode ser conseguido, escolhendo os implicantes D e E ou, melhor ainda, o implicante F. Uma outra hiptese a de escolher os implicantes C, D e E. Em ambos os casos foram escolhidos trs implicantes para cobrir os mintermos restantes. No possvel resolver o problema com menos implicantes, como possvel concluir da anlise da tabela. Podem, ento, ser usados os conjuntos de implicantes A, B e F ou C, D e E. A escolha no , porm, indiferente. De facto, A e B so produtos de quatro variveis, enquanto que todos os outros so produtos de trs variveis, sendo, assim, mais simples a expresso que inclua C, D e E. De todo este processo resulta, portanto, a Expresso 2.128 como a expresso minimal (na forma normal disjuntiva) da funo que temos vindo a usar como exemplo. Os

& 1  9 C '!E&55`73f!GfH! G  & &     # 4 1 ! (

Y` Q %WV CQC&C3% U

Tabela refeita dos implicantes primos da funo usada como exemplo.


1 3 11 17 25 27

A B C D E F

(1, 17) (3, 11) (0, 1, 2, 3) (17, 21, 25, 29) (11, 15, 27, 31) (25, 27, 29, 31)

108

quatro primeiros termos correspondem aos implicantes primos essenciais encontrados, e os restantes trs, aos implicantes primos seleccionados adicionalmente para obter a Expresso 2.128. f (a, b, c, d, e) = a c d e + b c d e + b c e + a c e + a b c + a d e + b d e (2.128)

O processo de escolha de implicantes primos, aps a obteno dos implicantes primos essenciais, assentou numa anlise pouco sistemtica, que s foi possvel de realizar por a tabela ser relativamente simples. H, contudo, uma forma sistemtica de obter o conjunto a seleccionar de implicantes primos no essenciais. Para isso, necessrio obter a funo de implicantes primos ou funo-p. Esta funo determina quais os implicantes primos necessrios na expresso da funo e usa como variveis as designaes dos implicantes primos ainda presentes na tabela dos implicantes primos. fcil perceber que, na expresso nal, ter de existir pelo menos um implicante que cubra cada um dos mintermos da funo. Por exemplo, ter de estar presente o implicante A ou o C para cobrir m1 , o implicante B ou o C para cobrir m3 , e assim sucessivamente. Da resulta que a funo-p tem a Expresso 2.129. p = (A + C) (B + C) (B + E) (A + D) (D + F ) (E + F ) (2.129)

Manipulando algebricamente a Expresso 2.129 para obter a forma normal disjuntiva, obtm-se a Expresso 2.130. p=A B D E+A B F +B C D E+B C D F +C D E+A C E F (2.130)

A leitura desta expresso fcil de fazer: para a expresso minimal da funo necessrio utilizar os implicantes primos A e B e D e E ou os implicantes A e B e F, e assim por diante. Verica-se, portanto, que o nmero mnimo de implicantes a utilizar trs e que se pode optar pelos conjuntos A, B e F ou C, D e E. O mtodo de Quine-McCluskey uma rplica do mtodo de Karnaugh, utilizando manipulao de tabelas e, no caso da funo-p, de expresses, em vez do reconhecimento de padres no mapa. mais trabalhoso, mas, por ser mais sistemtico, tem a vantagem de ser mais facilmente implementvel num programa, permitindo minimizar expresses de funes com grande nmero de variveis. No caso de as funes terem indiferenas, a utilizao do mtodo pouco se altera. Consideram-se as posies em que h indiferenas como mintermos para a obteno dos implicantes primos, mas omitem-se na tabela de implicantes primos para seleco dos implicantes necessrios na expresso da funo. O mtodo ser exemplicado com a funo detectora de algarismos BCD mltiplos de 3 descrita na Tabela 2.15, que foi usada para introduzir este tpico na apresentao do mtodo de Karnaugh.

& 1 ! 9 C &  3 ( } fHE~


109

A funo tem os mintermos m3 , m6 e m9 e tem indiferenas nas posies 10 a 15. As diversas tabelas de mintermos e de implicantes de nvel 1 e 2 (no h implicantes de nvel 3) encontram-se nas Tabelas 2.24 e 2.25.

estudo.

3 6 9 10 12 11 13 14 15

A tabela de implicantes primos desta funo, representada na Tabela 2.26, tem apenas trs mintermos. Dos implicantes primos obtidos no passo anterior, verica-se que dois deles, (10, 11, 14, 15) e (12, 13, 14, 15), no associam qualquer mintermo, pelo que no so includos na tabela. Desta tabela fcil concluir que os trs implicantes primos so essenciais e so tambm sucientes para representar a funo. A Expresso 2.131 , portanto, a expresso minimal da funo estudada, de acordo alis com o resultado j obtido na Expresso 2.121. f (A3 , A2 , A1 , A0 ) = A3 A0 + A2 A1 A0 + A2 A1 A0
110

& 1  9 C '!E&55`73f!GfH! G  & &     # 4 1 ! (

(QR(u#C3% U Y Q %WV

Yi Q %WV @QCu#C3% U

Tabelas de (a) mintermos e (b) implicantes de nvel 1 da funo em A3 A2 A1 A0 0011 0101 1001 1010 1100 1011 1101 1110 1111 (a) A3 A2 A1 A0 X011 X101 10X1 1X01 101X 1X10 110X 11X0 1X11 11X1 111X (b)

1 1 1 X X X X X X

(3, 11) (6, 13) (9, 11) (9, 13) (10, 11) (10, 14) (12, 13) (12, 14) (11, 15) (13, 15) (14, 15)

Tabela de implicantes de nvel 2 da funo em estudo. A3 A2 A1 A0 1XX1 1X1X 11XX

(9, 11, 13, 15) (10, 11, 14, 15) (12, 13, 14, 15)

(2.131)

Tabela de implicantes primos da funo em estudo. 3 6 9

(3, 11) (6, 13) (9, 11, 13, 15)

O exemplo nal corresponde funo j minimizada pelo mtodo de Karnaugh, denida anteriormente pela Expresso 2.123, aqui repetida (Expresso 2.132). f (a, b, c, d, e) = + m(1, 3, 5, 6, 7, 8, 9, 12, 15, 20, 21, 22, 29, 30, 31) + md(10, 17, 24, 25, 27) (2.132)

Na Tabela 2.27 apresentam-se os mintermos e implicantes da funo. A partir das tabelas anteriores fcil construir a tabela de implicantes primos, que, como anteriormente, s vai incluir os mintermos e os implicantes primos que associem mintermos todos no caso presente , sendo excluda, portanto, a necessidade de incluir indiferenas. A Tabela 2.28 representa a tabela de implicantes primos. Nesta tabela pode observar-se que o implicante primo (8, 10), uma vez que a posio 10 corresponde a uma indiferena, apenas cobre o mintermo m 8 , que coberto tambm pelo implicante primo (8, 12). Podemos, assim, prescindir daquele implicante primo. A observao da tabela permite concluir que h apenas dois implicantes primos essenciais: (8, 12), por ser o nico que associa o mintermo m12 , e (1, 3, 5, 7), por ser o nico implicante primo que cobre o mintermo m3 . A expresso da funo incluir, portanto, estes dois implicantes, mas no ca limitada a eles, uma vez que h ainda vrios mintermos no representados. Reestrutura-se, portanto, a tabela, retirando os mintermos j cobertos, obtendo-se a nova Tabela 2.29. Nesta nova tabela fcil ver que h alguns implicantes primos que s associam mintermos includos noutros implicantes primos. o caso dos implicantes primos representados por (6, 7), (7, 15) e (1, 5, 17, 21), que no sero, portanto, considerados. De igual modo, os implicantes primos (1, 9, 17, 25) e (8, 9, 24, 25) associam apenas o mintermo m9 nesta tabela j reduzida, podendo, assim, prescindir-se de um deles. Da anlise da tabela resulta, ento, natural a escolha dos implicantes primos (6, 22), (15, 31) e (1, 9, 17, 25). Uma vez que no se cobriram ainda todos os mintermos, avana-se para nova verso mais reduzida da tabela, representada agora na Tabela 2.30.

& 1 ! 9 C &  3 ( } fHE~

Ye Q %WV (QR(&(% U

111

Tabelas de (a) mintermos, (b) implicantes de nvel 1 e (c) implicantes de nvel 2 da funo em estudo. a, b, c, d, e 00001 01000 00011 00101 00101 01001 01010 01100 10001 10100 11000 00111 10101 10110 11001 01111 11011 11101 11110 11111 (a) a, b, c, d, e 00XX1 X0X01 XX001 X100X 1XX01 11XX1 a, b, c, d, e 000X1 00X01 0X001 X0001 0100X 010X0 01X00 X1000 00X11 001X1 X0101 0011X X0110 X1001 10X01 1X001 1010X 101X0 1100X 0X111 1X101 1X110 110X1 11X01 X1111 11X11 111X1 1111X (b)

1 8 3 5 6 9 10 12 17 20 24 7 21 22 25 15 27 29 30 31

(1, 3, 5, 7) (1, 5, 17, 21) (1, 9, 17, 25) (8, 9, 24, 25) (17, 21, 25, 29) (25, 27, 29, 31) (c)

Por razes semelhantes s anteriores agora possvel prescindir dos implicantes primos

& 1  9 C '!E&55`73f!GfH! G  & &     # 4 1 ! (

Y Q %WV fQCu#C3% U

1 1 1 1 1 1 X 1 X 1 X 1 1 1 X 1 X 1 1 1

(1, 3) (1, 5) (1, 9) (1, 17) (8, 9) (8, 10) (8, 12) (8, 24) (3, 7) (5, 7) (5, 21) (6, 7) (6, 22) (9, 25) (17, 21) (17, 25) (20, 21) (20, 22) (24, 25) (7, 15) (21, 29) (22, 30) (25, 27) (25, 29) (15, 31) (27, 31) (29, 31) (30, 31)

112

Tabela dos implicantes primos da funo usada como exemplo.


1 3 5 6 7 8 9 12 15 20 21 22 29 30 31

(8, 10) (8, 12) (6, 7) (6, 22) (20, 21) (20, 22) (7, 15) (22, 30) (15, 31) (30, 31) (1, 3, 5, 7) (1, 5, 17, 21) (1, 9, 17, 25) (8, 9, 24, 25) (17, 21, 25, 29) (25, 27, 29, 31)

Tabela refeita dos implicantes primos da funo usada como exemplo.


6 9 15 20 21 22 29 30 31

(6, 7) (6, 22) (20, 21) (20, 22) (7, 15) (22, 30) (15, 31) (30, 31) (1, 5, 17, 21) (1, 9, 17, 25) (8, 9, 24, 25) (17, 21, 25, 29) (25, 27, 29, 31)

& 1 ! 9 C &  3 ( } fHE~

Ym Q %WV (QR(u#C3% U Yn Q WV CQR(%u#C3% U

113

(20, 22) e (25, 27, 29, 31) e tambm de um dos do par (22, 30) e (30, 31). Da anlise da tabela possvel seleccionar os implicantes primos (20, 21), (30, 31) e (17, 21, 25, 29). A funo pode, portanto, ser representada pela Expresso 2.133.

f (a, b, c, d, e)

Repare-se que, neste caso, no foi necessrio recorrer funo-p para determinar os implicantes primos no essenciais. Foi possvel, por anlise sucessiva das tabelas de implicantes primos, seleccionar a expresso minimal da funo. Um outro ponto interessante , neste caso, a comparao entre o mtodo de Karnaugh e o de Quine McCluskey para a mesma funo. No mtodo de Karnaugh tinha-se vericado que havia muitas expresses minimais possveis, enquanto que, usando o mtodo de Quine-McCluskey, se obteve uma expresso onde h, aparentemente, poucas opes. Isso resultou da maneira como foi evoluindo a tabela dos implicantes primos, que escondeu opes possveis para a obteno da expresso nal. Por exemplo, na ltima tabela, prescindimos do implicante primo (20, 22), uma vez que o (20, 21) cobria o mintermo m 20 , nico coberto pelo primeiro implicante primo. No entanto, tal no era necessrio. Se fosse escolhido o implicante (20, 22), isso seria uma opo vlida, j que o mintermo m 21 tambm coberto pelo implicante primo (17, 21, 25, 29), que foi tambm seleccionado. Muitas outras situaes deste tipo acontecem neste exemplo. Se tivesse sido aplicada a funo-p primeira tabela de implicantes primos, teria sido possvel obter uma expresso em que todas as opes de minimizao da expresso desta funo teriam resultado explicitamente.

& 1  9 C '!E&55`73f!GfH! G  & &     # 4 1 ! (

Yo Q %WV @#R`(&(% U

Tabela refeita dos implicantes primos da funo usada como exemplo.


20 21 29 30

(20, 21) (20, 22) (22, 30) (30, 31) (17, 21, 25, 29) (25, 27, 29, 31)

a b d e+a b e+b c d e+b c d e+ +c d e+a b c d+a b c d+a d e (2.133)

114

Neste captulo feito um estudo sob vrios aspectos das funes que descrevem formalmente os sistemas digitais, habitualmente designadas por funes lgicas. Inicialmente apresentada a lgebra de Boole, a ferramenta matemtica de suporte ao estudo dos circuitos digitais. Embora se possam denir lgebras de Boole com mais de dois elementos, no caso que nos interessa, o estudo restringido a lgebras de Boole binrias. Com base na lgebra de Boole so descritas as diversas formas de representar funes lgicas, com nfase na equivalncia, por um lado, e na complementaridade, por outro, das diversas formas de representao. O aspecto particular da minimizao das expresses que representam funes lgicas discutido com grande pormenor para o caso em que se pretendem obter expresses a dois nveis. So apresentados, neste contexto, os mtodos de Karnaugh e de Quine-McCluskey. So ainda discutidos os aspectos ligados minimizao de expresses correspondentes a funes incompletamente especicadas.

2.1 Elabore as tabelas de verdade das seguintes funes lgicas: 1. f (A, B, C) = A B + A B C 3. f (A, B, C) = A B C + A B + C 2. f (A, B, C, D) = A B (C D) + A B C + A C D + B C D

2.2 Minimize algebricamente as seguintes funes: 1. f (A, B, C, D) = A B (C D) + A B C + A C D + B C D

2. f (A, B, C, D) = A B C + A B (C + D) + A + B + D

2.3 Considere a seguinte funo: f (A, B, C) = (A B) C + A (B C): 1. minimize algebricamente a funo para obter um produto de somas; 2. minimize algebricamente a funo para obter uma soma de produtos; 3. obtenha a forma cannica normal disjuntiva; 4. obtenha a forma cannica normal conjuntiva. 2.4 Obtenha a expresso em forma de soma de produtos da funo maioria com 3 variveis. A funo maioria uma funo que assume o valor 1 quando o nmero de variveis a 1 superior ao nmero de entradas a 0. Repita para 4 e 5 variveis.

& 1 ! 9 C &  3 ( } fHE~ BHBzG { B


115

2.5 Obtenha a expresso de uma funo lgica que indica se uma determinada congurao de quatro bits uma palavra do cdigo BCD. 2.6 Considere o seguinte logigrama:

A B C D F

Determine uma expresso algbrica para a funo F , minimize-a e desenhe o logigrama correspondente expresso resultante. 2.7 Construa o logigrama correspondente a um conjunto de funes de trs variveis que calculam o factorial do nmero binrio representado pelas variveis de entrada. 2.8 Determine um conjunto de funes lgicas que realize a multiplicao de dois nmeros binrios de dois algarismos. 2.9 Determine um conjunto de funes lgicas que obtenha o valor inteiro da raiz quadrada de um nmero binrio de 5 algarismos. 2.10 Minimize as seguintes funes lgicas, utilizando o mtodo de Karnaugh. Para cada caso utilize, quer somas de produtos, quer produtos de somas, e conclua qual produz a expresso mais simples: 1. f (A, B, C, D, E) = m(1, 3, 5, 8, 10, 12, 14, 21, 23, 24, 26, 31) com indiferenas nas posies 0, 4, 7, 15, 17, 18, 27 e 28; 2. f (A, B, C, D, E) = M (0, 2, 5, 7, 9, 10, 11, 20, 22, 23, 27, 30) com indiferenas nas posies 1, 8, 12, 15, 16, 25 e 31; 3. f (A, B, C, D, E) = m(3, 4, 6, 7, 10, 13, 19, 23, 28, 29, 31) com indiferenas nas posies 5, 12, 15, 21, 22 e 25;

& 1  9 C '!E&55`73f!GfH! G  & &     # 4 1 ! (


116

4. f (A, B, C, D, E) = m(1, 3, 5, 6, 7, 8, 9, 12, 15, 20, 21, 22, 29, 30, 31) com indiferenas nas posies 10, 17, 24, 25 e 27; 5. f (A, B, C, D) = A (C D) + A D + A C D + A C D com indiferenas nas posies 1, 7, 11 e 13. 2.11 Repita o problema anterior, utilizando o mtodo de Quine-McCluskey. 2.12 Para as funes lgicas do problema anterior determine todos os implicantes(ados) primos e, no caso de os haver, os implicantes(ados) primos essenciais. 2.13 Considere a funo f (A, B, C, D) = m(0, 1, 3, 4, 7, 9, 10, 12) com indiferenas nas posies 2, 5, 14 e 15, Obtenha todas as expresses mnimas da funo, quer utilizando somas de produtos, quer produtos de somas. Verique, utilizando tabelas de verdade construdas para cada uma das expresses obtidas, que as diversas expresses no correspondem mesma funo. Justique o facto. 2.14 Considere a seguinte funo: f (A, B, C, D, E) = M (1, 7, 9, 12, 14, 18, 19, 21, 22, 25, 28, 30, 31) com indiferenas nas posies 4, 15, 16, 17 e 20. 1. Minimize-a utilizando o mtodo de Karnaugh. 2. A partir da funo f (A, B, C, D, E) e sem a alterar, usando o mnimo de lgica possvel, projecte uma funo g(A, B, C, D, E) com uma tabela semelhante tendo como nica diferena a existncia de sada 1 nas posies 1, 4 e 21. 2.15 Manipule as expresses lgicas obtidas no Problema 2.10 para obter: 1. expresses utilizando apenas funes NAND de at quatro entradas; 2. expresses utilizando apenas funes trada e NOT;
AND

3. quando possvel, expresses mais simples com mais de duas camadas.

& 1 ! 9 C &  3 ( } fHE~


e
OR

com duas variveis de en-

117

FUw |

6' `

Neste captulo so apresentadas algumas das tecnologias que permitem construir circuitos lgicos que do suporte realizao de funes lgicas, isto , circuitos elctricos cujo comportamento pode ser descrito por aquelas funes. Na Seco 3.1 so referidas algumas das tecnologias de circuitos integrados usados para construir circuitos lgicos. So tambm referidos alguns dispositivos teis para o projecto de sistemas, mas que no implementam directamente funes como as denidas no captulo anterior. O uso dos dispositivos descritos para a implementao de circuitos e as metodologias que lhe esto associadas so descritos na Seco 3.2. Um aspecto importante neste contexto o das tcnicas para identicao de erros que produzem falhas no funcionamento dos circuitos. A Seco 3.3 aborda, de maneira muito introdutria, essa questo. Na Seco 3.4 so analisados os aspectos referentes ao facto de os circuitos electrnicos necessitarem de tempo para operar e as consequncias deste facto nos circuitos digitais. Uma metodologia alternativa de implementao de circuitos directamente a partir da sua especicao formal e utilizando dispositivos lgicos programveis apresentada na Seco 3.5.

O interesse do estudo que se fez das funes lgicas reside no facto de que estas funes podem ser usadas para descrever e especicar aces e processamentos pretendidos de um equipamento. Simultaneamente, h metodologias que permitem uma fcil passagem de uma descrio em termos de funes lgicas para a implementao de circuitos electrnicos com um comportamento especicado por essas funes, como se ver ao longo deste captulo.

Uma possvel implementao de circuitos digitais feita com base em dispositivos electrnicos que tm um comportamento semelhante a algumas das funes lgicas descritas no Captulo 2, como as funes AND, OR, NOT, ou outras. usual designar esses dispositivos por portas (em ingls, gates) ou portas lgicas. As portas lgicas esto normalmente includas em circuitos integrados.

& # ! 9 C & # ) }  !  fH!EfE7 '"& E1f 1 !  # 4 3 ! C 1 


121

i Hd

3CFe3@p3%uFWP3%c C` % Dq D 8

HFdH

Dg

A tecnologia dos circuitos integrados a responsvel pelo tremendo desenvolvimento dos sistemas digitais, uma vez que possibilitou a construo de circuitos electrnicos digitais muito complexos, a custos extremamente reduzidos e ocupando espaos muito limitados. Um circuito integrado um pequeno cristal de silcio (h outras tecnologias, mas o silcio largamente dominante) onde se difundiram impurezas em determinadas reas dando origem a transstores, dodos, resistncias e outros componentes electrnicos interligados entre si, de modo a formarem circuitos electrnicos de maior ou menor complexidade. Os circuitos integrados digitais so de fcil concepo e tm custos de produo relativamente baixos. Cada circuito integrado pode ter entre algumas portas e alguns milhes de portas. Por exemplo, um dos circuitos integrados mais simples, disponvel no mercado, um circuito com portas AND que tem quatro portas AND de duas entradas, que podem ser usadas separadamente. Um circuito como um contador tem algumas dezenas de portas que esto previamente interligadas para formar o contador. Um processador das famlias Pentium ou PowerPC tem vrios milhes de portas. Existem vrias tecnologias para fabricar circuitos integrados digitais, das quais as mais importantes actualmente so a TTL, a CMOS e a ECL: TTL: Uma tecnologia que foi durante muitos anos, de longe, a mais utilizada, tendo, na prtica, estabelecido todo um referencial de arquitecturas, critrios e normas, com consequncias no desenvolvimento de outras famlias. Utiliza transstores do tipo bipolar a funcionar ao corte (o dispositivo comporta-se como um interruptor aberto) ou na saturao (o dispositivo comporta-se como um interruptor fechado), dois dos modos de funcionamento desse tipo de dispositivos. Tem um comportamento mdio no que diz respeito velocidade e ao consumo. Subdivide-se em vrias subfamlias com caractersticas diferenciadas, mas todas compatveis entre si. Dado ter-se tornado muito popular, outras tecnologias tm circuitos com entradas e sadas compatveis com TTL. uma tecnologia que, actualmente, perde mercado a favor da CMOS. A sigla TTL construda com as iniciais de Transistor-Transistor Logic, designao que pe em realce a estrutura interna destas portas, construdas com dois nveis de transstores. CMOS: O CMOS , actualmente, a tecnologia mais utilizada, tendo ultrapassado a TTL no nal dos anos 80 do sculo XX. Utiliza transstores do tipo MOSFET. Inicialmente era uma tecnologia mais lenta que a TTL, com a vantagem de consumir muito menos potncia. Hoje, com a evoluo da tecnologia dos circuitos integrados, as frequncias de operao obtidas so j muito elevadas, embora parcialmente custa

&! 1 ! 9! 7 & # 7 1  9  ) fd)fE'HHmH(f! )f! & # ! }  


122

do consumo de energia. Os ganhos de velocidade da tecnologia CMOS, combinados com a grande capacidade de integrao, colocaram-na como a tecnologia mais importante no projecto e fabrico de circuitos integrados. Existem tambm algumas subfamlias nesta tecnologia. a tecnologia com um mercado em mais rpido crescimento. A sigla CMOS deriva das iniciais de Complementary Metal Oxide Semiconductor, designao que se refere tecnologia usada, que utiliza transstores do tipo n e p na mesma porta. ECL: Trata-se de uma tecnologia que permite construir circuitos muito rpidos, embora custa de um enorme consumo energtico. Tem nichos de mercado muito limitados, nomeadamente as aplicaes militares. Utiliza transstores bipolares na zona activa. Enquanto que as tecnologias anteriores podem ser utilizadas em projectos de circuitos, a partir dos dispositivos existentes, nomeadamente portas, requerendo poucos conhecimentos em electrnica e em propagao de sinais em linhas, a tecnologia ECL no dispensa esse tipo de conhecimentos para uma concepo correcta de circuitos com bom desempenho. A sigla ECL construda com as iniciais de Emitter Coupled Logic, numa referncia ao tipo de estrutura de circuitos electrnicos utilizada. Fisicamente, um circuito integrado apresenta-se em vrios formatos de encapsulamento, dos quais o que utilizado mais frequentemente em laboratrio o tipo DIL (do ingls, Dual In-Line). Este encapsulamento consiste numa caixa de plstico ou cermica, paralelepipdica, onde existem duas las de terminais ao longo dos lados maiores do paraleleppedo. Estes terminais so usualmente designado por pins. Na Figura 3.1 ilustra-se um circuito com 14 terminais. importante ter em conta, porm, que, actualmente, a maior parte dos circuitos integrados disponveis no mercado usa tipos diferentes de encapsulamento, que permitem montagem supercial, um tipo de montagem que permite muito maior compactao e o uso de circuitos com um nmero de terminais muito mais elevado.

Os fabricantes produzem sries de circuitos com caractersticas elctricas semelhantes, em que as designaes so cadeias de algarismos e letras com a mesma estrutura. Muitas vezes, vrios fabricantes acordam em usar as mesmas designaes para produtos

& # ! 9 C & # ) }  !  fH!EfE7 '"& E1f 1 !  # 4 3 ! C 1 

Y(b3gFqc ` % D

Circuito integrado em encapsulamento DIL.

123

semelhantes. No que diz respeito a circuitos digitais de baixa ou mdia complexidade, as sries 74nn so ainda muito utilizadas actualmente, embora a tendncia, como se refere na Seco 3.5, seja a de utilizar circuitos programveis ou desenhados propositadamente para aplicaes especcas, em ambos os casos com um nmero muito elevado de portas. Um exemplo de circuito integrado o 7408, que existe quer na famlia TTL, quer na CMOS. Este circuito integrado disponibiliza quatro portas AND de duas entradas. Considerando o circuito visto de cima, a disposio est indicada na Figura 3.2. A distribuio de terminais referida em ingls por pin-out.

Repare-se na numerao dos terminais, que feita com incio no canto inferior esquerdo e prossegue, rodando em torno do circuito no sentido directo, at ao canto superior esquerdo. A marca existente num dos lados menores do circuito ( esquerda, na gura) permite orientar o dispositivo. Os terminais 14 e 7 so os terminais que permitem alimentar electricamente o circuito. Na famlia TTL tm, respectivamente, a designao de VCC e Gnd (abreviatura do ingls, Ground). O terminal VCC deve ser ligado a uma tenso positiva de 5V, e o Gnd, a 0V, usualmente designado por terra. Nos catlogos de circuitos integrados podem ser encontradas as distribuies de terminais para todos os circuitos integrados de qualquer famlia. A ttulo de exemplo, indicam-se na Tabela 3.1 as referncias para alguns circuitos correspondentes a portas lgicas, sem procurar uma enumerao exaustiva. Estas referncias so vlidas na famlia TTL e em vrias das subfamlias CMOS, com excepo da subfamlia 4000/4500, que se encontra obsoleta. Como j se referiu anteriormente, existem vrias subfamlias TTL com caractersticas diferenciadas no que diz respeito potncia gasta e rapidez de funcionamento. A

&! 1 ! 9! 7 & # 7 1  9  ) fd)fE'HHmH(f! )f! & # ! }  


14 13 12 11 10 Vcc 9 8 Gnd 1 2 3 4 5 6 7

(QR(b3gFqc Y ` % D

Distribuio de terminais do circuito integrado 7408.

124

indicao da subfamlia feita pela colocao de letras na referncia do integrado a seguir aos algarismos 74. Por exemplo, um 74LS00 um circuito TTL da subfamlia LS (do ingls, Low power Shotcky). A ausncia de letra indica que se est perante a srie normal TTL, que, actualmente, j de uso muito restrito, por estar tecnologicamente obsoleta. Os catlogos dos fabricantes indicam as caractersticas de cada subfamlia. Em CMOS, a indicao das subfamlias faz-se do mesmo modo que em TTL. Por exemplo, em CMOS existem duas subfamlias muito populares actualmente, a 74HC e a 74HCT (esta ltima, aceitando os nveis tpicos da famlia CMOS, mantm a compatibilidade dos nveis elctricos com a famlia TTL). O 74HC08 e o 74HCT08 tm a mesma distribuio de terminais que o 7408 ou o 74LS08.

Neste livro no ser analisada a estrutura interna das portas TTL, por apresentarem alguma complexidade e por o seu estudo no contribuir signicativamente para os objectivos apontados. J no caso das portas CMOS mais fcil perceber a sua estrutura e funcionamento. As portas CMOS utilizam transstores MOSFET de canal n e de canal p no mesmo circuito, razo da designao CMOS, em que o C provm do ingls Complementary, uma vez que se utilizam transstores de tipos complementares. Na Figura 3.3 representa-se o smbolo de um transstor de canal p e o seu equivalente funcional para o nvel de abstraco que interessa no contexto deste livro. Tudo se passa como se o transstor fosse um

& # ! 9 C & # ) }  !  fH!EfE7 '"& E1f 1 !  # 4 3 ! C 1 

3(e3TG3&lbrq QRC` % D f H %$0

Y ` %WV (u#C3% U

Descrio de alguns circuitos integrados digitais. Descrio Quatro portas NAND de duas entradas Quatro portas NOR de duas entradas Seis portas NOT Quatro portas AND de duas entradas Trs portas NAND de trs entradas Trs portas AND de trs entradas Duas portas NAND de quatro entradas Duas portas AND de quatro entradas Uma porta NAND de oito entradas Quatro portas OR de duas entradas Quatro portas XOR

Referncia 7400 7402 7404 7408 7410 7411 7420 7421 7430 7432 7486

125

interruptor que, enquanto a tenso elctrica na porta estiver abaixo de um limiar V l , se conserva fechado, criando uma ligao entre os terminais de fonte e de dreno, e que, se a tenso na porta ultrapassar um outro limiar Vh , interrompe a ligao. Na Figura 3.4 representa-se um transstor de canal n e, igualmente, o seu equivalente funcional. Neste transstor, a ligao entre o dreno e a fonte s se estabelece quando aplicada uma tenso que ultrapasse o limiar Vh porta, mantendo-se o circuito aberto se a tenso na porta for inferior a Vl . O funcionamento dos transstores entre os valores dos dois limiares irrelevante no caso de circuitos digitais.

A estrutura de uma porta NOT na tecnologia CMOS est representada na Figura 3.5 e, de uma maneira simplicada, a relao entre a tenso apresentada entrada, V I , e a tenso resultante sada, VO . O ndice I provem do ingls, Input e o ndice O do ingls, Output. Nesta gura representa-se, para alm da estrutura da porta, o seu circuito equivalente, no caso de se apresentar na entrada uma tenso VI = V0 inferior ao limiar Vl e uma tenso VI = V1 superior ao limiar Vh . Mantendo o nvel de abstraco a que esta matria est a ser analisada, verica-se que, para uma entrada a um nvel inferior a V l , a porta responde com uma tenso VO aproximadamente igual a VDD , a designao habitual da tenso de alimentao na tecnologia CMOS, que superior ao limiar V h e, para uma entrada a um nvel superior a Vh , responde com uma sada VO a um nvel inferior a Vl . Se se zer corresponder o nvel inferior a Vl a um 0 e o nvel superior a Vh a um 1, o circuito comporta-se, de facto, como uma negao. Nas Figuras 3.6 e 3.7 ilustram-se, respectivamente, a estrutura de uma porta NAND e de uma porta NOR em CMOS. deixado ao leitor, como exerccio, a anlise destes circuitos utilizando os pressupostos usados no caso do NOT.

&! 1 ! 9! 7 & # 7 1  9  ) fd)fE'HHmH(f! )f! & # ! }  


Fonte Porta Dreno

Y ` % D (RiCb3gqc

Y ` % D C`Cb3gqc
Porta

Transstor de canal p.

Dreno

Fonte
Transstor de canal n.

126

VI = V0

Os circuitos electrnicos que materializam as funes lgicas estudadas no Captulo 2 esperam nas suas entradas e apresentam nas suas sadas valores de tenso elctrica. Os fabricantes de circuitos lgicos no garantem valores xos de tenso para representar os valores lgicos. O que garantem um intervalo de tenses de tal modo que, se a sada de uma porta se encontrar nesse intervalo, pode considerar-se que est representado um determinado valor lgico.

& # ! 9 C & # ) }  !  fH!EfE7 '"& E1f 1 !  # 4 3 ! C 1 


VDD VI VO Gnd VDD VDD VO = VDD VI = V1 VO = Gnd Gnd Gnd

b(eg@phgG45(t U 3hFEgh4 `RC` 0 Dq D  0) " 1 D

Y `  D (R(%b3gFqc Y % D (eR(`b3gFqc

Estrutura de uma porta NOT em CMOS.

VDD VO

VIA VIB

Gnd
Estrutura de uma porta NAND em CMOS.

127

No caso da famlia TTL, a alimentao uma tenso contnua de V CC = 5V 5%. Os fabricantes garantem que, para l dos momentos em que se verica uma transio sada da porta em resultado de uma mudana nas entradas, a tenso estar ou no valor Alto, tambm designado por H (do ingls, High), que corresponde a um valor dentro do leque 2,4V a 5V, ou no valor Baixo, tambm designado por L (do ingls, Low), que corresponde a um valor dentro do leque 0V a 0,4V. A Figura 3.8 ilustra os dois nveis. O valor mnimo de tenso sada da porta, que ainda corresponde a H, usualmente designado por VOHmin , tenso alta mnima sada. O valor mximo de tenso sada da porta, que ainda corresponde a L, usualmente designado por V OLmax , tenso baixa mxima sada. Em TTL vericam-se, portanto, as denies das Equaes 3.1. VOHmin VOLmax = = 2,4V 0,4V (3.1)

A tendncia natural associar o intervalo Alto (H) ao valor lgico 1 e o intervalo Baixo (L) ao valor lgico 0. Adiante voltar-se- a esta questo, para mostrar que h outras hipteses porventura mais interessantes. necessrio ter em conta que existe aquilo que habitualmente se designa por rudo elctrico e que mais no do que a inuncia electromagntica de todos os campos que existem na zona onde est o circuito (emisses de rdio, TV, telemveis, interferncias provocadas por motores elctricos, emisso electromagntica de outras ligaes do mesmo circuito, etc.). Assim, possvel que sada de uma porta exista um valor vlido de tenso (por exemplo, 0,3V) e entrada de uma porta que lhe esteja ligada se observe um valor invlido (por exemplo, 0,5V). Para ter em conta que isso pode ocorrer e deve ser tolerado, as entradas das portas, ainda em TTL, tm uma especicao um pouco mais ampla, sendo os valores entre 2V e 5V interpretados como H, e os valores entre 0V e 0,8V interpretados como L, de

&! 1 ! 9! 7 & # 7 1  9  ) fd)fE'HHmH(f! )f! & # ! }  


VDD VIA VIB VO Gnd

f(b3gFqc Y ` % D

Estrutura de uma porta NOR em CMOS.

128

acordo com as Equaes 3.2. VIHmin corresponde tenso alta mnima entrada, e VILmax tenso baixa mxima entrada. Na Figura 3.9 resume-se esta questo dos nveis. VIHmin VILmax = = 2V 0, 8V (3.2)

O intervalo de 0,4V entre os valores extremos sada e entrada chamado margem de rudo. No caso da famlia 74HC, em CMOS, as tenses de alimentao so mais exveis que em TTL, podendo assumir valores entre 2V e 6V. Os nveis que referenciam os intervalos de tenso corespondentes ao H e ao L variam com a tenso de alimentao, como bvio. Os valores especicados, por exemplo, pela Philips para a tenso de alimentao de 4,5V, por exemplo, temperatura de 25 C, so listados nas Equaes 3.3. VIHmin VILmax VOHmin VOLmax = = = = 3,15V 1,35V 4,32V 0,26V (3.3)

& # ! 9 C & # ) }  !  fH!EfE7 '"& E1f 1 !  # 4 3 ! C 1 


5V 4V 3V 2V 1V 0V L VOLmax VOLmin VOHmin VOHmax H

(mC@3tqc Y ` % D

Denio dos nveis de tenso na sada de um circuito TTL.

129

5V 4V 3V 2V 1V 0V L

Denio dos nveis de tenso na famlia TTL sada e entrada de uma

porta.

Nestas condies, a margem de rudo de cerca de 1,15V, o que superior ao valor para TTL. No caso das famlias CMOS, a subfamlia 74HC tem as referncias e a distribuio de terminais compatveis com as famlias TTL. No , no entanto, electricamente compatvel, como se infere das Equaes 3.1, 3.2 e 3.3. A famlia 74HCT uma variante da HC com nveis lgicos compatveis com a famlia TTL.

Dado que os circuitos integrados so dispositivos reais e fsicos, no reagem instantaneamente a mudanas nas suas entradas. Isso quer dizer que, no seu comportamento ao longo do tempo, podem ser observados atrasos entre alteraes provocadas nas entradas de uma porta e as eventuais alteraes produzidas na sua sada. Na Figura 3.10 analisa-se um exemplo de uma porta AND num circuito 7408. A gura ilustra um diagrama temporal. Um diagrama temporal uma representao esquemtica da evoluo de sinais ao longo do tempo. No caso da gura, mostra-se a

&! 1 ! 9! 7 & # 7 1  9  ) fd)fE'HHmH(f! )f! & # ! }  


VOHmax VIHmax H H VOHmin Margem de rudo VOLmax VOLmin L VIHmin VILmax VILmin

@!3bC pi(` 0 %$

Y `  (Rn(%b3gFqDc

130

evoluo dos nveis entrada e sada de uma porta AND. Os sinais no mudam instantaneamente. Aqui a representao disso feita por uma linha inclinada na transio. Na realidade a transio mais complexa, mas ao nvel de abstraco a que feita esta anlise, esta forma de representao suciente. Por vezes, nos diagramas temporais, omite-se esta representao de uma transio no instantnea quando isso ajuda a torn-los mais claros, sendo as transies representadas por linhas verticais.

Pode ser observado que na porta a primeira alterao da entrada A no tem qualquer efeito na sada, uma vez que a entrada B permanece a 0, mantendo a sada a 0. um caso claro em que uma alterao numa entrada no afecta a sada e em que, portanto, no se pode falar de atraso.

A transio de 0 para 1 na entrada B leva a que a sada transite para 1. No entanto, a resposta da sada Z mudana em B ocorre apenas aps um certo tempo, representado na gura por tpLH . Este tempo, chamado tempo de atraso, tempo de reaco e, por vezes, tempo de propagao, uma consequncia dos fenmenos fsicos necessrios para a realizao da comutao da porta. O ndice pLH na designao do tempo de atraso referido indica que se trata da transio da sada de L para H. Os tempos de atraso nas transies de L para H no so obrigatoriamente iguais aos das transies inversas de H para L. Por isso, na gura fez-se uma representao em que tpLH diferente de tpH . Na Seco 3.4 L voltar-se-, mais pormenorizadamente a este tema.

& # ! 9 C & # ) }  !  fH!EfE7 '"& E1f 1 !  # 4 3 ! C 1 


A B A B Z tpLH tpHL Z

Yo `  D @(%b3gFqc

Exemplo de atrasos numa porta AND.

131

O funcionamento de circuitos electrnicos obriga ao consumo de energia. Essa energia dissipa-se, aquecendo os circuitos. Isto coloca dois problemas. Por um lado, necessrio garantir aos circuitos a energia necessria para o seu funcionamento. Por outro, necessrio garantir que h mecanismos de arrefecimento que conservam estvel a temperatura de um circuito, para evitar que os componentes se degradem. Como bvio, com a tendncia actual para o desenvolvimento de produtos portteis, estas questes tm vindo a tornar-se cada vez mais importantes. Pela sua estrutura, as portas TTL, e sobretudo as ECL, so portas que tm consumos de energia relativamente elevados. As portas CMOS, pelo contrrio, caracterizam-se por dissipar menos energia que as anteriores. Isso deve-se a que as portas CMOS dissipam a maior parte da energia durante o tempo em que esto a comutar de nvel. Se uma porta CMOS mantiver o nvel de sada estvel durante algum tempo, praticamente no consome energia. O que se paga, em contrapartida, um consumo que cresce com o nmero de transies por unidade de tempo, isto , com o nvel de actividade. A dissipao de potncia relativa comutao, a parte mais importante, dada pela Expresso 3.4.
2 Pd = CL VDD

Nesta expresso, Pd a potncia dissipada, CL a capacidade vista pela sada da porta, VDD a tenso de alimentao, e o nvel de actividade da porta, ou seja, o nmero mdio de transies por unidade de tempo. Uma forma que tem vindo recentemente a ser utilizada pelos fabricantes para diminuir o consumo dos circuitos lgicos, apesar do aumento das suas frequncias de funcionamento e, portanto, do nvel de actividade das portas, a diminuio da tenso de alimentao. Esta soluo que, de acordo com a Expresso 3.4, parece bvia, tem o inconveniente de diminuir a margem de rudo e a velocidade dos circuitos, levando necessidade de equilibrar cuidadosamente as vantagens e inconvenientes da soluo.

Para alm das portas bsicas, frequente em sistemas digitais a utilizao de outros dispositivos, que so importantes para garantir certo tipo de funcionalidades. Analisam-se seguidamente, pela sua importncia, os buffers de trs estados (em ingls, tri-state buffer) e as portas de passagem (em ingls, transmission gates).

&! 1 ! 9! 7 & # 7 1  9  ) fd)fE'HHmH(f! )f! & # ! }  

Fb%C#!hbb$b0!h Re(` D De  0 D D  D

%3(g R(` Dq"


(3.4)
132

O buffer de trs estados um dispositivo com uma entrada e uma sada de dados e ainda uma entrada de controlo. Quando a entrada de controlo est a H, o valor da sada igual ao valor que se apresenta na entrada de dados. Quando, pelo contrrio, a entrada de controlo est a L, ento a sada est em alta impedncia, isto , est desligada de toda a tenso elctrica. A Tabela 3.2 resume o funcionamento deste dispositivo. A Figura 3.11 mostra os smbolos utilizados para este circuito. No smbolo da direita o tringulo o sinal de sada de trs estados.

A Figura 3.12 ilustra a estrutura interna de um buffer de trs estados. As portas representadas na gura pretendem simplicar o circuito, de modo a tornar mais fcil a compreenso da sua estrutura, mas, como evidente, so, por sua vez, implementadas com um conjunto de transstores. Repare-se, por comparao com os circuitos anteriormente apresentados, que, quando a linha C est a L, ambos os transstores de sada esto cortados, isto , os interruptores equivalentes esto abertos e a sada no ca ligada nem a VDD nem a Gnd, cando, como se pretende, desligada de toda a tenso elctrica. Quando a entrada C est activa, isto , em H, a sada reproduz o nvel da entrada. H duas aplicaes fundamentais para os buffers de trs estados. Por um lado, potenciam a utilizao de linhas bidireccionais. Por outro, permitem interligar um de vrios sinais a uma dada linha.

& # ! 9 C & # ) }  !  fH!EfE7 '"& E1f 1 !  # 4 3 ! C 1 

Y ` % D #C@3tqc

Y %WV (QR(`u#C3% U

@33&GC31 a!r 0 1 %$  s  $ 
Tabela de um buffer de trs estados. C L H H I X L H O sem tenso L H

C I

En 1 O

C
Smbolos do buffer de trs estados.

133

Estrutura interna de um buffer de trs estados em tecnologia CMOS.

Considere-se o logigrama da Figura 3.13. Neste logigrama possvel observar que existem duas linhas que ligam duas entidades que se encontram, uma, direita e, outra, esquerda do logigrama. Se a varivel DIR estiver a H, ento o buffer de trs estados da

Ie Oe Dados

DIR

direita est inibido e, consequentemente, porta-se como se no estivesse presente. Em contrapartida, o buffer da esquerda est activo, e a informao que se encontrar presente na linha Oe transmitida pela linha Dados para a parte direita, onde pode ser lida atravs da entrada Id . Se a linha DIR estiver a L, observa-se exactamente o contrrio. Este , assim, o princpio de uma linha bidireccional, que permite trocar, sobre as mesmas linhas, informao nas duas direces (uma de cada vez, claro). evidente que se podem ter vrias linhas de dados que interliguem as duas entidades, sendo todas comandadas solidariamente pelo mesmo sinal de controlo DIR. Este tipo de aplicao muito importante, como se ver, na arquitectura de computadores. Considere-se, agora, o segundo tipo de aplicao dos buffers de trs estados, a interligao de um de vrios sinais a uma dada linha. Observe-se o logigrama da Figura 3.14. Considere-se a linha Sel ao nvel L. Nestas circunstncias, o buffer inferior desactivado e o superior est activo, colocando o valor da linha I0 na linha de sada O. Inversamente, se Sel assumir o nvel H, ser o buffer inferior o que est activo, e o superior, inibido,

&! 1 ! 9! 7 & # 7 1  9  ) fd)fE'HHmH(f! )f! & # ! }  


VDD I O C Gnd

YCE(%b3gFqc ` `  D

YQ % D (E(`b3gqFc

Id Od

Linha bidireccional.

134

fazendo O = I1 . A estrutura apresentada permite, assim, seleccionar o valor presente numa das linhas de entrada para colocar na sada. fcil generalizar esta congurao para mais de duas linhas de entrada. Ir-se- encontrar esta funcionalidade, de novo, no Captulo 4, quando se analisarem os multiplexadores.

Um outro tipo de dispositivo, que interessante considerar, o conjunto de portas cuja sada apenas consegue impor um dos estados lgicos. So portas com sadas do tipo colector aberto (em ingls, open-colector), em tecnologia TTL, ou do tipo dreno aberto (em ingls, open-drain), em tecnologia CMOS. primeira vista, este tipo de portas parece pouco til. No entanto, como se ver, permite em certos casos especcos resolver problemas que, de outro modo teriam soluo mais complexa. Para compreender a motivao para o desenvolvimento deste tipo de portas necessrio compreender uma limitao tecnolgica das portas clssicas. De facto, com portas clssicas no possvel interligar directamente sadas de portas, quer se esteja a trabalhar em TTL, quer em CMOS. Considere-se a situao ilustrada na Figura 3.15, em que duas portas NOT em tecnologia CMOS tm as suas sadas directamente interligadas. Se as duas entradas V I0 e VI1 estiverem ao mesmo nvel, o funcionamento do circuito no levanta qualquer problema, uma vez que as duas sadas tambm esto ao mesmo nvel, e VO apresenta o valor que qualquer das duas sadas apresentaria independentemente. No entanto, se os valores das entradas forem diferentes, ocorre na sada um problema para o qual o circuito das portas no est preparado. Nessas circunstncias, o que acontece que uma das portas liga o transstor de cima enquanto a outra liga o de baixo. Passa ento a haver um caminho directo entre a alimentao VDD e a massa do circuito (Gnd) com uma resistncia elctrica muito baixa, provocando o aparecimento de uma corrente elctrica muito

& # ! 9 C & # ) }  !  fH!EfE7 '"& E1f 1 !  # 4 3 ! C 1 


I0 Sel O I1

@C$r9b(t"hbCar 0 W 80e D 0$" 8W

Yi ` % D (C@3tqc

Utilizao de buffers de trs estados para seleco de sinais.

135

elevada que destri os circuitos. verdade que o circuito ilustrado no parece, em si, primeira vista, particularmente interessante, no sendo sequer claro que funo lgica se pretende implementar com ele. Mas considere-se agora, de novo, a mesma estrutura, mas com portas que no tm o transstor superior, como se ilustra na Figura 3.16. Na parte esquerda da gura ilustrada uma porta NOT com dreno aberto (este nome advm do facto de o dreno do transstor inferior estar em aberto sem qualquer ligao). ainda ilustrada uma resistncia que no faz parte da porta, sendo acrescentada exteriormente. Uma vez que o nico transstor em cada porta o inferior, consegue-se impor um nvel Low na sada de cada porta. No entanto, se no for utilizada a ligao a VDD atravs da resistncia e se a porta pretender colocar a sua sada em High, no h maneira de o fazer, uma vez que no existe ligao tenso positiva VDD . Para conseguir ter a sada com o valor High, utiliza-se ento a resistncia externa, que, quando o transstor inferior da porta no est a impor o nvel Low, permite que a sada da porta esteja ligada tenso positiva, assumindo o nvel High. Nestas condies, a estrutura da parte direita da gura, que replica, para portas deste tipo, o circuito da Figura 3.15, j no apresenta qualquer problema para a funcionalidade das portas, uma vez que nunca possvel obter um caminho de baixa resistncia entre VDD e Gnd. agora possvel perceber a funo lgica materializada pela ligao directa das sadas das portas. Sempre que uma das portas, por si, pretende colocar a sua sada a Low, h um transstor que interliga VO e Low, colocando a sada ao nvel Low. S se

&! 1 ! 9! 7 & # 7 1  9  ) fd)fE'HHmH(f! )f! & # ! }  


VDD VI0 Gnd VDD VI1 Gnd VO

Y ` % D CEC@3tqc

Circuito com duas portas NOT com sadas interligadas.

136

VI Gnd

tipo.

nenhuma das portas pretender colocar a sua sada em Low que a ligao atravs da resistncia impe o nvel High na sada VO . , assim, fcil perceber que se est perante um AND virtual, apesar de no existir qualquer porta. Este tipo de ligao usualmente designado em ingls por wired-and. A ideia de que a utilizao de ligaes deste tipo permite utilizar menos portas, e que, portanto, deve ser comum e recomendvel, no corresponde verdade. H vrias razes que levam a isso. Uma delas que mais fcil utilizar circuitos com maior nvel de integrao que permitem a interligao interna de muito mais portas. Outra que este tipo de ligao , comparativamente, lento. No entanto h circunstncias em que o uso de ligaes de dreno aberto (ou de colector aberto em TTL) particularmente til. Um caso corrente o de cada um dos circuitos se encontrar em placas separadas, que podem ser inseridas, atravs de chas, numa placa global de interligao. Nessas circunstncias, basta colocar a resistncia na placa de interligao e ligar o nmero de placas de circuito necessrio para uma dada aplicao, garantindo o funcionamento, qualquer que seja a congurao. Mais adiante, na Seco 3.5, outra aplicao ser apresentada.

& # ! 9 C & # ) }  !  fH!EfE7 '"& E1f 1 !  # 4 3 ! C 1 


VDD VI0 Gnd VO VDD VO VI1 Gnd

Y((`t@3tqc e % D

Porta NOT com sada de dreno aberto e interligao de duas portas desse

137

Um tipo de dispositivo de grande utilidade na concepo de alguns circuitos a chamada porta de passagem. A porta de passagem um circuito constitudo por dois transstores complementares ligados, como se ilustra na Figura 3.17, que permitem, quando ambos activados, a passagem de sinais em toda a gama de tenso entre a massa e a tenso de alimentao, permitindo a passagem de sinais dentro ou fora dos nveis digitais do CMOS. Quando os dois transstores esto desactivados, a sada da porta est isolada da entrada e, portanto, desligada de toda a tenso elctrica. Adiante se poder vericar a utilidade destes dispositivos.

A Figura 3.18 ilustra o smbolo pelo qual so habitualmente representados estes circuitos.

As portas de passagem so muitas vezes utilizadas com a congurao de ligaes ilustrada na Figura 3.19(a). Aquela congurao habitualmente representada pelo smbolo da Figura 3.19(b). A funcionalidade deste tipo de dispositivo e do buffer de trs estados , em muitos casos, compatvel. De facto, se na sada de uma porta lgica for includa uma porta de

&! 1 ! 9! 7 & # 7 1  9  ) fd)fE'HHmH(f! )f! & # ! }  

C%b3gqc Yf `  D

CE(b3gFqc Ym ` % D

8 q %  1 %$ 0 g@%!3!53G3&lbrq
C A C
Circuito da porta de passagem.

A C

Smbolo de uma porta de passagem.

138

(a) Congurao tpica de aplicao de uma porta de passagem. (b) Smbolo habitual da congurao anterior. passagem, o comportamento global obtido semelhante ao da incluso de um buffer de trs estados. Os dois dispositivos, tm, porm, caractersticas diferentes que, sem aprofundar o seu comportamento fsico (o que est fora do mbito deste livro), no so de fcil compreenso. Por outro lado, uma porta de passagem bidireccional, o que no acontece no buffer de trs estados. H ainda que recordar que a porta de passagem no um dispositivo puramente digital, possibilitando a passagem de sinais analgicos.

As funes lgicas NOT, OR, NOR, etc., estudadas no Captulo 2, podem, naturalmente, ser implementadas, utilizando portas lgicas do tipo das que tm vindo a ser apresentadas. H algumas convenes, porm, que tero de ser explicitadas, para que isso possa ser feito de forma no ambgua.

Como se viu na Seco 3.1.3, uma porta tem um funcionamento binrio, assumindo um de dois leques de nvel de tenso elctrica, quer nas suas entradas, quer na sua sada. Um NOT, por exemplo, produz na sua sada um valor H, sempre que a sua entrada est a L. A utilizao de circuitos deste tipo para dar suporte a funes lgicas resulta do facto de que, em ambos os contextos, circuitos e funes lgicas, se est a trabalhar com conjuntos de dois elementos. natural, como tambm j se referiu, associar o nvel alto

139

7H

& # ! 9 C & # ) }  !  fH!EfE7 '"& E1f 1 !  # 4 3 ! C 1 


A B A C B (a) (b)

i Bh

xw

E%3745$@rqCFe3bt (QC` % D$ q  % D D 0 % Dqp

2 F

Y(C`@3tqc n % D x yDg

H num terminal de um circuito ao valor lgico 1, e o nvel baixo L, ao valor lgico 0. Essa correspondncia est ilustrada na Tabela 3.3.

Esta conveno denominada lgica positiva e muito utilizada, talvez por ser muito intuitiva. Analise-se um pouco mais a fundo este conceito. Uma porta AND de um circuito 74LS08, por exemplo, tem o funcionamento, especicado pelos fabricantes, descrito na Tabela 3.4, em que A e B so as entradas, e Z a sada. Repare-se que os fabricantes especicam o funcionamento da porta em nveis de tenso, uma vez que o que podem, de facto, garantir.

Aplicando a correspondncia da Tabela 3.3, obtm-se a clssica tabela da funo lgica AND , como se pode observar na Tabela 3.5.

Como evidente, a lgica positiva no a nica conveno possvel. A alternativa a lgica negativa descrita na Tabela 3.6.

& 1 ! &  Ef"E & 1 )  #  # 7 ( 1 & } & ! 9 C &   3 ( }   7 # 4 3 1 C  mmHH"H1fHE~EED'!D1`


Tabela de uma porta do circuito 74LS08 interpretada em lgica positiva. A 0 0 1 1 B 0 1 0 1 Z 0 0 0 1

Y ` %WV C`C&C3% U
Valor lgico 0 1

Lgica positiva. Nvel de tenso L H

Y ` %WV (iRC&C3% U Y %WV (R(`u#C3% U

Tabela de uma porta do circuito 74LS08. A L L H H B L H L H Z L L L H

140

Repare-se que, utilizando a lgica negativa, a interpretao do funcionamento do 74LS08 diferente. Interpretando a Tabela 3.4, que descreve o funcionamento elctrico do 74LS08, luz da conveno da lgica negativa, obtm-se a Tabela 3.7.

Esta tabela corresponde, como se pode observar, funo OR. Isso quer dizer que, em lgica negativa, as portas includas no 74LS08 so interpretadas como circuitos OR. bvio que o circuito electrnico funciona sempre da mesma maneira. A interpretao que se faz do seu funcionamento que diferente. , por tudo isto, natural que a designao dada pelos fabricantes s portas includas no 74LS08 seja Positive AND Gate, numa aluso a que a interpretao do circuito como um AND est associada ao pressuposto de se estar a usar lgica positiva. A lgica negativa muito menos usada que a lgica positiva. Actualmente, porm, reconhece-se que nenhuma das duas convenes a ideal. Para mostrar porqu, considere-se um exemplo. Admita-se que se pretende construir um alarme para um automvel que assinale, accionando um besouro, que o carro circula com uma porta aberta ou que est estacionado com as luzes acesas. A obteno de uma funo lgica que d suporte ao comportamento pretendido fcil. Se o carro tiver quatro portas, o estado de cada porta pode ser representado por uma varivel P i de um conjunto que vai de P 1 a P 4. Cada uma destas variveis estar a 1 quando a respectiva porta estiver aberta. fcil, agora, vericar que a Expresso 3.5

& # ! 9 C & # ) }  !  fH!EfE7 '"& E1f 1 !  # 4 3 ! C 1 


Tabela de uma porta do circuito 74LS08 interpretada em lgica negativa. A 1 1 0 0 B 1 0 1 0 Z 1 1 1 0

Y ` %WV CeC&C3% U
Valor lgico 0 1

Lgica negativa. Nvel de tenso H L

Y %WV f(`w&C3% U

141

corresponde a uma funo que indica, quando a 1, se existe pelo menos uma porta aberta. P = P1 + P2 + P3 + P4 (3.5) Do mesmo modo, pode ser denida a varivel L, que assume o valor 1, quando as luzes esto acesas, e a varivel C, uma varivel que est a 1 quando a chave de ignio est ligada. fcil de ver que o alarme pretendido pode ser descrito pela funo A com a Expresso 3.6. A=C P +C L (3.6) Substituindo P pela expresso em termos das variveis P i, obtm-se a Expresso 3.7. A = C (P 1 + P 2 + P 3 + P 4) + C L A funo A representvel pelo logigrama da Figura 3.20. (3.7)

fcil reconhecer neste logigrama a funo atrs referida, e a lgica do problema est perfeitamente visvel. Est a partir-se do princpio que esto acessveis as variveis P 1 a P 4, C e L, bem como uma entrada A na sirene de alarme. Se todas as variveis estiverem implementadas usando lgica positiva, o logigrama pode corresponder mais ou menos directamente a um circuito que implemente o sistema de alarme. Para as variveis estarem implementadas em lgica positiva, porm, isso signica que temos de ter sinais que materializam as variveis que esto a H quando as variveis esto a 1, e a L, quando esto a 0. Acontece, porm, que nem sempre isso possvel e que frequente que certas variveis estejam representadas em lgica negativa. A ttulo de exemplo, considere-se que, quando uma porta do carro est aberta, o o que d suporte

& 1 ! &  Ef"E & 1 )  #  # 7 ( 1 & } & ! 9 C &   3 ( }   7 # 4 3 1 C  mmHH"H1fHE~EED'!D1`


P1 P2 P3 P4 C A P L

Y@#QR(b3gFqc o ` % D

Logigrama da funo A.

142

fsico respectiva varivel P i assume o nvel L por razes que tm a ver com o circuito elctrico do carro. Do mesmo modo, considere-se que o mesmo acontece com a varivel C. Se se analisar a situao em termos de lgica positiva, isso signica que aquilo a que se tem acesso , na realidade, a essas variveis negadas. O logigrama ter de ser adaptado em conformidade, passando situao ilustrada na Figura 3.21.

No entanto, este logigrama demasiado complexo e possvel alter-lo para car mais simples e para usar menos circuitos integrados diferentes. O OR com as negaes pode ser reconvertido num aplicao de uma das leis de Morgan.
NAND

A estrutura AND - OR do nal pode ser substituda por uma estrutura de novo por aplicao das leis de Morgan.

Como, aps as alteraes anteriores, o circuito usa apenas trs portas NAND de um integrado que tem quatro, o NOT pode ser substitudo por esse quarto NAND, prescindindo-se, assim, de um integrado com portas NOT. A Figura 3.22 mostra o logigrama j simplicado, com a indicao dos integrados envolvidos e dos terminais ligados, sendo, portanto, j um esquema elctrico. Este circuito , evidentemente, muito mais simples que o anterior, uma vez que usa apenas dois circuitos integrados diferentes em vez de quatro, como o anterior. O nico problema

& # ! 9 C & # ) }  !  fH!EfE7 '"& E1f 1 !  # 4 3 ! C 1 


P1 P2 P3 P4 C A P L

Y `  D CRQ(%b3gqFc

Logigrama adaptado da funo A, utilizando lgica positiva.

de quatro entradas por


NAND - NAND

143

que, observando este circuito, no de modo algum evidente a lgica inicial do problema. No s as diversas funes foram alteradas, como tambm algumas variveis de entrada aparecem negadas, o que para um observador desprevenido no tem causas evidentes. O problema resulta de, para o circuito se adaptar s condies exteriores, por um lado, e para o simplicar, por outro, se ter alterado o tipo de funes (e, portanto, de integrados) usadas. Essa alterao conveniente para simplicar o circuito, mas tem as consequncias negativas apontadas.

Na seco anterior cou claro que possvel simplicar os circuitos digitais usados para implementar funes lgicas, custa de tornar menos bvia para o observador a lgica do problema. , no entanto, possvel, manipulando a forma de representao do circuito no esquema, representar este, de modo a no perder informao em relao ao logigrama inicial. Com essa nalidade criou-se a lgica de polaridade, forma alternativa s lgicas positiva e negativa. Em lgica de polaridade procura-se optar em cada ponto do circuito pelo tipo de lgica que melhor contribua para claricar o seu funcionamento. Claro que isso obriga a que, em cada ponto do circuito, se indique o tipo de conveno utilizado. Voltando ao exemplo que tem vindo a ser estudado, recorde-se que as variveis C e P 1 a P 4 estavam activas, isto , em termos de lgebra de Boole, assumiam o valor 1, quando o sinal elctrico que lhes d suporte est no nvel L. Assume-se essa circunstncia, indicando-a explicitamente na designao dos respectivos sinais elctricos. Por exemplo, P 1_L indica que a varivel P 1 representada por um sinal P 1_L, que estar a L, sempre que a varivel P 1 est activa (isto , assume o valor 1) e, claro, o sinal estar

& 1 ! &  Ef"E & 1 )  #  # 7 ( 1 & } & ! 9 C &   3 ( }   7 # 4 3 1 C  mmHH"H1fHE~EED'!D1`


P1 P2 P3 P4
1 1 2 4 5 6

P
4 5 6

IC2
3

IC1
10 9 8

13 12

11

IC1

A IC1 IC1 - 74HC00 IC2 - 74HC20

IC1

1% D% 0q 1 % Dqp 33(1b3uWbr53CFe3@ RQ(RQ(`

Y `  D (Q#Q(%b3gqc

Esquema elctrico do circuito que implementa a funo A.

144

a H, sempre que P 1 estivar inactiva (assumindo o valor 0). Repare-se que a designao de um sinal assume agora um contedo semntico interessante. Para alm da designao do sinal e, implicitamente, da varivel a que ele d suporte fsico, o nome do sinal indica o tipo de relao entre o sinal e a varivel. De acordo com esta metodologia, as quatro variveis que indicam o estado das portas e da chave de ignio sero representadas pelos sinais P 1_L, P 2_L, P 3_L, P 4_L e C_L. Repare-se que, ao contrrio do que aconteceu quando o problema se abordou no contexto da lgica positiva, no h aqui o conceito de negao da varivel mas apenas uma correspondncia entre o comportamento da varivel e o do sinal elctrico. Claro que, agora, necessrio indicar o que se passa com as restantes variveis, isto , qual a representao dos sinais elctricos de suporte s variveis L, P e A. Como estas variveis esto suportadas em sinais que esto ao nvel H quando elas esto activas, isto , com o valor lgico 1, os sinais correspondentes s variveis L, P e A devem ser representados respectivamente por L_H, P _H e A_H. De algum modo, pode assumir-se que, por exemplo, no caso de P 1_L se representa a varivel P 1 em lgica negativa, enquanto que, para o caso de A_H, se pode assumir que a varivel A est representada em lgica positiva. Mas a metodologia da lgica de polaridade mais rica em signicado semntico do que uma simples indicao deste tipo, sendo a relao entre o sinal e as portas a que est ligado importante para a denio desse signicado, como se ver adiante. Considere-se agora o circuito OR de quatro entradas no logigrama inicial. Se as variveis de entrada so suportadas em sinais com as caractersticas descritas, ento isso tem de ser assumido pela entrada do OR. A forma como tal se indica atravs de um smbolo

dade.

de inverso de polaridade, nessas entradas, como se pode ver na Figura 3.23. O smbolo indicador de inverso de polaridade o crculo que indica tambm a negao nas portas at agora utilizadas. Este duplo signicado ser tratado adiante mais pormenorizadamente. Um smbolo de inverso de polaridade alternativo usado com frequncia

& # ! 9 C & # ) }  !  fH!EfE7 '"& E1f 1 !  # 4 3 ! C 1 


P1_L P2_L P3_L P4_L P_H

Y(RQ(`@3tqc ` % D

Porta

OR

do logigrama da funo A representado em lgica de polari-

145

um tringulo como se mostra na Figura 3.24. Neste livro, usar-se- apenas o primeiro smbolo.

Porta OR do logigrama da funo A representado em lgica de polaridade com o smbolo de inverso de polaridade alternativo. Repare-se que a relao que existia entre as variveis P i e a funo OR no logigrama da Figura 3.20 se mantm aqui. De facto, uma vez que, em ambos os casos, a um valor activo das variveis e das entradas da porta corresponde um nvel L do sinal, a porta v directamente o valor das variveis sua entrada. Do mesmo modo se procede em relao varivel C, assinalando com indicadores de inverso de polaridade as entradas que lhe esto ligadas. O logigrama global assim alterado est representado na Figura 3.25. Repare-se que, neste logigrama, se mantm explcita a lgica inicial do problema, no tendo sido alterados os smbolos de base das portas lgicas utilizadas, existindo j, porm, a informao acerca do nvel em que as entradas so activas. A diferena fundamental em relao ao mtodo anteriormente exposto o de no confundir inverses de polaridade de sinais resultantes de condicionantes fsicas com negaes lgicas.
P1_L P2_L P3_L P4_L C_L A_H

A passagem a esquema elctrico implica identicar os integrados que possam dar su-

& 1 ! &  Ef"E & 1 )  #  # 7 ( 1 & } & ! 9 C &   3 ( }   7 # 4 3 1 C  mmHH"H1fHE~EED'!D1`


P1_L P2_L P3_L P4_L P_H

Y `  D (#QC%b3gqc

Yi `  @QC%b3gFqDc

P_H

L_H

Evoluo do logigrama que representa a funo A.

146

porte s funes do logigrama. No caso da funo OR de quatro entradas, por exemplo, parte-se da tabela de verdade do OR, fazendo corresponder as entradas e a sada aos nveis elctricos correctos, de acordo com a respectiva conveno. Esse procedimento est ilustrado na Tabela 3.8.

P1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1

Mas esta a tabela do circuito 74LS20, j utilizado atrs. Trata-se daquilo que, em lgica positiva, seria um NAND. Aqui, numa situao correspondente aplicao da metodologia associada lgica de polaridade, este mesmo circuito interpretado como um OR com entradas activas a L. No se altera o smbolo no esquema para mostrar que a funo desempenhada , de facto, um OR. E, como pode ser entendido do esquema, mais do que isso, um OR directo das variveis P 1, P 2, P 3 e P 4. A negao presente no logigrama da Figura 3.25 entre o sinal C_L e o AND inferior , agora, uma negao com uma entrada activa a L. Repare-se que o que estava inicialmente entrada do AND era C. No havendo alterao na entrada do AND, o sinal que deveria l estar seria C_H. Mas repare-se que o sinal C_H o mesmo que C_L, que o sinal que est presente. A Tabela 3.9 mostra isso. Por outro lado, pode mostrar-se igualmente que a negao com entrada activa a L presente no logigrama um operador identidade. Chamando X_H ao sinal sada da

& # ! 9 C & # ) }  !  fH!EfE7 '"& E1f 1 !  # 4 3 ! C 1 

Y(Rm(u#C3% U ` %WV

Tabela de converso para lgica de polaridade do OR do circuito. P2 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 P3 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 P4 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 P 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 P 1_L H H H H H H H H L L L L L L L L P 2_L H H H H L L L L H H H H L L L L P 3_L H H L L H H L L H H L L H H L L P 4_L H L H L H L H L H L H L H L H L P _H L H H H H H H H H H H H H H H H

147

porta, pode ser feita a Tabela 3.10. fcil ver na tabela que o que se pretende um circuito que faa corresponder um L a um L e um H a um H. Sublinhe-se, de novo, que C_H = C_L. A maneira mais bvia de fazer isso com uma ligao directa. O esquema evolui, portanto, para o ilustrado na Figura 3.26.

A escolha dos restantes circuitos poderia ser feita de maneira mais ou menos directa. O OR nal seria implementado por uma das portas includas num circuito de portas OR de duas entradas, tal como o AND inferior poderia ser implementado usando um circuito de portas AND de duas entradas. O caso do AND superior seria mais complexo, uma vez que se trataria de um AND com uma entrada activa a H e a outra activa a L, o que no existe nas sries 74nn. Mas j se viu que possvel diminuir esta diversidade, implementando toda esta zona com portas de apenas um integrado. No entanto, tal como anteriormente, vai manter-se a simbologia existente. Para tratar esta situao comea-se por acrescentar um inversor na linha que liga a entrada C_L entrada do AND . Seguidamente transformam-se os sinais que ligam a sada das portas AND s entradas do OR em sinais activos a L. O inversor ser implementado com uma porta que sobra do circuito que vai implementar os ANDs e o OR. Obtm-se, assim, o esquema da Figura 3.26. Em termos nais, sublinhe-se que se chegou, naturalmente, ao mesmo circuito fsico que se tinha obtido anteriormente, mas com um esquema muito melhor documentado em que toda a lgica inicial do problema est explicitamente representada, uma vez que os smbolos das diversas funes no se alteraram pela passagem a portas pertencentes a circuitos integrados reais. A nica aparente excepo a da falta de negao entre a entrada C e o AND inferior e o aparecimento de um inversor entre a mesma entrada e o AND superior. Mas essa excepo s aparente. Repare-se que, por exemplo, quando

& 1 ! &  Ef"E & 1 )  #  # 7 ( 1 & } & ! 9 C &   3 ( }   7 # 4 3 1 C  mmHH"H1fHE~EED'!D1`

Y ` %WV Cn(u#C3% U Yo ` %WV (C&C3% U


C_L L H

Tabela mostrando que C_H = C_L. C 0 1 C 1 0 C_L H L C_H H L

Efeito da negao com entrada activa a L. Sada da porta 0 1 X_H L H

Entrada da porta 1 0

148

a varivel C est activa, o sinal que a liga ao terminal 10 do integrado IC 1 est a L. Mas nessa entrada do integrado L interpretado como uma entrada inactiva, isto , a negao da varivel C. De facto, a varivel C est representada em lgica negativa, enquanto que a entrada da porta est representada em lgica positiva, o que implica a existncia de uma inverso lgica entre a varivel e a entrada da porta. A negao est, portanto, l. De igual modo, quando C est activo, as entradas 1 e 2 do integrado IC 1 esto a L. Essa porta ir apresentar um H na sua sada, que ser interpretado como uma entrada activa no terminal 5. Ento no h negao entre C e a entrada dessa porta AND. Repare-se, assim, que a porta com entradas 1 e 2 e sada em 3 deve ser interpretada, no como uma negao, mas sim como um inversor do nvel de actividade do sinal. A sua sada dever chamar-se, assim, C_H, aparecendo a varivel C suportada por um sinal activo a H numa entrada que tambm activa a H. Esta metodologia, que pode parecer um pouco confusa inicialmente, possibilita o desenho de esquemas muito mais claros, uma vez que incluem toda a informao elctrica real, mas mantm a informao lgica de base. Por outro lado, eliminada toda a ambiguidade acerca da relao entre o estado lgico das variveis e das entradas e sadas das diversas portas. Para tornar o esquema mais legvel h algo mais que pode ser feito. As variveis utilizadas no tm um signicado particularmente claro. P i, P , C, L e A so designaes demasiado abstractas. Nada impede que os nomes das variveis explicitem melhor o seu signicado. Por exemplo, em vez de L pode ser usada a designao Luz_Acesa, o que tira toda a ambiguidade de interpretao. Se se proceder desse modo, pode atingir-se, por exemplo, o esquema da Figura 3.27.

& # ! 9 C & # ) }  !  fH!EfE7 '"& E1f 1 !  # 4 3 ! C 1 


P1_L P2_L P3_L P4_L C_L
1 2 4 5 6

P_H
4 5 3 C_H 6

IC2
1 2

IC1

13 12

11

IC1

A_H

10 9 8

IC1 IC1 - 74HC00 IC2 - 74HC20

L_H

IC1

Ye ` % D (QR(b3gqFc

Esquema elctrico do circuito que implementa a funo A.

149

Porta1_Aberta_L Porta2_Aberta_L Porta3_Aberta_L Porta4_Aberta_L Chave_Ligada_L

1 2 4 5 6

IC2
1 2 3

Luz_Acesa_H

Esquema elctrico nal do circuito que implementa a funo A.

Um circuito digital, tal como qualquer outro, pode exibir um funcionamento diferente do especicado, isto , pode ter um funcionamento que no corresponde ao pretendido. Isso pode ocorrer por vrias causas. A especicao do circuito pode no corresponder ao que pretendido. Esta situao frequente e resulta da ambiguidade da linguagem corrente usada para descrever o comportamento pretendido de um sistema. Quando se passa da descrio de um sistema para a sua especicao formal, as ambiguidades so forosamente resolvidas e, por vezes, no da maneira desejada por quem necessita do sistema. , por isso, muito importante, nesta fase, que todos os envolvidos na concepo e projecto, bem como a entidade a quem o projecto se destina, veriquem exaustivamente se o sistema especicado tem a funcionalidade pretendida. O projecto do circuito pode no corresponder especicao. Esta situao est naturalmente associada a erros de projecto ou a decises de compromisso relacionadas com o custo associado a cumprir integralmente a especicao. Esta segunda hiptese corresponde, na prtica, a uma reviso da especicao inicial conduzida por motivos de ordem econmica ou de praticabilidade. No caso de erro de projecto, haver que identic-lo e corrigi-lo. A implementao pode no corresponder ao projecto. Neste caso, verica-se que houve troca nos componentes utilizados ou erro na execuo das ligaes entre eles. A soluo , como bvio, identicar a fonte do problema e elimin-la.

H~m)7 & 1 C 1   7 # 4 3   
Porta_Aberta_H
4 5 6

IC1 Chave_Ligada_H
10 9 8

13 12

11

IC1

Alarme_Activo_H IC1 IC1 - 74HC00 IC2 - 74HC20

IC1


150

ax

fQC`%b3gqc Y  D
E7

g yDg

Finalmente, pode ocorrer um mau funcionamento num circuito bem especicado, projectado e construdo, por falha de um componente ou da sua interligao ocorrida j em funcionamento. Pode vericar-se uma falha de um ou mais componentes por funcionamento fora das especicaes, por excesso de tempo de vida ou por deciente concepo ou fabrico. Essa falha provoca um erro no comportamento do sistema. Esse erro manifesta-se numa avaria, isto , na ocorrncia de um no cumprimento das especicaes do sistema. A avaria verica-se. Essa vericao leva a que se procure e detecte o erro. Encontrado o erro, localiza-se a falha e corrige-se. A avaria , portanto, vericada ao nvel do sistema e corresponde sua incapacidade de desempenhar a sua funo, de acordo com o especicado, por existncia de erros nos seus elementos ou no seu ambiente (incluindo os sistemas com que faz interface). As falhas podem ter, portanto, vrias origens: Erros de projecto, erros na especicao ou na implementao. Erros devidos a problemas de fabrico dos elementos. Deteriorao dos elementos, quer por danicao, quer por fadiga. Perturbaes de causa externa, como condies ambientais agressivas, interferncia electromagntica, radiaes ionizantes, valores de tenso ou corrente elctrica inadequados nas entradas, ou utilizao errada. Os erros no comportamento do elemento (o que se observa) so causados por falhas que se manifestam. No entanto, h falhas que no provocam erros, seja porque no alteram as caractersticas pertinentes do elemento, seja por no colocarem as suas especicaes fora dos limites aceitveis. Uma falha classicada de latente, se ainda no provocou um erro e, por conseguinte, uma avaria. As falhas podem, quanto sua ocorrncia, ser classicadas em trs classes: Falhas transientes: ocorrem, em geral, por inuncia externa e ocorrem uma vez sem se repetir. So muito difceis de tratar, uma vez que no persistem, em geral, o tempo suciente para serem estudadas. Falhas intermitentes: o sistema oscila entre o funcionamento correcto e avariado sem controlo do utilizador. Este tipo de falhas resulta do funcionamento de um elemento ou de uma ligao de maneira marginal ou instvel. Trata-se de um tipo de falhas difcil de detectar, uma vez que nem sempre se encontra presente. Falhas permanentes: a falha mantm-se ao longo do tempo e , portanto, possvel elaborar e aplicar estratgias para a sua deteco.

& # ! 9 C & # ) }  !  fH!EfE7 '"& E1f 1 !  # 4 3 ! C 1 


151

H vrios tipos de falhas em circuitos digitais que devem ser conhecidas para possibilitar a elaborao de estratgias para a sua deteco. O primeiro tipo de falhas constitudo pelas falhas tecnolgicas nos integrados, tambm referidas, por vezes, como falhas analgicas. Podem provocar o funcionamento incorrecto do circuito, do ponto de vista de tenses, potncias de sada e/ou tempos de comutao, ainda que o circuito permanea funcionalmente correcto no sentido estrito. Algumas falhas externas (radiao, campos electromagnticos fora das especicaes) podem ter efeitos semelhantes. Manifestaes deste tipo de falhas podem ser, por exemplo: a incapacidade de uma sada de, num dos nveis, atacar convenientemente as entradas a que est ligada; a ocorrncia de atrasos demasiado elevados com consequncias sobre o comportamento funcional do mdulo onde o circuito est inserido; a ocorrncia de nveis de tenso ilegais na sada ou a incorrecta interpretao nas entradas de nveis dentro dos limites; a ocorrncia de excesso de consumo nos integrados, com aquecimento excessivo destes, e eventual deteriorao global dos nveis de tenso de alimentao. Este tipo de falhas pode ser difcil de detectar em alguns casos ou de classicar como falhas analgicas noutros. Um segundo tipo de falhas corresponde s falhas lgicas dentro do integrado, isto , a que as portas do integrado no cumpram a sua tabela de verdade. Ao nvel em que o circuito j interpretado como um dispositivo lgico, as falhas reectem-se num mau comportamento funcional. Estas falhas podem ser caracterizadas segundo vrios modelos de falhas, que resumem, em comportamentos vericveis semelhantes, falhas que podem ser, na sua essncia, diferentes. Num circuito electrnico, um n um ponto de interligao entre vrios componentes. N preso a um valor (em ingls, designado por stuck at): neste caso, tudo se passa como se um ponto do circuito (no necessariamente de acesso exterior) estivesse bloqueado a H ou L.

H~m)7 & 1 C 1   7 # 4 3   

&$gqhhb$D((FdG33r53G@0FD U (R`(` D% D D 0 e D j 8 %W%c 1


152

Ligao entre dois sinais (em ingls, designada por bridging): neste caso, tudo se passa como se dois sinais estivessem em curto-circuito ou, em casos menos denidos, como se um inuenciasse indevidamente outro. N utuante ou desligado: Neste caso, tudo se passa como se um determinado ponto de um circuito estivesse desligado do sinal que o deveria activar. Pode ser lida uma tenso, no leque intermdio de tenses entre o L e o H, mas a tenso no est xa e pode variar por inuncia exterior. H, por m, que considerar as falhas lgicas externas ao integrado, isto , que so causadas pelas interligaes entre integrados. Causas tpicas das falhas lgicas exteriores ao integrado so as seguintes: Curto-circuito entre sinais. Este tipo de falhas , no contexto de falha externa, semelhante aos dois primeiros tipos de falhas lgicas internas ao integrado. Podem ter vrias causas, como por exemplo: por excesso de solda, que faz pontes entre terminais de um integrado; por um resduo condutor car preso entre dois condutores; por dois terminais de componentes terem sido dobrados e entrado em contacto; por defeito ou degradao do circuito impresso (por aquecimento, por exemplo). Os curto-circuitos entre sinais podem vericar-se entre sinais lgicos ou entre um sinal lgico e a alimentao ou a massa. No caso de montagens experimentais em rguas de terminais (em ingls, breadboards), as falhas deste tipo resultam de erros de ligao dos os. Falta de ligao num n, o que corresponde ao terceiro tipo de falha interna em circuitos integrados. As causas tpicas so: por quebra de traos (as interligaes) no circuito impresso; por soldaduras mal feitas, ou com oxidao interna; por quebra de terminais. A falta de ligao pode ocorrer num n de sinal com ausncia de sinal em algumas entradas de circuitos ou com a alimentao, caso em que os circuitos no so alimentados. Mais uma vez, este tipo de falhas pode manifestar-se em montagens laboratoriais por erros (ou ausncia) de colocao de os.

& # ! 9 C & # ) }  !  fH!EfE7 '"& E1f 1 !  # 4 3 ! C 1 


153

Existem vrios instrumentos de laboratrio teis para a localizao de falhas em circuitos. Os mais comuns so: a ponta de prova lgica (em ingls, logic probe), que permite observar o nvel presente num determinado n de um circuito; o pulsador lgico (em ingls, logic pulser), que permite impor instantaneamente um nvel determinado num n de um circuito; o osciloscpio, que permite observar a forma do sinal elctrico ao longo do tempo em um ou mais ns do circuito (tipicamente quatro a oito, no mximo); e o analisador lgico (em ingls, logic state analyzer ou data analyzer), que permite, j a um nvel de abstraco lgico, observar a evoluo de um conjunto de ns do circuito ao longo do tempo (tipicamente 32 a 64 no mximo). Ao nvel a que este livro se coloca, ir-se- privilegiar a ponta de prova lgica. O xito da localizao de falhas num circuito digital simples depende mais dos procedimentos a realizar e da experincia de quem realiza o trabalho do que da sosticao e complexidade do equipamento. A ponta de prova lgica um pequeno (e barato) instrumento de desempanagem de circuitos digitais que, para circuitos de baixa complexidade, um auxiliar precioso. Consiste num pequeno dispositivo que pode ser facilmente suportado na mo com uma pequena ponta metlica e alguns dodos emissores de luz, tipicamente designados por LED (do ingls, Ligth Emitting Diode) de sinalizao. A Figura 3.28 ilustra um possvel formato. A alimentao garantida pela mesma fonte que alimenta o circuito em teste.
CMOS Pulse Mem L H TTL
Vcc Gnd

Possvel formato para uma ponta de prova lgica.

Os LED que equipam a ponta permitem conhecer o estado lgico de um terminal onde a ponta seja encostada. Uma ponta de prova tem habitualmente dois comandos, atravs de interruptores, e trs LED. LED H: Este LED, tipicamente vermelho, ilumina-se apenas quando a ponta est encostada a um terminal com nvel vlido H para a famlia lgica seleccionada. LED L: Este LED, tipicamente verde, ilumina-se apenas quando a ponta est encostada a um terminal com nvel vlido L para a famlia lgica seleccionada.

H~m)7 & 1 C 1   7 # 4 3   

% Dq %0 1 %$"0 CFe3bpt(rq53&brq RQ(R`(` Ym `  D CQR(%b3gqFc


154

LED Pulse: LED, tipicamente amarelo, destinado a assinalar a existncia de transies num terminal a que a ponta de prova esteja encostada. Seleco TTL/CMOS: Este interruptor permite seleccionar qual das famlias lgicas est em observao. importante esta indicao para que a ponta possa seleccionar quais os nveis de tenso limite do H e do L que deve adoptar. Seleco memria/impulso: Um impulso muito curto pode no ser visto nos LED por ser demasiado reduzido para ser detectado pelo olho durante o tempo em que esto acesos, ou por ser demasiado curto para provocar reaco do prprio LED. Para evidenciar esses impulsos, a ponta detecta ancos de transio de sinais entre os valores H e L e vice-versa. A forma de indicar isso depende da posio deste selector. Impulso: Um impulso de durao visvel mostrado no LED auxiliar. Memria: A transio memorizada, cando o LED aceso at o selector deixar de estar na posio Memria. Em qualquer dos casos, no h indicao do sentido da transio. Se nenhum dos LED se iluminar, isso signica uma de duas coisas: ou se est perante um nvel elctrico que no corresponde a qualquer nvel lgico (zona intermdia), ou no existe tenso aplicada ao contacto, por a ponta estar no ar sem contacto com nenhum sinal ou por estar a detectar um sinal de alta impedncia (ver Seco 3.1.6).

A deteco de falhas em circuitos digitais um processo complexo que exige uma grande capacidade de organizao e, em geral, um conhecimento razovel do circuito e da sua funcionalidade. Quando surge uma avaria, a primeira coisa a fazer denir claramente qual a avaria e, tanto quanto possvel, em que situaes surge. A colocao dos controlos, os valores, ou sequncias, nas entradas e o comportamento que qualicado de defeituoso devem ser especicados com a maior clareza possvel. fundamental estar na posse do esquema do circuito e conhecer o material de teste e o seu funcionamento. Uma observao visual, por vezes, ajuda. Um componente queimado ou um suporte de integrados na placa de circuito impresso (que devia ter um componente) vazio, por exemplo, podem ser uma boa pista. Para circuitos de grande complexidade existem tcnicas especcas, e, inclusivamente, os circuitos podem ser j projectados de modo a detectarem eles prprios uma falha

& # ! 9 C & # ) }  !  fH!EfE7 '"& E1f 1 !  # 4 3 ! C 1 

33r3c53w@C@CG%@3%G%3#EbC `R(`C` %W% 1 0)'e$   Dq$%$


155

ou a auxiliarem na sua deteco. Em circuitos simples, como os que vo ser naturalmente utilizados num laboratrio ao nvel deste livro, a deteco feita manualmente, utilizando instrumentos simples, como uma ponta de prova lgica. Considere-se um sistema digital qualquer. Num circuito digital, um n ser, por exemplo, a ligao entre a sada de uma porta e as entradas de portas a ela ligadas. Um n tem uma certa extenso fsica, uma vez que materializado por ligaes entre componentes. Em toda a sua extenso fsica o n assume o mesmo nvel de tenso e, implicitamente, lgico. Vericada uma avaria, o caminho necessrio para a corrigir passa obrigatoriamente por encontrar o n que fonte da falha. Esse o n realmente em falha e que provoca erros provavelmente em vrios outros ns. O teste para deteco de uma falha num circuito pode iniciar-se quer nas entradas, quer nas sadas, quer no miolo do circuito. Tudo depende da experincia de quem est a operar o circuito. Para circuitos com alguma complexidade, porm, o mais aconselhvel iniciar a busca pelas sadas recuando sucessivamente em direco s entradas at deteco da falha. H duas razes para isso: por um lado, as sadas so o local em que o erro habitualmente se manifesta e, por outro, os circuitos digitais tm, muitas vezes, mais entradas que sadas. Comeando pelas sadas e detectando quais os ns responsveis por uma sada errada, elimina-se a necessidade de pesquisar numa rea grande do circuito. Na continuao, sero apresentadas algumas estratgias para deteco de falhas. Como evidente, trata-se de uma pequena introduo a um tema de grande complexidade, que aqui grandemente simplicado e colocado a um nvel instrumentalmente til para os leitores deste livro. De igual modo, restringe-se, aqui, o assunto deteco de falhas em circuitos combinatrios. A procura de falhas inicia-se pela vericao das alimentaes. Um circuito, para funcionar correctamente, tem de ter o valor da tenso de alimentao dentro dos valores especicados. Mas a vericao da alimentao tem mais nalidades, nomeadamente detectar possveis curto-circuitos e/ou circuitos abertos. , assim, natural iniciar a procura de possveis falhas vericando se o valor da tenso de alimentao est dentro dos valores especicados. Se a tenso estiver abaixo do valor especicado (nomeadamente se for de 0V), e assumindo que a fonte de alimentao est activa e ligada ao circuito, dever existir um curto-circuito neste, ou a ligao fonte de alimentao est cortada. Assumindo que a tenso de alimentao correcta, necessrio vericar, nos terminais de alimentao e massa dos integrados, se cada um deles est devidamente alimentado, uma vez que pode haver uma quebra na ligao de alimentao apenas a algum ou alguns integrados.

H~m)7 & 1 C 1   7 # 4 3   
156

A localizao da falha propriamente dita exige uma boa disciplina de trabalho. Como se referiu atrs, ser apenas analisado o caso dos circuitos combinatrios. Neste tipo de anlise, a tcnica a seguinte: 1. Encontra-se um n com um erro. 2. Verica-se qual o elemento de circuito sada.
1

3. Pesquisam-se os ns de entrada desse elemento. Se estiverem todos correctos, a falha est no elemento. 4. Se algum(ns) estiver(em) errados, assumir esse(s) n(s) como n(s) de partida e continuar a pesquisa voltando ao ponto 1. Procede-se seguidamente identicao da falha. Assumindo que possveis erros relacionados com a alimentao dos integrados esto excludos (ou resolvidos), encontrado um n com um comportamento errado, esse comportamento um dos seguintes: nvel errado; n utuante; n preso a L; n preso a H. Note-se que observar o nvel errado signica que um nvel errado est presente, mas a sada do circuito que o produz assume outros nveis noutras circunstncias. Uma sada utuante signica que o circuito apresenta permanentemente a sua sada utuante. Um n preso a um determinado nvel signica, obviamente, que no possvel fazer a sada do circuito abandonar esse nvel. Se existir um nvel errado, isso pode resultar do seguinte: mau funcionamento do circuito, entrada do circuito desligada do ponto que se est a observar (por quebra da pista de circuito impresso ou do o) ou, por vezes, curto-circuito com outro n. A existncia de um n utuante pode resultar de um mau funcionamento do componente ou de a sada do circuito estar sicamente desligada do ponto que se est a observar, por razes semelhantes s do caso anterior.
1 Em

alguns casos, como por exemplo com sadas de trs estados, pode haver mais de um elemento.

& # ! 9 C & # ) }  !  fH!EfE7 '"& E1f 1 !  # 4 3 ! C 1 


(uma porta, em geral) de que esse n
157

Um n preso a L sintoma de uma das seguintes causas: mau funcionamento do componente, curto-circuito externo massa do circuito (por erro de ligao, degradao do circuito impresso ou presena de um elemento estranho que provoque o curto-circuito) e, por vezes, curto-circuito com outra sada a L. Finalmente, um n preso a H, para alm da hiptese de mau funcionamento do componente, pode ser devido a um curto-circuito externo alimentao do circuito. Para simplicar a identicao da falha sada ou entrada de um elemento, deve vericar-se o estado dessa sada ou entrada no terminal do circuito e no algures na extenso fsica do n, uma vez que isso permite isolar a hiptese de quebra de ligao das restantes. Nvel errado Sempre que possvel, deve ser desligada a sada do componente do resto do circuito, para vericar se o comportamento do componente tem origem nele prprio ou num curto-circuito da sua sada com outro sinal. No primeiro caso, haver que substituir o componente. No segundo caso, h que corrigir a interligao. N utuante S se assume esta situao quando o n est permanentemente utuante. Um n pode estar utuante, por vezes, de acordo com a sua funcionalidade normal, se as sadas que a ele esto ligadas so sadas de trs estados. A deteco de um n utuante signica que no h ligao elctrica entre a sada interna do integrado e o n. A distino entre as duas causas possveis simples. Se a ponta de prova lgica encostada directamente ao terminal do integrado continuar a detectar um n utuante, ento o problema interno e h que substituir o integrado. Se o terminal apresentar um valor diferente, ento h uma ligao exterior desligada, que h que reparar. evidente que, passeando a ponta de prova por todo o n, possvel localizar exactamente o local da falha. Em certas circunstncias, podem ainda ocorrer tenses intermdias, que sugerem um n utuante, mas resultam de curtos-circuitos entre sadas diferentes. N preso a L Embora seja possvel com equipamento adicional identicar exactamente esta situao, ela pode ser tratada como o caso do nvel errado. N preso a H Tal como no caso anterior, ao nvel a que se est a analisar o problema, pode este caso ser tratado como o caso de nvel errado.

H~m)7 & 1 C 1   7 # 4 3   
158

Considere-se, como exemplo, o circuito da Figura 3.29, onde se ilustrou uma situao caracterizada pelo funcionamento correcto do circuito com um conjunto de valores para os sinais de entrada e os sinais que, em consequncia, se instalaram nos diversos ns internos e na sada.

A_H B_H

C_H

D_H

falha.

Assuma-se, agora, a existncia de uma falha na porta AND superior, cuja entrada ca curto-circuitada com a alimentao. A situao do circuito passa a ser a ilustrada na Figura 3.30. Esta situao identicada como um erro. fcil vericar que a sada do ltimo circuito, um OR, est errada, uma vez que deveria estar em L e est em H. Neste caso, possvel identicar, por anlise das vrias entradas da porta OR, por exemplo com uma ponta de prova lgica, que o problema provm da entrada superior. Da, analisando o AND origem desse n, pode ser vericado que, aparentemente, funciona correctamente. Recuando de novo no circuito, aparece, agora, uma negao que aparenta um funcionamento incorrecto, uma vez que tem nveis H, quer na entrada, quer na sada. A concluso imediata a de que a porta NOT tem uma falha, concluso errada, neste caso. Desligando a sada da porta NOT do circuito, pode ser vericado que est a funcionar correctamente. Nessas circunstncias, analisando o nvel da entrada da porta AND com a ponta de prova, pode concluir-se que, em vez de estar no ar, a entrada superior da porta tem o nvel H, que indcio de que ou a porta tem uma falha ou que h um curto-circuito externo. O diagnstico diferencial pode ser feito, se possvel, removendo todas as ligaes porta que possam estar no circuito e vericando se a porta mantm o comportamento. Em situao real, num circuito impresso, isto , em

& # ! 9 C & # ) }  !  fH!EfE7 '"& E1f 1 !  # 4 3 ! C 1 

33rW332@)C@CG5w@C'@rFu3Cebt53G@rW98#3 pi(`C` % %c 1 0 'e $  0) % DW % 0  1 0  


H H L L L L L L L Z_H H

Y(#Q(I@3tqc n ` % D

Circuito tomado como exemplo para ilustrar a identicao de uma

159

A_H B_H

H H

C_H

L L

D_H

H L Nvel Correcto H Nvel com a falha

Circuito tomado como exemplo com uma falha.

geral, de difcil execuo. A observao visual do circuito pode ajudar a detectar uma ligao incorrecta ou a presena de algum resduo condutor. Um segundo exemplo com o mesmo circuito tambm interessante. Considere-se a situao ilustrada na Figura 3.31. H agora um curto-circuito exterior entre a entrada inferior da porta AND e a terra do circuito. Na gura est ilustrada uma situao em que o circuito est a funcionar correctamente e a situao resultante da falha.

A_H B_H

L H L

C_H

L L

D_H

H L Nvel Correcto H Nvel com a falha

Circuito tomado como exemplo com uma falha.

H~m)7 & 1 C 1   7 # 4 3   
5V L H L H L L L H Z_H

Yo % D @#`R(`b3gFqc Y % D C`R(`b3gFqc

H L

L H

H L

Z_H

160

Aqui a situao mais difcil de analisar. Verica-se que a porta OR est com a sua sada a L e devia t-la a H. Isso no o suciente para identicar a causa do problema. De facto, qualquer uma das entradas do OR podia ser a responsvel pela situao. Se fossem conhecidos os valores que deviam estar nos ns de entrada, tudo estaria resolvido, mas, em geral, isso no acontece. Aqui haver, portanto, que analisar mais pormenorizadamente todo o circuito. No entanto, se se obtiver (ou preexistir) uma representao mais abstracta do circuito, pode realizar-se a deteco sem ter o trabalho de proceder anlise exaustiva do circuito para encontrar a entrada do OR com comportamento errado. Uma hiptese interessante (quando possvel) passa por construir o mapa de Karnaugh do circuito. Neste caso, as trs portas AND correspondem aos seguintes produtos: A B, B C e C D. Isso corresponde ao mapa da Figura 3.32.

No mapa agora fcil de analisar a situao. Na congurao onde se verica o erro, temos A = 0, B = 1, C = 0 e D = 1. No mapa, isso corresponde ao quadrado sombreado. O quadrado sombreado est includo no grupo correspondente ao produto A B. Esse produto implementado pelo AND superior do esquema, pelo que ele o responsvel por impor um H na sada, o que no est a acontecer. A partir desta identicao da fonte do problema, a identicao da falha prossegue como no caso anterior. Por vezes, estes procedimentos no so sucientes, e necessrio ter capacidade de identicar situaes mais complexas que so de mais difcil anlise. A, de facto, a experincia fundamental.

& # ! 9 C & # ) }  !  fH!EfE7 '"& E1f 1 !  # 4 3 ! C 1 


AB CD AB 00 01 11 10 00 0 0 1 1 01 1 1 1 1 11 0 0 1 0 10 0 0 1 1 CD BC

YQ % D CR`(`b3gFqc

Mapa de Karnaugh do circuito tomado como exemplo com uma falha.

161

Na Seco 3.1.4 foi j apontado que o funcionamento dos dispositivos fsicos utilizados em circuitos digitais no instantneo, causando, portanto, a ocorrncia de atrasos. A Figura 3.33 repete a gura da Seco 3.1.4.

A B Z tpLH tpHL

Os tempos de atraso em considerao so especicados para cada integrado nos catlogos. Por exemplo, um 74LS08 tem as especicaes temporais descritas na Tabela 3.11 no catlogo da Texas Instruments. Recorde-se que, por exemplo, t pLH corresponde ao atraso entre uma alterao na entrada de uma porta e a ocorrncia de uma transio de L para H na sua sada.

Parmetro tpLH tpHL

A Tabela 3.11 sugere alguns comentrios. O valor dos atrasos , aqui, medido em nanossegundos (ns), com 1 ns = 109 s. Os valores dos atrasos especicados na tabela parecem baixos, revelando uma elevada velocidade de funcionamento, mas o atraso de uma porta num microprocessador actual muito mais baixo, tipicamente abaixo de 1 ns. Por razes tecnolgicas, so muito raros os fabricantes que especicam os valores mnimos do atraso. O valor tpico dos atrasos tem apenas um valor indicativo. O fabricante no o garante, e o utilizador no pode conar nele. S se pode conar no valor

'mm) &E'!d"& d &! 1  # G  1  )   )  1  1 7E BH


A B Z
Exemplo de atrasos numa porta AND. Especicaes temporais do 74LS08. Valor tpico 8ns 10ns Valor mximo 15ns 20ns Valor mnimo
162

Y#C&C3% U ` %WV

Y` ` % D (#`Cb3gqc

{H

uvDg

mximo, tambm chamado de pior caso (em ingls, worst-case). Repare-se, por m, que, como j se referiu, os valores de atraso dependem do sentido em que se d a comutao. Em alguns casos, no que se refere ao pior caso, h circuitos em que os dois tempos so iguais, como acontece, por exemplo, no 74LS00. Mas o normal os dois tempos serem diferentes. Com conhecimento dos valores dos atrasos das portas possvel determinar o tempo de atraso de circuitos combinatrios mais complexos. No que se segue sero apenas considerados os tempos no pior caso, pois este tempo que limitar a velocidade mxima de funcionamento garantida do circuito. muito provvel que o circuito funcione com maior rapidez, mas a nica velocidade que se pode garantir aquela.

Considere-se o circuito da Figura 3.34.

Num circuito com vrias entradas e vrias sadas, como o caso, podem ser especicados dois tipos de atrasos importantes: o atraso entre uma determinada entrada e uma dada sada; o maior atraso entre uma qualquer entrada e uma qualquer sada. A sequncia de ns envolvidos no segundo tipo de atrasos recebe o nome de caminho crtico. H tcnicas e algoritmos sosticados para determinar aqueles valores para circuitos complexos. No contexto deste livro far-se- apenas uma abordagem introdutria ao assunto. Considere-se, no circuito da Figura 3.34, o atraso entre a entrada B_H e a sada C_H. O primeiro aspecto a considerar se a entrada B_H inuencia a sada C_H. H, de facto, um caminho entre a entrada e a sada referidas, atravs do n B_L.

& # ! 9 C & # ) }  !  fH!EfE7 '"& E1f 1 !  # 4 3 ! C 1 

@C$((r#Gb!3@C535!&33 @RiC` 0 De D j 8 0 %$ 1  DWf"


A_H C_H B_L
Exemplo de circuito combinatrio simples.

B_H

Y@`Cb3gqc i ` % D

163

Repare-se, porm, que as variaes em B_H s afectam C_H se a entrada A_H assumir o nvel H. No caso contrrio, uma vez que 0 o elemento absorvente do produto lgico, a sada C_H estaria em L independentemente do valor de B_H. Este o segundo aspecto a ter em conta: quais so as condies que, para um par entrada-sada em estudo, permitem que uma variao na entrada provoque uma variao na sada. O estabelecimento dessas condies no circuito tem o nome de sensibilizao do caminho. Sensibilizado o caminho, o terceiro aspecto a ter em conta a deciso sobre o sentido de transio na entrada que provoca maior atraso no circuito. Na Tabela 3.11 esto listados os atrasos do circuito 74LS08. A tabela equivalente para o 74LS04 a Tabela 3.12. Assuma-se inicialmente que A_H est no nvel H e que B_H passa de L para H.

Parmetro tpLH tpHL

A linha B_L passa de H para L e a linha C_H passa igualmente de H para L. O tempo de atraso entre a transio na entrada e na sada dado pela Expresso 3.8. tpHLBC = = = tpHLNOT + tpHLAND 15ns + 20ns 35ns (3.8)

Inversamente, se B_H passar de H para L com o caminho sensibilizado, ento B_L e C_H passam de L para H, e o tempo de atraso calculado pela Expresso 3.9. tpLHBC = = = tpLHNOT + tpLHAND 15ns + 15ns 30ns (3.9)

O atraso mximo ser o mximo dos dois atrasos calculados. Neste caso, ter-se- o valor tpMAXBC = 35 ns. Este exemplo ilustra o procedimento geral para este tipo de problema. Para determinar o atraso mximo do bloco de lgica com n entradas e m sadas, uma soluo possvel ser testar todos os pares possveis e escolher o maior atraso. Como evidente, h procedimentos mais adequados, o que particularmente importante em circuitos complexos. No circuito usado como exemplo, no vale a pena considerar os

'mm) &E'!d"& d &! 1  # G  1  )   )  1  1

Y ` %WV (QC&C3% U

Especicaes temporais do 74LS04. Valor tpico 9ns 10ns Valor mximo 15ns 15ns

Valor mnimo

164

pares com sada em B_L, uma vez que as modicaes em B_L ainda vo inuenciar C_H e, portanto, qualquer atraso entre uma dada entrada e B_L inferior ao atraso entre essa mesma entrada e C_H. Do mesmo modo, qualquer atraso entre A_H e C_H menor que outro atraso entre B_H e C_H, uma vez que o AND comum aos dois caminhos, e o segundo tem ainda outra porta entre a entrada e a sada. No exemplo dado, portanto, o atraso que se obteve entre B_H e C_H o pior atraso do circuito considerado e corresponde ao seu caminho crtico. Analise-se, agora, um exemplo um pouco mais complexo tendo como base o circuito da Figura 3.35.

Neste caso h inuncia de todas as variveis de entrada na varivel de sada F . Dada uma certa regularidade do circuito, fcil perceber que o maior atraso entre uma alterao numa entrada e a alterao na sada corresponde a alteraes na linha A_H. Parte-se do princpio de que a porta AND que gera o sinal E_H tem as mesmas caractersticas que a que gera D_H e que, portanto, o tempo de atraso do caminho que inclui as portas NOT e AND sempre maior que o caminho que apenas inclui uma porta AND . Repare-se que h dois caminhos que ligam a entrada A_H sada F _H. Quando h mais que um caminho que possibilita que um sinal de entrada inuencie o valor de um sinal de sada, esses caminhos tomam o nome de caminhos reconvergentes. A Tabela 3.13 descreve os atrasos do circuito 74LS32 que disponibiliza o OR.

Da anlise de todos os tempos de atraso em jogo conclui-se que os tempos de atraso, quer no NOT, quer no OR, so idnticos para transies do tipo H L e L H. , portanto, o AND que dene qual o sentido da transio nas entradas que conduz ao

& # ! 9 C & # ) }  !  fH!EfE7 '"& E1f 1 !  # 4 3 ! C 1 


A_H B_H C_H E_H A_L D_H F_H
Parmetro tpLH tpHL

Y` ` %WV ((&(% U

Y ` % D C`R(b3gqFc

Exemplo de circuito combinatrio para clculo de atrasos.

Especicaes temporais do 74LS32. Valor tpico 14ns 14ns Valor mximo 22ns 22ns

Valor mnimo

165

pior caso de atraso. Como tpHLAND > tpLHAND , resulta que a transio na entrada que conduz ao pior caso de atraso uma transio de L para H, uma vez que, aps o NOT, o AND sente essa transio, quer na sua entrada, quer na sada, como uma transio de H para L. O atraso ser, portanto, dado pela Expresso 3.10. tpAF MAX = = = tpHLNOT + tpHLAND + tpHLOR 15ns + 20ns + 22ns 57ns (3.10)

Quanto determinao de quais os valores nas entradas que sensibilizam o caminho entre a entrada escolhida e a sada, ir-se- exemplicar um mtodo, utilizvel em circuitos relativamente simples, que assenta na utilizao do Mapa de Karnaugh. O mapa de Karnaugh para a funo correspondente a este circuito o representado na Figura 3.36.

Como se viu, a transio de A_H ter de ser uma transio de L para H, o que signica, na varivel, uma transio de 0 para 1. E essa transio tem de corresponder, na funo e, portanto, no mapa, a uma transio de 1 para 0. A nica posio em que isso acontece est assinalada na Figura 3.37. Para esta transio se dar, tero, portanto, de ser B = 1 e C = 0, valores que correspondem coluna onde se pode dar a transio. Ter, pois, de ser B_H colocado em H e C_H colocado em L para que o caminho do pior atraso que sensibilizado.

Um outro aspecto relevante para o correcto projecto ou anlise de circuitos combinatrios, entrando em considerao com os atrasos das portas, o problema das transies

b0F@bpCE%3"DCV9brb$((FdG3%b3!hb(F'Dg3%b U RQ@pi(` D $ 80 j 0 De D j 8 D6 "

'mm) &E'!d"& d &! 1  # G  1  )   )  1  1


A BC 00 0 1 0 0 01 0 1 11 1 1 AC 10 1 0 AB

Ye ` % D (#`Cb3gqc

Mapa de Karnaugh do circuito combinatrio em estudo.

166

assinalada.

esprias, tambm designadas por picos. Retomemos o circuito anterior, para explicar qual o problema. Considere-se que A_H, B_H e C_H esto em H. A sada assume, naturalmente, o valor H, uma vez que a porta AND inferior tem a sua sada activa. Se A_H transitar de H para L, uma vez que a sada da porta AND superior ca activa, a sada assume da mesma forma o valor H. Isto est de acordo com o que se observa no mapa de Karnaugh, uma vez que, nas duas posies do mapa correspondentes s situaes descritas, a funo vale 1. Observe-se, agora, um diagrama temporal pormenorizado, mostrando essa transio, incluindo as transies nos ns intermdios do circuito. Para a realizao do diagrama temporal utilizam-se os tempos de atraso descritos atrs e analisa-se a evoluo no tempo de cada linha. A Figura 3.38 ilustra o diagrama temporal. Como se pode ver, vai existir um pequeno intervalo de tempo de cerca de 10 ns em que a sada, ao contrrio do previsto, vai assumir o valor L. A este acontecimento usual chamar transio espria ou pico, pois surge como um pequeno pico num sinal, para alm disso, constante. Estas situaes podem ter importncia ou no, consoante a utilizao da linha F _H. Se a linha F _H se destinar simplesmente a assinalar o seu estado atravs de um LED, por exemplo, o pico inofensivo e nem sequer visto, dada a sua brevidade. Se a linha for actuar um dispositivo em que uma transio possa ter algum efeito, as coisas mudam completamente de gura e a situao intolervel. Felizmente, fcil resolver o problema. Analise-se, ento, com mais cuidado o que se passou. Inicialmente, o AND inferior estava activo, e o superior, no. Quando a linha A_H passou a L, a entrada superior do AND inferior passou imediatamente a L e o AND respondeu 20 ns depois, baixando a sua sada. No entanto, o AND superior s 15 ns depois de A_H descer que sentiu a subida de A_L. E levou mais 15 ns a reagir. Ficou, portanto, activo cerca de 30 ns aps a descida de A_H, enquanto que o outro AND j estava inactivo h 10 ns. O resultado que durante 10 ns as entradas do OR estiveram ambas inactivas. A resposta do OR colocar a sua sada inactiva durante um intervalo

& # ! 9 C & # ) }  !  fH!EfE7 '"& E1f 1 !  # 4 3 ! C 1 


A BC 00 0 1 0 0 01 0 1 11 1 1 10 1 0

Yf % D `(`w@3tqc

Mapa de Karnaugh do circuito combinatrio com a transio em estudo

167

A_H B_H C_H A_L D_H E_H F_H 5 ns

de 10 ns, 22 ns mais tarde 2 . Considere-se, de novo, o mapa de Karnaugh. O que se passou, nesta perspectiva, foi a ocorrncia da transio assinalada na Figura 3.39. Nessa transio, o implicante primo A B deixou de estar activo e passou o implicante primo A C a ser o implicante primo activo. O que aconteceu de errado foi que nenhum implicante primo garantiu, em termos temporais, a manuteno da funo a 1. Na transio do grupo de cima para o de baixo, falta uma garantia que o valor da funo permanea a 1. A soluo para o problema consiste em usar um novo implicante primo redundante que, no sendo algebricamente necessrio, colmate a falha detectada quando se observa o comportamento fsico do circuito. O mapa ca, portanto, com mais um implicante, como se ilustra na Figura 3.40.
2 Na

realidade, a situao bem mais complexa por dois motivos: em primeiro lugar, porque as diversas portas apresentam normalmente atrasos reais que no so os worst-case nem so previsveis; por outro, porque a estrutura interna do OR, com os atrasos internos envolvidos, pode levar, por vezes, a que o pico acabe por no se manifestar. No , assim, possvel, na maior parte dos casos, prever para todas as circunstncias de funcionamento do circuito se haver ou no manifestao do pico e com que durao. Mas possvel prever a possibilidade de ocorrncia e agir em conformidade nos casos em que a possvel ocorrncia tenha consequncias desastrosas.

'mm) &E'!d"& d &! 1  # G  1  )   )  1  1

Ym ` % D (`R(b3gFqc

Diagrama temporal mostrando transies esprias.

168

espria.

Mapa de Karnaugh mostrando um implicante redundante para evitar a possvel ocorrncia de uma transio espria. A funo passa, assim, a ser representada pela Expresso 3.11. F =AB+AC +BC (3.11)

Construindo, agora, o circuito a partir desta expresso, como se ilustra na Figura 3.41, o problema ca resolvido. Para casos simples, este tipo de problema pode ser resolvido atravs deste tipo de soluo em qualquer caso. Claro que, para funes de muitas variveis, em que o mapa de Karnaugh j no utilizvel, outras ferramentas tm de ser usadas. Por outro lado, preciso recordar que se est a partir do princpio, em toda esta anlise, que apenas se altera uma varivel de entrada, o que no , de forma alguma, uma situao corrente. Por isso, na prtica, para circuitos muito complexos, pode ser prefervel garantir que o funcionamento do circuito que vai ser alimentado pelos sinais gerados pelo circuito

& # ! 9 C & # ) }  !  fH!EfE7 '"& E1f 1 !  # 4 3 ! C 1 


A BC 00 0 1 0 0 01 0 1 11 1 1 AC 10 1 0 AB

Yn ` % D C`R(@3tqc Y(iRC@3tqc o ` % D

Mapa de Karnaugh mostrando a possvel ocorrncia de uma transio

BC 00 0 1 0 0

BC 01 0 1 11 1 1 AC 10 1 0

AB

169

A_H B_H C_H

Alterao ao circuito combinatrio da Figura 3.35 para evitar transies

esprias.

combinatrio em anlise no seja afectado pela existncia de picos. Mais adiante, no Captulo 6, este assunto ser retomado.

O tipo de implementao atrs descrito assenta na utilizao de portas includas em circuitos integrados e que so usadas para replicar, em termos de circuito, a estrutura do logigrama da funo. Esta replicao, que passa pelos cuidados anteriormente referidos na elaborao do esquema elctrico, pode passar por alguma transformao por razes j apontadas, mas, no essencial, o que se implementa como circuito est muito prximo do que descrito como logigrama e, portanto, como expresso algbrica da funo. A existncia de dispositivos de memria permite uma abordagem diferente desta questo, como se ver nesta seco. Inicialmente, apresenta-se uma metodologia de implementao, que permite partir directamente da tabela da funo e reduz substancialmente o nmero de circuitos integrados necessrios implementao e, seguidamente, mantendo-se a vantagem decorrente de uma maior integrao, apresentar-se-o outros dispositivos programveis, que permitem, recuperando a implementao a partir da estrutura do logigrama, diminuir a complexidade dos dispositivos necessrios para implementar um dado circuito.

Uma memria apenas de leitura conhecida pela sigla ROM (do ingls, Read Only Memory), um dispositivo onde possvel gravar, na fase de fabrico, informao de uma

1 )   7 # 4 3 1 C 1 df!EEf!
A_L A B_H F_H A C_H B C_H

 01 "% 0)'% DW% 3g3h2@C@&F& (R(`

Y `  CRi(%b3gFqDc
F

yDg

170

forma permanente. As ROM so, por vezes, consideradas circuitos sequenciais, um tipo de circuito que ser estudado a partir da Seco 6.8, mas, na realidade, so circuitos combinatrios. A ROM tem uma estrutura ilustrada na Figura 3.42 para um exemplo de uma ROM de oito palavras de 4 bits. O pequeno quadrado no cruzamento de duas linhas signica que aquela ligao pode ou no estar feita, consistindo a gravao de informao na ROM na deciso de quais as ligaes realmente feitas. A estrutura apresentada no corresponde, realmente, forma como a ROM de facto implementada, mas sucientemente ilustrativa dos seus princpios de funcionamento.

A2 A1 A0

& # ! 9 C & # ) }  !  fH!EfE7 '"& E1f 1 !  # 4 3 ! C 1 


... ... ... ...
D0 D1 D2 D3

YQ ` % D Cip(@3tqc

Estrutura funcional interna de uma ROM.

171

Na realidade, a estrutura da ROM ligeiramente diferente, sendo os OR efectivamente realizados por uma ligao do tipo dreno aberto, utilizando, portanto, apenas uma linha que pode ou no ser ligada sada de cada AND. Na Figura 3.43 ilustra-se a estrutura utilizando essa tecnologia.

A2 A1 A0

O funcionamento de uma ROM pode ser descrito de um modo muito simples. O con-

1 )   7 # 4 3 1 C 1 df!EEf!
VDD ... ... ... ... ... ... ... ... D0 D1

Y` ` % D (iR(b3gFqc

Estrutura interna de uma ROM.

172

junto das linhas Ai constitui aquilo que se convenciona designar por endereo (address, em ingls). Como se pode perceber, para cada endereo colocado na entrada da ROM, uma das linhas que sai das portas AND, a correspondente a esse endereo, colocada a 1. As linhas de sada que tiverem uma linha de entrada efectivamente ligada a essa linha caro com o valor 1 na sada. Os restantes caro com o valor 0. O conjunto de bits das sadas designa-se por palavra. A ROM pode, ento, ser vista como um conjunto de palavras armazenadas, das quais uma pode ser seleccionada pelas linhas de endereo e colocada nas sadas. No entanto, como claro do logigrama, a ROM , realmente, um circuito combinatrio. Na Figura 3.44 ilustra-se, a ttulo de exemplo, o contedo de uma ROM j programada, isto , com o seu contedo j denido. Reram-se duas convenes utilizadas a partir daqui. Por um lado, em vez de desenhar a estrutura interna como realmente , o que tornaria complexo este tipo de representao esquemtica, a ligao retomada como se existissem as portas OR de sada, mas colapsando todas as linhas numa s. Por outro lado, as ligaes a fazer s sadas das portas AND so indicadas pela ocorrncia de uma cruz. Por exemplo, a sada D0 est ligado s sadas das portas AND P 2, P 3, P 5 e P 7. As ligaes entre as linhas verticais e horizontais na gura dariam origem, se fossem apenas como est descrito acima, a um enorme curto-circuito. Por exemplo, no caso que se ilustra de pormenor da programao da ROM anterior, todas as linhas estariam em curto-circuito e, portanto, a funcionalidade no seria a pretendida. De facto, no cruzamento das linhas existem pequenos dispositivos, dodos, para ser mais preciso, que impedem que essa situao se verique. O contedo de uma ROM pode ser especicado por uma tabela que indica, para cada endereo, a palavra de dados correspondente. Por exemplo, a ROM ilustrada na Figura 3.44 pode ser, de uma forma mais compacta, descrita pela Tabela 3.14. A forma grca de representar uma ROM num logigrama muito mais compacta que a representada nas guras anteriores, que serviram apenas para ilustrar o conceito e um exemplo de estrutura interna de um dispositivo desse tipo. Na Figura 3.45 est descrito o modelo de terminais da ROM usada como exemplo anteriormente. As memrias s de escrita podem ser de diversos tipos. As ROM propriamente ditas so circuitos integrados projectados de origem com o contedo pretendido. No chegam a ser programadas pelo utilizador e no so alterveis. As PROM (do ingls, Programmable ROM), dispositivos mais comuns que as ROM, so dispositivos que podem ser programadas uma vez por fuso de pequenos fusveis dentro do integrado. So compradas virgens e programadas pelos utilizadores. No caso de ser necessrio alterar a programao h que programar um novo dispositivo, e o anterior ca inutilizado. As EPROM (do ingls, Erasable PROM) so dispositivos que podem ser programados

& # ! 9 C & # ) }  !  fH!EfE7 '"& E1f 1 !  # 4 3 ! C 1 


173

A2 A1 A0 P0 P1 P2 P3 P4 P5 P6 P7

e podem ser apagados (usualmente por um banho de alguns minutos de radiao ultravioleta). As EPROMs podem ser regravadas um certo nmero de vezes (dezenas a milhares). As EEPROM (do ingls, Electrically Erasable PROM) so ROM alterveis electricamente sem necessidade de as retirar do circuito em que esto inseridas. Do mesmo modo so alterveis um nmero limitado de vezes. As ROM podem ter vrias aplicaes:

1 )   7 # 4 3 1 C 1 df!EEf!
D0 D1 D2 D3

Yi ` % D @#iRCb3gqc

Exemplo de uma ROM programada.

174

suporte a programas em sistemas embebidos que no sero alterados (uso de ROM ou PROM) ou que podem ser actualizados um nmero pequeno de vezes; memorizao de tabelas e, por m, implementao de lgica. Esta ltima aplicao, a nica que interessa neste contexto, necessita de anlise mais aprofundada. A descrio de uma ROM faz-se por indicao do seu smbolo para se poder conhecer a sua estrutura fsica e funcionalidade geral e por uma tabela com o seu contedo, como se viu atrs. Usando a ROM indicada atrs como exemplo e considerando em particular a linha de dados D0. Uma das interpretaes possveis do contedo desta ROM na coluna de dados D0 o de ser a tabela de uma funo lgica de trs variveis (A2 , A1 e A0 ). Ora, se se utilizar esta ROM com este contedo num circuito, isso equivalente realizao da funo lgica descrita pela tabela e, na maior parte dos casos, gastar-se- menos material. O circuito caria, portanto, reduzido ROM, como

& # ! 9 C & # ) }  !  fH!EfE7 '"& E1f 1 !  # 4 3 ! C 1 

Y ` %WV @i(u#C3% U Y `  D (iRC%b3gqc

Especicao por tabela da ROM da Figura 3.44. Endereo A2 A1 A0 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 Dados D2 D1 1 1 1 0 1 1 1 1 0 1 0 1 0 0 0 0

D3 1 1 0 1 1 1 0 1

D0 0 0 1 1 0 1 0 1

ROM A0 A1 A2 D0 D1 D2 D3

Modelo de terminais da ROM usada como exemplo.

175

se ilustra na Figura 3.46, se a funo for F (X, Y, Z) com X correspondendo a A 2 , Y a A1 e Z a A0 .

Z Y X

bvio que, no exemplo anterior, a ROM poderia dar suporte a outras funes. No caso exemplicado, seria possvel utilizar a ROM para dar suporte a quatro funes de trs variveis, desde que as variveis sejam as mesmas. Pode-se considerar que este mtodo de implementao utiliza a tabela da funo em vez da sua expresso lgica, como no caso da implementao com portas. Essa uma vericao curiosa, porque permite levar at ao nvel da implementao de um circuito a dualidade de representao de funes lgicas que se descreveu no Captulo 2. Claro que os circuitos ROM comerciais tm muito mais linhas de endereo e, eventualmente, bits de dados, possibilitando, assim, a implementao de vrias funes de um nmero elevado de entradas num circuito. Por exemplo, uma ROM de 8K 8 bits pode implementar at oito funes lgicas de at 13 variveis (8K = 2 13 ). Claro que algumas destas funes podem no depender de todas as variveis de entrada. A implementao de funes usando circuitos ROM apresenta algumas vantagens signicativas. Por um lado, como evidente, a quantidade de circuitos integrados utilizados na implementao diminui drasticamente, especialmente para circuitos de alguma complexidade, com diminuio correspondente no peso e volume dos equipamentos e, at certo ponto, da potncia consumida. Por outro lado, repare-se que qualquer alterao da funcionalidade pretendida se resolve utilizando uma nova ROM ou reprogramando a j existente (no caso das EPROM) sem alterar o resto do circuito eventualmente implementado. Por m, o uso de circuitos ROM diculta a terceiros a anlise do circuito desenvolvido, protegendo um pouco, dessa forma, a condencialidade de um projecto.

1 )   7 # 4 3 1 C 1 df!EEf!
ROM A0 A1 A2 D0 D1 D2 D3 F(X, Y, Z)

Ye ` % D (iRCb3gqc

Circuito de uma funo usando uma ROM.

176

Uma ROM gasta muito do seu espao fsico nas portas AND ligados s linhas de endereo. Por exemplo, a ROM de 8K atrs referida teria 8192 portas AND de 13 entradas. Para as aplicaes em que se pretende guardar na ROM informao (programas ou tabelas) no h outro remdio. No entanto, para gerar funes lgicas, muitas vezes no so necessrios todos as portas AND. Por isso, muitas vezes mais vantajoso ter menos portas AND com maior nmero de entradas, o que permite realizar funes com mais entradas em integrados no muito complexos. Esta ideia foi explorada levando concepo de dispositivos programveis em que existe um certo nmero n de entradas, um nmero p de portas AND e um nmero s de portas OR, podendo as ligaes entre os AND e as entradas por um lado e entre os OR e os AND, por outro, ser programadas. Estas estruturas e outras designam-se por matrizes lgicas programveis. Como exemplo muito simples, considere-se o circuito da Figura 3.47. Nesta gura, o smbolo da Figura 3.48
E0 E1 E2 E3 E0 E0 E1 E1 E2 E2 E3 E3 A0 A1 A2 A3 A4

& # ! 9 C & # ) }  !  fH!EfE7 '"& E1f 1 !  # 4 3 ! C 1 

FEgrP3bgb(rqh3%CeF3bthlF@CE3g3Gw@C@r&3E QR(C` Df 8%q0 Dqp  D $% 01 "% 0)'% DW%


S0 S1 S2

Yf ` % D iR(b3gFqc

Exemplo de matriz lgica programvel.

177

(a) a representao abreviada do que est ilustrado na Figura 3.48 (b). Repare-se que

(a)

o dispositivo ilustrado tem quatro entradas. Se se construsse uma ROM, teria de haver entrada 16 portas AND. No circuito apresentado existem apenas cinco, e o nmero poderia ser qualquer outro, como bvio. A ttulo de exemplo, considere-se a implementao das funes descritas na Tabela 3.15 usando a matriz anterior. Se a implementao fosse feita com base numa ROM, a simples gravao da tabela numa ROM com pelo menos 16 palavras e duas linhas de dados resolveria o problema. O uso de matrizes lgicas programveis, porm, obriga a obter expresses algbricas para as funes.

ABCD 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111

1 )   7 # 4 3 1 C 1 df!EEf!
(b)

Ym ` % D Cip(@3tqc Y ` %WV (E(u#C3% U

Estrutura do buffer duplo.

Funes usadas como exemplo. fy (A, B, C, D) 0 1 0 1 0 1 0 1 1 1 1 0 0 1 0 1

fx (A, B, C, D) 0 1 0 1 0 1 0 1 1 0 1 1 0 0 0 1

178

No caso em anlise, utilizando os mtodos descritos no Captulo 2, possvel obter as Expresses 3.12. fx (A, B, C, D) fy (A, B, C, D) = AD+C D+ABD = AD+C D+BD+ABD (3.12)

A programao da matriz lgica programvel est ilustrada na Figura 3.49, em que as ligaes esto assinaladas por cruzes no cruzamento das linhas a interligar. Este tipo
A B C D A A B B C C D D

de matriz lgica programvel usualmente designada por PLA, abreviatura do nome ingls programmable logic array. No caso das ROM, como se viu, as ligaes dos AND esto xas e possvel programar as ligaes dos OR. No caso das PLA, possvel programar ambos os tipos de ligao. Verica-se que as potencialidades mais interessantes advm da capacidade de programar os AND. Assim, desenvolveu-se um novo tipo de matriz lgica programvel em

& # ! 9 C & # ) }  !  fH!EfE7 '"& E1f 1 !  # 4 3 ! C 1 


AD CD ABD CD BD fx fy

Yn  D Cip(`%b3gqFc

Exemplo de programao de matriz lgica programvel.

179

que as ligaes entre os AND e os OR esto xas e apenas possvel programar as ligaes dos AND s entradas. Para alm de, na prtica, essa opo no ser limitativa, tem a vantagem de optimizar a arquitectura do dispositivo, colocando a rea programvel na zona onde promove uma maior exibilidade. Essa estrutura designa-se, em ingls, programmable array logic, com a abreviatura PAL. Um exemplo de uma possvel PAL o da Figura 3.50. frequente, neste tipo de matriz, que algumas das sadas sejam realimentadas como se de entradas se tratasse, para permitir, por esse meio, alargar o nmero de portas AND usado numa funo. No exemplo dado o caso das sadas S0 e S1 . Apresenta-se um exemplo de programao de uma PAL para implementao de um conjunto de funes, usando a estrutura apresentada. Nesse exemplo sero implementadas as funes descritas pelas Expresses 3.13. f0 f1 f2 = = = AB+AC +BC D ABC +ABC D ABC +BC D+ABC D+ABD+ABD (3.13)

A programao da PAL est ilustrada na Figura 3.51. Repare-se que a funo f 2 necessitou de utilizar duas das estruturas AND - OR para ser implementada. A utilizao de matrizes lgicas programveis tem vantagens semelhantes da utilizao de circuitos ROM, com alguns aspectos adicionais. Por um lado, as matrizes programveis permitem melhorar a utilizao da rea programvel, permitindo mais entradas para o mesmo nvel de complexidade interna do dispositivo. Por outro, o uso de matrizes lgicas programveis permite implementar funes com eliminao de transies esprias, como se explica na Seco 3.4.2, o que no possvel no caso das ROM. Como evidente, a programao deste tipo de dispositivos , em geral, feita com auxlio de software adequado, que permite a introduo da especicao das funes a programar na forma mais conveniente para o utilizador e produz um cheiro com os dados necessrios para o equipamento que programa o dispositivo realizar sicamente a programao. O uso de circuitos ROM e de matrizes lgicas programveis, como se acaba de descrever, permite, portanto, a implementao de funes lgicas, isto , de circuitos combinatrios. Em captulos posteriores estudar-se-o os circuitos sequenciais. A utilizao de matrizes lgicas programveis pode ser estendida para esse tipo de circuitos desde que elementos de memria sejam includos na estrutura da matriz.

1 )   7 # 4 3 1 C 1 df!EEf!
180

Este captulo dedicado a aspectos relacionados com a realizao de circuitos lgicos a partir de funes lgicas e com as suas caractersticas fsicas mais relevantes. Inicia-se

& # ! 9 C & # ) }  !  fH!EfE7 '"& E1f 1 !  # 4 3 ! C 1 


E0 E1 E2 E3 E0 E0 E1 E1 E2 E2 E3 E3 S0 S0 A3 A4 S1 A5 A6 S1 S1 A7 A8 A9 S2 A0 A1 A2 S0 A10 A11 S3 A12 A13

(#R(b3gFqc Yo ` % D
B

Exemplo de matriz lgica programvel do tipo PAL.

181

A B C D

A A B B C C D D

com a descrio dos blocos clssicos constituintes dos circuitos lgicos, isto , os circuitos integrados digitais, incluindo a sua tecnologia e comportamento electrnico bsico. O captulo prossegue com a descrio das metodologias associadas construo de cir-

1 )   7 # 4 3 1 C 1 df!EEf!
AB AC BCD f0 f0 ABCD BCD ABC ABD S1 S1 S1 ABD f2 f0 S1 ABCD ABC f1

Y `  D CC%@3tqc

Exemplo de programao de uma PAL.

182

cuitos usando portas bsicas a partir da descrio de uma funo lgica. feita tambm uma breve introduo s tcnicas de deteco de falhas. So ainda referidos com algum pormenor os aspectos ligados s caractersticas temporais dos circuitos, incluindo a gerao de transies esprias. O captulo termina com a anlise da utilizao de ROM e lgica programvel para implementar circuitos digitais combinatrios.

3.1 Consulte na Internet folhas de especicaes de circuitos com a mesma referncia, em TTL na sub-famlia LS e em CMOS, quer na subfamlia HC, quer na HCT. Considere, por exemplo, o circuito 7400 nas diversas verses. 1. Verique, consultando os parmetros dos valores da tenso de entrada e sada, que a famlia HCT compatvel com a LS em termos de nveis de tenso, mas que, no caso das famlias HC e LS, isso no verdade. 2. Verique quais os atrasos tpicos das trs subfamlias e compare-as desse ponto de vista. 3.2 Para cada uma das seguintes funes, construa um esquema elctrico de um circuito que as implemente, usando o nmero mnimo de circuitos integrados (consulte catlogos on-line): 1. f (A, B, C) = A B + A B C 3. f (A, B, C) = A B C + A B + C 2. f (A, B, C, D) = A B (C D) + A B C + A C D + B C D

3.3 Considere o seguinte circuito representado em lgica de polaridade:


SENSOR_ACTIVO_L ACCAO_INIBIDA_H ALARME_L ALERTA_ACTIVO_L POSTO_OCUPADO_H ERRO_POTENCIAL_L X

Supondo que as variveis SENSOR_ACTIVO e ACCAO_INIBIDA esto activas e que a linha P OST O_OCU PADO_H est no nvel LOW : 1. A varivel ERRO_P OTENCIAL est activa ou no activa? 2. A linha ALARME_L est a que nvel?

& # ! 9 C & # ) }  !  fH!EfE7 '"& E1f 1 !  # 4 3 ! C 1  BHBzG {


183

3. Indique um nome razovel para a linha indicada com um X. 4. Qual a funo lgica implementada pelo circuito? 3.4 Considere que dispe dos seguintes sinais que implementam variveis segundo a conveno de lgica de polaridade: A_H, B_L, C_L e D_H. Obtenha o esquema elctrico das seguintes funes, utilizando lgica de polaridade, considerando que a funo f activa a LOW . 1. f (A, B, C, D) = A B + A B D + A B C D 2. f (A, B, C, D) = A B(C D) + A B C + A C D + B C D 3.5 Considere o circuito seguinte:
A B C D

Obtenha, a partir de um catlogo on-line, as caractersticas temporais das portas envolvidas. 1. Qual o caminho crtico deste circuito? 2. H um sentido da transio da varivel de entrada do caminho crtico que conduza a um tempo de atraso superior ao da transio em sentido oposto? 3. Qual(is) a(s) congurao(es) das variveis de entrada que sensibilizam o caminho crtico? 3.6 Utilizando uma ROM com a capacidade que especicar, construa um circuito combinatrio que calcule n3 , sendo n um nmero binrio de quatro bits. 3.7 Programe a PAL da Figura 3.50 para implementar o seguinte conjunto de funes lgicas: f (A, B, C, D) f (A, B, C, D) f (A, B, C, D) f (A, B, C, D) = = = = A C +B C D+A B C +A B D A B+A D+A B C +A C D C D+A D+A B C +A B C +A B C D C D+A B C +A B C D

1 )   7 # 4 3 1 C 1 df!EEf!
F

184

3.8 Considere de novo o circuito do Problema 3.3 Desenhe um esquema elctrico que o implemente. 3.9 Considere o seguinte circuito:
A B C D 1

1. Construa o mapa de Karnaugh correspondente. 2. Considere que, devido a uma avaria, na congurao A = B = C = 1, D = 0 o resultado da funo d 0 em vez do valor 1, que devia dar. Quais das portas podem estar envolvidas no problema? 3. Se a ligao entre as portas 4 e 5 no estiver feita e, em vez disso, o o que devia estar ligado porta 4, estiver ligado da sada da porta 3 porta 5, quais so os valores errados no funcionamento da funo? 3.10 Considere o circuito do Problema 3.9. 1. Este circuito pode ter transies esprias quando uma determinada varivel se altera. Em que circunstncias? 2. Altere o circuito anterior, de modo a eliminar as transies esprias referidas.

& # ! 9 C & # ) }  !  fH!EfE7 '"& E1f 1 !  # 4 3 ! C 1 


2 5 3 f 4

185

Das könnte Ihnen auch gefallen