Está en la página 1de 945

y

..

'

'~

CONTENIDO

P R! OGO

xix
xxi

P REFAC IO
1

INTAODUCCIN
1.1

1.2
1.3

Acerca del disei'lo digital 1 Analgico contra Digital 3 Dispositivos digitales 6

15
1.9 Tarjeta de circuito impreso 18 1.10 Niveles del diseno digital 19 1.1 1 El objetivo del jUegO 22 1.12 Un paso adelante 23 Problemas propuestos 24

SISTEMAS Y CDIGOS NUMRICOS 25 2.1 Sistemas numliCos POSlclonales 26


2.2 2.3
2.4

2.5

Nmeros octales y hexadecimales 27 Conversiones generales de sistema numrico posicional Suma y resta de "umeros no decimales 32 Representacin de numeros negativos 34 2.5.1 Rtpresl!nlocifJn de magnitud COI! sigIlO 1.5.2 SisttnrtLJ numiricos tk complemento 2.53 ReprtstnJacidn de eotnplemenJo t baM 2.5.4 Represt!mocidt1 de compltmtnlo (.1 dw 2.5.5 Represt nladll de complt me"'o de base rtduc~ 2.5.6 Reprtumocidn lk compltmenlO Q UtIOS

29

2.5.7 RtprtunJocj(mu por au:w

vii

viii

Contenido
2.6

Suma y resta de complemento a dos 2.6./ Rrglm d~ IiHuma 2.6.2 Unu l'isidn grfica
Z 6 1 Des/,ordumi,vw

39

2.6.4 Rr81llSdehJ uSla 2.65 N,imeros binorios sin signo)' complemt nto a dos 2.7 Suma y resta de complemento a uno 44 2.8 Mu1tiplicaci6n binaria 45 2,9 Divisin binada 47 2.10 Cdigos binarios para nmeros decimales 48
2.11 Cdigo Gray 51 2.12 Cdigos de carcter 53 2,13 Cdigos para acciones, condiciof'les y estados 2.14 Cubos n y distancia 57

53

2.15.5 C6digas bidim~IISj(Hul/i!s 1,15,6 C6digos de suma de \'eri(icucilJ,1

2,H ,7 CddigoJ mdt n


2,16 Cdipos para el almacenamiento y la transmisin de datos en serie 69

2, 16,1 Datos en paraldo;y ell serie 2.16.2 Cdigos d~ f(lIta ell serie
Referendas 73

Problemas propueslos Ejercicios 76

74

CIRCUITOS DIGITAl ES 79 3, I Compuertas y sel'lales lgicas


3,2 3,3

80

Familias lgicas 84 lgica eMOS 86 J 3,f Ni\'efes Mg icoJ CMOS JJ.2 Tron S;WlCtf MaS 3.u O rruiro dd /n)',.,w bdl;CO a,1OS

3.4

33,4 Compuertas CMOS NANO ;y NOR 33.5 Cargabilidad d~ tlllrUikI 33,6 ComPUtrlm no im'ersort1s 33,7 Compuertas CMOS AN O-QR-INVERSOBA Comportamien to elctrico de los circuitos CMOS
J 4 , 1 Rr w men

OA-ANO-INVERSORA 96

3,5

304.2 Hojru de datos y ~spedjictJdonu Comportamiento elctrico de estado estable de los dispositivos CMOS 3.5./ Ni\,tles fdgicos "urgelles de ruido 3.5.2 Componamiento del tire/lllO COII cargas resisri\'lIS

,t

99

Contenido

IX

J.5J Comportan/i,mlo del e/Tcullo con tnlradas no idealts


l S, 3.5.5 1.5.6 1.5.7 3.5.8 E a" DI" E{tos dI! la rnrxo Entradas qut /10 SI! u/ilimn Picos (ltI rorrit llte y c(J(.acitnrt's dl! tlI!Mct>plllnlirll/o Clima dtstruir 1111 di.J{JOsitil'O CMOS

3.6

Comportamiento elctrico dinmico de los dispositivos eMOS 3.6./ Tit mpu de transiridn J.6.2 Nm lrdo 1 U: proptl 8 11cr
1.63 Ct.ln.fun/n de I!nI"
g tl

113

3.7

Otras estructuras eMOS de entrada V salida


J.7./ CumputrtllS dI! trwlSmisitl 1. 7.2 Enlrudat de un di.r{Kmwr" Schm;tt
3,7J Sa/idw de fUusuu/os

123

3.7.4 SulidlU dI/! drr.nu jt' al!i(!rIo "1 7 5 GlI!lml de 1 El) 3.7.6 BlIsts dI! fut ntl! nl/Ufipl/!
3.7.7 LdSica afambnum

3.6

3.7.8 Rt sislores tk arranque Familias lgicas eMOS 135 J.8./ IIC ,' UCT 3.8.2 VHC \' VHcr

3.8.3 CarDe/tris/ieas ,.fricas dI!. He. HeT. VHC \' VHcr 3.8.4 FCT \'FCT-T

3.9

Lgica bipolar
'91 Diados

145

bipo/a"s de ""i&l 'n-ersor e" Mgim de /ransist(Jr TramistoreJ ScllOflb 3.10 Lgica transistor-transistor 156 1./0./ CtJtllpllerta NANO rn bdsica
TtwIS/S/(Jff!S

1.9.2 1.9.1 1.9.4 3.9.5

J.gicQ de djooo.r

3./0.1 Nil't1eJ /gicm \' mrgl'neJ de ruiJo


J 10 J EnI! a ul

.1. /0.4 Enmulqr sin urW;ur 3./0.5 Tipos luliciorul/es de comp uertas 1TL
311

Familias ro

1 66

I 11 , EamWar 1T1. inicjqle s

1.//.2 Familias 171. Schotlh3. // J Caraner/iclu lit /llS {wnililJj 7T1.

3.11 .4 Unalw ja deoowJ 7TL


3 12 Interfaz CMOSlUI 170

3.13 lgica eMOS de bajo voltaje e interfaz 3.13./ lAg irn LveMOS l' I.VlTL de JJ v 3 1.12 FnlmtflH w/uamer a ~ V 1 I i , SOlidos w/uanle' (! 5 Y

171

)(

Contenido

J. lJA Re.flllllt'fl de ;nter[(Jt..es1TULV/TL J ./J.5 Lgica de 2.5 V y de/.8 V


3.14 Lgicadeemlsoracop!ado
I 14 I
J /4 1

t75

Circuim Mljro CMI

I /4 2 Erunilj", ECI IOIWOf./

Fam ilia FCJ /OOK J./4,4 ECLposilim(PECL


Refpreocias 16.3

Problemas propuestos Ejercicios 188

184

PRINC IPIOS p E D ISEO LGICO-COMBINACIONAl


4.1 lgebra de coomutacl6n ;1 1 1 Ariqma s
4 I Z TMrelllar de
UIW

193

194

rolo

rariahle

;1

I 4 TIY!rnrvu ' le n I'llriahlet

4 I 5 V/mUdad

4./.6 Repusentociones estdndar de fllnciones lgicos


42 4,3
Anlisis de ci rcu itos combjnaciona les

Slnlesls de ,Irmi' os rombjM cjona le s 4J, / Di.ft'IS y descripciones de circuito


4 .1,2 Mmrip ufad(Hle.f
d~

209 2 1S

rcllilo

4,4

4.5

4,6

433 Mt jmjwc:in dd circllj/(l romhjoudooul 43.4 Mapas de Kartlaugh 4J,5 Minimiacin d~ s/unas o productos 4J,6 Simplificacin de productos de sumas 43.7 Combi/U/CiQtles de entmda "sin 1"l{Jorlancia" 43.8 Minlm;::J/Cin de salida m/tiple Mtodos de minimizacin programados 236 4,4./ RepreJentacin de /irmloos de producto 4.4.2 Cd/cuw de implican/ts primos mediante fa combinacidn dt tirminos de pmducro 4.4J Enronlr(urdo lllta cubierro mnimo empltondo 'lira tabla de implican/es prrmos 4,4,4 Otrm mitodm de miltimiwcitm Riesgos en el tiempo 244 4.5./ Riesgos tJuiJicos 4.5.2 HuI/tullID riesgos estdticru medimrtt e/ uso di' mapaf 4jJ Riesgf.ls dilldmicos 4.5.4 DiHIi> rk ci' rniws libry d( riwms Ellenguale de descripc!6n de hardware ABEL 249 4.6.1 Estrr/Cluro del programo ABEL 4.6.2 Fundol!wlIienlQ dd COlll pi/ad()(' de MJEL 4,6.1 /1IStrllccio,,~s WHEN ... b(ogu~s d~ /laciO/res
464 Tabla r de rt'rtlml

Conlenido

xi

4.65 Jnt~n-alos. conjuntos y relaci01lu 4.6.6 Entrado s sin impononcia 4.6.7 Vn:torude pruebo
4.7
El lenguaje de descripcin de hardware VHOl 4.7. / Flujo de duo 264

4.7.2 Estructura de programo 4.73 Tipos y constant~s 4 .7.4 Funcionu yproadimi~lIIos 4.7.5 BibliOlua \1 paqUf!I~S 4 7 6 E/rnvnlQS tk di Vifa wcucwral 4.7.7 Elemenlos de diseo de Pujo de dolOS 4.7.8 Elementos d~ dis~flo basado en el comportami~lIIo 4.7.9 w dimf!lUidrt tiempo )' simulacldn 4. Z IO Sfnl($js
Aelerancjas 298

Problemas propuestos Ejercicios 304


5

30 1

PRCTICAS DE DISEO l GICO COMBINACIONAL

311

5,1

Eslndales de dng uoentaci6n

312

5.1./ 5.1.2 5.1.3 5.1.4 5./ .5 5./.6

Diagramas de bloquu Smboltu eh lar compUf!rtas Nombruih seMI )' nlve/n acril'OS Ni~'eles octil'OS para ttnnillO{es Diseo eh IgiCD burbuja burbuja Rtpresemocidrt de la ubicacin de lo.r componenus

,. I 7 BU It'I

5.2

5.3

5.1.8 In!ormocirl adiclOtUJi del dwgrama esquf!mtico Temporizacin del circuilo 330 5.2.1 Diagramas de lemporiUlCidll 5.2.2 Rf!fardo eh proposocidll 5.23 EsfNCifjcacianes de lemporizacidn 5.2.4 AndlisiJ d~ t~mporitdn 5.2.5 Herramif!ntas para andlisis de lemporizaddn p lO combjnacionales 337 53./ Nr~glos de lgica programable 53.2 Dls{!(J$itil'Os ldgicos de tJrTegfo programubf~

54

53.6 PrUf!ba yprosramacwn del dispositivo Decod jflCadores 351 5.4.1 Df!codi!icadoU$ binarios

5.4.4 El duodificadar de J a 8 74xIJ8

)(ii

Contenido

5.4.5 Decodificadores binarios en cwcuda 5.4.6 Decodi!icadtJres en ABEL yen /os PW 5.4.7 Decodificadores en VHDL 5.4.8 Decodificadores de siele sl!gnrl!nlos S S Codificadores 376 5.5.1 Codi{ir:adorfls dI! pr;oritllul 5.5.2 El codificador de prioridad 74xl48 5.5.3 Codificadores en ABEL \' PW 5.5.4 C(Jdi!icadorl!.f en VHDL 5.6 Dispositivos de tres estados 385 5.6.1 Bufk n dI! un eSlados 5.6. 2 Bufftn de ,,~s estados SSI )' MSI u/ndor 5.6.3 Salidas de tres e!J/ados en ABEI. y PLD 5 64 Solida. el,. rus l'lWdm e " YHf)f 5 .7 Multip!e)(ores 398 5.7.1 Mul/iplaorfls MSI e!J/tindar 5.7.2 ExpanslII de mlll/irlexores 5.7J Mllltip/t.tores. demultiplexores y bllses 5.7.4 Multiplexores en ABEL r PW 5.7.5 Mul/ip/aores en VHDL 5.8 Compuertas CR EKclusivas y circuitos de paridad 410 5.8. / CompuerlDS O R Exclusil'tl$" NOR bclusi",s 5.8.2 Circuitos de paridad 5.8.3 El generador de /KIridad de 9 hiu 74x280 5.8.4 Aplicaciones de l'tr;{icocifl de paridad 5.85 Compuertas OR Exclusil'u y circu;/O!I de paridad en ABEL l ' PW 5.8.6 CompuutlU OR clusil'O l ' circui/Os de paridad eu VHDL 5,9 Comparadores 419 5.9. / Es"u, /ur" del comparador 5 9 2 Circuitos ittmtjm. 5.9.3 Un circuito comptITador i/eran'l'O 5.9.4 Co/'nparadore!J MSI es/drular 5.95 Comparadores en ABEL y PW 5.9.6 Comparadores en VHDL 5,10 Sumadores, restadores y ALU 430 5. /0,1 Medio sunrodorrs y JUmodort's comple/oJ 5.10.2 SUModmn i/erocl;''OJ ("ell riw" ) 5./0.3 Sustrae/ores (restadores) 5 IQ4 Sumado,,! de ocorrt!o ollticieaJo
5 10 5 S'!!wadauf M5I

5./0.6 5. /0.7 5.10.8 5,/0,9

Ut!idadt s /~ico-ori'mhicas MS/ /'ALU) Acor"o de grJj{JO anticipado SunUJl!ore!JenABEL y PW Sc/wwlQwen VHDI,

Contenido 5. t 1 Multiplicadores oombinadonales 446 5.//. 1 Estruclllras de multiplicador combinacional 5.//.2 Mu/tipliccu:i6n m AREL r PW

xiii

Problemas Pfopoestos Ejercicios 459

456

EJEMPLOS DE DISEO DE CIRCUITOS COMBINACIONALES 6.1 Ejemplos de diseno de bloques de construcci6n 468 6.1./ IJ plauulor rdpida (Harrd shi/ferJ 6.1 .2 Codificador de punto fllJ/(lIIJe .fimple 6./ J Codificador de prioridad dl/ut 6.1.4 Comporadores ell cascadu

467

6.2.1 6.2.2 6.2.3 6.2.4 6.2.5

Isplowdar rdpido
Codificador de pUI/IOflotallle simple Codificador de prioritkJd dI/al

Com{J(lradores el/ C lHCtltla Co",porador dept'lIdiente dt'1modo


Ullo r

626 Conwdor dI'

6.3

6.2.7 Juego de "Tre.-ell ra>~" o "Ga/o" Ejemplos de diseno utilizando VHOL 500

6.1.1 OtJplowlor rripido


6.1.2 Codi{irndur rk pwll/o ROlan/e .fim" le (j.1J Cod!JIcador de prioridad l/l/uf 6.3.4 Contpartldurf!s con uucaJq 6.1.5 Comparador dt'{)e"dientt' del mudo
6 16 wtodor dI' uno.

6.3.7 Jucgo de "Tres Cl! r(n"(l" o "GIIIO" Ejercicios 527

PRINCIPIOS DE DISEO LGICO SECUENCJAI.


7 1 E lementos bjestables 531

529

7.1.1 A,n/isisdisi/(J/

7.2

7./.2 Andlisis anal6gir{j 7.1.3 ComportantitmlO 1IIt'llIcstahlt' latchs Y flip-nops 534


72 I l ovh S . R 722 l au-b 'i.R

n .f
724

{Qlcb

S. R CM hab ililacid"

{ a /e h D

7.2.5 FUp.pop D disparado por P l/IlCO 7.2.6 F/ip-jlop D disparado por flullco ClHI habi/iU/ci6n 7.2.7 Flip-f1op rk erploracin

xiv

Contenido
7.2.8 Flip-flop S-R ma~stro/~u:Ia\'O 7.2.9 FIi" flo,, JK ma~stro/~scla~'O 7.2.10 Flip{1op JK disparaM por flanco 7.2.11 Flip-Flop T Anlisis de una mquina de estado sincrnica temporizada 7.3.1 Estructllra d~ la mdqllirlll dt! estado 7.3.2 Ugica d~ mlida
7 1. 1 ECUQcitm c cacactuluimr

7.3

550

7.4

7.5 7.6

7.7

7.8
7,9

7.3.4 Andfisis d~ m4guinas dt! ~stado con flip-flops D 7.3.5 Andlisis d~ mquinas de ~stado con {lip1lops J-K Plsal\o de mquina de estado sincrnica temporizada 563 7.4.1 Ekmplo de diseo d~ tabla de ~stado Z4.2 M jnjmjmd& de atado 7.43 Asignacin d~ ~stado 7.4.4 Sfntesis utilitflndo flipflops D 7.4.5 Sntesis utilis,ando mp17om JK 7.4.6 Mds efrmplos de disw qu~ utiliumflip-flops D Pisel\o de mquinas de estado que utilizan diagramas de estado Sintesis de una mquina de estado que utiliza Ustas de transicin 76 1 fC!!arionn de lmn dcidn 7.6.2 Ecuaciones de e.xc;tDCn 7.6.3 Variacion~s sobu el uq/lema 7.6.4 Rtaliwcit1n d~ la mdquina d~ ~stado Otro ejemplo de diseno de mquina de estado 594 7.7.1 Eljuego d~ fas adivinanzas 7.7.2 Estados sin utiliwr 7. 7.1 AJignodll de estado codijiulo por ro/ido 7.7.4 CodificadoMs de ~stado "sin importancw" Descomposicin de las mquinas de estado 602
Cjrqthos secueociales de retroa limentacin
7 9 I And/itir

584 591

604

7.9.2 Anlisis de circuitos con farol de ~troalimentaci6n mltiple 7.9.1 Carr~ras 7.9.4 Tablas d~ estado y tablas th flujo 7.9.5 Anlisis d~fljp-f1op D CMOS 7.10 Diseno de tire! lito sen leoda! de retroalimentacin 615
Z lO I I " r i .

7,/0.2 DiJ~rio de rabia th {lujo de modo {u~ntal 7./0.3 M 'nimi~acidn de la rabIa d~ flu jo 7./0.4 AsigllOci6n de estado Iib~ dI! carreros 7 10 5 EcuadoQt< de erdUlcjn 7./0.6 Riesflos tstndol~s
7 /O Z ReJUWi'n 7 11 Carac!erfstiC..aS de disefm de ci rmito secllencial AREL

627

7.11.1 Salidmugistradar 7.11.2 Diagramas de ~stodo

Contenido
7.//3 Memon'a de estado externa 7.// .4 Especificaci6n de salidas de Moore 7.1 J.5 Especi/irocif/ de !lalidas MM/" \' CWJaIi;adm con WITH 7./1.6 Vectores de prueba
7 ' 2 Csrsderlsticas de disal'lo de cirQjtn sAQ taros! VHO!
7.12.1 Circuitos StTUaldol" tk rdmolimenwdCJ 7. 12.2 Circuitos lemporiwdos Referencias 6 44

xv

64'

Problemas propuestos Elercicios 650

646

PRCTICAS p E P ISEO LGICO SECIIENCIAI

659
660

8. 1

Estfmdares de doc"mentacin de cirCtljlos secuenciales

8. 1. 1 R'9/,,,imitnIOS 8tn"o{es

8./.2 Smbolos lgicos


8. / J lHscripcioMs de m4guina de estcuJo 8./.4 Espi{icuciOfl('s r diagramas de tiempo Latchs y flip-flops 686 8.2. / LmcJu yfl;p'/Iops SSI 8.2.2 Inhibicin del rebote de un inrerTuptor 8 .23 El inhibidor di! uooti! para el inrerruplor nu simple

8.2

8.3

a ccvilo "'''reclo, ck bu s 8.2.5 Regis/ros y la/C M de biu ml/iples 8.2.6 Registros y larchs en ABEL y PW 8.2.7 Regis/ros y lo/clts en VHDL PlD secuenciales 681 8J./ PLD secuenciales bipolares 83.2 Disposiril'Os GltLstCuenciales 8JJ Es~cific(JCiontJ de lemporililCin del PLD
824

84

Contadores

693

84 1 Cmrradq ... s iremll''

8.4J COll/adores MSI y aplicaciones


8.4.4 lJt'codi/icacin de estados de canlador binario 8.4.5 ConltWores en ABEL y VHDL 8.4.6 Conladcrts en VHDL Registros de corrimiento 712 8.5./ Estructura del registro de corrimiento

8.5

8.5.2 Registros de corrimiento MSI 8.53 La meu grande (plicacin di! ugistro dI! corrimiento del nr!lm/o 8.5.4 Crml't'rsin serie/paralelo 8.5.5 Contadores t! registra de corrimiento 8 56 Conwlnr en aamo
8 5 7 Conroclout Iohnron

xvi

Contenido

86

8.5.8 Con/(Illores (fe regis/ro de corrimiento ron re/r(){llimentadn finerll 85.9 Regis/ros de corrimiento en AREL)' PW 85. 10 Regu lros de corrimiento 1'11 VHDL Circuitos iterativos contra secuenciales 747
MetodoloQla de dIseno sIncrniCo

8 .7

750

8,Z 2 UII l'il'mplo al' dijl'ilO df: sisli'nw sincrnico

8 ,8

Impedimentos para el diseno sincrnico

757

8.8.J ~SKO tle reloj 8.8.2 Di,ffH,ro dd reloj 8.83 En/mdtlS as{ncrolll/S 8,9 Falla'del sincronizador y melaeslabilidad 764 8.9.1 Falla de J'incrolli:.ador 8.9,2 Tiem{NI de re.m/llcio" de la meille.fwlJilidlJ/1 8.9.3 Di.feta de si/JCmni;adar Clm/iable 8.9.4 Arnflisis de la temporizacldn mewestable 8.95 Mejoft!s sincron;lJulores 8.9,6 O/ros tseios de sincronizodor 8.9.7 Flip-flops meltlestables endurecidos 8.9.8 SinCTOIJZ/lcin de trtlllSferencias de datos de alw ~'t!focidud Referencias 784 Problemas propuestos 786 Ejercicios 788

E.JEMPLOS DE DISEO DE CIRCUITOS SECUENCIALES


9.1 Ejemplos de diseflo gue utilizan ABEl y PLD 796

795

9.1.1 Tempori:cidtl venctlpsulamiento de mdquina! de estat/l) Jxl$lJdas en PW 9./.2 Varias mdquifU'l.f simpft's 91 1 1m h,crf IrO'WWS del tOrd Thlludrrbird 9.1.4 El llego de ftu tldilinanZILf 9.15 Reinl't'ncidn de los cOII/roladores de se1luiforos
9.2 Ejemplos de diseno que utilizan VHOl 813

9.2.J Eftmpfos tle l '(lr js mdqllinas simplu 9.2.2 uu I/lces trascms del Thmulubird 9.23 El juego de las tldMlltII/jJlS 9.2.4 Rei/JI'encin lle lo.f cO/limladort5 de .nmui{oro.f
10 MEMO RIAS DISp OSITIVO S CPlD
1Q 1

y Ep GA

63 1

Memoria de Slo lect!J(a

632

10.1.1 Uso lle tU memorias ROM Xlm (unciones lgicas combinaciollales


10 I , F m ucw w me w a de la ROM

10. 1J /0.1.4 /0.1.5 /0./ .6

DecodificaciII bidime,uiOlull Till(ls C Onu'rciaks de ROM TenrJl(lrizacidn)' en/mdlu de control de ROM Aplicaciollu de ROM

Contenido
10.2 Memoria de lectura/escritura 854 10.3 RAM esttica 854 /03 ./ Entradar y salitUll dI' la RAM estdtica /0.3.2 Estructura interna de la RAM estdtica 10.3.3 Temporiwci6n de RAM estdtica 103.4 RAM estdticas estdnthJr 10.3.5 SRA.", sincr6r1ico 10.4 RAM dinmica 866 10.4./ Es/ructura de tI/lO memoria dinmica tipo RAM 10.4.2 Tempon'wcin de la RAM dinmica /0. 4.3 ORA", sincr6r1icas 10.5 Dispositivos lgicos programables complejos 872 /0.5./ La /amilio CPW XC9500 de XilillX /0.5.1 Arquitectura de bloque defuncitJn /0.5.3 Arqui/ectllTU de bloque de entrada/salida /0.5.4 Matriz de conmutacil1 10.6 Arreglos de compuertas programable por campo 882 /0.6./ Lolulllilia FPGA XC4000de XililtX /0.6.2 Bloque de lg ica configurable /0.63 Bloque de entradnJsalida /0.6.4 /nteTCOlled6n programable Ejercicios 892 11 TEMAS ADICIONALES DEL MUNDO REAL

xvii

895

11.1 Herramientas de disel\o asistido por computadora 895 J1././ nguojes (le descripcin de hardware 1/ ./.2 Captura de diagramas esqUi!mticos //.1 3 Especificaciones y diagrwnas di! tt!mporiwcidn // ./.4 Anlisis y simulacin di!1 circuito 11 ./ .5 Asignodn de componentes i!n la tarftta di! circuito impuso 11.2 Diseno para pruebas 902 // .2.1 Prllebas //.1.2 Dispositil'OS de PT/U:/xJ y equipos de prueba i!n el circuito //.23 Mltodru de uploracin 11.3 Estimacin de la confiabilidad del sistema digital 908
/IJ.lllJdicedefal/os

11.1.1 ConfiabiUdad y tii!mpo medio entri! jolla.s / 133 Confiabilidod M I sistelTlO 11.4 LIneas de transmisin. rellexiones y terminaciones 912 11.4./ Ttor(o bdsica de la J(nea de Ircmsmisidn 1/.4.2 Inltrconuiones de si!flal lgica como lineas di! transmisin 11.4.3 Terminacio~s de seallgica Referencias 920
[N DICE

923

PRLOGO

La Ley de Moorc, que establece que la tecnologia de los semiconductores avanza de manera exponencial, ha mantenido su validez por mAs de tres dcadas. Los expertos predicen que seguir asl durante otro decenio. Cuando se introdujeron por primera vez los circuitos integrados. los paquetes lgicos contenan una docena o una cantidad similar de transistores. En la actualidad, debido a incrementos exponenciales en la densidad de los circuitos, los chi ps de microprocesadores han rebasado la barrera de los lOmillones de transistores. En menos de otra dcada alcanzarn los 100 mi llones de transistores por chip. Para seguir el ritmo de la Ley de Moorc, las tcnicas de diseo han cambiado

drsticamente. Hubo una poca en la que los circuitos lgicos fabricados a mano fucron la norma. En la actualidad los diseadores desarrollan los circ uitos a partir de descripciones de allo nivel. Las conexiones hacia las tarjetas de circuito impreso se realizan en el interior de los chips. Con la lgica programable. las funciones lgicas y las conexiones en el chip pueden actualizarse denU'O del ambiente del usuario. Cmo mantener al comente la educacin con la Ley de Moore? Qu podemos hacer para pennitir quc los estudiantes pl1l.ctiquen hoy sus habilidades y las adapten manana a las nucvas genel1l.ciones de dispositivos? ste es el reto que enfrent John Wakerly cuando inici este tl1l.baj'J. Su enfoque es polifactico. Se basa en los principios fundamen tales del diseflo digital que no sc modifican con la tecnologa, como son la lgica combinacional, la lgica secuencial y l n.~ mq uinas de estado. El autor une estreehamenle estos principios con herramientas y I<:nicas prclicas quc ensean cmo disdlar para la tecnologia actual. stas incluyen cmo utili7.nr los lenguajes de disco ABEL y VHDL, cmo estruelUl1I.r disenos con grandes bloques de construccin y cmo instrumentar diseos con dispositivos de lgica progl1l.mable. Estas lcnicas son esenciales pal1l. obtener
xilo en el diseilo. La meta ms dificil es ayudar al estudiante pal1l. que se adapte a los cambios ine-

vitables que estn por venir. Pal1l. lograr lo anterior el autor revela lo que ocurre bajo la lgica. Por ejemplo, proporciona modelos de transistores paro compuertas y los utili7..8 para exponer aspectos que estn relacionados con temporizacin y ruido. Las COo1xix

xx

Prlogo puertas pueden llegar a ser ms nipidas, ms densas y pueden utilizar dife~ntes voltajes de control, pero el hecho de asegurar un funcionamiento adecuado y confiable siemp~ ser una preocupacin constante. Aprenderemos las caracteristicas. restricciones y modos de falla y cmo disear para ellos. Tambin aprenderemos mediante ejemplos con diseos alternativos, Cmo juzgar la calidad del diseo y evaluar los compromisos. A medida que surxen nuevas tccnologias. seremos capaces de disear para ellas. El autor mcjora el enfoque con habilidades de presentacin que son raras en los textos universitarios. El lector apreciar nipidamente la efectividad de las grficas, el estilo ameno dc la exposicin y lo instructivo de tos ejercicios. La Ley de Moore condena a los libros de texto en este campo a tener una vida breve. No obstante, cllexto de Wakerly es un clb ico.
Harold S. SIOlle

Pri'lCelon, New Jersey

PREFACIO

El presente libro

~I

dirigido a todas aquellas

~rsonas

que desean disear y construir

circuitos digitales reales. Est basado en la idea que, a fin de hacer esto, usted tiene que
captar los fundamentos, pero al mismo tiempo necesita comprender cmo funcionan las cosas en el mundo rea l. Sta es la razn por la cual se propone el tema de " principios y prcticas",

El material en este libro es adecuado para cursos de introduccin de discilo lgico


digital en ingenieria cl~ica o en computacin. asl como en ciencias de la compuUlCin.
Los estudiantes de ciencias de la computacin que no estn familiarizados con los con-

cunru de introducdn

ceptos bsicos de electrnica o que sencillamente no estn interesados en el componamiento el~tri co de los dispositivos digitales pueden omitir el capitulo 3; el resto de la obra fue escrita con la idea que fuera independiente de este capitulo tanto como fuera posible. Por otro lado, cualquier persona que tenga los fundamemos bsicos de electrnica y que desee obtener un mayor conocimiento de electrnica digital, puede hacerlo leyendo el capitulo 3. Aquellos estudiantes qlle no cllenten con antecedentes de electrnica pueden obtener conocimientos bsicos si consultan el texto "Electrical Circuits Review", de Bruce M. Fleischer, que es un rutorial electrnico de 20 pginas disponible en forma gralUita y en el sitio Web de este libro .... "dpp. cea Aunque el nivel de este libro es introductorio, contiene mucho ms material del que puede impartirse en un curso tpico de introduccin. Cuando comenc a escribirlo, encontr que habia tantas cosas importantes por decir. que no cabrian cn un curso de un Irimestre de Swnford o en un libro de 400 pginas. Por consiguienle, he seguido mi prctica habitual de incluir por lo menos, toJo lo que pienso que es medianamente impenante y dejar que el profesor o el lector decidan ellos mismos lo que es ms impor: tante en un ambiente particular. Para ayudar en la toma de estas decisiones, marqu con un aSlerisco los encabezados de las secciones opcionales. En general, estas secciones pueden omitirse sin riesgo de perder la contiuidad en las secciones no opcionales postcriores. Sin duda algunas personas optarn por utilizar este libro en cursos avanzados y de laboratorio. Los estudiantes avanzados querrn saltarse los fundamentos e ir dire<:tamente a los aspectos interesantes. Una vez que usted conozca los fundamentos, lo mas

conceplru b.'Jicos de clectronica

stcciOlll!s

opcional".!

C1Jrsos o\'on:odos y de lobor(l/orio


rupectOJ interesantes

xxII

Prefacio
importante e interesante en este libro radica en las seccioncs dedicadas a los lenguajes de descri pci6n de hardware ABEl y VHDL, donde usted descubrir que sus cursos de programaci6n en realidad le servirn como preparacin previa al disdlo de hardware. Este libro tambien se puede utilizar como rererencia de estudio autodidacta para todos aquellos diseftadores digitales que trabajan a nivel proresional, quienes pueden pertcnettr a cualesquiclll de dos clases:
Principianle

diseMdores digitales

Si usted acaba de incorporarse a una cmpresa y se desempai\a como disei\ador de circuitos digitales, y tom cursos de dise~o que rueron muy 'lericos" en la universidad. debera concentrarse en los capltu. los 3, 5, 6, Ydel 8 al 11 para prepararse para el mundo real.

Prolesion isla Si usted liene experiencia. tal vez no requiera todo el material de con experiencia ''prcticas'' de este libro, sin embargo, los que incluyen principios de los

captulos 2, 4 Y 7 le sern tiles para organizar sus pensamientos. y las disc usioncs que ah se presentan sobre lo que se considcra impor. tante y lo que no lo es padrian mitigar su sentimiento de culpa por no haber utilizado un mapa de Kamaugh en 10 aos. Los ejemplos de los capllulos 6, 8 Y91e proporcionarian ideas adicionales y la apreciacin ante una variedad de mtodos de diseno. Por ltimo. las descripciones de los lenguajes ABEl y VHDL, as como los ejemplos dispersos a tmvs de los capitulos que van desde el4 hasta el 9, pueden servir le como primera introduccio organizada al disdlo basado en HDL.
no/a.f al margen

Todos los lectores deberan hacer buen uso del ndice detallado y de las " o/as al margen que aparecen en el texto porque dirigen su atencin hacia las definiciones y los temas importantes. Es probable que los temas que estn resaltados en esta seccin sean mAs marginales que importantes. pero queria mostrar mi sistema de ronnateo de texto.

Descripci6n de los capitulos


Lo que tenemos a continuacin es una lista de descripcionCli breves de los onee captu. los y de eSle libro. Esto puede recordarle la seccin de las guias de software, titulada "Para aquellos que abo~en leer manuales". Si usted I~ esta lista, tal vez no tenga que lccr el resto del libro. El captulo I proporciona unas cuantas definiciones bsieas y dctennina las reglas fundamentales para 10 que pensamos que es o no es importante en este libro. El capitulo 2 es una introduccin a los sistemas numricos y cdigos binarios. Aun los lectores que ya se encuentren fami liarizados con los sistemas numricos binarios por haber llevado algn curso de software, dcberian leer las secciones 2.10 a 2.13 para obtener una idea de la fonna en la que el hardware utiliza los cdigos bi narios. Los estudiantes avanzados pueden conseguir una atractiva introduccin a los cdigos de deteccin de errores alIcer las secciones 2.14 y 2.15. Todos debe ran leer el material de la seccin 2.16. 1 que se emplea en algunos ejemplos de di seo en el captulo 8. El captulo 3 describe todo lo que usted siempre quiso saber acerca de" la opera cin de un circuito digital, haciendo nfasis principal en las caractersticas elctri

Prefacio cas externas de los dispositivos lgicos. El punto de partida son los fundamentos bsicos de electrnica, incluyendo voltaje, corriente y la Ley de Ohm. A todos los lectores que no estn familiarizados con estos conceptos les recomendamos que consulten el libro "Electrieal Circuits Review", que se mencion anterionnente. Los lectores que no estn i nt~dos en la operacin de los circuitos reales, o que pueden darse el lujo de tener alguien ms que les haga el trabajo sucio, pueden omitir este captulo. El captulo 4 ensea los principios de diseno lgico combinacional. incluyendo lgebra de conmutacin. o lgebra binaria y anlisis de circuito combinacional, sntesis y minimizacin. las introducciones a ABEL y VHDL aparecen al final de este capitulo. El captulo S comienza con el estudio de los estndares para la documentacin del sistema digital. probablemente la practica ms imponante para los diseadores que aspiran a comenur su formacin prctica. En este mismo capitulo se presentan los dispositivos de lgica programable (PLO), enfocndose en su capacidad de llevar a cabo funciones lgicas combinacionales. El resto del capitulo describe las funciones lgicas combinacionales ms comnmente utilizadas y sus aplicaciones. Para cada funcin, se describen los bloques estndar de construccin MSI, programas ABEL para realizaciones PLD y modelos VHDL. El capitulo 6 es una eoleecin de ejemplos ms extcnsos de disefto de circuitos combinacionales. En cada ejemplo, se muestra cmo pueden efectuarse el disei'!o con bloques de construccin MSI (si es apropiado), ABEL y POL, o VHDL que pueden ser dirigidos tanto a un CPlD como a un FPGA . El capitulo 7 ensea los principios de diseo lgico secuencial. comenzando con latchs y "fl ip-nops". El nfasis principal en este capitulo radica en el anlisis y diseno de mquinas de estado sincrnicas en el tiempo. Sin embargo. para los audaces y valientes, este capitulo incluye una introduccin a los circuitos de modo fundamental y el anlisis y diseo de circuitos secuenciales de retroalimentacin. El capitulo termina con secciones acerca de las caractersticas de ABEL y VHOL que soportan el disei\o de los circuitos combinacionales. El capitulo 8 trata en su totalidad del disei\o prctico de circuitos secuenciales. Como se hizo en el captulo 5, este captulo se enfoca en las funciones ms comnmente empleadas y proporciona ejemplos haciendo uso de bloques de construccin MSI, ABEl 'i PLO asi como VHDl. Las secciones 8.8 'i 8.9 discuten los impedimentos inevitables para el disei'!o ideal o completamente sincrnico y abordan el problema de Cmo vivir sincrnicamente en un mundo asincrnico. El captulo 9 es una coleccin de mquinas de estado y ejemplos de disei\o de circuitos secuenciales ms grandes. Cada ejemplo se realiza tanto usando ADEL para un PLD como empleando VHDl, el cual puede ser dirigido a un CPLD o FPGA. El capitulo lO es una inlrOOuecin a los dispositivos de memoria CPLD y FPGA. La cobertura de la memoria incluye la memoria slo de lectura, asl como las memorias de lectura..eseritura esttica y dinmica desde los puntos de vista de la circuiteria interna y el comportamiento funcional. las ltimas dos secciones presentan la arquitectura CPlD y FPGA. En el capitulo 11 se diseuten varios lemas miscelneos del mundo real que son de inters para los disci'!adores digitales. Cuando comenc a escribir lo que yo pensaba

xxiii

xxiv

Prefacio que seria un libro de 300 pginas, inclu este captulo en la versi6n preliminar para reforzar el material "central" y cubrir ms tpicos. Bueno, el libro es evidentemente lo su ficientemente extenso sin l. pero este material es titil a pesar de todo.
La mayor parte de los capitulos contiene referencias. problemas propuestos y

ejercicios. Los problemas propuestos son por lo regular preguntas de respuestas breves o preguntas que despienan el inters en lo prctica y que pueden responderse directamente con base en el material del texto. mientras que los ejercicios reijuieren una mayor refluin de parte del alumno. Los problemlLS propuestos en el capitulo 3 son panicu-. lonnente extensos y estn dise\ados para permitir que los ti pos que no son elctricamente borrables entren en el material.

WWW.DDPP.COM
Se tienen disponibles materiales de apoyo para esle libro en el propio sitio Wcb dedicado al libro, ""'.""pp.caa.. Un recurso clave para los estudiantes es el conjunto de listados fuente para todos los programas de ejemplo e. ABEL y VHOL del libro. Tambi6t se encuentran disponibles directorios del proyecto Foundation en fonnato ZIP (comprimido), que incluyen, odems de los archivos fuente ADEL y VHOL. algunos esquemas que sirvan para utilizar y estimular algunos de los ejemplos de diSCllo. Durante la preparacin de esta edicin, qued sorprendido y encantado de ver
cunto malerial de referencia de diseno d ig ita l est disponible en la Wcb, especialmen-

te de parte de los fabricantes de dispositivos. El sitio Web OOPP contiene una seccin de referencias ~vivas" con enlaces a muchos sitios utiles que usted puede emplear como un punto de panida para su propio estudio independiente. Un par de apndices de las ediciones anteriores estn disponibles en el sitio Web ("Electrical eircuits Revicw" por Bruce M. Fleischer. y " IEEE Standard Symbols'). Los estudiantes que toman cursos de laboratorio apreciarn IILS cuatro pginas que incluyen las gulLS de tenninales de salida dc circuitos integrados (els). que aparecen en las pginas de folTOS de IILS ediciones anteriores. Una cosa que a los estudiantes les puede gustar o no gustar, es una nueva coleccin de ejercicios nuevos que espero que sc incremente a medida que yo contintie ense"ando disci\o digital en Stanford y a medida que reciba contribuciones de otros coleglLS.

Cmo se prepar este libro


El texto de esta tercera edicin fuc convenido de la versin TEX de la segunda edicin original en Adobe FrameMak~. Las figuras que provienen de las ediciones anteriores fueron convertidas desde ericket Oraw en archivos EPS de Adobe llIUSll'8tOf"l. Toda la escritura, edicin, dibujos y dise"o de circuitos fueron realizados en una Pe ejecutando Windows 9S o 98 con 384 Mbytes de memoria. la cual, lamentablemente, todava se bloqueaba cuando se abrian al mismo tiempo demlLSiados programas o archivos. Las buenas noticias son que este uso de la edicin de herramientas y programas estndar. me ha permitido proporcionar a lectores y profesores una gran colelXin de materiales titiles en el sitio Web del libro, como se indic anteriormente.

xxvi

Prefacio nuestro perro de 90 libras habra ido a Europa en mi lugar!). Roben Lenz tambiin hizo un gran trabajo como editor del manuscrito con lo que yo poda vivir. Le envio un especial agradecimiento al artista Robert McFadden, cuya imagen de portada se encuentra colgada en mi casa junto coo varias otras de sus extravagantes obras. La pintura que encargu y l realiz durante un ano, me proporcion la motivacin para abordar el interior del libro. Parece como si algiln desastre siempre surgiera cuando estoy por completar uno de estos proyectos. En la edicin anterior, fue el terremoto de la Serie Mundial de 1989. Esta vez. parece que he esquivado la bala hasta este momento. En realidad, no estar compleuuncnte hecho hasta que haya tenninado el ndice. el cual preparar en mi computadora porttil mientras recorra sobre los rieles el territorio europeo durante las prximas semanas. Esperemos que no la olvide en algn tren! Como siempre, debo agradecer a mi esposa Kate por soponar las horas de desvelo. frustracin. mal humor. preocupacin y llamadas telefnicas de gente extraa que ocurren cuando estoy compromelido en un proyecto de publicacin como ste. Esperamos que ustedes disfruten comenzar con este libro lanto como nosotros disfrutamos tenninarlo!
John F. Wakerly

Mounloin VJew. California

Cmo obtener el software ISE WebPACK?

Para descargar la versin gratuita de las herramientas XILlNX se debe conectar


a la direccin httpl 11" - xilinx. ce-.

Una vez all. haga clie en en la opcin Deslgn Toob de la seccin Producl, & ServlcH. Luego haga elie en la opcin ISE WdPA CK de la seccin Loglc [)e..

sigo Producs.

Despus, haga elie en el botn Order & Reglster que est en la pgina free (SE
WebPACK y luego en el botn Create an Aceounl de la pgina siguiente. Complete lodos los datos que le pide el rormulario y selcione su pals. Deber

utilizar una direccin de correo vlida para poder recibir ah su clave de acceso. Luego haga elie en Next. Una vez que haya recibido su conlr1lSeil.a, regrese a la se<:cin Free ISE WebPACK y ahora haga elie en el botn Downloftd.

Escriba sus datos de acceso y seleccione la ubicacin donde desea guardar el archivo de instalacin. Cuando la descarga haya terminado, ejecute el archivo de instalacin y siga los procedimientos indicados en pantalla. Durante la etapa de seleccin de los mdulos a instalar (SeIKt XiIllDx Modules), elija solamente el mdulo XILINX y haga elic en Siguiente. Contine con el proceso de instalacin siguiendo los pasos que se muestran en pantalla. El proceso de instalacin puede durar varios minutos, dependiendo de la capacidad de su equipo y de los mdulos que haya seleccionado. Para cualquier duda, escrfbanos a soportemx@peustlnectcom.

Diseo digital
Pri ncipios y prcticas

ea

celen

.,

I ciencias de In computacin que sabe todo acerca de programacin y sofl ~

ic nvcnido al mundo de l discilo digita l. Tal vez usted seD un estudiante en

'praeq lpor

re h

Wlln: de computadoras. pero lodo\l(1I se encuentre intentando averiguar cmo es que lodo ese intrincado hardware puede funcionar. O qUi7S scn

un estudiante de ingeniera elctrica que ya sabe algo acercn de elecanalgica y diseo de circuitos. pero no sera capaz de reconocer un bit aun lo tuviera enfrente. No impona. Comcn1,ando desde un nive l bastante fundaeste libro le moslrnr.1 cmo disear circuitos y subsistemas digitales.

e proporcionaremos los principios bsicos que neccsitarn para averiguar las tambin le daremos muchos ejemplos. JunIOcon esos principios. intentaremsmitirle la intuicin que requiere el diseo digital del mundo real.
ndo considerncioncs prcticas y ac tualcs siempre que sea posible. Y yo, el )fl frecuencia har referencia a mi persona como " nosotros" con la cspernn IC el lector se sienta guiado y tenga la impresin de que estamos caminando . travs del proceso de aprendizaje.

~cerca

del diseo digital

t lo llaman "diseo lgico". E.'lO est bien, pelO al fin de cuentas el objetivo o es construir sistemas. Para ese fin , en este texto cubriremos mucho ms ~amente tcoremas y ecuaciones lgicas. ste libro estudia los principios y prcticas. La mayorla de los principios que Irnos contin uarn siendo im portllntes en los aos que estn por venir. algu rnn aplicarse en fonnas que no se han descubien o todava. En c uanto a las

Capftulo 1 Introduccin

prcticas. stas pueden ser un poco diferentes de lo que se presente aqu( en el momento que usted comience a trabajar en su ramo. y ciertamente continuarn cambiando a lo largo de su vida profesional. De modo que debera tratar con el material de "prcticas" en este libro como una manera de reforzar los principios. y como una forma de aprender los lJM!todos de diseo. Uno de los objetivos del libro es presentar lo suficiente acerca de los principios bsicos para que usted sepa qu es lo que ocurre cuando utiliza herramientas de software que hacen el trabajo por usted. Los mismos principios bsicos pueden ayudarle a llegar a la ra(z de los problemas cuando las herramientas se cruzan en su camino. En el cuadro de esta pgina se enumeran varios puntos clave que deberan apren derse a travs del estudio con este texto. La mayor pane de estos temas probablemente 00 tengan sentido para usted en este momento, no obstante usted deber regresar y revisarlos posteriormente. El diseo digital es ingeniera, y la ingenier(a significa " resolucin de problemas". Mi experiencia indica que solamente un 5 a 10% del diseo digital conforma "el aspecto divertido"; la parte creativa del diseo, el destello de inspiracin, la invencin de un nuevo enfoque. Todo lo que resta es precisamente "trabajo pesado". Cabe mencionar que en la actualidad ellrabajo pesado es mucho ms fkil de realiz.ar ahora, que hace 20 o incluso 10 aos, sin embargo no podr dedicar el 1 00% Oincluso el 50% de su tiempo a trabajar en la parte divertida.

Seccin'.2

Analgico COfltra Digital

Adems de la parte divertida y el trabajo pesado. existen otras muchas reas en las cuales un diseador digital con xito debe ser competente, incluyendo las siguientes:
DepumciII. Es casi imposible ser un buen diseador sin ser un buen localizooor de fallas . La depuracin acertada implica planeaci6n. un enfoque sistemtico. paciencia y lgica: isi no puede descubrir dnde est un problema. averlgUe dnde no se ellellen/m! Requerimientos y prcticas de negocios. El trabajo de un profesional del diseo digital se \'C afectado por un sinnmero de factores externos a la ingeniera. inclu

yendo estndares de documentacin. disponibilidad de componentes. definiciones de caroctersticas. especificaciones del objetivo. oq:ani1.aci6n o programaci6n de tareas. polticas de oficina y comidas con los ,,endedores. Toma ele riesgos. Cuando se comienza un proyecto dc disefto deben evaluarse cuidadosamente los riesgos contra las consecuencias y recompensas potenciales. en reas que abarcan desde la seleccin de nuevos componentes (estarn disponibles cuando yo est listo par.!. construir el primer prototipo?) hasta compromisos de programas de trabajo (conservar mi empleo aUl1que me retrose en el proyecto?). ComllllicllcilI. Con el tiempo. usted ofrecer sus diseos con t:xito a otros ingenieros. departamentos y clientes. Si no tiene buenas habilidades de comunicacin. nunca completar esta etapa en forma satisfactoria. Tenga en mente que la comunicacin no slo incluye la trnnsmisin. tambin incluye la recepcin de infonnaci6n: aprenda a escuchar! En el resto de este captulo. y a lo largo del texto. continuar expresando algunas opiniones acerca de lo que es importante y lo que no lo es. Pienso que lengo derecho a hacerlo siendo yo mismo un practicante de xito moderndo del diseno digital. Naturalmente, siempre sern bienvenidas sus opiniones y experiencias para companir (para lal fin puede enviar un correo electrnico a la siguiente direccin: johnE!wakerly. com

1.2 Analgico contra Digital


los sistemas y disposith-os antilgicos procesan las seales variantes en el tiempo que pueden adquirir cualquier \'3lor a lo largo de un intervalo continuo de voltaje. comente u otra
QtwMgicot digitllfu
Q

medida. Del mismo modo lo hocen los sistemas y circuitos digitales: la diferencia es que podemos aparentar que no lo hacen! Una seiW digital se modela para tomar. en cualquier instante. solamente uno de dos valores discrecos. que denominamos Oy I (o BAJO y ALTO. FALSO Y VERDADERO. negacin y af1l'Tllllcin. Samuel y Pedro. o cosas por el estilo). Las computadoras digitales han estooo presentes desde los aos cuarenta y se ha extendido su uso comercial desde los sesenta. Apenas en estos ltimos 10 a 20 ailos In "revolucin digital" se ha extendido a muchos oltOS aspectos de la vida. Ejemplos de aquellos sistemas analgicos que ahorn se "han vuelto digitales" incluyen los siguientes:

FQ/ogroFas. La mayora de las cmaras todava hacen uso de pelculas que tienen
un recubrimiento de haluras de plata paro grabar imgenes. Sin embargo. el incremento en la densidad de los microcircuitos o "chips" de memoria digital ha permitido el desarrollo de cmaras digitales que graban una imagen como una matriz de 640 x 480. o incluso arreglos ms extensos de pixeles donde cada pixel almacena

CapItulo 1 Introduccl6n las intensidades de sus componentes de color rojo, verde y azul. de 8 bits cada uno. E...ta gran cantidad de datos. alrededor de siete millones de bits en este ejemplo. puede ser procesada y comprimida en un formato denominado JPEG y reducirse a un tamao tan pequeo como el equivalente al 5% del tamao original de almacenamiento. dependiendo de la cantidad dedctalledc la imagen. De este modo.lascmnms digitales dependen tanto del almacenamiento como del procesamiento digital. Grobaciollud~ 'ideo. Un disco verstil digital. de mltiples usos (OVO. por las siglas de lligital'usutile disc ) almacena video en un fonnato digital altnmente comprimido denominado MPEG-2. Este estndar codifica unll pequea fraccin de los cuadros individuales de video en un formato comprimido semejonte 01 JPEG, Ycodifica cada uoo de los otros cuadros como la diferencia entre ste y el anterior. La capacidad de un OVD de una sola capa y un solo lado es de aproximadamente 35 mil millones de bits, suficiente para grabar casi 2 horas de video de alta calidod. y un disco de doble capa y doble lado tiene cuatro veces esta capacidad. Grobociones deaudio. Alguna vez se fabricaron exclusivamente mediante 111 impresin de fonnas de onda analgicas sobre cinta mag~tica o un aceuuo (LP). las gmbaciones de audio utiliUln en la actualidad de manern. ordinaria discos compactos digitllles (CO, Compoct Discs). Un CO almacena la m.~ como una serie de nmuos de 16 bits que toI lc:spondcn Il muestras de la forma de onda analgica original. se realiza una muestra por canal estereofllico CMa 227 microsegundos. Una grabacin en CO a toda su capxidad (73 minutos) contiene hasta seis mil millones de bits de informacin. Carbllrado~s de autom(jvifes. Alguna vez conuolados estrictamente porconexiones mecnicas (incluyendo disposil\'os mecnicos "unalgicos" inteligenles que monilorean la temperatura. presin, etc.), en la actualidad 105 motores de los aUlomviles estn controlados por microptocesaclores integmdos. Diversos sensore.< electrnicos y electromecnicos convien en las condiciones de la mquina en nmeros que el microprocesndor puede examinar pm detenninar cmo controlllr el flujo de gasolina y oxfgeno hacill el motor. La snlida del microprocesador es una serie de nmeros variante en el tiempo. que activa a transductores elecltomecnicos que, a su vez. controlan la mquina. El sistema te/~f(jnico. Comenz hace un siglo con micrfonos y receptores analgicos que se coneclaban en los extremos de un par de alambres de cobre (o. era una cuerda?). Incluso en la actualidad, en lo mayor parte de los hogares lod3vfa se emplean telHonos analgicos. los cuales transmiten seales analgicas hacia la oficina central (CO) de la compafa telefnica. No obstante, en la mayorEa de las oficinas centrales. estas seales analgicas se convierten a un fom13to digital anles que sean enviad!ls a sus destinos. ya sea que se encuentren en la misma oficina central o en cualquier punto del planeta. Durante muchos aos los sistemas lelefDicos de conmutacin privados (PBX , private bnrnch exchanges) que se utilizan en los negocios han transportado el fonnato digital todo el camino hacia los escritorios. En la actualidad. muchos negocios. oficinas cenlrales y los proveedores tradicionales de sei'\licios telefnicos, estn cambiando a sistemas integrados que combinan hl voz digital con el trfico digital de datos sobre una sola red de Protocolo de I",emel IP (por las siglas en ingl~s de Internet Protocol). Sem6foros. Ptlra controlar los semforos se utilizaban temporizadores eleclro mecnicos que habilitaban la luz verde para cada una de las direcciones de circulacin durante un inlei'\lalo predetenninado de tiempo. Posteriormente, se utili1.lU"()n rele

Seccin 1.2

Analgico contra Digital

vadores en mdulos controladores que podlan activar Jos semforos de acuerdo con el patrn del trfico detectado mediante sensores que se incrustan en el pavimento. los controladores de hoy en dfa hacen uso de microprocesadores y pueden controlar los semforos de modo que maximicen el flujo vehieular o, como sucede en algunas ciudades de Cal ifornia, sean un motivo de frustracin para los automovilistas en un sinnmero de CIl:ntivas maneras. Efectos cinemalO8rdficos. Los efectos especiales creados exclusivamente para ser utilizados con modelos miniaturizados de arcilla, escenas de accin. trucos de fotograffa y numerosos traslapes de pelfcula cuadro por cuadro. En la actualidad, naves espaciales. insectos, otras escenas mundanas e incluso bebl!:s (en In produccin animada de Pixar, Tin Toy) se sintetizan por completo haciendo uso de computadoras digitales. Podr1in algn da ya no ser necesarios ni los dobles cinematogrficos femeninos o masculinos?
La revolucin electrnica ha estado vigente bastante tiempo; la revolucin del

"estado slido" comen7. con dispositivos analgicos y aplicaciones como los transistores y los radios transistorizados. Cabe preguntarse JXlf qu~ ha surgido ahora una revolucin tligitar! De hecho. existen muchas razones putll dar preferencia a los circuitos digitales sobre los circuitos analgicos:
Reproducibilido.d de rt'sultados. Dado el mismo conjunto de entradas (tanto en valor como en serie de tiempo). cualquier circuito digital que hubiera sido diseado en la fonna adecuada. siempre producir1i exactamente los mismos resultados. Las salidas de un circuito analgico varian con la temperatura, el voltaje de la fuente de alimentacin, la antigedad de los componentes y otros factores. Facilidad de diseo. El diseo digital. a menudo denominado "diseo lgico", es lgico. No se necesitan habilidades ITlUtemticas especiales. y el comportamiento de los pequeQs circuitos lgicos puede visualizarse mentalmente sin tener alguna idea especial acerca del funcionamiento de capacitares, transistores u otros dispositivos que requieren del clculo puta modelarse. Flexibilidad yfunciotlolidad Una vezque un problema se ha reducido a su formadigital. podr resolverse utilizando un conjunto de pasos lgicos en el espacio y el tiempo. Por ejemplo. se puede disear un circuito digital que mezcle o codifique su \'OZ grabada de manera que sea absolutamente indescif11lble paracualquiem que no tenga su "clave" (contrasea). pero sta podr ser escuchada vinualmente sin distorsin por cua1quier per.;ona que posea la clave. Intente hacer lo mismo con un circuito analgico. Prvgramobifido.d. Usted probablemente ya cm familiarizado con las computadoras digilD.les 'i la facilidad con la que se puede disear. escribir 'i dcpur.u- progmmUll para las mismas. Pues bien, adivine qut? Una gran parte del disefto digital se lleva a cabo en la actualidad al escribir programas, tambi~n, en los lenguojes de delcripcitl de ho,rlwa~ (HDLr, por sus siglas en inglb). Estos lenguajes le pelliiiten especifiCUf" o modelar tanto la estructura como la funcin de un circuito digital. Adems de incluir un compilador, un HDL Upico tambitn tiene programas de simulacin y sntesis. Ews berramienw de programacin (software) se utilizan para verificar el comportamiento del modelo de hardware antes que sea consuuido, para posteriormente reaJizar la sntesis del modelo en un circuito. aplicando una tecnologa de componente en particular. Velocidad. Los dispositivos digitales de la actualidad son muy veloces. Los transistores individuales en los circuitos integrados ms rpidos pueden conmutarse

Itngllajt dt dtscripcitm
de hord"'/lrt (HDI.'

modtlo dt hord...art

Captulo 1 Introduccin

en menos de 1 0 picosegundos, un dispositivo completo y complejo construido a partir de estos lmnsistores puede examinar sus entradas y producir una salida en menos de 2 nanosegundos. Esto significa que un disposilivo de esta naturaleza puede producir 500 millones o ms resultados por segundo. Ecollom(a. Los circuitos digitales pueden proporcionllr mucha funcionalidad en un espacio pequeo. Los circuitos que se emplean de manera repetitiva pueden "integrarse" en un solo "chip" y fabricarse en masa a un costo muy bajo, haciendo posible In fabricacin de productos desechables como son las calculadoras, relojes digitales y tarjetas musicales de felicitacin. (Usted podra preguntarse. "acaso tales cosas son algo buenoT' No importa!) A\'unu tt'cTWlg ico constanlt', Cuando se disena un sistema digital. cas i siempre se sabe que habr una tccnologfa ms rpida. ms econmica o en todo caso una lecnologia superior para ~lile cn poco tiempo. Los dilicfladoreli inteligentes pueden adaptar estos avances futuros durante el diseno inicial de un sistema, para anticiparse a la obsolescencia del sistema y para ofrecer un valor agregado a los consumidores. Por ejemplo, las computadoras porttiles a menudo tienen ran uras de expansin para adaptar procesadores ms rpidos o memorias ms grandes que las que se encuentran disponibles en el momento de su presentacin en el mercado.

De este modo, esto es suficiente para un matiz de mercadotecnia acerca del diseo di gilal. El resto de este captulo proporcionar una base un poco ms tcnica para prepararlo con miras al resto del libro.

1.3 Dispositivos digitales


c(J"'pu ~ n(l

Los dispositivos digitales ms elementales se conocen con el nombre de compuenas (del ingls gates, y no. no fueron precisamente bauti7adas as! en honor al funcb dQr de cierta compaa prominente de software). Las compuertas originalmente deben su nombre a

comput!rta AND

su C<lpacidad de pennitir o retardar (como lo hnrla una "compuerta') el flujo de la informacin digital. En general. una compuerta tiene una o nls entradas y produce una salida que es una funci n del (los) valor(es) de la corriente de entrada. Mientras que las enlm das y salidas pueden ser condiciones analgicas como voltaje, corriente. incluso presin hidrulica. se modelan de modo que lomen solamente dos valores discretos, Oy l . La figura 11 mueslm los smbolos para las tres clases ms importantes de compuer las. Una compuena ANO de 2 entradas, como la que muestro,!. la pane (a) de la figum, produce una salida de l si sus dos entrndas son iguales a l : de otro modo produce una sali da igual a O. La figura muestra la misma compuerta cuatro veces. con las cualro posibles

Seccin 1.4

AspectoS electrnicos del diseo digital

( .,
(b)

o o o o o

I )
) )
[>o

o o

I )

,) ) , [>o

,
o

I ) , ~) )
o

, ,

,) ) ,

I )'

F Ig u ra 1 -1

Dispositivos digitales: al compuerta ANO; bl compuerta CR; el compuerta NQT o inversor.

combinaciones de entrada que pueden aplicarse a la misma y las salKIas resuhnnte$. Una compuerta tambin se conoce como circuilO rombinllcicHlul debido a que su salida depende solamente de la combinacin de la comente de entrada. Una compllerta OR de 2 entmdas. como la que se indica en la parte (b) de la figura )-1. produce una salida 1 si una o ms de sus entradas son 1; produce una salida O solamente si amba.~ entradas son O . Una vez ms. ex isten cuatro posibles combinaciones de entrada. cuyas salidas resultantes se ilustran en la fi gura. Una com/mena NOT, ms comnmente conocida como un m'usor. produce un valor de salida que es el opuesto al \/aIorde entrada. romo se ilustra en la parte (e) de la figura. Afinnamos que estas tres compuenas son las ms nlponantes por una bucna razn. Se puede realizar cualquier funcin digital haciendo uso slo de estas tres clases de compuenas. En el capCtulo 3 mos~mos c6mo se realizan las compuenas empleando circuitos transistorizados, Sin embargo. usted debera saber que las compuertas han sido construidas o propuestas utilizando otras tecnologfas. tales como rclevadores. tubos de vado. dispositivos hidrulicos y estructUr.lS moleculares, Unflip-jfop (o biestable) es un dispositivo que almacena ya sea on Oo un l. El estado de un f1ip- nop es el valor que almacena actualmente. El valor almacenado puede modifica.rse solamente en cienos instantes que estn determinados por una entrada de "relor . y el nuC\'O valor puede depender adicionalmente del estado lgico de la corriente del f1ip-nop y sus entradas de "control". Se puede construir un fl ip-flop a partir de una coleccin de compuertas que se conectan en fonna inteligente. como lo demostraremos en la seccin 7.2, Un circuito digital que contiene flip-flops se conoce CO nlO un circ iw sec ul.'l lciu l , porque su snlida en cualquier momento depende no slo de su corriente de entrada. sino tambin de la secuencia anterior de entradas que se han aplicado al mismo, En otras palabras, un circuito secuencial tiene memoriu (reeuerda) de los e\'entos pasados.

circuito (;(mbiruICio/lal
compum/l

OR

complll' n/l NOT m'usor

flip-flop estaJo

drcu ito U (. 'umda/

memoria

1.4 Aspectos electrnicos del diseo digital


Los circuitos digitales no son precisamente una versin binaria de sopa alfabt ica--con el debido respeto a la fi gura 1- 1 -, no tenemos ceros y unos pequeos flotando en tomo a Jos circuitos, Como veremos en el capItulo 3, los circuitos digitales manejan voltajes y corrientes analgicos y se fabrican a panir de componentes analgicos. La "abstraccin digital" pennile que el comportamiento analgico sea ignorado en la mayora de los casos. de manera que los circuitos puedan ser modelados como si en realidad procesaran ceros y unos,

Caprtulo 1 Introduccin

Figura 1-2 Valores lgicos y


mrgenes de ruido.

",argt rt dt ruido

~s~r:ific/lcj(Jlln

Un aspecto importante de la abstraccin digital es la asociocin de un in/ervalo de valores analgicos para cada valor lgico (O o 1). Como se iluslta en la figura 1-2, no se garantiza que una compuena tpica tenga un nivel de voltaje preciso para una salida que corresponde a! cero lgico. En lugar de ello, puede producir un voltaje dentro de un subintervalo del rango en el que se garantiza que va a ser reconocido como un O por las dems entradas de las compuenas. La diferencia entre las fronteras del intervalo se ronoce como el margen de ruido: en un circuito real, la salida de una compuerta puede corromperse debido a este roido excesivo, de cualquier forma su valor ser interpretado correctamente en las entradas de otras compucnas. Este componomiento es similar para 1115 salidas que corresponden 01 Ilgico. Ntese en la figur..l 1-2 que existe una regin invlida ent.re los intervalos de entrada par.. el Olgico y el 1 lgico. Aunque cualquier dispositivo digital que funciona a un voltaje y temper..ltur..l particulares tendr una fronter..l (o umbral) bastante bien definida entre ambos intervalos, otros dispositivos pueden tener diferentes fronteras. Ms an, todos los dispositivos que funcionan en fonna adecuada tienen sus fron teras en algun lugar en el intervalo "invlido'. Por tanto, cualquier seal que se encuentre dentro de los intervalos definidos para O y 1, ser interpretada en forma idtntica por diferentes dispositivos. Esta caracteristica es esencia! para la reproducibilidad de los resultados. La labor de un diseador de circuitos t'lUlrn;cos consiste en asegurarse que las compuertas lgicas produzcan y reconozcan las seales lgicas que se encuentran dentro de los intervalos apropiados. fute es un problema de diseo de circuitos analgicos: abordaremos algunos de sus aspectos en el captulo 3. No es posible disear un circuito que tenga el comportamiento deseado bajocualquiercondici6n de \'Oltaje de a!imentocin, temperatura, carga y otros factores. En su lugar, el diseador del circuito electrnico o fabricante del dispositivo proporciona ~s~cificacion~s que definen las condiciones bajo las cuales se garantiza el componamiento adecuado del dispositivo. Por consiguiente. un diseilador digital no necesita hurgar en detnlle en el comportanliento analgico de un dispositivo digilal para verificar que funcione correclamente. En vez de ello, solamente necesita examinar el ambiente de operacin del disposith'O para detenninar que est funcionando dentro de sus especificacione.<. En efecto, se necesita cierto conocimiento analgico para rea lizar este examen , pero ni an exagerando se compara con lo que flC(csitaria saber para disear un dispositi\'O digital partiendo desde cero. En el captulo 3 daremos justamente 10 que usted necesita.

Seccin 1.5

Aspectos de software del diseo digital

Figura 1-3
Una plantilla de diseo lgico.

1.5 Aspectos de software del diseo digital


El diseo digi tal tradicional no necesita involucrar a ninguna de las herramientas de soflware. Por ejemplo, la figura 1-3 muestra la herramienUl principal de la "vieja escuela" del disei\o digital: una plantilla de p]1.<lico que se utiliza para dibujar smbolos lgicos en diagramas esquemticos hechos a mano (el nombre del diseador se gmbaba en la plantilla con la punta de un cautfn). Sin embargo. en la actualidad, las hemmientas de software son una parte esencial del diseo digital. En efecto. la disponibilidad y la factibilidad de los lenguajes de descri pcin de hardware (HDL. por sus siglas en ingls) y las hemunientas de sntesis y simulacin de circuitos que los acompaan han cambiado todo el panorama del diseo digital duran te estos ltimos aos. Haremos un uso abu ndante de los lenguajes de descripcin de hardware (HDL) a lo largo de este libro. En el dile/jo asistido por computadora (CA D. por sus siglas en ingls) varias herramientas de software mejoran la productividad del diseador y le ayudan a perfeccionar la exactitud y calidad de los diseos. En un mundo competitivo, el uso de hefTllmiemas de software es obligatorio para obtener resultados de alta calidad en programas de trabajo agresivos. A continuacin se enumeran ejemplos imponantes de herramientas de software para el diseo digital :

disriW ruistitlo por computooQm (CAD)

Caplllra (Id diagrama tsqut mdtico. Para el diseador digital, ste es el equivalente de un procesador de texto. Pennite dibujar los diagramas esquemticos "en Unea", en lugar de hacerlo con papel y lpiz. Los programas de captura de diagramas esquemticos ms avanzados tambin verifican errores comunes, fciles de localiw, como son: salidas en corto, seales que no van a ninguna parte. y as.f sucesivamente. Tales programas se diSCUlirn con mayor detalle en la .seccin 11 . 1.2. HDL Los lenguajes de descripcin de hardware, originalmente fueron desarrollados paro modelar circuitos, en la actualidad se utilizan cada vez ms para el dis~;o de hardware. Ta m bi~n se pueden utilizar para disear cualquier cosa, desde mdulos de fu nciones individ uales hasta grandes sistemas digitales con mltiples microcircuitos o chi ps. Presentaremos dos lenguajes de descripcin de hardware AREL y tulo 4, y proporcionaremos ejemplos en ambos lenguajes VHDL, al final del capC en los siguientes captulos. HUfflmil!/IIlU de s(lIltsis. simufadort!s )' compifadort!s HDL Un paquete trpico de programas (software) HDL contiene varios componentes. En un ambiente tpico, el

10

Capftulo 1 Introduccin

diseador escribe un "progral1\l1" basado en lexlO. y el compilador HDL analiza el progrnma en busca de CI.IOI'CS de sintllXis. Si se compila eorrcctamcnte, el diseador tiene la opcin de entregarlo a una oc'ffiUllienw de sntesis que crea un diseo de cireuilo correspondiente enfocado a una tecnologa de hardware en panicular. Con ms frecuencia. antes de la sltesis. el diseador usar los resuhadcK del compilador como la entroda de un "simulador" para "erjficar el comportamiento del diseo. Simuladorr!s. E1 ciclo de diseo para un circuito integrado digiwl (que proviene de una oblea de silicio) es largo y costoso. Unn ....ez que se ha construido el primer circuito integrado es muy dilTcil. si no imposible. depurarlo mediame la realizacin de pruebas en sus conexiones internas (tstllS son realmcmepeolOttao), o modificar las compuertas e imerconcxiones. Por lo regulilT, los cambios deben hacerse en la base tic datOS del diseo original. Ypor lo tanto. se debe fabricar un nuevo circuito integrado o "chip" para incorporar las modificaciones necesaria.~. PuesIO que eslC plOCCSO puede durar meses, los diseadores de circuitos intcgr.ldos esu\n sumamente lTl()(ivados para "hacerlo correctamente" (o casi correctamente) al pri mer inlento. Los simuladores ayudan a los diseadores a predecir el componamiento elctrico y funcional de un chip. sin lener quc construirlo en realidad, no recooocieodo as la l1\l1yor pane. si no es que todos los errores. antes de iniciar la fabricacin del circuito. Los simuladores tambin se ulilizan en el diseo de "dispositivos de lgica programable", que estudiaremos ms adelante, y en el diseo total de sistemas que incorporan muchos componentes individ uales. Estos ltimos son menos crfticos porque es ms fcil para el diseador efectuar cambios en los componentes e interconexiones de una tatjela de circuito impreso. Sin embargo. lIun un poco de simulacin puede ahorrar tiempo al detectar errores simples pero estupidos. &mcos dI! prnl!oo.l...os diS~s digitales han aprendido cmO formalit.af la prueba y simulacin de circuitos en ambientes de software denominados "bancos de pruebas". La idea consiste en construir un conjunto de programas en tomo a un di!iCo, para ejercitnr de manet3 aUlOflltica sus funciones y verificar su desempeo y el manejo de las seales en el tiempo. Esto es especialmente til cuando se realizan cambios pequeos en el diseo: el banco de pruebas puede ulili7.arse para asegurar que lBS conecciones de los C:l IOICS o "mejoras" que se aplican en un rea no arruinen alguna otra Los progrumas de los lxIncos de pruebas pueden escribin>c en cl mismo lenguaje de descripcin de hanlware que utiliza cl diseo. en C o en C++. o en una combinacin de lenguajes incluyendo lenguajes de "scripts" como PERL. VuificDdoru y Dmdiwdorr!s dI! tl!mporiwein. La dimensin de tiempo es muy importante en el diseno digital. Todos los circuitos digitales necesitan tiempo para producir un nuevo valor de salida en respuesta a un cambio en la entrada. y gran parte del esfuerzo del diseador se emplea para asegurar que tales cambios en la salida suceda n con la rapidez suficiente (o. en algunos casos, no demasiado ropido). Los programas especializndos pueden automatizar las tediosas tareas de dibujar diagramas de tiempo. especifi car y verificar las relaciones de tiempo entn: las diferentes sci'lales que maneja un sistema complejo. Procl!sodof"l!s dI! pabm.s. No olvidemos el humilde editor de texto y el procesador de palubras. Estas heITllmientas obviamente son tiles en la creacin del cdigo fuente parn. los diseos basados en HDL pero tienen una aplicacin imponantc en todo diseno. la creacin de documentacin!

Seccin 1.5

Aspectos de software del diseo digital

11

m J 'p"ot J !por

12

Capitulo 1 Introduccin

Adems de utilizar las helT'.unientas anteriores, los disenadores en ocasiones pueden escribir programas especializados en lenguojes de alto nivel como C o C++. o scripts en lenguajes PERL para resolver problemas particulares de disenO. Por ejemplo, la seccin 10.1.6 nos proporciona un par de ejemplos de progrJ.mas en C que generan las "tablas de verdad" para funciones lgicas combinacionales complejas. Aunque las herramientas de CAD son importantes, por s solas no hacen o deshacen aJ discnador digital. Para tomar una analoga de otro campo. usted no se podra considerar un gran escritor solamente porque pueda mecanografiar rtipidnmente o porque sea muy hbil con un procesador de palabras. Durante sus estudios de diseo digital, asegrese de ap~nder y utilizar todas las herrnmientas que estn a su disposicin. tales como programas de edicin de diagramas esquemticos. simuladores y compiladores HDL. Pero recuerde que aprender a utilizar las herramientas no garantiza que usted sea capaz de producir buenos resultados. iPor favor, preste atencin ti lo que est generando con ellas!

1.6 Circuitos integrados


circuilo inlgmdv (el )

oblta

cUlulro

Una coleccin de una o ms compuertas fabricadas en una oblea de silicio se conoce como circuito mtgrado (CI) . Los CI de gran tamafto que contienen decenas de millones de transistores pueden medir media pulgada o ms por lado, mientras que los e l pequeftos pueden medir menos de una dcima de pulgada por lado. Sin tener en cuenta su tamao, un CI fonna parte en un principio de una oh/tu circular mucho ms grJnde. hasta de diez pulgadas de dimetro. que contiene docena.< de cientos de rplicas del mismo el. Todos los chips del e l en la oblea se fabrican al mismo tiempo como si fueran pizzas que se van a vender por rebanadas, excepto que en este caso, cnda pedazo (chip de CI) se conoce como un cuadro. Despus de que se fabrica l:1 oblea. los cuadros se prueban directamente sobre la oblea y se marcan los que presentan defectos. Posteriormente la oblea se rebana para prod ucir cuadros individuales y se descanan los que estn marcados como defectuosos. (Comprese con el cocinero de piztaS que vende todas las rebanadas, incluso aqullas sin suficiente pepperoni!) Cada cuadro sin marcar se monta en un encapsulado, y sus circuitos de: entrada/salida se conectan a las tenniTUlles del encapsulado: por ltimo, el el encapsulado se somete a una prueba final y se enva al cliente. Algunas personas utili7.!11t el tnnino "CI" para referirse a un cuadro de silicio, Algunos utilizan el vocablo "chip" para referirse a la misma cosa. Incluso otros hacen uso de "el" o "chip" para referirse a la combinacin de un cuadro de silicio y su encapsulado. Los diseftad ores digitales tienen la tendencia a emplear ambos trmi nos en forma indistinta, y en reaJidad no les inlporta de lo que estn hablando. No requieren de una definicin precisa. puesto que solamente tOllllln en consideracin el componamiento elctrico y funcional de estas cosas. En el resto de este libro. haremos uso deltnnino el para referimos a un cuadro encapsulado.

Seccin 1.6

Circuitos Integrados

13

Terminal!

TIfTTllnlI 20

Fi gu ra 1 -4 Encapsulados con terminales en doble Irnea (DIP, dual in-line pin): a) 14 terminales: b) 20 terminales: el 28 terminales.

Terminal8
~,

__ Terminal 11

,.,

'o,

En los primeros dfas de los circuitos integrados. los el se clasificaban por su tamao

(pequeos. medianos o grandes) de acuerdo con Jaeantidad de compuertas que contenan. El tipo m.~ sencillo de CJ que est disponible en el mercado todavfa se conoce como circuito de integracin a pequea escala (SSI. small-scale integro/ion) y contiene cl equivalente de I a 20 compuertaS. Los e l de integracin a pcquei\a escala contiene por lo regular un puado de compuertas o tlip-tiops, los bloques ba!;ICOS de construccin del diseo digital. Los e l de integracin a pequea escala que se utilizan en las prcticas de laboratorio (en los cursos de electrnica digital) vienen en un encapsulado de 14 tenninales en doble I(nea (D1p, dual n.finepin). Como se ilustnl en la figura l-4(a), la separacin entre las tCfTllinales en una columna es de 0.1 pulgadas y el csp3Ciado entre columnas es de 0.3 pulgadOlS. Los encapsulados DlP ms grandes incluyen funciones con ms tenninaJcs. como se ilustra en (b) y en (e). El diagrama de termillo/u muestro la asignoci6n de las scaJcsdel dispositivo con relacin a las tenninales del encapsulado. osa/idas. La figura 1-5 muestro los diagramas de terminales para tipos comunes de circuitos integrados SS!. Tales diagramas se utilizan solamente para referencia mecnica, cuando un diseador necesita determinar los nmeros de terminales para un CI en particular. En el di:tgnUlU1 esquemtico de un circuito digital. los
Figura

inusrot:idn a ~qut'ifa t'scala (551)

t'ncapsuJoOo dt' t'rmiTUlIt's t'n doblt' IInM (DlPJ

diagrama dt' lt' minalt'S Q saliclas

,-

,-s
"

Diagramas ele terminales para varios Cls SSI de la serie 7400.

,-

,~

" "
"

" , " "

"
" " "

" ,

"

" , " " " "

,- ,~

"

"
"

" "
,~

" "

"

"
"
"

"

14

Capitulo 1 Introduccin

1m

rotegid3.

)Q

:!Cho G aul

inltg mcidt! a mtdiana neala

j'nI~g roci""

a gro escala

(LSI)

diagramas de tenninales no se utilizan. En su lugar. las di\'e1'SaS compuertas se agrup:m de mancrn funcional. como lo mostrJremos en la seccin 5. 1. Aunque los CI SSl todav{a en ocasiones se uti liz.an como si fuernn un "pegamento" que mantiene unidos a los elementos de mayor escala en sistemas complejos. hlln sido sustituidos en gran parte por dispositivos de lgica programable (PLD. progrnmmable logic devices). los cuales estudiaremos en las secciO nes 5.3 y 8.3. Los siguientes e l que estn disponibles en fonnn comercial se denominan circuitos de imegracin a m ediana escara (MSI ) y contienen el equivnlente de aproximadamente 20 hasla 200 compuenas. En general. un e l de integracin a mediana escala contiene un bloque de construccin funcional. como es el caso de un decodificador. registro o contador. En los capftulos S y 8 pondn:mos tnfasis en estos bloques de construccin. Aun cuando el uso de e l discretos tipo MS I ha disminuido. los bloques de constr\lccin equivalentes se emplean exhaustivamente en el diseo de CI de mayor tamao. I..os e ls de inugrocin a gran acala (LSI. larg~-scole inl~grolion) son m4s grandes. contienen el equivalente de 200 a 200,000 compuertas o ms. Las partes LSI incluyen memorias pequeas. microprocesadores. disposit\'OS de lgica programable y dispositivos personalizados.

Imag 1 pro

llC<1 por

re h

Jtor

Seccl6n 1.7

Dispositivos de lgica programable

15

La Unea divisoria entre LSI y lo integraci6n a mlly gran escala ( VLSI, I'ery Jorgeseale. illle.gration) es difusa y tiende a defi ni~ en trminos de la cantidad de transistores

in/egracin o mlly gmn escolo (VUI)

en lugar de la cantidad de compuenas. Cualquier CI con ms de 1.000.000 de transistores es en definitiva un VLS I. esto incluye a In mayor pane de los microprocesadores y memorias que se fabri can aClualnlente: adems de los dispositivos de lgica programable de mayor uunao y los dispositivos personalizados. En 1999. se estllban diseando Cls de integracin a muy gran escala con la cantidad de 50 millones de transistores.

1.7 Dispositivos de lgica programable


Existe una amplia variedad de Cls que pueden tener sus funciones lgicas "programadas" en su interior despus de su fabricacin. La mayor parte de estos dispositivos utilil:lll una tecnologa que permite tambin su reprogramacin, lo que significa que si usted encuentro un eITOr en su diseo. puede ser capaz de arreglarlo sin reemplazar ffsicamente o volver a alambrar el dispositivo. En este libro, con frec uencia nos referiremos a los mtooos y opon unidades de diseo para tilles dispositivos. Histricamente, los arreglos de lgica programable. (PLA programmable logic armys) fueron Jos primeros disposith'os lgicos programables. Los PLA comenfnn compuenas ANO y OR con una estructum de dos niveles, con conexiones programables por el usuario. Haciendo uso de esta estructum, un diseodor poda adaptar cualquier funcin lgico hastn un cieno ni ..'el de complejidlld utilizando la bien conocida teorla de sntesis lgica y minimizacin que presentaremos en el capftulo 4. La estructura de los PLA sufri mejoras y su costo disminuy con la introduccin de dispositi\'os lgicos de arreglo programable (PAL). Actualmente, tales dispositivos se conocen en fonna genrica como dispositivos de lgica programable (PLD. programmable logie de'llices) y son los "MSI" de la industria de la lgica programable. Tendremos mucho que decir acerca de la tecnologa y arquitectura PLD en las secciones 5.3 y 8.3. La siempre creciente capacidad de los circuitos integrados cre una oponunidad para los fabricantes de e l pam disear PLD ms grandes pam aplicaciones mayores de diseo digital. Sin embargo, por rozones tcnicas que discutiremos en la seccin 10,5. la estructura bsica de dos niveles ANO-DA de los PLD no podra ser escolodo a mayores dimensiones. En su lugar. los fabricantes de e l s idearon arquitecturas complejas PW (CPW, complo: PW) para conseguir la escala requerida. Un CPLD es simplemente una coleccin de varios PLD y una estructura de interconexin, todo en el mismo chip. Adems de los PLD individuales. la estructura de interconexin del chip tambin es programobte. to que proporciono una amplia variedad de posibil idades de di.~ no . Lo.~ e PLD pueden ser escalados a tamaos ms grandes si se aumenta lo cantidad de PLD individuales y la complejidad de la estructura de interconexin en el chip e PLD. En fonna parnlelo a la m'cncin de los CPLD, otros fobricantcs de CI tomaron un enfoq ue di ferente para escalar el tamao de los chips de lgica programable, En comparacin con un ePLD. un arreglo de compuenas programable "in situ" (FPGA,fiddprogrammoble gate armys) contiene una cantidad bastante superior de bloques lgicos individuales de menor tamao. y proporciona una estructura de interconexin distribuida ms grande que domina tooo el chip. La fi gura 1-6 ilustra lo diferencia entre ambos enfoque s de diseo del chip.

arreglo de lgica programable (PU )

dispoSili,'O lgico de arreglo programable. (PAL) di.fpasI/im de Mgica

progmmable (PW)

PW complejo (CPW j

arreglo de (FPGA)

t:ompuer/a programable "in si/u "

16

Capitulo 1 Introduccln

PlO

PLO

PLO

PlO

1'1 9

pro

Ida por

X!'h S

Jlor

PLO

PlD

PlD

(. )
F i gura 1 -6

(b)

o .. bloque lgico

Enfoques de escalamiento para dispositivos de fgica programable de gran tamao: a) CPLD; b) FPGA.

Los defensores de un enfoque O del otro usaban argumentos "religiosos" para ver cul era mejor. pero el mayor fabricanle de dispositivos lgicos programables. Xilinx. lnc., reconoci que habfa sitio para ambos enfoques; por lo tanto. inici la fabricacin de las dos clases de dispositivos. Lo que eS ms importante que la arquitC(;tura del chip es que los dos enfoques soportan un estilo de diseo en el cual los productos pueden ir desde el concepto de l diselm hosUl el prototipo y la produo:.: in en un tiem po muy eono. El usa de los lenguajes de descripcin dehardware es muy importante en la ~uccin del -1iempo de comerciali7.acirl" para toda clase de productos basados en PLD. los lenguajes como ABEL y VHDL. as como las herrnmientas de software que los acompaan. penniten que un diseo sea compilado. sintetizado y de5cargadocn un PLD. CPLD o FPGA en pocos minutos. El poder de los lenguajes jerrquicos. altamente estructurados como VHDL. es especialmente imponante para ayudar a los diseadores a utilizar los cientos de miles o millones de compuenas que proporcionan los CPLD YFPGA de mayor tamao.

1.8 Circuitos integrados (CI) de propsitos o aplicaciones especficas


Tal vez los descubrimientos ms interesantes cn la tecnologa del e l para el diseftador digital promedio no son los siempre crecientes tamaos del chip. sino las siempre crecientes oponunidades para "diseftar su propio chip". Los chips diseados para un producto O aplicacin particular o limitada se denominan CI u mipersQna liZ/Jdos o CI de prop6sito especifico (ASIC. application .specific IC). Los AS IC generalmente reducen los componentes (Olales y el costo de fabricacin de un producto al reducir la cantidad de chips. el tamao fsico y el consumo de energfa. y a menudo proporcionan un desempeo ms elevado. El costo de la ingenierfa no rtcurrenff! (NRE. nonrtcurring engineering) para el diseo de un ASIC puede exceder el de un disefto discreto. por $5.000 y hasta $250.000 USD o ms. Los cargos de la NRE se reembolsan al fabri cante del el y a las empresas que son responsables de las siguientes actividades: diseno de la estructura imema del

CI stml~I"$(}nnliyulo CI d~ /lfJlicucin rs~r:(

fica (AS/C)

COSIO /I~

lo

;ng~ni~rfa

no

f"fillrrrme (NRE)

Seccin 1.8

Circuitos integrados (el) de propsitos o aplicaciones especificas

17

chip, creacin de las mascarillas de melal para fabricar los chips, desarrollo de pruebas parol los chips. y fabricacin de las primeras muestras del chip. El cOsto tpico de la NRE para un ASIC comn. de complejidad media. que incluye cerca de 100.000 compuenas es de $30.000 a $SO.OOO USO. Normalmente, el diseo de un ASIC tiene sentido slo cuando el costo de la NRE puede verse compensado por los ahorros por unidad sobre el volumen de venta esperado del producto. El costo de la NRE para el diseo de un chip ptrsorlaliuu/o de integracin a gnm escala LSI (cuyas funciones. arquitectura interna y diseo detallado a nivel transistor, se ajustan a los requerimientos de un cliente especfi co) es muy elevado, puede ser igual o mayor a $250.000 USO. De este modo, el diseo LSI completamente personalizado se hace slo para chips que tienen una aplicacin comercial general o que disfrutarn de un volumen de ventas muy alto en una aplicacin especffica (por ejemplo. un chip de reloj digital. una interfaz de red o un circuito de interfaz de bus para una PC). Para reducir los costos de la NRE. los fabricantes de circuitos integrados han desarrollado conjuntos de programas de celdas estndar que incluyen las funciones de los circuitos MS I que se utilizan con mayor frecuencia. como son los decodificadores. registros y contadores: y las funciones de circuitos LSI que se utilizan con ciena fre cuencia en las memorias. ~g los de lgica programable y micropnx:esadoltS. En un diseo de celda estndlJr , el diseador lgico interconocta las funciones en forma similar. como en cI caso de los chips mltiples MSIILSL Solamente se crean celdas personaliza das si es absolutamente necesario (con un costo adicional, por supuesto). Luego todas las celdas se depositan en el chip, se optimiza su ubicacin para reducir los tiempos de retar do de propagacin y minimizar las dimensiones del chip. Al minimizar el tamao del chip se reduce el costo unitario del mismo. puesto que ello incrementa la cantidad de chips que se pueden fabricar en una oblea de silicio. El costo de la NRE para un diseo de una celda estndar es de S 150.000 USO. Si bien, muchas personas pueden considerar que S 150,000 USO es una cantidad considcrablc, por lo tanto. los fabricantes de e ls han tomado un paso adelante al trasla dar la capacidad del diseo AS le a las masas. Un ar"'8/o de compuertas es un e l cuya estructura interna est fonnada por un llJTeglo de compuenas y en un principio no se especi fi can sus interconexiones. El diseador lgico especifica los ti pos de compuenas e interconexiones. Aun cuando el diseo del chip se especifica ~n este nivel bsico. por lo general el diseador ll'lIbaja con "macroceldas", que son las mismas funciones de alto nivel que se utilizan en el diseo de chip mltiples MSIILSI y en los diseos de celdas estndar. el software expande el diseo de alto nivel a uno de bajo nivel. La diferencia principal que existe entre el di seo de celda estndar y el diseo de arTeglo de: compuertas es que las maciOceldas y la disposiciII del chip de un am:g1o de compuertas !lO estn altamente optimizados como en el caso de un diseo de celda estndar. de modo que el tamao del chip puede crecer un 25% o ms, con el consiguiente aumentO en el precio. Adems. el enfoque de arreglo de compuertas no peimite la creacin de celdas pcrsonaJi:r.oo"s. Por otra pane, el diset\o con arreglo de compuertas puede terminarse con mayor rapidez y a un costo menor de la NRE. abarcando desde los $5.<XX> (lo que se haba dicho al principio) hasta S75,000 USO (el precio total cuando todo est terminado). Los mtodos bsicos de diseo digital que estudiaremos a lo largo de este libro se aplican muy bien al diseo funcional de ASIC. No obstante, existen oponunidades, restricciones y pasos adicionales en el diseo de ASIC, dependiendo del entorno de diseo y del proveedor panicular de ASIC.

!.SI ursorwliUJdo

u/das ~sldlldar

dist'ifo dt' Ct'fda t'Sldndor

a'l't'gfod~comput'ntU

18

CapItulo 1 Introduccin

1.9 Tarjeta de circuito impreso


/arjt'1/J dt' n;uitQ imprtSQ
( p eB)

/{/rjt'1lI de al"mbrmlo iml'fl'sQ(PWB )

pis/(lj tlt' la tarjt'1/I


rnilbinua
Uflt'ofina

It'cnologt(j dt mOnl"jt

:lupaficial (Sftrr)

m6dulo dt ellip mlriple


(M O l )

Nonnalmcnte un circuito integrado se instala en una /arjeltl dt circu;1O ;nr,,~so (pe B. primed.drcuit board) [o /arjtta de alambrado impl'f!.fO (P\\IB. printed-lI'iring btxlrd)] que lo conecta con otros circuitos integrados en un sistema. Las tarjetas de circuito impre.'iO de eapas mltiples (que se utili7.l1n en los sistemas digitales tfpicos) tienen pistas de cobre que estn grJbadns sobre varias capas delgadas de fibra de vidrio. las cuales estn laminadas fonnando una sola t:ujeta que tiene un espesor cercano ti 1/ 16 de pulgada.. En general las conexiones individuales de alambrado. o pisws de la tarjeta lle eirc/Jito impre:lo, son bnstan te angostas. nonnalmente tienen un espesor que va de 10 a 25 milsimas de pulgada. (Un mil significa la milsuna parte de untl pulgtida.) En ItI tecnologa de tarjetas de circuito impreso de Jfni!ll Jina. las pistas son extremadtlffiClIle estrechas. miden 4 mi lsimas de ancho. '1 la separacin ent re las pistas adyacentes es de 4 milsimas de pulgada. De este nlodo. se put.'<Ien realizar hasta 125 conex iones en una fra nja de una pulgado de oncho, en uno de los lados de una tarjeta de circuito impreso. Si se necesita una densidad de conexiones ms elevada, entonces pw.:den emplearse ms capas. Ln mayor parte de los componentes que se instalan en las tarjetas modernas de circuito lmolog)'). En impreso utili7.3n la lecnologa di! momaje slIperficial (SArr. :lurft,ce-/lWulIf 1 lugar de utilizar dispositivos con encapsulado DlP que lienen tenninales largas. las cuales se hacen pasar a travs de las perforaciones de la tarjeta y se sueldan en el lado inferior (lado de pistas) de la tarjeta.la.~ terminales de los dispositivos que tienen encapsulados tilXl SMT vienen dobladas paro. que hagan contacto con el lodo superior de In tarjcla de circuito impreso. Antes de montar estos componentes en la tarjctu. se aplica ulla "p!lStu especial' parJ soldaren las almohadillas de contacto que estn en la superficie de la tarjeta. Para esto se utili7.3 una pllllllla cuyo palrn de orificios coincide con las almohadillas de conlllCto (de ltl trujeta) donde se VlI a aplicar soldadura '1 la tenninal del componenteque se \la o soldar. Despus secolocan los componentes tipo SMT (yo sea en formo nlon ual o con In ayuda de una mquina especial) sob~ las olmohadillas. Los componentes se mantienen en su sitio grac i a.~ a la pasta de soldar{oen algu nos casos, mediante la aplicacin de un adhesivo). Por ltimo. el ensamble completo se hace posar a lmvs de un horno especial quc funde la pasta de soldar. la cual se solidifica cuando se enfria. El uso de la tecnologfa de componentes de montaje superficial, aunado a la tecnologa de tarjetas de circuito impreso de ]fnea fina. permite un empacamiento extremada mente denso de circuitos integrados '1 otros componentes sobre una tarjeta (PCO). Este empacamiento denso permite entre otras cosas. el ahorro de espacio. Par.! circ uitos que operan a velocidades muy ahas. esta densidad elevada de componentes pernlite la minimizacin de fen menos onalgicos tldversos. incluyendo los efectos de Ia.~ lineas de tmnsmisin '1 los limitaciones inherentes a la velocidod de la luz. Para satisfacer los requerimientos ms rigurosos de ve locidad '1 densidad. se han desarrollado mdulos de clti IIIlltiple:l (M eM. multidlip modllli!s). En esta ICCoologa. el cuadro (oblea de silicio) que corresponde o un e l 00 se monta en un encapsulado individual de cer.1mica o pllistico. Porel contrario. los cuadros de e l que integran un subsistema de olta \'elocidad (digamos. un microprocesador '1 su memoria CIlChL':) se unen directamente en un sustrato que contiene las interconexiones necesarios en fonna decapas mltiples. El Me M se sella hermticamente '1 tiene sus propias terminales externas paf"J alimentacin. tierro y las entradas y salidas de seal que requiere el sistemll que lo contiene.

Seccin 1.10

Niveles del diseo digital

19

1.10 Niveles del diseo digital


El diseo digital puede realizarse en diferentes niveles de ,epresentacin y abstrnccin.
Aunque se puede aprender y practicar el diseo a un nivel particular. de vez en cuando tendr que subir o bajar un nivel o dos para efectuar el tmbajo. Tambin, la industria misma y la mayoria de los diseadores se han desplazado a un riuno constante hacia mayores niveles de abstrnccin a medida que la densidad y funciooalidad del circuito se han incrementado. El nivel ms bajarle diseo es 13 fIsica del dispositivo y los procesos de fmcncin del el. Este nivel es responsable de los impresionantes av::ances en 1 3 densidad y velocidad del e l que hnn ocurrido en el trnnscurw de las d&-il(jos pm;'vJas. Los efectos de estos avnnces estn resumidos en la Ley de Moore. la cual fue establecida primero por el fundador de Intel Gordon Moore en 1965, e indica lo siguiente: la cantidad de tnlnsistores porpulgada cuadrada en un el se duplica cada ao. En aos recientes. la proporcin de avance ha disminuido paro. duplicarse aproximadamente cada 18 meses, pero es importante advertir que con cada

lLyd~

Muo"

duplicacin en la densidad surge tambin una duplicacin en la velocidad. Este libro no desciende hasta el nivel de la ffsica del dispositivo y procesos de fabricacin del CI. pero USled necesita recooocer la importancia de ese nivel. Es importante estar consciente de probables avances tecnolgicos y otros cambios en la planeacin del produclo y e! sistema. Por ejemplo, IDdisminucin en las di mensiones del chip (que se han logrado en tiempos recientes) han forzado a moverse o menores voltajes de alimentacin lgicos, provocando mayores combios en la monera en que los diseadores planean y especifican sistemas modulares y aClUalizaciones. En este libro, saltamos al diseo digital a ni"el de transislores y recom::mos lodo el camino hasta el nivel del diseo lgico utilizando HDL. Nos detenemos cerca del siguiente nivel, que induye el diseo de computadoras y e! diseo de un sistema total. El "centro" de nuestro estudio se encuentra en el nivel de los bloques funcionales de construccin. Para obtener un resu men previo de los niveles de diseo que cubriremos, considere un ejemplo sencillo de diseo. Supongamos que estnmos por construir un "multiple:a:or" con dos bits de entradas de datos, A y B, un bit de entrada de control S y un bit de salida Z. Dependiendo del valor de S. O o 1, el circuito transfiere el valor de A (o bien de B) a la salida Z. Esta idea se ilustra en el "modelo de interruptor" de la figura 1-7. Consideremos el diseo de esta funcin en varios niveles diferentes. Aunque en general el diseo lgico se realiza en un nivel ms elevado. en el caso de algunas funciones se obtienen ventajas adicionales si se aplica el diseo al nivel trnnsLstOf". El multiple:a:ores una funcin de esaclase.l..a figura 1-8 muestra cmo el multiplexor

A-~

'\ ...- z
B-~"':

s
Fi gura 1-7 Modelo de inlerruptor para funcin multiple:a:ora.

F i gur a 1 8 Diseno de un multiplexor utilizando compuertas de transmisin eMOS.

20

Capitulo 1 Introduccin

Ta bl a ' -1
Tabla de verdad para la funcin
multiplexora.

O O O O O I
O
I I I I I

O
I

O O
I I

O
I

O
O
I I

O
I

O
I

O
I

O
I

puede disearse aplicando la tecnologfa "CMOS", lacual utiliza estructuras especiaJi2ad3S de circuitos tmnsistorizados llamadas "compuertas de transmisin", que cstudillIemos
en la seccin 3.7.1. Aplicando este enfoque. e l multiplexor puede construirse con sola-

mente seis transistores. Cualquiera de los otros enfoques que describimos requiere de por lo menos 14 transistores. En el estudio tradicio nal del diseo lgico. utilizaramos una "tabla de verdad"
paro describi r la funcin lgica del multiplexor. Una tabla de verdad muestra todas las combinaciones posibles de valores de cnlJ"ada y los correspondientes valores de salida

para la funci n. PuestO que el multiplexor tie ne tres enlradas. tiene 2 3 o bien 8 posibles

combinaciones de entrada. como se ilustra en la tabla 1- 1. Una vez que tenemos la tab la de verdad, los mtodos de diseo lgico lradicionales. que se describen en la seccin 4.3. ulilizan el lgebra Boolc." ma y los algorilmos de minimizacin para obtener una ecuacin ..optima" AND-OR de dos niveles a panir de la tabla de ~'Crdad . Para la tabla de verdad del multiplexor. tendramos la siguienle ecuacin: Z=S' A +S, B Esta ecuacin se Ice " Z es igual a S c.:omplemenlo y A o S y B". Avanzando aun ms. podemos convenir la ecuacin en un conjunlo correspondieme de compuenas lgicas que realizan la funcin lgica especificada. como se muestra en la figura 1-9. Este circuilo requiere de 14 transistores si ulilizamos la lecnologfll eMOS estndar par.l. las cuatro compuenas moslrlldas. El multiplexores una funcin que se utiliza con bastame frecuencia. y la mayor parte de las lecnologfas de lgica digital proporcionan bloques de construccin predefinidos de multiplexores. Por ejemplo. el el 74x 157 es un chip M$I que realiza la multiplexin en enlradas de 4 bits en fonna simultnea. La figura 1- 10 corresponde a un diagrama lgico que muestra cmo podemos conectar precisrunc:me un bil de esle bloque de construccin de 4 bits paro resolver el problema. los nmc,os en color gris corresponden a la designacin de las tenninllles de un encapsulado DlP de 16 tenninaJes que contiene al dispositivo.
Fig u ra 1-9 Diagrama lgico al nivel de compuerta pal1i la funcin muHiplexora.
A

ASN
2

s
SB
B

Seccin 1,10
7411157

Niveles del diseo digital

21

S A

~G , s

3B " " 4A "

"

, lA , , , 2A 2.

lY 2Y 3Y
OV

z
Figur a 1 10

lA

"

Diagrama lgico para un multiplexor utilizando un bloque


de construccin MSI.

Tambin podemos realizar In funcin muhiplclIora como parte de un dispositivo de lgica progrnmable. Los lenguajes como ABEL nos penniten especificar salidas empleando ecuaciones booleanas semejantes a la de la pgina anterior. pero en general es ms conveniente hacer uso de elementos de lenguaje de "alto nivel", Por ejemplo. la tabla 1-2 muestra un programa ABEL para la funcin multiplexora. Las primeras tres lneas definen el nombre del mdulo del programa y especifican el tipo de PLD en el que la funcin se realizar. Las siguientes dos (neas especifican la designacin de tenninales del dispositivo para entradas y salida. La instruccin '~EN"' especifica la funcin lgica real en una manera que es muy fcil de comprender. aun cuando no hayamos estudiado ABEL tooavia. . Un lenguaje de ms alto nivel. VHDL. puede emplearse: para especificar la funci n multiplexora en una forma que es muy flex.ible y jerrquica. La tabla 1-3 muestra el programa VHDL de ejemplo para el mutiplex.or. Las primeras dos Ifneas especifican una ''bibli()(cca'' estndar y el conjunto de definiciones que se van a utilizar en el disei'io. Las siguientes cuallO lneas especifican solamente las entradas y sa1ida~ de la funcin. ocultando a propsito cualquier detalle acerca de la manera en que la fu ncin se lleva a cabo de manera intema. La seccin de "architecture" del programa especifica el comportamiento de la fu ncin. La sintaxis de VHDL requiere de cierta familiarizacin, pero la instruccin simple "when" nos dice bsicamente lo mismo que nos dijo la versin en ABEL En VHDL la "herramienta de srntesis" puede empezar con esta descripcin de compor-

IllXiule chaplm.lx
title 'Two-input multiplexer ex4mP1e'

Tabla Programa ABEL para el


multiplexor.

'-2

CHAPlMUX device ' P16V8'


A , B, S
Z

pm

1. 2, 3; pin 13 istype 'con' ;

equations
WHEN S O THEN Z A; ELSE Z B;

end chaplnux

22

CapItulo 1 Introduccin Tabla 13 Programa VHOl para el multiplexor.

library IEEE: use lEEE .stdLl ogic_ll 64 .al l ;


~1tity

Vchaplmux is
STD~IC ;

port ( A. B. S; in
Z:
end Vchap ll!D.lX

out STDJmIC ) ;

archi tecture Vchap1.nI..1JoLarch of vchapl.rmJx 1S


begin Z <_ A when S _ '0 ' else S;
end
Vchap~arch ;

tamiento y producir un circuito que tenga este comportamiento en una tecnologa de lgica digital de objetivo especfico. Al (orzar de manera explfcita la separacin de las definiciones de cntrada/salida ("entidad") y la reali2acin intema ('archiu:cturc'1. VHDL facilita la definicin de realiza ciones alternas de funciones sin tener que efcctuar cambios en otra pane de la jerarqufa del diseo. Por ejemplo. un diseador podra especificar una arquitectura alternativa y estructural para el multiplexor como se muestra en la tabla 1-4. Esta arquitectura es bsicamente un equivalente de texto del diagrama lgico de la figura 1-9. Avanzando un poco ms, VHOL es bastante poderoso como para fXllllitimos definir en fomla real las opernciones que modelan el comportamiento funcional a nivel u'J.nsistor (aunque no exploraremos tales capacidades en este libro). De este modo, podrfamos tenninar el ciclo escribiendo un programa VHDL que especifique una realizacin en el mbito dcltransistor del multiplexor- equivalente de la figura 1-8.
Ta bl a 14 Programa VHOl "estructurar para el multiplexor.

architecture Vchap~ate_a rch of signal $N. ASN . SB : STDJOOIC ;


begin
U1 ; llN (S , $N);
U2: AND2 (A, SN, ASN); U3 : AND2 (S , a, sa) ;

vchap~i~

U4: OR2 (ASN , SS. Zl ;

end vchaplmJx...gate_a.rch;

1.11 El objetivo del juego


dis,.o a nil'''/ /arj,. /a

dt cirrNito imprrso

Dados los requerimienlos funcionales y de rendimiento para un sistema digital, el objetivo del juego en el diseno digital prctico es minimizar costos. Pam dis~;os tl nivel tarjeta de circuilo imp~so (sistemas que se ensamblan en una sota trujeta de circuito impreso) esto implica minimizar el nmero de circuitos integrados. Si se requieren demasiados CIs, 00 cabrn todos en ll taJjeta. "Bien. simplemenle utilice una tarjeta ms grande". dirfa usted. Por desgracia. las dimensiones de las tarjetas estn restringidas por diversos factores. como es el caso de los estndares que existen en el mercado (p. ej. las

Seccin 1.12

Un paso adelante

23

tarjetas de sonido, controladoras o de video para las computadoras personales): restricciones en las dimensiones del ensamble (p. ej. la tarjeta de control que tiene que caber en el interiordellostador); o disposiciones que marca la superioridad (p. ej. a fin de obtener
la aprobacin del proyccto hace tres meses. usted to ntame nte le indic a su gerente que

todo ~1 diseo cabn'i en una tarjeta de 3 x 5 pulgadas. y ahora tiene que cumplirlo!). En cada ,uno de estos casos. el costo de usar una tarjeta ms grnnde o varins tarjetas puede ser una opcin inaceptable. En general. la regla consiste en minimizar el nmero de circuitos intcgrndos. aun cWlndo el COSIO del e l individual vare. Por ejemplo. un Cllfpico de SSI o MSI puede costar 25 centavos (de dlar), mientras que un pequeo PLD puede tcner un costo de un dlar. E.~ posible dectuar una funcin panicular con tres el 551 y MSI (75 centavos de dlar) o un PLD (un dlar). En la mayora de los casos. se emplea la solucin PLD de mayor precio. no porque el diseador posea una accin en la compaia que fabri ca Jos PLD, sino porque la solucin PLD utiliza menos rea de la tarjeta y tambifn es mucho ms fcil de modificar en caso que el diseilo tenga fallas. En el disetl0 AS/e. el objetivo del juego es un poco diferente. pero la importancia de las tcnicas de diseo funcionales y estructurndas es la misma. Aunque es fcil gastar horas y semanas creando macruceldas personalizadas y minimizando el conteo tOln! de compuertas de un AStC. esto es aconsejable slo en casos especiales. La ~ uc:cin del costo unitario que se consigue al tener un chip 10% ms pequeo es despreciable. excepto en aplicaciones de alto ,'olumen. En aplicuciones con volumen bajo a volumen medio (la mayorla de ellas). 6isten dos factores de mayor importancia: tiempo de diseo Ycosto de la NRE. Un tiempo ms cono de diseo pumilC que el producto llegue al mcrcado con mayor prontitud. incrementando los ingresos sobre la vida media del producto. Un costo ms bajo en la NRE trunbitn fluye directo a la "lnea inferior" y en pequeftas compaMas puede ser la nica manern en la que el proyecto pvcde terminarse antes que se agote el presupuesto de la compaa (icramclo, yo he pas,oo por eso!). Si el producto tiene fxito, siempre resulra provechoso "peUi7CIr" el diseo par.! reducir los costos unitarios. La nccesid3d de minimizar el tiempo de diseo y el costo de la NRE es un argumento a favor de un enfoque estructurndo al disci\o AS IC. en oposicin al enfoque altamente optimizado, utilizando bloques de construccin estndar que proporciona la biblioteca del fabri cante de AST e. Las consideruciones en el diseo PLD. CPLD y FPGA son una combinacin de lo anterior. En gcnernl. la seleccin de una tecnologfa PLD en panicular y la seleccin de las dimensiones del dispositivo se realiza al principio del ciclo de disei\o. Despufs. cuando el diseo se "ajusta" al dispositivo seleccionado. no vale la pena intentar optimizar el conteo de compuertas o el rea de la trujeta: el dispositivo ya se ha implementado. No
obstante. si nuevus funciones

tfistno ASfe

repamciones de errores llevan al dse~o m..~ all de la

capacidad del dispositivo seleccionado. es entonces cuando se debe lrabajar muy duro para modificar el disco de manem que lo haga funcionar en la forma adecuada.

1.12 Un paso adelante


Con esta seccin se termina el captulo de inttoduccin. A medida que contine la lectura del libro. deber recordar dos cosas. La primera. el principal objetivo del diseo digitnl es construir sistemas que resuelvan los problemas de las personas. Aun cuando este libro le proporcione las herr.tmientas fundamentales para el diseo, como p3r1e de

24

Capitulo 1 Introduccin
su trabajo usted deber conservar la "imagen general del entomo de diseo" en su mente. En segundo lugar. el costo es un factor importante en toda decisin de diseo: recuerde que debe considerar no slo el costo de los componentes digitales, sino tambin el de In actividad del diseo. Final mente, a medida que profundice ms y ms en el tex to, si encuentra algo que crea haber visto antes pero no recuerda dnde, por favor t:onsuhe el fndice. He intentado hacerlo tan til y completo como me ha sido posible.

Problemas propuestos
1. 1 1.2

1.3

lA
I.S
1.6

1.1

Sugicrn una imagen de mejor aspec10 parn colocarla en la pnl'TlCr.l pgina tic la siguientc edicin de este libro . Proporcionc tre$ diferentes definiciones para 13 palabra "bit" eomo se uti1i::a en este captulo. Defina loo; acrnimos siguientes: ASIC, CAD. CD, CO, CPLD, DIP, DVD. FPGA, BDL. el. IP, LSI, MCM, MSI. NRE, OK. PB X, PCB. PLD, PWB, SMT, SS!. VHDL. VI.s I. Invcstigue las definiciones de loo; acrnimos que se enumeran a continuacin; ABEI.. eMOS. JPEG. MPEG. OK. PERL. VHDL (En re:llidac.l OK es un 3C1' nimo?) Excluyendo los temas en la seccin 1-2, enumere tres sistemas que alguna "el hayan sido analgicos y que se hayan colwettido en digitales desde que usted est vivo. Dibuje un circuito digital compuesto de una compucna ANO dc 2 entradas y tres in"crsores. donde un inversor se ellCUentre conecl.3do a cada una de las entradas de la compueru ANO y su salida. Pata cada una de las cuatro posibles contbinaciOflCS de tnlrndas que se IIrllclI" a 1"5 dorr cn'"",",s pr1tn"OIlll de eSle ci",uilo. delcnnine ct valor producido ~ 1:1 salida primario.. Existe un circuito m4s sencillo que suministre el mismo componamiento de entr:ldalsalida? euAndo se deberan emplear loo; diagramas de terminales de la Ilgura I-S en el diagrama esqucmtico de un circuito?

ea p

3.S

y cdigos numricos

os sistemas dig itales se construyen a panir de circuitos inlegrados que procesan dgitos binarios (ceros y unos). aunque muy pocos problemas de la vida real estn basados en nmeros binarios o cualq uier tipo de nnleros en abso luto. Como resultado. un disei\ador de sistemas di gita-

les debe eslablecer cierta correspondencia entre los dgitos binarios que n los circuitos digitales y los nmeros. eventos y condiciones de la vida real.
de este caprlula es demostrarle a usted cmo las cantidades numricas es pueden representarse y manipularse e n un sistema digital. y cmo los ventos y condiciones no numricos tambin pueden representarse. lS primeras nueve secciones d escriben los s iste mas num ricos binarios y n cmo se llevan a cabo las operaciones de suma. resta. multiplicacin y diviestos sistemas. Las secciones 2.10 a 2. 13 indican cmo se pueden codificar 5 decimales, caracteres de texto. posiciones mecnicas 'j condiciones arbi ned iante el uso de cadenas de dgitos binarios. I seccin 2.14 presenta los "cubos n". los c uales proporcionan una ronna de IU' la relacin entre diferenteJI e udenas de bits. Los e u bos " son e speeilll_ liles en el estudio de los cdigos de deteccin de error en la seccin 2. 15. mos e l captulo con una introduccin ti los cdigos pant transmisi n 'j lamiento de datos de un bit a la vez.
~i lo

25

26

Capitulo 2

Sistemas y c6c1igos numricos

2.1 Sistemas numricos posicionales


S$lema l1uml rir:o
posicional peso () pondu acilI

El sistema numrico tradicional que aprendimos en la escuela y utilizamos todos los das en los negocios se conoce como un sistema numrico posiciol/al. En un sistcma de esta clase, un nmero se representa por medio de una cadena de dfgitos, donde cada posicin del dgito tiene un p~so asociado. El valor de un nmero es una suma ponderada de Jos dfgilos, por ejemplo:

1734 = 1 1000+7100+310+4]
Cada peso es una potencia de 10 quc corresponde a la posicin del dfgito. Un punto dtti mal pennite que se utilicen tanto potencia~ negativas como positivas de lO:

5 185.68 = 5 1000+ 1 100+810+51 +60.1 +80.0 1


En generol, un nmero O de la fonna ddo.d_d_2 tiene el valor

D = d.IO + do ' 100 + d_I IO-- + d_2' 10- 2


Aqu. el la se denomina la bau (miz. orig~n) del sistema numrico. En un sistema numrico posicional general. la base puede ser cualquier enlero ,:2': 2, Y un dgito en la posicin i tiene un peso l . La fonna de expresin de un numero en un sistema de esta clase ser
d~d~2 '

. ddO' d_d__ 2 . d_

donde existen p dfgitos a la izquierda del punto y n drgitos a la derecha de ste, llamado el pWIIO 1x,.It;, Si este pumo se omite, se upone que se encuentro a 111 derechll del dgito del extremo derecho. El valor del nmero es la suma de cada dfgilO multiplicado por el v:llor correspondiente de la base:

d gito dt; mUJQ' Ord~11 (Igito m4s sigllificatil'O dlg;/o dt; mt;rw, on/m

d(81/0 mt;llOS sigl1ificatil'iJ

d fg ito bil1llrio
bi/

btut; b inaria

Excepto por la posibilidad de tener ceros al principio o al final. la representacin de un nmero en un sistema numrico posicional es nica. (Obviamente, 0185 .6300 es igual a 185.63, y as por el eslilo.) El dgito que: est en el extremo i1.quicrdo en un nmero de este tipo se denomina el dgito (le mayo, onlen o d dgilO mds sigllifica/il'o: el que se encuentra en el e.xlremo derecho es cl d(gilO de mellororrlell o el dgito mellOS significotil'O. Como aprendimos en el capftu lo 3. los circuitos digitales lienen sei'lales que se encuentran normalmente en una de dos condiciones: bajo o alto, cargado o descargado, encendido (on) o apagado (off). Las sci'lales en estos circuitos se interpretan para repte-sentar d(gitos biliarios (o bits) que tienen uno de ambos valores, Oy l . De esle modo, la base biliaria se emplea normalmente pam representar nmeros en un sistema digital. La forma general de un nmero binario es

b~ lb~-') " ,b,bo' b-lb 2,, by su valor es

Seccin 2.2

Nmeros octales y hexadecimales

27

En un nmero binario, el punto base se denominn el punto binario. Cuando se trata con nmeros binarios y otros nmeros no dedmales, utilizamos un subfndice para indicar lo base de cada nmero, a menos que la base se sobreemienda en el comexto de trabajo. Ejemplos de nmeros binarios y sus equivalentes decimales se ilustran o continuncin.
1001 12 = 1 16+0 8 +0 4+ 12+ l ) .. 19 10 1000102 132+0 16+08+04+ ] 2 +0 1 = 34]0 101.00 12 :::: 14+0 2+ 1 1 +00.5+00.25+ 10. 125 = 5. 125 10

pUnfOhirwrio

El bit que est en el eXU'I::mo izquierdo de un nmero binario se conoce como el bit de mayor orden o el bit mds sjgtlifiCOIil'o (MSB, por las siglas en ingls de mosl significont bit): el bit que est en el extremo derecho es el bil de menor orden o bit menos significatil'Q (UB. least significant bil).

MSB
UB

2.2 Nmeros oclales y hexadecimales


La base lOes imponante debido a que la utilizamos en las

ove.aciones cotidianas, mienln1S

que la base 2 es importante porque los nmeros binarios se pueden procesar directa mente en los circuitos digitales. Los nmeros en otras bnses no se procesan directamente pero pueden ser importantes para documentacin u otros propsitos. En particular, las bases 8 y 16 proporcionan representaciones convenientes abrevindas para nmeros de mllltiples bits en un sistema digital. El sistemlJ ,U/mi rico octtll utili7..3 la base 8, miemras que el sistema numi rico hexadecimal emplea In base 16. La tabla 2- 1 muestra los enteros binarios desde Ohasta 1111 y sus equivalentes octal. clecimal y hexadecimal. El sistema octn1 necesita 8 dlgitos, de manera que utiliza los dlgitos del O al 7 del sistema decimal. El sistema hexadecimal necesita 16 dfgitos, de modo que combina los dfgitQS decimales del Onl 9 con las JetrnsA hasta la F. Los sistemas numricos octal y hexadecimal son tiles para representar nmeros de bits mllltiples, debido a que sus b;'scs son potencias de 2. Puesto que una cadena de tres bits puede tomarse en ocho diferentes combinaciones. se sigue que cada cadena de 3 bits puede representarse de manera nica mediante un dfgito octal. de acuerdo con la tercera y la cuarta columnas de la tabla 2- 1. De manera semejante, una cadena de 4 bits puede ser representada por un dgito hexadecimaJ de acuerdo con las columnas quinta y sexta de la tabla. De este modo, es muy fcil convertir un nllmero binario en octal. Comenzando desde el punto binario y viajundo hucia lo i7.quierda, simplemente separamos los bits en grupos de tres y reemplazamos cada grupo con el correspondiente dfgito octal:
l000 11 00 11 1~

$Sltmo numrico oc/(JI $bremo n/lmriC (J


huodn:imal

drgil(J$ haatcimalts

A- F

cOn>'t'nin de binClrio a

octal

:::: 10001 1 00 1 1102 :::: 4316g

1110110111010100 12 :::: 011 101 101 110101 00 12 "" 355651 8

El procedimiento para la conversin de binario a hexadecimal es semejante, excepto que utiliUlmos grupos de cuatro bits:
1 00011001 11 ~ ""

CQIII'er.sin de binflrio a ht'..lodtcimal

1000 1100 II I ~ ;;; 8CE]6

1110 11 01 110101001 2 :::: 0001 110 1 1011 1010 100 12 ... lDBA9 16

En estos ejemplos, hemos agregado libremente eeros a la izquierda pam hacer el nmero total de bils un mllltiplo de 3 o 4 como se requiere.

28

CapItulo 2 Sistemas y cdigos numricos


c.de". de 4 bIt.
0000

Tabla 2-1
Nmeros binarios, decimales, octales '1 hexadecimales.
Binario Declnvl
Oc ..,

HexIIC1Clmal
000

O 1 10
11 100 101 110 11 1 1000 1001
10 10

O 1 2
3

O 1 2

00 1 0 10 011 100 10 1 110 111

O 1 2
3

0001 00 10 00 11 0100 01 01
0110

,
7

,
4

, , ,
3
7

,
7 8 9
A

,
4

Oll l 1000 1001


10 10

8 9

10 11

10
11

10 11

"
13

10 11
1100
1101

11 00

lI or
\1 10
1111

"
13
14

"

" "
17

"

e
D E F

1110
1111

Si un nmero binario contiene dgitos a la derecha del punto binario. podemos

convertirlo a oclal o heltooecimaJ al comenzar por el punto binario y movemos hacia la de.ocha. Tanto diado izquierdo 00100 el derecho pueden rellenarse con ceros para obtener
miliplos de Ires o cuatro bits, como se muestra en el ejemplo que se presenfa a
continuacin: 10. 10110010 1) 2 =

010 . 101 100 101 lOO] = 2.54548


00 10 . 10110010 l OO;
::::1

2 . B2C 16

("(Im'U$Mn octal (J

Realizar la conversin en la. direccin inversa, partiendo de octnl o hexoclecimal hacia

ht'xad;mu/ a binaria

binario. es algo muy senci llo. Simple mente reemplazamos cada dgito octal o hexadeci-

mal con la correspondiente cadena de 3 o 4 bits, como se muestra a continuacin: 1357 8


=

001 01 1 101 111 2

2046. 178 = 010000 100 110 .001 111 2


BEAD 16 :: 1011 1110 1010 11012

9F.46C 16 = 100 1111 .0100011011002

byre (OC'ltlQ)

El sistema numrico octal fue bastante popular hace 15 aos debido a que ciertas minicomputadoms tenfan sus luces e interruptores frontales acomodados en grupos de tres. Sin embargo. el sistema numrico octal no se utiliza mucho en la actualidad. a consecuencia de la preponderancia de las mquinas que procesan bytes compuestos de 8 bits. Es dificil extraer los valores de byte individual en cantidades de bytes mltiples en

Seccin 2.3

Conversiones generales de sistema numrico posicional

29

Ilos je ut

la representacin octal: por ejemplo. cules son los valores en octal de los cualTO bytes de 8 bits en el nmero de 32 bits cuya representacin octal es 123456701238' En el sistema hexadecimal. dos dgitos representan un byte de 8 bits y 2n dgitos represen'an una palabra de n bytes: cada par de dgitos constituyen ell.actamente un byte. Por ejemplo. el nmero hexadecimal de 32 bits 5678ABCD lI; se compone de cuatro bytes con valores 56 16, 78 ,6, AB 16 YCD ,6 . En este contexto. un dgito hexadecimal de 4 bits se denomina a veces un nihble (medio byte): un nmero de 32 bits (4 bytes) tiene ocho nibbles. Los nmeros hexadecimales se utilizan con cierta frecuencia para describir un espacio de direccin de la memoria de la computadora. Porejemplo. una computadora con direcciones de 16 bits puede describir.;c: como que tiene memoria de lect ura/escritura instalada en las direcciones O-EFFF 16 y memoria slo de lectura en las direcciones FOO().FFI'16' Muchos lenguujes de programacin para computadoras ulili7.an el prefijo ''Ox'' para denolaT un nmero hexadecimal. por ejemplo. O xBFCOOOO .

nibble {mediobJle (JnU!dit) octeto'

prrfijo O x

2.3 Conversiones generales de sistema numrico posicional


En general, la conversin entre dos bases no puede hacerse por simple sustitucin: se requieren operaciones aritmticas. En esta seccin moslraremos cmo convenir un nmero en cualquier base a la base 10 Yvice\'Crsa. haciendo l1SO de aritmtica de base 10, En la seccin 2. 1. indicamos que el valor de un nmero en cualquier base est dado por la frmula

con'er:Jin de OOser
(J

decinwl

. _"

donde r es la base del nmero y ex isten p dgitos a la izquierda del punto base y 11 a la derecha. De esta forma. el valor del nmero puede enconlnUSC ni convenir cada dlgito del nmero a su equiva.lente en base 10, y expandir la fnnula utilizando arit~tica de base lO. A conlinuacin se proporcionan algunos ejemplos: ICES t6 ", 1. 163 .1 2. 162 . 14,16'.8 . 16", 7400 10 FIA3 16 '" 15 , 163 1. 162 10-16 1.3. 16 '" 61859 10 436,58 '" 4 .82 .3.8 '.6 .8.5 .8- 1 - 286.625 10 132.34 '" 1.42 +3 .4 1.2.4+3 ,4- 1 ", 30.75 10

30

Captulo 2 Sistemas y cdigos numricos


Un 3tajo paro convenir nmeros enteros a base 10 puede obtenerse al yol\'er a escribi r la fnnula de exp:trIsin de manera anidada:

frmula d~ rxpa"si" (" iduda

D = " ,dp- t) r+dp-v r + ... ) .. . r+dt )'r+do


Esto es, comenzamos con una suma de O : iniciando con el dfgito que est en el extremo izquierdo. multiplicamos la suma por r. y agregamos el siguiente dgito a la suma, repetimos este proceso hasta que todos los dfgitos hayan sido procesados. Por ejemplo, podemos escribir

F1AC" = ( 15)- 16 + 1)- 16 + 10)- 16 + 12


COfll"t'f"1 /" dI!! du/mal a

mur r

Esta frmula se emplea en algori tmos de conversin programados e iterativos (como los de la tabla 4-38 en la pgina 279). Tambin es el fu ndamento de un mtodo muy conveniente para convertir un nmero decimal D a una base r. Considere lo que ocurre si dividi mos la frmula entre r. Puesto que la pane entre parntesis de la fmlUla es igualmente divisible entre r, el cociente ser

Q = ( . .. dI-) r+d,.,...V r+ .. . ) r + tI
y el residuo ser do. De este modo, do puede: calcularse como el resid uo de la divisin larga de D entre r. Adicionalmente, el cociente Q tie ne la misma fomlU que la frmula original. Por lo tanto, divisiones sucesivas entre r nos proporcionan dfgitos sucesivos de D de derecha a izquierda, hasta que todos los dgitos de D hayan sido derivados. Acto seguido, se mueSlrlln ejemplos que ilustnm lo an terior: t79 + 2 ::: 89residuo 1 (LSB) +2 ::: 44 residuo I +2 ::: 22 residuo O +2 ::: 11 residuo O +2 = 5 residuo 1 +2 = 2 residuo I +2 = 1 residuo O +2 = 0 residuo I

(MS B)

467 + 8 = 58 residuo 3 (dfgito significativo menor) +8 = 7 residuo 2 + 8 = Oresiduo 7 (dfgito significat\'o mayor) 467 10 = 7238

34 17 + 16 = 213 residuo 9 (drgito signifi cativo menor) + 16 = 13 residuo 5 + 16 = 0 residuo 13 (dfgi to significati vo mayor) 3417 1O = 0 59 t6
La tabla 22 resume los mtodos para la conversin entre las bases ms comunes.

Seccin 2.3

Conversiones generales de sistema numrico posicional

31

Tabla 2-2 Mtodos ele conversin para bases comunes.


ComwsJn
Binario a Octat
H ~ndecimat

""odo
Susti ludn Sustitucin Suma

Ejemplo

101110110012 10 111 0 11 0012 "" 273 18 10111011001 2 101 1101 100 12 "" 509 t6 101110110012 1 - 1024 + O - 512 + 1 . 2S6 + 1 . 128 + I - 64 +0 - 32+ 1 - 16+1 - 8 + 0- 4 + 0 2+ 1 1 " 1497 10

De<:imaJ

Octal a Binario Susti tucin Sustitucin Suma 12J4s '" 00 1 0 10 0 11 I~ 1234" 00 1 0 100 11 10Ch . 00 10 100 1 l iGO:! 29C 16
I~

Hexadecimal Decimal
Hexadecimal Binario Octal

'" 1 - 512+2 - 64 + 3 8+ 4 1 '"' 668 tO

Sustitucin Sustitucin Suma

CODE L 6 - 1100 0000 1101 I II O:! CODE L6 1100 0000 1101 I I lO:! '"' I 100 000 011 0 11 I lO:! ., 140336s CODE L 6 _ 12 -4006+0 _2S+13 _16+14 . . 49374 1O

Decimal Decimal a
Binario

Divisin

108 10 +2-S4residuoO (LSB) +2 . 27 residuo O +2 ", 13 resid uo 1 +2 _ 6 residuo I +2 3 residuo O +2 ", I residuo 1 +2 .. Oresiduo 1 (MSB) 108 10
+

Divisin

8 . 13 residuo 4 (d' ilo menos significativo) +8 _ I residuo 5 +8. Oresiduo I (dfgi lo mAs signiJicath'O)

108 10 - 154,
H~adeci m1

Divisin

108 10 + 16_6 residuo 12 (dfgi lo menos significativo) +16 .. Oresiduo 6 (dlgilo m5 significativo)
108 1O 6C 16

32

Capftulo 2 Sistemas y cdigos numricos

Ta b la 2- 3
Suma binaria y tabla de
restas.

c~ ob(f\( O O O O
I I I I

y
O O
I I

e",
O O O
I

s
O
I I

bul
O
I

d
O
I I

O
I

O
I

O
I

O
I I

O
I

O
I

O
I I I

O
I I

O
O
I

O
I

O
I

O
I

2.4 Suma y resta de nmeros no decimales


La suma y la resUl de nmeros no deci males con el mtodo manual utiliza la mis ma tc!:cnica que aprendimos en la escuela primaria para los nmeros decimales; la nica trnmpa es que las tablas de suma y resta son diferentes. La tabla 2-3 es la tabla de suma y resta para dfgilos binarios. Paro. sumar dos nmeros binarios X y Y. sum:l.mos junIos los bits menos significativos con un 3C :ureO ini cial (e,... ) de 0 , producie ndo bits de acarreo (c....t) y de 5um3 (.1') de acuerdo con la tabla. Continuamos procesando bits de den:c:ha :1 izquierda. sumando el ac~o fuera de cada columna a la suma de la siguiente columna. Dos ejemplos de sumas decimales y los cOI'TeSpondienle5 sumas binarias se muestran en la figura 2-1 . 105 dgitos en negrita~ indican el acarreo de l . Los mismos ejemplos se repiten 3 continuacin junto con dos ms. con 105 3C3rrt:OS mostrados como un3 cadena de bits C:

,filma

billOn'/J

e
y

190
+14 1

101111 000 10111 110 + 10001101 101001011 011111110

e
x
y
X+ Y
173 + 44 217

00 1011 000 10101101 + 00101100

X+Y

33 1

11 01100 1

e
y

e
x
y
170

ooooooooo
+ 8S
2SS 10101010 + 01010101
11 111 111

127 + 63
190

01 111 111 00 111 11 1 101111 10

X+ y
rulo binorio minutndo Juslrumdo

X+Y

UI resta binaria se realiza de modo similar. empleando "prstamos" (b~t y b~) en lugar de acarreos entre pasos, y produciendo un bit de diferencia d, Dos ejemplos de res laS decimales y las correspondientes restas binarias se muestran en la fi guro 22, Como en la resta decimal. los valores del minuendo binario en las columnas se modifican cuan do se ~ nUl el prstamo. como se ilustra mediante las ftc:ch as y los bits que aparece n

Seccin 2.4
1 I 1 1

Suma y resta de nmeros no decimales


1
1 1

33

X
Y

190
.. 141

1 0 11 1 1 1 0
+10001101

x
y

x.r

331

1 010010 1 1

X,y

...
217

173

10 1 0 1 1 0 1

.. o o

1 100

11011001

FI9 ura 2-1

Ejemplos de sumas decimales y sus correspondientes.

en negritas. Los ejemplos de la figura se repiten a continuacin con dos ms, mostrando esta vellos prslamos como una cadena de bits B:

B
X 229

OOlllllOO

1110010 1
- 0010 1110

Y X-Y
B
X

- 46 183

B X Y
X- Y

011011010

210 - 109
101

11 0 10010 - 0 110 1JO I 0 1100101

1011011 1

01010101 0
170

B
X 22 1

ooooooooo
11 0 11 101

Y
X-Y

- 85
85

10101010 - 01010 10 1 0 101010 1

- 76
145

- 0 100 1100
10010001
comparuci6n l/~ mlmuos

x- y

Un uso muy comoo de la resta en computadoras es la comparacin de dos nmeros. Por ejemplo. si la operncin X - Y produce un prslamo (o lnlnsporte negativo) que procede
de la posicin del bil ms s ignificlltivo. enlonces X es menO(" que ~ de otro modo, X es OUIyor o igual que Y. La relacin entre acamos y prtstamos en sumadores y resmdores se explorar e n la seccin 5.10. Las tablas de suma y resta pueden desarrollarse para dfgitos octales y hexadeci males, o cualquier otro base deseada. Sin embargo. JXlCOS ingenieros en computacin se

molestan en memorizar eSlas tablas. Si usted necesita manipular nmeros no decillWles, entonces ser fcil en esas ocasiones convertirlos a formato decimal. calcular resultados.

DebI presta, l . pmdorlnlD lan..wlHtal0 - I . l


Clip" .. dIol 1>/' .,. P'W-''''''. _ 1*11 _ coII.orrnII " o - 1. de moda QUt dIIlemoI P'... tar de I'UIMI.
El ",""lamO ........ b.... c:t. .... ~ petlIiII9a'. "" I~
. . Kif.

Fi gur a 2-2
Ejemplos de restas decimales y sus COITespondientes restas binarias.

\ 00 .. 0 \1 (1M !lb f'i oocMo ......

. 11.. ~)

m",",,"""

229

X
y

210

110110 lo
01 1 01101 01100101

o 10 10

O 1 10 010

sustraendo
diferencia

r
X_ r

- 46
183

O O
1 O 1 1 O

O
1

- 109
101

X- y

34

Capitulo 2 Sistemas y cdigos numricos

suma 1r~.mdt!Cimal

y convertirlos de vuelta aira vez. Por otro lado. si debe realizar clculos en fonnalO bina rio. ocul o hexadecimal con bastante frecuencia. entonces deberla pedirle a Sanla Claus una calculadora hexadecimal para programadores de Texas Instruments o de Casio. Si las baterlas de la calculadora se agotan. puede utilizar algunos atajos mentales para facilitar la aritmtica no decimal. En general. cada suma (o resta) de columna puede hacerse al convertir los dfgitos de la columna a formato decimal . sumar en decimal. y posterionnente convenir el resultado a la suma correspondiente y dgitos de acarreo en la base no decimal (un acarreo se produce siempre que la suma de la columna es igualo mayor a la base). Puesto que la suma se hace en fonnato decimal. confiamos en nuestros conocimientos de la tabla decimal de adicin; la nica cosa nO\'edosa que necesitamos aprender es la conversin de dgitos decimales a no decimales y viceversa. La secuencia de pasos para sumar mentalmenle dos nmeros hexadecimales se muestra a continuacin:

e
X Y

e
E

1 1 o o 1 9 B 9"

1 1

o
11 14 25
16 +9

o
9 6
15 15

7 E 6"

+ 12
14 14
E

9 7
17

x+y

1 9 F"

16 + I

2.5 Representacin de nmeros negativos


Hasta ahora. solamente hemos tratado con nmeros positivos. pero existen muchas fonnas

de representar nmeros negativos. En los negocios utilizarnos el sistema de magnitud


con signo, que se discute ms adelante. Sin embargo. la mayor parte de las computadoras emplean alguno de los sistemas nunlricos de complemento que presentaremos posteriormente.

2.5.1 Representacin de magnitud con signo


sisttma de magnjlUd con

signo

bild, signo

En el sjs'~ma d~ magllilud con signo, un nmero se compone de una magnitud y de un sfmbolo que indica si la magnitud es positiva o negativa. De esta fonna, interpretamos los nmeros decimales +98, - 57. + 123.5 Y- 13 de la manera habitual, y tambin suponemos que el signo es "+" si no aparece ningn sfmbolo escrito. Ex.isten dos posibles representaciones de cero. "+0" y "-O", pero ambas tienen el mismo valor. El sistema de magnitud con signo se aplica a los nmeros binarios haciendo uso de una posicin de bit extra paro representar el signo (el bit dI! sjgno). Tradicionalmente. el bit ms significativo (MSB, por sus siglas en ingl6 de una cadena de bits es empleado como el bit de signo (O'" signo ms. I '" signo menos), y los bits de menor orden contie nen In magnitud. As, podemos escribir varios enteros de 8 bits con magnitud con signo y sus equivalentes decimales:
0101010 12 - +85 10 01111111 2 ", + 127 10 11010101 2 - -8 5 10 11111 111 2 '" - 127 10

000000002

'" +0 10

100000002 '" -OtO

Seccin 2.5

Representacin de nmeros negativos

35

El sistema de magnitud con signo tiene un nmero idntico de enteros positivos y negativos. Un entero de magnitud con signo de 11 bits est silUado dentro del intervalo que va desde _(2"-1_ 1) hasta +(2n-1_ 1) y existen dos representaciones posibles del eero. Ahora supongamos que deseamos construir un circuito lgico digital que sume sumador dt mclgn;lIuJ con nmeros de magnitud con signo. El circuito debe examinar los signos de los sumandos . signo para determinar qu hacer con las magnitudes. Si los signos son los mismos, debe sumar las magnitudes y proporcionar el resultado con el mismo signo. Si los signos son diferentes, debe comparar las magnitudes, reslat el mi'! pequeo del mayor y proporcionar al resultado el signo del ms grande. Todos estos "si" condicionales, "sumas". "restas" y "comparaciones" se traducen en una gran cantidad de circuitos lgicos complejos. Los sumadores para los sistemas numricos de complemento son mucho ms simples, como demostraremos a continuacin. Quizs la nica caracterstica que redime a un sistema de magnitud con signo es que, una vez que sabemos cmo construir un sumador de magnitud con signo. la fabri cacin de un restador de magnitud con signo es algo casi trivial: restador dt magnitud can signa solamente se debe cambiar el signo del sustraendo y pasarlo junto con el minuendo a un sumador.

2.5.2 Sistemas numricos de complemento


Mientras que el sistema de magnitud con signo convierte en negativo un nmero al cambiar su signo, un siSlema numirico de complemento convierte en negativo un nmero tomando su complemento como definido por el sistema. Tomar el complemento es ms diffcil que cambiar el signo, pero dos nmeros en un sistema numrico de complemento pueden sumarse o restarse directamente sin tener que realizar las verificaciones de magnitud y signo que requiere el sistema de magnitud con signo. Describiremos dos sistemas numricos de complemento, llamados el "complemento de base" y el "complemento de base reducida". En cualquier sistema numrico de complemento. normalmente lratamos con un nmero fijo de dfgitos, digamos n. (Sin embargo, podemos aumentar el nmero de dfgilos mediante "extensin de signo" como se muestra en el ejercicio 2.23. y disminuir el nmero mediante el truncamienlo de los drgitos de orden mayor como se muestro. en el ejercicio 2.24.) Suponemos adicionalmente que la base es r. y que 105 nmeros tienen la foona
D = dll_1d,,_z" d1do .
sisltma /l/un/rico d I' compltmtnw

El punto de base se encuentra a la derecha y por tanto el nmero es un entero. Si una operacin produce un resultado que requiera ms de 11 dfgitos, eliminamos el (los) dfgito(s) extra de mayor orden. Si un nmero O se complementa dos veces, el resultado ser D.

dgitos se obtiene al restarlo de r ". En el sistema numrico decimal, el complemento de base se denomina compf~ml!lI to dI! 10. Algunos ejemplos utilizando nmeros decimales de 4 dgitos (y resta de 10,(00) se muestran en la tabla 2-4. Por definicin, el complemento de base de un nmero O de n dgitos se obtiene al restarlo de r ". Si O se encuentra entre I y r" - 1, esta resta produce otro nmero entre I y
11

2.5.3 Representacin de complemento de base En un Jistt!ma d~ comp/~m~nlo de bau, el complemento de un nmero de

S;SIl'nW dI' compltml'nto de hast complt ml'nto a 10

36

Capitulo 2 Sistemas y cdIgos numricos

Tabla 2-4
Ejemplos de complementos de 10 V 9.

Nmero

Complemento . . '0
81 SI

Complemento

...
"50

184.
'2067

7933

7932

100
7

9900
9993

'899
9992

8 151

184'
10000 (.. O)

1848
9999

clculo 11e/ cQmplmlf"nto df" haSf"

," - l. Si D es O. el resultado de la resto. es r ~. lo cual tiene la fonna 100 ... 00, donde hay un lotal de n + I dgitos. Descanamos el dgilO extra de mayor orden y obtenemos el resultado O. Por consiguiente::. slo existe uno representacin de cero en un sistema de:: complemento de base. Parece de la definicin que una operacin de resta es necesaria para calcular el complemento de base de D. Sin embargo. esta resta puede evitarse al volver a escribir r~ como (r" - 1) + 1 Y r " - D como 1) - D) + l . El nmero' " - I tiene la fo rma mm .. mm. donde m I Y hoy" cantidad de m's. Por ejemplo. 10.000 es guol a 9.999 + 1. Si definimos el complemento de un drgito d como T - I - d. entonces (, " - 1) - D se obtie::ne medionte la complementacin de los dgitos de D. Por consiguiente. el complemento de base de un nmero D se obtiene al complemenl:tr los dgitos individuales de

=,-

," -

Tabla 2-5
Complementos de d fgito.

Comp/(ftnttnto Dgito 8ln.rlo


I

Oct.'
7

DtJclmal
9

HtJxlldeclmal
F

O
I

2
3

,
6
4

,
4

,
I

6 7

,
4 3

7 6

e
B
A

2
I

8
7

,
8
A

,
6 4
3 2
I

e
D
E F

38

Capitulo 2 Sistemas y cdigos numricos

resultado es vlido solamente si todos los bits descartados son iguales que el bit de signo del resultado (vase el ejercicio 2.24). La mayora de las computadoras y otros sistemas digitales utilizan el sistema de complemento a dos para represenlnr nmeros negativos. No obstante. para completar nuestro estudio. tambin describiremos los sistemas de complemento de base red ucida y de complemento a unos.

-2.5.5 Representacin de complemento de base reducida


siSlt m(l dt compltnltnlo de Ixut ,..d,cida complemenlo de 9s

En un sislemlJ de compltmemo de base ~ducida. el complemento de un nmero de " dfgitos D se obtiene al restarlo de ro - l. Esto puede conseguirse al complementar los dgilOs individuales de D. sin sumar l. como sucede en el sistema de complemento de base. En representacin dL"Cimal , esto se de nomina complememo de 9s; se proporcionan algunos ejemplos en la ltima columna de la tabla 2-4 de la pgina 36.

2.5.6 Representacin de complemento a unos


rompl..m"nlOa unOJ

El sistema de complemento de base reducida para nmeros binarios se conoce como el complememo a unOJ. Como en el complemento a dos. el bit ms significativo es el signo. O si es positivo y 1 si es negativo. De este modo hay dos representaciones del ct"ro. cero positivo (00 00) y cero negativo ( 11 11). Las R:~sentnc iones de los nmeros positivos son las mismas tnnto para el complemento a dos como para el complemento a unos. Sin embargo. l a~ representaciones de los nmeros negati\'os difieren por l . Un peso de -{2,,- t _ 1). en vez de _ 2.... 1 se otorga al bit ms significativo cuando se calcula el equivalente decimal de un nmero de complemento a unos. El intervalo de nmeros represenmbles va de -(2.... 1 - 1) hasta +(2,,-1- 1). Algunos nmeros de 8 bils y sus complementos de uno se muestran enseguida:

17 10 ""

000 10001 2

-99 1 0 = 1001 11002

U
III0111~ = - 17 \0

U
0 11 00011 2 = 99 10
-1 27]0

119]0 =

0 1110111 2

U
10001000 2 '" - 11 9\0

= 100000002 U
Ollll lllz = 127 10

010 =

(cero positivo)

U
11 11 11 11 2 :: 0 10 (cero negativo)

Las principales \'entajas del sistema de complemento a unos es su simetra y la faci lidad de complemenlacin. Sin embargo. el diseo del sumador para nmeros de complemento a unos es algo ms delicado que un sumador de complemento a dos (vase el ejercicio 7.72). Adems. los circuitos de deteccin de cero en un sistema de com-

En todo el libro. las secciones opcionales estn marcadas con un asterisco.

Seccin 2.6

Suma y resta de complemenlo a dos

39

plemento a unos deben verificar ambas representac iones de cero. o convenir siempre 11 llaoo OO.

2.5.7 Representaciones por exceso


nmero de sistemas diferentes para la representacin de nmeros negativos es enorme. pero existe una ms que debemos incluir. En la reprt!sl'ntacin de vcuso B. una cadena de /ti bits cuyo valor de entero sin signo es M(O S M < 2"')representa el enlero con signo M - B. donde B se denomina la tl'ndt!llda del sistema numrico. Por ejemplo, un sistema de exceso 2-1 representa cualquier nmero X en el intervalo de _2- La +2- L_ I mediante la representacin binaria de m bits de X + 2- I(que siempre es no negativa y menor que 2"'). El intervalo de esta representacin es exactamente la misma que en el caso de los nmeros de complemento a dos de m bits. De hecho. las representaciones de cualquier nmero en ambos sistemas son idnticas. excepto por los bits de signo. que siempre son opuestos. (Adviena que esto es verdad solamente cuando la tendencia es 2.... t .) El uso ms comn de las representaciones de exceso se encuentra en los sistemas numricos de punto flotante (vase la pane de Referencias).

sr. el

IllUlel rcia ;riSll ma dll.lClsO dl!:z--I

2.6 Suma y resta de complemento a dos


2.6.1 Reg las de la suma
Una tabla de nmeros deeimales y SUl> equivalenles en diferentes sistemas numricos. tabla 2-6. revela porqu se prefiere el complemento a dos en las operaciones aritmticas. Si comenzamos con 10002 (-8 10) Ycontamos de manera ascendente, vemos que cada nmero sucesivo de complemento a dos en todo el recorrido hasta 011 12 (+7 10) puede obtenerse medianle la suma de I al anterior. ignorando cualquier acarreo ms all de la posicin del cuarto bit. No puede decirse lo mismo de los nmeros de complemento a unos y de magnitud con signo. Debido a que la suma ordinaria es simplemente una exten sin del conteo. los nmeros de complemento a dos pueden sumarse mediante la suma binaria ordinaria. ignorando cualquier acarreo ms all del MSB. El resultado siempre ser la suma correcta s ie mp~ y cuando no se exceda el intervalo del sistema numrico . . Algunos ejemplos de suma decimal y las correspondientes sumas de complemento a dos de 4 bits continuan esto:

SUI1I(I

dr compll mt'nlQ a

do,

+3
+-14

00 11 + 0100

+7
+6

O1I I

-2 +-6 -8
+4

111 0

+ 10 10
1 1000 0 100 + 100 1

+ -3 +3

0110 + 1101 1001 l

+ -7 -3

1101

40

Capitulo 2

Sistemas y cdigos numricos


Tabla 2-6 Nmeros decimales y de 4 bits.
Oecltrlll(

CompMmento dos

Compl&mento

a unos

M.gnltud consigno

ExC..~ de

2"'-

-,
-7

-,
-4

1000 1001 1010


1011

1000 1001
10 10

0000
I JI I

1110
110 1

1100
1101
1110

\011

1100
10 11 1010

0001 00\0 00 11 0100


0 101 0110

-3
-2

1100
1101
11 JO

-1
O

11 1 I
0000

100 1
100000000

OJI I

111100000

1
2

,
3

,
6

0001 00\0 0011 0100


0101

000 1 00 \0 0011 0100


01 01

0001 00 10 00 11 0100
0 101

1000 100 1
1010

1011

11 00
1101

01 10
0 111

01 \O

01 10
0 111

1110
I I 11

0111

2.6.2 Una visin grfica


Otro manera de ver el sistema de complemento ti dos hace uso del "contador" de 4 bits que se ilustra en la figura 2-3 . Aqu hemos ilustrado los nmeros en una representacin circular O "modular". la operacin ele este contador imita muy de cerca la de un circuito

contador en limbos sentidos en la vida real. el cual estudiaremos en la seccin 8.4. Si

empezamos con la flecha que apunta ti cualquier nmero, podemos sumar +11 a ese nme
ro al conlar de manera ascendenle ti veces, es decir. moviendo la flecha
1X1OO
fI

posiciones

Figura 23 Una represenlacin


de conteo modular de nmeros de comple-

mento a dos de 4 bits.


Resta de

1101

00 "
-4

nmeros positivoS

1100
1011

0100
0 10 1

-7

1001

1Il0\l

0 111

Seccin 2.6

Suma y resta de complemento a dos

41

en el sentido de giro de las manecillas del reloj. Tambin es evidente que podemos restar 11 de un nmero al contar de rorma descendente n veces. es decir. al mover la fl echa n posiciones en semido contrario de las manecillas del reloj. Naturalmente. estas operaciones proporcionan resultados correctos solamente si 11 es 1 0 suficientemente pequef\o de modo que no cruce la discontinuidad que existe emre -8 y +7. Lo que es ms interesante es que tambin podemos restar ti (o sumar -n) al mover la fl echa 16 - ti posiciones en el sentido de giro de las manecillas del reloj. Ntese que la cantidad 16 - ti es lo que definimos como el complemento a dos de 4 bits de n. es decir. la representacin de complemento a dos de -no Esto apoya grnfi cameme nuestra afirmacin anterior. en la que un nmero negath'O en la representacin de complemento a dos puede ser sumado a otro nmero simplemente sumando las representaciones de 4 bits utiliz.ando la sumll binaria ordinaria. Sumar un nmero en la figura 2- 3 es equivalente a mover la flecha un nmero correspondiente de posiciones en ~m ido contrario al de las manecillas del reloj.

2.6.3 Desbordam iento


Si una operacin de suma produce un resultado que excede el intervalo del sistema numrico. se dice que ocurre un desbordamiento. En la representacin de conteo nl(xiular de la figura 2-3. el desbordamiento se presenta durante la suma de nmeros positivos cuando contamos pasando +7. La suma de dos nmeros con signos direrentes nuncn puede producir desbordamiento. pero In suma de dos nmeros de signo semejante puede hncerlo. como se mueSlrn en los ejemplos siguientes:
dt sbordam iento

-3
+ -6

1101 + 1010
1011 1 = +7 1(100 + 1000

+' +> + 11 +7 + +7 +14

-, + -,
-l.

-9

0 101 + 0 110 1011

-,
rt'g/os dt / desbonUunielllo

10000 = +O

0111 + 0111 1110 = - 2

Afonunndameme. existe una regla simple para delcctar el desbordamiento en la suma: una suma provoca desbordamiento si los signos de los sumandos son los mismos y el signo de la suma es direrente del signo de los sumandos. La regla del desbordamiento se establece en ocasiones en tnninos de acarreos que se genemn durante la operacin de suma: una suma provoca desbordamiento si los bits 'de acarreo de entrada cm! Yde salida co.al de la posicin del signo son direrentes. Un examen detallado de la tabla 2-3 en la p~ginn 32 muestra que ambas reglas son equivalentes: solamente existen dos casos donde cent ~ cM I Ystos son los dos nicos casos donde .l :::: y, y el bit de suma es diferente.

2.6.4 Reglas de la resta


Los nmeros de complemento a dos pueden restarse como si fueran nmeros binarios ordinarios sin signo. y pueden fomlUl~ reglas apmpioclas para detectar un desbordamien-

resta dt romp/t mt nlo


(1

dos

to. Sin embargo. la mayor parte de los circuitos de resta para nmeros de complemento a dos no realizan la resta en fonna directa. En vez de ello. hacen negativo el sustraendo tomando su complemento a dos y posterionnente lo suman al minuendo aplicando las reglas normales para In suma.

42

Capftulo 2 Sistemas y cdigos numricos


La negaci6n del sustraendo y su adicin al minuendo pueden llevarse a cabo con

solamente una operacin de suma como se explica a continuacin: realice un complemento bit a bit del sustraendo y sume el sustraendo complementado al minuendo con un acarreo de entrada (c en) de 1 en lugar de O. A conti nuacin presentamos algunos ejemplos:
1 _ cnI
->4
1 _ C..c

0100
- 00 11

0100

+3
- ->4 -1

0011
- 0100

0011
+ 1011
Illl
111 0 1

- +3
+1

+ 1100
1000 1
1 -

e...
-3
- -4
+1
11 0 1

e...

+3
- -4
+7

00 11
- 1100

00 11
+ 0011
0111

1100

+ 001 1
1000 1

El desbordamiento en lu resta puede detectarse mediante el examen de los signos del minuendo y del sustraendo compf~m~ntado, utilizando la misma regla que en la suma. 0 , empleando la tcnica de los ejemplos anteriores, se pueden observar los acarreos de entrada y de salida de la posicin del signo y detectar el desbordamiento, independientemente de los signos de entrada y salida, usando de nue\'a cuenta la misma regla de la suma. Un intento de hacer negativo el nmero negativo "extra" da como resultado un d~sbordamicn to de acuerdo eon las reglas anteriores, cuando ngrcgamos I en el proceso de complementacin:
-(-8):::- 1000= 0 111

+ 0001
1000 =-8

No obstante, este nmero todavfa puede ser utilizado en sumas y restas mientras que el resultado final no exceda el intervalo del nmero:

,
->4

1 _

e...

0100

+ -,
-4

+ 1000 1100

- -,

-3

1101

1101

- 1000

+ 0 111
10101

+'

2,6.5 Numeras binarios sin signo y complemento a dos


Puesto que los nmeros de complemento a dos se suman y restan sigu iendo los mismos algoritmos de suma y resta binaria bsicas que los nmeros sin signo de la misma longitud, una computadora u otro sistema digitnl puede usar el mismo circuito sumador para manejar nmeros de ambos tipos. Sin embargo. los resultados deben ser

Seccioo 2.6

Suma y resta de complemento a dos

43

inlerpretados de manera diferen te, dependiendo de si el sistema est tratando con nmeros con signo (por ejemplo. de -8 hasta +7) o con nmeros sin signo (por ejemplo. de O hasta 15). Presentamos una representacin grfica del sistema de complemento a dos de 4 bits en la fi gura 23. Podemos volver a etiquetar esa fi gura como se ilustra en la figura 2-4 paro obtener una representacin de los nmeros sin signo de 4 bits. Las combinaciones binarias ocupan las mismas posiciones sobre la rueda. y un nmero se suma moviendo la flec ha un nmero correspondienle de posiciones en el sentido de giro de las manecillas del reloj. y se resta desplaz.ando la fl echa en sentido contrario al giro de las manecillas de l reloj . Puede verse cmo una operacin de suma excede el intervalo del sistema numrico sin signo de 4 bits en la fi gura 2-4. cuando la flec ha se mueve en el sentido de giro de las manecillas del reloj a travs de la discontinuidad entre O y 15. En este caso se dice que ocurre un acar~o hacia afuera de la posicin del bit ms signifi cativo. Asimismo una operacin de resta excede el intervalo del sistema numrico si la flecha se mueve en sentido COnlrario al giro de las manecillas del reloj, a trav~s de la discontinuidad. En este caso se dice que se presenta un lraslada o prslamo ruera de la posicin del bit ms significativo. De la figura 2-4 tambin es evidente que podemos restar un nmero sin signo n al contar ~/I ~/l~III;do d~ las ma/l~cillal d~1 rrloj 16 - n posiciones. Esto equivale a sumar el complemento a dos de 4 bits de /l . La resta produce un prstamo si la suma correspon diente del complemento a dos no produce un acarreo. En resumen, en la suma sin signo. el acarreo o prtstatnO en la posicin del bit ms significativo indica un resultado fuera de intervalo. En el caso con signo que considera la suma de complemento a dos. la condicin de desbordamiento que se defini anteriormente indica un resultado fuera de intervalo. El acarreo desde la posicin del bit m! .. significativo es irrelevante en la suma con signo, ya que el desbordamiento puede o no puede ocurrir independientemente de que se presente o no un acarreo.

lIIm~ms

con sigilO I'S. nU/mms sin signo

acarrt:o

lroslodo o prisramo

0000
111 1 .. ____ 0001

FIgura 2-4
Una representacin de conteo modular de

o
11 01

0011 '2 4+ 0100


0101

nmeros sin signo de 4 bits.

Resta

1100 +
101 1

Suma

1000

44

Capitulo 2 Sistemas y cdigos numricos

' 2.7 Suma y resta de complemento a uno


Si analiza la tabla 2-6 encontrar la explicacin de la regla que indica cmo sumar nmeros de complemento a uno. Si co.menz.amos en 1 ~ (-7 10) y contamos en forma a~enden te . obtenemos un nmero sucesivo de complememo a unos al sumar 1 al anterior. excepto en la transicin de 1111 2 (O negativo) a 0001 2 (+1 10), Paro mantener el conteo apropiado, debemos agregar 2 en vez de 1 dondequiera que nuestro conteo rebase 1111 2, Esto sugiere una tcnica para sumar nmeros de complemento a uno: efectuar una suma binaria estndar. pero agregar un 1 extra cada vez que rebasemos 1111 2, El conteo que rebasa 111 12 durante una suma puede detectarse al observar e! acarreo de salida de la posicin de signo. Por lo tanto. la reglo para sumar nmeros de complemento a uno puede establecerse de manern muy simple:

suma dI! compll!mmto a lino

Realice una suma binaria estndar; si hay un acarreo de salida de la posicin de signo. agregue I al resultado.

acar"o de ~lkJndea final

Esta regla se conoce a menudo como acarreo de ~dondeo fi"al (e"d-around carry). A continuacin se presentan varios ejemplos de suma de complemento a uno; los ltimos tres incluyen un acarreo de redondeo final:

+3 +t4 +7
-2 + -5

0011

+ 0 100
0 11 1

t4 + -7
-3

0100 + 1000 11('"


0 11 0 1100

+5 + -5
-O

010 1 + 1010
1111

1101 1010

..,; + -3

-O

+-0
-O

11 11 + lIll 11110 + 1 1111

-7

10 111 + 1

+3

100 1 0 + 1

1000

0011

~sta

dt CQlfljlltmtn/Q a unus

Siguiendo la regla de suma de dos pasos. la adici n de un nmero y su complememo a uno produce un O negativo. De hecho, una operacin de suma que utiliza esta regla nunca producirn un O positivo, a menos que ambos sumandos sean O positivos. Como sucede en e! complemento a dos. la manera ms fcil de hacer la resta de complemento a uno es complementar e! sustraendo y sumar, l....ru; reglWi de desbordamien to para la suma y resta del complemento a uno son las mismas que para el complemento a dos. La tabla 27 resume las reglas que presentamos en sta y las secciones ameriores para la negacin. suma y resta en sistemas nu~ri cos binarios.

Seccin 2.8

Multiplicacin binaria

45

T a bl a 2 -7 Resumen de las reglas de suma y resta para nmeros binarios.

Sistema
numrico Sin signo

Reglas ele 111 SUmII

Reglas de 111 neg.cl6n

Reglas de 111 restll


Reste el sustraendo del

Sum:u los nmeros. El resultado se: No se :!plican. encuentra ruera de: intervalo si se present:! un acarreo fuera del MSB.

minuendo. El resultado se encuentra fucnl de intervalo si se prutnta un prstamo fuero del MSB. Cambie el bit de signo del sustraendo y proceda como en la suma.

Magnitud con signo

(mismo signo) Sume las magni tudes; Cambie el bit de signo del ocurre un desbordamiento si se nmero. presenta un acarreo fuera del MS B: el resultado tiene el mismo signo. (signos opuestos) Reste la magnitud ms pequea de la ms grande: el desbordamiento es imposible: el resultado tiene el signo de la ms grande. Sumar. ignorando cualquie r acarreo Complemente todos los de salida del MSB. Ocurre un desbor- bits del n mero ~ agregue dam iento si los acarreos de entrada I al resultado. y de salida del MS B son diferentes. si hay un acarreo fuera del MS B. agregue I al resultado. Se presenta un desbordamiento si los acamos de entrada y de salida del MS B son diferentes.
Sume~

Complemento a dos

Complemente todos los bits del sustraendo y sume: al min uendo con un acarreo inicial de 1. Complemente todos los bits del sustraendo y proceda como en el caso de la suma.

Complemento a unos

Complemente todos los bits del nmero.

*2.8 Multiplicacin binaria


En la escuela primaria aprendimos a multiplicar mediante la suma de una lista de multiplicandos trnsladados, que se calculaban de acuerdo con los drgitos del multiplicador. Se puede utili7.ar el mismo mtodo para obtener el producto de dos nmeros binarios sin signo. La fonnacin de los multiplicandos trasladados es trivial en la multiplicacin binaria. puesto que los nicos valores posibles de Jos drgitos del multiplicador son O y l . A continuacin presentamos un ejemplo:
mu/ljpljeacjdn con corrimiento y ,mw
mulliplicflcidn bil1f1rul :fin

signo

11 x 13 33 11 143

IO lI 110 I
1011 0000

multiplicando multi plicador multi plicandos desplazados

1011
101 1 100011 11

producto

46

Capitulo 2 Sistemas y cdigos numricos

pmduclO pmeial

En vez de listar todos los multiplicandos tr.lSladados y posterionnente SUlllar, en un sistema digital es ms conveniente sumar cada multipl icando trasladado corno si fuer.. creado para un producto portial. Aplicando esta tcnica al ejemplo anterior. se utilizan cuatro sumas y productos parciales para multiplicar nmeros de 4 biL~:

11 x 13

1011 ll O1

multiplicando multiplicador producto parcial multiplicando desplazado producto parcial multiplicando desplazudo producto parcial multiplicando desplazado producto parcia! multiplicando desplazado producto

0000 1011
01011 0000. 001011 101!!.!. 0110111 101 U,w 10001 111

mul,iplicacin con signo

mll/iplimcill (le compleml'nlo ti dos

En generJI, cuando multiplicamos un nmero de" bits por un nmero de lit bits. para expresar el producto resultante se requieren como mxi mo" + lit bits. El algoritmo de desplazamiento y suma req uiere "' productos y sumas parciales para obtener. el resultado, pero la primera suma es trivial. puesto que el primer producto parcial e." cero. Aunque el primer producto parcial tiene solamente" bits signifi cativos. despus de cada paso de suma, el producto parcial gana un bit significativo ms. ya que cada suma puede producir un acarreo. Al mismo tiempo, cada paso produce un bit de prodUCIOp3l'Cial adicional. comen7.ando con el que est ms a la derecha y cominuando hacia la Izquierda. que no cambia. El algoritmo de desplazamiento y suma puede realizarse mediantc un circuito digital que incluir un registro de corrimiento, un sumador y la lgica de control. como se ver en la seccin 8.7.2. La multiplicacin de nmeros con signo puede reali7.arse aplicando la multiplicacin sin signo y las reglas de escuela habituales: realice una multiplicacin sin signo de las magnitudes y haga el producto positivo si los operandos tienen el mismo signo. negativo si tienen signos diferentes. Esto es muy conveniente en sistemllS de magnitud con signo, puestO que el signo y la magnitud estn separados. En el sistema de complemento a dos. la obtencin de la magnitud de un nmero negativo y la conversin a negativo del producto sin signo son operaciones poco triviales. Esto nos conduce a buscar una manera ms eficiente de realizar la multiplicacin de complemento a dos, la cual se describe a continuacin. Conceptualmente, la nlUltiplicacin sin signo se realiza por medio de una secuencia de sumas sin signo de los multiplicandos trasladados: en cada paso, el desplazamiento del multiplicando corresponde a 1 11 ponderacin del bit multiplicador. Los bits en un nmero de complemento a dos tienen las mismas ponderaciones que en un nmero sin signo, excepto para el MSB. que tiene una ponderacin negativa (vta.-.e la seccin 2.5.4). De este modo, podemos realizar la multipl icacin de complemento a dos mediante una secuencia de sumas de complemento a dos (de multiplicandos despl azados), excepto para el ltimo paso, donde el multiplicando trasladado (que corresponde al MSB

Seccin '2.9

Divisin binaria

47

del multiplicador) debe convertin;e a negativo antes de sumarlo al producto parcial. Nuestro ejemplo anterior se repite a continuacin, en este caso el multiplicador y el multiplicando apareten como nmeros de complemento a dos:
x

-, -3

1011 1101

00000
11011 11 101 1

multiplicando multiplicador producto parcial multiplicando desplazado producto parcial multiplicando desplazado prodUC IO parcial multiplicando desplazado producto parcial multiplicando convertido a ncgativo y desplazado producto

ooooo!
1111011 1l0 ll H 11100111

00 IO,U
0000 1111

El manejo de los MSB es algo delicado porque ganamos un bit significativo en cada paso y trllbajamos con nmeros que tienen signo, Por consiguiente. antes de sumar cada multi plicando lJ'IlSladado y producto parcial de k-bils. los cambiamos a k + I bits significativos por extensin de signo, como se muestru en negritas en el desarrollo de la operacin. Cada suma resultante liene k + I bils 'i se ignora cualquier acarreo fuera del MSB <k la suma del k + l bit,

*2.9 Divisin binaria


El algoritmo ms simple de divisin binaria se basa en el mtodo de desplazamiento 'i re.ua que aprendimos cuando estudiamos en la primaria. La tabla 2-8 proporciona ejemplos de este mtodo pam nmeros binarios y decimales sin signo. En ambos casos, comparamos mentalmente el dividendo reducido con mltiplos del divisor para determinar cul mltiplo del divisor despla:r.ado se debe restar. En el caso decimal. primero elegimos 1I como el mayor mltiplo de II menor que 21 y luego elegimos 99 como el
d'isin di! di!spla:amii!lI/f) y rUI(I

dMsi6,/ sil/ sigilO

,.
11

)2 17
11 107 99

101 1

10011 )1 101 100 1

1011 0101
0000

1010
0000

cociente dividendo divisor desplazado dividendo reducido divisor desplazado dividendo reducido divisor desplazado dividendo reducido divisor desplazado dividendo reducido divisor desplazado residuo

Tabla 2-8 Ejemplo de divisin larga.

10100 1011 10011 101 I


1000

48

CapItulo 2 Sistemas y cdigos numricos

ftJhordlll/Jielllo de

d'isin dil'isi6n con signo

mayor mltiplo menor que 107. En el caso binario. la eleccin es m:is sencilla. puesto que las nicas opciones son cero y el mismo divisor. Los mlOdos de divisin parn nmeros binarios son un tanto complementarios a los mtodos de multiplicacin binaria. Un tpico algoritmo de divisin toma un dividen do de (ti + m ) bits y un divisor de n bits. para producir un cociente de m bits y un residuo de /1 bits. El llesborrlamie/l to de la divisin se presentar cuando el divisor sea cero o el cociente necesita ms de m bits para expresarse. En la mayora de los circuitos de divisin de las computadoras. /I = m . La divisin de nmeros con signo puede llevarse a cabo aplicando la divisin sin signo y las reglas habituales: eft.'Cluar una divisin sin signo de las magniludes y hacer el cociente positi\'O si los operondos tienen el mismo signo. y negativo si tienen signos direrentes. Se deberla dar al residuo el mismo signo que al dividendo. Como en el caso de In multiplicacin. existen tcnicas especiales para realizar directamente la divisin sobre nmeros de complemento a dos: con ciena rrecuencia se implementan estas tcnicas en circuitos de divisin para computadoras (v~anse las referencias).

2.10 Cdigos binarios para nmeros decimales


Aun cuando los nmeros binarios son los ms apropiados para los clculos internos de un sistema digital. la mayora de la gente prefiere trabajar con nmeros decimales. Como resultado. las interfaces externas de un sistema digital pueden leer o presentar nmeros decimales. y en realidad algunos dispositivos digitales procesan directamente nmeros decimales. La necesidad humana de represenlar los nmeros decimales no cambia la naturalel.a bsica de los circuitos electrnicos digitales; stos procesan las seHules que pueden tener uno de dos estados que llamamos Oy 1. Por tanto. un nmero decimal se representtl en un sistema digital mediante una cadena de bits. donde las diferenle.~ combinaciones de los valores de bits en la cadena rep resentan diferentes nmeros decimales. Por ejemplo, si empleamos una cadena de 4 bits parn representar un nmero decimal. podemos asignar la combinacin de bits 0000 al drgito decimal O , 0001 al 1. 0010 al 2, y asf sucesivamente. Un conj unto de cadena~ de" bits en el cual diferenles cadenas de bits represenutn diferentes nmeros u otras cosas se de nomina cdigo. Una combin3ci6n particular de valores de /1 bits se conoce como pafabra d e Clligo . Como veremos en los ejemplos de cdigos decimales en esta seccin. puede o no existir una relacin aritmtic3 enlre los valores de bils en una palabra de cdigo y lo que representa. Por eso, un cdigo que utiliza cadenas de " bits no necesita contener palabras de cdigo vlidas de 2". Como mnimo se necesitan cuatro bits para representar los diel. dfgitos decimales. Exislen miles y miles de millones de maner.lS diferentes para elegir 10 palabras de cdigo de 4 bits: sin embargo. la tabla 29 muestra los cdigos dcci lllale.~ mis comunes. Quizs el cdigo decimal ms "natuml" sea el decimal codificado e" billario (BCD), el cual codifica los dfgitos del O al 9 mediante sus representaciones binarias sin signo de 4 bits. desde 0000 hasta 100 1. Las palabras de cdigo restantes. de 10 10 a 1111. no se ulilizan. Las conversiones entre las representaciones BCD y decimal son triviales. implican la sustitucin directa de cuatro bits por cada dgito de<:imal. Algunos progrdmas de computadora coleenn dos dgitos BCD en un byte de 8 bits en la rep~sentacilI BCD

cdigo
pafabm de cdigo

dec jmol codificodo ~n binario {BCD }

repft'S(nllld6n BCD
enrf1(Jqueflufa

Seccifl 2.10

Cdigos binarios para nmeros decimales

49

Tabla 2-9 Cdigos decimales.


Dfglto decimal BCD (8421)

2421
0000 0001 0010 0011 0100
10 11

Exces0-3

B/quln.rlD
0 100001 0100010 0100100 0 10 1000 01 10000

1 de ID
1000000000 0100000000 0010000000 0001000000 0000100000 0000010000 000000 1000 0000000 100 00000000 10 0000000001

0000 0001 0010 0011

0011 0100
0 101 0 110 0 111

,
6

0 100
0101

1000 1001
1010 10 11

1000001
1000010 1000 100 1001000 1010000

OlIO
01 11

1100
1 101 1110

7
8
9

1000 1001

1111

1100

Palabras de ~igo sin utilizar


1010 1011 0101 011 0 0 111

0000 0001 0010


1 101

00000oo

OOOOOOOOOO 0000000011
0000000 101 0000000110 0000000111

000000 1 0000010 0000011


0000 101

11 00
11 01 1110 111 1

1000 11\01
10 10

l il a
1111

...

asf. un byle puede represenlar los valores desde Ohasta 99 en oposici6n al imervalo de Oa 255 para un nmero binario nonnal de 8 bils sin signo. Se pueden oblener los nmeros BCD con cualquier camidad de dgitos medianle el uso de un byte para cada par de dfgilos. Como sucede con los nmeros binarios. existen muchas representaciones posibles de los nmeros BCD negalivos. Los nmeros BCD con signo lienen una posici6n de dgito extra para el signo. Tanlo la represenlaci6n de magnitud con signo como las

~mfXlqu~tada :

50

Capitulo 2 Sistemas y cdigos numricos

suma BCD

represenlociones del complemento de 10 son populares. En BCD de magnitud con signo. la codi ficncin de la cadena de bit de signo es arbitrnria: en el complemento de 10. el J utoOOOO indica el signo ms y 1001 indica el signo menos. La suma de los dgitos BCD es semejame la adicin de nmeros binarios sin signo de 4 bits. excepto que debe hacerse una correccin si un resullndo excede 1001. El resullado se corrige agregando 6: como se mUe5trn en los siguientes ejemplos:

S + 9

010! + 1001 111 0 + 01 10 - correccin 1 0100


1000 + 1000 1 0000

S
9

0100

+ 010 1
100 1

l.
10+4
+

, ,

9 +9

100 1 + 1001

- 16

+ 01 10 - corl'ftcln 10 + 6
1 0110

l'
10+ 8

1 00 10 + 01 10 - correcc:ln
I 1000

c6digo pondtrodo

c6digo 8421 cMigo 242/ cMigo ouloromplt'ml!rllado

cMigo biquirwrio

Ntese que la suma de dos dgitos BCD produce un acarreo en la siguiente posicin de dgito. si la suma binaria inicial o la suma de factor de correccin produce un acarreo. Muchas compuUldof'Ull realizan aritmtica de BCD empaquetado aplicando instrucciones especiales que manejan la correccin de acarreo en forma automtica. El decimal codificado en binario es un cMigo ponderado. puesto que cada dgito decimal puede obtenerse a panir de su palabra de cdigo asignando un peso lijo n cada bit de palabra de cdigo. Los pesos para los bits BCD son 8. 4. 2 Y l. Y por esta raz6n el cdigo se denomina en ocasiones cdigo 842/ . Otro conjunto de pesos da como resullado el cMigo 242/ que se indica en la tabla 2-9. Este cdigo tiene la ventaja de que es autocomp/t'mellwdo. es decir. se puede obtener la palabro de cdigo para el complemen. to a nueve de cualquier dgito al complementar los bits individuales de la palabro de cdigo del dgito. La I:l.bla 2-9 muestra otrocdigo autocomplementado. el c&.ligode ~xt:eUJ 1. Aunque: este cdigo no est ponderado. tiene una relacin aritrnl!:tica con el cdigo BCD (la palabro de cdigo para cada dgito decimal es In correspondienle palabro de cdigo BCD ms 001 12), Como las palabras del cdigo siguen una secuencia de conteo binaria estndar. pueden hacerse fcilmente contadores binarios estndar para contar en el cdigo de exceso 3. como mostroremos en la figuro 8-37 (pg. 700). Los cdigos decimales pueden lener ms de cuatro bits; por ejemplo. el cdigo biqll;nario de la tabl a 2-9 utiliza siete. Los primeros dos bits en una palabra de cdigo indican si el nmero se encuentrn en el intervalo 0-4 o 59, mientrns que los cinco ltimos indican cul de los cinco nmeros en el intervalo seleccionado est represenlado. Una ventaja potencial que se obtiene al utilizar ms del nmero mnimo de bits en un cdigo es la propiedad de deteccin de errores. En el cdigo biquinario. si cualquier bit en una palabra de cdigo se cambia accidentalmente al valor opuesto. la palabro de

Seccirl2.11

Cdigo Gray

51

cdigo resuhante no representar un dfgito decimal y por consiguiente se puede sealar como un error. Fuera de 128 posibles palabras de cdigo de 7 bits. solamente 10 son vlidas y reconocidas como dgitos decimales: el resto se puede sealar como error. si es que aparecen. Un cdigo 1 de la. tal como el que se muestra en la ltima columna de la tabla 29. es la codificacin ms escasa para dfgitoS decimales. utilizando 10 de 1024 posibles palabras de cdigo de 10 bits.

c6digo I de /O

2.11 Cdigo Gray


En las aplicaciones electromecnicas de los sistemas digitales (taJes como herramientas mecnicas, sistemas de frenado para lIutomviles y f()(ocopiadoras) a veces es necesario que un sensor de entrada produzca un valor digital que indique una posicin mecnica. Por ejemplo, la figura 2-5 es un esquema conceptual de un disco de codificacin y un conjunto de contactos que producen uno de ocho valores codificados en binario de 3 bits. dependiendo de la posicin rotacional del disco. Las reas oscuras del disco se conectan a una fueme de seal que corresponde al I lgico y las reas claras no se conectan. lo que los contactos interpretan como un O lgico. El codificador de la figura 2-5 tiene un problema cuando el disco se coloca en cienas fronteras entre las regiones. Por ejemplo, considere la frontera entre las regiones 00 I Y 010 del disco: dos de los bits codificados cambian aquf. Qu valor producir el codificador si el disco se posiciona justo sobre la frontera terica'! Puesto que nos encontramos sobre el borde. tanlo 001 como 010 son aceptables. Sin embargo, ya que c:l ensamble mecnico no es perfecto. los dos contactos de la derecha pueden locar una regin "1", dando una lectura il'lCOlTCCtn de 011 . De igual forma. se puede obtener una lectura de 000. En general. esta clase de problema puede presentarse en cualquier frontera donde cambia ms de un bit. Los peores problemas ocurren cuando cambian los tres bits, como en las fronteras 000-111 y 011-100. El problema del disco codificado puede resolverse mediante la creacin de un cdigo digital en el cual solamente cambie un bit entre cada par de palabras de cdigo sucesivas. Un cdigo de esta clase se denomina c6digo Groy; la tabla 2-10 muestra un cdigo Gray de 3 bits. Hemos rediseado el disco codificado usando este cdigo como
111 000

cdigo Groy

Figura 2-5
Disco mecnico de
110

oo.
o
O

codificacin que utiliza


un cdigo binario de 3 bits.

'0'
.00
011

.. o

52

Capitulo 2

Sistemas y cdigos numricos

Tabla 2-' O
Una comparacin de cdigo binario de 3 bits y cdigo Gray.

Nmero declm./
O 1 2 3
4

Cdigo
binario
000

Cdigo

anoy
000

S
6

001 010 011 100 101 11 0 111

001 011 0 10 11 0 11 1 101 100

se muestra en In figura 2-6. Solamente cambia un bit del nuevo disco en cnda borde. de
modo que las leClUras de las lneas fronterizas nos dan un valor que est en cualquiera de los lados del borde. Existen dos maneras conve nientes de construir un cdigo Groy con cualquier nmero deseado de bits. El primer rmtodo est basado en el hecho de que el cdigo Gray es un c&.ligo "ft'jado; puede ser definido (y construido) de manera recursiva utilizando

las reglas siguientes:


l . Un cdigo Gray de 1 bit tiene dos palabras de cdigo. O y l. 2. Las primeras 2" palabras de cdigo de un cdigo Gra)' de (n + 1) bits son iguales a las palabras de cdigo de un cdigo Gray de n bits, escritas en orden con un O principal agregado.

3. Las ltimas 2" palabrns de cdigo de un cdigo Grny de (" + 1) bits son iguales a las palllbrns de cdigo de un cdigo Grny de n bits. pero escrilas en orden inverso con un I principal agregado. Si trazamos una lnea entre los renglones 3 y 4 de la tabla 2 10, podemos \'er que las reglas 2 y 3 son verdaderas para el cdigo Gray de 3 bits, Por supuesto, para construir un cdigo Grny de " bits para un valor arbitrnrio de 11 con este mtodo, tambin debemos construir un cdigo Gray para cada longitud ms pequea que 11 .
'00 000

Figura 26
Un disco mecnico de codillcaclfl que utiliza un cdigo Gray

10'

00'

de 3 bits.

o o ,

"'
11 0 0'0

011

Seccin 2.13

Cdigos para acciones. condiciones y estados

53

El segundo ml!:todo nos pennite derivar una palabra de cdigo (del cdigo Gray) de n bits directamente de la correspondiente palabra de cdigo binaria de n bits: l. Los bits de una palabra de cdigo binaria de 11 bits o cdigo Gray se numef".lfl de derecha a izquierda. desde Ohasta n- l. 2. El bit i de una palabra de cdigo del cdigo Gray es O si los bits i e i + 1 de la correspondiente palabra de cdigo binario son los mismos, si no el bit i es l . (Cuando j + 1 '" /1 , el bit n de la palabra de cdigo binario se considera que es O.)
De nuevo cuenta, el examen de la tabla 2-10 muestra que esto es verdadero para el cdi-

go Gray de 3 bits.

*2.12 Cdigos de carcter


Como mostrnmos en la seccin precedente, una cadena de bits no necesita representar un nmero y en realidad la mayor par1e de la infonnac in que procesan las computadoras no es numrica. El tipo ms comn de datos no numricos es el tato, cadenas de cameteres de algn conjunto de caracteres. Cada carcter es representado en la computador.! por una cadena de bits de acuerdo a una convencin establecida. El cdigo de caracteres ms comnmente utilizOOo es el ASCII (pronunciado ASSKI. American StallOOrd Cod~ for l/lforTlUltion InJ~n:"ange), el Cdigo EsUlndar Americano parn Intercambio de InfOfTll3Cin, por sus siglas en ingls. El ASCII epresenta cada carXtercoo una cv1ma de 7 bits, y produce un total de 128 caracta'CS diferentes. los cuales se indican en la tabla 2-1l. EJ cdigo cootiene el alfabdo en ma~ y nnsculas, nmeros. signos de puntuacin y diversos caracteres de control no imprimibles. De este modo. la cadena de texto ''Yeccch!'' est q:resentada por una tisIa de aspecto bastante inocuo de siete nmaos de 7 bits: 1011001 1100101 110001 I 11 000 11 11 0001 1 11 01000 0100001

l a tQ

ASCII

2.13 Cdigos para acciones, condiciones y estados


los cdigos que hemos descrito hasta ahora se emplean generalmente pru-a representar

cosas que usted probablemente considerarla como "datos" (cosas como nmeros. posiciones y caracteres). Los programadores saben que docenas de diferentes tipos de datos pueden ser utilizados en un solo progrolma de computadora. En el diseo de sistemas digitales, con frecuencia hallamos aplicaciones sin datos donde una cadena de bits debe emplearse para controlar una accin, parta sealar una condicin. o pura represe nlllr el estudo actual del hard wlU'C. Probable me nte e l tipo de cdigo ms comnmente empleado para una aplicacin de esta clase es un simple cdi go binario. Si hay n diferentes acciones, condiciones o estados, podemos representarlos con un cdigo binario de b bits con b '" log2 n1bits. (los simbolos 1indican la/uncin ucho, el entero ms pequeo mayor o igual que la cantidad encerrada entre ellos. De este modo, b es el entero ms pequeo tal que zb 2: n.) Por ejemplo. considere un simple controlador de semforos. Las seaJes en la interseccin de una calle en direccin nortesur (N-S) y una de este a oeste re- W) pueden estar en cualquiera de los seis estados que se indican en la tabla 2-12. Estos estados pueden estar cOOiticados en tres bits, como se muestra en la ltima columna de la tabla. Solamente seis de las ocho posibles palabrns de cdigo de 3 bits se utiliz.an, y la asignacin de las seis palabras de

r1

(uncin l~chQ

54

Capitulo 2 Sistemas y cdigos numricos


T abla 2 11 Cdigo Estndar Americano para Intercambio de Inlormacifl (ASCII), estndar No, X3.4+1968 del American Natlonal Standarcis Institute.

b"bsb4 (COlumna)
R.ngl6n
b,b~ l bo

(hex)

000 O

001 1

DIO
2

011

lOO

0000

o
1 2
l

NUL
SOH
STX

DLE
OC I OC2 OCl

SP

0001 0010 0011 01 00 01 01 0 11 0 0 11 1 1000 1001 1010


10 11

o
1
2 l

,
A

101 5
p

110

m
7 P
Q

ETX

,
4

EOT
ENQ

DO!

6 1 8 9

1100 1101
1110

A B C D
E

ACK BEL BS HT LF
VT
FF

NAK ' YN ErB CAN EM SUB ESC


FS

,
$

Q R

a
b

e
D
E

s
T U
V
W X Y

e
d

4
5

, , ,

,
1

e
f

6 1 8 9

G
H

v
w
X

,
j

Y
(

J
K

r
\

,
1
m n

,
1

<

CR SO
SI

1111

GS RS US

>

"
N

I
C&llgos de ((Inlrol

DEL

NUL
SOB

STX ErX EOT ENQ ACK BEL SS HT LF


VT
FF

CR

So
SI

SP

Nulo (Nul!) Comien1.odc: encabezado (Stan orheading) Comienzo de te~to (StarI of te~t) Fin de te~1O (End of te~t) Fin de transmisin (End oftnlll5 mi~ion) Pregunta (Enquiry) Admisin (Ackoowledge) Campana (Betl) Retroceso (Backspace) Tabulador oorizontal (Horizontal \ab) Avance de lenea (U ne: fc:ed) Tabulador "ertical (Vertical tab) Manee de p.1gina (Form feed) Retomo de carro (Carriage rc:tum) Corrimiento hacia fuera (Shift OUt) Corrimiento hacia dentro (Shift in) Espacio (Space)

DLE
OC I DC2 OCl

DO!

NAK SYN
E IB

CAN EM SUB
ESC

FS

as
RS US DEL

Escape de enlace de datos (Data link escape) Control de dispositivo I (Dc:vice control 1) Control de disposith'o 2 (Ocvice control 2) Control de disposili\'o J (Dc:vice control 3) Control de dispositivo 4 (Device rontrol4) Admisin negativa (Negati\'e 3Cknowledge) Sincrona (Synchroniu) Fin de bloque transmitido (End tnlIlsmitted block) Cancelacin (Cancel) Fin del medio (End of medium) Susti tucin (Substitute) Escape (Escape) Sc:pamdor de archivo (File sc:parator) Separador de: grupo (Groll p sc:parntor) Sc:pamdor de rc:gislfO (ReIrd sc:parotor) Separador de unidad (Unit !ic:parntor) Eliminacin o borrado (Dc:1cte or rubout)

Seccin 2.13

Cdigos para acciones, condiciones y estados

55

Tabla 212 Estados en un controlador de semforos.

Luces

E.t. do
NS siga NS espere NS alto EW siga E-W espere E-Walto

V-. NoS
ENCEN DII>O apagado apagado apagado apagado apagado

AIN,IIIo

N-5
apagado ENCEN
0100

Rofa N-5
apagado apagado ENCEN
0100 ENCEN 0100

v.....
E-W

AINrlllo
E-W

Rojo
E-W

P.,.bra
dec6dlgo
000

apagado apagado apagado ENCEN


0100

apagado apagado apagado apagado ENCEN0100

ENCEN
0100

ENCEN DlOO ENCEN


0100

001 010 100 101 110

.".godo
apagado apagado apagado

apagado apagado ENCEN0100

ENCEN
0100

apagado apagado

ENCEN
0100

apagado

cdigo elegidas 11 los estados es arbitraria, ele modo que muchas ()(r.1S codificaciones son posibles, Un diseador digital experimentado elige una codificacin particular para minimizar el costo del circuito o pw1I optimizar algn otro parmetro (como el tiempo de diseo: 00 hay necesidad de inlentar miles y miles de millones de posibles codificaciones). Otra aplicacin del cdigo binario se ilustra en la figura 2-7(a), Aquf.tenemos un sislema con n disposilivos, cada uno de los cuales puede realizar una accin en particular. Las caractersticas de los dispositivos son tales que pueden ser habilitados para funcionar solamente uno a la vez. La unidad de control produce una palabra de "seleccin de dispositivo" codificada en binario con r log 2 n1bits para indicar cul dispositivo se encuentra habilitado en cualquier tiempo. La palabra de cdigo selectora de dispositivo" se aplica a cada dispositivo. a su vez sta se compara con la "ID propia del disposith'O" para detenninar si se encuentra habilitado. Aunque sus palobras de cdigo tienen el mfnimo nmero de bits. un cdigo binario 00 siempre es la mejor eleccin para codificar acciones, condiciones o estados. La figura 27(b) muestra cmo controlar n disposith'os con un c6digo J de r1 , un cdigo de n bits en el cual las palabras de cdigo vlidas tienen un bit igual a 1 y el resto de los bits son iguales a O. Cada bit de la palabra del cdigo 1 de n se conecta directamente a la entrada de habilitacin del dispositivo correspondiente. Esto simplifica el diseo de los dispositivos. puesto que ellos ya no tienen ID de disposi. tivo; solamente necesitan un bit de entrada de 'habilitacin". Las palabras de cdigo ele un cdigo 1 ele 10 se indican en la tabla 29. En ocasiones una palabra "llena" de C eros puede inclum.e en un cdigo 1de/l, para indicar que ningn dispositivo se encuentra seleccionado. Otro cdigo comn es un c6Jigo I de n im~rtido. en el cual las palabras de cdigo vlidas tienen un bit Oy el resto de los bits son iguales a l . En sistemas complejos. puede emplearse una combinacin de las tcnicas de codifi cacin. Por ejemplo. considere un sistema similar al que se muestra en la figura 2 7(b). en el que cada uno de los n dispositivos contiene hasta J subdispositivos. La unidad de control pnxlucirfa una palabrd de cdigo de seleccin de dispositivo con un campo codi-

c6digo I de "

c6digo f dt n im'u tido

56

Capitulo 2 Sistemas y cdigos numricOS.

ele control

U""'"'

seleccin ele dispositivo codificado en binario

(.)

L racin

-"" R

ID," dispositivo

.!.ft
raei6n

ID," dispo5iIivo

oompo"

ID'"
di$pO$itivo

habilitacin del dispositivo Dispositivo

habilitadOn del dispositivo

""'"

habilitacin del dispositivo

"-""'"
n

"-""'"

se!eccl6tl del dispositivo codilieado en 1 ele

de_""
Uo_

habilitacin
(b) del dispositivo

habilitacin del dispositivo

habilitacin del dispositivo


Dispositivo
DisposillYo Dispositivo

F I 9 U r a 2 - 7 Estructura de control pata un sistema digital con n dispositivos: a) que utiliza un cdigo binario; b) que utiliza un cdigo 1 de n.

r
cdigo ni d~ 11

ficado de I de ti para .seleccionar un dispositivo. y un campo codificado en binario de 1 082 J'1bits para seleccionar uno de Jos J' subdispositivos del dispositivo seleccionado. Un cdigo m dI! 11 es una generalizacin del cdigo 1 de 11. en el cual las p.1labrns de cdigo vlidas tienen In bits iguales a I yel resto de los bits son iguales a O. Una palabra de cdigo In de 11 puede ser detectada con una compuerta ANO de entrada m. que produce una salida 1 si todas sus enlrndas son 1. Esto es simple y barato de hacer, adems. para la mayor pane de los wlores de 1/1. un cdigo 1/1 de n IIpicamente tiene palabras de cdigo mucho ms vlidas que un cdigo I de ti. El nmero lolal de palabras de cdigo est dado por el coeficiente binomial
) " Asf, un n- m . cdigo 2 de 4 tiene 6 palabras de cdigo vlidas y un cdigo 3 de 10 tiene 120. Una variacin importante en el cdigo m de 11 es el cdigo 8B I08 que se utiliza en el estndar Ethernet Gigabit 802.3z. Este cdigo emplea 10 bits patn represtntar 256 palabras de cdigo vlidas. o valor de datos de 8 bits. La gran mayorfa de las palabras de (n!

(n). el cualliene el valor I m m .'

c6digo 88/0B

cdigo utilizan una codificacin de 5 de lO. Sin embargo. puesto que ( 50) es slo 252, algunas palabras de 4 de 10 Y6 de 10 tambin se emplean paro completar el cdigo de una fonna muy interesante: se ver ms sobre esto en la seccin 2.16.2.

Seccin "2.14
10 o " o

Cubos n y distancia

57

0- - - - 0
O
Cobo ,

0- - -0
00
Cubo 2

01

"'0 ;.
O

,,/
o

110 o

111 o

0 1'/ o
o '00 o o 00'
C""" 3

'0
o
1

. 10,,7

,,,,

11 00

/
o
000

/ "

0000

o 0100

0001

o 0' 0l(

_ .

..7 "0'
'001

Figura 2-8 Cubos n para

n :: l , 2. 3y4 .

*2.14 Cubos n y distancia


Una cadena de 1/ bits puede visualizarse gcomt!tricamcnte. como un vbtice de un objeto llamado un el/ba n. La fi gura 2-8 muestra cubos 11 para n = 1.2.3. 4. Un cubo n tiene 2" vrtices. cada uno de los cuales se encuenlrn etiquetado con una cadena de n bits. Los bordes se dibujan de manero que cada vt!rtice sea adyacente a otros 11 vt!rtices cuyas eti quetas difieren del vt!rtice dado solamente en un bit. Ms all de 11 :: 4. los cubos 11 son realmente difciles de dibujllT. Para valores razonables de 11 . los cubos 11 hacen fcil la visualizacin de ciertos problemas de codificacin y minimizacin de lgica. Por ejemplo. el problema del disei\o de un cdigo Gmy de 11 bits es equivalente a enconlrar una tmyectoria a lo largo de los bordes de un cubo 11 . una trayectoria que visita cada vrtice exactamcnle una vez. Las trayectorias pam cdigos Gray de 3 Yde 4 bits se muestmn en la fi gura 2-9.
'110 111\

cubo /!

110
010 /

111

0 110

0 - -- ' o

i 011 ."" ! '-. _~ : -:: o

... < . .... ... .-.' - :;(:~?7 i .. ..


'

.. ' ..

Figura 2-9
Atravesando cubos n en orden de cdigo

Gray: a) cubo 3:
o

b) cubo 4.

/'00
o 000

00'

0 _ +...., 0
o

/ 101

y. . . .... .' 2
'

-+0001

...... .. ,
'

1001

001

0000

(.)

(b)

58

Caprlulo 2 Sistemas y cdigos numricos


Los cubos tambin proporcionan una interpretacin geomtrica paro el concepto de distllncia, tambin llamado distancia de Han/ming, La distancia entre dos cadenas de
11

dis/(mcia diSlUncia dt' lIamming

$Ubcubo m

"sin importancia"

bits es el nmero de posiciones de bit en las cuales difieren, En tnninos de un cubo n, la distancia es la mnima longitud de una trayectoria entre los dos vnices correspondientes. Dos vnices adyacentes tienen distancia 1: los vn ices 001 y 100 en el cubo 3 tienen distancia 2. El concepto de distancia es crucial en el diseo y comprensin de cdigos de deteccin de elTOres, discutidos en 1 .. siguiente seccin. Un .fllixlIbo m de un cubo 11 es un conjunto de 2'" vnices en el cual n - ni de los bits tienen el mismo valor en cada vnice y los m bits restanles se hacen cargo de todas las combinaciones restantes 2"'. Por ejemplo, los vnices (000, 01 0, 100, 110) forman un subcubo 2 del cubo 3. Este subcubo tambin puede indicarse mediante una cadena si mple, xxO, donde "x" indica que un bit en panicular es del tipo "sin imponallcia '"; cualquier vrtice cuyos bits coincidan en las posiciones no x penenece a este subcubo. El concepto de subcubos es particularmente til al visualizar algoritmos que minimi7,an el costo de las funciones de lgica combinacional. como mostraremos en la seccin 4.4.

' 2.15 Cdigos para detectar y corregir errores


t'rror {aUa {alla /empoml {alla permanelllr

Un error en un sistema digital es la alterocin de datOS a partir de su valor correcto a algn otro valor. Un error es causado por una/aUa fsica. Las fallas pueden ser temporales o pemanentes. Por ejemplo, un rayo csmico o una partcula alfa pueden ocasionar una fall a temporal de un circuito de menloria, cambiando el valor de un bit que est
al macenado en e lla . Dejar que un circuito se sobrecalicnte o que sufra una descarga de

"'Of/do de tfror moddo de error indt'/W'ldit'Ne

rrror simplt' t'rror mltiplt'

eJectricidnd esttica puede provocar una falla pemlanente, de tal manero que nunca vol\'er a funcionar en forma correcta. Los efectos que tienen las fallas en los datos se predicen mediante modelos de error. El modelo de error ms sencillo que considemremos aqu. se conoce como el nlQ(le/o de error independiente. Este modelo supone que solamente una falla fsica afecta a un bit de datos: se dice que los datos corrompidos solamente contienen 1111 error. Varias fallas pueden ocasionar errores mltiples (dos Om~ bits con error) pero nOrTll3.lmcnte se supone que la aparicin de errore.'I mltiples es menos probable que la aparicin de errores simples.

2.15,1 Cdigos de deteccin de error


Recordemos de nueslraS definiciones en la secci6n 2.10 que un cdigo que utiliza cadenas de 11 bits no necesita contener 2n palabras de cdigo vlidas; ciertamente ste es el caso paTlllos cdigos que ahoro eonsideromos. Un cdigo de deteccib/l de error tiene la propiedad de que la corrupcin o confusin de Un.1 palabra de cdigo probablemente producir::i una cadena de bits que no sea una palabra de cdigo (una "ti/abra de /lO c&ligo). Un sistema que utili ..,a un cdigo de detecci6n de error genera, transmite y almacena solamente palabros de cdigo. De este modo. los errores en una cadena de bits pueden detectarse mediante una regla simple: si la cadena de bits es una palabro de cdigo. se supone que es correcta: si es una palabr.l de no cdigo, entonces contiene un error. Un cdigo de 11 bits y sus propiedades de deteccin de error bajo el modelo de error independiente se explican fcilmente en tnninos de un cubo 11 . Un cdigo es simplemente un subconjunto de los vnices del cubo n. A fi n de que el cdigo detecte tooos

cdjgo dt' dt'ttccj~n (It' ermr fHllahm dt' 110 cdigo

Seccin 2.15
110

Cdigos para detectar y corregir errores


110

59

o
.. palabra de cdigo

10/

111

011 /

10/

111

011 /

* palabta de no cdigo

/ '00 / 10 000 00'


(.)

/ '00 / 000 00'


(b)

01

'

F ig ur a 2- 1 0 Palabras de cdigo en dos diferentes c6diOOS de 3 bits: a) distancia mlnima ;; 1, no detecta todos los errores
simples: b) dstancla

mlnlma = 2, detecta
lodos los errores

simples.

los errore.~ simples, ningn v6nice de palabra de cdigo puede estar adyacente a otro v6rtice de palabra de cdigo. Por ejemplo, la figuro 2- 1O(a) mues.ro un cdigo de 3 bits CQn cinco palabras de cdigo. La palabra de cdigo 1I 1 se encuentra adyacente a las palabra~ de cdigo 110, 0 11 Y lO l. Puesto que una ralla simple podrfa cambiar 111 a 110.01I o 101. este cdigo no detecta todos los errores simples. Si hacemos 111 una palabra de no cdigo, obtenemos un cdigo que tiene la propiedad de deteccin de errores simples. como se ilustra en (b). Ningun error simple puede cambiar una palabra de cdigo en otra. La capacidad de un cdigo para detectar errores simples puede establecerse en lnuinos del concepto de distancia que se present en la seccin anterior:

Un cdigo detecta todos los errores simples si la distancia m/rima entre todos los pares posibles de palabras de cdigo es 2.

distancia mi"imtl

En general. necesitamos n + I bits para construir un cdigo de deteccin de errores simples con 2" palabras de cdigo. Los primeros 11 bits de una palabra de cdigo. llamados bits de infonnilcin, pueden ser cualquiera de las 2" cadenas de n bits. Para obtener un cdigo de mnima distancia 2. agregamos un bit adicional. llamado bit de paridad. que se establece a Osi hay un nmero par de unos entre los bits de inronuacin. y 1 de otro modo. Esto se ilustra en las primeras dos columnas de la tabla 2-13 para un cdigo con tres bits de inrormacin. Una palabra de cdigo vlida de (n + 1) bits tiene un numero par de unos. y eSle cdigo se llama cdigo dt> paridad par. Tambin podemos construir
Bfts de
InfonMcl6n

bit d,. infonnacin hit dI! Pllridad

cdigo dt paridad par

C6dlgode NIrldad par

CdIgo de parldlld lmMr

Ta b la 2 -13
Cdigos de distancia 2 corr tres bits de
informacin.

000 00 ' 010 011 '00

0000 001 1
010 1 0110

000 , 0010
0100 011 I

' 00 1
1010 110 0

' 000
10 1 I 1101 111 O

10' '10
111

111 I

Seccin 2.15

Cdigos para detectar y corregir errores

61

transmiti mos palabras de cdigo y asumamos que las fallas afe<:tan como mximo un bit de cada palabra de cdigo recibida. Entonces una palabra de no cdigo recibida con un error de 1 bit estar ms cerca de la palabra de cdigo (que se transmiti originalmente) que de cualquier otra palabra de cdigo. Por consiguiente. cuando recibimos una palabra de no cdigo, podemos comgirel error cambiando la palabra de no cdigo a la palabra de cdigo ms cercana. como indican las fl echas de la figura . La decisin que implica saber cul palabra de cdigo se transmiti originalmente para producir una palabra que se recibi se conoce comodecodificDci6n. yel hardware que hace posible esto es un dt!eodifieodorde cOlTCCcin de errores. Un cdigo que se utiliza para corregir errores se denomina cMigo de cor~ecin de uro"s. En general. si un cdigo tiene una distancia mfnima de 2c + l. puede utilizarse para corregir errores que afecten hasta c bits (e = 1 en el ejemplo anterior). Si una distancia mfnima de cdigo es 2c + d + 1, puede emplearse para corregir errores en hasta c bits y detectar elTOres hasta en d bits adicionales. Por ejemplo. la fi gura 2- 12(a) muestra un fragmento del cubo n para un cdigo con distancia mfnima 4 (e "" l . d "" 1). Los errores de un solo bit que producen palabras de no cdigo 00101010 Y 11010011 pueden corregirse. No obstante, un error que produce 10 1000 11 no puede corregirse, porque ningn error de un solo bit puede producir esta palabra de no cdigo. y cualquiera de los dos errores de 2 bits podra producir esta palabra. De modo que el cdigo puede detectar un error de 2 bits, pero no puede corregirlo. Cuando se recibe una palabra de no cdigo, no sabemos qu palabra de cdigo se transmiti originalmente: solamente sabemos cul palabra de cdigo se encuentra ms cercana a lo que hemos recibido. Asf. como se muestra en la fi gura 2-12(b), un error de 3 bits puede "corregirse". La posibilidad de hacer esta clase de equivocacin puede ser aceptable si los cnurcs de 3 bits lienen muy poca probabilidad de ocurrir. Por otro lado, si estamos interesados en los errores de 3 bits. podemos cambiar la polftica de decodificacin para el cdigo. En lugar de intentar corregir errores. nicamente seiblamos todas las palabras de no cdigo como errores incorregibles. De este modo. como se muestra en (e). podemos utilizar el mismo cdigo de distancia 4 pam dete<:tarerrores hasta de 3 bits. pero corregiremos los no errores (e '" O , d '" 3).

correcci6n de error

decodificoci6n decodificador cdigo de correccin de t'rrores

2.15.3 Cdigos de Hamming


En 1950, R. W. Hamming describi un mtodo general para construir cdigos con una distancia mnima de 3, que ahora se conocen como cdigos de Hamming. Para cualquier valor de i, su mtodo producira un cdigo de (2; - 1) bits con i bits de verificacin y 2' - 1 - i bits de infonnacin. Los cdigos de distancia 3 con un nmero ms pequeo de bi ts de informacin se obtienen al eliminar bits de informacin de un cdigo de Hamming con un nmero ms grande de bits. Las posiciones de bits en una palabra de cdigo de Harnming pueden numerarse desde 1 hasta 2/- l . En este caso. cualquier posicin cuyo nmero sea una potencia de 2 ser un bit de verificacin. y las posiciones restantes sern bits de infonuaci n. como se
rodigo dt Hammin8

1m JC' prol 'Jlda pe. d '"'~

lO

62

Capitulo 2

Sistemas

y cdigos numricos
errores de 2 bits detectables

(.)

001010 10

11010011

10100011

00100011

1110001 1

' - - errorel de 1 bit CO!"l"eOiblel -~'

Figura 212 Algunas palabms de cdigo y palabras de no cdigo en un cdigo de distancia 4 , de e bits: al correccin de errores de 1 bit V deteccin de errores de 2 bits; b) correccinincorrecta de un error de 3 bits; ausencia de correccin de errores pero deteccin de errores de hasta 3 bits.

(o)

00 10101 1

.-

\ "" "-

todos los errores . / de 1 a 3 bits son detectables

"" /

11000011

nwtri: dI! l"l!rificacilI dI! pandad

especifican medillnle una matriz. di' vuificadlI de paridad. Como se muestro en la figura 2 13(a). cada bit de verificacin se agrupa con las posiciones de informacin cuyos nmeros tienen un 1 en el mismo bit cuando se expresan en binario. Por ejemplo, el bit de verificacin 2 (0 10) se agrupa CQn los bits de informacin 3 (0 11 ).6 (1 ~O) y 7 (111 ). Para una combinacin determinada de bits de informacin. cada bit de verificacin se elige para producir paridud par. es decir. de modo que el nmero total de unos en su grupo sea par.

Seccin 2.15
(.)

Cdigos para detectar '1 corregir errores

63

Posicin de bi1 , 3

-.
de grupo
A

I
Gn.'p05

cl__________J____-<I____ "'" de
(b)

yern~

Po!ilcin de bit

e
Nombro
de grupo
A

+
I I ,
V

Gru"",

/,

1"
V

Bits de intormacin

BUs de veril icad6n

Figura 2-13 Matrices de verificacin de paridad para cdigos de Hammlng de 7 bits: al con posiciones de bit en orden numrico; b) con bits de verificacin y bits de Informacin por separado.

Tradicionalmente. las posiciones de los bits en una matriz. de verificacin de paridad y las palabras de cdigo resultantes se reacomodan de modo que todos los bits de verificacin se encuenlren a la derecha. como en la figura 2-13(b). Las primeros dos columnas de la tabla 2-14 muestran las palabros de cdigo resultantes. Podemos probar que la distancia mnima de un cdigo de Hamming es 3 al verificar que se debe hacer un cambio de 3 bits (como mnimo) a una palabra de cdigo para obtener otra palabra de cdigo. Es decir. probaremos que un cambio de 1 bit o de 2 bits en una palabra de cdigo producir una palabra de no cdigo. Si cambiamos un bit de una palabra de cdigo. en la :x>Sicinj, entonces cambiamos la paridad de cada grupo que contenga la posici6nj. Puesto que todo bit de informacin est contenido en por lo menos un gru po. al menos un grupo tiene paridad incorrecta, y el resultado es una palabra de no cdigo.
Qu~

ocurre s i cam biamos dos billi. e n

I~

posicionesj y k1 Los grupo5 d e paridad

que contengan ambas posiciones j y 1. todava tendrn paridad correcta. puesto que la paridad no se ve afectada cuando se modifican un nmero par de bits. Sin embargo. puesto que j y k son diferentes, sus representaciones binarias difieren en por lo menos un bit. correspondiendo a uno de los gru pos de paridad. Este grupo tiene solamente un bit cambiado, 10 que resulta en una paridad incorrecta y una palabra de no cdigo. Si usted comprende esta prueba. tambil;n podr entender que las reglas de numeracin de posicin paro. construir un cdigo de Harnming son una simple consecuencia de la prueba. Para la primera parte de la prueba (errores de I bit), requerimos que Jos nmeros de posicin sean distintos de cero. Y paro. la segunda parte (e OieS de 2 bits). necesitamos que ningn par de posiciones tengan el mismo nmero. De esta forma. con un nmero de

64

Captulo 2 Sistemas y cdigos numricos

Ta b la 2-14 Palabras de cdigo en cdigos de Hamming de distancia 3


y distancia 4 con cuatro bits de informacin.

Cdigo 3 de dl. tenc;' m(n/~


BIt. de Bit. de

Cdigo 4 de dl. tenc/e mnime


Bit. de Bi t. de

Informeci6n
0000

fMrldMl

Informacl6n
0000

fMrlded
0000
0111 1011

000 011 101 110 11 0 101 011 000 111 100 010 00 1 00 1 010 100 11 1

0001 0010 0011 0100


0101 0 11 0 01 11

000 1 0010 0011 0100


0101 0110 011 I

1100
110 1 1010 0 110

0001
111 0

1000 1001
1010 101 1

1000 1001
1010
IOll

1001
0 10 1

0010 00 11 0100 1000


11 11

1100
110 1

11 00
I 101 II 10 11 11

1110
1111

dec(J(/ific(uJQr de cQrrtccin d, u10rtJ

s(mlromt

posicin de bit i. se puede construir un cdigo de Hnrnming hasta con 2' - I posiciones de bit. La prueba sugiere lam b i~ n cmo podemos disear un decodificador de correccin de errores pant aplicarlo a una palabra de cdigo de Hamming que se recibe. Primero, verificamos todos los gru pos de paridad; si odos tienen paridad par, enlonces se asume que la palabra recibida es correcta. Si uno o ms grupos tienen paridad impar. entonces se supone que ha ocurrido un error simple. El palln de los grupos que tienen paridad impar (llamado el s(ndro~) debe coincidir con una de las columnas de la matriz de verifi cacin de paridad; se supone que la posicin correspondiente del bit contiene el valor equivocado y est complementado. Por ejemplo, usando el cdigo definido por la figura 2- 13(b), supongamos que recibimos la palabra 0101011. Los grupos B y e tienen paridad impar, correspondiente a la posicin 6 de la matriz de verificacin de paridad (el sfndrome es 110. o 6). Al complementar el bit en la posicin 6 de la palabra recibida. detenninamos que la palabra correcla es 000 10 11 .

Seccin 2. 15

Cdigos para detectar y corregir errores

65

Un cdigo de Harnming de distancia 3 se puede modificar fcilmente para incrementar su distancia mfnima a 4. Simplemente agregamos un bit de verifi cacin ms, el cual se selecciona de modo tal que la paridad de todos los bits. incluyendo el nuevo, sea par. Como sucede en el cdigo de paridad par de 1 bit, este bit a.'!CguTa la deteccin de todos los errores que afectan un nmero impar de bits. En panicular. cualquier error de 3 bits puede detectarse. Ya demostramos que los otros bits de paridad pueden detectar los errores de 1 y 2 bits. as que la distancia mfni ma del cdigo modificado debe ser 4. Los cdigos de Hamming de distancia 3 y distancia 4 se utilizan comnmente paro detectar y corregir errores en los sistemas de memoria de las computadoras. especialmente en grandes computadoras "mainframes" donde los circuitos de memoria tienen que ver con In mayoria de las fallas del sistema. Estos cdigos son especialmente atractivos paro. palabras de menloria sumamen\e amplias. puesto que el nmero requerido de bits de paridad aumenta lentamente con la amplitud de la palabra de memoria. tal como se muestra en la tabla 2- 15.
Tabla 2-15 Tamaos de palabra de cdigos de Hamming de distancia 3 y de distancia 4.
C6dlgo!f 3 de dl.mnc/a m{nlms Bits de Informacin
I
S4

Cdigo. 4 de dl.tsncht m{nlma Bits . . paridad


3

..-Bits de

Bn. total".
3
$7

Blm tOmle5

2
3
4

4
S

<8 < 16 <32 <64


S 128

<" <2.
<51
S 120

< 15 <31 <63

127

2.15.4 Cdigos CRe


Ms all de los cdigos de Hamming. se han desarrollado otros cdigos de deteccin y correccin de errores. Los ms importantes que casualmente incluyen los cdigos de Hllmming son los cdigos l/~ "uificacin d~ redundancia efe/iea (CRC. cydieredun . dOlICYc/zuk.). Se ha desarroU ado una gran cantidad de teoria para estos cdigos. que abarcan tanto sus propiedades de deteccin y correccin de errores como el diseo de sus codificadores y decodifi cadores de ba jo costo (vtanse Referencias). Dos aplicaciones importantes de los cdigos e Re se encuentran en las unidades controladoras de disco y en las redes de datos. En una unidad de disco, cada blcxue de datos (por lo regular de 5 12 bytes) est protegido mediante un cdigo e Re . de modo que los errores que eslll en d interior de un bloque pueden deteclllrSC y. en algunas unidades. corregirse. En una red de datos. cada paquete de datos tennina con bits de verificacin en un cdigo e Re. Los cdigos e Re para ambas aplicaciones fueron seleccionados debido :1. sus propiedades de deteccin de errores rfaga. Adems de los errores de bit simple.
c6diso d~ "uifiroci6n d" redundando cfcfica

(eRe)

66

Caprtulo 2 Sistemas y cdigos numricos

pueden detcctar errores de mltiples bits que estn agrupados en fonna contigua. en el interior del bloque (o paquete) del disco. Los errorell de mltiples bits tienen una mayor probabilidad de incidencia que los errores de bits que tienen una distribucin aleatoria. debido a las probables causas fsicas que producen los errores en ambas aplicaciones (defectos de superficie en las unidades de disco y rfagas de ruido en los enlaces de comunicacin).

2.15.5 Cdigos bidimensionales


Otra manero de obtener un cdigo que maximice la distancia mnima es construir un

ctxJiglJ bidimensional

cdigo de prodUCIO

de infonnacin se acomodan conceptualmente en un arreglo bidimensional y se proporcionan bits de paridad para verificar tanto los renglones como las columnas. Un cdigo C~ngl6n con distancia mnima d rrqgln se utili11I para los renglones y un posiblemente diferente cdigo C roIuntnll con distancia mnima llcoluntnll se utili11l para las columnas. Es decir. los biL<; de paridad de re ngln se seleccionan de manera que cada rengln es una palabra de cdigo en Cren,1n y los bits de paridad de columna se eligen de manera que es una pal:lbra de cdigo en CooIllmna ' (Los bits de paridad de "esquina" pueden seleccion:lr5e de acuerdo con cualquier cdigo.) La distancia mfnima del cdigo bidimensional es cl producto de dren1n Y drolullU\l; de hecho. los cdigos bidimensionales se denominan en ocasiones cMigos de producto.

cdigo bidimensio1/al. como se ilustra en la figura 214(a). Los

b iL ~

Figura 2-14 Cdigos bidimensionales: al eSlructura general; b) uso de la paridad par tanto para los cdigos de rengln como de columna para obtener distancia mln;ma 4 ; el patrn tip;co de un error indetectable.

("
wrilka
bits de inlOfmaCin

'"~

--

-.

L~_

son palabltlS de cdigo en C.... JI6o

verificadooes en columnas

verifica ciones en verifica-

-.

~l

Col

Las coIulTW\ilS son patabras de cdigo en C<,,+ "...

los renglones
bits de informaci6n

son

palabras
en el

de cdigo

cdigo de paridad per de 1 bit


de


columna

No hay e'OCIo en la paridad do ..."""

Las columnas son palabras de cdigo en el cdigo de paridad par de 1 bit

No hay elOClo en la pariclad

Seccin ' 2. 15

Cdigos para detectar y corregir errores

67

Como se ilustrn en la figurn 2- 14(b), el cdigo bidimensional ms simple utiliza cdigos de paridad par de I bit parn los renglones y columnas. y tiene una distancia mnima de 2. 2, o 4. Se puede demostrar fcilmente que la distancia mnima es 4 si usted comprende que cualquier patrn de uno, dos o lreS bits en error causa paridad incorrecta de un rengln. una columna o ambos. A fin de obtener un error no detectable. al menos cuatro bits deben ser cambiados en un patrn rectangular como en (c). Los procedimiemos de deteccin y correccin de errores para este cdigo son directos. Supongamos que estamos leyendo infonnacin un rengln a la vez. A medida que leemos cada rengln, verificamos su cdigo de rengln. Si se detecta un error en un rengln, no podemos decir cul bit es errneo de la verificacin de rengln nicamente. Sin embargo. suponiendo que solamente un rengln se encuentre mal, podemos reconstruirlo fonnando el OA Exclusivo bit por bit de las columnas. omitiendo el rengln malo. pero incluyendo el rengln de verificacin de columna. Para obtener una distancia mnima an ms grande. puede emplearse un cdigo de Hamming de distancia 3 o 4 para el cdigo del rengln. de la columna o de ambos. Tambin es posible construir un cdigo en tres O ms dimensiollCs, con distancia mnima igual a l pnxlucto de las distancias mnimas en cada dimensin. Una aplicacin imponame de los cdigos bidimensionales se encuentra en 5istenlas de almacenamiento RAID. RAID son las siglas en ingls de "arreglo redundante de discos econmicos". En este esquema se utilizan n + I unidades de disco idnticas para almacennr vulores dedatos de n discos. Porejemplo. ocho unidades de 8 gigabytes podrian emplearse para almacennr 64 gigabYles de dalos no redundantes y un noveno disco de 8 gigabytes se utilizarla para a1macennr infonnacin de verificac in. La figura 2-15 muestrn el esquema general de un cdigo bidimensional para un sistema RAID: cada unidad de disco es considerada como un rengln en el cdigo. Cada unidad almacena m bloque,~ de datos, donde un bloque contiene por lo regular 512 bytes. Por ejemplo, una unidad de 8 gigabytes almacenarla alrededor de 16 millones de bloques. Como se muestru en la figura. cada bloque incluye sus propios bits de verificacin en un cdigo CRC, para detectar errores dentro de ese bloque. Las primeras n unidlldes almacenan los dalos no redundantes. Cada bloque en la unidad 11 + I almacena bits de

RAID

Nmero de bloq\M

Figura 2-15 Estructura del cdigo


m

""'" ,
""'" 2
Disco 3
O"'" 4 Disco 5

1 2 3 4 5 6 7 8 9 10 11 12 .. .

de correccin de errores para un sistema RAID.


Bytes de

datos
5 6 7
512 CRC

bloques de inloonaci6n

234

I
Un bloque

O""" 6

...
'-. bloques de verllicaciOn

Di$COn ... 1L

D""""f::::::::::;::::::=:::::j

68

Captulo 2 Sistemas y cdigos numricos

paridad para los bloques correspondientes en las primeras 11 unidades. Es decir. cada bit i en [a unidad 11 + 1. bloque b. se elige de modo que existe una canlidad par de unos en el bloque b. posicin de bit i. en todas las unidades. Una "ez en operacin, los errores en los bloques dc infonnaci6n son detectados por el cdigo CRC. Cuando se detectn un error en el bloque de una unidad de disco. se puede reconstruir el contenido correcto de ese bloque calculando la paridad de los bloques correspondientes en las dems unidades. incluyendo la unidad n + 1. iAunque esto req uiere de 11 operaciones adicionales de lectura en el disco. es preferible a la prdida de sus dalOS ! Las operaciones de escritura requieren tambin de accesos extras al disco. para actualizar el bloque de verificac in correspondiente cuando se escri be un bloque de infonnacin (vase el ejercicio 2.46). Puesto que las escrituras en disco son mucho menos frecuentes que las leclUrns en aplicaciones tpicas. este gasto extra por 1 0 regular no es un problema.
.

sumll dt \'uifican cdigo dI! suma dI'


\trijicaci6n

c6dlgo de Jllmfl

tlr: \'erificaciTI de
compltmenlO a

linos

2.15.6 Cdigos de suma de verificacin La operacin de verifi cacin de paridad que hemos empleado en las subsecciones anteriores es esencialmcnle una suma de bits mdulo 2 (la suma mdulo 2 de un grupo de bits es O . si In cantidad de unos en el grupo es par, y l. si es impar). La tcnica de suma modular puede aplicarse a otras bases. apane de la base 2. pora fonnar dfg itos de ~cri ficac i n . Por ejemplo. una computadora almacena infonnacin como un conjunto de bytes de 8 b its. Se co nside r, que cada byte puede tener un valor d ecimal desde O hlls ta 255. Por tanto. podemos uti lizar una suma mdulo 256 para verificar los bytes. Formamos un byte de verificacin simple. llamado una suma de \'erificacin , que es la suma mdulo 256 de todos tos bytes de info rmacin. El cMigo de suma de l'uificaci611 resultante puede detectar cualquier error de byte simple. puesto que un error de este ti po generar una suma recalculada de bytes cuyo resultado no coincidir con la suma de verificac in . Los cdigos de suma de verificacin tambin pueden utilizar diferentes mdulos de suma. En particular, los cdigos de suma de verificacin que usan la suma de complemento a unos, mdulo 255, son importantes debido a sus propiedades computacionales especiales y de deteccin de errores; cabe indicar que se utilizan para veri ficar encabezados de paquetes en el ubicuo Internet Protocol (vea la seccin Referencias). 2.15.7 Cdigos m de n Los cdigos 1 de n y ni de 11 que presentamos en la seccin 2. 13 tienen una distancia mfnima de 2, puesto que cambiando solamente un bit se modi fi ca el nmero total de unos en una palabra de cdigo. y por tanto produce una palabra de no cdigo. Estos cdigos tienen oua propiedad que se aplica en la deteccin de errores: pueden localizar errores mltiples unidireccionales. En un error ullidireccional, todos los bits errneos cambian en la misma direccin (los ceros cambian a unos. o viceversa). Es'a propiedad es muy til en sistemas donde el mecanismo del error predominante tiende a cambiar todos los bits en la misma direccin.

~rror

unidirtcciollal

Seccin 2.16

Cdigos para el almacenamiento y la transmisin de datos en serie

69

2.16 Cdigos para el almacenamiento y la transmisin de datos en serie


2.16.1 Datos en paralelo y en serie
La mayor parte de las compulad0t'3S y altOS sistemas digitales tJ;msmiten y almacenan datos en un formato portlfelo. En la transmisi n de datos en paralelo. se proporciona una Unen de seal independiente para cada bit de una palabra de datos. En el almacennmienda/O S r n poro/r lo

to de datos en paralelo: todos los bits de una palabra de dalos se pueden escribir o leer en fonnn simultnea. El costo de los formatos en paralelo es c:Jevado para algunas aplicaciones. Por ejemplo. la transmisin cn par.tleJo de bytes de datos en la rW telefnica requiere ocho Uncas telefnicas y c:J almacenamiento paralelo de bytes de datos en un disco magntico requerira una unidad de disco con ocho cabezas independientes de lectura/escritura. Los rormatos ~n lerie permiten la transmisin o el almacenamiento de datos a razn de un bit a la vez. reduciendo as c:J costo del sistema en muchas aplicaciones. La figura 2- 16 ilustra algunas de las ideas bsicas en la transmisin de dalos en serie. Una seal de reloj repetitiva, CLOCK en la figura. define la velocidad a la cual se transmiten los datos, un bit por cada ciclo de reloj. De este modo, la I'e!ocidml de los bils. en bits por segundo (bps), equivale numricamente a la frecuencia del reloj en ciclos por segundo (henz. o Hz). El recproco de la velocidad de los bits se conoce como el tiempo de bit y numricamente es igual al periodo del reloj en segundos (s). Esta cantidad de tiempo est reservada en la lnea de datos en serie (marcada como SEADATA en la figura) para cada bit que se: transmite . El tiempo que ocupa cada bit se conoce como ctlda dt bil. El formato de la seal real que aparece en la lnea durante cada celda de bit depende del cdigo de {(nelJ . En el cdigo de Hnea ms simple. denominado No relamo lJ cero (NRz.. Non Relum -Io-ro). se transmite un I al colocar un I en la lnea para toda la celda de bit. y un O se transmite como un O . Los cdigos de linea ms complejos tienen OlflL~ reglas. como lo discutiremos en la subsecci6n siguiente.

dlllos r ll su;r

"rlocidad d, ml/lsmisilI
dr bits. bps

tirmpo dr bit

ctlda de bit

cdigo de IInro
No retomo o erro (NRZ)

FI 9 u r a 2-1 6 Concaptos bsIcos para la transmisin de datos en serie.

tiempo CLOCK

r-

tiempo
de bit

SERDATA

de bit

"""
I

C8't

de bil

de bil

'oI'" 'oI'"

celda

~Ida

~"'" de "

de bit

- - de bit

de bit

calda de bit

SYNC
mmetode bh

I
2

I
7
B

70

Capftulo 2

Sistemas y cdigos numricos

ual dI! sincroni<Jrcidn

Sin importar el cdigo de !rnea, un sistema de almacenamiento o tr.tnsmisin de datos en !;Crie necesita algn met:anismo para identificar la importancia de cada bit en el flujo de datos en serie. Por ejemplo. supongamos que se transmiten bytes de 8 bits en serie. Cmo podemos decir cul es el primer bit de cada byte? Una seal de sinclQt,iulCi611, identificada como SYNC en la figura 2-16, proporciona la informacin necesaria: la cual es I paro el primer bit de cada byte. Evidentemente. necesitamos un mnimo de tres seales para recuperar un flujo de datos en serie: un reloj para definir las celda.~ de bits, una seal de sincronizacin para definir las fronteras de la palabra y los datos en serie. En algunas aplicaciones. como en el caso de la interconexin de mdulos (o t:ujeta.~) en una computadora o sistema de tele comunicacin. se util iza un conductor independiente para cada una de estas seales. ya que rroucir el nmero de alambres por conexin de" a tres representa un ahorro cansidcroble. La seccin 8.SA muestra un ejemplo de un sistema de datos en serie con tres alambres (conductores). En muchas aplicaciones. el costo de tener tres seales independientes es bastante eleVlldo (por ejemplo, lres lineas telefnicas, tres cubez.ns de lecturnlescrituro). Es comn que estos sistemas combinen las tres seflales en un solo fl ujo de datos en serie y por tanto, utilizan circuitos analgicos y digitales complejos para recuperar la inforntacin de reloj y sincroni7.acin del flujo de datos.

-2.16.2 Cdigos de lnea en serie


Los cdigos de linea que se uti li7..rut con mayor frecueocia paro la trnnsmisin de datos en serie se ilustran en la figura 2-17. En el cdigo NRZ. cada valor de bit se envfa en la lnea

para toda. la celda de bit. :sle constituye el esquema de codificacin ms simple y con fiable para la transmisin a poca distancia. Sin embargo, la seal de reloj debe enviarse con los datos para definir l a~ celdas de bit. De otro modo, el receptor no podra determinar cumos ceros o unos estlin representados por un nivel continuo Oo l . Por ejemplo, sin un reloj par'J definir las Idas de bit. la forma de onda NRZ en la fi guro 2-17 podrfa im~rpretarse errneamente como 01 010.

Figu ra 2-17
Cdigos de Unea usados comnmente
I/alof de bit

tiempo

- _o
\

\O

para dalos en serie.

NRZ NRZ' RZ BPRZ


Manchester

Seccin 2. 16

Cdigos para el almacenamiento y la lransmisin de datos en serie

71

Un circuito de s;lIcroniwcin deJase digital (DP/J.. digital pJtaselocked loop) es un circuito analgico/digital que se puede utilizar pam recuperar una seal de reloj de un flujo de datos en serie. El DPLL funciona solamente si el flujo de datos en serie contiene suficientes transiciones de O a I y de I a Oque "indican" al DPLL en qu momento se originan las tmnsiciones originales del reloj. Con los datos codificados en NRZ. el DPLL trabaja solamente si los datos no contienen algn flujo continuo y extenso de unos o ceros. Algunos dispositivos de almacenamiento y transmisin en serie son s~ns;b/~s a la tmnsicin: no pueden transmitir o almacenar niveles absolutos Oo l. solamente transiciones entre dos niveles discretos. Por ejemplo. una cima o disco magnticos almacenarn infonnacin mediante el cambio de polaridad en la magnetizacin del elemento. en regiones que corresponden a los bits almacen3dos. CU3ndo se recupera la infonuncin. no es factible detenninar la polaridad de magnetizacin absoluta de una regin. solamente se detecta que la polaridad cambia entre una regin y la siguiente. Los datos que se almacenan en d fonnnto NRZ en dispositi\'os sensibles a la transicin no se recuperan sin ciel1ll. ambigtledad: los datos en 13 figura 2-17 pueden interpretarse como 01 l 100JO o 1000 1101. El cdigo de No retomo a cero invertido en II/IOS (NRZI, Non -RelunHo,Zero bll'erton- Is) supera esta limitacin al envi3r un I como el opuesto 31 nhel que se envi durante la celda de bit anterior. y un Ocomo el mismo nivel. Un DPLL puede recuperar la seal de reloj de los datos codificados en NRZI siempre y cuando los datos no contengan algn flujo extenso y continuo de ceros. El cdigo de Retomo a Cero (RZ) es semejante al NRZ excepto que. para un bit l . el nivel I se transmite solamente por una fmecin del tiempo de bit. generalmente In. Con este cdigo. los patrones de datos que contengan muchos unos generan muchas transiciones para que un DPLL pueda utilizarlas a fin de recuperar el reloj. No obstante, como sucede en otros cdigos de Unea. unn cadena de ceros no tiene transiciones. 'i una larga cadena de ceros hace imposible la recuperacin del reloj. Otro requerimiento de algunos dispositivos de transmisin. tales como enlaces de fibra ptica de alta velocidad. es que el flujo de datos en serie debe estar equilibrodo en CD. En otras palabras, la cant idad de unos debe ser gu31 a la de ceros. Si en el flujo de datos existe alguna componente de CD de larga duracin (debido a una m3yor cantidad de unos que de ceros. o viceversa), aparecer una polarizacin en el receptor que reducir su capacidad para distinguir de manera confiable los unos y los ceros. En general. los datos NRZ, NRZI o RZ no ofrecen ninguna garanta de equilibrio de CD; nada puede evitar que un flujo de datos tenga una larga cadena de pal3bras con mlis unos que ceros o viceversa. Sin embargo, el equilibrio de CD puede conseguirse mediante el uso de unos cuantos bits extra para codificar los datos del usuario en un cdigo eqlli/ibrodo. En este cdigo cada palabra de cdigo tiene una cantidad idntica de unos y ceros. luego se procede a enviar las palabras de cdigo en fonnato NRZ. Por ejemplo. en la seccin 2.13 presentamos el cdigo 88 10B, que codifica 8 bits de datos del usuario en 10 bits en un cdigo en su mayor parte de 5 de 10. Cabe recordar que solamente existen 252 palabras de cdigo 5 de 10, pero que hay otras

citrui/o d~ sincroni:acin ,Ir use digi/(l1 (OPU)

djSfHJsjljl'OS sr//Sjblrs a la

transicin

No retomo a Cl'ffl

im'u/ido I'n linos (NRZ1)

Retor/JO a uro (HZ)

equilibrio dr CD

cdigo IIquilibroda

( ~O)

'" 210

palabras de cdigo 4 de 10 y un nmero igual de palabras de cdigo 6 de 10. Naturalmente. estas palabras de cdigo no estn suficientemente equilibradas en CD. El cdigo 8B JOB resuelve este problema al asociara cada vnlorde 8 bits queser codificadounparde palabras de cdigo no equilibradas. una de 4 de 10 ("ligera") y otra de 6 de 10 (''pesadn''). El codificador tambin sigue la pista de la disparidad d~ lromos. un bit de infonnacin simple

diSf'{ridad de /mlllos

72

CapItulo 2 Sistemas y cdigos numricos

RelQI7U) 11 Cero 8ipoltlf

(8PHZ)

J"venid" de Marca
Alumad/I (AMI)

$IIpresi" del c:digll cero

1If1l"c:hU ler

difaSi'

que indica si la llima palabra de cdigo no equilibrada que se transmiti era pesada o ligera. Cuando llega el momento de transmitir otra palabra de cdigo no equilibrada. el codificador selecciona aqulla del par con el peso opuesto. Este sencillo truco hace disponibles 252 + 2 1 0 = 462 palabras de cdigo para que el 88 10B codifiq ue 8 bits de datos del usuario. Algunas de las palabras de cdigo "e:fa" se utilizan para codifi car de manera conveniente condiciones de ausencia de datos en 1 11 lnea en serie, tales como IOLE. SYNC y ERROR. No se utilizan todas las palabrJS de cdigo no equilibradas. Lo mismo sucede con algunas palabras de cdigo balanceadas (como 00000 1111 1). estO favorece a los pares no equilibrados que contienen ms tmnsiciones. Todos los cdigos anteriores transmiten o almacenan solamente dos niveles de sena!. El cdigo de Retonw a Cero Bipolar (BPRZ Bipolar Rnllm-lo-ZI!ro) unn.<mite con tres niveles de senal: + l. OY- l. El cdigo es como el RZ excepto que los unos se Ir.tnsmiten alternativamente como + ] y -1; por esta razn, el cdigo tambin se conoce como dc bll"ersi6n de Marca Aftenwda (AMI, Alterna/e Mark bll'ersion). La gran ventaja del BPRZ sobre el RZ es que est balanceado en CD. Esto permite enviar flujos de BPRZ a travs de los dispositivos de transmisin que toleron una componente de CD. como sucede en las Uncas telefnicas acopladas por transformador. De hecho..el cdigo BPRZ se ha utilizado durante dttadas en los enlaces telefnicos digilales TI. donde las senales analgicas de voz se transportan como flujos de 8000 muestras digitales de 8 bits por segundo que se transmiten en fonnalO BPRZ Il lr... vs de I;:lInales en serie de 64 Kbps. Como sucede I;:on el RZ. es posible recuperar una sena] de reloj de flujo BPRZ siempre y cuando no exiSlan demasiados ceros en un re ngln. Aunque la TPC (Compaa Telefnica, por sus siglas en ingls) no tiene control sobre 1 0 que usted dice (al menos. no en este momento). an tiene una manera simple de limitar tramos de ceros. Si uno de los bytes de 8 bits (que se generon al muestrear su patrn analgico de ~'oz) est integrado por ceros. simplemente cambian el segundo bit menos significativo al! Esto se conoce como slll"esill del cdigo cero y apostara que usted nunca lo haba notado. Esto se debe a que en la mayor pune de las aplicaciones de datos de enlaces TI . usted obtiene solamente 56 Kbps de datos tiles de un canal de 64 Kbps; el LSB de cada byte siempre se fija a I paro. impedir que la supresin de cdigo cero cambie los otros bits. El ltimo cdigo en la figura 2- 17 se denomina cdigo Mt/nchester o difase. La mayor venlajo de este cdigo es que. sin tener en cuenta el patrn de datos que se transmiten. proporciona por lo menos uno transicin por celda de bit. esto facilitu la recuperacin de la seal del reloj. Como se muestra en la figuro, un O se codifica como

Referencias

73

lHlgen f: 01

ja por jcrechos jc aulo

una transicin de Oa 1 en la pane media de la celda de bit, y un 1 se codifica como una transicin de I a O. Pero la mayor ventaja del cdigo Manchester ttlmbi~n es su mayor debilidad. Puesto que tiene ms transiciones por celda de bit que otros cdigos, necesita un mayor ancho de banda en el disposili\'o para transmitir bits a una velocidad determinada. No obstante, el ancho de banda no es un problema en los cables coaxiales que se utilizaban en las redes originales de rea local (Ethernet) para transponnr dalos en serie codificados en cdigo Manchester a la velocidad de 10 Mbps (megabits por segundo).

Referencias
La presentacin en las primeras nueve secciones de este caprtulo est basada en el caprwlo 4 de la obra Microcompmu Arrhitec(frt! alld Programming, de John F. Wakerly (Wiley. 1981). El lector encontrar discusiones precisas, minuciosas y entretenidas de

estos temas tambin en Semill/llntrical Algoritluns, tercera edicin, de Donald E. Knuth (Addi!lOn-Wesley, 1997). A los estudiantes inclinados hacia las matemticas les parecern excelentes los anlisis de las propiedades de la aritmtica y los sistemas n um~ricos de Knuth, y todos los lectores disfrutarn las ideas y la historia que presenta el texto. Las descripciones de los circuitos de lgica digital para operaciones aritmticas. asf como tambi~n una introduccin a las propiedades de diversos sistemas numricos, aparecen en la obra Computer Arillrmelic, de Kai Hwang (Wi.ley, 1979). El libro Decimal Compwalion de Hermann Schmid (Wiley. 1974) contiene una profunda descripcin de las tcnicas para la aritmtica BCD. La obra Microcompultr Arrhileclurt! and Progromming: 77/e 68000 FOil/U)'. de John F. Wnkerly (Wiley, 1989) presenta una introduccin a los algoritmos para la multiplicacin y divisin binarias y a la arilm~lica de punto flotante. Una discusin ms profunda de las tcnicas aritmticas y sistemas numricos de punto flotan te puede hallarse en InlmdllC liOllIOAri,hme,icjor Digitill Syslenrs Designen de Shlomo Waser y Michael J. Aynn (Holt, Rinehart and Winston, 1982). Los cdigos CRe se basan en la teorfa de los campos finitos que desarroll el matemtico fnlllcs varisle GaJois (18 11 -1832). poco antes de morir en un duelo a manos de un oponente polftico. La obra clsica que aborda los cdigos de deteccin y correccin de errores es Error-Correcting Codcs de W. W. Peterson y E. J. Weldon, Jr. (MIT Press. 1972, segunda edicin); sin embargo. solamente recomiendo este libro a los lectores que dominan las matemticas. Una introduccin ms accesible a la codificacin se puede encontrar en la obre Error Control Coding: Fllndomentals ond AppJicOliolls de S. Un y D. J. Costello, Jr. (Prentice Hall. 1983). Otra introduccin orientada a la comunicacin para la teora de la codificacin se encuentra en Error-Con/rol Teclmiq/us lar

camposfini/os

74

Caprtulo 2 Sistemas y cdigos numricos


DigiW/ Commu/1ica/io/1 de A. M. Michelson y A. H. Levesque (Wiley-Interscience. 1985). Las aplicaciones de hardware de cdigos en sistemas de cmputo se analizan en la obra Error-Detecti/18 Codeso Seif-Cllecki"8 Circuits of/d App/icoliO/ts de John F. Wakerly (ElsevierlNonh-Holland. 1978). Como se muestro en la referencia anterior del autor. los cdigos de suma de verificacin de complemento a uno tienen la capacidad de detectar largas rfagas de errores unidireccionales: esto es muy til en los canales de comunicacin donde todos los C i rores ticnden a estar en la misma direccin. Las propiedades especiales de cmputo de estos cdigos penniten su apl icacin en el clcu lo de sumas de verificacin mediante programas de software . lo anterior tiene aplicaciones importantes en el Protocolo de Internet; vase RFC- 107 1 y RFC- 11 41. Las solicitudes para comentarios (RFC. Requests (or Comments) se archivan en muchos lugares de la red; solamente busque " RFe. La obra Introduclio/1/o COImmmicutiolu Engineering de R. M. Gagliardi (WileyInterscience. 1988. segunda edicin) presenta una introduccin a Ins tcnicas de codificacin para la transmisin de datos en serie. e incluye el anlisis matemtico del rendimiento y los requerimientos de ancho de banda de diversos cdigos. La obra Computer SIOrrlgt! Syslt!ms and Tt!clillology de Richard Matick (Wiley-Interscience. 1971) presenta una atractiv:l introduccin :1 los cdigos en serie que se U1iIi7..an en cintas y discos magnticos. La estructura del cdigo 88 108 Y la lgica que 10 sopona se explica de manera agradable en la patente original de IBM de Peter Franaszek y Alben Widmer. U.S. palent number 4.486.739 (1984). sta y casi todas las patentes de Estados Unidos expedidas despus de 197 1 se encuentrtln en lu Web. en la direccin ".M.I.patents . iJ:m.can.

Problemas propuestos
2. I Realice tas siguientes conversiones de sistemas numbicos:
(,) 1101011 2 = 1t6 (o) 101 10111 z '" 11 6 (,) 10100. 11012 '" 1t6
(g) (i)

1740038 " 1z (d) 67.24 8 ", 12


(b)

(O F'JA5 1 6" 12
(h)

11OI I00 lz '" 1, 1011 11.011 1z '" '8

AB3D16z 1Z 15C.38 1 6 ::: 1z

fj)

22

Convierta los siguientes nllmeres octales en binarios 'J hexadecimales:


(,) 10238 ",12 :: "16 (o) 1634 17Sc1Z c7 L6
(,) 5436.15 8 =1 2 =1 1 6
(b)

76 1302 8 = "2=1 16 5522738 - 1z = 116

(d )

(O 13705.207 8 "" 12 '" 116


7E6AL6 .. 12 => 1, C350 L6 - 12 = 18

2.3

Conviena los siguientes nllrneros hexadecimales en binarios 'J octales:

(,) 1023]6=?2=1 K
(o) ABCD I6 12 -- 18 (,) 9E36.7AI6'" 72 ", 18

(b)

(d )

(O DEAD.BEEF t6 '" 12 = 18

Problemas propuestos
2.4 2.5 Cules son los VaJores octales de los CUlltro bytes de 8 bits en el nmero de 32 bits que tiene la representacin octal 12345670123,1 Conllierta los siguienles nmeros en decimales:

75

(.) 110101 12 '" ' 10


(o)

(b)

1740038 : 1 10

101101 112 z '?10


IO I OO.l l0 1 ~::

(d) 67.24: '10

(o)
(, ) (i)

110

(Q

F3A5 16 : 110

120103 ", '10 1 1S6gz110

(h) AB3D I 6"''?10

ij)

ISC.38 16 .. 7 10

2.6

Realice las siguientes corwersiones de sistemas numfricos:

(.) 125 10 "" 2 (o) 209 10 "" 12 (o) 132 10 ",12


(,) 121 10 :1,
(i )

(b) 3489 tO= 18


(d) 91 14 10 -78

(Q

2385 110 : 116

(h) 57190 10 '" 116

1435'0:c18

O > 651 13 10 =1 16
(b]

2.7

Sume 1 05 siguientes pare5 de nmeros binarios. mostnlndo todos los 11ClInWS:

(.)

110101 + 11001

10 11 10 + 100101

(o)

110 11101 + 1100011

(d)

1110010 + 110 1101

2.8 2.9

Repita el problema 2.1 usando la resta en "el: de la suma, y mostrundo los prtstamos en lugar de los acarreos. Sume los siguientes pares de nmeros octales:
(a)

1312 + 4631

(b)

411 35 + 512S

(e)

115214

(d)

+ 152405

11032 1 + 56513

2. 10

Sume 1 05 pares siguienteS de nmeros hQadecimales:


(o)

1312 + 463 1

(b)

4F IAS + B8D5

(o)

mB
+ 21E6

(d)

IB90F

+ C44E

2.11 2. 12

Escriba las representaciones de lf1lplemenlO a unos y complemento a dos. de magnitud con signo de 8 bits. par.! cada uno de estos nmeros decimales: + 18. +1 15. +19. -49. -3, - 100.

Indique si ocurre o no desbordamiento cuando 5e suman los siguienlC$ nmeros de complemento a dos de 8 bits: (a) 11010100 + 10101011
(b)

101 t 1001 + 11010110

(e)

010 1J 101 + 00 10000 1

(d)

00100110 + 0101 1010

2.1 3 2.14

Cuntos elTOl'eJ pueden detectarse por un cdigo con distancia mnima ti? Cu l es el nmero mni mo de bits de paridad que se requieren parn obtener un cdigo bidimensional. de distancia 4 con n bits de informacin1

76

Capftulo 2 Sistemas y cdigos numricos

Ejercicios
2.15 2.16 Aquf tenemos un problema
par.!

abri r su ap!:tito: Cul es el equ;vulente hexadecimal de

61453 10' Cada una de las ~;guicntes operaciones ruiulltticas es COl"Tl!CtD on por lo menos un sistema numtrico. Detennine las posibles bases de los nmeros en cada operacin.
(a)

1234 + 5432 = 6666

(b) 4 1 /3= 13
(d) 23.~4 11 4+32=223

(e) 3313 = 11
(e)

302120_ 12.1

(O

14 "" S

2.17

1..11 primen expedicin a Mane encontr slo las ruinas de una civilizacin. De los artefact05 e imgenes, los exploradores dedujeron que las criaturas que produjeron e.sta civilizacin eran seres de cuatro piernas con un tentculo que se rami ficaba al final en un nmero de "dedos" prensiles. Despub de mocho estudio. los exploradores fueron capaces de traducir las matemticas ntarcillllas. EnconlnlrOn que la siguiente ecuacin:
5.r2 - 5Ox+125::0

2.18

2. 19

2.20

con 1:15 sol uciones indicadas x =S Y x =8. El valor x "" 5 pareda bastante legitimo. pero x = 8 n:querla alguna explicacin. Entonces los exploradores renexionaron en la manera en que se desarroll el sistema nu~rico de la Tierra. y hallaron e\'idencia de que el sistema marciano tenfa una historia semejante. Cu:1ntOS dedos diria usted que tenfan los marcianos? (De Tht Bt nt ofTau Ikla Pi. fe~ro. 1956.) Supongamos que un mmero 8 de 4n bits estA representado por un nmero hexadecimal H de n dgitos. Demuestre que el complemento 11 dos de 8 est representlldo por el complemento a 16 de H. Establezca y demuesu"C una proposicin similar para la representacin octal. Repita e[ ejercicio 2 . 18 usando el complemento a uoo de 8 Y e[ complemento a I S de H. Dado un enteroxen el intervalo-r- 1 s:xs:r- t - l . definimos [xl como la rcpresentacin de complemento 11 dos de x, expresada como un nmero positivo: Ixl .. x si x I!' O Y [xl = 2~ - Ixl si x < O. donde Ixl el! el valor absoluto de x. Demuestre que lru; reglllS de la suma Ikl complemento a dos dadas en la seccin 2.6 ,;on correctas, probando que la siguiente ecuacin el! siempre verdadera: Ix + )' 1:: (Ix 1+ [y]) mdu lo 2~

2.2 1
2.22

2.23

(Sugutncias: considere cuatro CllSOS basados en los signos de x y de y. Sin ~rdda de generalidad, se puede MlpQoeI" que [xl ~ IY].) Repita el ejercicio 2.20 utiliulIIdo reglas y expresiones apropiadas para la wma de l complemento a unos. Establezca una regla de desbordamiento para la suma !k dos nmeros en complemento a dos en tnninos de operaciones de conteo en la representacin modular de [a figura 2-3. Demuestre que un nmero en complemento a dos puede ser coo\'Crt!do a una rcprescnmciD con ItS bits mediante la txltnsit! de signo. Es decir. dado un nmero X en complemento a d<JS de ti bil5, muestre que la representacin en complemento a dos de ni biu de X. donde tri > ti. puede ser obtenida agregando ni -/1 copias del bit de signo de X ala iutuierda de la representacin de ti biu de X.

Ejercicios
2.24 Demuestre que un nmero de complemento a dos puede con\'enirse a una represenlaCin con menos bits eliminando los bits de mayor orden. Es decir. dado un nmero X en complemento a dos de n bits, dem uestre que el nmero Yen complemento a dos de m bits obtenido al descartar los d bits ms a la izquierda de X representa el mismo nmero que X, si 'j slo si los todos bits descanados igualan el bit de signo de Y. Porqu~ es iflCOllsistente la pu ntuacin de "complemento a dos" 'j "complemento 11 uno"7 (V~anse las primeras dos citas en la seccin de Referencias.) Un sumador binario de n bits puede ser utilizado para efectuar una operacin de resta sin signo de 11 bits X - Y. real i~o la operacin X + Y + l . donde X y Y son nmeros sin signo de n bits 'j la Y representa el complemento bit a bit de Y. Demuestre este hecho corno sigue. Primero. pruebe que (X - Y). (X + Y + 1) - 2~. Segundo. demuestre que el acarreode Sillida del sumador de n bits es 10 opuesto al pristamo de la resta de 11 bits. Es decir. muestre que la operacin X _ rproduce un prfstanlO de salida de la posicin MSB si 'j slo si la operaci6n X + r + 1 no produce un acarreo de salida. de la posicin MSB. En la ma'jorfa de los casos. el producto de dos nmeros de complemento a dos de n bits requiere menos de 211 bits paro representllrlo. De hecho, eli.$te solamente un caSQ en el cual 2n bits son necesarios. Encuentre cu:!l es este caso. Demuestre que un numero de complemento a dos puede ser multiplicado por 2 al desplazarlo una posicin hacia la izquierdn, con un llClIITCO de O en 111 posicin del bit menos significativo 'j & spreciando cualquier acarreo fuera de la posici6n del bit ms significati. \'0, suponiendo que no hay dc:sbordamiemo. E.~tllble1.clll a regla para detectaf el desbon.Iumiento. Establezca 'j pruebe la exactitud de una tfenien semejante a la que se describe en el ejercicio 2.28. par.! mul tiplicar un nmero de complemento 11 uno por 2. Deml,lcstre CIDQ reSlD,r nmel'Q$ BCD, estableciendo las reglas para genernr (lftsumos y aplicando un roctorde colleccin. Demuestre cmo se aplican sus reglas a cada una de las restas siguientes: 9 - 3, 5 - 1, 4 - 9. I - 8. Cuntas codificaciones diferen tes de estado binario de 3 bits son posibles para el controlador de semforos de la tabla 2-121 Enumere todas las fronter.tS ' 'malas'' en el disco de codificacin mecnica de la figura 2-5. donde una posicin incorrecta puede ser detectada. COlllO una funcin de n, cuMtas fron teras "malas" eJlisten en un disco de eodifieacin mecnica que utiliza un cdigo binario de n bits1 Los transpondedores (emisores-rcccptoJeS automticos de identificacin) de al titud a bordo en las aeronaves comerciales 'j pri\'&das utilizan cdigo Gl"'dy para codificar las lecturas de altitud que se transmiten 11 los controladores de trlifico areQ. Por qu~? Un foco incandescente se tensiona cada vez que se enciende, de modoque en alguna.~ apl icaciones el tiempo de vida del foco est limitado por el nmero de cidos de encendidol apagado en lugar del tiempo total que ilumina. Utilice sus conocimientos de cdigos para sugerir una manera de du plicar el tiempo de vida de focos de 3 intensidades en tales aplicaciones. ConlO un a funcin de 11 . cu.intos subcubos distintos se tienen de un cubo n1 Encuentre una manera de dibujar un cubo 3 sobre una hoja de papel (u otros objetos bidi mensionales) de modo que ninguna de las Irneas se crucen, o demuestre que eso sea imposible. Repita el ejercicio 2.31 pan! an cubo 4.

77

2.25 2.26

2.21

2.28

2.29 2.30

2.3 I 2.32 2.33 2.34

2.35

2.36 2.31

2.38

78

capitulo 2

Sistemas y cdigos numricos


2.39
2.40
2.41

2.42

2043

2.44

2.4S

2.46

2.47

Escriba una frmula que nos ~ el nmero de subcubos m de un cubo n para un valo.- espc cHico de m. (Su respuesta. debera ser una funci n de 11 Y m.) Defina grupos de paridad par.!. un cdigo Hll.mming de dislancia 3 eon 11 bits de infor macin. Escriba las palabr.lS de cdigo de un cdigo de Hamming con un bit de infonuacill. EJlponga el patrn para un erTOf de 3 bits que no es deleclado si los bilS de paridad de "esquina' no se ocluyen en los cdigos bidimensionales de la figura 2 14. El ndiu (le IIn cdigo es la rv.n del nmero de bits de infOl'll'lat:in con respeclo al nmero Il)(al de bitsell una palabra de cdigo. Lo!; fndices altos. cercanO!O a l . son deseables para una eficllt tnmsmi.~i6n de la infOllll:lCin. Construya una grfica que compare los flKlices de cdigos de paridad de dislancia 2 y cdigos ~l3mmi ng de dislanciu 3 y 4 hasta de 100 bils de infOfTllaCin. Q~ tipo de cdigo de distancia 4 tiene un frKlice mayor: un cdigo bidimensional o un cdigo de Hamming? Apoye su respuesta C Ol1 una labia del estilo de la labia 2-IS. ioclu yendo el fndice ad como tambin el nmero de bits de paridad y de info.-macin de cada cdigo hasta llegar a 100 bits de infOfTllacin. Mueslre cmo construir un cdigo de distaocia 6 con cuatro bil~ de inromlacin. Escriba una liSIa de sus palabras de cdigo. Describa las operaciones que: deben realiwse en un sistema RAID paro escribir nuevos datos en el bloque de infonnaci6n b en la unidad d de manern que los datos puedan ser recupcrodos en el caso de un erroren el bloque b en cualquier unidad. Minimice el nmero de accesos a disco requeridos. Del mismo modo que en la figuro 2-17, dibuje las formas de onda para el patrn de bits 101011 JO ~ uando se env(. en IlC:ril: utilil./l.ooJo 105 cdigos NRZ, NRZI. RZ. DPRZ y Manchester. suponiendo que los bits sean transmitidos en orden de izquierda a derecha.

e a p

Circuitos digitales

1m 9 ., rotegida)O derecho,

pesar de la rimbombancia publicitaria de la mercadotecnia. vivimos en un mundo analgico. no en uno digital. Los voltajes. conientes y ceras cantidades fsicas en los circuitos reales toman >rolores que son infinitamente variables, dependiendo de las propiedades de los dispositivos reales que integran los circuitos. Debido a que los valores reales son continuamente variables. podrillllOSutili7.3f una cantidad fTsica tal como un \'Oltaje de seal en un circuito para representar un nmero real (por ejemplo. 3. 14 159265358979 volts representan la constante matemlicapi con 14 drgitos decimales de precisin). Desgrnciadarnente. In estabilidad y exactitud en las cantidades ITsicas son difciles de obteneren los circuitos reales. ~tos se ven afectados por las toterancia.~ de fabricacin de sus componentes, cambios en la temperntura. cambios en el voltaje de alimentacin. los rayos csmicos y ruido creado por otros circuitos. entre otras cosas. Si empleamos un voltaje analgico para representar pi, podemos hal lar que en \'ez de tener una CO'1.~tante matemtica absolula.,pi vnria en un intCfV',llo del 10% o ms. Tambin, muchas operaciones matemticas y lgicas pueden ser diffciles O imposibles de realizar con cantidades analgicas. Mientras que es posible con nlgo de astucia construir un circuito analgico cuyo \'Oltaje desalida sea la rarz cuadrada de su voltaje de entr,lda, nunca se ha construido un circuito analgico con 100 entrndas y 100 salidas. cuyas salidas sean un conjunto 'de \'oltajes idntico al conjunto de voltajes de entrnda. pero ordenados aritmticamente. El propsito de este captulo es proporcionar un slido conocimiento pn'iclico de los aspectos elctricos de los circuitos digit.aJes. suficiente para que usted entienda y construya sistemas y circuitos reales. Como veremos en los captulos posteriores. mediante el uso de modernas herr.llTlientas de software es posible "construir" circuitos

79

80

Capitulo 3 Circuitos digitales

de manera abstracta, utili7 ..ando lenguajes de diseo de hardware para especificar los discnos y simuladores para probar su funcionamiento. Pero, para crear circuitos reales y de calidad, ya sea a nivel de tarjeta de circuito impreso o de microcircuitos o chips, usted necesita comprender la mayor parte del material que se presenta en este capftulo. Sin embargo, si desea practicar el diseo y la simulacin de circuitos abstractos en fonna inmediata, puede leer nicamente la primera seccin de este captulo y postergar la lectura del resto del capftulo.

3.1 Compuertas y seales lgicas


lgico digital
m/Of'" Mgjcos

La lgica digita l oculta las dificultades del mundo analgico al mapear el conjunto infinito de valores reales dc una cantidad ffsica en dos subconjuntos que corresponden solamente a dos nmeros posibles o \'{Jlo rt!s lgicos: O y l . Como re.~ultado, los circuitos

tllgiro binario bi/

BAJO (LOW) ALTO ( HIGH)

lgicos digitales pueden ser analizados y diseados funcionalmente, haciendo uso del lgebra de conmutacin, tablas y otros medios abstractos para describir la operacin de los ceros y unos en un circuito. Un valor lgico, O o 1, se denomina frecucntementc d(gito bi"ario, o bit. Si una aplicacin requiere ms de dos valores discretos, pueden utilizar5C bits adicionales, con un conjunto de n bits que representan 2" valores diferentes. En la tabla 3 1 se pueden apreciar ejemplos de algunos fenmenos fsicos que se utiliUln para representar bits en ciertas tecnologfas digitales modernas (y no tan modernas). En la mayor pane de estos fenmenos, existe una regin indefinida entre los -estados O y I (por ejemplo, voltnje "" 1.8 V, tuz disminuida, cnpacitor dbilme nte cargado, etc.). Esta regin indefinida es necesaria para quc los estados O y l puedan definirse sin ambigedad y se detecten en fonna confiable, Las seales de ruido pue den alterar con mayor facilidad los resultados si las fronteras que separan los estados O y I estn muy cerca una de la otra. Cuando se analizan los circuitos lgicos electrnicos tales como e MOS y TIL, los diseadores digitales con frecuencia utilizan las palabras " BAJO" CLOW') y "ALTO" ("HIGH'") en lugar de ''O'' Y"1 " para reco.-dar que estn tr.ltando con circuitos reales, no con cantidades abstractas:

BAJO
ALTO

Seal que est comprendida en el intervalo de voltajes algebraicamente ms bajos; se interpreta como un O lgico. Senal que est comprendida en el intervalo de voltajes algebraicamente ms altos; se interpreta como un Ilgico.

lgica pol i/im


Mgleo " tgutil'u

amplificadortl buffu

Ntese que las asignaciones de O y I a BAJO y ALTO son algo arbitrarias. La asignacin de O a BAJO y de I a ALTO parece ms natural y se denomina Mgica /JOlili la. La asignacin opuesta, de I a BAJO y O a ALTO. no se utiliza con frec uencia y se conoce como lgica " egalila. Ya que una amplia gama de valores frsicos representan el mismo valor binario, la lgica digital es altamente inmune a las variaciones en el valor de los componentes, del voltaje de alimentacin y al ruido. Adems, se pueden utilizar circuitos que utilizan ampl ificadores buffer, para regenerar los valores "dbiles" en "fuertes", de modo que las senales digitales puedan transmitirse en dislaOCias arbitmriru sin que ex.istan pdidas de informacin. Por ejemplo, un buffer para lgica CMOS convierte curuquier voltaje

Seccin 3.1

Compuertas y seales lgicas

81

Tabla 3- 1 Estados ffsicos representando bits en diferentes lgicas de computadora. y tecnologfas de memoria.
Bit de repreMmtac/dn de estado Tecnolog{a
Lgica neumtica Lgica de relevador Lgica metal-xido semicond uclOr wmplementaria (CMQS) Lgica de transistor-Ullnsistor (lTL) Fibra IMI;a Memoria dinmica Memoria borrable, no \'oltil Memoria slo de leclUrn bipolar Memoria de burbuja Disco o cinta
mag~ticos

o
Fluido a baja presin Circuito abie no 0-1.5 V
0-0.8 V
Luz apagada

1
Fluido a al ta presin Circuito cerrado 3.5-5.0 V 2.0-5.0 V Luz e~ndida

Capacitor descargado Electrones atrapados Fusible rundido Ausencia de burbuja Il1llgnttica Direccin de l fl ujo "norte" Mol&ula en el estado A Ausencia de pozo (orificio en la superficie)

Capacitor cargado
Eletlrones liberados Fusible intaclo Presencia de burbuja maglll!tita Direccin del flujo "sur" Mol& ula en el estado B

Memoria polirm:rica Disco compacto slo de leclunl Disco compacto reescribible

Poro
Establecido en estado

Eslllblecido en estado cristalino

no cristalino
de entrada ALTO en una salida muy cercana a S.O V, y cualquier vollllje de entrada BAJO

en una salida muy cercana a 0.0 V. Se puede representar a un circuito lgico con una mfnima cantidad de detalle, sencillamente en fonna de una "caja negra" con un cierto nmero de entradas y salidas. Por ejemplo, la figura 3-1 muestra un circuito lgico con lR:S entradas y una salida. Sin embargo, esta representacin no describe cmo responde el circuito a las seales de entrada. Desde el punto de vista del diseo de circuito electrnico. se necesita una gran cantidad de informnc:ioo para describir el comportamiento el&:trico de un circuito en fcona precisa. No obstante. puesto que las entradas de un circuito lgico digital pueden verse como si tomaran nicamente los valores discretos O y 1, Ia operacin "lgica" del cir4 cuilO puede describirse mediante una tabla en la que se ignora el comportamiento elctrico y solamente se indican los valores discretos O y 1.
Entradas

X-_I

Figura 3 - 1
_ _ F

y _ _1 circutlo lgico

Z-L_

Representacin de "caja negra" ele un circuito lgico con Ires entradas y una salida.

82

Capitulo 3 Circuitos digitales Un circuito lgico cuyas salidas dependen solamente de sus entradas actuales se denomina circuito combinaciollal. Su fu ncionamiento se describe completamente en una rabIa de verdad que enumera todas las combinaciones de \'alores de entradn asr como los valores de salida que producen los valores de entrada. La tabla 3-2 corresponde a la tabla de verdad de un circuito lgico con tres entradas X. y y Z, y una sola sal ida F.
T ab l a 3-2
Tabla de verdad

circuito C Qmbifl(lcional /(lb/a de ,'m iad

para un circuito lgico combinacional.

X
O O O O
1 1 1 1

Z
O
1

O O
1

O O O O O
1 1

O
1

O O
1

O
1

cirru;/o Juue"cial
wh/cl d e eSf(U/Q

Un circuito con memoria cuyas salidas dependan de la entrada actual yde la secuencia de las entradas anteriores, se conoce como circuito secuencial. El comportamiento de un circuito de e SLa clase puede describirse mediante una !Ob/a de es!Odo que especifica su salida y el estado siguiente como funciones de su entrada y estado aClUaL Los circuitos secuenciales se presentarn en el capitulo 7. Como veremos ms adelame en la seccin 4, 1. solamente se necesitan las tres funciones lgicas ~sicas. ANO, D A Y NOT para construir cualquier circuito lgico digital combinacional. La fi gura 3-2 ilustra las labias de verdad y los sfmbolos para las "compuertas" lgicas que realizan estas funciones , Los smbolos y las tablas de yerdad de las compuertas ANO y DA pueden extenderse a compuertas que tcngan cualquier cantidad de entradas, Las funciones de las compuertas se defi nen fcil mente con palabras:

compuerta ANO
eomfJU~rIll OR

C lJnIpUUIfI NOT

m'u sar

Una compuerta ANO produce una sal ida I si y slo si todas sus entradas son 1, Una eompl/erta OR produce una salida I si y slo si una o ms de sus (:ntr.Y13s son l. Una compuerta NOT. por lo regular conocida como un inversor, produce un valor de salida que es el opuesto al de su valor de entrada.

Fig ur a 3-2
Elementos 100icos bsicos: a) AND:
b) OA: e) NOT (inversor).

l' )

x y

I
x
O O
1 1

X AN OY

xy y
O
1

' b)

)
X

XOR Y

x +y y
O
1

'o)

[:>o
X

NOTX X

XANDY

XORY

NOTX
1

O
1

O O O
1

O O
1 1

O
1 1 1

O
1

O
1

84

Capftulo 3 Circuitos digitales

x
y

z
Figur a 3-5 Diagrama de temporizacin para
un circuito lgico.
F

~
TIEMPO _ _ _~.~

y el correspondiente cambio en la salida. Ms adelante en este caphulo aprenderemos algunas de las razones para este comportamiento en el tiempo y emo se especifica y maneja en los circuitos reales. Y una vez ms, aprenderemos en un capftulo posterior por qu en la mayora de los casos se puede ignorar este comportamiento analgico en el tiempo en los circuitos secuenciales, y en cambio el circuito puede visualizarse como si se moviera entre estados discretos a intervalos precisos.definidos por una se\a1 de reloj. De este modo, incluso si usted no sabe nada acerca de elcctr6nica analgica. debc..'a ser capaz de comprendcr el comportamiento lgico de los circuitos digitales. Sin embargo, llega un momento en el diseo y depuracin cuando todo diseador de lgica digillll debe descartar en fonna tempornl "la abstraccin digital", y considerar el fenmeno analgico que limilO o tr.lstomu el desempefto digital. El resto de este capitulo lo preparnr para ese da mediante el estudio de las caractersticas elctricas de los circuitos lgicos digitales.

3.2 Familias lgicas


Existen muchas, muchas maneras para disear un circuito lgico electrnico. Los primeros circuitos lgicos controlados elctricamente, desarrollados en los Laboratorios SeU en la dcada de 1930, estaban basados en relcvadores. A mediados de la dcada de 1940. la primera computadora digital electrnica, la ENIAC. utilizaba circuitos lgicos basados en tubos de vaco. La ENIAC tena aproximadamente 18.000 tubos y una can tidad semejante de compuertas lgicas, no muchas para los estndares acmales de CIs para microprocesadores (que tienen decenas de millones de transistores). Sin embargo, la ENIAC podra lastimarlo mucho ms que un chip si cayera sobre usted: itenfa 100 pies de longitud. 10 pies de altura. 3 pies de profundidad y consumfa 140,000 waUs de potencia! La invencin del diodo si!miconductor y dc l lransistor bipolar di! unin penniti el desarrollo de computadoras ms pequeas, ms rpidas Yde mayor capacidad a fina

diodo umicondUClor
IrrlnsulOr bipolar de u"i6ft

Seccin 3.2

Familias lgicas
circuito int~rodo (CI)

85

les de la dcada de 1 950. En la do!cada 1960, la invencin del circuito inugrado (el ) permiti la fabricacin de muchos diodos, transistores y otros componentes en un solo chip, y las computadoras se hicieron todava mejores. La dcada de 1960 fue tcstigo de la introd uccin de las primeras familias lgicas de circuitos imegrados. Unafomilio /68lco es una coleccin de diferentes chips de circuitos integrados que tienen carncteristicas similares cn sus entrndas, salidas y circuiteria imema, pero que realizan diferentes funciones lgicas. Los chips de la misma familia pueden imerconectarse para que realicen cualquicr funcin lgica deseada. Por otra parte. los chips de familias diferentes pueden 00 ser compatibles: pueden utilizar diferentes voltajes de alimentacin o pueden emplear diferentes condiciones de entrada y salida para representar a los vaJores lgicos. Lafamilia I6gica bipolar con mayor xito (una basada en transistores bipolares de unin) es la de /6giea transistor-transistor (Trl.., transistor-tfUllSutor fogie). Presentada por vez primera en la dcada de 1960, la TIl. es en realidad una familia de familias lgica... que son compatibles con cada una de las otras pero que difieren en velocidad, eonsumo de energa y costo. Los sistemas digitales pueden mezclar componentes de varias familias 1TL diferentes. de acuerdo con los objetivos de diseo y las restricciones en diferentes partes del sistema. Aunque la familia ITL fue reemplazada en gran parte por los circuitos CMOS en la dcada de 1990, es probable que encontremos componentes rrL en los labol1ltorios; por esto, presentamos las familias 1TL en la seccin 3.10_ Diez aos alltes que fuera inventado el transistor bipolar de unin. ya se haban patentado los principios de operacin para otro tipo de transistor, llamado lfUIlSutor de efecto de campo metlJl-dxido-semiconductor (MOSFET Metaf-Oxide Semiconductor FieldEffect Transistor), o sencillamente transistor MOS. Sin embargo, los transistores MOS enm difciles de fabricar en sus primeros das, y no fue sino hasta la dcada de 1960 que una ola de desarrollos hizo prcticos los circuitos de memoria y lgic basados en diS :M)siti. vos MOS. Aun entonces. los circuitos MOS no superaban a los circuitos bipolares en lo que respecta a la velocidad. y solamenle eran atractivos en ciertas aplicaciones debido il su bajo consumo de energa y mtlyor nivel de integracin . A mediados de la dcada de 1980 los avances en el diseo de los circuitos MOS, en panicular los circuitos MOS complementorio (eMOS. complementary MOS). promcaron un aumento sbito en su desempeo y popularidad. Con mucho. lil mayor parte de los modernos circuitos integrados a gran escala, tales como microprocesadores y memorias. utilizan dispositivos CMOS. Del mismo modo, para las aplicaciones que van de pequea a mediana c:scaltl (donde hasta htlce algn tiempo. los dispositivos TfL fueron la nictl ftlmilia lgica a escoger), se plantea el uso de dispositivos CMOS que tienen una funcionalidad equivalente. pero que ofrecen mayor velocidad y menor consumo de energa_En la actualidad, los circuitos CMOS integran la inmensa mayoria del mercado mundial de CI. La lgica CMOS es la tecnologa de lgica digital comercial con mayor capacidod y lo ms fcil de comprender. Al inicio de la siguiente seccin. describiremos la estructura bsica de los circuitos lgicos CMOS y presentaremos las famili as lgicas CMOS que se utilizan con mayor frecuencia . A consecuencia de la transicin TIL-CMOS, muchas familias CMOS se diseilron para que fueran un tanto compatibles con los dispositivos TIL En la seccin 3.12

familia /6giCll

familia lgica bifHIlar lgica troruisro rtronJistor (7TLJ

tronsiSl/Jr dt tif'clO dt

campo ~1lI1-dxido
Stmiconductor

(MOSFET)
lronsislor MOS

fofOS compltmtntario (CMOSJ

86

Capitulo 3 Circuitos digitales

mostraremos cmo se pueden integrar las famili as lTL y CMOS en un sistema sencillo.

3.3 Lgica CMOS


El comportamiento funci onal de un circuito lgico CMOS es muy fc il de comprender, incluso si sus conocimientos de electrnica analgica no son paniculllnTICnte profundos. Los nicos bloques bsicos de construccin en los circuitos lgicos CMOS son transistores MOS, los cuales descri biremos en fonna breve. Antes de presentar los transistores MOS y los circuitos lgicos CMOS, debemos analizar los niveles lgicos.

3,3 ,1 Niveles lgicos eMOS Los elementos lgicos abstractos procesan dgitos binarios, Oy l. Sin embargo, los circuitos lgicos reales procesan seales elctricas tales como niveles de ,'oltaje, En cualquier circuito lgico existe un intervalo de voltajes (u otras condiciones del circuito) que se interpreta como un O lgico, y otro intervalo (que no se traslapa con el anterior) que se interpreta como un Ilgico. Un circuito lgico CMOS tpico funciona a partir de una ruente de alimentacin de 5 volts. Un circuito de esta clase interpretar cualquier voltaje que est en el intervalo de Oa 1.5 V como un Olgico, de igual fonnn, interpretar a cualquier voltaje que est en el intervalo de 3.5 a 5.0 V como un I lgico. De este modo. las definiciones de BAJO y ALTO para In lgica CMOS de 5 V son como se ilustra en In figura 3-6. Los voltajes que estn en el intervalo intelllK!dio ( 1.5 - 3.5 V) solamente aparecern durante las transiciones de seal, por trulto producirn valores lgicos indefinidos (es decir, un circuilo puede interpretarlos yn sea como Oo como 1). Los circuitos CMOS que utilizan otros voltajes de alimentacin, tales como 3.3 o 2.7 "olls, dividen el intervalo de voltaje en fonna similar.

3.3.2 Transistores MOS El modelo de un tronsistor MOS corresponde n un dispositivo de 3 tenninales que acta como una resistencia controlada por voltaje. Como lo sugiere la figura 3-7. el voltaje de cntrnda que se aplica en una tenninal controla la resistencia entre las dos tcnninales restantes. En aplicaciones de lgica digital, un transistor MOS opera de modo que su resistencia siempre sea muy elevada ----el transistor se encuentra "apagado" ("orr'}-- o muy baja ----el transistor se encuentra "encendido" ("on")-.

5.0V

Figura 3-6 Niveles lgicos para circuitos


lgIcos eMOS IIplcos.

BV

_.- :::

0.0 v

Seccin 3,3

l gica eMOS

87

Figura 3-7 El transistor MOS como una resistencia controlada por voltaje.

Existen dos tipos de transistores MOS, de canal-n y de eanal-p : los nombres se refi eren al tipo de material semiconductor que se utiliza en las tenninales cuya resistencia est controlada. La fig ura 3-8 mu e.~ lra el sfmbol o esquemtico de un tran.si.slOr M OS de ama/-II (NMOS. 1I-dllUl1wl M OS). Las terminales se denominan complU!na (gate). f uente (.sourre) y d renaj e (dmill). (Ntese que lo "compuerta' de un transistor MOS no tiene nada que ver con una "compuerta lgica",) Como podr observar, a partir de la orientacin del smbolo del circuito. el drcnaje se encuentra nonnalmente o un voltaje ms alto que la fueme,
Raslslancia controlada por voh8jo: W1cremenlo en Vgs => disminucin eo Ada

lmruistor MOS d~ canal-n

(NMOS)
romPII..,W

tirt nlt.

eompuena

'\

v._

drenale

fuente

Nota: normalmente, V!JI; C!O

Figura 3-8 51mbolo de circuito para un transistor MOS de canaJ-n (NMOS).

El voltaje de la compuerta a la fu ente ( Vp) en un trnnSiSlOr NMOS es nonnrllmentc cero o positivo. Si Vp = O. entonces la resistencia del drenaje a la fueme (Rds ) es muy alta. al menos un rnegaohm ( 1 06 ohms) o ms, A medida que incrementamos V" (es decir. aumentamos el voltaje en la compuerta). Rd dismi nuye hasta llegar a un valor muy bajo, de lOohms o menos en Iligunos di spositivos. La figura 3-9 muestra el smbolo de circuito para un t mll.sistor MOS de ctmal-p ( PMOS). Su funcionnmiento es anlogo al de un transistor NMOS, excepto porque la fuente se encuentra oonn.almente a un \'Oltaje mayor que el drenaje. y por lo general Vp es cero O negativo. Si V >es muy p es cero. entonces la resistencia de fuente a drenaje (Rd $ elevada. Confonne disminuimos nlgebraic:unente Vil (es decir, disminllillw.f el voltaje en la compuerta), Rd. disminuye hasta llegar a un valor muy bajo. La compuerta de un transistor MOS tiene una impedancia muy elevada. Es deci r. la compuerta est separada de la fuen te y el drenaje por un material aislante que tiene una resistenciil muy elevada. Sin embargo. el voltaje de compuerta crea un Cllmpo elc trico que refuerm o retarda el fluj o de corriente entre las tenninales de fuente y drenaje. ste es el "efecto de campo" en el tnnino "MOSFE I '. Sin importar el vohaje de compuerta. casi no flu ye corriente de la compucna a la fuente. o de la compuena al drenaje para este asunto, La re.~ i s t en cia entre la compuerta

IfflIIsiSlor MOS lk curml-p

(PI.tOS)

v. -1
compuerta

fuente

Aesistencia cootrolada por volta}8: dismlnud6n en vga __ dismif'lUCfl en A ,*"

drenaje Nota: normalmente. Vos SO

Figura 3 -9 Smbolo de circuito para un transistor MOS de canal-p (PMOS).

88

Capflulo 3 Circuitos digitales

corritnlt dt fugll

y las otras tcnninales del dispositivo es extremadamente alta. superior a un megohm. La diminuta cantidad de corriente que fluye a travs de esta resistencia es muy pequea. por lo regular es menor a un microampere (pA, 10-6 A), Y se conoce como corritnte dtfl/ga. E l mismo sfmbolo del transistor MQS nos recuerda que no existe conexin entre la compuerta y las otras dos tenninales del dispositivo. Sin embargo. la compuerta de un transistor MOS est acoplada capacitivamente a la fuente y al drenaje. como podra sugerirlo el propio smbolo. En circuitos de alta velocidad, la energa que se necesita para cargar y descargar esta capacitancia en cado. transicin de la seal de entrada representa una pane no uivial del consumo de energa de un circuito.

3.3.3 Circuito del Inversor bsico eMOS


lgica CMOS
Los transistores NMQS y PMQS se utilizan en forma complementaria para formar la I6gi. ca CMOS. El circuito CMOS ms sencillo, un inversor lgico. requiere solamente uno de

cada tipo de transistor. conectados como se muestra en la figura )- IO(a). Nonnalmente, el voltaje de alimentacin. VOD se encuentra en el intervalo de 2 a 6 V Y con mucha frecuencia se establece en 5.0 V para tener compatibilidad con los circuitos m.. En tnninos ideales. el componamiento func ional del circuito inversor CMQS puede caracterizarse mediante dos casos que se tabulan en la figura 3-IO(b): l . VENT es 0.0 V. En este caso. el transistorinferiordecanal-n. Ql. est apagado. puesto que su Vpes O. pelO el transistoc superioc de canal-". Q2. est encendido. puesto que su V'5 es un valor negativo grande (-5.0 V ). Por lo tanto. Q2. presenta solnmente una pequea resistencia entre la teoninal de alimentacin (VOD ' +5.0 V) Y In tenninal de salida (VSAJ. y el voltaje de salida es 5.0 V.

Figura 3- 10 Inversor CMOS: al diagrama de circuito; b) comportamiento


funcional :

l')

(b)

'",
0.0 (l) 5.0 (H)

Q/

Ql
~.

el slmbolo lgico.

"....
(c)

.... dIXI

........

....,.t.
11-='

"....
5.0 {H) 0.0 (l)

ENTRADA

)--SAUOA

Seccin 3.3

lgica eMOS

89

2. VENT es 5.0 V. Aquf. Q/ se encuentra encendido. puesto que su V , l es un valor positivo grande (+5.0 V). pero Q2 se encuentro apagado. puesto que su Vp es O. De este modo, Q/ pre.~ nta una pequea resistencia entre la terminal de salida y tierrn. y el voltaje de salida es OV.
Con el comportamiento funcional anterior. el circuito se comporta cJnrnmente como un inversor l6gico, puesto que una entrnda de OV produce una salida de 5 volts. y viceversa. Otra manero de visualizar el funcionamiento del CMOS es el uso de interruptores. Como se ilustra en lB fi gura 3-II{a). el modelo del transistor de canaJ-n (abajo) com!sponde a un interruptor normalmente tlbierto. y el transistor de canalp (arriba) corresponde a un interruptor normalmente cerrndo. La aplicacin de un voltaje ALTO cambia cada interruptor al caso opuesto de su estado normal. como se muestra en (b).
(. )
V oo " ' OV Voo - o5.OV

(b)

Figura 3-11 Modelo de Interruptor para el inversor CMOS:


a) entrada BAJO;

b) entrada ALTO.
V""''T = L Ve.'T = H

El modelo del interruptor nos lleva a una manera de dibujar circuitos e MOS que hace.que su comportamiento lgico sea ms evidente. Como se muestra en la figura 3- 12. se emplean sfmbolos diferentes para los transistores de canal-n y de canal.p. a fin de reflejar su comportamiento lgico. El tronsistor de canal-" (Q 1) se encuentrn --activado". y la corriente fluye entre la fuente y el drenaje. cuando se aplica un "ohaje ALTO a su compuerta; esto parece bastante natural. El transistor de canal-!, (02) tiene el comportamiento
V D!) " .05.0 V

Figura 3-12 Operacin lgica del inversor


CMOS.

90

CapItulo 3

Circuitos digitales

'1

prol

Id l pe, CI ,"'o o CI

lU

opuesto. Se encuentra "activado" cuando se aplica un voltaje BAJO: la burbuja de inversin en su compuerta indica este componamiento de inversin.
3.3.4 Compuertas eMQS NANO y NOR Tanto la compuertn NANO como la NOR pueden construirse utili7.3ndo dispositivos CMOS. Una compuerta de le entmdas Ulilii'.3 le tr.msislores de canal-p y k tmnsistores de canal-". La figura 3-13 muestra una compuerta NANO CMOS de 2 entradas. Si cual quiem de las entradas es BAJO. la salida Z tiene una conex in de baja impedancia a Voo a travs del correspondiente trnnsistor de cnnal-p "encendido", y la trayectoria a tierra se bloquea n ..... -dirulled correspond ien te lrnnsistoc de canal _ti "apagado", S i ambas entradas son ALTO. la trayectoria a V oo es bloqueada. y Z tiene una conexin de bnja impedancia a tierra. La figura 3- 14 muestra el modelo de interruptor pam el runcionamienlo de la compuena NANO, La figura 3-15 muestra una compuerta e MOS NOR, Si ambas entradas son BAJO. entonces la salida Z tiene una conexin de baja impedancia a VOl) a travfs de los transistores de canal-p "que estn encendidos" y la trayectoria a tierra se encuentra bloqueada por los transistores de canal-" "que estn apagados". Si cualquier enlrnda es ALTO. la trayectoria a VOl) estar bloqueada, y Z tendr una conex.in de baja impedancia a tierra.

Figura 3- 13
Compuerta NANO de 2 entradas CMOS: a) diagrama de circuito; b) tabla de funcin; c) 51mOOlo lgico.

(o)

(b)

Q/
~

Ql
m m
~ ~

QJ
~

<i'
m
~

z
H H H
L

Z
A

L L L H H L

m
~

H H

m m

m
~

(o)

Seccin 3.3

Lgica eMOS

91

Imagen protegida pcr d rcr:ho d

)r

(.)

(b)

Z:H

Z: H

Z" l

A: l

A= H

Ac H

S .. l

e. l

e cH

FI gura 3 1 4 Modelo de Interruptores para una compuerta NANO de 2 entradas eMOS: a) ambas entradas en BAJO; b) una entrada en ALTO: e) ambas entradas en ALTO.

(.)
A

(b)

A B

Q/
~

Q2
~

QJ
~
~
~

z
~
~

Fig u ra 3 1 5 Compuerta NOA de


2 enlmdas CMOS: a) diagrama de eireulto; b) tabla de fu nciones: e) slmbolo lgico.

B
Z

"
)

L L L H L H H

~
~

" L
L L

di
~

di

A
B

) )o >o-z

92

Capitulo 3

Circuitos digitales

,.)

v""

'b)
A B

Q/
~ ~

Q
00 00 00

QJ
~

Q'
00 00
~

,
A

L L L L H H H

L L L H HL H H L L L H H L

'"
00
~

,
H H H H H H H L

HHH


00
~

,,)

I )0---,

Figura 316 Compuerta NANO de 3 enlradasCMOS: a) diagrama de circui to; b) tabla de funciones ; e) sfmbolo lgico.

3.3.5 fan In
Fa" in
La cantidad de entrndas que p"ede tener una compuerta en una familia lgica en p::u1icular se denomina Fan in de la familia . Se pueden obtener eompuenas CMOS con ms de dos entradas mediante la extensin de los diseos serie-paralelo de las figuras 3- 13 y 3-

15. Por ejemplo. la fi gura 3-16 muestra una compuena CMOS NANO de 3 entradas. En principio. se podrfa disear una compuerta CMOS NANO o NOR con una gran eantidad de entmd3s. Sin embargo. en la prctica. la resistencia adicional de "encendido" de los transistores en serie limita el Fan in de las compuertas CMOS. cuyo valor tpico es 4 para las compuertas NOR y 6 para las compucnas NANO. Confonne aumenta la cantidad de entradas. los diseadores de circuitos de compuertas CMOS deben compensar este hecho incrementando cltamao de los trnnsistores en serie para reducir su resistencia y el correspondiente tiempo de retardo en la conmutacin. No obstante. en algn punto esto llega a ser poco eficaz o poco prctico. Se pueden fabricar compuertas cada vez ms rpidas Y pequeas con una gran cantidad de

11

Figura 317 Diagrama lgico equivalenta a la estructura Interna de una compuerta NANO CMOS de 8 entradas.

11

12 13

12 13
14

" 15
16 17 16

15 16 17 18

SALIDA

Seccin 3.3
(.)

Lgica eMOS

93

V nn _ S.OV

lb)
A
Z

A L H

O '
~
~

O '
~

OJ
~

'"

'" ' " '"


~

L H

Figura 3-18

(,)

[>

Buffer no inversor eMOS: a) diagrama de ci rcuito; b) tabla de funciones; e) slmbolo lgico.

entradas si se conectan en cascada compuertas con pocas entradas. Porejemplo. la figura 3-17 ilustra la estructura lgica de una compuerta CMOS NANO de 8 entradas. El retardo total (tipico) a trav~ de una compuena NANO de 4 entradas. una NOR de 2 entradas y un inversor es menor que el retardo de un circuito NANO de un nivel con 8 entradas.

3.3.6 Compuertas no Inversoras


En las famili as lgicas e MOS, y en la mayora de las otras familias lgicas. las compuertas ms sencillas son los inversores. y las que le siguen en simplicidad son las compuertas NANO y NOR. La inversin lgica "ya est incluida" y por lo regular es imposible disear una compuerta no inversora con una cantidad inferior de transistores que una compuerta inversora. Los buffers no inversores CMOS y las compuertas ANO y OR se obtienen al concctar un inversor a la salida de la correspondiente compuerta de inversin. De esta manera, la figura 3-1 8 muestra un buffer no inversor y la figura 3- 19 ilustra una compuerta ANO. Al combinar la figura 3-15(a) con un inversor se obtiene una compuerta OA.
Flg ura 3-19 Compuerta AND e MOS de 2 entradas: a) diagrama de circuito; b) tabla de funciones; e) slmbolo lgico.

(. )
lb)
A B
L L L H H L HH

O'

01
~ ~

OJ
~

'"
~

'"
~

Z A

''" "

'" '" '" ' " ' " '" '" '" '"
~ ~ ~ ~ ~ ~ ~

Q J

Z
L L L H

1 ')

94

Capitulo 3 Circuitos digitales


V~,

(.)

~)

A B

e
L L H H L L H H L L H H L L

Q'

Q1

QJ

QJ

Q6

Q'

Q8

Z
H H H L H H H L H H H L L L L L

A B

e
D

L L L L L L L L H H H H H H

L L L L H H H H L L L L H H

L H L H L H L H L H L H L H

H H H L

H H H H

FI gura 320 Compuerta ANo.OR-INVERSORA eMOS: a) diagrama de circuito; b) tabla de funciones.

3.3.7 Compuertas CMOS


compu<!no AND-DR-

AND-OR-INVERSORA

ORANOINVERSORA

INVERSORA (AOI)

Los circuitos CMOS pueden realizar dos niveles de lgica con simplemente un solo "nivel" de tmnsistores.1Por ejemplo. el circuito de la figura 3-20(a) es una compuerta AND-OR-fNVERSORA (AO) de dos niveles y dos entradas, eMOS. La labia de funciones para este circuito se muestra en (b) y la figura 3-21 muestra el diagram111gico para estas funci ones (el cual utiliza compuertas ANO y NOR). Pueden agregarse o eliminarse transistores en este circuito paro obtener una funcin AOI con una cantidad diferente de compuertas ANO o un nmero diferente de entradas por compuerta ANO, El contenido de cada una de las columnas Q/-Q8 en la fi gura 3-20(b) depende solamente de la seal de entrada que se conecta en la compuerta correspondiente del transistor. La ltima columna se construye al examinar cada combinacin de entrada y determinar si Z est conectada a VDD o a tierra mediante transistores "que se encienden" con esta combinacin de entrada. Ntese que Z nunca se encuentra conectada tafllo a VDD como a tierra para ninguna combinacin de entrada: en un caso asf la salida seria un valor no lgico que estara en algn lugar entre los niveles BAJO y ALTO. En este caso
Figura 3-21
Diagrama lgico para la compuerta ANO-ORINVERSORA.

Seccin 3.3

Lgica e MOS

95

..
(.)
A
(b)

A B
L L L L L L L L
H H H H H H H H

e o
L H
L

o/

02

oJ

Q'

oJ

L L L L H

L L H H L H L

H L

H H H L H H H

e o

L L L L L H
L H L H H L H L H H H H L H L H

L H

""
Q7

Q8

Z
H H H H H L
L

L
H

L
L

L
H

L L L

Figura 3-22 Compuerta OR-ANO-INVERSORA CMOS: a) diagrama de circuito: b) tatxa de fu nciones.

la eSlrUctura de salida consumirla un exceso de energa debido a la conexin de baja impedancia entre Voo y tierra. Tambin se puede disear un circuito que reaJice la funcin CR-AND-INVERSORA. Por ejemplo. la fi gura 3-22(a) muestra una compllerta OR-AND-JNVERSORA (OAJ) de dos niveles y dos entr.v!.as, CMOS. La tabla de funciones pant este circuito se mucstnt en (b); los valores en cada columna se detenninan como en el caso de la compuerta CMOS tipo AO!. La figura 3-23 mueslnl el diagrama lgico para la funcin OAI que utiliza compuertas OR y NANO. La velocidad y OInlS carncterlsticas elctricas de una compuerta CMOS tipo AOI u CAl son bastante comparables a las de una sola compuerta CMOS tipo NANO o NOR. Como resultado. estas compuertas son muy alnlctivas porque pueden realizar dos niveles de lgica (ANO-CR u CR-ANO) con nicamente un nivel de retardo. La mayora de los diseadores digilll1es no se preocupan por usar compuertas AOI en sus diseos discretos. Sin embargo. los dispositivos CMOS VLS I util izan con frecuencia estas compuertas de manera intemn. ya que muchas hemullicnlllS de srnlcsis HDL pueden convertir aUlomticamente la lgica ANO/OR en compuertas AO! cuando es IIpropiado.
A
B

computrto OR-ANDINVERSORA (AOI)

z
e o

Figura 3-23 Diagrama lgico para la compuerta DR-ANDINVERSORA CMOS.

96

Caprtulo 3 Circuitos digitales

3.4 Comportamiento elctrico de los circuitos CMOS


En las secciones 3.5 a 3.7 analizan:mos los aspectos elctricos. no lgicos. del fu ncionamiento de los circuitos CMOS. Es imponante que usted comprenda este material antes de iniciar el diseo de circuitos reales con circuitos CMOS u otr.as familias lgicas. La mayor parte de este material tiene el propsito de proporcionar una infraestructum que le pennita comprobar la validez de la "abstraccin digital" para un circuito detcnninado. En particular. un diseador de circuitos o sistemas debe proporcionar los mrgenes adecuados de diseo de ingenierfa a todas las etapas del proyecto. para asegurar que el circuito runcione correctamente. aun bajo las peores condiciones.

mrgent:S de djJdlo ,It: ;ngen;u(o

3.4.1 Resumen
Los lemas que discutirenlos en las secciones 3.5 a 3.7 incluirn lo siguiente:
Ni\'dt!S lg icos de \'oltaje. El fabricante garantiza que los di spositivos CMOS

que operan bajo condiciones normales producirn ni\'eles de voltaje de salida que estarn comprendidos en intervalos bien definidos (BAJO y ALTO). A su vez los dispositivos reconocern los niveles de voltaje de entrada BAJO y ALTO de algunos intervalos ms amplios. Los fabricantes de dispositi\'os CMOS especifi can estos intervalos y condic i one.~ de operacin con mucho cuidado p.ara aseguM la compatibilidad entre diferentes dispositivos de la misma familia y p.ara suministrar cieno grado de interconectividad (si fuera necesario) entre dispositivos de familias diferentes.
M'8C11t!s de ruido de CD. Los mrgenes no negativos de ruido de CD aseguran que el voltaje BAJO de mayor nivel que produce una salida siempre ser menor que el ~'O ltaje nls alto que una entrada puede interpretar confiablemente como BAJO: y quc el \'Oltaje ALTO de menor nivel que produce una salida siempre ser mayO!"" que el voltaje ms bajo que.una entrada puede inlerprclBr confiablcmente como ALTO. Una buena comprensin de los mrgenes de ruido es esped almente importante en los circuitos que emplean dispositivos de diferentes ramilias.

Fan

Se refiere al nmero y tipo de entrodas que se conectan a una salida detenninada. Si se conectan demasiadas entradas a una salida. los mrgenes de ruido de CD del circuito pueden ser inadecuados. La cargabilidad de salida tambin puede afectar la velocidad con la que cambia la salida de un estado a otro. Velocidad. El tiempo que le toma a una salid3. e MOS cambiu del estado BAJO al estado ALTO, o viceversa, depende tanto de la estructura interna del dispositi\ '0 como de las caracterfsticas de los otros dispositivos que maneja. inclusive. las pi sta~ de la tarjeta de circuito impreso que se conectan a la salida pueden afectar la velocidad. Posteriormentc examinnre.mos dos componentes independientes de la "\'clucidad": el tiempo de transicin y el retardo de propagacin. Consumo de energ(a . La energa que consume un dispositivo CMOS depende de varios factores. que incluyen no slo su estructura interna, sino tambin las seftales de entrada que recibe, los dispositivos que controla y con qu frecuencia su salida cambia entre los estados BAJO y ALTO.
O UI .

Seccin 3.4

Comportamiento elctrico de los circuitos CMOS

97

Ruido. La razn principal por la que se deben proporcionar los mrgenes de diseno de ingenieria es aseguror el funcionamiento adecuado del circuito en la presencia de

ruido. El ruido puede ser generado por diversas fucntes; a continuacin se indican varias de ellas. se indica primero la menos probable hasta llegar (en forma sorprendente) a la ms probable: Rayos csmicos. Campos magnticos que provienen de maquinaria cercana. Penurbaciones de la fuente de alimentacin. La accin de conmutacin de los propios circuitos lgicos.

D~scargas d~ctrostticas.

Sabe usted que puede destruir un dispositivo CMOS

slo con tocarlo? Salidas de drenaje abierto. Algunas salidas de CMOS omiten los transistores habituales cannl-p (pull-up). En el estado ALTO. una salida de este tipo se comporta esencialmente como una "no conexin", lo cual es til en algunas aplicaciones. Salidas de tres estados. Algunos dispositivos CMOS tienen una entrada adicional de control para "habilitar la salida" que se puede utilizar para deshabilitar tanto los transistores de canal-p como los transistores de canal-n (pull-down). Se pueden conectar entre sf varias salidas de dispositivos de esta clase para crear un bus de fue nte mltiple, siempre y cuando la lgica de control se arregle para que solamente se encuentre habilitada una salida a la vez.

3.4.2 Hojas de datos y especificaciones


Los fabricantes de los dispositivos del mundo real proporcionan hojas de datos que especifican las caracterfsticas elctricas y de lgica del dispositivo. La tabla 3-3 muestra la seccin de especificaciones elctricas de una hoja de datos de un dispositivo sencillo CMOS, la compuena NANO cudruple 54174HCOO. En generaJ, los fabricantes pueden especificar parmetros adicionales, e incluso puede variar la fonna en la que especifican los parmetros "cstndar" de la tabla. Por consiguiente, tambin se indican los circuitos de prueba y las formas de onda que se utilizan para definir los diversos parmetros. por ejemplo como se muestran en la figura 3-24. Ntese que esta fi gura contiene informacin de algunos parmetros, adems de los que se aplican al 54n4HCOO. Es probable que en este momento la mayor parte de los tnninos de la hoja de datos y las fonnas de onda de la figura no tengan sentido alguno para usted. Sin embargo. despus de leer las secciones 4. 5 Y6 usted conocer lo suficiente acerca de las caracteristicas eI&:tricas de los circuitos CMQS y podr comprender los aspectos ms imponantes de sta O cualquier otra hoja de datos. Como diseador lgico. usted necesitar este conocimiento para crear sistemas y circuitos confiables y robustos en el mundo real.
hojas de da/os

1m ~e' prOI ~Id pe' d '''''

u r

98

Captulo 3

Circuitos digitales

T a b la 3-3 Hoja de especificaciones del'abticanle para un dispositivo Ifpico C-MOS, un 54f74HCOO, compuerta cudruple NANO.

1m

~e1

prOle lO) ~ a

NUrA ~':

cfl/ulicionts mosmul" s coma M tf.rimo o "'(fllmo, /l/ilice e/l'olor aprop iado ej~cificado bajo C"ruc/u(s/icIJs E/tc ,rie(/s. 2. Los \"/Jlo,..s /(picos .tOfI/N/m Vcc 5.0 V. +25"C /CIflpt'f1I11HTI /lmbitlllt. l.
" ",'(1

1. Na /IIds dI' /l/Ill mliml dtbtrfll poneru en corto 1I 1111~Z. LlI du rocill de la pnltOO de COrto circuito no dtm-n'a t:tctdu IIn stgullllo. 4. Esle /1(lf(imt lm tsuf gllfflfl llj/(Io I~ro no prolKldo

1a po

je

ut

Seccin 3.5

Comportamiento elctrico de estado estable de los dispositivos eMOS


CARGA

99

CIRCUITO DE PRUEBA PARA TODAS LAS SALIDAS


,~
,~

...."'PI~

,~

"

... -

,~

........ .... ''" ... ..


\u

T "

'i~

...
"""""""', c,.-Crc.N ,
A,- . p . ,
!

"" "'" "" o - .",

. .", "
&1 1

Cer_
NI

"

c.,ldO
CeI,IdO

,f/.to CeI ,

.
'

.at ' JI'IO

AP

"'"

At. te>

Ot_~

nEMPOS DE ESTABLECIMIENTO, RETENCIN Y LIBERACIN

'"

""'e::lOr, : -.... ,

rlolo_y;'

: Ot "'---

z..." rlol 000.

, ... 05 : " (PA. Cl.R.'-:" .... 05 L (Q.KEN. ,-:"

El. ',.. ;:,.... El._ ........

... ... ,., ...


,~

ANCHO DE PUlSO
1" ro

o.ov
,~

'-I.101 ' JO ,~TO

,~

"""

.
DHIW!fU 1Or,

o.ov

RETARDO DE PROPAGACIN

nEMPOS DE HABILITAC1N y DESHABIUTACION DE TR ES ESTADOS

" S, s l o _
s s ..

11111. 16"

, " .... ALTO


...

.. ,.-

,. -... - "" - .Doi-5O'!Io - ~f


~

...
,~
,~
,~

o.ov
,~

...
,~

0.0 \1

F I 9 u r a 3 - 2 4 Circuitos de prueba y formas de onda para lB lgica de la serie HC.

3.5 Comportamiento elctrico de estado

estable de los dispositivos eMOS


En esta seccin analizaremos el comportamiemo en cstndo estable de los circuitos CMOS,

es decir. el compor1amiento de los circuitos cuando no cambian sus entradas y salidas. La siguiente seccin analiza el comportamiento dinmico, que incluye la velocidad y disipacin de energfa.

3.5.1 Niveles lgicos y mrgenes de ruido La labIa de la figura 3-IO(b) de la pgina 88 define el componamiento del inversor de
CMOS cuando se aplican solamente dos vohajes discretos de entrada; otros vohajes

100

Capitulo 3 Circuitos digitales

5.0
ALTO

-t--,---,--,-...,.. ." , .,. '," , r',', , '


. .. ..,..
~

3.5 - '-+-~-;--:-- -~--:--:--~--:

, " " """".,


~

.....,.... ...
,_~

' L .

' L

_~

indefinic\o

L5

,." " ," -,-,--,--r-'--,--r-.-, ,- " " -"'" -, .." "'~' -,-~--,_ ." .. '.. ".'-~ ",' " , , ,." , , '' , '

... -

....-.

Figura 3-25 Caracterstica de transferencia tpica de entrada-salida para un inversor CMOS.

BAJO

o o

,."""" ,. , t.", -.' ... '... - ...,.-.

--j--,--t- ',",--,--,'-,

- , - , . ',' - r ' , - , . ' I " r - . - ,

...

v~"

1.5

3.5
indefinido
ALTO

50

BAJO

de entrnda pueden producir diferentes voltajes de salida_La caracterstica de transfere ncia entrada-salida completa puede describirse con la ayuda de una grfica como la de la fi gura 325. En esta grfica, el voltaje de entrada varia de O a 5 V. como se observa en el eje X; el eje Y representa cl voltaje de salida. Si confiamos en la curva de la figura 325. p,xirfamos definir un nivel de entrada BAJO de e MOS como cualquier voltaje inferior a 2.4 V. y un nivel de entrada ALTO como cualquier voltllje superior n 2.6 V. Solamente cuando In entrada se encuentra entre 2.4 y 2.6 V el inversor produce un voltaje de salida no lgico. bajo esta definiei6n. Por desgracia. la caracterstica tpica de transferencia que se indica en la figura 3-25 es slo eso: tpica. no se puede garnntizo1r. ~sta vara grandemente bajo di ferentes condiciones de voltaje de alimentacin. temperatum y carga de salida. La carncterstica de transferen cia puede inclusive variar dependiendo de la fecha de fabricaci6n del di spositivo. Por ejemplo. despus de meses de tratar de comprender por qu las compuertas que se f:!bricaron en una fecha panicular no operaban adttuadamente. cuenta la lcyenda que un fabricante descubri6 que las compuertasdcfcctuosas er.m vctimas de contaminacin area dcbido a un pcumc particularmente pernicioso que utilil una de las opcr:ui:lS de la Ifnen de produccin! La experiencin prctica de la ingeniera de sonido indica que utilicemos especificaciones ms conservadoras para BAJO y AL TO. La figura 326 muestra In.o especificociones conservadoras para una familia tIpica de lgica eMQS (serie HC). El rabricante! de los dispositivos eMOS especi fi ca estos parmetros en hojas de datos similares a las de la tabla 33 , y se definen como sigue: V tHmin El mnimo vollllje de salida en el estado ALTO. VlIlm in El mnimo vollllje de entrad:! que se garantizu ser reconocido como ALTO. Vn.m.u El mximo voltaje de entrada que se garantizu ser reconocido como BAJO. VOLm.u El mximo vohaje de salida en el estado BAJO.
Las voltajes de entrada estn detenninados primordialmente por los umbrales de con-

mutacin de ambos transistores. mientras que los vollajes de salida estn determinados por la resistencia "de encendido" de los transistores.

Seccin 3.5
V

Comportamiento elctrico de estado estable de los dispositivos e MOS

101

oc

vOl' .....
VIII ....

0.7 Va:

Margen de rvicIo de CD 8fl Miado A.LTO

0.3 Vcc

V,~
v~

Margen de Nido de CD 8fl MIado BAJO

F i gu ra 3 26 Niveles Igcos y mrgenes de ruido para la familia lgica CMOS serie HC.

Todos los parmetros de la figura 3-26 estn garantizados por los fabricantes de CMOS en un intervalo especffico de tempcralUra y carga de sal ida. Los parmetros tambin estn garantiz.ndos en un intervalo de voltajes de alimentacin Vec . tfpicamente de 5.0 V:t 10%. La hoja de datos de la tabla 33 de la pgina 98 especifica valores de cada uno de estos parmetros para los CMOS de la serie He. Ntese que existen dos valores especificados para VOHmn y Vot..nw:. dependiendo de si la corrieme de salida (I0H o 1 00 es pequerla o gronde. Cuando las salidas del dispositivo se conectan a otras entradas CMOS. la corriente de salida es baja (por ejemplo. tOL " 20 l /A), de modo que hay muy poca caCda de voltaje a tr.lvs de los transistores de sal ida. En las siguientes subseccionc:s nos enfocaremos a estas apl icaciones "puras" de los CMOS. El voltaje de alimentacin V cc y el voltaje de tierra se denominan f(1I~{U de alim~n taci6n. Nonnalmeme los niveles CMOS son una funcin de la... lfneas de alimentacin: VOH min
V lllmin

/{IINJS d~ a/jm~ntacilI

V,Lmu V",,",

Vcc - O. I V 70% de VCC JO% de Vcc tierra + 0. 1 V

Ntese en la tabla 3-3 que VOH mln est especificado a 4.4 V. Esto es solamentc una carda de 0.1 de Vce. ya que el peor de los casos se especifica con Vce a su valor mfnimo de 5.0 - 10% :::: 4.5 V. El margel! de r/lit/o de CD indica cunto ruido se necesita para cOlTOmper un voltaje de salida (en el peor dc los casos) en un valor que no pueda ser reconocido adecuadamente por una emroda. Para [os CMOS de la serie HC en el estado BAJO. Vnm n (1.35 V) excede V OLmu (0.1 V) por 1.25 V de modo que el margen de ruido de cn del estado BAJO es de 1.25 V. De igual fonna. eI margen de ruido de CD en el estado ALTO es de 1.25 V. En generol. la.~ salidas CMOS tienen excelentes mrgenes de ruido de cn cuando excitan a otras emradas CMOS. . Sin importar el voltaje que se aplica en la entrada de un inversor CMOS. la entrada consume muy poca corriente. solamente se considera la corrientc de fuga de las dos compuertas de [os transistores. El valor m1ximo de corriente que puede fluir tambin se encuentro especificado por el fabricante del dispositivo: ' 111 La corrieme mxima que fluye en la entrada en el estado ALTO. IrL la corriente mxima que fluye en la entrada en el estado BAJO.

l7I/1rgt'lIllt' r/litlo dt' e D

102

Capitulo 3 Circuitos digitales


V(Y' 5.0

v
(b)

1'("("" 5.0 V

EQuivalente l"hV1:lnln

(, )

Va....

V"'T

Fi gura 3 -2 7 Modelo resistivo de un inversor eMQS con una carga resistiva: a) mostrando el circuito de carga real: b) haciendo uso det equlvatente de Thvenln de la carga.
I...a comente de entrada que se indica en la tabla ) -) para el 'HCOO es tan slo I ~ . De este modo, se requiere poca energa para mantener una entrada CMOS en un estado o en el ouo. ste es un constraste considerable con los circuitos bipolares de lgica como TTL y ECL. cuyas entradas pueden consumir una cantidad considerable de corriente (y energa) en uno o ambos estados.
3.5.2 Comportamiento del circuito con cargas resistivas Como se mencion con anterioridad. las entradas de las compuertas CMOS tienen una imped:mcia nluy elevada y toman poca corriente de los circuitos que manejan. Sin embargo, existen otros dispositivos que requieren cantidades poco triviales de corriente para fun cionar. Cuando un disposilh'o de esta naturaleza se conecta a una salida CMQS. lo llamamos una carga I?sistil'a o una carga de CD. Aqu tenemos algunos ejemplos de cargas resistivas:

('(I '!(I

rui.rlim

('(1'1/ (1

dt CD

Se pueden incluir resistores discretos parn proporcionar una ternlinacin en la lnea de U"aIlsmisin. como se analiza en la seccin 11.4. En realidad los rcsistores discretos pueden no estar presentes en el circuito. pero la carga que presentan uno o ms dispositivos TTL u otras entradas que no sean eMOS pueden modelarse como una red sencilla de resistores. Los resisuxcs pueden ser parte de o pueden modelar un dispositivo que consume energa. como en el caso de un diodo emisor de luz (LED, por sus siglas en ingls) o la bobina de un relevador. Cuando se conecta la salida de un circuito CMOS a una carga resistiva, el comportamiento de la salida no se acerca tanto a la situacin ideal que hemos descrito con anterioridad. En cualquier estado lgico. el tmnsistor de salida CMQS que se encuentro. "encendido"liene una resistencia distinta de cero. y cualquier carga que se conecle en la lenninal de salida ocasionar una cada de voltaje a tro.vs de esta resistencia. De eSle modo. en el estado BAJO. el voltaje de salidu puede ser algo mayor de O. J V, Yen el estado ALTO puede ser menor de 4.4 V. La manera ms fcil de observar lo anterior consiste en examinar un modelo resistivo del circuito y la carga CMOS.

Secclr1 3.5

Comportamiento elctrico de estado estable de los dispositivos CMOS


V('(";;

103

+$.0

Equivalente Thvenin

VENT .. . 5.0 V (ALTO)

l13.g n p O"Xl

px d fC;ho,: d allor

Figur a 3-28
Modelo resistivo de salida BAJO de e MOS con carga resistiva.

La figura 3-27(a) muestra el modelo resistivo. Los transistores de canal-p y canal-n

tienen las resistencias Rp y RD respectivamente. En operacin normal. una resistencia es alta (> I MO) Y 1 11 otra es baja (quizs 100 0). dependiendo de si el voltaje de entrada es ALTO o BAJO. La carga en este circuito se compone de dos resislO!"eS que se conectan a las Uneas de alimentacin: un circuito real puede tener cualquier cantidad de resistoces, o inclU50 una red resistiva ms compleja. En cualquier caso. una carga resistiva que esl~ formada en su lotalidad por resislores y fuentes de voltaje. siempre podr modelarse por una red equivalente de Thvenin. como la que se ilustra en la fi gura 3-27(b). Cuando el inversor CMOS tiene una entrada ALTO. la salida deberla ser BAJO; el voltaje real de salida puede predecirse utilizando el modelo resistivo que se indica en la fi gura 3-28. El transistor de canal-p se encuenlra "apagado" y tiene una resistencia muy elevada, suficientemente alta para que sea despreciable en los siguientes c4.lculos. El tmn-

11 gen p 01

)da P)f

rech s

autor

104

Capftulo 3 Circuitos digitales

sistor de canal-" se encuentra "encendido" y tiene una resistencia baja. que suponemos es 100 Q (La resistencia real "de encendido" depende de In familia CMQS y otras caractersticas tales como temperatura deoperaci6n. etc.). El lnlnsistor"cocendido" y el rcsistor equivalente de Thevenin RThev de la fi gura 3-28 forman un divisor de voltnje sencillo. El \'oltajc de salida se puede calcular como se indica:

VSAL = 3.33 Y []OO / ( ]OO+667 )]

= 0.43 V
En fonna semejante. cuando el im'ersor tiene una entrada BAJO. la salida debcrfn ser ALTO. y el voltaje real de salida puede predecirse con el modelo de In figu ra ) -29. Supondremos que la resistencia "de encendido" del transistor de canal.p es 200 Q. Una vez ms. el transistor "encendido" y el resistor equivalente de Thvenin RThev en In fi gura. fonnan un divisor de voltaje. y el \'oltaje de salida rcsu\lante puede calcularse como se explica a continuacin:

VSAL - 3.33 Y+(5Y -3.33 Y ) [667/ (200+667 ) 4.6 ] y


En In prcticn, mm vez se necesita calcular \'oltajes de saJida como en los ejemplos anteriores. De hecho. es normal que los fabricantes de Cls no especifiquen las resistencias

equivalentes de los transistores "encendidos", de modo que no se tendrn la informacin necesaria para realizar los clculos todas fonnas. En \ 'CZ de cso. los fabri cantes de el especifi can la carga mxima. para la salida en cada estado (ALTO o BAJ O), y garantizan un voltaje de salida -en el peor de los casos- para esa ctuga. La carga se especifica en trminos de corriente:

'ot.rnu
' Olt nw

La corriente mxima que puede consumir la salida en el estado BAJ O mien-

tras mantiene un voltaje de salida inferior a VQI...mn ' La corriente mxima que puede suministrar la salida en el estado ALTO mientras mnntiene un voltaje de salida superior a V Oltmin '

Fi g ur a 3-29
Modelo resistivo para

Vcc

" +.5.0 V

Equivalente Thvenin

salida ALTO eMOS


con carga resistiva,

V""'"T . -Ml.OV ]BAJO]

Seccin 3.5
(o)

Comportamiento e lctrico de estado estable de los dispositivos CMOS


(b)
'o;:orr;ent

105

l umin;'t'

,
F i 9 u r a 3-30 Definiciones de circuito de (a) IOLIWI~; (b) IOHrrw:' Estas defi niciones se ilustran en la figura 3-30. Se dice que la salida de un dispositivo conswne corriente cuando la comente fluye desde la fuente de alimentacin, a trnvb de corrirrllr consumido la carga y a travs de la salida del dispositivo hacia tiem como en (a). Se dice que la salida suministra corriellle cuando la com ente fluye desde la fuente de alimentacin. corrirrllr s,.,n;";S(mm, fuera de la salida del dispositivo y a travs de la carga hacia tiem como en (b). La mayor pane de los dispositivos CMOS tiene dos conjuntos de especificaciones de carga. Un conjunto es para "cargas e MOS", donde la salida del dispositivo se conecta a otras entradas CMOS, que consumen poca com ente. El otro conjunto es para "cargas TfL", donde la salida se eonecta a cargas resistivas taJes como entradas TfL u otros dispositivos que consumen una cantidad considerable de comente. Por ejemplo, las especificaciones para las salidas CMOS de la serie HC se mostraron en la tabla 3-3 y se repiten en la tabla 3-4. Conviene indicar que en la tabla la com ente de salida en el estado ALTO se indica como una cantidad negativa. Por convencin, el flujo de corriente que se mide en la ter- /lujo dr corrirntr minal de un dispositivo es positivo si la corriente positiva fl uye hacia d interior del dispositivo: en el estado ALTO, la comente fluye hncia f uera de la tenninal de salida .

T a bl a 3-4 Especificaciones de carga de salida para CMOS serie HC con una alimentacin de 5 V .
Csrga CAlOS
Parmetro
Comente mima de salida e n estado BAJO(mA)

CsrgaITL Nombre
100.maxT VOl.ma.\T IOHmaxT VOHminT

Nombre
' OLmuC
V OLmuC ' OHmuC VOHmine

VIIlor
0.02

Valor
4.0
0.33

Voltaje mximo de salida en estado BAJO tV)


Corriente mltima de salida en estado ALTO (mA)

0. 1
-0.02

-4.0

Voltaje mrnimo de salida e n estado ALTO ( V)

4.4

3.84

106

Capitulo 3 Circuitos digitales

Como se muestra en la tabla, con cargas CMOS. el voltaje de salida de la com puerta CMOS se mantiene dentro de 0.1 Y de la linea de alimentacin. Con cargas 11l.., el ~"Oltaje de salida puede degradarse bastante. Cabe indicar que para la misma corriente de salida (:4 mAl, la cada mxima de ~"Oltaje con respecto a la Ifnea de alimentacin es el doble en el estado ALTO (0.66 V) que en el estado BAJO (0.33 V). Esto sugien: que los transistores CMOS de canal-p de la serie He tienen una resistencia de "encendido" ms alta que los trunsistores de canal-n. Esto es natural, porque en cualquier circuito CMOS. un u-ansistor de canaJ-p tiene ms de dos veces la resistencia de "encendido" que un tran sistor de canaln con la misma rea. Podlan obtenerse caldas de voltaje de la misma magnitud en ambos estados si las dimensiones de los transistores fueran mucho mayores en los transistores de canal-p que en los transistores de eanal-n, pero por varias razones fste no es el caso. Se puede utilizar la ley de Ohm para determinar cuAnta corriente suministra o consume una salida en una situacin determinada. En la fi gura 3-28 de la pgina 103. el transistor de canal" "encendido". que est modelado por el resistor de 100 n, tiene una c:1da de 0.43 V :1 truvfs de fl: por consiguiente. consume (0.43 V)/( I00 n) "" 4.3 mA de corriente. En forma similar, el trunsistor de canalp "encendido" de la figuru 3-29 suministra (0.39 V)/(200 n ) '" 1.95 mA. En general. no se publican las resistencias reales de "encendido" de los transistores de salida CMOS, de modo que no siempre es posible emplear los modelos exactos de los prrafos ameriores. Sin embargo. usted puede estimar las resistencias de "encendido" utilizando las ecuaciones siguientes. las cuales se basan en especificaciones que siempre se publican:
V DD - VOHminT

IJOHrna~~
VOLtruuT
JOLnw.T

Estas ecuaciones emplean la ley de Ohm para calcular la resistencia "de encendido"

como la cada de voltaje a travEs del transistor "encendido" dividida entre la comente que circula por el mismo, con una carga resistiva en el peor de los casos. Haciendo uso de los datos del CMOS serie HC de la tabla 3-4. podemos calcular Rp(cllccooidol '" 175 n y Rr(cr...cildido) = 82.5 n . Pueden hacerse buenas estimaciones de la comente de salida etl el peor de los caSOl. suponiendo que tlO exilIe cada de voltaje a travfs del trnnsistor "encendido". Esta suposicin simplifica el anlisis, y produce un resullado conservador que casi siempre es b.1stnnte bueno para fi nes prcticos. Porejemplo. la fi gura 3-3 1 muestra un inversorCMOS que excita a la misma carga equivalente de TMvenin que utilizamos en los ejemplos anteriores. No se muestm el modelo resistivo de la estructura de salida porque ya no se necesil.ll. Suponemos que no existe cada de voltaje 11 tr:wfs del transistor CMOS que est "encendido". En (a). con la salida BAJO, todoel voltaje del equivalente de ThEvenin (3.33 V) aparece a travEs de RThn' y el valor estimado para la comente consumida es (3.33 vy (667 n) =<5.0 mA. En (b). con la salido ALTO y suponiendo una alimentacin de 5.0 Y, la colda de voll.llje a trovEs de RThcv es 1.67 V Yel valor estimado para la comente de suministro es ( 1.67 V)/(667 n ) '" 2.5 mA.

Seccin 3.5

Comportamiento elctrico de estado estable de los dispositivos eMOS

107

(.)

Inversor

eMaS

Equivalente lhvenin de carga resistiva

(b)

/
VENT - AL :

/
v",, _

vce -

+5.0 V

Inversor
eMOS

Equiyalente Thvenin de carga resistiva

/
VSAl. -

.s.0 v

1SAl. - S.O mA

F I 9 u ro 3 -31 EsUmacln de corriente consumida y suministrada: a) salida en BAJO; b) salida en ALTO.

Una caracterfstica imponanle del inversor CMOS (o de cualquier circuito CMOS) es que la estructura de salida por sf misma consume poca corriente en cualquier estado. ALTO o BAJO . En cualquier estado. uno de los transistores se encuentra en el estado "apagado" de alta impedancia. Todo el flujo de corriente del que hemos estado hablando se presenta cuando una carga resistiva se conecta a la salida CMOS. Si no hay carga, entonces no existe flujo de corriente. y el consumo de energa es cero. Sin embargo, cuando se conecta una carga, la corriente fluye tanto por la carga como por el transistor "encendido" y ambos consumen energa.

3.5.3 Comportamiento del circuito con entradas no Ideales Hasta ahora, hemos asumido que las entradas AlTO y BAJO de un circuito CMOS son voltajes ideales, muy cercanos a las lneas de a1imentaci.n. Sin embargo. el comportamiento de un circuito inversor real CMOS depende tanto del voltaje de entrada como de las caracterfst:icas de la carp.. Si el voltaje de entmda no se encuentra ce.ca de la lnea de alimentacin. entonces el transistor "encendido" puede no encontrarse completamente "encendido" y su resistencia puede aumentar. Del mismo modo. el transistor "apagado" puede no estar completamente "apagado" y su resistencia puede ser inferior a un
megohm . Estos dos efectos se combinan para desplazar el voltaje de salida lejos de la Unea de alimentacin.

108

Captulo 3 Circuitos digitales

,.)

"n- " +5.0 V


'b)

" SAl... .. 4.31 V

"t!...,- = 3.5 V

" SAL = 0 .24 V

F i gura 3 - 32 tnversor CUOS con voltajes de entrada no ideales: al circuito equivalente con entrada de 1.5 V; b) circuito equivalente con entrada de 3.5 v.

Por ejemplo. la fi gura 3-32(a) muestra un comportamiento posible del inversor CMOS que Iiene una entrada de 1.5 V. La resistencia del transistor de canal-p se ha du plicado en este punto. y la resistencia del transistor de canal -Ir comienza a activarse. (Estos valores son meras suposiciones para propsitos de ejemplo; los valores reales dependen de las caractersticas especfficas de los transistores.) En la fig ura. la salida de 4.31 V todavfa se encuentra en el intervalo de validez para una seal ALTO. pero no se acerca al valor ideal de 5.0 V. En forma semejante. con una entrada de 3.5 V en (b), la salida BAJO es de 0.24 V. no de OV. En general, esta pequea degradacin en el vahaje de salida es tolerable; lo preocupante es que la estructura de salida comsume una cantidad nada despreciable de energfo . El flujo de corriente con la entrada de 1.5 V es de
l coolillmida

= 5.0 V / (400 Q + 2.5 kQ ) = 1.72 mA

y el consumo de energfa es

Poomumida = 5.0

V Iconsumida

8.62 mW

El voltaje de salida de un inversar CMOS se deteriora an ms con una carga resistiva. Una carga de este tipo puede existir por cualquiera de las razones que se analizaron con anterioridad. La figura 3-33 muestra un comportamiento posible del inversar CMOS que tiene una carga resistiva. Con una entrada de 1.5 V. la salida de 3.98 V todava se encuentra dentro del intervalo de validez para una seal ALTO. pero est muy lejos del valor ideal de 5.0 V. De manera similar. con una entrada de 3.5 V como se muestra en la fi gura 3-34. la salida BAJO es de 0.93 V. y no de OV. En sistemas CMOS 'puros" . todos los dispositivos lgicos del circuito son CMOS. Puesto que las entradas CMOS tiene una impedancia muy elevada. presentan poca carga resistiva a las salidas CMOS que las activan. Por lo tanto, los niveles de salida CMOS pennanecen muy cerca de las meas de alimentacin (OV Y5 V). Y ninguno de los disposith-os desperdicia enetga en sus es1ructuras de salida Por otrJ parte. si las salidas 111.. u otras sciWes lgicas no ideales se conectan a las entradas CMOS. entonces las salidas

Seccin 3.5

Comportamiento elctrico de estado estable de los dispositivos CMOS


Voc .. +S_OV

109

Equlvalenle Thvenin

VEIfT - +I.SV (BAJO(

Figura 3-33 Inversor CMOS con carga y entrada no Ideal de ' .5 V.

eMOS utilizan energCa como se indica en esta subsecdn; esto se fonnaliza en el cuadro que est en la pane superior de la pgina 139. Adems, si las entradas TTI. u otras cargas resistivas se conectan a las salidas CMOS, entonces las salidas CMOS utilizan la energ(a

como se indica en la subseccin anterior.

3.5.4 Fan out El Fun out de una compucna lgica es la cantidad de entradas que puede controlar la compuerta sin exceder sus especificaciones de carga en el peor de los casos. Elfan oul depende no solllmente de las caractersticas de la salida, sino tambin de las entradas que se estn conlrOlando. El Fa" out debe analizarse considerando los estados posibles de salida, ALTO y BAJO. Por ejemplo. como se indica en la tabla 3-4 de la pgina 105, la corriente mxima de salida de estado BAJO 1 00000c para una compuena CMOS serie HC que excita a entradas CMOS es de 0.02 mA (20 p.A). Tambin establecimos con anterioridad que la mxima comenle de entrada Itmn para una entrada CMOS serie HC en eualquier estado es I p.A. Por 10 tanto, elfun oar d~ eslado BA.JOde una salida de CMOS serie He que controla entradas CMOS de la serie HC es 20. La tabla 3-4 muestra tambin que la corriente mxima de salida del estado ALTO I OHmnC es - 0.02 mA ( - 20 JJ.A).

f an out

fan out d~ wado BAJO

Equivalente Thvenin

Figura 3-34 Invel"SOf CMOS con carga y entrada no


ideal de 3.5 V.

VI(lI,T"' +3.5V

(ALTO)

110
l aR
OUI

Capitulo 3 Circuitos digitales


de waJo ALTO

f an

QUI lO/al

fUR oul

el)

fim

001

de CA

Porconsiguieme, elf(Jn out de estado ALTO para una salida CMOS de la serie HC que excita enlrodas de la serie HC tambin es 20. N6tese que el fan out estado ALTO 'i de estado BAJO de una compuenn no son necesariamente iguales. En generol, el un out tO/(j1 de una compuerta es el mfnimo de el fan OUI de estado ALTO 'i de el fan oul de estado BAJO. es decir. 20 para el ejem+ plo anterior. En el ejemplo de fan out que acabamos de tenninar. asumimos que OI.. "'Cesitbamas mantener la salida de la compuerta en los niveles CMOS, es decir, dentro de 0.1 V del voltaje de las lneas de alimentaci6n. Si estuviramos dispuestos a tolerar algo de degradacin. en niveJes de salida TIL. enlonces podramos utilizar ' Ol.ma(f e J0I1muT paro el clculo del fan out. La tabla 3-4 muestro que esus especificaciones son 4.0 mA 'i -4.0 mA, respectivameme. Por 10 tan to. el fan out de una salida CMOS de la serie HC que excita entradas de la serie HC a niveles TfL es 4000, al parecer, vinualmente ilimitada. Bueno, en realidad no es 3Si. Los clculos que acabamos de realizar proporcionan d /tm Old de CD, definida como el nmero de entradas que puede controlar una salida, cuando el estado de la solida pennanece cans/(Jn/e (ALTO o BAJO). Incluso si se satisface la especificacin de fan out de CD. una salida CMOS que controla un gran nmero de entradas puede no comportarse satisfactoriamente en las transiones, BAJO a ALTO, o viceversa. Durante las transiciones, la salida CMOS debe cargar o descargar la capacitancia parsita que est asoci3da con las entrndas que maneja. Si esta capacilancia es demasiado grande. la transicin de BAJO a ALTO (o viceversa) puede ser de masiado lenla. provocando un funcionamiento inapropiodo del sistema. La habilidad de una salida paro cargor 'i descargar la c3pacitancia pamsta se conoce tambin como Jan out de CA, aunq ue rara vez se cakula en forma lan precisa como el fan out de CD. Como se vcm en la seccin 3.6.1, es ms un asunto de decidir cunta degTildacin en la velocidad se va a tolerM.

3.5.5 Efectos de la carga


Al sobrecargar una salida ms all de su fan out se producen los siguientes cfeclOS:

En el estado BAJO. el voltaje de salida (VoJ puede incrementarse msallde VO!.m&x'

En el e.<tado ALTO, el vohaje de salida (VOH ) puede caer por debajo de VOHmin' El relartlo de propagaci6n de la salida puede aumentar ms all de las especificaciones. Los liempos de ascenso y desce nso de salida pueden incrementarse ms nll de sus especificaciones. La temperatura de OJlCTilci6n del dispositivo puede incrcmemnrse, reduciendo por ello la confinbilidad del disposith'o 'i con el paso del tiemlXl puede oca~ionor fallas en el mismo,

Los primeros cuatro efectos reducen los mrgenes de ruidoclc CD y los mrgenes de temporiz.acin del circuito. De este modo, un ci/CuilO ligemmente sobn.."'C3Igado puede funcionar

en forma adecuada bajo condiciones ideales, pero la experiencia nos dice que llegar a rallar una vez que se eocuen~ fuera del ambiente agTildllble del laboratorio de ingeniera

Seccin 3.5

Comportamiento elctrico de estado estable de los dispositivos e MOS

lo)

(b)

.5.

111

lo)
IkO

x-q

,X

0",,100
IkO
Z

'-

F 1gura 3 - 35 Entradas sin utilizar: a) unidas a olra enlrada: b) NANO levantada: el NQR disminuida.

3.5.6 Entradas que no se utilizan


En ocasiones. no se utilizan todas las entradas de una compuerta lgica. En un problema

real de diseo se puede nttesitat una compuerta con n entrados pero solamente hay disponible una compuerta con (n + 1) entradas. Al unir dos entradas de la compuerta con (n + 1) entradas se oINiene [a funcionalidad de una compuerta de n cntr.v!ls. Con\'nzase usted mismo de este hecho de manera intuitiva ahora. o haga uso del lgebra de conmu tacin para probarlo despus de estudiar la seccin 4. 1. La figurn 3 35(a) muestru

una compuerta NANO con sus entradas unidas.


Tambin se pueden unir las entradas que no se utilizan a un valor lgico cons-

tante. Una entmda ANO o NANO sin utilizar deberla conectarse al Ilgico. como en (b), y una enlrada OR o NOR sin Ulilizar deberla conectarse al O lgico, como en (e). En el diseo de circuitos de alta velocidad es preferible emplear el mtodo (b) o (e) en lugar del mtodo (a). el cual incrementa la carga capacitiva sobre la seilal de control y puede alentar las cosas. En (b) y (e). se utiliza un resistoreon valor de l a 10 kfl. Y un solo resistor (pull-up o pull-down) puede manejar a las enlradas que no se utilizan. Tambin se pueden unir directamente las entradas que no se utilizan a la !fnea de alimentacin adecuada. Las entradas CMOS que no se utilizan nunca deben estar ftocando o sin conectarse a ningn punto. Cualquier entrada que est flotando se comportar como si tuviera una seal BAJO y nonnalmente mostmr un valor de OV cuando se examine con un osciloscopio o voltfmetro. De modo que se puede pensar que una entrada DA o NDA que no se utiliza puede dejarse fl otando. porque actuar como si se le aplicara un O lgico y no afectar la salida de la compuerta. Sin embargo. puesto que las entradas CMOS tienen una alta impedancia. ~ I a menle se necesita una pequeila cantidad de ruido en el circuito

t'nlrodaJlownlt'

In agen prO!

~ida

IX derecho de J)r

112

Captulo 3 Circuitos digitales


para que una entrada flotante parezca tener el nivel ALTO (en fonna temporal ), esto
puede generar clenas fallas intc nnitc ntcs y desagradables en el circuito.

3.5.7 Picos de corrie nte y capacitares de desacoplamiento


Cuando una salida C MOS conmuta ent re los estados BAJO y ALTO. la corriente flu ye desde Vcc a tierra a travs de los transistores de canal-p y canal " que estn encendidos en (ornta parcial. Estas corrientes ---que tambin se conocen como picos (le corrietlle a

picos de rorritltlt

consecuencia de su breve duracin--, pueden aparecer como ruido en las conexiones de


la fuente de ali mentac in o en las concltioncs de tierra de un circ uito CMOS. en espec ial

capuciW"J dI'
dt!slIcoplllmienw

(tlpacilO"s de filtrado

cuando conmutan simultneamente varias salidas. Por esta razn los sistemas que UtiliZIDl circuitos CMOS requieren el uso de capaciur Tl!!i dc dcsacoplamiemo entre V cc y tielTol. Btos capacitores deben distribuirse a lo largo del circuito. por lo menos uno cada pulgada o por chip. paro suministrar comente durante las transiciones de nh-el. Los Ctlptlcitofl!.f de fi/mulo de alto valor que se encuentran (por lo general) en la misma fuente de alimentacin no satisfacen este requerimiento. porque la ndoc taocia parsita del alambrado evita que suministren la corriente con la rnpdc~ necesaria. de ah la necesidad de un sistemaft.!:amellll' dutribllitlo de capacitOf'CS de desacoplamiento.

3.5.8 Cmo destruir un dispositivo CMOS


Golpclo roo un martillo o simplemente camine a travs de una alfombr.l y a rootinuacill toque una tenninal de entrada con su dedo. Debido a que las entradas del dispositivo CMOS tienen una impedancia muy alta. esln expuestas a daos debido a las de!iCtlrga!i
eleclro~tJtica!i

deJcur;u tdeClrosuiiet/
(ESD )

(ESO , efeclro!illltic discl/arge).

Las descargas electrostticas se generan cuando la carga que se ha acumulado sobre una superficie pasa a tra\,s de un material dielctrico hacia otra superficie que tiene carga opuesta. En el caso de la teoninal de entrada de un dispositivo CMOS, el dielctrico es el aislante que existe entre la tenninal de entrada (compuena) del tr.Ul~ istor y las tenninales

/l/eh-UI'

de fuente o drenaje. Las descargas electrostLieas pueden daar este aislamiento y ocasionar con ello un cortocircuito entre la entr,:da y la salida del dispositivo. Las estructuras de entrnda de los dispositivos CMOS modernos utilizan varias tcnicas pan! reducir su susce ptibi lidad al dao que genemn las descargas electrostticas, pero ningn dispositivo es completamente inmune a ellas. PI.x' lo tanto, para prolcgcr los dispositivos CMOS contra. I a.~ descargas electrosttica.~ dunll1te las operJcioncs de ensamble y empaque, los fabricantes empacan los dispositivos cn bolsas. carrilleras. tubos o espuma plstica conductora. Paro. evitar daos dumnte el manejo de los dispositivos CMOS. el personal tcnico y de ensamble utiliza cintas o muequeras conducloiJS que se coneclan a tierra fsica por medio de un cable nCJ.ible; esto previene la acumulacin de cargas estticas en sus cuerpos a medida que se dl'.splazan en las !fneas de ensamble o labor'Jtorio. UlIa vez que se instala el dispositivo CMOS en un sistema o circuito, aira fue nte probable de daos es el/tllch-up. La estructura ffsica de entrada de casi cualquier dispositivo CMOS incluye transistores bipolares parsitos entre Vcc y tierra que estn configurados corno un "rectificador controlado de silicio (SCR. siliconcontrolled rectifier)". En operoci6n nonnal. este SCR pansito" no tiene ningn efecto sobre el funcionamiento del disposith'o. Sin embargo. cuando el voltaje de entrada es menor a tierra o mayor que Vcc se puede "disparar" el SCR. creando un cortocircuito virt ual entre \c y tierra. Una vez que se ha di ~parado el SCR. la nica manero de apagarlo es apagar la

114

Captulo 3

Circuitos digitales

(. )

F ig u ra 3-36 (b) Tiempos de transicin: al caso ideal de conmu tacin en tiempo cero;

------;/
.uo

bl una aproximacin
ms realista;

- 1,, I
I

el temporizacin real. mostrando los tiempos de ascenso y calda.

"'" I

,=1

+'1-- tt

3.6.1 Tiempo de transicin


tiempo dI!! transici6n

La cantidad de tiempo que requiere la salida de un circuito lgico paro cambiar de un estado a OttO se conoce como li~mpo d~ tronsicil1. La figura 336(a) muestra la situacin

til!!mpo dI!! tlrCl!!nro (t,) til!!mpo dI!! calda (tI)

cux,citancia par6yj/(J

ideal paro el cambio de estado en las salidas: en tiempo cero. Sin embargo. las salidas reales no pueden cambiar instantneamente, porque necesitan tiempo para c":fgar la capacitancia par:1sita del alambrado y otfOS componentes que controlan. Una visin ms realista de una salida del circuito se muestra en (b). Una salida necesita cierta cantidad de tiempo. denominado liempo de ascenso (Ir) para cambiarde BAJO a ALTO y un liempo posiblemente diferente, denominado el tiempo tle curda (Ir) paro cambiar de ALTO a BAJO. Incluso la fi gura 3-36(b) no es bastante precisa, porque la razn de cambio del voltaje de $.11ida no cambia instantneamente. En su lugar. el comienzo y el final de una transicin son suaves, como se muestra en (e). Para evitar difi cultades al definir los puntos extremos, los tiempos de ascenso y de calda se miden nonnalmente cn las fronteras de los niveles lgicos vlidos como se indica en la figura . Con la convencin de (e), los tiempos de ascenso y cafda indican cunto tiempo tarda un voltaje de salida en pasar a travts de la regi6n indefinida entre BAJO y ALTO. La pane inicial de una transicin no se incluye en el valor del tiempo de ascenso o de eaf da. En vez de ello. la pane inicial de una transicin contribuye al valor del "retardo de propagacin" que se analiza en la subseccin siguiente. Los tiempos de llSCenso y carda de una salida de eMOS dependen principalmente de dos factores. la resistencia del transistor "encendido" y la capacitancia de carga. Una capacitancia grande incrementa los tiempos de transicin ; como esto es indeseable. es muy raro que un disenador lgico conecte a propsito un capacilOr en la salida del circuito 16gico. Sin embargo. la capacitancia parsita est presente en cualquier circuito y proviene de al menos tres fuentes ; l . Circuitos de salida, incluyendo trunsistore.s de salida de la compuena. el alambrado interno y encapsulado. tienen cienn capacitancia asociada a ellos. Eslll capacitancia tiene un valor de 2 a 10 picofarads (pF) para las familias l6gicas tpicas. incluyendo la CMOS.

Seccirl 3.6

Comportamiento elctrico dinmico de los dispositivos CMOS

115

2. El alambrado que conecta una salida a otros entradas tiene capacitancia. aproximadamente I pF por pulgada o ms. dependiendo de la tecnologfa de alambrndo. 3. Los circuitos de entrada. incluyendo los transistores. el alambrado interno y encapsulado. tienen una capacitancia de 2 a 1.5 pF por enlr.lda en familias lgicas tfpicas. La capacitancia parsita se conoce en ocasiones como una carga capaciti'o o carga
d~

CA. Se pueden analizar los tiempos de ascenso y cafda de una salida CMOS utilizando

c0'80 capacitil'o carga dt CA

el circuito equivalente que se indica en la figura 3-37. Como en la seccin anterior. los transistores de canal-p y canal-n estn modelados por las resistencias Rp y Rn' respeetivamente. En operacin nomlal. una resistencia es alta y la otra es baja. dependiendo del eslado de la salida. La carga de la salida se modela mediante un ci~uilO de carga equil'O't'nle con tres componentes:
R L VL

circuito dt corxo
equi'"Q/~",~

el

Ambos componentes representan la carga de CD: determinan los voltajes y las corrientes que estn presentes cuando la salida se estabiliza en un nivel ALTO o BAJO. La carga de CD no tiene demasiado decto sobre los tiempos de transicin cuando la salida cambia de estado. Estll capacitancia representllla carga de CA: determina los voltajes y comentes que estn presentes cuando cambia la salida. y cunto tiempo le loma cambiar de un estado a Olm.

Cuando una salida eMOS controla solamente entrndas CMOS. la carga de eD es despreciable. Para simplificar las cosas. analizaremos solamente este CII.'IO. con RL '" - y VL = O. en el reslOde esta subseccin. La presencia de una carga de CD no despreciable afectarla los resultados. aunque no dramticamente (v~ase el ejercicio 3.68). Ahon! podemos analizar los tiempos de transicin de una salida CMOS. Pnru el propsito de este anlisis. suponemos que eL '" 100 pF. que equivale a una carga capacitiva moderada. Tambi~n. asumiremos que las resistencias "de encendido" de los transislares de canalp y canal-/I son 200 n y de 100 n. respectivamente. como en la subseccin anterior. Los tiempos de lI.'lCenso y de cada dependen del tiempo que se necesita para cargar y descargar la carga capacitiva Cl .
Carga equivalente para analisls

Figura 3-37
Circuito equivalente para

analizar los tiempos de


transicin de una salida

CMOS.

116

Captulo 3

Circuitos digitales

\Ice" +5.0 V
("
(b'

carga ele CA

Carga de CA

F ig u ra 338 Modelo de una transicin CMOS ALTO a BAJO: a) en el estado ALTO; b) despus de que el transistor de canalp se apaga y el transistor de canaJ -n se enciende.

Primero. observamos el tiempo de cada. La figura 338(a) muestra las condiciones elctricas en el circuito euando la salida se encuentra en un estado estable ALTO. (No se incluyen R I. y VI. porque no afectan el circuito. ya que RI. = (1).) Para los propsitos de nuestro anlisis. podemos suponer lo siguiente: cuando los IransisIOre.'i CMOS cambian entre "encendido" y "apagado", lo hacen en fonna inSlanlnea. Supondremos tambin que al tiempo I = O. la salida CMOS cambia al estado BAJO. generando as la situacin que se describe en (b). Cuando I =0, VSAl todava es 5.0 V. (Una mxima til en la ingeniafu elctrica es que el voltaje que circula a travs de un capacitor no puede cambiar en fonna instantnea.) En el tiempo I = (1). el capacitar debe cst8r completamente descargado y VSAL debe ser OV . Entre los dos momentos. el valor de VSAI. est gobernado por una ley exponencial :
V SAI.

= VDDe- '/( R.C~)


_ 5.0' e-I (IOO ' I OO ' I O- I~ ) _ 5.0'
9 e -'/ ( 10 ' 10 . )

conslltn(e de tiempo Re

El factor RnCL liene unidades de tiempo (segundos) y se conoce como COlIstml/e de tiempo Re. El clculo que sigue muestra que la constante de liempo R e para las transiciones ALTO a BAJO es de 10 nanosegundos (ns). La figura 3-39 muestra una grfica de VSAI. en func in de tiempo. Para calcular el tiempo de cada. recuerde que 1.5 V Y 3.5 V son las (roOleras que definimos para los niveles BAJO y ALTO de las entradas CMOS. que estn controladas por la salida CMOS. Pata obtener elliempo de cada, debemos resolver la ecuacin anterior para VSAL = 3.5 Y VSAL = 1.5. para obtener:

t = - Rn el. ' In

07''''

VSAI. V DD

- _ 10'1O-9' ln

SAL

5.0

1 3 .5

= 3.57 ns

IU = 12.04ns

Seccin 3.6
Rp
2000 > IMO

Comportamiento elc1.rico dinmico de los dispositivos CMOS

t17

R.
> I MO 1 000

-'1
3.5 \'

~ 1.5 "
ov

Figura 3-39 TIempo de carda para una transicin de ALTO

o1 -1

a BAJO de una salida


eMOS.

El tiempo de carda Ir es la direrencia entre ambos nmeros, o aproximadamente 8.5 ns. E! tiempo de ascenso puede calcularse con un mtodo semejante. La figura 340(a) muestra las condiciones en el circuito cuando la salida se encuentra en un estado estable BAJO. Si a1liempo 1 = O la salida CMOS cambia al estado ALTO, re.~uha la situacin descrita en (b). Una vez ms, V SAL no puede cambiar de ronna instantnea. pero al tiem po I '" oc, el capacitor estar completamente cargado y V SAL ser 5.0 V. De nueva cuenta, el valor de VSAL entre los dos est dctenninado por una ley exponencial :

VSAL

==

V00' ( 1 _ e - tl (R,Ct )
100 ' IO+IZ,) 5.0' ( 1 - e +I I (lO ' 10-'1) V
r ' ( 200 '

= 5.0 ' ( 1 _

Figura 3-40 Modelo de una transicin eMOS de BAJO a ALTO: a) en el estado BAJO; b) despus de que el transistor de canaln se apaga y el transistor de canalp se enciende.
Va;. +3.0 V
V cc +5.0V

(.)

(b)

Carga de CA

Carga ele CA

V ENT

Ir

.o v
1 pro

eq

po.

TI agen p oleglda por

rtd

lIlol

118

Capftulo 3 Circuitos digitales

'. " 200 0


> I MO

> I Mn

1000

En ~sle caso la constante de tiempo R e es 20 ns. La figuru. 3-4 1 muestru. una grfi ca de VSAL en funcin del tiempo. P-J.ra obtener el tiempo de ascenso. debemos resolver la ecuacin anterior para VSAL = 1.5 Y VSAL = 3.5. paru. obtener
I

VD -Re. In 1> = = - 20 10
_9

SAL

V DD

ln -<=

5.0 - VSAL

5.0

' 1.5

= 7.13 ns

' 3.5 = 24.08 ns


El tiempo de ascenso 1, es la diferencio entre estos dos nmeros. o opro~imadame n te 17 ns. El ejemplo anterior supone que el transistor de canal-p tiene dos veces la resistencia dellransislor de canal-ti. y como resultado el tiempo de ascenso es el doble de extenso que el tiempo de carda. El "dbil" transistor de canalp necesita ms tiempo para elevar la saJida en comparacin con el ;'fuerte" transistor de canaltI que requiere menos tiempo para disminuirla: la cap:acidad de excitacin de la salida es "asimtrica". En ocasiones los dispositivos CMOS de alta velocidad se fabri can con trunsistores de canol-p de mayor tamao para igu:liar los tiempos de transicin y obtener una excitacin de soli da ms simtrico. Sin imponar las caracterfsticas de los trunsistorcs. un incremento en la capacitancia de carga ocasionar un aumento en la constante de tiempo R e y el correspondiente incremento en los tiempos de lr.msicin de la salida. Por lo tanto. la meta de los disci\adores de circuitos de alt.a velocidad es minimizar la capacitancia de carga, especial mente en la mayor parte de las sei\ales criticas de temporizacin. Esto puede hacerse minimizando la cantidad de entradas que excita la seal. creando mltiples copias de la seal y mediante uno cuidadosa ubicacin de 1 05 componentes del circuito (layout).

Seccin 3.6

Comportamiento elctrico dinmico de los dispositivos eMOS

119

Cuando se trabaja con circuitos digitales reales, resulta til estimar los tiempos de transicin sin tener que realizar un anlisis detallado. Una regla sencilla y prctica es que el tiempo de transicin es aproximadamente igual a la constante de tiempo Re del circuito, cuando se est cargando o descargando. Por ejemplo, el valor estimado de 10 o 20 ns para los tiempos de ascenso y cada del ejemplo anterior es ms adecuado, si consideramos que la mayora de las suposiciones acerca de la capacitancia de carga y las resistencias de "encendido' de los transistores son aproximaciones iniciales de nuestro anlisis. En general, los fabricontes de circuitos comercioles CMOS no especifican las resistencias de encendido" del transistor en sus hojas de datos. Puede encontrar esta informacin en IIIS hojllS de aplicacin de los fabri cantes, En cualquier caso, puede estimar el valor de la resistencio de encendido" como la carda de voltaje en el transistor 'encendido' dividido entre la corriente que circula a truvs de ~I. considerando la carga resistiva en el peor de los casos. como se indica en la seccin 3.5.2:

V DD R p(enccndido) -

V Ol'lminT

I/0H_TI

R n(cnttndidol

V 01muT

1/0U0u~

In age1 prot )Ida

pe d recho d

u)r

3.6.2 Retardo de propagacin


Los tiempos de ascenso y carda solamente describen en forma parcial el componamiento dinmico de un elemento lgico: se necesitan parmetros adicionales para relacionar la temporizacin de salida con la temporizacin de entrada. Una troyectoria de se,ial es la ruta e l ~lrica de una seal particular de entrada hueia una seibl panicular de salida. en un elemento lgico. El rewroQ de propagaci6n tp de una trayectoria de seBal es la cantidad de tiempo que requiere la se.al de entrada para producir un cambio en la seal de

trayecloria de seilal "'arrlo di! propagacin Ip

salida. Un elemento lgico complejo con varias entradas y salidas puede especificar un valor diferente de 'p para cada trayectoria diferente de seal. Adems. se pueden especificar valores diferentes p.1ra una trayectoria de seBal en panicular. dependiendo de la direccin de cambio en la salida. Si n tomar en cuenta los tiempos de ascenso y cafda, la figura 3-42(a) muestra dos diferentes retardos de propagacin para la trayectoria de

120

Captulo 3

Circuitos digitales

")

I
I

I
pllL

-,
Figura 3-42 Retardos de propagacin para un inversor eMOS: al ignorando tiempos de (b)

1 -

1 - ,pU ' - 1
-

.
-,,,1.11 -

ascenso y calda: b) medidos en los puntos medIos de las transiciones.

- 'plll.

--

--

scal de entrada a salida de un inversor e MOS, dependiendo de la direccin del cambio en la snlida:
I p/1L

',u,

El tiempo entre un cambio de entrada y el correspondiente cambio de salida. cuando la salida est cambiando de ALTO a BAJO. El tiempo entre un cambio de entrada y el correspondiente cambio de salida, cuando la salida est cambiando de BAJO a ALTO. Varios factores generan relllrdos de propagacin diferentes de cero. En un dispositivo eMOS, la velocidad a la cuallos lransislores cambian de estado est infl uenciada tanto por la fsica de los semiconductores del dispositivo como por el entorno del circuito - que incluye la velocidad de transicin de la seal de entrada, la capacitancia de entrada y carga de salida-. En los dispositivos que tienen etapas mltiples (p. ej. compuertas no inversoras o funciones lgicas ms complejas) puede ser necesario que vorios transistores internos cambien de estado para que la snl ida puedll a su vez cambilr de estado. Incluso cuando la salida comienza a cambiar de estado. con tiempos de ascenso y cada diferentes de cero, se necesita ciena cantidad de tiempo para cruzar la regin entre ambos estados. como se indica en la la subsccci6n anterior. Todos estos factores estn incluidos en el retardo de propagacin. Para enfatizar el efecto de los ticmpos de ascenso y cada, es nort1Ull que los fabricantes especifiquen los liempos de retardo de propagacin como los puntOli medios de las lr.Ulsiciones de entrada y snlida, como se ilustra en la figura 3-42(b). Sin embruEo, en ocasiones los ret.ardos se especifican en los puntos de frontera del nh-ellgico, en especial si los tiempos de ascenso y cada son "lentos" pueden afectar 13 operacin del dispositivo. Por ejemplo. lo figura 3-43 muestra cmo podra especificarse el ancho mnimo del pulso de entrada de un lalch SR. el eual se analiza en la seccin 7.2. ).

Figura 3-43 Temporizacin en el peor de los casos especificada usando puntos de


Irontera de nivel lgico.

So R

,,>0 ---,

'1=

1 - - '.... 11..... , - _-

Seccin 3.6

Comportamiento elctrico dinmico de los dispositivos CMOS

121

Adems. un fabricante puede especi fi car los tiempos de ascenso y cada de entrada mxima absoluta que deben satisfacerse para garantizar un funcionamiento apropiado. Los circuitos CMOS de alta velocidad pueden consumir corriente ellcesiva u oscilar si sus transiciones de entrada son demasiado lentas.

3.6.3 Consumo de energa


El consumo de energa de un circuito CMOS cuya sulida no cambia se llama disipaci6n ~suftict/ de eners(a o disipacin d~ enrrg((l el! reposo. (Las JXllabrus consumo Y disipa. cin se ulilir..an en forma indistinta cuando se analiza la camidad de energa que utili7..a un dispositivo.) La mayor parte de los circuitos CMOS ticnen poca disipacin esttica de energa. Esto es lo quc los hace tan atractivos para Ia.< computadoras porttiles y otras apl icaciones de baja potencia (cuando no ~ ~alizan clculos se consume poca energa). Un circuito CMOS consume energa en forma significaliva durante las transiciones; esto se conoce como tfisiXlcitln d indmic:lI ele energ(a. Una fuente de disipacin dinmica de energa es un cortocircuito parcial en la estructura de salida del dispositivo CMOS. Cuando el voltaje de entrad3 no es cercano al voltaje de alguna de las lneas de alimentacin (OV o Ved, tanto los transistores de snlida de canal'/1 r..-omo los de ean31" pueden estar "encendidos' en fonna parcial; esto puede generar una resistencia en serie igual o inferior a 600 O. En este caso. la COl . ieme flu ye 3 travs de los transistores desde Vcc hasta tiena. La cantid3d de energa que se consume de esta fonna depende tamo del valor de Vcc corno de la velocidad 3 1a que ocurren las transiciones de salida, de acuerdo con la fnnula
disipacit1n d~ f!nf!rgf(/ u /adQ di! "poso disipaci6n f!!/tf/;r:a di!
i!~'lIfo
~n

dbipocie$ n dinmica d~ t!nt!rg,

En la frmu la. se utilizan las siguientes variables:


Pr La disipacin de energfa interna del circuito debido a las transiciones de s3lida.
Vcc El vol taje de la fuente de al imentacin. Como todos los ingenieros el6:tricos 1 0

saben. la disipacin de energa a travs de una carga resistiva (los transistorcs parcialmente encendidos) es proporeional al cllodrcu/o del voltaje. f Lafrecllellcia de transici" de la seal de salida. .sta especifica el nmero de transiciones de salida - que consumen energ{a- por segundo. (Pero note que la frecuencia se define como el nmero de transiciones dividida entre 2.) Cm La C(lpildlal/del de disipm:itJu de energ(el. Esta constante. la especifica normal mente el fabricante del disposilivo. completll la frmu la. CpD resulta tener unidades de capacitancia. pero no representa la capacitancia ~31 de salida. En vez de ello. incorpora la dinmica del flujo de corriente a travs de las resisten das cambiantes del transistor de salida durante un par sencillo de transiciones de salida. ALTO a BAJO y BAJO 3 ALTO. Por ejemplo, el valor de CpD para compuertas CMOS de la serie HC es 2024 pP. aun cuando la capacitancia de salida ~al sea mucho menor. La fnnula PT es vlida solamente si las transiciones de entrada tienen 13 rapidez suficiente para producir transiciones veloces en la salida. Si las transiciones de entrada son demasiado lentas. entonces los trans i sto~s de salida permanecen parcialmente

{rrcuencia dI! trcl/lsici6"

capoci/ancia dt! di$iptlci6n


,le t!nU1f((l

122

capitulo 3 Circuitos digitales

CL

PL

encendidos durante ms tiempo. y se incrementa el consumo de energra. En general. los fabricantes de dispositivos recomicndan que el tiempo mximo de ascenso y eada de entr:lCia tenga un valor inferior al que se especifica para CPI)' La segunda, y con frecuenc ia la fuente de consumo de energa ms importante de un dispositivo CMOS, es la carga capacitiva (CJ de la salida. Durante una transicin BAJO a ALTO, la comente fluye a travs de un transistor de cuoal-p puro cargar a Cl' Del mismo modo, durante una transicin ALTO n BAJO. la corriente nuye a travs de un transistor de canal-n para descargar a Cl' En cada caso, se disipa energra en la resistencia "de encendido" del transistor. Utilizaremos Pl para indicar la cantidad total de energfa que se disipa cuando se carga y descarga Cl' Las unidades de P l son de energa. o uso de energfn por unidad de tiempo. Se puede determinar la energa de una transicin al calcular la corriente que circula a travs del transistor de carga como una funcin del tiempo (utilizando la const:l.nte de tiempo RC como en la seccin 3.6.1). elevando al cuadrado esta funcin, multiplicndola por la resistencia "de encc:ndido" del transistor de carga, e integrando sobre el tiempo. A continuacin se describe una forma ms fcil. Durante una transicin. el voltaje a travs de la capacitancia de carga Cl cambia por tVcc' De acuerdo con In defi nicin de capacitancia. la cantidad total de carga que debe fl uir para producir un cambio de voltaje en Vcc a trovs de Cl es CL V ce. La cantidad tOlal de energa que se utiliza en una transicin es la carga por el cambio en el vollaje promedio. El primer segmento de carga genera un cnmbio de \'oltaje en Vec , micntms que el ltimo segmento de carga produce un cambio pequeo e imperceptible en el \'Ohajc. de Ilquf que el cambio promedio es V0f2. Por consiguiente. la cOI.-rg(a 10(01 por tmnsicin es CL - V 12. Si tenemos 2flr'dnsiciones por segundo. la energfa total disipada debido a la carga capacitiva es

te

PL = C L , (Vfc /2 )2
=CL , Vfc- La di sipacin dinmica tOlal de energfa de un circuito CMOS es la suma de PT
y P L:

Po - PT + P L

- C pD ' Vfc

, + CL Vfc -

(CPD +CL) , Vfc -/

, U1trg(a CV"-f

Basndos en eSla frmu lu. la disipacin dinmica de energiu St: conoce tambin como 1 t lll!rgfll CV En la mayorfa de las aplicaciones de los circuitos CMOS, la energa Clfl es la que contribuye en mayor p3J1e a la disipacin tolal de energ{a, Cabe indicar que la energia CV1tambin se consume en los circuitos lgicos bipolares como ITL y ECL, pero a frecue ncias bajas o moderodas es insignificante en comparacin con la disipacin estlica de energa (de en o en reposo) de los circuitO!l bipolares,

t 24

Captulo 3

Circuitos digitales

Al menos un fabricante comercial (Integrnted Dcvice Technology) ofrcct' una amplia variedad de funciones lgicas que se basan en compuertas de trnnsmisin. En sus dispositivos multiplexores, un cambio en las entOldas "seleccionadas" requiere varios nanosegundos (Ial como en la figura 3-45) para afectar liltrayectoria de entradll-salida (X o Y hacia Z ). Sin embargo. una vez que se ha establecido la trayectoria. el retardo de propagacin de la entrada a 111 salida eSl espccificudo como mximo en 0.25 ns: ste es . el multiplexor discreto CMOS ms ropido que usted pedro adq uirir.

3.7.2 Entradas de un disparador Schmitt


La curva camcteristica de transferencia de entrada-salida para una compuerta tpica CMOS se mostr en lu figura 3-25 de la pgina 100. La fi gura 3-46(a) muestra In curva caracteristica de trnnsfercncia de una compuerta con entradas de disparador Scllmiu. Un disparador Schmitt es un circuito especial que utiliza retroalimentacin interna para desplazar el umbml de conmutacin dependie ndo de si la entrada est:! cambiando de BAJO a ALTO o de ALTO u BAJO. Por ejemplo, supongamos que la entrada de un inversor con disparador Schmiu se encuentro!. inicialmente en O V, un nivel BAJO estable. Entonces la salida es ALTO. cero canu a 5.0 V. Si el voltaje de entrada se incrementa. la salida no ir a BAJO hasta que el voltaje de entrada alcance aproximadameme 2.9 V. Sin embargo, una vez que la salida cambia a BAJO. no ir a ALTO hasta que la entrada disminuya en aproximadamente 2.1 V. De este modo. el umbr.tl de conmutacin par.. los cambios de entrada que tienen ex.cursin positiva, indicado como VT+. es aprox.imadamente de 2.9 V. Para los cambios de entruda que tienen excursin negatiw. el umbral de conmutacin (VTJ" es aproximadamente 2.1 V. La diferencia entre ambos umbrules se. denomina histi rn is. S inversor con disparador Schmiu proporciona casi 0.8 V de histresis. Para dcmostmr lu utilidad de la histresis. la figura 347(a) mueslnl una senal de entrada con Iiempos de ascenso y cada largos, y aproxi madamente 0.5 V de ruido. Un inversor sencillo. sin histresis. presenta el mismo umbral de conmutacin tanto para las lnInsiciones que tienen tendencia (excursin) positiva como negatha. VT .. 2.5 V. Asf. el inversor simple responde RI ruido como se muestra en (h). y produce varios cambios en la salida cada ,ez que el voltaje de entrada -con ruido.- cruza el umbral de conmuta cin. No obstante, como se muestra en (e). un inversor con di sparador Sehmitt no responde al ruido, porque su histresis es mayor que la amplitud del ruido.

t lrlfllda de disJI.urod()r

Schmi"

Figura 3-46 inversor de disparador Schmin: a) caracterrstica de transferencia entrada-salida: b) srmbolo lgico.

'"

Ibl
' .0

- [90-

0.0
2.. ] 2..9 5.0

v""...

Seccin 3 .7

Otras estructuras eMQS de entrada y salida

125

(a)

S.O

/
VT+ 2.9

1fT 2.5
V T_- 2. 1

- -V

JA,.
, '"

/
./

o
(b)

ALTO

BAJO

lo,

ALTO

BAJO
FI g u ra 3-47 Operacin del dispositivo con entradas que cambian lentamente: a) una entrada que cambia lentamente con ruido; b) salida produdda por un Inversor ordinario; e) salida producida por un inversor con 0.8 V de hlstresls.

llagon p oleqida p)r

rechJ$

<lutor

126

Capitulo 3 Circuitos digitales

(.)
EN

v",

(b)
EN A B

e
H H H L

Q/
~

Ql
di di di

SALIDA
H!-Z Hi-Z

SAliDA
A

L L H H

L H L H

H H L L

L L H L

di

m
~

L H

(o)

EN A

t>

SAliDA

Figura 348

Buffer de tres estados eMOS: al diagrama de circuito; bl tabla de funcio""; el sfmbolo lgico.

3.7_ 3 Salidas de tres estados


Las salidas lgicas tienen dos estados nonnales. ALTO y BAJO. que corresponden a los valores lgicos O y l . Sin embargo. algunas salidas tienen un tercer estado el&trico que no es un estado lgico en absoluto, el cual se denomina ~stado de alta im~dancia. Hi-Z. o d~ flotacin. En este estado, la salida se compona como si an no estuviera conectada al circuito. excepto por una pequeoa corriente de fuga que puede fluir hacia dentro o hacia fuero de la tenninal de salida. De esta fonoa, una salida puede tener uno de tres estados: O lgico. I lgico y de alta impedancia. Una salida con tres estados posibles se conoce como (iSOrpresa!) sct/ida de tres es/culos o. en ocasiones. saJitkl triestado. Los dispositivos de tres estados tienen una entrada extra, que por lo regular se llama "habilitacin de salida" o "deshabilitacin de salida", para colocar la(s) salida(s) del dispositivo en el estado de alta impedancia. Un bus de tres estados se produce al conectar enlre sf varias salidas de triple esta do. Los circuitos de control para las "habilitaciones de salida" deben asegurar que. como mximo. se habilite una salida (pero no en su estado Hi-Z) en cualquier momento. El dispositivo con una sola habilitacin puede lnlnsmitir niveles lgicos (ALTO y BAJO) en el bus. La seccin 5.6 muestra ejemplos de diseo del bus de tre estados. La figura 3-48(a) muestra el diagrama del circuito de un bu.ffer CMOS d~ tres estados. Para simplificar el diagrama. las funciones internas NANO, NOR e inversora se muestran en forma funcional en vez de su forma transistorizada; en realidad se utiliza un total de 10 transistores (vase el ejercicio 3.80). Como se ilustra en la tabla de fu ncioDCS (b). cuando la entroda de habilitacin (EN, "enable") est en nivel BAJO. ambos trnnsistores de salida estn apagados. y la salida est en el estado de alta impedancia. De otro modo, la salida es ALTO o BAJO como se controla mediante la entrada de "datos" A.

t's/Odo dt' 0//0 imptdond o t'slodo Hi -l estado dt' ftowcin

solido de

/fU

n/ados

solido Irit'Slodo

bufftr dt' '"S nlaJos

Seccin 3.7

Otras estructuras eMOS de entrada y salida

127

Los smbolos lgicos para 105 buffers y las compuertas de tres estados se representan

normalmente con la entrada de habilitacin en la pane superior, como se ilustra en (c). En la prctica, el circuito de conlrol de tres estados puede ser diferente ru que hemos mostrado. a fin de proporcionar el comportamiento dinmico adecuado del transistor de salida durante las transiciones hacia y desde el estado de ruta impedancia. En especial, los dispositivos con salidas de lJtS estados se disean normalmente de modo que el retardo de habilitacin de s-,ljcIa (de Hi-Z a BAJO o ALTO) sea algo nm largo que el relardo de deshabilitacin de salida (BAJO o ALTO hacia Hi-Z). De este modo, si un circuito de conlrOl activa laentrada de habilitacin de salida del primer dispositivo al mismo tiempaque desav tiva 13 enlr:ld3 de un segundo dispositivo. se garal\liza que el segundo dispositivo entraro al estado de alta impedancia. antes de que el primero coloque un nivel ALTO o BAJO en eJ bus. Si ambas salidas de tres estados (en el mismo bus) se habilitan al mismo tiempo e intentan mantener estados opuestos. la situacin es similar a la que se obtiene cuando se conectan entre s Ia.'! salidas eslndar de pull-up activo, eomo se indica en la figurn 3-56 de la pgina 133: se produce un voltaje no lgico en el bus. Si el conflicto es momenLneo los dispositivos probablemente no se daarn, pero cantidad considerable de comel\le de drenado que circula a travs de las salidas (que estn unidas) puede producir pulsas de ruido que afectarn el comportamiento del circuito en algn otro sitio del sistema. Ex.iste una corriente de fuga hasta de 1O~, que est asociada con una salida CMOS de triple estado en su estado de ruta impedancia. Esta UH i iente, as como las CQilentes de enlJ"ada de las compuertas n:ceptorns, debe tomarse en cuenta cuando se crueula el mximo nmero de dispositivos que se pueden colocar en un bus de tres estados. Es decir, en el eslado BAJO O ALTO, una salida habilitada de tres estados debe sereapaz de extraer o suministrar hasta JO ~ de corriente de fuga para cada una de las otras salidas de tres estados en el bus, tambi~ n debe manejar la corriente que requiere cada entrada del bus. Como sucede en la lgica estndar CMOS, deben hacei"$C clculos separados de estado BAJO y estado ALTO para asegurar que se salisfacen los requerimientos de fan out de la configuracin panicular de un circuito.

-3.7_4 Salidas de drenaje abierto


Se dice que los trnnsistores de canal-p en las estructuras de salida CMOS proporcionan arranque activo, puesto que aumentan activamente el voltaje de salida en una transicin de BAJO a ALTO. Estos transistores se omiten en las compuertas que tienen solidas de drenaje abierto. como la compuena NANO de la figura 3-49(a). El drenaje del transistor
arranque actiwJ (activepull-up) mUda de drerrajr abieno

de canal-n del extremo superior se deja desconectado internamente, por consiguiente si


In salida no es BAJO eSl "abienn". como se indica C ll (b). El diamanle subroyado en la

figura (e) se utiliza en ocasiones para indicar una salida de drenaje abieno. Una estructura similar, lambin conocida como "salida de colector abieno', se proporciona en las familias lgicas rn. como se describe en la seccin 3. 10.5. Una salida de drenaje abieno necesita un resistor externo de arranque (external plllJ-Up rrsistor) para proporcionar un arrallque pasivo (passive pull-up) al nivel ALTO. Por ejemplo, la figura 3-50 muestra una compuena NANO CMOS con drenaje abieno. en este caso su resistor de arnlnque controla una carga.

rtlistar de artlJnque (pufl-up rrlist/Jr)

",rrlllque posinl (pa.u iloe


pu/fup)

-En esle libro. las secciones opcionales estn marcadas con un asterisco.

128

Captulo 3

Circuitos digitales

l' )

ce
Z

lb)
A

L H L H

OJD
~

OlO

Figura 349
Compuerta NAND CMO$ de drenaje abierto: a) diagrama del circuito: b) tabla de funciones ; e) smbolo lgico.

L L H H

lI:idI

_ti
L

atiettJ

lo)

~~ 'j>-z

Oo.e

Para obtener [a \'Clocidad ms alta posible. el valor del resistor de nrranque (con salida de drenaje abierto) debera.ser tan pequei\o como sea posible: esto minimiza la constante de tiempo Re para las transiciones BAJO a ALTO (tiempo de ascenso). Sin embargo. el valor del resistor de arranque no pL'tde .ser arbitrariamente pequeo: la resistencia minima est determinada por [a corriente mxima que consumen las salidas de drenaje abierto. 'QUnn' Por ejemplo. en los circuitos CMOS serie He y Her. 'OLmu es 4 mA y el resistor de arranque no puede ser menor a 5.0 V/4 mA. o bien, 1.25 ka. Puesto que esto es un orden de magnitud mayor que la resistencia de "encendido" de los transistores de canal-p en una compuerta eMOS estndar, las transiciones de salida de BAJO a ALTO son mucho ms lentas para una compuerta con drenaje abierto que para una compuerta estndar con arranque activo. Como un ejemplo. supongamos que la compuerta de drenaje abierto de la figura 3-50 es CMOS serie He . la resistencia de arranque es 1.5 kfl y la capxitancia de carga es 100 pE Anteriormente demostramos en la seccin 3.5.2 que la resistencia de "encendido" de una salida CMOS serie He en el estado BAJO es de aproximadamente 80 n. Por consiguiente, la constante de tiempo de una transicin ALTO a BAJO es de aproximadamente (800) (100 pF) = 8 os. y el tiempo de cada de la salida es aproximadamente 8 os. Sin embargo, la constante de tiempo Re para una transicin BAJO a ALTO es de aproximadamente (15 kIl)(IOO pF) '" 150 os. y el tiempo de ascenso es 150 ns. Este valor del tiempo de ascenso relativamente lento contrasta con el tiempo de cada mucho ms rpido de In figura 3-51. (Un amigo del autor llama ()Q~ a este tipo de transiciones de ascenso lentas) .

Figura 3-50
Compuerta NANO CMOS de drenaje abierto controlando una carga.

, v foSislOf de arranquo'--_ __ _

R .. I.5 lO

saJKiade drenaje a'-jerto

Seccin 3.7

Otras estructuras eMOS de entrada y salida

129

B V
l.5V

-,

ov

!~
50

~ J-

"lO
1,

'50

200

""

30Qtiempo

FI gura 3-51 Transiciones de ascenso y calda de una salida CMOS de drenaje abierto.

Porqu utilizar salidas de drenaje abierto? A pesar de Jos tiempos de ascenso lentos, pueden ser tiles en por [o menos tres aplicaciones: control de diodos emisores de luz (los LEO, del ingl6s light-emiuing diodes) y otros dispositivos: el desrurollo de [6gica alambrada y el control de buses de fuente mltiple.

'3,1.5 Control de LEO

Una salida dc:ltipo drenaje abierto puede excitar a un LEO como se ilustra en la figura 3-52. Si cualquiera de las entradas A o B es BAJO, el correspondiente transistor de canal'lI estar apagado y el LEO no se encender. Cuando ambas entradas A y B sean ALTO. los dos transistores estarn encendidos. la salida Z estar en ni ....eI BAJO y el LEO se encender. El valor del rcsislOr de arranque R se selecciona para que fluya una cantidad apropiado de comentc a travs del LEO en el estado cncendido. Los LEO tpicos necesitan 10 lilA para que "bri llen" en forma normal. Las salidas eMOS de las series HC y HCT estn especificadas solamente parn consumir 4 OlA Y normalmente no se utilizan para controlar LEOs. Sin embargo. las salidas dc familias e MOS avanzadas tales como la 74AC y 74ACT pueden consumir 24 mA o ms. por lo tanto se pueden utilizar paro controlar los LEO con bastante eficacia.
Figura 3 -52
H

Conlrol de un LEO con una salida de drenaje abierto.

LEO

"Ut....., .. O J 7 \'

130

Captulo 3 Circuitos digitales

Se necesitan tres segmentos de informacin para calcular el valor apropiado del resistor de arranque R: l. La corriente que se necesita paro obtener el brillo deseado en el LEO LEO' 10 OlA para los LEO tpicos. 2. La calda de voltaje Vu;o en el LEO en la condicin "encendido", aproxim3damenlc 1.6 V para los LEO tfpicos. 3. El voltaje de sal ida VOl. de 1 3 s31ida de drenaje 3bierto que consume 1 3 corriente del LEO. En las familias CMOS 74AC y 74ACf, VOLmo es 0.37 V. Si un3 s3lid3 pU l!de consumir un3 corriente 'LEO y mantener un volt3je ms bajo. digamos. 0.2 V. entonces el clculo que se muestra a continuacin indicar el uso de un resistor cuyo valor es bastante pequeH o, aunque esto no producir ningn dao. Cin:ular una cantidad ligeramente mayor que LEO y el brillo del LEO ser ligeramente superior a lo esperado. Utilizando la infonnaci6n anterior, podemos escribir la ecuacin siguiente;

V OL +V LED + (ILED R ) = V cc
Suponiendo que Vcc : 5.0 V Y los valores Ifpicos en las variables anteriores, podemos calcular el valor de R; .

R -

V CC - VOL -

VLED

I LED

- (5.0- 0.37 - 1.6) Vil O mA = 303

Cabe mencionar que usted no liene que utiliz.ar una salida de dren3je abierto para controlar un LEO. La fi gura 3-53(a) muestra un LEO que est control:u:lo por una salida de compuerta NANO CMOS con arr.lOque actho. Si ambas entradas son ALTO, los transistores inferiores (de canal.n) llevarn la salida al nivel BAJ O como en la \'ersin de drenaje abierto. Si cualquier entrada es BAJO. la salida ser ALTO, aunque uno o ambos transistores superiores (de canal-p) est!!:n encendidos. no circular corriente a travs del LEO. En algunas familias CMOS, se puede "encender" un LEO cuando la salida se encuentra en el estado ALTO. como se muestra en la figura 3-53(b). Esto es posible si la salida puede suministrar una cantidad considerable de corriente paro satisfacer los requerimientos del LEO. Sin embargo. el mtodo (b) no se emplea tan frecue ntemente como el (a). porque la mayora de las salidas CMOS y TfL no pueden suministrar tnnta corriente en el estado ALTO como la que pueden consumir en el estado BAJO.

Seccin 3.7

Otras estructuras eMOS de entrada

y salida

131

(.)
R

(b)

lEO

lEO

Flg u re 3 -53 Control de un LEO con una salida eMOS ordinaria: a) corriente consumida, "encendido" en el estado BAJO: b) corriente suministrada, "encendido" en el estado ALTO.

3.7.6 Buses de fuente mltiple


Las salidas de drenaje abierto pueden unirse entre sf paro pennitir que vnrios dispositivos. uno a la vez. enve inronnacin a un bus comn. En cualquier momento tooas las salidas en el bus (excepto una) se encuenlrnn en estado ALTO (abierto). La salida restante ya sea que pennanezca en el estado ALTO o que lleve al bus a BAJO. dependiendo de si quiere transmitir un I lgico o un Olgico en el bus. Los circuitos de control seleccionan el dispositivo panicular que puede controlar el bus en cualquier momento. Por ejemplo. en la figura 3-54. ocho salidas de una compuerta NANO con drenaje abierto de 2 entradas controlan un bus comn. LII entrada superior de cada compuerta NANO es un bit de datos. y la entrada inferior de cada compuena es un bit de control.
rn.s d~ d" Mjt (Ibiu ta

Fi 9 U r a 3- 54 Ocho salidas de drenaje abierto que controlan un bus.

,--50'" de datos
Dalosl Habilitar'

0._

- 1-' _-1

Oalo53 Habilitar3

DatOSS
HabilitarS

- 1-'

Dal087
Habililar7

0._
- ' Habilitar4

Dat0s6
Habililal6

DalosS
Habilitar8

Habilitar2

132

Captulo 3 Circuitos digitales

v v
A
R
B

e o
E

~----

'-

---.

F
NANO de drenaJe~_ abierto de 2 entradaS _

Figura 3 - 55 Funcin ANO alambnida sobre tres salidas de compuerta NAN O de drenaje abierto.

Como mximo un bit de control es ALTO en cualquier momento. lo que habilita al correspondiente bit de datos pllfll que pase a tmv~s del bus. (En realidad, el compleme nto del bit de datos es el que se coloca en el bus). Las dems salidas de la compuerta estn en nivel ALTO, es decir, "abiertas", de manera que la entrada de datos de la compuerta habilitada determina el valor del bus.

-3.7.7 Lgica alambrada


I6gica alumbroda

ANO olombrodb

eOlljlieto

Si las salidas de varias compuertas con drenaje abierto se conectan entre sr con un resistar de arranque, entonces se realiza la 16gico de alambrado. Se obtiene una funcin ANO puesto que la salida alambrada est en ALTO si y slo si lodas Ia.~ salidas de la compuerta individual estn en ALTO (en realidad. eslM abiertas); cualquier salida en nivel BAJO es suficiente paro. llevar a la salida alambrada al nivel BAJO. La figura 3-55 muestr.l una funcin alambrada AND con tres entradas , Si cualquiera de las compuertas individuales NANO de 2 entradas tiene ambas entradas en ALTO, esto lleva a la salida alambrada al nivel BAJO; de otro modo. el ~istor de arranque R lleva a la salida alambrada a ALTO. Cabe indicar que la lgica de alambrado no puede realizarse si se utilizan compuertas que tienen amnque activo (active pull-up). Cuando se conectan dos salidas de este tipo y ambas intentan I1'l3Jltencr valores lgicos apuestos, se genera un fl ujo de cOiliente muy elevado y un voltaje de salida anonnal. La figura 3-56 muestra esta situacin, que en ocasiones se denomina conflicto. El voltaje exacto de salida depender de las "fuerzas" relativas de los transistores en conflicto, pelO con los dispositivos CMOS de 5 V es por lo regular de aproximadamente 1-2 V, casi siempre un voltaje no lgico. Peor an. si las salidas pelean continuamente durante varios segundos. los chips pueden calentarse lo suficiente para provocar un dao interno y quemar sus dedos!

Seccin 3.7
l'

Otras estructuras e MOS de entrada y salida

133

Intentando llevar a AlTO

z
AlTO

1- 1 !t,t"l

, __--". v,-___ " lO mA


+

R..:...l

(t iC o 1IC1)

AlTO

Figura 3-56

AlTO

~ Inlentando llevar a BAJO

Dos salidas e MOS que intenlan manlener valores lgicos opuestos en la misma linea.

3.7.8 Resistores de arranque


Debe hacerse una adecuada eleccin del valor para el resistor de arranque R en apli c1cufo d~f rrs;stor de

caciones con drenaje abierto. Se efectan dos clculos para clasificar los valores permisibles de R :
M(nimo La suma de la comente a travs de R en el eslado BAJO y las corrienles de entrada del estado BAJO de las compuertas que controlan las salidas alam bradas no debe exceder la cap.ridad de control de estado BAJO de la salida activa, 4 mA para la serie CMOS HC y HCT, 24 mA para CA YACT. Mdximo La carda de voltaje a trav~s de R en el estado ALTO no debe reducir el voltaje de salida por debajo de 2.4 V. que es . para las compuertas mV. Esta carda es procontroladas tfpicas, ms un margen de ruido de

arranque

ducida por la corriente de fuga de salida en estado ALTO de las salidas alambradas y las corrientes de entrada de estado ALTO de las compuertas controladas.

134

Capitulo 3 Circuitos digitales


compuertas NANO de drena;e abier10 HCT
VCC +5V

I
BAJO BAJO

~"~"" ~" ~" ~" ~"""""" "'i3.2 mA

0.4 lilA

SO .H '
BAJO BAJO

: compuertas LSTTl

FIgura 3-57 Cuatro salidas de


drenaje abierto que controlan dos entradas en el estado BAJO.

AlTO AlTO

':""- ,

-r

Por ejemplo. supongamos que cuatro salidas de drenaje abierto HIT se coneclan enlre sr y manejan dos entradas LS-ITL (seccin 3.11) como se muestra en la figura )57. Una salida en BAJO debe conSUOlirOA OlA de cada entrada LS-1TL. tambin debe consumir la corriente a travs del resislorde arranque R. Para que la COi . iente total pennanezca dentro de 1 3 especificacin de 4 OlA HIT 10Lmu. la corriente que circula 3 1 ravs de R no puede ser m3)'or que
IR(ITW.)

= 4 - (2 0.4) = 3.2 OlA

FIgura 3-58
Cuatro salidas de drenaje abierto que con trolan dos entradas en el estado ALTO.
ALTO ALTO

_'--- SI;
/

compuer1as NANO de drenaa abierto HCT


Vcc +5V

ALTO ALTO

ALTO ALTO

AlTO ALTO

Seccin 3.8

Familias lgicas e MOS

135

Suponiendo que VOL de la salida de drenaje abieno es 0.0 V. el valor mfnimo de R es


Rmin =

( 5.0 - 0.0)/I R(mu) = 1562.5

En el eslado ALTO. las salidas tpicas de drenaje abieno tienen una corrienle de fuga mxima de 511A. Ylas entradas trpicas LSITL requieren 20 !lA de comente de fuente. Por lo tanlo. el requerimiento de cOl liente de estado ALTO, como se mueslm en la figuro 358 es: IR(fup) = (45)+(220) = 60 p A Esta corrienle produce una calda de \'ohaje a travs de R, Yno debe ser inferior al \'Oltaje de salida (V Ollmin = 2.4 V): de este modo el valor mximo de R es

Rmu = (S.- 2.4)/IR(fuga, = 43.3

ka

Por lo tanto. puede utilizarse cualquier valor de R que eSl comprendido enlre 1562.5 (} Y43.3 kIl. Valores mayores pro\'OCM una reduccin en el consumo de energa y mejoran el margen de ruido de eslado BAJO, mienlras que valores inferiores incrementan el consu mo de energa pero mejornn tanto el margen de ruido del eslado ALTO como la \'elocidad de las transiciones de salida BAJO a ALTO.

3.8 Familias lgicas eMOS


La primer fami lia CMOS que tuvo xito comercial fue la Sl'ri~ 4OfX) dI' CMOS. Aun cuan do los circuitos de la serie 4000 ofrecan los beneficios de bajo consumo de energa, eran baslanle lenlos y no eran fciles de interconectar con la familia lgica ms popular de esa poca. la fam ilia bipolar TrL. As, la serie 4000 fue susliluida en la mayora de las
CMOS St'rit! 4(](){)

aplicaciones por las fami lias ms capaces de CMOS que se analiz.nn en esta seccin. Los numeros de pane de todos los dispositivos CMOS que analiznrelllOS tienen la forma "74FAMm"', donde "FAM" es un mnemnico alfabtico de la famil ia y 1111 es un designador numrico de funcin. Los disposith.'OS de las diferentes familias que tienen el mismo valor de 1111 realizan la misma funcin. Por ejemplo. la 74HC30. 74Hcr30. 74AC30. 74ACf30 Y74AHC30 son lodos compuenas NANO de 8 entradas. El prefijo "74" es simplemente un numero que fue empleado por un antiguo y popular proveedor de dispositivos ITL. Texas Instruments. El prefijo "54"' se usa para panes idnticas cuya operacin esta especificada en un imervalo ms amplio de temperatura y \"Oltajcs de alimentacin, para su uso en aplicaciones mil ilare.~. En general estas pane.~ se fabrican en la misma forma que sus contrnpanes de la serie 74, la unica excepcin es que

136

Capftulo 3 Circuitos digitales


Niveles lgicos HC Niveles lgicos HCT
VocS.OV V0I1 rni T 3.84V VU1mia - 3.5 V V0I1mi T _ l .II4V

Voc .5.0 V

VUImiA 2.0 V VILInu " I .S V 0.0 V VOLmuT O.JJ VII =


.. .

0.8 V

0.0

v
(b)

VOLmuT - O.JJ V

(.)

F I gura 3-59 Niveles de emrada y salida para dispositivos CMOS utilizando una alimeotaci6n de 5 V: a)HC; b) HCT.

se prueban. examinan e idenlifican en fonna diferente, se genera mucho ms trabajo de escrilOrio y se cobra un precio ms allo, naturalmente.

HC (CMOS d~ olta
\'t'loddml)

3.8.1 HC y HCT Las primeras dos familias CMOS de la serie 74 son la He (High-sfH!ed CMOS. CMOS d~
alta l'~/ocidad) y HCf (High -sfH!~d CMOS. 1TL compatib/~; CMOS d~ (lIta \e/ocidad. compatible con ITL). En comparacin con la familia 4000 original. ambas. HC y HCf. tienen mayor velocidad y mejor capacidad de consumo y suministro de corriente. La familia HCf uliliza un voltaje de alimentacin Vcc de 5 V Y puede conectarse a disposijvos TTL. que tambin utilizan un voltaje de alimentacin de 5 V.

Ha (CMOS d~ alta
\t/ocidad. compatible con ITLJ

He est optimizada paro ulilizarse en los sislemas que manejan exclusivamente lgica CMOS. y pueden emplear cualquier ' "ahaje de alimentacin entre 2 y 6 V. Se utiliza un voltaje mayor paro obtener mayor velocidad y un voltaje menor paro menor disipacin de energfa. la disminucin del voltaje de alimentacin es especialmente efectiva. puesto que la mayor parte del consumo de energa (en un dispositivo CMOS) es propordonal al cuadrado del volUlje (si consideromos que la potencia es igual al producto CVlf). Incluso cuando se utiliza una fue nte de alimentacin de 5 Y, los dispositivos HC no son completamente compatibles con los dispositivos TTL. En especial. los circuilos HC estn diseitados para reconocer niveles de entrada CMOS. Suponiendo que tengamos un voltaje de a1imentaci6n de 5.0 Y, la figura 3-59(a) muestra los niveles de entrada y de salida de los dispositivos HC. Los ni,-eles de salida que producen los disposit\'OS TTL nocoinciden exactamente con este intervalo. de modo que los dispositivos HCf utilizan los diferentes niveles de entrada que se muestran en (b). Estos niveles se establecen durante el proceso de fabricacin cuando se fabrican transistores con diferentes umbrales de conmuUlci6n. lo que produce las diferentes caracterfsticas de transferencia que se indican en la figura 3-60.

La familia

Figura 3-60 Caractersticas de transferencia de circuitos HC y HCT bajO condlc\ooes IIpicas.

"'..... .0
.---- HCT

o
O

-~ = = ; - 1.4 2.5
5.0

v"'

138

Capitulo 3

Circuitos digitales

Tab l a 3-5 Caracterlstlcas de velOcIdad y energla de las familias CMOS funcionando a 5 V.

Familia

Deacrlpcl6n

Po""
00 '138 00 , 138

Sfmb%
lro

Condicin

He

Retardo de propagaein tpieo (ns) Corriente de alimentacin en reposo


(~A )

,
18
40

HeT
10 20 2.5
40

VHe
5.2
7.2

VHCT

5.5 8. 1 5.0 402


0.025

Ice

"in'" O o Vcc
"i,, = OoVCC

2.5
0.0 125

5.0
40

Disipacin de energa en reposo (mW) Capacitancia de disipacin de energa (pF) Disipacin dinilmica de energa (mW/MH::) Disipacin de energfa tOlal (mW)

00 '138
00 . 138 C'D
Cro

V;n= OoVCC
V,, = OoVCC

0.0125

0.025

0.2

0.2 15
0.38 1.28 0.050 0.39

0.2
34

0.2
17
49

22
0"'5 138
100 kHz I MHz 10 MHz 100kHz 1 MHz / - 10 MHz
f= f= f= f= f e:

00 ' 138 00 00 00 ' 138 '138 138


00 00 00 ' 138 '138 ' 138

"

"

l'

0.48 0.85 0.073

0.43
1.23

0.068
0.56

0.068
0.45

5.5
0.338 1.58 14.0 0.61

J.8
0.328 1.48 13.0

0.50 4.8
0.285 1.05 '.7 0.38

4.J
0.323 1.43 12.5 0.37 2.5 24 2.61 11.5

Producto \'elocidad-energfa (pJ)

f a 100 kHz 1- 1MHz


f r. 10MHz f = 100 kHz

5.1 50 6.08
28.4 25J

0.50 J.'
J8 6.55 29.5

2.6 25
2.05 7.56

1= 1 MHz
f= IOMHz

25'

6J

101

la fami lia ms nlpicln Fcr en la seccin 3.8.4: las compuenas '00 no esll1n fabric3das en la fami lia FCT.) El pri mer re ngln de la labia 3-5 especifica el retardo de propagacin. Como se discuti en la seccin 3.6.2. dos nmeros, lpHL y 'pUl' pueden utiliz.arse paro especificar el retardo: el nmero en la tIIbla es el peor de los dos casos. Sallando a la tabla 3- 11 en la pgina 167. se puede ver que He y Hcr tienen aprOltimadameme la misma velocidad que LS TIl., Y que VHC 'i VHcr son casi tan rpidos como ALS TIl.. El retardo de

Seccin 3.8

Familias lgicas eMOS

139

1m 9 ,..,

rot~

da

)O

derecho de 3U

propagacin para el ' 138 es un tanto ms largo que para el '00. puesto que las seales deben viajar a travs de !tes o cuatro niveles de compuenas internamente. El segundo y tercer renglones de la tabla mueslraJl que la disipacin de energa en reposo de estos dispositivos CMOS es prcticamente nula. por debajo de un miliwatt (mW) si las entrndos tienen niveles CMOS (OV para BAJO YVcc para ALTO). (Ntese que en la tabla. los nmeros de la disipacin de energa en reposo dados para el '00 son por compuerta. mienlTns que para el . 138 se aplican al dispositivo MSI por completo). Como discutimos en la seccin 3.6.3 la disipacin dinmica de energa en una compuerta CMOS depende de la excursin del voltaje de la salida (por lo regular. Vec>, la frecue ncia de transicin de salida (j) y la capacitancia que est siendo cargada y descargada en las transiciones. de acuerdo con la frmula

PD = (CL + Cro )' vto

'f

Aquf. CPD es la capacitancia de consumo de energa del dispositivo y el es la capacitancia de la carga unida a la salida CMOS en una aplicacin dada. La tabla enumera tanto CpD como un factor de disipacin dinmica de energa equivalente en unidades de miliwatts por megahenz. suponiendo que Cl = O. Haciendo uso de este factor, la disipacin de energa total se calcula a varias frecuencias como la suma. de la disipacin dinmica de energla a esa frecuencia y la disipacin de energa en reposo. Acto seguido en la tabla, se muestra el produclo de vefocidad-energfa que es simplemente el producto del retardo de propagacin y el consumo de energa de una compuena tipica: el resultado se mide en picojoules (pJ). Recuerde que. como estudi en sus clases de fsica. el joule es una unidad de energfa. de modo que el producto velocidad-energa mide una clase de eficiencia: cunta energfa utiliza una compuena lgica para conmutar su salida. En estos tiempos. es obvio que entre menor sea el gasto de energa. ser mejor.

produCI O

,,docidad

raugla

113.g npe.

:1 p r

140

Capitulo 3 Circuitos digitales


T a b I a 36 Especificaciones de entrada para familias CMOS coo Voc entre 4.5 y 5.5 V.
F.mfl~

DeKrlpcl6n
Corriente de fuga de entrada ().lA)

S(mbo#o
f,~

Condlcl6n
V.... = cualquier

He

., ., ., .,
,O ,O
0.8 2.0
10

HeT

VHe

VHCT

Capacitancia de entrada mxima (pF) C INmu Voltaje de enuada de nh'C l BAJO (V) V, ...... Voltaje de entrada de ni"el ALTO (V)

'O
0.8

1.35

1.35
3.85

vlH min

3.85

2.0

La labia 3-6 proporciona las especificaciones de entrada de dispositivos CMOS 'picos en cada una de las familias . Algunas de las especificaciones suponen que la a1i mentacin de 5 V tiene un margen de 10%; es decir, Vcc puede estar en cualquier lugar entre 45 y 5.5 V. Eslos parmetros fueron discutidos en secciones anteriores, pero

como referencia se resumen aqu sus significados: llmu La corriente de entrada mxima para cualquier valor de voltaje de entrada. Esta especificacin establece que la corriente que fluye hacia dentro o hacia fuera de una entrada CMOS es 1 J1A. o menor para cualquier valor del \'Oltaje de entrada. En otras palabras, las entradAs CMOS casi no crean carga de CD en los circui lOS que controlan. CINmu. La capacitancia mxima de una entrada. Esle nmero puede ser utilizado cuando se supone la carga de CA en una salida que controla 6>la y otras entradas. La mayona de los fabricantes tarnbi~ n especifican una capacitancia de entrada Ifpica. ms baja de alrededor de 5 pF. la cual proporciona una buena estimacin de la carga de CA si usted no tiene mala suerte. V1Lnw, El vohaje mximo que se garantiza para que una entrada lo reconozca como BAJO. Advierta que los valores son diferentes para HClVHC en comparncin con HcrNHCT. El valor de "CMOS", 1.35 V. es 30% del mfnimo voltaje de alimentacin, mientras que el valor " ("] L" es 0.8 V por compatibilidad con las fami lias TIL.

Seocln 3.8
Tabla 3-7 Especificaciones de salida para familias CMOS funcionando con Vcc entre 4.5 y 5.5 V.

Familias lgicas eMOS

141

F.mlllll Descripcin

Sfmbolo
10000C 10lmuT VOLmuC
VOLmu.T
IOHmuC IOHmuT
VOHmillC
VOHrnllIT

CondIcJ6n

He

HeT

VHe

VHCT
0.05 ' .0
0.1 0.44

Corriente de salida de nivel BAJO


(mA)

CargaCMOS Carga TT1.


1 JaI ::o '<:M mue

0.02 4.0 0.1 0.33 -<l.02 -4.0 4.' 3.84

0.02 4.0 0.1 0.3] -<l.02 -4.0


4.4

0.05 ' .0
0.1 0.44 -<l." -8.0 4.' 3.80

Voltaje de salida de nivel BAJO (V) Corriente de salida de nivel ALTO


(roA )

1 la! s: -'ot..muT
CargaCMOS

""', lTL

-0.05 -8.0
4.4 3.80

Voltaje de salida de ni\'cl ALTO (V)

IJ.,n,1 s: IIoHmucl
I laI~

S IIoHnw.TI

3.84

VlHmin El voltaje mnimo que se gamntiz.n que una entrada reconocer como ALTO. El

"valor" CMOS. 3.85 V, es un 70% del voltaje de alimentacin m:\ximo. mien{J'a. <

que e l valor '"1'1 L" es de 2.0 V para compatibilidad con las fam ilias TIL.

(A diferencia de los niveles CMOS. los niveles de entrada TfL no son simtricos con respecto a los rieles de alimentacin.)
Las especificaciones para las ~idas CMQS compalibles con 1TL por 1 0 regular tienen dos conjuntos de parmetros de salida; un conjunto o el otro se utilizan dependiendo de cmo est cargada un3 salida. Una carga CMOS es una que requiere que la

carga CMOS

salida consuma y suministre muy poca corriente de CD, 20 p.A para HCJHcr y 50 p.A para VHC/VHcr. ste es, por supuesto. el caso cuando las salidas CMOS controlan solamente entradas CMOS. Con cargas CMOS, las salidas CMOS mantienen un voltaje de salida dentro de 0.1 V de las lneas de alimentacin, O y Vcc . (Un caso Umite. V cc '" 4.5 V se utiliza para las entradas de la tabla; de aqu, V OHminC " 4.4 V.) Una carga 17L consume mucha ms corriente de consumo y de fuente (consumo y suministro), hasta 4 mA desde una salida HOOcr y 8 mA desde una salida VHC/VHcr. En este caso. se presenta una mayor calda de voltaje a travs de los transistores "encen didos" en el circuito de salida. pero el voltaje de salida todava se garantiza que est dentro del intervalo normal de los niveles de salida TIL. la tabla 3-7 enumera la... especificaciones de salida CMOS tanto para carga... CMOS como TIL. Estos parmetros lienen los significados siguientes:
IOLnwC

carga 1TL

La corriente mxima que puede suministrar una salida en el estado BAJO

mientra.s controla una carga CMOS. Puesto que ste es un valor positivo, la corriente fluye hacia d~nlro de la terminal de salida. 100000000T La corriente mxima que puede suministrar una salida en el estado BAJO mientrols controla una carga TIL. V OLnwC El mximo voltaje que se garantiza que producir una salida al nivel BAJO mientras controla una carga CMOS. es decir. mientras que no se exceda
100000C'

142

Captulo 3 Circuitos digitales


VO~T

El mximo voltaje que se garantiza que producir una sal ida al nivel BAJO mientras controla una carga 1TI.. es decir. mientras que no se exceda Im..nwT' 'Oltmu.C La corriente mxima que puede suministrar una salida en el estado ALTO mientras controla una carga CMQS. Puesto que ste es un valor negativo. la corrienh: positiva Huye hacia afuera de Ill temlinal de salida. IOIlmu.T La com ente mxima que puede suministrar una salida en el estado ALTO mientras controla una carga TIL. VOH minC El \'Oltaje minimo que se garantiza producir una salida en ALTO mientras controla una carga CMOS. es decir. mientras no se exceda 1001muC' V OH minT El voltaje mnimo que se garantiza producir una salida en ALTO mientras conuola una carga TIL. es dec-ir. mientras no se exceda I Ollmuc,

Los parmetros de voltaje anteriores detenninan los mrgenes de ruido de CD. El margen de ruido de CD del estado BAJO es la diferencia entre VOI..mu y VtLmu . Esto depende de las carncteristicas tanto de la salida que controla como de las entrados controlados. Por ejemplo. el margen de ruido de CD del estado BAJO del Hcr controlondo unas cuantas entradas Hcr (una carga CMOS) es 0.8 - 0.1 = 0.7 V. Con una carga TTL. el margen de ruido para las entradas Hcr decae a 0.8 - 0.33 = 0.47 V. De manera senlejanle. el margen de ruido de CD del estado ALTO es la diferencia entre V Ollmin YVII/min' En general. cuando se interconectan fami li..... diferentes. se tiene que COlllparnt los V OL.nw YVOHm;n apropiados de la compuena que controla con Vn.n1&X Y V lHmin de todas las compuertas controladas para delenninar los mrgenes de ruido del peor de los casos. Los parmetros Iot...mu. e JOI Imu. en la labia dctenninan la capacidad de fan OUt de salida y son especialmente importantes cuando una salida controla entradas en una o ms diferentes familias. Deben realizarse dos clculos para detenninar si una sal ida se encuentra funcionando dentro de su capacidad de fan out nominal:
fatI 01/1 t'1/

1!$lado

ALTO

Se suman los \~Jlores IlI lm:ox parJ todas las entr:ulas contmladns. La suma debe ser menor que J01 lmu de la salida que controla.

ftm

Q jIf

en

estado BAlO

Se suman los valores J[lmu. para todas las entradas controladas. La suma debe ser menor que IOLrrw de la salida que cotrola.

Ntese que las caractersticas de entrada y salida de componentes especficos pueden variar a partir de los valores representath'os dados en la tabla 37. de modo que usted siempre consulte la hoja.~ de datos del fabricante cuando se anal ice un diseo renl.

'3.8.4 FCT y FCT-T


FCT (eMOS rpido. compmiblt! con rfL)

A principios de la dcada de 1990 fue presentada otra fami lia CMOS. El beneficio clave de la fumi lin FCT (Fu$t CMOS. ITL compmjble: CMOS ropillo. COIIIIKltible co" ITL) era su cnpxidnd para satisfacer o exceder la velocidad y la capacidad de control de salida de las mejores familias TIL. mientras que reduca el consumo de energia y manten!a una 1 0lal compatibi lidad con TIL.

Sec:ci6n 3.8

Familias lgicas CMOS

143

La familia original FeT tena la des\ent.aja de producir un VOH CMOS de 5 V. creando unn enorme disipacin CV2 de energa y ruido de circuito a medida que sus snlidas

oscilaban desde O V hasta ca.~i 5 V en aplicllciones de alta \'elocidad (25 MHz+). Una variacin de la familia . FeT-T (Fasl CMOS. ITL compMible wilh 7TL V ) fue rpidaOH mente introducida con innovaciones de circuito para reducir el voltaje de salida de nivel ALTO. reduciendo por ello tanto el consumo de energfa y el ruido de conmutncin mientras que mantena la misma alta velocidad de opcrucin que el FCf original. Un sufijo de '1'"' se emplea en los nmeros de pane paro. denotar la estructura de salida FeT-T. por ejemplo. 74FCT138T contra 74FCf138. La fami lia FeT-T sigue siendo muy popular en la aClual ido.d. Una aplicacin clave de FCT-T se encuentra controlando buses y ()(ras cargas pesadas. En comparacin con otras fami lias CMOS, puede suministrar o consumir picos de comente, de hasta 64 mA en estado BAJO. *3 .8.5 Caractersticas elctricas del FCT-T Las carxtersticas elctricas de la fami lia FeT-T de 5 V se resumen en la tabla 3-8. La familia se encuentra especfficamente diseada para entremezclarse con dispositivos TTL. de modo que su operacin est solamente especificado. con una al imentacin nominal de 5 V Yniveles lgicos TTl.. Algunos fabricames estn comenzando a vender panes con capacidades semejantes empleando unn alimentacin de 3.3 Y, Y utilizando la designacin FeT. Sin embargo. son diferentes dispositivos con nmeros de partes diferentes. Las compuertas lgicas individuales no son fabricadas en la fa milia FeT. Quizs el elemento lgico FCT ms simple es un decodificador 74FeT I38T. el cual tiene seis entradas. ocho salidas y cont iene el equivalente de aproximadamente una docena de

f 'cr-T (CMOS rpido.


comfNl,jbl~ ~on

1TL

ron 1TL VCJH.'

compuertas de 4 entradas internamenle. (Esta runcin se describe poslerionnente. en


la seccin 5.4.4.) Comparando este retardo de propagacin y consumo de energla en la tabla 38 con los nmeros correspondientes HeT y VHeT de la tabla 3-5 en la pgina 138, se aprecia que la familia FCf-T es superior tamo en velocidad como en disipacin de energa. Cuando se comparan. adviena que los fabricantes de Fe l-T especi fi can nicamente relardos de propagacin mbimos. no tlpicos. A direrencia de otros familias CMOS. la FCT-T no tiene una especificacin Cro. En su lugar. tiene una especificacin l ceo : lceo es la comente de alimentacin dinmica. en unidades de mNMHz. sta es la cantidad de corriente de alimentacin adicional que fluye cuando una emroda eslli cambiando ala velocidad de 1 MHz.

1m

:fa po :le

je

144

Captulo 3 Circuitos digitales


Tabla 3-8 EspecifIcaciones pal1'l un decodificador 74FCT138T en la lamma lgica FCT-T.
De~rlpcl6n

S{mbolo

Condicin

V.lor

Retardo de propugaci60 mimo (ns) Corricntc de alimentacIn cn ~poso (~) Disipacin de cncrgla cn
~poso

'ro
' ee
Vml = OoVCC VCnI=O o

'.8

200
1.0
0. 12

(mW)

Vcc

Corricnte de alimcnll1dn dinmica (mNMHz)

'ceo
Mee

Salidas abicr!uS. una cntrada que cambia

Corricntc de alimentacin cn reposo por cntrada 1Tl(mA) Disipacin de energa total (mW)

Y tnl '" 3.4 V


f- ]00 kH z fa ] MHz f'" ]OMHz f=- 100 kHz f = IMHz f= IOMHz

2.0 0.60 1.06

l..

Producto vclocidad-energfa (pl)

6. ] 5
9.3 41
S

Corricntc de (uga de cntrnda (j.1A) Capacitaocia de cnlnlda tlpica (pF) Vollllje de entrada de nivel BAJO (V) Voltaje de cntrada de n"\'tl ALTO (V) Corricnlc de I8lid:l de n''el BAJO (mA) Volllljc de salid:l de nivcl BAJO (V) Corricnte de salida de n" cl ALTO (mA ) Vollllje de salida de nivd ALTO (V)

I,~
C 1N1yp

Ven! = cualquiera

VIl.ma~
VIH min

0.8

2.0
64
1".] S IOtmn

'o......
V OLmn
IOHmax
vOHmin

0.55 - IS

VOl!",

I/..JI S I/0Hmul I/AlI S I/0Hmul

2.4
3.3

1.3 especificacin l oco proporciona la misma infonnacin que CI'Oo pero de una

manera diferente. La disipacin de energa interna del circuilo debida a transiciones :1. una frecuencia! dada puede calcularse mediante la frmula

De este modo,lccrJYcc es algebraicamcnte equivalente a la especificacin ero de otras

familias CMOS (vtase el ejercicio 3.83). Fcr-T tambit n tiene una especificacin ilIcc paro la corriente en reposo CAtru que se consume con entmdns ALTO no ideales (v~ase el cuadro en la pane superior de la pgina 139).

Secdn 3.9

Lgica bIpolar

145

3.9 Lgica bipolar


Las familias lgicas bipolares utilizan dioms semiconductores y transislores de unin biJX)lar como los bloques de construccin bsicos de los circuilos lgicos. Los elementos lgicos

bipolares ms simples hacen uso de diodos y resiSlores para realizar operaciones lgicas; eslo es llamado lgica de diodos. La mayora de las compuertas lgicas T11. utilizan internamente lgica de diodos y aceleran su capacidad de control de salida empleando circuitos de transistores. Algunas compuertas TTL utilizan configuraciones en paralelo de transistores para efectuar funciones lgicas. Las compuertas ECL. que se describen en la seccin 3.14. emplean transistores como intenuptores de comente para conseguir muy alta velocidad. En esta seccin se cubre el funcionamiento bsico de los circuitos lgicos bipolares hechos con diodos y transistores. mientras que en la siguiente seccin se cubren los circuitos TTL en detalle. Aunque TTL es la familia lgica bipolar ms comnmente utilizada, ha sido sustituida en gran parte por las familias CMOS que hemos estudiado en las secciones anteriores. Con todo. es til estudiare! funcionamiento bsico ITL para la ocasional aplicacin que requiere de interfaces ITUCMOS, como sediscuti en la seccin 3.12. Tambin, un rnejorentendimiento de TI1. puede damos idea de la similitud fQ11uita de niveles lgicos que pelillitieron a la industria emigrar suavemente desde la lgica TIL a la lgica CMOS de 5 V, Y ahora a la lgica CMOS de menor voltaje y mayor rendimiento de 3.3 V, como se describe en la seccin 3.13. Si usted no est interesado en todos los sangrientos detalles de TTL, puede sallarse a la seccin 3.11. donde hay un resumen de las familias TIL.

Mglca dt diodo

3.9.1 Diodos
Un diodo stmiconductor se fabrica de dos tipos de material semiconductor, llamados tipo p y tipo n, que se ponen en contacto entre s como se ilustra en la figura 3-61(a). ste es bsicamente el mismo material que se utiliza en los transistores MOS de cnnal-p y canaJ-n. El punto de contacto entre los materia1es p y n se denomina una unin pn. (En realidad, un diodo se fabrica nonnalmente a panir de un cristal monoltico de material semiconductor en el cual las dos mitades son "dopadas" o se les agregan diferentes imputez.as para darles propiedades de tipo p Y de tipo n.) Las propiedades fisicas de una unin pn son tales que la coniente positiva puede Huir fcilmente desde el material tipo p hacia el material tipo n. De este modo, si construimos el circuito mostrado en la figurn 3-6l(b). la l,lnin pn acta casi como un cortacircuito. Sin embargo. las propiedades fisicas tambin hacen muy dificil que la corriente
F I 9 u r a 3-61 Diodos semiconductores: a) la unin pn; b) unin directamente polarizada que permite ei flujo de corriente; e) unin Inversamente polarizada que bloquean ef flujo de comente.
diodo st'miconductor mattria! dt /ipop mattrial dt /;pon unidn pn

(.)

(b)

(,)

-.:Jf--

P"

./
J no V I R

"

/
/ N

146

Capitulo 3 Circuitos digitales

,.,
nodo

,
po

,
),)

IJ

lb)

[>1
+
V

c.6todo

F I 9 U r 8 3-62 Diodos: a) slmbolo; b) caracterlstica de transferencia de un diodo ideal; e) caraclerlstica de transferencia de un diodo real.

auion dfl diodo

diodo

('diodo

diodo im'Ulamtntt

polarizado
diodo dirlUmtnlt

poloriyulo

positiva nuya en la direccin opuesta. de n a p. As, en el circuito de la figura 361 (e), la unin pn se comporta casi como un circuito abierto. Esto se denomina acci6tr dtl diodo. Aunquees posible construir tubos de vado y otros dispositivos que exhiban accin de diodo. los sistemas modernos hacen uso de uniones pn (diodos semiconductores). a los cuales. de ahora en adelame, llamaremos simplememediodos, La figura 3-62(a) muestra el smbolo esquemtico de un diodo. Como lo hemos mostrado. en operacin nonnal cantidades significativas de com ente pueden fl uir solamente en la direccin indicada por las dos flechas. del nodo al ctodo, En efecto. el diodo acta como un cortocircuito mientras que el voltaje que CfU7.a la unin nodo-cuxlo no es negativo. Si el voltaje del nodo a ctodo es negativo. el diodo acta como un circuito abierto y no fl uye com ente. La carncterlsticade transferencia de un diodo ideal que se muestra en la figura 3-62(b) ilustra adicionalmente este principio. Si el voltaje de nodo a clodo, V. es negativo. se dice que el diodo se encuenlra im'lmamt!ntt! polarizado y la comente I a travs del diodo es cero. Si V no es negativo. se dice que el diodo est polarizado dirrctamt!nlt! y la I puede ser un valor positivo arbitrariamente gmnde. De hecho. V nuncn puede llegar a ser m.~ grande que cero, porque un diodo ideal acta como un conocircuito de resistencia cero cuando se polariza direetamente. Un diodo real. no ideal, tiene una resistencia que es menos de infinito cuando se polariza inversamente, y mayor que cero cuando se polariza direetamente. de modo que las caractersticas de transferencia se ven como en la figura 3-62(c). Cuando se polruriza directamente. el diodo acta como una pequei\a resistencia no lineal: su calda de voltaje

Seccin 3.9

Lgica bipolar

147

. )

(b)

o)
0410d0

-l[)l,-+
V 2 o.6\'

Pendiente

V< O .6V

'" IIR ,

/ e> - - -e o'

___-+-'-__
v'" '" 0.6"

1 ,1--

FI gura 3-63 Modelo de un diodo real: a) Inversamente polarizado; b) directamente polarizado; e) caracterfstica de transferencia del diodo directamente polarizado. se incrementa a medida que la comente aumenta. pero no de fonna estrictamente proporcional. Cuando el diodo se polariza inversamente. fluye una pequena cantidad de corri~nt~ d~fu8a negutiva. Si el vahaje se hace demasiado negativo. el diodo alcanza su ruptura . y pueden fl uir grandes cantidades de corriente negativa: en la mayora de las aplicaciones. se impide este tipo de operacin. Un diodo real puede modelarse de maner.l muy simple como se muestro en la figur.l 3-63(a) y (b). Cuando el diodo se encuentra inversameme polarizado. acta como un circuito abierto; ignoramos la comente de fuga. Cuando el diodo se encuentra directamente polarizado. acta como una pequena resistencia, Rf en serie con Vdo una pequena fue nte de voltaje. Rl se denomina la rt'si.rt~lI cia directa del diodo. y Vd se conoce como la calda dd diodo. Una seleccin cuidadosa de los valores para RI y Vd producen una razonable: aproximacin lineal por segmemos a la caracterstica de tr.lnsferencia real del diodo. como en la figura 3-63{c). En un diodo tfpico de senal pequena como el lN914,la resistencia directa R /es de aproximadamente 25 n y la carda de voltaje en el diodo Vd es de alrededor de 0.6 V. A fin de obcener una idea de aproximacin a los diodos, se debera recordarque un diodo real en realidad no comiene la fueme de 0.6 V que aparece en el modelo. Es slo que. debido a la no linealidud de la carncterstica de transferencia del diodo real , cantidades significativas de comente no comienzan a fluir hasta que el voltaje V directo del diodo ha alcanzado aproximadamenle 0.6 V. Tambin ncese que en aplicaciones t[p ica.~, la resistencia directa de 25 n del diodoes pequea en comparacin con otras resistencias en el circuito, de modo que se presenta muy poca calda de voltaje adicional a trnvts del diodo direclamenle polarizudo una vez que Vha alcanzado los 0.6 V. De este modo. par.! propsitos prcticos. se considera que un diodo directamente polarizado tiene una carda fija de ms o menos 0.6 v.

corrit'nI~ d~ fuga

ruplUro dt'lllilNlQ

TtSisft'flcia diTtcta calla dt' /iodo

148

Captulo 3 Circuitos digitales


Tabla 39 Niveles lgicos en un slstema lgico de diodo simple.

Nivel de Hital
0--2 '0115 2-3 \'()I15
3-5 \0115

DenomIMC/rr
BAJO
margen de ruido

VeIOr lgico blflllrlo

O
indefinido

ALTO

3.9.2 Lgica de diodos


La accin del diodo es explOlada paro realizar operaciones lgicas. Considere un sistema

BAJO ALTO computrta ANO CM


diodos

lgico con una aliment.acin de.5 V Ylas caractersticas mOStradas en la labia 3-9. Dentro del intervalo de .5 volts. los voltajes de seal estn divididos en dos intervalos, BAJO y ALTO, con un margen de ruido de I volt enne ellos. Un voltaje en el intervalo BAJO se considera como un Olgico y un voltaje en el intervalo ALTO es un Ilgico. Con estas definiciones, una compuerta AND de diodo puede construirse como se muestra en la figura 3-64(a). En este circuito, supongamos que ambas entradas X y Y se encuentrnn conecw1as a ruentes de voltaje AlTO, digamos4 V, de manera que VX y VY sean ambos de 4 V como en (b). Entonces ambos diodos se encuentran directamente polarizados y el voltaje de salida VZ es Ull3 calda de diodo arriba de 4 V. o arriba de 4.6 V. Una pequea cantidad de corriente, determinada por el valQl" de R, nuye desde la alimentacin de .5 V a travs de los dos diodos y en las ruentes de 4 V. Las fl echas tenues en la figura muestran la trayectoria de este flujo de corriente.

(.1

Figura 364
Una compuerta ANO con diodos: al circuito elctrico; b) ambas entradas en ALTO; el una entrada en ALTO, una en BAJO; d) tabla de funciones; e) tabla de verdad.

.'V
Z

(b)

.'v
Vz . 4.6 V

.V
Y

.v

(o,

.SV

(d,
V,
V z I .6V
boj<> boj<>

(.,
v,
boj<>

v,
boj<>

X y Z
O O O

.no

""~

1V .V

.no ""~
"10

." ."

"")o

1 o 1 O O 1 1 1

Seccifl 3.9

Lgica bipolar

149

, _--cx_ _
t,) ,
.SV
tb)

==!~~___ ---i_-" _-,C ,- O


.SV

Ve '
V

z " .6\'

1.6 \ -

4V 4V

Figura 3-65

,V

Dos compuertas ANO: a) diagrama lgico: b) circuito elctrico.

Ahora supongllmOS que VX decae a I V como en la tigur.!. 3-64(c). En la compucrt.a ANO dediodo. el voltaje de salida es igual al ms bajo de losdos voltajes deentrnda ms una carda del diodo. De esle modo. VZ decae a 1.6 V Yel diodo D2 se polariza inverumcnte (el nodo se encuentra a 1.6 V Yel ctodo todava est a 4 V). la entrada BAJO sola "disminuye" la salida de la compuerta ANO de diodo a un valor BAJO. Obviamente. dos entrndas BAJO crean una salida BAJO l:lmbin. Esta operacin fWlCional se resume en (d) y se repite en trminos de valores de lgica binaria en (e); c1ar.uncnte. sta es una compuerta ANO. l..tI figurn 3-65{a) ilustra un circuito lgico con dos compuertas ANO conectadas juntas: la figurn 3-65(b) muestra el circuito elctrico ~ui valente con un conjunto particular de valores de entrada. Este ejemplo muestra la necesidad de diodos en el circuilo ANO: DJ pennite , que la salida Z de la primera compuerta ANO pennanezca en nivel ALTO mientras que la salida e de la segunda compuerta ANO se empuja al nivel BAJO por la entmda B a travs 04. Cuando las compuenas lgicas de diodos se estabkcen en cascada como en la figw-a 3-65. los niveles de voltaje de las seales lgicas se alejan de las lneas de alimentacin y tienden hacia la regin indefmida. De esta manera. en la prctica. una compuerta ANO de diodo normalmente debe estar seguida por un amplificador de transistor para restablecer los niveles lgicos: ste es el esquema emple:wSo en las compuertas NANO TI1.. descritas en la seccin 3.10.1. Sin embargo. los diseiladores lgicos se eneuenttan tentados ocasionalmente a utilizar diodos discretos para realizar la lgica bajo circunstancias especiales; vase por ejemplo. el ejercicio 3.95.

3.9.3 Transistores bipolares de unin


Un t1TJll.Sistor bipoklrd~ uni&! es un dispositivo de tres tcnninales que. en la mayora de los circuitos lgicos. acta como un interruptor controlado por comente. Si colocamos una pequei'ia COI liente en una de las tenninales. denominada la base. entooces el interruptor se encuentra "encendido" (la COII iente puede fluir entre las otras dos tcnninaIcs. Uamadas el emjsor y el cofector). Si no hay com ente en la base. entonces el interruptor se encontrar "apagado". es decir. no fluir cm . iente a1guna entre el emisor y el colector.
' runsistor bipolor d~ uni611

~miscr

colector

150

Capitulo 3

Circuitos digitales
(b)

(. )

(o)

(d)

" p

I"

" p

,,~

"''''"'
..-.
1Ir - lb le

"

'.

"

F i gura 3-66 Desarrollo de un transistor nprr. al diodos espalda con espalda; b) uniones pn equivalentes; el estructura de un tmnsistor nprr, dl sfmbolo de! transistor npn.

Par.!. estudiar el funcionamiento de un tr.msistor, primeroconsidcremos la operncin de un par de diodos conectados como se ilustro en la figura 3-66(a). En este circuito, la

trr:UlS;Slur nlm

ImnsiS/Qr pnp

U lllplificotJur
rrgi6rr oc/i,'"

cOlifigumd 6n ,Jt: t:miw r comrn

corriente puede fl uir desde el nodo B hasta el nodo o el nodo E. cuando el diodo apropiado se polariza en fonna directa. Sin embargo. no puede fluir corriente desde e a E. o vice\e~. puesto que para cualquier eleccin de voltajes en los nodos B. e y E. uno Oambos diodos estarn inversamente polarizados. Las uniones pI! de los dos diodos en este circuito se muc.~tmn en (b). Ahom supongamos que fabricamos los diodos espalda con espalda de modo que ellos compartan una regin lipo p comn, como se iluslm en la ligurn 3-66(e). La estructura resultante se denomina un lrtlllSislor IIpn y liene una propiednd sorprendente. ( Por 10 menos los fsicos que tmbajaban con transistores all por 1950 pensaban que era sorprendente!) Si hacemos p1Sa!" una comenle a trovs de la unin plI base a emisor, entonces la corriente tambin es habilitada parn fluir 11 travs de In unin "/' de colector a base (lo cual nomlalmente es imposible) y desde!lllf hacia el emisor. El smbolo del circuito para el trnnsistor se muestro en la figura 3-66(d). Ntese que el smbolo conliene una diminuta flecha en direccin del flujo de corriente positivo. Esto tambin nos recuerda que la unin base a emisor es una unin pn. lo mismo que un diodo cuyo sfmbolo tiene una flecha que apunta en la misma direccin. Tambin es posible fabri car un transistor pllp, como se ilustr.l en la fi gura 3-67. Sin embargo. los transistores p"p rara vez son utilizados en circuitos digitales. de modo que no los diSCUliremos en ndelante. La corriente I~ que flu ye fuera del emisor de un transtor "1m es la suma de las corrientes lb e 1" que nuyen hacia la base y el colector. Un transistor se utiliza frecuentemente como un amplificador de seilales. porque sobre cieno intervalo de operacin (la "gidn activa) la corriente de colector es igual a una constante fija por la corriente de b3sc (1" ~ p. lb)' Sin embargo. en circuitos digitales, nonnalmente utilizamos un tmnsistor como un interruptor simple que siempre se encuentro completamente "encendido" o completamente "apagado", como se explica a continuacin. La figuro. 3-68 muestra la co"jigllmci6/1 de em;sorcomln de un transistor IIpll, que es 111 ms f~nt emente utilizada en aplicaciones de conmutacin digital. Estaconfiguracin

ti,,"

Seccin 3.9

Lgica bipolar

151

,. )

'b)

'.
B P B
bo~

" P
e

"""""
octacto(
j /r - 1b + 1t

"

Fig ur a 3-67
Un IranslslOl" pnp: a) estructura; b) s(mbolo.

utiliza dos resistores discretos, NI YN2, adems de un transistor npn simple. En este circuito, si VEh'T es O o negativo. entonces la unin de diodo base a emisor se encuentr.l inversamente polarizada, y no podr fl uir com ente de base (lb). Si no flu ye la com ente de base. entonces no podr fluir corriente de colector (Ir) y se dice que el transistor est en cortl! (OFF). Puesto que la unin base a emisor es un diodo n!al , en oposicin a uno ideal, V ENT debe alcan7.ar por lo menos +0.6 V (una cafdn de diodo) antes de quecualquierconiente de base pueda nuir. Una vez que esto ocurtt. la ley de Ohm nos dice que

corte (opog(l(lo. OFF)

1, = (V.",. - O.6)I RI
(Ignornmos la resistencia direcla R / de la unin base a emisor directamente pol!lriZllda, la cual por lo regulllf es pequea en comparncin con el resistor de base NI .) Cuando fl uye la comente de base. entonces la corriente de colector puede fluir en una cantidad proporcional a l b' es decir.

La constante de proporcionlllidad.

p, se conoce como 1:;1 ganancia del trnnsistor, y se P(M Io)


g llflllncill

encuentra en el interv:;llo de 10 a lOO para los transistores trpicos.

Fi g ura 3-6 8
Configuracin de emIsor com n de un tran sistor npn.

152

Capftulo 3

Circuitos digitales

Aunque la comente de base lb cOnlrola el flujo de comenle del colector Ir tambin controla indirectamente el 'ioltaje V CE a travs de la unin colector a emisor. puesto que V CE es precisameme el voltaje de alimentacin Vcc menos la carda de "oltaje a travs del resislOr RZ:

Va - V cc - l c R2 ::: VCC -/J ' /b' R2

V ce- (V ENT -O.6) R21 RI


Sin embargo. en un trnnsislor ideal Va nunca puede ser menQl"que cero (el tnlnSistor no puede crear un potencial negativo). y en un transistor n:aI VCE nunca puede ser menor que VCE(At). un parmetro del tmnsistor que se encuentra por lo regular alrededor de 0.2 V. Si los valores de VENl' p. RI Y R2 son de l.aI modoque la ecuacin anterior prediga un valor de Va que sea menor a VCf.(UlI' enlonces el lransistor no puede estar funcionando en la regin activa y la ecuacin no se aplica. En vez de ello. el transistor se encuentra funciontmdo en la regin de saturacin. y se dice que est saturado ( ON). No impona cunla corriente lb suministremos a la base. Va; no puede caer por debajo de VCf.(Ulr y la comente de colector Ir estar determinada principalmente por el resistor de carga R2:
I r- ::: (V cc - VCE(w)/( R2 + RCE(ul))

rtgi6n dt Joturo66n Joturado (tnctrnlido. 00)

rtsiJttn6a dt so!urod6n simulacloo de tmnJiSlOr

Aquf. RCf.(W) es la resistencia de Jaruracin del transistor. Por lo regular. RCf.(NII) es de 50 n o menor yes insignificante en comparacin con R2. Los especialistas en computucin pueden querer imaginarse un tronsistor npn como un dispositivo que continu1lJTlenle examina su enlomo y ejecuta el programa en la labia 3 10.

3.9.4 Inversor en lgica de transistor


La figura 3-69 muestro que podemos hacer un inversor lgico a partir de un transistor npn en la configuracin de emisor comn. Cuando el voltaje de entrada es BAJO. el voltaje de salida es ALTO. y viceversa. En las aplicaciones de conmutaci n digital. los tmnsistOf"CS bipolares con frecuencia se hacen funcionar de modo que siempre estn en C(X1.e o saturndos. Es decir. los circuitos

Figura 3-69 Inversor de transistor: a) sfmbo!o lgico. b) diagrama de circuito; cl caracterlstica de


transferencia.

" SAL

cc - - ,

ENT

SAl

VC&~~ ___, -__~:;:::::.BAJO' Indefinido ALlO

V~T

l')

lb)

lo)

Seccin 3.9
T a b I a 3 -1 O Un programa en e que simula la funcin de un transistor npn en la configuracin de emisor comn.

l gica bipolar

153

' 0 transistor
'define 'define ldefine 'del ine

Parameters

0 '

DIODEDROP 0.6 / . volts

0 '

BETA 10;
VCSwSAT 0.2 RCSwSAT 50

/-

volts / . ohms 0/

0 '
eircuit parameters "' circuit conditions . ,

main() 1
float Vec, Vin , Rl , R2 : float lb, le, Vee;
/0

/"

if (Vin < DlOOEDNP) {

/ . cut off

l b = 0.. 0: l e = 0. 0: Vce = Vec :

0 '
saturated'
, . Active 0/

else {

' " active or


E

lb

(Vin - DIOOEOROP) , al : lc BETA lb; Vee :: Vee - (le R2) ;

if ((Vcc - (BE."I'A lb) R211 >= VCE.-$AT) {

, , , ,
,.,

else { , . saturated "' Vce = VCSwSAT; le = (Vec - Vce) , tR2 + ~T):

F i gura 3-70 Estados normales de un transistor npn en un circuito de conmutacin digital: al corrientes y slmbolo del trenslstor; b) circuito equivalente para un transistor en corte (apagado, OFF); el circuito equivalente pare un transistor saturado (encendido, ON).

lb)

,<,

I"

I',"

1Ir :> o

'.

1/
E

.'' + '('

.\""
V ll6 < 0.6 V

+ \ //1 :' 0

0.6 V

He.::,..,)
VCEi ....

I',"
E

.. 0.2 V

vII6

1,,1 /1 + 1 ('
E

"-......:

154

Capilulo 3

Circuitos digitales

~ El conmutadof se cierra
~ ndo

"" M 'T est en ALTO.

F i gura 371 Modelo de conmuta cin para un Inversor de translstor.

digitales tales como el inversor de la fi gura 3-69 estn diseudos de modo que sus transistores se encuentren siempre (bueno. casi siempre) en uno de los estodos descritos en la figura 3-70. Cuando el vollllje de entrnda VEI\T est en ni vel BAJO. es tan bajo como paro que lb sea cero y el tnmsislor est/! en corte; la unin de colcctor-emisor parece como un circuito obierto. Cuando VEN('est en ALTO. es 10 suficientemente alto (y RI es lo suficientemente bajo y Pest bastante alto) paro. que eltmnsistor llegue a saturursc par.. cuatquier valor razonable de R2: la unin de eoleclor-emisor parecer casi como un cortocircuito. Los voltajes de entrada en [a ~gn indefi nida entre BAJO y ALTO no se pc:nniten. exceplo durante transiciones. Esta regin indefi nida corresponde al margen de ruido que discutimos en conjunto con la tabla 3- 1. Otra manera de visuali7.ar la operacin de un inversor de transistor se ilustra en la figura 371. Cuando VEN'!' se encuentra en ALTO. el interruptor de transistor est cerrado. y la tenninal de salida est conectada a tiem. sin duda un \'oltaje BAJO. Cuondo VEI\T sc encuentra en BAJO. el interruptor de transistor est abierto y la tcmlinal de salida se lleva a +5 V a lr'.I\'ts de un resislOr: el voltaje de salida es ALTO a menos que la lenninal de salida se encuentre de masiado cargada (es dec ir. conectada de manera impropio a trav/!s de una baja impedancia hacia lierra).

3.9.5 Transistores Schottky


lirmpo di! almactnam;,nW

diodQ Schotlk}'
mnsiSlor fijado Schotlk}' rnnsistor Schotlky

Cuando la entrada de un transistor saturado cambia., la salida no se modifica de inmediato; le toma un tiempo extra. de nominado liempo de ulmucetlam;etlIQ. salir de satu raci6n. De hecho. el tiempo de almacenamiento explica una parte significativa del retardo de propagacin en la familia lgica lTL original. El tiempo de almacenamiento puede screliminado y el retardo de propagacin puede reducirse asegurando que los transistores no se saturarn en operacin nonnal. Las 6gicas 1TL contemporneas hacen esto colocando un diodo Scllollky entre la familias 1 base y el colcctor de Cad1 transistor que pocIrla saturarse. como se muestra en la fi gura 3-72. Los transistores resultantes. que no se saturan. se conocen como Iraruislort's fijad os Schotlky o. para abreviar IronsislOrt'S Scholtky.

Seccin 3.9

Lgica bipolar

155

DIodo

oolector
emiSor

....
(b)

(.)

Figura 3-72 TranSistor enclavado Schottky: a) circuito; b) sfmbolo.

Cuando est polarizado directamente. la carda de voltaje en el diodo Schottky es mucho menor que la de un diodo estndar. 0.25 V en comparacin con 0.6 V. En un transistor saturado estndar. el voltaje de base a colector es de 0.4 V, como se ilustra en lo figum 3-73(a). En un transistor Schottky, el diodo Schottky deriva la ceniente de la base al colector antes que el transistor vayoolo salUmci6n, como se Illuestra en (b). La figum 3-74 muestra el dillgmma del circuito de un in\'e oor sencillo que ulili7.a un transistor Schottky.
(.)
(b)

0.25 \'

I'Be . 0.4 .. "(,

~f."J!.

0.2 \'

F I 9 u r a 3- 73 Funclooamiento de un transistor con corriente de base grande: a) transistor estndar saturado; b) transistor con diodo Schottky para evitar la saturacin.

' 56

Capitulo 3

CIrcuItos digilales

3.10 Lgica transistor-transistor


La familia lgica bipolar ms comnmente utili7..ada es la lgic3 transistor-transislOr. En re:tlidad, existen muchas familias fL diferentes, con un intervalo de velocidad, consumo de energra y OlfaS caractersticas. Los ejemplos de circuitos en esta seccin estn

basados en una famil i3 TIL representativa. la denominada Schouky de baja potencia (LS o LS-fL, "Low-power Schottky"). Las fami lias 1TL utilizan bsicamente los mismos niveles lgicos que las fami lias CMOS comp3tibles con TIL de las secciones anteriores. Utilizaremos las definiciones siguientes de niveles BAJO y ALTO en nuestras discusiones acerca del comportamiento de circuitos TIL: BAJO 0-0.8 volts. ALTO 2.0-5.0 volts.

3.10.1 Compuerta NANO 11 L bsica


El diagrama de circuito de una compuerta NANO LS-TI'L de dos entradas, nmero de pane 74LSOO. se muestra en la ligura 3-75, La funcin NANO se obtiene ni combinar una compuerta ANO de diodo con un buffer inversor. El funcionamiento del circuito se comprende mejor al dividirlo en tres partes que se ilustran en la figura y se discuten en los tres prrafos siguientes: Compuerta ANO de diodo y proteccin de entradn, DiviSOf" de fase .

Etapa de sal ida.


CtlftIJJUf!no AND d, diodo diodo fijeulo

Los diodos DI X y DI Y y el resislor RI en la fi gura 3-75 fonnan una compuena AND dt! diodo. como en la seccin 3.9.2. Los diodl1J dt!fljad/m D2X y D2Y no hacen nada en operacin normal. pero limitan las excursiones negativas no deseables en las entradas para una carda de diodo simple. Tales excursiones negativas pueden ocurrir en las transiciones de entrada de ALTO a BAJO como resultado de efectos de !fnea de transmisin. discutidos en la seccin 11 .4. En transiSlor Q2 y 1 05 resistores que le rodean fonnan un d';sor dt! /tut' que controla 13 etap3 de salida. Dependiendo si la compuerta ANO de diodo produce un "oltaje "bajo" o "alto" en V.... Q2 est en corte o encendido.

por

re h

Seccin 3.10

lgica transistor-transistor

157

Figura 3-75 Diagrama de circuito


de

compuerta

NAND LS-TTl

-_ ..... -_._._.- -- ---y ptOleod6n e enlmaa

de dos entradas.
Divisor de Jase

Etapa de salida

La eUJpa tk salida tiene dos transistores. Q4 y Q5, uno de los cuales se encuentra encendido en cuaJquier momento. La elapa de salida TfL se denomina en ocasiones

,.,apa d,. M lida

salido totempole o pushpull. De manera semejante a los transistores de canalp y eanaln en CMOS . Q4 y Q5 proporcionan arranque y disminucin activos a los estados ALTO y BAJO, respectivamente. La OJXlaei6n funcional de la compuerta NANO TIL se resume en la figura )76(a). La compuerta efecta realmente la funcin NANO. con la tabla de verdad y el snbolo lgico que se muestra en (b) y (e). Las compuertas NANO TrL pueden diseane con cua1quier nmero deseado de entnldas simplemente cambiando el nmero de diodos en

solido lot,.m-poIe o salido push-pull

(.)

X L L H H

V L H L H

v,
s1.05 s1.05 s1.05

O'
di
~

1.2

. . . . .
m m m m m
~

OJ

'"

O J
~
~

""
di di
~

v,
2.7 2.7 2.7

z
H H H L

df

"'.35

Figura 3-76 Operacin funcional de una compuerta NANO de dos entradas TTl: a) tabla de funciones ; b) tabla de verdad; e) slmbolo lgico.

(b)

o o o o

, , , , , , ,
o

(o)
X V

158

CapItulo 3 Circuitos digitales la compuenn ANO de diodo de la figura. Las compuertas NANO ITL comercialmente disponibles tienen hasta 13 entradas. Un inversor 1TL est diseado como una compuerta NANO de I entrada, omitiendo los diodos DI Y YD2Yen la fi gura 3-75. Puesto que los trnnsistores de salida Q4 y Q5 son nonnalmente complementarios (uno en ON y el otro en OFF), usted tal vez se pregunte el propsito del resislor R5 de 120 Q en la etapa de salida. Un valor de OQ dara incluso una mejor capacidad de control en el estado ALTO. Esto es ciertamente verdadero desde un punto de vista de cn. Sin embargo. cuando la salida TI1. se encuentra cambiando de ALTO a BAJO o viceversa, existe un breve momento cuando ambos transistores pueden estar encendidos. El propsito de R5 es limitar la cantidad de COil iente que fluye desde VCC a tierra durante este momemo. Incluso con un resistor de 120 Q en la etapa de salida TIL, corrienles mayores que la nonnal. denominadas corriemes pico, flu yen cuando las salidas ITL se conmutan. stas son semejantes a los picos de comente que se presentan cuando conmutan las salidas CMOS de alta velocidad. Hasta ahora hemos mostrado las seales de salida para una compuerta ITL como fuemes de voltaje ideales. La figura 3-77 ilustra la situaci6n cuando una entrada TTL est controlada a un nivel BAJO por la salida de otra compuerta TfL, El transistor QSA en la compuenn de control est encendido (ON) y por ello proporciona una trayectoria a tierra para la corriente que fluye fuera del diodo D/XB en la compuena de control. Cuando la cOi liente fluye de11tro de una salida TI1... en el estado BAJO. como en este caso, se dice que la salida consume corriente, La figura 3-78 muestrn el mismo circuito con una salida ALTO. En este caso, Q4A en la compuenu de control se enciende lo suficiente para suministrar la pcquefta cantidad de corriente de fuga fluyendo a lnlvts de los diodos inversamente polarizados D/XB y D2XB en la compuenn de control. Cuando la comente fluye fuera de una salida TIL en el estado ALTO, se dice que la salida es unafuente de corriente.

cvrri"ntt' CfHISumidu

corrienle suminismma (defuen/e)

3.10,2 Niveles lgicos y mrgenes de ruido


Al principio de esta secci6n, indicamos que considerarlamos las seales ITL entre O y 0.8 V como de nivel BAJO y las seales entre 2.0 y 5.0 V como de nivel ALTO. En realidad. podemos ser ms precisos al definir los niveles de entrada y salida 1TL del mismo modo que lo hicimos para CMOS: VOHmin El voltaje de salida mfnimo en el estado ALTO, 2.7 V para la mayoria de las familias TIL. VlHmin El voltaje de entrada mfnimo garantizado para ser reconocido como un nh'eI ALTO, 2.0 V para todas las familias TI1....

Seccin 3.10

lgica transistor-transistor

159

1 P ot ~lda por

Figura 3-77 Una salida TILque controla una entrada TILen BAJO.

1m

~e

roleglCl

d :'ICho de aut

Figura 3-78 Una salida TIL que cootrola una entrada TIL en ALTO.

160

Capitulo 3

Circuitos digitales
Vcc S V - , -- -- --,

Figura 379 Mrgenes de ruido para las familias lgicas TTL populares (74L$, 74$, 74AL$, 74A$, 74F).

oll -:::==~= V ..... - 2.7 V -Cc::-::::-::- vntm 2.0 V

ALTO

Margan 00 ruido de
CO 00 O1ltado ALTO

11Aw =:==::i~ V V _ ~~n81l~=~ _cBAJO::.:.:..._ _ vQ _ , 0.8 O.S v

ANORMAL

V Lnw El vahaje de entrada mximo garanLlzado para ser reconocido como un nivel 1 BAJO. 0.8 V para la mayorla de las familias lTL: V OLnw El voltaje de salida mximo en el estado BAJO. y es de 0.5 V para la m3yoria de las familias. Estos mrgenes de ruido se ilustron en la fi gura 379. En el estado ALTO. la especificacin V OHmin de la m3yori3 de las familias TTL excede 3 Vlllmin por 0.7 V. de modo queTI1... tiene un margen de mido de CD de 0.7 V en el estado ALTO. Es decir. le toma por 10 menos 0.7 V de ruido corromper un3 salida ALTO en el peor de los casos en un voluaje que no est6 garantizado que sea reconocible como un3 entrad3 ALTO. Sin embargo. en el estwo BAJO. VIUnu; excede V Olmn por solamente 0.3 V. de modo que el margen de ruido de CD en el estado BAJO es de sola mente 0.3 V. En general. los circuitos TIL y compatibles con Tl1.. tienen la tendencia a ser ms sensibles al ruido en el estado BAJO que en el estado ALTO.

mafgf'f! dt ruidt! dt CD

3.10.3 Fa" out


f l ln OUI

flujo dt ("orritnlt

Como lo defini mos antcrionnentc en la seccin 3.5.4./00 QUI es una medido. del nme ro de entradas de compuerta que se encuentran conectadas a (y controladas por) una sola salida de compuerta. Como demostromos en esa seccin. el fan out CD de CMOS que conlrolan entradas CMOS es virtualmente ilimitado. porque las entradas CMOS casi no requieren corrientc en cualquier estado. ALTO o BAJO. B te no es el caso de las entradas lTL. Como resultado. existen lmitcs muy definidos sobre fan out lTL o CMOS controlando entradas lTL. como aprenderemos en los prrafos que vienen a continuacin. Como en CMOS elflujo de corriellle en una tcrminal de entrada o salida TI1.. est definida como positiva si la corriente en realidad fluye d~nlro de sta. y negativa si la corriente nuyefu~ra de la terminal. Como resultado. cuando una salida se conecta a una o ms entradas. la suma algebraica de todas las corrientes de entrada y salida es O. La cantidad de corriente requerida por una entrada TI1.. depende de si la entrada es ALTO o BAJO. y se especifica por medio de dos partmelrOS:
La corriente m.ximaque requiere una entrada para lIeVllTla a BAJO. Recuerde de la discusin de la figura 3n que la corriente positiva se encuentra nuyendo en realidad desde Vec . pasando por RJ B, a trav& del diodo DIXB. hacia fuera de la terminal de entrada.. pasando parel tran.~istor de snlida de eontrol Q5A y a Llena. Puesto que la comente flu ye hacia fuera de una entrada TIL en el estado BAJO. III..m .... tiene UD \-aJor-negativo. La mayora de las entradas LSTI1.. tienen J1Lmu. ::::: ..(l.4 mA. lo que se da en llamar. en ocasiones. una carga unitaria de es/odo BAJOpam LSTI1....

carga unitaria d~ tSladt!


BAlO

Seccin 3.10

Lgica transistortransistor

161

IIHmu La corriente mxima que ~um una entrada para llevaria a AlTO. Como se muestra en la figura 3-78 de la pgina [59, la coniente positiva fluye desde Vro pasando a tra\'s de R5A YQ4A. de la compuerta de control. y dmtro de la entrada controlada. donde sale a tierru. a trnv6i de los diodos inversamente polarizados DI XB YD2XlJ. Puesto que la comeflle fluye tkntro de una entrnda TIL en el es'ado AlTO. /1Hmu. tiene un valor positivo. La rnayttfa de las entradas LS-TIL tienen 11Hmu. = 20 pA. lo cuaJ en ocasiones se cooocc como la carga wilaria th t!j'udo AL70para LSTIL.
Como con las salidas CMOS, las salidas TIL potden suministrar (como fuente)o con-

torga "ni/aria dt tstwo

ALro

sumir (como sumidero) cierta cantidad de corriente dependiendo del estado, ALTO o

BAJO,
10lmaJ. La UJCliente mxima que una salida puede consumir en el estado BAJO mientras se mantiene un voltaje de salida no mayor que VOlmu ' Puesto que [a comenle fluye en la salida, 10I..nw. tiene un valor positivo, 8 rnA para la mayorfa de las salidas LSTfL. lot..mu La ca liente mxima que una salida puede suministrar en el estado ALTO mienlr.lS se mantiene un voltaje de salida no menor que V Ollmin ' Puesto que la caliente nuye fueru. de la salida, 100 Imu tiene un valor negativo, -400 JlA para la mayorfa de las salidas LSTfL.

Ntese que el valor de 10l..mu para las salidas tipicas LSTfL es exactamente 20 veces el valor absoluto de 11I..mu' Como resultado, se dice que LS TI1. tiene unjan out en ~stado fan 01.11 t n triado BAJO BAJO de 20. debido a que una salida puede controlar hasta 20 enteadas en el esta do BAJO. Similarmente. el valor absoluto de IOll mu es exaetarnenle 20 veces 1,lImu' de mnnern que se dice que LSTI1.liene unjan out ~n ~s'ado ALTO de 20 tambin. El jan OUI tn tSladoA LTO fan out total es el menor de los fan aut de estado BAJO y ALTO. f{ln OUI I':n 1 0111/ Cargar una salida TIL con ms de lo que pennite el fan out nominal tiene los mis mos efectos peljudiciales que se describieron paru los dispositi vos CMOS en la seco cin 3.5.5 de la pgina 110. Es decir, los mrgenes de ruido de CD pueden ser reducidos o eliminados, los retardos y tiempos de transicin pueden incrementarse y e[ dispositi. vo puede llegar a sob!"ecalentarse.

1m 9 n rol

ida)() derecho de u or

162

Captulo 3

Circuitos digitales

En general, deben realizarse dos clculos paro confirmar que una salida no est siendo sobrecargada: Estado ALTO Los valores 1m...... para todas las entradas controladas se suman. Esta suma debe ser menor O igual que el valor absoluto de IOllmn para la salida de control. Estado BAJO Los valores IILmu par:l. todas las entr:l.das controladas se suman. El valor obsoluto de esta sumo debe ser menor o igual a 10l.m;u para la salida de control. Por ejemplo. supongamos que usted disea un sistema en e l que ciena salida LS -TfL controla diez entradas de compuerta LS-TfL y tres S-TfL. En el estado ALTO, se req uiere un total de 10 20 + 3 . 50 ~A '" 350 ~A. Esto est dentro de una capacidad de suminislr'O de COl I iente de estado ALTO de salida de LS-TfL de 400 pA. Pero en el estado BAJO. se requiere de un total de 10 0.4 ... 3 . 2.0 mA = 10.0 mA. Esto va ms all de una capacidad de consumo de cOI,iente de estado BAJO de salida LS-TfLdc 8 mA. de modo que la S<llida se encuentm sobrecargada.

3.10.4 Entradas sin utilizar


Las entradas sin utili:t.ar de las compuertas TIL pueden ser manipuladas de la misma manero que describimos para las compuertas CMOS en la seccin 3.5.6 de la pgina 111 . Es decir. las entradas sin utilizar pUf..-den ser vinculadas a las utilizadas, o las entradas sin usar pueden ser llevadas a nivel ALTO o BAJO, segn como sea apropiado paro la fun dn lgica. El .....llor de resistencia de un resistor de arranque o de disminucin es ms critico con las compuertas TIL que con I a.~ compuertas CMOS. porque las entradas rn.. extraen significativamente ms corriente, especialmente en el estado BAJO. Si la resistencia es demasiado grande. la cafda de voltaje a tr.lvs del resistor puede provocar un voltaje de entr.lda de compuerta ms all del intervalo normal BAJO o ALTO. Por ejemplo, considere el resislor de disminucin (pull-down) mostr.ldo en la figu ra 3-80. El resistorde disminucin debe consumir 0.4 mA de corriente de cada una de las entradas LS-1TL sin utilizar que controla. La cada de \'Oltaje a travs del resistor no debe ser ms de 0.5 V a fin de tener un voltaje de entrada BAJO no peor del producido por una S<llida de compuerta nonna!. Si el resistor controla n entradas LS-lTL. entonces debemoslener

110.4 mA Rpd<0.5 V

Seccifl 3.10

Lgica transistor-transistor

163

S O.5\'

consumo desde las entradas


"" BAJO

comente de

Figura 380
Aesistor de dismInucin para entradas TIL.

De este modo. si el resistor debe llevar 10 entradns LS-ITL a nivel BAJO, entonces debemos tener RpJ <0.5/ (10 . 4 . IO~) o ~ < 125 O. De manel1l semejanle, considCTl: el resistor de arranque mostl1ldo en l:l figul1l 3-8 1. Debe suministrar 20 pA de corriente a cada entrada sin utilil.ar mientrdSque produce un voltaje ALTO no peor que el producido por un:l s:llida de compuerta nomla!. 2.7 V. Por lo tanto, la carda de voltaje a tl1lvs del resistor no debe ser mayor de 2.3 V; si n entradas

LS-TTl son controladas, debemos tener

" . 20 JiA . Rpu < 2.3 V


De esta fomla. si 10 entradas LS-TTL se activan, enlonces Rp<J < 2.3/ (10 . 20 1<r6) '. o Rp<J < 11 .5 Kn.

Corriente de luenle para


entradas on
ALTO

Figura 381

H
1'"

I
1II...n

Aesistor de arranque para entradas TIL.

\'.nl '7\'

164

Capitulo 3 Circuitos digitales

3.10.5 Tipos adicionales de compuertasTTL


Aunque la compuerta NANO es el "caballo de balalla" de la fami lia TIL. pucdcn construirse otros tipos de compuertas con la misma estructura general de circuitos. El diagrnma de circuito para una compuerta NOR LS-TIL se muestra en la figura 3-82. Si cualquier entrada X o Y se encuentra en nivel ALTO. el transistor divisor de fase correspondiente Q2X o Q2Y se encicnde. lo cual apaga Q3)' Q4 mientras activa Q5 y 06. y la salida es BAJO. Si ambas entradas estn en BAJO. entonces ambos transistores divisores de fase se encuentran apagados. y la salida est fornada al nh'el ALTO. Esta operacin funci onal se resume en la figura 3-83. Los circuitos de entrad:t. divi r de ras y elupa de salida de la compuerta NOR LS-TIL son casi idnticos a los correspondientes de una compuerta NANO LS-TIL. La diferencia es que una compuerta NANO LS-TIL utiliza diodos para realizar la funcin ANO. mientras que una compuerta NOR LS-TIL emplea transistores en paralelo en el divisor de fase para efectuar la funcin OA . La velocidad. entrada y caracteristicas de salida de una compuerta NOR TIL son comparables a las de una NANO 11L Sin embargo. una compuerta NOR de n enrmc1as emplea ms transisuns y resistores y es ase ms costosa en rea de silicio que una compuerta NANO de 11 comas. Tambin, la COitiente de fuga intema limita el nmero de transistores Q2 que pueden ser situados en paralelo, de modo que las compuertas NOR tienen una fan in deficiente. (la compuerta NOR TI1. discreta ms grande tiene solamente S colradas, en comparaci6n con una NANO de 13 enrradas.) Como resullado. las compuertas NOR se utilizan con menos frecuencia que las compuertas NANO en diseos TIL. Las compuennsTIL ms "naturales" son lascompuenas inversoras como las NANO y las NOA. las compuertas no inversoras TrL incluyen una etapa de inversin extra. tfpicamente entre la elapa de entrada y el divisor de fase. Como resultado, las compuertas TTI. no inversoras son por lo regular ms grandes y ms lentas que las compuertas inversoras en las que estn basadas. Como con CMOS, las compuertas 111. pueden ser diseadas con salidas de tres estados. Tn1es compucnas tienen una entrada de "habilitacin o deshabilit3Cin de salida" que pennite que la salida se coloque en un estado de alta impedancia donde ninguno de los lmnsistores de salida se encuentra encendido.

Seccin 3.10
Ve( S v

LgIca transistor-transistor

165

- ---- -- - . _..

FunciOf1 OR Y divisor de lase

Etapa de salida

Figura 3-82 Diagrama de circuito de una compuerta NOR LS-m


(.)

de dos entradas.

x
l l
H H

y
l
H

v""
s 1.05
S 1.05 1.2 1.2

OIX
~
~

v"
S 1.05 1.2 S 1.05 12

O" OJ

.
M M
~

Q4
M

O '

M
~

l
H

M M

di
~

.
~

.
M M M

Q6 di
M M M

v,
:2: 2.7

z
H

Figura 3- 83
Compuerta NOA LS-

S 0.35 S 0.35 :lO 0.35

l l l

TIl de dos entradas: al tabla de funciones; b) tabla de verdad; el sfmbolo lgico.

(b)

x
o o
1 1

z
1

(o)

o
1

o
1

o o o

) )o

Algunas compuertas rn. se encuentran lambitn disponibles con salidas de co/utor abjuto. Tales compuertas omiten la mitad superior completa de la etapa de salida en la figura 3-75. de modo que solamenle se proporciona arranque pasivo al eslado ALTO mediante un resistO( externo. Las aplicaciones y clculos requeridos para las compuertas de compuena abiena rn. son similares a las de las compuertas eMOS con salidas de drenaje abierto.

stJlUJ de coltelor tJb;trto

166

Captulo 3

Circuitos digitales

3.11 Familias TTL


Las familias TTL han evolucionado a travs de los aos en respuesta a las demandas de los diseadores digitales por un mejor desempeo. Como resultado. tres familia s TTL han llegado y se han marchado. y los diseadores de la aclualidad tienen cinco familias sobrevivicmes de las cuales escoger. Todas las familias 1TL son compalibles en el sentido de que utilizan el mismo voltaje de alimentacin '1 niveles lgicos, pero cada fami lia tiene sus propias vemajas en tmlinos de velocidad, consumo de energa y costos.

3.11 .1 Familias TTL Iniciales


1963. Fue IXpllarizada por Texas Instrumcnts, cuyos nmeros de pane "serie 7400" para compuenas y otros componemes TTL se convirtieron nipidameme en un eMndnr de la industria. Como en la serie 7400 CMOS, los dispositivos en una familia TTL dada licnen nmeros de parte de la fonruJ 74FAMn/I. donde "FAM" es un mnemnico de familia alfabtico y 1111 es una denominacin de funcin numrica. Los dispositivos en familias diferentes con el mismo valor de /111 realizan la misma funcin. En la famil ia TTL original, "FAM" es nula y la familia se conoce como TfL serie 74. Los valores de resistores en el circuito TIL original se cambiaron para obtener dos familias ro.. ms con diferentes caractersticas de rendimiento. La familia 74H (H ighsfH'ed ITL. 7TL dI!! alla I'e/ocidad) usaba valores de resistor ms bajos para reducir el retardo de propagacin a costa de un incrememo en el consumo de energa. La familia 74L (Low.power 7TL ITL de l}Clja pofl!!nciu) usaba valores de resistor ms altos para disminuir el consumo de energfa a costa del retardo de propagacin. La disponibilidud de las tres familiLS ITl. permitieron a los disc:adoI'C5 digilale5 en la dcada de 1970. elcgir entre alta velocidad y bajo consumo de energa para sus circuitos. Sin embargo. como mucha gcnte en esa dcada, ellos qucran "tenerlo todo, y ya!" El desarrollo de los trnnsistores Schollky proporcion esta oponunidad e hizo obsoletos a los ITL 74, 74H Y74L. Las caractersticas de las familias 1Tl.. contemporneas de mejor rendimiento se discuten en el resto dc esla seccin.
La familia original TfL de compuertas lgicas fue introducida por Sylvania en

rrl. SU;I!! 74

74f1 (TfL dI!! alm \'docidad )


74 1. (rrL de bfljtl polt!ndaJ

3,11.2 Familias TTL Schottky


74S ( rrt. Sr/WII")'}

74LS (ITL ScIIOIII:)' de /J(ja poll!!ncia)

74AS (TT!- SchQ/lk)'


fll'f/1/uulo )

74ALS (ITL SrhotlKy de


baja potencia uWln:JIdo )

Histricamente, la primera familia en hacer uso de los transistores Schotlky fue la 745 (Scllo"ky 1TL). Con los trnnsistores Schottky y valores de resistencia bajos. esta famili a tena mucho m'l alla \'elocidad. pero un consumo de energa ms alto. que las series 74 rn. originales. Quizs la familia rn. ms ampliamente utilizada y cienamente la menos costosa es la 74LS (L.ow-POII'U Sclwttky 1TL Scllouley 1TL dI! baja potencia) . introducida poco despus de la 74S. Al combinar los trnnsistores Schottky con valores de resistencia ms altos, 111 74LS TTL igualaba la velocidad de la serie 74 ro.. pero tena aproximadamente una quinta parte de su consumo de cnerga. As!' la 74LS se convini en una familia lgica preferida para nuevos diseos TTL. Las innovaciones subsecuentes de: circuito y procesamiento de CI dieron surgimiento a otras dos familias lgicas Schottky. La familia 74AS (Adl'f/nct'd Sclwllky 1TL) orrece velocidades aproximadamente dos veces ms rpidas que la 745 casi con el mismo consumo de energa. La familia 74ALS (Adl'tmced Low-powu SelIOUIe)' 1TL) ofrece lanto

Seccin 3.11 Ta b I a 3- 11 Caraclerlslicas de compuertas en familias TTL


Fsmlll.

Familias TTL

167

o.scrlpcl6n

51mbolo

745

74L5

74AS

74ALS
4

74F

Rcuuoo de propagocin mximo (ns) Consumo dc cnergfa por compuen:l (mW) ProdllC1o \'clocid3d.cnergfa (pJ) Voltaje de entrada de nivel BAJO (VI Vohaje de salida de nh-el BAJO (V) Vohaje de entrnda de ni\'el ALTO (V) V ohaje de salida de nh'Cl ALTO (V) Corriente de enlnlda de nivcl BAJO
(mAl
V,,,,", VO",",
VrHman
V",,~

,.
J

1.7

J
4

8
13.6

1.2

" 0.8
0.5 2.0 2.7
- 2.0

18

4.8

12

0.8 0.5
2.0

0.8 0.5
2.0

0.8 0.5
2.0

0.8 0.5
2.0 2.7

2.7 -<l.4 8

1,,,,",

" -<l.5
20

2.7 -<l.2 8 20

-<l.'
20 20
- 1000

Corriente de ~ l ida de nivel BAJO (mA)

IOLmU

20

ComeRle de entrada de oh'cl ALTO tA) IrH mu Corriente de salida de nh'e! ALTO (IIA)
' OHnIU

20
- 1000

-2000

baja potencia como mayores vclocid.1dcs que la 74LS y riV".diza con la 74LS en popularidad para requerimientos de propsito general en los nuevos diseos lTI... La familia 74F (Fast TTL ) se encuentra posicionada entre la 74AS y la 74A l S en el intercambio velocidlllUpotencia. y es probablemente la eleccin ms popular para requerimientos de alta velocidad en los nuevos diseos TrI...
3.11.3 Caractersticas de las familias TTL Las caractersticas importnnles de las ramilias ITL contemporneas se resumen en la tabla )- 11 . Los primeros dos renglones de la tabla enumeran el relardo de propagacin (en nanosegundos) y el consumo de energfa (en miliwalts) de una eQmpuerta NANO de 2 entradas tlpica en cada familia. La cifr.1 de mrito de una fami lia lgica es su prodllClO vdocidod-encrgfa expresado en ellercer rengln de la tabla. Como se disculi con anlerioridad. ste es simplemenle el prOOUClO del retardo de propagacin por el consumo de energa de una compuerta tpica. El producto velocidad-cnergfa mide una clase de efi ciencia (cunta encrgfa utiliza una compuena lgica para conmutar su salida). los renglones restantes en la tabla )1 1 describen los parmetros de entrada y salida de las compuertas TTL tpicas en cada una de las familias. Haciendo uso de esta informacin.

74 F (1TLrtIpidoJ

168

Capftulo 3 Circuitos digitales

se puede analizar el comportamiento extemodc: las compuertas TI1. sin conocer los detalles del diseo de circuito rn. memo. Estos parmetros fueron definidos y se discutieron en las secciones 3. 10.2 y 3. 10.3. Como de costumbre. las Clli"llCterfsticas de cntrodn y salida de componentes especficos pueden variar de los \'alores representativos dados en la labio 3- 11. de modo que U Sted siempre debe consultar el libro de datos del fabricante cuando analice un diset10 real.

3.11.4 Una hola de datos TTL


La tabla 3- 12 muestra la pane de una tpica hoja de datos del fabricante paro el 74LSOO.

El 54LSOO mencionado en la hoja de datOS es idntico al 74LSOO. excepto que tiene especificaciones para func ionamiento sobre el intervalo completo de temperoturo y voltaje paro aplicaciones militares. y su costo es mayor. La mayora de las panes TTL tienen sus correspondientes versiones en serie 54 (militares). Se muestmn tres secciones de la hojo de datos en la tabla:
~d;rion~r

ftcorntn dador d~ optrucidn

corocf~rirficas t/icrricas

operacin ,'('Com~nd{/(Ias especifican el voltaje de alimentacin. inter\'alos de \'oltaje de entrada. carga de salida de CD y valores de temperotura bajo los cuales el dispositivo funciona normalmente. Caracl~rlsticas ~ltctricas. especifican \'Oltajes y corrientes de CD adicionales que se observan en las entradAS y salidas del dispositi\'O cuando funciona bajo las condiciones recomendadas:
COlulicioll~s (/~

Mxima corriente de entruda paru un voltaje de entrada ALTO muy intenso. los Corriente de salida con la salida ALTO en cono a tierra. lceH Corriente de alimentacin cuando todas las salidas (en CUatro compuenas NANO) estn en ALTO. (El nmero dado es para el encapsulado completo. que contiene cuatro compuertas NANO. de modo que la corriente por compuerta es uno cuarta parte de lo cantidad especificada). lea.. Corriente de alimentacin cuando todas las salidas (en cuotro compuenas NANO)estn en BAJO.
1,
coraCftrf;cas de
conl11llf~ldn

Cart1cterfsticus de conmutacin proporcionan retardos de propagacin tfpicos y mximos bajo condiciones de operacin "tfpicas" de Vcc:a 5 V YT,4 .. !S' e. Un diseador conservador debe incrementar estos retardos en un 5% a 10% paro dar cuenta de diferentes temperaturas y vohajes de alimentacin. e incluso ms bajo condiciones pesadas de carga.
Tambin se incluye una cuarta seccin en el libro de datos del fabricante:

ndict~

rnli,;mosobrolllfOJ

fndius absolutos lIufximos indican las condiciones en el peor de los casos para la opernci6n o almacenamiento del dispositivo. sin sufrir daos.

Un libro de datos completo tambi~n exhibe circuitos de prueba que son empleados para medir los parmetros cuando el disposith'o se fabrica. y grficas que ilustron cmo los parmetros tpicos varfan de acuerdo con las condiciones de operacin tales como el \'oltaje de alimentacin (Vec;). temperatura ambiente (fA) y carga (RL, CJ.

Seccin 3.11
~_ Tabl a 3 -12 Hoja de datos tfpica del fabricante para el 74LSOO.
CONDICIONES RECOMENDADAS DE OPERACiN

Familias TTL

169

SN54LSOO
~r.metro

SN14LSOO

De#rlpcJ6n

" n/mo Nom/M IrIblmo " in/mo NomIM' lrIb/mo Unldlde.


4.' 2.0 0.7 -0.4 4 ' .0

Vce
V'H

VollDje de alimentaciII VOllDjc de entr3da de n"el ALTO VollDje de entrada de nivel BAJO Corriente de snlidu de n\'el ALTO Corriente de salida de ni\"el BAJO Tempernturn ambiente de operacin

,.,

4.75

' .0

,."
0.8 8

V V V

2.0

V"

' OH

-O.

mA mA

'01.
T A

- SS
SNS4LSOO

125

70

CARACTERfs TICAS ELCTRICAS SOBRE EL INTERVALO DE TEMPERATURA AMBIENTE RECOMENDADO SN74LSOO

~r8"",tro

CondicIOnes de ~"
V

If/n/mo TfpktPI IIblmo Iffnlmo TipkcPJ AUxlmo Un_


- 1.5 - 1.5 2.7
3.4 V V

V'K
VOH V OL

cc - Min.. /N--18 roA

Vcc '" Min .. VIL" Max" /OH '" -0.4 mA Vcc ::: Min .. V IH :: 2.0 V. lO(. :: 4 roA

"

3.4

0.25

0.4
O .,
20

0.25
0.35

0.4
O ,, O. ,
20

Vcc ;; Min., V IH :: 2.0 V./ex. :: 8 mA


Vcc ~ MIIll.. VI '" 7.0 V Vcc - Mu . VI '" 2.7 V
Vcc Mux. VI _ OAV

1,
"H

mA

.A mA
mA mA

"L
losUl

-0.4

-0.4
-20
- 100

Vcc ::: Mil)(.


VCC= MIl)(., VI ::O V

- 20 0.8

- ' 00

'

,=
'PUl
t pltL

ceH

LO
4.4

0.8

LO
4.4

Vcc '" Mil)( .. VI '" 4.S V

2.4

2.4

mA

CARACTERSTICAS DE CONMUTACiN. VCC "" S.OV, TA"" 2S"C


Par8ftHtfro
o.~

(Enrrtldll)

HU {Sldh}

Condk:lo".. cJ. ~ Alin/ntO Tpico

1IU./mo Unld. d ..

AoS

Y
,

RL = 2 1d1. eL '" l S pF

10

NaTAS; l . J\Jro cOt!dicionel mOl troda. como M lmo o Mlllimo. utilice ti m lor tJpropiado u HcijiCfJdo btJjo lal Condicumu Rn omendodtJl de Optrod6n. 2. Todol101 l'Dlo", /(picOJ t JIdn a Va' - 5.0 V. TA - 2S-C J. No md1 de una .mUdo deberla ponen e en con o a la I~Z; la durod6n del r:onadrcuilO na d..berltJ u ceder un l egundo.

" "

"'

170

Capitulo 3 Circuitos digitales

*3. 12 Interfaz CMOSnTL


Un diseador digital selecciona una familia lgica "predetenninada" paro. utilizar en un sistema. basndose en requerimientos generales de velocidad. potencia. costo. y asf sucesh'amenle. Si n embargo. el diseador puede seleccionar dispositivos de otras familias en algunos casos debido a la disponibilidad u otros requerimientos especiales. (Por ejemplo. no todos los nmeros de pane 74LS se encuentran disponibles en 74HCf. y viceversa.) De este modo. es imponante parn un diseador entender las implicaciones de conectar salidas TfL a entradas CMOS. y al contrario. Existen varios factores por considerar en las inteaces TI1JCMOS. yel primero es el margen de ruido. El margen de ruido de cn de estado BAJO depende del VOl.mH de la salida de control y del Vll.mu de la entmda controlada. y es igual a Vnmu - VO\..ma.L' De manem semejante. el margen de ruido de cn de estado ALTO es igual a VOH min - VIH mln' La figura 3-84 muestra los nmeros relevantes parn las famil ias TfL y CMOS. Por ejemplo. el margen de ruido de CD del estado BAJO de HC o HCf conlrolando ITL es 0.8 - 0.33 '" 0.47 V. y del estado ALTO es 3.84 - 2.0 '" 1.84 V. Por otro lado, el margen de eSlado ALTO de ITLconlrolando HCo VHC es 2.7 -3.85 =-1.15 V. En otras palabras. TI'L controlando HC o CA no funciona. a menos que la salida ALTO de ITL sea mayor y que el umbral de entrada ALTO de CMOS sea menor por un total de l. l 5 V. en comparacin con sus especificaciones. en el peor de los casos. Para controlar las entmdas CMOS apropiadamente a partir de salidas TfL, los dispositivos CMOS deberlan ser HCf, VHCf o FCf en lugar de HC o VHC, El siguiente factoc a considerar es el fun OUI. Como con TfL puro (seccin 3.10.3). un diseador debe sumar los requerimientos de comente de entrada de los disposilivos controlados por una salida y comparar con las capacidades de la salida en ambos estados. El fan OU I no es un problema cuando 111. controla a CMOS. puesto que las entradas CMOS casi no requieren corriente en ninguno de los estados. Por otra panco las entradas TTL. especialmente en el eSlado BAJO. requieren una cantidad considerable de
SALIDAS
l'Uihala ' I'm....

Figura 3-84
Niveles de salida y entrada para la interfaz de las familias TIL y CMOS. (Ntese que las entradas HC y VHC f'IO son compatibles conTIL)

5.0

ENTRADAS
1' 111.... , I' n ......

HC. HCT VHC. VHCT

3." 3.80

3.85

(HC. VHC)

margen de ruido de CO de estado ALTO


LS, S. ALS, AS, F
2.7

2.0
(""djb~7 m.

77 -,,,)

1.35

LS, S, ALS, AS. F, HCT, VHCT. FCT (HC, VHC) lS, S. AlS, AS, F, HCT. VHCT, FCT
margen de rulo de

'CT 0.55 LS. S, ALS, AS, F 0.5 VHC, VHCT 0. HC, HCT 0.33

o.,

CO de estado BAJO

Seccin '3.13

Lgica CMOS de bajo voltaje e interfaz

171

corriente. especialmente en comparacin con lascapacidades de salida HC y Ha . Porejemplo. una salida HC o HCf puede controlar 10 L..S o solamente dos enlJ"adas S-m... El ltimo factor es la carga capacitiva. Hemos visto que la capacitancia de carga incrementa tanto el retardo como la disipacin de el'll..'I"gfa de los circuitos lgicos. Los increnlcntos en el retardo son especialmente notables con salidas HC y Hcr. cuyos tiempos de tr.msicin se incrementan en I ns por cada 5 pF de capacitancio de carga. Los transistores en salidas Fa tienen resistencias de "encendido" muy bajos, de modo que sus tiempos de transicin aumentan solamente en alrededor de 0.1 ns por cada 5 pF de capacitancia de carga. Paro. una capacitancia de carga dada, el voltaje de a1iment.acin y aplicacin de todas las familias CMOS tienen una disip::acin dinmica de energfa semejante, puesto que cada var1::able en la ecuacin c;Vlfes la misma. Por otra pane, las salidas m.. tienen una disipacin dinmica de energa ligeramente inferior, puesto que la excursin del voltaje entre los niveles ITL ALTO y BAJO es mcnor.

*3.13 Lgica eMOS de bajo voltaje e interfaz


Dos factores imponantes han forzado a la industria para que utilice voltajes de alimentacin ms bajos en los dispositivos CMOS:

En la mayorfa de las aplicaciones, los voltajes de .sa1ida CMOS oscilan de lnea a


lnea de manera que la vnriable Ven In ecuacin 01'7 es el voltaje de alimentacin. la disminucin del voltaje de alimentacin reduce la disipacin dinmica de energa. A medida que la industri::a tiende hacia geometrfas de transistor an ms pequei\::as, el aislamiento del xido entre una compuerta de transistor CMQS y su fuente y drenaje se est haciendo cada vez ms delgado, 't por lo tanto se est haciendo incapaz de ::aislar potenciales de voltaje tan "altos" como 5 V.

Como resultado, JEDEC, un grupo de estndares de la industria de los circuitos integrados, seleccion 3.3 V :': 0.3 V, 2.5 V ~ 0.2 V Y 1.8 V 0.15 V como los futuros voltajes de alimentacin lgicos "estndar". Los estndares JEDEC especifican los ni\'eles de voltaje lgico de entrada y salida para dispositivos que funcionan con estos voltajes de alimentacin. La emigracin : a "oltajes menores se ha presentado en etapas y continuad hacindl)lo asf. Para familias lgicas discretas, la tendencia ha sido producir panes que funcionen y produzcan salidas a menores "oltajes pero que toleren tambin entradas con mayor voltaje. Este enfoque ha pellhitido que las familias CMOS de 3.3 V funcionen con familias CMOS y lTL de S V, como veremos e n la siguienle .sea:i n. Muchos ASte y microplOeesadores han seguido un enloque parecido, pero con lrecuencia se utili7.11 tambin otro enfoque. Estos dispositivos son 10 suficientemente grandes como para que pueda tener sentido suministrarlos con dos voltajes de alimenta cin. Un voltaje bajo, tal como 2.5 V, se suministra para hacer funcionar las compuertas internas del chip, o I6gico dt:l ncleo. Se propon:iona un voltaje mayor, como 3.3 V, para Idgic/l d~ md~o hacer funcionar los circuitos de entrada y salida externos, o anillo de tJlim~ntaci6n auxiliar, anillo urminff o anillo de afimemacitln IXiIi/r para m::afllcner la compatibilidad con los dispositivos de generaciones antiguas que hay en el sistema. Se emplean circuitos especiales que incluyen buffen para transformar con seguridad y rapidez los voltajes lgicos dcl anillo de alimentacin auxiliar y la lgica del ncleo.

172

CapItulo 3 Circuitos digitales

' 3.13.1 Lg ica LVCMOS y LVTIL de 3.3 V


Las relaciones entre niveJes de seal para dispositivos TTL estndar y CMOS de bajo voltuje que funcionan a sus voltajes nominales de alimentacin se iluSlnln adecuadamente en la fi gura 3-85. adaptada de una nota de aplicaci6n de Texas Instruments. Los niveles de seal simtricos. originales para familias CMOS de 5 V puros tales como He y VHC se muestran en (a). Las familias CMOS compatibles con rn.. tales como HCT. VHCT y FCT desplazan los nh'eles de voltaje hacia abajo para tener compatibilidlld con TfL como se muestrn en (b). El primer paso en la progresi6n de voltajes de alimentaci6n e MOS ms bajos fue a 3.3 V. El estndar JEDEC paro lgica de 3.3 V define en realidad dos conjuntos de nive les. Los niveles LVeMOS (10M' I'O/taje CMOS. CMOS de bajo I'olwje) se utilizan en aplicaciones CMOS puras donde las salidas tienen cargas de CD ligeras (menores de 100 /lA), de modo que VOL y VOH se mantienen dentro de 0.2 V de los rieles de alimentacin. Los niveles LVTrL (/ow "o/taje 17L. 1TL de /)(4 ]0 Io/taje). mostrados en (e), ~ emplean en aplicaciones donde las salidas tienen cargas de e D significativas. de manem que VOL puede ser Ian alto como deOA V y VOl! puede ser tan bajo como de 2.4 V. El iX'SicionamienlO de los niveles lgicos TTL en el extremo inferior del intervalo de los 5 V fue realmente fortuito. Como se muestra en la figura 3-85(b) y (c), cm iX'Sible definir los niveles LVITL paro que coincidieron eXllClamente con los niveles TIl.. Ik cste modo. una salida LVfTI.. puede controlar una entrada TrL sin ningn problema, mientras sus especifictlciones de coniente de salida (lO!..mu. IOHnw ) sean respetadas. Ik manera similar. untl salida TTL puede controlar untl entradn LV I I L, excepto por el problema de con trolarlo m ds all d de l Va: de 3.3 V de l LV1TL. como se di scute a continuaci6n.
F I 9 Ur a 3-85 Comparacin entre niveles lgicos: (a) eMOS de 5 V;
(b) TTl de 5 V, Incluyendo 5-V TTl-compatible CMOS; (e) 3.3-V l VTTl; (d) 2.5-V CMOS; (e) 1.SV eMOS.

LIICMOS (CMOS)

LVITL(1TL}

(.)

(b)

5.0'1
4 .44 V 1'011

5.0'1 -

1'(."(;

3.5'1

VIII

(o)

3.3 V

" tt
(d)

2.5'1

VT

2.4 V 2.0'1

f-

YOII
VIII

2 .4 '1 2.0'1 1.5'1 0 .8'1 0 .4 V

VO<.

2 .5'1 2 .0'1 1.7 V


2V

I'(."C

l'm
"T

vml (.)
"111

1.8'1 1.45'1
O2V

V tt
V. . 1'111

1.5'1

"n.

1.5'1

VT

V T

0.8'1 0.5'1 0.0'1


"UI.

I'n.
VOL
GND

v"

0.7'1 0.4 V

0.4 V 0.0'1

GNU

O.OV

"oc I GNU

"11.

O.OV

"OL

0.9 '1 0.65'1 0.45 V 0 .0'1

V T I'n. VOL

GND

GNU

Farftiu CMOS cIa 5 V

FamIiu TTl de 5 V

FamiliaslVTTl de 3.3 V Famiias CMOS de 2.5 V Familas CMOS de 1.8 V

Seccin 3. 13

lgica eMOS de bajo voltaje e interfaz

173

~te es un problema cuando se utilizan ramilias Unto de 3.3 V como de 5 V en un sistema... Por ejemplo. los dispositivos CMOS de 5 V con racilidad producen salidas de 4.9 V cuando se encuentran ligeramente cargados. y trulto los dispositivos CMOS como ITL producen en ronna rutinaria salidas de 4.0 V. aun cuando estn moderadamente carga-

3.13.2 Entradas tolerantes a 5 V Las entradas de una compuerta no necesariamente tolerarn voltajes mayores de Vec.

das. Las entradas de dispositivos de 3.3 V pueden no gustar de estos altos voltajes. El voltaje mximo VIma;o; que puede ser tolerado por una entrada se describe en la seccin de ~fndices m:cimos absolutos" de la hoja de datos del rabricante. Para dispositivos He , V1 mu es igual a Vec . De este modo, si un dispositivo He es energizado por una alimentacin de 3.3 V. no puede ser controlado por ninguna de las salidas CMOS o 1TL de 5 V. Para dispositivos VHC. por otra parte, V 1 mu es de 7 V; as. los dispositivos VHC con una alimentacin de 3.3 V pueden ser utilizados para convertir salidas 5 V a niveles de 3.3 V para su uso con microprocesadores de 3.3 V, memorias y otros dispositivos en un subsistema de 3.3 V puro. La figura 3 86 CAplica por qu algunas entradas son tolerantes a 5 V Yotras no lo son. Como se muestra en (a). la estructura de entrada He y HCf en realidad contiene dos diodos de fijacin inversamente polarizados, los cuales no habramos mostrado antes. entre cada seal ck entrada y Vec y ticm. El propsito dc estos diodos es ckrivar especfficamente cualquier valor de seal de entrada transitoria menor que O a lrnvts de DI. o mayor que Vce a travts de D2 para la correspondiente !foca de alimentacin. Tales transitorios pueden presentarse como un resultado de reflejos de lnea de transmisin, como se describe en la seccin 11 .4. La derivacin de "transitorio de bajo voltaje" o "sobreimpulso" a tierra o Vec reduce la magnitud y duracin de los renejos. Naturalmente, el diodo D2 no puede distinguir entre un sobrtimpulso transitorio y un voltaje de entrada persisrente mayor que VOC' De aquf que. si una salida de 5 V es lOIlCCtada a una-de estas entradas, no ver la muy alla impedancia normalmente asociada con una entrada CMOS. En su lugar, ver una trayectoria con relativamente baja impedancia hacia Vec a travts del diodo D2 ahorn directamente polarizado. y fluir comente CAcesiva. La figura 3-86(b) muestra una entrada CMOS tolerante a 5 V. Esta estructura de entrada simplemente omite D2; el diodo DJ todavfa est proporcionado para fijar el sobreimpulso. Las fami lias VHC y AHC utilizan esta estructura de entrada.

diodos de fijacin

(.)
02

v",

(b)

v",

Figura 3-86
Estructuras de entrada CMOS: a) He no toleran te a 5 V; b) VHC tolerante a5V.

Ol

Ol

v,
D/

o/

v,
D/

o/

174

Capitulo 3 Circuitos digitales

La clase de estructura de entrada mostrada en [a figura 3-86(b) es neasana, pero no suficiente para crear entradas tolerantes de 5 V. Los tmnsistores en el proceso de fabricacin panicular de: un dis(Xlsiti\'O tambin deben ser capaces de resistir potenciales de vohaje mayores que Vec. Con esta base. V1 nw; en la fam ilia VHC se encuentra limitado a 7.0 V. En muchos procesos ASIC de 3.3 V. no es posible obtener entradas tolerantes a 5 V . incluso si usted est dispueslO a renunciar a los beneficios de Hoca de transmisin del diodo D2.

3.13_ 3 Salidas tolerantes a 5 V


La tolerancia a.5 volt5 tambin debe ser considerada para las sal idas. en panicular cuando Ia,< salidas de 3.3 V Y las de 5 V de tres estados se conectan a un bus. Cuando la salida de 3.3 V se encuentra en el estado deshabilitado Hi-Z. un dispositivo de.5 V puede estar controlando el bus, y una seal de 5 V puede aparecer en la salida del dis(Xlsitivo

de 3.3 V. En esta situacin. la figura 3-87 explica (Xlr qu algunas salidas son tolcr:lntes a.5 V Y otras no lo son. Como se ilustra en (a). la salida de tres estados CMOS estndar tiene un transislor Ql de canal-n hacia tierra y un lrnnsistor de canal-fJ Q2 hacia Vcc . Cuando la salida es deshabililada, la circuitera (que no se mueslrn) mantiene la compuena de QI cerca de los OV Yla compuena de Q2 cerca de Vcc- de modo que ambos transistores se encuentran apagados y Y es Hi-Z. Ahora considere lo que ocurre si Vcc es 3.3 V Y un disposit\'o diferente aplica una seal de 5 V a la terminal de salida Y en (a). Entonces el drenaje de Q2(Y) se encuentra a 5 V mientras que la compuerta (V2) est todava a solamente 3.3 V . Con la compuerta a un potencial ms bajo que el drenaje, Q2 comenzar: a conducir y proporcionarn una tr.lyecloria de relativamente baja impedancia desde Y hacia Vec . y habr un Hujo excesivo de conienle. Tanto las salidas de triple c.stnclo HC como VHC lienen esto c.slruclUra y por lo tanto no son tolenmtes 11 5 v. La figura 3-87(b) muestra una estructura de salida tolerante a 5 V. Un transistor Q3 de canal-p extra se uliliza para evilllr que Q2 se encienda cuando no deba hacerlo. Cuando VSAl... es mayor que Veo Q3 se enciende. Esto forma una Ir.lyectoria de relativamente baja impedancia desde Y hasta la compuerta de Q2, el cual permanece ahora apagado (Xlrque su voltaje de: compuerta V2 ya no puede estar por abajo del \'Oltaje de drenaje. Esta estructura de salida se emplea en la fam ilill LVC (Low. Vollage CMOS, eMOS de bajo vahaje) de Texas 'nslruments.

Fig ura 3-87


Estructuras de salida de triple estado CMOS; al HCyVHC no tolerantes a 5 V; b) lVC tolerante a 5 V .

(.)

(b)

1 v,-voc ~ I

02

V "',

I1

_ov

QI

'f---'-''-'--l 11

_ov

I hQI

Seccin 3.14

lgica de emisor acoplado

175

"3.13.4 Resumen de Interfaces TTULVTTL


Basndonos en la informacin de las subsecciooes anteriores, los dispositivos TIl.. (5 V) Y LV'I 1L (3.3 V) se pueden mezclaren el mismo sistema sujetndose nicamente a tres regla.~:

1. Las salidas LV 1 1L pueden controlar directamente entradas TIL, observando a las restricciones habituales de corriente de salida (/0Lma,.;, fOHrrw ) de los dispositivos de control. 2. Las salidas TIl.. pueden controlar entradas LVTTL si las entradas son tolernntes a 5 V: 3. Las salidas de tres estados TIl.. y LvrrL pueden controlar el mismo bus si las salidas LV n L son tolerantes a 5 V.

"3.13,5 Lgicade2.5Vyde1 .8V


verdad que las salidas de 3.3 V controlan entradas de 2.5 V mientras que las entradas sean tolerantes a 3.3 V. Sin embargo, un rpido examen a la figura 3-S5(c) y (d) de la pgina 172 muestra quc V 1H de una entrada de 3.3 V. En otras palabras, OH de una salida. de 2.5 V es igual a V existe un margen de ruido de CD de estado ALTO cero cuando una salida de 2.5 V controla una entrada de 3.3 V: una situacin nada buena. La solucin a este problema es utilizar un lrotfllctorde 1Ii1'el o desplawdorde njl'td, un dispositivo que est energizado por ambos voltajes de alimentllcin y que internamente acelera los niveles lgicos ms bajos (2.5 V) hasta los ms altos (3.3 V). Muchos de los ASICs y microprocesadores de la lICIualidad contienen traductores de ni\'C1 internamente, permitindoles funcionar con un ncleo de 2.5 V o 2.7 V Yun anillo tenninal de 3.3 V, como discutimos al principio de e..<ta seccin. Si esperamos a que los dispositivos discre~ tos de 2.5 V lleguen a ser populares. podremos esperar que los principales fabricantes de semiconductores produzcan traductores de nivel as como componentes por separado. El siguiente paso ser una trnnsiciII de la lgica de 2.5 V a la de I.S V. Haciendo refe rencia a la figura 3-S5(d) y (e), se puede ver que el margen de ruido de CD para el estado ALTO es en realidad negativo cuando una salida de 1.8 V maneja una entrada de 2.5 V, por lo tanto en este caso tambin se necesitan traductores de nivel.
E.~

La transicin de la lgica de 3.3 V a la de 2.5 V no ser tan fcil.

fradllctor de n;\,,' despla~odor de n;,,.1

*3.14 Lgica de emisor acoplado


la clave para reducir el tiempo de retardo de propagacin en una familia lgica bipolar

es evitar que los transistores de una compuerta se saturen. En la .seccin 3.9.5. aprendimos la forma en la que los diodos Schouky evitan la s:lluracin en compuertas TT1....Sin embargo. tambin se puede evitar la saturacin mediante el uso de una estructura de circuito radicalmente diferente, denominada Mgica de modo de corriente (CML, curren/o Mgim de modo de ~orri"nf" (CML) mod~ logie) O lgica d~ ~misor ocopfado (ECL tmill~r-coupfed log;c). A diferencia de las otras famil ias lgicas que se presentan en este captulo. la lgi- Mgi(:/J de emisor (leol/lodo (ECL ) ca CML no produce una gran oscilacin de voltaje entre los niveles BAJO y ALTO. En vez de ello, tiene una pequea oscilacin de voltaje menor a un volt, y conmuta intem:lmente la comente enlJ'C dos trayectorias posibles. dependiendo del estado de la salida. La primera famil ia lgica CML fue introducida por General Electric en 1 961. El concepto pronto fue refinado por Motorola y otros para producir las todava populares lgica de tmisor aroplodo (ECL) familias de lgico de emisorocoplado (ECL emiller-coupled logic) de IOK y IOOK. Estas

176

CapItulo 3 Circuitos digitales fami lias son extremadamenle rpidas. ofrecen retardos de propagacin tan breves como 1 ns. La ms reciente familia ECL. ECLinPS (literalmente. ECL en picoseguodos). ofrece retardos mximos inferiores a 0.5 ns (500 ps). e incluye las funciones de activacin y desactivacin del retardo de seal en el mismo encapsulado del CI. A lo Inrgo de la evolucin de latecnolog(a de los circuitos digitales. algn tipo de ECL siempre ha sido la tecnolog(a ms rpida para componentes lgicos que tienen encapsulados discretos. A pesar de ello. las familias comerciales ECL no son ni con mucho tan populares como CMOS y 1Tl.., principalmente a consecuencia deque consumen una mayor cantidad de energfa. De hecho. el gran consumo de energfa hace del diseo de supercomputadoras ECL. tal como la Cray- I y la Cray-2. constiluye lodo un reto tanto en tecnologfa de enfriamiento como en diseo digital. Asimismo. ECL tiene un producto velocidadenergfa deficiente, no proporciona un alto nivel de integracin, tiene velocidades de borde rpidas que requieren diseo para efectos de ]fnca de transmisin en la mayora de las aplicaciones y no es directamente compatible con las lgicas TTL y CMOS. No obstante. la lgica ECL an mantiene su sitio como una tecnologa lgica y de inlerfaz en muchos equipos de comunicaciones de alta velocidad, incluyendo las interfaces transceptoras de mxa ptica para redes Ethernet de gigabits y de modo de transferencia asincr6nica (ATM, Asynchronous Transfer Mode)

*3.14.1 Circuito bsico CML La idea bsica de la lgica de modo de COi I iente se ilustra al el circuito del inversorlbuffer
amplificador difuencin/
de la figura 3-88. Este circuito tiene tanto una salida inver.;ora (SAL 1) como una salida no inversora (SAL2). Dos transistores se encuentran conectados como un amplificador difu~ncial con un rcsistor de emisor comn. Los voltajes de alimentacin para este ejemplo son Vcc :: 5.0, Vee '" 4.0 Y VEE '" OV, Y los niveles de entrada BAJO y ALTO se defi nen

como 3.6 y 4.4 V. Este circuito en reaM ad produce niveles de salida BAJ9 y ALTO que son mayores por 0.6 V (4.2 Y5.0 V), pero esto se corrige en los circuitos ECL reales. Figura 3-88
Circuito bsico CML

inverso/buffe r con entrada en ALTO.

"' LL2
VBB _ 4.0 V

VEE_O.OV

Seccin '3.14

Lgica de emisor acoplado

1T7

Cuando VENT se encuentra en ALTO, como se muestra en la figura. el transistor Ql est encendido, pero no saturado, y el transistor Q2 est apagado. Esto es verdad gracias a una cuidadosa eleccin de los valores del resistor y niveles de voltaje. De este modo. VSAU se lleva hasta 5.0 V (ALTO) a trav~s de R2 Y puede demostrarse que la ca{da de vohaje a trav'!s de RI es de aproximadamenle 0.8 V, de manera que VSALI es cercana a
4.2 V ( BAJO ).

Cuando VENT est en B AJO. como se muestra en la figu ra 3-89. cl transistor Q2 est encendido. pero no saturado, y el transistor QI est apagado. De este modo. VSAL1 se lleva a 5.0 Va travs de RI y puede demostrarse que Vs. . u es aproximadamente 4.2 V. Las salidas de este inver.ior se ~n como SDlida.f dife"ncioles porque son siemprt: complementarias, y es posible detennmar el estado de salida al examinar la direrencia enlre los voltajes de salida (VSALI - Vs .... L2) en vez de sus valores absolutos. Es decir, la salida es I si (VSAL1 - Vs ....ul > O, Y es O si (VS .... LI - VSALV < O. Es posible construir circuitos de entrada con dos alambres por entrada lgica que definen el valor de senal lgica de esta manera: se conocen como entrruias dife""cjoles. Se utilizan senoles diferenciales en la mayora de las aplicaciones de "interfaz" y "distribucin de reloj" ECL debido a su bajo sesgo y alta inmunidad al ruido. Son de ''bajo sesgo" porque la temporizacin de una transicin de Oa I o de I a O no depende de manera crtica de los umbrales de voltaje, los cuales pueden cambiar con la temperatura o entre dispositivos. En vez de ello, la temporizacin depende solamente de cuando los voltajes se cruzan de manera relativa entre s. De modo semejante. la definicin "relativa" de Oy 1 proporciona una inmunidad excepcional al ruido, puesto que el ruido que generan las variaciones de \'Ohaje en la ruenle de alimenlacin o las senales de ruido que se nCQplan desde fuentes elttemas tienden a ser una ual en modQ comn que afecta ambas sena les direrenciales de modo semejante, dejando el valor de la direrencia sin cambio alguno.
Vcc ~OV

salu dife~ncialn

entrodo.s dife~nci(lfes

s~;al ~/I

modo ClJmun

Figur a 3 -89
Circuito bsico CML

inversor/buffer con
entrada en ALTO.

.,
""
ENT
Ves . 4,0 V

VEE _O .Ov

178

Capflulo 3 Circuitos digitales posible. naturalmente. detenninar el valor lgico al detectar el nivel de voltaje absoluto de una seal de entrnda. denominada ~ntroda 6JnilriCQ. Las .seales asimtricas se utilizan en la mayor pane de las aplicaciones "lgicas" ECL para evitar el gasto que implica duplicar la cantidad de ]fneas de seal. El iO\'ersor CML bsico en la fi guro 3-89 tiene una entrada asimtrica. Siempre tiene ambas salidas" disponibles en fonna interna; el circuito es en realidad un buffer inversor o no inversor. dependiendo de si uti lizamos SAL 1 o bien SAl2. Pata realizar funciones lgicas con el circuito bsico de la figura 3-89. simplemente colocamos transistores adicionales en paralelo con Ql. de modo semejante al enfoque en una compuena NOR TIL ?oc ejemplo, la figura 3-90 muestra una compuerta ORINOR CML de 2 entradas. Si cualquiera de las entradas est en ALTO, cltransistor de entrnda correspondieme se encuentra activo, y V SALI est en BAJO (salida NOR). Al mismo tiempo. Q3 se encuemrn apagado y V SAL2 est en ALTO (salida OA). Recuerde que los niveles de entrada para el inversorlbuffer estn definidos como de 3.6 y 4.4 V. mientras que los niveles de salida que producen son 4.2 y 5.0 V. Esto
Tambi~n es

{,11/nllfa aJimllricfl

Figura 3-90 Compuerta ORINOR CML de 2 entradas: al diagrama de circuito; b) labia de funciones: el slmbolo lgico: d) labia de verdad.
(.)

V cc: .

~.o

("

l,
l2

x
Y

}.~?,

SAl' SAl2

VBB _ 4.0V

lb)

(~

x y
L L H H L H L H

v, v,
3.6 3.6 3.6 4.4 4.4 3.6
4.4 4.4

O/
~

O'
~

OJ
~

v, v""
3.' 3.' 3.' 3.'
5.0

m
~ ~

., ., ' .2 5.' .,
5.0

V"'U

SAL' SAl2
H L L H H H

X Y

5.0

o o o

l l

, o , o , , , O ,, O ,
/

SALt SAl2

Seccin 3.14

Lgica de emisor acoplado

179

es obviamente un problema. Podramos poner un diodo en serie con cada salida para. disminuirla en 0.6 V para satisfacer los niveles de entrada. pero todava nos deja OIro problema: las salidas tienen un fan out deficiente. Una salida ALTO debe suministrar corriente de base a las entradas que controla. y esta comente produce una cada de voltaje adiciona] a lrav6s de R 1 o R2. reduciendo el voltaje de salida (y no tenemos mucho margen para. trabajar con l). Estos problemas se resuelven en las famili as comerciales ECL. tal como la familia IOK que se describe a continuacin.

"3.14.2 Familias ECL 10K/10H


Los componentes encapsulados en la familia ECL ms popular de la actualidad tienen

nmeros de pane que estn integrados por 5 drgitos. con la forma "IOxxx" (por ejemplo. 10102. 10181. 10209). de modo que la familia se denomina en fonna genrica ECL 1OK. Esta familia tiene diversas mejorns sobre el circuito CML bsico que describimos con anterioridad: Una etapa de salida de seguidor de emisor que desplaza los niveles de sal ida para satisfacer los niveles de entrada y proporcionar una capacidad de control de corriente muy elevada. hasta de SO mA por salida. Esto es tambin responsable del nombre dado a la familia lgica de Memisor acoplado". Una red de polarizacin interna que proporciona el voltaje Vaa sin necesidad de una fuente de alimentacin externa independiente. La familia est disenda para funcionar con Vcc =- O(tierra) y VEE =- -5.2 V. En la mayora de las aplicaciones, las seales de tierra estn ms libres de ruido que las seales de alimentacin. En ECL, las seales lgicas estn referenciadas al riel de mayor voltaje de alimentacin algebrnicamente, de modo que los diseadores de la familia optaron por utilizar O V (una tierra "limpia") y emplear un voltaje negativo para VEE. El ruido de alimentacin que aparece en VEE es una sel\al de "modo comn" que es rechazada por el amplificador diferencial de la estructura de entrada. Las panes con el prefijo !OH (la/ami/ia ECL IOH) estn completamente compensadas en voltaje. de modo que trabajarn adecuadamente con otros voltajes de alimentacin aparte de V EE = - 5.2 V. como discutiremos en la seccin 3.14.4.
Los niveles lgicos BAJO y ALTO estn definidos en la familia ECL 10K como se

familia ECL IOK

feunilia ECL 1011

muestra en la figura 391. Ntese que aun cuando la alimentacin es negativa. ECL asigna los nombres BAJO )' ALTO n los vohaje.<I que son a/gebmicamenle ms bajos y ms altos. respectivamente. Los mrgenes de ruido de CD en ECL 10K son mucho menores que en CMOS y TIL. slo 0.155 V en el estado BAJO y 0.125 V en el estado ALTO. Sin embargo. las compuertas ECL no requieren tanto margen de ruido como estas familias. A diferencia de CMOS y TIL. una compuena ECL genera muy poco ruido de alimentacin y de tierra cuando cambia de estado: su requerimiento de couiente penllanc:ce constante a medida que dirige la corriente de una trayectoria a otra. Adems. las salidas tipo seguidor de emisor de la lgica ECL tienen muy poca impedancia en cualquier estado, y es diffcil acoplar ruido desde una fuente eJuema a una trnea de seal que est controlada por una salida de baja impedancia de esta clase.

180

capftulo 3 Circuitos digitales

ANORMAL
~.810 vOIIIu>.

AlTO

~.980

VOI Iaoio

' " Margen de ruido da

CO de eslado ALTO

ANORMAl

MaI'Q8fl de ruido de CO de estado BAJO - 1.630 Vou..

Figura 3-91
Niveles lgicos
ECL 10 K.
V,Laoia -1 .850

BAJO
-1 .850 VCJL,.ioo

ANORMAl

La figura 3-92(a) muestra el circuilo de una compuerta ORINOR ECL. una seccin de W\3 compuerta cudruple ORINOR que tiene el nrro.... o de parte: 10102. Existe un resis-. ler de disminucin (pull-down) en cada entrada. el que pumite tro.tar a cada entrada que no est conectada como un nivel BAJO. Los valores de los componentes de la red de polarizacin se selecionnron para generar VDD = -1.29 V. lo que pennile el funcionamiento adecuado del amplificador diferencial. Cada transistor de salida. que utiliza la configuracin seguidor de emisor. mantiene su voltaje de emisor igual a una cada de voltaje del diodo por debajo de su vollaje de base. logrando por ello el desplazamiento de nivel que requiere la salida. La fi gura 3-92(b) resume la operacin el&lrica de la compuerta. Las salidas en confi guracin seguidor de emisor que se utilizan en ECL IOK requieren de resislores externos de disminucin (extemaJ pull-down resistors). como se muestra en la figura. La familia IOK eSl diseftada para emplear mislores exlernos de disminucin en lugar de resistores internos por buenas razones. Los tiempos de asccflSO y cafda de las transiciones de salida ECL son tan rpidos (por lo regular de 2 ns) que eualquier conexin de ms de unas cuanlas pulgadas (de longitud) debe Inllarse como si fuera una !fnea de transmisin y debe terminar como se analiza en la seccin 11.4. En lugar de gastar energa con un resislOr intemo de disminucin, los disposilivos ECL IOK permilen la seleccin de un resislor eXlerno que cumpla tanto los requerimientos de disminucin como de lnea de transmisin. La tenninacin ms simple. adecuada para conexiones breves. consiste en eonectar un resistoc cuyo valor est en el intervalo de 270 n a 2 kn desde cada salida hacia V EE. Una compuerta tipica EeL IOK tiene un relardo de propagacin de 2 ns, comparable al 74AS TIL. Cuando sus salidas no se conectan, una compuerta 10K consume alrededor de 26 mW de potencia. tambin comparable a una compuerta 74AS TfL. la cual consume aproximadamente 20 mW. Sin embargo, la lenninacin requerida por ECL IOK tambin consume energfa. de 10 a 1.50 mW por salida dependiendo dellipo de circuito de tenninacin. Una salida 74AS TIL puede o no requerir un circuito de tenninacill que consume energa. dependiendo de las carnclerlsticas fsicas de la aplicacin.

Seccin '3.14
amplificador difefenclal
, r--.J "~--~ , entradas mlIipIes

lgica de emisor acoplado

181

pala """""

"."

salIdaS seguido! de emisor


oompIemenlanas

(.)

R'-' .

(b)

X Y l l H H l H l H

v,
- 1.8 - 1.8 -<l.' -<l.'

v,
- 1.8 -<l.' - 1.8 -<l.'

QI
~ ~

Q2
~

QJ

v,
- 1.9 - 1.5 - 1.5 - 1.5

v",

V D

Vs,u l V..-u

SAL' SAL2
H l l l l H H H

o.
~ ~ ~

o.
~

o. o.

-.2
- 1.2 - 1.2

-<l.2

o.

- 1.2 -<l.2 -<l.2 -<l.2

-<l.' - 1.8 - 1.8 - 1.8

- 1.8 -<l.' -<l.' -<l.'

X Y

SAl' SAL2
O O O

(d)
X

o o
O

S Al.
SAL2

Figura 3-92 Compuerta ORINOA ECl1 0K de dos entradas: a) diagrama de circuito; b) labia de funciones: e) tabla ele verdad: d) sfmbolo lg ico.

182

Capitulo 3

Circuitos digitales

-3.14.3 Familia ECL 100K


(omi/io ECL IOOK

Los nmeros de parte de los miembros de la familill ECL IOOK estn imegrados por 6 dgitos y tienen la forma "IOOxxx" (por ejemplo, 100 101 , 100117, 100170), pero en generol sus funciones son diferentes si se CQmparon con las funciones de las p:lJte.~ correspondienles IOK que tienen nmeros similares. La fam ilia IOOK tiene las siguienles diferencias principales (con respecto a la familia IOK): Voltaje de alimentacin reducido, V a;: :: -45 V. Niveles lgicos diferenles. como consecuencia del voltaje de alimenUlCi6n diferente. Retardos de propagacin ms conos, por lo regular de 0.75 ns. Tiempos de Imnsicin ms conos, generalmente de 0.70 ns. Consumo de energa ms elevado, Ifpicamente de 40 mW por compuerta.

-3.1 4.4 ECL positivo (PECL)


Describimos la ...enlaja de la inmunidad al ruido que proporciona la alimcntacin negativa de la lgica ECL (VEE :: - 5.2 o -4.5 V), pero lambin tenemos una gran dcs\'emaja: las fami lias lgicas mis populare.~ de la actualidad, los CMOS y 1TL, los ASlC y microprocesadores, ulilizan lodos un voltaje de alimcmacin positi\'o, por lo regular de +5.0 V pero con tendencia a ser de +3.3 V. En consecuencia. los sistemas que incorporon tanlo dispositi\'OS ECL como CMOsrrn. requieren dos fuentes de alimentacin (una positiva y otra negativa). Adems, la interfaz entre los niveles lgicos ECL IOK o lOOK ncgati\os estndar y los niveles positivos CMOSffTL requiere el uso de componentes especiales de Imducdn de nivel que se conecten a ambas fuentes de alimentacin. El ECLpositi\'O (PECL. Positiw! ECL. pronunciado como "pecl") utiliza una fuente de alimentacin estndar de +5.0 V. Ntese que no hay nada en el diseo de circuito ECL IOK de In figura 392 que requiera que Vcc se encuentre aterrizado, y que VE!> se conecte a una alimenlncin de - 5.2 V. El circuito funcionar eX:lC lnrncnte de l:l misma manera con VEE coneclado a tierra y V cc :l una alimentacin de +5.2 V. De este modo, los componentes PECL son simplemente componentes ECL estndar con V EE conectado a tierra y Vcc a una fuente de alimentacin de +5.0 V. Et vohaje cntre VF .E y Vcc es un poco menor que con el ECL IOK estndar y ms que con el ECL lOOK estndar. pero las partes de la ~rie IOH y lOOK se encuentran compensadas en voltaje, y eSln diseadas para lflloojar bien aun cuando el vohaje de la fuente de alimentacin es un poco alto o bajo. Como los niveles lgicos de ECL los niveles PEO estan referidos con respecto a V o:' de modo que el nivel ALTO de PECLes de aproximadamente V o:- O.9 V y el BAJO es de a!Jroedorde V o:- 1.7 V, o aproximadnmenle4. l V y 3.3 V con un V o: oominal de 5 v. Puesto que estos niveles estn referenciados con respecto a V O:' se mllC\'(.'tl hacia arriba y hacia abajo con cualquier variacin en Vec . De esta forma. los diseos PECL requieren que se preste panicular at.c:ncin a cuestiones de distribucin ele energa, par. evitar que el ruido sobre Vcc altere los niveles lgicos que se transmiten y reciben mcdilll1te dispositivos PECL Recuerde que los dispositivos CMUECL producen salida.~ diferenciales y pueden tener enlrndns diferenciales. Una cntrnda diferencial es relativamente insensible a los niveles de volUlje absoluto de un par de seales de entrnda, y slo es sensible a su diferencia. Por consiguiente, las seales diferenciales pueden utilizarse con bastante eficacia en aplicaciones PECL paro mejorar los niveles de ruido que se mcncionaron en el p:rrnfo anterior.

t."CLHJsilil'O(PECL)

Referencias Tambin es bastante comn proporcionar entradas y salidas direrenciales compatibles con la lgica PECL en los dispositivos CMOS. lo que pennite una interfaz directa entre el dispositivo CMOS y algn ou'o disposil\'o como un transceplor de fibra ptica que utiliza niveles ECl o PECL De hecho. a medida que los circuitos eMOS han emigrado a las ruentes de alimentacin de 3.3 V. incluso ha sido posible construir entradas y salidas diferenciales tipo PECL que estn rererenciadas simplemente a la alimentacin de 3.3 V. en lugar de h3cerlo con una alimentacin de 5 V.

183

Referencias
Los estudiantes que necesilen esludiar los rundamenlos tal \'ez desean querer consullar

"EI trical C ircUL~ Review" de Bruce M. Aeischer. Este tutorial de 20 pginas abarca todos los conceptos rundamentales de un circuito que se utilizaron en este capftulo que tambin aparece como a~ndice en la primera edicin de la obra '1 como un archivo tipo .. pdr' en la pgina Web de este libro. "'.....ddpp. can . Despus de ver los resullados de la sorprendente marcha de las ltimas dcadas en el desarrollo de la electrnica digital, es fcil olvidar que los circuitos lgicos ten"m un imponante sitio en tecnologas que llegaron antes del transistor. En el capftulo 5 de IlIInxlllC/ioll 10 the Me/luxlology 01 Switching Circuits (Van Nostrnnd, 1972), George J. Klir nos muestra cmo la lgica puede ser (y h3 sido) realizada por una variedad de dispositivos ffsioos. incluyendo relevadore.s. tubos de vaco y sistemas neumticos. Si usted est interesado en ms historia, un3 bella introduccin a todo lo refereme a las primeras ramilias lgicas bipolares puede encontrarse en Logic Design with Jntegroted Circuils por Willirun E. Wickes (Wiley-Interscience. 1968). La inltoduccin d,bica mAppJicorions Handhook. ~itOOo a IIIS camctestiCllS elctricas 'in.. Ilparederon en por Peter Alfke e fu lIlrsen (F3irchild Semiconductor. 1973). Los primeros diseadores lgicos tambin disfru tarn de T,,~ 7TL Cookbook por Don Lanca.<ter. Para otra perspectiva acerca del material electrnico en este caprtulo. se puede consultar casi cualquie:r texto de: electrnica moderna. Muchos contienen una discusin mucho ms analftica del fu ncionamiento de los circuitos digitales: por ejemplo. vase MicroelectrrJ/lics de J. Millman '1 A. Grabel (McGraw-HiII, 1987. segunda edicin). Otra buena introduccin a los circuitos integrados '1 a importantes famili llS lgicas se halla en VL.Sl S)'stem Dt'sigll de Saburo Muroga (Wiley. 1982). Para circuitos NMOS '1 CMOS en particular, dos buenos libros son Jnrrodllclion lo VLSJ Syst,,"LJ de Curver Mead '1 Lynn Conway (Addison-Wesley, 1980) y Pn'ndpfes oleMOS VLSl Desigll de Neil H. E.

"le

We.~le

y Kamrnn

E~hl"1lshi an

(Addison-We.~ley. 1993).

Una introduccin desenr3dada '1 muy disfrutable a los chips digitales se encuentra en la obra de Clive Maxfi eld Bebop 10 th~ Bolean Boggi~ (LlH Technology Publishing. www. l l h-publi s hing _com . ) Algunas personas piensan que la receta de mariscos en el Apfndice H vale por sI sola el precio del libro! Aun sin la recela. el libro es un d sico bien ilustrado que lo gula a travs de los fundamentos de la electrnica digital. sus componentes '1 procesos. Un entendimiento 11 rondo de los aspectos elctricos del funcionamiento de los circuitos digitales es obligatorio pam tener ldto en el diseo de circuitos de alta velocidad. Sin duda alguna el mejor libro sobre este tema es Higli-Spt't'd Digiral1sign: A HtJ/ldbook 01 Block Magic. de Howrud Johnson '1 Martin Graham (Prentice Hall, 1993). Combina

184

Capitulo 3

Circuitos d igitales

slidos principios en electrnica con una impresionante perspicacia y experiencia en el diseo de sistemas digitales prcticos. Las caractcrlsliclU de las familias lgicas de la actualidnd pueden encontrarse en los libros de dalas publicados por los rabricantes de dispositivos. Tanto Texas InstromcnlS como MOlorola publican extensos libros de datos para dispositivos 11L y CMOS. como los que se numeran en 10 tabla 3-13. Ambos fnbricantes mantienen versiones aClualizndas de sus libros de datos en la Web, www. tLcom ywww.mot.com. MOlOrola tambin proporcionn una agradable introduccin ni diseo ECL en c:l MECL System Design H{/ndbool: (publicacin HB205, rev. 1, 1988). Los estndares JEDEC (Join! Eloctron Dcvice Engioccring Couocil) para los niveles de lgica digital se hallnn en el sitio Web de JED EC, www. jedec.org. Los estndares JEOC para las lgicas de 3.3 V, 2.5 V Y 1.8 V rueron publicados en 1994, 1995 Y1997,
respecti~nte.

"

Problemas propuestos
3.1
Una familia lgica particular define una sei\al de nivet BAJO cn el intcrvalo 0.~.8 V y una seftll.l de ni vel ALTO en el intervalo 2.0-3.3 V. Bajo una convencin de l6gica positiva. indique el VllIOf lgico asociado con cada uno de 1 01 sil ui entC$ ni vele$ de sdhd:
(a)

0.0 V

(b)

3.0 V

(e)

0.8 V

(d )

1.9 V

(e)

2.0 V

(1)

S.OV

(1)

-0.1 V

(h)

- 3.0 V

3.2 3.3

Repita el problema 3. 1 utililalldo una com'encifl de: lgica ocgativa. Discuta cmo un buffer lgico es diferente de un ampliriClMIor de audio.

Problemas propuestos
J.4 J..5 3.6 3.7 Es un buffer equivalente a una compuerta ANO de una entrada o a una compuena DR de una entrada? Verdadero o falso: para un conjunto dado de valores de entrada. una compuerta NANO produce la salida opuesla de una compuerta NDR.
Escriba dos definiciones completamente diferentes de "compuena" que se hayan utilizando

185

en este captulo. ~ clase de lra.n$istores se utilizan en las compuertas CMOS? (Slo pata aficionados). Dibuje Wl circuito equivalente par.! un inversor CMOS empican do un relevador de polo simple)' doble disparo. Pan. un rea de silicio dDdl. cul es probablemente mM nipida, una compuerta NANO e Mas o una NOR eMaS? Defina ''fan in" y ''fan out".I.Cul. es probable que tenga que calcular? Dibuje el diagrama de circuito, la tabla de funciones y el smbolo lgico para una compuerta NOR CMas de lJ"e5 enuadas en el estilo de la figIlr1l3-16. Dibuje modelos de intCflUplOf en el estilo de la figura 3-14 para una compuerta NOA CMOS de 2 enuadas para odas la cuatro combinaciones de enU"ada. Dibuje el diagnma de circuito.1a labia de funciones)' el sfmbolo lgico para una compucna OA CMOS en el estilo de la figura 3 19. I.C~l tienc menos transistores, una compuerta no inversora o una compoerta inversora CMOS? Nombre y dibuje los dmbolos lgicos de cuatro diferentes compuertas CMOS de 4 entra das usando cada una 8 transistores. El circuito en la figul11 XJ.I6(a) es un tipo de compuerta ANO-OAINVERSOR eMOS. Escriba una tabla de funciooes para CSIC circuito en el estilo de la figul11 3.I5(b) y su OOI,CSpondiente diagrama lgico utilizando inversores y compuertas ANO y OR. El circuito en la figura X3.I6(b) es un tipo de compuerta ANO-OA-INVERSOR eMOS. Escriba la labia de funciones para este circuito en el estilo de la figura 3.15(b) y su COfl"e5pondienle diagrama lgico utilizando in\'Cf50fC5 y compucnas ANO y OA. Cmo es que el pcume puede ser algo malo para los disciladores digitales?
(b)

3.8
3.9 3.10 3.11 3.12 J.13 3.14 3.15 3.16

3.17

3.18
(. )

Vcc

Figura X3.16

z
B

z
e
o

e
o

186

Capitulo 3 Circuitos digitales


3. 19 Cunto margen de ruido de CD de estado alto est dis.ponible en un in\'el'5OJ CMOS cuya caracteriM ica de transrercocia bajo l:u condiciollC!l del peor de IO!I casos Je parece B la de la figura 3-25? Cunto mllI"gen de ruido de CO de estado bajo se enc uentra disponible'! (Suponga umbrales estndar de I.S V y 3.S V para BAJO YALTO). Hociendo lISO de la hoja de datos en la tabla 3-3. determ ine los mrgenes de ruido de CD del estado BAJO y del estado ALTO en el peor de los casos de l 741ICOO. Establezca cualquie-r suposicin requerida por su respuesta. La seccin J.S define siete diferentes panmetros el& tri cos para circui\os CMOS. UD.ciendo uso de la hoja de datos en la tubla 3-3, determine el val or del peor de los casos de cada uno de slOS para el 74HCOO. Establelca cualquier suposicin requcrida por su rcspuesta. Basfndose en las con\'enc iooes y suposiciollC!l de In seccin 3.4, si la corriente para una salida de dispositivo se especifica como un nllmero negativo. la salidu es una fuente de comente o un sumidero de corriente'! P-.u11 cada una de l:u siguientes CIITg:U resistivas, determine si las especifi caciones de control de la salida del 74HCOO sobre el inten-alo de operacin comercial son e."Itcedida!. (Consutte la tabla 3-3. y haga uso de Vot1mla 2.4 V Y Vcc 5.0 V.)
(a)
(e) (e) (g)

3.20

3.21

3.22

3.23

1200paraVcc
I kO para GNO 1000 para Va;

(b)
(d)

270 O para V cc y 330 O para GND


1500paraVcc y1 50 0paraGNO 75 O para VC(: y 1.50 O para GND 270 O para Vcc y 150 O para GNO

(f)

7S O para Va;

(h)

3.24
3.2S

A travs del intervalo de niveles de enu.da ALTO v"id05, 2.0 - S.O V, para qu nivel de entrada se esperarla que el 74R:1'2 Srr (tabla 3-3) consuma la mayor parte de la energa'!

3.26 3.27 3.28


3.29

3.30 3.3 1

3.32

Determine el fan OUt de CO de estado BAJO y estado ALTO del 74FCl257T cuando controla entradas tipo 74LSOO. (Consulte 145 tablas 3-3 y 3- 12). Haga la estimaci6n de las resistencias de "ena:nr!ido~ de Jos transisIores de salirla de canaI.p Y canal-" de l del 74FCf2S7T empleando la informac.in de la tabla 3-3. En qut circunstancias es seguro pennitir que una entrada CMOS sin utilizar quede notando'! Explique el '1ak:h-up" y las circunsWlCia5 en que OCUrTe. Explique por qut no es una buena idea situ:u todos los capac:it0re5 de desacoplamiento en una esquina de un tablero de circuito impreso. Cundo es importante tomarse de las manos con un amigo? Nombre los dos componentes del rctardo de compuerta lgica eMOS. Cu:tl es el mit afectado por la capacitancia de carga? Dete:rmine: la constante: de tiempo Re pan! cada una de: 145 siguie ntes combiuuciollC!l re.sis-lor-<:apacitor:
(a)

R :z: . lOOO.Co:: 50pF R ,. l kfl.C:: 30pF

(b)
(d)

R :::3300,C= lSOpF
R .. 4.7k0.C: IOOpF

(c)

3.33 3.34

Aparte del retardo, quf otra{s) caracteristica(s) de un circuito CMQS se afecUl{n) por la capacitancia de cara:.? Explique: la frmula le en el pie: de lKJ(a S de la tabla 3-3, en tt rminos de los conceptos presentados en las sc:cciollC!l 3.5 y 3.6.

Problemas propuestos
3.35 3.36 3.37 3.38

187

Es posible hacer funcionardisposith'05 74AC CMOS coo una fuente de alimet1U1Cin de 3.3 V. Cuntaenergfa ahorrar.i esto por lo regu lar. en compar3Cin con el funcionamiento a 5 V'!
Un inversor de disparador $chmiu particular tiene YILmu .. 0.8 V. Ylltmin - 2.0V VT. .. 1.6 V YY T "" 1.3 V. Cunta histo!:resis tiene? Por qu las salidas de tres estados se diseftan por 1 0 regular para apagarse ms mpido de lo que se erocienden? Discuta las ~'entajas y las desventajas de los resistores de disminucin ms grandes contr.1 los ms pequef\o$ para las salidas CMOS de drenaje abierto O salidas Tn. de colector abierto. Un LEO en particular tiene una carda de voltaje de apro,;,imadamc:nte 2.0 V en el estado "eocendido" y requiere de alrededorde 5 mA de comente para un brillo normal. Determine un \'lIlor apropiado pwI el resistorde ananque cuando el l En se eocuenlr.l conectado como se muestr.1 en la figur.1 352. Cmo se modificar la respuesta parael problema 3.39 si el LEO se conecta como se ilus tr.1 en la figura 3-53(a)1 Una funcin ANO alambrada se obtiene simplemente al unirdos saJidas de drenaje abierto o de colector abierto en conjunto. sin pasar 11 1r.I\s de otro nh'e! de: los circuitos de trun sislor. Cmo. entonces. una funcin ANO alambrada puede en realidad ser mis lenta que una compuerta ANO diSCl1!ta? (SUKtl'Enda: recuerde el tltulode una pelleula de las TOt1ugas Ninja Adolescentes Mutantes.) Cul familia l6giea CM05 oTIL en este capftulo tiene la ms fuerte capacidad de: control de salida? Res uma de manera conciu. la diferencia entre las famili as l6gicas HC y HCT. La misma proposici6n concisa deberlo aplicarse a CA contra ACT. Por qu las especifieuciones para 1 05 dispositivos FCT no incluyen parmetros como YOLau(' que: se aplican a las cargas CM05. como se incluyen en las especificaciones de: HCTyAcn Cmo los dispositivos FCT-T reducen el consumo de energla en comparocin con los dispositivos FCTI Cuntos diodos se requieren para una compuerta ANO de: diodo de n enlr.ldas? Verdadero o falso : Una compuerta NOR m. utiliz.u lgica de diodo. Las salidas TI1.. son mli.s capaces par.! (:()nsumir COI'1icntc o pan! $uministrar corrient~? Calcule el fan out mimo pana cada uno de los siguien~ casos de una salida Tn. con trolando milltiple.s entradas TIL. Tambin indique CUnla capacidad de conll'Ol en "uec so" se. eDCUCnfra disponibJe en el estado BAJO o ALTO para cada caso. <a) (e) (e) (8)
74LS controlando I 74LS

3.39

3.40 3.41

3.42 3.43
3.44

3.45 3.46 3.47 3.48 3.49

(b) (d)
(1)

74LS controllllldo a 74S 74F controlando a 745 74AS controlando a 74F 74AS controlando a 74Al..S

74S controlando a 74AS 74AS controlando a NAS 74ALS control:llldo a 74F

(h)

3.50

3.5 I 3..52 3.53

i.,Cul resi.stor disipa ms energfa. el de disminucin para una entrada de compuerta NOR LS-TTL no utilizada. o el de arrnnque para una entrada de compuerta NANO LSm.. no utilizada? Haga uso del m[nimo valor de resistor disponible en cada caso. Cul esperarla usted que fuera mli.s rpido, una compuerta ANO m. o una compuerta ANO-D R-INVERSOR TIL7 Por quo!:? Describa el beneficio clave y la desventaja clave de los transistores Scllottky en TIL. 05 m4rgCIK'5 de ruido de CD Hll(:iendo uso de la hoja de datos en la tabla 3-12. determine 1 de estado BAJO y CSlado AL TO en el peor de 105 casos de l 74LSOO.

188

Capitulo 3 Circuitos digitales


354

3.55

para circuitos TTL. Utilizando la hoja de datos en la tabla 3-12. delennine el valoren el peor de los casos de uda uno de tslOS par.i el 14LSOO. Para cada una de la siguienlcscargas resistiYal. detennine si las especificaciones de control de salido. del 14LSOO sobre el intervalo de operacin comercial son cedidas. (ColUulll:' la labia 3 12. y IuIga uso de VOl.n>u .. 0.5 V Y Vcc '" 5.0 V.)
Las scccioocs 3.10.2 y 3.10.3 definen ocho diferentes parmetrOS eltricos

(a)
(c) (e)

470nparnVcc
10 kll para GND
600 n para Vcc

(b) (d)
(f)

3300p:uaVcc y470ilpmGND
390 n para Vcc y390 n para GNO

510nparaVcc y510npaaGND
220 n para Vcc y330 n para GNO

(g)

4.1 ka para GND

(h)

3.56

Calcule los mrgenes de roido de CO de estado BAJO y e.~tado ALTO para cada uno de los casos siguientes de una salida TfL controlando una entrnda CMOS compatible con TTL. o vice\ersa. (a) (e) 14HCT contrOlando a 74LS 14LS controlando a 74HCT (b) (d) 14VHCT controlando a 14AS 745 controlando a 74VHCT

3.57

Calcule el fan OUI paI1I eda uno de los casos siguiente5 de una salida CMOS compatible con TfL que contrOla mltiples enlndas en una familia lgica TJL. Tambifn indique cunta capacidad de control "en ceso" se encuentn disponible en los ts'ados BAJO o
ALTO
paI1I

cada caso.

< al
(e) 3.5S

74HCT controlando a 14l.S 74VHCT contrOlando a 14AS

(b) (d)

14HCT contrOlando a 145


14VHCf controlando a 14l.S

Para una eap3eilancia de carga y \'Clocidad de lruJ\5icin delenni nadas. cul familia lgica en este capflUlo tiene la disipacin dinmica de energa de menor valor'?

Ejercicios
3.59 3.60 3.6 1 Disee un circuito CMOS que tenga el comportamiento funcional mostrado en la figura X3.59. ($ust'rtncia: Slo se requieren seislransistore.s.) Disee un eircuilO CMOS que tenga el comportamiento funcional mostrado en la figura X),6O. (SuStrt'ncia: Solamente se requieren seis tr:I.nsistores.) Dibuje un diagrama de cireuito, labladc funciones y s(mbolo lgico en el estilo de la fiSun 3-19 para una compuerta CMOS con dos entr.ldas A y B Yuna salida Z, donde Z = 1 si A .. OYB .. 1, YZ :::: Odeotro modo. (Swg~rv>ci(J; uniCilmcnte se ncceslUln seis transist<ns.)

Figura X3.59

,
Figura X3 .60 e

Ejercicios 3.62 Diooje un diagrama decin:uito. tablllde funciOOC$ y sfmbolo lgk:oen el estilo de la figura 3- 19 para una compuerta CMOS con dos entr11das A y B Y una salida Z. donde Z :IO O si A .. I YB '" O. y Z = 1en otro caso. (Sugeff!ncill: Solamente se necesitan seis transistores.) Dibuje una figura mostrando la estructura lgica de una compuerta NOR CMOS de 8 entradas. suponiendo que como mximo son pnkticos cilUlitos de compuerta de 4 entradas. Haciendo uso de su conocimiento general de earncteristieas CMOS. seleccione una estructura de ein:uito que minimice el retardo de propagacin de la compuerta NOR para un mil de silicio dada. y e:JIplique porqu~ esto es uf. Los disei\:ldorcs de circuitos de las familias CMOS compatibles con TIl.. prewmiblemente podran haber hecho la calda de voltaje a trav~ deltra.nsistor "encendido" bajo carga en el est3o ALTO tan pequea como lo es en el estado BAJO, simplemente haciendo los transistO!'Cs de canal.p ms grandes. ,Porqu~ supone usted que no se molestaron en hacer esto? ,Cunta corriente y energa se "consumen" en la figura 3-32(b)1 Realice un clculo detallado de VSAL en las liguras 3-34 y 3-33. (Sugtff!/lCia: cree un equi \'alente de 1l1venin para el in\'enor CMOS en cada figura.) Considere el componamiento dinmico de una salida CMOS controlando una carga capacitiva dada. Si la resistencia de la trayectoa de cara es el doble de la resistencia de la Irayeclofa de de!lClUllD., elliempo de I15CCnso es ex1lClamenle dos veces eltiempodecafda1 Si 00 es as!. j,qu~ otros faclores afectan los tiempos de transicin? Analice el tiempo de calda de la salida del inVCfSOf CMOS de la figura 3-37. con RL ., I kO Y VL ,. 2.S V. Compare su resultado con el de la seccin 3.6.1 y CJlplquelo. Repita el ejercicio 3.68 parn tiempo de II$CCOSO. Suponiendo que los transistores en un buffcrde tres estados CMOS FCT sean dis:u.itivos perfeclos con retardo cero de encendido-apagado. que conmuten. un umbral de entnlda de 1.5 V, detennine el v.lor de TPLZ ~ el circuito de prueba Y formas de onda de l. figura 3-24. (Sug~ff!1ICi(l: 115100 tiene que dclenninar el tiempo utilizando una constante de tiempo Re.) E:!tplique la difbe, ...iI eutle su resultado y las espocificacioiles de la tabla 3-3. Repita el ejercicio 3.70 para '!'HZ' Haciendo uso de laJ espccificaciOOC5 de la Ulbla 3-6. haga la eMimacin de las resiscencias "de encendido" de los transistores de canaI-p y canaI-n en la lgica CMOSde la serie 74AC. Cree una matrl.t de 4 x 4 x 2 x 2 de los m.rge/1C5 de lUido de CD en el peor de los casos para las siguientes situaciones de inteaz CMOS: una salida (HC. HCT. VHC o VHC1) controlando una entrnda (HC. HCT. VHC o VHen eon una carga (CMOS, TIl..) en el estado (BAJO. ALTO); la figura Xl73 ilustra el caso. (Sugu'tnc/as: uisten 64 diferentes combinaciones. pero much.wi proporcionan resultados idl!nlicos. Algunas combinaciones producen mrgenes ncgat\'OS.)

189

3.63

3.64

3.65 3.66 3.67

3.68 3.69 3.70

3.71 3.72 3.73

Figura X3 .73

HC HC HCT
Clave: el . CIIrgII CMOS, 8AJO CH ",caroa CMOS, ALTO TL CIIrga TTL. BAJO VHCT TI-I carga TTL. AlTO
~ ~

"'"

"""

'" '" '" '"


~ ~
~

Th
~

Th ~ Th
~

+'"
~

'"
~

Th
~

Th
~

'" ce

Th
~

Th

'"

Th

""" '" '" '" ce '"


~

VHeT
~ ~

Th
~

Th
~

Th
~

Th

'" ce '" '" ce '"


~

Th
~

Th
~

Th
~

Th

190

Capflulo 3

Circuitos digitales
3.74 3.75 3.76 Haciendo liSO de la figuro 3-85. determine los m:1rgenes de ruido de CD paro la lgica CMOS de 5 v controlando CMOS de 3.3 V tolcronte a 5 v. y vim-.:::I'$a. Con base en la figura 3.85, detcrmine los m:1rgenes de ruioo de CD para CMOS de 3.3 V controlando CMOS de 2.5 V tolerante a 3.3 V. y viceversa. En el ejemplo de LED de la seccin 3.7.5. un disellador elige un \'alor de resistor de 300 a y enc uentra que la compuena de drenaje abieno era capaz de mantener 5U salida a 0. 1 V mientr.lS controla el LED. Cunta comente Huye a tru"~s del LED Y cu:inta energla disipa el resistO!" de ammque en este CIlSO? Considere un contador binario CMOS de 8 bits (seccin 8.4) temporizado a 16 MUz. Con el propsito de calcular la disipacin din:lrnica de energfa en el comador. cul es [a fre-cuencia de tmnsicin del bit menos significath'O? Y del bit ms significativo? Par:! el propsito de determinar la disipacin dinmica de energfa de los ocho bits de salida, qu frec uencia deberla ut ilizarse? Empleando linicamente compuertaJ AND y NO R. dibuje lin diagr.una lgico paro la fun cin lgica real ilUda por el circuito en la figura 3-55. Calcule el voltaje de salida aproximado en Z en la figura 3-56. suponiendo que las compuertas sean CMOS serie HCT.

3.77

3.78 3.79

180

Vuelva. dibujar el circuito de un buffer de na C$'wJos 010S en la figun 3-48 empleando


uansislOrC! reales en lugar de smbolos NAND. NOR e illVCl'"SOl"eS. Puede usted enconlrar un circuito para la misma funcin que requ iera un nlimero total mis pc"quello de transistores? Si es asf, dibjelo. Modifique el circuito de buffer de tres C$tados CMOS en la figuru 3-48 de modo que la salida se encuentre en el estado Hi-Z cuando la entrada de habilitacin est ~ en nivel AL TO. El circui to mod ificado no debf,:rfa requerir de m4~ tnln~iJ:t~s que el original. Haciendo uso de la informacin de la tabla 33, haga la estimacin de cunta comente puede nuir a travs de cada tennina.! de salida. s i 1115 ulidas de do!; difcrcntm; 74HCOO iC encuentran en pugna. Demllestre que para un voltaje de alimentacin dado, una especificacin Icen tipo FCT puede derivarse de una espedlic~in CPI) tipo HCT/ACT. y viceversa. Si tanto VZ romo VJJ en la tiguru 3-6S(b) sea 4.6 V, podernos obtener Ve = 5.2 V? explique porqu~. Modifique el programa de la tabla 3-10 pgr.i dar cuenta de la comente de fuga en el estado apagado OFF. Suponiendo condiciones "ideales". cul es el \'oltaje mlnimo que ser reconocido como un ALTO en la compoeru NANOTfL de la figura 3-75 con una entruda BAJO y la otra ALTO? Suponiendo condiciones "idealcs"', cul es el \'Oltaje l"Dhimo que ser n:conocido como un BAJO en la compuerta NANO TTL de la ligura 3-15 con IlITlbas entl1l(\as en ALTO? Encuentre una pane TT1.. comercial que pueda suministrar 40 mA en el estado ALTO. Cul es su apliclICin? Qu ()CUm: si se intenta contro[nr un LEO con su ctodo aterrizado y su nodo C\liliXtado a una salida de totem-pole 1TL :m"oga a la liguru 353 para CMOS? Qu ocurre si se intenta controllU" un rclevutlor de 12 vohs con una salida de toIem-pole
TTL?

18 1
3.82

3.83
3.84

3.805
3.86

3.87 3.88 3.89


3.90

3.9 1

Suponga que un resistor de ammque simple par;l +5 V se uti1i7..a paru proporcionar una fuente lgica constante I pam 15 diferentes entradas 74LSOO. Cul es el valor mx imo de l este resislOr'? Cunto margen de ruido de CD de estado ALTO se est proporcionando en este easo?

Ejercicios
+ 5.0V

191

7.LSOt
W

"
G

A2
7.LSOt
X

P
F

, .....

7.LSOt

o
A

z
Figura X3 .92 Figura X3.95

s
T

u
v

-~

..

, .... -~

..

:I

3.92

3.93

3.9-*

3.95

3.96

3.97

3.98

El circuito en lu figuT"J X392 utiliza compuertas NANO de colector abie rto para rea li 7.ar "lgica alambrada". Escriba una tab la de \'erdad para la seal de salida F y, si se ha leido la seccin 4.2. una expresin lgiea para F como una funcin de las entradas del circuito. /,Cul es el valor mximo pClluisible paro RI en la ligur.! X392? Suponga que se requiere de un margen de ru ido de cSlado ALTO de 0.7 V. El 741..S01 llene hu especificaciones mos tradas en la columna 74LS de la tabla 3 1l. tllcepto que 10Iinw. es lOO p.A, una con'iente de fuga que Hu ye dentro de la salida en el estado ALTO. Suponga que la sei\al de salida F en la figura X392 controla las entradas de dos inveoorcs 74S04. Calcule los valore,s mnimo y mximo pcnnisibles de R2 suponiendo que se requi e~ de un margen de l1Jido de ClOuWO ALTO de 0.7 V. . Un disei\ador lgico encuentra un problema en cierta funcin del circuito despub de que el mismo ha sido liberado para la produccin y constl1Jido lOOOcopias del mi,smo. Un seg mento de l circuito se ilustra en la figura X3 .9S con lneas conlinuas: todas las compuertas son compuertas 74LsOO. El discllador lgico an-egla el problema al agregar los dos diodos mostrados con lfneas discontinuas. Qu~ es lo que h.accn los diodos? Describa tanlO los efectos lgicos de este cambio en la funcin de l circuito, como los efectos elt!ctrieos en los mrgenes de ruido del circuito, Un 74l.S 12S es un buffer con una salida de tres estados. Cuando se habilita, la salida puede consumir 24 mA en el estado BAJO y suminislnlI 2,6 mA en el Citado ALTO. Cuando se deshabilita, la salida tiene una eorriente de fuga de :!:: 20 IJ.A. (el signo depe:n de de l vultllje de uHda: posil;vo si la salida IIC lleva a ALTO por otros disposillvos, nega tivo si Ci BAJO). Suponga que se disci\a un sistema con ml tiples mdulos conectados a un bus, donde cada mdulo tiene un solo 74LSI2S para controlar el bus y un 74LS04 para recibir infonnacin en el bus. Cul Ci el nmctO mximo de mdulos que pueden conectarse al bus sin C.l:cedcr lu especirK:Kioncs del 74LS 1251 Repita el ejercicio 3.97. suponiendo Cita vez que se conecta un resistor de ammque simple desde el bus a +S V para garantizar que el bus se encuentre en AlTO cuando ningn di.positi\'o eslt! controlndolo. Calcule el rn.imo valor posi ble del resistor de ammque, as! como el nmero de mdulos que pueden conectarse al w s. Encuentre el cjJscoo del eifl:uito en un libro de ebtos TTL pan unl! compuerta de triple estado real, y explique Cmo runciona.

192

Captulo 3 Circuitos digitales

,---n-..tvenln

"'

Figura X3 .99

,.)
3.99

lb)

Una lu mirlOcin 11\>trlin pan. un bus de tres e5tados o de colector abierto (iene la estructura mostrada en la figura X3.99(a). La idea es que, al seleccionar valores apropiados de RI Y R2, un disellador pueda obcener un circuito equivalente a la (enninacin en (b) para cualesquiera valores dcscados de Vy R. El valor de V delennina el voltaje en el bus cuando ningn dispositivo lo est controlando. y el ... alor de R se selecciona para satisfacer la impedoncia caracterstica del bus para piOp6sitos de lfnea de tr.'Ulsmisin (seccin 11 .4). Para cada uno de los pares siguientes de Vy R, detennine los valores requeridos de RI y

R2.
(a)
(e)

V:2.75,R: 148.5
V=3.0.R=I30

(b)
(d)

V= 2.7. R = 180 V= 2.:5, N =75

3. 100 Para cada U/lO de los pares NI Y R2 en el ejercicio 3.99. detennine si la lenninacin puede ser apropiadan'tl:me controlada por una salida de ues esUldos en cada uno de las siguientes familias lgicas: 74LS, 745, 74ACT. Para una operacin apropiada. las especificaciones 101.. e 10 11 de la famil ia /lO deben ser eJl.eedidas cUlllldo VOl .. VOI..m.u y V 0I1 - V 0I1 mi B' respectivamente. 3.101 Utilizando las grnricas en un libro de datos TrL. desarrolle algunas reglas pnkticas paro corregir o disminuir la especificacin de retardo de propagncin m.iUimo de LSTIL bajo condiciones no ptilTlll$ de \'ahaje de alimentacin. tempeTlIIUra y carga. 3. 102 Detennine la disipacin tOOlI de energfa del circuito en la figura X3.l02 como funcin de la frecuencia de transicin! para dos casos: a) utiliz.ando compuertas 74LS: b) Ilaciendo u~ de compuertas 74HC. Suponga que lacapaciumcia de entrada es de 3 pFparn una com puerta TIL Y de 7 pF pan. una compuerta CMOS, que UM compuerta 74LS tiene una capacitancia de disipacin de energra interna de 20 pF Yque existen 20 pF adicionales de capacitancia alambrnda de pi!;rdida en el circuito. Ta.mbi~n suponga que las entrod:ls X. y y Z esL1n siempre en ALTO. y que la entrada C se encuentra controlada por una onda cuadrada de ni\'el CMOS con frecuel\l.:iaf 0tn1 informacin que usted necesitar para esle problema puede hallarse en las tablas 35 y 3- 11. Establezca cualquier otra suposicin que haga. A qu frecuencia el circuito TIL disipa menos energra que el circuito CMOS?

Figura X3 . 102

c x
y

z - - - - - l---..J

e a

lo

ios de diseo combinacional


os circuitos lgicos se clasifican en dos tiP-'S. "combinacional" y"secuencial". Un circuito I6gico combinacional es aqu l cuyas salidas dependen solamente de sus entradas actuales. La perilla selectora de cana les de un

In 1

protegl l por de

h "de "iut"f ,

receptor de televisin SIN es corno un circuito combinacional: su "salida" selecciona un canal basada solamente en la posicin actual de la pe-

ntrada"). as salidas de un circuito lgico seculI!ncial dependen no slo de sus entradas :. sino tambin de la secuencia an terior de las entradns. quizs arbitnuiaejos en el pasado. El seleclOr de canales. q ue se controla mediante 105 rolIIcia arri ba" y " hacia abajo" de un televisor o de una videocasclera, es un secuencial. Lo seleccin de canal depe nde de la secuencia anterior de las

'oes hacia anibalhacia abajo. por lo menos desde que se comenz a ver 10 ~ Ies. y quizs desde cuando se encendi el dispositivo. Estos circuitos se
I

en los capflulos 7 y 8.

n circuito combinacional puede contener una cantidad arbitr.uia de compuena~ : inVttSOreS pel O no lazos de retroalimentacin. Un lazo de rrlroali",Lnlaci6n yeetoria de una scfta.l en un circuito que pennile que la salida de una como e propague de rcgn:so hacia la entrada de esa misma compuerta: un lazo de

raleza generalmente crea un comportamiento secuencial en el eircuito. n el andJisis de un circuito combinacional comenz.amos con un diagrama , procedemos hasta una descripcin formal de la func in que realiza el cir J como una tabla de verdad o una. expresin l6gica En la s{nluis hacemos lo o, comenzamos con una descri pcin fonnal y procedemos hasta un diagra

'o.
193

194

Caprtulo 4 Principios de

dise~o

lgico combinacional

Los circuitos combinacionales pueden tener una o ms salidas. La mayor parte de las tcnicas de anlisis y srntesis se extienden de unll manera obvia desde los circui tos que tienen una salida hasta los circuitos con varias snlidas (por ejemplo, "Repita estos pasos para cada salida"). Tambin sealaremos cmo se pueden aplicar algunas tcni cas de una manera no tan obvia para obtener ms eficacia en el caso de las salidas
mhiples .

El propsito de este captulo es darle a usted un fundamento terico slido para el anlisis y la sntesis de los circuitos lgicos combinacionales, un fundamento que ms tarde ser doblemente imponante cuando estudiemos los circuitos secuenciales. Aunque en la actualidad la mayora de los procedimientos de anJisis y sntesis de este caprtulo es tn automatizados (mediante herramiemas de diseno asistidas por computadora), usted necesitar un conocimiento bsico de los rundamentos para utilizar las herramiemas y para encontrar lo que est mal cuando obtenga resultados inesperados o indeseables. Una vez que tiene los fundamen tos, lo siguiente es comprender cmo se pueden expresar y analizar las runciones combinacionales mediante el uso de lenguajes de descripcin de hardware (HOL). Asf, las ltimas dos secciones de este captulo presentan las caracterlsticas bsicas de ABEL y VHDL, los cuales emplearemos para disear toda clase de circuitos lgicos en todo el texto. Antes de iniciar el estudio de los circuitos lgicos combinacionales, dcbemos pre semar el lgebra de conmutacin, la herramienta matemtica fundamental para analizar y simetizar circuitos lgicos de todas clases.

4.1 lgebra de conmutacin


Las tcnicas de anlisis formal para J os circuitos digitales tienen sus rafees en el trabajo de un matemtico ingls. Geore Boole. En 1854, l invent un sistema algebraico de dos \'3Jores. que ahora se conoce con el oombre de cUgtbro de conmutacin. para 'dar expresin

/gtbra boo/tana

... 8 las leyes fundamentales del ruzooamiento en d lenguaje simblico del Clculo".

Seccin 4.1 lgebra de conm utacin

195

Al Uli lizar este sistema. un filsofo. un especialista en lgica o un habitante del planeta Vulcano es capaz de formu lnr instrucciones que sean verdadcnls o falsas. combinarlas para hacer nuevas instrucciones y detemlinar la verdad o falsedad de hls nuevas instrucciones. Por ejemplo. si estamos de acuerdo en que " la gente que no ha estudiado este material o es fracasada o no es intelcclUal" y "ningn diseador de computadoras es un fracasado". entonces podremos responder las siguientes preguntas "si eres un diseador de computadoras inteleclUaJ. entonces ya has estudiado esto?" Mucho despus de Boole. en 1938. el investigador de los Labor.norios Bell. Claude E. Shannon. demostr cmo se poda adaptar el lgebra de conmutacin para analizar y describir el comportamiento de los circuitos que se construyeron a partir de relevadores. Los relevadores fueron los elementos lgicos digitales que se utilizaron con mayor frt:cuencia en ese momento. En 111 obra fgebru de COIUlruwcil1 de Shannon. el estado de los contactos (pllltinos) de un relevador. abieno o cerrado, est rcpn::sentado por una varillble X. que puede tener uno de dos valores posibles. Oo l . En las tccnologfas lgicas de la actualidad. estos valores corresponden a una amplia variedad de condiciones ffsicas: voltaje ALTO o BAJO. luz apagada o encendida. capacitor descargado o cargado. fusible fundido o inlacto, y asf suces\'aJllCnte. como indicamos en la tabla 3-1 de la pgina 81. En el resto de cst.a seccin desarrollaremos dira:tamcnte el lgebra de comnutacin. para tal fin utili7 .aremos los "principios primarios" y lo que ya sabemos acerca del comportamiento de los elementos lgicos (compucnas C inversores). Para tener una mayor idea histrica y/o matemtica de este material. consulte las referencias.

dlgtbru dt ctmnmtoci6n

4.1 .1 Axiomas
En el lgebra conmutacin utili7.amos una \'3rinble simblica. p. ej. la X. para representar la condicin de una sei\al l6gica. Una seal lgica se: encucnlnl en una de dos posibles c~)ndiciones : bajo o alto. apagado o encendido. etct:tcrn. dependiendo de la tccnologa. Decimos que X tiene el valor "O" para una de cstas condiciones y " 1" para In OIm.

oc

Por ejemplo. en los circuitos lgicos CMOS y TTL del captulo 3. la cotll'~n ci6tl d~ f6g ica positil'tl indica que debemos asociar el valor ''0'' con un \'Oltajc BAJO y " 1" con un voltaje ALTO. La cQtll'ell cin de lgica negalil'lI hace la asociacin opuesta : O '" ALTO Y I '" BAJO. Sin embargo. la seleccin de la lgica posiliva o negativa no tiene efecto sobre nuestra capacidad de desarrollar una descripcin algebraic.. consis tente del componamiento del circuito: solamente afecta los detalles de la abstrnccin fisica' lllgebraica, como lo explicaremos posteriormente en nuestro anlisis de la "duo lidad". Por el momen!'). ignoraremos las re .. lidades rlsicas de 1 05 ci rcuitos lg icos y asumiremos que funcionen directamente sobre los smbolos lgicos Oy l . Los axiomas (o posw lado.f) de un sistema matemtico son un conjunto mnimo de definiciones bsicas que suponemos verdaderas. a partir de CSlns definiciones se obtiene infonnacin Ildicional del sistema. Los primeros dos axiomas del lgebra de conmutacin expreson la "abstraccin digit.al" al establecer fommlmcnte que una varinble X solamente puede tomar uno de dos valores:
(Al') X: I
s i X~ O

C OIII'i'ncilr di' lgica

PQsitim
cOlll'i'nd6n di' lgica
rlt'glltil'(l

lu ioma posfullldo

Note que establecimos estos axiomas como un par. la nicn diferencia entre A I YAl ' es el intercambio de los smbolos O y l. 8 ta es una caracterstica de todos los axiomas del

196

Captulo 4 Principios de disei'lo lgico combinacional

compl~m~n/o

primll (}

lgebra de conmutacin y es la base del principio de "dualidad" que estudiaremos ms tarde. En la seccin 3.3.3 mosltalllOS el diseo de un inversor, que es un circuito lgico. En un invem>r el ni ...el de la seal de salida es opuesto (o complt mt nto) al nivel de la seal de entrada. Utilizamos el signo de prima (') para indicar una funcin invem>ra. Es decir, si una variable X indica la seal de entrada del inversor, enlonces X' indica el valor de la seal de salida del inversor. Esta notacin se especifica fonnalmente en el segundo par de axiomas:
(AZ)

Si X = O . entonces X' = I

(A2')

si X "" 1, entonces X' = O

Q~roiJQ r /Jlg~broicQ

o~l'(lci6n

NOT

Como se muestra en la figura 4-1. la salida de un inversor que tiene una seal de entrada X. puede tener una designacin arbitraria. por ejemplo Y . Sin embargo, a1gebraicamente escribimos Y = X' para expresar que "la seal Y siempre tiene el valor opuesto de la seal X". El smbolo prima (') representa un opuador algebraico. y X' es una expfI!$in, la cual se lee como "X prima" o " NQT X". Este uso es anlogo al que hemos aprendido en los lenguajes de progr.tmllC~n. En estos lenguajes si J es una variable entera, entonces -J es una expresin cuyo valor es O - J . Aunque al parecer esto no tiene mucha importancia. aprenderemos que la distincin entre los nombres de las seales (X. Y), las expresiones (X'} y las ecuaciones (Y "" X'} es muy importame cuando estudiamos los estndares de documentacin y las henamientas de software para el diseo lgico. En los diagramas lgicos de este libro mantenemos esta distincin escribiendo nombres de seal en negro y las expresiones en color gris.

Figura 4-1 Identificacin de la senal y notacin algebraica para un overSOl'".

- -1[>0---

Yo X'

l1IulripUcaci6n lgica

punto de mulripliCllcin ,.,

En la seccin 3.3.6 demostramos cmo construir una compuerta ANO CMQS de 2 entradas. un circuito cuya salida es I solamente si sus dos entradas son l. La runcin de una compuerta ANO de 2 entradas se denomina cn ocasiones multiplicacin lgica. y se representa algebraicamente con un punto d~ multiplicacin (-). Es decir. una compuerta ANO con entradas X y Y tiene una seal de salida cuyo valor es X . Y. como se muestra en la figura 4-2(8). Algunos autores, especialmente los matemticos y los especialistas en

, ,

Seccin 4 .1

lgebra de COflmutacin

o lgebra booleana

197

x
v

I )r--z.
l"

x -v

x v

) )>---z.x.v
lb'

Figura 4-2 IdentiflC8Cin de sei\al y notacin algebraica: a) compuerta ANO; b) compuerta ORo

lgica, indican la multiplicacin lgica con una cua (X "Y). En la prctica seguiremos el estndar de la ingeniera utilizando el punto (X . Y). Cuando analicemos los lenguajes de descripcin de hardware (HDLs, por sus siglas en ingl6i), encontraremos otros smbolos diversos que se utilizan pata indicar la misma operacin. Tambi~n describimos en la seccin 3.3.6 cmo construir una compuerta CR eMOS de 2 entrnd:ls, un circuito cuya salida es 1 si cualquiera de sus entrndas es l . La funcin de una compuelta DR con 2 entrndas se conoce tambil!:n como suma Mgica, la cual se simboliza algebraicameme por un signo de suma (+). Una compuerta cR con entradas X yY tiene una salida de seal cuyo valores X + Y, como se muestra en la figura 4-2(b). Algunos amores denotan la suma lgica con una cua (X 1\ Y), pero seguiremos la prctica estndar de la ingeniera que utiliz.a el signo de suma (X + Y). Una vez ms. pueden usarse otros s(mbolos en los HDls. Por convencin, en una expresin lgica que involucre lamo la multiplicacin como la suma. la multiplicacin tiene preadencia. como sucede en las expresiones con enjeros en los lenguajes convencionales de programacin. Es decir, la expresin W . X + Y . Z es equivalente a (W . X) + (Y . Z). Los ltimos tres pares de axiomas establecen las definiciones fonnales de las operaciones ANO y DA, adems, indican la salida que produce cada compuena paracada posible

1Umll

lgica

precedtncia

o~roci6n

ANO o~rocid" OR

combinacin de entrada:
(A3)
(A4)

0 0= 0 1 , 1= 1 0 1 = 1 0=0

(A3')
(A4')

1+ 1= 1 0+0=0 1 +0=0+1=1

(AS)

(AS')

Los cinco pares de axiomas. Al - AS y Al '-A5', definen completamente el lgebra de conmutacin. Todos los otros hechos ncerca del sistema se demuestran utilizando estos axiomas como punto de panida.

198

Capitulo 4

Principios de diseo lgico combinacional Tabla 4-1 Teoremas del lgebra de COflmutacln con una variable.
(TI,
(1'2,

X+o=X X+ I = 1 X + X=X (X')' = X X+X'=I

lTI ')

X ]= X X "0= O X X = X

(Identidades) (Elementos nulos) (Potencia idntica) (In\" olucin)

1 1'2' )
(D ' I

(T3) (T4l
lT~l

fTS')

X X' = O

(Complementos)

4 .1 .2 Teoremas de una sola variable Durante el anlisis o la sntesis de los circuitos lgicos. con frecuencia escribimos expre-

siones algebmieas que caracterizan el comportamiento deseado o real de un circuito. Los ItOremas del lgebra de conmutacin son enunciados. que a nuestro saber siempre son ciertos. los cuales nos penniten manipular las expresiones algebraicas para aplicar un anlisis ms sencillo o realizar una sfntesis ms eficaz de los circuitos correspondientes. Por ejemplo. el teorema X + O,. X nos pennitc sustituir X + Ocada vez que se presente cn una expresin con la X. 1.3 tabla 4- 1 enumera los teoremas del lgebm de conmutacin que involucran una sola variable X. Cmo sabemos que estos teoremas son \'erdaderos? Podemos demostrarlos por nosotros mismos o bien aceptar la palabra de alguien que lo haya hecho. Como somos estudiantes de nivel unh'ersitario. aprenderemos a demostmrlos. La demostracin de la mayor parte de los teoremas en el lgebra de conmutacin
c~

c:<lrc m ad ame n te se:nd ll n. si se: aplica unn tcni ca lIamadn de ilU/ucc:idll perfecta. El

axioma A 1 es la clave para esta tcnica: ya que una variable de conmutacin solamente puede tomar dos valores diferentes, O y l . El teorema se demuestru involucrando una sola variable X. probando que es n~rdadero tanto para X = Ocomo para X:: l . Por ejemplo. par.! demostmr el teorema TI . hagamos dos sustituciones:
[X ", OI
0+0 : 0 1+0 = 1

verdadcro. de acuerdo al ax ioma A4' verdadero. de acuerdo al axioma A S'

IX = II

Todos los teoremas de la tabla 4- 1 se demuestran aplicando la induccin perfecta, lo mismo tiene que hacer en los problemas propuestos 4.2 y 4.3.
4. 1 .3 Te o re m as d e dos y t res variab les Los teoremas del lgebra de conmutacin con dos o tres vnriables se enumeran en la

tabla 4.2. Cada uno de estos teoremas se demuestra fc ilmente por induccin perfecta. evaluando la instruccin del teorema para las cuatro posibles combinaciones de X y Y. o las ocho posibles combinaciones de X. Y YZ. Los primeros dos pares de teoremas se relacionan con la conmutatividad y la asocintividad de la suma y multiplicacin lgicas. por lo tanto son idnticos a las leyesconmutatiw y asociativnde la suma y multiplicacin de nmeros enteros y reales. Tomados en conjunto. indican que la agrupacin u orden de los trnlinos en una suma lgica o producto lgico es irrelevante. Porejemplo. desde un punlo de visla estrictamente algebrnico. una expresin como W . X . Y . Z es ambigua: debera escribirse como (W . (X . (Y . Z) o (W X) y ) . Z) o (W X) (Y . Z) (consulte el ejercicio 4.34). Pero los leorema~ nos

Seccin 4.1

lgebra de conmutacin o lgebra booleana

199

T a b la 4- 2 Teoremas del lgebra de conmutacin con dos o tres variables.


(T6, (17)
(1'8)

x+y = y+x (X + Y)+ Z = X +(Y + Z) X Y + X Z = X (Y + Z) X+X Y = X x y + x y' = x X Y +X' Z + Y Z =X Y + X' Z (X + Y) (X' + Z) (Y +Z) = (X + y ) . (X'+ Z)

1'1'6' )
(n' )

x y = y x (X Y) Z = X (Y Z) (X + y) . (X + Z) = X + y . Z X (X+Y)= X (X+Y) . (X +Y'J = X

(Conmulalividad) (Asociati\'idad) (Distribul ividad) (Cubierta) (Co mbinocin) (Co nsenso)

tTS')

(1"91 (T IO, (TII , {TI 1',

""',
tTI O')

indican que la fonna ambigua de la expresin est bien. puesto que obtenemos los mismos resultados en cualquier caso. Ind uso podemos modificar el orden de las variables (por ejemplo. X . Z . V . W) y obtener los mismos resultados. Aunque este anlisis parezca trivial es muy importante porque esUlblece los funda nk.'tltos tericos que rigen el uso de las compucnas lgicas que lienen ms de dos entrados. Definimos' y + como opemdofJ!s binllrios: ox:radores que combinan dos variables. Sin embargo. en la prctica utilizamos compuertas AND y OR con 3 o 4 entrodas (o ms). Los teoremas nos indican que las entrlldas de las compuertas se pueden concctar en cualquier orden; de hecho. muchos progrJmas que definen la colocacin de los componentes en las tarjetas de circuito impreso y programas de disto ASle toman \'entaja de este hecho. Podemos utilizar una compuerta con n enlnldas o varias compuertas con 2 entntdas (n- I ) en ronna intercambiable, aunque el retardo de propagacin y el costo sean probablemente mayores que en el caso de las compuertas mltiples de 2 entrJ.das. El teorema T8 es idntil.:o a la ley distributiva de los nmeros enteros y reales. es . decir. la multiplicacin lgica se distribuye sobre la suma lgica. En consecuencia. po_ dernos "expandir" una ellpresin para obtener una suma de productos. como en el ejemplo que sigue:

optrodor binan"o

V (W+X) (V+ Z)= V W V + V W Z+V X Y +V X Z


Sin embargo. el lgebro de conmutacin tambin tiene una propiedad poco ramiliar. en la cual el inveI'W e.~ verdadero. donde la suma lgica se distribuye sobre la multiplicacin lgica. como se demue.~1nl mediante el teorema 1'8' . De este modo. tambin "expandimos" una expresin para obtener una ronna de producto de suma.~:

(V W X)+ (V Z)", (V + V) (V+Z) (W +V) (W+Z) ' (X+V) (X +Z)


Los teoremas 1'9 y TI Ose utili7.an ampliamente en la minimizacin de las runcio-

nes lgicas. Por ejemplo. si la suhexpresin X + X . Y aparece en una expresin lgica. el leorema de l'l/biena 1'9 nos indica que solnmente necesitamos incluir X en In expresin; I~orrllltl ,/~ cuhi~n{j se dice que Xcubre (l X Y . EIleorema lit! combinacin no nos indica lo siguiente: si la cubitnll subexpresin X . V + X . V' aparece en una expresin. entonces podemos reemplazar- Imrt;ma d~ combinacin In con X. Pue.~to que Y debe ser Oo l. de cunlquier manera la subexpresin original es 1 si y slo si X es 1.

200

Capftulo 4 Principios de diseo lgico combinacional

Aunque es posible demostrar fcilmente 1'9 por induccin perfecta, la veracidlld de 1'9 es ms obvia si la demostramos utilizando los otros teoremas que ya hemos demostrado hasta abora:
X+X y

= X I +X Y = X(I+Y)
X. I

(de acuerdo con T I') (de acuerdo con TS)


(de acuerdo con TI)

- X
de consenso

(de acuerdo con TI ')

Itor(nl(l

conunso

Igualmente. se pueden utilizar los teoremas adicionales para demostrar TlO. donde el paso clave es utilizar TS para volver a escribir el lado izquierdo como X (Y + Y'). El teorema TI I se conoce como el teorema de com ellso. Eltnnino Y . Z se conoce como el COIlStll$O de X y y X' . Z. La idea es que si Y . Z es 1, entonces X . Y o X . Z tambin deben ser l . puesto que Y y Z son ambos I y X o X' deben ser l . Asf, eltf rmino y . Z es redundante y se elimina del lado derecho de TI I. El teorema de consenso tiene dos aplicaciones importantes. Se emplea para eliminar ciertos riesgos de temporizacin en circuitos lgicos combinacionales, como lo veremos en la seccin 4.5. Y tambin forma el fundamento del rnttodo de consenso iterativo para hallar los implicantes primos (v6ase la seccin de Referencias). En todos los teoremas es posible reemplazar cada variable con una expresin lgica arbitraria. Un reemplazo simple es asociar una o ms variables:
(X

+ V') + z'

X + (V' + Z ')

(basado en TI)

Pero expresiones ms complejas tambit n pueden ser sustituidas:


(V' + X) . f!N . (Y' + Z) + (V' + X) . (W . (Y' + Z))' = V' + X (basado en TlO)

4.1.4 Teoremas de n variables


Varios teoremas importantes. numerados en la tabla 4-3. son verdaderos para un nmero arbitrario de variables. n. La mayoria de estos teoremas se demuestran utilizando un
inducci&! finita paso !und(JJtlenlal paso de induccin

Asf, el teorema es verdadero para todos los valores finitos de n. Los I~OrttmlJj de lHMorgM (f13 y TI3') son probablemente los ms comnmente utiljzaclo entre todos los teoremas del lgebra de conmutacin. El teorema Tl3 nos dice que una compuerta ANO de n entradas cuya saJida est complementada es equivaJente a
X+X+X+ +X = X+(X+X+ . . +X) (i + I X's en cada lado)

X + (X) X
ttQrtma3

(si TI2 es verdadero para n = 1 ) (de acuerdo con TI)

de DtMorgo.n

As. elleorema es verdadero para todos los valores finitos de n. Los I~Orttmas de DeMOrgM (f13 y Tl3') son probablemente los ms comnmente utilizaclo entre todos los teOIemas del lgebra de conmutacin. El teorema TI3 DOS dice que una compuerta ANO de n entrad!ls tuya salida est complementada es equivalente a

Seccirl 4.1

lgebra de conmutacin o lgebra booleana

201

Tabla 4-3 Teoremas elel lgebra de conmutacin con n variables.


(f12 )

ITl 2')
(TU )

X+X + ... + X=X X X ... X = X (X. X: .... X,,)' = X.' + X2'+ ... + XII' (X. + X:+ ... + X,,)'= X.' X2" ... . XII' (F(X., X2, .... X". +.. )]' = F(X. ', Xl ' ..... XII" . +) F(X1 X2.... , X,,) = XI . F(I. X2..... XII) + XI' . F(O. X2.... , X,,) F(XI. X2 ., XII) = (Xl + F(O ,X2, .... X,J] IX.' + F(I, X2 . .. X,,)J

(Potencia i~ntica generaJiz.ada) (Teoremas de DeMorgan) (Teorema de DeMoran generalizado)


(Teoremas de expansin de Shannon)

(TU')
(T 14)

(TI5) (TI5')

una compuerta CA de n entradas cuyas entradas estn complementadas. Es decir. los circuitos de la figura 4-3(a) y 4-3(b) son equivalentes. En la seccin 3.3.4 mostrarnos cmo consuuir una compuerta NANO CMOS. La sa1ida de una compuerta NANO para cualquier conjunlo de entradas es el complemento de una sa1ida de compuerta ANO para las mismas entradas, de modo que una compuerta NAND tiene el smbolo lgico de la figura 4-3(c). Sin embargo, el circuito NANO CMOS no est disei'lado como una compuerta ANO seguida de un inversor con Iransistor (compuerta NOn: es slo una coleccin de trnnsistores que da la casualidad que realizan la (uncin ANO-NOT. De hecho, el teorema TI3 nos dice que el smbolo lgico en (d) denOla la misma funcin lgica (las burbujas sobre las entradas de la compuerta OA indican inversin lgica). Es decir, la compuerta NANO se considera como si ulizaro. una funcin NOT-OR. Al obStrvat las enuad3s y la salida de una compuerta NANO, C5 imposible determinar si la compuerta se ha construido internamente como una compuerta AND seguida de un inversor, o como inversores seguidos de una compuerta DA. o como una realizaci n CMOS directa, porque todOl 101 circuitos NANO "olizo.n lo miJmofUJIci6n f6gico. Aunque la seleccin del smbolo no tiene la menor influencia sobre la funcionalidad del circuito, en la seccin 5.1 demostraremos que la seleccin apropiada hace la funcin del circuito mucho ms fcil de comprender.
Flg u ra 4 -3 Circuitos equivalentes de acuerdo con el teorema ele OeMorgan T13:
al ANO-NOT; b) NOT..QR; el slmbolo lgico para una compuerta NANO: d) slmbolo equivalente para una compuerta NANO.

(.)

x
y

_. )

x y """~_ ~ Z _(X'Y)'

(o)

~ -fl~--

Z :s:(X'Y)'

x(b)

X'

Y'
y-

(d)

~-~ )>--

Z .. X' ... V'

202

Captulo 4

Princpios de disei"lo lgico combinacional

(' 1

(01

(bl

x-[>>-- - I}.._ z. X' . V'


v

(d)

FI gura 4-4 Circuitos equivalentes de acuerdo con el teorema de DeMorgan TI3': al OA-NOT; b) NQT-AND: el sfmbolo lgico pam una compuerta NOA; d) slmbolo equivalente pam una compuer1a NOA.

r~ortmo gellt roliwdo


lIt

J)tMorgon

compltmtnlO l it uno
txprt'sin lgico

Una equivalencia simblica semejante se infiere del teorema TI3'. Como se muestra en la figura 4-4, una compuerta NOR puede llevarse u cabo como una compuerta DA seguida de un inversor, o como inversores seguidos de una compuerta ANO. Los teoremas Tl3 y TI 3' son casos especiales de un teortma gtlll'rtllizado de DeMorg(ln. Tl4, que se aplica a una expresi6n 1 6gica arbitrario F. Por definici6n, el compfememo de u/w e.xpresj()1I lgica, que se representa como (F)', es una expresin . cuyo valor es el opuesto de las F's paro. toda combinaci6n posible de entr.tda. El teorema TI4 es muy imponanle debido a que llOli proporciona una manera de manipular y simplificar el complemento de una expresin. El teorcmo T 14 establece que dada una expresin lgica de 11 variables, se obtiene su complemento al intercambiar + y , y complementar todas [liS variables. Por ejemplo. supongamos que tenemos
F(W,X, Y, Z) = (W'X)+(X Y)+(W (X'+ Z'))
= Wl' X) + (X . Y) + (W . X)' + (Z)'))

En la segundolfnea hemos encerrado las variables complementadas entre parntesis para recordarle que la ' es un operador. no parle del nombre de la variable. Al aplicar el teorema T14. obtenemos lo siguiente:
[F(W, X, Y, Z))' = W')' + X'j.{X' + Y') . (W' + X')' . (Z'l'))

Aplicando del teorema T4, eSIO se simplifica a


[F(W, X, Y, Z)[' = (W + X'j.{X' + Y'j.{W' + (X Z))

En general, util izamos el teorema TI4 para complementar una expresin entre parntesis mediante el intercambio de + y . ,complementando todas las \'llriables que estn sin complementar y dejando sin complementar todas aqullas que se encuentren complcmenlad.1s. E[ teorema generalizado de DeMorglln T 14 se demuestra mostrando que todas las funciones lgicas se escriben ya sea como una suma o como un producto de subfuncio-nes, y se aplican luego de manera recursiva T 13 YT13'. Sin embargo, una demostracin

Seccin 4.1

lgebra de conmutacin o lgebra booleana

203

mucho ms satisfactoria e instructiva se basa en el principio de dualidad. que se explica


ti continuncin.

4.1.5 Dualidad
Hemos establecido lodos los axiomas del lgebra de conmutaci n en parejas. La \'ers i n

"prima" de cada axioma (por ejemplo, A5') se obtiene de la \'crsin sin prima (porejemplc. AS) al intercambiar sencillamente O y 1 y. si se encuentron presentes, . y +. Como resultado, podemos establecer el siguiente mewteort!ma. un teorema acerca de teoremas:

mt wttoTt!ma

Principio de dualidad Cualquier teorema o identidad en el lgebra de conmutacin contina siendo verdadero si tanto Oy I como y + son intercambiados en todas panes.
El mclaleorcma es verdadero debido a que los duales de todos los axiomas son verdaderos. de modo que l o~ duales de todos los teoremas del lgebra de conmutac in se de-

muestran utilizando los duales de los axiomas. Despus de todo. qu es un nombre o un smbolo en todo caso? Si el software empleado para la tipogrnfa de este libro hubiera tenido un error. uno que intercambiara OH I Y , H + a lo largo de este caphulo. usted todava hubier.l aprendido exactrunente la misma lgebra de conmutacin; solarnenle la nomenclatura habra sido un poco extrana, utilizando palabras como "producto" para describir una operacin que utili7.11 el smbolo "+", La dualidad es importante puesto que duplica la utilidad de todo lo que se aprende acerca del lgebra de conmutacin y la manipulacin de las fu nciones de conmutacin, De unn manera ms proctic.ll, desde el punto de vista de un estudiante. reduce a In mitad la cantidad de lo que usted tiene que aprender! Por ejemplo. una "ez que usted ha aprendido cmo sintetizar los circuitos lgicos AND-OR de dos etapas, a partir de expresiones de suma de productos. automticamente sabr una tcnica dual para sintetizar circuitos OR-AND a panir de expresiones de producto de sumas. Hay nicamente una convencin en el lgebra de conmutacin donde no se trata idnticamente' y +. de modo que la dualidad no necesariamente se mantiene \'enhdcrn: puede usted averiguar de qu se trata antes de leer la respuesta abajo? Considere la siguiente instruccin del teorema 1'9 y su claramente absurdo "dual";

x + X . Y '" X x ' X + Y '" X


X + Y '" X

(teorema 1'9) (despus de aplicar el principio de dualidad) (despus de aplicar el teorema T3')

Obviamente la ltima !fnca anterior es falsa: dnde cometimos la equivocacin? El problema se encuentra en la precedencia de operadores. Fuimos capaces de escribir d iado izquierdo dc la primera !fnea sin part:ntesis debido a nuestra convencin de que' tiene precedencia, Sin embargo. una vez que se aplica el principio de dualidad. se debe dar precedencia a + en su lugar. o escrito la segunda lnea como X ' (X + Y) '" X. La mejor manera de evitar problemas como ste es colocar cxplfcimffiCnle todos los parntesis de una expresin antes de tomar su dual. DefInamos formalmente el dlllll d~ UIIO explTsi6n lgica, Si F(X I , Xl> .... x,..+ .. :) es una expresin lgica con parntesis explfcitos que involucra las .,..uiables XI' Xl' ,, '. X~

d/UJI dt

I//la

t:qu$iII

Idg;('(J

204
(a)

Capitulo 4 Principios de dJse"o lgico comblnaclonal


X Y

z
X
B.J.,IO

(O)

--/I-.. -:~ ')\-_ z . xy


X
O O

(el

~ _..l)-:ripo ~)>- z
X Y
Z

.. X + Y

Y
IWO

Z
O

IWO ALTO

IWO B.A.lO IWO

O O

"-lO IWO "-TO "-, O

"-TO

, , ,

O O

, , , ,
O O

, , ,

F I 9 u r a 4 - 5 Una compuerta lgica "tipo 1": al tabla de funciones elctt!cas; b) tabla de funclooes lgicas y slmbolo con lgica positiva: el tabla de funciones

lgicas y slmbolo con lgica negativa.

y los operadores +, " y', entonces el dual de F. escrito como FO, es la misma expresin con + y . intercambiados:

FO(X,. Xl .... x~, +. .,')::: F(X,. Xl.. .. X.' +, .:)


Naturalmente. usted ya Sllbla esto. pelO escribimos la definicin de esta manera precisamente para destacar la similitud e ntre la dualidad y el teorema T14 generalizado de DeMorgan, el cual ser ahora nuevamente establecido como sigue:

(F(X,. Xl ... X.)I' = FO(X,', Xl' . ... X.')

Examinemos este enunciado desde el punlo de vista de una red ffsica.


La figura 4-S(a) muestra la labia de funciones elfemcas de un elemento lgico al

que designaremos compuena "tipo 1", Bajo la convencin de lgica positiva (BAJO = O YALTO = 1). esto es una compuerta ~O, pero bajo la convencin de lgica negativa (BAJO .: I y ALTO .: O), es una compuerta OA, como se ilustra en (b) y (e), Tambin podemos imaginar una compuerta "tipo 2". la cual se ilustra en la figura 46. que es una DA de lgica positiva o una ANO de lgica negativa, Para compuenas con ms de dos entradas se pueden desarrollar tablas semejantes,
F i gura 4-6 Una compuerta lgica "tipo 2": a) labia de funciones elctJicas: b) tabla de fundones lgicas y slmbolo con Jgica positiva; el tabla de funciones Jglcas y slmbolo eon lgica negativa,

( .) ~ ---rl.. :--::l , ~I_ z


X Y

(o)

- -11--:" =:' )>-_


X

z X, Y

I z
B,'JO

Z
O
1

B,lJJO IWO

IWO "-TO
"-lO IWO

"-TO

O O
1

"-TO
ALTO

"-TO "-TO

, ,
O

O O

, , , ,
O O

O O O

Seccin 4.1

lgebra de conmutacin o lgebra booleana

205

x, x, x,
X.

.. '
'>c

... , ... '

."

}-

x,

X.

.. '

... '

.. '

... '

4 ... ,

F I gur a 4 -7 Circuito para una funcin lgica utilizando inversores y compuertas lipo 1 Ytipo 2 bajo una convencin de lgica positiva.

Supongamos que estamos dando una expresin de lgica arbitraria. F(X. X2... XII).
Siguiendo la convencin de lgica positiva, construimos el circuilo correspondiente a

esta expresin Ulilizando inversores para operaciones NOT, compuertas lipo 1 para ANO y compuertas tipo 2 parn O A. como se ilustra en la figura 4-7. Ahora supongamos que, sin cambiar este circuito. sencillamente modifiquemos la convencin de lgica de posi. tiva a negativa. Entonces deberamos volver a dibujar el circuito como se muestra en la figura 4-8. Claramente, para toda combi nac in posible de voltajes de entroda (ALTO y

BAJO), el circuito todava produce el mismo voltaje de salida. Sin embargo. dCMC el
punto de vista del lgebra de conmutacin. el valor de salida (O o 1) es el opuesto del que se tenfa bajo la convencin de lgica positiva, Del mismo modo, cada valor de entrada es el opuesto del que se tenfa, Por lo tanto. para cada combinacin posible de entrada para el circuito de la figura 4-7. la salida es el opuesto de la producida por la combinacin de entrada opuesla aplicada al circuito en ID figura 4-8: F(Xl.X2 .. .. ' X~) = [FD(X J,.X2', .... X,,1J'

... )
X'

.. '

--1><>

X'

.. '

... '
--1><>

4 .. ,

F igura 4-8 tnlerprelacin en lgica negativa del Circuito anlerior.


X'

","

... '

... '

'--1 ...

, >

F'ljX 1', Xz', .... X,,')

206

Capftulo 4

Principios de diseo lgico combinacional

Al complementar ambos lados, obtenemos el teorema generalizado de DeMorgan:


(F(X 1. X 2. .... X,,) 1' ::: FD(X 1'. X2'. . X,,')

Sorpre ndente!

4.1.6 Representaciones estndar de funciones lgicas Antes de trasladarnos al anlisis y sfntesis de las funciones lgicas combinacionales, pre/(Ib/(I/Ie I'enlad

sentaremos algo de nomenclatura y notacin necesarias. La re prese ntacin ms bsica de una funcin lgica es la rabio tic \ud,d. Similar al mtodo de demostracin por induccin perfecta en fi losofa . esta repre.<;Cntncin por fU eila bruta simplemente enumem la salida del circuito p:lrol loda combinacin posible de entradn. Tradicionalmente, las combinaciones de entr...da se acomodan en renglones en orden ascendente de conteo binario, y los correspondientes valoT'CS de salida se escriben en una columna enseguida de Jos renglones. La estructura generol de una tabla de \'erdad de 3 variables se muestm a continuacin en la tabla 4-4. Los renglones estn numerados del O al 7, correspondientes a las combinaciones de entrada binaria, pero esta numeracin 00 es una parte esencial de la tabla de verdad. La labia de verdad para una funcin lgica de 3 variables se ilustro en la tabla 4-5. Cada patrn distinto de ceros y unos en la columna de salida prod uce una funcin lgica diferente: existen 28 patrones de esla clase. De este modo, la funcin lgica en la tabla 4S es una de 28 diferentes funciones lgicas de tres variables. La labia de verdad para una funcin lgica de n variables tiene 2" renglones. Obviamente, las tablas de verdad son prcticas de escribir solame nte para funciones lgicas con un nmero pequei\o de variables. digamos. 10 para estudiantes y de 4 a 5 pam cualquier otra persona.
T a bl a 4 - 4 Estructura general de tabla de verdad para una funclo lgica de 3 variables, F(X. Y, Z).

Rengl6n X
O O O O

Y
O O
I
1

Z
O
I

F(O,O,O) F(O,O, l) F(O.I,O) F(O. 1.1) F( 1.0.0) F(1.0, t) F( 1. 1.0) F(I. I.I )

,
3
4

6
7

O
1

O
I I I

O
I

O
I I

O
I

Seccin 4.1
Rengln X
Y
O O
I I

lgebra de conmutacin o lgebra booleana

207

Z
O
I

F
I

Tabla 45
Tabla de verdad para una funcin lgica particular de 3 variables, F(X, Y, Z).

o
O O O
I I I I

,
3

O O
I I

O
I

,
6

O
I

O
I I

O
I I

O
I

La in(onnacin conlenida en una tabla de verdad tambin es posible expresarla

algebr.l.icamente. Para ello. necesilllnlOS primero algunas definiciones: . X'. Y'. Uno/itl'm/ es una var13ble oel complemento de una variable. Ejemplos: X. Y

Ii/('rt./I
tlmrillo dt' I'roJucw
t!J.p~sitl"

Un li mrinQ de prrxlllcllJ es un3 literal simple o un producto lgico de dos o ms literales. Ejemplos: Z', W X , Y. X y ', Z. W' V' , Z, Una exprt'sirr de SUIIIlIllt! productos e.'1 una suma lgica de trminos de producto, Ejemplo: Z' W , X , Y. X , V' , Z. W' V' Z. Un tmrino dI' Sil/na es una litcrol simple o una suma lgica de dos o ms liter.tles. Ejemplos: Z'. W.X.Y, X+Y ' .Z, W' .Y' .Z. Una exprt'sin de prodllCIO lll' SrltnllS es un producto lgico de tmlinos de suma. Ejemplo: Z', (W+X.Y) (X.Y ' .Z), (W' +Y ' .Z), rece una sola Y ez. Un tnnino no nonnal siempre se simplifica a una const:mte o un tnnino normal utiJi7.ando uno de los teoremas T3. 1'3 ~ T5 o T5 ', Ejemplos de tnninos no normales: W X . X , V'. W . W'" X'. Y. X, X' , Y. Ejemplos de tnninos nonnales: W . X ' y', W X'. y ,

dt S IImo dt productos

Ilnnino (It $luna


up~n

di' prodll('W

dt

Sil/litiS

Un lrmillo 1I0rmal es un lnnino de producto o suma en el cual una variable apa-

Ilrm;lIo /lormal

Un tninitt mrillo de n variables es un tnnino de producto normal con 11 literales,


W' . X' , V', Z', W ' X' , Y' , Z. w' . X' , y . Z ',
Hay 2" lnninos de producto de esla cllISC. Ejemplos de minitnninos de 4
varinble.~:

minitlrmino

Un maxilimlino de" variables es un tnnino de suma nonnal con n liter.tles, Hay


2" tnllinos de suma de esta clase, Ejemplos de maxitnninos de 4 variables: W'. X'. V'.Z', X'. V'.Z, W'. X'. V. Z',

muxitl rmino

w.

Ex.islt! una estJttha correspondencia entre la tabla de \'Cfdad Y los minilnninos y maxitnninos. Un minitnnino puede tambin ser definido romo un tnnino de producto que es I en exactamente un rengln de la labia de \'Cfdad, De manera semejante, un maxitnJioo puede tambin ser definido como Wl tmlioo de suma que es Oen exactamente Wl rengln de la tabla de verdad. La tabla 4-6 muestro CSUl conespondencia para una tabla de YCfdad de 3 \miables,

208

Capitulo 4 Principios de diseoo lgico combinacional Tabla 4-6 Minitrminos y maxitrminos para una funcin lgica de 3 variables,
F(X, V, Z).

Rengln X
O
I

Y
O O
I I

Z
O
I

F
F(O,O ,O) F(O,O, I) F(O.1.0) F(O , 1.1 ) F(I,Q,O ) F( I. Q, I) F( I.l ,O) F( I.I.l)

Mlnltrmlno
X' V' Z' X' V' Z X' V Z' X' V Z X Y' Z' X Y' Z X Y Z' X y , Z

Ihxlfirmlno
X +Y +Z X+V + Z' X + Y'+ Z X + Y'+ Z' X'+ V + Z X'+ Y + Z' X'+ Y'+ Z X'+ V'+ Z'

O O O O
I I I I

O
I

3
4

O O
I I

O
I

6
7

O
I

numero minili nnino mini/i rmino i

maxittnnitw i

suma can&,ica

Un minitl rmino de n variables se repn::senta por medio de un entero de 11 bits, el nmero de minitlnnino. Utilil.atemos el nombre mini/i n/lino i para indicar el minitfnnino correspondiente al rengln i de la tabla de verdad. En el minitnnino i , una variable panicular aparece complementada si el bit correspondiente en In representacin binario de j es O: de otro modo. no est complementada. Por ejemplo, el rengln 5 tiene una 01 y el minitnnino correspondiente es X . Y' , Z. Como usted represenl3cin binaria 1 espern, lo correspondencia para maxitnninos es precisamente la opuesta: en el maxill mlino i , una variable eSIl!. complementada si el bit correspondiente en la representacin binaria de ; es 1, De este modo, el maxilfnnino 5 ( 101) es X' + Y + Z', Note que todo esto tiene sentido solaIllcnte si conocemos el nmero de variables en la tabla de verdad, tres en los ejemplos. Con base en la correspondencia entre la tabla de \'erdad y los minilnninos. es posible crear fcilmen te una representacin algebraica de una funcin lgica a partir de su tabla de verdad. La suma cannica de una funcin lgica es una suma de los mini tnninos correspondiente a los renglones de la tabla de verdad (combinaciones de entrada) par.l los cuales la funcin produce una salida l . Por ejemplo, la suma cannica parnla funcin lgica en la labia 4-5 de la pgina 200 e~ F - IX ,v.z(0.3,4, 6.7) := X' Y' Z'+X' y Z +X y ' . Z' +X y Z'+ X Y Z

IiJ/a dt minilt nninOJ


conjulllo dt iniciacin

producto clJnnico

Aqu. la notacin Ix.v.z(O. 3. 4. 6. 7) es una lista de minitlrminoJ y quiere decir "la suma de los minilnninos O, 3, 4, 6 Y7 con variables X, Y YZ". La lista de minilnninos lambin se conoce como el conjunto de "iciaci6n ron-Jet) par.l la funcin lgica. Podemos visualizar que cada minitrmino "enciende" exactamente la salida para una combinacin de entrnda. Cualquier funci n lgica puede e.o;cribirse como una suma cannica. El producto cannico de una funcin lgica e.< un produC IO de los maxilnninos correspondientes a combinaciones de entrada par.!. las cuales la funcin produce una salida O. Por ejemplo. el producto cannico para la funcin lgica en In tabla 4 5 es

F = nx.v.z< ' . 2, S) ::: (X+Y+z:) (X+Y' +Z) (X'+ Y+Z')

Seccin 4.2

Anlisis de circuitos combinacionales

209

Aquf, la notacin IIx.v.z{ I,2.5) es una lista de maxiti nninos y quiere decir "el producto de maxitl nn;rws 1. 2 Y 5 con variables X. y y 1:'. La lista de maxit~rmi nos tambin se conoce como el conjunto de neutralizacin (off-Jtt) para la funcin lgica. Usted visualiza que cada maxitnnino "apaga" la salida para exactamente una combinacin de entrada. Cualquier funcin lgica puede escribirse como un producto cannico. Es Ucil hacer la conversin entte una lista de minitrminos y una lista de maxitnninos. Para una funcin de n variables, los posibles nmeros minitnnino y maxitnnino se encuentran en el conjunto {O. 1. .. .. 2" - 1); una lista de minitnninos o max it~rminos contiene un subconjunto de estos nmeros. Para hacer el intercambio entre tipos de lista. tome el complemento del conjunto. por ejemplo. I AB.dO, 1. 2.) = nA.B.c(4.5.6.7)
Ex.y(I) =

lista de nuuitirmi/l(} conjrmlO de nf'ulroli~i&!

Iw.x.v.z(O. 1,2.3,5. 7.1 1. 13) =

nx.y(O.2.3) nw.x.v.z(4.6.8.9. 10. 12, 14. 15)

Ahora hemos aprendido cinco posibles re presentaciones para una funcin lgica combinacional: l. 2. 3. 4. 5. Una tabla de verdad. Una suma algebraica de minitnninos. la suma cannica. Una lista de minitnninos que utilizan la notacin I . Un producto algebraico de maxitnninos. el producto cannico. Una lista de maxitnninos que utilizan la notacin n.

Cada una de estas re presentaciones especifica exactamente la misma info rmacin; dada cualquiera de ellas. las otras cuatro se obtienen utilizando un proceso mecnico sencillo.

4.2 Anlisis de circuitos combinacionales


Analicemos un circuito lgico combinacional mediante la obtencin de una de.~ripc i n formal de su funcin lgica. Una vez que tenemos una descripcin de la func in lgica, se pueden realizar Olras operaciones: Detemlinar el comportamiento del circuilo pllfll. varias combinaciones de entrada. Manipular una descripcin algebraica para sugerir diferentes estructuras de circuito para la funcin lgica. Transformar una descripcin algebraica en una forma estndar que cOi ICSponde a una estructura de circuito disponible. Por ejemplo. una eJl[~in de suma de produetos corresponde directamente a la estructura de circuito que se utiliza en dispositivos de lgica programable (PLD. por sus siglas en inglts). Se puede utiliUU' una descripcin algebraica del comportamiento funcional del circuito en el anlisis de un sistema ms grande que incluya al circuito.

210

CapItulo 4 Principios de diseo lgico combinacional


x
y
Z

....
v

.....
Figura 4-9 Un circuito lgico de tres
entradas

'-'

-i

y una salida.

v
Una vez que se tiene el diagrama lgico de un circuito combinacional . tal como el de la fi gura 4-9. existen varias maneras de obtener una descripcin fonnal de la fu ncin del circuito. La descripcin funcional ms primitiva es 10 tabla de verdad. Si solamente utilizamos los axiomas bsicos del lgebra de conmutacin. obtenemos la toblo de verdad de un circuito de 11 entradas trabajando a travs de todas las 2" combinaciones de entrada. Para cada combinoci n de entrada. detenninamos todas las salidas de compuerta producidas por esa entrada. pmpagondo la infonuocin desde [as entradas del circuito hasta las salidas del mismo. La figuro 4-10 oplica esta "exhaustivo" t!!cnica a nuestro circuito de ejemplo. En cada Unea de sei\al del circuito hay una serie de ocho valores lgicos. los valores que estn presentes en esa lnea cuando las entradas XYZ del circuito son 000. 001 . .... 111. Escribimos la tabla de verdad al tronscribir la serie de salida de la compuena OR final , como se muestra en la tabla 4-7. Una vez que tenemos la tabla de

Figura 4- 1 O Salidas de compuenas creadas por todas las combinadooes de entradas.


x oooo t 11 1 Y 0011 001 1 Z 0 101010 1 OOOO tl l l 11 0011 00

1100111 1 0 10 10 10 1 1111 0000 0011 0011 10 10 10 10


00 ' 00000

01 00010 1 01 100101

Seccin 4.2
Rengl6n X
O
I

Anlisis de circuitos combinacionales

211

Y
O O
I I

Z
O
I

F
O
I I

O O O

Tabl a 4-7 Tabla de verdad para el circuito lgico de la figura 49.

2
3
4

O
I

O
I I I I

O O
I

O O
I I

O
I

6
7

O
I

O
I

verdad parn el circuito, podemos oblC:ner directamente una expresin lgica (la suma o producto cannicos), si asl Jo deseamos. El nmero de combinaciones de cntrada de un circuito lgico erece de manera exponencial con el nmero de enlradas, de modo que el enfoque exhaustivo puede r.'ipi damentc llegar a ser agotador. En su lugar. normalmente utilizrunos un enfoque algebr.lico cuya complejidad es ms linealmente proporcional al tamao del circuito. El rm!todo es sencillo; construimos una expresin lgka con parntesis correspondiente a los operadores lgicos y a la estructura del circuito. Comenzamos por las entmdas del circuito y propagamos las cxpresiones a Ira\'s de las compuenas hasta la salida. Utilizando Jos teoremas del lgebra de conmutacin, simplificamos las cxpresiones a medida que las cncontrnmos. o diferimos todas las manipulaciones algebraicas hasta obtener una expresin de salida. La figura 4-11 aplica la tcnica algcbraica a nuestro circuito de ejemplo. La funcin de salida est dada a la sal ida de la compuerta OR final :

F = X+Y') Z) + (X' . Y . Z')


Ningn teorema del lgcbra de conmutacin se utiliz parn obtener esta expresin. Sin embargo, empleamos los teoremas para transfonnar esta expresin en otra fonna. Por ejemplo. puede obtenerse una suma de productos al "expandir";

F = X , Z +Y' Z + X' Y Z'

x
V
Z

-ex
1::

V'

x + Y'
(X+Y') Z

FI gura 4-11 Expreslon es lgicas para lneas de sena!.


F ,,({X+Y')' Z) -t(X"Y' Zl

X" Y'Z"

212

Capitulo 4

Principios de diserto l6gico combinacional

x z
y '. z

V-1-r+X '

F ", xz + Y'z + x' yz:

X yz'

z--J_

z:

Figura 4-12 Clrcullo ANO-DA dedos niveles.

La nueva expresin corresponde 3 un circuito diferente que realiza la mi sma funcin

lgica. como se ilustra en la fi gul11 4- 12. De manera similar. se "expande la suma" de la expresin original pal11 obtener un producto de sumas:

F = X+ Y) Z)+(X' y . Z')
:: (X + V' + X') (X + V' + V) (X + Y' +Z') (Z + X') (Z + V) (Z + Z')
... I I (X + Y'+ Z' ) (X'+ Z ) (Y + Z) I

"" (X + V'+ Z')(X'+ Z) (V + Z> El cin:uito lgico correspondi",nte se muestm en la figuro 4- 13. Nuestro siguiente ejemplo de anlisis algebraico utiliza un cin:uito con compuenas NAND y NOA. como se muestm en la figurn. 4-14. ESle anlisis es un poco ms complicado que en el ejemplo anterior. porque cada compuerta produce una subellpresin como plementada. no slo una suma o producto simples. Sin embargo. la expresin de salida se simplifica mediante la uplicacin repelida del teorema generaliz.ado de DeMorgan:

Figura 4-13 Circuito DAANO de dos niveles.

" 1rJ..z

14 z: -1..
X '

x + y ' + z'

x' + z

'-

F .,. (X + y ' + 2'). (X' + z) (y + Z)

" v

>

v.z

Secclfl 4.2

Anlisis de circuitos combinacionales

213

w
x
y
W

X '

rN' x')'
((W . x ')' v )' F
I((W ' x')' Yj' (W' -+-+- (w-+-Z)1'

x -+- Y')'

(W' -+-

x -+- Y')'
Fig ur a 4 -14 AnlisIS algebraico de un circuito lgico con como puertas NANO Y NOR.

y'
(W . Z)'

,
F: ((W . X)' Y)' +(W' + X+ Y)' + (W+Z)']' :W. X) ' Y) ' (W' + X+ y ) . (W+Z) : W ' + X) , y). (W' +X + y) . (W+Z)
Con N.s,ante frecuencia. el teorema de DeMorgan se aplica grd.frcomnrJe para simpli. ficar el anJisis algebraico. Recuerde de las figuras 4-3 y 4-4 que las compuenas NANO y NOR tienen cada una dos smbolos equivalentes. Al volver a trazar prudentemente la figura 4-14. hacemos posible la cancelacin de algunos de los in~ durante el anlisis al utilizar el teorema T4 (X')' = XI. como se muestra en la figura 4- 15. Esta manipulacin nos conduce de manera directa a una expresin de salida simplificada:

F : W' +X) Y)(W' +X+Y') (W+Z)


Las figuras 4- 14 y 4- 15 fueron solamente dos maneras diferentes de dibujar el

mismo circuito lgico fisico. Sin embargo, cuando simplificamos una expresin lgica empleando los teoremas del lgebra de conmutacin. obtenemos una expresin correspondiente a un circuito ffsico diferente. Por ejemplo. la expresin simplificada amenor corresponde al circuito de la figura 4-16. el cual es ffsicamente diferente del que aparece en las dos figura s anteriores. Adems, podramos distribuir el producto y la suma de

W ' .. x

F ig u ra 4- 1 5

Anlisis algebraico del circuito anterior despus de sustituir algunos s rmbolos


NANO Y NOA.
y'

,. (W' -+- X) y ). (W' ..


' (W-+-Z)

X .. Y')

214

Capitulo 4

Principios de diseo lgl00 combinacional

w
xv
~

---t..
v

X '

W' -.X
(w' -. Xl' Y

't
z

W+X-.Y'

F '" ((W' .. X)'Y)' (W' + x .. Y, ' (W+ Z)

V'

w.z
FI gura 4 -16 Un circuito diferente para la misma funcin lgica.

la ~xpre s in para obten~r expres ion~s de suma de prodUC IO S y producto de sumas. que corresponderfan 11 dos circuitos adicionales, que son fsicamente diferentes pero realizan la misma funcin lgica. Aunque anteriormente utilizamos expresiones lgicas par.! obtener infonnacitl acero ca de la estructura fTsica de un circuito. esto es algo que no siempre se realiza, Por ejemplo. empleamos las expresiones GrN. X, y , Z) '" W . X ' Y + Y . Z para describir cualquiera de los circuitos en la figura 4- 17. Norma1mentc. la nica forma segura para determinar una estructura de circuito c.~ examinar su diagrama esquemfitico. Sin embargo. para ('ienas ciases restringidas de circuitos. la informacin estructural se infiere de las expresiones lgicas. Por ejemplo, el circuito en (a) se describe sin hacer rererencia al dibujo como "un circuito AND-OR de dos niveles parn W . X ' Y . + y . 1:', mienlra.~ que el circuito en (b) se describe como "un circuito NANO-NANO de dos ni\'tlcs para W . X . Y + Y . z '.
F ig ura 4-17 Los tres circuitos para G(W, X. Y, Z) .. w ' X .y + Y . Z : a) ANO-OR de dos niveles; b) NANO-NANO de dos niveles: el ad hoc.

(.)

w
X

w x Y
G

(b)

w
X

(W ' X'Y)'

G
V
Z

v z

rt(W' X)'

(y . Z)'

(o)

w
X

V'

yz

216

Capitulo 4

Principios de diseoo lgico combinacional

HABILITAR
~R

--AlARMA
~

_________________

,~

PUERTA VENTANA GARAGE

==~=

SEGURO

_.J

F I gura 4-1 9 Circuito de alarma derivado de la expresln lgica.

segura: la casa es segum si todas las entmclas VENTANA, PUERTA YGARAGE son " . Una descripcin de esta clase se: traduce directamenle en expresiones algebraicas:
ALARMA '" PNICO + HABllrTAR . SAliDA' ASEGURAR' ASEGURAR = VENTANA PUERTA GARAGE AlARMA

= PN1CO+HABIUTAR . SAUDA' (VENTANA PUERTA GARAGE)"

n:ul/U.f

rm!iwcil1

Note que utili:L:I.ffiOS d mismo ~todo en el lgebra de conmutacin que en el lgebr.J ordinaria para formular una expresin complicada: definimos una variable auxiliar SEGURO para simplificar la primera ecuacin, desarrollamos una expresin para SEGURO y empleamos lB sustitucin para obtener la expresin final. Dibujarnos fci lmente un circuito utilizando compuertas ANO. OR Y NOT que realizan la expresin fi nal. como se ilustr.J en la figum 4- 19. Un circuilo rralim [''hace realidad"l una expresin si su runcin de salida es igual a esa expresin, y el circuito se conoce como una "alizaci6n de la funcin . Una vez que tenemos una expresin. cualquier expresin. para una funcin lgica. hacemos otms cosas apane deconslruir un circuito di.rectamcnte de la expresin. Podemos manipular la expresin para obtener dif~ntes circuitos. Por ejemplo. la expresin anterior ALARMA se expande para obtener el circuito de suma de pnxluctos cn la figura 4-20. Por otra parte. si el nmero de variables no es demasiado grande. construimos la tabla de verdad de la expresin y aplicamos cunlquiem de los mtodos de sntesis que se aplican a las tablas de verdad. incluyendo los mtodos de suma o producto cannico descritos con anterioridad y los mtodos de minimizacin que se describen ms adelanle.

FI 9 u r a 4-20 Versin para suma de productos del circuito de alarma.


PNICO - - - - - - - - -- ---

SALlR _ _
VENTANA _ _
PUERTA _ _
~,

_ _ ALARMA .. pANICO

- / + HABILITAR SALIR' + HABILITAR SAllR' + HABILITAR SALIR'

. VENTANA' PUERTA' . GARAGE'

GARAGE _ _

Seccin 4.3

Sfntesis de circuito combinacional

217

(b)

(.)

Figura 4-21

Realizaciones alternativas de suma de productos: al ANO-CA ; b) AND-QA con pares inversores extra; el NANO-NANO.
(o)

En general, es ms fcil describir un circuito con palabras. Para esto se utilizan 'conjunciones o conecton:s lgicos y se escriben las correspondientes expresiones lgicas, esto es mejor que escribir una tabla de verdad completa, especialmente si la cantidad de variables es grande. Sin embargo, en ocasiones tenemos que trabajar con descripciones ont.Ies nada precisas de las fu nciones l6gicas, por ejemplo, "La salida ERROR debera ser I si las entrodas ENGRANEARRlBA ENGRANEABAJO y VERIFICAENGRANE son inconsistentes". En esta situacin. el enfoque de la tabla de verdad es mejor porque nos permite determinar la salida que se requiere para eada combinacin de entrada. basndonos en nuestro conocimiento y comprensin del entomo del problema (por ejemplo, los frenos no se aplican a menos que haya reduccin "abajo" del engranaje).

4,3.2 Manipulaciones de circuito


Los ~todos de diseno que describimos hasta ahora hacen uso de compuenas ANO, OR Y NOT. Podemos desear utilizar compuertas NANO y NOR. tambi~n : son ms rpidas que las ANOs y ORs en la mayoria de las tecnologas. Sin embargo, la mayor parte de 1 ::1.$ peBOnas no desarrollan instrocciones lgicas en t~rmin05 de conectores NANO y NOA. Es decir, usted probablemente no diria "no te dart una cita si eres no decente o no adinerado y tambi~n si eres no inteligente o no amable". Seria ms natural decir ''Te dar una cita si eres decente y adinerado, o si eres inteligente y amable". As, dada una expresin lgica "natura]" , necesitamos maneras de trnducirla en otras fonnas. Es posible trnducir cualquier expresin lgica en una expresin de suma de productos equivalente, al simplemente expandirla. Como se mueSlnl en la figura 4-2 1(a). una expresin de esta clase se realiza directamente con compuertas ANO y DA. Los inversores requeridos para las entradas complementadas no se ilustran. Como se muestra en la figura 4-21(b), podemos insenar un par de inversores entre cada salida de compuerta ANO y la correspondiente entrada de compuerta DR en un

2 1B

Capitulo 4

Principios de diseno lgico combinacional

lo)

lb)

w
x
y

x
y

z-----'
Fi gura 4-22 Otro circuito de suma de productos de dos niveles: a) ANO.()R; b) ANOQR con pares de Inversores extra: e) NANO-NANO.
(e)

z
W

x
Y.

circuito ANDOR cirru;to NANO-NANO

circuito ANO-OA de dos niveles. De acuerdo con clteorema T4. estos inversores no tienen efecto sobre: la funcin de salida del circuito. De hecho. dibujamos el segundo il\\'ersor de cada par con su burbuja de inversin en su entmda para proporciona! un recordatorio grfico de que los inversores se cancelan. Sin embargo. si estOS inversores son absorbidos dentro de las compuenas ANO y OR . acabamos con compuenas ANO-NOT en el primer ni vel y con una compuerta NOT-OR en el segundo ni ve l. stOS son precisamente dos sfmbolos diferentes para el mismo tipo de compuena: una compuena NANO. De este modo. un circuito ANOQA de dos niveles se conviene en un circuito NANONANO de dos niveles sencillamente sustituyendo las compuenas.

Figura 4 23
Realizaciones de una expresin de producto de sumas. al CR-ANO; b) ORANO con pares de inversores extra; el NOR-NOR.

lo)

l')

lb)

)-

r-l

Secc::i6n 4.3

s rntesis de circuito combinacional

219

Si cualquier trmino de producto en la expresin de suma de prodUC IO. contiene


apenas una sola literal, enlonces ganaremos o pederemos inve~ en la lnlnSfonnacin de AND-QR a NANO-NANO. Por ejemplo. la figuro 4-22 es un ejemplo doode un inversor en la entrnda W ya no es necesario. pero se debe agregar un inversor a la entrada Z.

Hemos mostrado que cualquier expresin de suma de productos puede realizarse en cualesquiera de dos formas: como un circuito AN[).()R o como un circuito NAND-NAND.
El dual de este e nunciado tambin es cierto: cualquier e xpresin de producto de sumas puede realizarse como un circuito CR-AND o como un circuito NOR-NQR. La figura 4-23 ilustra un ejemplo. C ua lq uier expresin lgica se traduce en una ex presin equivalente de producto de sumas mediante la expansin de la suma, y de ahf que tenga reacircuito OR-AND cirr:uitQ NORNOR

lizaciones de ambos circuitos CR-ANO y NOANOR. La misma clase de manipulaciones se aplica a circuitos lgicos arbitrarios. Por ejemplo. la figur:l 4-24(a) ilustra un circuitoconslruido a panirde compuertas ANO y DA. Despus de agregar pares de im'ersores. obtenemos el circuito en (b), Sin embargo. una de las compuertas, una compuerta ANO de 2 enlradas con una enlrnda simple invertida, no es de un tipo estndar. Podemos utilizar un inversor discreto como se muestro en (c) para obtener un circuito que emplee nicamente tipos estndar de compuertas: NANO. ANO e inversores, En realidad, una mejor maner.a de miliUlr el in\'ersor se muestra en (d); se elimina un nivel de retanlode la compuerta y lacornpuerta inferior se convierte en una NOR en \'Cz de ANO. En la mayorla de las tecnologias lgicas. las compuertas inversoras como NANO y NOR son ms ropidas que las compuertas no inversorns tales como ANO y OA.
F Ig u ra 4-24 Manipulaciones de s fmbolo lgico: al a revilo original; bl transformacin con una compuerta no estndar; el inversor utilizado para eliminar la compuerta no eslndar; dl colocacin del inversor preferido.

,. )

'b)

>
(d)

'o)

220

Capitulo 4

Principios de diseo lgico combinacional

4.3.3 Minimizacin del circuito combinacional


Con frecuencia no es econmico realizar un circuito lgico directamente de la primera expresin lgica que aparezca en su cabeza. Las expresiones de suma y producto cannicos son especialmente costosas debido a que el nmero de posibles minitnninos y maxitnninos (y por tanto compuenas) crece exponencialmente con el nmero de variables. Minimiwmos un circuito combinacional mediante la reduccin del nmero y tamano de las compuenas que son necesarias para construirlo. Los mtodos tradicionaJes de minimizacin de circuitos combinacionales que estudiaremos tienen como punto de panida una tabla de verdad o, de manera equivalente. una lista de minitnninos o una lista de maxitnninos. Si damos una funcin lgica que no est expresada en CSUl fonna, entonces debemos convertirla a unn forma apropiada antes de emplear estos mt:lodos. Por ejemplo. si damos una expresin lgica arbilraria, enlonces la evaluaremos para cada combinacin de entrnda a fin de construir la tabla de verdad. Los mtodos de minimizacin reducen el costo de un circuito de dos niveJes ANO-OA. OR-ANO, NANO-NANO o NOR-NOR de tres manerns: l . Minimizando el nmero de compuenas de primer nivel. 2. Minimizando el nmero de entradas en cada compuerta de primer nivel. 3. Minimi7.ando el nmero de entradas en la compuena de segundo nivel. Esto es en realidad un efecto colmeral de la primera reduccin. Sin embargo. los muxios de minimizacin no consideran el costo de los inversores de entrada; suponen que tanto las versiones verdaderas como las complementadas de lodas las variables de entrnda se encuentran disponibles. Mientrns que ste no siempre es el caso en el diseno ASIC o al nivel de compuerta, es muy apropiado para el diseo basado en PLD: los PLD lienen versiones lanto verdaderns como complementadas de todas las variables de entrada disponibles. "grnlis". La mayorfa de los mtodos de minimizacin se basan en una generalizacin de los teoremas de combinacin. T IOYTl O': trmino de producto determinado V + lrmino de producto determinado V' _ trmino de prodUCIO delerminado (trmino de suma dado + V) . (trmino de suma dado + V') = tmlino de suma dado

minimi::.ar

Es decir. si dos lnninos de producto o suma difieren solamente en el complemento o negacin de una variable. los combinamos en un nico tnnino con una variable menos. De este modo ahomunos una compuerta y la compuerta restame tienen unn entrada menos.

Secct6n 4.3
N3 N3' N2 N2' N N'No NO '

Srntesls de circuito combinacional

221

"",,,,

>ov
~

N3' 'No

>o-

N 3 " N 2" N, 'No'

N3 ' N{' N'No

"
v>O

N3' N2 'N"No

F lg ura 4-25 Re. Jlzaci6n simplificada d. . uma de productos para el detector de nmeros primos de 4 bits,

Es posible aplicar este mtodo algebraico repctidamemc para combinar los minitnninos 1,3,5 Y7 del detector de nmeros primos mostrndo en lu figuro. 4- 18 de la pgina 215:

F
'"

lt.t},N1,N"No(l ,

3, 5, 7, 2,11,13)
+ N J ' ,NZ' ,N,No) + (, N3' ,N2,N,' ' No + NJ ' ,N z' N 1' No) + .. ,
oo ,

'" N J' N2' N 1 'No + NJ ' , N z', N ,' ~ + NJ', NZ, N L ' ,NO+ NJ', N Z' Nl, No + ...
( NJ' N2" N l" ~

:: NJ'NZ "No+ N3', Nz, No+


::: N3 ' ,No +
oo .

El circuito resultante se ilustra en la figura 4-25; tiene tres compuenas menos y una de las compuenas restantes tiene dos entradas menos, Si hubiramos tl1lbajado un poco ms en la expresin anterior. habrfamos ahormdo un par ms de entradas de compuerta de primer nivel. aunque ninguna compuerta. Es dificil hallar tnninos que se combinen en una mezcolanza de sfmbolos algebraicos, En la subscccin siguiente comenzaremos a explorar un mtodo de minimizacin que es ms adecuado para el consumo humano, Nuestro punto de partida ser el equivalente grfico de unu I!Iblu de veniad.
4 .3.4 Mapas de Karnaugh

Un mapa de Kamaugh es una representacin grfica de una labia de verdad de la funcin lgica. La fi gura 4-26 muestra mapas de Kamaugh para funciones lgicas de 2, 3 Y4 variables. El mapa para una funcin lgica de n entradas es un arreglo con 2" celdas, una por cada posible combinacin de entrada o minitnnino. Los renglones y columnas de un mapa de Kamaugh se etiquetan de tal modo que la combinacin de entrada para cualquier celda se detennina fcilmente de los encabezados de rengln y columna para esa celda. El pequeno nmero dentro de cada celda es el correspondiente nmero de minitrmino en la tabla de verdad. suponiendo que las entradas de la tabla de verdad se encuentran etiquetadas alfabticamente de izquierda a derecha (por ejemplo. X. Y. Z) y los renglones estn numerudos en orden de conteo binario, como

trnlpo dt! Kamaush

222

Captulo 4 Principios de diseflo lgico combinacional

, , v '"" o , , ]v
I I

z ""'- ,00 , 01 11 " o


I

xV

CI--'''--..."

yz "'" ,
00

wx

w
01 11 10

00

, , ,
v

"

..l...l.

Jz
(e)

", " " " " , ,"


x

, " , ,

"
z

l')

lb)

FI 9 u r a 4-26 Mapas de Karnaugh: 8) de 2 variables; b) de 3 variables; e) de 4 variables.

todos los ejemplos en este texto. Por ejemplo. la celda 13 en el mapa de 4 variables corresponde al rengln de la tabla de verdad en el que W X y Z = 110 l. Cuando dibujamos el mapa de Kamaugh parn una funcin dada. cada celda del mnpa contiene la informacin del rengln numerado de la tabla de verd:ad de la funci n: un Osi la funcin es Opara esa combinacin de entrada. o un 1 de Olro modo. En eSle lexto ulilizamos dos etiquelados redundantes parn renglones y columnas del mapa. Por ejemplo. considere el mapa de 4 variables en la figura 4-26(c). Las columnas se cliqucl:an con las cuatro posibles combinaciones de W y X. W X = OO. 01 . II Y 10.
De mnnera semejunte. 1 05 renglones se etiqueum con las eOlllbinaciones Y Z. Estas eti-

quetas nos proporcionan toda la informacin que necesitamos. Sin embargo. tambin utilizamos corchetes (parntesis cuadrados) para asociar cuatro rcgiones del mapa con las cuatro variables. Cada regin entre corchetes es la parte del mapa en la que la variable indicada es 1. Qbvinmente, los corchetes transmiten la misma informacin que es dada por las etiquetas de rengln y columna. Cuando dibujamos un mapa a mano. es mucho ms fcil dibujar los corchetes que escri bir todas las etiquetas. Sin embargo. conservamos las etiquctas en los mapas de Kamaugh del texto como una ayuda adicional para el aprendizaje. En cualquier caso. debe estar seguro de etiquetar los renglones y columnas en el orden adecuado para mantener la correspondencia entre las celdas del mapa y los nmeros de rengln de 1 11 tllbla de verdad mostrada en la figuro 4-26. P'.tra representar una funcin lgica sobre un mapa de Kamaugh, simplemente copia. mos los unos y los ceros de la tabla de verdad o equivalente a las correspondientes celdas del mapa. Las fi guras 4-27(a) y (b) muestron 1 11 labia de verdad y el mapa de Kamaugh para una funcin lgica que analizamos (deslrozamos?) en 111 seccin 4-2. Desde ahora. reduciremos el desorden en los mapas al copiar solamente los unos o los ceros. no ambos.

4.3.5 Minimizacin de sumas o productos


En este momento, usted debe estar sorprendido por la "extraa" ordenacin de los nmeros

de rengln y columna en un mapa de Kamaugh. Existe una muy imponante rozn para esta ordenacin: cada celda corresponde a una combinacin de entrada que difiere de caita una de sus \'ccinas inmediatamente adyacentes en slo una variable. Por ejemplo. las celdas 5 y 13 en el mapa de 4 variables difieren solamente en el valor de W. En los

Seccin 4.3

Slntesis de circuito combinacional

223

o o o o o
O O O O O O

l' )

o , , , , , , , , , , , , , , , ,
O O O O

z "- ,
lb)

xv

,
01 11

x
'0

X' y z:

O O

,, , O O , , , , , O , ,, ]z , ,
00

:Zv z o ,
lo)

,
00

Jz
y' . z

F 19 u ra 4 27 F ", Lx.y.z(1 .2.S.7): a) labia de verdad; b) mapa de Karnaugh; e) combinacin de celdas 1 adyacentes.

mapas dc 3 y 4 variables. las celdas correspondientes en los bordes izquierdo/derecho y superiorlinferior son los vecinos menos obvios; por ejemplo. las celdas 12 y 14 en el mapa de 4 variables son adyacentes porque difieren solamente en el valor de Y. Cada combinacin de entrada con un " 1" en la tabla de verdad corresponde a un minit&mino en la suma cannica de la funcin lgica. Puesto que Jos pares de celdas "'" adyacentes en el mapa de Kamaugh tienen minit~nninos que difieren en slo una variable. los pares de min il~nninos se combinan en un solo tnnino de producto utilizando la generalizacin del teQrema Tl O. tnnino . Y + tnnino . Y':::z tnnino. De este modo. podemos emplear un mapa de Kamaugh para simplificar la suma cannica de una funcin lgica. Por ejemplo. considere las celdas:5 y 7 en la figura 4-27(b) y su contribucin a la suma cannica paro esta funcin:
F = ... ... X . y '. Z ... X . Y . Z

= .. . '" (X Z). Y '... (X Z). Y


= ... ... XZ

Recordando la adyacencia de los extremos. vemos que las celdas 1 y 5 en la figura 4-27(b) tambin son adyacentes y pueden combinarse:

F ",X' Y' Z +X Y ' Z ... ...

_ x ' (Y'

. ZI ...

x . (Y ' Z) +

...

",Y' Z+ ...
En general. una funcin lgica se simplifica al combinar pares de celdas I adyacentes (minitnninos) siempre que sea posible y escribir una suma de tnninos de producto que cubran todas las celdas l . La figura 4-27(c) muestra el resultado de nueStra funcin lgica de ejemplo. Enccrrumos en un crculo un par de unos para indicar que los minilnninos correspondienles esln combinados en un solo ~rmino de producto. El circuito correspondiente AND-DR se ilustra en la figura 4-28. En muchas funciones lgicas el procedimiento de combinacin de celdas se extiende a combinar ms de dos celdas I en un solo tnnino de producto. Por ejemplo.

224

CapflUIo 4 Principios de disel"lo lgico combinacional

x v

x z

-{>o- v
"
x'

y '. Z

-1
-L

)F

Figura 428 Circuito ANOOA minimizado.

x' yz:
z'

considere la suma cannica para la funcin lgica F = 1:)(.y.z{O, 1. 4, 5, 6). Utilizando las manipulaciones algebraicas de los ejemplos amenores de manem item.tiva paid combinar cuatro de los cinco minit~nninos , se tiene:

F _ X' Y' Z' +X' y ' Z+X Y' Z'+ X Y' Z + X Y Z'
_ X' y ) . Z' + (X' . Y') ZI + I(X . Y') . Z' + (X Y') Z] + X Y . Z'

_ X' Y' +X Y' +X Y Z'


= (X' ,(Y)+X ' (y)I +X , Y , Z'
CE

y '+ X Y Z'

En general, 2/ celdas 1 pueden ser combinadas para fonnar un t~ nnino de producto conteniendo n - 1 literales, donde n es el nmero de variables en la funcin.

Una regla matemtica precisa determina cmo las celdas I se combinan y la fonna del correspondiente t~rmino de producto: Un conjunto de 2' celdas 1 se combina si existen i variables de la funcin lgica que tomen todas las 2' posibles combinaciones dentro de ese conjunto, mientras que las restante" - i variables tienen el mismo valor en todo ese conjunto. El t&mino de producto correspondiente tieoe n - i literales, donde una variable est complementada si aparece como Oen !odas las celdas 1, Yno est complementada si aparece como l .
conj wllos ntCfangu/antl

de IUIOS

Grficamente, esta regla quiere decir que podemos encemr en un crculo conjuntos rtI1ngufants de '1!' Is. literalmente asf como tambi~n extendiendo figurativamente la definicin de rectangular para explicar la adyacencia en los extremos del mapa. Podemos determi nar las literales de los correspondientes trminos de producto directamente del mapa: para cada variable lo hacemos de la manera siguiente: Si un cfrculo cubre solamente las reas del mapa donde la variable es O . entonces la variable est complementada en ell~nnino de produclO. Si un crculo cubre solamente las reas del mapa donde la variable es 1, entonces la variable no est complementada en el lnnino de prodUCIO. Si un circulo cubre tamo reas del mapa donde la variable es Ocomo donde la variable es l. entonces la variable no aparece en ellrmino de producto.

Seccin 4.3

Srntesis de circuito combinacional

225

xy
z"",OO 01
(.)

ro--''-.,0
11

,'1' ' 1 1 1 , , , , 1
1 1
o o

l.

. z'

]z

(b)

Figura 4-29 F = :Ex.v.z{O.1.4,S.6):


a) mapa de Karnaugh inicial; bl mapa de Karnaugh con trminos de producto en clrculos; el circuito ANDIOA.

(o)

Una expresin de suma de productos para una funcin debe contener tnninos de producto (conjuntos encerrados en crculos de celdas 1) que cubran tooos los unos y ninguno de los ceros en el mapa. El mapa de Karnaugh para nuestro ejemplo ms reciente. F = I x.y:zj.O. 1.4.5.6). se muestra en la figura 4-29(a) y (b). Hemos encerrado en un ch'culo un conjunto de cuatro unos. correspondiemts al trmino de producto Y'. y un conjunto de dos unos correspon diemes aJ trmino de producto X . Z'. Note que el segundo trmino de producto tiene slo una literal menos que el trmino de producto correspondiente en nuestra solucin algebraica (X . Y . Z'). Al encerrar en un cfl-culo el conjunto ms grande posible de unos conteniendo la celda 6. hemos hallado una realizacin menos costosa de la funcin lgica. puesto que una compuena ANO de 2 entradas debe cosw menos que una de 3 emradas. El hecho de que dos diferentes trminos de producto ahora cubran la misma celda I (4) no afecta la funcin lgica. PUesto que para la suma lgica 1+ I :::: l. no 2! El correspondieme circuito ANDIOR de dos niveles se muestra en (c). Como otro ejemplo. el circuito detector de nmeros primos que presentamos en la figura 4-18 de la pgina 215 puede ser minimizado como se ilustra en la figura 4-30. En este puma. necesitamos algunas definiciones ms para aclarar lo que estamos haciendo: Una suma m(nima de una funcin lgica F(X ... ,X,,) es una expresin de suma de productos para F de tal modo que ningunaexpt'Csin de suma de productos para F tiene menos trminos de producto y cualquier expresin de suma de productos con el mismo nmero de trminos de producto tiene ar menos tantas literales.
E< decir. la suma mnima tiene el menor nmero posible de trminos de producto (compuertas de primer nivel y entradas de compuerta de segundo nivel) y. dentro de esta Iimilallle. el menor nmero de literales posible (entradas de compuerta de primer nh'el). As. entre nuestros tres circuitos detectores de nmeros primos. solamente el de la figura

SWIUI

m(ninw

4-30 en la siguiente pgina realiza una suma mfnima. La siguiente definicin habla precisrunc:nte de Jo que la palabra "impl'ca" significa cuando se habla de runciones lgicas: Una funcin lgica P(XL ...X,,) implica una funcin lgica F(X .. ... X,,) si para loda combinacin de entrada tal que P :::: l . entonces F :: 1 tambin.
implicQCil!

226

CapItulo 4

Principios de diseno lgico combinacional


(b)
o
o

(o)

11

lO

.,
No

"

" , 1 1 " 1 , , "1 1 1 " ,

"

No

N ,
F It.::!.N2.N "Mil ,2,3 ,5,7, 11 ,13)

FI gura 4-3 O Detector de nmeros primos: a) mapa de Karnaugh inicial; b) trminos de prodUCIO en clrculOs: e) circuito minimizado.

"rfuyt' cubrr
implica"',. primo

Es decir, si P implica F, enlonces F es I par. loda combinacin de enlr:lda en que P es I y tal vez algo ms. Podemos escribir la abrevialuro P => F. Tambin decimos que " F

incluye P" . o que "F cubre a P".

El implicame primo de una fu ncin lgica F(XI.. .. X~) es un tnnino de prodUCiD nonnal P(XI ... ,X,,) que implica F, de tal modo que si cualquier variable es removida de p. entonces el tnnino de producto resultante no implica F.

En tnninos de un mapa de Kamaugh. un implicante primo de F es un conjunto ence-

rrado en crculo de celdas I que satisfacen nuestra regla de combinacin. de tal suene que si intentamos hacerlo ms grande (cubriendo dos veces el nmero de celdas). cubre uno o ms ceros. AhorJ. viene la pane ms importnnte, un teorema que limit.a cunto trobajo debemos hacer para hl).llar una suma mfnima para una funcin lgica:
Teorema (Id mplicon/e primo Una suma mnima es una suma de implicantes primos.

Es decir, para enoontrJ.r una suma mnima, no necesitamos considerar ningun lmlino de producto que no sea implicante primo. Este teorema es fcilmente demostrable por

Secci'n 4.3

Srntesls de circuito combinacional

227

(. )

yA ,00
00
01
11

wx

w
01 11 10

(b)

"1 , , 1 1 " , , ,, -1 z

wx

xz

10

,
,

1 " .

,,-1

'...L

F - Iw,x,V.z{5,7.12.13,14,151

F _ X,Z +

w, x

F I gu ra 4 -3 1 F . Iw,x,v.z(5, 7.12,13. 14,15): (a) mapa de Karnavgh: b) implicanles

primos. contradiccin. Supongamos que un tnnino de producto P en una suma ;'mnima" ti/} es un implicante primo. Entonces de acuerdo a la definicin de implicante primo. si P no es uno. es posible remover alguna literal de P para obtener un nuevo t~rminode producto p. que todava implique F. Si reemplazamos P con p. en la presumible suma ''mnima'', la suma resultante an es igual a F pero tiene una literal menos. Por lo lanlo. la presumible suma "mfnima" no era mfnima despu& de todo. Otro ejemplo de minimizacin. esta vez una funcin de 4 variables. se muestra en la figura 4-3) . Hay precisamente dos implicantes primos. y es bastante obvio que ambos deben ser incluidos en la suma mnima a fin de cubrir todas las celdas 1 en el mapa. No dibujamos el diagrama lgico par1I este ejemplo porque usted debe saber cmo hacerlo por usled mismo desde ahora. La suma de todos los impLicantes primos de una funcin lgica se denomina la suma completa. Aunque la suma complela es siempre una fomw legflima de realizar una funcin lgica, no siempre es mnima. Porejemplo. considere la funcin lgica mostradnen la figura 4-32. Tiene cinco implicanles primos. pero la suma mfnima incluye solamente
F Ig u ra 4-32 F = Iw.x.y.z(I.3.4.5,9. 11 , 12. 13, 14, 1SI: (a) mapa de Kamaugh;
b) Implicanles primos y celdas 1 distinguidas.
(.)

sumo comple/a

v""
00
01

wx

,
01 11

w
10
(b)

w
::::- __ xv
~- w z

,.
11

1 " , , 1 1 1 " 1 , , 1 1 "1 " , .

00

Y" Z

" ,

_ - ,;: ,~=~,...::_-_
x
F . X Y' + X" Z +

X' Z w X

F = Iw.x. '(.z< 1,3.4.5,9,11,12,13,14.15)

w x

228

capftulo 4

Principios de diseo lgico combinacional

(.,

y~
()()

wx

,
00
01

w 11 ,o

01
y

"
10
Fs

" , , 1 " 1 , ,1 "1 ,1 "1 1 1 '" , ,


1

!.w.x. v.z(2.3 .4 .5.6 .7 .11 .13.15)


b) implicantes primos y celdas 1 distinguidas.

Fi gura 4 -33 F : Iw.x. v,2(2.3.4, 5.6. 7, 11 ,13,15): (a) mapa de Karnaugh:


tres de ellos. As, cmo podemos determinnr sistemticamente cules implicantes primos incluir y cules dejar fuera? Dos definiciones ms son nt:cesnrias:
u/da I djJtjnguida

implicatlte primo euncitll

Una ct'ldlJ 1 di.Jlinguida de una funcin lgica es una combinacin de entrada que es cubier1a por solamente un implicante primo. Un implicanu primo ~s~ncial de una fuocin lgica es un implicante primo que cubre una o ms celdas I distinguidas. Pue...to que un implicante primo esencial es el nico implicante primo que cubre algunn celda l. delH ser incluido en toda suma mnima para la funcin lgica. De este modo, el primer paso en el proceso de seleccin del implicante primo es simple: identificamos celdas I distinguidas y los correspondientes implicantes primos e incluimos los implicantes primos esenciales en lo suma mrnima. Entonces solamente necesitamos determinnr cmo cubrir las celdas 1, si hay, que 00 estn cubiertas por los implican tes primos esenciales. En el ejemplo de la figura 4-32, las tres celdas I distinguidas se encuentran sombreadas, y los correspondientes implican tes primos esenciales se encuentran enccrrndos en un crculo con lfneas ms gruesas. Todas las celdas I en este ejemplo estn cubierta.. por implicontes primos esenciales. de manera que no necesitamos ir ms all. Del mismo modo, la figura 4-33 muestra un ejemplo donde todos los implicantes primos son esenciales, y asf todos se incluyen en la suma mnima. Una funcin lgica en la que no todas las celdas I se encuentran cubienas por implicantes primos esenciales se ilustra en la figura 4 34. Al remover los implicantes primos esenciales y las celdas I que cubren, obtenemos un mapa reducido con solamente una sola celda l y 2 implicantes primos que la cubren. La eleccin en este caso es simple: hacemos uso del trmino de producto W' . Z porque tiene menos entradas y por consiguiente menor costo. Pam casos ms complejos, necesitamos una definicin ms:

Dados dos implicantes primos P y Q en un mupa reducido, se dice que P eclipsa a Q (lo cual escribimos como P ... Q) si P cubre por lo menos todas las celdas I cubiertas porQ.

Si P no cuesta ms que Q y eclipsa a Q. entonces al eliminar Q de la consideracin no nos impide hallnr una suma mfnima: es decir. P es al menos tan bueno como Q.

Seccin 4.3

Sfntesis ele circuito combinacional

229

l')

vA ,00
00
01
11

wx

,
01 11

w
10

(b )

w
v
lO

lo)

v
lO

1 " 1 , , , ,11 , 11 "1 " 1 "1

vA

wx
00
01

,
11

.J:
1 "

, lO -

w z
z

,
X F . w v ' ... W X' ... W X y ... W ' Z

x v z

X
F

Iw.x.y.z(o,1.2.3 ,4 .5 .7,14,15)

Fi gura 434 F :: Iw,x,y,Z<o. 1,2,3,4. S, 7, 14,15): (a) mapa de Katnaugh; b) implicantes primos y celdas 1 distinguidas; el mapa reducido despus de la eliminacin de Implican tes primos esenciales y celdas 1 cubiertas.

Un ejemplo de eclipsamiento se i1usln en la figura 4-35. Despus de eliminar los implicantes primos esenciales nos quedamos con dos celdas l. cada una de las cuales se encuenltll cubiena por dos implicantcs primos. Sin embargo. X . Y . Z edipsa los otros dos implicantes primos, los cuales por consiguiente se eliminan o remueven de nuestra consideracin. Las dos celdas 1 son cubienas entonces solamente por X . Y . Z. el cual es un imp/jcant~ primo ~$~nciaf u ClllIJario que debe ineluirse en la suma mnima. La figura 4 36 muestra un caso ms diffcil : una funcin lgica sin implicames pri -

imp/icunlt primQ t st"cial stcundario

mos esenciales. Por ensayo y error encomrnmos dos difcremes sumas mfnimas para esln
funcin . Tambin podemos enfocar el problema sistemticamente utilizando el mtooo de ramificacin . Comenzando con cualquier celda 1, arbitrnriameme seleccionamos uno de los implicantes primos que la cubre. y lo incluimos como si fuero esencial. Esto simplifica
F I gura 4 35 F '"' I:w.x. y.z{2.6,7,9,13,15): al mapa de Karnaugh; b) Implicantes primos y celdas 1 distinguidas; el mapa reducido despus de la eliminacin de Imprlcanles primos esenciales y celdas 1 cubiertas.

m' todo de ramificacin

(. )

v~

wx

,
00
01 11

w
lO

lb)

00 " , , -1 01 " ,,1-1 , , 11 "

wx v z', rOO~,!0cl..c121;'~0

(o)

v~
00
01

wx
00
01

,
11

w
lO

,
w X ' Z
Z

w v z

, 10 1 1 ,
1

z
v

Z
11

" ,

xvz

X
F .. Iw.x. y .z(2.6. 7.9.13.15)

w y z:

,
X F . W ' Y" Z ... WyZ ... X ' v , Z

230

Capitulo 4

Principios de diseo lgico combinacional

WX

ro

VZ " " 00
(o)

01 , " 00 , 1 01 1 1 " , , " , 1 1 "1

--"~ 11 10
(b)

z
v

" -'x

"

x
W WX W
o o

vz",,'
00
01
V

WX

00

01

"

10
X' V' Z

'd'

00 vz"00
01

01

"

10

Wy' Z

1
Z

"

10
o

........ WY Z

"

10
o o

W 'X"Z
X

'"""- W ' X' Z


X

X'Y'Z

F " W ' X ' Z + W ' V ' Z + X" V" Z

F '" X ' V ' Z + W'X" Z + W'V" Z

F 19 u ra 4-36 F = L,y,x,y.z{1 ,5,7,9, 11,15): al mapa de Kamaugh; b) implicantes primos; el una suma mlnlma; d) otra suma mlnima.

el problema restante. el cual completamos de la fonna habitual para encontrar una suma mlnima tentativa. Repetimos este proceso comenzando con todos los otros implicantes

primos que cubren la celda I de inido. generando una diferente tentativa de suma minimn desde cada punto de partida. Es posible que nos atoremos con esto en el camino y tengamosquc aplicar el mtodode ramificacin ~ manern recursiva... Finalmente, examinamos todas las sumas mlnimas tentativas que genernmos de esta forma y seleccionamos una que verdaderamente sea mfnima .

4.3.6 Simplificacin de productos de sumas


Aplicando el principio de dualidad. minimizamos las expresiones de productos de sumas al examinar los ceros en un mapa de Kamaugh. Cada O en el mapa corresponde a un maxitrmino en el producto cannico de la funci n lgica. El proceso entero de la subscin anterior se reformula de una manera dual. incluyendo las reglas para escribir tnninos de suma correspondientes a los conjuntos en crculos de ceros. a fin de encontrar un producto m(nimQ. Afortunadamente, una vez que sabemos cmo ha.llar suma.~ minimas. existe una manen ms fcil de encontrar el producto rnfnimo para una funcin lgica dada F. El primer paso es complementar F paro obtener F'. Suponiendo que F esti expresada como

producto mf"imo

Seccin 4.3

Srnlesis de circuito combinacional

23 1

una lista de minitnninos o una tabla de verdad. la complementaci6n es muy fcil: los unos de F' son precisamente los ceros de F. A continuacin. encontramos unn suma mfnima para F' utili7.l1ndo el mtodo de la subsecci6n anterior. Finalmente. complementamos el resultado empleando el teorema generalizado de DeMorgan. que produce un producto mnimo para (F )' ::: F. (Adviena que si simplementc "expandimos" la expresi6n de suma mnima para la funcin original. la expresin resultante del producto de sumas no es necesariamente mnima; por ejemplo. vea el ejercicio 4.61 .) En general. para hallar la realizacin de dos niveles de ms bajo costo para una funcin lgica. tenemos que encontrar tanto una suma mfnima como un producto mfni mo y compararlo.~. Si una suma mnima paro una funcin lgica tiene muchos tnninos. entonces un producto mfnimo para la misma funcin puede tener menos tnninos. Como ejemplo trivial de este trueque, considere una funcin OR de 4 entradas: F '" (W) + (X) + (Y) + (2) (una suma de cuatro tnninos de producto triviales)

- eN + X + Y + Z) (un producto de un tnnino de suma)


Para un ejemplo no trivial . se le invita a encontrar el producto mfnimo paro la funcin que minimizamos en la figura 4-33 de la pgina 228; tiene apenas dos tnninos de suma. La situacin opuesta en ocasiones tambin es cierta. como se ilustra de manera trivial mediante una AND de 4 entradas: F _ (W) . (X) . (y) .(Z) (un producto de cuatro trminos de suma triviales) '" (W X . Y . Z) (una suma de un trmino de producto) Un ejemplo no trivial con un producto de sumas de mayor costo es la funcin en la IigurJ. 4 29 de la pgina 225. Para algunas fu nciones lgicas. ambas formas mfnimas son igualmente costosas. Por ejemplo. considere una funcin "OR exclusiva" de 3 entr:ldas: ambas expresiones mfnimas tienen cuatro trminos y cada tnnino tiene lIeS literales:
F ::: Ix.y.z(1 .2.4.7)

- (X' Y' Z)+ (X' y . Z') + (X Y' Z') + (X y Z) '" (X + Y + Z) . (X + Y' + Z') (X' + Y +Z') (X' +Y' + Z)

Todava. en 13 mayora de los casos. una forma o la otra dar mejores resultados. Examinar ambas formas es especialmente til en los disenos basados en PLD.

Mr

232

Captulo 4

Principios de diseo lgico combinacional

,.)
", , , , 01 , " , ,!, , 11 , " " , ~ ", , " " '--,, ,
F . tm,H2.N,~I.2 ,3,5, 7) + d( IO, 11 ,12, 13,1 4, 15}

lb)

N .
N,

F ..

N i' No + N l ' N,

FI gura 4-37 Detector de dfgitos BCD primos: al mapa de Karnaugh Inicial; b) mapa de Karnaugh con ImpUcan!es prlmos '1 celdas 1 distinguidas.

*4.3.7 Combinaciones de entrada "sin importancia" En ocasiones la especificacin de un circuito combinacional es de lal modo que su salida
no importa pam cicrtas combinnciones de entrnda. dcnominooas sill importancia. EsIO suele ser verdadero debido a que las salidas en realidad no importnn cuando se presentan eSlas combinaciones de entmda, o porque estas combinaciones de entrada nunca se presentan durante el funcionamienlo normal. Por ejemplo. supongamos que queremos construir un detector de nmeros primos cuya entrada de 4 bits N = N)N2N,NOsea siempre un dgito BCD: enlonces los minitrminos 10-15 no deben presentarse nunca. Una funcin tic detector de drgitos primos BCD puede por consiguiente escribirse como sigue: l.NI.N( 1.2.3.5.7) + d( 10. 11. 12. 13, 14.15) F = INJ.N
conjll/110 d

La lista d( ... ) especifica las combinaciones de entrnda sin importancia l para la funcin , tambin conocidas como el cOlljlmtod. Aqu. F debe ser I para combinaciones de enlrada en el conjunto de iniciacin ( 1, 2. 3. 5, 7). F puede tener cualquier valor para las enlradas en el conjunto d (10. 11. 12. 13. 14. 15). YF debe ser Opara todas las otras combinaciones de entmdll (en el conjunto O). La figura 4-37 mueslra. cmo hallar una rcaJizacin de suma de productos mnima para el detector de dgitos BCD primos. incluyendo aquel los sin importancia, Las d en el mapa den()(1In las combinaciones de entrada sin imponancia. Modificamos el procedimiento para encerrar en drculos conjuntos de unos (implieantes primos) como sigue:

Permita que las d esttn incluidas cuando se encierren en crculos conjuntos de unos. para hacer conjuntos tan grandes como sea posible. Esto reduce el nmero de variables en los implicantes primos correspondientes. Dos de esos implicantes primos (N2 No Y N2' . Nt ) aparecen en el ejemplo. No encierre en drculos ningn conjunto que contenga solamente las d. Incluir el I ~ rmino de producto correspondiente en la funcin il\CrementaJa de ronno innecesaria su costo. Dos de tales trminos de producto (NJ . N2 YNJ . N,).se. encuentr .IO encerrados en crculos en el ejemplo. Slo un recordatorio: comoescostumbre. no encierre en cfrculos ningunode losceros.
" En este libro. las secciones opcionales estn mareadas con un asterisco.
IDeI ingl~s dontcure. N. del T.

Seccin 4.3

Sfntesis de circuito combinacional

233

El resto del procedimiento es el mismo. En panicular. buscamos celdas I distinguidas y 110 celdas d distinguidas. e incluimos solamente los com:spondientes implicanles primos esenciales y cualquier otro que sea necesario para cubrir lodos los unos en el mapa. En la figura 4-37. los dos implican tes primos esenciales son suficientes para cubrir todos los unos en el mapa. Dos de los d tambin son cubieJ1os. de modo que F ser 1 para las combinaciones de entrada sin imponancia 10 y 11 . YO para las O lras sin importancia. Algunos HDL. incluyendo ABEL. proporcionan los medios para que el diseador especifique las entradas sin imponancia, y el programa de minimizacin lgica toma ~tos en cuenta cuando calcula una suma mrnima,

*4.3.8 Minimizacin de salida mltiple


La mayora de los circuitos lgicos combinacionales prcticos req uieren de ms de una salida. Siempre podemos manejar un circuito con n salidas como n problemas de disei'!o

independientes de salida simple. Sin embargo. al hacerlo asf. perdemos algunas oportunidades de optimizacin. Por ejemplo. considere las dos siguientes funci ones lgicas:

1:x.y.z<3.6.7)

G - 1:x.y.z<0.1.3)
La fi gura 4-38 ilustra el disei'! o de F YG como dos funciones independientes de salida simple. Sin embargo. oon1O se muestro en la figura 4-39. tambin podemos hallar un parde expresiones de suma de productos que comparten un tnnino de producto. de tal modo

que el circuito resultante liene una compuerta menos que nuestro diseilo original,

FI gura 4-38 Tratamiento de un diS8llo ele 2 salidas como dos disel\os independientes de salida simple: al mapas de Karnaugh; b) circuito "mlnimo",

(.)
00 01

,
11

X
la

,
_ Xy
X

]z
yz
y

y-

F_X V+ V'Z
Xy

---J--;:==== ---. z-.+-===


y' X'

(b)

XY

yz

z"-...
X'

,
00
01

o
1

"
y

X' , V' G _ X'V'+ X Z X" Z

10

] Z " X Z

G " X' V + X' , Z

234

Capitulo 4 Principios de diseflo lgico combinacional

(a)

XY

x
00 01 11

z,""
1

10

O-+.
] Z
(b)

X' y . Z

v x
00 01 11

F . xy + x'Yz

x v
F . X Y . X' , y , z x' y z

z '""
X' Y'

xv

,
10

v-

zX'

X' y z

-t

X' Y'

'-1

G " X' Y' +X' Y Z

G .. X" Y'

+ X'yz
4 ~39

F Igura

Minimizacin de salida mhiple para un circuito de 2 salidas: a) mapas minimizados incluyendo un trmino compartido; b) circuito de salida mltiple mlnimo.

("ncilm dt produ(to m

implir:ulIl~ primo de s(J/idu

m!illiple

Cunndo diseamos circuitos combinacionales de salida mltiple utilizando compuenas discretas. como en un ASIC. el comp:mir trminos de producto obviamente reduce el tamailo y costo del circuilO. Adems. 1 m PLD contienen mltiples,copias de la estructum de suma de productos que hemos estado aprendiendo cmo minimizar. uno por salida. algunos PLD permiten que fnni nas de producto se compartan entre salidas mltiples. De este modo, las ideas presentodas en esta subseccin se emplean en muchos programas de minimizacin lgica. Probablemente usted haya "echado un ojo" a los mapas de Kurnaugh para F y G en In figura 4-39 y haya descubieno la solucin mfnima. Sin embargo. los circuitos ms grandes se mini~izan solamente con un algoritmo formal de minimizacin de salida mltiple. Daremos una idea geneml de las ideas de un algoritmo de esta clase aqu: los detalles se encuentron en la seccin de Referencias. La clave pam el xito de la minimizacin de salida mltiple de un conjunto de 11 funciones es considerar no solamente las n func iones de salida simple originales. sino tambin las "funciones prod UCIO". Una/llnci'l de prodUCID m de un conjunto de n funciones es el producto de m de las funciones. donde 2 S m S n. Existen 2" - n - I de esas fu nciones. AfonUntldamente. /1 = 2 cn nuestro ejemplo y tencmos solamente una funcin producto. f. G. a considernr. los mapas de Kurnaugh para F. G y F . G se muestran en la figura 4-40; en general. el mapa para una funcin de producto m se obtiene al unir los mapas de sus In componentes con ANO. Un implican/e primo de salida ml/lipl~ de un conjunto de n funciones es un implicante primo de una de las n funci ones o de una de las funciones producto. El primer paso

Seccin 4.3

Slnlesls de circuito combinacional

235

(o)

i--. 00
O

XV

,
01

(o)

"
v

10

X V ]z
(b)

XV z"- 00
O

X
01

,
] Z

"
V

10

vz

F . X Y+ .. .

xv z"- 00
O

,
01

"
V

10

X" Y ' Z

F .. X Y.X V Z

i--.
O

Xv
00

,
01

,
X' v Z

"
v

10

xv z"- 00
O

X
01

X' v'

FG

"
V

10

]z
X'

] Z

X" V'Z

G _ X' Y' ...

G _ X' V' .X' V Z

F i gura 4-40 Mapas de Kamaugh para un conJunto de dos fundarles: al mapas para F y G; b) mapa de producto 2 para F . G; el mapas reducidos para F y G despus de la eliminacin de los implicanles primos esenciales y cel das 1 cubiertas.

en I minimizacin de salida mltiple es encontrar todos los implicantes primos de salida mltiple. Cada implicante primo de una funcin de producto m es un posible tnnino a incluir en las correspondientes salidas m del circuito. Si intentramos minimi7.llr un conjunto de 8 funciones. teodrfamos que hallar los implicantes primos para 2 8 - 8 - I :: 247 funciones de producto adems de para las 8 funciones dadas. Obviamente. la minimizacin de salida mhiple no es para los timoratos! Una vez que hemos hallado los implican les primos de salida mltiple, intentemos simplificar el problema identificando los que son esenciales. Una celdo I distin8uida de una funcin F particular de salida simple es una celda I que est cubiena exactrunenle por implicante primo de F o de las Cunciones de producto que involucran F. Las celdas I dilitin8uida.~ en la ligura 4-4O(a) se encuentran sombreadas. U n impllcclllte primQ esencial de una funcin de salida simple particular es aquella que contiene una celda I distinguida. Como en I minimizacin de salida simple. los implicnntes primos esenciales deben incluirse en una solucin de mfnimo costo. Solamente las celdas I que no estn cubiertas por implicantt.'I primos esenciales se consideran en el resto del algoritmo. El paso final es seleccionar un conjunto mnimo de implicantes primos para cubrir las celdas I restantes. En este paso debemos considerar lodas las n funciones de manera simultnea. incluyendo la posibilidad de compartir; los detalles de este procedimiento se discuten en las ReCerencias. En el ejemplo de la figura 4-4O(c). vemos que existe un tnnino de producto simple compartido que cubre la celda t restante tanto en F como en G.

celda I distinguida

implican/e primo .:st:nd al

236

Capitulo 4

Principios de

dise~o

lgico combinacional

*4.4 Mtodos de minimizacin programados


Obviamente. la minimizacin lgica es un proceso muy complicado. En las apl icaciones de diseo lgico real usted probablemente encontrar dos clases de problemas de mini mizacin: funciones de unas cuantas variables que se examinan utilizando los mtodos de la seccin anterior. y funciones de salida mltiple ms complejas que son imposibles sin el uso de un progrnnlll de minimizacin. Sabemos que la minimizacin se efecta visualmente para funciones con unas cuantas variables utilizando el mtodo del mapa de Kamaugh. En esta seccin demos trn~mos que es posible realizar las mismas operaciones para funciones con un nmero arbitrariamente grande de variables (por lo menos. en principio) empleando un mtodo de tabu lacin llamado el algoritmo de QuineMcCluskey. Como todos los algori tmos. el algoritmo de Quine-McCluskey se traduce a un programa de computadora. Y como el mtodo del mapa. el algoritmo tiene dos pasos: (a) encontrar todos los implicantes primos de la func in. y (b) seleccionar un conjunto mfnimo de implicantcs primos que cubra la funcin. El algoritmo de Quine-McCJuskey se describe a menudo en tnninos de tablas escrilas a mano y procedimientos de verificacin manual. Sin embargo. ya que nadie emplea estos procedimientos manualmente. es ms apropiado para nosolTOS discutir el algoritmo en trminos de estructuras de elatos y funciones en un lenguaje de progmmocin de alto nivel . El objcth'o de esta seccin es proporcionarle una evaluacin de la comple jidad computacional in\'Olucrnda en un problema de minimiwcin grande. Consideramos slo funciones de salida simple. complel:lmertte especificadas: las funciones de salidas mltiple y sin importancia se manejan mediante modificaciones bastante directas a los algoritmos de salida simple. como se discute en las Referencias.

a/garilmo d~ Qllin~ McCflUUy

4.4.1 Representacin de trminos de producto El punto de partida para el algoritmo de minimiz.acin de Quine-McCluskey es la tabla de
verdad o. de manem equivalente. la lista de minitrminos de una funcin. Si 1 11 funcin se especifica de manem diferente. primero debe ser convertida a esta fom13 . Por ejemplo. una expresin lgica de n variables arbitraria se ellpande multiplicndolu (qui7As utili7.nndo el teoremn de DeMorgan en el proceso) paro obtener una expresin de sumll de productos. Unll vez que tenemos una expresin de sumll de productos. cada trmino de producto de p vanables produce 2"'Pminitnninos en 1 11 lista de minitrminos. Mostramos en la seccin 4. 1.6 que un minitrmino de una funcin lgica de 11 variables se representa por un entero de 11 bits (el nmero minitrmino). donde cada bit indica si la varillble correspondiente se encuentro complementada o no complementada. Sin embargo. un rugoritmo de minimizacin tambin debe tratar con tnninos de producto que no son minitnninos. donde Illgunas varillbles no aparecen en absoluto. De este modo. debemos representar tres posibilidades pana cada variable en un trmino de producto general:
I Sin complementar.

O Complementada. x No aparece.

Seccin "4.4

Mtodos de minimizacin programados

237

Estas posibilidndes estn representadas por una cadena de n de los dfgitos anteriores en la repr~senlad/JII de cubo de un trmino de producto. Por ejemplo, si estamos trabajando con trminos de producto de hasta ocho variables, X7, X6, ... , Xl , XO, escribimos los siguientes trminos de producto y sus representaciones de cubo: X7' X6 X5 X4' X3X2 X1 XO' 01 10111 0 X3X2 X1 XO' xx:<:< 111O X7 - X5' X4 X3 - )(2' X1 IxO l lO lx X6 xl XXXlOIX Note que. por conveniencia. nombromos las variables justo como las posiciones de los bits en enteros binarios de n bits. Desde el punto de vista de 1 ::. nomenclaturn de cubo 1I y.sutx:ubo m de la 5Cccin 2. 14. la cadena 1:<0 11 0 1x re ~ n ta un sutx:ubo 2 de un cubo 8. y la cadena 0 11 01 11 0 re presenta un subcubo Ode un cubo 8. Sin embargo, en la literatura de minimizacin, la mxima dimensin " de un cubo o subcubo est por lo regular implfcita, y un subcubo m se denomina simplemente un "cubo m" o un "cubo" para. abreviar; seguiremos esta prctica en esta seccin. Para representar un trmino de producto en un programa de computadora, utilil.amos una estructura de dalos con n elementos, cada elemento tiene tres valores posible.<;. En C. podemos hacer las declaraciones siguientes:
typedef enum {cofli)lemented, uncornlemented, doesntappear ) TRIT; typedef TR I T[16] CUBE ; 1 Represents a single product therm wi th up to 16 variables 1

rrprrUnlacin dt! cubo

Sin embargo, estas dcclarnciones no conducen a una representacin interna particularmente eficiente de los cubos. Como "cremos, los cubos son ms fci les de manipular empicando instrucciones convencionales de computadoro si un trmino de producto de n variables es representado por dos palabras de computlldoro de fI bits, como se sugiere por las declaraciones siguientes:
I define MNCVARS 16 l Mx I o f variables in a product term typede f unsigned shor WORD; / 0 Use 16-bit words 1" struct cube ( W ORD t ; / . Bits 1 for uncomplemented variables . / WORD f; , . Bits 1 fo r complemented variable . 1 I, typedef struct cube CUBE; CUSE PI. P2 , P3; / . Allocate three cubes for use by program

* '

Aquf, W ORD es un entero de 16 bits, y un trmino de prod ucto de 16 variables se representa mediante un registro (record) con dos WOROs, como se mucstra en la figuro 4-4 1(a). La primcro palabro en un CUBE tiene I paro cada variable en el trmino de producto que aparece sin complementar (o "'verdadero". t ::: "'true") y la segunda tiene un I para cada variable que aparece complementada (o "falsa", f ), Si una posicin particular de bit tiene ceros en ambas WORD, entonces la variable correspondiente no

238

Capitulo 4

Principios de diseo lgico combinacional

lal
CUBO:

15 1. 13 12 11 10 9

"=

,
Figura 4-41
Represeotaci6n interna de trrTMnos de producto de 16 variables en L.-. programa Pescal: al 1oI1 11l1O general; (b) PI '" XI 5XI 2'X10'X9X4' XI XO
O

x.

x.'

o
O

xa no aparece

Ibl

's

1. , 3 12 11 ,0 9

O O O O O O

O O O

, ,

.5

O O O O O O O

O O O O O

, , .,
1 O

O O O O f

aparece. mientras que el caso de una posicin de bit particular teniendo unos en ambas W ORD no se usa De esle modo. la variable del programa PI en b) representa eltnnino de producto P1 '" X15 . X12 ' X1 0' X9 X4' X1 . XO. Si deseamos representar una funcin lgica F de hasta 16 variables, que contenga hasta 100 trminos de producto. declaramos un arreglo de 100 CUBEs:
CUSE P ( lO O} ; , . Sto rage for a logic func t io n

with Up to 100 product terms . - ,

Aplicando la representacin de cubo precedente. es posible escribir runciones de C breves y eficientes que manipulen t6:m.inos de producto en fonnas tiles. La tabla 4-8 muestra varias de eslBS funciones. COllcspondiente a dos de las runciones. la figura 4-42 retrata cmo dos cubos se comparan y combinan si es posible empleando elteoteIl'lll. TIO. Figur a 4-42 Manipulaciones de cubo: al determinacin de si dos cubos son combi nables utilizando elleorema T10, trmino X + trmino X' = trmino:
b) combinacin de cubos empleando el teorema T1 0.

1 -1
el :
el . t

Cl.f

=> =>

Cl.t XOR e2.t

I
Es igual y contiene un solo 11

si
NO

combinable
i"IO combinable

C2 .

e2 . t
e2 . !

eLf XOR C2.!

)(OR operacin OR 8Xc1uatvo bit a bit

'b'

el : ~__C C' C'C 'CC ~ C ID CC e C 2C 'C ' __


el .f
.;NO

ANO Operacin AN O lgiCa bit a bil

e2 . f

Seccifl '4.4

Mtodos de minimizacifl programados

239

Tabla 4-8

de cubO

funciones de combinacin utilizadas en

de minimizacin.

,
)

int EQualCubes(CUBE CI, CUBE C2) retum ( e1.t .. C2 .t l


&.&:

/ - Returns true if CI and C2 are identical. - /

(C1.f C2 . fl 1;

int Oneone IWORD int enes, ones O , for lb_O :


if
)
(w &.

w)

b;

/ . Returns troe if w has exactly one 1 bit . , . ~timizing the speed of this rootine is critical /. and le 1eft as an exercise tor the hacker

1 1 1

b<MAX.....w.RS; 1>0 . ) (

1) ones ... ;

w w>,.1

returnl(ones l));
)

i nt Combinable(CUBE el, CUBE C2) { / * Returns true if CI and C2 differ in only one variable, WORD twordt , twordf ; r whic:h awors troe in one and f/lIse in the other . twordt _ Cl . t C2 . t ; twordf el.f A e2 . f; return ( (twordt._twordf && Oneone( twordtl ) ;
)

./ ./

void CombinelCUBE el , CUBE e2 , CUBE ' C3) / - Combines Cl and C2 USlng theorem T10, and stores the ( /. re!\ult in eJ . Assumes Combinable(CLC2) is true. C3-,.t Cl . t &. e2 . t; e3-,.f e1 . f &: C2.f ;
)

1 1

trmino X + trmino X' ~ trmino. este tCOl"l:ma nos dice quedos tbminos de prodlldO se

combinan si difieren en solamente una variable que aparece complemcntadll en un I~rmi no y no complementnda en el 01r0. Ln combinacin de dos cubos m produce un cubo (m + 1). Uliliz.ando la represcntncin de cubo, apliquemos cl lcorema de combinacin unos cuantos ejemplos:
010+000 = OxO 00 111 001 +00 111 000 IOI : u OxO+ IOlxxlxO 00 111 00x IOlxxxxO

xiii xxOO11 OxOOOx + xiii xxOOO IOxOOOx ::::: xIII xxOOx IOxOOOx

240

Caprluto 4 Principios de diseflo lgico combinacionai

*4.4.2 Clculo de implicantes primos mediante la combinacin de trminos de producto


El primer p:1SQ en el algoritmo de Quine. McCluskey es detemlinar todos los implicantes primos de la fu ncin lgica. Con un mapa de Kamaugh. hacemos esto visualmente al identificar M ios conjuntos rectangulares mAs grandes posibles de Is". En el algoritmo. eSlo se hace mediante la sistemlica y repetida aplicacin del teorema TlO para combi nar minitmlinos, luego cubos 1, cubos 2 y ase sucesivamente, creando los cubos ms grandes posibles (tnninos de producto ms pequeos posible.'i) que cubron solamente unos de la funcin. El programa C en la tabla 4-9 se aplica al algoritmo para fu nciones con hasta 16 variables. Utilizn arreglos bidinlensionales, cubes (ml [j) y covered [rnl [j l . para seguir la pista de MAlLVARS cubos m. Los cubos O(minitnninos) son suministrados por el usuario. Comenz.ando con los cubos O. el programa examina cada par de cubos en cada nivel y los combina cuando es posible en cubos al siguiente nivel. Los cubos que se como binan en un cubo del siguiente nivel se marcan como "covered" ("cubiertos"): los cubos que no estn cubiertos son implican tes primos. Aun cuando el programa de la tabla 4-9 es corto. un progmmador experi mentado poda llegar a pensar de manera pesimista slo viendo su e.'ilructum. El ciclo for interno se encuentra anidado a cuatro nh'eles de profundidad, y el nmero de veces que se ejecuta es del orden de !WLVARS MAlLCUBES1. Est bien. eso es un exponente. no un indicador de noca al pie! Elegimos el valor rr.axCubes = 100 algo arbitrariamente (de hecho, con demasiado optimismo para muchas func iones). pero si usted cree en e.~te nmero, entonces el ciclo interno se ejecuta miflaus y milll/us d~ millotles de veces. El mximo nmero de minitnninos de una funcin de ti variables es 2". por supuesto. y IlSf por todo derecho el programa en la Ibl 4-9 debe dcclarnr maxOJbes como 2 16, al menos para manejar el mximo nmero posible de cubos O, Una declaracin ns( no ser demasiado ~sim ista. Si una funcin de 11 variables tiene un trmino de producto igual a una variable simple. entonces 2.... 1 minitnninos son de hecho necesarios para cubrir ese t~rmino de producto. P".tra cubos mayores, la situacin es en realidad peor. El nmero de posiblcs subcu bos m de un cubo ti es

(:~) X 2/1 - ," . donde el coeficiente binomial (::/)

es el nmero

de manel1lS de elegir m variables que sean x's, y 2- es el nmero de manems de asignar ceros y unos alas vanables restantes. Para funciones de 16 vanables, el peor caso se pre senla con m = 5; existen 8,945,664 posibles subcubos 5 de un cubo 16. El nmero total de subcubos riI distintos de un cubo 11, sobre todos los vulores de m es 3". De esta forma, un programa de minimiz.acin geoeml requiere mucllo ms mcmoria que la que hemos asignado en la tabla 4-9. Existen vanas acciones que podemos tomar para optimizar el espacio de almacena miento y el licmpo de ejecucin requerido en la tabla 4-9 (vea 1 0$ ejercicios 4.774.80), pero son insignificantes en comparacin a la aplastante complejidad combinaloria del problema. Asr, incluso con Ins rpidas compUladoras de la actual idad y sus inmensos recursos de memoria, la aplicacin directa del algoritmo de QuineMcCluskey par.! ge/lCf'tlr implicantcs primos se encuentra generalmente limitada a func iones con solamente unas cuantas vanables (menores de 15.20).

Seccin '4.4

Mtodos de minimizacin programados

241

T a b la 4-9 Un programa en lenguaje e que encuentra los Impllcanles primos con la ayuda del algoritmo de Ouine-McCluskey.
'define TRUE 1 'define FALSE O 'define "'.AJLCUBE'S 50 void main()
(

CUBE cubes{Jo'.AJLVARS . l) (MA.'LCUBE'S) ; int covered[MA.'LVARS. l1 [twLCUBESI ; int numCubes(Jo'~VARS . ll ; int m; Value of m in an m-cube, i . e . , "level m". " / / " Indices i nto the cubes or oovered array. i nt j , k, p: '1 CUBE terrpCUbe: i nt found;

'*

/ * Initialize number of m-cubes at each level m. "/

lor (m.O ;

~~.l;

m ) numCubes(m] O;

/ * Read a list of minterms (O-cubes) supplied by the user, storing thm

/ * in the cubes[O , j] subarray, setting covered[O, jl to false t or each /* minterm. and setting numCubes[O] to the total number of minterms read . ReadMinterms:

-/ */ -/

fe r (m..O : IIkMAX..VARS; m... ) / " [):) t er a11 levels except the last t / t er IjsO; j<numcubes[m] ; j ) Do tor all cubes at this level -/ fer (k_j .t; k<numCubes[m) : k ) / " Do fer other cubes at this level "/ if Canbinable(cubes[rn][jJ. cubes[m][kll) ( / * Mark the cubes as covere<!. - / covered [rn) [ji TRUE; covered (m] [k ) TRUE; Combine into an (m. ll-CUbe , stere i n tempCube. ' / Canbine{cubeslml [JI, cubes(ml [kl, &tempCube ) ; found . FALSE; / " See i f we ' ve generated this ene befere . , for (p_O ; p<numCubes[m. t) ; po. ) if ffqua lCUbes (cubes [m. l [ [PI. tempCubel) fOW'id _ TRUE ; if (! foundl { ' " Add the new cube t e the next leve!. . / numCubes!m. l} numCubes(m.l } 1 ; cubes[rn+l1 (nurnCubes(mt1 1-1] tempCube ; covered !rn.l } [numCubes (m.l[-l] FALSE;

'*

'*

) )

tor (m_O ; !I'I<"'.AJL~; m ) / . Do fer al! lVels */ fer (j-O ; j<numCubes[m] ; j .. ) ' " Do fer a11 cubes at thi s level "/ / " Print uncovered cubes -- st os son los implicantes primos. "/ if (!covered[m] [JI) PrintCUbe (cubes [m) [jI) ;
)

242

Captulo 4 Princpios de diseo lgico combinacional

,
(.)
A

mlnitrmlnos

implicantos

po"""

e o
E

,, ,, ,
2

" 7

,
15
(b)

13

13

15

, , , ,,
(d)

(o)

e
o

, ,, ,
7

15

(o)

F 19 u ra 4-43 Tablas de Implicanles primos: a) tabla original; b) con celdas 1 distinguidas e implicantes primos esenciales; cl despus de la eliminacin de los Impllcantes primos esenciales; d) con los renglones eclipsados; e) despus de la eliminacin de los renglones eclipsados, con lOS impllcantes primos esenciales secundarios.

*4.4.3 Encontrando una cubierta mnima empleando una tabla de implicantes primos
El segundo paso al minimizar una funcin lgica combinacional. una vez que tenemos una lista de lodos sus implicanles primos. es seleccionar un subconjunto mnimo de ellos para cubrir todos los unos de la funcin. El algorilmo de Quine-McCluskey utiliza un arreglo bidimensional conocido como una tobla de implicantes primos para hacer esto. La fi gura 4-43(a) muestra una pequefta pero representaliva tabla de implicantes primos. correspondiente al problema de minimizacin de mapa de Kamaugh de la figura 4-35. Hay una columna por cada minitnnino de la funcin. y un rengln por cada implicante primo. Cada entrada es un bit que es 1, si y slo si. el implicante primo para ese rengln cubre el minit~nni no para esa columna (mosU"ado en la tabla como una "palomita"). Los pasos para seleccionar los implicantes primos con la tabla son anlogos a los pasos que se utiJitan en la seccin 4.3.5 con los mapas de Kamaugh: l . Identifique las celdas I distinguidas. stas son fcilmente identificadas en la tabla como columnas con un solo 1. como se muestra en la figuro 4-43(b). 2. Incluya todos los implicantes primos esenciales en la suma mnima. Un rengln que contiene una palomita en una o mds columnas de celdas I distinguidas corresponde a un implieante primo esencial. 3. Elimine de su consideracin los implicantcs primos esenciales y las celdas I (minitnninos) que ellos cubran. En In tabla, esto se hace eliminando los renglones y las columnas correspondienlCS. marcados en color gris en la figura 4-43{b). Si cual quiera de los renglones no tienen palomitas restantes. entonces tambin se eliminan;

tabla d~ implicantts primOI

Secci6n "4.4

Mtodos de minimizacin programados


implican/t primo
rt!dundanl~

243

Jos correspondientes implicantes primos son rtdundon tes. es decir. completamente cubiertos por implieantes primos esenciales. Este paso nos lleva a la tabla redueida que se mueslrd en (e). 4. Elimine de su consideracin cualquier implicante primo que es~ "eclipsado" por otros con costo menor o igual. En la tabla. esLO se hace al borrar cualquier rengln cuyas columnas con palomitas sean un subconjunto propio de otros renglones. y al eliminar lodos menos uno de un conjunlo de renglones con idfnlicas columnas con palomitas. Esto se muestm sombreado en (d) y conduce a la tabla an ms reducida en (e). Cuando una funcin se realiza en un PLO. tooos sus implieantes primos se consideran como si tuvieran igual costo. debido a que todas las compuertas ANO en un PLD tienen todas sus entradas disponibles. De otro modo, los implican tes primos deben ser clasificados y seleccionados de acuerdo al nmero de entradas de compuerta ANO. 5. Identifique las celdas 1 distinguidas e incluya todos los impl icantes primos esenciales secundarlos en la suma mfnima. Como antes, cuaJquier rengln que contenga una palomita en una o ms columnas de celdas 1 distinguidas corresponde a un implieante primo esencial secundario. 6. Si todas las columnas restantes estn cubienas por los implicantcs primos esenciales secundarios. como en e), habremos tenninado. De otro modo. si cualquier implicante primo esencial secundario se encontrara en el paso anterior. regresaremos al paso 3 Y repetiremos el ciclo (iternein). De otra manera. deber utilizar el m~ todo de ramificacin. como se describi en la seccin 4.3.5. EsIO involucra la eleccin de los renglones, uno a la vez, trat4ndolos como si fueran esenciales. y volviendo a pasar (y pasando) PQr los pasos 3 a 6. Aunque una tabla de implican tes. primos pennite un algoritmo de seleccin bastante directo de implicantes primos, la estructura de datos que requien:: un programa de eomputadorn es inmcnsa. puesto que requiere del orden de p . 2" bits, donde p es el nmero de implicantes primos y n es el nmero de bits de entrnda (suponiendo que la funcin dada produzca una salida l para la mayora de las combinaciones de entrada). Peor an, ejecutar los pasos que hemos descrito alegremente con unas cuantas frases hace un momento requiere de una inmensa cantidad de clculos.

*4.4.4 Otros mtodos de minimizacin


Aunque las anteriores subsecciones fonnan una introduccin a los algoritmos de minimizacin lgica. tOll ..mtodos que describen no son de ningn modo los ltimos ni 10lI ms grandes. Presionados por la siempre creciente densidad de los chips VLSI, muchos investigadores han descubieno moncras ms dectivas para minimizar funciones lgicas combinacionales. Sus resultados caen aproximadamente en tres categorfas:
1. M(!jo r(J$ cumpuradollu/(!s. Los algoritmos mejorados utilizan por lo regular estructuras de datos ms inteligente... o reacomodan el orden de los pasos para reducir los requerimicntos de mcmoria y el tiempo de ejecucin de los algoritmos c1 sicos.
2. Mtodos /(!uristicos. A1gunos problenw de minimizacin son denwiado grandes para resoh-erse utilizando un algoriuno "exacto". Estos problemas se resuelven

244

Capitulo 4 Principios de diseo lgico combinacional

utilizando atajos y conjeturas bien plantC<ldos. que ayudan Il reducir eltamai\o de la memoria y el tiempo de ejecucin ti una (mccin del tiempo que n:quiere un algoritmo exacto. Sin embargo. ms ' que hallar una expresin probablemente mnima para una (uncin lgica, los mtodos heurfsticos intentan encontrar una "casi mnima". Incluso para problemas que pueden ser resueltos mediante un mtodo "cxacto" , un mtodo heurlstico por lo regular encuentr:a una buena solucin diez "cces m:u rpido: El progr:ama heurfstico con ms xito. Espresso-lI . de hecho produce resultados mnimos o casi mnimos para la mayor pan!! de los problemas (dentro de uno o dos tnninos de producto). incluyendo problcmas con docenas de entra das y cientos de tnninos de producto. 3. Exalltt!n de las cOsas dt!sdt! un t!nfoqut! difertnte. Como lo mencionamos con anterioridad. la minimizacin de salida mltiple puede manejarse mediante modifi caciones direclas (que son bastante mecnicas) de tos mtodos de minimi7.acin de salida simple. Sin embargo. al examinar la minimizacin de salida mltiple romo un problema en lgica multivaluada (no binaria). los diseadores del algorit mo Espresso-MV fueron capaces de hacer mejoras sustanciales en el desempeo por arriba de Espresso-Il
Puede encontrar infonnacin adicional de estos ~todos en la ~ i 6n de referencias.

*4.5 Riesgos en el tiempo


compo"amit'nIO dt' a lado

I...os mtodos de nn:'ilisis que henlOli desarrollndo en la ~ i6n 4.2 ignoran el retardo de circuito y predicen solnmcnte el compo"amil!ltIo dI! t!stmlo estacionario de los circuitos

u tad O/wrio

compo rtam it'nlO /mfUilOrio

gll/ch o jnlt'rft'rt!ncia

dugo

lgicos combinacionales. Es decir. predicen una salida de circuito como una funcin de sus entradas bajo la suposicin de que las entradas han estndo estnblcs por largo tiempo. relativo a los relardos en la elecltl1ica del circuito. Sin embargo. mostrJIDOS en la seccin 3.6 que el retardo rcaJ desde un cambio en la entrada hasta el correspondiente cambio en la salida en un circuito lgico real es distinto de cero y depende de muchos (actores. Debido a los retardos del circuito, el cOlllportamil!ll1o transito rio de un circuito 16gico puede diferir del que se predice mediante un anlisis de estado estacionario. En particular. una salida de circuito puede producir un pulso corto, frecuentemente llamado un "glitch" intesferencia a un tiempo cuando el anlisis de estndo estacionario predice que la salida no deberla cambiar. Se dice que existe un riugo cuando un circuito tiene la posibilidad de producir una inteerencia de esa clase. Que en realidad ocurra o no una interferencia depende de los retardos exactos y otras caracterlsticas elctricas del circui10. Puesto que tales parmelrOS son diUciles de controlar en circuitos de producci6n. un diseador 1 6gico debe estar preparado paro eliminar los riesgos (la KJlibifillad de una inteerencia) aun cuando pueda ocurrir una interferencia solamente bajo una combinaci6n en el peor de los easos de condiciones lgicn.< y elctricas.

-4.5.1 Riesgos estticos


rit'sgo dt' 1 t'sttico

Un riesgo dI! J esttico es la posibilidad de que una salida del circuito produzea una interferencia Oeuando espcrariamos que la snlida pennaneciem en un sutil I estaciona rio. con base en un anlisis esttico de la (unci6n del circuito. Una definici6n formal se da a continuaci6n.

Seccin "4.5

Riesgos de temporizacin

245

(.)

(b)

x
l

" v

lP

XZP

ZP _ _ __

yz
XZP

yz
y

F , ------'~

.---

,----

FI gura 4-44 CIrcuito con un riesgo de 1 esttico: a) diagrama lgico; b) diagrama de temporizacin.

Definicin: Un riesgo de 1 esttico es un par de combinaciones de entmda que: a) difieren en solamente una variable de enlrnda y b) ambas proporcionan una salida 1; tal que es posible que ocurra una salida O momentnea durante una transicin en la variable de entrada que difiere.

Por ejemplo. considere el circuito lgico en 1 3 figura 4-44(a). Supongamos que X y V son ambos I y que Z est cambiando de I a O. Entonces (b) muestra el diagrnma de temporizacin, suponiendo que el retardo de propagaci6n a tr.lV~ de cada compuerta o inversor sea de una unidad de tiempo. Aun cuando el ilIllisis "esttico" prediga que la salida es 1 para ambas combinaciones de entrnda X,V,z. = 11 1 YX,V,Z = I 10, el diagrama de temporiz.nci6n muestra que F tiende a O por una unidad de tiempo durante una transicin 1-0 en Z. debido al retardo en el inveoor que genenl Z', Un riesgo de O estdtico es la posibilidad de una inteerencia de 1 cuando esperamos que el circuito tenga una salida OeSlaCionaria:
Definicin: Un riesgo de Oesttico es un par de combinaciones de entrodaque: a) difieren

rit's80 dI' O t'$/tiro

en solamente una variable de entrada y b) ambas proporcionan una salida O; tal que es posible que ocurra una salida I momentnea durante una transicin en la variable de entrada que difiere. Puesto que un riesgo de Oesttico es justo el dual de un riesgo de I esttico, un circuito CR-ANO que es el dual de la 6gura <1 44(a) tenda un riesgo de Oesttico. Un circuito OR-ANO con cuatro riesgos de O esttico se muestro en la figura 4-45(a). Uno de los riesgos ocurre cuando W,X,V '" 000 y Z est cambiando. como se
ilustra e n (b). Usted sem capaz de cneonlror los otros tres riesgos ':1 e liminarlos lodos
despu~s

de estudiar In subsecci6n siguiente.

""4.5.2 Hallando riesgos estticos medante el uso de mapas

Un mapa de Kamaugh puede utilizarse para detectar riesgos estticos en un circuito de dos niveles de producto de sumas. La existencia o la inexistencia de riesgos estticos depende del diseno del circuito para una funcin lgica. Un circuito de producto de sumas (ANO-OR) de dos niveles no tiene riesgos de O esttico. Solamente existirfa un riesgo de Oesttico en un circuito si tanto una variable como su complemento estuvieran conectados a la misma compuerta ANO. lo que serfa

246
(a)

Capitulo 4 Principios de dlse i'io lgico combinacional


W~ o _ __
_ _..,

(b)

Z
ZP

X ~o~---;:,-------::;;-;: Z 0_1

W'lZP

...,

,.... ,
F

y o

YZ 0_1

yz
W'IZP

YP XP

, ,

Xpyp

, o , o , o , o ,
o

t
-"L

F Igura 445 Circuito con riesgos de Oesttico: al diagrama lgico: bl diagrama de temporizacin.

r(Nu~n so

tonto. Sin embargo, el circuito puede tener riesgos de I esttico. Su existencia puede predecirse a panir de un mapa de Karnaugh donde se marquen los toninos de produc1 0 correspondientes a las compuenas ANO en el circuito. Lo. tigura 4-46(8) muestra el mapa de Karnaugh para el circuito de la figura 4-44. Es claro del mapa que no hay un trmino de producto simple que cubra ambas combinaciones de enlrada X,YZ "" l11 YX,YZ "" l JO. As. de manero inluitiva, es posible para la salida "interferir" momenlneamente a Osi la salida de la compuerta ANO que cubre una de las combinaciones tiende a Oames de que la salida de la compuena ANO que cubre la otrJ. combin .acin de entr.wa tienda a l. La forma de eliminar el riesgo es tambin bastante a~n te: simplemente incluya un trmino de produCIO extra (compuena ANO) para cubrir el par de entradas riesgosas, como se mueslra en la figura 4-46(b). El trmino de producto extra. es el COllse llSO de los dos trminos originales: en general. debemos agregar trminos de consenso para eliminar los riesgos. El circuito libre de riesgos correspondiente se ilustra en la figura 4-47. Otroejemplo se ilustra en la fi gura 4-4g. En este ejemplo. tres tmlinos de produc10 deben agregarse para eliminar los riesgos de 1 esttico. Un circuito de dos niveles (OA-ANO) de producto de sumas apropiadamente diseH ado no tiene riesgos de 1 esttico. No obstante. puede tener riesgos de Oesttico. Estos riesgos pueden ser detectados y eliminados al estudiar los ceros adyacentes en el mapa de Kamaugh. de una manera dual para el precedente.

(. )

Figur a 4- 46 Mapa de Kamaugh para el circuito de la figura 4 44 : a) como estaba originalmente dise~do ; b) con el riesgo de 1 esttico elimInado.

;<Y
O

, ,

(b)

00

X Z'

;<Y

,
00

,
] Z

X r

,
y

y.Z

]z
y.z

x Y

F =X' Z'+Y ' Z

F ., X ' Z' + Y'Z + X ' Y

Seccin '4.5

Riesgos de temporizacin

247

x-

------,ZP"

XZP

zF
y

xv

Figura 4-47 Circuito con el riesgo ele


1 esttico eliminado.

-4.5.3 Riesgos dinmicos


Un riesgo dinmico es la posibilidad de un cambio en la salida ms de una vez como resullado de una transicin de entrada simple. Las transiciones de: salida mltiples pueden presentarse si hay mltiples trayectorias con diferentes retardos desde: la entmda cambiante hasta la salida cambiante. Porejemplo, considere d circuito en la figuro 4-49; tiene: tres diferentes trayectorias desde la entrada X hasla la salida F. Una de las trayectorias va a travs de una compuena OA lenta, y otra va a uavs de una compuena OA que es an ms lenla. Si la entrada al circuito es W:X.Y:Z '" 0.0,0, 1, entonces la salida ser 1, como se muestra. Ahora supongamos que cambiamos la entrada X a 1. Suponiendo que todas las compuc:nas excepto las dos marcadas como "lenta" y "ms lenla" sean muy rpidas. las transiciones mostradas en negro OCUrTen a continuacin, y la salida tiende a O. Con el tiempo, la salida de la compl,lerta OA "lenta" cambia. creando las transiciones mosuadas en negritas cursivas, y la salida tiende a l . Finalmente. la salida de la compuena OA "ms lenta" cambia. creando las transiciones mostradas en negritas CUrSivas. y la salida tiende a su estado final de O. Los riesgos dinmicos no se presentan en un circuito ANO-OA u OA-ANO de dos niveles apropiadamente diseado. es decir. uno en el cual ninguna variable ni su complemento estn conectados a la misma compuerta de primer nivel. En los circuitos de nivel
riesgo dinmico

Figura 4-48 Mapa de Kamaugh para otrocircoito de suma de productos: al como se disefl originalmente; b) con tnninos de producto extra para cubrir los riesgos de 1 esttico.
(a) x y' z' ~ yz"","OO \ 01 ,
11

W
10

(b)

W' z

00

.,
11

W' XY'

z
y
~ wy

z
_ _ yz

,. --:=;'~,;,,'
X
F .. X'Y" Z' +

" -_
X F,. XY' ]: +

w xz

wz

+ W'Y

wz

+ W'Y

+W'X'Y' +yz + w xz

248

Captulo 4 Principios de diseo lgico combinacional

w
x
v

.
,

Lr
z

,-,

.... ... ....

' "'
0_ 1_ 0

'"'

'-,

' .... 0 .....

1 ~ 0

4>0

,-, ,
,

Figu r a 4 - 49 Circuito con un riesgo dinmico.

mltiple. los riesgos dinmicos pueden ser descubiertos utili7.ando un mtodo descrito en las Referencias .

*4.5.4 Diseo de circuitos libres de riesgos


Solamenteen algunas ocasiones. tales oomoel diseo de circuitos secuenciales de reuoolimenlnci6n, se requiere de circuitos combinacionales libres de riesgos. Las tknicas paro encontrar riesgos en circuitos arbitrarios. descritas en las Referencias. son bastante diffciles de utilizar. Asf. cuando requiera un diseo libre de riesgos. sem mejor emplear una estructura de circuito que sea fci l de analixar. En particular. hemos indicado que un circuito ANO-OA de dos niveles apropiadamenle diseado no tiene riesgos dinmicos o Oesttico. Los riesgos de 1 esttico pueden existir en un circuito as. pero pueden ser encontrados y eliminados utilizando el mtodo de mapa descrito I1rIterionnenle. Si el costo no es problema, entonces un mtodo de fuerza bruta para obtener una realizncin libre de riesgos es emplear la suma completa: la suma de lodos los implicantes primos de la funcin lgica (vase el ejercicio 4.84). De manera dual. un circuito OA-ANO de dos niveles libre de riesgos puede disearse paro cualquier funcin lgica. Finalmente. note que todo 10 que hemos dicho acerca de los circuitos ANO-OA se aplica naturalmente a los correspondientes diseos NANONANO. y lo que respecta a OA-ANO se aplica a los NOA-NOA.

Seccin 4.6

El lenguaje de descripcin de hardware ABEL

249

4.6 El lenguaje de descripcin de hardware ABEL


ABEL es un lenguaje de descripcin de hardware (HOL. Hardware Description Language) que fue inventado pam permitir a los diseiladores especificar funciones lgicas para su realizacin en los PLD. Un programa ABEL es un archivo de texto que contiene varios elementos:

Document:lcin, induyendo el nombre del programa y comenl:ll;os. Declaraciones que identifican las entradas y salidas de las func iones lgicas que sern efectuadas. Instrucciones que especifican las funciones lgicas que sern efec1uadas. Por lo regular. una declaracin del tipo de PLD u OltO dispositivo destino en el que las funciones lgicas especificadas se reaIi7..arn. Generalmeme. "vectore.~ de prueba" que especifican Ia.<; sa l ida.~ esperadas de las funciones lgicas para ciertas entradas.
prrxtsudor d,. /enguajt ABEL compilador ABEL

ABEL se apoya en un proc~sador de lenguaje de ABEL el cual llrunaremos simplemente un compiltuJor de. ABEL El uabajo del compilador es traducir el archivo de texto de ABEL a un ''patrn de fusin" que puede descargar..e en un PLD fsico. Aun cuando la mayora de los PLD pueden ser fsicamente programados solameme con patrones correspondiences a exp~siones de sumB de productos. ABEL permite que las funciones PLD sean expresadas con tablas de verdad o instrucciones - I F" anidadas. adems de cualquier formato de expresin algebraica. El compilador manipula estos formatos y minimiza las ecuaciones resultantes para ajustar. si es posible, denltO de la estructura PLD disponible. Hablaremos acerca de estructura PLD. patrones de fus in y temas relacionados posterionnente. en lo seccin 5.3. y moslr.tremos cmo dirigir programas ABEL para PLO especficos. En el medio tiempo. mostraremos cmo ABEL puede ser utilizado para especificar funciones lgicas combinacionale.<il sin tener necesariamente que declarar el tipo de dispositivo fijado. Ms adelante. en la seccin 7.1 1. haremos lo mismo para las func iones lgicas secuenciales.

4.6.1 Estructura del programa ABEL


La tabla 4-10 muestra la estructura tpica de un programa ABEL. y la tabla 4-11 muestra un programa real que presenta las caractersticas de lenguaje siguientes:

Idt'ntifictulorrs. deben comenzar con unaletm o guin bajo. pueden contener hasta
31 letras, dgitos y guiones bajos. y distinguen enlte maysculas y minsculas.

idtnlijicador
modul e (mMu'o)

Un archivo de progmma comienza con una instruccin mxtule, que asocio un identifiCador (Al arrn..Ci r cuit) con el mdulo del programa. Los programas grandes pueden tener mltiples mdulos, cada uno con su propio tftulo local. declarnciones y ecuaciones. Note que en las palabras clave como "modul e" no hay distincin enlte maysculas y minsculas.

250

Capitulo 4 Principios de disei'lo lgico combinacional Tabla 410 Eslructura tlpica de


un programa ABEl.

module Inodllft! namt! title s/ring del,jedD device di!l'iCl'T ypt!;


pin .:fu/oro/joro

o/her du/omljQ/U

equations
t!qua/iom

test_vectors
IU f

I'/ors

end modult! namt!

ti tle ("//u/o"J

La instruccin ti ele especifica un cadena de tftulo que se insenar.1 en los archi-

device ( "diJposi/il'f) _

cQnIi!/IIaria

di!c/uraciQnu di! fas lt!rmina/i!s

iseype (tipo di! ulal dt!


Ul~/(.

can

( " combinocjQn(If")

O/ros di!c/arociQnt!S

equations
(" t!c.ciQnu U llaciO/lt's
H )

vos de documentacin que son creados por el compilador. Una cmltma es una serie de carocteres encermdos entre comillas simples. l..a dcclarnci6n opcional devlce incluye un identificador de dispositi\'O (ALARM:lcr') y una cadena que denota el lipo de dispositivo ( , P16VBC' paro un GALI6V8). El compilador utiliza el identificador de dispositivo en los nombres de los archivos de documentacin que genero. y emplea el tipo de dispositivo parn detenninar si el dispositivo puede en realidad efectuar las funciones lgicas especifi cadas en el programa. Los comen/arios comienzan con una comilla doble y finalizan con otra comilla doble Ocon el fin de linea. cualquiern que se encuentre primero. Las declaraciones de lenninale.f le dicen al compilador acerca de los nombres simblicos asociados con las tenninales externas del dispositivo. Si el nombre de la seal es precedido con el prefijo NOT ( !). entonces el complemento de la seal nombrada aparecer en la terminal. l..as declarnciones de terminales pueden o no incluir nmeros de terminal : si no se da ninguno. el compilador los asigna con base en las capacidades del dispositivo sealado. La palabra clave istype precede una lista de una o ms pmpied.wes. scparudas por comas. Esto le dice al compilador el tipo de seal de salida. La palabru clilve "can" indica una salida combirulCional. Si no se proporciona una palabro clave istype. el compilador por lo generol supone que la seal es una entrnda a menos que aparezca en el lado izquierdo de una ecuacin, en cuyo caso intenta averiguar las propiedades de sal ida del contexto. Por su propia proteccin. es mejor utilizar precisamente la palabra clave istype para 10das las salidas! Otros declaroc;oll~s permiten al diseador definir constantes y expresiones para mejorar la legibilidad del progrnma y para simplificar el diseo lgico. l..a instruccin equac.lOOS indica que las ecuaciones lgicas que delinen las seales de salida como funciones de seales de entroda siguen a continuacin. Las ~cljQcioll t!S se escriben como instrucciones de asignacin cn un lenguaje de programacin convencional. Cada ecuacin es terminada por un punto y coma. ABEL utiliza los smbolos siguientes para operaciones l gicll.~:

Seccifl4.6

El lenguaje de descripcin de hardware ABEL

251

T a b Ia 4 -11 Un programa ABEL para al circuito de alarma de la figura 4-19.


module Ala~Ci rcuit title 'Alarm Ci r cuit Examp1e J. W aker1y , Hicro Systems Engineering ' AlJ\RMCKT device 'P16V8C ';
Inp.lt pins PANIC, ENABLEA, EXITING WnID:::~~, IXX)R, GARAGE

pin 1. 2, 3; pin 4, S, 6;

C\Itput pins
J\LARM

pin 11 istype ' com' ;

x . X. ;

ConStant definition Intermediate equation

SFX'URE WINIX:W , lXlOR , GARAGE;

equations
ALARM PANIC I ENABLFA & !EXITING , !SEX:'URE;

test..vectors ([PANIC,ENABLEA, EXITING,WINDOW, DOOR,GARAGE] ( .x . , X. , 1. X. , X. , X. ] ( O, O, . x. , X. , X. , X. ] ( O, 1, x. , x. , x. ] 1, 0, 0, X. , ( 0, X, 1 ( O, O, 0, 1, x. ] X ( O, O, O( 1. X. , X. , ( O, O, 1, 1, 1( 1.

"

-> -> -> -> -> -> -> ->

(ALAAM]I
( ( ( ( ( ( (

11;

01 ;
O] ;

1( ;
1] ;

ll;

01 ;

ene!

Ala~Circuit

ANO . OA. , , NOT (usado como prefijo). $ XO A. '$ XNOR. Como en los lenguajes de programacin convencionaJes, ANO (&) tiene precedencia sobre OA (I) en las expresiones. La direclivB filALTElWlITE hace que el compilador reconozca un conjunto alterno de sfmbolos para estas operaciones: + / . : +: y : :. respectivamente. Este libro hace uso de los sfmbolos predeterminados en todo el mismo. La instruccin opcional tes~vectors indica que a continuacin vienen los veC

& (ANO)

I (OR)
! (NOT)

S (XOR)
!S (XNOR)

IlIALTERNllTE

test_vectors
I~CIO"$ di!

prueba. Los W'CIOres de pruriJa asocian las combin3ciones de entrada con los va1oJ'es esperndos de salida: se utilizan :ma simulacin y prucba COIllO se expca en la seccin 4.6.7.
lOJ'CS de

pnlf!OO

252
. x.

Captulo 4
( ~sin

Principios de disei'io lgico combinaciorlal

im{xlnancill .. ,

El compilador reconoce varias constames especiales. incluyendo. X un bit si m pie cuyo valor es sin imponancia". La instruccin end marca el final del mdulo.
Las ecuaciones para salidas combinacionales utilizan el {)penuJor t/t (l.1ignacin

o>rraJor dt asiSrladdn no

Itmpori:P(lo, :::

no temporizadQ, =. el lado izquierdo dc la ecuacin nonnalmente contiene un nombre de sella!' El lado derecho es una expresin lgica, no necesariamente en la fonna de producto de sumas. El nombre de la sedal en el Indo izquierdo de una ecuacin puede ser opcionalmeme precedido por el operador NOT. !; esto es eq~ i va lente a la complemen lacin dcl lado derecho. Ellrabajo del compilador es generar un patrn de fusin de tal modo que la sellal nombrada en el lado izquierdo realice la expresin lgica en cl lado derecho.

4,6.2

Funcionamiento del compilador de ABEL

t'Cuncidn imtrmtdit,

El programa en la tabla 4- 11 realiza [a funcin de alarma quc describimos desde la pgi . na 2 15. La seal llamada ENABLE ha sido codificada como ENABLEA porque en ABEL la palabra ENABLE es una palabra reservada. NQ(c que no todas [as ecuaciones aparecen bajo la instrucn equations. Una ecuacin intemledia para un identificador SOOURO aparece con anterioridad. Esta ecuacin es meramente una definicin que asocia una expresin con el identificador SOOURO. El compilador ABEL sustituye esta expresin para el identificador SEX>URO en cada lugar en que aparece SEXiURO despus de su definicin. En la figuro 4 19 de la pgina 2 16 reali7.amos el circuito de alanna directamente de las expresiones SEGURO y ALARMA. utilizando mltiples niveJes de lgica. El com pilador AREL nO emplea expresiones pata interconectar compllel'lrul en esta manCrll. en vez de ello, "trunca" las expresiones para obtener un resullado de suma de productos de dos n\'eles mfnimo apropiado pam la realizacin en un PLD, De este modo. cu,lndo compila. la tabla 4-1 1 prod uciria un resullado equivalente al circuito ANO-OR que mos tmmos en la figura 420 de la pgina 216. la cual parece ser mnima. De hecho, lo c.~. La labia 4- 12 mue,<lm el archivo de ecuaciones sintcli7.lIdas creado por el compilador ABEL Note que el compilador crea ecuaciones solamente P.1rJ la seal ALAJUIIA la nica sal ida. La seal SEX;URO no aparece por ningn lado. El compilador encuentr.J una expresin mni ma de suma de productos tanto para ALARMt\ como para su complemento. ! ALARMA.. Como se mencion con anterioridad, muchos PlD tienen ItI capacidad selectiva de invertir. par"- invenir o no sus salidas ANO-OR. La "ecuacin de polaridad inversa en la tabla 4- 12 es una realizacin de suma de productos de !ALARMA Y seria utilizada si fuera seleccionada la irwersin de salida. En este ejemplo, la ecuacin de polaridad inversa tiene un tnnino de producto menos que la ecuacin de polaridad nonnal para ALAA.1.iA.. de modo que el compi ludor selecconanl esta ecuacin si el dispositivo sealado tiene inversin de salida seleccionable. Un usuario tambin puede fOf'7.31" al compilador para utilizar ya sea la polaridad nonnal o i",'ersa para una sellal al incluir la palabro clave "bJ.ffer" o 'invert". respectivamente, en la lisIa de propiedades istype dc la seal. (Con algunos compiladores de ABEL. las palabm clave pos" y "neo" pueden empicarse pam este propsito. pero \'ea 111 seccin 4.6.6.)

Seccin 4.6

El lenguaje de descripcin de hardware ABEL

253

T a bl a 4-12 Archivo de ecuaciones sintetizadas producido por ABEL para el

programa en la labia 4-11 .


ABEL 6.)0

Design alarmckt created TUe Nov 24 1993 Title: A1arm Circuit Exatrple Tit1e: J . Wakerly, Micro Systems Engineering

--.-----413

4/3

P-Terms

Fan-in Fan-out Type

------ -_._--- ---- ----------------6 1 Pin ALARM


P-Term Total: Total pins : Total Nodes : Average P-'l'ermJQ.ltput :

-3 7 O 3

(attrib.ites)

'.,t

Equations :
ALARM IENABLEA & ! EXI TIN:> & ! JXX)R
, ENABLEA , ! EXITIN:> , , ENABLEA & !EXITIN3 ,
! WINr:Gi

!GARAGE

, PANIC) :

Reverse-Polarity Equations :
!ALARM
,
(!

PANIC & WINOOW &

JXX)R

& GARAGE

! PANIC

EXITING

I ! PANIC & ! ENABLEAJ ;

4.6.3 Instrucciones WHEN y bloques de ecuaciones


Adems de las ecuaciones, ABEL proporciona [a instruccin WHEN como otro medio para especificar funciones de lgica combinacional en la seccin ~quatiQns de un programa ABEL. La tabla 4- 13 muestra la estructura general de una instruccin WHEN. similar a una instruccin IF en un lenguaje de programacin convencional. La clusula ELSE es opcional. Aquf E.xpresiallLogica es una expresin que resulta en un valor de verdadero (1) o falso (O). Que se ejecute la EcuacinVmJadua o EcuacinFalsa ;n.rlruccin WHEN

WHEN Logicbpruliofl 'IliEN


Trut'EquotiQII ;
ELSE

Falst'Equation;

Tabla 4-13 Estructura de una Inslruccl6n WHEN de ABEL

254

Capitulo 4

Principios de diseno lgico comblnaclorlal

bloqu~ d~ tcuaci6n

depende del valor de Exprni6nL6gica. Pero necesitamos ser un poco ms precisos acerca de lo que queremos decir por "ejecutadas". como se discute a continuacin. En el caso ms simple, Ecuad&l Y~n:Iad~ro y la opcional Ecum:i6nFalsa son instrucciones de asignacin. como en las primeras dos instrucciones WHEN en la tabla 4- 14 (para Xl y X2). En este caso, ExpresinL6gica es operada lgicamente (ANO) con el Jado derecho de Ecuacin Verdadero y el complemenlo de EffJresilIL6gica se opem con ANO con diado derecho de Ec"aci"Falsa . De este modo, las ecuaciones para X!A y X2A producen los mismos resultados que las correspondientes instrucciones WHEN pero sin emplear WHEN. Note en el primer ejemplo que Xl aparece en la Ecuaci"Yadodera. pero no hay EcuacinFalsa, Asf. qu ocurre a xl cuando ExpresMnL6gica (! A'B) es falsa'! Se puede pensar que el valor de Xl deberla ser sin imponancia para estas combinaciones de entrada, pero no lo es, como se explica a continuacin. Fonnalmente, el operador de asignacin no temporizado.:, especifica las combinaciones deentroda que deberan agregarse al conjunto de iniciacin para la sena! de salida que aparece en el lado izquierdo de la ecuacin. Un conjunto de iniciacin de la salida empieza vacfo y se aumenta cada vez que la salida apartte en el lado izquierdo de una ecuacin. Es decir, los lados derechos de todas las ecuaciones para la misma salida (no complementada) se operan con OR juntos. (Si la salida aparece complementada en el lado izquierdo, el lado derecho se complementa antes de ser operado con OAed), Asf. el valor de Xl es I solamente para las combinaciones de entrada para las cuales ExpresinL6gica (!AlB) sea verdad y dIado derecho de Ecuaci6nVerdadtro (C&! D) sea tambifn verdadero. En el segundo ejemplo, x2 npnrece en el tndo izqui erdo de las dos c<:uu<:ior ':S, de modo que la ecuacin equivalente mostrada pam X2A se obtiene al operar con OR los dos lados derechos despub de hacerlo con ANO para cada uno con la condicin apropiada. La Ecuaci6nVerdudera 'i la opcional EcuacinFalsa en una instruccin WHEN pueden ser cualquier ecuacin. Adems, las instrucciones WHEN pueden estar "anidadas" al utilizar otrn instruccin WHEN como la EcuacinFalsa. Cuando las instrucciones se encuentran anidadas. todas las condiciones que conducen a una instruccin "ejecutada" esln operadas con ANO. la ecuacin para x3 y su homlogo menos WHEN para X3A en la tabla 4- 14 ilustrnn el concepto. la Ecuaci6nYerdlldem puede ser otra instruccin WHEN si se encuentra encerrada entre signos de " llaves" ({ }), corno se muestro! en el ejemplo X4 en la tabla. Esto es apenas un caso del uso general de las llaves descrito b~emente. Aunque todos nueslros ejemplos WHEN han asignado valores a la misma salida dentro de cada parte de una instruccin WHEN dada. este no tiene que ser el caso. La instruccin WHEN del segundo caso al ltimo en la tabla 4-14 es un ejemplo de ello. Con frecuencia es til hacer ms de una asignacin en Ec.wci6n Verdadero o EcullcilIFalsa o ambas. Para este propsito. ABEL respalda los bloques de ecuacin en cualquier sitio en que respalde una ecuacin simple. Un bloque de ecuacil1 es sencilla mente una serie de instrucciones encerradas entre llaves, como se muestra en la ltima instruccin WHEN en la tabla. Las instrucciones individuales en la serie pueden ser instruc- ' ciones de asignacin simples o pueden ser instrucciones WHEN o bloques de ecuacin anidados. No se usa un punto y coma despu~ de una llave de cierre de bloque. Slo por di\'ersin. la tabla 4- 15 muestra las ecuaciones que el compilador ABEL produce para todo el programa de ejemplo.

Seccin 4.6

El lenguaje de descripcin de hardware ABEL

255

Tabla 4-14 Ejemplos de instrucciones \l,liEN.


1OOdu1e WhenEx
title
'WH~

Statll1el1t ExMples'

Input pins

A, B,

e, o,

E, F

pin;

OUtput pins

Xl, xIA, X2, X2A. X3. X 3A. X4 X5, X6, K7. xa . X9, X10 equations
WIiE2'i (111. I B) 'lllEN Xl

pin istype 'com'; pin istype 'can';

& !O;

XlA. ( !A , S)

&

le

& 10);

WHEN (A & B) THEN X2

I O;

ELSE X2

E I F;

X2A (A & B) & (e i O)


! (A & Bl & (E F);

WHElI (Al 'I'iW X3 O; ELSE WHEN (B) 'I1IDl lO " E; ELSE WHEN (el TH~ X] F: X3A (Al & (O ) I ! (A) & (B) & lE) I !(A) & I(B) & (C) & (F) WHEN (A ) THEN {Jo.'HEN (B) THEN X4 O:l ELSE X4 " E;
WHEN (A & B) THEN X5 " O;

ELSE Jo.treN lA I !e) THEN x6 E; ELSE \l,liEN (B , e) THEN K7 F;


WHEN (A)
TH~

xa " o & E & F; WHEN (B) THEN xa 1; ELSE X9 " O; XIO E;) ) ELSE ( Xa_OflE; WHEN (O) THEN X 9 1;
XlO " C & D; )
}

end WhenE><

256

Caprtulo 4 Principios de diseo lgico combinacional


T a b I a 4 -1 5 Archivo de ecuaciones sintetizadas produciclo por ABEL para el programa en la labia 4-14.

ABE!. 6 . )0

Equations:

Reverse-Polarity Eqns:

Design whenex created Wed Cee 2 199B Title: WHEN 5tatement Examples

Xl

lO & !A 'C&lO&B): le & lO & !A 'C& ! O&B) ;

IC &

!X1

I o I lC) ;

(A& !8

p-"""" . Fan-in ________ ____ o. Fan-out . __ ._-2/3 2/3 Gi3 Gi3

, ,
6 6 6 6 3

'lYPe .
Pin Pin Pin Pin Pin Pin Pin Pin Pin Pin Pin Pin Pin

_._ NMle _.. _.


Xl XlA

XLA .

!XlA I

3/, 3/'

".
212 2/4

2/3 1/3 2/3 1/3

3
5 3 5
Be"

1 1 1 1 1 1 1 1 1 1 1 1 1

X2 _ (O & A " B

'" X2A X3
X7

, e " A" , !B & E


, !A " E
I lB " F

", o
le) ;

!8

''''

(le

Ii !DliA'S

lOA X' X5 X6 X8 X, XlO

'!A'F); X2A_(O&A&8 'C&A&8 I 18 & E , !A " E I !B , F '!A&F); X3 IC & !A & lB & F I !A" 8 & E 10&A) ;
X3A lA " lB &- P I !A Ii 8 & E

I !B & !E & !f I lA " lE " 1F) ;

lX2A (!e & lO, " A " 18 , !E lF I !A & !E " ! F) :

36/42

!X3 (le I lA lO I !A

!A ,

, B & lE &A , !B , ! F ) :

,.

P-Term Total : JO

Total pins : 19 Total Nodes: O Average P-Term/OUtput: 2

(e"

!X3A (le " !A , I !A " 8 , lE I lO " A !X4

,.

10&A) ; X4_(O&A&8
'!A&EJ;

,. ", ,
,

lA ,

!a "

! P) ;

!O " A !A , ! E) :

XS _ (O" A" 81; X6 "' (A" lB Ii E 1 !e & lA " E):


}[7
z

lXS I !A ID I 181 ; !X6

lA ,

(A

IC & !A & F) ;

'''' ,
!X8
,

e & lA
! E) ;

le
lB ,

I ! F) ;

XB,,{D&A&E&F
, A & B

, !A" !E
'lO&!A) ;

", ,
D,

lF lA , E A& 18 , lE !O " A & (8) ;

X9

(O" !A '0& lBl;

!X9 ( ! O l A ' 8): lX10 (A , B

X10 le" o & lA IA&!B&E);

!e " I A&
!O ,

lA lA

! El :

Seccin 4.6
trutlLtab1e (inpUllist -,. /Jlllput-list 1
infJu t-lYIll/~

El lenguaje de descripcin de hardware ABEL

257

Tabl a 4-16
Estructura ele una tabla
ele verdad de ABEL.

-,. outlmt-\'UIII~ ;

;nputwtlu~

o,.

oUflmf-wl/lI~;

4_ 6_4

Tablas de verdad
/tibia //~ \'ur/ru/

ABEL proporciona una fonna ms paro especificar funciones lgicas combinacionales: la tublu de \'Ud(ld, con el fonnalo genero! moslrodo en la labio 4- 16. La palabm clave truth_ tabl e introduce una tnbla de verdad. Las lisla-efllruda y liSIa-salida suminisu-.m los nombres de las seales de entrnda y las salidas que ellas afeclan. Cado una de estas liSias es o un nombre de seal simple o un conjunlo: los conjuntos se describen completamenle en la seccin 4,6.5. A continuacin de la introduccin de la labia de verdad se encuentran una serie de instrucciones, cada una de las cuales especifica un \'alordeent.rada y un ' 'alor de salida requerido utilizando el o~rndor ". ,'. Por ejemplo, la tabla de verdad para un inversor se muestra a continuacin:
truth...,table IX O 1

troch.,.table
IiS/tl'~"'rod,,

IiS/(-Silfida
0fl~rodordl!

tabla dt! !'l!roar/ no lt!mJl-ori:1lI10,

o,.

o,. o,. o,.

oorxl 1; O;

No es nt.-cesario que la listade valores de enu-Jda est completa: solamcnteel conjunlo de iniciacin de la funcin necesita es pec i fica~ a menos que se encuentre habi litado el procesamiento de valores sin importancia (vase la seccin 4.6,6), La tabla 4-17 muestra cmo la func in del delector de nmeros primos descrita en la pgina 215 puede especificarse empleando un programa ABEL. Por comodidad. el identificador NUM se define como un sinnimo para el conjunto de cuatro bits de entrnda [N3 , N2 , Nl, NO1. permitiendo que se escriba un valor de entra.da de 4 bits como un entero dt.'cimal,

Tabl a 4-17 Un
module PrimeDet title ' 4-Bit Prime Nuwber Detector'
Inpu t and

el delector de

output pins

NO. Nl . N2 . N3
F

pino
pin istype 'cm' ;

ocfinition
[N3 ,N2.Nl.NO] ;
{NUM

NUM

trutlLtable

-, 1 -, 2 -, 3 -, -, 1 -, 11 -,

F)

13

-,

1, 1, 1, 1, 1, 1, 1;

end PrimeDet

258

Capitulo 4

Principios de diseo lgico combinacional Tanto las tablas de verdad como las ecuaciones pueden utilizarse dcnlro del mismo programa ABEL La palabra clave equations introduce una serie de ocunciones, mientr.lS que la palabra clave truth_table introduce una sola tabla de verdad.

4.6.5 Intervalos, conjuntos y relaciones


La mllyoria de los sistemas incluyen buses. rcgistros y ooos circuitos que manejlln un grupo de dos o ms sei1ales de manera idntica. ABEL proporciona varios atajos para la

Inlen 'u/o

cotifl.ln/O

definicin y el uso convenientes de tales sdales. El primer atajo es paro nombrar seales numeradas similares. Como se muestra en las definiciones de terminales en la Iilblu418. un /l/en 'u/o de nombres de seal puede definirse al establecer el primero y el ltimo nombres del intel'\'alo. separados por " . ", Por ejemplo. escribir ''N3 . NO " es lo mismo que escribir "N3. N2, Nl. NO". Note en la tabla que el intel'\'alo puede ser ascendiente o descendiente. A continuacin. necesitamos una faci lidad para escribir ecuaciones de manera ms compacta cuando un grupo de seales se manejan todas de manera idntica. a fin de reducir la posibilidad de errores e inconsistencias. Un COtljll/l/O de ABEL es sencillamente una coleccin de seales que se: manejan como una unidad. Cuando se: aplica una operacin lgica como ANO. OA o bien cuando se aplica una asignacin a un conjunto. es aplicada a cada elemento de dicho conjunto. Cada conjunto se define al principio del progr.una al asociar un nombre de conjunto con una lisl1l entre corchetes de los elementos del conjunto (por ejemplo. N.. !N3 , N2, Nl, NO 1 en la tabla 4- 18). La lista de dementos del conjunto puede emplear notacin abreviuda (YOUT.. ! y l .. y 4 J ). pero los nombres de: elemento necesitan no ser semejantes o tener cualquier correspondenci:a con el nombre del conjunto (COM P" EQ , GEl ). Los elementos del conjunto tambin pueden ser constantes (GT: ! O, 1] ), En cualquier C'olSO. el nmero y orden de los elementos en un conjunto son significativos. como \'eremos ms adelante. La mayora de los operadores de AREL pueden aplicarse a conjuntos. Cuando una operacin se aplica a dos o ms conjuntos. todos stos deben tener el mismo nmero de elementos. y la operacin se aplica de m:anera individual a los elementos del conjunto en posiciones parecidas. sin impon:ar sus nombres o nmeros. De estc modo. la ecuacin "YOUT '" N & M" es equivalente a cuntro ecuaciones:
yt _ N)&M3; Y2 N2 & M2; Y) . Nl &M1, Y4 .. NO&MO;

relaci6n optrodor rtloci(lIIill

Cuando una operncin incluye tanto vari:ables de conjunto como no penent.'Cicntes a un conjunto. las vari:ables no pertenecientes al conjunto se combin:an de manera individual con los elementos del conjunto en cada posicin. De esta forma. la ecuacin "ZOUT ", (SEL & N) i (!SEL & M)" es equivalente a C Ulltro ecuaciones de la forma "Zi :::(SEL & Ni)f(! SEL & M i )'"pam i igulll de Oa 3. Otra importante caracteristica es la capacidad de ABEL para convenir "relaciones" en expresiones lgicas. Una relaci6/1 es un par de operandos combinados con uno de los operl.ltloru re/ado/l o/es enumerados en la tabla 4-19. El compilador conviene una relacin en una expresin lgica que es I si y slo si la relacin es \'eroadera. Los operandos en una relacin son trnUldos como enteros sin signo. y el operando puede ser ya sea un entero o un conjunto. Si el operando es un conjunto. es tratado como un

260

Capitulo 4

Principios de disei'io lgico combinacional T a b Ia 4-20 Resumen de ecuaciones sintetizadas producidas por ABEL para el programa en la tabla 4-18.
P-Tenns

--------"2 1/2 1/2 1/2

------ ------- ---- """ ----------------2 1 Pin Y1


2 2 2 3

Fan- in

Fan-out

Type

(attribJtesl

16/ 8 23/ 15
1/2 1/2 16/19

'"
2/2

'"
2/2

3 3 3
8 8 2 2 8

1 1 1 1 1 1 1 1 1 1 1 1

Pin Pi n Pin Pin Pin Pin Pin Pi n Pin Pin Pin Pin

Y2

y,

Y1

ZO Z1

Z2 Z3

GE

GJ'R

'"

LTH
tJNLUC1<Y

69/ 62

Be"

P-Term Tot al ; 53 Total Pins ; Total Nodes : O

Average P-Term/o' tpu t :

" ,

@OCSET
de
? o~roJord~

asigtloc:i6n /10 ttmporiwdo "si/l imfJOrlan('a "

*4.6.6 Entradas sin Importancia Algunas ,~r.iones del compilador de ABEL ticnCH una capacidad limitada para manipular entrndassin importancia. Como ya se mencion, las ecuaciones ABEL especifican combinaciones de entrada que pertenecen aJ conjunto de iniciacin de una funcill lgica: se supone que las combinaciones restan!e!l pcrteneccn al conjunto de neulr.l.lizacill. Si algunas combinaciones de enttada pueden en su lugar a...ign3tSC aJ conjunto d. entonces el programa puede sercapazde usar esas entradas sin importancia para hacer un mejor trnbajo de minimizacin. El lenguaje ABEL define dos mecanismos para asignacin de combinaciones de entrada al conjunto d. A fin de utilizar cualquier mecanismo. se debe incluir la directiva de compilacin 90CSET en su programa o incluir "de;" en la lista ele propied:vles, istype de las salidas para las cuales usted desea que se tOlTlCn en cuenta las "sin importancia". El primer mecanismo es el ofNrodor d~ asignoci6n no temporiuulo sin importancia, ?= . Este operador se emplea en lugar de = en ecuaciones para indicar que las combinaciones de entrada coincidan con diado derecho deberfan ser colocadas en el conjunto d en vez del conjunto de inicializacin. Aunque este operador est documentado en el compilador ABEL que yo utiliz.o, desgraciadtunente parece estar defectuoso, de modo que no voy a hablar ms acerca de ello. El segundo mecanismo es la tabla de verdad. Cuando se habilita el procesamiento de los "sin imponancia", cualquiera de las combinaciones de entrada que no se encuentran expHcitamente enumeradas en la tabla de "erdad se colocan en el conjunto d. De este modo, el detector de dfgi tos BCD primos descrito en la pgina 232 puede ser especificado en ABEL como se muestra en la tabla 4-21. Un valor sin importancia es implicado para combinaciones de entrada 10- 15 debido a que estas conlbinaciones no aparecen en la tabla de "erdad y la directiva 9OCSE'J' est en efecto.

Seccin 4,6

El lenguaje de descripcin de harcfware ABEl

261

module Ikmtcare
ti tle ' Dont Care Examples'
QOCSE'T'

Tabla 4-21
Programa ABEl que utiliza entradas -SIn Importancia-,

Input and output pins


N) , .NO, A, B

pin;
pin istype 'can ' :

F, Y
NlIM. (N) ,.NO] ;
X . X .:

truth,..table (NUM->F)
0->0 ; 1->1: 2->1; 3->1 ; 4 ->0; 5- >1; 6->0: 7 ->1; 8->0 : 9->0:

trutlLtable (lA, B]->Y)


(0 , 0)->0 ; (O,l)->X ; (l.O ) -:.X ; (l,lJ - :.l ;

ene! Ikmtcare

Tambin es posible especificar combinaciones sin importancia de manera explcita. como se muestra en la segunda labia de verdad. Como se presenl6 muy al principio de esta seccin. ABEL reconoce . X. como una constanle especial de un bit cuyo valor es "sin importancia", En la labIa 4-21. el idenlificador "x" ha sido igualado a eSla conslante precisamenle para hacerlo ms fcil de escribir entradas sin importancia en la labia de verdad. Las ecuaciones minimizados resultantes de la tabla 4-2 1 se muestran en la tabla 4-22. Note que las dos ecuaciones para F no son iguales; el compilador ha seleccionado diferentes valores para las "sin importancia",

Equations :
F .. (lN2&N1 i lN) &: NO) ;

Tabla 4-22
Ecuaciones

minimi-

y al ;

zadas derivadas de la tabla 4-21.

Reverse-Polarity Equations :
!F 1N2 &- !NO iN] i !NI " !NO); !Y.( ! B) ;

262

Capitulo 4

Principios de disei'lo lgico combinacional T a bl a 4 -23 Estructura de los vectores de prueba

test_vectors

(inplII-/ist -> OUlplII./ t ) inpUI-mlue - > /1II1/IIII-1'(I/lIt;


ABEL
4.6.7 Vectores de prueba

inplll-I'U'U: -:> OUl/lut-I'(l/ue I

Los programas ABEL pueden contener vectores de prueba. como mostremos en In tabla 4-11 de la p:gina 2S 1_El formato gencnll de los vectores de prueba es muy semejante al

tescvectors
lisw-entnul/J

IIsw -salida

de una Ulbla de verdad y se muestra en la tabla 423. La palabra clave tes t_ vectors introduce uno tabl:! de verdad. La lisIa-en/rada y la liSia- salida proporcionan los nombres de IIIS seales de entrada y IIIS sal idas que aqullas afectan. Cada una de estas listas es ya sea un nombrt: de seal simple o un conjunto. A continuacin de la introduccin del vector de prueba tenemos una serie de instrucciones. cada una de las c u ale.~ especi lica un valor de entrada y un valor de salida esperado al utilizar el operador " ->". Los vectores de prueba ABEL tienen dos usos y propsitos principales:

l. l)resputs que el compilador ABEL traduce el progrnma en '"patrn de fusin'" paro un dispositivo en particular. simula 1:. operacin del dispositivo programado final al aplicar las entradas del vector de prueba a un mOOelo de softwore del disposit\"O y comparar sus salidas con las correspondientes saM as del vector de prueba. El diseador puede especificar una serie de vectores de prueba a fi n de verificarOObJemente queese dispositivo se com~ como se espera pata algunas o todas las c'CNllbirmc,onc:s de c:ntrnda. 2. Despus de que un PLD se programa fsica mente. la unidad de programocin aplica las entradllS del vector de prueba al dispositivo fsico y compara lIS salidas del dispositivo con las correspondientes salidas del vector de prueba. Esto se hoce paro verificar la correcta programacin y funcionamiento del dispositivo. Desgraciadamente. los vectores de prueba de ABEI... raro. vez hocen un muy buen lr"J.bajo en cualquiera de estas tareas. como explicaremos a continuacin. Los vectores de pruebo1 de la Ulbla 4- 11 se repiten en la tabla 4-24. excepto que par.a ef/X'tos de legibilidad supondremos que el identificador Xha sido igualado a la constante "sin importancia" . X.. y hemos agregado comentarla para numerar los vectores de prueba. La tabla 4-24 en realidad parece ser un muy conveniente conjunto de vectores de prueba. Desde el punto de vistn del diseador. estos vectores cubren en su totalidad la operacin esperada del circuito de alanna, como se detalla acto seguido. vector por vector: l. Si PANIC (PNICO) es l. entonces la salida de alomla (F) deberla estar encendida sin tener en cuenta los ()(TOS valores de entrad.'l. Todos los vectores restantes cubren los casos donde PANIC es o. 2. Si la alanna no est habililoda. enlonces la salida deberia estar apagada. 3. Si la olanna se encuentra habilitada pero estamos saliendo. entonces la salida deberla apagarse. 46. Si la alanna est habi litada y no hemos salido. entonces la salida deberla estar encen dida si cualquiera de las seales de sensor WINOOW.DOOR o GARAGE son O. 7. Si la alanna se encuentra habilitada, no hemos salido y todas las seales de sensores son l. entonces la salida deberla estar apagada.

Seccin 4.6 test_vectors


( [PANIC,ENABLEA , EXI TING,WINDOW,DOOR,GARAGE) X, X, x, x, 1, XI I

El lenguaje de descripcipn de hardware ABEl

263

I I I I I I

o,
O, O, O, O, O,

o,
1. 1, 1. 1, 1,

X ,
1.

O , O , O , O ,

X, X, O, x, X,
1,

X, X, X, O , X,
1,

xJ X J xJ -, I xJ -, I 01 -, I
1)

-, -, -, -, -,

[ ALARM ) ) 1) ; I O) ; I O] ; I

,1
"

Tabla 4-24 Vectores de prueba para el circuito de alarma en la tabla 4-1 1.

1J ;
1) ; 1) ;

'3 "

01 ;

'S " '7

El problema es que ABEL no maneja las entradas sin importancia como deberla hacerlo. Porejemplo. el "'ectocde prueba 1 deberfa probar 32 distinlas combinaciones de enmlda correspondientes a todas las 32 combinaciones de entradas sin importancia ENABLEA. EXITING. WINOOW. IXlOR y GARAGE. Pero no lo hace. En esta situacin. el compil ador ABEL interpreta "sin importancia" como: "al usuario no le interesa cul valor de entrada yo utilice" y asigna precisamente Oa todas las entrada.. sin importancia en un vector de prueba. En este ejemplo. se podra habcrescrito illCOrreCtamente la ecuacin de salida como " F .. PANIC & ! ENABLEA , ENABLEA & "; los vectores de prueba todava pasarlan. aun cuando el botn de pnico funcionaria solamente cuando el siste Ola se encuentre deshabilitado. El segundo uso de los vectores de prueba se encuentra en la prueba del dispositivo fsico. La mayorfa de Jos defectos fsicos en los dispositivos lgicos pueden detectarse utili7.ando ell1Iooi'lo Ji' bloqui'o i'lI fa lla simpli'. que supone que cualquier defecto ffsico es cquivaleme a tener una entrada o salida de compuerta simple bloqueada en un V".dor de Oo I lgico. Slo colocar junto un conjunto de vectores de prueba que parezca ejercitar las especificaciones funcionales de un circuito. como 10 hicimos en la tabla 4-24. no ganmtiza que todos los bloqueos en fallas simples sean detectados. Los vectores de prueba tienen que ser eJegidos de tal modoque todo posible bllXlueoen fal la cause un valor incom:cto en 111 salida del circuito para alguna combinacin de entrada de vector de prueba. La tabla 4-25 muesua un conjunto completo de vectores de prueba para el circuito de alarma cuando se realiza como un circuito de suma de productos de dos niveles. Los primeros cunuo vectores ,'crifican bloqueos en I de fal las en la compuerta OA mientras que los ltimos tres verifican bloqueos en Ode fallasen lascompuertas ANO; ~ltaque esto es sufi ciente para detectar todos los bloqueos en fall as simples, Si se sabe algo acerca de la prueba de fallas se puede generar vectores de prueba para pequeos circuitos a mano (como lo hice en este ejemplo). pero la mayora de Jos diseadores utilizan hemunientas automatizadas de lerceras panes para crear \'CCIOI""CS de prueba de alta CDlidad pan! sus diseos PLD. tescvectors
( [PANIC, ENABLEA., EXITIl{; , W:rm:a-I, DOOR. GARAGE) O , 1, lJ 1. 1. I

modelo de bloquro rll f(lllll simple

I I I I

I I

O, O, O, O , O , O ,

O,

1. 1. 1,
1, 1,

O , O , O , O , 1, O ,

O , "
1. 1. 1.

O , O , O,
1. 1.

1.

O , O ,

1J 1J OJ I OJ I OJ I 1J -, )

-, -, -, -, -, -, -,

[ALARM)) 1] ; I 1) ; I 1) ; I

'1 " '3


"

1 J,
O) ;

'S
"

Ol ; OL

Tabla 4-25 Vectores de prueba de bloqueo en falla simpte para la realizacin de suma de productos mrnima del circuito de alarma.

'7

Captulo 4

Principios de diseo lgico combinacional

4.7 El lenguaje de descripcin de hardware VHOL


VIIDL

A mediados de la d&ada de 1980. el Departamento de Defensa de Estados Unidos (DaD. Oepartmcnt of Defense) y el IEEE patrocinaron el desanollo de un lenguaje de descripcin de hardware de alla capacidad denominado VHDL El lenguaje ammccon las siguientes carncteristicas. que todavfa tiene :

hermnti~nlas

df" S(nlf"S;S

VUOL

VHDW7 VJfDL-9J

Los disenos pueden descomponerse jerrquicamente. Cada elemenlo de diseo tiene tanto una interfaz bien definida (paro. conectarla a otros elementos) como una especificacin de comportamiento precisa (proa simularln). Las especificaciones de componmniento pueden utilizar ya sea un algoritmo O bien una estructUr:l de hardware real para definir la operucin de un elemento. Por ejem plo. un elemento puede ser definido inicialmente por un algoritmo. para pennitir la verificacin del diseo de elementos de mayor nivel que utili;;a; posterionnente. la definicin algortmica puede ser reemplazada por una estructUr:l de hardware. La concurrencia. temporizacin y seales de reloj plCde ser todas modcloclas. VHDL maneja estructuras de circuitos secuenciales asincrnicos adems de siliCiflicos. La operacin lgica y comportamiento de temporizacin de un diseo pueden simularse. De este modo, VHDL comenz como un lenguaje de modelado y document:lcin. permitiendo que el comportamiento de diseos de sistemas digitales fuera especificado y simulado con precisin. Mientras que el lenguaje VHOL y el entomo de simulacin enUl importantes innovaciones por sf mismas, la utilidad y popularidad de VHDL dieron un salto cuntico con el desarrollo comercial de huramimtru de s(ntu is VHDL Estos programas pueden crear estructuras de circuito lgico directamente de descripciones de comportamiento VHDL. Si se utiliza VHDL, se puede disenar, simular y sintetizar cualquier cosa desde un circuito combinacional simple hasta un sistema microprocesador completo en un chip. VHDL fue estandarizado por cllEEE en 1987 (VHDL-87) y extendido en 1993 (VHDL- 93). En esta seccin \'eremos un subconj unto de caracteristicas del lenguaje que son legales bajo cualquier estndar. Describiremos carncteristicas adicionales para el diseo lgico secuencial en la seccin 7.12.

4.7.1 Flujo de diseo


Es til comprender todo el ambiente de diseno VHDL antes de saltar al lenguaje mismo. Hay vurios pasos en un proceso de disei\o basado en VHOL, frecuentemente de nominado e1 j1ujo dt disto. Estos pasos son aplicables a cualquier proceso de diseo basado en VHDL y se resumen en la figura 4-50 de ltl pgina 266.

flujo dt distiiQ

Seccin 4.7

El lenguaje de descripcin de hardware VHDL

265

1m 9 n rol

ida po derecho de u

El denominado "componente frontal" o "interfaz de usuario" comienza con averiguar el enfoque bsico y bloques de construccin al nivel del diagrama de bloques. los diseos lgicos grandes, como programas de software, son por lo regular jerrquicos. y

VHDL proporciona un buen marco para definir mdulos y sus interfaces y completar los
detalles ms adelante. En el paso de ajust~, una hemun.ienta de ajuste o ajustador mapea las primitivas sintetizadas o componentes con relacin a los recursos disponibles del dispositivo. Para un PLD o CPlD, esto puede significar la asignacK'n de ecuaciones a elementos AND-OR que estn disponibles. Para un ASIe, puede significar dejar las compucr1as individuales en un patrn y haJlar fonnas para conectarlas dentro de las restricciones lIsicas del AStC; estO se conoce como el proceso de ubicacin y (!nrutam;(!nto. El disci\ador por lo regular puede especificar restricciones adicionales paro esta etapa. Iales como la colocxin de mdulos dentro de un chip o las asignx:iones de tcnninaJ para las tcnninales externas de cntrada y saJidn. Una vez que se ha escrito algo de cdigo. usted quemi compilarlo. nalUralmcnte. Un ronrpiladQr VHDL analiza su cdigo por si luviem ellores de sintaxis y taJubi~n verifica que sea compatible con otros mdulos de los que depende. Tambi~n crea la infonnacin interna que es necesaria para que un simulador procese su disei'io posterionnente. Como en otrosesfuerros de programacin. usted probablemente no esperara hasta el final de la codificaci6n para compilar todo su cdigo. Haciendo un segmento a la vez puede evitarse

"di/f)r de I~r/f) VUDL

lpro J

por

266

Capitulo 4 Principios de diseno lgico combinacional

pawsdol
componente

!erarqulal
I

-,
codifleaci6n
..J

trontal

diagrama

compilacin
..J

de bloques : (muy doloroso!) . _. _. '

slmulad6nl varificaei6n

............. _.

(doloroso. pero no fuera de lo corn(n)

-"
posterior

pa... ""

slntesis

verificacin de tempor\laein

ajust&.'1ugar

-,

ru"

Figura 450 Pasos en un flujo de diseo VHOL u otro basado en HOL.

sinm/mlor VlIDL

\'erijicuci6n

\'erijicucin tll'

ll'mpori:aci6n

s(nltsis

la proliferacin de errores de sintaxis, nombres inconsistentes y asf sucesivamente, y cienamente puede darle a usted un sentimiento muy necesario de progreso cuando el fina l del proyecto pare7.ca inalcanzable! Quiz el paso ms satisfactorio viene a continuacin: la simulacin. Un simdador VHDl.le pennite definir y aplicar entradas a su diseo, y observar sus salidas. sin tener en ningn mumento que construir el circuito ffsico, En proyectos pequeos, el tipo que usted puede hacer como trab3jo en casa en una clase de diseo digital, probablemente generarla entradas y observara salidas manualmente, Pero par" proyectos grandes. VHDL le proporciona la capacidad de crear "bancos de prueba" que automlticamente aplican entmdlls y la~ compamn con l a~ snlidas e..~ pernda ~. En ~lidad, la simulacin es apenas una pieza de un paso mayor conocido como I't'rificaciII . Seguro, es sntisfoctono observnrque su circuito simulado produce salidas simulacl,s, pero el propsito de la simul3Cill es lTIl'I yor: I'trificar que el circuito tr.l.baje como se desea. En un proyecto tpicamente grande, una cantidad de esfuerzo I'ltstancial se gasla tanto durante como despos de la eUlpa decodifi cacin para definir casos de prueba que ejerciten el droJito en una anlplia gama de condiciones de operaciones lgicas. El hecho de encontrdl' los ell on:s del di~o (!n esta eLapa es de gr.lII importanc:ia: si los C IIOrros ~ descubren ms adelante, todos los llamados pasos del "componente posterior" deben po!" lo ~ular ser repetidos. Advicna que existen al menos dos dimensiones de verificacin, En la venJicacin filllciollllJ, estudiamos eJ funcionnmienlO lgico del circuito sin tomar en cuenllllas consideraeiones de temporizacin; los rclllrdos de compuerta y otros parnmetros de temporizacin se: consideran como cero, En la l't'rificClcin dt temporizacilI. estudiamos la oper.cin del circuito incluyendo retardos estimados, y ,'erificamos que el ammque, retencin y otros requerimientos de tcmpori7.acin para los dispositi\'OS secuenciales como son los biestables o mp-nops se satisfagan, Es COStumbre efectuar una verificucin jilllciomil minuciosa antes de comenzar los pasos del componente posterior. Sin embargo. nuestra habilidad paro hacer In verificacin de remJoriwcil en esta etapa con frecuencia es limillldn. puesto que la lemporiz.ncin puede ser fuertemente dependiente de los resultados de sntesis y ajuste, Podemos hacer una verificacin de temporizacin preliminar para ganar algo de consuelo con el enfoque toeaI del diseo. pero la verifiC'dCin de temporizndn detallada debe esperar Msta el final. Des~ de la vcrificaciOO, estamOS listos para movemos a la etapa de "componente posterior" , La naturuJe7.a de esta eUlpa y las herramientas para la misma vnrfan un poco, dependiendo de la tecnologfa que se va a utilizar (!n el diseflo. pero hay tres pasos bsicos, El primero es la s(ntu;s, que convierte la descripcin VHDL en un conjunto de primitivas o

Seccin 4.7

Ellengua]e de descripcin de hardware VHOl

267

componentes que pueden ensamblarse en la tecnologa destino. Por ejemplo, con los PLD o CPLD, la nerramienta de sntesis puede genernr ecuaciones de suma de productos de dos ni,,eles. Con IosASIC, se puede genernr una lista de compuertas y una lista de n!d que especifiea cmo deberfnn inleroonectarse. El diseador puede "ayudar" a la hemunienta de sntesis al especificar ciertas "slriC(:;OfIL$ especficas de la tecnologa, tal como la cantidad mxima de nmero de niveles lgicos o la fuerza de los sepamdores lgicos que se VlU1 a utilizar. En el paso de ajuste. una herramienta de ajuste o ajustador mapea las primitivas sinletizooas o componentes con relacin a los recursos disponibles del dispositivo. Paro un PLD o CPW, esto puede significar la asignacin de ecuaciones a elementos AND-OR que estn disponibles. Para un AST C, puede signiftcar dejar Ia.~ compuertas individuales en un patrn y hallar focmas paro. ronectnrIas dentro de las restricciones fTsicas del ASIC; esto se ~ como el proceso de llbicocioo y e"m'amie,,'o. El diseador por lo regular puede especificar restricciones adicionales paro. esta etapa. tales coroo la colocacifl de mdulos dentro de un chip o las asignociones de terminal pnru. las terminales externas de entrada y salida. El paso "final" es la verificacin de temporizacin del circuito que est reci~ n ajustado. En esta etapa aparece el retardo de las seales en el circuito real debido a la longitud de los alambres, las cargas e l~ctricas y otros factores que se pueden calcular con una precisin razonable. Es habitual durante este paso aplicar los mismos casos de prueba que se utilizaron en In verifi cacin funcional, pero las pruebas se realizan en el circuito tal y como se va a construir en realidad. Como sucede en cualquier otro proceso creativo, ocasionalmente se: puede llevar dos pasos para adelame y uno para atrs (iO peor!). Como se infiere de la figura, durante la codificacin se pueden encontrar problemas que nos obliguen a regresnr sobre nuestros pasos y volver a pensar en nuestrajerarqufa, y casi con certeza se tendrn eITOres de compilacin y simulacin que nos fonarn a volver a escribir partes del cdigo. Los problemas ms dolorosos SQ[] aquellos que encontramos en el componente posterior del flujo de diseo. Por ejemplo, si el diseo simetizado no ajusta en un FPGA disponible o no satisface los requerimientos de temporizacin. se puede tener que J't;g~sat tan lejos como para volver a pensar todo el enfoque del diseo. Es algo que vale In pena recordar: las herramientas excelemes todavfa no sustituyen un pensamiemo cuidadoso al principio de un diseo.

lista de"d I?stricdo"eJ ajust, ajw;uufor

ubicad&! y ,,,ruwmit'nfo

Imagc 1 prO!

~Iel

pe.

el "'::C.1(.

u r

268

Capitulo 4

Principios de diseo lgico combinacional


lb)
entidad A

l')

8rQ1.Jitecwra

arquilecwra A

omIda' B

entidad e

arquitectura B

entidad E

Figur a 4-51
Arquitecturas y entidades

VHOL: al concepto
de "envoltura"; b) uso jerrquico.

8rqyitectura E

arquitectura F

4.7.2 Estructura de programa


VHOL fue disei\ado con principios de progr.unacin estructurada en mente, tomando prestadas ideas de los lenguajes de programacin de software Pascal y Ada. Una idea clave es definir la inteaz de un mdulo de hardware mientras se ocultan sus detalles internos. De este modo, una tlllidtuJ VHDL es simplemente una declaracin de las entrndas y salidas de un mdulo, mientras que una aTrfuilecl ura VHDL es una detallada descripcin del comportamiento o estructura interna del mdulo. La figura 4 5I(a) ilustra el concepto. Muchos diseadores gustan de pensar en una declaracin de entidad VHDL como una "en\'Oltura" para la arquitectura, ocultando los detalles de lo que se haJla dentro mientras proporcionan los "ganchos" o conectores para que OlTOS mdulos la usen. Esto fonnn los fundamentos para el diseo del sistema jerrquico: la arquitectura de una entidad de nivel superior puede utilizar (o "instanciar" ) olras entidades, mientras oculta los detalles de arquitectura de entidades de nivel ms bajo de las de nivel ms alto. Como se muestra en (b), una arquitectura de mayor nivel puede hacer uso de una entidad de menor nivel mltiples veces, y mltiples arquitecturas de ni\el superior pueden emplear la misma de nivel inferior. En la ligura, las arquitecturas B, E y F pcnnanecen aisladas; no utilizan ninguna otra entidad.

t nlidlJll ,rquitecfum

Seccin 4,7

El lenguaje de descripcin de hardware VHDL

269

Tl:;gen ~ otwida por jerechos je uto

,- ----

(por ejomplo, I!1Yd ... " Ion , \1M)

----- ------- ---

archivo de texto

ir ,
, , , , , ,
dellnlc;ln de arquitectura

11

I .,
Figura 452 Estructura de archivo de programa VHDL.

._-------------------

En el archivo de texto de un programa VHOL. la declaracin de entidad y la definicin de arquecl/ro estn sepamd:ts. como se ilustra en la figura 4-52, Porejcmplo. la tabla 4-26 es un programa VHDL muy simple para una compuerta "inhibitoria" de 2 entradas, En

declaracin dt tntidad lll'jinicin de arrrtiltcfllrtr

proyectos grandes. las entidades y arquitecturas se definen en ocasiones en archivos pot" separado, los cuales el compilador integra de acuerdo con sus nombru declarados. Como oltOS lenguajes de programacin de alto nivel. VHDL generalmente ignora los espacios y los saltos de !Jnea, y stos pueden proporcionarse como se desee para mejorar la legibilidad. Los comen/arios comienzan con dos guiones (- - ) y finali7.an con el final de la linea. VHDL define muchas cadenas de caracteres especiales, denominadas palabras reun 'adtu o palabras clave. Nuestro ejemplo incluye varias de ellas: ent.i t y, por t. i s , in. Out , end. architecture. begin. when. el se y noto Los itlttntificadores definidos por el usuario comienzan con una letra y contienen letras, drgitos y guiones bajos, (Un guin bajo no puede seguir despus de otro guin bajo o ser el ltimo canicter en un identificador.) Los identifi cadores en el ejemplo son Inhibit. X. Y, BIT. Z e Inhibit_arch. "BIT" es un identificador integrado para un tipo pr-edefinido; no se considera una palabra reservada porque puede ser redefinida. Las palabms reservada.s y los identificadores no son sensibles a maysculas y minsculas, entity Inhibit is port (X,Y: in BIT; Z: out BIT) ; end Inhibit; al so know as 'BUT-NOT' as in 'x but not y' -- Isee (Kli r. 1972])

t Dmf'ntlJ rilJS po/abros ff'Sf'n'ada$ PlllabT(J$ c/lI't!

idtntificadQt'ts

Tabla 4-26 Programa VHDL para una compuerta

"nhibitoria-.

a rchi tectur e Inhibit_arch of I nhibit i s begin Z < _ ' 1 ' when X. ' l ' and Y. 'O ' else ' O' ; end Inhibit_arch ;

270

Capitulo 4 Principios de diseo lgico combinacional

Tabla 427
Sintaxis de una
declaracin de

entidad VHOl.

entity ~ntit)'.nam' , //IOOe signal.t)1H! po" (sigila/-lit/mes signa/-names mOlle sigllal-t)7~ :


molle sigl/a-f)pe ) ; siglla/-aames end entit)'-name;

Una dcclwnci6n de e ntidad bjsica tiene la sinuuis moslnlda en la tabla 4-27. Apane

"ueno
declaracin de plleT1Q

de nombrar la entidad. el propsito de la declaracin de enlidad es definir sus seales de interfaz externa o p rlertos en su parte de declamci6n de puenos. Adems de las palabras clave en ey. is. por e y end. una declaracin de entidad tiene Jos elementos siguientes:
Un identificador seleccionado por el usuario para nombrar la emidad. signal-name Una lista separada por comas de uno o ms idenficadores seleccionados por el usuario para nombrar seales de interfaz externa. mOlle Una de cuatro palabras reservadas, e.<pecifi cando la di reccin de la seal:
enJit)'-/lllme

i n La seal es una entrada a la entidad. ou t La ~al es una salida de la entidlld. Note que el valor de una seal asf no puede ser "ledo" dentro de la arquitectura de la entidad, solamente por otras entidades que la utilicen. buf fer La seal es una salida ele la entidad y su valor tambin puede ser ledo dentro de la arquitectura de la entidad.

inout La seal se puede emplear como una entrada o como una salida
de la entidad. Este modo es tfpicamente utiliz.ado par'! tenni nales de entrada/salida de tres estados en PLD. signtll -/)'pt! Un tipo de seal que est integrada o defi nida JXlr el usuario. Tendremos mucho qu decir acerca de tipos en la siguiente subseccin. Advierta que no hay punto y coma despus del siglud-l)'JH! final: intercambiando el partntesis de cierre con el punto y coma despus es un error comn de sintaxis para los programadores de VHDL principiantes. los puertos de una entidad y sus modos y tipos son todo lo que se \'C por otros m6dulos que los utilizan. La operacin interna de la entidad se especifica en su defi/licidn lle arquirectl/m. cuya sintaxis general se muestra en la I3bla 4-28. El i!lltil)!./Iame en esta definici n debe ser el mismo que el dado anterionnente en la declarol.ci6n de entidad. El archirecture-name es un identificador seleccionado por el usuario. por lo regular relacionado con el nombre de la entidad: puede ser el mismo que el nombre de la entidad si asf se desea. Las seales de interfaz Clttema (pucnos) de una arquitectura se heredan desde la parte de la declar'!ci6n de puen o de su correspondiente declaracin de entidad. Una arquitec. tura I3mbin puede incluir seales y otras declaraciones que sean locales a e&1 arquitectura. de manem similar o otros lenguajes de 0110 ni vel. La.~ declaraciones comunes mltiples entidades pueden hncel1ie en un "paquete" por separodo. utili7.ado po.- toda~ las entidades.. como se discute ms adelante.

/Iefillicidn dt arqu iu cturn

Se<x:in 4.7

El lenguaje de descripcin de hardware VHOL Tabla 4-28 Sintaxis de una definicin de arquitectura VHDL

27 1

architecture m r lrileclllrt: /Illml' of l'f1firy .namt' is


,)'/)(' declartllitms

.fign,,1 declarmions cl)nstalll ,leclClm/io/ls fimctioll tlefinitions p rocedll n: dcfinitions component decl(lrruions
begin

concurrent-Sll/teme,,'

...

concurrent sta/emen' end arrhiteClllrename;


Las declaraciones en la tabla 4-28 pueden aparecer en cualquier orden. En su debi do momento discutiremos muchas clases diferentes de declaraciones e instrucciones que pueden aparecer en la definiciQ de arquilecluro. pero, para empezar, lo ms fci l es la signa! dec/l/rations. Nos da la misma infonnacin acerca de una seal que en una declaracin de puerto, excepto que no se especifica ningn modo:

dtclumci6n dl' mj(,1

signal siglla/.names : signal.t>7)(';


Pueden definirse cero o ms seales dentro de una arquitectura y ms o menos corresponden a los alambres que se identifican en un diagrama lgico. Pueden leerse o escribirse dentro de la definicin de la arquitectura y. como otros objetos locales. puede hacerse referencia a ellos solamente dentro de la definicin de la arquitectura que los abarca. Las \'l,dables VHDL son semejantes a las seales, excepto en que por lo regular no lienen signi lkucin fsica en un circuito, De hecho. note que la tabla 4-28 no tiene provisin para ~declarac i ones de variables" en una definicin de arquitectura.. En vez de ello. las variables se utilizan en las funciones, procedimientos y procesos VHOL. cada uno de los cuales discutiremos ms adelante. Dentro de estos elementos de progrnma, la sintaxis de una decf(lroci6n de l'uriable es precisamente como la de una declllnlcin de seal. excepto porque la palabro clave variable se empleu:

\'uriub/l'

dl'c/(lnJ6n dl' mrillblt

'

variable I'flnable /I(II1/es : l'tlriabll'o/ypt!;

4.7.3 Tipos y constantes


Todas las seales. variables y constantes en un programa VHOL deben tener un "tipo" asociado. Ellipo especifica el conjunto o intervalo de valores que el objeto puede tomar. y tambin hay tpicamente un conjunto de operndore..~ (tall!,~ como suma. ANO. ctc.) :'50ciados con un tipo dado. VHDL tiene llpenas unos cuantos tillOS pn:dl'finidos. enumerados en la tabla 4-29. En el resto de este libro. los nicos tipos predefinidos que utilizaremos son i n teger. c haracter y booleano Usted podrfa pensar que los tipos con nombres '"'bi t " y "bi e vec tor" seran esenciales en el diseo digital. pero resulta que las versiones definidas por el usuario de e..\IOS tipos son ms tilc.~. como discutiremos en breve.
bit
,ipo

,ipos prWl'ji"ido.<

b it.,vec:tor
bool.."

character integer ",,1

severity_level string tirre

Tabla 4-29 TIpos predefinidos


deVHDL

272

Capitulo 4

Principios de diseo lgico combinacional

T abl a 4 - 30
Operadores predefinidos para lOs tipos

OperMIo,... inceger

O".,ltdo,... tooledl1
anO
AND OR
NANO

integer y boolean deVHOl.

suma multiplicacin divisin

="

0'
nand

mod divisin entera rem residuo


abs

.,

valor absoluto exponenciacin

no, NOR xo, OA Exclusi,'o xno, NOA Exclush'o no, complemcnlaciII

integer
boo1.." true (I'emadero), false (jabo}

character (cardc/er}

tipo d~fin;do por


~11I5ua,io

tipo enumerado

El tipo integer (etrfero) se define como el intervalo de enteros que incluye por lo menos el intervalo desde -2. 147,483.647 hasta +2. 147,483.647 (_2 31 + I hasta +231- 1): las implementaciones de VHDL pueden extender este intervalo. El tipo boolean (booletmo) tiene dos valores, crue ( ,'erdade ro) y false (jabo), El tipo character (carCler) contiene todos los caracteres en el conjunto de caracteres ISO de 8 bits: los primeros 128 son los caracteres ASCn . Los operadores integrados para los tipos intcgcr y boolean se enumeran en la tabla 4-30. Los tipos ms comnmente utiliz.ados en los programas VHDL tfpicos son los lipos definidos por el usuan'o, y el ms comn de estos son los lipos ellllmenuJos que wn definidos al enumerar sus volores. Los tipos predefinidos boolean y character son tipos enumerados. Una declaracin de tipo para un tipo enumerado tie ne el foonato mostrado en la primera Unea de la tabla 4-3 1. Aqu. l'llluelist es una liSia separada por comas (de enumeracin) de lodos los valores posibles del ti po. Los valores pueden ser identificadores definidos por el usuario o carncteres (donde un carcter' es un carcter

T abl a 4-3 1

type type-nome ia (\'afue-list ) subtype subtypename is type-""me sUln to e"d; subtype subtype name is type- fwme stan downto end;

Sintaxis de declaracio-

nes de constantes y tipo VHOL.

constant consroflrname: ly/)(!"ame ; _ ,'alije;

Seccl6n 4.7 type STO_ULOOIC is ( ' U' , ' x' , ' O' ,
' 1' , 'Z ' ,
' W' ,

El lenguaje de descripcin de hardware VHDL Tabla 4-32 Definicin dellipo stcUogic VHOL

273

-- No inicializado

-- Forzar desconocido Forzar O -- Forzar 1 -- Alta imPedancia -- Dbil Desconocido


- -Db il O -- Dbil 1 Sin il!X)rtancia

(vase la seccin 5.6.4 para una discusin de

' L' ,
' H' ,

"resolved").

. -' l,

subtype STOJ.<X;IC is resolved srD_ULOOIC;

ISO encerrado en comillas simples). El primer estilo se utiliza con mayor frecuencia para definir casos o estados para una mquina de estado. por ejemplo,
type traffic_light_state is (reset, stop, wai t , gol;

El segundo estilo se emplea en el caso muy importante de un tipo lgico estndar definido por el usuario s td_ logi c. mostrado en la tabla 4-32 y parte del paquete est4ndar IEEE 1164, discutido en la seccin 4.7.5. Este tipo incluye no solamente ' O' Y '1 ' . sino otros siete valores que se han encontrado tiles al simular una seal lgica (bit) en un circuito lgico real, como se explica con m:b detalle en la seccin 5.6.4, VHDL tambi~ n pennitc a los usuarios CTellI subtipos de un tipo, aplicando la sintaxis que se muestra cn la tabla 4-31. Los valores en el subtipo deben ser un intervalo contiguo de valores del tipo base, desde start hasta end. Para un tipo enumerado, "conliguo" se refiere a las posiciones en la m/ul- /ist definida original. Algunos ejemplos de definiciones de subtipo se muestran a continuacin:
subtype twovaLlogic is st<t..1ogic range ' o ' to ' 1 ' ; subtype fourval_logic is st~logic range ' X' to ' Z' ; subtype negint 15 integer range -2 14 7483647 to -1; subtype bitnum i5 integer range 31 dc7wnto O;

std_logic

subtipos

Note que el orden de un intervalo puede especificarse en forma ascendente o descendente, dependiendo de si se emplea t o o dohnto. Existen cienos atributos de subtipos paro los cuales esta distincin es significativa. pero no los utilizaremos en este libro y ya no Jo estudiaremos.

to

dok-ntO

In,

, P ot J l P r

,h

274

Capitulo 4

Principios de dlserio lgico combinacional

Tabla 4 -3 3 Sintaxis de las declamciones de arreglo

type t),JU-name

1S

array (slan to l'nd of t!ll'mtml-t)'pt!;

type t)'/Jl'-lIame is array (sUln downto l'lId ) of t!ll'ml'llI -t)'pt! ;


type 1)'pt!-lIallle i5 array (rcmgt- t)'pt! ) of t!lttllt nt-I)'p e; type t)'pt-lIame is array (mngt- t)'pt! ranqe sta rt to 1'IIdl of t!ll'lnl'llt- t)'p e;

deVHOl.

type t)'pt-IIQ/IIt 1S array (rcmgt- t)'pt! ranqe slan doo.mto end ) oi eletlll'nt-t)'pe;

VHOL tiene dos subti pos integer predefinidos. que se definen a continuacin: subtype natural is integer range O to highesl -intl'gu; subtype positive is integer ranqe 1 to higllesl -inll'ger:
constaflll's dl'clllradlm dl' eOllS/llntt

Las constantes contribuyen a dar legibilidad. mantenimiento y ponabilidad a los


progmmas en cualquier lenguaje. La sintaxis de una dt clMoci(m de conslOllle en VHDL se mueslf1l en la ltima Ifnea de la tabla 4-3 1: se muestran ejemplos enseguida: consta nt auS_SIZE: intege r : .. 32; -- ancho del componen te cons tant MSB : i nt ege r : . BUS~ I ZE - l ; - - nmero de b i t de l MSB consta nt Z: charac ter : . Z' ; -- s innimo pa ra e l valor Hi -Z Note que el valor de una constante puede ser una expresin simple. Las constantes pueden utilizarse en cualquier sitio en que el valor correspondiente pueda ser empleado. y pueden ubicarse para un uso especialmente adecuado en las definiciones de tipo. como lo mostraremos pronto. Otra catcgorla muy importante de tipos definidos por el usuario son los tipos arreglo. Como otros lenguajes. VHDL define un amg{o como un conjunlo ordenado de elementos del mismo lipo. donde cada elemento es seleccionado por un {m1ice de or~lo. La tabla 4-33 muestra varias versiones de la sintaxis para la declaracin de un arreglo en VHOL. En las pri meras dos versiones, Slon y end son enteros que delinen el intervalo posible del fndice del arreglo y de aquf el nmero total de elementos del arreglo. En las ltimas tres versiones. la totalidad o un subconjunto de los valores de un tipo existente (tipo j",e",olo o lipo mngo) son el intervalo o rango del fndice de arreglo. Los ejemplos de las declaraciones de arreglo se proporcionan en la tabla 4-34. El primer par de ejemplos son muy ordinarios y muestran tanto intervalos ascendentes como descendentes. El ejemplo siguiente muestra cmo una constante, WORD_ LEN, puede usarse con una declarocin de arreglo. mostrando lambifn que un vaJorde intervalo puede ser una

tipos arrrg/o
arr~glo

(lIdiel' dl' llrrtg/a

Seccin 4,7

El lenguaje de descripcin de hardware VHDL

275

type monthly_co~~t is array 11 to 12) of integer; type byte is array (7 downto O) of SIDJOOIC;
constant I>RDJ.EN : i nteqer : _ 32 ;

Tabla 4-34 Ejemplos de declaraciones de arreglo VHOl.

type word is array lOOROJ.EN-l downto O) of STDJiXIC constant NUM-REGS: inteqer : ~ 8; type r~[ile is array 11 to ~ ) of word ;
type
s~tecount

is a rray Itra ffic_light-fit atel of integer;

expresin simple, El tercer ejemplo muestra que un elemento de arreglo puede ser por sr mismo un arreglo, creando asf un arreglo bidimensional, El ltimo ejemplo muestro que un tipo enumerado (o un subtipo) puede especificarse como el intervalo del elemento de arreglo: el arreglo en este ejemplo tiene cuatro elementos, con base en nuestr.l. definicin previa de traffic_l ight_state, Se considera que los elementos de arreglo estn ordenados de izquierda a derecha, en la misma direccin del intervalo de ndiee, De este modo. los elementos que estn en la extrema izquierda de los arreglos de tipos monthly_count. byte, word. reg_f i le y sta tecount, tienen ndices 1. 7, 31 , 1 Yreset, res>e(:tivamenle, Dentro de las instrucciones de programas VHDL, se tiene acceso a los elementos de arreglo individuales utilizando el nombre del arreglo y el ndice del elemenlo entre pan!:ntesis, Por ejemplo, si M, B. W, R y S son seHales ele variables de los cinco tipos de arreglo que se definen en la tabla 4-34, enlonces todos estos elementos MI 11), B(5). W(WORD_LEN-5 I , RI1, C) .R(l) y S(reset) son vlidos, Las litero/~J de arrrglo pueden especificarse al enumerar los valores de los ciernen tos entre paftntesis, Por ejemplo. lo variable byte B podrfa establecerse completamente con unos medionte la instruccin siguiente
B: _ ('1' ,' 1'. ' 1' , ' 1 ' . '1' . '1' . '1' . '1' );

Ultral dt (lrrtglQ

VHDL tambin tiene una notacin abreviada que permite cspedfi car valores mediante el ndice, Por ejemplo, paro establecer toda la variable word Wa unos excepto paro Jos ceros en el LSB de cada byte, se puede escribir
W: = IO_ > 'O' ,8_> 'O' , 16_>'O',24a>'O'.others_>'I') ;
Los mtodos que se acaban de describir trabajan para arreglos con cualquier e1~ment t)'pe. pero la manera ms rl:il de escribir una li tcrul de un tipo de am:glo STO_ LOGIe C!'I emplear una "cadena de caracteres", Una cadtma VHDL es una secuencia de caracteres ISO enccrr:ldos entre comillas dobles, tal como "Hola all", Una cadena es precisa-

others

rnd~na

dt curoCltl'tJ

mente un am:glo de caracteres; como resultado, a un amgio STD_ LOGre de una longitud dada se puede asignar el valor de una cadena de la misma longitud, mientras los caracteres en dicha cadena sean tomados del conjunto de nueve caracteres definidos como Jos posibles valores de los elementos de STD_ LOGre: ' O' . '1 ' . ' U' . y as! sucesivamente, De esta forma. los dos ejemplos anteriores pueden volvCf' a esaibirsc como sigue:
B : _ '11111111'; W : . '1111 1110111111101111111011111110';

276

capftulo 4 Principios de disei"lo lgico combinacional

polcitI de arrrglQ

operodorde
conc(Jle~cin

&

Tambin es posible hacer referencia a un subconjunto contiguo o porcin de un arreglo al especificar los ndices de inicio y final del subconjunto. por ejemplo. M (6 to 9) . 8 13 down to O) , W(15 downto a ), R12. 1 downto O) . RIl to 2) . S (stop t ogo). Note: que la din:cci60 de la porcin debe ser la misma que la del arreglo original. Finalmente. usted puede combinar arreglos o elementos de arreglos empleando el operador de concatenacin &, el cual vincula arreglos y elementos en el orden escrito. de izquierda a derecha. Por ejemplo, 'O' & ' 1 ' & 'lZ' es equivalente a OllZ' . y la expresin B ( 6 down to O) & 8 (1) produce un corrimiento circular ola izquierda de I bit del arreglo Bde 8 bits. El tipo de arreglo ms imponante en programas Hpicos VHDL es el tipo lgico definido por el usuario eslndor 1164 del IEEE s t<t-logi c_vec t o r, que define un conjunto ordenodo de bits S t d_log ie. La definicin de este lipo es: type Snu..o:;I~VEt.'ItJR is array ( natural r ange <> 1 o f SIDJ,CGIC;

tipo de arrtlglo no reslringido

ste es un ejemplo de un tipo de amglo no "l/ringido: el intervalo del arreglo no est especificado. excepto porque debe ser un subintervalo de un tipo definido. en este caso. na tural . Esta caracterfstica de VHDL nos pel lllilc desanollar arquitecturas. funciones y otros elementos de programa en una manera ms general. algo independiente del tamao del arreglo o su int.ervalo de valores de ndice. Un intervalo real se especifica cuando a una seal o variable se asigna este tipo. Veremos ejemplos en la siguiente subseccin.

4.7.4 Funciones y procedimientos


fuJtCjoo

(J'Bumen1o.t re1u/ludo
definicin de funcin

pardmelrosfomw/es part1metros reales

Como una funcin en un lenguaje de programacin de alto nivel , una funcidn VHDL acepta un nmero de argumentos y devuelve un rt!su/tado. Cada uno de los argumentos y el resultado en una definicin de [uncin VHDL o llrurutda de funcin tienen un tipo det.erminado. La sintu.is de una defin icin de funcin se muestra en la tabla 4-35. Despuls de dar el nombre de la funcin , numera cero o ms pardmetros formales que se utilizan dentro del CUClpCI de la funcin . Cuando se llama la funcin. los xmimelros "aJes en la llamada de funcin sustituyen a los parmetros formales. Siguiendo la polftica de con-

Tabla 4-35
Sintaxis de una definicin de luncin

VHOL

function junctionname ( signafnames : .tig"oltype; signalnames : sigtlalrype ;


sigtulJ.tlames : sigtullt)"pe ) retum retum-t)"pe i5 t}'pe declarations constant decloratiotU ~'ariable dec/arations function definirionl procedure definitions beqin sequentialstatemenr

sequentiaJstatemenr end funcrion-rIlll"M ;

Seccin 4.7

El lenguaje de descripcin de hardware VHDL

2n

cordancia fue"e de tipo VHDL, Jos parmetros reales deben ser el mismo tipo o un subtipo de los parmetros fonnales . Cuando la funcin es llamada desde dentro de una arquiteclUra, se devuelve un valor del tipo ntum-typt en Jugar de la llamada funcin . Como se muestra en la tabla, una funcin puede definir sus propios tipos, constantes, variables y procedimientos y funciones arudados. Las palabras clave begi n y end enciemm una serie de "instrucciones secuenciales" que se ejecutan cuando la funcin es llamada. Posteriormente anaI~mos las difelentes clases de: instrucciones secuenciales y sus sintaxis, pero usted deberla ser capaz de comprender los ejemplos que mencionamos en esta seccin basndose en su experiencia previa en programacin. La arquitectura de "compuena inhibitoria" de VHDL de la tabla 4-26 de la pgina 269 est modificada en la tabla 4-36 para usar una funcin. Dentro de la definicin de funcin, la palabra clave return indica cuoindo la funcin clrbcrfa I\:glt!sar con quien la llam, y estA seguida por una expresin con el valor que se devolver al que la llam. El tipo resultante de esta expresin debe coincidir con el ntum-type en la declaracin de funcin . El paquete lgico estndar IEEE 1164 define muchas funciones que operan sobre los tipos est:indar std_ logic y std_ l og ic_vec t o r . Aparte de especificar un nmero de tipos definidos por el usuario, el paquete tambin define las operaciones lgicas bsicas sobre estos tipos, tales como and y oro Esto se aprovecha de: la capacidad de VHDL para sobrecargar operadores. Esta facilidad pennile al usuario especificar una funcin que sea invocada cuando quiera que se utilice un smbolo de operador integrado (and, or, + , etc.) con un conjunto coincidente de tipos de operando. Puede haber varias definiciones para un sfmbolo de: operador dado; el compilador automticamente elige la definicin que satisface los tipos de operando en cada uso del operador. Por ejemplo, la tabla 4-37 contiene cdigo, tomado del paquete IEEE, que muestra cmo la operacin "and " se define para operandos std....l ogie. Este cdigo puede parecer complicado, pero ya hemos presentado todos los elementos bsicos del lenguaje que utiliza (excepto por "resol ved", que describimos en conexin con la lgica de tres estados en la seccin 5.6.4). Las entradas a la funcin pueden ser del tipo s t d....u l ag i e o su subtipo s t ct..log ie. Otro subtipo UXOl es definido para su uso como el tipo de retomo de la funcin ; incluso si una de las entradas "and" fuera un valor no lgico ( ' Z '. ' W' , etc.), la funcin regresar uno de solamente cuatro valores posibles. El tipo std logic_ table define un

retum

sobrrcQrgQ d~ opmuJor

architecture Inhibit_archf of Inhibi t i8


fW\Ct i on ButNot (A. B: bit) return bit i8

Tabla 4-36
Programa VHOL
para una func16n de "inhibicin".

begin
if B _ ' O' then r eturn A; else return 'O ' ; end if: end ButNot;

begin
Z <_ ButNot (X,Y); end Inhibi c archf;

278

Capftulo 4

Principios de diseo lgico combinacional


St.IBTYPE UXOl IS resolved std...ulogic RAKiE 'u' TO '1 ' ; -- ( 'U' , ' X' , 'O' , ' l') TYPE stdlogic_table IS ARRAYIstd...ulogic, s~ulog i cl OF std...ulogic ; -- truth table for 'and' function COOSTANT and3able : stdlogic_ table :"' I

Tabla 4-37
Definiciones relaciona-

das a la operacin "anct'


en valores STD_l.(XjIC clellEEE t164.

_.

----_. _ --_._-_ ._--------------_._-------------- ----( ' U' , ( U ' , ( O' , ( ' U' , ( ' U' , ( U ,
( ( (

--_ ..... _.. _. __ .. _._._ .. _-------_._._._-_._-_._----u x o 1 z w L H ' U ' , ' O' ' U' U' , U' , ' O' , ' U' , ' U' I , ' X' ' O' ' X ' X' , ' X' ' O' ' X' ' X ' I ,

O' , ' O' , ' O' O' , O' ' O' , ' O' ' O' I , X ' ' O' ' 1 ' X' X ' ' O' ' 1 ' , ' X ' I , ' X' ' O' ' X ' , ' X ' x ' ' O' ' X ' , ' X ' I , ' X ' , ' O ' X ' , ' X , X' ' O' ' X ' , ' X ' I , O' , O' ' O' , ' O' , O' O' , ' O' , ' O' , ' O' I , , U' , X ' O' , ' 1 ' , ' X' X ' ' O. ' 1 ' , ' X ' I , ' U ' , ' X' ' O' ' X ' , ' X' , X' , . O' ' X' , ' X ' I

---

I U I I X I I O I I 1 I I Z I I W I I L I I H I I I

I,
BEGIN REnJJ1N land....table(L, RII ; END 'and' ;

fWCT l ON 'and' ( L . std...ulogic ; R std...ulogic I RrnJRN UX01 15

instruccin null
afribmo cange

arreglo bidimensional de 9 x 9 indexado por un par de valores S td_ulogic. Parn la and_table, las entrnda~ de la tabla se acomodan de modo que si cualquier rndice es 'O' o ' L ' (un ' O' d~bil). la entrada es 'O' . Una entrada ' 1 ' se encuentra solamenle si ambas enlrndas son '1' o 'H ' (un d~bi l '1' ). De O lro modo, aparece una entrada 'U' o ' x ' . En la definicin de funcin misma, las dobles comillas alrededor del nombre de la fu ncin indican sobrecarga de operador. La parte "ejecutable" de la funcin es una instruccin simple que devuelve el elemento de labia que esui indexado por ambas entradas, L Y R. de la funcin "and". Debido a los requerimicnlos de concordancia fuenc de tipo de VHOL. con frecuencia es necesario convenir una senal de un tipo a O lro, y el paquele IEEE 1164 contiene varias funciones de conversin: por ejemplo, de BrT a STD_ LOGre o viceversa. Una .conversin comnmente necesaria es del STD_LOGrC_VECTOR a un valor entero correspondiente. IEEE 1164 no incluye una funcin dc conversin asi. porque disenos dife~n les pueden necesilar el uso de diferenles interprelaciones dc nmeros: por ejemplo, con signo contra sin signo. Sin embargo, podemos escribir nuestra propia funcin de conversin como se muestra en la labia 4-38. La funcin CONV_rNTEGER utiliUl un algoritmo de terncin simple equivalente a la fnnula de expansin anidada de la pgina JO. No describiremos las instrucciones FOR, CASE y WHEN que utiliza hasta la seccin 4.7.8, pero uSled deberla caplar la idea. La instrueci" null (nula) es fcil: significa "no hacer nada". El intervalo del cielo FOR est especificado por "X' r ange, donde la comilla simple o apstrofo despus de un nombre de senal quiere decir 'atributo" y ronge es un identificador de atributo integrado

Seccin 4.7

El lenguaJe de descripcin de hardware VHDL Tabla 4-38 Funcin VHDl para conversin de

279

f unc tion CGN_ I m'EGER (x : SI'DJ,OGI C_VEL'IOR) r etum Im'EGER is variable RESULT : INTEGER; begi n RESULT : ~ O: for i in X' r ange loop RESULT : _ RESULT 2 ; case Xli) is when 'O' ( 'L ' a> nu11 ; when '1' I ' H' _> RESlILT : . RESULT 1; ,,> null , when others end case ; end l oop; re t um RESULT: end COOV_ I Nl'ffiER ,

STD_UXilC_ VECTOR

a INTEGER,

que se aplica solamente a arreglos y significa "el intervalo ('"rango") de este ndice de arreglo. de izquierda a derecha". En la otra direccin, podemos convertir un entero a un STD _ LCXiI C_VECTOR como se muestra en la tabla 4-39. Aquf se debe especificar no solamente el valor entero que ser convertido (ARG). sino tambin el nmero de bits en el resultado deseado (SI ZE). Note que la funcin declaro una variable local "l"Cliull", un STD_ LCXi I C_ VECTOR cuyo inlervalo de ndice es dependienle del SIZE (amao). Por esta razn, SIZE debe ser una constante u otro valor que sea conocido cuando CONV_ STD_LOG I C_ VECTOR se como pile. Para realizar la conversin, la funcin utiliza el algoritmo de divisin sucesiva que fue descrito en la pgina 30. Un proudimi~nlQ VHDL es semejame a una funcin, excepto que no regresa un resultado. Mientras que una llamada de funcin puede ser empleada en lugar de una expl"Cliin, una llamada de procedimiemo puede ser utilizada en lugar de una instruccin. Los procedimientos de VHDL permiten que sus argumentos sean especificados con tipo out o inou t , de modo que es en realidad posible para un procedimiento "devolver" un resultado. Sin embargo. no empleamos procedimientos VHDL en el resto del libro, as que ya no discutiremos esto.
funct i on caN_Sl'DJ,OGI CVECIORIARG : lNI'ffiER; SIZE : nmx;ER) retum Sl'DJ (X;rC....a:IVR is variable result : Sl'DJ(X;rcv""''''' :OOR ISIZE-I downto O) : var iable t emp : integer ; be9in terrp : .. ARG ; for i i n O to SIZE-l loop if Itemp llOd 2) _ 1 then resu l t( i ) : _ ' 1 ' ; e l se result(i) : ,. 'O' ; ene! if ; temp :" temp I 2; end loop; r e tum r e sult ;

Tabla 4-39 Funcin VHOL para conversin de INTEGER a


SI'DJ..OOIC_vtX:1OR.

280

Capitulo 4

Principios de diseo lgico combil'\acional

4.7.5 Biblioteca y paquetes


bibfjottca

clusula libralY

Una bibliora VHDL es un lugar donde el compilador VHDL almacena informacin acerca de un proyecto de diseo panicular, incluyendo archivos intermedios que se utilizan en el anlisis, simulacin y S1tc:sis del diseo. La ubicacin de la biblioteca denltO de un sistema de archiVOtS de la computadora anfitriona es dependiente de la implementacin. Pata un diseo VHDL dado, el eompiladcr automticamente crea y utiliza una biblioteca llamada "work'. Un diseilo completo VHDL por lo regular tiene mltiples archivos, cada uno con diferentes unidades de diseno, incluyendo entidades y arquitecturas. Cuando el compila. dor VHDL analiza cada archivo en el disd\o, coloca los resultados en la biblioteca ''work'', y tambic!:n busca esta biblioteca para definiciones necesarias, tales como otras entid~de5. Debido a esta caracterstica, un diseo extenso puede ser fragmentado en mltiples archivos, y todava el compilador encontrar referencias externas cuando las necesite. No toda la informacin necesaria en un diseo puede estar en la biblioteca ''work''. Por ejemplo. un disei\ador puede depender de definiciones comunes o mdulos funcia.. nales a travs de una familia de proyectos diferentes. Cada proyecto tiene su propia bibliOleCa ''work'' (por lo gCM:ial un subdim:torio denltO del directorio total del proyecto). pero debe tambic!:n referirse a una biblioteca comn que contenga las definiciones compartidas. Incluso los proyectos pequei\os pueden utilizar una biblioteca estndar tal como la comeDida en las definiciones estndar IEEE El diseilador puede especificar el nombre de una biblioteca as empleando una clusula 1 ibrary al comienzo del archivo de diseo. Por ejemplo, podemos especificar la biblioteca IEEE:
library ieee

La clusula "1 ibrary work;" se incluye de manera implfcitu al principio de todo archivo de diseo VHOL. La esx....:ificacin de un nombre de biblioteca en un diseo nos da acceso a cualquiera de las entidades y arquitcdlltUS previamente analizadas almacenados en la biblia.. teca, pero 00 nos da 3CN'SO a las defIniciones de tipo y semejantes. sta es la funcin de "paquetes" y "clusulas use". que se describen a continuacin. Un poquete VHDL es un archivo que contiene definiciones de objetos que pueden ser utilizados en otros programas. La clase de objetos que pueden ser puestos en un paquete incluye declaraciones de seal, tipo, constante, funcin. procedimiento y componentes. las seilaJes que se definen en un paquete son scilaJes "globales", disponibles para cualquier entidad VHDL que utilice ese paquete. Los tipos y constantes que se defincn en un paquete son conocidos en cualquier an:hivo que haga uso de ese paquete Del mismo modo, las funciones y procedimientos definidos en un paquete pueden ser llamados en archivos que utilizan el paquete y los componentes (que se describen en la subsecci6n siguiente) pueden ser "instanciados" en arquitecturas que hacen uso del paquete. Un diseilo puede "usar" un paquete al incluir una ddusl/la use aJ principiO del archivo de diseo. Por ejemplo, para emplear todas las definiciones en el paquete estndar IEEEII64, escribirlamos

poqutlt

clusula use

use

ieee_st~logic~16 4. al l :

Seccin 4.7

El lenguaje de descripcin de hardware VHOL

281

Aqur, "ieee" es el nombre de la biblioteca que: ha sido previamente dada en una clusula l ibra.ry. Dentro de esta biblioleca, el arcruvo llamado .. stCLlogic_1164 .. contiene las defini cioRes deseadas . El sufijo "al l" le dice al compilador que emplee todas las definiciones en este archivo. En vez de "all", se puede escribir el nombre de un objeto panicular para usar su defin icin, por ejemplo, use
ieee.st~logic_1164.st~ulogic

Esta clusula haria disponible la defini cin del tipo std_ulogic en la tabla 4-32 de la pgina 273, sin todos los tipos y func iones relacionados, Sin embargo, pueden escribirse mltiples clusulas "'u se" para emplear definiciones adiciona1es. La definicin de paquetes no est limitada a cuerpos estndares, Cualquiera puede escribir un paquete, utilizando la sintaxis mostrada en la tabla 4-40, Todos los objetos declarados entre "pac kage" y la primera instruccin "end" son visibles en cualquier archivo de diseo que utilice el paquete: los objetos que siguen a la palabra clave "package body" son locales. En particul ar. note que la primera parte incluye "declaraciones de funciones", no definiciones. Una dl!claror:i6n dI! f unci6n enumera solamente el nombre de la funcin, argumentos y tipo, hasta pero sin incluir la palabra clave "is" en la tabla 4-3.5 de la pgina 276. La definicin de funcin completa est determinada en el cuerpo del paquete y no es visible para los usuarios de la func in.

dtcJaracidn dl!/uncilm

TI Q

npr

:ia por je

h s je

JIO'

282

Capitulo 4 Principios de diseo lgico combinacional Tabla 4-40 Sintaxis de una


definicln de

paquete VHDL.

package package-name is tyw dedamtiotlS sigllal dedaratiolls OIISWIlt declllm/iolls C componen! dedarmiorl.f fim clion lleclllrtlt;Q/lS procedurP declaratiotlS end p(lckogelIllll.e; package body package'l/wlle t)pe declaratiollS COI/S/(I1It decltlratiolls filllclion defillitiol/s procedltre definitiol/s end pilcktlgr'/It1me;

15

4.7.6 Elementos de diseo estructural


Estamos finalmente listos para observar el interior de un diseo VHOL. la porcin "eje cutable" de una arquitectura. Recuerde la tabla 428 en la pgina 271 que el cuerpo de una arquitecturn es una serie de instrucciones concurrentes. En VHDL, cada instruccin concurrente se ejecuta de manera simultnea con otras instrucciones concurrentes en el mismo cuerpo de arquitectura. Este comportamiento es marcadamellle diferente del de las instrucciones en los lenguajes de progrnmacin de software convencionales, donde las instrucciones se ejecutan en forma secuencinl. La.~ instrucciones concurrentes son necesarias para simular el comportamiento del hardware, donde los elementos conectados se afectan entre sr de mancm continua_ no precisamente en segmentos de tiempo paniculares. con un orden. De e.~te modo. en un cuerpo de arquitectura VHDL si la ltima instruccin. at.1ualiza una seal que es utilizada por la primera instruccin. enlooces el simulador regresar a esa primera instruccin y actualiz.an\ sus resultados de ocuerdc)'(:Qn la seal que acaba de cambiar. De hecho_el simulador mantendr propagndose los canlbios y. resultados t1ctualizados hasta queel circuito simulado se estabilice; discutiremos esto con ms detalle en lo seccin 4.7.9. VHDL tiene varias instrucciones ooncurremes diferentes. adems de un met'anismo pard 3grupar un conjumo de instrucciones secuencinles para funcionar como una sola instruccin concurrente. Utilizadas en distintas formas. estas instrucciones dan origen a tres estilos oigo distimos de descripcin y diseo de circuitos, los cuales cubriremos en sta y las siguientes dos subsecciones. La ms fundamental de las instrucciones concurrentes de VHDL es la instruccin componen t . cuya SintaJtLs bsica se muestrn. en la tabla 4-41. Aqul, component-name es el nombre de una entidad prc:viamente definida que \'a a emplearse, o "instancian;e" denlJ'O

{nstnu:cidrl COrlCU'"rltt

jnst{/ndafJ~

Ta bl a 441 Sintaxis de una Instrucclfl CCl ip:merlt VHDL


label:
cQmpQ/I(mt- ll(/m~

port map (sigl/al J, signalZ, ... sigl1aln l ;

Itlbel: compontmt-name port fl'iJ.p(portl o sigIUl/J . port2 .,.siglloIZ . __ ., portno sigll(lln ) ;

Seccin 4.7
cuoponent component-nmne port (signof-twmes : moJe sigllof-07Je ; sigllaf-nomes . moJe sigllul-t)'pe;

El lenguaje de descripcin de hardware VHDL

283

Tabla 4-42
Sintaxis de una

declaracin,de

componente VHOL

sigm/-names : moJe siglluJ-typt ;


end cUllponent ;

del cuerpo de arquitectura actual. Una instancia de la entidad nombrada es creada pan! cada instruccin de componente que invoca su nombre, y cada instancia debe nombrarse mediante una etiqueta nica. Las palabras clave p o rt map introducen una lista que asocia los puertos de la entidad nombrada con seales en la arquitectura IlctuaJ. La lisia puede escribirse ya sea en cualquiera de dos esti los diferentes. El primero es un estilo posicional: como en los lenguajes de programacin convencionales, las seales en la lista se encuentr.m asociadas con los puertos de la entidad en el mismo orden en que aparecen en la definicin de la entidad. El segundo es un estilo explcito: cada uno de los puertos de la entidad se conecta '3 una seal utiliUlndo el operador 'o s> " y estas asociaciones pueden enumerarse en cualquier orden. Antes de ser ullli7.ado en una arquitecturn. un componente debe ser declarado en una deckuoci6n de componente en la definicin de: la arquileCtura (vase la tabla 4-28 de la pgirUI 271). Como se muestra en la .tabla 4-42, una declaracin de componente es, en esencia, lo mismo que la parte de la declaracin de puerto de la correspondiente declaracin de entidad: numern el nombn:. modo y tipo de cada uno de sus puertos. Los componentes !'sacios en una arquitectura p''Cden ser los que fueron previamente definidos como parte de un diseo, o pueden ser partes de una librera. La tabla 4-43 e... un ejemplo de una entidad VHOL y su arquitectura que emplea componentes. un "detector de nmeros primos" que es estructuralmente i~ntieo al circuito de nivel de compuerta en la figura 4-3O(c) de la pgina 226. La declaracin de enlidad nombra las entradas y la salida del circuito. La seccin de declaraciones de la arquitectura define todos los nombres de seal y los componentes que son uti1i7.ados internamente. Los componentes. I NV. AND2, AND3 ,y OR4. estn predefinidos en el enlomo del diseo en el cual este ejemplo fue creado y compilado (Xilinx Foundation 1.S. consulte las Referencias). Advierta que las instrucciones de componente en la tabla 4-43 se ejecutan de manera conc urrente. Incluso si las instrucciones fueran enumeradas en un orden diferente, el mismo cin::uito senil s inleti7..ado y 111 uperncin del circ uito simulado seria la misma. Una arquitecturn VHOL que utili7.1l componemes se denomina a menudo una (lescripci6n es/ructllml o diseo es/ruClUral, porque define la estructura de interconexin precisa de seales '1 entidades que realiza la entidad. En esta consideracin. una deseripcin estructural pura es equivalente a un esquema o lista de red para el circuito. En algunas aplicaciones es necesario crear mltiples copias de una eslructura particular dentro de una arquitectura. Por ejemplo. veremos en la seccin 5.10.2 que un "sumador de rizo" de n bits puede ser creado al poner en cascOOa n "sumadores completos". VHDL incluye una inslrUccin genera te que nos peiillite crear esas estructuras repetitivas utilizando un::! clase de "ciclo for', sin tener que escribir todas las instancias de componente de manera individual.

pon map

duJaraci(jn de
componen/('

(Incripdn estructurol disto tSlrucmrul

284

Capitulo 4

Principios de disei'lo lgico combinacional

T a b I a 4-43 Programa estructural VHOL para un detector de numeros primos.

library IEEE ;

use IEEE . stdLlogic_1 164. all ;


enti ty pri me i5 port ( N: in srD_l.cx:aC_VEC'IOR i3 oo.mto O) ; F : out STDJOOIC ) ; end prime;

architecture primel_arch of prime is


signal NlJ. . N2J.. NIJ.: SIDJOOI C signal NJL.flO. NlLJl2L.fll. N2LJII JlO. N2Jll kflO: Sl'DJ,OGIC; catqX)nent UN port (1: i n Sl'DJ,OGIC ; o : out SIDJ,OGIC) ; end ~ent; canponent AND2 port lIO. 11 : in Sl'DJOOI C; o : out STDJ.C;GI C) ; end culpoJllent ; c.ollponent AND3 pon (1 0.11.12 : in srnJ.C;GIC ; O: out SI'OJ,OGIC) ; end culI(xment ; culpclnent OR4 port (10.11 . 12. I3: in St'DJ,OGIC ; o : out STD_IOOIC) ; end CQIp::lilent;

begin
Ul : U2 : UJ : U4: U5 : U6 : U7 : U8 : INV port map (N(3) . NJ_L ) ; INV port map IN(2) . N2_ l.) ; INV port map (NII). NI_l.}; AND2 port map (NJJ.. NIO). NlUO); ANOJ port map (NJJ.. N2_ L. N(l) , N3LJl2Ul): AN03 port map IN2J. . NU). NIO), N2k.NlJlO) ; AN03 port map (N(21 . NlJ. . NIO) , N2j11L.JlOI ; OR4 pore map (N3 L.flO. NlL..N2L..Nl. N2L..NlJIO , N2j1IL.JlO. f' 1;

ene prLmel_arch ;

La sintaxis de un ciclo itcr.uivo simple genera te se mUe$trn en la tabla 4 '14. El

corUfl1n1~ g~niriC/1

dtcfn,.Clcin g~nirica

generic tndp

identificador est impHcitamente declarado como una variable con tipo compalible con el imerm/o. La inslnux ilI cOllcurrt!llt~ se ejecuta una vez para cada posible valor del idtmtificodor demro del intervalo, y el id~n1ifictldor puede ser empleado dentro de la instruccin concurrente. Por ejemplo, la tabla 4-45 muestra cmo puede ser creado un inversor de 8 bilS. El valor de una constame debe ser conocido en el momento que un programa VHOL es compilado. En muchas aplicaciones es til diseftar y compilar una entidad y su arquitectur:l mientras dejamos algunos de sus parmetros, tales c.omo el ancho del bus. sin especifi car. La facilidad "genrica" de VHOL oos permite hacer esto. Una o ms CQnstant~s genl ricas Pl"Cden definirse en una decLamcin de entidad con una d foracin genl rica antes de la declaracin de puerto. utililAndo la sintaxis mostrada en la labia 4-46. Ovb una de las constantes nombradas pueden utilizarse dentro de la definicin de urquitectur:l para la entidad, y el valor de la constante es diferido hasta que la enLidad es instanciada usando una instruccin de componente dentro de otra arquitectura. Dentro de esa instruccin de componente. los valores son asignados a las constantes genricas utilizando una clusula generi c map del mismo estilo que la clusula part map. La tabla 4-47 es un ejemplo que combina IIlll instrucciones ge neric y generate para definir un "inversor de bus" con un ancho que es especificado por e!IlSIIaI;O. Mltiples copias de este iil\'CfSOI'. cada 'una con un ancho diferente. se inslanrian en el programa de la tabla 4 48.

Seccin 4.7

El lenguaje de descripcin de hardware VHOL Tabla 4 - 44 Sintaxis de un ciClO

285

labd: for

jd~lItifi~r

in rang~ generate

concurrrntstaUm~nl

ene! generate;

for-generate VHOL

1ibra ry IEEE; use lEEE.stdLlogic_1 164.all ; entity i nvS is port ( X: in STDJ.(X>I C_VEX:IOR 11 to S); Y: out STD_IJX;rCVECTOR 11 to S) ); end i nvS;

Tabl a 4-45 Entidad y arquitectura VHDl para un inversor de 8 bits.

a r c hi tecture inv8_arch o f inv8 ia component lNV por (1 : in STO_LOGIC ; o: ou t STOJ.(X; IC) ; end componen t; begi n g1: for b i n 1 to 8 generate Ul : INVpartmap (x (bJ. Y( b ) ; end genera te ; end inv8_arch ;

entity ~ntjry.nam~ is generic (constant nam~s : constanH)'pe; cOlIStan tnam~s : conslanl ,)'pe;

Tabla 4-46 Sintaxis de una

declaracin genrica
VHOL dentro de una

...

COfIJtan l lWmt1 : con1/0nl-I)'pl' ) ;

declaracifl de entidad.

port

( signal. nam~s

si8nalnam~s

: : :

mod~

mod~
mod~

signal.type; s,ignaltype ; sjgnalt)'pel ;

signalnam~s

end

~lItitynam~;

library IEEE; use IEEE. stdL)ogic-l164. all ;


entity bus i nv is generic (W IOTH : positive ) por t ( X: in STDJ.(X>ICVa:ltlR (WIOTH- l oo..nto O) ; Y: out S"I'DJOOIC_Vtt'IOR (WIDrn-l downto O) 1 ; end bJai nv ;

T a bl a 4 - 4 7 Entidad y arquitectura VHOl para un Inversor de bus de ancho arbitrario.

archi tecture buainv_arch of buainv is component INV por (l : in STOJ,OGI C; o: out STO_ LOGIC) ; end component ; begin 91: for b i n WIOTH -1 downto O generate Ul: I NV part map (X(b). Y(b)) ; end genera te; e nd businv_arch;

286

Capitulo 4

Principios de diseo lgico combinacional

T a bl a 4-4 8 Entidad y arquitectura VHOl que utiliza el


Inversor ele bus de ancho arbitrario.

library IEEE; use IEEE . st~logic_1164.all; entity businv_example is port I !N8: in STOJ IX;C_va:l0R

(1

downto O) ;

0UT8 : out STDJ,CGIC_VEL'IOR (7 downto O) ; IN16 : in STDJ.(XiIC_VEX:rOR tlS dcJwnto O) ; 0UT16 : out STDJlXiICVEI:'IVR ClS downto 01 ; IN32: i n STOJ.03IC_VEL'IOR (31 downto O) ; 0UT32 : out STDJOOIcva;roR (31 do.mto 01 );

end businv_example ;

ar c:hitecture rusinv_e~arch of bJsinv_example i5 c.aip:ment oosinv generic IWIOTH : positive); port ( X: in S'I'D_ I..a:;C.....a;IOR (WIOTH-l downto 01; Y: out STDJ.(XiI C_Va:IOR (WIOTH-l downto O) ) ; end Cai\Xlnent ; begin Ul : businv generic map (WIDTH_>8) port map IINa. 0UT8) ; U2 : businv generic map (WIDTH _>16J port map (IN16. 0UT16); U3 : businv generic map (WIDTH_>32) port map IIN32 . 0UT32) ; end businv_ex..arch ;

4_7.7 Elementos de diseo de flujo de datos


Si las instrucciones de componentes rueran sus nicas instrucciones concurrenles. enlences VHDL serfa un poco ms que un lenguaje de descripcin de lista de red jerrquica. Varias instrucciones concurrentes adicionaJes pcnnitcn a VHDL describir un circuito en tnninos del flujo de datos y operaciones activadas dentro del circuito. Este estilo se de nomina una dcscripci6,. de fllljo de dmos o diseo de flujo de datos. Se muestran en la tabla 4-49 dos instrucciones concurrentes adicionales utilizadas en diseos de flujo de datos. La primera de btas es la que se usa con ms frecuencia y se conoce como una instrnccioo de asignaci6n de seal conc urrente. Se puede leer esto como "signal-name obtiene aprrssion". Debido a la concordancia de tipo VHDL. el ti po de e.:cpresi6n debe ser compatible con el de signa/-name. En general. esto significa que cualquiera de los tipos debe ser i~ntico o el tipo de expression es un subtipo del de signa/-name. En el caso de los arreglos tanto el tipo de elemento como la longitud de ben coincidir: sin embargo. el intervalo del ndice y la direccin no necesitan hacerlo.

.1t!Jc ripd6n

d.. flujo dt!

da/os disdlll dej/ujo dc datos instrncdII dt tJjigrwdn de stlol COflcurlTflle

T a b la 4-49 Sintaxis de las instrucciones de asignacin de se~al concurrentes.

signa/-name < .. aprrsslon; sigllal-name


<>o

ap"ssioll when boolean-aprrssion else a press;on when booleun-apressioll else

.. .

apress;on when booleulI-apressioll else expression;

Seccin 4.7

El lenguaje de descripcin de hardware VHDL


T a bl a 450
STD~IC ;

287

archi tecture prime2_arch oC prime 1s signal N34jNO . N)~4JNl. N 24JNlJNO. N2-N14JNO;

Arquitectura VHOl de

begin
N34JNO
<~

not N())
NIlJ

and N(O) ;
;
N(1 ) and N (O) ;

N3I.....fl2L...,Nl <.. not NO) and not N(2 ) and N2L....N1..,.NO <not N(2) and

lIujo de datos para el detector de numeros primos.

N2...Nl4jNO
F
<-

N(2) and not NIl) and N(O) ; N3LJlO oc NlLJi2LJll or N2 LJ<l...NO or N2J11tJIO;
<-

end prime2_arch;
La tabla 4-50 muestra unll arquitectura para la entidad del de tector de nmeros pri mos (labia 443 de la pgina 284) escrila en el esti lo de flujo de datos. En este estilo no mostrornos las compuertas explfci tlls y sus conexiones; en vez de ello. utilizamos los operadores integrados de VHDL and, or y noto(En realidad, estos operadores no se encuentran integrados paro senales dcl ti po STO_ LOGIC. pero son defini dos y sobrecargados por el paque te IEEE 1164.) Note que el opcl1ldor not tiene la preccdencill ms alta, de modo que no se requiere de parntesis en tomo de subexpresiones como "not N (3) " para obtener el resultado deseado. Tambin podemos emplear lo segunda. fonna condicionnl de lo instruccin de asignacin de seal concurrente. al aplicar las palabras clave when y else como se muestra en la t.abla 4-49. Aquf, una expresi/I boolealla combina tnninos booleanos individuales utilizando operadores booleanos de VHDL tales como and, or y noto Los trminos booleanos son por 10 regular variables booleanas o resultados de comparaciones empicando los opuadoff!s rdaciolla/es oo , I s (no igual), >. >s , < y <s, La tablo 4-.5 1 es un ejemplo que utiliza instrucciones de asignacin concurrente condicional . Cada una de las comparaciones de un bit STD_ LOOIC individual. lal como N (3 ) se hace contra una literal de carcter ' 1 ' o 'O' Y dev uelve un valor de tipo booleano Estos resultados de la comparacin son combinados en la expresin booleana entre las palabras clove when y el se en coda instruccin. l...as clusulas else son gene ralmente reque ridas: el conjunto combinado de condiciones en una instruccin simple debera cubrir todas las posibles combinaciones de entrado, Otrn. clase de instruccin asignacin concurrente es la asignacin de seal sdeccio nada , cuya sintaxis se muestra en la tabla 452, Esla instruccin evala la expff!ssion da da. y cuando el valor satisface una de las optioru, asigna el correspondiente s;gllal' l'all/e seal al s;gnal.nnme. Las opciones en cada clusula when puede ser un valor simple de txpresi6n o una lisia de valores separn<los por barras verticales ( 1). Las opciot/es para

irurrucci6n di! asignaci6n di! si!al condicional

""en
el se
ofJt!rodort!s rt!/acioaalu
'", f :c. >.

>'". <. <=

inslrucci6n d~ ruig/UIc/6n
di! ual si!/ucionada

architecture primeJ_arch of prime is signal NJLJlO , NJ4-N2L....NL N2k.,Nl,JlO , N2JULJlO: Sl'OJ,OOIC; begin N3L~ O <. ' 1 ' when N{3 1. ' 0 and NI OI.' l ' else 'O' ; NJ~LJll < . ' 1 ' when N{3 1.' O' and NI21 .'O' and N(1).'1' else ' O' ; N2~lJNO <. ' 1 ' when N(2 ). ' 0' and NIl). ' l ' and NIO). ' l ' else ' O' ; N2JNl4JNO c. '1' when N(2 ). ' ' and N(l) .'O' and NIO ).'l' else '0' ; F c* NJ~O or N3 ~4JNl or N2LJl~O or N2JNl4JNO
end
prime3~rch ;

Tabla 4 5 1
Arquitectura del detec tor de nmeros primos utilizando asignaciones condicionales.

288

Capitulo 4

Principios de disei'lo lgico combinacional Tabla 452 SIntaxis de Instruccin

with e:cprrssiO/I select


signal-name <_ signal-I'allle when choices. sig/lof-I'olul' when choices, sig/lal-I'olue when choices ;

de asignacin de sel'laJ selecclonada VHDL

others

toda la instruccin deben ser mutuamente exclusivas y todas inclusivas. La palabra clave others puede ser utiliz.ada en la ltima clliusula when para indicar todos los valores de exprt!si6n que no hayan sido cubienos. La tabla 4-53 es una arquitectura para el deteclOr de nmeros primos que hace uso de una instruccin de asignacin de seal seleccionada. Todas las opciones para las cuales Fes ' l' podrlan haberse escrito en una sola clusula when, pero se muestrnn mhiples clusulas slo por motivos didcticos. En este ejemplo, la instruccin de asignacin de seal seleccionada lee algo como una listn del conjunto de iniciacin de la funcin F. Podemos modificar ligeramente la anterior arquitectura pora tomar ventaja de la imerpretocin numrica de N en la definicin de fu ncin. Empleando la funcin CONV_INTEGER que definimos con unterioridad. lo tabla 4-54 escribe las opciones en trminos de enleres, 10 que podemos fcilmente ver como primos a medida que se requiera. Podemos pensar de esta versin de la arquitectura como una descripcin de "comportamiento", porque describe la funcin deseada de tal manera que su compensmiento es bastante evidenle.

Tabla 4-53 Arquitectura del detector de nmeros primos que utiliza la asignacl60 de seal seleccionada.

a~hitecture

prime4_arch of
'0001' ,

pr~

ts

begin
with N select
F < _ ' 1 ' when ' 1 ' when ' 1 ' when ' 1' when 'O' when
end prime4~rch ;

'0010' , ' 0011 ' t '0101' I '0111', ' 10U' I 'U01 ',

others ;

." gen p 01

a por

rehs

Jlor

Seccin 4.7

El lenguaje de descripcin de hardware VHOL

289

a rchi tecture primeS_arch of prime IS begin with COOV_INTEGER(N I select F <_ ' 1 ' when 1 I 2 I 3 I 5 I 1 I 11 I 13, '0' when others ; end primeS_arch;

Tabla 4-54
Una descripcin ms

enlacada al comportamiento del detector de nmeros primos.

4.7.8 Elementos de diseo basado en el comportamiento


Como vimos en el ltimo ejemplo, es posible en ocasiones describir de manera dinx:ln el comportamiento de un circuito lgico deseado empleando una insU'Uccin coocurren le. Esto es algo bueno, como la capacidad de crear un diseo de comportmniemo o descn'x:i6n de cOmpDrtlimiflnto es uno de los beneficios clave de los lenguajes de descripcin de hardware en genera] y de VHOL en particular. Sin embargo, para la mayora de las descripeiones de comportamiento. necesitamos emplear algunos elementos de len guaje adicionales descritos en esta subseccin. El elemento de comportamiento clave de VHDL es el "proceso". Un p roct'So es una coleccin de insU'Ucciones "secuenciales" (descritas en breve) que se ejecutcn en paralelo con otras instrucciones concurrentes y OIms procesos. Utilizando un proceso se puede especificar una compleja interaccin de seales y eventos cn una manera que ejecuta. en un tipo de simulacin esencialmente cero durante sta y da origen a un cireuito secuencial o combinacional sintetizado. que efecta la operacin modelada di rectamente. Una instruccin de proceso (process) puede utilizarse en cualquier parte en que pueda ser empleda una insU'Uccin concurrente. Se introduce mediante la palabra cia ve procesa y tiene la sintaxis mostrada en la tabla 4-55. Pueslo que una instruccin de proceso est escrita dentro del mbito de una arquitectura cerrada, tiene visibilidad de los tipos, seiW.es. constantes, funciones y procedimientos que estn declarados o son de otra manera visibles en la arquitectura cerrada. Sin embargo. se pueden definir t.ambin ti pas variables, constantes, funciones y procedimientos que sean locales al proceso. Note que un piOCO so po..oede no declarar seales, solamente ...'ariablcs... Una I'Oriubll! VHDL mantiene su estado dentro de un proceso y no es visible fuera de l. Dependien. do de su uso, puede o no dar origen a una seal correspondiente en una realizacin fsi ca del circuito modelado. La sintaxis par;l definir una variable dentro de un ", oceso es Tabla 455 Sntaxls de una instruccin de
proceso VHDL.

di$t'o baslUlo t'IJ


ducripcidQ dt'

t'f

cQlllpon(lm ;"n/O

('fI/11/HJnllmi"nlo
{mx:no

;"Sll1lcci6n dt' flrouso


process

process (signo/name . signolnoml!, .... sigll(I/"(.III/l! 1

rype declarotions
variabll! dl!clarutions constant declorutions function dl!flllitions procl!durt! definitio/'LJ

begin
uqul!ntial.statl!ment

...
uqU l! ntial sta ti! rtIl!nt end process ;

290

Capitulo 4

Principios de dise'lo lgico combinacional

variable

similar a la de una declaracin de seal dentro de una arqui tectura, a excepcin de que se utiliza 13 pal3brn cI:IVC variable: variable l'lrillblt /IllllltS : I'tlrillblt-t)'pt;

plTX'tSO dt tjtcucin plTX'tSO susptlUlido IIsm lit u nsihUitlad

instruccin dt (lsiglUlCin Ji! ual stclltncial


inSlnlin dt asignacin di! l'Q riahlt

Un proceso VHDL siempre se encuentrJ.,tt tjWICi6t, o slupt'ndido. Ln lista de seales en la definicin del proceso. llamada la listo dt snt.fibilidod, determina cundo el proceso se cncuentm en ejecucin. Un proceso inicialmente est suspendido: cuando cualquier sei\:lI en su lista de sensibilidad cambia de valor, el proceso reanuda la ejecucin. comenzando con su primern insuucci6n secuencial y continuando hasta el fmal . Si cualquier- seal en la lista de sensibilidad cambia de valor como resultado de la ejecucin del proceso, se ejecuta de nuevo. Esto contina hasta que el proceso se ejecuta sin ninguna de estas senaIes que cambian cIc valor. En la simu1aci6n. todo esto pasa en un tiempo simulado de cero. Al reiniciarse, un proceso escrito apropi3darnente se suspender despus de una o unas cuantas ejecuciones. Sin embargo, es posible escribir un p"x:eso incuuecto que nunca se suspenda. Por ejemplo, considere un proceso con slo una instruccin secuencial, "X <'" not x" y una lista de sensibilidad de ., (X , ". Puesto que X cambia a cada paso, el proceso se ejecutar por siempre en tiempo de simulocifl cero: algo no muy til! En la prctica, los simuladores tienen sistemas de seguridad que nonnalmcnte pueden detectar un componamiento as de indeseable, tenninando el proceso mal camponada despus de unas miles de pasada~. La lista de sensibilidad es opcional; un proceso sin una lista de sensibilidad comienza ejecutndose en el tiempo cero en simulacin. Una aplicacin de un proceso de esta clase es para gener.tr forma... de onda de entrada cn un banco de pruebas, como en la tabla 4-65 de la pgina 296. VHDL tiene varias clases de instrucciones secuenciales. La primer.l es una irutruccin de asiS"llci6n de stflal secuencial; sta tiene la misma sintaxis que la \'crsin concurrente (nombre-s't1a{ <= expresill;), pero esto ocurre dentro del cuerpo de un proceso ms que de una arquitectu ra. Una instruccin anloga para variables es la jlUlntcci6 11 de asignaci611 dt \'Uritlblt. la cual tiene la sintaxis "I'llriable-name :=- apression;". Note que se utiliza un oper.tdor de asignacin diferente. ;=, para variables. Paro propsitos didcticos, la arquitectura del flujo de dalos del detector de nmeros primos en la tabla 4-50 se vuclvc a escri bir como un proceso en la tabla 4-56. Note que todavfa seguimos trabajando con 13 misma declaracin de entidad original de

T abla 4-56 Arquitectura VHOl de 'Iujode datos basada en

proceso para el detector de nmeros primos.

architecture prime6_arch of prime is begin process(N) variable N3UO, NJI.JQL..Nl, tr.!Ul.-NO, tr.!.-NILJlO : Snu.o:;IC; begin N3UO ; .. not N(3) and N (Q) ; N3LJ12LJ1l : . not N()I and not N(2) and N(l) ; N2Ul.-NO : .. not N(2) and N(l) and N(D) ; N2JlIL...,NO : .. N(2) and not N(l) and N/O); F <_ N3LJ10 or N3LJ12LJU or muu-Jo or N2J11UO ; end process end prime6~ch;

Seccin 4.7

El lenguaje de descripcin de hardware VHDl

291

llagen prol

Ida por

re h)s

Jlor

pr ne que apareci en la tabla 4-43. En la nueva arquitectu ... (pr ime6_arch), tenemos precisamente una instruccin concurrente, la cual es un proceso. La lista de sensibilidad del proceso contiene solamente N,las entradas primarias de la runcin lgica combinacional deseada. Las salidas de compuerta ANO deben ser definidas como variables ms que como seales, puesto que las definiciones de seal no se penniten dentro de un plOecso. De otro modo, el cuerpo del proceso es muy semejante al de la arquitectura original. De hecho, una herramienta de sntesis tlpica probablemente crearla el mismo circuito de cualquier descripcin. Otras instrucciones secuenciales, ms all de la asignacin simple, nos pueden dar mis control creativo pMtt expresar el comportamiento del circuito. La instrut:t:i6n if, con la sintaxis mostrada en la tabla 4-57, es probablemente la ms ramiliar de ellas. En la primera y ms simple ronna de la instruccin, se prueba una boo/eanup~ssion, y se ejecuta una sequcntial-statctnent si el valor de la expresin es true (verdadero). En la
if boolcan-apnssion then scqutnt;a/-statttnent ene! if;
if boolcun-uprt!uiOlI then scqueTltia/-staumelll else scqlltTltialstatcmenr ene! if;
i f booleunexp"SS;OII then sequel1tlal-stutemelll elsi f boofeanexp~ssion then scqucntiaf-statcmcnt

iJUlrocrin it

Tabla 4-57 Sintaxis de una Instruccin i f de VHDl.

el si f boofcanupression then scqucllliaf.statemcnl ene! if;

if boolean.upnssion then seqllentia/-statemelll elsif boo/eQnupression then seqljentiaf-statemenl

eisi f boofean.expression then sequentiaf-stutement


else s~qllentiaf sta/ement
end if;

292

Capftulo 4

Principios de diseo lgico combinacional


18

Tabl a 4-58 Arquitectura del detector

archit ecture prime7_arch of prime beqin ele nmeros primos que process( N) utiliza una instruccin if. variable NI : INTEGER: beqin
NI : _ COOVJ NTEGER(NI ;

if NI _l or NI&2 then F <_ '1' ; elsif NI . ) or NI_S or NI .7 or NI. lI or NI.1) then F else F <_ 'O' ; end it; ero proces9 ; end pr ime7_arch ;

<_

'1' ;

else

elsif

inslrllccin

cas e

segunda forma. hemos agregado una clusula "el se" con otra st!qllt!ndolstatt!mt!nr que se ejecUla si el valor de la expresin es fals e (falso). Pum crear instrucciones anidadas i f - then -e lse, VHOL utiliza una palabra clave especial el s i l , que inlrOduce las clusulas "en el medio". Una uqllt!nriof-Slalt!mt!nI de la clusula elsif se ejecuta si su boolt!an-uprrssion es true y todas las booft!an upressians precedentes fueran falseo La st!q/lt!nt;al -stolt!tnt!"t de la clusula elsa final opcional se ejecuta si todas las anteriores boolean-upressiolU fueran falseo La tabla 4-58 es una versin de la arquitectura del detector de nmeros primos que emplea una instruecin i f . Se utiliza una variable'local NI para mantener una versin enter-,, comcnida. de la cnlrada N. de modo que las companlciones en la instruccin i f puedan ser escritas utilizando valores enteros. Las expresiones booleanas en la labia 4-58 son del tipo que no se truslap:m; es decir, solamente una de ellas es true a un tiempo. Para esta aplicacin realmente no necesitamos la potencia total de las instrucciones i f anidadas. De hecho, una mquina de smes~ puede crear un circuito que evale las expresiones booleanas en serie. con operacin ms lenta, lo que podra ser posible de otro modo. Cuando necesitmnos seleccionar entre mltiples alternativas basadas en el valor de slo una sealo expresin. por lo regular una case s"Catement es ms legible y puede producir un eircuilo mejor sinletizado. La tabla 4-59 muestra la sintaxis de una instruccin case. Esta instruccin evala la uprrslion dada , encuentra un valor coincidente en una de las choius y ejecuta las correspondientes st!quential-sl0lements. Advier1a que una o ms instrucciones secuenciales pueden escribirse para cada conjunto de chaict!s. Las clloict!! pueden tomar la forma de un valor simple o de mltiples valores separados por barras vcnicales ( 1). Las choict!! deben ser mutuamente excluyentes e incluir todos los valores posibles del tipo de ~:fprrlsjon: la palabra clave othe r s puede emplearse como la ltima de las choicn para indicar lodos los valores que an no han sido cubier1os. Tabla 4-59
SIntaxis de una instruc-

cin case ele VHOL.

case uprrssion is when choius _,. st!quential-slalemt!nts

when choius .,. end case ;

s~qllt!ntial-staletn~nts

Seccin 4.7

El lenguaje de descripcin de hardware VHOL

293

ar chitecture prime8_arch of prime i5 begin


process(N)

Tabla 460
Arquitectura del detector de numeros primos Qua utiliza una

begin case OONV_INTEGERIN) is

instruoci6n case.

when 1 _> F <_ ' 1 ' ; when 2 _> F <_ ' 1 ' ; when 3 I 5 I 7 I 11 I 13 when othecs .. > F <_ 'O' ; end case ; end process; end prime8_arch ;

_>

<_

' 1';

La tabla 4--60 es otra arquitectura ms para el detector de OI.iffieros primos, codificada esta vez como una instruccin case. Como la versin concurrente. la instruccin select en la tabla 4-54 de la pgina 289, la instruccin case hace muy fci l de ver el
comportamiento funcional deseado. Otra importante clase de instrucciones secuenciales la con.~tituyen las instrucciones loop. La ms simple de ~tas tiene la sintaxis de la tabla 4-l y crea un ciclo ("loop") infinito. Aunque los ciclos infinitos son indeseables en los lenguajes de programacin de software convencionales. demostraremos en la secci6n 7. 12 cmo un ciclo de tal naturaleza puede ser muy til en el modelado de hardware.
loop
s~qllt:lllial-slal~m~/II

instruccin loop

Tabla 4-61
Sintaxis de una

instruccin loop
VHOL bsica.

s~qllt!f1tial-statem/!'nt

end loop ;

Un ciclo ms familiar, uno que hemos visto con anterioridad. es el ciclo tor, con la sintaxis mostrada en la tabla 4-62. Advierta que la variable del ciclo. id/!'ntijier, se declara implkitamente por su aparicin en el ciclo for y tiene el mismo tipo de rong/!'. Esta variable puede ser empleada dentro de las instrucciones secuenciales del ciclo y pasa a trav~ de lodos los valores de rongt:, de izquierda a derecha. una por iteracin. Dos tiles instrucciones secuenciaJes ms que pueden ser ejecutadas dentro de un ciclo son "exi t" y "ne xt". CUando se ejecuta, exi t transfiere el control a la instruccin que sigue inmediatamente al final del ciclo. Por el otro lado. nex t provoca que cuaJquier instrucci6n reslante en el ciclo sea omitida y comience la siguienle iteracin del ciclo.

ciclo lar

inslnuxifl exj t insllllcn next

foc idt:ntifier in rong/!' loop s/!'q II/!' n t ia 1- j tot/!'nlen t


s~qll/!'ntjal.stateml!nt

Tabla 4-62
SIntaxis de un 000

for VHDL

end loop;

294

Capitulo 4

Principios de disei'io lgico combinacional library IEEE ;

Tabla 463
Arquitectura del detector de nmeros primos que utiliza una instruccin for o

use

lEEE . st~1 09 ic_l16 4. al l;

entity pr ime9 is po~t I N: in STO_LOGle_VECTOR lIS downto O) ; F: out STO_fOOIe ) ; end prime9 ; architect ure prime9_arch oE prime9 is begin process(NI variable NI : INTEGER; variable prime : boolean o begin

NI : .. COOIJJNI ELER(N) ;

prime :_ true : ir m . 1 or m . 2 then null ; considerar los casos lmite (lmites) e l se Eor i in 2 to 253 loop if (NI mod i O) and (NI / . i) then prime : . false o exi t; eoo if ; end loop;
n

eOO i i; if prime then F


ene! process ;

<*

' 1 ' ; else F

<_

'O' ; end if ;

end prime9_arch ;
Nuestro viejo y conocido delcctorde nmeros primos est codificado una vez ms en la tabla 463. para esto aplicamos un ciclo f o r. El punto atractivo acerca de este ejemplo es que es verdaderamente una descripcin de componamienlo: en realidad hemos utili7.adO VHOL para calcular si la entrada Nes un nmero primo. Tambin hemos incrementado el tamao de N a 16 bilS. precisamente para enfatizar el hecho de que furamos capaces de crear un modelo compacto para el circuito sin tener que enumerJ.r de manera explfcita cientos de primos.

Seccin 4.7
whi le booli'(II/ -exl,ressicm Si' qUi' 11 t al sta/i'/1I ent
Si' r /ji' 11/al s ltJ / ('/111'111

El lenguaje de descripcin de hardware VHDL Tabla 4-64 Sintaxis de un ciclo


while VHDl.

295

l~

end loop;

La ltima clase de instruccin loop es el ciclo while, con la sintaxis que se muestra en la tabla 4-64. En esta fonna , booleon'ex1"ssion se prueba antes de clVb iteracin del ciclo, y el ciclo se ejecuta solamente si el valor de la expresin es true. Podemos utili7.af piocesos para escribir descripciones de comportamiento tanto de circuitos combinacionales como secuencialcs. Muchos ejemplos ms de descripciones de circuito combinacional aparecen en las subsecciooes VHDL del capitulo 5. Unas cuamas caracterfsticas adicionales de lenguaje son necesarias para describir circuitos secuenciales: de stos trata la seccin 7. 12, mientras que los ejemplos secuenciales aparecen en las subst:cciones VHDL del capftulo 8.

ciclo wflile

4.7.9 la dimensin tiempo y simulacin


Ninguno de los ejemplos con los que hemos tr.uado hasta ahora modelan la dimensin de tiempo del funcionamiento del circuito: todo ocurre en un tiempo simulado de cero. Sin embargo, VHDL tiene cxcelenles facil idades para modelar el tiempo, y es en efecto ott".1 dimensin significlltivu del lenguaje. En este libro no entraremos en detalles acerca de este tcma. pero presentaremos slo algunas ideas aquf. VHDL nos pernlite especificar un retardo de tiempo utilizando la palabra clave alter en cualquier insuuccin de asignacin de seal, incluyendo asignaciones secuenciales, concurrentes, condicionales y seleccionadas. Por ejemplo, en la arquitectura de compuena inhibiloria de la tabla 426 de la pgina 269 se podria escribir

palabra cI(\~ after

Z <. '1' after 4 ns when X .' l ' and Y .' O' else 'O ' after 3 ns;
Esto nos permite modelar una compuena de inhibicin que tiene 4 ns de retardo en una transicin de salida de O a I y solamente 3 ns en una transicin de I a O. En eOlomos de diseo ASIC tpicos, los modelos VHDL pum todos los componentes de bajo nivel en la biblioteca de componentes incluyen tales parmetros de retardo. Empleando estas estimaciones, un simulador VHDL puede predecir el eomportamiento de temporizacin aproximado de un circuito ms grande que utilice estos componentes. Otra manera de invocar la dimensin de tiempo es con wai t, una instruccin secuen cial. sta puede ser utilizada pam suspender un proceso por un periodo especificado de tiempo. La tabla 4-65 es un progrnma de ejemplo que utiliza la instruccin wait pam ctcar for'!las de onda simuladas, que verifican el fu ncionamiento de la compuerta de inhibicin para cuatro diferentes combinaciones de entrada en pasos de tiempo de 10 ns. Una vez que tengamos un programa VHDL cuyas sintaxis y semntica sean correctas. se puede utilizar un simulador VHDL para observar su funci onamiento. Aunque no entrnremos en detalles, es til tener un entendimiento bsico de cmo trabaja un simulador de esta clllSe.

instmcci6n wgi t

296

Capitulo 4

Principios de diseo lgico combinacional

Tabla 4-65 Uso de la instruccin wait de VHDL para generar formas de onda en un programa de banco de pruebas.

entity Inhibi t~stBench end InhibitTestBench ,

lS

architecture InhibitTB_arch of InhibitTestBench is culi(Xlnent I nhibit port ( X.Y: in BIT; Z : out BIT); end cUIp:>ilent;

signal XT. YT. ZT : BIT ,


begin

Ul : lnhibit port map (XT. YT. ZT) ; process begin


XT<_ '0' ; YT<_ 'D ;

wait fer 10 ns;


XT<_ '0 ; Y'I'<_ ' l ;

....ait fer 10 ns;


XT <_ '1' , YT <_ 'O' ,

Wdit for 10 ns;


XT<_ '1' , Y'I'<_ ' 1';

wai t ; - - this suspends the process indefinitely end process ;


end
Inhibi tTB_~rch ,

fit'mpo

d~

simulacin

laro de Jim ulud6n


lisra de elen/OS

El fu ncionamiento del simulador comienza en un tiempo de simulacin de cero. En este momento, el simulador inicializa todas las seiiales a un valor predctctminado (idel cual usted no debera depender!). Tambin inicializa cualquier sdlal o variable para las que los valores iniciales hayan sido declarados de manera explcita (no hemos mostrado cmo hacer esto). A continuacin. el simulador comienza la ejecucin de todos los procesos e instrucciones concurrentes en el diseo. Naturalmente, el simulador no puede hacer en realidad la simulacin de todos los procesos e instrucciones concurrentes simullneamente, pero puede pretender que lo huce, utilizando una "lista de eventos" basada en el tiempo y una 'matriz de sensibilidad de seal". Advierta que cada instruccin concurrente es equivalente a un proceso. Para simulacin de uempo cero, tooos los procesos son progrumados para la ejecucin, y uno de stos se selecciona. Todas estas instrucciones secuenciales se ejecutan, incluyendo cualquier comportamiento repetitivo que se especifique. Cuando la ejecucin de este proceso se completa, otro es seleccionado, 'i as sucesivamente, basta que lodos 1 05 procesos han sido ejecutados. Esto completa un lazo de ,rimulaci6n. Durante su ejecucin, un proceso puede asignar nuevos valores a las seales. Los nuevos valores no se asignan inmediatamente; en vez de ello, se colocan en una lisIa de a't!ntos y se progmman para llegar a ser efectivos en un cierto tiempo. Si la asignacin tiene un tiempo de simulacin tspecffico asociado con ella (por ejemplo. despus de un retardo especificado por una clusula after). entonces es programado en la lista de C\'entos para presentarse en ese momento. De otro modo, se supone que ocurren 'de inmediato'; sin embargo, en realidad es programado pam presentarse en el tiempo de simulacin actual ms un "retardo delta". El relamo della es un tiempo infinitesimalmente corto, de tal modo que el tiempo de simulacin actual ms cualquier nmero de retardos delta todava es igual al tiempo de simulacin actual. Este concepto pennite a los procesos ejecutarse mltiples veces si es necesario en tiempo simulado de cero.

Seccin 4.7

El lenguaje de descripcirl de hardware VHOL

297

Despus de que se completa un lazo de simulacin. la lista de eventos se explora para la senal o sei\ales que cambien en el siguiente tiempo ms prximo en la lista Esto puede ser tan diminuto como un retu'do deha posterior, o puede ser un rctu'do de circuito real, en cuyo caso el tiempo de simulacin se avanza a este tiempo. En cua1quier caso, se efcctl1an los cambios de la seal programada. Algunos procesos son sensibles a las seales cambiantcs, como es indicado por la matriz de sensibilidad de seal. Indica que, para cada senal, cules procesos tienen esa senal en su lista de sensibilidad. (El proceso equivalente de una instruccin coocwrenle tiene lodiJs estas seales de datos y control en su lista de sensibilidad). Todos los phOCCSOS que son sensibles a una senal que acaba de cambiar son prograntados para su ejecucin en el siguiente lazo de simulacin, que comienza ahorno La ux!lacin en dos rases del simulador consistente en un lazo de simulacin se guido por la exploracin de la lista de eventos y la realizacin de las siguientes asigna ciones de sedal programadas sigue indefinidamente , hasta que la lista se encuentre va cia. Hasta este punto la simulacin est completa. El mecanismo de la lista de eventos hace posible simular la operacin de los procesos concurrentes aun cuando el simulador cona en una sola computadora con un solo hilo de ejecucin. Y el mecanismo de retardo delta asegura de correcta operacin aun cuando un proceso o conjunto de procesos puedan requerir mltiples ejecuciones, dando vueltas en varios retardos deha, antes dc que las seales cambiantes se adapten a un valor estable. Este mecanismo tambi~n se utiliza para detectar procesos incontrolados (tales como"x <:_ not X"): si se presenta un millar de lazos de simulacin sobre un millar de retardos dcha sin avanzar el tiempo de simulacin en alguna cantidad "real", es ms pro-bable que algo est mal.

4.7.10 Sntesis
Como mencionamos al principio de esta seccin, VHDL fue inventado originalmente como un lenguaje de simulacin y descriJXin de circuitos lgicos y poslerionnente fue adaptado para sntesis. El lenguaje liene muchas caraclersticas y construcciones que no pueden ser sintetizadas. Sin embargo, el subconjunto del lenguaje y el estilo de programas que hemos presentado en esta seccin son generalmente sintetizables por la mayorfa de las herr.J.mientas. An ms, el cdigo que usted escribe puede tener un gran erecto sobre la calidad de los circuitos sintetizados que obtiene. Unos cuantos ejemplos se enumeran a conlinUtlCin: Lasestrueturas de control "scrie" como ifelsife l si felse pueden dar eomo resultado una cadena en serie de compuenas lgicas para verificar condiciones. Es mejor utilzn( una instruccin case o select si las eondicione~ son mutuamente exclusivas. Los lazos en procesos son generalmenle "desenrollados" o desarrollados para crear mltiples copias de lgica combinacional para ejeCutar las instrucciones en el lazo. Si se quiere emplear slo una eopia de la lgica combinacional en una se rie de pasos, entonces se tiene que disear un circuito secuencial, como discutir en captulos posteriores. Cuando sc utilizan instrucciones condicionales en un proceso, sin establecer un resultado para alguna combinacin de entrada, el compilador crear.!. un "18Ich" para mantener el valor antiguo de una sedal que de Olr.l manera puede cambiar. Tales lalch! generalmente no son deseados.

296

Caprtulo 4 Principios de diseo lgico combinacional

Adems. algunas caractersticas y construcciones del lenguaje pueden simpleme nte ser no sintetizables. dependiendo de la herramienla. Naturalmente. se tiene que consultar la documentacin para a\'eriguaf qu est permitido, qu no est permitido y qu est recomendado para una herramienta en panicular. Pura el futuro inmediato, los diseadores digitnles que utiliZIDl herramientas de sntesis necesitarn poner atencin a sus estilos de codificacin. a fi n de obtener buenos resulta dos. Y por el momento. la definicin de "buen estilo de codificacin" depende de alguna manera tanto de las herramientas de srntesis como de la tecnologa destino. los ejemplos que se mencionan en el resto de este libro, aunque son correctos desde el punto de vista sintctico y semntico, apenas rascan con dificultad la superficie de los mttodos de codi ficacin para diseos eluensos basados en HOl. E1 arte y prctica del disefto a gran escala de hardware b.1Sado en HDL est en la etapa inicial de su evolucin.

Referencias
Una descripcin histrica del desarrollo de Boole de la "ciencia de la lgica" aparece en The Compllterrom Pascl/lta I'On Nemnann por Herman H. Goldstine (Princeton University Press. 1972). Claude E. Shnnnon demostr cmo el trobajo de Boole podra ser aplicado a los circuitos lgicos en "A SymbolicAnalysis of Relay and Swilching Cin::uits" (Tratls. AlEE, Vol. 57. 1938. pp. 713. 723). Aunque el lgcbm booleana de dos YJIofe.~ es la ba.'iC para el 1gebr. de conmutacin. un lgebra booleana no necesita tener solamente dos valores. las lgebras bOoleanas con 2~ valores existen para todo entero ti ; pot' ejemplo. consltesc Discrett' Ma/hematical Structuf?S atld T/tdr Applicalions por Harold S. SlOne (SRA. 1973). Tales lgebras se pueden definir fomU llmente si se aplican los denominados postulados dI! Hlt1Itingtoll concebidos por E. V. Huntington en 1907; por ejemplo. v~ase Digitul Design por M. Moms Mano (Prentice Hall. 1984). Un desarrollo matemtico del lgebra booleana basa do en un conjunto ms moderno de postulados aparece en Modem Applied AIgebm por G. Birkhoff y T. C. Bartee (McGrawHill, 1970). Nuestro estilo ingenieril . desarrollo "directo" del lgebm de conmutacin se sigue de Edward J. McCluskey en su / ntnx/IIC' tioll ro the Theory 01 SlI'itc/itlg Circu(s (McGmw.Hill. 1965) y Logic Dt!Sign Principies (Prentice Hall, 1986). El teorema de implicantcs primos fue demostrado por W. V. Quine en '1'he Problem of Simplifying Truth Functioos" (Am. Mmh. Monthl)\ Vol. 59, No. 8. 1952. pp. 52 1-531). De hecho, es posible demostrar un teorema de implicantes primos ms gencrnl mostmndo que existe por lo menos una suma mfnima que es una suma de implicantes primos incluso si eliminamos la restriccin sobre el nmero de litemles en la definicin de -mfnima". Un mtooo grfico para simplificar funci ones booleanos fue propuesto por E. W. Veitch en "A Chart Method forSimplifying Boolean Functioos" (Proc. ACM, May 1952. pp. 127 133). Su dit,smmu de Vei/ch, mostrado en la figura 4 53. en realidlld reinvent un diagrnma propuesto por un arque6logo ingl ~s . A. Marquand ("On Logical Diagrams for 11 Tenns." P}'ilosophical MagaUlle Xli. 188 1. pp. 266-270). El dillgrnma de Veitch o esqucma de Marquand hace uso de un onten de conteo bi nario "naluml" para sus reno

pos/ulados (ltI Hunringtoll

Referencias

299

glones y columnas, con el resultado de que algunos renglones y columnas adyacentes difieren en ms de un valor, y los t~nni nos de producto no siempre cubren las celdas adyacentes. M. Kamaugh demostr cmo arreglar el problema en "A Map Melhod for Synthesis ofCombinational Logic Circuits" (Trons. AlEE. Comm. ami Elecuvn. Vol. 72, Part l . noviembre de 1953. pp. 593-599). Por otro lado. George 1. Klir, en su libro Intro (1!!Cljoll 1 0 Ihe Me/hod%gy 01 Sli'ilching Circui/s (Van Nostnlnd. 1972). afinna que el orden de conteo binario es tan bueno. o quizs mejor que el orden del mapa de Kamaugh para minimizar funciones lgicas. En este punto. el argumento de Kamaugh contra el de Veitch por supuesto que es irrelevante, porque ya no se dibujan diagramas para la minimizacin de circuitos lgicos. En vez de ello. utilizamos programas de computadora que ejecutan algoritmos de minimizacin lgica. El primero de tales algoritmos fue descrito por Quine en "A Way to Simplify Truth Functions" (Am. Math. MOnlhly. Vol. 62, No. 9, 1955, pp. 627-631) y modificado por E. J. McCluskey en "Minimization of 800lean Functions ( Bell Sys. Tech. J.. Vol. 35~ No. 5. Noviembre de 1956. pp. 141 7- 1444). El algoritmo de Quine-McCluskey se describe completamente en los libros de McCluskey citados con . anterioridad. El libro de 1965 de McCluskey tambi~n cubre el algoritmo de consenso iterativo para hallar implicantes primos y demuestra que funciona. El punto de partida para este algoritmo es una expresin de suma de productos. o de manera equivalente. una lista de cubos. Los t~nni nos de producto 110 neusjtan ser mintenns o implicantes primos. pero pueden ser alguno o ninguno entre ellos. En otras palabras, los cubos en la lista pueden tener cualquiera y todas las dimensiones. desde Ohasta n en una funcin de n variables. Comenzando con la lista de cubos. el algoritmo genera una liSIa de todos los cubos implicantes primos de la funcin, sin tener nunca que generar una lista de minirl nninos completa. El algoritmo de consenso iterativo fue publicado por primera vez por T. H. M OII. Jr.. en "Determination of the Irredundant Normal Forms of a Truth Funclion by Iterated Consensus of the Prime Implicants" (IRE Tmns. Elt!clron. Compuf~rs, Vol. EC-9. No. 2. 1960. pp. 245-252). Un algoritmo de consenso generalizado fue publicado por Pierre Tison en "Generalization of Consensus Theory and Application to the Minimization of 8 00lean Functions" (IEEE Tmns. Eleclron. Compurers, Vol. EC-16. No. 4, 1967. pp. 446-456). Todos estos algoritmos estn descritos por Thomas Downs en Logic Design li'ith Pascal (Van Nostrand Reinhold. 1988). Como explicamos en la seccin 4.4.4. el inmenso nmero de implicantes primos en algunas funciones lgicas hace poco prctico o imposible encontrarlos todos de manem

wx
YZ"", 00

., ,. ,
00
11

, , , " ,

01

tO

.
"

11

Figura 4 53
Un diagrama de Veitch de 4 variables o diagrama de Marquand.

" ,

" "

300

Capitulo 4 Principios de diseo lgico combinacional

crmjuntoO conj unto I conjunto-P conjllnto.S

lgictl mlt;l'olllooo

dctcrminfstica o seleccionar una cubiena mnima. Sin embargo. usando mtodos hcuristicos eficientes puede hallarse soluciones que se encuentran cerca del mfnimo. El muxlo Espresso-lI se describe en Logic Minimization Algorilhms for VLSI Synl"~s.J por R. K. Br:l.yton. C. McMullen, G. D. Hachlel y A. SangioVanni-Vincenlelli (Kluwer Academic Publishcrs. 1984). Los algoritnlOs ms rec ientes Espresso-MV y Espresso-EXACT se describen en "Multiple-Valued Minimization fOf eLA Qptimization" por R. L. Rudell yA. Sangiovanni-Vince nte lli ( IEEE Trans./ eD, Vol. CAD-6. No. 5. 1987. pp. 727-750). En este capftulo describimos un mtodo de mapa para hallar riesgos estticos en circuitos AND-OR y DA-ANO de dos niveles, pero cualquiercircuilO combinacional puede ser analizado por riesgos. Tanto en su libro de 1965 como en el de 1986. McClu skey define el conjunto-O y los conjuntos-I de un circuito y ensea a utilizarlos para encontrar riesgos estticos. Tambin define los conjuntos-P y conj untos-S y muestra cmo pueden emplearse para hallar riesgos dinmicos. Muchos aspectos profundos y variados de teorla de conmutacin han sido omitidos de este libro. pero han sido apaleados a muene en otros libros y literatura. Un buen punto de partida para un estudio acadmico de teoria clsica de L'"Onmutacin es el libro de Zvi KohaVi. SW1ching and Finit~ Autom"ta Th~or)'. segunda edicin (McGrnwHiII. 1978), el cual incluye material acerca de la teora de conjuntos. redes simtricas. descomposicin funcional. lgica de umbral. deteccin de fa llas y sensibiliucin de trayectoria. Otra rea de gran inters acadmico (pero poca actividad comercial) es la I6gicli mtil,il'Oftiada no binaria. en la cual cada lnea de senal puede tomar m..~ de dos v!,lorcs. En su libro de 1986, McCluskey proporciona una buena introduccin a la lgica multivaluada. explicando sus pros y sus contras y por qu~ ha habido tan poco desarrollo comercial. A travs de los aos. be luchado por hallar una referencia fc ilmente accesible y definitiva acerca del lenguaje ABEL. y al fin la encontr: el "Apndice A" del Digital Design Using ABEL. de David Pellerin y Michael Holley (?rentice Hall. 1994). Tiene sentido que estt fuera el trabajo definitivo: iPellerin y Holley inventaron el lenguaje y escri bieron el cdigo original del compilador! Pellerin tambin escribi. con Douglas Taylor como coautor, una muy amena introduccin a VHDL, titulada VHDL Mude Easy! (?rentice Hall. 1997). VHDL es un "Very Huge Design Language" ("Lenguaje de diseo sumamente enorme") y cubrimos solamente un subconjunto de sus ciU1l.cterlsticas y cap:acidades en el libro. Existen muchas opciones del lenguaje (tules como las etiquetas de instruccin) que no utilizamos. pero stas se estudian en libros tutoriales y de referencia dedicados a VHDL. Uno de los mejores es Th e D~sjgner 's Cuide 10 VH DL (Morgan Kaufmann, 1996). Aunque es grande (700 pginas) cubre el lenguaje completo muy sistemihicamente e incluye un apndice conciso y muy til acerca de la sintaxis completa del lenguaje tanto de VHDL-87 como de VHDL-93 . En este texto empleamos un subconjunto dellt nguaje que es compatible con ambos e.~tndares . Una introduccin a VHDL algo breve es VH DLfor Designers por Stdan Sjoholm y Lcnnan Lindh (?renlice Hall. 1997). Este libro se recomienda por su ameno enfoque acerca de asuntos de diseo prctico incluyendo sintesis y bancos de prueba. Otro libro

Problemas propuestos prctico es VIIDL f(}r ProgmmnUJble Logic. por Kevin Skahill de Cypress Semiconductor (Addison-Wesley. 1996). Todos los ejemplos de ABEL y VHDL en este captulo y a lo largo del libro fueron compilados y en la mayora de los casos simulados utilizando el software Foundation 1.5 Sludent Edition de Xilinx, lnc. (San Jose. CA 95124. """....... xi linx .cm.) El software Foundation integra editor esquemtico. editor HOL. compiladores para ABEL, VHDL y Verilog. ad como un simulooor de Aldec. lne. (Henderson, NV 89014 . ..,...... .aldec . con) junto con las herramientas especializadas propiedad de Xi lim:: para diseo y programacin de CPLD y FPGA. Tambi~ n contiene un excelente sistema de ayuda en Unea. incluyendo manuales de referencia tanto para ABEL como para VHDL. El software Foundation ~ distribuye en CO-ROM con algunas ediciones de este libro. Los paquetes IEEE estndar y VHDL son elementos importantes de cualquier ambiente de diseo VHDL Una lista de sus definiciones de funcin y tipo se incluye en un aptndice en algunos textos de VHDL. pero si usted tiene realmente curiosidad acerca de ellos. puede encontrar los archivos fuente completos en el subsistema de biblioteca de cualquier sistema de disefto VHDL. incluyendo el software Foundation. Discutimos brevemente; la prueba de los dispositivos en el contexto de los vectores de prueba de ABEL. Existe un extenso y bien establecido fondo bibliogrfico acerca de prueba de dispositivos digitales. y un buen punto de panida para su estudio es el libro de McCluskey de 1986. La generacin de un conjunto de vectores de prueba que prueban completamente un circuito extenso ta] como un PLD es una tarea que se deja mejor a un programa. Al menos un negocio enlero de la compaia se encuentra enfocado a programas que automticamente crean vectores de prueba para la prueba de PLD (ACUGEN Software, Ine.. Nashua. NH 03063, """- .acogen .CCXlI)

301

Problemas propuestos
4. 1

Utilizando l:lll _'Viables SABELOTODO. DISEADOR. FAUA YESTUDIOS . escriba


una expresin booleana que sea I pant discftadores con &ito que nunca estudiaron y para sabelOlodos que estudiaban todo el tiempo. Demuestre los teoremas T2-T5 aplicando la induccin perfecta. Ikmuestrc: los teoremas T] '- T3' YTS' aplicando la induccin perfecta. Demuestre los teoremas T6-1'9 aplicando la induccin perfecta. De acuerdo ron el teorema de DeMorgan. el complemento de X + Y . Z es X' . Y' + Z'. Ambas funciones todavra son I pan! XYZ. 11 0. {..Cmo pueden ser tanlO una funcin como su complemento iguales a I para la misma combinacin de entrada1 1dentifique el
,~.

4.2 4.3 4.4

4.5

302

Capitulo 4

Principios de d isei'lo lgico combinacional


4.6

Utlli;e los teoremas del 41gebra de conmutacin pmt simplificar{'llda unade las siguientes funciooes lgicas;
(a) F mW X Y Z (W X Y Z'+ W X' Y Z + W' X Y Z + W X Y' Z)
(b) F = A B + A B C' D + A B O E'+ A B C' E +C' O E
(e) F = M N Q+Q' P' N' +P R M+O' Q M P'+M R

4.7

Escri ba la tabla de verdad para cada una de las siguie ntes fu nciones lgicas;

(a) F = X' Y +X' y ' Z

lb) lO

F = W' X + Y' Z'+ X' Z

lo) lo) lO )
(i)

F = W + X' (Y'+Z) F = Y W + X' Y' Z F = (W . X)' (Y' +Z')'

Id) F = A B + B' C+C' 0 + 0 ' A


F ",(A' + B' + C O) (B + C' + O' E')

Ih) F = (A + S)' + C'l' + O)'

F ;; (A' + B +C) (A + S' + O') (8 + C' + O') (A + B + C + O)

4.8

Escriba la tabla de ventad para eada una de las siguientes funciones lgic:u:
(b) F ' M' N' + M P + N' P (d) F = A' B (C B A'+B C')

(a) F = X' Y' Z'+ X Y Z + X Y' Z (e) F = A B + A S' C'+ A' B C

(e) F = X y . (X' y . Z + X Y' Z+ X y . Z'+ X' y' . Z)


(g) F .. (A + A') B + B A C' + C (A + B') (A' + B)

(f)

F ::: M N +M' N' P'

(h) F = X Y'+Y Z + Z' X

4.9

Escriba la suma y el producto cannicos par.! C3da una de: las siguientes funciones lgic'.1s:

(,) ' - >:",{I.2)


(e) F .. I:A.8.d2.4,6.7) (e) F _ X + Y' Z'

(b) F .. n A.8(0, 1.2)

(d) F :: n W,lt y(0. I.J,4.5)

(O F = Y'+ (W' X)'

4.10

Escriba la suma y el produeto eannicos para cada una de las siguientes funciones lgicas:

l) lo) lo)
4.1 1

F ;; !x.v.z{O,3) F ::: ! u.e .O< 1, 2.5.6) F = X' + Y Z' +Y Z'

lb) (O

F z n A,8,c(l , 2.4)

Id) F = n~~p(O.I . 3.6.7)


F = A'B + B'C+ A

4.12
4. 13

Si la suma eanllica par.! una funcin 16giea de n entr.lda.~ es tUlllbin una suma mrnima. cuntas literales se encuentran en cada t~nnino de producto de la suma1 Puede: haber cualquier otra suma mfnima en este caso1 Plop:ncione dos razones por las que el COi'iIO de in\'ersores no se incluye en la definicin de "mfnimo" para la minimil.acin lgica. UtiJj;e los Il\apasde Kamaugh para encontrur una CJL:pruin de suma de: productos mnima para cada una de las siguientes funciones lgicas. Indique las celdas I distinguidas en elida mapa.
(a) F ", Ix.v,z( I .3,S.6.7)

(b) F :: !wJtv.z{1. 4. S.6. 7.9, 14. 15)

(e) F e [lwJty{O.I,3. 4.5)

(d) F '" f.w.x.v2f,.0.2, S, 7.8, 10. IJ . I ')

(e) F ", n A.B.c .o(l.7, 9. 13.15)

(O F : ! A.B.c.o(1A.5.7, 12. 14. 15)

Problemas propuestos

303

4.14 4.15

4.16

EncuenlJ'C: una expresin de producto de 5Umll5 mnima para coda funcin en el problema propuestO 4.13 utilizando el TOI!todo de la seccin 4.3.6. Encuentre una expresin mnima de producto de. sumas para la funcin en cada una de las IiguOlli siguientes y compare su CO:Sto con la expresin mnima de prodm:IO de Sun1115 {lft\'iamente hallada: a) figuro 4-27: b) figuro 4-29: e) figuro 4-33. Utilizando mapas de Kamaugh. encucnlJ'C: una expresin de producto de 5Urnas mnima para cada una de las siguientes funciones lgicas. Indique las celdas I distinguidas en cada mapa.
(a) FzIA.8.C<0, 1,2,4) (e) F = nA,B.C< 1,2,6.7)
(e)

(b) F - Iw.x.v.z{1 ,4.5,6, 1I , 12, 13, 14)


(d) F :z Iw.x.v.z{O,J.2.3,7.8, IO.11,I5)

F = Iw.x.v.x< 1.2,4, 7 ,8, I 1. 13, 14)

(f)

F - 14e.c.O< 1.3.4.5.6,7.9, 12.13. 14)

4,17 4.18 4.19

Encuentre una expresin de producto de sumas mfnima pan. cada funcin en el problema propuestO 4.16 utilizando el TOI!todo de la seccin 4.3.6. Encuentre la suma completa para las funciones lgica.o en el problema 4, 16d) Yel. Empleando mapas de Kamaugh. encuentre una exp!eSi6n de producto de sumas mrnima para cada una de la.s slguienlCS funciones lgicas. Indique 185 celda5 1 diSlingtlidas en cada
~po.

(a) F = Iw.x. v.z{O.I ,3.5. 14) + d(8.15)

(b) F "" l'.w.x. v.z{O. 1.2.8. JI ) + d(3,9, IS)

(e) F = IA.8,c,o<:t.S,9.14. 15) + el( 11 )

(d) F := IA.,e,c.oCt.S.6, 7 .9, 13) + d(4, IS)

(e) F = Iw.x.v.z{3,S.6,7, 13)+ d( I,2.4, 12,15)

4.20
4.21

4.22

Repita el problema 4.19, halllltldo una expresin de producto de sumas mfnima pal1I cada funcin lgica. Pan cada funcin lgica en 1 0$ d05 problemas anteriores. det.ennine si la expresin de prodUCIO de suma mnima es igual ala expresin de producto de l Umas mnima. Tambi~n compare el coslO del circuito para la realizacin de cada una de las dos expresiones. Pan. cada una de las siguientes expresione lgicas, encuentre lodos los riesgos wlcos en el circuito eo"espondiente de d05 nh'eles AND-OA U DAANo. y disc!le un circuito l i~ de riesgO$ que: n:alice la misma funcin lgica.
(a) F =W X+WY' (e) F ",W , Y+X' , y' + W , X , Z
(e)

(b) F := W X' y '+ X Y' Z + X Y


(d)

F .. W' X + Y' Z+WX Y , Z+W X', y Z' F = (W + Y'+Z1 (W + X' + Z' ) (X'+Y+Z)

F =(W+X+Y)(X'+ Z')

(O

(g) F := (W + y +Z') (W + X' + Y + Z) (X' + Y') (X + Z)

4,23 4,24 4,25 4.26 4.27

Escriba un conjunto de vectores de prueba de ABEL para el delector de nmeros primos enlatllbla4- 17. Escriba un problema VHDL estructural (enlidud y arquitcctur.l) pan!. el circuito de aJanna en la figura 4-19. Repita el problema 4.24. utiliz.ando el estilo de Hujo de datO$ de descripcin, Repitael problema 4,24, utilice un proceso y un estilo de descripcin de comportamiento. Escriba un problema V.IDL estructural com:spondiente al circuito lgico basado en la compuerta NANO de la figura 5 17,

304

Capitulo 4

Principios de dise~o lgico combInacional

Ejercicios
4.28 4.29 4.30 4.3 1 4.32 4.33 Disc:i\e un circuito lgico de aspecto no trivial con un ciclo de retroalimentacin pero quc tenga una Slllida que dependa solamente de su entruda actu31 . Demuestre el teorema de combinacin TIO sin utilizar induccill perfecta. pero suponien do que los teoremas TI -1'9 y TI' -1'9' son \'Crdadcros. Muestre que el teorema de combinacill TIO es de hecho un caso especial del consenso (TI!) usado con cobertura (T9). Demuestre que (X + Y1 y = X . Y $in emplear induccin peecta. Se puede suponer que los teoremas T 1-TI I Y TI' -TI l ' son \erdadcros. Demuestre que (X + y ). (X' . Z) .. X . Z. X ' Y" $in hacer uso de la induccin perfecta. Se puede suponer que los teoremu TI -TI I y TI' -TII' son verdaderos. Muestre que una t'OfIlpuena ANO de n entradas puede rcemplll7.arsc por (n - I )compuertas ANO de 2 entradas. Puede hacerse la misma instruo.:ill para compuertu NANO'? Justi fique su respuesta. Cuntas maneras fsicamentedifercntes existen para realizar V W X Y . Z utilice cuatro compuertas ANO de 2 entradas (414 de un 74x08)1 Justifique su respuesta. Utilicc el lgebra de conmutacin p.:lf1l dc:mostrar que al unir dos entradas en conjunto de: una compuena ANO u OA de (n + 1) entradas proporciona la funcionalidad de una compuerta de ti entrudas. Demuestre los tcorclTUlli de DeMorgan (T13 y TI 3') usando la induccin finita. Cul smbolo lgico se aproxima con mayor exactitud a la realizacin interna de una compuerta NOA lTL. la fi gura 4-4(e) o (d)1 Por qul'? Utilice los teoremas de l lgebra de conmutacin para volver a escribir lo expresin siguie nte uti1i~ndo tan poelll'i n"eaiones como sea pusible (se peonitcn par~nt es i s oomp1cmentooos):

4.34 4.35

4.36 4.37 4.38

B' C. A C D'. A' C. E S'. E (A .C) (A'. O')


4.39 Demuestre o rechace hu instruCCiones siguientes: (a) Sean A y B l'flriab/e$ del lgebn!. de conmutacin. Entonces A . S = O Y A + B '" I implica que A = B'. (b) Sean X y Y ~.xprtsion~$ del :Ugebrn de conmutacin. Entonces X . Y O Y X Y I implica que X "" Y'. Demuestre los teoremas de exp:lIlsin de Shannon. (Sugerrncia: No se \'aya muy lejos: es fkil .) Los teoremas de pansin de Shannon pueden genel11li7~!)W1I extraer" no solamente una sino i variab les de modo que una funcin lgico pueda ser expresada como una suma o producto de 2; oninos. Eslablel.Ca los eoremos de expansin gcnera li ~cIos de Shannon. Demue5tre cmo los teoremas de expansin genel1llizados de ShDllnon conducen a las represen1llCiones de suma caoonica y producto cannico de funciones lgicas. Una rompu~N/J OR Exclusiva (XOR) es una compuerta de 2 entrlldn.~ cuya salida es I si y Slo si exoctamente una de sus entradas es l. Escriba una tabla de verdad, presin de suma de productos y el COlTeSpondiente circuito AND-OA pal11la funcin OA Exclusiva. Desde: el punto de vista del .lgebrn de conmutacin, cul es la funcin de una compuerta XOA de 2 entradas cuyas entradas se encuentr.ln unidas1 Cmo puede difmrel comportamiento de: salida de una compuerta XOA real?

4.40
lrortmas g~nerali<JIdos d~ apan$in de S/wnnon

4.41

4.42
cnmf,uenll OR Exclusiva (XOR)

4.43

4.44

Ejercicios
4.45 Oesputs de completar el diseno y fabricacin de un sistema di gital basado en 551. un diseiJador encuentra que se requiert de un in\trsor ms. Sin embargo. las nicas compuertas de sobra en el sistema son una O A de 3 entradas, una ANO de 2 entradas y una XO A de 2 entradas. Cmo deberla rea lizar el discftador la funcin del inversor sin agregar otro CI'? Cualquier conjunto de tipos de compuerta lgica que puede rea.1izu cualquier funcin lgica se conoce como un conjunto compltto de compuertas lgicas. Por ejemplo, compuertas ANO de 2 entradas. compuertas OR de 2 entradas e inversores son un conjunto completo. porque cualquier funciIIlgicl puede expresarse como un producto de sumas de \'ariablcs y sus complementos. y las compuertas ANO y OR con cualquier nllmero de entrad:u pueden hacerK a partir de compuertaS de 2 entradas. Las compuertas NANO de 2 entradas forman un conjunto completo de compuertas lgiCas'! Demueslre $U respuesta. Las compuertas NOA de 2 entradas fonnan un conjunto completo de compuertas lgicas? Demueslre su respuesta. Las compuertas XOA de 2 enlladas forman un conjunlocompleto de compuertas lgicas'! Demuestre su respuesta. Defina una compuerta de dos entradas. aparte de NANO. NOA o XO A, que fonne un conjuntO completo de compuertas lgicas si se permiten lu entradas conslllntes O y l . Demoeslre su respuesta. Algunas personas piensan que existen cuatro funciones lgicas bsicas. ANO, OA. NOT Y Sur: La figura X4.5O es un slmbolo posible para una computrta BUT de 4 entradas y 2 salidas. Invente una funcin til y no trivial para que la compuerta BUT la realice. La funcin tendra algo que \'eI' con el nombre (BUT. "pero Tenga en cuenta que, debido a la si mc:lrfa de l sfmbolo. la funcin deberla ser sirnttrica con respecto a lu enlllldas A y B de cada SCCC'i6n y con respecto a las secciones I y 2. Detalle su funcin de BUT Y escriba su tabla de verdad. EKriba expresiones lgicas para 185 salidas ZI y Z2de lacompucn& SUT que usted dise en el ejercicio anterior, y dibuje un diagrama lgico c... respondiente utilitando compuertas AN O. compuertas OA e ilWersote!. La mayora de los estudianlc5 no tienen problema al emplear el teorema 1'8 para "expandir" la multipliCilCin en upmi~ lgicas, pero muchos desarrollan un bloqueo mental si intentan utilizar el teorema 1'8' pana ~expandir" la suma de una expmifl lgica. Cmo puede usarse la dualidad para superar esle problema? Cuntas funciones lgicas diferentes de n \..nables u isten '? Cutnta.s funciones lgicas diferentes de 2 variables F(X, Y) exiSten? Escriba una CJlpteSin algebraica simplificada para cada una de ellas. Unafimcidn lgica allludU(lI es una funcin F tal que F ", fO. Cules de las siguientes funciones""'" autoduale$' (E1 sfmbolo e denota la opcmcin O R mclusiYII. (XQ A).)
M ).

305

4.46

CQIIjunto compltf()

4.41 4.48 4.49

4.50

SUT
complltrta SUT

..
al
FIgura X4 .50

ZI

12

4.5 1

4.52

4.53
4 .54

4.55

fU/tcin lgica lIulodual

(a) F :X

(b) F = Ix.v.z(O.3,5. 6)

"

(c) F : X Y' .X' y

(d) F = W (XEDYEDZ) + W (XEIlYEI'IZ)'


(1)

(e) Una funcin F de 7 \..nables lal qucF .. l siyslosi4oms de las variables son 1 4.56

Una funcin F de lO variables tal que F _ l si yslosi5 o m!sdc las variables son I

Cuntas funciones lgicas autoduales de n variables de entrada existen'? (SlIgurncia: Considere la estructuro de la tabla de verdad de una funcin autodual.)

306

CapItulo 4 Principios de dise'lo lgico combinacional


4.57
Dcmue.~tre que cua lquier fUllci/1 lgica de " ell trodas F(X l' .... XII) que pueda eiICribirse

4.58

4.59
4.60

4.61 4.62
.lUnUI no "dund""'fI

4.63

4.64

4.65

en la (onlla F = Xl . G(X2.... X,,) + Xl ' GO(X2 ...X,,) el autodual. Suponiendo que una compuena de in\"~in tiene retardode propagacin de S ns. y que \1ruI compuerta 110 in"ersorn tiene un retardo de propagacin de 8 os. com pare las velocidades de los circuitos en la ligura 4-24 (a). (c) y (d). Encuentre la:; expresiooes de producto de SUIT\llS mnimo paro 1" funciones lgicas en las liguras 427 y 429. Utilice el lgebra de conmutacin par, demostror que las funciones lgicas obtenidas en el ejercicio 4.59 son iguales a las (uociones ANDOA obtenidas en las figuras 4-27 y 4-29. Dclt;nnine si las expresiones de prodUCtO de sumas obtenidas al "eJCpandir' la:; sumas mfnimas en la figura 427 y la 4-29 son mlnimas. Demlle5tre que la regla par.!. combinar 2' celdas 1 en un mapa de Kamaugh es verdadena. utilizando los axiomas y teoremas del lgebra de conmutacin. Una suma no ~dundantt para una funci/1 lgica F es una suma de implicantes primos par F de tal modo que si cualquier implicante primo se elimina. la suma ya no es igual a F. Esto suena bastante p:1TC(:ido a una suma mlnima.. pero una suma 110 redundante 110 es necesariamente mlnima. Porejemplo. la suma rnln ima de la (uncin en la figuro 4-35 tiene slo tres u!nninos de prodUCto. pero hay una suma no redundante con cuaUl) tfnni nos de producto. Encuentre la suma no redundante y dibuje un mapa de la fuoci n. encemmdo en cfrculos solamente los implicantes primos en la suma no /"CUundante. Encuentre otra funcin lgica en la seccin 4.3 que tenga una o ms sumas no redundantes no mlnima:s. y dibuje su mapa. encerrando en cfrcuJo~ nicarntnte los implicanle!! primQ!l en la suma no redundante. Dibuje un mapa de Karnaugh y asigne variables a las entradas del circuito AND-XOA en la figura X4.65 de modo que su salida sea F = tw.x.v.z{6. 7 .1 2.13). Advierta que la compuerta de salida es una XOA de 2 entradas en lugar de una OA.

Figura X4.65

- ,

4.66

4.67
4.68

Un circuito "comparador'"' de 3 bits rt:cilJedos mlmerosde 3 bi ts. p .. P2P ,POYO. 0 20 ,0 0Diseile un circuito de sumll de productos mfnimo que prodUl.C1l una salida 1 si y slo si P>0 . Encuentre cxprei-Of1C5 de producto de wmas de salida mltiple mnimas pan F Ix.yz(0, 1,2). G .. Ix.-a(1.4.6). y H .. Ix.U<0.1.2.4.6). Demuestre si la expresin sigui ente es una suma m{nimao 110 10 es. Haga esto de la manera ms sencilla posible (algebraicamcnte. sin usar mapas).

r u v wx. r u v xz.r u wxY' Z

Ejercicios

307

,,"- , o, ,, .,
00

wx

,
11

01

00

5
7

" I'J III


I!

"
1
11

'( z """
00

wx
00

,
Figure X4 . 72

z
y

01

" -:4.69

..---

,. 1'0

x
v..

" "
x

El tuto establece que una tabla de ~'erdad o equivalente es el punto de panida para 1 0$ mtodos de minimizacioo combinaciona1c:s tradicionales. Un mapa de Kamaugh contiene por sI mismo la misma informacin que una labIa de \-en1ad. Dada una expresin de suma de ProdOCl05. es posible escribir 10$ unos cOllespondientes a cada tf rrnino de producto directamente en el mapa sin desarrol\a.r una labia de verdad explfcilll o lista de minitf1'minos. y luego proceder con el p,""""-miento de minimizacin de mapa. De esla forma, encuentre una expresin de producto de sumas mnimas para cada una de las s.iguiente5 funciones lgicas:

< a) F = X' Z.X Y.X Y' Z


(e) F = W X Z' +W X' Y Z-tX Z

(b) F .. A' C' D+B' C D -t A C' D+B C D (d) F =(X' +Y') (W+X'+Y)(W'+X+Z)

(e)

F .. A B e' D' .A' B C' . A B O. A' C O. B C O'

4.70 4.71

4.72

Repila el ejercicio 4.69. encontrando una expresin de producto de $Umas mnima para cada funcin lgica. Derive la upresin de producto de sumas mnima para la funcin del detector de nmeros BCD primos de la figura 4-37. Determine si la upn:si6n es o no algebraieamente igual a la e)(presin de producto de sumas mnima y explique su respuesta. Un mapa de Kamaugh para una funcin de S \'3riables puede dibujarse como se muestra en la figura X4.72. En un mapa asl. hu celdas que: OI;Upan la misma posicin relativa en los submapas V '" O Y V '" I se consideran adyacentes. (Muchos ejemplos trabajados de mapas de Kamaugh de S variables aparecen en las secciones 7.4.4 y7.4.5). Encuentre una expresin de producto de sumas mnima para cada una de las siguientes funciones utili7.ando un mapa de S varillblcs:

nwpo dt Kamaugh
d~ S l'ariahl~s

(a) F = Lv.w.x. yzf,.5. 7. 13. 15. 16.20.25.27.29.3 1) (b) F _ Lv,w.x.yzf,.O. 7. 8. 9. 12. 13.1 5. 16.22.23.30.31) (e) F = Lv,w.x.y.z{O. 1.2.3.4. 5. 10. 11 . 14.20.2 1.24.25.26.27.28.29.30) (d) F '" Lv.w.x.y.z(O. 2.4.6,7.8. 10. 11. 12. 13. 14. J6. 18. 19.29.30) (e) F ",
(1)

nv.w.x.yzf,.4.5. 10. 12. 13. 16. 17.2 1.25.26.27.29)

F '" Iv.w.x. Y .Z< 4.6.7.9. 11 . 12. 13. 14. 15.20.22.25.27.28.30) + eS( l. 5.29.3 1)

308

Capitulo 4

Principios de diseo lgico combinacional

w,
YZ" " 00

,
z

.,
" "

" " "

,,"-.

w,

.,
"

.,

" " "


z

"
U,V.O,l

"
w

u,V" 0 ,0

w,
Figura X4 . 74
YZ" " 00

w,
lO

r,.....:::...."

.,
O

, " ,, ..- ,o .- ,

..

ji-

01

11

YZ"" 00

"
~
Q

"
~

z
y

U,V.I .O

, ,

., , ..- . " ,, ..- a , ;;;- .- e


ji~ ~

01

11

10

,-

U,V . I ,I

4.73
mapa de Kamaush de 6 m riablt'J

4.74

Repita el ejcrckio 4.72, hallando una cpretin de prodUCIO de ~ umas mnima par, cada funcin lgica. Un mapa de Kamaugh paru una funcin de 6 \'ariable:s puede dibujarse como se mueslra en la figura X4.74. En un mapa asl. las celdas que ocupan la misma posicin relativa en submapas adyacentes se consideran como adyacentes. Minimice las funciones siguientes con la ayud:r. de lo; mapas de 6 variables:
(a) F '" ro.V.W,X. v.z{!.S. 9. 13.2 1.23.29.3 1.37, 4S. S3,61)

(b) F :: ro.v.w.x.v.z{0.4,8. 16,24,32,34,36.37.39,40.48.50,56) (e) F = ro.v.w.x.y.z{2.4,5, 6, 12-2 1.28-3 1,34.38,50.51.60-63)

4.7S

4.76 4.77

Existen 2n subcubos m de un eubo 11 p:ll1I el \'lIlar m _11 - J. Muestre sus representocione.~ de texto y los COI I espondientes tnninos de: producto. (Se pueden emplear elipses 11 mWida que se requ ieran. por ejemplo. l . 2..... n.) Hay slo un subcubo m de un cubo 11 p;lI1l el valor m. 11; 5U representacin de texto es xx ...u . Escrib. elti!rmi no de: producto COfTC'Spondiente a este eubo. El programa en e de la tabla 4--9 uti liza la memoria de manera ineficiente porque asigna la memoria pan. un nl1mero mltmo de cubos en cada nivel. incluso si nu nca se hoce uso de este mximo. Vueha a diseftar el programa de manera que los arreg los cubes Yused sean arreglos de una dimensin. y cada ni vel utilice solamente tantas entradas de arreglo como SC3n necesarias. (SU 8tm.da: se pueden as ignar todavfa cubos de manera secuencial. pero manlEnpse al tanto dtl punto de panida en el lUTeglo para cada niveJ.)

Ejercicios
4.78 Como una funcin de m, cuntu veces se redescubre un cubo m diferente en la tabla 4 9, pero el cubo se encuentnl en el ciclo imemo y se descana? Sugiero. a1gul1lUi maneru parlI eliminar esta deficieDCia El tercer ciclo for en la tabla 4 9 intenta combinar todos los cubos m a un ni\'el dado con todos los OU'OS cubos m en ese nivel. De hecho, solamente se pueden combinar los cubos m con las x's en las mismas posiciones, de modo que es posible reducir el nmero de iteraciones del ciclo mediante el 1,150 de una estructura de datos ms sofisticada. Disdle una estructura de dalOl que segregue los cubos para un nivel dado de acuerdo a la posicin de SUlX'S. y detennine el tamaflo rn.imo requerido para di\'C'SOS elementos de la estructura de datos. Vuelva a escribir la tabla 4-9 de acuerdo a esto. Haga una estimacin de s i los ahorros en las iteraciones de l ciclo internO conseguidas en el ejercicio 4.80 superan el gasto generaJ de mantener una estructum de datOS IJ\. compleja. Intente hacer supo$icioncs ruonables,ate:rca de cuntos cubos se distribuyen en cada nh'el, e indique cmo sus resultados son afectados por estas suposiciones. Optimice la fuocin Oneone en la tabla 4-8. Una optimizacin obvia es abandonar el ciclo pronto, pero existen otras optimizaciones que eliminan complelarnCnle el ciclo foro Una est basada en consulta de tablas y otra utiliza un c4Jculo delicado que involucra complemcntuin, aplicacin de DA Exclusivo y adicin. Extien<!ael programa C eD la tabla 4-9 pm manipular condiciones "sin importancia". Pro... pon;ionc olr.I estruclUrll de datos. de IMAX....VARS. ll [WJLCUBES1 . que indiquen si un cubo dado contiene solamente elementos "sin impotlancia~, '1 aclUaJ(cela a medida que los cubos se leen y geDetan. (Circuito Ham/et,) Complete el diagrama de temporizacin y explique la runcin deo l cir cuita en la fi gum X4.83. De dnde obtiene su oombre el circuito?

309

4.79

4.80

4.8 1

4.82

4.83

28

- r - - - - - - - - - - , __

2B

--......... _ --_.F

I '-------

Figura X4 .83

4.84

4.8.s

4.86

4.87

Demuestre que un circuito AN[).QA de dos niveles correspondiente a la suma completa de una runcin l6gica siempre C$ libre de riesgos. Encuentre una funcin lgica de cuatro variables cuya n:a1i:r.acin de suma de productos mfnima no est~ libre de riesgos. pero para la cual CJ[isla una realizacin de suma de produelOS libre de riesgos con menores !&millOS de produeto que' la l uma completa. ComenT.ando ron hu instrucciones "''H EN en el pI"Ol!lIma ABEL de 1, tabla 4- 14. elabore hu ccuaciones lgicas para hu variables X4 a X1 0 en el prognuna. Explique cualquierdiscrepancia entre SUlI resuhados y las ecuaciones en la labia 4- 15. Dibuje un diagrama de circuito correspondiente a las ecuaciones de suma de productos de dos niveles mfnima para el circuito de alanna, como se dan en l. tabla 4-12, En c",,!n entra da '1 salida de inversor. compotrta ANO y oompuer1a OA, escriba un par de nmeros (rO, 11), donde rO es el mlmero de prueba de la tabla 4-2S que detecta un bloqueo en falla Oen esa Une&. '1 ,l es el nl1mero de pnleba que detecta un bloqueo en falla 1,

310

Capitulo 4 Principios de disei'io lgico combinacional


4.88 4.89 4.90 Escriba un programa VHDL en esti lo de fl ujo de datoS (entidad y arquitectura) correspon diente al circuito sumador completo en la figura 586. Utiliz.:moo la en tidad que usted dis..-ft en el ejt-rcicio 4.88, escriba un programa VHDL estructural par:a un s umador dc liro de 4 bits empleando In estructura de la figura 5-87. Empleando la entidad que usted defini en el ejercicio 4.88, escriba un programa VHDL estructural para un sumador deliro de 16 bits a lo largo de las Uneas de la figura 587. Utilice una instruccin generate paro crear los 16 sumadores completos y sus cone.:<iones de seal. Vueh-a aescribir la arquittctura del detector de nmeros >rimos de la labia 4-63 uti l i~o una instruccin whi le.

4.91

e a p

lo

as de diseo lgico acional


I capft ulo anterior desa ibi6 los principios tericos q ue se ulili7.an en el
Imag n prc

:la por de

h s de

diseo lgico combinacional. En este captulo aplicaremos esos rundamenlOS y descri biremos muchos de los disposith'os. estructuras y mtodos , que utilizan los ingenieros para resolver problemas prcticos de diseo lgico digital. n circuito combinacional prctico puede tene r doce nas de e nlfll.das y salidas requeri r cientos. miles. e incluso mil lo nes de trminos paro de.'iCri bir como la de productos. y miles y miles de milfom!s de renglones para descri bir en la de vcrdad. De este modo. In mayorla de los prob le mas de disei'lo lgico

reales son demasiado grnndes para resoh'crsc mediante la aplicacin lena bruta" de tcnicas tericas. ~ro. espere. dir.i usted, cmo podra cualquier ser hum3nO concebir un circuiJ as de complejo en primer lugar? La cla\'c es el pensamiento estructurado. Jito o sistema complejo se concibe como una colecci6n de subsistemas ms )5. cada uno de los cuales tiene una descripci6n mucho ms sencilla.
rI

~cionaJ

c:I dise o 1 6gico combinacional, existen varias estructu ras d irectas: deco-

)res. multiplexores. comparadores '1 dems. que se util izan con bastante :ia como bloques de construccin en sistemas ms grandes. Las estructuras )()rttlntcs se descri ben en este capflulo. En general primero describimos cada Ira '1 posteriormente proporcionamos ejemplos '1 aplicaciones utilizando lentes de la serie 74. ABEL '1 VHDL. mes de comenzar el nndilisis de estos bloques combintlcionales de construc:cesitamos estudiar yarios aspectos importantes. El pri mer t6pico son los res de documentacin que utili1 .an los diseadores digitales para asegurar

311

312

Capitulo 5

Prcticas de disei'lo lgico combinaciona l

que sus diseos son correctos. que se pueden fabricar y mantener. Acto seguido. analizamos la temporizacin del circuito. un elemento crucial para tener ~}I; i to en el diseo digital. En tercer lugar. describimos la estructura interna de los PLD combinacionales. los que utilizaremos ms adelante como bloques "universales" de construccin.

5.1 Estndares de documentacin


Una buena documentacin es esencial pata lograr un diseo correcto y un mantenimiento eficiente de los sistemas digitales. Adems de ser precisa y completa. la documentacin debe ser algo instructiva. de modo que un ingeniero de pruebas. tcnico de mantenimienlO, o inclusi\'e el ingeniero de diseo original (seis meses despu6i de disear el circuito) pueda averiguar cmo func iona el sistema con slo leer la documentacin. Aunque el ti po de documentacin depende de la complejidad del sistema y los ambientes de ingeniera y fabricacin, un paquete de documentacin deberla contener (por regla general) al menos los siguientes seis elementos:
u~cificaci6n

dI! ci~..ifO

diagroma dt bloqul!S diagroma uqumwlicQ

/iagrt/ma 16gicQ cutn/n dt maltri/l/ts


(80101)

l . Una especificacin que describe exactamente lo que se supone debe hacerel circuito o sistema, iocluyendo una descripcin de lodas las entrndns y salidas (" interfaces") y las funciones que se van a realizar. Advierta que las "especificaciones" no tienen que especificar c6mo consigue el sistema sus resullados. sino Ilnicamente lo que se supone que son los resultados. Sin embargo. en muchas compaas es una prctica comn incotpo.1lr tambin uno o ms de los documentos siguientes en las especificaciones para describir cmo funciona el sistema al mismo tiempo. 2. Un diogromo de bloques es una descri pcin pictrica e infonnal de los principales mdulos funcionales del sistema y sus intercone.xiones bsicas. 3. Un diagroma esquemtico es una especificacin fonnal de los componentes elctricos del sistema. sus interconexiones y todos los detalles necesarios para construir el sistema. incluyendo tipos de e l, indicadores de referencia y numeres de tenninales. Hemos estado uti lizando e lt~nni no diagroma Mgico para un dibujo informal que no tiene este nivel de detalle. La mayor parte de los programas de diagramaci6n esquemtica tienen la capacidad de generM una CUl!nta dI! matt!riall!s ( HOM . del inglls bill of materia/s) a partir del diagrama esquemtico: la cuenta le indica al

Seccin 5.1

Estndares de documentacin

313

TlIg n I='rol.~kla p r jere;h JS je

101

depanamento de compras cules componenles elctricos tienen qu ordenar para construir el sistema. 4. Un di(lgroma de tenrponwci6n muestra los valores de diversas sedales lgicas como funcin del tiempo. incluyendo los retardos de causa y decto enU'e las sedales criticas. 5. Una descripcj6n de dispositi\'o de I6gica estrncturada que indica la funcin interna de un dispositivo de lgica prognunable (PLD. por sus siglas en ingls). arreglo de compuertas programables (FPGA. por sus siglas en ingls) o circuito integrado de aplicacin especfica (AS IC, por sus siglas en ingls). Nonnalmente esta descripcin se escribe en un lenguaje de descripcin de hardware (HDL) tal como ABEl o VHDL. pero puede estar en forma de ecunciones lgicas. tablas de estado o diagrnmas de estado. En algunos casos, se puede utiliUlf un lenguaje de progrnmacin convencional. como C. para modelar el funcionamiento de un circuito o para especificar su comportamiento. 6. Unn descripcin del circuito es un documento de texto narrnti\'o que. en conjunto con la dems documentacin. explica cmo funciona internamente el circuito. La descripcin del cin:uito debe incluir cualquier suposicin y falla potencial en el disedo y operacin del circuito: tambin debe sei'lalar el uso de cualquier 'truco" de diseo que no sea obvio. Una buena descripcin de cin:uito Iambin conLiellC defi niciones de acrnimos y otros tnninos especiaJizndos y tiene referencias a documentos relacionados.
Quizs es probable que usted haya visto diagramas de bloques en muchos contextos.

dwgrrmw di' ttmporit.acion

dtscripci6t1 dt disfHIsit;\"o de Mgic" i'.Jtrllctura/l"

dtscripctl di' circuto

Presentaremos algunas reglas para dibujarlos en la siguiente subseccin, y posterionnc:nte en el resto de esta seccin nos concentrnremos en los diagramas esquemticos para los circuitos lgicos combinacionales. La seccin 5.2.1 presenta los diagramas de temporiza cin. Las descripcionc:s de lgica estructuroda en la forma de programas ABEL YVHDL se cubrieron en las secciones 4.6 y 4.7. En la seccin 10.1.6 mostraremos cmo se puede: utiliUlf un programa en e parn generar el contenido de una memoria de slo-Iectura. la lLima ~ de la docwnentacin. la descripcin del circuito. es muy importante en la prctica. De la misma fonna que un programador experimentado crea un documen to de diseo de programa antes de comenzar a escribir el cdigo. un diseador lgico con experiencia comienza escribiendo la descripcin del circuito antes de realizllr el diagrama esquemtico. Por desgrncia, en ciertas ocasiones la descripcin del circuito es el lLimo documento que se genera. y a veces nunca se escribe. Un circuito sin una buena descripcin es dificil de depurar. fabri car, probar. mantener modificar y mejorar.

314

Capitulo 5

Prcticas de diseflo lgico combinacional

5.1.1 Diagramas de bloques


diagrama de bloqul'S

Un diagmlTUI d~ bloqll~s mueslra las t:nlradllS. salidas. mdulos funcionales. trnyeclOrias inlemas de datos e importantes seales de control de un sistema. En general. no deberla ser lan detallado como paru ocupar ms de una pgina. pero no debe ser dellUlsiado vago o impreciso. Un pequeo diagrama de bloques puede tener de tres a seis bloques. mientras que uno grande puede tener de 10 a 15. dependiendo de la complejidad del sistema. En cualquier caso, el diagrama de bloques debe mostrar los elementos ms importantes
SHIFTANDADD MULTIPLIEA (MULTIPLlCADOA DE SUMA Y CO AAIMIENTOl
AESET LOAD RUN OISPLAY

Figura 5- '
Diagrama de bloques para un proyecto de
diseno digital.

RIW

4
CONTROL ADDR BYTE EN

16-word)( 32bi1

'"

RAM
OUT

INBUS===

MULTtPLEXER 4 IQ 1

LOA

LOO

A REGISTEA

~=-"B REGISTER

""'",-----'
CAAAYLOOKAHEAOADOEA

"'",----

OUTBUS

Seccin 5.1

Estndares de documentacin

315

(' 1
32
REGISTRO DE 32 BITS

(b1

32
REG1STRO DE 32 BITS

4x 74lS3n

32

32

(01

74LS3n

Figura 5-2
Un bloque de registro de 32 bits: (a) realizacin no especificada; (b) chips especificados;

de l sistema y cmo funcionan en conjunto. Los sistemas grandes pueden requerir diagramas de bloques adicionales de subsistemas individuales. pero siempre habra un diagrama a " nive l superior" que representa todo el sistema. La ligura 5- 1 muestra un diagrama de bloques simple. Cada bloque se identifica con la funcin del bloque. no con los chips individuales q ue comprende. Como otro ejemplo. la figura 5-2(a) muestra el smbolo de un diagrama de bloques para un reg istro de 32 bits. Si el reg istro va a construirse utilizando cuatro registros 74LS377 de 8 bits. y esta infonnacifl es importante para alguien que lea el diagrama (por ejemplo. por razones de costo), entonces puede expresarse como se ilustra en (b). Sin embargo. dividir el bloque para mostrar chips individuales como en (c) es incorrecto. Un m4.f es una coleccin de dos o ms lneas de seal que estn relacionadas. En un diagrama de bloques. los buses se dibujan con una Unea doble o gruesa. Una diagonal y un nmero indican cuntas \fneas de seiial ind ividu ales estn contenidas e n un bus. De manera alternativa. e l tamao puede indicarse en el nombre del bus (por ejemplo. INBUS(31 .. 0) o INBUS[31 :0) . Los niveles activos (que se define n ms adelante) y las burbujas de inversin pueden o no aparecer en los diagramas de bloques: en la mayorfa de los casos. no son imponantes para este nivel de detalle. Sin embargo. los buses y las seiia1es de control importantes deberfan tener nombres. por lo regular los mismos nombres que aparecen en e l di ngrama esquemtico ms detallado. E l Hujo de seales de control y dalos en un diagrama de bloques debe indicarse claramente. Los diagramas lgicos se dibujan generalmente con las seales fluyendo de izquierda a derecha. pero en los diagm mas de bloques este ideal es ms difc il de conseguir. Las entradas y salidas pueden hallarse en cua1quier lado de un bloque. y la direccin del flujo de In senl puede ser arbitraria. Se utilizan puntas de Hecho en los buses y lns ]{neas nonnales de seal paro e liminar la ambigUedad al respecto.

(e) demasiado detalle.

btu

316

Capitulo 5 Prcticas de diseo lgico combinacional

=:j )-

ANO

=]

>(. )

OR

=l >~
(b)

NANO

NOR

BUFFER

INVERSOR

(o)

Figura 53 Formas para compuertas lgicas bsicas: al ANO, OR Ybuffers; b) expansin de entradas; el burbujas de inversin.

5.1.2 Simbolos de las compuertas


Las formas de sfmbolos para las compuertas ANO, OR Y los buffers se ilustmn en la

figura 53(a). (Recuerde del capflUlo 3 que un buffer es un circuito que simplemente convierte las seales lgicas "dbiles" en unas "ruertes",) Pura dibujor compuertas IOgi cas con ms de a1gunos entrudas, CJlpandimos los sfmbolos ANO y OR como se ilustru en (b). Un circulo pequeo. denominado burbuja de im'ersin. indica la in\'ersin lgica o complementacin y se utiliza en los srmbolos para las compuertas NANO y NOR e inversores en (e). Utilizando el teorema de DeMorgan genernlizado. podemos manipular las expre
sione, 16giellS mm eompuertall eon salidas complementadas. Por ejemplo, si X '1 Y son las entradas de una compuerta NANO con salida Z. entonces podemos escribir

(XY)' = X' + Y'

Esto da origen a dos sfmbolos direrentes pero igualmente correctos para uno compuerta NANO, como lo demostramos en la figura 4-3 de la pgina 20 1. De hecho, esta clase de manipulacin puede aplicarse tambin a compuertas que tienen enu-.ldas no complemen tadas. Por ejemplo. considere las siguientes ecuaciones para una compuerta ANO:

Z - XY ((X Y )')' (X' + Y')'

Seccin 5.1

Estndares de documentacin
BUFFER

317

~ )>-

---1[>>--- (>0---

INVERSOR

-c{>Figura 5-4 SrmbolOs de compuerta


equivalentes bajo el

:::j )1-:::j

ANO

~
~

>)>-

NANO

teorema generalizado de DeMorgan.

Asf. una compuena ANO puede representarse como una compuerta DA con burbujas de inversin en sus entradas y salidas. Los smbolos equivalentes parn. las compuertas estndar que se pueden obtener mediante estas manipulociones se resumen en la fi gura 5-4. Aun cuando ambos sfmbol os en un par representan la misma funcin lgica. la eleccin de un sfmbolo u otro en un diagrama lgico no es arbitraria. al menos no si estamos adheridos a los estndares de una buena documentacin. Como veremos en las siguientes tres subsecciones. la seleccin adecuada de los nombres de seilal y smbolos de compuertas pueden facilitar el uso y la comprensin de los diagramas lgicos.

--

..

5.1.3 Nombres de seal y niveles activos Cada seilal de entrada y salida en un circuito lgico debe, fa tener una etiqueta a1fanumc!:rica descriptiva. el nombre de la seilal. La mayor parte de los sistemas de diseilo asistidos por computadora para el dibujo de circuitos lgicos tambin permiten que ciertos caracteres especiales. tales como _. y !. se incluyan en los nombres de seal. En los ejemplos de anlisis y sntesis del capitulo 4, utilizamos principalmenle nombres de seal de un solo carcter. (X. Y. elc.) debido a que los circuitos no eran complejos. Sin embargo, en un sistema real. los nombres de sdlaJes bien elegidos transmiten informacin a cuaJquiera que lea el diagrnma lgico. de la misma maneta que los nombres de variables lo hacen en un programa de software. El nombre de una seiW indica una accin que es controlada (GO. PAUSE). una condicin que se detecta (REAOY, ERROR) o los datos que se transportan (INBUSI31 :0)). Cada nombre de seal debera tener un " ivd activo asociado con l. Una seal es Qcti~'fHJltQ si realiza la accin nombrada o indica la condicin nombrada cuando est en nivel ALTO o ~s l . (Bajo la con\'encin de lgica positiva, que utilizamos a lo largo de este libro. "ALTO" y " 1" son equivalentes.) Una seal es activa-boja si realiza la accin nombrada o denota la condicin nombrada cuando est en nivel B,4.JO o es O. Se dice que una seal es asertiva cuando se encuentra ~n su nivel activo. Se dice que una seal es de negadn (o, en ocasiones, desaserri6n) cuando se encuentra en su nivel activo.

nil"!! /lCl 'O

actil"aalta
aclil"tJ-baja
n~/lCj6n

dtNStrci6n

318

Capitulo 5 Prcticas de disel"io lgico combinacional


Tabla 5 1 Cada Ifnea muestra una dilerenle convencirt de nomenclalura diferente en los niveles aclJvos.

ACTIVA-BAJA
REAOYERAOR.l AOOR15(l) RESEP ENABLE-

ACTlVA ALTA
REAOY+ EAAOA.H AOOR15(H) RESET ENABlE

- GO
/RECEIVE TAANSMIT_l

GO
RECEI VE TRANSMIT

CO fll't ncin dt nomtncla


lllro de nil'f!l aCli\'O

nombre di: st.al opresi6n Mgica t CI<Oci6n I6gica

El nivel activo de cada seal en un circuito se especifica por lo regular como parte de su nombre, de acuerdo a ruguna con\~ncin. Se muestran unos ejemplos de diferentes rom'endones de idelllificacin de ni\~f ac.i\ro en la tabla 5-1. La eleccin de una de estas u otras convenciones de identiliClCin de seal es cuestin de preferencia personal, pero con frecuencia se ve restringida por el entomo de la ingeniera. Puesto que )a designa. cin del nh~l activo es pane del nombre de la seal, la convencin de identificacin (de la seal) debe ser compatible con los ra:ucrimientos de entrada de cualquier hcnumienta de diseo asistido por computadora que procesar los nombres de seal. tal como los editores de di3gramas esquemlicos. compiladores HDL y simuladores. En este texto, utilizaremos la ltima convencin en la tabla: un nombre de seal activa-baja tiene un sufijo de _L. mientras que una seal activa-alla no Iiene ese sufijo. El sufijo _l puede leerse como si fuera un prefijo 'no". Es extremadamente imponante que usted comprenda )a diferencia entre nombres de seal. expresiones y ecuaciones. Un nomb~ de seal es solamenle un nombre: una etiqueta rufanu.mrica. Una aprrsi6n lgica combina nombres de seales que utili7.an los operadores del lgebra de conmutnci6n (ANO. OR Y NOn como lo explicamos y usamos a lo largo del captulo 4. Una ecuacin lgica es la asignacin de una expresin lgica para. un nombrede seru: describe una funcin de seal en ~nninosde otras seales. La distincin entre nombres de seal y expresiones lgicas puede relacionarse con un concepto que se utiliza en los lenguajes de programacin de computadordS: el lado izquierdo de una instruccin de asignacin contiene un nombrr de variable. mientras que el lado derecho contiene una upresi/I cuyo valor ser dado a la variable nombrada (por ejemplo. Z ., - (x ... Y) en lenguaje C). En un lenguaje de programacin. no puede poner una expresin en ell:u:lo izquierdo de una instruccin de asignacin. En el diseo lgico. no puede emplear una expresin lgica como un nombre de seal. Las seales 1 6gicas pueden tener nombres como X. READY y GO_L La "_l '" en GO_l es slo parte del nombre de la seal, como el guin bajo en el nombre de una variable en un programa de C. No hay seal cuyo nombre sea READY'. tsta es una expresin. puesto que ' es un operador. Sin embargo. pueden existir dos seaJes denominadas READY y READY _L de modo que READY _l = READY' durante la operacin normal del cireuito. Seremos muy euid3dosos en este libro al distinguir entre los nombres de seales. que siempre se enCQntrarn impresos en negritas. y las expresiones lgicas. que siempre eslmn impresas en color gris cuando se escriben cerca de las corTCspondienles Ifneas de seal.

SeccI6n 5.1

Estndares de documentaCin

319

:::jl...--)f--

ENABlE

00

. .

MY

ENABlE

THING

=i

)>-(.)

.. . .. .
(b)

. ..

THING

Figura 5-5 51mbolos lgicos; (a) ANO. y CR V un elemento lgico de mayor escala; lb} los mismos elamentos con entradas V salidas activas-bajas.

5.1.4 Niveles activos para terminales


Cuando dibujamos el esbozo de un smbolo ANO u OR, o un rectngulo que representa un elemento lgico de mayor escala. pensamos que la funcin lgica dada ocurre dentro de ese esbozo simblico. En la figura 5-5(a), mostramos los sfmbolos lgicos para las compuertas ANO, OA 'J para un elemento de mayor escala con una entrada ENABLE. Las compuertas ANO y OR tienen entradas activas altas: requieren 1 en la entrada para validar sus salidas. Igualmente, el elemento de mayor escala tiene una entrada ENABLE activa aha. que debe ser I para habilitar el elemento a fin de quc eumpla con su funcin . En (b), mostnunos los mismos elementos lgicos con entradas activas bajas y tcnninaleS de salida. Exactamente las mismas funciones lgicas Se realizan den/ro de los esquemas simblicos, pero las burbujas de inversin indican que los Odeben aplicarse a las terminales de entrada para activar las funciones lgicas, y que las salidas son Ocuando estn "haciendo sus funciones". De este modo, los niveles activos se pueden asociar con las terminales de entrada y salida de las compuertas y elementos lgicos de mayor escaJa. Empleamos una burbuja de inversin para indicar una tennina! activa baja y la ausencia de una burbuja para indicar una tennina! activa alta. Por ejemplo, la compuerta ANO en la figura 5-6(a) efecta el ANO lgico. en este caso dos entradas activas alias producen una salida activa alla si ambas entradas son asertivas (1). la salida es aseniva (1). La eompuena NANO en (b) tambi4!:n realiza la funcin ANO, pero produce una salida activa baja. Incluso puede utilizarse una compucna NOR u OR para realizar la funcin ANO empleando entradas y salidas activas bajas. como se muesln!. en (e) y (d). Se puede decir que las cuatro compuertas de la figura reali7..an la misma funcin: la salida de. cada compuerta es asertiva si sus dos entradas son asertivas. La fi gura 57 muestra la misma idea para la runcin OR: la salida de cada compuena es aseniva si cualquiera de sus enlrlldas es aseniV8.

Fi gura 5-6 Cuatro formas de obtener una runci6n ANO: (a) compuerta ANO (74x08): (b) compuena

NANO (74xOO): (e) compuerta NOA (74x02); (d) compuerta OA (741C32).

=j )1(.)
(b)

~L--)I(o)

Cd)

320

capitulo 5

Prcticas de dise flo lgico combinacional

=} )>-o)
b)

)>-o)
Id)

Figura 5-7 Cuatro maneras de obtener una funci6n D A: (a) compuerta O A (741C32); (b) compuerta NDA (741C02); (c) compuerta NANO (741C00); (d) compuerta ANO .

~[>>-o)
(O)

o)

Id)

Figura 5-8 5 1 m bolos lgicos alternativos: (a, b) inversores; (e, d) buffers no inversores.

En ocasiones se utiliza un buffer no inversor para incrementar el fan out de una seal lgiea sin modificar su funcin. ...a figura 5-8 iIUSlI"a los posibles smbolos.lgicos tanto para buffers inversores como para buffers no inversores. En tnninos de niveles activos. todos los sfmbolos realizan exactamente la misma funcin: cada uno activa sus seales de salida si y slo si su enlI"ada es asertiva.

5.1.5 Diseno de lgica burbuja-burbuja Los diseadores experimentados de circuitos lgicos formulan sus circuitos en tnninos
de las funciOnet lgicas que se efectan d~ntro de los esquemas simblicos. Si usted disei\a con compuertas discretllS o en un HOL como ABEL O VHOL. es mis fci l pensar en las sedales lgicas y sus interacciones mediante el uso de nombres activo altos. Sin embargo. una vez que est listo para construir su circuito. puede: tener que trotar con seales activas bajas debidas a los requerimientos del entomo. Cuando se disea con compuertas discretas. ya sea a nivel de tarjeta O de ASIC. un requerimiento clave es con frecuencia la velocidad. Como moSlI"amos en la seccin 3.3.6, las compuertas inversoras son mis rpidas que las no inversoras, a menudo se obtienen mejoras en el rendimiento cuando se transportan algunas seaJes en la fonna activa baja. Cuando se disea con elementos de mayor cscaJa. muchos de eU os pueden hallarse fuera de los chips o fuera de otros componentes existentes que ya tienen algunas enlradas y salidas fijas en la forma activa baja. Las razones por las que utilizan seil.ales activas bajas van desde mejoras en el rendimiento hasta aMS de tradicin. pero en cualquier easo usted todava tiene que lidiar con ello.

Seccin 5.1

Estndares de documentacin

321

RE~~;
AEAOY 1..
AEOUEST=I..

-l~)\-,.)

GO

(b)

-d,-__
'o)

....q

)\-_

GO
(d)

Figura 5-9 Muchas formas de GO: (a) entradas y salidas aHo activas: (b) entradas atto activas, salida bajo activa; (el entradas bajo activas, salida atto activa; (d) entradas 'J Salidas bajo activas.

El disdlo de Mgica burbuja-burbuja consiste en la eleccin de los sfmbolos lgicos y nombres de seal, incluyendo las denominaciones de nivel activo, que facilitan la comprensin de un circuito lgico. Habitualmente. esto significa seleccionar los nombres de seal, los tipos y sfmbol os de compuertas, de modo que la mayor parte de las burbujas de inversin se "cancelcn" y el diagrama lgico se puede analizar como si todas las seales fueran activas altas. Por ejemplo, supongamos que necesitamos producir una seal que diga a un dispositivo que "GO" ("ammque") cuando se encuentre "REAOY" ("listo") y obtengamos "RECUEST' ("solicitud"). Podemos ver claramente que a partir de la instruccin del problema se requiere una funcin AND; en lgebra de conmutacin, escribiramos GO '" REAoy , RECUEST. Sin embargo, podemos utilizar diferentes compuertas para efectuar la funcin ANO. dependiendo del nivel activo que se requicre para la seal GO, y los niveles activos de las seales disponibles de entrada. La figura 5-9(a) muestra el caso ms simple. donde GO debe ser activa alta y las seaJes dispootiblcs de entrada tanlbttn son activas altas; en este caso usamos una compuerta ANO. Si. por otro lado, el dispositivo que estamos conlrQlando requiere una seal activa baja GO_L. podemos utilizar una compue:na NANO 00111() se ilusuu en (b). Si las seiWes disponibles de entrada son activas bajas. podemos utilizar una compuena NOR u OR como se ilustra en (c) y (d). Los niveles 3CtiVOS de las seales disponibles no siempre coinciden con los niveles activos de las compuertas disponibles. Por ejemplo. supongamos que tenemos dos seales de entrada: REAoY_L activa baja y RECUEST (activa alta). La figura 5-10 mueSlra dos formas diferentes para gefletar GO con la ayuda de un inversor, para obtener el nivel activo necesario para la funcin ANO. Generalmente se prefiere la segunda opcin, puesto que las compuenas inversorns. como la NOR, por Jo regular son ms nipidas que las no inversoras ANO. Dibujaremos el inversor de manera diferente en cada caso para hacer que el nivel activo de la salida coincida con el nombre de su seal. Figura 5-1 D Oos formas ms de hacer GQ, con niveles de entrada mezclados:
(a) con una compuerta ANO; (b) con una compuerta NOR.
REAQY

disdlo dt lgica burbuja ,,"rbuja

AEOUEST _ _

=-___1
(.)

GO

AEADY_I.. - - - - - - - REOUEST-

..--q ___ AEOUESTJ,. 1


(b)

GO

322

Caprtulo 5
(a]

Prcticas de diserto lgico combinacional


A-----

SEl - , , - - - - _ - '

>- DATA

(b)

ASEL-r

A-====I:=
BSEl

AOATA..L BOATA..L

DATA
,. ASEL ' A + ASEL'

B - -- - -

----'

Fig u ra 511 Multiplexor de 2 entradas (se supone que usted todavla no sabe qu es esIO): (a) diagrama lgico crlplico; (b) diagrama lgico apropiado que utiliza denominaciones de nivel activo y sfmbolos lgicos alternativos.

Paro comprender los beneficios que apona el diseo de lgica burbuja bubuja.

considere el circuito en la fi gura 5 11 (a). Qu es lo que hace? En la seccin 4.2 moslr.Jmos varias ronnas de anal izar un circuito de esta clase. y ciertamente podfamos obtener una expresin lgica par.! la .alida DATA empleando estas lt!cniClCi. S in embargo. cuan do el circuito se vuelve a dibujar como en la figur.a 5 11(b). la funci n de salida puede leerse directllmente del dillgrama lgico, como sigue. La salida DATA es aseniva cU llndo ADAT~Lo BDAT~Lson asenivas. Si ASEL es afirmada.. entonces ADAT~L es afinna da si y slo si A es afirmada; es decir. ADATA_L es unll copia de A. Si ASEL es negada. BSEL es afirmada y BDATA_L es una copia de B. En otras palabras, DATA es una copia de A si ASEL es afirmada.. y DATA es una copia de B si ASEL es negada. Aun cuando existen cinco burbujas de inversin en el diagrnmll lgico. mentalmcme tenemos que renlil.at slo una negacin para comprender el circuito: que BSEL es a.~rtiva si ASEL no

es IIscnivlI.
Si se desea, podemos escribir una expresin algebraica parolla salid.1 DATA. Empica mos la tcnica de la seccin 4.2. propagamos simplemente las expresiones u trolvs de las compuertas hacia la salida. Al hacerlo asf, podemos ignoror los pares de burbujas de inversin que se cancelan. y escribir directamente la expresin que se muestra en color gris en la figura.
F i 9 u r a 5-1 2 Otro diagrama lgico apropladamenle dibujado.
AEADV_L _ AEQUEST_l TEST 60 . REAOV_L' AEQUEST_L'

-_~'::=:::::

__J-:.~R=EA:::D~Y_'~RE:a:U=E:S~TJ

>-

ENABLE_L .. (TEST + (AEADV ' REOUEST) )' ENABLE .. TE ST + (AEADV REOUEST)

LOC~L------------------------

>-_

HALT a LOCK + (AEADV ' AEQUE ST)'

----"

Seccin 5.1

Eslndares de documentacin

323

"3.

n pr :l9:id. po

I-)os jo

uto

Otro ejemplo se muestra en la figura S- 12. De la lectura del diagrama lgico, vemos que ENABLE_L es afinnado si READY_l Y REQUEST_l se afinnan o si TEST se afirma. La salida HALT se afuma si READY_l y REOUEST_l 00 se afinnan. o si LOCK..L se activa. Una vez ms. este ejemplo tiene slo un lugar donde el nivel activo de entrada

de la compuerta no coincide con el nivel de la seal de entrada. y esto se reneja en la descri pcin verbal del circuito. Podemos, si as lo deseamos. escribir ecuaciones algebraicas para las salidas ENABlE_l y HAlT. A medida que se propagan las expresiones a travs de las compuertas. hacia la :salidn. obtenemos expresiones como READY_L' . REOUEST_L'. Sin embargo. podemos Ulilizar nuestra convencin de identificacin de nivel activo para simplificar tnninos como READY_L' . El circuito no contiene senal con el nombre READY. pero si lo hubiera se cumplira la relacin READY ... READY_L' de ncuerdo a la convencin de identificacin. Esto nos pcnnite escribir las ecuaciones ENABLE_L y HALT como se muestra. Complementando ambos lados de la ecuacin ENABlE_L. obtenemos una ecuacin que describe una :salida hi pottica ENABLE activa alta en tnninos de entrodos hi potticas IIctivns altas. Veremos ms ejemplos de diseo con lgica burbuja- burbuja en este caprtulo y en los capflulos posteriores. especialmente a medida que empecemos a utilizar elementos lgicos de mayor escala.

5_1_6 Representacin de la ubicacin de los componentes I...o.s diagramas lgicos y esquemticos deberan dibujarse con las compuertas en sus posiciones "nonnaIcs". con las entradas a la izquierda y las salidas a la derecha. Los smbolos lgicos para elemcntos lgicos de mayor escala tambin se dibujan con las entradas a la izquierda y las salidas a la derecha. La pgina completa de un diagrama esquemtico debera dibujarse con las entrodas del sistema a la izquierda y las salidas a la derecha. y el flujo general de las seales debe dirigirse de izquierda a derecha. Si una entrada o salida apareciera a la mitad de la pgina. deberan extenderse hacia el extremo izquierdo o derecho. respectivamente. De esta manera. un lector puede encontrar todas las entradas y salidas al examinar nicamente los exbemos de la pgina. lMas las trayectOrias de seal en 111 pgina debefl estar conectadas siempre que sea posible; las trayectorias pueden intem.lmpirse si el dibujo se llena de ellas. pero 6tas deben man:arse en ambas direcciones, como se describe ms adelantc.

324

Capitulo 5

Prcticas de diseo lgico combinacional

Dibujo a mano

F i gura 5-13
Cruces de lineas y conexiones.

Oibujo

a mquina

+ +

+
00 permitido

En ocasiones los diagramas de bloques se dibujan sin lfneas cruzadas par.! obtener una apariencia ms clara, pero esto nunca sueede en los diagramas lgicos. En vez de d io. se pennitc que las lneas se crucen y las COllCxiones se indican claramente con un punto. Con todo. algunos sistemas de diseo asistidos por computadora (y algunos diseadores) no pueden dibujar puntos de conexin legibles. Para distinguir entre Ifneas que se cruzan y Hneas que se conectan, se adopt la siguiente convenci n: solamente se penniten las conexiones tipo "T'. como se iluslrII en la figura 5-13. sta es una buena coO\'encin a seguir en cualquier caro. Los diagramas esquemticos que caben en una sola pgina son los ms sencillos paro trabajar. El tamao ms utilizado de la hoja de papel (para un diagrama esquemtico) puede ser el tamao E (34"X44"). Aunque su capacidad de dibujo es grande. un papel as de graodc es poco utilizado en el trabajo, El mejor compromiso en cuanto a C'ap-xidad paro dibujo y foctibilidad es el uunao B (11" x 17"). Las hojas talllno B se ptJl.'Cn doblar y n1maccMI' con facilidad. Adems se puede" consultar rpidamente y si se doblan se pvcdcn guardar en cnrpetus esu1ndar de 3 IlfEOllas; se pueden f()(ocopiar en la mayor parte de las copiadoras de oficina. Sin tener en cuenta el tamao del papel. los diagramas esquem.1tioos
Flg u ra 5- 14 Estructura de esquema plano.
Poiglne I P.tgoNl2

,-,
-D-

- Pi9iNI
~

~ =0 _
-e
Pagina 5

:: ::j

= p~ e

Ln
-

'L..J
~

Seccirl 5.1

Estndares de documentacifl

325

se comprenden mejor cuando la pgina se utiliza en fonnato "panormico" (horizontal), es decir. cuando su dimensin ms larga est oricnlada de izquierdn a derecha. que es la direccin de flujo de la mayola de las seales, Los diagramas esquemticos que no se ajustan a una solo pgina deberan dividirse en pgin:lS individuales. en una forma que minimice las conexiones (y la confusin) entre las pginas. Tambin pueden emplear un sistema coordenado. como el de un mapa de ~ paro. sealar las fuentes y destinos de las seales que viajan de una pgina a otra. Una seal de salida deberla tener indicadores para hacer referencia a todos sus destinos, mientras que una seal de entrada deberla Icner un sealador para hacer referencia a la nica fuente. Es decir, una seal de entrnda debera ser marcada hacia el lugar donde es generada, no a un lugar en alguna parte a la milad de una cadena de destinos que utilizan la seal. En general. un diagrama esquemtico de varias pginas tiene unaestructura "plana". Como se ilustra en la figura S- 14, cada pgina se obtiene a partir del diagrama completo y puede conectarse a cualquier otra pgina como si todas las pginas estuvieran en una sola hoja grnnde. Sin embargo. de manera muy parecida a los programas, los diagramas esquemticos tambin pueden construirse jerrquicamente. como se ilustra en la fi gura S-l S. Bajo este enfoque, el diagrama de "nivel superior" es slo una pgina simple que puede tomar el lugar de un diagrama de bloques. Tfpicamente. el diagrama esquemtico de nivel superior no contiene compuertas u otros elementos lgicos: solamenle muestra los
P'ON '

n troeluro dr ditJgmmo
rsqurmd/ico plantJ

n/roe/uro dr diagroma rsqurmdlieo jurqlliro

Figura 5-15
Estructura de diagrama esquemtico jerrquico.

326

Capitulo 5

Prcticas de diseo lgico combinacional

bloques que corresponden a los subsistemas principales y sus interconexiones. Los bloque.~ o subsistel1l.3S se convierten en pginas de nivel inferior, las cuales puedan contener descri pciones a ni\'C1 de compuerta, o que pueden por s mismas utilizar bloques definidos en jerarqulas de nivel inferior. Si una jerarqula de nivel inferior tiene que utiliz.nrse ms de una vez. stl se puede reutilizar (o "invocar", en el sentido de un programa) varias veces en las pginas de nivel superior. La mayora de los sistemas de diseo lgico (asistidos por computadorn) soportan tanto a los diagramas esquemticos planos como a los jerrquicos. Es muy importante una nomenclatura adecuada de las seales en ambos estilos. puesto que hay varios ellOi CS comunes que pueden ocurrir: Como cualquier otro progrnma. un programa de captura de diagramas esquemticos hace lo que usted le indica, no lo que usted quiere decir. Si se utilizan nombres ligernmente diferentes pam lo que usted pretende sea la mism:! seal en pginas diferentes, las seales no se conectarn entre si. A la inversa, si usted utiliza por accidente el mismo nombre para distintas seales en diferentes pginas de un diagrama esquemtico plano. muchos programas obedientemente los concctarnn entre s, aun si usted no los ha cont'Claclo con una bandcritl de scllizacin fuera de la pgina. (En un diagramajer.1rquico. el hecho de reutilizar un nombre en diferenles lugares de la jerarqula gent'talmcnte est de bien. porque el progr.una califica cada nombre con su posicin en la jerarqura). o En un diagrama esquemtico y jerrquico debe ponerse much!l atencin euando se identifican las seales de i.nteaz externa que estn en los niveles inferiores de lo jerarqua. ~IOS son los nombres que aparecern dcnlJO de los bloques conespondienles a esas pginas. cuando se utilizan en los niveles superiores de la jerarqua. Los nombres de las seales se pueden lraSponcr con mucha faci lidad o se puede utilizar un nombre con el nivel activo equivocado. lo que producirla resultldos incoTTCClos cuando se usa el bloque. o Aunque no se trata de un problema de identificacin, todos los programas de edicin para diagramas esquemticos parecen tener fallas pequeas. las seales que al parecer estn conectadas en realidlld no lo estn. Si aplicamos la convencin en .1'" en la fi gura 5-13 se puede ayudar a minimizar este problema. Afonunadamente. la mayor pane de los programas de edicin para diagrama... esquemticos tienen opciones de verificacin de errores, que pueden locali7.M muchos de estos errores. por ejemplo. euando se buscan nombres de sei'lal que no tengan entradas. ni salidas, o varias salidas asociadas con ellas. Sin embargo la mayora de los diseadores lgicos aprenden la imponancia de una cuidadosa esquell1oti7.acin manual con doble \'erificacin. cuando pasan por la amarga experiencia de construir una tarjeta de circuito impreso o un AS IC basados en un diagnuna que incluye algn error 1 0nlO.

5.1.7 Buses Comosc defini previamente. un bus es una coleccin de dos o ms lneas de seal relacionadas. Por ejemplo. un sistema con microprocesador puede tener un bus de direcciones con 16 lneas. ADDAO-ADDA15. y un bus de datos con 8 lIneas. DATAo-DATA7. Los nombres de seltal en un bus no estn necesariamente rel!lcionados u ordenados como en estos primeros ejemplos. Por ejemplo. un sistema con microprocesooO!" puede tener un bus de conlJOl que incluye cinco seales. ALE. MIO, RO_L. WR_L. y ROY.

Seccin 5. 1

Estndares de documentacin

327

Los diagrumas lgicos utilizan una OOIacin especial par.! los buses a fi n de reducir

la cantidad de dibujo y para mejorar la legibilid3d. Como se ilustra en la figura 5 16. un bus tiene su propio nombre descriptivo. tal como ADDR[15:0]. DATA(7:0). o CONTROL. Un nombre de bus puede utilizar corchetes y el signo de dos puntos para indicar un intervalo. Los buses se di bujan con lneas m6.s gruesas que la.s lfneas comunes de seal. Las seales individuales se introducen o extraen del bus mediante la conexin de una lfnea de seal ordinaria al bus y se indica el nombre de la seal. Con frecuencia se utiliza tambi~n un punto especial de conexin. como en el ejemplo. Un sistema de diseo asistido por computadora sigue la lJ'ayeclOria de las seales individuales en un bus. Cuando llega el momento de construir un circuito a partir del dia grama esquemtico. las lnea< de seal que estn en el bus se tmlan como si fuemn seales independientes.

F igu r a 5 16 Ejemplos de buses.

001.1 ...1

= 1 AEADY

Seccin 5.1
74xOO 74;102

Estndares de documentacin

329

74x03

jy~ )"'
~

)0"''

,
,

"

,
,
" "
7ex20

),,,

;I )r~ ;I )r! ,: I )r:!:: I )


7ex2 l
\1

"
7ex l l

I~ I
:~ I
74Ja7

)" ),

, , ,
"

74x14

,
, ,

,
" "
74x32

, ,

, ,

),

"

"
74x86

" "

, " " "

, ,

74x30

I~ 1 )o "

;) ) ,
,

-B

)O '

:} )

ID

,: ) ) ,
"
") ) " ,,

;)) )' ;)) ) , ,; )) ) ,

)O '

:: ))

11

;)) 3>' :)) 3>' :)) ~ :: )) 3> "


ID

" ....

FI 9 u ra 5-1 S Terminales de salida para los el SSI en encapsulados en doble linea estndar.

330

Capitulo 5 Prcticas de dise'lo lgico combinacional

Cuando usted prepan un diagrama esquemtico para un diseo a nivel de uujeta. con la ayuda de un programa de captura de diagramas esquemticos. e! programa pro. porciona en fonna automtica los nmeros de terminales para los dispositi\'os que uSted seleccione de su bibliOleca de componentes. Adviena que 105 nmeros de tenninales de un CI pueden cambiar dependiendo del tipo de encapsulado. Por esto usted debe tener cuidado cuando selecciona la versin correcta del componente de la biblioteca de componentes. La figura 5-18 muestra los nmeros de terminales que se utilizan en un encapsulado de tenninales en doble Unea (OlP. por sus siglas en inglts). usted utilizarla dispositivos con este encapsuJndo en un curso de laboratorio de diseo digital o en una tarjeta comercial de circuito impreso de baja densidad (con peoraciones de montaje).

5.2 Temporizacin del circuito


"El Liempo lo es todo" : en inversiones. en la farndu la. y s. Itl1I1bin en el diseo digital.

ComoeslUdiamosen la seccin 3.6. las saJidasde un circuitorea.l necesitan tiempo para reaccionar ante los cnmbios en sus entradas. y la mayor parte de los circuitos y sistemas de la actualidad son tan rpidos. que ioclusi\'e el retardo de la \'elocidad de la luz cuando se prop.1ga una seal de salida hacia una entrada en el otro lado de una lIujcta o de un chip es significativo. La mayor parte de los sistemas digitales son circuitos secuenciales que funcionan paso a paso bajo el control de una seal peridica de rcloj. y la velocidad del reloj est limitada por e! tiempo que se necesita ---en e! peor de los casos- para tenninar las operaciones de un paso. De este modo. los dise\adon:s digitales necesitan estnr profundamente conscientes del componnmiento del tiempo. a fi n de conslruir circuitos rpidos que funcio-nen cOrTeClnmente en cllnlqllier condicin. En los ltimos anos se han visto grandes avances en la cantidad y calidad de las he-rramientas de CAD para analizar la temporizacin de los circuitos. Aun as, con bas tante frecuencia el reto ms grande para tenninilr un disei\o a ni,'el de tarjeta o especialmente un diseo ASIC. consiste en obtener el rendimiento deseado de temporizacin. En esta seccin. comenzaremos con los fundame ntos. para que usted pueda comprender lo que hacen las herramientas cuando las utiliza, y logre averiguar cmo reparar sus circuitos cuando su temporizacin no sea adecuada.
diagrolf/a d~
I~nrporill/(:in

5.2.1 Diagramas de temporizacin Un diogramn de I~mporipdn muestra el comportamiento lgico de las seales en un circuito digital como funcin del tiempo. Los diagramas de temporizacin son una paRe importante de la documentacin de cualquier sistemadigita1. Estos diagramas se pueden utili7..1l1" tanto para explicar las relnc:ioncs de tiempo entre las seales de un sistema, como para definir los requcrimicntosde temporizacin de las sci\a1es externas que se aplican al sistema. La figura 5-19(a) es el diagrama de bloques de un circuito combinacional sencillo con dos entrndas y dos salidas. Suponiendo que la entrnd:l ENB se mantiene a un \'a1or constante. (b) muestra el retardo de las dos salidas con respecto a la entntda GO. En c'Jda forma de onda. la Unea superior representa un I lgico y la lnea inferior. un O lgico. Las uansiciones de seal se dibujan como lneas ioclioaclas para recocdrunos que no se presentlln en un tiempo cero en los circl\itos reales (adems. las !focas indin:vlas lucen mejor que Ins verticales). Las fkchns se dibujan en ocasiones. especialmente en diagramas complejos de temporizacin. pant mostrar C(lwalidad: cules trunsicioncs de entrnda genernn las correspondientes tranSiciones de S'Jlida. En cualquierca.'iO.la informacin ms importante que proporciona un diagrama de tempori:r.acin es una especificacin del retardo entre las trnnsiciones.

callsa/idml

Seccin 5.2
jb)

Temporizacin del cirtuito

331

00 _ _
READY
-~DY-

DAT

1--10,, - - 1
j.)
jo)

GO GO-j ENe - j
-AEADY AEADY -DAT
~DYmin
l ROYmax ]

DAT

-tl,L
loATI'I _

IoA,_

Flg u r a 5 -1 9 Diagramas de temporizacin para un circuito combinacional: (a) diagra ma de bloques del circuito; (b) causalidad '1 retardo de propagacin; (e) retardos mrnimo '1 mximo.
L3s diferentes tro.ytttOri3.!l3lr3V~S de un circuito pueden tener distintos rel:trdos. Por ejemplo. la figura 519(b) muestra que el retardo de GO hasta READY es ms breve que el retnrdo de GO a DAT. De manera similar. los retardos desde In entrada ENB hasta las salidas pueden variar. y podran mostrarse en otro diagrama de temporizacin. Y. como discutiremos ms adelante. el retardo a travs de cualquier trayectoria detennina da puede variar dependiendo de si la salida est cambiando de BAJO a ALTO o de ALTO a BAJO (este fenmeno no se ilustra en la figura). El retardo en un circuito real se mide normalmente entre los puntos centrales de las transiciones. de manera que los retardos en un diagrama de temporizacin se marcan en esta fonna . Un dingmma de temporizacin sencillo puede contener varias especificaciones de retardo diferentes. Cada retardo diferente se marca con un identificador dislinlo. tal como f ROY Yf OAT en la figum. En diagramas de temporizacin ms grandes. los identificadores de retardo se numeran para mayor facilidad (por ejemplo. 'l ' 12, ... 1 42). En cualquier caso. el diagrama de temporizacin incluye una loblo de lemporizaci6/' que especifica cada cantidad de retardo y las condiciones en las que es vlido. Puesto que los tiempos de retardo en los componentes digitales reales pueden variar dependiendo del vahaje. la temperalura y los parmclros de fabricacin. el relardo rara vez se especifica como un nmero simple. En \'eZ de ello. una tabla de temporizacin puede especificar un intervalo de valores. proporcionando un valor m[nimo, '[pico y mximo para cada retardo. En cienas ocasiones la idea de un inlervalo de relardos se incluye en el diagrama de lemporizacin al moslmr las transiciones que se presentan en tienlpos indetenninados. como en la figura 5- 19(c).

lobla de

l~mllQri:.uci6"

332

Capitulo 5

Prcticas de diseo lgico combinacional

(a)

WR~L

OATAIN

-----.----+t===== ~,--debe ser estable

OATAOUT 1 = 1* ::: "::: " +-+_

nuevos dalos

-C 're*~
Figura 5-20
Diagramas de temporizacin para seales de "datos": (a) transiciones determinadas e ndeterminadas; (b) secuencia ele valores en un bus de 8 bits.
(b)

CLEAR

A A
FF

COUNT
STEP{7:0]

A
01

A
02

00

03

Par.. algunas seales. el diagrama de temporizacin no necesita mostrar si la seal cambia desde O hasta I o desde I hasta O para un tiempo en particular. solamente que ocurre una transicin en ese momento. Cualquier seal que transporte un bit de "datos" tiene esta caracterstica: el valor real del bit de datos vara de acuerdo a las circunstancias pero. sin tener en cuenta el valor. el bit se transfiere, almacena o procesa en un liempo particular con relacin a las seales de "control" del sistema. La figura 5-20(0) es un diogmmll de temporizacin que iJustra este concepto. La seal de "dalOs" se encuentra nonnalmente en un valor estacionario de Oo 1 y las tmnsiciones se presentan solamente en los tiempos indicados. La idea de un tiempo de retardo indeterminado tambin puede aplicarse a las seales de "datos", como se muestrn en la seal OAT AOUT. Muy a menudo en los sistemas digitales, un grupo de seales de datos en un bus se procc.W1 en circuitos idnticos. F.n este caso. todas las seales en el bus tie.w::n la misma tcmporizacin, y pueden representarse con una lIoca sencilla en el diagrama de temporizacin y las especificocione.o correspondientes en la tabla de temporizncin. Si los bits del bus se presentan en una combinacin particular a un tiempo dado; esto se muestra en ocasioncs en el diagrama de tcmporizacin ulilizando nmeros binarios. octales o hexadecimales. como en la figura 52O(b).

5.2.2 Retardo de propagacin


"l/mio c1t propagtlci6n

En la seccin 3.6.2 definimos fonnalmenle el n!wroo de propagccin de una lr.lyectoria de seal como el tiempo que necesita un cambio en la entrada de 111 trayectoria para pro-

ducir un cambio en la salida de la trnyectoria. Un circuito combinacional con muchas entradas y salidas tiene muchas trayectorias diferentes. y cada una puede tener un retardo de propagacin distinto. Adems. el retardo de propagacin cuando la salida cambia de BAJO a ALTO (tpLH) puede ser diferente del retardo cuando cambia de ALTO a BAJO (lp HJ. El fabricante de un CI de lgica combinacional normalmente especifica todos estos d i fcren t e.~ retardos de prop3gncin, o por lo menos los retardos que seran de inters en

Seccirl 5.2

Te mporizacin del circuito

333

3plic3c:iones tpicas. Un dise3dor lgico que combina los el en un circuito ms grande utiliza las especificaciones individuales del dispositivo para analizar la temporizacin local del circuilo. El relatdo de unn lJ"ayeclOria a IJ"avs del circuito es la suma de los relardos a travs de las sublJ"ayectorias de los dispositivos individuales.

5.2.3 Especificac iones de temporizacin


Las especificaciones de temporizacin para un dispositivo pueden indicar valores mfni mos. tpicos y mximos para cada trayectoria de retardo de propagacin y direccin de

transicin:
Mximo.

Esta especificacin es la que utilizan con mayor frecuencia los diseadores

manJo mximo

experimentados. puesto que una trayectoria "nunca" tiene un retania de propagacin mayor que el mximo. Sin embargo. la definicin de "nunca" varia entre los fabricantes y las fami lias lgicas. Por ejemplo. los retardos "mximos" de propagacin de [os dispositivos TTL 74LS Y745 estn especificados por Vcc = 5 V, TA= 25 c C y casi nada de carga capacitiva. Si el volt3je o 1 3 temperatura son diferentes. o si la carga capacitiva es superior a I S pF, el retardo puede alargarse. Por otro lado, un retardo de propagacin "mximo" est especificado para los dispositivos 74AC y el 74ACf sobre el intervalo de temperatura y voltaje de operncin totales y con una carga capacitiva de 50pE Tpico. Esta especificacin es la que mis utilizan los diseadores que no esperan encontrarse disponibles cuando su producto abandone el amigable entomo del laboratorio de ingenierfa y se envra a los clientes. El retardo ''tfpico'' es el que usted observa en un dispositivo que fue fabricado un "buen da" y funciona b3jo condiciones cercanas a las ideales. M(n;mo. ste es el retardo de propagacin ms pequeo que una tmyectori3 puede exhibir. La mayor parte de los circuitos bien disei'lados no dependen de eSle nmero: es decir. funcionarn apropiad3Rlente incluso si el retardo es cero. Esto es bueno porque los fabricanles no especifican el retardo mlnimo en la mnyor parte de las familias lgicas de velocidad moderada. incluyendo las TTL 74LS Y745. Sin embargo. en las fami lias de alta velocidad, incluyendo ECL. CMOS 74AC Y 74ACf. se especifica un retardo mnimo diferenle de cero para ayudar al diseador a asegurar el cumpl imiento de los requerimientos de temporizacin de los cerrojos y flip-f1ops, que se an31 izan en la seccin 7.2. La tabla 5-2 muestra los retardos lpicos y mbimos de diversas compuertas ITL y eMOS de 1 3 serie 74. La labl3 5-3 hace lo mismo para la mayora de las partes MS I TTL y CMOS que se presentan posteriormente en este captulo.

rtllmlo I(pico

rt'/(InJ(J m(nimt1

Ima

1 pro

por

Mr

334

Captulo 5

Prcticas de diseo lgico combinacional

Tabla 5-2 Retardo de propagacin en nanosegundos de par1es seleccionadas TTl 551Y CMOS de S v"
74HCT T(plco Mximo
'pUl' 'r>HL

14AHCT TlplCO MxImo Tfplco

14LS Mximo

Nm.ro de parte 'pUl' 'r>HL


"00" "10

' ,
5.5 3.4 5.5 5.5 5.5

...

'pUL

'

...

'ptlL

'...,
9 10
9

tpllL

'..., '.a

11

35

5.5 4.5 5.5 5.5 5.5

9.0

9.0

10 10 10 10

'02
'04
"OS" "11 "14

9
11 11

29
35 35

8.5 8.5
9.0 9.0

8.5 8.5
9.0 9.0

"
'lO
'21

48
35 35 29 35
30

11 11

" "
9 10

22

" " " " "


20
22

" "

10
10

"21

9
11

5.

5.'
'.3 5.5 5.5

9,0

9,0

10

'30
"32

8 5.3 5.5 5.5


8.' S.,

13
14

9
13 13

14

" 20 " " 22 22


23
30
17

" " "


20

"86 (2 n," eles) "S6 (3 niveles)

1 0 10

10

10

20

"

10
13

"

--

Seccln 5.2

Temporizacin de l circuito

33S

Ta bl a 5- 3 Retardo de propagacin en nanosegundos de partes seleccionadas e MOS y TTL SSI.


74HCT
T(pJco AI. xJ mo
IpLH, lpl lL

74AHCT / FCT
TpJco
IpLH,lptlL

74L5
T(plco M. xlmo
IpI.u IpUI.

Tpico
IpLH, lpHL

Parte
' 138

De

IpUI,lpHL

'139

. 15 1

'153

. 157

'182

cualquier seleccin salida (2) cu:lIquicr seleccin salida (3) salida G2A. G2B Gl salida cualquier seleccin salida (2) cualquier seleccin salida (3) habiliulrin salida cualquier seleccin Y cualquier seleccin Y Y cualquier dalo Y cualquier dalo Y habilitacin habilitacin Y cualquier seleccin salida cualquier dato salida habilitacin salida seleccin salida cualquier dalo salida habilitacin SlIlida e l-3 cualquier Pi cualquier Pi O ~ cualquier PI

23 23 22 22

., .,
43

8.1/ 5
8. 1 15

42 42 43 43 51 54
48

7.5 / 4
7.1 14

14 14 11 17

6.5 /5
6.5 15

13 / 9 13/9 1218 t 1.518 10.5 /9 10.5 19


9.5 19

'.~
11

'"". 18
20 20
13
22

20
27

41
39 32

21 12 14
13

l'
2. 20
29

l.
16
27

25

38 33 38
32

5.9/5

l' l.
15 12 15 14 12 11 15
12

-/5 -/ 5
-/4 - /4 - /4 -/4

-/0 -/ 0
-/7 -/7 -/7 -/7

45 3. 45
43

14 20 13 2. 15

21 18 20

24
43 23 32

30 32

l.
12 20 18 25
17

21
42

2. 20
32 30 38

- /5
- /4 - /4 6.8/7

-/0
- /7 -/7 ] 1.5 f ]0.5

lO
10 16 15

24 29

43
34 46 38

15
24 23

2.
32
27

21 18

5.6f 4

9.5/6

rn. rn,

12 13
13 11

38 41 41
35

7.117

12.0/ 10.5

eo
'280
'283

cualquier entrada cualquier entrada CO cualquier Al, BI

e l-3 EVEN
0 00 cualquier Si cualquier SI C4 C4 cualquier FI

,.
18

17

50
53

-/.
-/6

-/ JO
-11 0

13 14 4.5 4.5 7 5 4.5 6.' 6.5 7 33 20


23

14 14 21 23 7 7 7.5 10.5 .5 10

'O 10.5
50
35

45

56
66

22
21

'6
15

6'
58 60

31 15 15

50
24 24
22

24
24 17 17 27

eo
cualquier Ai, Bi
'381

'O
20

e 'N
cualquier Ai, Bi cualquier Al, Bl cualquier Al, BI cualquier s.c1cccin cualquier seleccin cualquier Pi cualquier a i cUl1lquier Pi cualquier a i

11 11 18

11

12
14

O
~

20 21
20 35
31

21 33
15

30 23

17 21 33

cualquier Fl cualquier Fi

30
53
47

33 23

34
32 15 15 15

O. ~
PECiO

"

'682

pECO
~TO

PGTa

26 26 26 2.

69 69 69 69

-/7 -/7 -/9

-11 1 - 111

13
14

25
25

48 25

-/ 0

-114 - /14

20 21

30

'O

30

25 30 30

336

Capitulo 5

Prcticas de dlsei'lo lgico combinacional

Todas las entradas de una compuerta 551 tienen el mismo retardo de propagacin con respecto a la salida. Advierta que las compuertas TIl habitualmente tienen diferentes retardos para transiciones BAJO a ALTO y ALTO a BAJO ('pUl Y IpuJ. pero las compuertas CMOS por lo regular no los tienen. las compuertas CMOS tienen una capacidad de excitacin de sal ida ms simlrica. de modo que cualquier diferencia entre ambos casos no tiene importancia. El retardo desde una transicin de entrada a la correspondiente transicin de salida depende de la trayectoria interna que toma la seal cambiante. y en circuitos grandes. la trayectoria puede ser difere nte para distintas combinaciones de entrada. Por ejemplo. la compuerta XOR 74LS86 de 2 entrndas se construye a panir de cuatro compuertas NANO como se muestra en la figura 5-7 1 . Y tiene dos trayectorias con longitudes diferentes desde cualqu ier entrada hacia ta salida. S i un ll entrada es BAJO. y 111 otra se modifica, el cambio se propaga a travs de dos compuertas NANO y observamos el primer conjunto de retardos que se muestran en lit tabla 5-2. Si unll entrada es ALTO y 1 11 otm se modifica. el cambio se propaga internamente a travs de tn!S compuertas NANO. y observamos el segundo conjunto de retardos. los dispositivos 74LS 138 Yel 74LS 139 presentan un comportamiento en la tabla 5-3. Sin embargo. las partes correspondientes CMOS no muestran estas diferencias: son 1 0 suficien temente pequeas como para ser ignoradas.

5.2.4 Anlisis de temporizacin


Para analizar con precisin la temporizacin de un circuito que contiene varios dispositivos SSI y MS I. un diseador tiene que estudiar su comportamiento lgico con bastante detalle. Por ejemplo. cuando se conectan en serie las compuertas inversoras ITl (NANO. NOR. etc.). un cambio de BAJO a ALTO en la salidll de una compuerta produce un cambio de ALTO a BAJO en la siguiente. y as 1 115 diferencias entre tpLH y lpHL tienden a promediarse. Por otra pane, cuando las compuertas no inversoras (ANO. OA. etc.) se conectan en serie. una transicin provoca que todas las sal idas cambien en la misma dite(:cin, y de este modo tiende a crecer la bte(:ha entre tpUl y tpH L' Como lector. usted tendr el privilegio de efectuar esta clase de anl.isis en los problemas propuestos 5.8-5. 13. El anlisis se vuelve ms complicado si hay dispositivos MSI en la trayectoria de retardo. o si existen mltiples trayectorias desde una seal de entrada detenninada para una seal especffica de salida. De esta fonna. en circuitos grandes. el anlisis de todas las diferentes trayectorias de retardo y las direcciones de transicin puede ser muy complejo.

Sea:in 5.3

PLD combinacionales

337

Para permitir un anlisis simplificado del "peor de los casos", los disenadores a menudo hacen uso de una especificacin simple del rt'taroo ~II el JNor d~ los casos, que es el mximo de las especificaciones Ipl.H y 'pHL' El retardo del peor de los casos a travts de un circuito se calcula entonces como la suma de los retardos en el peor de los casos de los componentes individuales, los cuales son independientes de la direccin de transicin y otrns condiciones del circuito. Esto puede dar una visin demasiado pesimista del retardo total del circuito. pero ahorra tiempo de diseno y garantiz.n el funcionamiento del circuito.

rt!/Umo ~n l!/ ~or d~ los casos

5.2.5 Herramientas para anlisis de temporizacin El uso de sofisticadas herramientas CAD para el disei\o lgico facilitan el anlisis de tcmporiz.ncin. Sus bibliotecas de componentes por lo regular contienen no sol:l.Ihente los smbolos lgicos y los modelos funcionales para diversos elementos lgicos. sino tambitn sus modelos de temporizacin. Un simulador nos permite aplicar secuencias de entrada y observar cmo y cundo se producen las sttliclns. Por lo regular usted puede controlar el uso de los valores de retardo: mnimos. tpicos o mximos o alguna combinacin de los mismos. Incluso con un simulador, no se ha librado por completo del atolladero. Por lo ge neral el disenador suministra I a.~ secuencias de entrada para las que el simulador deberla producir las salidas. De este modo, se necesitar tener una buena idea de lo que se busca y de cmo estimular su circuito, para producir y observar los retardos del peor de los casos. Algunos programas de anlisis de temporizoci6n ptw\en calcularen fonna automtica todas las trayectorias de retardo posibles en un circuito e imprimirlas en una lista ordenada, comenzando con la ms lenta. No obstante. estos resultados pueden ser demasiado pesimistas, ya que algunas trayectorias pueden no utilizarse durante el runcionamiento normal del circuito: el disenador debe aplicar su inteligencia para interpretar los resulla dos de manera apropiada.

5.3 PLD combinacionales


5.3.1 Arreglos de lgica programable
los primeros PLD fueron arrrs10s de lgica progranwbfe (PLA. progro mmable logic arrays). Un PLA es un dispositivo ANl).(}R combinacional de dos niveles. el cual se plt'tk programar para quc mala cualquier expresin lgica de suma de productos. sujeta a las limitaciones de taJnano del dispositivo. La.~ limitaciones son el nmero de entradas (n), el nmero de salidas (m), y el nmero de tnninos de prodUC IO (P). Podemos describir un dispositivo de este tipo como ''un PLA de n x m con p ttrminos de producto". En general. p es bastante menor que el nmero de minitrminos den variables (2"). De este modo. un PLA no puede reaJi7N funciones lgicas arbitrarias de n entradas y m salidas; su utilidad