Vous êtes sur la page 1sur 340

Universidad de Oriente

N leo de Anzotegui

Es uela de Ingeniera y Cien ias Apli adas


Departamento de Ele tri idad

Prin ipios de Diseo Digital


Trabajo presentado por el
Prof. Luis Parraguez
omo requisito par ial para as ender a la ategora de:

Profesor Agregado
Puerto La Cruz, O tubre del 2001.

Prin ipios de Diseo Digital


Luis Parraguez1
18 de o tubre de 2001

1 Este do umento es mantenido por su autor. Por favor, enve sus omentarios sobre

errores u otras observa iones a parraguezanz.udo.edu.ve.

Introdu in
A er a de este Do umento
Este do umento persigue servir omo gua de trabajo para los estudiantes de la
asignatura Introdu in a los Cir uitos Lgi os, del Departamento de Ele tri idad,
de la Es uela de Ingeniera y Cien ias Apli adas, del N leo de Anzotegui, de la
Universidad de Oriente, as omo para ualquier persona que lo desee o ne esite.
Puede ser opiado y distribuido de ualquier manera, sin ningn osto
(ex epto a aso los inherentes a la reprodu in), y sin soli itar autoriza in
alguna. El ono imiento es Universal y nadie tiene el dere ho de apropirselo,
al menos eso es lo que reo. Slo pido que se me notique de su utiliza in,
as omo rti as y sugeren ias, a las dire iones de orreo ele trni o siguientes:
parraguezanz.udo.edu.ve y parraguetel el.net.ve.
Ha sido elaborado, enteramente, empleando herramientas informti as de libre
utiliza in, algunas de ellas de digo abierto:

Linux Mandrake

7.2 on kernel 2.2.17-21 de Mandrakesoft.

LYX 1.1.5x1 de Matthias Ettri h y LYX Team.


TKGate 1.6g de Jeery Hansen.
Ele tri 6.00 de Steven Rubin.
ver

Stru tural Verilog Compiler v1.2.100 de Tonny Bybell

iverilog
wave

I arus Verilog Compiler v.0.5-0 de Caden e In .

Gtkwave Analyser v1.2.99 de Udi Finkelstein.

GIMP

1.1.25 de Spen er Kimball y Peter Mattis.

KIllustrator
Xg

1.0 de KO e Team.

3.2 3 de Supoj Sutanthavibul, Brian Smith, Paul King y otros.


i

ii

XPaint
gv

2.6.0 de Torsten Martinsen, Greg Roelofs y David Koblas.

3.5.8 de Johannes Plass y Timothy Theisen.

psutils
Dia

de Angus Duggan.

v 0.86 de Alexander Larsson.

En este trabajo se ha pretendido dar un nuevo enfoque, te nolgi amente ms


a tualizado, on respe to a la manera tradi ional omo se ha venido impartiendo
el urso, desde ha e aproximadamente una d ada. Una primera aproxima in de
este esfuerzo se en uentra en el trabajo del Prof. Nstor Milln , quin realiz
un importante aporte al introdu ir las Redes de Petri omo herramienta de anlisis
y diseo de sistemas digitales. Nuestra visin persigue in orporar herramientas de
la te nologa de punta de los ltimos diez aos, omo lo es el fuerte impulso de
los lenguajes de programa in de hardware para enfrentar sistemas grandes y
omplejos, al enfatizar ms en el omportamiento de di hos sistemas que en su
estru tura ir uital.
Aunque se preserva, sobre todo en los primeros aptulos, la losofa lsi a
utilizada en la literatura de estos temas, lo que evidentemente onstituye una base
slida, se han modi ado, y hasta omitido, partes que se adaptan mejor a ursos
de ele trni a, para reforzar aspe tos ms novedosos aportados por las ltimas
tenden ias en el mbito ient o y te nolgi o.
A lo largo de este do umento se en ontrar on una gran variedad y tipos
de guras y gr os. La alidad nal de estos es muy variada. Algunos de los
programas utilizados para generarlos no estn orientados al pro esamiento de
imagenes, de tal manera que la salida gr a que propor ionan no es altamente
renada. Pido dis ulpas si no son de su absoluto agrado, pero se han dejado en su
forma original ya que indudablemente propor ionan informa in de gran utilidad.
Un omentario nal sobre el "problema" del ingls. Indudablemente, en el
lenguaje t ni o las imposi iones idiomti as na en junto a la rea in y ontrol
te nolgi o. Aunque hubiese deseado ser ms puro en el manejo de nuestro idioma,
desafortunadamente la falta de una tradu in dire ta y on eptualmente pre isa
de mu hos trminos ingleses, obliga a su uso en estado original. El aso ontrario
tambin existe, varios trminos han sido tradu idos de mltiples maneras. Algunas
de estas tradu iones, en mi on epto, son muy buenas y otras extremadamente
malas. Evidentemente esto le ha puesto una dinmi a interesante al desarrollo del
lenguaje, que debe ser apaz de permitir que sus usuarios parti ipen en su propia
elabora in y modi a in. La Real A ademia Espaola de la Lengua promueve
revisiones peridi as, en las uales se a eptan nuevas palabras o se modi an otras,
ajustndose a este desarrollo (por ejemplo, omputador o omputadora, segn su

iii

"sexo", o la propuesta de Gar a Mrquez de eliminar los a entos, son aportes del
siglo pasado). De esta manera, en este trabajo se usan indistintamente manejador
o driver ( on preferen ia el trmino espaol), de odi ador o des odi ador (an
uando el orre to lingsti amente sea el segundo), y mu hos otros que tendr
oportunidad de revisar.

Organiza in del Do umento


El trabajo est dividido en on e aptulos: Sistemas Numri os, Cdigos
Binarios, lgebra de Boole y Cir uitos Digitales, Diseo El tri o de Compuertas,
Minimiza in de las fun iones de Boole, Cir uitos Se uen iales y Elementos
de Memoriza in, Componentes de Memoriza in, Cir uitos Combina ionales
on MSI y LSI, Cir uitos Se uen iales on MSI y LSI, Mquinas de Estado
Algortmi as e Introdu in a los Lenguajes de Des rip in de Hardware.
Para un urso semestral, algunos aptulos, o partes de ellos, pueden ser
ompletamente omitidos de a uerdo al riterio del instru tor (o del le tor),
sin perder signi ativamente los aspe tos esen iales que se desean desta ar
del diseo y anlisis de Sistemas Digitales. Por ejemplo, el aptulo Diseo
El tri o de Compuertas puede omitirse por ompleto si la orienta in del urso
es ha ia la forma in bsi a de Arquite tura de Computadores, en su aspe to
de omportamiento; sin embargo, este aptulo debe estudiarse, y hasta resulta
signi ativamente pobre, si el objetivo es preparar en los problemas aso iados al
fun ionamiento ele trni o de los sistemas digitales (transi iones, propaga in de
seales, alimenta in, disipa in de poten ia, et .).

iv

Agrade imientos
La do umenta in es, a menudo, un ejer i io de sintoniza in ole tiva. Un
grupo de manos y erebros han ontribuido a olo ar algo en este depsito que
hoy tiene ante sus ojos.
Primero, debemos agrade er a los que estuvieron antes que nosotros. Ellos nos
abrieron la bre ha por la ual transitamos.
De igual manera, a Betty y Patri ia, por el amor y la pa ien ia que me
han tenido, por las innumerables, tardes, no hes, nes de semanas y va a iones
sa ri adas.
A los alumnos de los ursos de Introdu in a los Cir uitos Digitales que han
usado el material de manera rti a.
Finalmente a Julio Martnez, quin ha servido de Preparador Ad Honorem
( ualidad muy dif il de en ontrar en estos tiempos) de los ltimos tres ursos de
Introdu in a los Cir uitos Digitales. Por su inters en estos temas maravillosos,
y valiosa alidad humana e intele tual.

vi

ndi e general
1. Sistemas Numri os.
1.1.
1.2.
1.3.
1.4.
1.5.

Sistemas Numri os Posi ionales. . . . . . . . . . . . . . . . . . .


Nmeros Binarios (Base 2). . . . . . . . . . . . . . . . . . . . . .
Nmeros O tales (Base 8). . . . . . . . . . . . . . . . . . . . . . .
Nmeros Hexade imales (Base 16). . . . . . . . . . . . . . . . . .
Conversin entre Sistemas Numri os. . . . . . . . . . . . . . . . .
1.5.1. Conversin de enteros. . . . . . . . . . . . . . . . . . . . .
1.5.2. Conversin de fra iones. . . . . . . . . . . . . . . . . . . .
1.5.2.1. Conversin de fra iones de imales a binarias. . .
1.5.2.2. Conversin de fra iones binarias a de imales . .
1.6. Adi in y Substra in de Nmeros Enteros Positivos. . . . . . . .
1.6.1. Adi in y Substra in de Nmeros De imales. . . . . . .
1.6.2. Adi in y Substra in de Nmeros Binarios. . . . . . . .
1.7. Representa in de nmeros negativos. . . . . . . . . . . . . . . . .
1.7.1. Representa in en Signo - Magnitud. . . . . . . . . . . . .
1.7.2. Representa in en Signo - Magnitud de nmeros de imales.
1.7.3. Representa in en Signo - Magnitud de nmeros binarios. .
1.7.4. Representa in en Complementos. . . . . . . . . . . . . . .
1.7.4.1. EL omplemento de r. . . . . . . . . . . . . . . .
1.7.4.2. EL omplemento de 10 para nmeros de imales. .
1.7.4.3. EL omplemento de 2 para nmeros binarios . . .
1.7.4.4. EL omplemento de r - 1. . . . . . . . . . . . . .
1.7.4.5. EL omplemento de 9 (base redu ida) para
nmeros de imales. . . . . . . . . . . . . . . . . .
1.7.4.6. EL omplemento de 1 (base redu ida) para
nmeros binarios . . . . . . . . . . . . . . . . . .
1.8. Representa in de nmeros de punto otante. . . . . . . . . . . .

2. Cdigos Binarios.

2.1. Cdigos De imales. . . . . . . . . . . . . . . . . . . . . . . . . . .


2.1.1. Cdigos De imales Posi ionales. . . . . . . . . . . . . . . .
2.1.1.1. Cdigos De imales Posi ionales No Simtri os. .
vii

1
2
2
3
4
4
5
5
8
9
9
11
12
13
13
13
13
14
14
16
16
17
19
21

23

23
24
24

NDICE GENERAL

viii

2.1.1.2. Cdigos De imales Posi ionales Simtri os. . . . .


2.1.2. Cdigos De imales No Posi ionales. . . . . . . . . . . . . .
2.1.2.1. Cdigos De imales No Posi ionales de Distan ia
Unitaria. . . . . . . . . . . . . . . . . . . . . . .
2.1.2.2. Cdigos De imales No Posi ionales Reejados. . .
2.1.3. Otros Cdigos De imales. . . . . . . . . . . . . . . . . . .
2.1.3.1. Cdigo Ex eso 3. . . . . . . . . . . . . . . . . . .
2.1.3.2. Cdigo 1 de 10. . . . . . . . . . . . . . . . . . . .
2.2. Cdigo Gray. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.3. Cdigos Alfanumri os. . . . . . . . . . . . . . . . . . . . . . . . .
2.3.1. Cdigo ASCII. . . . . . . . . . . . . . . . . . . . . . . . .
2.4. Cdigos de Dete in y Corre in de Errores. . . . . . . . . . . .
2.4.1. Cubos N y Distan ia del Cdigo. . . . . . . . . . . . . . .
2.4.2. Cdigos de Dete in de Errores. . . . . . . . . . . . . . .
2.4.2.1. Paridad . . . . . . . . . . . . . . . . . . . . . . .
2.4.2.2. Cdigo de orre in de error simple y dete in
de error mltiple. . . . . . . . . . . . . . . . . . .

3. lgebra de Boole y Cir uitos Digitales.

3.1. Lgi a Binaria. . . . . . . . . . . . . . . . . . . . . . .


3.2. Fun iones de la Verdad. . . . . . . . . . . . . . . . . .
3.2.1. Cone tivos Binarios. . . . . . . . . . . . . . . .
3.2.2. Evalua in de las fun iones de verdad. . . . . .
3.3. Postulados de Huntington. . . . . . . . . . . . . . . . .
3.4. Axiomas del lgebra de Boole. . . . . . . . . . . . . . .
3.5. Teoremas bsi os y propiedades del lgebra de Boole. .
3.5.1. Teoremas de una sola variable. . . . . . . . . . .
3.5.2. Teoremas de dos y tres variables. . . . . . . . .
3.5.3. Teoremas generalizados de n variables. . . . . .
3.6. Fun iones, variables y expresiones. . . . . . . . . . . . .
3.7. Forma Canni a de Fun iones Combinatorias . . . . . .
3.8. Cir uitos Lgi os. . . . . . . . . . . . . . . . . . . . . .
3.8.1. Anlisis de Cir uitos Lgi os Combina ionales. .
3.8.2. Sntesis de Cir uitos Lgi os Combina ionales. .
3.8.3. Manipula in de ir uitos. . . . . . . . . . . . .

4. Diseo El tri o de Compuertas


4.1. Lgi a
4.1.1.
4.1.2.
4.1.3.
4.1.4.
4.1.5.

de Resisten ia y Transistor (RTL) . . . . .


El BJT omo Inversor Lgi o . . . . . . .
Diseo de un Inversor Lgi o usando BJT
El Fan out . . . . . . . . . . . . . . . . . .
Tiempo de Transi in . . . . . . . . . . .
Retraso de Propaga in . . . . . . . . . .

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

24
25
25
26
27
27
27
28
29
30
32
32
33
34
37

39

39
41
41
43
44
45
45
45
47
48
48
50
53
55
57
59

65

65
65
66
67
70
72

NDICE GENERAL

4.2.
4.3.
4.4.

4.5.

4.6.

4.7.

4.1.6. Otras ompuertas RTL . . . . . . . . . . .


4.1.7. El Fan in . . . . . . . . . . . . . . . . . .
Diodos y Lgi a de Resisten ias y Diodos (RDL) .
Lgi a de Diodos y Transistores (DTL) . . . . . .
Lgi a de Transistor - Transistor (TTL) . . . . .
4.4.1. Inversor TTL . . . . . . . . . . . . . . . .
4.4.2. NAND TTL . . . . . . . . . . . . . . . . .
4.4.3. Niveles lgi os . . . . . . . . . . . . . . . .
4.4.4. Entradas que no se usan . . . . . . . . . .
4.4.5. Entrada de Disparador de S hmitt . . . .
4.4.6. Salidas TTL . . . . . . . . . . . . . . . . .
4.4.6.1. Totem Pole . . . . . . . . . . . .
4.4.6.2. Cole tor abierto. . . . . . . . . .
4.4.6.3. Alta Impedan ia (ter er estado) .
4.4.7. Otras familias TTL . . . . . . . . . . . . .
Lgi a CMOS . . . . . . . . . . . . . . . . . . . .
4.5.1. El inversor CMOS . . . . . . . . . . . . .
4.5.2. NAND CMOS . . . . . . . . . . . . . . . .
4.5.3. Inversor CMOS Triestado . . . . . . . . .
Otras Familias Lgi as . . . . . . . . . . . . . . .
4.6.1. ECL . . . . . . . . . . . . . . . . . . . . .
4.6.2. PMOS . . . . . . . . . . . . . . . . . . . .
4.6.3. NMOS . . . . . . . . . . . . . . . . . . . .
4.6.4. E2 CMOS . . . . . . . . . . . . . . . . . .
Cir uitos Integrados de Apli a iones Espe  as .

ix

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

5. Minimiza in de las fun iones de Boole.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

5.1. Mapas de Veit h - Karnaugh. . . . . . . . . . . . . . . . . . . . .


5.1.1. Mapas de 4, 5 y 6 variables. . . . . . . . . . . . . . . . . .
5.2. Simpli a in de las fun iones booleanas en los mapas k. . . . . .
5.2.1. Cobertura mnima. . . . . . . . . . . . . . . . . . . . . . .
5.3. Minimiza in tabular de fun iones booleanas. . . . . . . . . . . .
5.3.1. El mtodo de Quine - M Cluskey . . . . . . . . . . . . . .
5.3.1.1. Sele in de un onjunto ptimo de impli antes
primos . . . . . . . . . . . . . . . . . . . . . . . .
5.4. Realiza in de algunos Cdigos Espe iales* . . . . . . . . . . . . .
5.4.1. Cdigo Gray . . . . . . . . . . . . . . . . . . . . . . . . . .
5.4.2. Cdigo Hamming* . . . . . . . . . . . . . . . . . . . . . .

6. Cir uitos Se uen iales y Elementos de Memoriza in

72
74
74
77
78
79
80
82
82
83
85
85
85
85
88
89
89
90
91
92
92
92
92
92
92

93

93
94
98
98
101
101
103
104
104
106

113

6.1. Introdu in . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113


6.2. Cerrojo (Lat h) SR . . . . . . . . . . . . . . . . . . . . . . . . . . 118
6.3. Lat h SR sin ronizado . . . . . . . . . . . . . . . . . . . . . . . . 121

NDICE GENERAL

6.4. Lat h JK Sin ronizado . . . . . . . . . . . . . .


6.5. Lat h D Sin ronizado . . . . . . . . . . . . . . .
6.6. Biestables . . . . . . . . . . . . . . . . . . . . .
6.6.1. Cerrojos Maestro / Es lavo . . . . . . .
6.6.2. Biestables disparados por an o . . . . .
6.6.2.1. Biestable on dete tor de an o
6.6.2.2. Biestable de tres errojos . . .
6.6.3. Biestable Maestro / Es lavo . . . . . . .
6.7. Tipos de Biestables . . . . . . . . . . . . . . . .
6.8. Anlisis de la Lgi a Se uen ial . . . . . . . . .
6.9. Modelo de Mquinas de Estados Finitos . . . .
6.10. Captura del Modelo FSM . . . . . . . . . . . .
6.11. Minimiza in de Estados . . . . . . . . . . . . .
6.12. Codi a in de Estados . . . . . . . . . . . . .
6.12.1. Mnimo Cambio de Bits. . . . . . . . . .
6.12.2. Prioridad en adya en ia. . . . . . . . . .
6.12.3. Un bit por estado . . . . . . . . . . . . .
6.13. E ua iones de Estado Futuro y Salidas . . . . .
6.13.1. Biestable tipo D . . . . . . . . . . . . . .
6.13.2. Biestable tipo T . . . . . . . . . . . . . .
6.13.3. Biestable tipo SR . . . . . . . . . . . . .
6.13.4. Biestable tipo JK . . . . . . . . . . . . .
6.14. Optimiza in y Temporiza in . . . . . . . . . .
6.15. FSM in ompletamente espe i ada . . . . . . .
6.16. Conversin Mealy - Moore . . . . . . . . . . . .
6.16.1. Conversin de Mealy a Moore. . . . . . .
6.16.2. Conversin de Moore a Mealy . . . . . .

7. Componentes de Memoriza in

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

7.1. Registros . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.2. Registro de Desplazamiento . . . . . . . . . . . . . . . . .
7.3. Contadores . . . . . . . . . . . . . . . . . . . . . . . . . .
7.3.1. Contador Asin rni o . . . . . . . . . . . . . . . . .
7.3.2. Contador Asin rni o As endente . . . . . . . . . .
7.3.3. Contador Sin rni o . . . . . . . . . . . . . . . . .
7.3.4. Contador Sin rni o Des endente . . . . . . . . . .
7.3.5. Contador Sin rni o As endente - Des endente . .
7.3.6. Contador Sin rni o As endente - Des endente on
Paralela . . . . . . . . . . . . . . . . . . . . . . . .
7.3.7. Contador BCD y Otros . . . . . . . . . . . . . . . .
7.4. Ban o de Registros . . . . . . . . . . . . . . . . . . . . . .
7.5. Memorias de A eso Aleatorio . . . . . . . . . . . . . . . .
7.6. Otras Estru turas de Alma enamiento . . . . . . . . . . .

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
Carga
. . . .
. . . .
. . . .
. . . .
. . . .

121
123
124
125
125
126
127
129
129
130
135
138
138
145
145
148
151
151
153
156
159
162
165
166
166
168
170

173

173
176
177
177
177
179
181
182

182
182
185
187
188

NDICE GENERAL

xi

7.6.1. Pilas de Inser in / Extra in . . . . . . . . . . . . . . . 188


7.6.2. Colas: Primero en Entrar, Primero en Salir . . . . . . . . . 189

8. Cir uitos Combina ionales on MSI y LSI.


8.1.
8.2.
8.3.
8.4.
8.5.
8.6.
8.7.
8.8.

Sumadores . . . . . . . . . . . . . . . . . .
De odi adores. . . . . . . . . . . . . . . .
Multiplexores. . . . . . . . . . . . . . . . .
Comparadores . . . . . . . . . . . . . . . .
ROM (Memoria de slo Le tura). . . . . .
PLD (Dispositivo Lgi o Programable). . .
ASIC (Cir uitos integrados de Apli a iones
SOC (System On Chip). . . . . . . . . . .

. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
Espe  as).
. . . . . . . .

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

191

194
197
204
209
214
222
229
230

9. Cir uitos Se uen iales on MSI y LSI.

231

10.Mquinas de Estado Algortmi as (ASM).

243

9.1. Cir uitos Se uen iales on Registros y Lgi a ombinatoria MSI-LSI.232

10.1. Introdu in . . . . . . . . . . . . . . . . . . . . . . . . . .
10.2. Nota in de Transferen ia entre Registros (RTN) . . . . .
10.3. Pro esos Iterativos Unidimensionales . . . . . . . . . . . .
10.3.1. Informa in distribuida en el espa io y en el tiempo
10.4. Mquinas de Estado Algortmi o . . . . . . . . . . . . . .

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

243
243
245
245
249

11.Introdu in a los Lenguajes de Des rip in de Hardware


(HDL).
267
11.1. Introdu in . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11.2. Lenguajes de Des rip in de Hardware (HDL) . . . . . . . . . . .
11.3. Un po o de historia . . . . . . . . . . . . . . . . . . . . . . . . . .
11.4. Porqu Verilog? . . . . . . . . . . . . . . . . . . . . . . . . . . .
11.5. Modelado y Simula in . . . . . . . . . . . . . . . . . . . . . . . .
11.6. Renamiento en el ontrol del tiempo . . . . . . . . . . . . . . . .
11.6.1. Una introdu in a los on eptos de temporizado y retardos
11.6.1.1. Retardos . . . . . . . . . . . . . . . . . . . . . .
11.7. Algunos ejemplos de lgi a ombinatoria. . . . . . . . . . . . . . .
11.7.1. Multiplexor 2 a 1 . . . . . . . . . . . . . . . . . . . . . . .
11.7.1.1. Modelado y simula in a nivel de ompuertas . .
11.7.1.2. Modelado y simula in a nivel del omportamiento
11.7.1.3. Modelado y simula in a nivel fun ional . . . . .
11.7.2. Multiplexor de mltiples salidas . . . . . . . . . . . . . . .
11.7.3. Sumador ompleto de 4 bits . . . . . . . . . . . . . . . . .
11.8. Modelado y Simula in de la Lgi a Se uen ial. . . . . . . . . . .
11.8.1. El biestable tipo D. . . . . . . . . . . . . . . . . . . . . . .
11.8.2. Registro multifun ional de 8 bits. . . . . . . . . . . . . . .

267
270
271
272
273
279
279
279
283
283
283
285
289
290
292
293
293
296

xii

NDICE GENERAL

11.8.3. Mquina Se uen ial Rudimentaria. . . . . . . . . . . . . . 298


11.8.4. Mquina Se uen ial Algortmi a. . . . . . . . . . . . . . . 302

ndi e de guras
2.1. Cdigos De imales . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2. Representa in Geomtri a de Cdigos Binarios. . . . . . . . . . .
2.3. Sub ubo 2 de un Cubo 3 . . . . . . . . . . . . . . . . . . . . . . .

23
32
34

3.1. Cir uito de Alumbrado . . . . . . . . . . . . . . . . . . . . . . . .


3.2. Cir uito de Alumbrado on Interruptores en serie . . . . . . . . .
3.3. Cir uito de Alumbrado on Interruptores en paralelo . . . . . . .
3.4. Cir uito de Alumbrado on Interruptores en serie y paralelo . . .
3.5. Diagrama de Venn del Teorema de Cobertura . . . . . . . . . . .
3.6. Smbolos tradi ionales para la representa in de fun iones lgi as
3.7. Diagrama esquemti o para la fun in F( ) x  y x  y  z . .
3.8. Diagrama de tiempos para la fun in F( ) x  y x  y  z . .
3.9. Diagrama esquemti o de ejemplo . . . . . . . . . . . . . . . . . .
3.10. Diagrama esquemti o equivalente al de la gura 3.9 . . . . . . .
3.11. Apli a in gr a del Teorema de Involu in . . . . . . . . . . . .
3.12. Apli a in gr a del Teorema de De Morgan . . . . . . . . . . .
3.13. Esquemti o de los ir uitos de Alarma . . . . . . . . . . . . . . .
3.14. Diagrama de tiempo de los ir uitos de Alarma . . . . . . . . . .
3.15. Diagrama equivalentes para un Inversor . . . . . . . . . . . . . . .
3.16. Alarma slo on ompuertas NAND . . . . . . . . . . . . . . . . .
3.17. Alarma slo on ompuertas NAND (Pro edimiento Gr o) . . .

40
40
40
41
47
53
54
54
56
56
57
57
60
60
61
62
63

4.1. Transistor BJT en ongura in de emisor omn . . . . . . . .


4.2. Transistor BJT a tuando omo inversor lgi o . . . . . . . . . .
4.3. Comportamiento dinmi o de un transistor BJT omo Inversor
4.4. Dos inversores en serie . . . . . . . . . . . . . . . . . . . . . . .
4.5. Representa in de una seal digital . . . . . . . . . . . . . . . .
4.6. Tiempos de Propaga in . . . . . . . . . . . . . . . . . . . . . .
4.7. Compuerta NOR. . . . . . . . . . . . . . . . . . . . . . . . . . .
4.8. Seguidor BJT . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.9. Diagrama de tiempos del seguidor RDL. . . . . . . . . . . . . .
4.10. Compuerta AND RDL. . . . . . . . . . . . . . . . . . . . . . . .
4.11. Compuerta NAND DTL. . . . . . . . . . . . . . . . . . . . . . .
4.12. Compuerta NAND DTL (modi ada). . . . . . . . . . . . . . .

65
66
68
68
71
73
73
74
76
76
77
78

x;y

x;y

xiii

=
=

+
+

.
.
.
.
.
.
.
.
.
.
.
.

xiv

NDICE DE FIGURAS

4.13. Compuerta NAND DTL (nal). . . . . . . . . . . . . .


4.14. Inversor TTL . . . . . . . . . . . . . . . . . . . . . . .
4.15. Compuerta NAND TTL. . . . . . . . . . . . . . . . . .
4.16. Niveles Lgi os TTL. . . . . . . . . . . . . . . . . . . .
4.17. Entradas no usadas. . . . . . . . . . . . . . . . . . . .
4.18. Fun in de Transferen ia de un Disparador de S hmitt
4.19. Respuesta temporal de un Disparador de S hmitt. . . .
4.20. Inversor TTL de Cole tor Abierto. . . . . . . . . . . .
4.21. Apli a in de una salida ole tor abierto. . . . . . . . .
4.22. Inversor TTL on salida de alta impedan ia. . . . . . .
4.23. Inversor CMOS . . . . . . . . . . . . . . . . . . . . . .
4.24. NAND CMOS . . . . . . . . . . . . . . . . . . . . . . .
4.25. Inversor CMOS triestado . . . . . . . . . . . . . . . . .

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

78
79
80
82
84
84
86
87
87
88
90
90
91

Mapa K de in o variables . . . . . . . . . . . . . . . . . . . .
Mapa K de seis variables . . . . . . . . . . . . . . . . . . . . .
Mapa K para fun in de ejemplo de minimiza in . . . . . . .
Mapa K para la fun in
; ; ; ; ; ;
. . . . . . . . .
Mapa K para la fun in
; ; ; ; ; ; ;
. . . . . . .
Mapa K redu ido para la fun in
; ; ; ; ; ; ;
. .
Codi a in de dos elementos on distan ias mnimas: 1, 2 y 3

.
.
.
.
.
.
.

.
.
.
.
.
.
.

96
97
99
100
101
102
107

Cerraduras Combinatoria y Se uen ial . . . . . . . . . . . . . . .


Diagrama de Flujo para la a tiva in de una erradura se uen ial.
Diagrama de Estados para la erradura se uen ial. . . . . . . . . .
Diagramas de Estado: (a) Con En lavamiento / Sin Solapamiento.
(b) Sin En lavamiento / Sin Solapamiento. ( ) Con En lavamiento
/ Con Solapamiento. (d) Sin En lavamiento / Con Solapamiento.
6.5. Cerrojo SR. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.6. Diagrama de Estados de un Cerrojo SR. . . . . . . . . . . . . . .
6.7. Diagrama de Tiempos de un errojo SR. . . . . . . . . . . . . . .
6.8. Cerrojo SR sin ronizado. . . . . . . . . . . . . . . . . . . . . . . .
6.9. Cerrojo JK sin ronizado. . . . . . . . . . . . . . . . . . . . . . . .
6.10. Diagrama de Estados de un errojo JK. . . . . . . . . . . . . . . .
6.11. Cerrojo D sin ronizado. . . . . . . . . . . . . . . . . . . . . . . .
6.12. Diagrama de Estados de un errojo D. . . . . . . . . . . . . . . .
6.13. Cerrojo Maestro / Es lavo. . . . . . . . . . . . . . . . . . . . . . .
6.14. Biestable (ip - op) D, on "dete tor de an o". . . . . . . . . .
6.15. Diagrama de Tiempos de un Biestable, tipo D, disparado por an o
delantero, usando un "dete tor de an o". . . . . . . . . . . . . .
6.16. Biestable disparado por an o, de tres errojos. . . . . . . . . . .
6.17. Cerrojo y biestable, tipo D. . . . . . . . . . . . . . . . . . . . . . .
6.18. Cerrojo y biestable, tipo D, on entradas de puesta a 1 y 0. . . . .

114
115
116

5.1.
5.2.
5.3.
5.4.
5.5.
5.6.
5.7.
6.1.
6.2.
6.3.
6.4.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

(1 3 4 5 10 12 13)
(4 5 6 9 11 13 14 15)
(4 5 6 9 11 13 14 15)

.
.
.
.
.
.
.
.
.
.
.
.
.

117
118
119
120
121
122
122
123
124
125
126
127
128
128
128

NDICE DE FIGURAS

xv

6.19. Biestable maestro / es lavo. . . . . . . . . . . . . . . . . . . . . .


6.20. Tipos de biestables: Esquemti os, Diagramas de Estado, Tablas
de Transi in y E ua iones de Estado Futuro. . . . . . . . . . . .
6.21. Diagrama esquemti o de un ir uito se uen ial. . . . . . . . . . .
6.22. E ua iones de Ex ita in y Salida del ir uito se uen ial. . . . . .
6.23. Diagrama de Estados del ir uito se uen ial. . . . . . . . . . . . .
6.24. Mquinas Mealy y Moore. . . . . . . . . . . . . . . . . . . . . . .
6.25. Diagramas de Estado Moore y Mealy para el re ono edor de
se uen ia 1001, on en lavamiento y sin solapamiento. . . . . . .
6.26. Diagrama de Estados del Contador as endente / des endente
mdulo 3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.27. Diagramas de Estados equivalentes. . . . . . . . . . . . . . . . . .
6.28. Diagrama de Estados para odi a in. . . . . . . . . . . . . . . .
6.29. Estados odi ados on op in 1 de la Tabla 6.18. . . . . . . . . .
6.30. Estados odi ados on op in 2 de la Tabla 6.18. . . . . . . . . .
6.31. Codi a in de Estados por el riterio de prioridad en adya en ia.
6.32. Codi a in de estados on el riterio de prioridad en adya en ia,
onsiderando el estado ini ial omo 000. . . . . . . . . . . . . . .
6.33. Diagrama de Estados para la erradura se uen ial. Mquina Moore
on en lavamiento y sin solapamiento. . . . . . . . . . . . . . . .
6.34. Cir uito re ono edor de la se uen ia 1001, on biestables tipo D. .
6.35. Diagrama de tiempos del dete tor de se uen ia 1001, on
en lavamiento. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.36. Diagrama de Estados on orre in de estados (Completamente
espe i ado). . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.37. Diagrama de Estados de una Mquina Mealy . . . . . . . . . . . .
6.38. Diagrama Moore equivalente . . . . . . . . . . . . . . . . . . . . .

168
169
169

7.1. Registro de o ho bits . . . . . . . . . . . . . . . . . . . .


7.2. Registro on ontrol para Set y Reset. . . . . . . . . . .
7.3. Registro on arga paralela . . . . . . . . . . . . . . . . .
7.4. Mdulo Bsi o de un registro on arga paralela . . . . .
7.5. Registro de Desplazamiento . . . . . . . . . . . . . . . .
7.6. Registro General . . . . . . . . . . . . . . . . . . . . . .
7.7. Contador Asin rni o . . . . . . . . . . . . . . . . . . . .
7.8. Diagrama de tiempos del ontador asin rni o . . . . . .
7.9. Contador Asin rni o As endente . . . . . . . . . . . . .
7.10. Contador Sin rni o As endente . . . . . . . . . . . . . .
7.11. Contador Sin rni o Des endente . . . . . . . . . . . . .
7.12. Contador Sin rni o As endente / Des endente . . . . .
7.13. Contador Sin rni o As endente / Des endente on arga
7.14. Contador Sin rni o BCD . . . . . . . . . . . . . . . . .
7.15. Ban o de Registros . . . . . . . . . . . . . . . . . . . . .

173
174
175
175
176
176
178
178
179
180
181
183
184
185
186

. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
paralela
. . . . .
. . . . .

129
131
132
133
135
136
137
139
140
147
147
148
150
150
152
155
167

NDICE DE FIGURAS

xvi

8.1. Cir uito e implementa in en el mbito de integrados . . . . . . .


8.2. Cir uito desarrollado on ompuertas NAND. . . . . . . . . . . .
8.3. Sumador in ompleto (semi-sumador) . . . . . . . . . . . . . . . .
8.4. Sumador ompleto . . . . . . . . . . . . . . . . . . . . . . . . . .
8.5. Sumador ompleto de 4 bits . . . . . . . . . . . . . . . . . . . . .
8.6. Sumador. Diagrama de tiempos . . . . . . . . . . . . . . . . . . .
8.7. Sumador. Opera in par ial en t0 . . . . . . . . . . . . . . . . . .
8.8. Sumador. Opera in par ial en t1 . . . . . . . . . . . . . . . . . .
8.9. Sumador. Opera in par ial en t2 . . . . . . . . . . . . . . . . . .
8.10. Sumador. Opera in par ial en t3 . . . . . . . . . . . . . . . . . .
8.11. Sumador. Opera in par ial en t4 . . . . . . . . . . . . . . . . . .
8.12. De odi ador 2 a 4 . . . . . . . . . . . . . . . . . . . . . . . . . .
8.13. De odi ador 3 a 8 . . . . . . . . . . . . . . . . . . . . . . . . . .
8.14. Multiplexor 4 a 1 . . . . . . . . . . . . . . . . . . . . . . . . . . .
8.15. Multipli ador por 3 . . . . . . . . . . . . . . . . . . . . . . . . . .
8.16. Multiplexor 8 a 1 . . . . . . . . . . . . . . . . . . . . . . . . . . .
8.17. Comparador simple de n bits . . . . . . . . . . . . . . . . . . . .
8.18. Comparador de 4 bits, generando F A > B . . . . . . . . . . .
8.19. Comparador de 4 bits, generando F
A > B , on a arreo desde
los bits menos signi ativos . . . . . . . . . . . . . . . . . . . . .
8.20. Estru tura de una ROM . . . . . . . . . . . . . . . . . . . . . . .
8.21. Estru tura de una FPAL . . . . . . . . . . . . . . . . . . . . . . .
8.22. Estru tura de una AND y fusibles de programa in . . . . . . . .
8.23. Estru tura de una ROM . . . . . . . . . . . . . . . . . . . . . . .
8.24. Estru tura de una PAL . . . . . . . . . . . . . . . . . . . . . . . .
8.25. Estru tura ompleta de una FPAL . . . . . . . . . . . . . . . . .
8.26. Estru tura para la denomina in de una PAL . . . . . . . . . . .
8.27. Ambiente CAE para Diseo Digital . . . . . . . . . . . . . . . . .

=
=

192
193
194
196
197
198
198
199
199
200
200
201
204
205
207
209
210
211
212
214
222
223
224
225
226
227
229

9.1. Diagramas de Estado, para una mquina Moore, del re ono edor
de se uen ia 1001: (a) Con En lavamiento / Sin Solapamiento. (b)
Sin En lavamiento / Sin Solapamiento. ( ) Con En lavamiento /
Con Solapamiento. (d) Sin En lavamiento / Con Solapamiento. . 232
9.2. Re ono edor de Se uen ia 1001. Diseo Clsi o. . . . . . . . . . . 235
9.3. Re ono edor de Se uen ia 1001. Diseo on De odi ador y Registro.236
9.4. Re ono edor de Se uen ia 1001. Diseo on Multiplexor Redu ido. 238
9.5. Diagramas de Estado, para una mquina Moore, del re ono edor
de se uen ia 1001, on En lavamiento, sin Solapamiento y on
orre in de estado. . . . . . . . . . . . . . . . . . . . . . . . . . 239
9.6. Re ono edor de Se uen ia 1001. Diseo on PROM. . . . . . . . . 240
9.7. Re ono edor de Se uen ia 1001. Diseo on FPAL. . . . . . . . . 241
10.1. Sumador binario on distribu in en el espa io . . . . . . . . . . . 245

NDICE DE FIGURAS

10.2. Pro eso de Suma . . . . . . . . . . . . . . . . . . . . . . . . . . .


10.3. Diagrama de Estados de un sumador serial de 1 bit. . . . . . . . .
10.4. Diagrama de Estados de un sumador serial de 1 bit on entrada de
reposi in y habilita in. . . . . . . . . . . . . . . . . . . . . . . .
10.5. Sumador serial de 1 bit on entrada de reposi in. . . . . . . . . .
10.6. Diagrama de Bloques de una ASM . . . . . . . . . . . . . . . . .
10.7. Elementos de un Diagrama ASM . . . . . . . . . . . . . . . . . .
10.8. Ejemplo de un Diagrama ASM . . . . . . . . . . . . . . . . . . .
10.9. Cir uito del ejemplo de un Diagrama ASM . . . . . . . . . . . . .
10.10.Pro esador de Datos de un Sumador Serial de n bits . . . . . . .
10.11.Diagrama ASM para el Sumador Serial de n bits . . . . . . . . . .
10.12.Diagrama esquemti o del Sumador Serial de n bits . . . . . . . .
10.13.Diagrama del Pro esador de Datos del Multipli ador por sumas
su esivas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.14.Diagrama ASM para el Multipli ador Serial de n bits . . . . . . .
10.15.Diagrama del Pro esador de Datos y Control del Multipli ador por
sumas su esivas . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11.1. Diagrama Cir uital . . . . . . . . . . . . . . . . . . . . . . . . . .
11.2. Diagrama Cir uital . . . . . . . . . . . . . . . . . . . . . . . . . .
11.3. Diagrama Cir uital de un omparador de 4 bits . . . . . . . . . .
11.4. Diagrama Cir uital de una ompuerta AND . . . . . . . . . . . .
11.5. Compuerta AND on "instrumentos" de simula in. . . . . . . . .
11.6. Corrida de Simula in de una ompuerta AND . . . . . . . . . . .
11.7. Corrida de Simula in de una ompuerta AND, on Verilog . . . .
11.8. Simula in de una ompuerta AND, on retardo . . . . . . . . . .
11.9. Diagrama Esquemti o de un multiplexor 2 a 1 on entrada de
habilita in . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11.10.Visualiza in de la simula in para un mux 2 a 1. . . . . . . . . .
11.11.Visualiza in de la simula in para un mux 2 a 1, modelado a nivel
del omportamiento . . . . . . . . . . . . . . . . . . . . . . . . . .
11.12.Visualiza in de la simula in para un mux 2 a 1, modelado a nivel
del omportamiento on asigna in ondi ional . . . . . . . . . . .
11.13.Visualiza in de la simula in para un mux 2 a 1, modelado a nivel
del omportamiento (estru tura ase) . . . . . . . . . . . . . . . .
11.14.Visualiza in de la simula in para un mux 2 a 1, modelado a nivel
fun ional . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11.15.Simula in para un udruple multiplexor 2 a 1 . . . . . . . . . .
11.16.Simula in para un sumador de 4 bits . . . . . . . . . . . . . . . .
11.17.Biestable tipo D . . . . . . . . . . . . . . . . . . . . . . . . . . .
11.18.Simula in para un biestable tipo D . . . . . . . . . . . . . . . . .
11.19.Simula in para un Registro Multifun ional . . . . . . . . . . . .
11.20.Diagrama de Estados para re ono edor de se uen ia 1001. . . . .

xvii

246
246
247
248
250
250
251
253
254
256
258
260
263
265
267
268
269
274
275
275
279
283
284
285
287
288
289
290
292
294
295
296
299
300

xviii

NDICE DE FIGURAS

11.21.Simula in para un Re ono edor de se uen ia (1001 ). . . . . .


11.22.Diagrama de bloques de un multipli ador por sumas su esivas.
11.23.Diagrama ASM del Pro esador de Control. . . . . . . . . . . .
11.24.Simula in para el Multipli ador . . . . . . . . . . . . . . . . .

.
.
.
.

.
.
.
.

303
305
306
311

ndi e de uadros
1.1. Digitos O tales . . . . . . . . . . . . . . . . . . .
1.2. Digitos Hexade imales . . . . . . . . . . . . . . .
1.3. Ejemplo de Conversin de Bases. . . . . . . . . .
1.4. Conversin de algunas Fra iones. . . . . . . . . .
1.5. Conversin de Fra iones (De imales a Binarias).
1.6. Tabla de Sumas De imales. . . . . . . . . . . . . .
1.7. Tabla de Restas De imales. . . . . . . . . . . . .
1.8. Tabla de Sumas Binarias. . . . . . . . . . . . . .
1.9. Tabla de Restas Binarias. . . . . . . . . . . . . .
1.10. Ejemplo de Complementos a 10. . . . . . . . . . .
1.11. Ejemplo de Complementos a 2. . . . . . . . . . .
1.12. Ejemplo de Complementos a 9. . . . . . . . . . .
1.13. Ejemplo de Complementos a 1. . . . . . . . . . .
1.14. Resumen de Complementos. . . . . . . . . . . . .

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

3
3
5
6
7
10
11
12
12
14
16
17
19
20

2.1. Cdigos De imales Posi ionales No Simtri os . . . .


2.2. Cdigos De imales Posi ionales No Simtri os . . . .
2.3. Cdigo De imal Ex eso 3 . . . . . . . . . . . . . . . .
2.4. Cdigo De imal Uno de Diez . . . . . . . . . . . . . .
2.5. Cdigo Gray de dos bits . . . . . . . . . . . . . . . .
2.6. Constru in de un Cdigo Gray de dos bits . . . . .
2.7. Constru in de un Cdigo Gray de 3 bits . . . . . .
2.8. Cdigo ASCII . . . . . . . . . . . . . . . . . . . . . .
2.9. Distan ias del Cdigo NBCD . . . . . . . . . . . . .
2.10. Paridad para el Cdigo NBCD . . . . . . . . . . . . .
2.11. Distan ias del Cdigo NBCD on Paridad Par . . . .
2.12. Cdigo de Distan ia Mnima 3 para dgitos De imales
2.13. Distan ias Mnimas, errores orregibles y dete tables

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

24
25
28
28
29
29
29
31
33
35
36
37
38

. . . . . . . . .
. . . . . . . . .
A  B ) B) .
. . . . . . . . .
. . . . . . . . .

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

42
43
44
45
46

3.1.
3.2.
3.3.
3.4.
3.5.

Cone tivos Binarios . . . . . . . . . . . . .


Evalua in de la fun in Z A  B ) C .
Evalua in de una fun in Tautolgi a (Z
Axiomas del lgebra de Boole . . . . . . .
Teoremas de una sola variable . . . . . . .

xix

.
.
.
.
.
.
.
.
.
.
.
.
.
.

NDICE DE CUADROS

xx

3.6. Teoremas de dos variables . . . . . . . . . . . . . . . . .


3.7. Teoremas generalizados de n variables . . . . . . . . . .
3.8. Trminos mnimos y mximos para dos variables . . . . .
3.9. Trminos mnimos y mximos para tres variables . . . .
3.10. Tabla de Verdad para la fun in F( ) x  y x  y  z
3.11. Fun in NAND on B A . . . . . . . . . . . . . . . . .

.
.
.
.
.
.

47
49
51
52
55
61

4.1. Tabla de datos para el Signeti s TTL Hex Inverter . . . . . . . . .


4.2. Opera in de la Compuerta AND RDL . . . . . . . . . . . . . . .
4.3. Tabla de Opera in de una ompuerta NAND CMOS . . . . . . .

70
75
91

x;y

5.1. Mapa K de dos variables . . . . . . . . . . . . .


5.2. Mapa K de tres variables . . . . . . . . . . . . .
5.3. Otros mapas K de tres variables . . . . . . . . .
5.4. Mapa K de uatro variables . . . . . . . . . . .
5.5. Mapa K de in o variables . . . . . . . . . . . .
5.6. Mapa K de seis variables . . . . . . . . . . . . .
5.7. Mtodo de Quine - M Kluskey . . . . . . . . . .
5.8. Sele in de un onjunto de Impli antes Primos
5.9. Cdigo Gray de 3 bits . . . . . . . . . . . . . .
5.10. Cdigos de Hamming para 1, 2, 3 y 4 bits . . .

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

6.1. Tabla de Verdad para una erradura ombinatoria on a tiva in


en 1001. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.2. Tabla de Transi in de los uatro sistemas anteriores frente a una
se uen ia de datos de entrada. . . . . . . . . . . . . . . . . . . . .
6.3. Tabla de Opera in de un Cerrojo SR. . . . . . . . . . . . . . . .
6.4. Tabla de Opera in de un Cerrojo JK sin ronizado. . . . . . . . .
6.5. Tabla de Opera in de un Cerrojo D sin ronizado. . . . . . . . .
6.6. Tabla de Ex ita in del ir uito se uen ial. . . . . . . . . . . . . .
6.7. Tabla de Salida del ir uito se uen ial. . . . . . . . . . . . . . . .
6.8. Tabla de Transi in y E ua in de Estado Futuro del biestable JK.
6.9. Tabla de Transi iones del ir uito se uen ial. . . . . . . . . . . . .
6.10. Tabla de Estados Futuros del ir uito se uen ial. . . . . . . . . . .
6.11. Tabla de Estados Futuros / Salidas para el Diagramas de Estado
superior de la gura 6.27. . . . . . . . . . . . . . . . . . . . . . .
6.12. Tabla de Estados Futuros / Salidas para el Diagramas de Estado
inferior de la gura 6.27. . . . . . . . . . . . . . . . . . . . . . . .
6.13. Se uen ia de estados y salidas, de dos sistemas, para una misma
ombina in de entradas. . . . . . . . . . . . . . . . . . . . . . . .
6.14. Forma in de grupos para estable er lases de equivalen ias. . . .
6.15. Forma in de nuevos grupos para estable er lases de equivalen ias.

94
94
95
95
96
97
103
103
105
109
114
118
119
122
123
133
133
134
134
135
141
141
141
143
143

NDICE DE CUADROS

xxi

6.16. Tablas de Estados Futuros / Salidas equivalente a la de la Tabla


6.11. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.17. Tablas on apli a in del mtodo de Elimina in de Filas. . . . .
6.18. Diferentes posibilidades de odi ar un grupo de 4 estados usando
2 bits. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.19. Tabla de Estados Futuros y Salida para la mquina Moore on
en lavamiento y sin solapamiento. . . . . . . . . . . . . . . . . . .
6.20. Tabla de Transi in y E ua in de Estado Futuro para el bit 2 de
la mquina Moore on en lavamiento y sin solapamiento. . . . . .
6.21. Tabla de Transi in y E ua in de Estado Futuro para el bit 1 de
la mquina Moore on en lavamiento y sin solapamiento. . . . . .
6.22. Tabla de Transi in y E ua in de Estado Futuro para el bit 0 de
la mquina Moore on en lavamiento y sin solapamiento. . . . . .
6.23. Tabla de Transi in y Requerimientos de Ex ita in para la
mquina Moore on en lavamiento y sin solapamiento. . . . . . .
6.24. Tabla de requerimientos de ex ita in para T2 . . . . . . . . . . . .
6.25. Tabla de requerimientos de ex ita in para T1 . . . . . . . . . . . .
6.26. Tabla de requerimientos de ex ita in para T0 . . . . . . . . . . . .
6.27. Tabla de Transi in y Requerimientos de Ex ita in para la
mquina Moore on en lavamiento y sin solapamiento. . . . . . .
6.28. Tabla de requerimientos de ex ita in para el biestable 2 (SR). .
6.29. Tabla de requerimientos de ex ita in para el biestable 1 (SR). .
6.30. Tabla de requerimientos de ex ita in para el biestable 0 (SR). .
6.31. Tabla de Transi in y Requerimientos de Ex ita in para la
mquina Moore on en lavamiento y sin solapamiento. . . . . . .
6.32. Tabla de requerimientos de ex ita in para el biestable 2 (JK ). .
6.33. Tabla de requerimientos de ex ita in para el biestable 1 (JK ). .
6.34. Tabla de requerimientos de ex ita in para el biestable 0 (JK ). .
6.35. Tabla de Transi iones . . . . . . . . . . . . . . . . . . . . . . . . .
6.36. Tabla de Estados . . . . . . . . . . . . . . . . . . . . . . . . . . .

144
145
146
153
154
154
156
157
158
158
158
160
161
161
162
163
164
164
165
170
171

7.1. Opera in del Registro General . . . . . . . . . . . . . . . . . . .


7.2. Tabla de estados para un ontador sin rni o as endente de uatro
bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.3. Pila . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.4. Pila . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

180
189
190

8.1.
8.2.
8.3.
8.4.
8.5.

196
202
216
219
227

Tabla para un sumador de nmeros de 2 bits


De odi ador 2 a 4 . . . . . . . . . . . . . .
ROMs Comer iales . . . . . . . . . . . . . .
Ar hivo de Datos . . . . . . . . . . . . . . .
PAL. Dispositivos omnes . . . . . . . . . .

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

177

xxii

NDICE DE CUADROS

9.1. Programa in de PAL. . . . . . . . . . . . . . . . . . . . . . . . . 240


10.1. Nota in de Transferen ia entre Registros . . . .
10.2. Tabla de estados para el sumador serial de 1 bit .
10.3. Tabla de estados para el sumador serial de 1 bit
reposi in . . . . . . . . . . . . . . . . . . . . . .

. . . . . . .
. . . . . . .
on entrada
. . . . . . .

. . 244
. . 246
de
. . 247

11.2. Retardos de Transi in . . . . . . . . . . . . . . . . . . . . . . . . 280

Captulo 1
Sistemas Numri os.
1.1. Sistemas Numri os Posi ionales.
En estos sistemas, un nmero es representado por una adena de dgitos, en
donde ada posi in para un dgito tiene asignado un peso. El valor del nmero
es la suma ponderada de ada uno de los dgitos.

1234 = 1  1000 + 2  100 + 3  10 + 4  1 = 1  103 + 2  102 + 3  101 + 4  100


Cada peso es una poten ia de 10 orrespondiente a la posi in del dgito. En
este aso, nos estamos reriendo al Sistema De imal, uyo nmero base es 10. El
punto de imal, relativo al sistema en base 10, permite utilizar poten ias de 10
positivas y negativas.

1234;567 = 1  103 + 2  102 + 3  101 + 4  100 + 5  10 1 + 6  10 2 + 7  10

En general, un Sistema Numri o Posi ional puede tener omo base ualquier
entero r, y un dgito en posi in i tendr un peso r . De esta forma, podemos
expresar ualquier nmero de n dgitos enteros y p dgitos fra ionarios omo
i

a 1 a 2    a1 a0 :a 1 a 2    a
n

y su valor orresponder a

= P =1
n

b

donde ada dgitoa ( oe iente de la expresin) orresponde a un entero en el


onjunto{0, 1, ..., r-1}.
i

En el trabajo de Carl Boyer titulado "Una Historia de las Matemti as" (New
York; Wiley, 1968, pg. 3), nos relata que en un estudio de la tribus indgenas
de Amri a sobre el uso de Sistemas Numri o, se en ontraba una distribu in
1

2
aproximada de : 33 % Sistema De imal, 33 % Sistema quinario (base 5), 23 %
Sistema Binario (base 2), 10 % Sistema Vigsimal (base 20) y 1 % Sistema Ternario
(base 3). Por otra parte, tambin indi a, que el Sistema De imal, el sistema de
mayor uso hoy, se basa en el Sistema Hind y fue introdu ido posteriormente
en Arabia por el matemti o y astrnomo rabe Mohammed ibn - Musa al Khowarizmi, responsable del error ampliamente difundido que nuestro sistema
numri o es de origen rabe (Nmeros Arbi os). El trmino algoritmo proviene
del nombre de este matemti o.

1.2. Nmeros Binarios (Base 2).


Los nmeros de imales (base 10) son importantes debido a que son los de uso
diario en todas nuestras a tividades. No obstante, en un ir uito ele trni o es muy
sen illo distinguir el valor de una seal entre solo dos ondi iones : en endido /
apagado, argado / des argado, nivel alto / nivel bajo, et . De esta forma, la base
binaria es normalmente la que se utiliza en Sistemas Digitales Ele trni os para
la representa in de nmeros, ara teres, omandos y otro tipo de informa in.
La forma general de un nmero binario se representa omo

b 1 b 2    b1 b0 :b 1 b 2    b
n

y su valor es

= P =1
n

2

en donde ada dgito orresponde a un elemento del onjunto {0, 1} y se le ono e


on la sigla inglesa de bit (binary digit).
Normalmente, la adena de dgitos que representa a un nmero en una base
diferente a 10 se a ompaa on un sujo que indi a la base, a menos que esta se
desprenda laramente del ontexto. Por ejemplo,

1010;012 = 1  23 +0  22 +1  21 +0  20 +0  2 1 +1  2 2 = 8+2+0;25 = 10;2510

1.3. Nmeros O tales (Base 8).


El sistema Numri o O tal, aunque hoy de uso po o fre uente en el rea de los
Sistemas Digitales y Computa in, representa un guarismo de manera mu ho ms
moda que el Sistema Binario, al trabajar on 8 dgitos (0..7), en lugar de dos.
Debido a que 8 es una poten ia exa ta de 2 ( 3
), una adena de tres bits, que
posee omo mximo o ho ombina iones, resulta tener una representa in ni a
en el Sistema O tal omo se desprende del uadro 1.1.

2 =8

1.4. NMEROS HEXADECIMALES (BASE 16).

Cuadro 1.1: Digitos O tales


Binario O tal
000
0
001
1
010
2
011
3
100
4
101
5
110
6
111
7
De esta forma resulta muy sen illo realizar la onversin de un nmero de
binario a o tal. Basta on tomar los bits en grupos de a tres, omenzando desde
la posi in menos signi ativa o desde el punto binario, y asignarle dire tamente a
ada grupo su orrespondiente valor o tal, omo se observa en el ejemplo siguiente

10101100111002 = 010 101 100 111 0002 = 254708

1.4. Nmeros Hexade imales (Base 16).


El Sistema Numri o Hexade imal representa un guarismo de manera mu ho
ms moda que el Sistema Binario y que el O tal, al trabajar on 16 dgitos
(0..9, A..F ), en lugar de los dos u o ho anteriores. Igualmente, debido a que 16
es una poten ia exa ta de 2 ( 4
), una adena de uatro bits que posee
omo mximo die isis ombina iones, resulta tener una representa in ni a en
el Sistema Hexade imal omo se desprende del uadro 1.2.

2 = 16

Cuadro 1.2: Digitos Hexade imales


Binario Hexade imal
0000
0
0001
1
0010
2
0011
3
0100
4
0101
5
0110
6
0111
7

Binario Hexade imal


1000
8
1001
9
1010
A
1011
B
1100
C
1101
D
1110
E
1111
F

4
De esta forma resulta muy sen illo realizar la onversin de un nmero
de binario a Hexade imal. Basta on tomar los bits en grupos de a uatro,
omenzando desde la posi in menos signi ativa o desde el punto binario, y
asignarle dire tamente a ada grupo su valor Hexade imal ade uado, omo se
observa en el ejemplo siguiente

10101100111002 = 0010 1011 0011 10002 = 2B 3816

1.5. Conversin entre Sistemas Numri os.


La onversin de un nmero entre dos ra es, en general no se puede
ha er simplemente on substitu in, omo en el aso Binario - O tal
Binario - Hexade imal. Normalmente se requieren algunas opera iones aritmti as
adi ionales.

1.5.1. Conversin de enteros.


En las se iones anteriores hemos usado una expresin aritmti a para
representar el valor de imal de un nmero en ualquier base r
P 1

= a

r

=0 a

r

Primero tomaremos slo la parte entera (desde k


P 1
n

= 0)

expresin que la podemos expandir omo sigue

= a
= (a

n
n

1 r 1 + a 2 r 2 + ::: + a1 r + a0
1 r 2 + a 2 r 3 + ::: + a1 )r + a0
n

Debido a que el primer miembro es divisible por r, el uo iente de dividir V


entre r ser

Q = a 1 r 2 + a 2 r 3 + ::: + a1
n

y tendremos un resto de a0 . Hemos obtenido a0 y la formula resultado an ontiene


la misma estru tura que la original. Enton es, su esivas divisiones por r nos darn
a1 ; :::; a 1 . Ejempliquemos el pro edimiento realizando la onversin de
10
a bases 2, 8 y 16, omo se apre ia en el uadro 1.3.

1234

De esta forma,

123410 = 10011010102 = 23228 = 4D216

1.5. CONVERSIN ENTRE SISTEMAS NUMRICOS.

Cuadro 1.3: Ejemplo de Conversin de Bases.


De imal a Binario
Opera in
Residuo
1234  2 = 617
0
617  2 = 308
1
308  2 = 154
0
154  2 = 77
0
77  2 = 38
1
38  2 = 19
0
19  2 = 9
1
92=4
1
42=2
0
22=1
0
12=0
1

De imal a O tal
Opera in
Residuo
1234  8 = 154
2
154  8 = 19
2
19  8 = 2
3
28=0
2

De imal a Hexade imal


Opera in
Residuo
1234  16 = 77
2
77  16 = 4
D
4  16 = 0
4

1.5.2. Conversin de fra iones.


1.5.2.1. Conversin de fra iones de imales a binarias.
Algunas fra iones de imales pueden ser onvertidas exa tamente a su
equivalente en otra base, omo se muestra en el uadro 1.4.
El aso parti ular de la onversin entre base 10 y 2 nos permite rear una
tabla un po o ms detallada ( omo se apre ia en el uadro 1.5).

12

Una fra in de imal F que no sea exa tamente equivalente a = puede ser
onvertida a una representa in equivalente en base 2, asumiendo que F ser igual
a una suma de fra iones binarias omo las listadas en el uadro 1.5. Por ejemplo,
n

0;75 =
=
=
=
=
=
0;375 =
=
=

0;5 + 0;25
1=2 + 1=4
1=21 + 1=22
12 1+12 2
0;12 + 0;012
0;112
0;25 + 0;125 = 1=4 + 1=8 = 1=22 + 1=23 = 1  2 2 + 1  2
0;012 + 0;0012
0;0112

Sin embargo, no todas las fra iones de imales tienen una representa in
exa ta en base 2 y el grado de pre isin depender de la antidad de bits utilizados
en su representa in binaria. Por ejemplo,

1=16 = 0;0625
1=256 = 0;00390625
1=512 = 0;000244140625

Fra in Binaria

1=24 = 2 4 = 0;0001
1=28 = 2 8 = 0;00000001
1=29 = 2 9 = 0;000000001

Fra in O tal

4=82 = 4  8 2 = 0;04
2=83 = 2  8 3 = 0;002
1=83 = 8 3 = 0;001

Fra in Hexade imal

1=161 = 16 1 = 0;1
8=162 = 8  16 2 = 0;08
1=163 = 16 3 = 0;001

Cuadro 1.4: Conversin de algunas Fra iones.

Fra in De imal

1.5. CONVERSIN ENTRE SISTEMAS NUMRICOS.

Cuadro 1.5: Conversin de Fra iones (De imales a Binarias).


Fra in De imal Fra in Binaria

1=2 = 0;5
1=4 = 0;25
1=8 = 0;125
1=16 = 0;0625
1=32 = 0;0625
1=64 = 0;0625
1=128 = 0;0625
1=256 = 0;0625
1=512 = 0;0625
1=1024 = 0;0625
0;66 =
=
=
=
=
=

1=21 = 2 1 = 0;1
1=22 = 2 2 = 0;01
1=23 = 2 3 = 0;001
1=24 = 2 4 = 0;0001
1=25 = 2 5 = 0;00001
1=26 = 2 6 = 0;000001
1=27 = 2 7 = 0;0000001
1=28 = 2 8 = 0;00000001
1=29 = 2 9 = 0;000000001
1=210 = 2 10 = 0;00000001

0;5 + 0;125 + 0;03125 + :::


1=2 + 1=8 + 1=32 + :::
1=21 + 1=23 + 1=25 + :::
1  2 1 + 1  2 3 + 1  2 5 + :::
0;1 + 0;001 + 0;00001 + :::
0;10101:::2

Por otra parte, ya que un entero de imal puede ser onvertido a su equivalente
binario por un pro eso de divisiones su esivas entre 2, es razonable pensar que una
fra in de imal pueda ser onvertida a su equivalente binaria por un pro eso de
multipli a iones su esivas por 2. En efe to, uando este pro eso ltimo, al an e
una fra in de imal ero, en algn punto, la fra in de imal original posee una
representa in exa ta en base 2. Ilustraremos este pro eso onvirtiendo 0.375 a su
equivalente binario,

0;375  2 = 0;750
0;750  2 = 1;500
0;500  2 = 1;000

; en la proxima opera ion solo la parte f ra ionaria:


; pro eso f inalizado al al anzar una f ra ion ero:

0 37510 = 0;0112 .

As, ;

Si el pro eso de onversin de imal a binario no resulta en una fra in de imal


ero en algn punto, la fra in de imal original no tiene una representa in exa ta
en base 2, omo se apre ia en el ejemplo siguiente,

0;66  2
0;32  2
0;64  2
0;28  2
0;56  2
0;12  2
0;24  2
0;48  2

=
=
=
=
=
=
=
=

1;32
0;64
1;28
0;56
1;12
0;24
0;48

:::

0 66 = 0;1010100:::2 .

As, ; 10

Lo anteriormente des rito, lo podemos expresar de manera algebrai a omo


sigue. Sea F una fra in de imal y asumamos que posee una representa in
binaria, enton es

= b 12 1 + b 22 2 + b 3 2 3 + b 4 2 4 + ::::

Si multipli amos ambos lados de la e ua in por 2, obtenemos

2F = b 1 + b 22 1 + b 32 2 + b 4 2 3 + :::: = b 1 + F1
donde b 1 es el primer dgito de la parte fra ionaria y F1 es una nueva fra in
de imal.

F1

= b 2 2 1 + b 3 2 2 + b 4 2 3 + ::::
2 =

Debido a que F < , se desprende que F b 1 F1 < , de donde b 1 solo


puede tomar los valores 0 1 y la fra in F1 es menor que 1 (F1 < ).

El pro eso se repite, para aislar ada b , hasta que F se haga ero, o lo
su ientemente er ana a ero, dependiendo del grado de pre isin requerido.
i

1.5.2.2. Conversin de fra iones binarias a de imales .


Una fra in binaria puede ser onvertida a su equivalente de imal formando
la suma de los produ tos obtenidos al multipli ar ada oe iente por la respe tiva
poten ia negativa de dos. Para ilustrar onvertiremos la fra in binaria ; 2

0 011

0;0112 = 0  2 1 + 1  2 2 + 1  2 3 = 0 + 0;25 + 0;125 = 0;37510

1.6. ADICIN Y SUBSTRACCIN DE NMEROS ENTEROS POSITIVOS. 9

1.6. Adi in y Substra in de Nmeros Enteros


Positivos.
La habilidad para desarrollar las opera iones de adi in y substra in (as
omo tambin, las de multipli a in y divisin), que hemos adquirido desde la
es uela bsi a, nos han llevado, generalmente, a olvidar el signi ado de las reglas
involu radas en estos pro esos, as omo los me anismos de apli a in (re ordemos
las tablas de opera iones). Haremos men in a estas ltimas en el sistema de imal,
para luego, por analoga, estable er las reglas para operar en bases diferentes a
10.

1.6.1. Adi in y Substra in de Nmeros De imales.


Dos enteros de imales A y B , de n+1 y m+1 dgitos respe tivamente, pueden
ser sumados es ribiendo

A+B

= [a 10 + a 110 1 + ::: + a1 101 + a0 100 +


[b 10 + b 1 10 1 + ::: + b1 101 + b0 100
n

sa ando fa tores omunes, y suponiendo que n >m , arribamos nalmente a:


A

+B

n 10n + n 1 10n 1 +
m 1+
( m 1 + m 1 )10

:::

m + m )10m +

+ (a

:::

1
0
+ (a1 + b1 )10 + (a0 + b0 )10

Es importante notar que si la suma a b , para ualquier poten ia, es mayor


o igual a 10, enton es el ex eso es sumado de manera unitaria en la poten ia ms
alta siguiente.
i

Por ejemplo, sea A = 357 y B = 61, enton es la suma es obtenida omo sigue

A+B

=
=
=
=
=
=
=
=
=
=
=

357 + 61
[3  102 + 5  101 + 7  100 + [6  101 + 1  100
3  102 + (5 + 6)101 + (7 + 1)100
3  102 + (11)101 + (8)100
3  102 + (10 + 1)101 + 8  100
3  102 + (10  101 + 1  101) + 8  100
3  102 + 1  102 + 1  101 + 8  100
(3 + 1)102 + 1  101 + 8  100
4  102 + 1  101 + 8  100
400 + 10 + 8
418

10
Cuadro 1.6: Tabla de Sumas De imales.
+
0
1
2
3
4
5
6
7
8
9
*Se han resaltado
superior.

0
0
1
2
3
4
5
6
7
8
9
los

1
2
3
4
5
6
7
8
9
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9 10
3
4
5
6
7
8
9 10 11
4
5
6
7
8
9 10 11 12
5
6
7
8
9 10 11 12 13
6
7
8
9 10 11 12 13 14
7
8
9 10 11 12 13 14 15
8
9 10 11 12 13 14 15 16
9 10 11 12 13 14 15 16 17
10 11 12 13 14 15 16 17 18
asos donde se produ e a arreo a la posi in inmediata

A lo largo del pro eso anterior hemos he ho uso de la tabla de suma para
nmeros de imales, omo la que se muestra en el uadro 1.6.
Por otra parte, la opera in aritmti a de substra in de dos nmeros enteros
positivos en base 10 tambin es f il de realizar es ribiendo

= [a 10 + a 1 10 1 + ::: + a1 101 + a0 100


[b 10 + b 1 10 1 + ::: + b1 101 + b0 100
n

sa ando fa tores omunes, y suponiendo que n >m , arribamos nalmente a

10 + a 1 10 1 + ::: + (a
+(a1 b1 )101 + (a0 b0 )100

)10 + (a
m

1 )10 1 + :::
m

Es importante notar que si en la resta a


b , para ualquier poten ia, b es
mayor que a , enton es es ne esario "pedir prestado" a la poten ia inmediata
superior una unidad de esta, por onsiguiente disminuyndola en uno. En este
aso la resta se transforma en
a b .
i

10 +

Por ejemplo, usando los mismos valores numri os que para el aso de la suma,
desarrollemos

1.6. ADICIN Y SUBSTRACCIN DE NMEROS ENTEROS POSITIVOS.11

=
=
=
=
=
=
=

357 61
[3  102 + 5  101 + 7  100 [6  101 + 1  100
3  102 + (5 6)101 + (7 1)100
(3 1)102 + (10 + 5 6)101 + (6)100
2  102 + 9  101 + 6  100
200 + 90 + 6
296

A lo largo del pro eso anterior hemos he ho uso de la tabla de resta para
nmeros de imales, omo la que se muestra en el uadro 1.7. Donde se han
resaltado los asos donde se produ e "un presto" a la posi in inmediata inferior.
Cuadro 1.7: Tabla de Restas De imales.

+
0
1
2
3
4
5
6
7
8
9

0 1
2
3
4
5
6
7
8
9
0 10-1 10-2
10-3
10-4
10-5
10-6
10-7
10-8
10-9
1 0 10+1-2 10+1-3 10+1-4 10+1-5 10+1-6 10+1-7 10+1-8 10+1-9
2 1
0
10+2-3 10+2-4 10+2-5 10+2-6 10+2-7 10+2-8 10+2-9
3 2
1
0
10+3-4 10+3-5 10+3-6 10+3-7 10+3-8 10+3-9
4 3
2
1
0
10+4-5 10+4-6 10+4-7 10+4-8 10+4-9
5 4
3
2
1
0
10+5-6 10+5-7 10+5-8 10+5-9
6 5
4
3
2
1
0
10+6-7 10+6-8 10+6-9
7 6
5
4
3
2
1
0
10+7-8 10+7-9
8 7
6
5
4
3
2
1
0
10+8-9
9 8
7
6
5
4
3
2
1
0

1.6.2. Adi in y Substra in de Nmeros Binarios.


Estas opera iones aritmti as usan las mismas t ni as que hemos ono ido
desde la Es uela Bsi a, on la ni a diferen ia que ambian las tablas
orrespondientes de opera in.
En el uadro 1.8 se ha representado la tabla para la suma, tomando en uenta
todas las posibles ombina iones de dos nmeros binarios x e y, de un bit ada
uno, generando el resultado s y su a arreo .
Utili emos la tabla de suma para realizar un problema de ejemplo. En ontrar
el resultado de la suma binaria entre 1110 y 1011
A arreo 1 1 1
x
1 1 1 0
y
1 0 1 1
Resultado 1 1 0 0 1

12
Cuadro 1.8: Tabla de Sumas Binarias.
x
0
0
1
1

x+y
y
0 0
1 0
0 0
1 1

0
1
1
0

De igual manera podemos onstruir una tabla para la resta o substra in


(1.9), tomando en uenta todas las posibles ombina iones de dos nmeros binarios
x e y, de un bit ada uno, generando el resultado r y su prstamo b.
Cuadro 1.9: Tabla de Restas Binarias.
x
0
0
1
1

x-y
y r
0 0
1 1
0 1
1 0

0
1
0
0

Repitamos el ejemplo anterior pero on la opera in de resta,


Prstamo
Cambio
x 1
y 1
Resultado 0

0
1
0
0

10 10
0
1 0
1 1
1 1

1.7. Representa in de nmeros negativos.


Hasta el momento slo hemos tratado on nmeros positivos, pero en el
a onte er diario, en las diferentes fa etas en que parti ipan los sistemas digitales,
nos en ontramos on la ne esidad de operar on ifras negativas. En trminos
generales nos referiremos a dos formas de tratar on nmeros negativos : (1)
Representa in en Signo - Magnitud (empleada omnmente en las opera iones
manuales), y (2) Representa in en omplementos.

13

1.7. REPRESENTACIN DE NMEROS NEGATIVOS.

1.7.1. Representa in en Signo - Magnitud.


En la representa in Signo - Magnitud, un nmero onsiste de una adena
de dgitos que expresa su magnitud y un smbolo adi ional (generalmente
ante ediendo a la adena magnitud) que indi a si este es positivo o negativo.

1.7.2. Representa in en Signo - Magnitud de nmeros


de imales.
En el sistema de imal los smbolos adi ionales que se anteponen a la magnitud
son + (para ifras positivas) y - (para ifras negativas ). De esta manera, podemos
interpretar laramente +95, -134, 104, et ., donde se a epta que la ausen ia de
signo indi a que se trata de magnitudes positivas. Obviamente, existen dos posibles
representa iones para el ero, +0 y -0, pero ambos tienen el mismo valor.

1.7.3. Representa in en Signo - Magnitud de nmeros


binarios.
El modo Signo - Magnitud se emplea en nmeros binarios usando un bit extra
para representar el signo, tradi ionalmente el ms signi ativo de la adena de
bits. Un ero representa ifras positivas, y un uno las negativas. As, podemos
expresar

010101012 = 8510
011111112 = 12710
000000002 = 010

110101012 = 8510
111111112 = 12710
100000002 =
010

La representa in en Signo - Magnitud permite expresar ifras entre


1 , on dos smbolos para el ero.
hasta

+2

Supongamos que deseamos onstruir un sistema digital para la opera in suma


en Signo - Magnitud. El ir uito debe examinar el signo de los sumandos para
determinar que ha er on las magnitudes. Si ambos son iguales, enton es las
magnitudes se suman y se onserva el signo para el resultado. Pero, si los signos
son diferentes, enton es debe restar la antidad menor de la mayor y onservar el
signo de esta ltima. Todo esto supone, aunque an no lo hemos examinado, una
ir uitera relativamente ompleja. No obstante, una vez onstruido el sumador,
la realiza in del restador es bastante simple, ne esitndose solamente ambiar el
signo del sustraendo y usar el sumador original.

1.7.4. Representa in en Complementos.


Los omplementos se utilizan en sistemas digitales para simpli ar la opera in
de substra in y para algunas otras opera iones de manipula in lgi a, omo

14
veremos a ontinua in. Para ada sistema se utilizan dos tipos de omplementos:
(a) El omplemento de r ; y (b) el omplemento de r-1. En el aso del sistema
binario nos referiremos a los omplementos de 2 y 1, y para el sistema de imal a
los omplementos de 10 y 9 respe tivamente.
Obtener el omplemento de un nmero, para un ser humano, es normalmente
ms ompli ado que examinar signos y omparar magnitudes; pero las opera iones
de suma y resta se realizan, en la representa in de omplementos, de una manera
asi dire ta.

1.7.4.1. EL omplemento de r.
El omplemento de r, tambin ono ido omo omplemento a la base, para un
nmero positivo N de m dgitos en su parte entera, se dene omo
(

= r0

; rN
; rN

6= 0

=0

Es interesante notar que el omplemento del omplemento devuelve el nmero


original

(N ) = (r

N)

=r

(r

N) = r

+N =N

1.7.4.2. EL omplemento de 10 para nmeros de imales.


Como se dena en el prrafo anterior, podemos expresar los siguientes
ejemplos para el sistema de imal (1.12)
Cuadro 1.10: Ejemplo de Complementos a 10.
Nmero Complemento
3
7
28
72
12345
87655
0.2156
0.7844
37.841
62.159

Opera in

101 3 = 7
102 28 = 72
105 12345 = 87655
100 0;2156 = 0;7844
102 37;841 = 62;159

Volvamos al problema de substraer dos nmeros de imales A y B. La diferen ia


D obtenida de restar B desde A es notada omo D = A - B, la ual puede ser
expresada omo una suma D = A + (-B). Si en lugar de trabajar on el signo y
la magnitud de B empleamos su omplemento a la base, podemos estable er las
rela iones siguientes

15

1.7. REPRESENTACIN DE NMEROS NEGATIVOS.

D

= A+B
= A + (10
= 10 + A
= 10 + D

B)
B

Esta expresin presenta las siguientes parti ularidades :


Si A  B , es de ir D es positivo o ero, enton es D  ser mayor o igual que
(exa tamente
D) on lo ual tendr m+1 dgitos. La diferen ia
bus ada D D 
se obtendr al eliminar el trmino
, que no es
otra osa que el dgito de a arreo generado.

10

10 +
10
m

10

10

Si A < B , es de ir D es negativo, enton es D ser menor que


(exa tamente
D) on lo ual tendr m dgitos. La diferen ia bus ada
D D
(que por deni in es el omplemento D
D ) se
obtendr al omplementar nuevamente el resultado.

10
10

= 10

Podemos resumir lo anterior on las siguiente senten ia: si la suma de un nmero


on el omplemento a la base de otro (para bus ar la diferen ia) genera un a arreo,
enton es este se des arta y el resultado es positivo. Por el ontrario, si no existe
a arreo, enton es el resultado es negativo y est en omplemento a la base.
Ilustremos on algunos ejemplos:
a)

b)

d)

357
-161
196

161 = 839

357
+839
1196

161
-357
-196

357 = 643

161
+643
804

)D<0

4.28
-1.37
2.91

1;37 = 8;63

4.28
+8.63
12.91

4;28 = 5;72

1.37
+5.72
7.09

)D<0

1.37
-4.28
-2.91

196

D=

804 = 196

2.91

D=

7;09 = 2;91

16

1.7.4.3. EL omplemento de 2 para nmeros binarios .


La expresin denida en 1.7.4.1 apli a para ualquier base numri a. De esta
forma, en el sistema binario podemos expresar la nota in de omplemento a 2 de
igual manera a la utilizada para la base de imal.
Cuadro 1.11: Ejemplo de Complementos a 2.
Nmero Complemento
11
01
101
011
10101
01011
0.101
0.011
10.001
01.111

22
23

Opera in

3 = 110 = 012
5 = 310 = 0112
25 21 = 1110 = 010112
20 0;625 = 0;37510 = 0;0112
22 2;125 = 1;875 = 01;1112

De idnti a forma, el uso del omplemento a la base nos permite en ontrar la


diferen ia entre dos nmeros binarios, apli ando los mismos riterios ya expuestos.
a)

b)

d)

101
-010
011

1110.101
-1001.111
0100.110
010
-101
-011

101
+110
1011

010 = 110

1001;111 = 0110;001

010
+011
101

101 = 011

1001.111
-1110.101
-0100.110

1110.101
+0110.001
10100.110

)D<0

1110;101 = 0001;011

011

D=

0100.110

101 = 011

1001.111
+0001.011
1011.010

)D<0
D = 1011;010
D = 0100;110

1.7.4.4. EL omplemento de r - 1.

El omplemento de r
para un nmero positivo N de m dgitos en su parte
entera y p dgitos en su parte fra ionaria, se dene omo

17

1.7. REPRESENTACIN DE NMEROS NEGATIVOS.

N 1=

; rN
; rN

6= 0

=0

reordenando la expresin para valores de N distintos de 0

N 1

=
=

r
N

N
r

Esta expresin es muy importante, ya que nos indi a que el omplemento a


la base se obtiene mediante el omplemento a la base redu ida (r
) menos
el oe iente (r ) , que representa a la parte fra ionaria. Obviamente, si p
enton es

N 1

=
=
=

r
r
N

r0

N
N

m
m

=0

Nuevamente, el omplemento del omplemento devuelve el nmero original

(N 1 ) 1 = (r

N) 1

=r

(r

N) = r

+r

+N = N

1.7.4.5. EL omplemento de 9 (base redu ida) para nmeros


de imales.
Como se dena en el prrafo anterior, podemos desarrollar los ejemplos
siguientes, en omplemento a nueve, para el sistema de imal ( uadro 1.12)
Cuadro 1.12: Ejemplo de Complementos a 9.
Nmero Complemento
3
6
28
71
12345
87654
0.2156
0.7843
37.841
62.158

101
102

Opera in

100 3 = 6
100 28 = 71
5
0
10 10 12345 = 87654
100 104 0;2156 = 0;7843
102 103 37;841 = 62;158

Un anlisis ms detallado de los ejemplos nos permitir on luir que el


omplemento a 9 puede obtenerse al omplementar a 9 individualmente ada uno
de los dgitos de nmero, eliminando de esta forma el l ulo de la expresin. An
ms, el omplemento a 10 se puede obtener a partir del omplemento a nueve
agregndole la expresin r . Por ejemplo, para en ontrar el omplemento a 10
de 12345.2156, pro edemos de la siguiente forma
p

18
12345.2156
87654.7843 Complemento a nueve de ada dgito (independientemente)
4
0.0001 Agregando r
;
87654.7844 Complemento a 10
p

= 10 = 0 0001

Volvamos al problema de substraer dos nmeros de imales A y B. La diferen ia


D obtenida de restar B desde A sabemos que es notada omo D
A B
A
B . Empleemos ahora el omplemento a la base redu ida para (-B ). As

+( )

= A+B 1
= A + (10 10
= 10 10 + A
= 10 10 + D

D

B)
B

Esta expresin presenta las siguientes parti ularidades :


Si D 
que

10

, es de ir D es positivo o ero, enton es D  ser mayor o igual


on lo ual tendr m+1 dgitos enteros. La diferen ia bus ada

D D
se obtendr eliminando de D  el a arreo generado
(trmino
) y sumando el trmino
.

10

10

10 + 10
m

10

10 , on lo
=
10 + 10 (que
= 10 10 + D)

Si A < B , es de ir D es negativo, enton es D  ser menor que


ual tendr m dgitos. La diferen ia bus ada D D 
por deni in es el omplemento a la base redu ida D
se obtendr al omplementar nuevamente el resultado.

Podemos resumir lo anterior on las siguiente senten ia : si la suma de un


nmero on el omplemento a la base redu ida de otro (para bus ar la diferen ia)
genera un a arreo, enton es este se des arta, se le suma
y el resultado es
positivo. Por el ontrario, si no existe a arreo, enton es el resultado es negativo y
est en omplemento a la base redu ida.

10

Ilustremos on algunos ejemplos:


a)

b)

357
-161
196
161
-357
-196

161 1 = 838
= 0 ) 10 = 1

357 1 = 642

357
+838
1195
161
+642
803

D <

195+1=196

= 803 1 = 196

19

1.7. REPRESENTACIN DE NMEROS NEGATIVOS.

d)

4.28
-1.37
2.91

1 37 1 = 8 62
= 2 ) 10 = 0 01
;

1.37
-4.28
-2.91

4.28
+8.62
12.90

1.37
+5.71
7.08

4 28 1 = 5 71
;

D <

2.90+0.01=2.91

= 7 08 1 = 2 91
;

1.7.4.6. EL omplemento de 1 (base redu ida) para nmeros binarios


.
La expresin denida en 1.7.4.4 apli a para ualquier base numri a. De esta
forma, en el sistema binario podemos expresar la nota in de omplemento a 1
(1.13) de igual manera a la utilizada para la base de imal ( uando omplementa
a 9).
En lugar de apli ar la frmula, omo analizamos anteriormente, bus amos el
omplemento a uno de ada dgito binario. Podemos, enton es ambiar unos por
eros y eros por uno, obteniendo de manera dire ta el omplemento a uno de
ualquier nmero binario ( uidado on los nmeros sin parte entera!).
Cuadro 1.13: Ejemplo de Complementos a 1.
Nmero Complemento
11
00
101
010
10101
01010
0.101
0.010
10.001
01.110

Opera in

22
23

20 3 = 010 = 02
20 5 = 210 = 0102
5
0
2 2 21 = 1010 = 010102
0
2 2 3 0;625 = 0;2510 = 0;0102
22 2 2 2;125 = 1;75 = 01;1102

De idnti a forma, el uso del omplemento a la base nos permite en ontrar la


diferen ia entre dos nmeros binarios, apli ando los mismos riterios ya expuestos.
a)

b)

101
-010
011

101
+101
1010

010 1 = 101
=0)2 =1

1110.101
-1001.111
0100.110

1001 111 1 = 0110 000


= 3 ) 2 = 0 001
;

010+1=011
1110.101
+0110.000
10100.101

0100.101+0.01
=0100.110

20

d)

010
-101
-011

010
+010
100

101 1 = 010

1001.111
-1110.101
-0100.110

D <

1110 101 1 = 0001 011


;

= 100 1 = 011

1001.111
+0001.011
1011.010

)
D
D

0
= 1011 010 1
= 0100 110
D <

Es interesante notar que en nota in de omplementos a 1 para nmeros


binarios existen dos representa iones para el ero, situa in que no o urre en
omplemento a 2. Sin embargo, en este ltimo aso, el rango para los enteros
positivos diere del rango para los enteros negativos, omo se apre ia en el uadro
1.14.

Cuadro 1.14: Resumen de Complementos.


De imal
Sig.Mag. C10
7
7
6
6
5
5
4
4
3
3
2
2
1
1
+0
0
-0
0
-1
9
-2
8
-3
7
-4
6
-5
5
-6
4
-7
3
-8
2

C9
7
6
5
4
3
2
1
0
9
8
7
6
5
4
3
2
1

Binario
Sig.Mag. C2
0111
0111
0110
0110
0101
0101
0100
0100
0011
0011
0010
0010
0001
0001
0000
0000
1000
1001
1111
1010
1110
1011
1101
1100
1100
1101
1011
1110
1010
1111
1001
1000

C1

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

21

1.8. REPRESENTACIN DE NMEROS DE PUNTO FLOTANTE.

1.8. Representa in de nmeros de punto otante.


Nmeros extremadamente grandes o pequeos pueden ser representados de una
manera ompa ta llamada nota in de punto otante, histri amente ono ida
omo nota in ient a. La idea que se persigue es alma enar la informa in en
po os dgitos (po o espa io) y fa ilitar las opera iones que se reali en on ella. En
trminos generales, un nmero N , en punto otante, se expresa omo

= a(b )
e

donde b es la base del sistema, a (denominada mantisa) es ualquier nmero en


base b , y e es un exponente. Si el oe iente a es una fra in apropiada F, tal
que =b  jF j < , enton es se di e que F b es un nmero de punto otante
normalizado.

( )
e

Las reglas para operar dos nmeros de punto otante N1


, donde e1  e2 , son :
Suma:
Resta:
Multipli a in:
Divisin:

= a1b

e1

y N2

= a2b

N1 + N2 = a1 b 1 + a2 b 2 = (a1 + a2 b 2 1 )b 1
N1 N2 = a1 b 1 a2 b 2 = (a1 a2 b 2 1 )b 1
N1  N2 = a1 b 1  a2 b 2 = (a1  a2 )b 2 + 1
N1 =N2 = a1 b 1 =a2 b 2 = (a1 =a2 )b 2 1
e

Examinemos algunos ejemplos, tanto en el sistema de imal omo binario :


a) A

= 243;5 = 0;2435  103 B = 18;53 = 0;1853  102


A + B = 0;2435  103 + 0;1853  102
= (0;2435 + 0;1853  102 3 )  103
= (0;2435 + 0;01853  10 1)  103
= (0;2435 + 0;01853)  103
= 0;26203  103
A

=
=
=
=
=

AB

0;2435  103 0;1853  102


(0;2435 0;1853  102 3)  103
(0;2435 0;01853  10 1)  103
(0;2435 0;01853)  103
0;22497  103
=
=
=
=

0;2435  103  0;1853  102


(0;2435  0;1853)  103+2
(0;4512055)  105
0;4512055  105

e2

22

A=B

b) A

=
=
=
=

0;2435  103=0;1853  102


(0;2435=0;1853)  103 2
(1;314085267134)  101
0;1314085267134  102

= 101;112 = 0;10111(23) B = 10;0112 = 0;10011(e2)


A + B = 0;10111(23) + 0;10011(22)
= [0;10111 + 0;10011(22 3)(23)
= [0;10111 + 0;10011(2 1)(23)
= (0;10111 + 0;010011)(23)
= 1;000001(23)
= 0;1000001  24
A

=
=
=
=
=
=

0;10111(23) 0;10011(22)
[0;10111 0;10011(22 3)(23)
[0;10111 0;10011(2 1)(23 )
[0;10111 0;010011(23)
0;011011(23)
0;11011  22

AB

=
=
=
=

0;10111(23)  0;10011(22)
[0;10111  0;10011(23+2)
[0;0110110101(25)
0;110110101  24

A=B

=
=
=
=

0;10111(23)=0;10011(22)
[0;10111=0;10011(23 2)
[1;00110101111001:::(21)
0;100110101111001:::  22

Retornaremos sobre estos tpi os, de forma mas detallada, uando estemos
desarrollando unidades aritmti o lgi as y pro esadores de datos.

Captulo 2
Cdigos Binarios.
Toda la informa in que el hombre maneja mediante mquinas digitales,
espe ialmente en las omputadoras omo expresin de la t ni a digital ms
elaborada que se ha desarrollado, requiere ser onvertida en alguna forma binaria,
que es la que emplean los sistemas digitales on el propsito de alma enarla,
pro esarla y/o transmitirla. Este pro eso de onversin re ibe el nombre de
Codi a in. Varios digos son utilizados en la a tualidad, los uales se pueden
agrupar en uatro tipos bsi os : De imales, Gray, Alfanumri os y de Dete in
y Corre in de Errores .

2.1. Cdigos De imales.


Los digos de imales son utilizados para representar los dgitos de imales (del
0 al 9 ), y se atalogan en Posi ionales y No Posi ionales. A su vez los Cdigos
De imales Posi ionales se dividen en : Simtri os y No Simtri os. Por su parte,
los Cdigos De imales No Posi ionales se dividen en : Reejados y de Distan ia
Unitaria.
Codigos Decimales

Posicionales

Simetricos

No Posicionales

No Simetricos

Reflejados

Figura 2.1: Cdigos De imales

23

Distancia Unitaria

24

2.1.1. Cdigos De imales Posi ionales.


Los Cdigos De imales Posi ionales poseen la propiedad por la ual el dgito
de imal odi ado es la suma de los pesos de las posi iones para las uales est
presente un uno binario.

2.1.1.1. Cdigos De imales Posi ionales No Simtri os.


El Cdigo De imal Posi ional No Simtri o ms usado es el 8421 NBCD
(Natural Binary Coded De imal), mejor ono ido omo BCD (De imal Codi ado
en Binario). En este se utilizan uatro dgitos binarios para odi ar un dgito
de imal. El peso de ada uno binario que aparez a en el digo, depende de la
posi in que o upe, y orresponder a 8, 4, 2 1, omo lo indi a su nombre
original. De esta forma




10 . En el uadro
2.1 se muestra este digo, as omo otros de esta misma ategora. (Es importante
ha er notar que , en algunos de estos digos, existe ms de una representa in
para ada dgito de imal, lo ual bajo algunas ondi iones, que examinaremos ms
adelante, no resulta ade uado).

1001

BC D

= 1 8+0 4+0 2+1 1 = 9

Cuadro 2.1: Cdigos De imales Posi ionales No Simtri os


De imal
0
1
2
3
4
5
6
7
8
9

NBDC
8421
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001

7421
0000
0001
0010
0011
0100
0101
0110
0111 1000
1001
1010

5421
0000
0001
0010
0011
0100
0101 1000
0110 1001
0111 1010
1011
1100

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

2.1.1.2. Cdigos De imales Posi ionales Simtri os.


Estos digos poseen una lnea de simetra entre los in o primeros y in o
ltimos elementos del digo. Esto signi a que, un digo bajo la lnea de simetra
es el omplemento a uno del digo en la posi in orrespondiente sobre la lnea
de simetra.
Conse uentemente, los digos de imales posi ionales simtri os son
auto omplementarios. En otras palabras, el omplemento aritmti o (9 - X ) de

25

2.1. CDIGOS DECIMALES.

Cuadro 2.2: Cdigos De imales Posi ionales No Simtri os


De imal
0
1
2
3
4
5
6
7
8
9

631(-1)
0000 0011
0010
0101
0100 0111
0110
1001
1011 1000
1010
1101
1111 1100

2421
84(-2)(-1)
0000
0000
0001
0111
0010 1000
0110
0011 1001
0101
0100 1010
0100
1011 0101
1011
1100 0110
1010
1101 0111
1001
1110
1000
1111
1111

una palabra digo X es el mismo omplemento a uno de X, omo se muestra en


el ejemplo siguiente

=9

X
X
X
De imal 631(-1) 631(-1) De imal
2
0101
1010
7
8
1101
0010
1

2.1.2. Cdigos De imales No Posi ionales.


Los Cdigos De imales No Posi ionales re iben su denomina in del he ho de
que los unos binarios no representan el peso equivalente a su posi in. De esta
manera, el valor representado obede e a otras reglas, in luso a una designa in
arbitraria por parte del diseador.

2.1.2.1. Cdigos De imales No Posi ionales de Distan ia Unitaria.


En los Cdigos De imales No Posi ionales de Distan ia Unitaria, dos palabras
digos su esivas dieren solamente en un bit (adya entes); in luso los digos que
representan al ero y al nueve deben ser tambin adya entes.
Estos digos pueden ser onstruidos utilizando el pro edimiento siguiente:
1. Construya un mapa on las 16 posibles ombina iones binarias de uatro
bits.
2. Cada elda del mapa debe ser adya ente a todas sus ve inas (su digo vara
solo en un bit).

26
3. Las eldas de la primera olumna deben ser adya entes a las de la ltima
olumna.
4. Las eldas de la primera la deben ser adya entes a las de la ltima la.
5. A partir de ualquier punto de la matriz, siga un amino que ubra 10 eldas,
de tal manera de no usar ms de una vez ninguna elda, y de que la ltima
elda del amino sea adya ente a la elda de ini io.
0000

0001

0011

0010

0100

0101

0111

0110

1100

1101

1111

1110

"
"

#
#

1000
1001
1011
1010
0
1
2
3
4
5
6
7
8
9
0000 0001 0011 0111 1111 1011 1001 1000 1100 0100
0000

0100
1100

0001

0011

0010

0101

0111

0110

1101

1111

"

"

1110

1000
1001
1011
1010
0
1
2
3
4
5
6
7
8
9
1111 1110 0110 0010 0011 0001 0000 0100 0101 1101

2.1.2.2. Cdigos De imales No Posi ionales Reejados.


Un Cdigo De imal No Posi ional Reejado, onsiste en pares de palabras
digos, en la ual : (1) ada par de miembros o upan posi iones orrespondientes
por en ima y debajo de una lnea media y (2) dieren en un bit. Estos digos
(de n bits) pueden ser generados siguiendo el pro edimiento siguiente:
1. Es riba la misma se uen ia de n - 1 bits por en ima y debajo de una lnea
horizontal.
2. A ada grupo de tres bits agrguele en ualquier posi in (pero siempre en
la misma) un ero a los que estn sobre la lnea y un uno a los que estn
por debajo.

27

2.1. CDIGOS DECIMALES.

3. Asgnele a estos nuevos grupos de n bits los dgitos de imales del ero
al nueve, omenzando en el extremo superior izquierdo y avanzando en el
sentido de la mane illas del reloj.
Por ejemplo :
1.

000 001 100 101 110


000 001 100 101 110

2.

0000 0001 0100 0101 0110


1000 1001 1100 1101 1110

3.

0
0000
1000
9

1
0001
1001
8

2
0100
1100
7

3
0101
1101
6

4
0110
1110
5

2.1.3. Otros Cdigos De imales.


Hasta el momento hemos desarrollado algunos digos de imales on alguna
sistematiza in. Sin embargo, el nmero M de es oger diferentes maneras tomando
m trminos de un onjunto de n trminos, est dado por el oe iente binomial
!

n
m

= m!(nn! m)!

Determinemos uantos digos de imales diferentes pueden estable erse on 4


bits; en otras palabras tomaremos 10 trminos (los dgitos de imales) de entre las
16 posibilidades que brindan los 4 bits (desde 0000 hasta 1111):
!

16!
= 16
=
10
10!(16 10)! = 8008

2.1.3.1. Cdigo Ex eso 3.


Este digo posee una rela in matemti a on el digo BCD. Cada palabra
del digo es la orrespondiente BCD a la ual se le ha sumado
2.

0011

2.1.3.2. Cdigo 1 de 10.


Algunos digos de imales utilizan ms de uatro bits (imaginemos uanto
re era ahora el valor del oe iente binomial). La idea, obviamente no es
ompli ar las osas, sino bus ar me anismos de simpli a in para algunos tipos
de opera iones.

28
Cuadro 2.3: Cdigo De imal Ex eso 3
De imal NBCD
0
0000
1
0001
2
0010
3
0011
4
0100
5
0101
6
0110
7
0111
8
1000
9
1001

E3
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100

El digo 1 de 10 tiene un solo bit a tivo, de un mximo de 10 posibles, para


representar a ada dgito de imal. Esto fa ilita algunos tipos de opera iones lgi as
(no as matemti as), uando lo que se bus a saber es " ual" y no " uanto".
Cuadro 2.4: Cdigo De imal Uno de Diez
De imal NBCD
0
0000
1
0001
2
0010
3
0011
4
0100
5
0101
6
0110
7
0111
8
1000
9
1001

Uno de Diez
0000000001
0000000010
0000000100
0000001000
0000010000
0000100000
0001000000
0010000000
0100000000
1000000000

2.2. Cdigo Gray.


El Cdigo Gray es un digo reejado de distan ia unitaria; es de ir, ada
palabra digo adya ente diere solo en un bit y ada par de miembros dieren,
tambin, en un bit. El uadro 2.5 muestra un Cdigo Gray de 2 bits
Un digo gray de n bits puede ser generado a partir desde un digo Gray
de n-1 bits, usando el pro edimiento siguiente :

2.3. CDIGOS ALFANUMRICOS.

29

Cuadro 2.5: Cdigo Gray de dos bits


De imal Gray
0
00
1
01
2
11
3
10
1. Duplique el digo Gray de n-1 bits.
2. Tra e una lnea debajo de la ltima palabra digo, y reeje sobre aquella
todas las palabras digo.
3. Preje las palabras de la parte superior on eros, y las de la parte inferior
on unos.
Cuadro 2.6: Constru in de un Cdigo Gray de dos bits
1 bit Dupli ando Reejando Prejando Gray 2 bits
0
0
0
00
00
1
1
1
01
01
1
11
11
0
10
10
Cuadro 2.7: Constru in de un Cdigo Gray de 3 bits
Gray 2 bits Dupli ando Reejando Prejando Gray 3 bits
00
00
00
000
000
01
01
01
001
001
11
11
11
011
011
10
10
10
010
010
10
110
110
11
111
111
01
101
101
00
100
100

2.3. Cdigos Alfanumri os.


Los digos alfanumri os son utilizados para representar letras del alfabeto,
dgitos numri os, smbolos gr os y ara teres espe iales (normalmente

30
elementos de proto olos de sistemas de omuni a iones y ontrol digital de
dispositivos).
Los dos digos mas difundidos son el ASCII de 8 bits (originalmente
espe i ado para 7 bits) y el EBCDIC de 8 bits ( ada vez de menos utiliza in).

2.3.1. Cdigo ASCII.


El digo ms importante y de mayor difusin en la a tualidad es, sin
duda, el digo ASCII (Ameri an Standar Code for Information Inter hange ),
normalizado bajo la denomina in ASCII-ANSI X3.4-1977 R 1983. Existen, sin
embargo, otros digos entre los que podemos men ionar el ISO 646 (7-bit Code
Chara ter Set for Information Pro essing) y el CCITT Alphabet No.-5, que son
virtualmente idnti os al ASCII.
En la pr ti a ada omputadora emplea algunos de estos digos. Una
ex ep in notable la onstituye IBM quien desarroll su propio digo, el Extended
Binary Coded De imal Inter hange Code (EBCDIC ), el ual desgra iadamente es
in ompatible on los men ionados anteriormente. Paradji amente, IBM utiliza
ASCII en su lnea de PC's.
El digo ASCII fue diseado para trabajar on dispositivos que intera tuan
dire tamente on el hombre. De esta manera, el digo adems de poseer una
representa in de los ara teres alfanumri os debe poseer elementos de ontrol
que permitan ejer itar alguna suerte de gobierno sobre tales dispositivos.
De igual manera, ASCII tiene la inten in de servir omo un alfabeto ni o
interna ional; enton es se reserva ierto espa io para las parti ularidades de ada
idioma, tales omo signos de puntua in y mar adores dia rti os.
Finalmente, ASCII pretende ser un estndar del vo abulario de omputa in,
por lo tanto umple on los requerimientos para a omodar programas
desarrollados en diferentes lenguajes (FORTRAN, BASIC, C, PASCAL, et .).
Aunque la extensin del digo es ambigua en el do umento X3.4, podemos
de ir que el digo ASCII natural es de 7 bits permitiendo odi ar 128 ara teres.
Existe un o tavo bit "op ional" que en prin ipio fue usado para la veri a in de
paridad (tema sobre el que hablaremos ms adelante). Sin embargo, la existen ia
del o tavo bit permite odi ar 128 ara teres adi ionales, que se emplean para
personi ar los distintos idiomas y/o odi ar te las "espe iales" de los PC's. En
este sentido se habla de ASCII Extendido.

4
EOT
DC4
$
4
D
T
d
t

5
6
ENQ ACK
NAK SYN
%
&
5
6
E
F
U
V
e
f
u
v

7
BEL
ETB
'
7
G
W
g
w

8
BS
CAN
(
8
H
X
h
x

9
HT
EM
)
9
I
Y
i
y

A
B
LF
VT
SUB ESC
*
+
:
;
J
K
Z
[
j
k
z
{

C
D
E
FF CR SO
FS GS RS
,
.
<
=
>
L
M
N
\


l
m
n
|
}


F
SI
US
/
?
O
_
o
DEL

2.3. CDIGOS ALFANUMRICOS.

2
3
STX ETX
DC2 DC3

#
2
3
B
C
R
S
b

r
s

Cuadro 2.8: Cdigo ASCII

0
1
2
3
4
5
6
7

0
1
NUL SOH
DLE DC1
SP
!
0
1

A
P
Q
`
a
p
q

31

32

2.4. Cdigos de Dete in y Corre in de


Errores.
Un error en un sistema digital es la modi a in involuntaria de la informa in,
y es motivada generalmente por fallas de tipo fsi o, las uales a su vez produ en
deterioros permanentes y/o temporales en el sistema. Por ejemplo, des argas
atmosfri as pueden produ ir errores temporales en la opera in de un sistema;
en ambio, un nivel ex esivo de voltaje en la fuente de alimenta in pueden
produ ir una falla permanente en algn omponente del sistema, determinando
una anomala permanente.

2.4.1. Cubos N y Distan ia del Cdigo.


Antes de analizar el tema en profundidad, intentaremos mostrar una forma de
representa in geomtri a del arreglo de una adena de dgitos binarios, la ual
nos servir de base para algunos planteamientos posteriores.
En general un arreglo de n dgitos binarios pueden ser mostrados omo una
gura de un espa io n dimensional, que dan origen a 2 vrti es ( ada uno
orrespondiendo a una ombina in de la adena binaria) de un objeto geomtri o
llamado ubo-n. Los lados del objeto son dibujados de tal manera que los vrti es
que lo denen tienen una representa in binaria que solo diere en un bit, omo
se apre ia en la gura 2.2.
n

Cubo 1
0

Cubo 2
1

10

Cubo 3
11

110

111

010
00

01

011

100

101
000

001

Figura 2.2: Representa in Geomtri a de Cdigos Binarios.


Para valores pequeos de n es posible visualizar f ilmente la onstru in
de iertos digos y problemas de minimiza in (que sern onsiderados
posteriormente en este urso). Por ejemplo, un Cdigo de Gray se resuelve
en ontrando un amino a travs de los lados de un Cubo n, el ual pase solo
una vez por ada vrti e (asegurando slo una representa in), y que, adems, los
vrti es ini ial y nal sean adya entes.

2.4. CDIGOS DE DETECCIN Y CORRECCIN DE ERRORES.

33

Por otra parte, los ubos permiten una interpreta in del on epto de distan ia
mnima. La distan ia entre dos adenas de n dgitos binarios es el nmero de
posi iones binarias en las uales ellos dieren. En trminos del Cubo n, es la
longitud mnima en lados que separan a dos vrti es ualesquiera. Por ejemplo, las
adena binarias 010 y 100 tienen una distan ia 2, ya que dos posi iones dieren en
su valor; en otras palabras, se deben re orrer dos aristas, de un Cubo-3, para salir
del vrti e 010 y arribar al vrti e 100, independientemente del amino elegido.
La idea de distan ia mnima es la distan ia ms pequea que existe entre dos
elementos del digo. Por ejemplo, el Cdigo BCD tiene distan ia mnima 1, ya
que esta es la menor distan ia entre dos elementos ualquiera del digo, an
uando existen distan ias mayores, omo se desprende del uadro 2.9.
Cuadro 2.9: Distan ias del Cdigo NBCD
De imal 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001
0000
1
1
2
1
2
2
3
1
2
0001
1
2
1
2
1
3
2
2
1
0010
1
2
1
2
3
1
2
2
3
0011
2
1
1
3
2
2
1
3
2
0100
1
2
2
3
1
1
2
2
3
0101
2
1
3
2
1
2
1
3
2
0110
2
3
1
2
1
2
1
3
4
0111
3
2
2
1
2
1
1
4
3
1000
1
2
2
3
2
3
3
4
1
1001
2
1
3
2
3
2
4
3
1

Finalmente, un Cubo n da origen a un Sub ubo m, en donde este ltimo es


un sub onjunto de 2 vrti es en los uales n-m bits tienen el mismo valor para
ada vrti e. Por ejemplo, los vrti es 001, 011, 111 y 101 forman un Sub ubo 2
del Cubo 3 (Figura 2.3). Este sub ubo puede ser distinguido on la expresin xx1,
donde "x " indi a un bit parti ular del sub ubo uyo valor no importa para su
determina in; es de ir, ualquier vrti e uyo ltimo bit sea 1 es un vrti e del
sub ubo.
m

2.4.2. Cdigos de Dete in de Errores.


Re ordemos que una adena de n bits usada para representar un digo puede
al anzar ombina iones que no sean utilizadas (palabras no digos). Por ejemplo,
usamos una adena de uatro bits para generar BCD, pero este usa slo diez

34
Cubo 3 y Sub-Cubo 2
110

111

010

011

100

101
000

001

Figura 2.3: Sub ubo 2 de un Cubo 3


palabra digos (0000, 0001, ..., 1001), permitiendo la existen ia de seis palabras
no digo (1010, 1011, ..., 111). As, un sistema digital que opera utilizando
BCD, puede dete tar la o urren ia de un error siempre que re iba una palabra
no digo. Si el dato original era 0010 y el sistema dete t 1010, obviamente a
o urrido un error produ to simplemente de que 1010 no es una palabra digo.
Desafortunadamente, slo on esta informa in podemos dete tar la o urren ia
del error, pero no orregirlo. Tomemos omo ejemplo 0010 y pensemos que slo
un bit estar errado; enton es, tenemos las siguientes posibilidades:
Posible error en el bit:
4
3
2
1010
0110
0000
No Cdigo
Cdigo
Cdigo

1
0011
Cdigo

de donde no podemos asegurar que el digo transmitido haya sido: 0010 (2), 0110
(6), 0000 (0) 0011 (3).
Podemos inferir de este planteamiento que la propiedad de dete in de un
error impli a uando mnimo el uso de bits adi ionales a los mnimos requeridos
para la representa in de los datos, para forzar la existen ia de palabras no
digos. No obstante este riterio no es su iente. Veamos, el sistema digital ha
dete tado 0000 (una palabra digo en BCD), pero el dato original era ualquiera
de los siguientes (1000, 0100, 0010, 0001). Gran problema. El sistema piensa que
todo est orre to y ontinua su opera in on un dato equivo ado. La situa in es
peor uando se presentan dos o ms errores simultneos, aunque su probabilidad
de o urren ia es notablemente menor.

2.4.2.1. Paridad
El mtodo ms simple para la dete in de un error es agregar, al digo
original, un bit adi ional para forzar que la antidad de unos transmitidos en

2.4. CDIGOS DE DETECCIN Y CORRECCIN DE ERRORES.

35

ada palabra digo siempre sea una rela in ono ida (nmero par o impar de
unos), omo se apre ia en el uadro 2.10.

Cuadro 2.10: Paridad para el Cdigo NBCD


BCD
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001

P. Par
0000 0
0001 1
0010 1
0011 0
0100 1
0101 0
0110 0
0111 1
1000 1
1001 0

P. impar
0000 1
0001 0
0010 0
0011 1
0100 0
0101 1
0110 1
0111 0
1000 0
1001 1

Ahora es posible dete tar la o urren ia de ualquier error de un solo bit, sin
posibilidades de onfusin, ya que omo la distan ia mnima es 2, omo se apre ia
en el uadro 2.11, un error en un solo bit desplazar la palabra digo a una
no- digo. En trminos ms generales, podemos dete tar la o urren ia de ualquier
antidad impar de errores; no as de una antidad par de errores que indu e
al sistema a pensar que todo est orre to. Visto esto desde un punto de vista
geomtri o nos indi a que el digo es un sub onjunto de vrti es de un Cubo 5
(para el aso de la tabla), donde ada vrti e que representa a una palabra digo
no es adya ente a otro vrti e digo.
Tomemos omo ejemplo 0010, on paridad par (00101), y pensemos que slo
un bit estar errado; enton es, tenemos las siguientes posibilidades:
Posible error en el bit:
5
4
3
2
1
10101
01101
00001
00111
00100
No Cdigo No Cdigo No Cdigo No Cdigo No Cdigo
de donde no abe ninguna duda que se ha produ ido un error, ya que ualquier
palabra obtenida no orresponde a ninguna del digo (ver uadro 2.10, donde se
veri a que las palabras vlidas deben poseer un nmero par de unos).

36

0001 1
2
2
2
2
2
4
2
2
2

0010 1
2
2
2
2
4
2
2
2
4

0011 0
2
2
2
4
2
2
2
4
2

0100 1 0101 0 0110 0 0111 1 1000 1 1001 0


2
2
2
4
2
2
2
2
4
2
2
2
2
4
2
2
2
4
4
2
2
2
4
2
2
2
2
2
4
2
2
2
4
2
2
2
2
4
4
2
2
2
4
4
2
4
4
4
2
4
2
4
4
2

Cuadro 2.11: Distan ias del Cdigo NBCD on Paridad Par

De imal 0000 0
0000 0
0001 1
2
0010 1
2
0011 0
2
0100 1
2
0101 0
2
0110 0
2
0111 1
4
1000 1
2
1001 0
2

2.4. CDIGOS DE DETECCIN Y CORRECCIN DE ERRORES.

37

2.4.2.2. Cdigo de orre in de error simple y dete in de error


mltiple.
Como sabemos, la utiliza in de un digo on distan ia mnima 2 nos permite
dete tar un error simple en una adena de bits. Si agregamos algunos bits
adi ionales a ada palabra digo, de tal manera de aumentar la distan ia mnima
a 3, deberamos esperar la posibilidad de dete tar errores dobles, omo de he ho
mostraremos.
Tomemos, a manera de ejemplo, el aso del digo BCD, al ual le agregaremos
tres bits, pro urando que se genere otra palabra digo on una distan ia mnima
3, omo se muestra en el uadro 2.12. Existirn, al menos, dos palabra no digos
entre ada par de palabras digos.
Cuadro 2.12: Cdigo de Distan ia Mnima 3 para dgitos De imales
De imal BCD
0
0000
1
0001
2
0010
3
0011
4
0100
5
0101
6
0110
7
0111
8
1000
9
1001

D.P. par
0000000
0000111
0011001
0011110
0101010
0101101
0110011
0110100
1001011
1001100

Supongamos, geomtri amente hablando, que nos en ontramos en un vrti e


digo del nuevo Cubo re in formado, y que transmitimos este. Si admitimos que
se ha produ ido un error de 2 bits ualesquiera, nos habremos desplazado por dos
lados del ubo, quedando en un vrti e no digo, pero posiblemente adya ente a
uno digo. No podremos pre isar el dato originalmente transmitido porque desde
ualquier vrti e no digo existe mas de un vrti e digo on distan ia 2, pero si
lo habremos dete tado. Por ejemplo, transmitimos la palabra digo 0000000, pero
re ibimos 0000011 (palabra no digo), habremos dete to el doble error, pero su
orre in es imposible pues podramos pensar que el digo original era 0000111.
Por otro lado, si ambiamos la estrategia de anlisis y admitimos que slo se
ha produ ido un error, enton es seremos apa es de orregirlo on este digo
de distan ia mnima 3. Para el mismo aso del ejemplo anterior, en donde
transmitamos 0000000 las palabras no digo posibles de formar on un solo

38
bit errado son: 0000001, 0000010, 0000100, 0001000, 0010000, 0100000 y 1000000.
De esta manera, independientemente del bit equivo ado, un error en un slo bit
siempre produ ir una palabra no digo on distan ia 1 a la palabra digo
originalmente transmitida, y on una distan ia mayor que 1 on respe to a
ualquier otra palabra digo. Enton es dedu imos, que un digo on distan ia
mnima 3 nos permite realizar la orre in de un bit errneo.
En general, podemos resumir nuestra on lusin on la siguiente expresin

dm = 2  + d + 1
donde, dm es la distan ia mnima, representa en nmero mximo de bits
orregibles y d representa un nmero adi ional de bits dete tables on error (sin
posibilidad de orre in). Con esta expresin podemos onstruir una tabla, omo
se muestra en el uadro 2.13.
Cuadro 2.13: Distan ias Mnimas, errores orregibles y dete tables
dm 1 2
0 0
d 0 1

3
4
01 01
21 32

5
012
420

6
012
531

7
012
642

8
0123
7521

An nos queda un problema pendiente : Cmo onstruir, de una manera


onsistente y e iente, digos de distan ia mnima m?. Responderemos a esto
ms adelante uando nos reramos al Cdigo de Hamming, despus que hayamos
desarrollado algunas herramientas algebrai as mnimas que nos permitan operar
on omodidad y sen illez en este mundo de unos y eros.

Captulo 3
lgebra de Boole y Cir uitos
Digitales.
3.1. Lgi a Binaria.
En 1938 C. E. Shannon, de los Laboratorios Bell, en su trabajo "A
Symboli Analysis of Relay and Swit hing Cir uits", introdujo un estudio sobre
el lgebra de Boole de dos valores (binaria), mediante la ual poda expli ar el
fun ionamiento de los ir uitos de onmuta in el tri os biestables. Antes de
plantear los lineamientos bsi os de este trabajo, debemos resaltar su basamento
en lo que hoy ono emos omo lgebra de Boole, on eptos difundidos por George
Boole en 1854 en su publi a in "An investigation of the Laws of Thought", donde
realiza un tratamiento sistemti o de la Lgi a Formal.
La Lgi a Binaria trata on variables que solo pueden tomar uno de dos valores
posibles y on opera iones entre las variables uyo resultado tambin puede tomar
uno de esos valores. Estos valores, a que ha emos referen ia pueden expresarse
omo: verdadero y falso, si y no, en endido y apagado, 1 y 0, errado y abierto,
et . De esta manera, la Lgi a Binaria nos permite el anlisis y diseo de ir uitos
de onmuta in, tal omo lo representa la des rip in fun ional del ir uito de las
guras 3.1, 3.2, 3.3 y 3.4.
En las guras:
3.1: L prende

SI Y SOLO SI

S ierra.

3.2: L prende

SI Y SOLO SI

S1 ierra

S2 ierra.

3.3: L prende

SI Y SOLO SI

S1 ierra

S2 ierra (o ambos ierran).

3.4: L prende

SI Y SOLO SI

S1 ierra

( S2 ierra

39

S3 ierra).

40

+
V

Figura 3.1: Cir uito de Alumbrado

S1

S2

+
V

Figura 3.2: Cir uito de Alumbrado on Interruptores en serie

S1

+
V

S2
L

Figura 3.3: Cir uito de Alumbrado on Interruptores en paralelo

41

3.2. FUNCIONES DE LA VERDAD.

S1

S3

+
V

S2

Figura 3.4: Cir uito de Alumbrado on Interruptores en serie y paralelo

Toda senten ia a la ual le podemos aso iar un grado de verdad (Verdadera o


Falsa), le daremos el nombre de proposi in binaria , y sern denotadas por una
o ms letras seguida(s), op ionalmente, por nmeros. De esta forma, por ejemplo,
L prende ser A, S1 ierra B , S2 ierra C , et . Estas proposi iones binarias estn
enlazadas por one tivos binarios, que unen a dos proposi iones y se denotan on
un smbolo, formando una proposi in ompuesta ni a on su respe tivo grado
de verdad. En nuestro ejemplo anterior en ontramos los one tivos Y (^ ) ,
SI Y SOLO SI (,) y O (_ ). As, el ltimo aso (gura 3.4) puede ser
representado omo L S1  S2 S3 , expresin ono ida omo e ua in fun ional
de verdad o fun in de verdad.

+
( + )

3.2. Fun iones de la Verdad.


En el punto anterior hemos observado omo el l ulo fun ional de verdad
permite expresar proposi iones, que son las espe i a iones bsi as en ualquier
diseo, de una manera ompa ta y sin ambigedades, apropiada para el manejo
matemti o de ellas. Estudiaremos, ahora, los 16 one tivos binarios posibles,
orrespondientes a las 16 formas en que pueden apare er los valores verdadero y
falso, en el aso de dos variables proposi ionales.

3.2.1. Cone tivos Binarios.


El uadro 3.1 muestra los 16 one tivos binarios bsi os.
Fun iones :

= 0 ; Nula, onstante binaria 0


F1 = a  b ; AND, onjun in lgi a
F2 = a=b ; Inhibi in, a pero no b

1. F0
2.
3.

42
Cuadro 3.1: Cone tivos Binarios

ab
FF
FV
VF
VV

10

11

12

13

14

15

F
F
F
F

F
F
F
V

F
F
V
F

F
F
V
V

F
V
F
F

F
V
F
V

F
V
V
F

F
V
V
V

V
F
F
F

V
F
F
V

V
F
V
F

V
F
V
V

V
V
F
F

V
V
F
V

V
V
V
F

V
V
V
V

F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15


0
*
/
a
/
b  + # , b
( a ) " 1

= a ; Transferen ia de a
F4 = b=a ; Inhibi in, b pero no a
F5 = b ; Transferen ia de b
F6 = a  b ; OR ex lusivo, disyun in ex lusiva, a b, pero no ambas
F7 = a + b ; OR, disyun in in luyente, a b, ambas
F8 = a # b = a + b ; NOR, No OR, omplemento de OR
F9 = a , b ; Equivalen ia, a es equivalente a b
F10 = b ; Complemento de b (NOT), nega in de b
F11 = a ( b ; Impli a in, si b enton es a
F12 = a ; Complemento de a (NOT), nega in de a
F13 = a ) b ; Impli a in, si a enton es b
F14 = a " b = a  b ; NAND, No AND, omplemento de AND
F15 = 1 ; Identidad, onstante binaria 1

4. F3
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.

Nos detendremos, un momento, en los valores de verdad del one tivo si ...
enton es, que a primera vista pare en po o naturales. Repitamos la tabla slo
para ese one tivo:
ab
FF
FV
VF
VV

a)b
V
V
F
V

43

3.2. FUNCIONES DE LA VERDAD.

Si el ante edente de una proposi in ompuesta es verdadero, podemos


esperar que el onse uente tambin lo sea. Por otra parte, si el ante edente es
falso, el onse uente tambin debe serlo. La sorpresa ini ial radi a en que algo
Falso implique algo Verdadero. Trataremos de a larar on el ejemplo siguiente.
Anali emos la proposi in ompuesta
>x>
) x > . Si el valor de x
est efe tivamente entre 1 y 2 (intervalo errado, mayor que uno y menor que
2) ambas proposi iones son verdaderas. De esta forma V ) V es verdadero. Si
el valor de x es, digamos,
ambas proposi iones son falsas, enton es F ) F
es tambin verdadero. Pero si el valor de x est entre 0 y 1 (por ejemplo 0.5), la
primera proposi in es Falsa pero la segunda es Verdadera, de donde se desprende
el valor verdadero de la proposi in ompuesta. En Lgi a el onse uente puede
ser de naturaleza ompletamente diferente al ante edente.

(2

1)

0)

Por otra parte, observemos la diferen ia entre OR in lusivo (+) y OR ex lusivo


(). En el aso de gura 3.3, la lmpara L en iende si S1 o S 1, o ambos, estn
errados (L
S1 S2 ). El uso del one tivo O es de manera in luyente. Sin
embargo, en la proposi in ompuesta "Ana viaja ahora a Europa o Amri a del
Sur", el uso del one tivo O es ex lusivo ya que no puede viajar a dos lugares
diferentes simultneamente.

3.2.2. Evalua in de las fun iones de verdad.


El valor de verdad de una e ua in fun ional, de proposi iones unidas por ms
de un one tivo, puede obtenerse de la evalua in par ial de ada one tivo sobre
dos proposi iones, arreglando ada paso en una Tabla de Verdad. Por ejemplo,
evaluaremos la expresin Z A  B ) C , omo se muestra en el uadro 3.2.

=AB )C
AB )C

Cuadro 3.2: Evalua in de la fun in Z


A
F
F
F
F
V
V
V
V

B
F
F
V
V
F
F
V
V

C
F
V
F
V
F
V
F
V

B AB
V
V
F
F
V
V
F
F

F
F
F
F
V
V
F
F

V
V
V
V
F
V
V
V

Si la evalua in resulta verdadera para todas las ombina iones de las variables
involu radas, hablamos de Tautologa, omo para el ejemplo del uadro 3.3.

44
Cuadro 3.3: Evalua in de una fun in Tautolgi a (Z
A
F
F
F
F
V
V
V
V

B
F
F
V
V
F
F
V
V

C B
F V
V V
F F
V F
F V
V V
F F
V F

= A  B ) B)

AB AB )B
F
F
F
F
V
V
F
F

V
V
V
V
V
V
V
V

3.3. Postulados de Huntington.


En 1904 E. V. Huntington propuso una deni in formal del lgebra de Boole,
que posteriormente fue adaptada por C. E. Shannon, en 1938, para el onjunto B
(binario).
1. B es un onjunto errado:

8(a; b) 2 B : (a + b) 2 B
on respe to al operador *, 8(a; b) 2 B : (a  b) 2 B

a) on respe to al operador +,
b)

2. Existe un elemento de identidad o neutro :

9 0 2 B = 8a 2 B : (a + 0) = a
on respe to a * designado por el 1 . 9 1 2 B = 8a 2 B : (a  1) = a

a) on respe to a + designado por el 0 .


b)

3. B es onmutativo :

8(a; b) 2 B : (a + b) = (b + a)
on respe to a *, 8(a; b) 2 B : (a  b) = (b  a)

a) on respe to a +,
b)

4. En B :

) 2 B : a  (b + ) = (a  b)+

a) * es distributivo on respe to a +. 8 a; b;

(a  )

b) + es distributivo on respe to a *.

b)  (a + )1

1 Esto

no es ierto en el lgebra ordinaria.

8(a; b; ) 2 B : a + (b  ) = (a +

45

3.4. AXIOMAS DEL LGEBRA DE BOOLE.

5. Para ada elemento a en B existe un omplemento a denido por :

+a=1
aa=0

a) a
b)

=b

6. Existen al menos dos elementos (a, b) en B tal que a 6

3.4. Axiomas del lgebra de Boole.


Los axiomas o postulados de un sistema matemti o son un onjunto de
reglas mnimas, que asumimos siempre verdaderas, y por tanto no requieren
demostra in, sobre las uales se onstruye el uerpo de teoremas que ompletan
la estru tura algebrai a. De esta manera, y omo onse uen ia, prin ipalmente,
de los postulados de Huntington, deniremos un grupo de axiomas, los uales se
muestran en el uadro 3.4.
Cuadro 3.4: Axiomas del lgebra de Boole

A1 x = 0 ; si x 6= 1
A2 si x = 0 ; enton es x = 1
A3 0  0 = 0
A4 1  1 = 1
A5 0  1 = 1  0 = 0

A1 x = 1 ; si x 6= 0
A2 si x = 1 ; enton es x = 0
A3 1 + 1 = 1
A4 0 + 0 = 0
A5 1 + 0 = 0 + 1 = 1

3.5. Teoremas bsi os y propiedades del lgebra


de Boole.
Durante el anlisis o sntesis de ir uitos lgi os, a menudo es ribimos
expresiones algebrai as que representan el omportamiento o las ara tersti as
deseadas del ir uito. Los teoremas del lgebra de Boole son estamentos, ono idos
omo siempre verdaderos, que permiten manipular las expresiones algebrai as
para obtener anlisis ms simples, o una sntesis mas e iente del ir uito
orrespondiente.

3.5.1. Teoremas de una sola variable.


El uadro 3.5 muestra los teoremas del lgebra de swit hes que envuelven una
sola variable (x ).
La mayora de los teoremas en el lgebra de swit hes son ex esivamente
simples, y omo las variables pueden tomar solo dos valores (0 1), estos pueden

46
Cuadro 3.5: Teoremas de una sola variable
Identidad
Frontera
Idempoten ia
Involu in
Complemento

T1
T2
T3
T4
T5

x+0=x
x+1=1
x+x=x
(x) = x
x+x=1

T1
T2
T3
T4
T5

x1=x
x0=0
xx=x
xx=0

demostrarse por medio de indu in perfe ta. Es de ir se substituye la variable


por ada valor posible y se veri a su verdad.
Demostra in del Teorema de Identidad T1 :
(

0 + 0 = 0 ; uando x = 0 por A4 ) x + 0 = x ; 8x 2 B
x+0=
1 + 0 = 1 ; uando x = 1 por A5
Demostra in del Teorema de Frontera T2 :
(

0 + 1 = 1 ; uando x = 0 por A5 ) x + 1 = 1 ; 8x 2 B
x+1=
1 + 1 = 1 ; uando x = 1 por A3
Demostra in del Teorema de Idempoten ia T3 :
(

0 + 0 = 0 ; uando x = 0 por A4 ) x + x = x ; 8x 2 B
x+1=
1 + 1 = 1 ; uando x = 1 por A3
Demostra in del Teorema de Involu in T4 :

(x) =
(x) =

y
y

=y
)
1 ; uando y = 0 ) x = 1 por A2 ) (x) = x ; 8x 2 B
0 ; uando y = 1 ) x = 0 por A2

ha iendo x
(

Demostra in del Teorema de Complemento T5 :


(

0 + 1 = 1 ; uando x = 0 por A5 ) x + x = 1 ; 8x 2 B
x+x=
1 + 0 = 1 ; uando x = 1 por A5

3.5. TEOREMAS BSICOS Y PROPIEDADES DEL LGEBRA DE BOOLE.47

Cuadro 3.6: Teoremas de dos variables


Cobertura o Absor in T6
Elimina in
T7
De Morgan
T8

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

T6 x  (x + y ) = x
T7 x  (x + y ) = x  y
T8 (x  y ) = x + y

3.5.2. Teoremas de dos y tres variables.


El uadro 3.6 muestra algunos de los teoremas que envuelven ms de una
variable.
Realizando una analoga on la teora de onjuntos, ntimamente ligada al
lgebra de swit hes, en donde se representa a la disyun in lgi a (OR) on la
S
unin de onjuntos ( ), y a la onjun in lgi a (AND) on la interse in de
T
onjuntos ( ), podemos emplear los diagramas de Venn para demostrar la validez
S T
de los teoremas. As, x x  y
x puede expresarse omo x x y
x, omo
se apre ia en la gura 3.5.

+(

)=

)=

U
x

x
y

Figura 3.5: Diagrama de Venn del Teorema de Cobertura

La indu in perfe ta tambin es un buen amino para la demostra in de


los teoremas. No obstante, en esta oportunidad, introdu iremos la rigurosidad
matemti a, de las substitu iones algebrai as, donde se utilizan los axiomas y
otros teoremas ya probados para veri ar la validez de un teorema nuevo.
Teorema de Cobertura T6 :

48

x + (x  y )

= (x + 1) + (x  y)
= x  (1 + y)
= x1
= x

Teorema de Elimina in T7 :

x + (x  y )

= (x + x)  (x + y)
= 1  (x + y )
= x+y

;
;
;
;

de a uerdo al teorema de Identidad T1


de a uerdo al postulado 4 (Dist: de  sobre+)
de a uerdo al teorema de F rontera T2
de a uerdo al teorema de Identidad T1
a

; de a uerdo al postulado 4 (Dist: de + sobre)


; de a uerdo al teorema del Complemento T5
; de a uerdo al teorema del Identidad T1
b

Aunque el Teorema de Frontera (T2 ) lo hemos demostrado por indu in


ompleta, haremos un ejer i io algebrai o para su demostra in:

x+1

=
=
=
=

x + (x + x) ; de a uerdo al teorema del Complemento T5


(x + x) + x ; de a uerdo al postulado de Aso iatividad
x+x
; de a uerdo al teorema de Idempoten ia T3
1
; de a uerdo al teorema del Complemento T5

3.5.3. Teoremas generalizados de

n variables.

Algunos teoremas son sus eptibles de ser expandidos para un nmero arbitrario
de variables omo se muestra en el uadro 3.7.
Cualquier teorema o identidad del lgebra de swit hes permane e en su
mismo grado de verdad apli ando el prin ipio de dualidad que estable e que se
inter ambien simultneamente: eros on unos, y + on * ; tal omo se ha venido
estable iendo el todas los uadros.

3.6. Fun iones, variables y expresiones.


En lgebra de Boole las expresiones pueden estar formadas por una
ombina in de onstantes lgi as y variables, unidas mediante smbolos ono idos
omo one tores u operadores binarios, de una forma similar al lgebra estndar.
En el lgebra de swit hes (sub onjunto de dos elementos del lgebra
Booleana) una variable x puede tener uno de solo dos posibles valores (0
1).
Una expresin Boolena F est formada por la ombina in de onstantes
lgi as (0 y 1) y variables (x, y, ...) one tadas por los operadores [+ (OR),
* (AND) y ~(NOT). Por ejemplo, F xy xy forman una expresin.

= +

x
F
F

+ + + =
(
+) = (
(
) = 1  (1
x

:::

x1 ;x2 ;:::xn ;
x1 ;x2 ;:::;xn

)

x1 ;x2 ;:::xn ;

9
T10

T11
T

;x2 ;:::;xn

) + 1  (0
x

;x2 ;:::;xn

   =
(
) = (
+)
=
[
+
1
(
)
(0
)  [ 1 + (1

F
F

:::

x1 ;x2 ;:::xn ;
x1 ;x2 ;:::;xn

x1 ;x2 ;:::xn ;

;x2 ;:::;xn

;x2 ;:::;xn

3.6. FUNCIONES, VARIABLES Y EXPRESIONES.

9
T10
T11
T

Cuadro 3.7: Teoremas generalizados de n variables

Idempoten ia
De Morgan
Expansin

49

50

Una n-upla es de la forma x0 ; x1 ; :::; x 1 , donde el orden es importante.


Un produ to artesiano de n onjuntos A ( =1 ) , onsiste de las n-uplas
x0 ; x1 ; :::; x 1 , donde x 2 A .

)
S x S = f(0; 0); (0; 1); (1; 0); (1; 1)g = f(x; y )g
S x S xS = f(0; 0; 0); (0; 0; 1); (0; 1; 0); (0; 1; 1); (1; 0; 0);
(1; 0; 1); (1; 1; 0); (1; 1; 1)g = f(x; y; z)g
Una fun in ombinatoria F : S ! S , donde S = f0; 1g onsiste de :
i i

::n





Un onjunto no va o S llamado el dominio de la fun in.


n

Un onjunto no va o S llamado el rango de la fun in.


Una regla que asigna uno y solo un elemento de S a ada elemento de

S , y vi eversa.
n

( )

Una fun in de dos variables F x; y es aquella que "mapea" ada elemento


del dominio S x S a solo un elemento del rango S .

( ) = 0  x  y + 1  x  y + 1  x  y + 1  x  y tiene el mapa

La fun in F x; y
siguiente:

(x; y)
(0; 0)
(0; 1)
(1; 0)
(1; 1)
SxS

!
!
!
!
!
!

0
1
1
1

Este mapa posee una tabla de verdad que lista ada ombina in de los
trminos produ tos y su orrespondiente valor de F :

(x; y) !
xy !
xy !
xy !
xy !

0
1
1
1

3.7. Forma Canni a de Fun iones Combinatorias


Antes de a ometer la manipula in algebrai a de fun iones lgi as,
pro ederemos a realizar algunas deni iones :

51

3.7. FORMA CANNICA DE FUNCIONES COMBINATORIAS

El trmino literal ha e referen ia a la apari in de una variable, no


importando si est o no negada, en una expresin lgi a. De esta manera, x
y x son dos literales diferentes que se reeren a la misma variable.
Un trmino produ to es un literal aislado o un produ to lgi o de dos o
ms variables. (Ejemplos: x, x  y , x  y  z ).
Un trmino produ to, dentro de una fun in de n variables, que ontenga
n literales de distintas variables, se ono e omo trmino mnimo o
mintrmino . (Ejemplos para 3 variables xyz : x  y  z , x  y  z , x  y  z ).
Un trmino suma es un literal aislado o una suma lgi a de dos o ms
variables. (Ejemplos: x, x y , x y z )

+ +

Un trmino suma, dentro de una fun in de n variables, que ontenga


n literales de distintas variables, se ono e omo trmino mximo o
maxtrmino . (Ejemplos para 3 variables xyz : x y z , x y z , x y z ).

+ +

+ +

+ +

Una expresin de suma de produ tos es la suma lgi a de trminos


produ tos x
xy
xyz

+(

)+(

Una expresin de produ to de


sumas x  x y  x y z

( + ) ( + + )

sumas

es el produ to lgi o de trminos

Un trmino normal es un produ to lgi o, o una suma lgi a, donde


una variable apare e slo una vez. De esta forma, ualquier mintrmino
o maxtrmino son trminos normales.
Observemos la representa in de mintrminos y maxtrminos, para dos variables
(x, y) y tres variables (x, y, z ) en los uadros 3.8 y 3.9, respe tivamente.
Cuadro 3.8: Trminos mnimos y mximos para dos variables
0
1
2
3

x y Mintrmino Maxtrmino

00
01
10
11

m0 = x  y
m1 = x  y
m2 = x  y
m3 = x  y

M0 = x + y
M1 = x + y
M2 = x + y
M3 = x + y

Podemos observar que un mintrmino es un trmino produ to uyo valor es


1 slo en una la de la tabla de verdad. De igual forma, un maxtrmino es un
trmino suma uyo valor es 0 slo en una la de la tabla de verdad.

52
Cuadro 3.9: Trminos mnimos y mximos para tres variables
x y z Mintrmino

000
001
010
011
100
101
110
111

0
1
2
3
4
5
6
7

m0 = x  y  z
m1 = x  y  z
m2 = x  y  y
m3 = x  y  z
m4 = x  y  z
m5 = x  y  z
m6 = x  y  y
m7 = x  y  z

Maxtrmino

M0 = x + y + z
M1 = x + y + z
M2 = x + y + z
M3 = x + y + z
M4 = x + y + z
M5 = x + y + z
M6 = x + y + z
M7 = x + y + z

Adems, el (o los) ero(s) de la representa in binaria del nmero del


mintrmino nos indi a(rn) ual(es) literal(es) est(n) omplementada(s); por
ejemplo, en m3
xyz
est omplementada x. En el aso de los
maxtrminos, los eros de la representa in binaria del nmero indi arn uales
variables no estn omplementadas; por ejemplo, para M3 x y z
no
est omplementada x.

(011)

= + + (011)

Por otra parte, podemos demostrar, utilizando los teoremas de De Morgan y


M ; de igual manera, m M . Por ejemplo, tomemos
de Involu in que m
el mintrmino 3 para tres variables
i

m3
m3

=
=
=
=
=

ii

xyz
xyz
x+y+z
x+y+z
M3

Basado en la orresponden ia entre la Tabla de Verdad de una fun in y los


mintrminos, se puede rear f ilmente una representa in algebrai a de ella, o
vi eversa. Si esta representa in algebrai a est onstituida por los mintrminos
orrespondientes se habla de una suma anni a . Por ejemplo, la expresin
xy
x  y es una suma anni a, ya que est formada slo por
F( )
mintrminos. De igual manera, esta fun in puede ser representada por una lista
P
de mintrminos F( )
; , expresin que podemos sintetizar omo "la suma
de los mintrminos 1 y 2". Se apre ia de inmediato, que la fun in valdr 1 ada
vez que las variables de entrada tengan una ombina in que represente a ada
mintrmino de la lista.
x;y

=(

)+(

x;y

= (1 2)

Como se ha men ionado anteriormente, por dualidad podemos estable er que


un produ to anni o estar formado por el produ to de los maxtrminos

53

3.8. CIRCUITOS LGICOS.

orrespondientes a las ombina iones de entrada para los uales la fun in produ e
un 0 de salida. Para el ejemplo anterior, F( )
x y  x y , y la lista de
Q
maxtrminos ser F( )
; .
x;y

= (0 3)

x;y

=( + ) ( + )

3.8. Cir uitos Lgi os.


Aunque el desarrollo te nolgi o ha permitido la realiza in fsi a de omplejas
fun iones digitales, la fabri a in de omponentes que sean apa es de umplir on
los one tivos binarios bsi os se limitan a: AND, OR, XOR, NOT, NAND, NOR
y 1 (seguidor o "buer"). Eventualmente, es posible en ontrar o muy f il de
realizar, NXOR.
La simbologa tradi ionalmente empleada para representar las fun iones
lgi as desde un esquemti o es la que se muestra en la gura 3.6.2
A

NOT
A

A*B

SEGUIDOR
A

A+B

XOR

A+B

NAND

OR

A*B

A+B

AND
A

A+B

NOR

NOXOR

Figura 3.6: Smbolos tradi ionales para la representa in de fun iones lgi as
Estos ir uitos, ono idos omo ompuertas, trabajan on dos niveles de
voltaje para representar los valores binarios. Con estos smbolos bsi os, as omo
on una tabla de verdad, se puede expresar ualquier fun in lgi a. Veamos, a
manera de ejemplo, la fun in F( ) x  y x  y  z , en la gura 3.7, el diagrama
de tiempos en la gura 3.8, y su tabla de verdad en el uadro 3.10.
x;y

Un observador meti uloso se habr dado uenta que la expresin de F no es


una suma anni a. Podra preguntarse, enton es, Cmo se afe tara el ir uito
se ha onvertido en la simbologa de fa to. Aunque IEEE ha estandarizado otras
representa iones, son po as las empresas e institu iones que las utilizan.
2 Esta

54

Figura 3.7: Diagrama esquemti o para la fun in F( )

=xy+xyz

Figura 3.8: Diagrama de tiempos para la fun in F( )

=xy+xyz

x;y

x;y

55

3.8. CIRCUITOS LGICOS.

=xy+xyz
xy+xyz

Cuadro 3.10: Tabla de Verdad para la fun in F( )


x;y

xyz x y
1 1
1 1
1 0
1 0
0 1
0 1
0 0
0 0

000
001
010
011
100
101
110
111

xy xyz
0
0
0
0
0
0
1
1

0
1
0
0
0
0
0
0

0
1
0
0
0
0
1
1

mostrado y su diagrama de tiempos, si usramos la lista de mintrminos omo


expresin de la fun in?. Responderemos a esto en las se iones siguientes.

3.8.1. Anlisis de Cir uitos Lgi os Combina ionales.


El anlisis de un ir uito lgi o bsi o debe omenzar en el ir uito mismo o en
una representa in esquemti a del mismo, que utili e los smbolos previamente
des ritos para ada una de las ompuertas. A partir de este punto, tenemos en
general dos op iones para en ontrar una des rip in formal del ir uito:
1. Construir una tabla de verdad, evaluando el omportamiento del ir uito
para todas las posibles ombina iones de las variables de entrada.
2. En ontrar la expresin algebrai a de la fun in ir uital, asignndole un
one tor a ada ompuerta y agrupando los trminos de manera apropiada.
La di ultad, en ambos asos, radi ar esen ialmente en el tamao del ir uito y
en la antidad de variables lgi as involu radas.
A manera de ejemplo, analizaremos el ir uito de la gura 3.9.
El pro edimiento es sen illo. Se debe omenzar en las entradas y desplazarse
ha ia la(s) salida(s), indi ando, en ada ompuerta, la expresin algebrai a que
representa. Al nalizar, en la ltima ompuerta, se ha obtenido la expresin para
toda la fun in lgi a. En este momento y de ser ne esario, mediante la apli a in
de los teoremas y axiomas del lgebra de Boole bivalente, se puede en ontrar una
expresin redu ida o equivalente para el ir uito.

= ABE + C + D
= (A + B )  E + C + D
= AE + BE + C + D
= AE + BE + CD

; por el teorema de De Morgan


; por Distributividad de  sobre+
; por el teorema de De Morgan

56
A

A*B

A*B *E

A*B *E + C+D

E
C

C+D

D
D

Figura 3.9: Diagrama esquemti o de ejemplo


expresin que orresponde a una suma no anni a de produ tos, la que ahora
podemos esquematizar omo se muestra en la gura 3.10.
A
E

F
B
D
C

Figura 3.10: Diagrama esquemti o equivalente al de la gura 3.9


A primera vista no se ha obtenido gran osa, ya que estamos usando el mismo
nmero de ompuertas. Sin embargo podemos men ionar, entre otras osas:
1. Se ha logrado un ir uito on menor profundidad lgi a (el nmero de
ompuertas que una seal debe atravesar para produ ir un ambio en la
salida del ir uito), al pasar a 3 niveles en lugar de uatro. Esto redundar
en una respuesta ms rpida ( omo veremos en el apitulo siguiente); y
2. Se emplean solo tres tipos de ompuertas, en lugar de in o, lo que
normalmente indi a la utiliza in de menos ir uitos integrados ( osa que
tambin detallaremos ms adelante).
A menudo, es posible apli ar los teoremas de De Morgan y de Involu in
dire tamente sobre la representa in esquemti a, sin ne esidad de re urrir al
manejo algebrai o de las expresiones. El teorema de Involu in estable e que la
nega in de la nega in restable e la variable a su ondi in ini ial; de esta forma,

57

3.8. CIRCUITOS LGICOS.

la presen ia de dos inversores en serie (o un nmero par de ellos), es lgi amente


(no el tri amente) equivalente a la elimina in de ellos, o a su reemplazo por un
seguidor, omo se apre ia en la gura 3.11.
A

A =A

Figura 3.11: Apli a in gr a del Teorema de Involu in


Por otra parte, el teorema de De Morgan estable e que la nega in del produ to
lgi o de las variables, es igual a la suma lgi a de las variables negadas (A  B
A B ). Sabemos que el produ to lgi o est implantado por una ompuerta AND,
y la nega in del produ to por una NAND. Enton es, una ompuerta NAND
puede ser substituida por una OR (suma lgi a), uyas entradas estn negadas
omo se muestra en la gura 3.12. Por dualidad, una ompuerta NOR, puede ser
substituida por una AND on sus entradas invertidas.

A
B

A
B

A
B

F
B

A
F

F
B

Figura 3.12: Apli a in gr a del Teorema de De Morgan

3.8.2. Sntesis de Cir uitos Lgi os Combina ionales.


La bsqueda de solu in a un problema, en ualquier rea de ono imiento,
normalmente sigue el ono ido Pro edimiento para la Resolu in de

58

Problemas o PSP por sus siglas en ingls (Problem Solving Pro edure). Este
onsta, en general, de uatro pasos :
1.
2.
3.

4.

Planteamiento del Problema. Se estable e el punto a resolver,

normalmente, mediante una des rip in en palabras.

Con eptualiza in. Traslada la des rip in del problema a un modelo

on eptual, normalmente matemti o.

Solu in y Simpli a in. Estable e una solu in para el modelo

on eptual, usando las herramientas apropiadas al modelo. De ser posible,


realiza una simpli a in, eliminando informa in redundante o po o
signi ativa.

Realiza in. La solu in al problema original es realizada o implantada,

trasladando los resultados del paso anterior al rea de apli a in espe  a.


Alternativamente, o omo una etapa previa, la solu in puede ser simulada,
empleando la te nologa ade uada.

La apli a in del lgebra de "swit hes" para el diseo de ir uitos


lgi os puede ser ilustrado on la resolu in del siguiente problema:
Diseo de un Sistema de Alarma:
1.

Planteamiento del Problema. Disee un ir uito lgi o ombinatorio que

2.

Con eptualiza in. La a tiva in de la alarma F (fun in que bus amos)


depende de tres variables lgi as binarias independientes : Puerta (P),
Ventana (V ) y Hora (H ). Como se trata de variables binarias (o forzadas
a tener una representa in binaria), ada una de ellas podr tener solo dos
valores posibles :

a tive una alarma si una puerta o una ventana es abierta durante las horas
de la no he.

P
V
H

0
( 1
= 10
(
= 10
=

;
;
;
;
;
;

P uerta Cerrada
P uerta Abierta
V entana Cerrada
V entana Abierta
Horas Diurnas
Horas No turnas

La opera in del ir uito de alarma puede ser des rita por una tabla
fun ional, que tiene su equivalente en una tabla de verdad.

59

3.8. CIRCUITOS LGICOS.

Hora
Diurna
Diurna
Diurna
Diurna
No turna
No turna
No turna
No turna
De donde, F

Tabla Fun ional


Puerta Ventana
Cerrada Cerrada
Cerrada Abierta
Abierta Cerrada
Abierta Abierta
Cerrada Cerrada
Cerrada Abierta
Abierta Cerrada
Abierta Abierta

Alarma
Ina tiva
Ina tiva
Ina tiva
Ina tiva
Ina tiva

A tiva
A tiva
A tiva

Tabla de Verdad
H P V
F
0 0 0
0
0 0 1
0
0 1 0
0
0 1 1
0
1 0 0
0
1 0 1
1
1 1 0
1
1 1 1
1

= P(5; 6; 7) = HP V + HP V + HP V

Un mtodo ms intuitivo y nada formal, onsiste en tratar de obtener una


expresin algebrai a dire tamente desde el planteamiento del problema.
Esto requiere una utiliza in pre isa, y sin ningn tipo de ambigedades,
del lenguaje, osa desgra iadamente muy dif il de en ontrar hoy, an en
los medios universitarios, que se ara terizan por un pobre, sino deplorable,
manejo del idioma. As, volviendo a nuestro problema, la alarma sonar (F )
si y slo si es de no he (N ) y est abierta una ventana (V ) o est abierta
una puerta (P). Esto nos ondu e a una expresin F N  V P .

3.

Solu in y Simpli a in. Apli ando los teoremas y axiomas del lgebra

a la forma anni a de F obtenida anteriormente, podemos

4.

( + )

=
=
=
=
=
=
=

HP V + HP V + HP V
HP V + HP V + HP V + HP V
HP V + HP V + HP V + HP V
HV (P + P ) + HP (V + V )
HV (1) + HP (1)
HV + HP
H (V + P )

; por Idempoten ia
; por Conmutatividad
; por Distributividad
; por Complemento
; por Identidad
; por Distributividad

Realiza in. La realiza in la haremos mediante un diagrama lgi o


(esquemti o en la gura 3.13) y una orrida de simula in, la ual nos
brindar un diagrama de tiempos (gura 3.14) del omportamiento de ada
variable de entrada y de la salida.

3.8.3. Manipula in de ir uitos.


Hasta el momento la forma de expresar las fun iones ombinatorias han sido
Suma De Produ tos (SDP ) o Produ tos De Suma (PDS ), los uales utilizan

60

Figura 3.13: Esquemti o de los ir uitos de Alarma

Figura 3.14: Diagrama de tiempo de los ir uitos de Alarma

61

3.8. CIRCUITOS LGICOS.

ompuertas AND, OR y NOT. Sin embargo, en la mayora de las familias lgi as,
las ompuertas NAND y NOR son ms rpidas y, por tanto, es preferible su
utiliza in. Adems, el empleo de un menor tipo de ompuertas normalmente
produ e un ahorro onsiderable en los ostos de fabri a in de un ir uito, omo
veremos ms adelante.
En primer lugar, indi aremos que ualquier inversor puede substituirse por
una ompuerta NAND o NOR. Re ordemos la fun in NAND (F14 ) del uadro
3.1, donde ahora haremos B A.

Cuadro 3.11: Fun in NAND on B


AB
FF
FF
VV
VV

=A

F14

"

V
V
F
F

Se apre ia laramente que la salida es siempre el inverso del valor de A. Esta


asevera in pude tambin ser demostrada algebrai amente: A  B A  A A ,
por el teorema de Idempoten ia.

Una mejor op in, desde el punto de vista el tri o (lo justi aremos ms
adelante), es ha er B
uando se quiera realizar un inversor on ompuertas
NAND: A  B
A
A, por el teorema de Identidad por el Postulado
(elemento neutro para *).

=1
1=

La gura 3.15 muestra una representa in equivalente de inversores.


A

Figura 3.15: Diagrama equivalentes para un Inversor

Retomemos en este punto, los teoremas de De Morgan y el de Involu in, que


umplen un rol fundamental. Usemos, para ejempli ar, el problema de la alarma;
a saber

62

= HP V + HP V + HP V
= (HP V + HP V + HP V )
= (HP V )  (HP V )  (HP V )

; por Involu ion


; por De Morgan

La primera expresin es una suma de produ tos, pero la ltima es la inversin


de un produ to de produ tos invertidos. No nos intimidemos por el juego de
palabras, la primera expresin utiliza ompuertas AND, OR y NOT, y la ter era
solo utiliza ompuertas NAND (si los posibles inversores son tambin substituidos
por estas). El resultado se muestra en la gura 3.16.
P

Figura 3.16: Alarma slo on ompuertas NAND


Este resultado tambin puede ser obtenido de forma gr a, omo ya vimos
en las guras 3.11 y 3.12.
De igual manera, por dualidad, un ir uito que orresponde a una
representa in de produ to de sumas, puede implantarse slo on ompuertas
NOR.

63

3.8. CIRCUITOS LGICOS.

P
P
V
V

H
H

A
A

Figura 3.17: Alarma slo on ompuertas NAND (Pro edimiento Gr o)

64

Captulo 4
Diseo El tri o de Compuertas
Mu hos dispositivos fsi os diferentes, me ni os y el tri os, han sido
utilizados para onstruir ompuertas digitales (rels, vlvulas hidruli as, tubos de
va o, sensores de nivel, et .). En esta se in nos entraremos en la utiliza in de
semi ondu tores omo elementos bsi os de la te nologa digital moderna. Aunque
varias de estas te nologas estn a tualmente des ontinuadas, hemos onsiderado
interesante men ionarlas, aunque sea de manera breve, para expli ar de una
manera sen illa los on eptos laves del diseo ele trni o de ompuertas digitales.

4.1. Lgi a de Resisten ia y Transistor (RTL)


4.1.1. El BJT omo Inversor Lgi o
La gura 4.1 muestra un transistor npn en ongura in de emisor omn.

Vcc
R2
Vs

R1
V1

Figura 4.1: Transistor BJT en ongura in de emisor omn


Podemos, enton es, plantear las e ua iones de malla:

V1
V

=
=

+ V ) i = V1 R V
1
R2  i + V e = R2  i + V e ) V e = V

R1  i

(4.1)

be

be

65

R2 i

(4.2)

66
substituyendo (4.1) en (4.2) obtenemos:

V e = V

V
R2 1

V be

(4.3)

R1

Para que exista orriente de base, V1 debe ser mayor que V , siendo este ltimo
normalmente 0,6V para los transistores de sili io. As, si el voltaje de entrada
V1 es Bajo (V1 < V ), enton es el diodo base-emisor no al anza a polarizar e
positivamente y no existe orriente de base i , on lo ual no existe orriente de
ole tor i , llevando el transistor a la ondi in de orte. De esta manera el voltaje
de salida V
V es Alto on un valor de V , o muy er ano a este si onsideramos
la pequea orriente de fuga en todo transistor real.
be

be

Por el ontrario, Cuando el voltaje de entrada V1 es Alto, ir ula una orriente


de base i uyo valor depender, adems del voltaje de entrada, de R1 y la ada
de tensin base-emisor. Existir, enton es, una orriente de ole tor i   i . Sin
embargo, si  V1 V  R2 =R1 es mayor que V , enton es la e ua in 4.3 deja
de ser ierta ya que en el transistor el voltaje ole tor-emisor V nun a puede ser
menor que ero (no puede generar un poten ial negativo); en un transistor real
este voltaje nun a puede ser menor a V ( ) (generalmente 0,2V ). Obviamente ya
no nos en ontramos en la zona lineal de trabajo del transistor, sino en la zona de
satura in. De esta manera el voltaje de salida V es Bajo on un valor de V ( ) ,
o muy er ano a este. Hemos obtenido un inversor de la familia RTL (Resistor
Transistor Logi ), omo se apre ia en la gura 4.2
b

be

e sat

e sat

Vcc

Vcc

R2
R1
0

R2
Vs=Vcc

R1

Vce_sat=0

Vcc
Figura 4.2: Transistor BJT a tuando omo inversor lgi o

4.1.2. Diseo de un Inversor Lgi o usando BJT


Aunque el diseo de este tipo de ir uitos orresponde a un urso de
ele trni a, intentaremos un l ulo on la nalidad de posteriormente estudiar la
inter onexin de estos tipos de dispositivos, uestin que si es relevante para los
ingenieros de diseo digital. En primer lugar jaremos el voltaje de alimenta in
V en 5.0V, ya que este es un estndar industrial para la familia TTL y una parte
importante de la familia CMOS (que estudiaremos ms adelante). El nivel lgi o

67

4.1. LGICA DE RESISTENCIA Y TRANSISTOR (RTL)

Bajo debe ser inferior a 0.6V para garantizar que el transistor entre en la zona
de orte; as lo jaremos en entre 0V y 0.5V. El nivel lgi o Alto es un po o ms
exible debido a que la ondi in de satura in la lograremos uando V
V
sea menor o igual a  V1 V  R2 =R1 ; as, lo jaremos entre 2.0V y 5.0V
ofre iendo una banda de seguridad (zona de transi in) de 1.5V para distinguir
laramente un Alto de un Bajo.

be

Por otra parte, uando el transistor est saturado, la orriente de ole tor
estar limitada solo por R2 . Debemos, pues, disponer de un valor razonablemente
alto para limitar la orriente de ole tor, a n de evitar daos en el omponente
y/o prdidas ex esivas por disipa in de poten ia. Sin embargo, la resisten ia
interna de orte (R ) de un transistor no es innita, y puede ser del orden de
algunas de enas de K . As, un transistor ortado, on R2 en el mismo orden de
magnitud que R , produ ir un voltaje bajo por el orden de V = , lo ual es
ina eptable por estar en la banda de transi in. Es ogeremos, enton es, R2
k ,
lo que produ ir una orriente de ole tor mxima de ; mA, razonable para la
mayora de las familias lgi as, on un voltaje Alto er ano a V , y un voltaje
Bajo prximo a V ( ) .

of f

of f

=2

24

e sat

Finalmente, ono ido el del transistor podemos aproximarnos a la orriente


de base ne esaria para llevarlo a satura in. Si el dispositivo estuviera trabajando
en la zona lineal, enton es i
i = . Pero realmente estamos en la zona de
satura in, por tanto esta orriente de base debe ser mayor que la obtenida por
la expresin anterior. De esta forma planteamos,
b

i = < i

= (V1

ALT Omin

V )=R1 ) R1 <  (V1


be

ALT Omin

V )=i
be

donde V1
es el mnimo valor de V1 para ser onsiderado una entrada
alta, que produz a la ondi in de satura in. Asumiendo un de 100, R1 <
 ; V ; V = ; mA : K . As, tomamos R1
K , llegando a un
Inversor, uyo omportamiento dinmi o podemos apre iar en la gura 4.3.
ALT Omin

100 (2 0

06 ) 24

= 58 3

= 20

4.1.3. El Fan out


En la gura 4.4 la salida de nuestro ir uito inversor ha sido argada on la
entrada de otro ir uito del mismo tipo. Desde el punto de vista de la lgi a
ir uital esto representa dos inversores puestos en serie, lo que orresponde al
teorema de Involu in. Bien, uando la entrada A est alta, el transistor Q1 est
saturado y el voltaje en B es bajo. El voltaje del punto B es la entrada de Q2 , por
tanto este ltimo est en orte, y la salida, en el punto C, es alta. Por el ontrario,
uando la entrada A est baja, el transistor Q1 est ortado y el voltaje en B es
alto, por tanto Q2 est saturado, y la salida en el punto C, es baja.

68

Figura 4.3: Comportamiento dinmi o de un transistor BJT omo Inversor

Vcc
2k
20k
A

B
Q1

2k
20k

C
Q2

Figura 4.4: Dos inversores en serie

69

4.1. LGICA DE RESISTENCIA Y TRANSISTOR (RTL)

El anlisis ualitativo est de a uerdo a nuestros estudios previos.


Consideremos, ahora, un examen uantitativo para observar el omportamiento
del ir uito. Cuando V est bajo, digamos 0V, laramente Q1 est ortado (para
lo ual onsideraremos una R
bastante alta). De esta forma no hay orriente
a travs de Q1 , pero se forma una malla entre V , la resisten ia de ole tor de
Q1 (2k ), la resisten ia de base de Q2 (20k ), la unin base - emisor de Q2 y tierra.
A

OF F

V
I

= I  (2k + 20k) + V be
= V 22Vkbe
= 5V 22k0;6V = 0;2mA

Q2

Q2

De esta forma, en la resisten ia de ole tor de Q1 se produ ir una ada de


tensin 0.4V (2k*0.2mA). El voltaje en el punto B ser V
V ; V
; V.
Este resultado es orre to, pues esperamos un voltaje alto entre 2.0V y 5.0V.
B

04 =46

Sin embargo, si argamos el mismo ir uito on n inversores, enton es ada


uno de los inversores requerir 0.2mA. De esta manera, la ada de tensin en
la resisten ia de ole tor de Q1 ser n  k  ; mA
n  ; V , y el voltaje en
el punto B : V
V n  ; V . Naturalmente llegar un momento en que V
ser menor al voltaje mnimo para una ondi in de alto (2.0V ) y el ir uito,
aunque ele trni amente opere, desde el punto de vista de la lgi a estar en
una ondi in de error. Este nmero n , que representa la antidad mxima de
ompuertas on que se puede argar la salida de un ir uito lgi o (o la antidad
mxima de ompuertas que un ir uito lgi o puede manejar), se ono e omo
fan out. En nuestro aso,
B

04

5V

n  0;4V

2 02

04

 2;0V ) n  50;42

de donde on luimos que n < .


Afortunadamente los diseadores digitales no requieren ha er estos l ulos ya
que el fabri ante de ir uitos lgi os propor iona el fan out dire tamente o, en su
defe to, suministra las espe i a iones el tri as para las ara tersti as externas
de las entradas y salidas de los elementos lgi os. Por ejemplo, tomaremos parte
de las espe i a iones del ir uito TTL 04 (Hex Inverter ) del Manual de Datos
de Signeti s (Cuadro 4.1):
Con estos datos podemos determinar on pre isin ual es la arga mxima
a que podemos someter una ompuerta, as omo el nmero de elementos que
puede manejar de su misma familia, o de ualquier otra. Por ejemplo, un

70
Cuadro 4.1: Tabla de datos para el Signeti s TTL Hex Inverter
Pines 74 74H 74S 74LS
(uA) 40
50
50
20
i (mA) -1.6 -2.0 -2.0 -0.36
Salidas i (uA) -400 -500 -1000 -400
i (mA) 16
20
20
8

Entradas i

IH

IL

OH

OL

i
i
i
i

IH
IL
OH
OL

= Corriente de entrada on voltaje alto


= Corriente de entrada on voltaje bajo
= Corriente de salida on voltaje alto
= Corriente de salida on voltaje alto

ir uito integrado 74LS04 puede manejar hasta 20 ompuertas de su mismo


tipo ( uA= uA
; mA= ; mA
; ), pero si se arga on 7404,
enton es solo podr manejar hasta 5, de manera onable ( uA= uA
;
mA= ; mA
).

400
16

20 = 20 8
=5

0 36

= 22 22

400

40

= 10

4.1.4. Tiempo de Transi in


La antidad de tiempo que la salida de un ir uito lgi o tarda para ambiar de
un estado a otro, es de ir pasar de alto a bajo o vi eversa, se ono e omo tiempo
de transi in. En sistemas digitales a ostumbramos a idealizar el omportamiento
de las seales representndolas por pulsos "perfe tos". Sin embargo, ninguna seal
fsi a real puede ambiar de un estado a otro en tiempo ero; en otras palabras,
fsi amente no existen dis ontinuidades que permitan a una seal presentar dos
valores diferentes en un mismo instante de tiempo. Una mejor aproxima in a la
realidad, la ual es ampliamente usada en los manuales de fabri antes, onsiste en
asignarle una rampa de subida al an o delantero del pulso, un nivel onstante al
tiempo de permanen ia, y una rampa de bajada al an o posterior. Ahora la seal
toma ierto tiempo, ono ido omo tiempo de subida (t ), para pasar de bajo a
alto, y otro tiempo normalmente diferente, llamado tiempo de bajada (t ), para
ambiar de alto a bajo (ver gura 4.5).
r

An esta aproxima in, siendo normalmente buena, no es exa ta. Las ratas de
ambio en las transi iones no son onstantes debido a apa itan ias parsitas que,
aunque muy pequeas, apare en inevitablemente en: la unin de semi ondu tores,
el ableado interno que une los semi ondu tores a los pines del dispositivo, la
longitud y disposi in del ableado externo de onexin y otros fenmenos fuera
del al an e de este trabajo. De esta manera, la forma real de una seal de salida
de un dispositivo lgi o, en los an os de subida y de bajada, se orresponden a
las de arga y des arga de un ondensador en un ir uito RC. En este aso, los

4.1. LGICA DE RESISTENCIA Y TRANSISTOR (RTL)

Figura 4.5: Representa in de una seal digital

71

72
tiempos de subida y de bajada se miden on respe to a los niveles lmites que
indi an la validez de un estado.

4.1.5. Retraso de Propaga in


El omportamiento dinmi o ompleto de un elemento lgi o, adems de los
tiempos de subida y bajada de una seal, tiene que ver on el tiempo que toma un
dispositivo en al anzar una salida estable uando la entrada sufre un ambio. Este
tiempo es ono ido omo retraso de propaga in (t ). Este retraso de propaga in
est aso iado on el amino el tri o que sigue la seal desde la entrada hasta
la salida del dispositivo; es de ir, la antidad de elementos integrados que estn
aso iados a un omportamiento determinado, y que sufren modi a iones que no
pueden o urrir en tiempo ero. Digamos, a manera de ejemplo, que un amino
el tri o de una ompuerta est formado por varios transistores, enton es ada
uno de estos tomar alguna antidad de tiempo para operar los ambios que la
ex ita in indi a (adems de los tiempos de subida y bajada, estn los tiempos de
alma enamiento, ne esarios para sa ar un transistor de satura in).
p

De esta manera, en ontramos dos omponentes para los retardos de


propaga in: (1) el tiempo entre un ambio en la entrada y la salida
orrespondiente, uando la salida esta ambiando de alto a bajo (t
); y (2)
el tiempo entre un ambio en la entrada y la salida orrespondiente, uando la
salida esta ambiando de bajo a alto (t
). Usualmente los fabri antes espe i an
los retrasos de propaga in en rela in on el punto medio de la transi in, as
omo la dura in mnima del pulso (t (min) ), omo se apre ia en la gura 4.6.
pH L

pLH

4.1.6. Otras ompuertas RTL


La gura 4.7 muestra una ompuerta NOR, de dos entradas, uyo
omportamiento des ribiremos a ontinua in.
Con ambas entradas en nivel Bajo, los dos transistores estarn ortados; de
esta forma en punto F tendr un nivel alto. Al pasar ualquier entrada, o ambas, a
Alto, el transistor orrespondiente se saturar, llevando el punto F a un nivel bajo.
Este omportamiento des ribe a una ompuerta NOR: ualquier bajo produ e un
alto.
Es interesante notar que el nmero de entradas de la ompuerta depende de
la antidad de transistores que one temos en paralelo. La pregunta obvia es:
Cuantas entradas omo mximo podemos realmente agregar?.

4.1. LGICA DE RESISTENCIA Y TRANSISTOR (RTL)

Figura 4.6: Tiempos de Propaga in

Vcc
R3
F

R1

R2

Figura 4.7: Compuerta NOR.

73

74

4.1.7. El Fan in
Cuando diseamos un inversor lgi o en base a un transistor estable amos que
la resisten ia de orte de un transistor (R ) poda ser tan baja omo algunas
de enas de K . Si olo amos n transistores, para formar una ompuerta NOR
de n entradas, y analizamos en momento uando todos estn ortados, tendremos
un ir uito equivalente de n resisten ias de orte (R ) en paralelo, y todas estas
en serie on la resisten ia de pull-up. El paralelo de las n resisten ias de orte
produ ir, en algn momento, un valor en una magnitud er ana a la resisten ia
de pull-up, formando un divisor resistivo que produ ir una ada de tensin
signi ante (por debajo del lmite inferior para un nivel alto), uando esperbamos
que esto no o urriera.

of f

of f

Se dene, enton es, omo fan in el nmero mximo de entradas que una
ompuerta pueda tener, sin alterar la opera in lgi a del ir uito para ualquier
ombina in de entradas.

4.2. Diodos y Lgi a de Resisten ias y Diodos


(RDL)
Ya hemos visto omo un transistor puede ser usado para realizar opera iones
lgi as. En este momento, examinaremos las posibilidades de los diodos de ser
explotados omo elementos de ir uitos lgi os.
Sabemos, desde nuestros estudios de ele trni a, que el diodo es un dispositivo
semi ondu tor uya ara tersti a de transferen ia ideal presenta dos estados bien
denidos en uanto a la ir ula in de orriente. Cuando el dispositivo se polariza
dire tamente, y el voltaje apli ado ex ede un punto de umbral (0.6V para diodos
de sili io y 0.2V para diodos de germanio), la ir ula in de orriente es mxima.
Por el ontrario, si se polariza inversamente, o el voltaje apli ado no al anza el
punto de umbral, la ir ula in de orriente es nula. Este omportamiento binario
puede ser aprove hado para la onstru in de fun iones lgi as, omo veremos a
ontinua in.
Vcc
R
F
A

Figura 4.8: Seguidor BJT

75

4.2. DIODOS Y LGICA DE RESISTENCIAS Y DIODOS (RDL)

En el ir uito de la gura 4.8, si el punto de entrada A est one tado a un


voltaje igual a Gnd (bajo), enton es los diodos estn dire tamente polarizados y
ondu en; el voltaje en la salida F ser igual a la ada de tensin en el diodo
(0.6V si utilizamos un diodo de sili io) y por tanto tendr un nivel lgi o Bajo;
en este ltimo aso, la orriente estar limitada por la resisten ia R.
Obviamente, debemos modi ar los limites para lo ual onsideraremos un
nivel lgi o bajo (re ordemos que en RTL denamos Bajo entre 0.0V y 0.5v).
Para esta familia el lmite superior para la banda de Bajo debe estar por en ima
de los 0.6V, a menos que usemos entradas negativas lo ual signi a la presen ia
de dos tipos de fuentes de alimenta in y un in remento signi ativo en los ostos
de fabri a in y opera in. De esta manera jaremos el nivel Bajo entre 0.0V y
1.0V; para onservar el margen de seguridad en 1.5V, onsideraremos Alto entre
2.5V y 5.0V.
Si regresamos a la gura 4.8 y omenzamos a in rementar linealmente el
voltaje en el punto A, enton es el voltaje en el punto F tambin se in rementar
linealmente mantenindose por en ima de A, hasta que el voltaje de entrada est
muy er ano a V , donde perderemos la linealidad por entrar en el odo de la
urva de transferen ia del diodo, la orriente disminuir rpidamente hasta ero
y el punto F al anzar a V , po o antes que A llegue a V .
Bien, ahora agreguemos a nuestro ir uito original un segundo diodo (gura
4.10). En este aso si ambas entradas A y B estn en un nivel Bajo, ambos
diodos ondu en y el punto F estar Bajo on una tensin entre ; V y V
; V ( V
; V , dependiendo ual de ellos sea ms bajo). Si el punto A se
onserva Bajo y B se pasa a Alto, enton es F permane er en Bajo, debido a que
d quedar inversamente polarizado y no ondu ir. Igual razonamiento apli ar
uando B est en Bajo y A en Alto. Finalmente, uando ambas entradas estn
Altas, enton es F estar Alta debido a que los diodos tienden a dejar de ondu ir.

06

06

+06

Esta opera in lgi a la podemos resumir en una tabla ( uadro 4.2), para
on luir que el omportamiento equivale a una fun in AND.
Cuadro 4.2: Opera in de la Compuerta AND RDL

Bajo Bajo Bajo


Bajo Alto Bajo
Alto Bajo Bajo
Alto Alto Alto

76

Figura 4.9: Diagrama de tiempos del seguidor RDL.


Vcc
R
dA

A
B
dB

Figura 4.10: Compuerta AND RDL.

4.3. LGICA DE DIODOS Y TRANSISTORES (DTL)

77

An no hemos hablado del valor de R. Si se ha planteado que orrientes por el


orden de algunos miliamperios son su ientes para las familias lgi as, podemos
pensar, enton es, que on un valor de algunos kilo-ohms estaremos en un rango
ade uado.

4.3. Lgi a de Diodos y Transistores (DTL)


Si unimos la ompuerta AND (RDL) on el inversor (RTL), obtendremos una
nueva ompuerta NAND de la denominada familia DTL (gura 4.11).
Vcc
R
dA

A
B
dB

Figura 4.11: Compuerta NAND DTL.


Sin embargo, deberemos realizar algunas pequeas modi a iones para que
esta pueda operar apropiadamente. De a uerdo a nuestras deni iones de voltaje
bajo para la familia RDL, este poda llegar hasta 1.0V. As si A y B estn
bajos, podemos esperar, perfe tamente, 1.0V en el punto C. Este nivel de tensin
no es un bajo lgi o para la familia RTL, enviando el transistor a satura in,
uando debera estar en orte. De esta forma, se a ostumbra olo ar un diodo
(normalmente los fabri antes usan dos), entre la salida de la ompuerta AND y la
entrada de la ompuerta NOT, que produz an una ada de tensin que garanti e
el estado de orte del transistor (gura 4.12).
La in orpora in de estos diodos, para mejorar la respuesta a un nivel bajo,
empeora la respuesta a un nivel alto. Cuando A y B estn en un nivel alto, los
diodos de entrada no ondu en, quedando una malla a la entrada del transistor,
uya e ua in es, en el mejor de los asos:

= 1K
 I + V d + V d + 20K
 I + V be
) I = i = V 212VKd
V be
b

78
Vcc
R
C

dA

F
D

A
B
dB

Figura 4.12: Compuerta NAND DTL (modi ada).


mu ho menor que la expresin que garantizaba la satura in, uando
estudibamos el inversor. Enton es, se realiza la segunda modi a in al ir uito
(4.13), olo ando la resisten ia de entrada al inversor en paralelo on la unin base
- emisor para garantizar la orriente de base ne esaria que sature al transistor para
un nivel alto a la salida de la AND.
Vcc
R
dA

2k

1k
C

F
D

A
B

20k
dB

Figura 4.13: Compuerta NAND DTL (nal).

4.4. Lgi a de Transistor - Transistor (TTL)


Esta es la familia lgi a ms popular y de mayor utiliza in, tanto en la
industria omo en edu a in, aunque ha sido des ontinuada por la mayora de
los fabri antes para dar paso a nuevas te nologas. Est formada por una serie
de subfamilias que le propor ionan diferentes ara tersti as tanto en velo idad,
onsumo de energa, inmunidad al ruido, et . El orazn de estos omponentes
lo forman transistores multi-emisor, que reemplazan a los diodos on fun iones
lgi as de la familia DTL.

4.4. LGICA DE TRANSISTOR - TRANSISTOR (TTL)

79

4.4.1. Inversor TTL


La gura 4.14 muestra un inversor de la familia TTL estndar, la que
onstituye la estru tura bsi a omn a todos las ompuertas y subfamilias TTL.
Vcc
R1
4k

R2
1.6k

Q2

Q1
D2

R3
130
Q4

R4
1k

F
Q3

Figura 4.14: Inversor TTL


Podemos expli ar su fun ionamiento, omo si se separaran, ada transistor
en un bloque fun ional. El este ir uito, Q1 es el transistor de a oplamiento de
entrada y D1 es el diodo de ja in de entrada ( lamp), que minimiza los efe tos
de rizados negativos en la entrada, impidiendo que una entrada baje de los -0.6V.
Es importante notar que el ujo de orriente se realiza de base a emisor uando
las entradas estn bajas, y de base a ole tor uando las entradas estn altas.
Q2 a ta omo un separador de fase (phase sliptter), propor ionando la
inversin y ampli a in en el ir uito.
Q3 a ta omo un manejador (driver) de los niveles bajos de salida y Q4 lo
ha e omo un manejador de los niveles altos.
Anali emos la forma de operar un po o ms en detalle. Supongamos que el
punto A est en un estado alto. De esta manera, no ir ula orriente desde la
base de Q1 ha ia ningn emisor. Sin embargo la unin base - ole tor queda
dire tamente polarizada por el poten ial que propor iona la fuente a travs de
R1. As uye orriente desde V , pasando por R1, la unin base - ole tor de
Q1, ha ia la base de Q2, de forma que Q2 est en ondu in. La orriente en
el emisor de Q2, formada por la orriente de ole tor ms la orriente de base
de Q2, se rami a a travs de R4 ha ia tierra y por la base de Q3. Enton es Q3
est tambin en ondu in y la salida F es igual al voltaje ole tor - emisor en
satura in de Q3 (menor o igual a 0.2v). Con Q2 y Q3 saturados el voltaje en la

80
base de Q4 es de 0.8V (0.6V de Vbe Q3 ms 0.2 V e(sat) de Q2 ), que resultan
insu ientes para ha erlo entrar en ondu in (para que Q4 entre en ondu in
se requieren una tensin mayor o igual a V e de Q2 ms Vd del diodo D1, ms
Vbe de Q4 ; es de ir, omo mnimo 1.4V); por tanto, Q4 est ortado. En estas
ondi iones, la orriente de ole tor de Q2 proviene desde la arga y se di e que
la salida est "a eptando" orriente (sinking urrent).
Supongamos, ahora, que el punto A est en un estado bajo. De esta manera,
la unin base - emisor de Q1 est dire tamente polarizada, uyendo orriente
desde V , pasando por R1, la unin base - emisor de Q1, ha ia el dispositivo que
maneja la entrada TTL (el ual debe re ibirla), y nalmente a tierra. Como Q1
est saturado, el voltaje en la base de Q2 es 0.2V ms grande que el voltaje de
nivel bajo apli ado a la entrada. Debido a que el lmite superior para un nivel bajo
TTL es de 0.8V, en aso extremo la base de Q2 tendr 1.0V. Sin embargo, para
que este transistor y Q3 entren en ondu in se requieren omo mnimo 1.2V
(las dos adas base - emisor). As Q2 y Q3 estn ortados. De esta forma, al
estar Q2 ortado, la base de Q4 es forzada a alto a travs de R2, y Q4 se satura.
El punto F estar a un nivel alto, pero mu ho ms bajo que V (exa tamente
V menos la ada en R3, menos V e(sat) de Q4, menos la ada Vd del diodo
D1 ). En estas ondi iones, la orriente de salida uye desde la fuente, pasando
por R3, Q4, D1 y por la arga ha ia tierra. Se habla enton es de que la salida
est suministrando orriente (sour e urrent).

4.4.2. NAND TTL


La gura 4.15 muestra una ompuerta NAND de la familia TTL estndar.
Vcc
R1
4k

R2
1.6k

A
B
D2

Q1
D3

R3
130
Q2

Q4

R4
1k

F
Q3

Figura 4.15: Compuerta NAND TTL.

4.4. LGICA DE TRANSISTOR - TRANSISTOR (TTL)

81

Al igual que en el aso del Inversor, podemos expli ar su fun ionamiento, omo
si se separaran, ada transistor en un bloque fun ional. El transistor Q1, junto a
R1, forma una ompuerta AND, donde los diodos lsi os han sido reemplazados
por los emisores mltiples. Es importante notar que el ujo de orriente se realiza
de base a emisor uando las entradas estn bajas, y de base a ole tor uando
las entradas estn altas. Los diodos D2 y D3 (llamados de ja in o " lamp")
minimizan los efe tos de rizados negativos en la entrada, impidiendo que una
entrada baje de los -0.6V.
Q2 a ta omo un separador de fase (phase sliptter), propor ionando la
inversin y ampli a in en el ir uito.
Q3 a ta omo un manejador (driver) de los niveles bajos de salida y Q4 lo
ha e omo un manejador de los niveles altos.
Anali emos la forma de operar un po o ms en detalle. Supongamos los puntos
A y B en un estado alto. De esta manera, no ir ula orriente desde la base de
Q1 ha ia ningn emisor. Sin embargo la unin base - ole tor queda dire tamente
polarizada por el poten ial que propor iona la fuente a travs de R1. As uye
orriente desde V , pasando por R1, la unin base - ole tor de Q1, ha ia la base
de Q2, de forma que Q2 est en ondu in. La orriente en el emisor de Q2,
formada por la orriente de ole tor ms la orriente de base de Q2, se rami a
a travs de R4 ha ia tierra y por la base de Q3. Enton es Q3 est tambin en
ondu in y la salida F es igual al voltaje ole tor - emisor en satura in de Q3
(menor o igual a 0.2v). Con Q2 y Q3 saturados el voltaje en la base de Q4 es de
0.8V (0.6V de Vbe Q3 ms 0.2 V e(sat) de Q2 ), que resultan insu ientes para
ha erlo entrar en ondu in (para que Q4 entre en ondu in se requieren una
tensin mayor o igual a V e de Q2 ms Vd del diodo D1, ms Vbe de Q4 ; es
de ir, omo mnimo 1.4V); por tanto, Q4 est ortado. En estas ondi iones, la
orriente de ole tor de Q2 proviene desde la arga y se di e que la salida est
"a eptando" orriente (sinking urrent).
Supongamos, ahora, los puntos A y B (o al menos uno de ellos) en un estado
bajo. De esta manera, la unin base - emisor de Q1 est dire tamente polarizada,
uyendo orriente desde V , pasando por R1, la unin base - emisor de Q1, ha ia
el dispositivo que maneja la entrada TTL (el ual debe re ibirla), y nalmente a
tierra. Como Q1 est saturado, el voltaje en la base de Q2 es 0.2V ms grande que
el voltaje de nivel bajo apli ado a la(s) entrada(s). Debido a que el lmite superior
para un nivel bajo TTL es de 0.8V, en aso extremo la base de Q2 tendr 1.0V.
Sin embargo, para que este transistor y Q3 entren en ondu in se requieren
omo mnimo 1.2V (las dos adas base - emisor). As Q2 y Q3 estn ortados.
De esta forma, al estar Q2 ortado, la base de Q4 es forzada a alto a travs de

82
R2, y Q4 se satura. El punto F estar a un nivel alto, pero mu ho ms bajo que
V (exa tamente V menos la ada en R3, menos V e(sat) de Q4, menos la
ada Vd del diodo D1 ). En estas ondi iones, la orriente de salida uye desde
la fuente, pasando por R3, Q4, D1 y por la arga ha ia tierra. Se habla enton es
de que la salida est suministrando orriente (sour e urrent).

4.4.3. Niveles lgi os


Se denen para esta familia, adems de la regin normal de separa in entre
bajo y alto, dos bandas estre has omo margen de ruido para los estados altos y
bajos (gura 4.16). Esto da origen a los siguientes parmetros:
Vcc
ALTO
VOHmin

MARGEN

VIHmin
TRANSICION
VILmax

MARGEN

VOLmax
BAJO
Gnd

Figura 4.16: Niveles Lgi os TTL.

(2.4V): Voltaje mnimo de salida en el estado alto.

(2.0V): Voltaje mnimo de entrada en el estado alto.

(0.8V): Voltaje mximo de entrada en el estado bajo.

(0.4V): Voltaje mximo de salida en el estado bajo.

OH min

I H min

I Lmax

OLmax

Estos parmetros, ms onservativos, garantizan una mejor inter onexin entre


ompuertas TTL.

4.4.4. Entradas que no se usan


En algunas o asiones algunas entradas de una ompuerta no son utilizadas, de
a uerdo a las ne esidades del diseo y a la existen ia de ompuertas. Por ejemplo,
usted ne esita usar una NAND de tres entradas, pero se disponen en alma n
ompuertas on uatro entradas. Qu ha er on esas entradas no ne esarias desde
el punto de vista lgi o, ono idos omo entradas otantes?.

83

4.4. LGICA DE TRANSISTOR - TRANSISTOR (TTL)

Probablemente la primera inten in sea no ha er nada, es de ir, dejarla


otando. Visto as, en una ompuerta NAND TTL no podr ir ular orriente
a travs de ese emisor por no ofre er un amino el tri o, enton es est entrada
otando orresponde lgi amente a una entrada alta (la ual polariza inversamente
la unin base - emisor impidiendo la ir ula in de orriente). Sin embargo, y sin
nimo de entrar en detalles que orresponden al ampo de la ele trni a y los
ir uitos de pulsos, ualquier ruido produ ido en el ir uito, tal omo el que se
genera uando las ompuertas estn ambiando de estado, ser per ibido por el
transistor on entradas otantes, que al no tener referen ia el tri a espe  a,
se omportar, en algunas ondi iones, omo si tuviera una seal lgi a baja. De
esta forma, las entradas no usadas de una ompuerta TTL deben one tarse a
una fuente del nivel ade uado para que no interera on la opera in normal del
dispositivo. En el aso de ompuerta AND y NAND a un nivel alto, y en el aso
de ompuertas OR y NOR a un nivel bajo.
Obviamente, un ex elente nivel bajo es una onexin dire ta a tierra (Gnd ). No
obstante, en el aso de un nivel alto, una onexin dire ta a V , aunque fun ione,
no es re omendable, ya que un transiente, digamos del 10 % de V puede daar la
ompuerta. En su lugar, la onexin es realizada a V a travs de una resisten ia
limitadora en el rango de k a k .

1
5

Alternativamente, el lgebra de Boole nos propor iona otra posibilidad. Si


re ordamos el teorema de Idempoten ia (x  x
x x x
x), enton es
podremos one tar las entradas no usadas on ualquiera entrada que maneje
una seal lgi a. No obstante, esto impli a ompartir energa entre ompuertas,
disminuyendo la posibilidad de onexiones a otros mdulos al usar parte del fan
out de la ompuerta alimentadora.

+ =

Existen otras posibles solu iones, omo el uso de inversores o seguidores segn
se ameriten, pero esto, naturalmente, in rementa el osto del ir uito.

4.4.5. Entrada de Disparador de S hmitt


La urva ara tersti a de una ompuerta normal, a tuando omo inversora es
omo se muestra en la gura 4.18 (lnea punteada). Sobre la misma gura se ha
trazado la urva ara tersti a de un disparador de S hmitt. En ella se apre ia
laramente dos umbrales de transi in (V + y V ) y una zona, omprendida
entre estos, denominada histresis. Cuando el voltaje de entrada (V ) omienza a
aumentar a partir de ero, la salida se mantiene onstante a un nivel alto hasta
que la entrada no al an e V + . En este momento, la salida ambia brus amente
a un nivel bajo y permane e onstante en l hasta que el voltaje de entrada sea
mximo (V ). Por el ontrario, uando el voltaje de entrada (V ) omienza a
T

84
Vcc

A
F

Figura 4.17: Entradas no usadas.


disminuir, la salida se mantiene onstante a un nivel bajo hasta que la entrada
no al an e V . En este momento, la salida ambia brus amente a un nivel alto
y permane e onstante en l hasta que el voltaje de entrada sea mnimo (Gnd ).
T

VS
5.0

4.0
3.4

V T

V T+

2.0

1.0
0.2

VE
0.6 0.9

1.7

3.0

4.0

5.0

Figura 4.18: Fun in de Transferen ia de un Disparador de S hmitt

4.4. LGICA DE TRANSISTOR - TRANSISTOR (TTL)

85

Las entradas de Disparador de S hmitt tienen mayor inmunidad al ruido


y son espe ialmente tiles en apli a iones donde se emplean elementos ele tro
- me ni os omo entradas (rels, interruptores, te lados, et . ), as omo on
onexiones fsi amente largas ( ables, buses, et . ), donde se presentan reexiones
e indu iones ele tromagnti as.
La gura 4.19 muestra la respuesta de una ompuerta normal y una on
disparador de S hmitt, ante una entrada on ruido.

4.4.6. Salidas TTL


Las ompuertas TTL, des ritas anteriormente, poseen una disposi in omn
para la salida ono ida omo totem-pole.

4.4.6.1. Totem Pole


Bajo esta denomina in se agrupan las ompuertas que presenta su salida en
un arreglo de tres transistores: el separador de fase, el manejador de niveles bajos
y el manejador de niveles altos. La opera in de estos arreglos ya ha sido expli ada
en los apartados anteriores.

4.4.6.2. Cole tor abierto.


El nombre de este tipo de salida deriva del he ho de que no poseen
internamente: la resisten ia de polariza in ni el manejador de niveles altos,
quedando el ole tor de Q3 sin onexin (gura 4.20).
Para obtener los niveles lgi os ade uados debe one tarse externamente una
resisten ia (pull-up), u otro tipo de arga el tri a, entre el ole tor de Q3 y la
fuente de alimenta in.
Con este tipo de arreglo se logran dos ara tersti as de opera in importantes:
1) Limitar la orriente a un valor deseado; y 2) Alimentar la salida on un nivel
distinto a V (gura 4.21).

4.4.6.3. Alta Impedan ia (ter er estado)


La salida de Alta Impedan ia o triestado presenta tres estados de opera in:
alta, baja y ter er estado o des one tada. Poseen una entrada de ontrol adi ional
que sele iona entre una opera in normal (salidas alta o baja) y el estado de
alta impedan ia. La gura , muestra un inversor TTL de alta impedan ia on los
smbolos aso iados.

86

Figura 4.19: Respuesta temporal de un Disparador de S hmitt.

4.4. LGICA DE TRANSISTOR - TRANSISTOR (TTL)

Vcc
R1
4k

R2
1.6k

Q2

Q1
D2

R4
1k

F
Q3

Figura 4.20: Inversor TTL de Cole tor Abierto.

Vcc
R1
4k

R2
1.6k

Q2

Q1
D2

Vdd

R4
1k

F
Q3

Figura 4.21: Apli a in de una salida ole tor abierto.

87

88
Vcc
R1
4k

R2
1.6k

Q2

Q1

R3
130
Q4

D2
E

A=0

E=0

D3
Q5

F=1

R4
1k

A=1

E=0

F
Q3

F=0

A=X

F=Z

E=1

Figura 4.22: Inversor TTL on salida de alta impedan ia.


Cuando la entrada de habilita in (E ) est en nivel bajo, Q5 no ondu e y
el ir uito fun iona en la ongura in totem-pole normal. Cuando la entrada de
habilita in (E ) est en nivel alto, Q5 ondu e, luego en el segundo emisor de Q1 se
produ e un nivel bajo, ha iendo que Q2 y Q3 se bloqueen y el diodo D3 se polari e
dire tamente, ha iendo que Q4 tambin se bloquee. Como ambos transistores del
totem-pole quedan ortados, la salida est  ompletamente des one tada del resto
del ir uito interno (a no ser por la pequeas orrientes de fuga), y el punto F de
la salida queda el tri amente aislado (otando).

4.4.7. Otras familias TTL


La familias TTL est formada, adems, por otras sub-familias que poseen
ara tersti as de opera in parti ulares:
TTL de bajo onsumo (54L / 74L): La serie 54L/74L se ara teriza por el
bajo onsumo de energa (alrededor de 1mW ), por lo ual sus resisten ias
internas son de un tamao onsiderablemente mayor a los de la serie normal,
donde el onsumo promedio de energa es de 10mW. Este ahorro de energa
se onsigue en desmedro de la velo idad de propaga in de las ompuertas
(33ns), volviendo estos ir uitos onsiderablemente ms lentos que la serie
normal (10ns).
TTL S hottky (54S / 74S): La serie 54S/74S se ara teriza por tener una
rpida respuesta de onmuta in, es de ir bajo tiempo de propaga in

4.5. LGICA CMOS

89

(alrededor de 3ns), en ompara in on la serie normal (10ns), debido a


que los diodos y transistores que se in orporan son del tipo S hottky. Esta
mejora en la velo idad de respuesta se onsigue en desmedro del onsumo
de energa (19mW ), en ompara in on la serie normal (10mW ).
TTL S hottky de bajo onsumo (54LS / 74LS): La serie 54LS/74LS se
ara teriza por al anzar una suerte de ompromiso entre la velo idad de
respuesta y el onsumo de energa. Su onstru in bsi a, a partir de
una ompuerta S hottky, es eliminar el transistor multiemisor de entrada
y ambiarlo por diodos S hottky. De esta manera se logran tiempos de
propaga in del orden de los 10ns y onsumos de poten ia de 2mW.
TTL S hottky Avanzada (54AS / 74AS): La serie 54AS/74AS son versiones
te nolgi amente avanzadas de la serie S. La disipa in de poten ia tpi a
es de 8.5mW y un retardo de propaga in de 1ns. Existe una versin de
esta serie que se designa por F (Fast).
TTL S hottky Avanzada de bajo onsumo (54ALS / 74ALS): La serie
54ALS/74ALS son versiones te nolgi amente avanzadas de la serie LS. La
disipa in de poten ia tpi a es de 1mW y un retardo de propaga in de
4ns.

4.5. Lgi a CMOS


La familia lgi a CMOS (Complementary Metal-Oxide Semi ondu tor) basa
su diseo estru tural en la utiliza in de transistores semi ondu tores de efe to
de ampo de oxido de sili io (MOSFET ). El trmino omplementario se debe a la
presen ia de dos tipos de transistores simultneamente: los tipo N y los tipo P.

4.5.1. El inversor CMOS


La gura 4.23 muestra un inversor de la familia CMOS, formado por dos
MOSFET : uno de anal N y otro de anal P.
Cuando se apli a una entrada de nivel alto el MOSFET de anal p (Q1 ) no
ondu e, y el MOSFET de anal n (Q2 ) ondu e (se satura), olo ando un nivel
bajo en el punto de salida a travs de la resisten ia de ondu in de Q2 . Cuando
se apli a una entrada de nivel bajo el MOSFET de anal p (Q1 ) ondu e, y el
MOSFET de anal n (Q2 ) no ondu e, olo ando un nivel alto en el punto de
salida a travs de la resisten ia de ondu in de Q1 .

90
Vdd
S
G

Q 1 canal p
D

F
D
Q 2 canal n
G
S

Figura 4.23: Inversor CMOS

4.5.2. NAND CMOS


La gura 4.24 muestra una ompuerta NAND de la familia CMOS, formado
por dos pares omplementarios de MOSFET .
Vdd

Q1

Q2
F
Q3

Q4
B

Figura 4.24: NAND CMOS

91

4.5. LGICA CMOS

La opera in de esta ompuerta puede ser expli ada mediante una tabla, donde
C y S representan Corte y Satura in, respe tivamente.
Cuadro 4.3: Tabla de Opera in de una ompuerta NAND CMOS
A
L
L
H
H

B Q1
L S
H C
L S
H C

Q2 Q3 Q4 F
S
S
C
C

C
C
S
S

C
S
C
S

H
H
H
L

4.5.3. Inversor CMOS Triestado


La gura 4.25 muestra un inversor CMOS triestado.
Vdd

Q3

Q1
F
Q2
E

Q4
A

Figura 4.25: Inversor CMOS triestado


Cuando la entrada de habilita in (E ) est a nivel bajo, el dispositivo se a tiva
para fun ionamiento omo un inversor normal. Cuando la entrada de habilita in

92
(E ) est a nivel alto, Q1 y Q2 entran a orte al mismo tiempo, des one tando la
salida del resto del ir uito (estado de alta impedan ia).

4.6. Otras Familias Lgi as


Esta se in slo pretende nombrar otras te nologas de las a tualmente
empleadas en el diseo y fabri a in de ir uitos lgi os. No se har ningn estudio
ni anlisis, solo una brevsima men in.

4.6.1. ECL
La familia ECL (Emitter-Coupled Logi ) es una te nologa de tipo bipolar,
tpi amente formado por un ir uito de entrada ampli ador diferen ial, un
ir uito de polariza in y salidas seguidor de emisor. ECL es mu ho ms rpida
que TTL, ya que los transistores no fun ionan en satura in.

4.6.2. PMOS
Una de las primeras te nologas para produ ir ir uitos MOS de alta densidad
fue la PMOS. En esta se utilizan transistores MOS de anal p, en modo de real e
(enhan ement) para produ ir los bloques bsi os de una ompuerta.

4.6.3. NMOS
Con el mejoramiento de la te nologa de pro esamiento apare ieron
los dispositivos NMOS, ampliamente utilizados hoy en memorias y
mi ropro esadores.

4.6.4. E2CMOS

La te nologa E2 CMOS est basada en una ombina in de CMOS y NMOS


y se utiliza bsi amente en el diseo de dispositivos lgi os tipo GAL (Arreglo de
Compuertas Lgi os), ubiertos en el aptulo que trata sobre nuevas metodologas
de diseo.

4.7. Cir uitos Integrados


Espe  as

de

Apli a iones

Esta se in ha sido ompletamente re onstruida y ahora es ubierta omo


parte del aptulo que trata sobre nuevas metodologas de diseo.

Captulo 5
Minimiza in de las fun iones de
Boole.
La realiza in de una expresin lgi a simpli ada resulta en un ir uito
fun ionalmente equivalente, pero on menor nmero de literales y ompuertas,
lo ual debera ha erlo ms e onmi o (no siempre ierto). De esta manera,
la utiliza in de los axiomas y teoremas del lgebra de Boole obran singular
importan ia. Sin embargo, el orden en que ellos son apli ados no nos garantizan
una expresin mnima, al des ono er el mejor amino de manipula in. Por esta
razn han sido desarrolladas diferentes herramientas para lograr una redu in
sistemti a de las expresiones Booleanas.

5.1. Mapas de Veit h - Karnaugh.


Una de las prin ipales herramientas de diseo para la simpli a in de
fun iones Booleanas son los ono idos Mapas K, desarrollados por Veit h y
renados por Mauri e Karnaugh.

:
= (0 0) (0 1) (1 0) (1 1)

Sabemos que ada fun in booleana, de dos variables F( ) S x S ! S , le


asigna a ada elemento del dominio S x S
f ; ; ; ; ; ; ; g un solo
elemento de S
; , situa in que reejbamos en una tabla de verdad, en
donde ada la de la tabla representa un trmino produ to de todas las posibles
ombina iones de los literales de las variables. Cada trmino produ to que tiene
un uno en la olumna de la fun in F es un mintrmino de la fun in denido en
la tabla de verdad. La fun in puede ser expresada, enton es, en la forma anni a
de suma de produ tos omo la suma lgi a de los mintrminos de la fun in.
a;b

= (0 1)

Si las variables a y b son onsideradas omo ejes de un sistema bidimensional,


enton es el dominio de la fun in divide el universo de dos variables en 4 eldas
de un mapa, omo se muestra en el uadro 5.1:
93

94

Cuadro 5.1: Mapa K de dos variables

0
1

(0; 0) a  b m0 (0; 1) a  b m1
(0; 0) a  b m2 (1; 1) a  b m3

En el aso de una fun in de tres variables a, b y , las las de la tabla de


verdad son numeradas en una se uen ia binaria, la ual posee una distan ia mayor
a uno entre un digo y el inmediato siguiente (para algunos asos). Para tomar
ventaja del teorema de adya en ia (xy xy x), los trminos produ tos deben
ser representados en el mapa o upando eldas adya entes, que solo dieran en una
variable ( uadro 5.2).

Cuadro 5.2: Mapa K de tres variables

0
1

00

01

11

10

(0; 0; 0) ab m0 (0; 0; 1) ab m1 (0; 1; 1) ab m3 (0; 0; 1) ab m2


(1; 0; 0) ab m4 (1; 0; 1) ab m5 (1; 1; 1) ab m7 (1; 0; 1) ab m6

El orden en que se ubiquen las variables en el mapa, siempre respetando la


pondera in del digo binario, solo afe ta la forma del mapa, pero las eldas
adya entes slo dieren en una variable. Si los extremos del mapa son vistos omo
un ilindro abierto, enton es las eldas de la olumna a la izquierda son adya entes
on las eldas de la olumna de la dere ha (o superior e inferior), al diferir slo
en una variable. De esta manera, la adya en ia fsi a de las eldas se orresponde
on la adya en ia lgi a de los trminos produ tos ( uadro 5.3).

5.1.1. Mapas de 4, 5 y 6 variables.


A medida que el nmero de variables de una fun in booleana aumenta,
aumenta el nmero de eldas y la omplejidad de su representa in gr a.
En el aso de una fun in de uatro variables a, b, y d , el nmero de eldas
ser 16 (24 ) y su representa in gr a se adapta, an, perfe tamente en un plano
( uadro 5.4).
En este aso todas las eldas ve inas, de manera horizontal y/o verti al, son
adya entes. De la misma manera, son adya entes las eldas de la primera la

95

5.1. MAPAS DE VEITCH - KARNAUGH.

ab

0
1

00
01
11
10

00

01

ab

11

10

m0 m2 m6 m4
m1 m3 m7 m5
0

m0
m2
m6
m4

Cuadro 5.3: Otros mapas K de tres variables

m1
m3
m7
m5

0
1

00
01
11
10

00

01

00

00 m0
ab 01 m4
11 m12
10 m8

01

11

10

m0 m4 m5 m1
m2 m6 m7 m3
0

m0
m1
m3
m2

m4
m5
m7
m6

Cuadro 5.4: Mapa K de uatro variables


d

11

10

m1 m3 m2
m5 m7 m6
m13 m15 m14
m9 m11 m10

96
on las respe tivas de la ltima, y las eldas de la primera olumna on las
respe tivas de la ltima olumna. Es de ir, nos referimos a un ilindro abierto
simultneamente en los sentidos horizontal y verti al.
En el aso de una fun in de in o variables a, b, , d y e , el nmero de
eldas ser 32 (25 ) y su representa in gr a ya no se adapta perfe tamente en
un plano. Podemos imaginarnos su onstru in omo un mapa doble de uatro
variables ( uadro 5.5).
Cuadro 5.5: Mapa K de in o variables
a=0
b

00

00 m0
01 m4
11 m12
10 m8

01

de

11

10

m1 m3 m2
m5 m7 m6
m13 m15 m14
m9 m11 m10

a=1
00
b 01
11
10

00

m16
m20
m28
m24

01

m17
m21
m29
m25

de

11

m19
m23
m31
m27

10

m18
m22
m30
m26

En este aso, se umplen todas las ondi iones de adya en ia ya vistas para
un mapa K4. Pero, adems, todas las eldas del primer mapa K4 son adya entes
on las respe tivas del segundo.

Figura 5.1: Mapa K de in o variables


Finalmente, En el aso de una fun in de seis variables a, b, , d, e y f, el
nmero de eldas ser 64 (26 ) y su representa in gr a ya se torna bastante
engorrosa. Podemos imaginarnos su onstru in omo un mapa doble de in o
variables ( uadro 5.6).

97

5.1. MAPAS DE VEITCH - KARNAUGH.

Cuadro 5.6: Mapa K de seis variables


ab=00
d

00 m0
01 m4
11 m12
10 m8

ab=01
d

00

00
01
11
10

00

m32
m36
m44
m40

01

ef

11

10

m1 m3 m2
m5 m7 m6
m13 m15 m14
m9 m11 m10
01

m33
m37
m45
m41

ef

11

m35
m39
m47
m43

10

m34
m38
m46
m42

ab=01
d

00
01
11
10

ab=11
d

00
01
11
10

00

01

m16
m20
m28
m24

m17
m21
m29
m25

00

01

m48
m52
m60
m56

m49
m53
m61
m57

ef

ef

11

10

m19
m23
m31
m27

m18
m22
m30
m26

11

10

m51
m55
m63
m59

m50
m54
m62
m58

En este aso, se umplen todas las ondi iones de adya en ia ya vistas para
un mapa K5. Pero, adems, todas las eldas del primer mapa K5 son adya entes
on las respe tivas del segundo.

Figura 5.2: Mapa K de seis variables


Resulta evidente la di ultad de representar por medio de mapas K fun iones
on un nmero mayor de variables. De esta forma, dejaremos para ms adelante
los me anismos mediante los uales se a ometen el estudio de fun iones booleanas
on un gran nmero de variables.

98

5.2. Simpli a in de las fun iones booleanas en


los mapas k.
5.2.1. Cobertura mnima.
Desde el punto de vista de los mapas K, una obertura es la ole in de
re tngulos, agrupados en
eldas, que engloban a todos los mintrminos de una
fun in. As, una obertura puede onsistir en la unin de ada elda individual
que posee un mintrmino. No obstante, normalmente esta no es la obertura
mnima. De esta manera, podemos denir a la obertura mnima omo la SDP
(Suma De Produ tos) de F que posee el menor nmero de trminos produ tos y
ualquiera de estos tiene el menor nmero de literales.

Ubi ados todos los mintrminos que forman una fun in en un mapa K,
podemos seguir el pro edimiento siguiente para en ontrar una obertura mnima
:
1. En ierre en un re tngulo ada elda que ontenga un 1 aislado y mrquela
on un asteris o (*).

2. En ierre en un re tngulo, de
eldas, la mayor antidad de eldas
adya entes que ontengan unos, y que no estn ontenidas en un bloque
mayor. Contine el pro eso hasta obtener re tngulos de 2 eldas.
n

3. Con luido el paso anterior, anali e los bloques de mayor tamao y marque
on un asteris o (*) las eldas que
p estn ubiertas solo por este bloque.
Marque on un signo de hequeo ( ) todas las eldas restantes del bloque
que ontiene, al menos, un asteris o.
4. Repita el paso anterior on los bloques

1 hasta 21 .

5. Una obertura mnima onsiste de todos los bloques esen iales (aquellos on,
al menos, una elda on asteris o), aumentado por unappequea ole in
de otros bloques que ubren los mintrminos restantes ( ).
Por ejemplo, onsidere la fun in F(

a;b; ;d

)=

00 01
00
1
ab 01
1
11 1 1
10

(1; 5; 6; 7; 11; 12; 13; 15):

11 10
1
1
1

De esta forma, una obertura mnima estar formada por

5.2. SIMPLIFICACIN DE LAS FUNCIONES BOOLEANAS EN LOS MAPAS K.99

_ _
acd

cd

ab

00

01

11 10

00

1*

01

11

1*

_
abd

1*

1*

10
_
abc

bd

acd

Figura 5.3: Mapa K para fun in de ejemplo de minimiza in

F(

a;b; ;d

) = ab + ab + a d + a d

El bloque bd no es ne esario ya que todos sus mintrminos estn ubiertos.


En una fun in booleana F representada en la forma de SDP, un trmino
produ to P es un impli ante de F s, y slo s, F
para ada ombina in de
valores de entrada en los uales P
. En otras palabras, en la forma SDP un
impli ante es ualquier trmino produ to. Por ejemplo, en

=1

F(

a;b; ;d

=1

) = a d + abd + ab + ab + ab d

todos los trminos produ tos (a d, abd, ab , ab y ab d) son impli antes de la


fun in.
Expandamos la expresin para obtener todos los mintrminos de la fun in,

F(

a;b; ;d

= a d + abd + ab + ab + ab d
= a d(b + b) + abd( + ) + ab (d + d) + ab (d + d) + ab d
= ab d + ab d + ab d + ab d + ab d + ab d + ab d + ab d + ab d
= (1; 5; 1; 3; 4; 5; 12; 13; 10)
= (1; 3; 4; 5; 10; 12; 13)

y expresmosla en un mapa K (gura 5.4)


Un impli ante de F es un impli ante primo (IP ) de F si l no est ontenido
en un bloque superior de mintrminos que forman un impli ante de F. En nuestro
ejemplo a d (1,5), abd (1,3) y ab d (10) son impli antes primos, pero ab (4,5) y
ab (12,13) no lo son ya que ambos estn ontenidos en b (4,5,12,13), omo se
apre ia en la siguiente expresin:

100

cd
00 01 11 10
1

00
01

11 1

ab
1

10
Figura 5.4: Mapa K para la fun in

(1; 3; 4; 5; 10; 12; 13)

ab + ab = b (a + a) = b
Un impli ante primo (IP ) de F es un impli ante primo esen ial (IPE ) de
F si IP ontiene un mintrmino que no est ontenido en ningn otro impli ante
primo de F. En nuestro aso, abd (1,3) es un IPE de F porque l ontiene el
mintrmino ab d (3) que no est ontenido en ningn otro IP de F. Adems, el IP
b es tambin un IPE de F porque ontiene los mintrminos (4, 12 y 13) (ab d,
ab d y ab d) no ontenidos en ningn otro IP de F. El IP a d (1,5) no es un
IPE de F debido a que ada mintrmino ontenido en l [ab d (1) y ab d (5)
pertene en a abd (1,3) y b (4,5,12,13) respe tivamente.
Un mintrmino aislado de F o ualquier mintrmino de un IPE de F es un
mintrmino distinguido (*) de F. En nuestro aso, los mintrminos (3, 4, 10,
12 y 13)
Podemos ahora redenir el on epto de obertura mnima, la ual onsiste en
todos los IPE's y un onjunto pequeo, no redundante, de impli antes primos no
esen iales (IPNE ) que ubren todos los mintrminos que no son ubiertos por los
IPE's de F. De la misma manera, podemos denir la suma mnima (SM ), de
una fun in booleana F, omo la suma lgi a de produ tos (SDP) de todos los
IPE's y un pequeo onjunto de IPNE's que ubren todos los mintrminos no
ubiertos por los IPE's de F . Es importante notar que la obertura mnima, as
omo la suma mnima, no son ni as.

5.3. MINIMIZACIN TABULAR DE FUNCIONES BOOLEANAS.

101

Un Impli ante Primo 1 (IP1 ) domina a otro impli ante primo (IP2 ), si el
primero ubre los mismos mintrminos no hequeados que el segundo y, al menos,
un mintrmino no hequeado adi ional, y se denota por IP1 > IP2 . Veamos el
siguiente ejemplo para lari ar este ltimo on epto:

F(

a;b; ;d

) = (4; 5; 6; 9; 11; 13; 14; 15)

cd
00 01 11 10
00
01

ab

11

10

Figura 5.5: Mapa K para la fun in

(4; 5; 6; 9; 11; 13; 14; 15)

De aqu se desprende que ab (4,5) domina a b d (5,13) y b d (6,14) domina a


ab (14,15). Esto se apre ia ms laro en el mapa K de impli antes redu idos, en
donde solo se representen los no hequeados.

5.3. Minimiza in tabular de fun iones booleanas.


Los mapas K son herramientas importantes en la simpli a in de fun iones
lgi as pero su debilidad estriba en la apa idad intuitiva que posea el diseador
para apre iar la agrupa in de eldas adya entes, sobre todo uando el nmero
de variables ex ede a uatro. Por otra parte, no garantiza una realiza in mnima
de SDP ; pero , tal vez, la prin ipal desventaja sea en que are e de un onjunto
sistemti o de reglas de utiliza in que garanti en el objetivo de minimiza in.
Esta situa in es orregida on los trabajos desarrollados por Quine ( en 1952 ) y
M Cluskey ( en 1956 ).

5.3.1. El mtodo de Quine - M Cluskey .


Basados en los on eptos de adya en ia propor ionados por los mapas K y
en el valor del digo binario asignado a ada mintrmino en una fun in, el

102

cd
00 01 11 10
00
01

ab

11

1
1

10
Figura 5.6: Mapa K redu ido para la fun in

(4; 5; 6; 9; 11; 13; 14; 15)

pro eso de agrupar impli antes adya entes se redu e a en ontrar todas las posibles
ombina iones de mintrminos on distan ia lgi a uno, para lo ual la diferen ia
de sus valores debe ser exa tamente una poten ia de 2. De esta manera, ada
mintrmino o ubo 0 de una fun in debe ompararse on los restantes, si la
diferen ia de sus valores es una poten ia exa ta de 2, es de ir, su distan ia lgi a
es uno (solo ambia una variable en posi in i), enton es se agrupan formando un
ubo superior al ual se le ha eliminado la variable de la posi in i , y los ubos 0 se
mar an omo ya ubiertos por el ubo re in formado. Terminada la ompara in
para los ubos 0, se repite para los ubos de orden superior que resultaren reados
en el paso anterior, teniendo presente que adems de la diferen ia a la que ya hemos
he ho referen ia, para que puedan ser ombinables deben poseer la(s) misma(s)
variables eliminadas. El pro eso naliza uando no puedan rearse ubos de orden
superior. En este punto debe haber quedado, al menos, un ubo-n sin ombinarse.
Todos los ubos-n no ombinados forman los impli antes primos de la fun in.
Es obvio que omparar un mintrmino on todos los otros resulta en un esfuerzo
perdido, ya que solo tienen la posibilidad de ser adya entes aquellos que en la
representa in de su digo tienen una antidad de unos uya diferen ia sea uno,
debido a que en ualquier otro aso la distan ia lgi a entre ellos sera mayor o
igual a 2. De esta manera, resulta en un ahorro onsiderable omenzar por agrupar
los mintrminos de la fun in por la antidad de unos que posea su digo, y
posteriormente omparar solo grupos ontiguos. Esto produ ir ubos de orden
superior tambin agrupados por el mismo riterio ms la variable eliminada del
produ to que ellos forman.

5.3. MINIMIZACIN TABULAR DE FUNCIONES BOOLEANAS.

Desarrollaremos el pro edimiento para F(


[ uadro 5.7:

a;b; ;d

103

= (0; 2; 3; 6; 7; 8; 9; 10; 13)

Cuadro 5.7: Mtodo de Quine - M Kluskey


# 1s Cubo
0
p
0
0
p
1
2p
8p
2
3p
6p
9
p
10 p
3
7 p
13

Cubo p
1
0,2(2)
p
0,8(8) p
2,3(1) p
2,6(4) p
2,10(8)
8,9(1) *
p
8,10(2) p
3,7(4) p
6,7(1)
9,13(4) *

Cubo 2
0,2,8,10(2,8) *
2,3,6,7(1,4) *

Como se apre ia en el uadro 5.7, hemos en ontrado un onjunto de impli antes


primos {[2, 3, 6, 7(1, 4), [0, 2, 8, 10(2, 8), [9, 13(4) y [8, 9(1)} que ubren todos
los trminos mnimos de la fun in. Sin embargo, esta no es la respuesta ptima
ya que existe redundan ia y an es posible un pro eso mayor de minimiza in.

5.3.1.1. Sele in de un onjunto ptimo de impli antes primos


Si onstruimos una tabla ( uadro 5.8)de los impli antes en ontrado ontra los
trminos mnimos involu rados, podremos realizar algunas de isiones importantes:
Sern Impli antes Primos Esen iales , aquellos que ubren a un trmino
mnimo, que no est ubierto por otro impli ante (una sola mar a en una olumna).
As, [0, 2, 8, 10(2, 8) es un IPE ya que es el ni o que ubre a los mintrminos 0
y 10. De igual manera, [2, 3, 6, 7(1, 4) es un IPE ya que es el ni o que ubre a
los mintrminos 3, 6 y 7. Por otra parte, [9, 13(1) es un IPE ya que es el ni o
que ubre al mintrmino 13. Estos IPE han sido mar ados on **.
Cuadro 5.8: Sele in de un onjunto de Impli antes Primos
Impli ante Primo
0,2,8,10(2,8) **
2,3,6,7(1,4) **
8,9(1)
9,13(4) **

p0 p2 3 6 7 p8 9 10
p 13
p p p p
p p
p
p
p p p p p p p p p

104

Finalmente, al sele ionar obligatoriamente los IPE antes sealados, han


quedado ubiertos todos los mintrminos de la fun in, on lo ual no es ne esario
in luir el IP [8, 9(1).
Para obtener la expresin
produ tos generados por ada
ualquiera de los mintrminos
no importa de ella, es de ir la
expresin nal.

minimizada de la fun in falta en ontrar los


IPE. Tomando la representa in algebrai a de
reunidos en ada IPE y eliminando la variable
representada por la diferen ia, arribaremos a la

0; 2; 8; 10(2; 8) )

8
>
>
>
<
>
>
>
:

0000 9>>> 8>>> x0x0 9>>>


0010 = ) < x0x0 = )
1000 >>>; >>>: x0x0 >>>;
1010
x0x0

2; 3; 6; 7(1; 4) )

8
>
>
>
<
>
>
>
:

0010 9>>> 8>>> 0x1x 9>>>


0011 = ) < 0x1x = )
0110 >>>; >>>: 0x1x >>>;
0x1x
0111

9; 13(4) )

1001 ) 1x01
1101
1x01

a d

on lo ual arribamos a:

F(

a;b; ;d

) = (0; 2; 3; 6; 7; 8; 9; 10; 13) = b + a + a d

5.4. Realiza in de algunos Cdigos Espe iales*


En el aptulo sobre Cdigos Binarios nos referamos a dos de ellos de
parti ular importan ia: Cdigo Gray y Cdigo Hamming. En esta se in veremos
un mtodo para poder realizarlos.

5.4.1. Cdigo Gray


Como men ionbamos on anterioridad, el Cdigo Gray es un digo reejado
de distan ia unitaria y, para el aso de una palabra de informa in de 3 bits,
llegbamos a una onstru in omo se muestra en la tabla 5.9.

Una rpida visin de la tabla 5.9 nos muestra que O2


I2 . Por otra parte,
podemos emplear ualquier mtodo de miniza in que nos permita en ontrar
expresiones para O1 y O0 .

5.4. REALIZACIN DE ALGUNOS CDIGOS ESPECIALES*

105

Cuadro 5.9: Cdigo Gray de 3 bits


Binario 3 bits Gray 3 bits

I2 I1 I0
0
0
0
0
1
1
1
1

O1( 2

O0( 2

I ;I1 ;I0

I ;I1 ;I0

=
=
=
=
=
=
=
=
=
=

0
0
1
1
0
0
1
1

O2 O1 O0

0
1
0
1
0
1
0
1

0
0
0
0
1
1
1
1

0
0
1
1
1
1
0
0

0
1
1
0
0
1
1
0

I2 I1 I0 + I2 I1 I0 + I2 I1 I0 + I2 I1 I0
I2 I1 (I0 + I0 ) + I2 I1 (I0 + I0 )
I2 I1  1 + I2 I1  1
I2 I1 + I2 I1
I2  I1
I2 I1 I0 + I2 I1 I0 + I2 I1 I0 + I2 I1 I0
I1 I0 (I2 + I2 ) + I1 I0 (I2 + I2 )
I1 I0  1 + I1 I0  1
I1 I0 + I1 I0
I1  I0

Por extensin, en el aso de un Cdigo Gray de 4 bits, las expresiones seran:

=
=
=
=

O3
O2
O1
O0

I3
I3  I2
I2  I1
I1  I0

y para un Cdigo Gray de n bits:

O 1
O 2
n

O1
O0

=
=
=

I
I I 1
I 1I 2

=
=

I2  I1
I1  I0

:::

106

5.4.2. Cdigo Hamming*


En la se in de digos de orre in de errores (Captulo de Cdigos
Binarios), men ionbamos que un digo on distan ia mnima 3 era apaz de
dete tar la o urren ia de un error simple y orregirlo.
A manera de ejemplo, pensemos que deseamos odi ar dos smbolos (tringulo
y r ulo) que sern pro esados o transmitidos de manera digital. Por ser nada ms
dos elementos, slo sera ne esario un bit para su odi a in, on una distan ia
mnima de 1:

0 : T riangulo
1 : Cir ulo
Sin embargo, si al momento de trasmitir tringulo (0) se produ e un error,
en el ni o bit que lo representa, en el re eptor se re ibir r ulo (1). Por ser
este ltimo un elemento vlido del digo el error pasar desaper ibido. De igual
manera su edera en aso ontrario.
Aumentando la distan ia mnima del digo a 2, errores simples seran
dete tados pero no orregidos:

00 : T riangulo
11 : Cir ulo
Si al momento de trasmitir tringulo (00) se produ e un error, en un bit, el
re eptor re ibir 01 10. Ninguna de estas ombina iones pertene e a un elemento
vlido del digo y el error es dete tado. No obstante no podemos pre isar ual
fue el elemento transmitido ya que se en uentran a la misma distan ia lgi a de
los digos vlidos.
Aumentando la distan ia mnima del digo a 3, errores simples seran
dete tados y orregidos:

000 : T riangulo
111 : Cir ulo
Si al momento de trasmitir tringulo (000) se produ e un error, en un bit, el
re eptor re ibir 001, 010 100. Ninguna de estas ombina iones pertene e a un
elemento vlido del digo y el error es dete tado. Pero adems, ualquiera de
estos digos no vlidos est lgi amente ms er a del 000 que del 111, por lo

107

5.4. REALIZACIN DE ALGUNOS CDIGOS ESPECIALES*

Cubo 1
0

Cubo 2
1

Cubo 3
11

10

110

111

010
00

01

011

100

101
000

001

Figura 5.7: Codi a in de dos elementos on distan ias mnimas: 1, 2 y 3


ual se on luye que el elemento transmitido era efe tivamente tringulo (gura
5.7).
Hasta aqu la exposi in es lara. No obstante habamos dejado una pregunta
en el aire: Cmo onstruir, de una manera onsistente y e iente, digos de
distan ia mnima 3 ?. En 1950, R. Hamming des ribi un mtodo general para
onstruir digos de este tipo.
El pro eso onsiste en agregar k bits de paridad a una palabra de informa in
de r bits, para obtener una nueva palabra odi ada de n=k+r bits, donde se
garantizan que al menos 3 bits ambian entre dos elementos vlidos. La antidad
k de bits de paridad a agregar se desprende de la siguiente rela in:

1k+r

Los bits de paridad (p ) o upan la posi in de las poten ias de 2 y el resto de


las posi iones son los bits de informa in (m ).
k

Por ejemplo, en nuestro ejemplo anterior, donde slo existe un bit de


informa in (r=1 ) o upando la posi in 3, se requieren 2 bits de paridad (k=2 )
o upando las posi iones 1 y 2, y la estru tura de la nueva palabra digo sera
3

m1 p2 p1
Cada bit de paridad es agrupado on los bits de informa in uyos nmeros de
posi in, expresados en binario, se forman on la ontribu in del respe tivo bit
de paridad (se le a larar on ejemplos ms ompletos), de tal forma de garantizar
una paridad par de unos en ada expresin. Como m1 est en posi in 3 (1 1 ),
p1 [que est en posi in 1 (0 1 ) debe agruparse on l propor ionando paridad
par para el onjunto. De igual manera, omo m1 est en posi in 3 (1 1 ), p2 [que

108
est en posi in 2 (1 0 ) debe agruparse on l propor ionando paridad par para
el onjunto. Esto puede resumirse omo:

p1  m1
p2  m1
De aqu se desprende que p1

= 0
= 0

= p2 = m1 .

Por otra parte, para palabras on 2, 3 4 bits de informa in se requieren 3


bits de paridad, y la estru tura de la nueva palabra digo sera
7

m4 m3 m2 p3 m1 p2 p1
p1 [que est en posi in 1 (00 1 ) debe agruparse on: m1 [que est en
posi in 3 (01 1 ), m2 [que est en posi in 5 (10 1 ) y m4 [que est en
posi in 7 (11 1 ), propor ionando paridad par para el onjunto.

p2 [que est en posi in 2 (0 1 0 ) debe agruparse on: m1 [que est en


posi in 3 (0 1 1 ), m3 [que est en posi in 6 (1 1 0 ) y m4 [que est en

posi in 7 (1 11 ), propor ionando paridad par para el onjunto.

p3 [que est en posi in 4 (1 00 ) debe agruparse on: m2 [que est en


posi in 5 (1 01 ), m3 [que est en posi in 6 (1 10 ) y m4 [que est en
posi in 7 (1 11 ), propor ionando paridad par para el onjunto.

El onjunto de e ua iones, donde, de ser el aso, se elimina el (los) bit(s) de


informa in que no parti ipan, sera:

p1  m1  m2  m4
p2  m1  m3  m4
p3  m2  m3  m4

= 0
= 0
= 0

de donde se desprende que:

p1
p2
p3

=
=
=

m1  m2  m4
m1  m3  m4
m2  m3  m4

En la tabla 5.10 se apre ia la onstru in de Cdigos de Hamming para


palabras de 1, 2, 3 y 4 bits de informa in:

000
111

m2 m1 m2 p3 m1 p2 p1
0
0
1
1

0
1
0
1

0
0
1
1

0
0
1
1

0
1
0
1

0
1
0
1

0
1
1
0

m3 m2 m1 m3 m2 p3 m1 p2 p1
0
0
0
0
1
1
1
1

0
0
1
1
0
0
1
1

0
1
0
1
0
1
0
1

0
0
0
0
1
1
1
1

0
0
1
1
0
0
1
1

0
0
1
1
1
1
0
0

0
1
0
1
0
1
0
1

0
1
0
1
1
0
1
0

0
1
1
0
0
1
1
0

m4 m3 m2 m1
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1

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

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

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

m4 m3 m2 p3 m1 p2 p1
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1

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

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

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

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

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

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

5.4. REALIZACIN DE ALGUNOS CDIGOS ESPECIALES*

0
1

Cuadro 5.10: Cdigos de Hamming para 1, 2, 3 y 4 bits

m1 m1 p2 p1

109

110

Bus ando una expresin de ar ter ms general, podemos rees ribir el


onjunto de e ua iones de grupo omo:

p1  m1  m2  m4
p2  m1  m3  m4
p3  m2  m3  m4
m1
m1




m2

m2

m3
m3




m4
m4
m4





= 0
= 0
= 0
p1

p2

= 0
= 0
= 0

p3

1  m1  1  m2  0  m3  1  m4  1  p1  0  p2  0  p3 = 0
1  m1  0  m2  1  m3  1  m4  0  p1  1  p2  0  p3 = 0
0  m1  1  m2  1  m3  1  m4  0  p1  0  p2  1  p3 = 0
y en forma matri ial, donde la multipli a in es una onjun in lgi a y la suma
es una disyun in ex lusiva lgi a.
3
2
m1
7
6
6 m2 7
7 2 3
36
2
6
m3 7
7
6
7
6 7
76
6
m
7
4 5
56
4
4
7
6
7
6
p
1
6
7
6 p 7
4 2 5

0
= 0
0

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

p3

HC

=0

Enton es, el problema de determinar las expresiones para los bits de paridad

p , ubi ados en el ve tor C (junto a los bits de informa in m ), pasa por en ontrar
k

una matriz de paridad

H , que requiere las siguientes ondi iones:

1. Todas las olumnas son distintas; y


2. Ninguna olumna est onstituida slo por eros.
Si un ve tor C , en transmisin, es re ibido omo R on un bit errado, al ser
operado on la matriz de paridad H produ ir un ve tor resultado distinto de ero
(Sndrome), indi ando on su valor binario la posi in exa ta del bit equivo ado.

111

5.4. REALIZACIN DE ALGUNOS CDIGOS ESPECIALES*

=[

= [0 0 0 0 1 1 1
= [0 0 1 0 1 1 1 [ on

A manera de ejemplo, supongamos que C


m4 m3 m2 p3 m1 p2 p1
(que orresponde a la informa in
), es re ibido omo R
un bit errado en la posi in 5 (m2 )

0001

2
4

2
6
36
6
6
56
6
6
6
4

3
7
7
7
7
7
7
7
7
5

HR

0
0
1
0
1
1

2
4

2
4

2
4

10100110110101

10001110011101

3
5

00101110010111

0000100

0010010

3
5

0010001
1
0

3
5

note que este ve tor patrn S oin ide on la quinta olumna de la matriz H. De
esta manera, el bit errado o upa la quinta posi in y debe omplementarse.
Otra manera de analizar el dato re ibido es al ular nuevamente los bits de
paridad y ompararlos on los originales:

rm4
rm3
rm2
rm1
rp1
rp2
rp3
p1
p2
p3

=
=
=

=
=
=
=
=
=
=

0
0
1
1
1
1
0

rm1  rm2  rm4 = 1  1  0 = 0


rm1  rm3  rm4 = 1  0  0 = 1
rm2  rm3  rm4 = 1  0  0 = 1
p1
p2
p3

6=

=
=6

rp1
rp2
rp3

112

omo p2
rp2 , y se ha admitido slo un error, enton es rm1 ; rm3 y rm4 estn
orre tos. De esta manera rm2 es in orre to y debe omplementarse.

Captulo 6
Cir uitos Se uen iales y Elementos
de Memoriza in
6.1. Introdu in
En temas anteriores se ha des rito el pro edimiento de diseo de omponentes
ombina ionales. La ara tersti a prin ipal de todos los omponentes
ombina ionales es el he ho de que sus valores de salida (O) se al ulan
ex lusivamente a partir de una fun in (h) de sus valores a tuales en las entradas
(I ). Para ualquier ambio en los valores de entrada, los valores de salida apare en
en los terminales orrespondientes, on el retardo de propaga in ne esario para
obtenerlos.

O=h

(I )

En ambio, el omportamiento se uen ial, omo su nombre sugiere, presenta


la ara tersti a de que los valores de salida no tan slo dependen del valor de las
seales de entrada, sino que adems de omo ha sido la traye toria histri a del
omportamiento en el tiempo del sistema. Es de ir, de la se uen ia de estados (S )
por la que ha atravesado el sistema.

O=h

(S;I )

Esto nos lleva a la ne esidad de in orporar, en los omponentes se uen iales,


elementos que permitan alma enar la traye toria temporal del sistema, ono idos
omo Elementos de Memoria.
De esta manera, los valores alma enados en elementos de memoria denen el
estado de un omponente se uen ial y, ualquier ambio en los valores de entrada,
en el instante de tiempo t , modi ar el estado del sistema en el instante t +1
(donde
es un in remento de tiempo arbitrario) y los valores de salida, en el

1

113

114
instante t +2 (donde

1).

2 es otro instante de tiempo no ne esariamente igual a

Como ejemplo para resaltar las diferen ias entre un Sistema Se uen lal y otro
Combinatorio, onsideremos el omportamiento entre dos tipos de erradura. Por
una parte, las erraduras utilizadas para la tapa de un maletn eje utivo y, por
otra, las utilizadas para la puerta de una ajas fuerte. En el primer aso, para
que la tapa del maletn pueda abrirse basta on que la ombina in de dgitos sea
la apropiada, independientemente de la manera omo se arrib a ella. En el aso
de la aja fuerte, la puerta se abrir siempre que se haya olo ado la se uen ia
apropiada de dgitos en la erradura.

Figura 6.1: Cerraduras Combinatoria y Se uen ial


Imaginemos, un momento, que el maletn posee solo una erradura de
ombina in, y que esta est formada por uatro dis os binarios (ab d), en lugar
de de imales. Adems, la ombina in que abre la erradura es 1001. Con nuestros
ono imientos ya adquiridos podemos disear un ir uito lgi o ombinatorio
pequeo que sea apaz de resolver esta situa in.
Cuadro 6.1: Tabla de Verdad para una erradura ombinatoria on a tiva in en
1001.
Ent. Sal.
ab d
f
0000
0
0001
0
0010
0
0011
0

Ent. Sal.
ab d
f
0100
0
0101
0
0110
0
0111
0

(a;b; ;d)

Ent. Sal.
ab d
f
1000
0
1001 1
1010
0
1011
0
X

(9) =

ab d

Ent. Sal.
ab d
f
1100
0
1101
0
1110
0
1111
0

115

6.1. INTRODUCCIN

Sin embargo, para el aso de la puerta de la aja fuerte, deberamos re ono er


una se uen ia de datos, espa iados en el tiempo y olo ados en su entrada ni a.
Supongamos que la se uen ia orre ta es la informa in binaria 1001, enton es,
el problema podra visualizarse empleando un diagrama de ujo, omo el de la
gura 6.2.
Espera primer dato
N

1
S

Espera segundo dato


N

0
S

Espera tercer dato


N

0
S

Espera cuarto dato


N

1
S

Activa cerradura

Figura 6.2: Diagrama de Flujo para la a tiva in de una erradura se uen ial.

En Sistemas digitales, esta representa in se realiza mediante la utiliza in de


Diagramas de Estado, que bsi amente propor ionan la misma informa in. Para
el aso de nuestro ejemplo, podemos transformar f ilmente el Diagrama de Flujo
en un Diagrama de Estados, omo se muestra en la gura 6.3.
Observe que:

116
0
a/0
1
1

b/0
0
1
c/0
0

0 d/0
1

0,1
e/1

Figura 6.3: Diagrama de Estados para la erradura se uen ial.


Cada asilla re tangular del Diagrama de Flujo orresponde a un ir ulo
(estado ) del Diagrama de Estados.
Las asillas de de isin (rombos) del Diagrama de Flujo han sido eliminadas
en el Diagrama de Estados, sustituyendo los aminos ondi ionales por
e has en las uales dire tamente se ha aso iado el valor binario de la entrada
que lo produ e.
A ada estado del Diagrama de Estados se le ha aso iado un par x / z,
donde x es un nombre o etiqueta que orresponde a un digo binario y z es
la salida del sistema. En nuestro ejemplo, la salida se a tiva (toma el valor
uno) slo en el estado e, despus de re ono er orre tamente la se uen ia
1001.
Al estado e se le ha olo ado un amino adi ional el ual indi a que despus
de haber al anzado este estado, no importa que tipo de dato siga entrando
al sistema, este ltimo permane er en lavado on su salida a tiva. A este
tipo de sistema se le ono e omo Sistemas on En lavamiento.
El ltimo punto anterior nos sugiere que deben existir Sistemas sin En lavamiento.
Pensemos que deseamos que el sistema sea apaz de re ono er ontinuamente la
se uen ia soli itada. Enton es el sistema no debe en lavarse. Una vez que ha
re ono ido la se uen ia orre ta, a tiva la salida y se prepara para omenzar

117

6.1. INTRODUCCIN

su trabajo nuevamente desde el ini io. Un Diagrama de Estados de este tipo se


muestra en la gura 6.4(b).
Por otra parte, es posible que al romperse la se uen ia orre ta, en algn punto
del pro eso, no sea ne esario regresar al ini io, ya que parte de la informa in
re ibida puede servir omo la informa in ini ial redu ida de la se uen ia bus ada.
Esta distin in operativa da origen a los Sistemas on Solapamiento y Sistemas
sin Solapamiento, omo se apre ia en los uatro diagramas de la gura 6.4.

a/0

a/0

b/0

c/0

e/1
(a)

c/0

1
c/0

0 d/0

(b)

0 d/0

e/1

b/0

c/0

0 d/0

b/0

0,1

0
1

a/0
1

b/0

a/0
1

1
1

0,1
0,1

0
0 d/0
1

e/1

e/1

(c)

(d)

0
1

Figura 6.4: Diagramas de Estado: (a) Con En lavamiento / Sin Solapamiento.


(b) Sin En lavamiento / Sin Solapamiento. ( ) Con En lavamiento / Con
Solapamiento. (d) Sin En lavamiento / Con Solapamiento.
Observemos, en la tabla 6.2, el omportamiento de los uatro sistemas frente
a una se uen ia de entrada de datos. Supondremos que todos ini ian su opera in
en el estado a, y la salida z est aso iada al estado:
En general, en los ir uitos se uen iales las salidas dependen de la se uen ia

118
Cuadro 6.2: Tabla de Transi in de los uatro sistemas anteriores frente a una
se uen ia de datos de entrada.
Tiempo
Entrada
(a)
(b)
( )
(d)

0
0
a/0
a/0
a/0
a/0

1
1
b/0
b/0
b/0
b/0

2
3
0
1
/0 a/0
/0 a/0
/0 b/0
/0 b/0

4
5
6
7
0
0
1
0
a/0 a/0 b/0 /0
a/0 a/0 b/0 /0
/0 d/0 e/1 e/1
/0 d/0 e/1 /0

8
0
d/0
d/0
e/1
d/0

9
1
e/1
e/1
e/1
e/1

10
11
1
0
e/1 e/1
a/0 a/0
e/1 e/1
b/0 /0

de opera iones que haya seguido el ir uito (estados) y los valores de entrada
presentados durante un perodo de tiempo. De he ho el trmino se uen ial se
debe a esta dependen ia. Como se ha visto, la se uen ia de valores de entrada, o
algo rela ionado on ella, se alma ena en la memoria. Debido a que esta memoria
siempre es nita, el tamao de la se uen ia debe ser nito, lo que signi a que
la lgi a se uen ial ontendr slo un nmero nito de estados, aunque ste sea
bastante elevado.

6.2. Cerrojo (Lat h) SR


El elemento de memoria ms simple en un diseo digital es el Cerrojo (lat h)
SR, que onsta de dos puertas NOR ( NAND) one tadas de forma ruzada ( on
un amino de realimenta in). Como puede verse en la gura 6.5, el lat h SR tiene
dos seales de entrada: la seal de puesta a 1, S (set), y la seal de puesta a 0, R
(reset): tambin tiene dos seales de salida, Q y Q; nalmente, tiene dos estados:
un estado de puesta a uno (o set) uando Q = 1 y un estado de puesta a ero (o
reset) uando Q = 0.

Figura 6.5: Cerrojo SR.


Mientras las seales S y R sean iguales a 0, el lat h SR permane e en el mismo
estado. Por ejemplo, si Q = 1 la salida de la puerta NOR superior ser igual a 0,
lo que har, a su vez, que la salida de la puerta NOR inferior se sostenga en 1.

119

6.2. CERROJO (LATCH) SR

Igualmente, si Q = 0, la salida de la puerta NOR superior ser igual a 1, lo que


har que la salida de la puerta NOR inferior se sostenga en 0.
Intentaremos expli ar el omportamiento del ir uito mediante una tabla de
opera in (tabla 6.3), en la ual debido al amino de realimenta in, la salida Q
tambin ser una entrada. La distin in importante es que la entrada Q, para
un instante de tiempo determinado t, llamado Estado Presente , tendr un
omportamiento posiblemente diferente a la salida, un momento despus t+1,
llamado Estado Futuro , debido a la propaga in que experimenta a travs de
las ompuertas, hasta al anzar un estado estable (de ser posible).
Cuadro 6.3: Tabla de Opera in de un Cerrojo SR.
S R Q( )
000
001
010
011
100
101
110
111
t

(t+1)

Q( +1)
0
1
0
0
1
1
X
X
t

(t)

R+S

Este omportamiento puede ser resumido gr amente en un Diagrama de


Estados, omo el mostrado en la gura 6.6.

SR
00,01

00,10

10
0
11

1
01

11

Indeterminado

Figura 6.6: Diagrama de Estados de un Cerrojo SR.


Si la entrada S se ha e 1, el lat h SR ir al estado de puesta a uno o
permane er en l. Por ejemplo, uando S vale 1, la salida Q vale 0 en (t + tp),

120
lo que fuerza a Q a valer 1 en t + 2*tp, donde tp es el retraso de propaga in de
una ompuerta. Tngase en uenta que, uando S baja a 0, el lat h SR permane e
en el estado de puesta a uno, es de ir memoriza la informa in. De igual forma,
el lat h SR puede ponerse a 0 manteniendo la seal de reposi in R a 1, mientras
se pone S a valor 0. Aqu tambin, despus de que R vuelva a valor 0, el lat h
permane er en el estado de puesta a ero, omo se apre ia en la gura 6.7.

Figura 6.7: Diagrama de Tiempos de un errojo SR.


Si ambas seales de entrada S y R valen 1, las salidas Q y Q deben ser iguales
a 0. Esto, desde el punto de vista ele trni o no representa ningn problema.
Sin embargo, lgi amente resulta inapropiado uando se esperaba que estuvieran
omplementadas. Un problema mayor, inherente al lat h SR, es el he ho de que
si S y R , despus de haber estado a 1, ambian al mismo tiempo a ero. Bajo
esta ondi in, las salidas irn simultneamente a 1 en un tiempo tp. Estos unos
realimentados llevarn las salidas a 0 en 2*tp, produ iendo una os ila in. Esta
os ila in, llamada usualmente arrera rti a ( riti al ra e), ontinuar on las
salidas de ambas puertas a 1 y posteriormente a 0 en t + n*tp, para ualquier
entero no negativo n. Cuando las puertas no tienen exa tamente el mismo retardo,
una de ellas puede ser ligeramente ms rpida que la otra. En tal aso, la puerta
NOR ms rpida prevale er y estable er su salida a 1, forzando la salida del
otro lat h a 0. As pues, uando las seales de entrada se restable en al mismo
tiempo, el estado siguiente del lat h es indenido, ya que no se sabe que ondi in
o urrir.
Para eliminar este fun ionamiento indeterminista, se debe asegurar que las
seales S y R no se restablez an al mismo tiempo. Desgra iadamente, esta regla
es dif il de imponer al no ono er los retardos de los ir uitos lgi os que generan
los valores de S y R. Como onse uen ia, uando se disea on lat hes SR debe
seguirse una regla ms estri ta; hay que asegurarse de que las seales S y R nun a
se a tiven al mismo tiempo.
El lat h SR puede implementarse tambin on puertas NAND. Sin embargo,

121

6.3. LATCH SR SINCRONIZADO

en este aso las entradas S y R estn normalmente a 1 y su a tiva in se produ e


on eros.

6.3. Lat h SR sin ronizado


El lat h SR sin ronizado (gated SR Lat h) es similar al lat h SR, on una
ex ep in: este lat h tiene una ter era entrada de ontrol, C, que habilita la
opera in del lat h SR, omo se observa en la gura 6.8. En la pr ti a, esto
signi a que uando C es igual a 1, el lat h SR sin ronizado fun iona omo un
lat h SR. Sin embargo, uando C = 0, se deshabilitan la puesta a uno y la puesta
a ero, y el ir uito persiste en el estado anterior.
SC

Q
C
Q
R

RC

(t+1)

C  (Q

(t)

 R + S)

Figura 6.8: Cerrojo SR sin ronizado.


Es fundamental tomar pre au iones uando se trabaja on el lat h SR
sin ronizado: el diseador debe estar seguro de que las seales de entrada no
ambian durante el intervalo de tiempo del an o de bajada de la entrada de
ontrol C. Este breve intervalo, empieza en el tiempo de estable imiento (t
)
anterior al an o de bajada de C y termina en el tiempo de mantenimiento (t
), posterior al an o de bajada de C.
SET U P

H OLD

6.4. Lat h JK Sin ronizado


Los diseadores que trabajan on errojos bsi os SR deben asegurarse de que
las entradas S y R no valgan 1 al mismo tiempo. Este in onveniente puede evitarse
realizando una pequea modi a in al ir uito del errojo SR, para onvertirlo
en otro denominado JK, omo se apre ia en la gura 6.9.

122
JC
J

C
Q

KC

Figura 6.9: Cerrojo JK sin ronizado.


Expli aremos el omportamiento del ir uito mediante una tabla de opera in,
semejante a la del errojo SR (Tabla 6.4).
Cuadro 6.4: Tabla de Opera in de un Cerrojo JK sin ronizado.
JKQ( )
000
001
010
011
100
101
110
111
t

(t+1)

Q( +1)
0
1
0
0
1
1
1
0
t

C  (K  Q

(t)

SQ

(t) )

Esta tabla, tambin da origen a un Diagrama de Estados para este errojo,


omo se muestra en la gura 6.10.

JK
00,01

00,10

10,11
0

1
01,11

Figura 6.10: Diagrama de Estados de un errojo JK.

123

6.5. LATCH D SINCRONIZADO

6.5. Lat h D Sin ronizado


Otra manera de solventar el in onveniente de los errojos SR es una nueva
forma de modi a in del ir uito para onvertirlo en tipo D. Los errojos tipo
D disponen ni amente de una entrada (D) y se realiza a partir del lat h SR
sin ronizado, one tando la entrada D a la entrada S y D a la entrada R del
lat h SR, asegurando que S y R no estarn a 1 al mismo tiempo (gura 6.11). Un
errojo D sin ronizado tambin tiene una entrada C que lo habilita, del mismo
modo que se ha a en el errojo SR sin ronizado des rito anteriormente. Cuando
C es igual a 1, la salida Q tomar el mismo valor que la entrada D, despus de un
orto perodo de tiempo. Por el ontrario, si C es igual a 0, la salida Q mantendr
el ltimo valor de D estable ido antes del an o de bajada de la ltima a tiva in
de la seal de ontrol.
D
Q
C
Q

Figura 6.11: Cerrojo D sin ronizado.


Expli aremos el omportamiento del ir uito mediante una tabla de opera in,
semejante a la del errojo SR, teniendo presente que ahora existe slo una entrada
D (Tabla 6.5).
Cuadro 6.5: Tabla de Opera in de un Cerrojo D sin ronizado.
DQ( )
00
01
10
11

Q( +1)
0
0
1
1

(t+1)

124
La informa in, propor ionada por la tabla 6.5 o por la e ua in, puede ser
resumida gr amente en un Diagrama de Estados, omo el mostrado en la gura
6.12.

D
0

1
0

1
0

Figura 6.12: Diagrama de Estados de un errojo D.

6.6. Biestables
Como se ha expli ado anteriormente, los errojos sin ronizados son elementos
sen illos de memoria que se habilitan durante todo el intervalo de tiempo en
el que la seal de ontrol C es igual a 1. Fre uentemente, estos lat hes se
denominan lat hes sensibles al nivel porque estn habilitados siempre que la
seal de ontrol est al nivel 1. En ualquier instante de este tiempo los lat hes
sern transparentes, en el sentido de que ualquier ambio en las entradas se
propagar a la salida on un pequeo retardo. Estos biestables bsi os fun ionan
omo elementos de memoria slo despus del an o de bajada de la seal de
ontrol, uando mantienen el estado estable ido por el ltimo valor de la entrada
anterior al an o de bajada de la seal de ontrol.
Si pensamos que la seal de ontrol pudiera trabajar omo fuente de
sin ronismo para el ambio de estado en los sistemas se uen iales, los errojos
sin ronizados no seran la mejor alternativa. Dadas sus ara tersti as de
transparen ia, donde los ambios en las salidas siguen a los ambios de las
entradas, mientras el ontrol est a tivo, pudieran produ irse ambios mltiples
de estado por ada a tiva in del ontrol. Pare era que se requiere de algn tipo
de arreglo que permita solo un ambio de estado (un solo ambio a la salida de
los elementos de memoria) por ada i lo de a tiva in del ontrol.
Un mtodo posible para lograr este objetivo es disminuir el an ho del pulso de
ontrol a un retardo de propaga in. No obstante, la di ultad de esta solu in
radi a en que los retardos no son los mismos para lograr un uno que un ero en la
salida de los errojos, lo que signi a que un an ho del pulso de ontrol que ponga
a uno el lat h puede no servir para ponerlo a ero, y vi eversa. Adems, si el an ho
del pulso de ontrol se limita a un tiempo menor que el retardo del lat h, ste no
tendr tiempo de aptar el valor de entrada. En ualquier aso, el fabri ante del
lat h no puede garantizar realmente valores exa tos de retardo sen illamente a

125

6.6. BIESTABLES

ausa de los mrgenes de error en el pro eso de fabri a in. En este sentido, debe
tenerse en uenta que la puesta a uno y a ero que se utilizan son slo valores de
retardo esperados, mientras que los valores de retardo reales se distribuyen segn
una distribu in normal alrededor de estos valores esperados.
Una vez expuestas estas restri iones, hay dos posibles solu iones al problema:
los errojos maestro-es lavo y los biestables disparados por an o.

6.6.1. Cerrojos Maestro / Es lavo


Los errojos maestro / es lavo (master-slave lat h) se implementan utilizando
dos errojos one tados en as ada, denominados maestro y es lavo, omo se
apre ia en la gura 6.13.
M
I

D Q

D Q

C Q

C Q

Clk

Figura 6.13: Cerrojo Maestro / Es lavo.


Como se apre ia en la gura 6.13, uando la seal de ontrol (de ahora en
adelante llamada reloj ) se a tiva a 1, la informa in de entrada I al anza la
salida del errojo maestro (M ). El errojo es lavo (E ) est ina tivo (su entrada
de ontrol es 0 ), y la salida del sistema (O) no se ha afe tado. Finalmente, uando
el reloj pasa a 0, la ltima entrada I es memorizada a la salida de M y este se
ina tiva. Sin embargo, en este momento se a tiva E, transriendo el ltimo valor
de I hasta la salida O del sistema. Evidentemente se ha produ ido un slo ambio
de salida por un i lo ompleto de la seal de reloj.
La ventaja de usar estos errojos es lara: omo estos no se habilitan nun a al
mismo tiempo, el sistema maestro-es lavo nun a es transparente.

6.6.2. Biestables disparados por an o


La segunda op in que men ionbamos antes era un biestable disparado por
an o. La idea que se persigue es simple: lograr que se produz a una sola opera in
de memoriza in en el menor tiempo posible. Naturalmente, los niveles alto o bajo
de la seal de reloj no son apropiados, omo probamos antes. Pero, la seal de
reloj tiene dos eventos laramente distinguibles y de muy orta dura in que son

126
los momentos de transi in ( uando pasa de bajo a alto y el aso ontrario. Estas
transi iones se denominan an os y dan origen a dos tipos de biestables o ip-ops
(para distinguirlos de los errojos o lat hs que se a tivan por nivel): los disparados
por el an o delantero o subida, y los disparados por el an o trasero, posterior
o de bajada.
Un biestable se puede implementar de diversas maneras. Nosotros, a manera
de ejemplo, usaremos dos de ellas: Biestable on dete tor de an o y Biestable de
tres errojos (de puesta a uno, de puesta a ero y de salida).

6.6.2.1. Biestable on dete tor de an o


Un Biestable on dete tor de an o presenta un diagrama semejante al
mostrado en la gura 6.14.
w

z
Q

Figura 6.14: Biestable (ip - op) D, on "dete tor de an o".

Es importante resaltar que realmente estos dispositivos no se onstruyen de


esta manera. Slo se ha puesto aqu para resaltar el on epto de an o y la
opera in en torno a l. Un diagrama de tiempos nos fa ilitar el anlisis del
omportamiento ir uital (gura 6.15).
La parte resaltante est alrededor del dete tor de an o, indi ado en el gr o
por la seal v. Si pensamos que el retardo promedio de las ompuertas es del
orden de 1 ns, enton es la dura in del "an o" ser de 2 ns. Por otra parte, si la
fre uen ia de las seales de datos (D) y reloj (C ) son del orden de MHz, enton es
efe tivamente v a tuar omo un "an o habilitador".

6.6. BIESTABLES

127

C
D
u
v
w
x
y
z
Q
Q

Figura 6.15: Diagrama de Tiempos de un Biestable, tipo D, disparado por an o


delantero, usando un "dete tor de an o".

6.6.2.2. Biestable de tres errojos


Este tipo de biestable est formado por tres errojos, tal omo se muestra en
la gura 6.16.
El lat h de puesta a ero sigue los ambios en la seal Clk si D es igual a 1 en
el an o de subida de la seal Clk, mientras que el lat h de puesta a uno sigue los
ambios en la seal Clk si D es igual a 0 en el an o de subida de la seal Clk.
En otras palabras, las salidas de los dos primeros errojos registran los ambios
en D mientras Clk es 0.
En general, desde el punto de vista de una interfa e externa, tanto el errojo
omo el biestable presentan una aparien ia similar. La diferen ia la onstituye
su dinmi a on respe to a la seal de reloj, que se distingue on un pequeo
tringulo en ualquier diagrama esquemti o, omo se observa en la gura 6.17.
De igual manera, si poseen entradas externas de puesta a 1 (set) y de puesta
a 0 (reset), omo se ve en la gura 6.18.

128

11
00

1
0
Clk

11
00

1
0

1
0
0
1
1
0

11
00

D
r

11
00
11
00

Figura 6.16: Biestable disparado por an o, de tres errojos.

Clk

Clk Q

Figura 6.17: Cerrojo y biestable, tipo D.


S
D

Clk

Q
R

S
D

Clk Q
R

Figura 6.18: Cerrojo y biestable, tipo D, on entradas de puesta a 1 y 0.

129

6.7. TIPOS DE BIESTABLES

6.6.3. Biestable Maestro / Es lavo


Al igual que los errojos maestro / es lavo (master-slave lat h) es posible
implementar biestables maestro / es lavo (master-slave ip op), utilizando dos
biestables one tados en as ada, omo se observa en la gura 6.19.

X
Clk

11
00
00
11

D Q

D Q

Figura 6.19: Biestable maestro / es lavo.

6.7. Tipos de Biestables


Aunque hay varias y diferentes maneras de realizar biestables, todas presentan
las siguientes dos ara tersti as: primero un biestable ambia de estado slo en
el an o positivo o negativo de la seal de reloj y, segundo, sus entradas de datos
no deben ambiar despus del tiempo t
anterior, ni antes del tiempo t
posterior, al an o de disparo de la seal de reloj.
SET U P

H OLD

Todos los biestables pueden dividirse en uatro ategoras bsi as: SR, JK, D
y T. Se diferen ian en el nmero de entradas y en la respuesta que propor ionan
a valores diferentes de las seales de entrada. Cada uno de estos biestables puede
ara terizarse por su smbolo gr o, por su tabla ara tersti a y su e ua in
ara tersti a o por su tabla de ex ita in, omo se observa en la gura 6.20.
Los smbolos gr os indi an el nmero y el tipo de entradas y salidas. Todos
los biestables tienen seales de salida Q y Q. Tambin, todos ellos disponen de
entrada de seal de reloj. El pequeo tringulo en la entrada de reloj indi a que el
biestable se dispara por el an o de subida de la seal de reloj. Por el ontrario, un
r ulo junto al tringulo indi ar que se trata de un biestable disparado por an o
de bajada de la seal de reloj. Cada biestable tiene una o dos entradas de datos
que ara terizan al biestable y le dan nombre, omo se ha des rito anteriormente.
El biestable SR tiene dos entradas, S (set) y R (reset), que ponen a 1 a
0 el biestable uando se a tivan. El biestable JK, similar al SR, dispone de dos
entradas, J y K, que realizan la puesta a 1 a 0 del biestable uando se a tivan.

130
Adems, y ha diferen ia del SR, uando ambas entradas J y K estn a tivas
al mismo tiempo, el biestable JK ambia de estado. Como se ha men ionado
anteriormente, el biestable D tiene slo una entrada D (datos) que pone a 1 el
biestable uando D = 1 y lo pone a 0 uando D = 0. El biestable T tiene slo
una entrada T (togle) que fuerza al biestable a ambiar de estado uando T es
igual a 1.
Op ionalmente, ada biestable puede tener una o dos entradas de puesta a
uno (Set) y ero (Reset), asin rni as (fuerzan un ambio sin importar el estado
del reloj) e independientes de la(s) entrada(s) de dato(s).

6.8. Anlisis de la Lgi a Se uen ial


Normalmente, la lgi a se implementa on ir uitos lgi os que in orporan
los biestables. Mientras que un ir uito lgi o de este tipo puede representar
laramente la estru tura de la lgi a se uen ial, desgra iadamente no revela
de manera f il su fun ionamiento, lo que representa un problema para el
diseador. Por ejemplo, uando se redisea un produ to los diseadores quiere,
normalmente, modi ar el fun ionamiento del mismo on el n de aadir
nuevas ara tersti as, o inversamente, pueden pretender la utiliza in de nuevos
omponentes y ne esitar omprobar que la sustitu in de los omponentes no
ha modi ado el fun ionamiento del produ to. En ualquier aso, los diseadores
ne esitarn obtener el omportamiento del ir uito lgi o se uen ial. Este pro eso,
denominado anlisis, requiere que el diseador genere una o ms des rip iones
fun ionales, utilizando diagramas de estado, tablas de estado y de salida y
e ua iones booleanas de entrada y salida. Una vez obtenida la des rip in
fun ional, los diseadores pueden desarrollar diagramas de tiempo que les
permitan ontrastar sus predi iones on los resultados de simula in.
Como primer paso, y a partir de los diagramas esquemti os, deben obtenerse
las E ua iones de Ex ita in, y on estas la Tabla de Ex ita in. Usaremos a
manera de ejemplo, el Diagrama Esquemti o mostrado en la gura 6.21.
A partir de este Diagrama Esquemti o, obtendremos la E ua in de Salida y
las E ua iones de Ex ita in (entradas de los biestables), omo se apre ia en la
gura 6.22.
Con las E ua iones de Ex ita in es posible onstruir una Tabla de Ex ita in;
es de ir, a partir del Estado Presente del ir uito y de las entradas, determinar
ual ser el valor de la ex ita in para esa ondi in (Tabla 6.6).

131

6.8. ANLISIS DE LA LGICA SECUENCIAL

S s

SR
00,01

10

00,10

11
R r

01

S Q

JK
00,01

10,11

00,10

1
01,11

K R Q

S Q

D
0

1
0

R Q

S Q

T
0

0
R Q

11

1
1

S
0
0
0
0
1
1
1
1

R
0
0
1
1
0
0
1
1

Qt Qt+1
0
0
1
1
0
0
1
0
0
1
1
1
0
X
1
X

Qt+1 = S + R*Qt

J
0
0
0
0
1
1
1
1

K
0
0
1
1
0
0
1
1

Qt Qt+1
0
0
1
1
0
0
1
0
0
1
1
1
0
1
1
0

Qt+1 = J*Qt + K*Qt

D
0
0
1
1

Qt
0
1
0
1

Qt+1
0
0
1
1

T
0
0
1
1

Qt
0
1
0
1

Qt+1
0
1
1
0

Qt+1 = D

Qt+1 = T*Qt + T*Qt


Qt+1 = T + Qt

Figura 6.20: Tipos de biestables: Esquemti os, Diagramas de Estado, Tablas de


Transi in y E ua iones de Estado Futuro.

132

2
S

4
1
4
2
1
5
2
1
2
1
3

Vcc
9

9
2

Q S

I
3

Q R K

9
9
4

Q S

11
00
00
11
5

Q R K

Figura 6.21: Diagrama esquemti o de un ir uito se uen ial.

6.8. ANLISIS DE LA LGICA SECUENCIAL

133

J0 = IQ0
K0 = IQ0
J1 = IQ0 Q1
K1 = IQ0 Q1
S = Q0 Q1
Figura 6.22: E ua iones de Ex ita in y Salida del ir uito se uen ial.
Cuadro 6.6: Tabla de Ex ita in del ir uito se uen ial.

IQ1 Q0 J1 K1 J0 K0
0
0
0
0
1
1
1
1

0
0
1
1
0
0
1
1

0
1
0
1
0
1
0
1

0
0
0
0
0
1
0
0

0
0
0
0
0
0
0
1

0
0
0
0
1
0
1
0

0
0
0
0
0
1
0
1

De igual manera, puede lograrse una Tabla de Salidas (Tabla 6.7), que en este
aso slo es fun in del Estado Presente del ir uito (salidas de los biestables),
segn se desprenda del Diagrama Esquemti o (6.21).
Cuadro 6.7: Tabla de Salida del ir uito se uen ial.

Q1 Q0 S
0
0
1
1

0
1
0
1

0
0
0
1

Posteriormente, usando la Tabla del biestable, o la e ua in ara tersti a


(tabla 6.8 o gura 6.20), y la Tabla de Ex ita in re in obtenida (Tabla 6.6), se
onsigue una Tabla de Transi iones (6.9).
Desde la Tabla de Transi iones se onstruye la Tabla de Estados Futuros
(Tabla 6.10) y nalmente el Diagrama de Estados (gura 6.23). Esta

134

Cuadro 6.8: Tabla de Transi in y E ua in de Estado Futuro del biestable JK.

JKQ

Q +1

Q( +1)
t

0
0
0
0
1
1
1
1

0
0
1
1
0
0
1
1

0
1
0
1
0
1
0
1

0
1
0
0
1
1
1
0

= J  Q( ) + K  Q( )
t

Cuadro 6.9: Tabla de Transi iones del ir uito se uen ial.

I Q1( ) Q0( ) J1 K1 ! Q1( +1) J0 K0 ! Q0( +1)


t

0
0
0
0
1
1
1
1

0
0
1
1
0
0
1
1

0
1
0
1
0
1
0
1

0
0
0
0
0
1
0
0

0
0
0
0
0
0
0
1

!0
!0
!1
!1
!0
!1
!1
!0

0
0
0
0
1
0
1
0

0
0
0
0
0
1
0
1

!0
!1
!0
!1
!1
!0
!1
!0

6.9. MODELO DE MQUINAS DE ESTADOS FINITOS

135

representa in gr a del omportamiento de un Sistema, posiblemente sea la


forma ms moda para el anlisis y diseo.
Cuadro 6.10: Tabla de Estados Futuros del ir uito se uen ial.
E. P.
Q1 Q0
00
01
10
11

0
00/0
1
11/1

Est.
I=0
00
01
10
11

Fut. Sal.
I=1 S
01
0
10
0
11
0
00
1

01/0

0
1
0
1 10/0

Figura 6.23: Diagrama de Estados del ir uito se uen ial.

6.9. Modelo de Mquinas de Estados Finitos


La Mquina de Estados Finitos (FSM, Finite-State Ma hine) de dene
teri amente omo una quntupla <S, I, O, f, h> donde S, I y O representan
el onjunto de estados (states), entradas (inputs) y salidas (outputs), y f y h
representan las fun iones de estado siguiente y de salida, respe tivamente. La
fun in de estado siguiente f se dene matemti amente omo una apli a in
SxI ! S . En otras palabras, f asigna un estado a ada pareja formada por
estado y entrada. El modelo FSM supone que el tiempo se divide en intervalos
uniformes y que las transi iones de un estado a otro o urren slo al prin ipio de
ada intervalo de tiempo. As pues, la fun in de estado siguiente f dene en qu
estado estar la mquina FSM en el siguiente intervalo de tiempo, una vez dados
el estado y los valores de estradas en el intervalo presente.
La fun in de salida h determina los valores de salida en el estado presente.
Hay dos tipos diferentes de mquina de estados nitos, orrespondientes a las dos
deni iones distintas de la fun in de salida h (gura 6.24). Un tipo es la FSM

136
basada en estados o FSM Tipo Moore, en la que h se dene omo una apli a in
S ! O. Es de ir, se asigna una salida a ada estado de la FSM. El otro tipo en
una FSM basada en entradas o FSM tipo Mealy, en la que h se dene omo la
apli a in SxI ! O . En este aso, la salida en ada estado queda denida por el
estado presente y las entradas.
De a uerdo on esta deni in, ada onjunto S, I y O puede tener ualquier
nmero de smbolos. Sin embargo, en la pr ti a se trata slo on variables
binarias, operadores y elementos de memoria. Por lo tanto, S, I y O deben
implementarse omo un produ to ve torial de seales binarias o elementos de
memoria, mientras que las fun iones f y h se denen omo expresiones booleanas
que se implementarn on puertas lgi as.

Mealy
Salidas
Entradas
I

Estado
Futuro

Memoria

Estado
Presente

Moore
Entradas
I

Estado
Futuro

Memoria

Estado
Presente
S

Salidas
h

Figura 6.24: Mquinas Mealy y Moore.

Observemos la diferen ia, entre los dos tipos mquinas, para la representa in
del re ono edor de la se uen ia 1001 (gura 6.25).
Se apre ia laramente que la salida en el modelo Moore es una fun in slo
del estado presente del sistema y, por tanto, se indi a en el interior del ir ulo de
estado (estado / salida). En ambio, en el modelo Mealy, la salida es fun in del
estado presente y de la entrada; por tanto, se indi a junto on la entrada (entrada
/ salida), en la e ha de ujo que na e en el estado presente.

6.9. MODELO DE MQUINAS DE ESTADOS FINITOS

0/0

a/0

a
1

1/0
1/0

b/0

0/0
1

1/0

c/0

c
0

0 d/0
1

0,1

137

0/0
0/0 d
1/1

0/0,1/0

e/1

Moore

Mealy

Figura 6.25: Diagramas de Estado Moore y Mealy para el re ono edor de se uen ia
1001, on en lavamiento y sin solapamiento.

138

6.10. Captura del Modelo FSM


El diseo de lgi a se uen ial se ini ia on la genera in de un diagrama de
estados y / o las tablas de estados siguientes y de salidas. Ini ialmente, estos
diagramas y tablas deben obtenerse a partir de una des rip in en lenguaje natural
del omportamiento del ir uito se uen ial. Desgra iadamente, las des rip iones
en lenguaje natural son, a ve es, ambiguas e in ompletas en mu hos asos, debido a
que prestan aten in ex lusivamente a la fun in prin ipal del ir uito se uen ial,
sin enumerar todas las situa iones de su posible omportamiento. Por este motivo,
las des rip iones en lenguaje natural se omplementan, a ve es, on diagramas
de tiempos. Sin embargo, in luso estos diagramas de tiempos pueden resultar
in ompletos ya que no muestran las respuestas del ir uito a todas las posibles
se uen ias de entrada sino slo las ms importantes. As pues, en mu hos asos
es mejor sustituir la des rip in en lenguaje natural por una ms pre isa, basada
en un lenguaje de des rip in de hardware omo VHDL Verilog, o por una
forma gr a, omo un diagrama de ujo o un diagrama ASM. La onstru in
del modelo FSM es una parte muy reativa del pro eso de diseo, requiriendo
espe ializa in y experien ia.
Usemos, a manera de ejemplo, un aso sen illo para mostrar las fases del
diseo. Perseguimos obtener el diagrama de estados de un ontador as endente /
des endente mdulo 3 (gura 6.26. El ontador tiene dos entradas: habilita in
de uenta (C ) y dire in de la uenta (D). Cuando C = 1 el ir uito ontar en
la dire in indi ada por D, y parar uando C = 0. Si D = 0 el ir uito ontar
as endentemente, aso ontrario (D = 1 ) lo har en forma des endente. Por otra
parte, se onsta de una salida Y que se a tivar ada vez que el ontador est on
la uenta habilitada, y pase por el valor 2 as endentemente el valor 0 si lo ha e
des endentemente. Finalmente, una salida Z se a tivar ada vez que el sistema
pase por el valor 0, independientemente de la habilita in y de la dire in de la
uenta.

6.11. Minimiza in de Estados


Desde un punto de vista estri tamente fun ional la opera in de un sistema
importa esen ialmente por la rela in entrada / salida; es de ir, por su Fun in
de Transferen ia. As, dos o ms ir uitos sern fun ionalmente equivalentes
siempre que para la misma ombina in de entradas produz an las mismas salidas,
independientemente de su estru tura interna. A manera de ejemplo, anali emos
el omportamiento de los ir uitos representados en los diagramas de estados
mostrados en la gura 6.27.
Observe que estos Diagramas de Estado originan Tablas de Estados Futuros /

139

6.11. MINIMIZACIN DE ESTADOS

CD/Y

EP/Z

0X/0

0X/0
10

a/1
11/1

b/0
0

0X/0

C
D

c/0
1 11/0

e/1

0 0X/0

Contador
modulo 3

10/1
2

10/0
11/1

d/0

10

11/0

10/1
11/0

0X/0

10/0
11/0
1

f/0

0X/0

Y
Z

Clk

Figura 6.26: Diagrama de Estados del Contador as endente / des endente mdulo
3.

140

CD/Y

EP/Z

0X/0

0X/0
10/0

a/1
11/1

b/0

0X/0

c/0

1 11/0

0 0X/0

CD/Y

10/0
11/0

e/1

10/1
2

10/0
11/1

d/0

10/0

11/0

10/1
11/0

0X/0

f/0

0X/0

EP/Z
0X/0
0

11/1 r/1
10/0
10/1
2

t/0
0X/0 11/0

11/0
10/0

s/0

0X/0

Figura 6.27: Diagramas de Estados equivalentes.

141

6.11. MINIMIZACIN DE ESTADOS

Salidas (Tablas 6.11 y 6.12) ompletamente diferentes, en aparien ia:


Cuadro 6.11: Tabla de Estados Futuros / Salidas para el Diagramas de Estado
superior de la gura 6.27.
Est.
Pre.
a
b

d
e
f

Est. Fut. , Y
00 01 10 11
a,0 a,0 b,0 d,1
b,0 b,0 ,0 e,0
,0 ,0 a,1 f,0
d,0 d,0 a,1 f,0
e,0 e,0 b,0 d,1
f,0 f,0 ,0 e,0

Sal.
Z
1
0
0
0
1
0

Cuadro 6.12: Tabla de Estados Futuros / Salidas para el Diagramas de Estado


inferior de la gura 6.27.
Est.
Pre.
r
s
t

Est. Fut. , Y
00 01 10 11
r,0 r,0 s,0 t,1
s,0 s,0 t,0 r,0
t,0 t,0 r,1 s,0

Sal.
Z
1
0
0

Probar todas las posibles ombina iones de entrada para ada estado sera
una tarea ardua, sobretodo en ir uitos ms omplejos. Someteremos ambos
sistemas a una misma ombina in de entradas y observaremos el valor de las
salidas generadas (Tablas 6.13 y 6.12). Tomaremos omo estados ini iales a y r,
respe tivamente.
Cuadro 6.13: Se uen ia de estados y salidas, de dos sistemas, para una misma
ombina in de entradas.
CD
Est./Z
Y
Est./Z
Y

00 01 10 11
a/1 a/1 a/1 b/0
0
0
0
0
r/1 r/1 r/1 s/0
0
0
0
0

11
10 10
10 00
a/1 d/0 a/1 b/0 /0
0
1
1
0
0
r/1 t/0 r/1 s/0 t/0
0
1
1
0
0

10
/0 a/1
0
1
t/0 r/1
0
1

142
Este sen illo ejemplo nos demuestra que el omportamiento entrada / salida
de ambos sistemas es similar (al menos para la se uen ia de entradas elegidas).
Los bene ios obtenidos en los ir uitos fun ionalmente similares y on menor
nmero de estados son obvios: posiblemente menor nmero de ip ops, y
redu in de la etapa ombinatoria de ex ita in (menos ompuertas y de menor
tamao lgi o). Probablemente menos ompuertas y ir uitos integrados; por
tanto, menor onsumo de energa y disipa in de alor, y una super ie de montaje
ms redu ida. De aqu, nalmente, ms e onmi o.
Nos faltara denir un pro edimiento sistemti o para bus ar la minimiza in
de estados. En general, esta se basa en el on epto de equivalen ia fun ional de
FSM <S, I, O, f, h> y, por extensin, en el de equivalen ia de estados. Ambas
no iones, a su vez, se fundamentan en el estudio de Rela iones de Equivalen ia,
tema ampliamente tratado en el ampo del lgebra.
Para nuestro aso, diremos que dos estados s y s
tanto, reemplazables, s y solo s:
j

son equivalentes y, por

1. Produ en el mismo valor de salida para ada ombina in de entradas


h s ;i
h s ;i ; y

( )= (
j

2. Ambos estados tienen estados siguientes equivalentes para ada ombina in


de entradas: f s ; i  f s ; i .

( )
j

En la pr ti a debe seguirse este pro edimiento de manera se uen ial. Primero


deben formarse grupos de estados que posean las mismas salidas para ada
ombina in de entradas y estado presente, de a uerdo a la regla nmero 1.
Enseguida, se determinada el estado siguiente para ada estado. Para que estos
grupos puedan onstituir una lase de equivalen ia, todos los estados deben
tener sus estados futuros en el mismo grupo. De no lograrse, deben pro urarse
parti iones adi ionales de grupo (sub-grupos), hasta donde sea ne esario.
Veamos, en nuestro ejemplo formaremos la lase C1 para todos los estados
on salida Z =1 para ualquier ondi in de entrada, y la lase C2 para todos
los estados on salida Z = 0 para ualquier ondi in de entrada. En este aso,
el riterio de agrupa in ha sido la salida Moore; por tanto, la salida Mealy debe
evaluarse para ada dupla estado / ombina in de entradas:

C 1 = fa; eg
C 2 = fb; ; d; f g
Como puede verse en la tabla 6.14, para la lase C1 los estados futuros de
ada estado y la salida Mealy (Y ), para la misma entrada, pertene en a la misma

143

6.11. MINIMIZACIN DE ESTADOS

Cuadro 6.14: Forma in de grupos para estable er lases de equivalen ias.

00
01
10
11

C1,Y
a
e
a:C1,0 e:C1,0
a:C1,0 e:C1,0
b:C2,0 b:C2,0
d:C2,1 d:C2,1

C2,Y
b

d
f
b:C2,0 :C2,0 d:C2,0 f:C2,0
b:C2,0 :C2,0 d:C2,0 f:C2,0
:C2,0 a:C1,1 a:C1,1 :C2,0
e:C1,0 f:C2,0 f:C2,0 e:C1,0

lase y son iguales respe tivamente. De esta forma, podemos on luir que
son equivalentes (a  e).

aye

Sin embargo, esto no o urre para los estados en la lase C2. Si observamos la
la para la entrada CD = 10, los estados futuros para b y f pertene en a la Clase
C2, on salidas Mealy 0, pero los estados futuros de y d pertene en a la lase C1,
on salida Mealy 1. Esto nos obliga a realizar una nueva parti in de esta lase.
Redeniremos C2 y rearemos dos lases nuevas: C3, on salida Moore y Mealy
en ero y C4 on salida Moore en ero y salida Mealy en 1, omo se muestra a
ontinua in.

C 3 = fb; f g
C 4 = f ; dg
Repetiremos el anlisis slo para estas lases nuevas:
Cuadro 6.15: Forma in de nuevos grupos para estable er lases de equivalen ias.
C3,Y

00
01
10
11

b
b:C3,0
b:C3,0
:C4,0
e:C1,0

C4,Y

f

d
f:C3,0 :C4,0 d:C4,0
f:C3,0 :C4,0 d:C4,0
:C4,0 a:C1,1 a:C1,1
e:C1,0 f:C3,0 f:C3,0

Como puede desprenderse de esta nueva divisin podemos on luir que b y f


son equivalentes (b  f ), as omo tambin lo son y d (  d).
Si ada apari in de e la reemplazamos por su equivalente a y de igual
forma pro edemos on los otros estados equivalentes, arribaremos a una tabla de
estados on las repetidas y obviamente redundantes que pueden ser eliminadas,
obteniendo un resultado semejante al mostrado al ini io en la Tabla 6.11:

144

Cuadro 6.16: Tablas de Estados Futuros / Salidas equivalente a la de la Tabla


6.11.
Est.
Pre.
a
b

d
e
f
Est.
Pre.
a
b


a
b
Est.
Pre.
a
b

Est.
Pre.
r
s
t

Est. Fut. , Y
00 01 10 11
a,0 a,0 b,0 d,1
b,0 b,0 ,0 e,0
,0 ,0 a,1 f,0
d,0 d,0 a,1 f,0
e,0 e,0 b,0 d,1
f,0 f,0 ,0 e,0
Est. Fut. , Y
00 01 10 11
a,0 a,0 b,0 ,1
b,0 b,0 ,0 a,0
,0 ,0 a,1 b,0
,0 ,0 a,1 b,0
a,0 a,0 b,0 ,1
b,0 b,0 ,0 a,0
Est. Fut. , Y
00 01 10 11
a,0 a,0 b,0 ,1
b,0 b,0 ,0 a,0
,0 ,0 a,1 b,0
Est. Fut. , Y
00 01 10 11
r,0 r,0 s,0 t,1
s,0 s,0 t,0 r,0
t,0 t,0 r,1 s,0

Sal.
Z
1
0
0
0
1
0
Sal.
Z
1
0
0
0
1
0
Sal.
Z
1
0
0
Sal.
Z
1
0
0

145

6.12. CODIFICACIN DE ESTADOS

Si ahora equiparamos las parejas de estados (a, r), (b, s) y ( , t) obviamente


apre iamos que ambos sistemas poseen idnti o omportamiento.
Por otra parte, la segunda ondi in puede extenderse de la siguiente manera:
Ambos estados tienen estados siguientes equivalentes sus estados siguientes son
el mismo estado presente, para ada ombina in de entradas: f s ; i
f s ;i _
f s ;i
s ^ f s ;i
s . Ha iendo uso de esta extensin es posible emplear
el mtodo ono ido omo Mtodo de Elimina in de Filas, de manera dire ta.

[ ( )=
j

( )= (

)=

Cuadro 6.17: Tablas on apli a in del mtodo de Elimina in de Filas.


Est.
Pre.
a
b

e
f
Est.
Pre.
a
b

Est. Fut. , Y
00
01 10 11
a,0 a,0 b,0 d,1
b,0 b,0 ,0 e,0

Sal.
Z
1
0

e,0
f,0

1
0
Sal.
Z
1
0
0

,0 ,0 a,1 f,0
d,0 d,0 a,1 f,0
e,0 b,0
f,0 ,0
Est. Fut. , Y
00
01 10
a,0 a,0 b,0
b,0 b,0 ,0
,0 ,0 a,1

d,1
e,0
11
,1
a,0
b,0

0
0

6.12. Codi a in de Estados


Una FSM de n estados tiene ms de n! odi a iones posibles, ya que se
pueden usar ms de log2 n bits para odi ar los estados. Observemos, a manera
de ejemplo, las posibilidades de odi a in de una FSM de 4 estados, para la
ual se utilizan dos bits de digo.
En la pr ti a para evitar evaluar todas las posibilidades se re urren a diversas
estrategias, de las uales men ionaremos a tres de las ms omnmente utilizadas:
mnimo ambio de bits, prioridad en adya en ia y un bit por estado.

6.12.1. Mnimo Cambio de Bits.


Lo que se persigue es que la antidad de unos que ambie, en ada una de
las transi iones, sea mnima. Esta estrategia se basa en la premisa de que en una

146

Cuadro 6.18: Diferentes posibilidades de odi ar un grupo de 4 estados usando


2 bits.
Codi a in
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24

a
00
00
00
00
00
00
01
01
01
01
01
01
10
10
10
10
10
10
11
11
11
11
11
11

Estados
b
01 10
01 11
10 01
10 11
11 01
11 10
00 10
00 11
10 00
10 11
11 00
11 10
00 01
00 11
01 00
01 11
11 00
11 01
00 01
00 10
01 00
01 10
10 00
10 01

d
11
10
11
10
10
01
11
10
01
00
10
00
11
01
11
00
01
00
10
01
10
00
01
00

147

6.12. CODIFICACIN DE ESTADOS

implementa in SDP, se ne esita, al menos, una ompuerta AND adi ional y una
entrada ms en la OR, para poner en 0 1 el ip op ambiante. De esta forma,
a mayor nmero de bits ambiando tambin aumenta el tamao de la SDP.
Los pasos a seguir son: estable er la antidad de unos que ambian en ada
transi in para formar lo que se ono e omo peso del ar o; y evaluar diferentes
traye torias, de a uerdo a un patrn o ve tor de entradas. La ongura in ptima
ser aquella que minimi e el osto o suma de los pesos.
A manera de ejemplo, asumamos que requerimos odi ar los estados del
diagrama de estados de la gura 6.28:
a

Figura 6.28: Diagrama de Estados para odi a in.


Como se trata de una mquina de uatro estados, se ne esitarn omo mnimo
dos elementos de memoria para su odi a in. Si tomamos la op in 1 de la
Tabla 6.18 arribaremos al Diagrama mostrado en la gura 6.29.
00

01
2

2
11

10

Peso Total de la Trayectoria: 6

Figura 6.29: Estados odi ados on op in 1 de la Tabla 6.18.


La traye toria mostrada en la gura 6.29 tiene un Peso Total de 6. Si usamos
biestables tipo D, esta situa in nos llevara a las e ua iones de ex ita in siguiente
(veremos este pro eso, en detalle, un po o ms adelante):

D1 = Q1  Q0 + Q1 Q0
D0 = Q0

148
El osto fsi o sera: 2 ompuertas AND de 2 entradas, 1 ompuerta OR de
2 entradas y 2 inversores (hemos adoptado la forma SDP, ya que al minimizar
Q1  Q0 Q1 Q0 Q1  Q0 , en uyo
algebrai amente podemos arribar a D1
aso el osto sera: una ompuerta XOR de dos entradas y un inversor ).

Modi ando la odi a in, al usar la op in 2 de la gura 6.28, obtenemos


lo mostrado en la gura 6.30:
00

01
1

1
10

11

Peso Total de la Trayectoria: 4

Figura 6.30: Estados odi ados on op in 2 de la Tabla 6.18.


La traye toria mostrada en la gura 6.30 tiene un Peso Total de 4. Si usamos
biestables tipo D, esta situa in nos llevara a las e ua iones de ex ita in siguiente
(veremos este pro eso, en detalle, un po o ms adelante):

D1 = Q0
D0 = Q1
El osto fsi o sera: 1 inversor. Como se apre ia se ha logrado una redu in
importante de la etapa ombinatoria, solo ambiando la asigna in de estados, al
seguir una traye toria de menor peso.
Sin embargo, la traye toria de menor peso no siempre garantiza una
minimiza in, espe ialmente uando estas estn sujetas al valor de las
ombina iones de entradas. Volveremos sobre esto, on ms detalle, un po o ms
adelante.

6.12.2. Prioridad en adya en ia.


Con esta estrategia se asignan prioridades a la odi a in de los estados de
a uerdo a los siguientes riterios:
1. Asignar odi a iones adya entes, que slo dieran en un bit, a todos los
estados que tengan el mismo estado futuro para un valor dado de entrada.

6.12. CODIFICACIN DE ESTADOS

149

2. Asignar odi a iones adya entes a todos los estados siguientes del mismo
estado.
3. Asignar odi a iones adya entes a todos los estados que tengan el mismo
valor de salida para un valor dado de entrada.
Tomemos, a manera de ejemplo, el re ono edor de la se uen ia 1001 sin
en lavamiento y on solapamiento, de la gura 6.4.
1. De a uerdo al riterio 1, deben tener digos adya entes :
a) b y e (poseen b omo estado futuro para una entrada 1 y omo estado
futuro para una entrada 0 ).
b) a, b, y e (poseen b omo estado futuro para una entrada 1 ).
) a y d (poseen a omo estado futuro para una entrada 0 ).
2. De a uerdo al riterio 2, deben tener digos adya entes :
a) a y b (son estados futuros de a).
b) b y (son estados futuros de b).
) b y d (son estados futuros de ).
d) a y e (son estados futuros de d).
e) b y (son estados futuros de e).
3. El riterio 3 no apli a en este aso por tratarse de una mquina Moore (las
salidas dependen slo del estado presente).
Como se trata de una mquina de in o estados, se ne esitarn omo mnimo tres
elementos de memoria para su odi a in.
Por 1.(a) asignaremos b = 000 y e = 001.
Por 1.(b) asignaremos a = 010. Observe que a es adya ente on b, pero
no lo es on e, omo pide el riterio. Evidentemente no es posible umplir
a abalidad on las sugeren ias surgidas de la apli a in de los riterios.
Terminaremos este punto asignando = 011, tornndolo adya ente on a y
e, pero no on b.
Por 1.( ) asignaremos d = 110, adya ente on a.

150

110 1
0

0
1

111

1
010 0
0
1

1011
0
0
1
100

101

0
1

1e
0
0001
1

0
000 1

Figura 6.31: Codi a in de Estados por el riterio de prioridad en adya en ia.


En este punto ya no es ne esaria la apli a in del segundo riterio porque todos
los estados han quedado odi ados.
Existe un riterio de tipo pr ti o que mu has ve es obliga a reformular las
odi a iones adoptadas. En el en endido o arranque de una mquina digital
es mu ho ms sen illo obtener que todos los elementos de memoria estn en
ero, mediante la utiliza in de la lnea de puesta a ero asin rni a (reset).
Igualmente, algunos dispositivos poseen una lnea de puesta a uno (set), pero
en menor medida. Enton es, para garantizar que la mquina omien e su trabajo
en un estado ono ido y estable, normalmente se asigna el digo 00...0 (11...1 )
al estado ini ial.
110

111

b1
0

0
010 1
0
1

e1
0

0d
1

1
0
0011
1

0
100 1
0
1
a1
0

1
0
0
000 1

101

1
0
c
0
1
0001
1

Figura 6.32: Codi a in de estados on el riterio de prioridad en adya en ia,


onsiderando el estado ini ial omo 000.

6.13. ECUACIONES DE ESTADO FUTURO Y SALIDAS

151

Probablemente, este sea uno de los riterios ms utilizados en la


odi a in binaria de estados, ya que generalmente propor iona redu iones
signi ativamente importantes on respe to a los otros.

6.12.3. Un bit por estado


En este aso, la odi a in redundante persigue tener slo un uno a tivo
en ada estado, asignndole un biestable a ada estado. Naturalmente, slo es
pr ti a para sistemas on po os estados, ya que evidentemente el objetivo no es
lograr una minimiza in del osto material del diseo, sino ms bien fa ilitar la
etapa de diseo.

a = 00001
b = 00010
= 00100
d = 01000
e = 10000

6.13. E ua iones de Estado Futuro y Salidas


Despus de haber ompletado el pro eso de minimiza in y odi a in de
estados, se debe elegir el tipo ade uado de biestable para la implementa in de la
mquina de estados nitos. Como indi a la tabla 6.10 hemos analizado uatro tipos
de biestables. En general, los biestables T son una ex elente ele in para ir uitos
se uen iales tipo ontador, donde estos deben onmutar de 0 a 1 y volver a ha erlo
de 1 a 0 on gran fre uen ia. Los biestables D deben utilizarse, normalmente, en
apli a iones donde la informa in de entrada debe alma enarse durante algn
tiempo para su uso posterior. En este sentido, los biestables D se on iben para
alma enamiento temporal o para a esos a la informa in desde terminales de
entrada / salida externos. El biestable SR se utiliza ms en situa iones donde
diversas seales ponen a 1 0 los biestables. Finalmente, el biestable JK, que es
el ms omplejo, se utiliza siempre que sea ne esario ombinar las presta iones de
un biestable T y un biestable SR.
De lo di ho anteriormente, se dedu e que los biestables SR y JK deberan
utilizarse ms. Sin embargo, aunque tienden a redu ir el oste de la lgi a de
entrada, requieren el doble de onexiones en sus entradas que los biestables T
y D. En general, omo los biestables T y D pre isan de un menor nmero de
onexiones, se adaptan mejor a las implementa iones VLSI.
Para omparar la e ien ia total de los diferentes biestables, se puede obtener
la lgi a de entrada para el re ono edor de se uen ia 1001, utilizando ada uno
de los uatro tipos de biestables. Por omodidad repetiremos el Diagrama de

152
Estados propuesto para la mquina Moore on en lavamiento y sin solapamiento
de la gura 6.3, on la siguiente odi a in de estados.

a = 000
b = 010
= 001
d = 100
e = 011
0
a/0
1
1

b/0
0
1
c/0
0

0 d/0
1

0,1
e/1

Figura 6.33: Diagrama de Estados para la erradura se uen ial. Mquina Moore
on en lavamiento y sin solapamiento.
El paso siguiente en el pro eso de diseo onsiste en transformar la informa in
desde el Diagrama de Estados a una Tabla de Estados Futuros y Salidas:
Observe que de las o ho posibles ombina iones para la odi a in de
estados, han quedado tres sin utilizar (101, 110 y 111 ). Un diseo uidadoso
debe ontemplar estos estados "no importa" en algn sentido. Re ordando la
estru tura de una FSM, desde la gura 6.24, resulta evidente que el Estado
Futuro es una fun in del Estado Presente y de las entradas al sistema. Por
tanto, para la determina in de la e ua iones de estados futuros y, posteriormente
las e ua iones de ex ita in, estos estados no usados junto on las entradas
formarn ombina iones de las ono idas omo "no importa" (1010 [10 , 1011 [11 ,
1100 [12 , 1101 [13 , 1110 [14 y 1111 [15 ).

153

6.13. ECUACIONES DE ESTADO FUTURO Y SALIDAS

Cuadro 6.19: Tabla de Estados Futuros y Salida para la mquina Moore on


en lavamiento y sin solapamiento.
Est. Pre.
Q2 Q1 Q0
a
000
b
010

001
d
100
e
011

Est.
I=0
000
001
100
000
011

Fut.
I=1 S
010 0
000 0
000 0
011 0
011 1

Bien, dire tamente desde la Tabla, y por tratarse de una mquina Moore (la
salida depende slo del estado presente), podemos obtener la e ua in para la
salida:

= Q2Q1 Q0

Sin embargo, si utilizamos el estado en que se a tiva esta salida, junto on los
dos valores de la entrada y algunas de las ombina iones "no importa", podramos
plantear:
P
P

S = (6; 7) + NI (10; 11; 12; 13; 14; 15)


S = (Q2 Q1 Q0 I + Q2 Q1 Q0 I ) + (Q2 Q1 Q0 I + Q2 Q1 Q0 I )
S = Q1 Q0

Por otra parte, la transi in requerida en ada una de las unidades de memoria
se puede ordenar en tablas separadas, para ada uno de los biestables.

Ahora, a partir de las e ua iones de estado futuro deben en ontrarse las


e ua iones de ex ita in parti ular para ada tipo de biestable.

6.13.1. Biestable tipo D

Como la e ua in de estado futuro de este biestable es Q( +1) D , enton es


si el ir uito se implementara slo on este tipo de biestable, sus e ua iones de
ex ita in seran:
P
P
D2
NI ; ; ; ; ;
Q1 Q0 I
P
P
D1 P ; ; ;
NI ; ; ; ; ;
Q1  Q0
P
t

= (2) +
(10 11 12 13 14 15) =
= (1 6 7 9) +
(10 11 12 13 14 15) =
D0 = (4; 6; 7; 9) + NI (10; 11; 12; 13; 14; 15) = Q1 I + Q2 Q1 + Q2 I

Un ir uito que implemente todas las expresiones re in obtenidas lo podemos


apre iar en la gura 6.34.

154

Cuadro 6.20: Tabla de Transi in y E ua in de Estado Futuro para el bit 2 de


la mquina Moore on en lavamiento y sin solapamiento.
Q2( ) Q1( ) Q0( ) I
0000
0001
0100
0101
0010
0011
1000
1001
0110
0111
P
t

Q2( +1)
Q2( +1)
t

Q2( +1)
0
0
0
0
1
0
0
0
0
0

= (2) + P (10; 11; 12; 13; 14; 15)


= Q1( ) Q0( ) I
NI

Cuadro 6.21: Tabla de Transi in y E ua in de Estado Futuro para el bit 1 de


la mquina Moore on en lavamiento y sin solapamiento.
Q2( ) Q1( ) Q0( ) I
0000
0001
0100
0101
0010
0011
1000
1001
0110
0111
P
t

Q1( +1)
Q1( +1)
t

Q1( +1)
0
1
0
0
0
0
0
1
1
1

= (1; 9; 6; 7) + P (10; 11; 12; 13; 14; 15)


= Q1( ) Q0( ) I + Q1( ) Q0( ) = Q1( )  Q0( )
NI

6.13. ECUACIONES DE ESTADO FUTURO Y SALIDAS

1
3
5
7

1
3
5

A3
A2
A1
A0

Dec
15
4 a 16 14
13
12
10
09
08
07
06
05
04
03
02
01
00

155

9
7
6
4
9
7
6
1

Q 2D
Qn C
Q 1D
Qn C

1
0

Q 0D
Qn C

1
0

3
5

Salida

Figura 6.34: Cir uito re ono edor de la se uen ia 1001, on biestables tipo D.

156
Cuadro 6.22: Tabla de Transi in y E ua in de Estado Futuro para el bit 0 de
la mquina Moore on en lavamiento y sin solapamiento.
Q2( ) Q1( ) Q0( ) I
0000
0001
0100
0101
0010
0011
1000
1001
0110
0111
P
t

Q0( +1)
Q0( +1)
t

Q0( +1)
0
0
1
0
0
0
0
1
1
1

= (4; 9; 6; 7) + P (10; 11; 12; 13; 14; 15)


= Q1( ) I + Q2( ) Q1( ) + Q2( ) I
NI

6.13.2. Biestable tipo T

Como la e ua in de estado futuro de este biestable es Q( +1)


T  Q( )
, enton es si el ir uito se implementara slo on este tipo de biestable, sus
e ua iones de ex ita in seran:
t

Q2( +1)
Q1( +1)
Q0( +1)
t

= T2  Q2( ) = Q1 Q0 I
= T1  Q1( ) = Q1  Q0
= T0  Q0( ) = Q1 I + Q2 Q1 + Q2 I
t

Obviamente, desde aqu no se puede aislar T tan f ilmente, omo es nuestro


objetivo. Debemos bus ar un me anismo diferente para obtener las expresiones
requeridas. Volvamos a las tablas de transi in del sistema (Tablas 6.20, 6.21 y
6.22) y onstruyamos un mapa K on los requerimientos impuestos por la e ua in
de estado futuro para un biestable tipo T :
n

Esto nos ondu e a la siguiente expresin:


P
P

T2 = (2; 8; 9) +
T2 = Q2 Q1 I + Q2

(10; 11; 12; 13; 14; 15)

Esto nos ondu e a la siguiente expresin:


P
P

T1 = (1; 4; 5; 9) +
T1 = Q0 I + Q1 Q0

(10; 11; 12; 13; 14; 15)

0
0
0
0
0
0
1
1
0
0

0
0
1
1
0
0
0
0
1
1

0
0
0
0
1
1
0
0
1
1

0
1
0
1
0
1
0
1
0
1

( +1) Tran.
2

0
0
0
0
1
0
0
0
0
0

0!0
0!0
0!0
0!0
0!1
0!0
1!0
1!0
0!0
0!0

Req.

T2 = 0
T2 = 0
T2 = 0
T2 = 0
T2 = 1
T2 = 0
T2 = 1
T2 = 1
T2 = 0
T2 = 0

( +1) Tran.
1

0
1
0
0
0
0
0
1
1
1

0!0
0!1
1!0
1!0
0!0
0!0
0!0
0!1
1!1
1!1

Req.

T1 = 0
T1 = 1
T1 = 1
T1 = 1
T1 = 0
T1 = 0
T1 = 0
T1 = 1
T1 = 0
T1 = 0

( +1) Tran.
0
t

0
0
1
0
0
0
0
1
1
1

0!0
0!0
0!1
0!0
1!0
1!0
0!0
0!1
1!1
1!1

Req.

T0 = 0
T0 = 0
T0 = 1
T0 = 0
T0 = 1
T0 = 1
T0 = 0
T0 = 1
T0 = 0
T0 = 0

6.13. ECUACIONES DE ESTADO FUTURO Y SALIDAS

157

Cuadro 6.23: Tabla de Transi in y Requerimientos de Ex ita in para la mquina


Moore on en lavamiento y sin solapamiento.

( ) Q( ) Q( ) I
2 1 0

158

Cuadro 6.24: Tabla de requerimientos de ex ita in para T2 .


Q2 Q1
00
01
11
10

Q0 I
00 01 11 10
0 0 0 1
0 0 0 0
x x x x
1 1 x x

Cuadro 6.25: Tabla de requerimientos de ex ita in para T1 .


Q2 Q1
00
01
11
10

Q0 I
00 01 11 10
0 1 0 0
1 1 0 0
x x x x
0 1 x x

Cuadro 6.26: Tabla de requerimientos de ex ita in para T0 .


Q2 Q1
00
01
11
10

Q0 I
00 01 11 10
0 0 1 1
1 0 0 0
x x x x
0 1 x x

159

6.13. ECUACIONES DE ESTADO FUTURO Y SALIDAS

Esto nos ondu e a la siguiente expresin:


P

T0 = (2; 3; 4; 9) + (10; 11; 12; 13; 14; 15)


T0 = Q1 Q0 + Q1 Q0 I + Q2 I

6.13.3. Biestable tipo SR

= +

Como la e ua in de estado futuro de este biestable es Q( +1)


S Q( ) R
, enton es si el ir uito se implementara slo on este tipo de biestable, sus
e ua iones de ex ita in seran:
t

Q2( +1)
Q1( +1)
Q0( +1)
t

= S2 + Q2( ) R2 = Q1Q0 I
= S1 + Q1( ) R1 = Q1  Q0
= S0 + Q0( ) R1 = Q1I + Q2 Q1 + Q2 I
t

Obviamente desde aqu no se puede aislar S y R tan f ilmente, al igual


que en el aso del biestable tipo T. Debemos bus ar un me anismo diferente para
obtener las expresiones requeridas. Volvamos a las tablas de transi in del sistema
(Tablas 6.20, 6.21 y 6.22) y onstruyamos un mapa K on los requerimientos
impuestos por la e ua in de estado futuro para un biestable tipo SR:
n

Esto nos ondu e a las siguientes expresiones:


P

S2 = (2) + (10; 11; 12; 13; 14; 15)


QI P
S2 = Q
P1 0
P
R2 = (8; 9) + (0; 1; 3; 4; 5; 6; 7) + (10; 11; 12; 13; 14; 15)
R2 = Q2
Esto nos ondu e a las siguientes expresiones:
P

S1 = (1; 9) + (6; 7) + (10; 11; 12; 13; 14; 15)


S1 = Q
QI P
P1 0
P
R1 = (4; 5) + (0; 2; 3; 8) + (10; 11; 12; 13; 14; 15)
R1 = Q1 Q0
Esto nos ondu e a las siguientes expresiones:
P

S0 = (4; 9) + (6; 7) + (10; 11; 12; 13; 14; 15)


S0 = Q
I + Q2 IP
P1
P
R0 = (2; 3) + (0; 1; 5; 8) + (10; 11; 12; 13; 14; 15)
R0 = Q2 Q1

( +1) Tran.
2
t

0000

0!0

0001

0!0

0100

0!0

0101

0!0

0010

0!1

0011

0!0

1000

1!0

1001

1!0

0110

0!0

0111

0!0

Req.

S2 = 0
R2 = X
S2 = 0
R2 = X
S2 = 0
R2 = X
S2 = 0
R2 = X
S2 = 1
R2 = 0
S2 = 0
R2 = X
S2 = 0
R2 = 1
S2 = 0
R2 = 1
S2 = 0
R2 = X
S2 = 0
R2 = X

( +1) Tran.
1
t

0!0

0!1

1!0

1!0

0!0

0!0

0!0

0!1

1!1

1!1

Req.

S1 = 0
R1 = X
S1 = 1
R1 = 0
S1 = 0
R1 = 1
S1 = 0
R1 = 1
S1 = 0
R1 = X
S1 = 0
R1 = X
S1 = 0
R1 = X
S1 = 1
R1 = 0
S1 = X
R1 = 0
S1 = X
R1 = 0

( +1) Tran.
0

0!0

0!0

0!1

0!0

1!0

1!0

0!0

0!1

1!1

1!1

Req.

S0 = 0
R0 = X
S0 = 0
R0 = X
S0 = 1
R0 = 0
S0 = 0
R0 = X
S0 = 0
R0 = 1
S0 = 0
R0 = 1
S0 = 0
R0 = X
S0 = 1
R0 = 0
S0 = X
R0 = 0
S0 = X
R0 = 0

160

Cuadro 6.27: Tabla de Transi in y Requerimientos de Ex ita in para la mquina


Moore on en lavamiento y sin solapamiento.

( ) Q( ) Q( ) I
2 1 0

6.13. ECUACIONES DE ESTADO FUTURO Y SALIDAS

161

Cuadro 6.28: Tabla de requerimientos de ex ita in para el biestable 2 (SR).


S2
Q2 Q1
00
01
11
10
R2
Q2 Q1
00
01
11
10

Q0 I
00 01 11 10
0 0 0 1
0 0 0 0
x x x x
0 0 x x
Q0 I
00 01 11 10
X X X 0
X X X X
x x x x
1 1 x x

Cuadro 6.29: Tabla de requerimientos de ex ita in para el biestable 1 (SR).


S1
Q2 Q1
00
01
11
10
R1
Q2 Q1
00
01
11
10

Q0 I
00 01 11 10
0 1 0 0
0 0 X X
x x x x
0 1 x x
Q0 I
00 01 11 10
X 0 X X
1 1 0 0
x x x x
X 0 x x

162
Cuadro 6.30: Tabla de requerimientos de ex ita in para el biestable 0 (SR).
S0
Q2 Q1
00
01
11
10
R0
Q2 Q1
00
01
11
10

Q0 I
00 01 11 10
0 0 0 0
1 0 X X
x x x x
0 1 x x
Q0 I
00 01 11 10
X X 1 1
0 X 0 0
x x x x
X 0 x x

6.13.4. Biestable tipo JK

Como la e ua in de estado futuro de este biestable es Q( +1) JQ( ) KQ( )


, enton es si el ir uito se implementara slo on este tipo de biestable, sus
e ua iones de ex ita in seran:
t

Q2( +1)
Q1( +1)
Q0( +1)
t

= J2Q2( ) + K2Q2( ) = Q1 Q0 I
= J1Q1( ) + K1Q1( ) = Q1  Q0
= J0Q0( ) + K0Q0( ) = Q1 I + Q2 Q1 + Q2I
t

Obviamente desde aqu no se puede aislar J y K tan f ilmente, al igual


que en el aso del biestable tipo T. Debemos bus ar un me anismo diferente para
obtener las expresiones requeridas. Volvamos a las tablas de transi in del sistema
(Tablas 6.20, 6.21 y 6.22) y onstruyamos un mapa K on los requerimientos
impuestos por la e ua in de estado futuro para un biestable tipo JK :
n

Esto nos ondu e a las siguientes expresiones:


P
P
P

J2 = (2) + (8; 9) + (10; 11; 12; 13; 14; 15)


J2 = QP1 Q0 I
P
P
K2 = (8; 9) + (0; 1; 2; 3; 4; 5; 6; 7) + (10; 11; 12; 13; 14; 15)
K2 = 1

Esto nos ondu e a las siguientes expresiones:


P
P
P

J1 = (1; 9) + (2; 3; 4; 5; 6) + (10; 11; 12; 13; 14; 15)


J1 = QP1 I
P
P
K1 = (4; 5) + (0; 1; 2; 3; 8; 9) + (10; 11; 12; 13; 14; 15)
K1 = Q0

( +1) Tran.
2
t

0000

0!0

0001

0!0

0100

0!0

0101

0!0

0010

0!1

0011

0!0

1000

1!0

1001

1!0

0110

0!0

0111

0!0

Req.

J2 = 0
K2 = X
J2 = 0
K2 = X
J2 = 0
K2 = X
J2 = 0
K2 = X
J2 = 1
K2 = X
J2 = 0
K2 = X
J2 = X
K2 = 1
J2 = X
K2 = 1
J2 = 0
K2 = X
J2 = 0
K2 = X

( +1) Tran.
1
t

0!0

0!1

1!0

1!0

0!0

0!0

0!0

0!1

1!1

1!1

Req.

J1 = 0
K1 = X
J1 = 1
K1 = X
J1 = X
K1 = 1
J1 = X
K1 = 1
J1 = 0
K1 = X
J1 = 0
K1 = X
J1 = 0
K1 = X
J1 = 1
K1 = X
J1 = X
K1 = 0
J1 = X
K1 = 0

( +1) Tran.
0

0!0

0!0

0!1

0!0

1!0

1!0

0!0

0!1

1!1

1!1

Req.

J0 = 0
K0 = X
J0 = 0
K0 = X
J0 = 1
K0 = X
J0 = 0
K0 = X
J0 = X
K0 = 1
J0 = X
K0 = 1
J0 = 0
K0 = X
J0 = 1
K0 = X
J0 = X
K0 = 0
J0 = X
K0 = 0

6.13. ECUACIONES DE ESTADO FUTURO Y SALIDAS

( ) Q( ) Q( ) I
2 1 0

163

Cuadro 6.31: Tabla de Transi in y Requerimientos de Ex ita in para la mquina


Moore on en lavamiento y sin solapamiento.

164

Cuadro 6.32: Tabla de requerimientos de ex ita in para el biestable 2 (JK ).


J2
Q2 Q1
00
01
11
10
K2
Q2 Q1
00
01
11
10

Q0 I
00 01 11 10
0 0 0 1
0 0 0 0
x x x x
X X x x
Q0 I
00 01 11 10
X X X X
X X X X
x x x x
1 1 x x

Cuadro 6.33: Tabla de requerimientos de ex ita in para el biestable 1 (JK ).


J1
Q2 Q1
00
01
11
10
K1
Q2 Q1
00
01
11
10

Q0 I
00 01 11 10
0 1 0 X
X X X X
x x x x
0 1 x x
Q0 I
00 01 11 10
X X X X
1 1 0 0
x x x x
X X x x

6.14. OPTIMIZACIN Y TEMPORIZACIN

165

Cuadro 6.34: Tabla de requerimientos de ex ita in para el biestable 0 (JK ).


J0
Q2 Q1
00
01
11
10
K0
Q2 Q1
00
01
11
10

Q0 I
00 01 11 10
0 0 X X
1 0 X X
x x x x
0 1 x x
Q0 I
00 01 11 10
X X 1 1
X X 0 0
x x x x
X X x x

Esto nos ondu e a las siguientes expresiones:


P
P
P

J0 = (4; 9) + (2; 3; 6; 7) + (10; 11; 12; 13; 14; 15)


J0 = QP1 I + Q2 I P
P
K0 = (2; 3) + (0; 1; 4; 5; 8; 9) + (10; 11; 12; 13; 14; 15)
K0 = Q1

De no utilizarse de odi adores, en la genera in de las e ua iones de


ex ita in y salidas, resulta evidente, a la luz de los resultados, la ventaja de
los biestables JK sobre los SR, ya que logran expresiones ms redu idas.

6.14. Optimiza in y Temporiza in


De no haberse apli ado ningn riterio de optimiza in en la onse u in de
las fun iones ombinatorias re in desarrolladas, debe a ometerse esta etapa. De
esta manera, el siguiente paso en un pro eso de sntesis de lgi a se uen ial, debe
onsistir en tratar de obtener la expresin ms redu ida posible para las e ua iones
de ex ita in y de salida. La idea es redu ir el nmero de literales y produ tos lo
que ondu ira a utilizar menor antidad de ompuertas, ada una del tamao ms
pequeo posible (situa in no siempre exitosa). Apli a iones del lgebra booleana,
as omo mtodos omputa ionales para minimiza in intervienen en esta etapa.
El paso nal en el pro eso de sntesis se uen ial onsiste en obtener un
diagrama de tiempos del ir uito, y los retardos de las puertas y biestables que
se utilizarn para veri ar el omportamiento de entrada y salida del ir uito
sintetizado, y generar las seales de entrada y salida para simula in. Dadas las
ondas de entradas, el simulador generar las ondas de las salidas, que podrn

166
ompararse on las esperadas en las salidas obtenidas en el ir uito, o en las
espe i a iones de ir uito, o en la des rip in fun ional. Estas seales de la
entrada y salida se denominan ve tores de prueba, ya que pueden utilizarse para
probar el ir uito despus de que ste se haya fabri ado.
La gura 6.35 muestra un diagrama de tiempos para el dete tor de la se uen ia
1001, on en lavamiento y sin solapamiento.

6.15. FSM in ompletamente espe i ada


Analizando, de manera un po o ms uidadosa, la situa in planteada en
la tabla 6.19, en lugar de emplear los estados no utilizados omo base de
ombina iones no importa, sera preferible saber que pasara si por alguna razn
el sistema entra en algunos de esos estados que no deberan produ irse. En otras
palabras, en lugar de suponer a priori que un estado de esta naturaleza nun a
ser parte del pro eso, sera mejor prever una solu in para el aso uando se
presentara. Observemos el enfoque que se da a esta situa in en la gura 6.36.
En el sistema mostrado en la gura 6.36 se han espe i ado todos los posibles
estados que admite ualquier digo binario minimalista. De esta manera, si la
mquina ini ia su opera in de una forma errnea, en ualquiera de estos estados,
tomar solo un i lo de reloj que esta se re upere a una opera in normal y
sin prdida de la informa in. Naturalmente esta situa in no permite lograr
minimiza in de la etapa ombinatoria de ex ita in, pero garantiza una opera in
segura, siempre que no exista una falla fsi a en el sistema.

6.16. Conversin Mealy - Moore


La gura 6.24 muestra la estru tura general de dos mquinas se uen iales
sin rni as, una tipo Mealy y la otra tipo Moore. El dispositivo de memoria es
un onjunto de n ips-ops que alma enan el estado presente de la mquina (
posibles estados). Todos los ips-ops estn one tados a un reloj omn que
produ irn solo un ambio de estado por ada i lo del mismo.

El estado futuro de la mquina est determinado por el ir uito ombinatorio


denominado f, omo una fun in de las entradas y del estado presente. La salida
est gobernada por el ir uito ombinatorio h omo una fun in del estado
presente y de las entradas (para el aso de la mquina Mealy) slo por el estado
presente (para el aso de la mquina Moore).

6.16. CONVERSIN MEALY - MOORE

167

Figura 6.35: Diagrama de tiempos del dete tor de se uen ia 1001, on


en lavamiento.

168
0
g/0

h/0

a/0

a/0

g/0
1

1
f/0

f/0
1

b/0

0
1

c/0

c/0
0

0 d/0

0 d/0

0,1

h/0
1

b/0

0,1

e/1

e/1

Figura 6.36: Diagrama de Estados on orre in de estados (Completamente


espe i ado).
Nuestro objetivo, ahora, ser en ontrar un amino que nos permita onvertir
un sistema Mealy a otro Moore, fun ionalmente equivalente, y vi eversa.
Naturalmente, los resultados nales garantizarn el omportamiento diferen iado
dado por las deni iones bsi as del tipo de mquina.
Un ex elente punto de ini io se en uentra en el trabajo del Prof. Nstor
Milln, previamente itado, y del ual tomamos el planteamiento de la tarea que
pretendemos abordar.

6.16.1. Conversin de Mealy a Moore.


Tomando un diagrama de estados ualquiera, que orresponde a una
on ep in Mealy, podemos denir, laramente, una ondi in espe i a de estado
futuro (q +1 ) y salida (o ) para ada par formado por un estado presente (q ) y seal
de entrada (i ). En otras palabras, ada par ordenado (q ; i ) est determinando
un estado futuro y una salida:
t

(q ; i ) ! (q +1; o )
t

Si ha emos depender esta salida (o ) solo del estado generado (q +1 ), tendremos


por deni in un estado Moore. Notaremos este estado por q  y la salida que
depende de l por z  .
t

169

6.16. CONVERSIN MEALY - MOORE

De esta forma, debe generarse un estado Moore a partir de ada ombina in


de estado presente y entrada Mealy.
Usemos, a manera de ejemplo, el diagrama de estados (gura 6.37) de una
mquina Mealy:
i 1 , i3 , i4 / o1

i 1 , i2 , i3 / o2

i 2 / o1
q2

q1
i 4 / o1

Figura 6.37: Diagrama de Estados de una Mquina Mealy

(q1 ; i1 ) ! (q1+1; o1)


(q1 ; i2 ) ! (q2+1; o1)
(q1 ; i3 ) ! (q1+1; o1)
(q1 ; i4 ) ! (q1+1; o1)
(q2 ; i1 ) ! (q2+1; o2)
(q2 ; i2 ) ! (q2+1; o2)
(q2 ; i3 ) ! (q2+1; o2)
(q2 ; i4 ) ! (q1+1; o1)
t

q1 ;
q2 ;
q1 ;
q1 ;
q3 ;
q3 ;
q3 ;
q1 ;

z1
z1
z1
z1
z2
z2
z2
z1

As, arribamos al siguiente diagrama de estados Moore (gura 6.38):


i4
i 1 , i3 , i4

i2
* *
q1/z1

**
q2/z1

i 1 , i2 , i3
i4

* *
q3/z2
i 1 , i2 , i3

Figura 6.38: Diagrama Moore equivalente


De donde podemos obtener su tabla de transi iones ( uadro 6.35).

170
Cuadro 6.35: Tabla de Transi iones
Estado
Presente

(q1 ; o1 )
(q2 ; o1 )
(q2 ; o2 )

q1
q2
q3

Estado Futuro

i1 i2 i3 i4 Sal.
q1 q2 q1 q1 z1
q3 q3 q3 q1 z1
q3 q3 q3 q1 z2

6.16.2. Conversin de Moore a Mealy


Dado que se ono en todos los estados y salidas Moore (*), junto on las
entradas respe tivas, se le aso ia la salida al estado futuro. Es de ir, que ada
entrada i (que es igual a la entrada Mealy i ), para ada estado y salida Moore
q  =z  , genera un estado Mealy q on entrada/salida i =o .
j

j;k

) (

Por tanto podemos estable er que: q  ! q , y i ; z  ! i ; o


, en donde
o se orresponde on la salida del estado futuro Moore. Resumiendo, q  ; i !
q +1 ; z +1 ) q ; i ; o .
k

j;k
k

) (

j;k

En el aso de nuestro ejemplo:

i1
i2
i3
i4

!
!
!
!

i1
i2
i3
i4

q1
q2
q3

!
!
!

q1
q2
q3

(q1; i1) ! (q1; z1 )


(q1; i2) ! (q2; z1 )
(q1; i3) ! (q1; z1 )
(q1; i4) ! (q1; z1 )

)
)
)
)

(q1; i1 ; o1)
(q1; i2 ; o1)
(q1; i3 ; o1)
(q1; i4 ; o1)

j;k

171

6.16. CONVERSIN MEALY - MOORE

(q2; i1) ! (q3 ; z2 )


(q2; i2) ! (q3 ; z2 )
(q2; i3) ! (q3 ; z2 )
(q2; i4) ! (q1 ; z1 )

)
)
)
)

(q2; i1; o2)


(q2; i2; o2)
(q2; i3; o2)
(q2; i4; o1)

(q3; i1) ! (q3 ; z2 )


(q3; i2) ! (q3 ; z2 )
(q3; i3) ! (q3 ; z2 )
(q3; i4) ! (q1 ; z1 )

)
)
)
)

(q3; i1; o2)


(q3; i2; o2)
(q3; i3; o2)
(q3; i4; o1)

Informa in que podemos resumir en una tabla de estados ( uadro 6.36):


Cuadro 6.36: Tabla de Estados
E.P.

q
q1
q2
q3
k

Estado Futuro / Salida

i1
i2
i3
i4
q1 =o1 q2 =o1 q1 =o1 q1 =o1
q3 =o2 q3 =o2 q3 =o2 q1 =o1
q3 =o2 q3 =o2 q3 =o2 q1 =o1

En este momento, y de ser posible, se apli a algn riterio de redu in de


estados. En nuestro aso, y por simple inspe in determinamos que q2 y q3 son
equivalentes (dos estados son equivalentes s y solo s para la misma ombina in
de entradas produ en idnti os estados futuros y salidas).
Finalmente, sustituyendo obtenemos :
E.P.

q
q1
q2
k

Estado Futuro / Salida

i1
i2
i3
i4
q1 =o1 q2 =o1 q1 =o1 q1 =o1
q2 =o2 q2 =o2 q2 =o2 q1 =o1

172

Captulo 7
Componentes de Memoriza in
El objetivo fundamental de los omponentes de memoriza in es alma enar
datos y realizar transforma iones sen illas de datos, tales omo uenta y
desplazamiento. En este aptulo se denen y disean varios tipos de omponentes
de memoriza in, tales omo registros, ontadores, memorias, pilas y olas.

7.1. Registros
El omponente de memoriza in ms sen illo es un registro, que puede
onsiderarse omo un biestable ampliado a mltiples bits. Cada registro onsta de
n biestables a tivados por una seal de reloj omn. En otras palabras, ada
biestable del registro alma ena su propio dato en ada an o as endente (o
des endente) de la seal de reloj. As pues un registro bsi o posee n entradas y
n salidas (aspe to no limitativo), adems de la seal de reloj. En la gura 7.1 se
muestra un ejemplo de registro y su smbolo gr o.
D0

D7

D1

Reg.

Clk Q

Clk Q

Clk Q

Cp
OE

Q0

Q1

Figura 7.1: Registro de o ho bits

173

Q7

OE

CP

D7

O7

D6

O6

D5

O5

D4

O4

D3

O3

D2

O2

D1

O1

D0

O0

174
La fun ionalidad del registro bsi o de la gura puede mejorarse aadiendo
diferentes seales de ontrol. Por ejemplo, si el registro debe ponerse a uno o a ero
independientemente de la seal de reloj, bien uando se one ta la alimenta in
o bien en respuesta a algn evento espe ial, podemos aadirle seales asn ronas
de puesta a uno (Set) y de puesta a ero (Reset) [gura 7.2.

S
OE
D7
D6
D5
D4
D3
D2
D1
D0

R
CP
Q7
Q6
Q5
Q4
Q3
Q2
Q1
Q0

Figura 7.2: Registro on ontrol para Set y Reset.

El registro de la gura 7.1 (o el de la gura 7.2) automti amente alma ena


un nuevo dato por ada an o as endente de la seal de reloj. Sin embargo, en
la mayora de los sistemas digitales un dato se memoriza durante varios i los
de reloj antes de modi arlo. Por este motivo es til poder ontrolar undo ha
de introdu irse el dato en el registro. Esto se onsigue on el uso de una seal
de ontrol, normalmente denominada arga (load) o habilita in (enable), que
permite argar un dato en el registro. El registro resultante se ono e on el
nombre de registro on arga en paralelo (gura 7.3).
El mdulo bsi o de alma enamiento, on el que est formado el registro on
arga paralela, se muestra en la gura 7.4.
Obsrvese que el diseo ontiene un sele tor de 2 a 1, que sele iona entre el
dato de entrada o el existente en el registro. La seal de arga load ontrola el
sele tor, de tal manera que si load es 1 se introdu e un nuevo dato en el registro.
En aso ontrario, si load es 0, on ada an o as endente de la seal de reloj se
re arga el mismo dato ontenido en el registro.

175

7.1. REGISTROS

L
S
OE
D7
D6
D5
D4
D3
D2
D1
D0

R
CP
Q7
Q6
Q5
Q4
Q3
Q2
Q1
Q0

Figura 7.3: Registro on arga paralela

1
0
L

Q
Q

Clk

Figura 7.4: Mdulo Bsi o de un registro on arga paralela

176

7.2. Registro de Desplazamiento


Si usamos un multiplexor (Sele tor) para desplazar el dato alma enado en el
registro, obtendremos un registro de desplazamiento, el ual desplaza su ontenido
en un bit, en una dire in espe  a, uando la seal desplazar (Shift) es 0. La
entrada serie I se utiliza para introdu ir el nuevo dato de 1 bit en el biestable
ms a la izquierda del registro. Un registro omo el de la gura 7.5 se podra
utilizar para onvertir una se uen ia de datos serie en otra de datos paralelo. Por
este motivo se le denomina a ve es registro de desplazamiento de entrada-serie /
salida-paralelo.

1
0

1
0

D Q
Q

1
0

D Q
Q

D Q
Q

Clk
S
Qn1

Qn2

Q0

Figura 7.5: Registro de Desplazamiento

Para aumentar la versatilidad de un registro podramos tambin usar un


sele tor de 4 a 1 que nos permita ombinar las fun iones de desplazamiento y
de arga. Por ejemplo, el registro de la gura 7.6 podra o bien desplazar su
ontenido o argar en paralelo un nuevo dato. Adems, podra desplazar en un
bit su ontenido a la izquierda o a la dere ha, introdu iendo por la dere ha o por
la izquierda el bit de dato disponible en las entradas serie respe tivamente.
Qn1

Qn2

Q0
DR

DI

3
2
1
0

3
2
1
0

D Q
Q
S1 S0

3
2
1
0

D Q
Q
S1 S0

D Q
Q
S1 S0

S1
S0
Clk
Qn1

Qn2

Figura 7.6: Registro General

Q0

177

7.3. CONTADORES

La tabla de opera in de este registro puede verse en el uadro .


Cuadro 7.1: Opera in del Registro General

S1 S0 Opera in
00
01
10
11

Desplaza a la dere ha
Carga en paralelo
Desplaza a la izquierda
Nada ( onserva ltimo dato)

El registro de desplazamiento on arga en paralelo puede utilizarse para


onvertir una se uen ia de datos serie a paralelo o una se uen ia de datos paralelo
a serie, on la op in de sa ar el primero el bit ms signi ativo (MSB) o el menos
signi ativo (LSB). Estos registros suelen utilizarse en la onversin de datos del
omputador para omuni a iones serie, y para aptar datos transmitidos en serie
a n de tratarlos en un pro esador.

7.3. Contadores
Un ontador es un tipo espe ial de registro que in orpora un in rementador,
que permite ontar de forma as endente o des endente.

7.3.1. Contador Asin rni o


La denomina in asin rni o viene del he ho de que los biestables no estn
sin ronizados por una seal ni a de reloj. En ambio, la salida de un biestable
gobierna la entrada de reloj de otro, forzando a que las transi iones no se reali en
todas al mismo tiempo (gura 7.7).
Un diagrama de tiempos se muestra en la gura 7.8(a), donde se apre ia el
omportamiento general de las salidas del ontador. Sin embargo, la ara tersti a
de opera in asin rni a se apre ia mejor realizando una amplia in de la es ala
de tiempos [gura 7.8(b), donde se observa on detalle que las transi iones de los
mdulos bsi os de memoria no se realizan al mismo tiempo.

7.3.2. Contador Asin rni o As endente


Observando la forma de onda de las seales de salida de la gura 7.8 notamos
que la uenta es de tipo des endente. Realizando pequeas modi a iones en la

178

Figura 7.7: Contador Asin rni o

Clk
Q0
Q1
Q2
Q3
0 15 14 13 12 11 10

(a)

(b)

Figura 7.8: Diagrama de tiempos del ontador asin rni o

179

7.3. CONTADORES

estru tura interna, podemos lograr una uenta as endente, omo se apre ia en la
gura 7.9.

Clk
Q0
Q1
Q2
Q3
0

9 10 11 12 13 14 15

Figura 7.9: Contador Asin rni o As endente

7.3.3. Contador Sin rni o


De requerirse que los ambios de estado de los biestables se reali en al mismo
tiempo, estamos en presen ia de una mquina se uen ial omo las ya estudiadas.
Trabajaremos on un registro ontador de uatro bits, al ual se le ha eliminado
la seal de habilita in, lo que nos ondu e a la tabla del uadro 7.2.
En lugar de intentar un esquemti o detallado a nivel de ompuertas, que es
el anlisis lsi o que se realiza en la mayora de la bibliografa, estudiaremos el
problema on una tenden ia ha ia el omportamiento del sistema.
Naturalmente se trata de una mquina sin rni a basada en un registro, uya
salida es in rementada en uno. De esta forma, el omportamiento indi a que a
la salida del registro debe sumrsele una unidad para umplir on el objetivo de
diseo, omo se muestra en la gura 7.10.

180

Cuadro 7.2: Tabla de estados para un ontador sin rni o as endente de uatro
bits
Est. Pre.

Est. Futuro

Q3 Q2 Q1 Q0 Q3+1 Q2+1 Q1+1 Q0+1


t

0
0
0
0
0
0
0
0

0
0
0
0
1
1
1
1

0
0
1
1
0
0
1
1

0
1
0
1
0
1
0
1

0
0
0
0
0
0
0
1

0
0
0
1
1
1
1
0

0
1
1
0
0
1
1
0

1
0
1
0
1
0
1
0

Est. Pre.

Est. Futuro

Q3 Q2 Q1 Q0 Q3+1 Q2+1 Q1+1 Q0+1


t

1
1
1
1
1
1
1
1

0
0
0
0
1
1
1
1

0
0
1
1
0
0
1
1

0
1
0
1
0
1
0
1

1
1
1
1
1
1
1
0

Figura 7.10: Contador Sin rni o As endente

0
0
0
1
1
1
1
0

0
1
1
0
0
1
1
0

1
0
1
0
1
0
1
0

181

7.3. CONTADORES

Empleando Nota in de Transferen ias entre Registros (RTN ), tema que es


tratado en profundidad en el prximo urso, podemos expresar la salida del
ontador omo:

Q 1+1
t

expresin que podemos leer: la salida a tual del registro es su salida anterior ms
uno o guarde en el registro el valor de salida anterior ms uno. Es importante
resaltar que el segundo sumando ha sido jado en ero mientras se ha puesto en
uno el a arreo de entrada.

7.3.4. Contador Sin rni o Des endente


De manera semejante a la antes tratada, un ontador des endente requerir
disminuir en una unidad el valor a tual de salida. Esto se logra usando un sumador,
que opera omo restador empleando omplementos (gura 7.11).

Figura 7.11: Contador Sin rni o Des endente

182

En la gura 7.11 la opera in que se est realizando es la siguiente:

Q 1+0 1
Q 1+2

0 1

despre iando el a arreo se obtiene:

Q 1
t

7.3.5. Contador Sin rni o As endente - Des endente


La fusin del ontador as endente y el des endente en una sola unidad se logra
mediante el empleo de un multiplexor, manejado por una lnea de sele in que
determinar el tipo de uenta ha realizar (gura 7.12).
Resulta obvio que uando el ontrol del sele tor, que adems se usa omo
a arreo de entrada al sumador, est en ero, la opera in que se realiza es de
de remento, operando el registro omo un ontador des endente. Por el ontrario,
uando est en uno la opera in es de in remento, operando omo un ontador
as endente.

7.3.6. Contador Sin rni o As endente - Des endente on


Carga Paralela
Todas las parti ularidades analizadas para el aso de los registros simples
pueden implementarse para el aso de los ontadores. As, podemos ini iar la
uenta en un nmero diferente a ero ( unos), posibilitando la arga paralela
para el ini io de la uenta, omo se muestra en la gura 7.13.

7.3.7. Contador BCD y Otros


Una posible apli a in del ontador sin rni o on arga paralela es el diseo
de ontadores BCD, los uales uentan siguiendo la se uen ia 0, 1, 2, 3, 4, 5,
6, 7, 8, 9, 0... De forma similar podemos onstruir ontadores BCD as endentes
/ des endentes. En la dire in de uenta as endente debemos argar 0 en el
ontador uando al anza el valor 9, mientras que en la dire in des endente
debemos argar 9 uando el ontador al anza la uenta 0 (gura 7.14). En general,
podemos onstruir ontadores que omien en en ualquier punto y uenten en asi
ualquier se uen ia (Johnson, anillo, et .).

7.3. CONTADORES

Figura 7.12: Contador Sin rni o As endente / Des endente

183

184

Figura 7.13: Contador Sin rni o As endente / Des endente on arga paralela

7.4. BANCO DE REGISTROS

185

En la gura 7.14 el mdulo de ontrol no es ms que un ir uito ombinatorio


en argado de generar las seales de sele in del multiplexor, de a uerdo a la
dire in de la uenta, el valor de la uenta y la orden de arga, para que el
registro obtenga el valor apropiado al tipo de opera in deseada.

Figura 7.14: Contador Sin rni o BCD

7.4. Ban o de Registros


En las se iones anteriores se han des rito diferentes tipos de registros y
ontadores, ada uno de ellos onsistente en un nmero m de biestables y alguna
lgi a ombina ional adi ional en sus entradas. Tambin es posible ombinar
biestables formando un arreglo bidimensional que onstara de n las on m
biestables ada una: En esta estru tura bidimensional, denominada ban o de
registros (gura 7.15), ada la de biestables puede onsiderarse omo un registro.
En general, un ban o de registros memorizar la misma antidad de informa in

186
que n registros de m bits ada uno. Pero la ventaja prin ipal de utilizar un ban o
de registros es que, dada su regularidad, requiere menos ableado en su diseo
nal. Adems, ada biestable de un ban o de registros puede implementarse on
mu hos menos transistores, ya que a ede en ada instante slo a un registro en
ada olumna.
Entradas

WA0
WA1
WAn
WE

Reg. 1
Dec. de
Escritura

Dec. de
Lectura
Reg. 1

RA0
RA1
RAn
RE

Reg. 1
Salidas

Figura 7.15: Ban o de Registros


El de odi ador de es ritura sirve para sele ionar una de las las y memorizar
los valores de entrada oin idiendo on el an o de subida de la seal de reloj.
Las entradas al de odi ador de es ritura son n lneas de dire iones y la seal
de habilita in de es ritura WE.
De forma similar al de odi ador de es ritura, el de le tura sele ionar la
la uyos valores alma enados apare ern en las salidas del ban o de registros.
El de odi ador de le tura tiene n lneas de dire in de le tura y la seal de
habilita in de le tura RE. Cuando RE est a tivo, despus de un pequeo
retardo, los valores memorizados en la la sele ionada apare ern en las salidas.
Por otra parte, uando RE est ina tivo, todas las salidas tendrn un valor de
alta impedan ia.
La limita in prin ipal de un ban o de registros es que slo permite un a eso
limitado a los registros que lo forman, es de ir, en un instante dado, slo se pueden
es ribir datos en uno de los registros (una la) y leer datos de slo un registro (una
la). Esta situa in puede remediarse en parte onstruyendo ban os de registros

7.5. MEMORIAS DE ACCESO ALEATORIO

187

on ms de un puerto de le tura o de es ritura. Desgra iadamente, el osto del


registro se in rementar en propor in a su nmero de puertos. Por esta razn,
los ban os de registros ms usuales tienen uno o dos puertos de es ritura y dos de
le tura. La justi a in prin ipal de los dos puertos de le tura es que la mayora
de las opera iones aritmti as y lgi as requieren del uso de dos operadores al
mismo tiempo. Con dos puertos de le tura es posible aptar estos dos operandos
y memorizar el resultado en el mismo ban o de registros en un i lo de reloj. Por
otra parte, la justi a in del uso de dos puertos de es ritura radi a en la velo idad
a la que se utilizan operandos: en ada i lo ha emos uso de dos operandos para
produ ir un resultado. En onse uen ia, si se va a realizar una opera in en ada
i lo de reloj, debemos poder dar un nuevo operando al ban o de registros y a la
vez memorizar el resultado de la opera in.
Los ban os de registros son por lo general muy rpidos porque ada elda
in luye un lat h o biestable ompletos. Sin embargo son aros porque ada lat h
o biestable requiere media do ena de transistores en su diseo. Por este motivo,
los ban os de registros se emplean normalmente para antidades limitadas de
memoria temporal en apli a iones de alta velo idad y en mi ropro esadores.

7.5. Memorias de A eso Aleatorio


En la se in anterior hemos des rito los ban os de registros, que son de
tamao redu ido, rpidos, y apropiados para la memoriza in temporal durante
los l ulos. Por otra parte, las memorias de a eso aleatorio (RAM: Random
A ess Memories), son grandes y lentas, pero muy apropiadas para memoriza in
a largo plazo de programas y de los datos utilizados en los l ulos. Al igual que
los ban os de registros, las memorias estn organizadas omo arreglos de registros
de n las on m bits alma enados en ada la. Por lo general, n suele estar
omprendido entre 16 y 32, mientras que m es normalmente 1, 4, 8, 16, o 32.
Aunque la elda de memoria bsi a (MC ) se representa mediante un lat h,
en realidad se implementa on bastantes menos transistores. Dependiendo de la
forma de implementa in de la MC las memorias RAM se lasi an en estti as
o dinmi as. En el aso de la RAM estti a (SRAM, Stati RAM ), la elda
de memoria se onstruye on entre uatro y seis transistores, empleando dos
inversores inter one tados formando un lat h, e implementando on un transistor
la puerta AND de entrada y on otro el adaptador de salida. Este tipo de elda
de memoria SRAM retendr su ontenido indenidamente en tanto no se vuelva
a es ribir, y se mantenga one tada la alimenta in. Sin embargo, en el aso de la
RAM dinmi a (DRAM, Dynami RAM ), las eldas de memoria se implementan
on slo un transistor. El in onveniente de la DRAM es que el ontenido de la
elda se pierde on ada opera in de le tura, tras la ual habr que repetir la

188
opera in de es ritura. Adems o urre que, debido a imperfe iones de fabri a in,
el ontenido de la elda se pierde trans urrido un tiempo. Para ontrarrestar
este problema ada posi in de memoria debe a ederse on ierta fre uen ia,
o alternativamente, el ontenido debe "refres arse" peridi amente. Durante el
refres o todas las dems opera iones de le tura o es ritura deben suspenderse, lo
ual puede resultar molesto y denitivamente su opera in lgi a es ms lenta.
A pesar de ello, la mayor densidad y oste redu ido de las DRAM las ha e muy
populares para el diseo de produ tos ele trni os. Las SRAM, por otro lado,
aunque ms ostosas, son ms rpidas y por lo tanto apropiadas para los asos en
que se requiera un a eso a memoria de mayor velo idad.
Tanto las SRAM omo las DRAM son memorias voltiles, ya que su ontenido
se pierde al des one tar la fuente de alimenta in. Por este motivo, equipos
tales omo telfonos y ontestadores automti os in luyen bateras que evitan
la prdida de datos en memoria por un orte temporal del suministro el tri o.
Por el ontrario, las ROM y las PROM son memorias no voltiles ya que preservan
su ontenido aunque se orte de la alimenta in. No obstante el ontenido de estas
memorias no se puede leer hasta que se restablez a la alimenta in.

7.6. Otras Estru turas de Alma enamiento


Dos tipos de estru turas parti ulares, para algn tipo de alma enamiento de
informa in lo onstituyen las Pilas y las Colas.

7.6.1. Pilas de Inser in / Extra in


Las Pilas de Inser in / Extra in, o simplemente Pilas, son de uso fre uente
en diseos software y hardware. Por deni in, una pila es un omponente de
memoria on un a eso limitado. A diferen ia de la RAM, en la que ualquier dato
alma enado puede ser a edido en ualquier momento, a los datos memorizados
en una pila slo se puede a eder a travs de una posi in on reta: la abe era de
la pila. En otras palabras, uando se inserta un dato en la pila, ste se memoriza
en la abe era y todos los dems datos se desplazan una posi in ha ia el interior
de la pila (inser in). Por el ontrario, uando se extrae un dato de la pila, es
eliminado de la abe era y todos los dems datos se trasladan una posi in ha ia
arriba (extra in). Por esta razn, esta estru tura se ono e omo primero en
entrar, ltimo en salir (FILO, First In Last Out).
En el ejemplo de la pila de 4 palabras mostrado en el uadro 7.3, ella
ontiene ini ialmente dos nmeros: 34 en la posi in Cabe era y 23 en la posi in
Cabe era-1. En la gura (b) puede verse que la inser in en la pila del nmero
45 requiere que los nmeros 34 y 23 se despla en ha ia abajo, a las posi iones

189

7.6. OTRAS ESTRUCTURAS DE ALMACENAMIENTO

Cuadro 7.3: Pila


(a)

45

Cabe era 34
Cabe era 1 21
Cabe era 2 va a
Cabe era 3 va a

(b)

Cabe era 45
Cabe era 1 34
Cabe era 2 21
Cabe era 3 va a

( )

45

"

Cabe era 34
Cabe era 1 21
Cabe era 2 va a
Cabe era 3 va a

Cabe era-1 y Cabe era-2, respe tivamente. Por otra parte, omo muestra la gura
( ), al extraer el 45 de la abe era de la pila, el 34 y el 23 son de nuevo desplazados
ha ia arriba para volver a o upar las posi iones Cabe era y Cabe era-1. Por
supuesto, en este aso on reto, no podemos insertar ms de uatro nmeros
en la pila sin llenarla, y la inser in de ada nmero adi ional provo a la prdida
del situado en la base de la pila.
Cuando se disea una pila de inser in / extra in, el punto ms
importante a tener en uenta es que los datos alma enados se desplazan en una
posi in des endente o as endente en las opera iones de inser in y extra in,
respe tivamente. Esta observa in nos lleva a utilizar registros de desplazamiento
para su implementa in, as omo un ontador as endente / des endente para
dete tar undo la pila est llena o va a.
La prin ipal desventaja de la implementa in on registros de desplazamiento
es el nmero elevado de registros que se ne esitan uando se requiere una pila
grande. Por esta razn, las pilas de inser in / extra in grandes se implementan
normalmente on RAM. Adems, ya que las RAM no son apa es de desplazar
su ontenido, las opera iones de inser in y extra in en estas pilas deben
implementarse de una manera ligeramente diferente: ambiando la posi in de
la abe era de la pila. En otras palabras, al insertar datos en di ha pila, la
dire in de la abe era se in rementar por ada inser in, y por el ontrario, se
de rementar en ada extra in.

7.6.2. Colas: Primero en Entrar, Primero en Salir


Las Colas, primero en entrar, primero en salir (FIFO, First-In-First-Out),
se emplean on fre uen ia para suavizar rfagas en las peti iones de servi io.
Considrese por ejemplo la gente que ha e ola para sa ar entradas de ine,
para entrar en un autobs, o para disfrutar de un viaje en un parque de
atra iones, que debe esperar en la hasta que les llegue el turno para re ibir un
servi io. Situa iones similares pueden surgir on diferentes pro esadores, ASIC,
o ualesquiera elementos que inter ambien datos entre s, en el sentido de que

190
uando la produ in de datos ex eda momentneamente su onsumo, debemos
inter alar una ola FIFO entre el produ tor de datos y el onsumidor de los
mismos. En tales asos, por supuesto, la velo idad de produ in no puede ex eder
indenidamente a la de onsumo, ya que se requerir una ola innita. Por el
ontrario, ambas velo idades deben ser en promedio semejantes. Sin embargo,
o asionalmente apare ern rfagas de produ in y de onsumo, y el tamao de
la ola determinar la longitud de rfaga que se puede tolerar.
El objetivo de una ola FIFO es memorizar los datos en ex eso, que sern
eventualmente ledos de la ola en el mismo orden en el que fueron es ritos. As
pues el primer dato memorizado es ledo primero, y as su esivamente, omo ilustra
el uadro 7.4.
Cuadro 7.4: Pila
(a)

45

(b)

( )

F inal va a

F inal va a

F inal va a

Ini io

Ini io

Ini io

va a
34
23

45
34
23

va a
45
34

23

En el uadro 7.4(a) se muestra el ontenido de la ola tras introdu ir los


nmeros 23 y 34 pero antes de que llegue el 45. En (b) puede verse el ontenido
de la ola despus de introdu ir el nmero 45. Obsrvese que uando se lee de la
ola, el nmero 23 sale y es des artado, ha iendo que el ontenido de la ola sea
desplazado en una posi in ha ia abajo. En ( ) se muestra el ontenido de la ola
tras el desplazamiento.
Ya que la ola preserva el orden de llegada de los datos, podemos onstruir
la ola utilizando registros de desplazamiento junto on un ontador que posea el
nmero de datos que ontiene, aunque al igual que el aso de las Pilas, es ms
omn en ontrar su implementa in en RAM.

Captulo 8
Cir uitos Combina ionales on MSI
y LSI.
En los aptulos anteriores gran parte del esfuerzo de diseo estaba orientado a
onseguir una expresin algebrai a lo ms simpli ada posible, que al momento de
ongurar el ir uito nos llevara a la utiliza in del menor nmero de ompuertas.
Esta idea se orientaba en la mxima que "a menor nmero de ompuertas menor
osto". Es ms, la simpli a in de las fun iones de Boole, mediante los riterios
del Mapa de Karnaugh o del Mtodo tabular del algoritmo de Quine-M Cluskey,
aseguraba una solu in normalmente de respuestas rpidas debido a slo dos o tres
niveles de profundidad lgi a, adems del nmero mnimo de ompuertas. Estos
riterios perseguan, tambin, la idea de e onomizar en el tamao del ir uito
debido a que on un pequeo nmero de ompuertas debera existir un redu ido
nmero de onexiones y, por tanto, el ir uito impreso de montaje y la fuente de
alimenta in tendran que ser pequeos.
Desafortunadamente, estos riterios no son siempre vlidos debido al logro de
nuevas te nologas en la fabri a in de Cir uitos Integrados. En primer lugar, las
ompuertas se onsiguen en apsuladas por grupos dentro de un Cir uito Integrado
(por ejemplo los C.I. 74LS00 y CD4011 poseen uatro ompuertas NAND de
dos entradas ada uno, de las familias TTL y CMOS respe tivamente). De esta
manera, para onseguir realmente un ir uito pequeo, e iente y e onmi o
la tenden ia es a utilizar todas las ompuertas de un C.I. no importando si
se aumenta el nmero de ompuertas usadas, salvo parti ulares ex ep iones en
donde es impres indible mxima velo idad de respuesta, por ejemplo. Por otra
parte, las ompuertas inutilizadas de un C.I. deben one tarse de tal manera que
sus salidas sean forzadas a un nivel alto para disminuir el onsumo de poten ia
de la fuente de alimenta in. Es ms, las entradas no usadas de las ompuertas
(tiene una ompuerta de uatro entradas de las uales solo est usando tres)
afe tan la velo idad de ambio y la inmunidad al ruido de a . De esta forma,
deben one tarse a una fuente de alta impedan ia (entradas de ompuertas OR
191

192
dire tamente a tierra, entradas de ompuertas AND mediante una resisten ia a
V ; evitando la onexin de dos o mas entradas en orto para no ex eder el
"fan out" de la salida que los alimenta). Esta onexin disminuye la apa itan ia
parsita aso iada on las entradas otantes, la er ana de los ables y las lneas
de inter onexin del impreso.
Veamos esto on un ejemplo pr ti o. Se desea onstruir un ir uito
ombinatorio que umpla on la siguiente expresin F A  B  C . Obviamente
esto nos lleva a utilizar una ompuerta AND de tres entradas y un inversor, es
de ir 2 ompuertas. La ompuerta AND de tres entradas la onseguimos en el
C.I. 7411, que posee tres ompuertas. El inversor lo en ontramos en el C.I. 7404
que tiene seis inversores en la pastilla (gura 8.1).

Figura 8.1: Cir uito e implementa in en el mbito de integrados

Sin embargo, usando la doble nega in podemos desarrollar la misma fun in


usando solo un C.I. 7410 (tres ompuertas NAND de 3 entradas), produ iendo, sin
embargo, una lgi a de tres niveles de profundidad, lo ual determina un retardo

Prin ipios de Diseo Digital.

193

de ompuerta adi ional antes de que la salida F sea estable, omo se apre ia en
la gura 8.2.

=
=
=

ABC
A
 BC 
ABC

Figura 8.2: Cir uito desarrollado on ompuertas NAND.


Adems, ontinuamente se produ en ir uitos integrados de mediano (MSI ) y
alto (LSI ) nivel de integra in que produ en dire tamente fun iones ompletas.
Tal es el aso de sumadores, omparadores de magnitud, onvertidores de digo
et .
De esta forma, antes de a ometer la tarea de diseo lsi a es onveniente
revisar si existe el ir uito que desarrolle dire tamente la fun in. De no ser este
el aso, tratar de dividir el problema en pequeos mdulos implantables de manera
inmediata y desarrollar slo la oordina in y ontrol entre ellos. Este prin ipio
es espe ialmente vlido para ir uitos que envuelvan un gran nmero de variables
de entradas y salidas, an en el aso de sistemas se uen iales (que veremos ms
adelante).

194

Abordaremos a ontinua in algunos mtodos que permiten la utiliza in de


ir uitos MSI y LSI para la onstru in de fun iones ombinatorias, logrando
un ahorro onsiderable en el esfuerzo de diseo y onstru in.

8.1. Sumadores
La suma o adi in es una de las opera iones ms omnmente realizada por
los sistemas digitales. El ir uito ms simple, llamado semi-sumador o sumador
in ompleto, opera dos nmeros binarios de un bit ada uno, y produ e omo salidas
la suma (s) y el a arreo ( ).
Sean x e y dos nmeros binarios de un bit ada uno. Podemos, enton es,
onstruir una tabla de opera in para todas las posibles ombina iones de entrada,
junto a la suma produ ida (in luido el a arreo)
Ent.
x y
0 0
0 1
1 0
1 1

Sal.
s
0 0
0 1
0 1
1 0

= xy
= xy

Figura 8.3: Sumador in ompleto (semi-sumador)

Un sumador ompleto de 3 bits (z, x, y) operar de a uerdo a la tabla siguiente

195

8.1. SUMADORES

z
0
0
0
0
1
1
1
1

=
=
=
=
=
=
=
=
=

Ent.
x
0
0
1
1
0
0
1
1

y
0
1
0
1
0
1
0
1

Sal.
s
0 0
0 1
0 1
1 0
0 1
1 0
1 0
1 1

zxy + zxy + zxy + zxy


zxy + zxy + zxy + zxy
xy (z + z ) + z (xy + xy )
xy + z (x  y )
zxy + zxy + zxy + zxy
z (xy + xy ) + z (xy + xy )
z (x  y ) + z (x  y )
zxy
z  (x  y )

Observe que esta forma de operar algebrai amente nos permite expresar un
sumador ompleto en base a dos semi-sumadores.
Si el objetivo es realizar un sumador de nmeros binarios de n bits ada uno,
el mtodo lsi o de diseo rpidamente se en uentra frente a un gran problema,
denominado explosin ombinatoria, ya que ha medida que n aumenta linealmente
las ombina iones de entrada re en exponen ialmente.
Imaginemos que deseamos sumar dos nmeros binarios de dos bits ada uno.
Esto nos lleva a un ir uito on 4 entradas (dos por ada nmero) y una tabla de
verdad (8.1) de 16 ombina iones ( 4 ), situa in f ilmente manejable.

Si, ahora, deseamos sumar dos nmeros binarios de 4 bits ada uno, esto nos
lleva a un ir uito on 8 entradas (4 por ada nmero) y una tabla de verdad de
256 ombina iones ( 8 ), situa in dif ilmente manejable por los mtodos lsi os
de diseo.

Sin embargo, on un sumador ompleto de 1 bit la opera in de adi in de


nmeros de n bits puede f ilmente ser implementada, siguiendo una estrategia de

196

Figura 8.4: Sumador ompleto

Cuadro 8.1: Tabla para un sumador de nmeros de 2 bits

x1 x0 y1 y0 s1 s0
o

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

000
001
010
011
001
010
011
100
010
011
100
101
011
100
101
110

197

8.2. DECODIFICADORES.

distribu in en el espa io, semejante al pro eso de sumar dos nmeros de varios
dgitos on lpiz y papel, de a uerdo a omo se muestra en la gura 8.5.

Figura 8.5: Sumador ompleto de 4 bits


Naturalmente, el sistema tardar ms tiempo en propor ionar una respuesta
estable (gura 8.6), debido al a arreo que se propaga desde el sumador menos
signi ativo, que modi a paulatinamente las respuestas instantneas de los
dems sumadores (guras 8.7, 8.8, 8.9, 8.10 y 8.11).

8.2. De odi adores.


2

Un de odi ador es un ir uito ombina ional de n lneas de entrada y


lneas de salida ( omo mximo), que onvierte una palabra odi ada de entrada
en una palabra de salida en donde una sola de las lneas estar a tiva por vez.
n

Este tipo de de odi adores re ibe la denomina in de De odi adores


binarios de n a m, donde m es menor o igual que
(en algunas oportunidades
se les puede en ontrar bajo el nombre de De odi ador 1 de m, ya que solo una

198

Figura 8.6: Sumador. Diagrama de tiempos

Figura 8.7: Sumador. Opera in par ial en t0

8.2. DECODIFICADORES.

Figura 8.8: Sumador. Opera in par ial en t1

Figura 8.9: Sumador. Opera in par ial en t2

199

200

Figura 8.10: Sumador. Opera in par ial en t3

Figura 8.11: Sumador. Opera in par ial en t4

201

8.2. DECODIFICADORES.

salida, de un total de m est a tiva por vez). En la gura 8.12, se representa la


estru tura general de un de odi ador de 2 a 4 y su diagrama lgi o.

a1

a0

3 1
5

o3

2
3

Dec 2a4
02

a1
a0

o3
o2
o1
o0

o1

5
4
3
E

o0

Figura 8.12: De odi ador 2 a 4


La entrada habilitadora, de estar presente, debe permane er a tiva para el
orre to fun ionamiento del dispositivo.
La opera in del De odi ador puede ser des rita mediante una tabla de
verdad (8.2):
En este grupo de ir uitos lgi os normalmente se insertan los onvertidores
de digos, tal omo el aso de los ono idos BCD ("De odi ador" de Binario a
De imal).

202
Cuadro 8.2: De odi ador 2 a 4

Ea1 a0 o3 o2 o1 o0
000
...
011
100
101
110
111

0000
0000
0000
0001
0010
0100
1000

Como ualquier fun in de Boole puede expresarse en una suma de trminos


mnimos en la forma anni a, y un de odi ador binario produ e todos los
trminos mnimos de n entradas, enton es podemos emplear un de odi ador y
una ompuerta OR para realizar ualquier fun in booleana. El pro edimiento
onsiste simplemente en sele ionar los trminos mnimos desde la salida del
de odi ador, de a uerdo a la lista obtenida por la expresin anni a de la
fun in, o de la tabla de verdad, y one tarlos a una entrada de la ompuerta
OR. Obviamente, en el diseo de ir uitos de mltiples fun iones de salida, se
requerir una ompuerta OR por ada fun in a realizar.

Utili emos los on eptos emitidos on un ejemplo pr ti o:


Planteamiento del problema:
Disear un ir uito ombinatorio que produz a omo salida el triple
de un nmero binario de dos bits a la entrada.
Con eptualiza in:
Podemos expresar esto omo:
Salida = 3*Entrada
Observe que se trata de una opera in de multipli a in normal.
Esta des rip in impl ita la podemos expandir a su forma expl ita,
para lo ual a ada valor de la entrada se le aso ia un valor de salida,
onstru in que ono emos omo tabla de valores. Bien, omo la
entrada es binaria y est onstituida por dos bits, el nmero mximo
que se puede representar es 3 ( 2
). De esta forma el nmero
mximo en la salida ser 9 (3*3), para lo ual se requieren uatro

203

8.2. DECODIFICADORES.

bits. Construyamos, enton es, la tabla de valores, que en el aso de


Sistemas Digitales ono emos omo Tabla de la verdad:

x1 x0 F3 F2 F1 F0
00
01
10
11

0000
0011
0110
1001

Solu in/Simpli a in:


De la tabla de la verdad podemos obtener dire tamente las
expresiones anni as para ada una de las fun iones de salida:

F0( 1
F1( 1
F2( 1
F3( 1

)
0)
0)
0)

I ;I0
I ;I
I ;I
I ;I

=
=
=
=

 (1; 3)
 (1; 2)
 (2)
 (3)

Aunque en este tipo de diseo, el esfuerzo no se olo a en los


aspe tos de minimiza in, un ingeniero no debe olvidar este tema,
si no existe algn impedimento t ni o o de opera in. Enton es, por
simple inspe in, se puede simpli ar si onsideramos que F0( 1 0 )
;
I0 . De esta forma, solo se requerira de una ompuerta OR
para la realiza in de F1( 1 0 )
; .
Realiza in:

 (1 3) =

I ;I

I ;I

=  (1 2)

F3
F2

Dec 2a4
x1
x0

Vcc

a1
a0
E

o3
o2
o1
o0

F1
F0

Adi ionalmente, podemos sealar que un De odi ador on entrada de


habilita in puede ser utilizado omo un Demultiplexor. Un Demultiplexor es
un ir uito que re ibe datos por una sola lnea de entrada y los pasa a solo una
de
posibles salidas, determinada por n lneas de sele in. De esta forma, la
entrada de habilita in E pasa a ser la entrada de datos y las lneas a 1 :::a0 se
onstituyen en el sele tor que habilitar una de las lneas de salidas, para que
la informa in de entrada en E "pase" ha ia la salida o sele ionada. Esto se

204
omprueba dire tamente de las expresiones estndar de las fun iones booleanas
para las salidas o del de odi ador. Re ordando, por ejemplo la expresin para
o0 y o1 vistas anteriormente, resulta evidente que si las lneas de sele in a1 a0
son ambas ero, enton es la salida o0 ser exa tamente igual a la entrada de datos
E. Por otra parte, si a1 es ero y a0 es uno, enton es o1 ser igual a E.
i

Las posibilidades de uso de De odi adores on entrada de habilita in


son mayores al permitir la implanta in de fun iones on mayor nmero de
entradas y salidas. Veamos omo dos de odi adores 2 a 4 permiten onstruir
un de odi ador 3 a 8 (gura 8.13):
Dec 2a4

A2
A1
A0

a1
a0
E

o3
o2
o1
o0

O7
O6
O5
O4

Dec 2a4
a1
a0
E

o3
o2
o1
o0

O3
O2
O1
O0

Figura 8.13: De odi ador 3 a 8


Cuando A2 es ero slo trabaja el de odi ador inferior lo ual, orresponde a
todas las ombina iones 000 ... 011. Cuando A2 es uno slo trabaja el de odi ador
superior, lo ual orresponde a todas las ombina iones 100 ... 111. De la misma
forma, usando un de odi ador 2 a 4 ( on o sin entrada de habilita in) y
uatro de odi adores 2 a 4 on entrada de habilita in podemos onstruir un
de odi ador 4 a 16. Este pro eso puede ontinuar tanto omo sea ne esario y/o
prudente ( onsideraremos ms adelanta mejores alternativas uando se in rementa
el nmero de entradas y/o salidas).

8.3. Multiplexores.
Un Multiplexor Digital es un ir uito ombinatorio que toma informa in
binaria de una de
posibles entradas y las transere a solo una lnea de salida.
La es ogen ia de la lnea de entrada se realiza mediante n lneas de sele in.
La denomina in se realiza de a uerdo a la antidad de lneas de entrada. Por

205

8.3. MULTIPLEXORES.

ejemplo, un dispositivo on uatro lneas de entrada y una de salida se denomina


Multiplexor 4 a 1; obviamente, debe poseer dos lneas de sele in. Al igual que los
de odi adores, los multiplexores, as omo una gran variedad de otros ir uitos
integrados, poseen lneas de habilita in y algunos salidas de Alta Impedan ia
ontroladas por una seal de entrada de habilita in de salida.
La gura 8.14 representa un Multiplexor 4 a 1 on entrada de habilita in,
tambin ono ida omo Sele tor del Chip (Chip Enable).
I3
Mux 4a1
I3
I2
I1
Y
I0

I2
Y
I1

E
I0

s1 s0

s1

s0

Figura 8.14: Multiplexor 4 a 1


De igual manera, existe una Tabla de Verdad, de donde podemos expresar
algebrai amente la fun in lgi a para este dispositivo
E
0
1
1
1
1

Y(

Entradas

s1 s0 I3 I2 I1 I0
x
0
0
1
1

x
0
1
0
1

E;s1 ;s0 ;I3 ;I2 ;I1 ;I0

x
x
x
x
x

)= ( 0

x
x
x
x
x

E I s1 s0

x
x
x
x
x

+1

I s1 s0

x
x
x
x
x

+2

Sal.
Y
0

I0
I1
I2
I3

I s1 s0

+3

I s1 s0

206
Expresin de la ual desprendemos que on este ir uito podemos desarrollar
ualquier fun in ombinatoria, y solamente una, de un nmero de variables igual
a la antidad de lneas de sele in del multiplexor, en donde las entradas I0 :::I se
pondrn a eros o unos de a uerdo a s se desarrolla el produ to en la ontribu in
nal de la suma de produ tos de la fun in.
n

Anali emos el mismo problema resuelto anteriormente on un de odi ador;


a saber, un ir uito uya salida sea el triple del valor binario de entrada. En la
on lusin del problema habamos arribado a las siguientes expresiones

F0( 1
F1( 1
F2( 1
F3( 1

)
0)
0)
0)

I ;I0
I ;I

I ;I

I ;I

= I0
=  (1; 2)
=  (2)
=  (3)

Como se trata de un ir uito on 2 variables de entrada I1 e I0 , estas se


usarn en las lneas de sele in del multiplexor para lo ual les ambiaremos la
denomina in a s1 y s0 respe tivamente. Hemos supuesto que E est a tivo (alto).
Por otra parte, de la expresin para la salida del multiplexor sabemos que los
mintrminos 1 y 2 estn a ompaados por las entradas I1 e I2 respe tivamente.
De tal forma, las entradas I1 e I2 deben estar a tivas (altas) y las entradas I0
e I3 deben estar ina tivas (bajas o one tadas a tierra) para el aso de F1 . Un
anlisis similar debe realizarse para F2 y F3 . As arribamos al ir uito mostrado
en la gura 8.15.
En trminos generales, se requiere un multiplexor por ada fun in de
salida. Enton es, si no hubiese sido posible la simpli a in en nuestro ejemplo,
hubiramos tenido que utilizar uatro multiplexores 4 a 1.
Podemos sugerir, enton es, que el uso de multiplexores es ade uado uando
el ir uito posee po as seales de salida, y el de odi ador es apropiado uando
las salidas son numerosas. Esta arma in es de ar ter relativo debido a que
existen ir uitos ms e ientes uando re en el nmero de entradas y salidas,
omo veremos ms adelante.
Por otra parte, el multiplexor posee una ualidad espe ial que no se en uentra
en el de odi ador, es posible desarrollar ualquier fun in de
variables on
n
lneas de sele in omo veremos a ontinua in, en el diseo de un ir uito
que permita realizar

F(

A;B;C

) =  (1; 3; 6; 7)

207

8.3. MULTIPLEXORES.

Vcc

Mux 4a1
I3
I2
I1
Y
I0
E

s1 s0

Mux 4a1
I3
I2
I1
Y
I0
E

F2

s1 s0

Mux 4a1
I3
I2
I1
Y
I0
E

F3

F1

s1 s0
F0

I1 I0

Figura 8.15: Multipli ador por 3

208
Sabemos que podemos utilizar un multiplexor 8 a 1 on las entradas I0 , I2 ,
I4 e I5 a ero y las entradas I1 , I3 , I6 e I7 a uno. Sin embargo plantearemos

un anlisis diferente realizando una tabla de mintrminos ordenados de la manera


siguiente (hemos supuesto que las entradas A y C son la ms y menos signi ativas
respe tivamente).

A
A

I0 I1 I2 I3

0
4
0

2 3
6 7

A A

1 entradas. En la segunda la se olo an


En la primera la se olo an las
todos los mintrminos posibles uando A est en su estado ina tivo (0, 1, 2, 3). En
la ter era la se olo an todos los mintrminos uando A est a tivo (4, 5, 6, 7).
Posteriormente se mar an los mintrminos ne esarios para desarrollar la fun in
(1, 3, 6, 7). Luego se analizan las olumnas para ada una de las entradas I . Si
en la olumna no existe mintrmino mar ado esta entrada ir a ero (I0
). Si
en la olumna solo est mar ado un mintrmino uando la variable est ina tiva,
esta entrada se one tar a la variable negada (I1 A). Si en la olumna solo est
mar ado un mintrmino uando la variable est a tiva, esta entrada se one tar
a la variable dire tamente (I2 A). Finalmente, si en la olumna estn mar ados
los dos mintrminos esta entrada ir a uno (I3
).
n

=0

=1

Vcc

Mux 4a1
I3
I2
I1
Y
I0
E

s1 s0
B C

Como se apre ia esta poten ialidad brinda un ahorro importante en el osto


y tamao de los ir uitos resultantes. Por supuesto obliga al uso de un inversor
adi ional.
Finalmente, y al igual que los de odi adores, podemos onstruir un
multiplexor de mayor nmero de entradas (  m) a partir de dos multiplexores
menores (m entradas) siempre que posean entrada habilitadora, omo se observa
en la gura 8.16.

209

8.4. COMPARADORES

I7
I6
I5
I4

Mux 4a1
I3
I2
I1
Y
I0
E

I3
I2
I1
I0
A

s1 s0

Mux 4a1
I3
I2
I1
Y
I0
E

s1 s0

B
C

Figura 8.16: Multiplexor 8 a 1

8.4. Comparadores
La ompara in de dos variables binarias es una opera in omn en Sistemas
Digitales, espe ialmente en Sistemas de Computadores, y onstituye la base de
toda senten ia de ontrol: "Si ante edente enton es onse uente", donde en el
ante edente se involu ra al menos una opera in de ompara in, por ejemplo: S
A > B , enton es..., S C
, enton es..., et .

=0

De esta manera, si disponemos de un elemento que nos permita realizar la


opera in de ompara in podramos onstruir ir uitos que nos propor ionaran
una u otra salida de a uerdo on el resultado de la ompara in. Antes de disear
este tipo de ir uitos veremos la estru tura digital de un omparador.
La primera aproxima in a un omparador de un bit la onstituye por s misma
la ompuerta OR Ex lusiva. Re ordemos que la salida de esta ompuerta es uno
slo si las entradas son diferentes. Enton es, ha iendo una extensin a n bits, el
ir uito de la gura 8.17 ser uno si las palabras binarias son diferentes, al menos
en un bit (A 6 B ).

Este arreglo es un buen omienzo, pero en el mer ado existen ir uitos


integrados de ompara in que adems informan de las magnitudes relativas de
las antidades en ompara in. En el aso de la familia TTL dos omparadores
son los ms omunes: 74LS85 (Comparador de 4 bits on entradas de expansin

210
An1 ... A1 A0 Bn1 ... B1 B0

C
.
.
.

Figura 8.17: Comparador simple de n bits


para aumentar los bits de ompara in, y salidas A > B , A
74LS682 (Comparador de 8 bits on salidas A > B y A B ).

= B y A < B) y

Entraremos un po o en el tema del diseo de omparadores. Comen emos por


un omparador bsi o, para nmeros de 1 bit:

AB F1 : A > B F2 : A = B F3 : A < B
00
01
10
11

0
0
1
0

de donde obtenemos F1

1
0
0
1

0
1
0
0

= AB , F2 = A  B y F3 = AB .

Si deseramos onstruir un omparador para nmeros de n bits, deberamos


onstruir una tabla de
ombina iones, y entraramos en el mismo problema
de explosin ombinatoria ya visto para el aso de los sumadores. Sin embargo,
un anlisis detallado del pro eso de ompara in nos puede llevar a una solu in
distribuida en el espa io, semejante a la propor ionada para el aso de los
sumadores.

2 1
n

Veamos esto on un ejemplo on reto. Supongamos que estamos omparando


los nmero A
yB
(evidentemente A es mayor que B ). Si el bit
ms signi ativo de A es mayor que el orrespondiente de B, el pro eso se detiene
y esto ya garantiza que todo el nmero A es mayor que B. De igual manera, si
el bit ms signi ativo de A es menor que el orrespondiente de B, el pro eso se
detiene y esto ya garantiza que todo el nmero A es menor que B. No obstante, si

= 1011

= 1001

211

8.4. COMPARADORES

el bit ms signi ativo de A es igual que el orrespondiente de B, nada podemos


on luir sobre la rela in A > B , y el pro eso debe ontinuar on el siguiente bit,
hasta detener on un a ierto o nalizar la antidad de bits. Para nuestro aso,
A3 B3 y el pro eso ontinua. De igual manera, A2 B2 y el pro eso ontinua.
Finalmente, A1 > B1 y el pro eso naliza indi ando que A > B . Si ambiamos el
valor de A (A
), la primera ompara in ya garantizara que A < B .

= 0011

No obstante, para implementar el ir uito deben preveerse todas las posibles


ompara iones par iales. De esta manera, un omparador de 4 bits, para generar
la seal F A > B , sera omo se muestra en la gura 8.18.

Figura 8.18: Comparador de 4 bits, generando F

=A>B

Visto desde el otro punto de vista, omenzando el anlisis desde los bits menos
signi ativos, podemos de ir que: si el bit menos signi ativo de A es mayor que
el orrespondiente de B, A puede ser mayor que B siempre que los siguientes bits
ms signi ativos tambin lo sean, o que al menos sean iguales. En otras palabras,
se "a arrea" la fun in mayor que, bit a bit, produ indose una de isin del tipo:

212

=1

A ser mayor que B, si A 1 > B 1 o, A 1 B 1 y A 2 > B 2 , para i


::n.
De esta manera, un omparador de 4 bits, para generar la seal F
A > B,
tambin se puede onstruir de una manera mas onsistente, omo se muestra en
la gura 8.19.
i

Figura 8.19: Comparador de 4 bits, generando F


bits menos signi ativos

= A > B , on a arreo desde los

Podemos, ahora, enfrentar situa iones omo las planteadas en el siguiente


ejer i io:
Planteamiento del Problema:
Disee un ir uito ombinatorio que opere de a uerdo a la siguiente
senten ia: Si A  B , enton es F A B , de lo ontrario F
 B,
donde A y B son nmeros enteros de 4 bits ada uno, + se reere a la
opera in de adi in y * a la opera in de multipli a in.

= +

=3

213

8.4. COMPARADORES

Con eptualiza in:


La salida puede ser expresada omo:
(

A+B ; AB
3B ; A<B

Analizando la expresin anterior observamos que se requieren dos


etapas ombinatorias que pro esen los datos: una para la suma y otra
para la multipli a in. Adems se ne esita una etapa de ontrol que
de ida ual etapa pro esadora de datos produ ir la salida nal del
ir uito.
Este tipo de diseo, que no es el ni o para solu ionar estos
problemas, se ono e omo diseo por bloques fun ionales. La primera
etapa de diseo onsiste en denir, a grandes rasgos, los elementos
fsi os ne esarios para pro esar los datos. Luego el sistema de ontrol
y nalmente se rena el onjunto ompleto.
La etapa sumadora la realizaremos on un sumador de 4 bits . La
etapa multipli adora on un ir uito similar al empleado en el aparte
del de odi ador. La etapa de ontrol estar basada en un omparador
que sele ionar la respuesta ade uada, manejando un multiplexor.
Veamos esto en un diagrama de bloques fun ionales:

A
B

Sumador
Amp. x 3
Comparador

A+B
3*B
A<B

Mux
0

1
S

Como la entrada es binaria y est onstituida por 4 bits, la antidad


mxima que se puede representar, en ada nmero, es 15 ( 4
). De
esta forma el nmero mximo en la salida ser 45 (15*3), para lo ual
se requieren 5 bits.

2 1

Dos observa iones nales importantes. Primero, en el aso del


sumador el a arreo nal ser onsiderado omo dato ya que nos lo

214
permite el an ho de la salida. Segundo, el multiplexor es en realidad
un arreglo de multiplexores ya que omer ialmente no existe un
multiplexor 2 a 1, en donde ada entrada tenga 5 lneas de datos.
De tal forma, este arreglo estar formado por 5 multiplexores 2 a 1
on sus entradas de sele in one tadas en paralelo.

8.5. ROM (Memoria de slo Le tura).


Cono emos desde el estudio de los apartados anteriores que un de odi ador
ompleto de n entradas, el ual genera
trminos mnimos, junto on m
ompuertas OR permite realizar ualquier fun in lgi a ombina ional de n
entradas y m salidas. Esta es la arquite tura bsi a de una ROM, tal omo se
muestra en la gura 8.20.

0
1
.
.
n1

Dec. n a 2

n entradas

0
1
.
.n
2 1

n
Matriz 2 x m
de fusibles
m1 ... 1 0
...
Arreglo de m
compuertas OR
m1 ... 1 0
...
m salidas

Figura 8.20: Estru tura de una ROM

Cada salida del de odi ador interno est one tada a una ompuerta OR a
travs de un enla e programable o "fusible lgi o", el ual permite la programa in
del dispositivo (ver 8.6).
En la pr ti a este tipo de dispositivos onstituye una familia que se puede
atalogar de a uerdo a su te nologa de fabri a in en:
ROM : Grabados al momento de fabri a in de a uerdo a una "ms ara"
suministrada por el liente. Nun a se borran, an en ausen ia de energa
el tri a.

215

8.5. ROM (MEMORIA DE SLO LECTURA).

UVPROM : Grabados el tri amente por un sistema ele trni o


espe ializado (de bajo osto), normalmente one tado a un PC, el
ual le transere el ontenido de un ar hivo de datos. Estos ir uitos pueden
ser borrados mediante luz ultravioleta y reutilizados on datos diferentes.
Naturalmente deben ser retirados de la pla a donde se en uentran, borrados,
regrabados y vueltos a instalar.
EEPROM : Grabados al igual que en aso anterior, pero el borrado se efe ta
el tri amente. Ofre en la ventaja de ser borrados y regrabados sin ne esidad
de retirarlos del ir uito donde se en uentran instalados, siendo normalmente
utilizados para alma enar informa in de pro esos que debe preservarse aun
en asos de fallas graves, omo la prdida de energa del ir uito.
Como este dispositivo fue on ebido para el alma enamiento de instru iones y
datos de pro esadores, y no para el desarrollo de fun iones ombina ionales, la
literatura referente a ellos emplea nombres diferentes al sealar las variables de
entrada, trminos mnimos o produ tos, y variables de salida. En realidad se trata
de un dispositivo de memoria, tema que revisaremos ms adelante, de esta forma al
onjunto de variables de entrada se le denominan lneas de dire in o simplemente
dire iones, ha iendo referen ia a la posi in que representa dentro de un mapa de
memoria. Las variables de salida se ono en omo lneas de datos o an ho del dato
y los produ tos lgi os one tados, mediante programa in, a ada ompuerta OR
de salida re ibe el nombre de palabra de datos. As, una memoria ROM de n lneas
de entrada y m lneas de salida posee n lneas de dire in,
palabras de datos
on un an ho de m bits.

En otras palabras, para una ombina in dada de variables de entrada, la ual


espe  a una dire in ni a, la salida ser el dato alma enado en esa dire in
de memoria. Resulta evidentemente ms laro usar una tabla que represente el
mapa de memoria para entender su opera in, donde normalmente, tanto para las
dire iones omo para los datos, se emplea nota in hexade imal.
Visto esto, podemos plantear una solu in al problema que hemos usado de
ejemplo. Dos bits de entrada produ irn uatro dire iones (0 al 3), y omo se
requeran uatro bits para representar al nueve, enton es el an ho de la palabra
de datos debe ser uatro bits. De esta forma, ne esitamos una ROM 2 x 4.
Dire in Dato
0
0
1
3
2
6
3
9

216
PROM16

Vcc
E
I1
I0

A1
A0

D3
D2
D1
D0

F3
F2
F1
F0

Como se apre ia, el diseo y su implanta in resultan ser muy f iles. Sin
embargo, en la realidad no se fabri an ROM's en estas dimensiones tan pequeas,
ni es la forma a ostumbrada denominarlas de esta manera. Normalmente se
referen ian por su apa idad de alma enamiento total de bits, onsiderando que
el an ho de salida es generalmente un byte (o ho bits). La tabla 8.3 muestra el
tipo de dispositivos ms omunes que se en uentran en el mer ado.
Cuadro 8.3: ROMs Comer iales
Denomina in Capa idad
(bits)
xxxx256-yyy
256K
xxxx512-yyy
512K
xxxx1000-yyy
1M
xxxx4000-yyy
4M

Palabras An ho
(bits)
32K
8
64K
8
128K
8
512K
8

Lneas de
entrada
15
16
17
19

Lneas de
salida
8
8
8
8

Podemos preguntarnos ahora: Ser onveniente usar una ROM de 32758


palabras por 8 bits de an ho, por hablar de una de las ms pequeas, para emplear
solo 4 palabras de 4 bits?. La respuesta denitiva la dejaremos pendiente, pero
depender, adems del tamao lgi o y su por entaje de utiliza in, de otros
riterios t ni os y e onmi os tales omo: velo idad de respuesta, onsumo de
energa, tamao nal del ir uito, disponibilidad y osto de las partes, et .
Lo que s resulta laro es que este tipo de dispositivo nos permitir onstruir
ir uitos ombinatorios de un gran nmero de variables de entrada y de salida,
empleando solo un ir uito integrado. Planteemos, a manera de ejemplo, el
siguiente:
Planteamiento del problema:
Disear y onstruir un ir uito ombinatorio que produz a omo
salida la parte entera de la
parte de un nmero entero de entrada
de 15 bits.

128

ava

Con eptualiza in:

8.5. ROM (MEMORIA DE SLO LECTURA).

Como el nmero de entrada es de 15 bits la mxima antidad


que representa es 15
. Por tanto, la salida mxima ser
Int
=
Int
;
. Enton es se ne esitan 8
bits para la salida y la ROM apropiada sera una xxx256yyy (32Kx8).

(32767 128) =

1 = 32767
(255 9921875) = 255

Solu in:
La tarea ahora es onstruir una tabla de la verdad, para
posteriormente apli ar algn mtodo de simpli a in (digamos un
mapa de Karnaugh o el algoritmo de Quine-M Cluskey) y nalmente
en ontrar una expresin de las salidas. Cuidado! No estamos
empleando mtodos tradi ionales, pero si as fuera Estara dispuesto a
onstruir una tabla de la verdad que produ ira 32768 ombina iones?,
Sera apaz de onstruir un mapa K para 15 variables?. An
empleando un mapa de memoria Tendra nimo de es ribir uno on
32768 dire iones y poner en ada una el dato apropiado?.
Esto nos obliga a bus ar mtodos alternativos de solu in y,
afortunadamente, la omputa in viene en nuestro auxilio. Como
las EPROM se graban desde un ar hivo de datos, debemos
enton es onstruir uno apropiado al problema, mediante el empleo
de algn lenguaje de programa in. Planteemos una solu in en un
metalenguaje que debe ser posteriormente tradu ido.
ABRIR un ar hivo de datos
entradas = 15
divisor = 128
FOR dire in = 0 TO
dato = INT(dire in/divisor)
GRABAR dato en ar hivo de datos
ENDFOR
CERRAR ar hivo de datos

entradas

Las parti ularidades de ada lenguaje de programa in harn que


ada instru in del metalenguaje adopte algunas espe i a iones
propias. En este sentido espe ial uidado debe ponerse en el manejo del
tipo de ar hivo y del dato que se alma ena en l, ya que la informa in
que estamos guardando es de tipo binario y no-texto o algn tipo de
odi a in alfanumri a.

217

218
Observemos el siguiente digo, es rito en Borland C 4.2, para
solu ionar el problema planteado:
//
//
//
//

Programa in de una ROM para la realiza in de Cir uitos


Combinatorios.
Propor iona a la Salida la parte entera de la 128ava parte de
un nmero binario entero de entrada, de 15 bits.

#in lude
#in lude
#in lude
#in lude
#in lude
#in lude

< onio.h>
<iostream.h>
<iomanip.h>
<math.h>
<stdio.h>
<stdio.h>

int main(void){
unsigned int num_var_entrada, dire ion, dato;
FILE *salida;
lrs r();
num_var_entrada = 15;
if ((salida = fopen("SALIDA1.DAT", "wb")) == NULL){
out < <endl < <"Error... No puedo abrir ar hivo de datos."
< <endl;
return 1;
}
out.setf(ios::upper ase);
for(dire ion = 0; dire ion <= pow(2, num_var_entrada) - 1;
dire ion++){
dato = int(dire ion/128);
fput (dato, salida);
/* Las siguientes 2 lneas estn omentadas para a elerar el
pro eso
out < <setw(2) < <hex < <dire ion < <" ";
out < <setw(2) < <hex < <dato < <endl;
*/
}
f lose(salida);
out < <"\nFin del Programa\n";
return 0;
}

219

8.5. ROM (MEMORIA DE SLO LECTURA).

Como era de esperar, el ar hivo de datos generado, SALIDA1.DAT,


es de 32768 (7F7F) bytes y para apre iar algunas se iones de
informa in se debe utilizar un editor hexade imal (no de texto).
Veamos los primeros datos del ar hivo:

Cuadro 8.4: Ar hivo de Datos


Dire in
00000
00010
00020
00030
00040
00050
00060
00070
00080
00090
000A0
000B0
000C0
000D0
000E0
000F0
00100
00110

Realiza in:

00
00
00
00
00
00
00
00
01
01
01
01
01
01
01
01
02
02

00
00
00
00
00
00
00
00
01
01
01
01
01
01
01
01
02
02

00
00
00
00
00
00
00
00
01
01
01
01
01
01
01
01
02
02

00
00
00
00
00
00
00
00
01
01
01
01
01
01
01
01
02
02

00
00
00
00
00
00
00
00
01
01
01
01
01
01
01
01
02
02

00
00
00
00
00
00
00
00
01
01
01
01
01
01
01
01
02
02

Contenido
00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00
01 01 01 01
01 01 01 01
01 01 01 01
01 01 01 01
01 01 01 01
01 01 01 01
01 01 01 01
01 01 01 01
02 02 02 02
02 02 02 02

00
00
00
00
00
00
00
00
01
01
01
01
01
01
01
01
02
02

00
00
00
00
00
00
00
00
01
01
01
01
01
01
01
01
02
02

00
00
00
00
00
00
00
00
01
01
01
01
01
01
01
01
02
02

00
00
00
00
00
00
00
00
01
01
01
01
01
01
01
01
02
02

00
00
00
00
00
00
00
00
01
01
01
01
01
01
01
01
02
02

00
00
00
00
00
00
00
00
01
01
01
01
01
01
01
01
02
02

220
Vcc

X14
X13
X12
X11
X10
X09
X08
X07
X06
X05
X04
X03
X02
X01
X00

27C256
28
27
26
02
23
21
24
25
3
4
05
06
07
08
09
10
01
22
20
14

Vcc
A14
A13
A12
A11
A10
A09
A08
A07
A06
A05
A04
A03
A02
A01
A00
Vpp
OE
CS
Gnd

07
06
05
04
03
02
01
00

19
18
17
16
15
13
12
11

F7
F6
F5
F4
F3
F2
F1
F0

El uerpo prin ipal del programa anterior puede ser usado omo una plantilla
para resolver otros problemas de lgi a ombinatoria. La estru tura prin ipal de
todo algoritmo estar omprendida en el i lo for, el ual barre ada una de las
dire iones de entrada, lo que a su vez es un requisito indispensable para la orre ta
programa in de la ROM. Naturalmente, on iertas modi a iones pueden an
emprenderse tareas ms ompli adas, omo por ejemplo fun iones ombinatorias
on ms de 8 salidas, lo que requerir la programa in de dos o ms ROM's en
paralelo, aso iando ada una un ar hivo distinto de salida.
Como otro ejemplo de programa in resolvamos nuestro ampli ador por 3.
//
//
//
//

Programa in de una ROM para la realiza in de Cir uitos


Combinatorios.
Propor iona a la Salida el triple del nmero binario de entrada
de 2 bits.

#in lude < onio.h>


#in lude <iostream.h>
#in lude <iomanip.h>

8.5. ROM (MEMORIA DE SLO LECTURA).

221

#in lude <math.h>


#in lude <stdio.h>
int main(void){
int num_var_entrada, dire ion, dato;
FILE *salida;
lrs r();
num_var_entrada = 2;
if ((salida = fopen("SALIDA2.DAT", "wb")) == NULL){
out < <endl < <"Error... No puedo abrir ar hivo de datos."
< <endl;
return 1;
}
out.setf(ios::upper ase);
for(dire ion = 0; dire ion <= pow(2, num_var_entrada) - 1;
dire ion++){
dato = 3 * dire ion;
fput (dato, salida);
out < <setw(2) < <hex < <dire ion < <" ";
out < <setw(2) < <hex < <dato < <endl;
}
f lose(salida);
out < <"\nFin del Programa.\n";
return 0;
}
La pantalla de eje u in y el ontenido del ar hivo de salida, SALIDA2.DAT
de uatro bytes, se muestran en las guras siguientes:
0000 00 03 06 09

222

8.6. PLD (Dispositivo Lgi o Programable).


Un Dispositivo Lgi o Programable es un arreglo de elementos lgi os
en apsulados en un ir uito integrado, el ual no est ompletamente preparado
para su utiliza in. El usuario debe programarlo de a uerdo a la fun in espe  a
que desee desarrollar.
Debido al gran nmero de ompuertas internas que lo forman se a ostumbra
ambiar la forma de representar el onexionado. La gura 8.21 muestra un FPAL
(Field Programable Logi Array) on una etapa de entrada de 8 ompuertas AND
( ada una, a su vez, de 6 lneas de entrada), y una etapa de salida de 4 ompuertas
OR ( ada una, a su vez, de 8 lneas de entrada).

Figura 8.21: Estru tura de una FPAL

8.6. PLD (DISPOSITIVO LGICO PROGRAMABLE).

223

Las ru es indi an "fusibles" de programa in que de fabri a o despus de un


pro eso de borrado estn realizando una onexin. Esto impli a que el pro eso de
programa in, normalmente, "rompe" o "quema" los fusibles.
Cada una de las ompuertas AND tiene un ir uito equivalente al que se
muestra en la gura 8.22. De una manera similar existe una representa in
equivalente para ada ompuerta OR de salida.

Figura 8.22: Estru tura de una AND y fusibles de programa in


La ROM (gura 8.23), analizada en 8.5, es un tipo parti ular de Dispositivo
Lgi o Programable, ya que permite la programa in lgi a de la matriz de salidas;
pero su entrada no es programable ya que est onstituida por un de odi ador
binario ompleto.
Caso ontrario al ROM es el PAL al ual solo se le puede programar la matriz
de entrada (gura 8.24).
La exibilidad de un FPAL es evidente, sin embargo este dispositivo, as
omo los PAL, se fabri an on un nivel de integra in mu ho menor que las
ROM's. Las razones son ms lgi as que te nolgi as. Si ne esito programar
la matriz de entrada es que no se requiere un de odi ador ompleto; en otras
palabras, no todos los trminos produ tos parti ipan en la expresin de la fun in
lgi a, omo o urre normalmente. Enton es no es impres indible la presen ia de
tantas ompuertas AND de entrada. En ontrapartida a este redu ido nmero de

224

Figura 8.23: Estru tura de una ROM

8.6. PLD (DISPOSITIVO LGICO PROGRAMABLE).

Figura 8.24: Estru tura de una PAL

225

226
ompuertas AND de entradas las xPAL estn dotadas de inversin programable
de las salidas, adi in de registros de salida (que posibilitan la onstru in de
ir uitos se uen iales on un solo ir uito integrado) y lneas programables de
realimenta in (las salidas se pueden inye tar en las entradas, para produ ir
ir uitos se uen iales asin rni os), omo se apre ia en la gura 8.25.

Figura 8.25: Estru tura ompleta de una FPAL


Comer ialmente la denomina in de estos dispositivos generalmente indi an
la estru tura interna que ofre en, aunque al igual que en el aso de las ROM's no
es un estndar. La gura 8.26 muestra la estru tura para la denomina in de una
PAL y al Tabla 8.5 posee algunos dispositivos omunes.
Bien, hasta el momento no hemos men ionado omo se trabaja on este tipo de
dispositivo. Al igual que en el aso de las ROM's, la graba in se realiza en fbri a
mediante una ms ara de fusibles suministrada por el usuario o on un dispositivo
similar al empleado para grabar EPROM's desde PC's. El borrado, para aquellas
que lo permitan, en aso de reprograma in, se realiza on luz ultravioleta o
ele trni amente.
La metodologa de diseo on estos ir uitos es diferente a la utilizada on

8.6. PLD (DISPOSITIVO LGICO PROGRAMABLE).

227

B PAL 16 R 8 15 C N
Tipo de Encapsulado
Comercial o Militar
Velocidad
Numero de Salidas
Configuracion de la Salida: Registro, Logica
Numero de Terminos Productos
Familia: PAL, FPAL
Tecnologia: Bipolar, CMOS, ECL, ...

Figura 8.26: Estru tura para la denomina in de una PAL


Cuadro 8.5: PAL. Dispositivos omnes
Denomina in Trminos Produ tos Salidas Tipo de Salida
BPAL16L8-5C
16
8
Lgi a
BPAL16R8-5C
16
8
Registro
BPAL16R4-20N
16
4
Registro
BPAL20L8-15N
20
8
Lgi a
BPAL20R8-15N
20
8
Registro
las ROM's. En el aso de fun iones pequeas se puede onstruir un mapa de
fusibles que se enva dire tamente a fbri a o se tradu e a un ar hivo de datos
en dis o. Cuando las fun iones son de mayor omplejidad se re urre a lenguajes
de programa in de hardware, tales omo: VHDL, Verilog, CUPL, ABEL y otros.
Nosotros entraremos nuestro esfuerzo para asos relativamente pequeos.
En este aparte vuelve a obrar fuerza el manejo del lgebra de Boole y los
mtodos de minimiza in, debido al nmero limitado de ompuertas AND de
entrada. Como primera fase del diseo deben obtenerse expresiones minimizadas
de las fun iones a realizar. Posteriormente se tabulan los produ tos que parti ipan
y se aso ian los fusibles de entrada ha ia las variables de entrada, y los fusibles de
salida ha ia las ompuertas OR de salida. Finalmente, se programan de manera
ade uada los fusibles inversores, en aso de ser ne esario.
Nuevamente usemos a manera de ejemplo el ampli ador digital por 3.
Re ordemos que las expresiones de salida eran:

F0( 1 0 )
F1( 1 0 )
I ;I

I ;I

= I0
=  (1; 2) = I1 I0 + I1I0

228

F2( 1 0)
F3( 1 0)
I ;I

I ;I

=  (2) = I1I0
=  (3) = I1I0

Se apre ia, enton es, que parti ipan 4 produ tos para formar las fun iones de
salida. Ordenemos esto en una tabla de programa in.
Entradas

Prod.

I0
I1 I0
I1 I0
I1 I0

I1

I0

Salidas

I1 I1 I0 I0 F3 F2 F1 F0
x

x
x

x
x
x
x
Inversores de Salida:

x
x

Esto nos lleva a ne esitar una FPAL tipo 4L4, omo la que se muestra a
ontinua in

8.7. ASIC (CIRCUITOS INTEGRADOS DE APLICACIONES ESPECFICAS).229

8.7. ASIC (Cir uitos integrados de Apli a iones


Espe  as).
Los Cir uitos Integrados de Apli a iones Espe  as han produ ido, durante
la d ada de los 90's, un profundo impa to en el Diseo de Sistemas Digitales
al permitir, mediante la utiliza in de ambientes CAE (Computer Assisted
Engineering), onvertir un diseo lgi o en un ir uito programado.
Las familias de PLD's vistos anteriormente onstituyen una parte de ASIC ;
sin embargo, el orazn de estos est formado por los "arreglos de eldas",
ir uitos que poseen normalmente entre 2500 y 18000 eldas que fun ionalmente
propor ionan expresiones booleanas, elementos de entrada / salida, opera iones
de ontrol, e in luso opera iones de A/D, D/A y OPAMP.
De esta forma, el uso de omputadores espe ializados (Esta iones de trabajo),
uyo osto promedio es de unas 20 ve es el valor de un buen PC, es el ni o medio
para programar este tipo de dispositivos. De he ho los ambientes CAE para Diseo
de Sistemas Digitales propor ionan un entorno ompleto al permitir elaborar
todas las fases del diseo hasta al anzar el ir uito integrado que lo implementa.
La gura 8.27 nos propor iona una idea de la arquite tura que adoptan estos
ambientes de desarrollo.

Entrada del Diseno


Captura de
Esquematicos
Lista de Red
Expresiones
Booleanas

Estacion de Trabajo
Procesamiento
Compilacion

Expansion y
Traduccion

Minimizacion
Logica

Simulacion

Ajuste

Archivo
de Salida

Maquinas
de Estado
Programador
del Circuito

Figura 8.27: Ambiente CAE para Diseo Digital

230

8.8. SOC (System On Chip).


Por ltimo, a nales de la d ada de los 90's, el desarrollo te nolgi o
ha permitido mejorar las presta iones de los ASIC's, dando paso a la
on ep in ompleta de sistemas en apsulados en un solo ir uito integrado.
Estos dispositivos, ono idos omo SOC's estn orientados esen ialmente al diseo
por omportamiento sistemti o; es de ir, una on ep in muy superior a la
tradi ional aptura de esquemti os. Evidentemente, se requiere mayor apa idad
omputa ional en las fases de diseo, simula in e implementa in. Lenguajes
omo VHDL y Verilog se han onvertido en los favoritos de este tipo de te nologa.

Captulo 9
Cir uitos Se uen iales on MSI y
LSI.
Como ya hemos visto, un ir uito se uen ial es aquel donde el estado
presente no tan solo depende de la ombina in de variables de entrada, sino
adems de la traye toria pasada del sistema por diferentes etapas o estados.
Consta esen ialmente de elementos de memoria (ip ops), as omo de una
etapa ombinatoria, one tadas para formar un amino de retroalimenta in y
propor ionar las salidas.
En el aptulo Cir uitos Se uen iales y Elementos de Memoriza in, se in
Modelo de Mquinas de Estado Finitos, tratbamos dos tipos generales de
mquina:
1. Mealy, donde las Salidas y el Estado Futuro son fun iones del Estado
Presente y de las Entradas. Esto lo podemos expresar omo se apre ia en
las e ua iones siguientes

=
=

x( +1)
y( )
k

Ax( ) + Bu( )
Cx( )
k

2. Moore, donde las Salidas son slo fun in del Estado Presente.

=
=

x( +1)
y( )
k

Ax( ) + Bu( )
Cx( ) + Du( )
k

donde x( ) es el ve tor de estados, u( ) es el ve tor de entradas, y( ) es el ve tor


de salidas; A (matriz de estados), B (matriz de entradas), C (matriz de salida) y
D (matriz de a oplo) son matri es binarias y, por tanto, representan un sistema
ombinatorio.
k

231

232
No obstante, debemos men ionar que la existen ia de retroalimenta in por si
sola, independientemente de la presen ia de elementos de memoria, ya dene al
ir uito se uen ial omo tal. Sin embargo, los ir uitos se uen iales ms difundidos
son los que emplean un onjunto ordenado de ip - ops en una disposi in
ono ida omo Registro ( aptulo Componentes de Memoriza in), donde fueron
estudiados diversos tipos de ellos.

9.1. Cir uitos Se uen iales on Registros y Lgi a


ombinatoria MSI-LSI.
Enfrentaremos este aspe to dire tamente on un problema de diseo.
Re ordemos en ir uito se uen ial que re ono e la se uen ia 1001 (gura 9.1).

0
a/0

a/0
1

c/0

(a)

c/0

1
c/0

0 d/0

(b)

0 d/0

e/1

b/0

c/0

0 d/0

b/0

e/1

0
1

a/0
1

b/0

a/0
1

b/0

0,1

0,1
0,1

0
0 d/0
1

e/1

e/1

(c)

(d)

0
1

Figura 9.1: Diagramas de Estado, para una mquina Moore, del re ono edor de
se uen ia 1001: (a) Con En lavamiento / Sin Solapamiento. (b) Sin En lavamiento
/ Sin Solapamiento. ( ) Con En lavamiento / Con Solapamiento. (d) Sin
En lavamiento / Con Solapamiento.

9.1. CIRCUITOS SECUENCIALES CON REGISTROS Y LGICA COMBINATORIA MSI-LSI.

A manera de repaso resolveremos este problema on los mtodos tradi ionales


para el aso de una mquina Moore on en lavamiento y sin solapamiento (a).
Con eptualiza in:
Como son 5 estados se requieren 3 ip - ops (los usaremos tipo D), quedando
3 estados en ondi in no - importa. De esta manera, la etapa ombinatoria tendr
4 entradas (I; Q2 ; Q1 ; Q0 ) y 4 salidas (S; Q2+1 ; Q1+1 ; Q0+1 ).
t

Est. Pre.
a
b

d
e

Q2 Q1 Q0
000
001
011
010
110

Est.
I=1
001
000
000
110
110

Fut.
I=0
000
011
010
000
110

S
0
0
0
0
1

Solu in / Simpli a in:


La e ua in de la salida puede obtenerse dire tamente

= Q2 Q1Q0
= IQ2Q1 Q0 + IQ2 Q1Q0
= (6; 14)

Para obtener las e ua iones de ex ita in usaremos tres mapas K :

D2
Q1 Q0
IQ2 00 01 11 10
00
01
11
10

0
x
x
0

0
x
x
0

0
x
x
0

D2 = (6; 10; 14)


D2 = Q2 + IQ1 Q0

0
1
1
1

234

D1
Q1 Q0
IQ2 00 01 11
00
01
11
10

0
x
x
0

1
x
x
0

1
x
x
0

10
0
1
1
1

D1 = (1; 3; 6; 10; 14)


D1 = IQ0 + Q2 + IQ1 Q0
D0
Q1 Q0
IQ2 00 01 11 10
00
01
11
10

0
x
x
1

1
x
x
0

0
x
x
0

0
0
0
0

D0 = (1; 8)
D0 = IQ1 Q0 + IQ1 Q0
Resumiendo,

S
D2
D1
D0

=
=
=
=

Q2 Q1 Q0
Q2 + IQ1 Q0
IQ0 + Q2 + IQ1 Q0
IQ1 Q0 + IQ1 Q0

Esto nos ondu e a la utiliza in de: 4 ompuertas AND de 3 entradas, 1


ompuerta AND de 2 entradas, 2 ompuertas OR de 2 entradas, 1 ompuerta
OR de 3 entradas y 3 inversores (probablemente slo 1 para la entrada I, si se
emplean ip - ops on salidas omplementadas). Adi ionalmente 3 ip - op
tipo D. A nivel de ir uitos integrados los requerimientos seran: 2 C.I. de AND
de 3 entradas (3 ompuertas por ir uito, usando una de ellas para el produ to
on 2 literales), 1 C.I. de OR de 3 entradas (3 ompuertas por ir uito, usando
una de ellas para la suma de dos literales), 1 C.I. de Inversores (usando 3 de los
6 disponibles) y 2 C.I. de ip - op (puede ser uno si su utiliza un registro).
Realiza in (gura 9.2):
Usemos, ahora, omponentes MSI para nuestro diseo.
1. Diseo on De odi ador:

9.1. CIRCUITOS SECUENCIALES CON REGISTROS Y LGICA COMBINATORIA MSI-LSI.

6
4
1

8
4
1
6
7
2
8
3
1
7
3
2
6
5

4
3

2
1

Q D
2
Q

Q D
1
Q

Q D
0
Q
Clk

Figura 9.2: Re ono edor de Se uen ia 1001. Diseo Clsi o.

236
Las e ua iones booleanas fueron obtenidas en la parte de diseo lsi o

S
D2
D1
D0

=
=
=
=

(6; 14)
(6; 10; 14)
(1; 3; 6; 10; 14)
(1; 8)

Esto nos ondu e a la ne esidad de emplear un De odi ador 4 a 16 y 4


ompuertas OR (gura 9.3).
S
Dec 4 a 16

A3
A2
A1
A0

O15
O14
O13
O12
O11
O10
O09
O08
O07
O06
O05
O04
O03
O02
O01
O00

14
6
14
10
6
14
10
6
3
1
8
1

Q2 D2
Q2
Q1 D1
Q1
Q0 D0
Q0
Clk

Figura 9.3: Re ono edor de Se uen ia 1001. Diseo on De odi ador y Registro.
2. Diseo on Multiplexor:
Para las e ua iones booleanas del punto anterior se requieren 4 multiplexores

9.1. CIRCUITOS SECUENCIALES CON REGISTROS Y LGICA COMBINATORIA MSI-LSI.

D0 E0 E1 E2 E3 E4 E5 E6 E7
I
0
1 2 3 4 5 6 7
I
8 9 10 11 12 13 14 15
I
I
0
0
0
0
0
0
D1 E0 E1 E2 E3 E4 E5 E6 E7
I
0
1 2 3 4 5 6 7
I
8
9 10 11 12 13 14 15
0
I
I
I
0
0
1
0

S
I
I

0
8
0

1
9
0

2
10
0

3
11
0

4
12
0

5
13
0

6
14

7
15
0

D2 E0 E1 E2 E3 E4 E5 E6 E7
I
0
1
2
3
4
5
6 7
I
8
9 10 11 12 13 14 15
0
0
I
0
0
0
1
0
E0 E1 E2 E3 E4 E5 E6 E7

16 a 1. Sin embargo, por el mtodo del multiplexor redu ido, las ne esidades
reales seran 4 multiplexores 8 a 1 y 1 inversor (gura 9.4).

Usemos, ahora, omponentes LSI para nuestro diseo, para lo ual ordenaremos
previamente la informa in en una tabla de verdad

238
Vcc

Vcc

Vcc

Mux 8 a 1
E7
E6
E5
E4
E3
E2
E1
E0
I

Vcc

Mux 8 a 1
E7
E6
E5
E4
E3
E2
E1
E0

CS S2 S1 S0

Mux 8 a 1
E7
E6
E5
E4
E3
E2
E1
E0

CS S2 S1 S0

Mux 8 a 1

CS S2 S1 S0

E7
E6
E5
E4
E3
E2
E1
E0

S
Y

CS S2 S1 S0

Q2 D2
Q1 D1
Q0 D0
Clk

Figura 9.4: Re ono edor de Se uen ia 1001. Diseo on Multiplexor Redu ido.
Dire in
I Q2 Q1 Q0 Hex
0000
0
0001
1
0010
2
0011
3
0100
4
0101
5
0110
6
0111
7
1000
8
1001
9
1010
A
1011
B
1100
C
1101
D
1110
E
1111
F
t

Dato

S Q2+1 Q1+1 Q0 +1 Hex


t

0000
0011
0000
0010
0xxx
0xxx
1110
0xxx
0001
0000
0110
0000
0xxx
0xxx
1110
0xxx

0
3
0
2
0
0
E
0
1
0
6
0
0
0
E
0

Observe que se han mar ado las dire iones 4, 5, 7, C, D y F. Estas


orresponden a las ondi iones no importa. En otras palabras, son ombina iones
de entrada que no deben o urrir y, por tanto, se ha onsiderado un estado futuro
igual al ini ial on salida 0. Es de ir, se ha asumido un diseo on orre in de
estado, semejante al mostrado en la gura 9.5.

9.1. CIRCUITOS SECUENCIALES CON REGISTROS Y LGICA COMBINATORIA MSI-LSI.

0
a/0

f/0

1
1
g/0

h/0
b/0
0
1
c/0
0

0 d/0
1

0,1
e/1

Figura 9.5: Diagramas de Estado, para una mquina Moore, del re ono edor de
se uen ia 1001, on En lavamiento, sin Solapamiento y on orre in de estado.
1. Diseo on ROM y Registro:
En este aso, se utiliza una PROM uyo ontenido es la olumna
de datos de la tabla de verdad (gura 9.6). Como la tabla es de 16
ombina iones, on 4 bits de salida, se requiere una ROM de 4 lneas de
dire in (16 produ tos) y 4 bits de an ho de palabra.
2. FPAL on Salidas de Flip - Flops.
Desde las e ua iones algebrai as onstruiremos la tabla (9.1) de
programa in de los trminos produ tos y sumas, para todas las fun iones
Esto nos indi a que requerimos un dispositivo que propor ione 6 produ tos,
4 sumas (una one tada a la salida externa) y 3 registros. Este elemento
no existe, pero lo implementaremos on uno tipo FPAL6R4 (6 produ tos
y 4 salidas registro). Adems, este dispositivo requiere mayor exibilidad
en el esquema de salidas, omo las ono idas Ma ro eldas Lgi as de Salida
(Output Logi Ma ro ell). Veamos un mapa del dispositivo en la gura 9.7.
Naturalmente esto es mu ho ms e onmi o que que el aso anterior, donde
requeramos una PROM [que usaba 10 dire iones (produ tos) de las 16

240
0
3
0
2
0
0
E
0
1
0
6
0
0
0
E
0

S
ROM

A3
A2
A1
A0

O3
O2
O1
O0

Q2 D2
Q1 D1
Q0 D0
Clk

Figura 9.6: Re ono edor de Se uen ia 1001. Diseo on PROM.


disponibles y un registro de 3 bits.

Cuadro 9.1: Programa in de PAL.


Entradas
Internas

Ext.

Prod.

Salidas

Q2
Q1
Q0
Ext.
Ex ita in
I I Q2 Q2 Q1 Q1 Q0 Q0 S D2 D1 D0

Q2
I1 Q0
x
Q2 Q1 Q0
IQ1 Q0 x
IQ1 Q0 x
IQ1 Q0 x

x
x

x
x

x
x
x

x
x
x
Sele tor de Tipo (L R) :
Inversores de Salida:

x
x

x
x

9.1. CIRCUITOS SECUENCIALES CON REGISTROS Y LGICA COMBINATORIA MSI-LSI.

Mux
1
0

Y
S

Mux
1
0

Y
S

Mux
1
0

Y
S
S
Mux

1
0

Clk

D Q

D Q

D Q

D Q

Vcc

Figura 9.7: Re ono edor de Se uen ia 1001. Diseo on FPAL.

242

Captulo 10
Mquinas de Estado Algortmi as
(ASM).
10.1. Introdu in
En estudios anteriores hemos onsiderado ir uitos ombinatorios y
se uen iales relativamente sen illos, desarrollando un onjunto de herramientas
que nos permiten el anlisis y diseo de dispositivos y sistemas. No obstante,
sistemas de mayor omplejidad, que los ya onsiderados, ameritan t ni as
diferentes, referen iadas generalmente omo Diseo de Sistemas por Nivel.
Estudiaremos a ontinua in los on eptos bsi os de pro esos iterativos, los
uales presentan un me anismo rudimentario de ontrol, y posteriormente,
Mquinas de Estado Algortmi o (ASM ), modelo que representa un pro eso
gobernado por un onjunto de reglas laramente denidas, apaz de realizarse
en hardware o en una simula in software.

10.2. Nota in de Transferen ia entre Registros


(RTN)
En el Diseo de Sistemas por Nivel los registros y sus opera iones son los
elementos bsi os de todo pro eso.
Un Registro (R) de n bits est ompuesto de n eldas de memoria,
denominadas R 1 ; :::; R1 R0 ; donde R0 es el bit menos signi ativo (LSB).
n

Los registros son nombrados usando una o ms letras mays ulas.


Se utiliza una Nota in de Transferen ia entre Registros (RTN ) para
des ribir las opera iones del sistema (Tabla 9.7).

243

244

Cuadro 10.1: Nota in de Transferen ia entre Registros


Fun in
Representa in Simbli a
Opera iones de Transferen ia
* Copia el ontenido de B en A
B
A
* Limpia el registro A (Reset)
A
* A tiva el registro A (Todos los bits a 1)
A
s
* In rementa el ontenido de A
F
A
* De rementa el ontenido de A
F
A
Opera iones de Desplazamiento
* Desplaza a la dere ha el ontenido de A
F
A
* Desplaza a la izquierda el ontenido de A
F
A
Opera iones Aritmti as
* Suma
F
A B
* Resta
F
A B
* Multipli a in
F
AB
* Divisin
F
AB
Opera iones Lgi as
* AND
F
A^B
* OR
F
A_B
* XOR
F
AB
* NOT
F
A

0
1
+1
1
;

1
1

245

10.3. PROCESOS ITERATIVOS UNIDIMENSIONALES

10.3. Pro esos Iterativos Unidimensionales


Un Pro eso Iterativo es aquel que exhibe ara tersti as ombina ionales y
se uen iales, donde una opera in ombina ional es repetida un nmero de ve es
de manera se uen ial.
Los pro esos iterativos pueden ser realizados alternativamente por lgi a
ombina ional y/o se uen ial, que envuelven una suerte de ompromiso entre
distribu in en el espa io (desarrollo paralelo) y distribu in en el tiempo
(desarrollo en serie).

10.3.1. Informa in distribuida en el espa io y en el tiempo


Para des ribir estas tenden ias usaremos omo ejemplo un sumador binario de
4 bits, partiendo del sumador ompleto de 1 bit.
De la lgi a ombina ional sabemos que olo ando 4 sumadores ompletos de
1 bit en as ada podemos onstruir el sumador de 4 bits. La gura 10.1 ilustra el
on epto de distribu in en el espa io.

C0

X3 Y3

X2 Y2

X1 Y1

X0 Y0

SC

SC

SC

SC

S3

S2

S1

S0

Figura 10.1: Sumador binario on distribu in en el espa io


Un pro eso iterativo tambin puede ser representado en la forma de
distribu in en el tiempo. El mtodo de suma binaria on "lpiz y papel" es
un pro eso se uen ial denominado suma serial, en el ual el pro eso ombinatorio
de sumar dos nmeros de un bit, junto on el a arreo, es repetido un nmero nito
de ve es (gura 10.2).

+ +

=0 3

=0

La opera in bsi a es la suma x y , para i


:; y on 0
, realizada
por un sumador ompleto, produ iendo omo salida s y +1 . En ada estado del
pro eso ( olumna), las entradas x e y , junto on el a arreo del estado presente ,
son sumadas para produ ir una salida s y el a arreo del prximo estado +1 . De
esta manera, la suma serial puede ser realizada por lgi a se uen ial sin rni a y
denida por un diagrama y tabla de estados, orrespondientes a una ir uito Mealy
para la salida s y Moore para el a arreo +1 , omo se muestra a ontinua in
(gura 10.3 y tabla 10.2). Este es un pro eso de suma distribuido en el tiempo y
, evidentemente, no es la ni a forma de resolverlo.
i

246

0
X3 X2 X1 X0
Y3 Y2 Y1 Y0
S3 S2 S1 S0
C4 C3 C2 C1

Figura 10.2: Pro eso de Suma


xy/s
01,10/1

01,10/0
11/0
c=0

c=1
00/1

00/0

11/1

Figura 10.3: Diagrama de Estados de un sumador serial de 1 bit.

La idea que se utiliza es muy sen illa. Se asume omo a arreo de entrada el
estado presente de la mquina. As se suman las dos entradas x e y junto on el
valor del estado presente. La salida Mealy es la suma y el estado futuro representa
al a arreo de salida.
Cuadro 10.2: Tabla de estados para el sumador serial de 1 bit
E.F. / Suma
xy
A arreo
00 01 11 10

0/0 0/1 1/0 0/1
0
0/1 1/0 1/1 1/0
1

E.P.
Q
0
1

Por ser un ir uito se uen ial de dos estados se resuelve on solo un ip - op
(usaremos tipo D). Observe que ualquier opera in de suma toma un i lo de
reloj. A ontinua in hallaremos las expresiones algebrai as para la ex ita in del
ip - op y las salidas.

247

10.3. PROCESOS ITERATIVOS UNIDIMENSIONALES

s
D

= (1; 2; 4; 7) = Q  x  y
= (3; 5; 6; 7) = xy + Qy + Qx

Re ordemos que el a arreo de entrada ini ial, en un pro eso de suma, debe
ser siempre 0. Enton es, nuestro sistema debe omenzar a operar siempre en el
estado
. Para garantizar este estado ini ial modi aremos nuestro diseo
para obtener un sumador serial de un bit on ontrol (Reset) sobre la lnea de
a arreo ini ial, as omo una seal de habilita in (gura 10.4 y tabla 10.3).

=0

ERxy/s
1001,1010/1

x001,x010/0
1011/0
c=0

x000,x1xx/0

c=1
1000/1

1011/1

11xx/0

Figura 10.4: Diagrama de Estados de un sumador serial de 1 bit on entrada de


reposi in y habilita in.

Cuadro 10.3: Tabla de estados para el sumador serial de 1 bit on entrada de


reposi in
E.P.
Q
0
1


s
D
o

E.F. / Suma
ERxy
1000 1001 1011 1010 11xx
0/0 0/1 1/0 0/1
0/0
0/1 1/0 1/1 1/0
0/0

0xxx
0/0
1/0

A arreo

0
1

= Q
= (9; 10; 24; 27) = ER(Q  x  y)
= (11; 16; 17; 18; 19; 20; 21; 22; 23; 25; 26; 27) = ER(xy + Qy + Qx) + EQ

A partir de este punto, o desde el sumador ompleto ombinatorio de 1


bit, podemos emplear la t ni a de diseo de bloques fun ionales para realizar
un sumador ompleto de 4 bits. Debemos evaluar, al menos, on las siguientes
onsidera iones :

248

E
c
Q D
Q

Clk

Notas:
Estado Presente = Acarreo de Entrada
Estado Futuro = Acarreo de Salida

Figura 10.5: Sumador serial de 1 bit on entrada de reposi in.

249

10.4. MQUINAS DE ESTADO ALGORTMICO

Ne esidad de dos registros de desplazamiento on arga paralela para


guardar X e Y , y presentar uno a uno los bits x e y al sumador serial
que a abamos de disear.
i

Ne esidad de un registro on arga serial para alma enar los resultados


par iales s .
i

Ne esidad de un sistema de reloj para argar y desplazar los registros, as


omo a tivar el ip op.
Ne esidad de un ontador de bits que indique el nal del pro eso.
Ne esidad de un sistema de ontrol para manejar las seales de opera in
de los registros y el reset del ip op en el estado ini ial (a arreo en ero al
ini io de la suma).
De manera intuitiva, omo sugiere el diseo en bloques fun ionales, es posible
abordar la tarea, pero un mtodo sistemti o resultara mu ho ms onveniente,
y este nos lo propor iona las Mquinas de Estado Algortmi o.

10.4. Mquinas de Estado Algortmi o


La primera onsidera in de diseo, que apli a en trminos generales a
ualquier problema, independientemente de su naturaleza, es dividir el sistema,
hasta donde sea posible, en pequeos subsistemas uya realiza in sea de menor
omplejidad. Posteriormente se elabora la inter onexin y sin roniza in de todos
los elementos.
Desde el punto de vista de la lgi a ir uital una mquina debe dividirse hasta
lograr que ada submquina generada pueda realizarse on algn elemento fsi o
(hardware) previamente onstruido. As podemos estable er un enfoque de diseo
pro urando separar, en primera instan ia, la informa in digital en dos se iones:
Datos y Control. La Se in de Datos, o Pro esador de Datos, lo onstituyen la
informa in y los elementos que la pro esan mediante opera iones lgi as y /
o aritmti as realizadas on lgi a ombinatoria (Compuertas, Elementos MSI,
PLD's , et .) y / o lgi a se uen ial (pequeos ir uitos se uen iales). Por otra
parte, la Se in de Control o Pro esador de Control, supervisa las opera iones y
sus se uen ias, obviamente realizado mediante ir uitos se uen iales. La rela in
entre la Se in de Datos y la Se in de Control se muestran en la gura 10.6.
La Se in de Control es un ir uito se uen ial que usando las seales externas
y las ondi iones de estado del Pro esador de Datos, omo variables de de isin,
determina la se uen ia de los omandos de ontrol para que el pro esador de

250
Datos
Entradas
Externas

Procesador
de Control

Procesador
de Datos

Comandos

Salida
de Datos

Estatus

Figura 10.6: Diagrama de Bloques de una ASM


datos eje ute las opera iones ne esarias, y adems, determina el estado siguiente
del mismo subsistema de ontrol.
Las se uen ias de ontrol y las tareas de pro esamiento de datos se espe i an
mediante un algoritmo de hardware, que permite resolver ada fun in del
sistema on algn dispositivo fsi o ( ir uitos integrados). Se utilizan, enton es,
los llamados Diagramas ASM, los uales des riben la se uen ia de eventos, las
opera iones de pro esamiento de datos y las rela iones de tiempo entre los estados
de un ontrolador se uen ial y los eventos que o urren uando se pasa de un estado
a otro.
Un Diagrama ASM est ompuesto por la unin de tres elementos bsi os
(gura 10.7):
Casilla de Estado

Nombre

Casilla de Decision

Casilla Condicional

Codigo Binario

Operaciones de Registro
Salidas tipo Moore

Condicion

Operaciones de Registros
Salidas tipo Mealy

Figura 10.7: Elementos de un Diagrama ASM

1. Casilla de Estado.
Cada Casilla de Estado posee :
a) Un nombre simbli o y un digo binario.
b) Opera iones de registro a realizar en este estado.
) Salidas tipo Moore que determinarn a iones en la se in de datos.

10.4. MQUINAS DE ESTADO ALGORTMICO

251

d ) Una salida inmediata de a in, desde su estado presente, representada


por una transi in :
1) In ondi ional al estado prximo del algoritmo de ontrol, o
2) Condi ional al estado siguiente, dependiendo de las entradas.
2. Casilla de De isin.
La Casilla de De isin des ribe el efe to de las entradas al sistema
de ontrol, deniendo la traye toria de eje u in, de a uerdo al valor lgi o
de la ondi in, verdadera (1) o falsa (0).
3. Casilla Condi ional.
En la Casilla Condi ional (dependiente del estado presente y de las
entradas) se espe i an las opera iones de registros y/o las posibles seales
de salida tipo Mealy, que se generan en un estado dado, siempre que se
satisfaga la ondi in de entrada proveniente de una asilla de de isin.
En la gura 10.8 mostramos un ejemplo de Diagrama ASM :
T0

01
S1

1
R

T1
F

10
A

Figura 10.8: Ejemplo de un Diagrama ASM


En este ejemplo se dene una mquina se uen ial de dos estados (T0 y T1 ). La
asilla de estado T0 espe i a una seal de salida S1 , tipo Moore, generada por
el ontrol que se a tivar ada vez que la mquina se en uentre en este estado.
Mientras permane e en T0 el ontrol veri a la validez de la entrada C. Si esta
es a tiva (C
), entones el registro R se despeja a ero, en el mismo i lo de

=1

252

=0

reloj. Por el ontrario, si C est ina tiva (C


), R permane e sin ambio. En
ualquier aso, el prximo estado ser T1 , donde el ontenido del registro A ser
opiado sobre el registro F, en el prximo i lo de reloj.
Todas las opera iones que se realizan en un i lo de reloj estn englobadas en
lo que se denomina Bloque ASM, distinguidos on lneas punteadas en el ejemplo.
Cada Bloque ASM onsta de una Casilla de Estado y ualquier antidad
(in luso ero) de asillas ondi ionales y de de isin. De esta forma, un Diagrama
ASM est formado por uno o ms Bloques ASM. Obviamente los Diagramas ASM
presentan mayor antidad de informa in que los Diagramas de Estado, los uales
are en de la informa in sobre las opera iones de registro.
El Diagrama ASM, del ejemplo anterior, nos da una lara idea de la se in
de datos de la mquina, aunque no nos indi a el nmero de bits de los registros.
Existen tres registros : A, F y R, en donde la salida de A est one tada a la
entrada de F. No obstante, utilizaremos una ongura in de un bus de datos.
Adems, se requieren ontrolar la reposi in (Reset) de R (R ), la arga paralela
de F (L ) y la habilita in de salida de A (O ).
R

La se in de Control estar formada por un ir uito se uen ial de dos estados,


los uales arbitrariamente hemos odi ado 01 y 10 , forzando la utiliza in de
dos ip ops, aunque pudo haber sido resuelto on slo uno.
Dire tamente del diagrama ASM obtendremos las e ua iones de ex ita in de
los ip ops, as omo las salidas de este ha ia la se in de datos.

T0
T1
D1
D0
S1
L
O
R
F

=
=
=
=
=
=
=
=

Q1 Q0
Q1 Q0
T0
T1
T0
T1
T1
CT0

A partir de estas e ua iones podemos onstruir el diagrama esquemti o de


nuestra mquina (gura 10.9).
Observe que el sistema en el arranque debe quedar en T0 , situa in que se debe
garantizar en el en endido de la mquina o on alguna seal externa adi ional.

253

10.4. MQUINAS DE ESTADO ALGORTMICO

S1
A

RLO

RLO

RLO

C
T1
T0
Dec 2 a 4
O3
O2
O1
O0

A1
A0

Notas:
Se ha omitido el reloj en todos los registros
No se han provisto controles para todas las senales

Reg.
Q1 D1
Q0 D0

Figura 10.9: Cir uito del ejemplo de un Diagrama ASM


De lo ontrario, debe existir un medio orre tor, no onsiderado, en aso de que
se ini ie en algn estado que no es parte del diagrama (00 y / o 11).
Regresemos, ahora, al problema del sumador binario. Hasta el momento hemos
desarrollado una unidad bsi a para realizar la suma binaria de un bit de manera
serial (tambin en paralelo), la que se onstituir en la base de la se in de datos.
Sin embargo, est debe ompletarse para alma enar los resultados par iales, y debe
desarrollarse por ompleto la se in de ontrol. De esta forma, para a ometer la
tarea deniremos las primeras ne esidades generales (gura 10.10):
Un sistema sumador de un bit on apa idad de generar la suma par ial y
el a arreo y retener este ltimo (lo que desarrollamos anteriormente).
Poder ontrolar el a arreo de entrada (0) para la primera suma.
Un registro de arga paralela y desplazamiento serial (X ) para guardar el
nmero X de n (4) bits.
Un registro de arga paralela y desplazamiento serial (Y ) para guardar el
nmero Y de n (4) bits.
Un registro de arga serial y desplazamiento serial (F ) para guardar los
resultados par iales s de n (4) bits.
i

Un ontador (Conta) on arga paralela o reposi in (Reset) de n (4) bits,


que nos indique el avan e del pro eso.

254
x

y
X

Procesador de Datos

PL

PL

SHR

SHR

n1 ... 1 0

n1 ... 1 0

Control de la cantidad de bits a sumar

x y
E Sumador
R Serial 1b
co s

ESS
RSS

n
PL
CD

F
RF
SLR

Contador
Comparador

Fin

DR
n1 ... 1 0

* Se ha omitido el reloj de todos los registros


Resultado

Figura 10.10: Pro esador de Datos de un Sumador Serial de n bits


Un omparador binario que nos indique el nal del pro eso (n bits han sido
pro esados).
Planteemos el algoritmo que operar esta mquina, para lo ual supondremos que
existir una seal I que ini ie el pro eso y otra RG que repondr el sistema a su
estado ini ial, en ualquier momento:

Estado T0

=1

S (Ini io
y RG
vaya al estado T1
} de lo ontrario {
vaya al estado T0
}

Estado T1

= 0) enton es {

Cargue el ontador on nmero de bits (Conta = n).


Cargue los registros X e Y on los valores de los datos externos
Limpie el sumador binario de un bit
Limpie el registro F que alojar el resultado
S (RG
) enton es {
S (Conta
) enton es {
vaya al estado T4 (Fin)
} de lo ontrario {
vaya al estado T2

=0

=0

255

10.4. MQUINAS DE ESTADO ALGORTMICO

}
} de lo ontrario {
vaya al estado T0
}

Estado T2

Sume los valores en la entrada del sumador serial de 1 bit


S (RG
) enton es {
vaya al estado T0
} de lo ontrario {
vaya al estado T3
}

=1

Estado T3

Cargue serialmente, por la dere ha, el registro F on s


Despla e, a la dere ha, los registros X e Y para que sus salidas
queden a la entrada del sumador
De remente el ontador (Conta Conta
)
S (RG
) enton es {
S (Conta
) enton es {
vaya al estado T4 (Pro eso nalizado on resultado en
F y a arreo +1 )
} de lo ontrario {
vaya al estado T2
}
} de lo ontrario {
vaya al estado T0
}
i

=0

=0

Estado T4

F in = 1
S (RG = 1) enton es {
vaya al estado T0

} de lo ontrario {
vaya al estado T4 (permanez a en lavado en el estado
de naliza in)
}

Tradu iremos este algoritmo en un Diagrama ASM (gura 10.11):


Desde el Diagrama de ASM (gura 10.11) podemos plantear dire tamente las
e ua iones de los omandos (al Pro esador de Datos) y salidas del Pro esador de
Control:

256

T0

RG
0
0

I
1

T1
Conta
n
X
DatoX
Y
DatoY
SS1b
0
F
0
1

RG
0
1

Conta
0
s
1

T2

x+y
RG
0

T3

F
SHR(F)
X
SHR(X)
Y
SHR(Y)
Conta
Conta 1
1

RG
0
Conta
1

Fin
1 RG

0
T4
1
0

Figura 10.11: Diagrama ASM para el Sumador Serial de n bits

257

10.4. MQUINAS DE ESTADO ALGORTMICO

PL
= T1
P L = T1
P L = T1
R 1 = T1
R = T1
E 1 = T2
SLR = T3
SHR = T3
SHR = T3
CD
= T3
F in = T4
C onta
X
Y

SS b
F

SS b

X
Y

C onta

Carga paralela del Contador de bits


Carga paralela del Registro X
Carga paralela del Registro Y
Reset del Sumador Serial de 1 bit
Reset del Registro F
Habilita in del Sumador Serial de 1 bit
Carga Serial y desplazamiento a la dere ha de F
Desplazamiento a la dere ha de X
Desplazamiento a la dere ha de Y
De remento del Contador
Salida Moore indi ando Final del Pro eso

Faltan por denir las e ua iones de ex ita in de la Unidad de Memoria del


Pro esador de Control. Empleando la siguiente odi a in de estados:

T0
T1
T2
T3
T4

=
=
=
=
=

000
001
011
010
111

donde (por ser 5 estados, se ha empleado una unidad de memoria de 3 bits de


an ho) podemos plantear estas e ua iones:

D2
D1
D0

=
=
=

T3 RG (Conta) + T4 RG + T1 RG (Conta)
T1 RG(Conta) + T3 RG(Conta) + T2 RG + T3 RG (Conta) + T1 RG (Conta)
T0 RGI + T1 RG(Conta) + T3 RG(Conta) + T3 RG (Conta) + T1 RG (Conta)

reordenando y minimizando,

D2
D1
D0

=
=
=

T1 RG (Conta) + T3 RG (Conta) + T4 RG
T1 RG + T2 RG + T3 RG
T0 RGI + T1 RG + T3 RG

Observe que los estados (T ) pueden obtenerse dire tamente de la salida de un


de odi ador (3 a 8). Adems, RG a ompaa a ualquier T en ada produ to. De
esta manera, podemos usar RG omo la entrada habilitadora del de odi ador y
redu ir las expresiones de ex ita in a:
i

258

D2
D1
D0

=
=
=

T1 (Conta) + T3 (Conta) + T4
T1 + T2 + T3
T0 I + T1 + T3

Finalmente, el Pro esador de Control quedara omo se muestra en la gura


10.12:
x

y
X

PL

PL

SHR

SHR

n1 ... 1 0

n1 ... 1 0

x y
E Sumador
R Serial 1b
co s

ESS
RSS

Control de la cantidad de bits a sumar


n
PL
CD

F
RF
SLR

Procesador de Datos

Contador
Comparador

Fin

DR
n1 ... 1 0

* Se ha omitido el reloj de todos los registros


Resultado

PLConta
PLX
PLY
RSS
RF

T1
T2
T3
T4

Ess
SLRF
SHRX
SHRY
CDConta
Fin

Dec 3 a 8
T4 O7
O6
O5
O4
T2 O3
T3 O2
A2
T1 O1
A1
T0 O0
E A0

I
RG

Q2 D2
Q1 D1
Q0 D0
Procesador de Control

Figura 10.12: Diagrama esquemti o del Sumador Serial de n bits

259

10.4. MQUINAS DE ESTADO ALGORTMICO

Es importante resaltar que la se in de ontrol permane e inta ta si en lugar


de pro esar n bits se suman m bits. Slo deben asegurarse que los registros, de la
se in de datos, tengan la apa idad su iente para alma enar la informa in.
Terminaremos esta breve exposi in sobre ASM resolviendo un diseo de
mayor nivel de omplejidad, donde utilizaremos omo parte del Pro esador de
Datos, nuestro sumador serial de n bits re in realizado.
Problema:
Se desea disear un multipli ador binario para nmeros de n bits P
por el mtodo de sumas su esivas.

= A  B,

Con eptualiza in:


El pro eso de multipli a in por sumas su esivas impli a sumar el
nmero A, la antidad de ve es indi ada por B. El resultado par ial
debe alma enarse en P, en la medida que B se de rementa hasta
al anzar ero, indi ando el n del pro eso. En este momento, P tiene
el resultado nal. Al ini io debe garantizarse que P est en ero.
Pro esador de Datos (gura 10.13):
Algoritmo de Control:

Estado T0

=0
=1

S (RM
) enton es {
S (IM
) enton es {
vaya al estado T1
} de lo ontrario {
vaya al estado T0
}
} de lo ontrario {
vaya al estado T0
}

Estado T1

Cargue los registros A y B on los valores de los datos externos


Limpie el registro P que alojar el resultado
S (RM
) enton es {
S (A
) enton es {
vaya al estado T6 (Fin)
} de lo ontrario {

=0
=0

260
PL

X Y
n
I Sumador
FS
Serial
RS
Suma
n n1 ...1 0
PL
R

PL
D

B
0

Comparador
FM

Figura 10.13: Diagrama del Pro esador de Datos del Multipli ador por sumas
su esivas

=0

S (B
) enton es {
vaya al estado T6 (Fin)
} de lo ontrario {
vaya al estado T2
}

}
} de lo ontrario {
vaya al estado T0
}

Estado T2

Reset al Sumador Serial de n bits.


S (RM
) enton es {
vaya al estado T0
} de lo ontrario {
vaya al estado T3
}

=1

Estado T3

Ini ie Sumador Serial de n bits.


S (RM
) enton es {
vaya al estado T0
} de lo ontrario {

=1

10.4. MQUINAS DE ESTADO ALGORTMICO

vaya al estado T4

Estado T4

// Espera por el n de la suma


S (RM
) enton es {
vaya al estado T0
} de lo ontrario {
Si (F S
){
vaya al estado T5
} de lo ontrario {
vaya al estado T4
}
}

=1

=1

Estado T5

Guarde resultado de la suma par ial en P


De remente B
S (RM
) enton es {
vaya al estado T0
} de lo ontrario {
S (B
) enton es {
vaya al estado T6 (Fin de la multipli a in)
} de lo ontrario {
vaya al estado T2 (Ini ia una nueva suma)
}
}

=1

=0

Estado T6

FM = 1
S (RM = 1) enton es {
vaya al estado T0

} de lo ontrario {
vaya al estado T6 (en lavado)
}
Requerimientos bsi os :
A la luz del Diagrama ASM, podemos notar que ha apare ido
la ne esidad de olo ar un omparador para el registro A. De esta
manera, los requerimientos bsi os quedarn omo se listan:
Registro A de n bits, on arga paralela

261

262
Registro ontador ( on uenta des endente) B de n bits, on
arga paralela
Registro P de 2*n bits on arga paralela
Sumador binario (usaremos nuestro diseo anterior) de 2*n bits
Comparador o arreglo ombinatorio para determinar uando A
es ero.
Comparador o arreglo ombinatorio para determinar uando B
es ero.
Diagrama ASM (gura 10.14):
E ua iones de Comandos y salidas:

P L = T1
P L = T1
R = T1
R = T2
I = T3
P L = T5
D = T5
F M = T6
A
B

P
S

Carga paralela del Registro A


Carga paralela del Registro B
Reset del Registro P
Reset al Sumador Serial
Ini io de la Suma Serial
Carga paralela del Registro P
De remento del Registro B
Salida Moore indi ando Final del Pro eso

Asigna in de Estados (tomada dire tamente de la salida de un


de odi ador 3 a 8):

T0
T1
T2
T3
T4
T5
T6

=
=
=
=
=
=
=

000
001
010
011
100
101
110

E ua iones de Ex ita in del Control

D2

D1

RMT3 + RMF ST4 + RM (F S )T4 + RMT1 [(A = 0) + (B = 0) +


RM (B = 0)T5 + RMT6
RM (A = 0)(B = 0)T1 + RM (B = 0)T5 + RMT2 +

263

10.4. MQUINAS DE ESTADO ALGORTMICO

T0

RM
0

IM
1

T1
Conta
n
A
DatoA
B
DatoB
P
0
1

RM
0
A=0
0
B=0
0

1
1
T2

RS
1

RM
0

T3

IS
1

RM
0

P
B
1

T4

T5
P+A
B1
RM
0
B=0
1

RM
0

T6

FM
0

FS

RM
1

Figura 10.14: Diagrama ASM para el Multipli ador Serial de n bits

264

D0

RM (B = 0)T5 + RMT6
RMT0 + RMT2 + RM (F S )T4

Nuevamente podemos usar RM omo habilitador del de odi ador,


y redu ir las e ua iones a:

= T3 + F ST4 + (F S )T4 + T1 [(A = 0) + (B = 0) + (B = 0)T5 + T6


= (A = 0)(B = 0)T1 + (B = 0)T5 + T2 + (B = 0)T5 + T6
= T0 + T2 + (F S )T4
nalmente, minimizando y re ordando que (B = 0) la hemos llamado

D2
D1
D0

F M , obtenemos:
D2
D1
D0

= (A = 0)T1 + (F M )T1 + T3 + T4 + (F M )T5 + T6


= (A = 0)(F M )T1 + T2 + T5 + T6
= T0 + T2 + (F S )T4

Pro esador de Control (gura 10.15):

265

10.4. MQUINAS DE ESTADO ALGORTMICO

PL

A
Comparador

0
X

A=0

n
I Sumador
FS
Serial
RS
Suma
n n1 ...1 0
PL
R

FS
PL
D

B
0

Comparador
FM

PLA
PLB
RP
RS
IS
PLP
DB
FM

FM
A=0
Dec
O7
O6
O5
O4
O3
O2 A2
O1 A1
O0 A0
E

Q2 D2
Q1 D1
Q0 D0

MR

Figura 10.15: Diagrama del Pro esador de Datos y Control del Multipli ador por
sumas su esivas

266

Captulo 11
Introdu in a los Lenguajes de
Des rip in de Hardware (HDL).
11.1. Introdu in
"Un dibujo di e ms que mil palabras".
Esto ha sido una verdad ampliamente pra ti ada y a eptada. En espe  o,
y en lo que on ierne a nuestro ampo, es el amino a seguir en el esfuerzo de
diseo de sistemas digitales. Por aos, y nosotros seguimos esta premisa, uno de
los pasos nales en la sntesis de sistemas digitales es la obten in de un Diagrama
Esquemti o, espe ie de dibujo que informa (o debera informar) de la arquite tura
y fun ionalidad de un ir uito digital.
En su aspe to ms bsi o, un buen Diagrama Esquemti o, nos debera indi ar
laramente los tipos de opera in lgi a que se realizan, una idea del osto de su
implanta in y, evidentemente, el objetivo nal del diseo. Re ordemos a manera
de ejemplo (gura 11.1).
a
y

b
c

Figura 11.1: Diagrama Cir uital


267

268

Qu ha e este ir uito?. Tendra que estar bastante laro: Es un sumador


ompleto de un bit. Feli ita iones a quienes lo rela ionaron antes de leer esta
lneas. Podemos de ir, enton es, que sera mejor plantear, en nuestro aso, que:
"Un dibujo, a ompaado de algunas palabras, di e ms que slo mil palabras".
Bien, planteemos otro aso (gura 11.2).
a
y

b
c
z

Figura 11.2: Diagrama Cir uital

Ahora se apre ia un esquemti o, que on muy po as diferen ias on respe to


al anterior, no es tan bueno omo la experien ia nos ha enseado. Mejor nuestro
di ho quedara: "Un buen dibujo, a ompaado de algunas palabras, di e ms que
slo mil palabras".
Finalmente, y adonde nos interesa llegar en este tema, mostraremos otro aso
(gura 11.3).
Ahora se apre ia un esquemti o mas poblado de omponentes que, aunque
muy ordenado y sen illo, se ha e muy di ultoso obtener rpidamente alguna
informa in sobre su opera in. Qu tal si intentamos des ribir este sistema on
algo pare ido a lo siguiente?
Module Comparador(F, A, B);
input [3 : 0 A, B;
output F;
assign F = (A >B);
endmodule

// Deni in de un mdulo de opera in


// Def. de entradas de 4 bits de an ho
// Def. de la salida de 1 bit de an ho
// Asigna resultado de la ompara in
// Fin del Mdulo

269

11.1. INTRODUCCIN

A3 B3

A2 B2

A1 B1

A0 B0

Figura 11.3: Diagrama Cir uital de un omparador de 4 bits

270
Cmo quedara el esquemti o si la ompara in fuese entre nmeros de 16
bits?. Observe los ambios en la deni in de la des rip in modular.
Module Comparador(F, A, B);
input [15 : 0 A, B;
output F;
assign F = (A >B);
endmodule

// Deni in de un mdulo de opera in


// Def. de entradas de 16 bits de an ho
// Def. de la salida de 1 bit de an ho
// Asigna resultado de la ompara in
// Fin del Mdulo

Completaremos, ahora, nuestro di ho: "Un buen dibujo, a ompaado de


algunas palabras, normalmente di e ms que slo mil palabras".
Resulta evidente que uando la omplejidad del sistema aumenta, los
Diagramas Cir uitales a nivel de ompuertas pierden su objetivo bsi o de
expresar on sen illez y de forma inequvo a la opera in del ir uito. Veamos
esto, uando diseamos mediante Bloques Fun ionales. En este momento vienen
en nuestro auxilio los Lenguajes de Des rip in de Hardaware (HDL).

11.2. Lenguajes de Des rip in de Hardware


(HDL)
Los Lenguajes de Des rip in de Hardware, una suerte de lenguajes de
programa in, les permiten a los diseadores des ribir los omponentes de un
ir uito mediante texto, en lugar de un esquemti o.
Realmente posibilitan mu ho mas que simplemente des ribir. Si observamos
las deni iones anteriores, no existe una des rip in del ir uito, sino un nivel de
abstra in fun ional. Esto se ono e omo Diseo a nivel del Comportamiento. En
este nivel no se brinda dire tamente ninguna informa in sobre la estru tura del
ir uito que nalmente ha de implantarse. Sin embargo, diferentes herramientas
adi ionales, normalmente basadas en Inteligen ia Arti ial, bus an expresiones
minimizadas a nivel de las ompuertas y los transistores (nivel de onmuta in),
que omenzando a nivel fun ional ( omportamiento) arriban a una malla de
programa in en estado slido ( ir uito integrado).
Otros niveles de diseo no son ajenos a estos lenguajes. Por ejemplo, podramos
expresar el omparador siguiendo una des rip in mas real del ir uito, basados
en primitivas (pequeas unidades internamente denidas) y mdulos fun ionales
denidas por el diseador, omo se apre ia a ontinua in:

271

11.3. UN POCO DE HISTORIA

Module C_1b(o0 , o1 , i0 , i1 );
input i0 , i1 ;
output o0 , o1 ;
assign o0 i0 i1 ;
assign o1  i0 ^ i1 ;
endmodule

//
//
//
//
//

Def. md. omparador de 1 bit


Entradas al omp. de 1 bit
Salidas del omp. de 1 bit
Salida mayor que
Salida igual que

Module Comparador(F, A, B);


reg [3 : 0 A, B;
wire F;
wire [3 : 0 m, i;

//
//
//
//

Mdulo omparador de 4 bits


Def. de entradas de 4 bits
Def. de la salida (1 bit)
Dos buses (4 bits /u) para
one tar las salidas
de los omparadores de 1 bit
Comparador de 1 bit para pos. 3
Comparador de 1 bit para pos. 2
Comparador de 1 bit para pos. 1
Comparador de 1 bit para pos. 0
Resultado de la ompara in,
operados on ompuertas
AND (&) y OR (|)
Fin del Mdulo

= &
= ~(

(
(
(
(

[3 [3; A[3; B [3);


[2 [2; A[2; B [2);
[1 [1; A[1; B [1);
[0 [0; A[0; B [0);
= [3 j (i[3&m[2) j
(i[2&m[1) j
(i[1&m[0 );

C_1b 3 m ; i
C_1b 2 m ; i
C_1b 1 m ; i
C_1b 0 m ; i
assign F m
endmodule

//
//
//
//
//
//

11.3. Un po o de historia
Los Lenguajes de Des rip in de Hardware fueron primeramente desarrollados,
aunque no de forma ex lusiva, en la d ada de los 80, en el siglo pasado. En
esa oportunidad, los diseadores bus aban herramientas que permitieran diversos
niveles de simula in para ir uitos on una gran antidad de elementos (Very
Large S ale I ntegration).
Durante la d ada de los 70 y omienzos de los 80, vieron luz una gran
antidad de simuladores orientados a la aptura de esquemti os (Spi e, Mi ro ap,
Design Center, Ele troni Workben h, Or ad, Cir uit Maker, et .), que todava hoy
sobreviven por la amplia difusin y valiosa ontribu in en las reas de diseo
y edu a in. Sin embargo, estas herramientas fran amente no sirven para los
sistemas a tuales, donde un slo ir uito posee millones de transistores integrados.
A omienzos de los 80, diversos fabri antes desarrollaron en sus laboratorios
herramientas omputa ionales para la representa in modular, mediante texto,
de sistemas omplejos, y poder on ellas apturar, simular, y algunos sintetizar
( onstruir), los ir uitos. Entre los ms nombrados ya men ionbamos a CUPL,
ABEL, PLDesigner, proLogi , VHDL y Verilog. De todos estos, y por diferentes

272
razones (difusin, fa ilidad, presta iones, osto, et .), slo dos lograron onvertirse
en Estndar Interna ional: VHDL (IEEE-1076-1987) y Verilog (IEEE-1364-1995).
Como una men in espe ial, algunos grupos de investiga in rearon
herramientas mixtas para el modelado, simula in y onstru in de Cir uitos
Digitales. Podemos men ionar a EDA, Ele tri y TkGate, que soportan omo
elementos de entrada, aunque sea de manera par ial: la aptura esquemti a,
e ua iones booleanas, o des rip iones HDL y entregan omo salida desde mapas
de sili io hasta diagramas esquemti os y de tiempo.
Con los ltimos aportes, VHDL y Verilog (Open Verilog International 2000 ) han devenido ha ia los nales de la d ada del 90 en Lenguajes de
Diseo Fun ional de Hardware, ms que de Des rip in de Hardaware, omo
primeramente se desarrollaron. Ya no tan slo se modela y simula un ir uito
(temas que revisaremos brevemente en este aptulo), sino que adems se orrige,
se minimiza, se optimiza el espa io fsi o y se rea la malla de programa in nal
(temas que no ubriremos en esta edi in).

11.4. Porqu Verilog?


El ttulo de esta se in ya indi a que optamos por Verilog omo herramienta
de trabajo. Claramente las diferentes op iones apuntaban a los dos estndar:
VHDL o Verilog.
Antes de exponer las razones de la de isin, debo a larar que no entrar en
el es abroso tema de ul lenguaje es el mejor. Existe abundante literatura sobre
este tpi o, expuesta por verdaderos expertos que deende a uno u otro lenguaje.
Bsi amente las diferen ias ms resaltantes, segn Gerard Blair, se pueden resumir
en:
Debido a la sintaxis de los lenguajes, ya que Verilog es muy pare ido a C y
VHDL est basado en Ada:




Verilog es ms f il de aprender. Produ e digo ms ompa to. Su


enseanza y entrenamiento se fa ilita por la antidad de ingenieros que
ono en C, omparados on los que ono en Ada.
VHDL es altamente estru turado y permite denir f ilmente nuevos
tipos de datos, aparte de los previamente denidos por IEEE.

Verilog tiene dos laras ventajas sobre VHDL:

273

11.5. MODELADO Y SIMULACIN




Permite el modelado a nivel de onmuta in ( omponentes bsi o de


la ele trni a), til para los diseadores que bus an explorar nuevos
ir uitos.
Asegura que todas las seales son ini ializadas a un valor
"des ono ido" ("no-importa"), forzando a que el diseador propor ione
los me anismos de ini ializa in lgi a ne esarios para todas las seales
(VHDL ini ializa todas las seales a ero, permitiendo el olvido
" orriente" de omitir un me anismo de reposi in global (master reset).

VHDL tiene dos laras ventajas sobre Verilog:




Permite la elabora in ondi ional de mdulos (a larado un po o ms


adelante). Una ondi in que despus de ser usada no quisiera perderse.
Permite me anismos simples para
des rip iones de un mdulo parti ular.

ambiar

entre

diferentes

Mis razones fueron de ndole ms pr ti as:


Verilog es gratuito y se pueden "bajar" diferentes versiones desde varios
lugares de Internet. No en ontr una versin ompleta y gratuita de VHDL,
uya utiliza in fuera "amigable". FreeVHDL an est bajo desarrollo,
en la Universidad de Sel, y presenta algunos problemas al momento
de ompila in. EDA, tambin bajo desarrollo, es un tanto in omodo de
manejar. Allian e ( ompletamente gratuito), on el ual se han abordado
diseos de poderosos pro esadores omer iales, es extremadamente grande,
muy ompleto, pero on es asa do umenta in.
Verilog es sint ti amente pare ido a C, y C es ampliamente ono ido.
Verilog posee ompiladores y simuladores muy sen illos, pequeos y f iles
de utilizar.
Aunque me oneso un amante de Ada, sobre todo para apli a iones de Sistemas
de Control Digital, deb su umbir (aunque no desisto en el trabajo on VHDL) a
las presta iones de Verilog.

11.5. Modelado y Simula in


La obten in del modelo de un sistema o pro eso, una expresin orta y sen illa
que rena las ara tersti as y explique el fun ionamiento de un sistema, es uno de
los objetivos ms bus ado, y no siempre onseguido, en el ampo de la ingeniera.

274
Como men ionbamos on anterioridad, nuestros modelos gr os (Diagramas
Esquemti os), son una buena, pero limitada, representa in de estos. Por ejemplo
una ompuerta AND de dos entradas (gura 11.4) expli a la opera in de la
fun in boolena de onjun in, tambin modelada por la e ua in algebrai a F
a ^ b F a  b, donde el smbolo "*" representa a la multipli a in lgi a.

Figura 11.4: Diagrama Cir uital de una ompuerta AND

Esta opera in lgi a (and) es una primitiva de Verilog (as omo: nand, or,
nor, xor, nxor, buf y not) y, por tanto, no ne esita ser modelada. Sin embargo, para
efe tos de una expli a in ms detallada de la sintaxis del lenguaje, deniremos
un modelo para ella:

module otra_AND(s, e0, e1);


input e0, e1;
output s;
assign s = e0 & e1;
endmodule
Las expresiones resaltadas en "negrita" forman parte de las palabras reservadas
del lenguaje. La deni in de un mdulo est dada por la estru tura:

module
...

<nombre_del_mdulo>(listado_de_puertos);

endmodule
Los puertos propor ionan un me anismo que permite la omuni a in del
mdulo on otras partes de un ir uito. El listado_de_puertos lo forman las
entradas y salidas del mdulo. Estas variables pueden ser del tipo: input (entrada),
output (salida) o inout (entrada-salida. Si no est familiarizado on este on epto
revise la do umenta in sobre los seguidores bidire ionales o "trans eivers"). Por
onven in del lenguaje, en el listado de puertos se olo an primero las salidas.
La instru in assign, produ e una asigna in ontinua a la variable (del lado
izquierdo del signo "="), y es evaluada y a tualizada ada vez que se produ e un
ambio en las variables de entrada. De esta manera, una asigna in ontinua es
utilizada para des ribir un omportamiento ombinatorio instantneo; es de ir,

11.5. MODELADO Y SIMULACIN

275

no se onsidera, por los momentos, ningn aspe to relativo a los retrasos de


propaga in.
Hasta aqu po o hemos he ho. El paso natural despus de tener un Diagrama
Esquemti o (o una deni in de un modelo textual) es realizar una simula in,
para veri ar el fun ionamiento del ir uito. En el aso de los simuladores
orientados a la aptura de esquemti os deben propor ionarse seales de
ex ita in, en los puertos de entrada, y dispositivos de visualiza in, al menos,
en los puertos de salida. Por ejemplo, usando Cir uit Maker, de los posibles
instrumentos de entrada, de idimos emplear un "Se uen iador de Datos Binarios"
y, omo elementos visualizadores, tres "puntos de prueba" (gura 11.5).

Figura 11.5: Compuerta AND on "instrumentos" de simula in.


Al momento de eje utar la simula in se obtiene una ventana de visualiza in
semejante a la mostrada en la gura 11.6.

Figura 11.6: Corrida de Simula in de una ompuerta AND


En el aso de utilizar Verilog, aparte de la deni in del mdulo fun ional se
requiere:
La deni in de una instan ia del mdulo; es de ir un me anismo de llamada
y eje u in (tambin de sintetiza in en la oportunidad de obten in de un
ir uito integrado real).
La deni in de los parmetros de simula in: valores ini iales de los
puertos, valores asignados a los puertos de entrada a lo largo del tiempo
de simula in.

276
Indi a in de las seales a ser supervisadas y mostradas
Con estos requisitos, el digo fuente que modela y simula nuestro ejemplo sera:
Module otra_AND(s, e1 , e0 );
input e1 , e0 ;
output s;
assign s e0 e1 ;
endmodule

// Deni in de un mdulo AND


// Entradas al mdulo
// Salida del mdulo
// Asigna in para la fun in
// Fin del mdulo de deni in

Module Prueba_AND(F, a, b);


reg a, b;

// Def. de mdulo para simula in


// Puertos de entrada asignados a
variables tipo reg
// Puerto de salida asignado a
variable tipo wire
// Instan ia in de una
ompuerta tipo AND
// Bloque de ini ializa in
// Ini ializa in del puerto a
// Ini ializa in del puerto b
// Ar hivo donde se guardarn
resultados de la simula in
// Variables que se guardaran
(todas las de la ompuerta a1 )
// Supervisa un ambio a, b y f
y las guarda y muestra en pantalla
// A los 5 i los naliza la simula in

= &

wire F;
otra_AND a1 (F, a, b);
initial begin
a = 0;
b = 0;
$dumple("and_v d.v d");
$dumpvars(1, prueba_and.a1);
$monitor("Tiempo= %d , a= %b ,
b= %b , f= %b", $time, a, b, f);
#5; $nish;
end
always begin
#1 b  b;
end

// Repita este bloque "por siempre"


// Cada 1 i lo invierta b

always begin
#2 a  a;
end

// Repita este bloque "por siempre"


// Cada 2 i los invierta a

endmodule

// Fin del Mdulo de Simula in

Las variables tipo reg (de registro, aunque realmente no lo son) deben re ibir
asigna in de valores de manera expl ita y los onservan hasta que una nueva

11.5. MODELADO Y SIMULACIN

277

asigna in sea he ha. En nuestro ejemplo, las variables a y b son de este tipo,
y re iben el valor 0 en la ini ializa in. Estas variables onservarn este valor
hasta que se eje uten modi a iones de sus asigna iones a lo largo del pro eso de
simula in.
Las variables tipo wire orresponden al grupo de redes (net), donde tambin
se en uentras supply0 (0 Gnd) y supply1 (1 V ). Representan a tualiza iones
ontinuas de las salidas, siguiendo a los ambios de la(s) seal(es) que lo
maneja(n). Es de ir, no requieren asigna iones expl itas omo en el aso de las
variables tipo reg.
Los tipos de datos que se soportan en estos lenguajes tienen, en primer lugar,
una orresponden ia dire ta on los problemas de diseo lgi o; a saber: 0, 1, x
y z, donde x representa un valor des ono ido y z a la alta impedan ia. Por otra
parte, omo la mayora de los lenguajes de programa in, la representa in de
nmeros enteros se realiza de manera trivial, permitiendo adems los formatos
binarios, o tales y hexade imales
El bloque de ini ializa in, distinguido on la palabra reserva initial, se
eje uta slo una vez, al ini io del programa en tiempo 0. Consiste de un
onjunto de estamentos normalmente rela ionados on: ini ializa in, supervisin
("monitoreo"), genera in de formas de ondas (pulsos de reloj) y pro esos que
deban eje utarse slo una vez. Pueden existir varios bloques de ini ializa in
dentro de un programa. De ser este el aso, ada uno se eje uta separadamente y de
forma on urrente (todos en paralelo, al mismo tiempo). Esta idea de on urren ia
es fundamental en los HDL (Ada tambin) porque la existen ia fsi a y el a ionar
de los omponentes el tri os de un ir uito posee esta ara tersti a (no trabaja
una ompuerta primero y despus otra, todas estn a tivas en ualquier instante
de tiempo, on epto que no debe onfundirse on el retraso de propaga in).
Los bloques always son similares al de ini ializa in, pero se repiten
ontinuamente, de una forma li a, hasta que la simula in es terminada ( on
el omando $nish) o detenida ( on el omando $stop, para trabajar de manera
intera tiva on el simulador).
Una simula in puede ser "monitoreada", mostrando la informa in en la
pantalla (y / u otro dispositivo de salida) a lo largo de la eje u in, empleando
el omando $monitor, on una sintaxis similar al omando fprint de C. Cada vez
que en una variable, estable ida para "monitoreo", se produ e un ambio esta
es mostrada. Existen otras alternativas omo el omando $display, sin embargo,
este trabaja en tiempos espe  os. Otro dispositivo de salida normalmente es un
ar hivo en dis o, para lo ual debe abrirse ($fopen), es ribir sobre l ($monitor y

278
$display lo ha en al igual que $write, $fmonitor, $fdisplay y $fwrite) y nalmente
errase ($f lose).
Un aso espe ial, entre otros, es un va iado a ar hivo on algn
formato espe  o para ser usado on otros programas, por ejemplo de
visualiza in de seales. Para preparar un va iado de la informa in en
formato v s, apaz de ser pro esado por Gtkwave se re urre a los omandos
$dumple("nombre_del_ar hivo")
y
$dumpvars(nivel_de_profundidad,
nombre_de_la_instan ia). Si el nivel de profundidad es 0 se va iarn todas las
seales jerrqui amente inferiores a la instan ia.
Como ltimo omentario sobre la sintaxis de nuestro programa de simula in
de una ompuerta AND, es importante resaltar el ontrol bsi o sobre el
trans urrir del tiempo. La onstru in # retraso introdu e un retardo entre
uando un estamento es en ontrado y el momento uando es eje utado. Por
ejemplo, #2 a  a indi a que la seal a ser invertida de su valor a tual
despus que trans urran dos unidades de tiempo de simula in. Volveremos on
ms profundidad sobre el tema de ontrol de tiempo un po o ms adelante.

Nos queda ahora eje utar los pasos ne esarios para realizar y ver los resultados
de la simula in. Para esto seguiremos la eje u in de los siguientes omandos,
desde la lnea de entrada en una pantalla de terminal (el ejemplo est he ho usando
I arus Verilog sobre Linux, donde [Parraguez$ es el indi ador para a eptar
omandos de entrada [prompt). El ar hivo fuente, mostrado anteriormente, se
ha guardado on el nombre "and.vl".
[Parraguez$ iverilog -o and.red and.vl
[Parraguez$ vvp and.red
[Parraguez$ wave and_v d.v d
El omando iverilog -o and..red and.vl ompila el ar hivo fuente (and.vl) y
prepara un ar hivo de salida para simula in (and.red). La simula in se realiza
on el omando vvp and.red, la genera el ar hivo de va iado (and_v d.v d) y
muestra en pantalla la orrida.
Tiempo=0
Tiempo=1
Tiempo=2
Tiempo=3
Tiempo=4

,
,
,
,
,

a=0
a=0
a=1
a=1
a=0

,
,
,
,
,

b=0
b=1
b=0
b=1
b=0

,
,
,
,
,

f=0
f=0
f=0
f=1
f=0

279

11.6. REFINAMIENTO EN EL CONTROL DEL TIEMPO

El omando wave and_v d.v d muestra los diagramas de tiempo, ontenidos


en "and_v d.v d", de la simula in (gura 11.7).

Figura 11.7: Corrida de Simula in de una ompuerta AND, on Verilog

11.6. Renamiento en el ontrol del tiempo


Observando uidadosamente las guras 11.6 y 11.7 se puede apre iar que
la salida no sigue exa tamente el mismo omportamiento. La simula in he ha
on el programa orientado a la aptura de esquemti os retrasa la salida de la
ompuerta una unidad de tiempo de simula in, resaltando que existe un retraso
de propaga in. La simula in he ha on Verilog propor iona una salida inmediata
en rela in on los ambios en las entradas (no hay indi ado ningn retraso de
propaga in). En realidad Verilog y pr ti amente todos los HDL, poseen un
ontrol mu ho ms renado en uanto al ontrol del tiempo y la o urren ia de
eventos, que el que pudieran brindar otro tipo de simuladores. En el programa de
ejemplo ya hemos empleado uno de estos me anismos (#1 b  b y #2 a  a),
los uales indi an que las asigna iones de valores deben realizarse una unidad, y
dos unidades, de tiempo de simula in despus. Naturalmente, en el programa,
esto est referido al ambio de de valores de las entradas y no de la salida.

11.6.1. Una introdu in a los on eptos de temporizado y


retardos
Los on eptos de temporizado y retardo en el diseo y la simula in de ir uitos
son muy importantes ya que ello permite un grado de realismo a ser in orporado
en el pro eso de modelado.

11.6.1.1. Retardos
En Verilog, on el uso de las asigna iones sin espe i a iones expl itas para las
restri iones de temporizado y retardo, las salidas, de las primitivas pre-elaboradas
y de los mdulos denidos por el usuario, son todas asumidas omo respuestas
inmediatas a los ambios de las entradas (sin retardo o, en el peor de los asos, en
un solo in remento del tiempo de simula in). Esto, laramente, no es su iente

280
donde el tiempo es un parmetro rti o del diseo, debido a que la propaga in
de las seales a travs de los mdulos puede o asionar problemas en la estabilidad
de las salidas y disparos al azar (" arreras" y " aminos rti os"). Algunos
diseos requieren umplir on altas restri iones temporales, espe ialmente los que
trabajan a gran velo idad ( omo los pro esadores), para evitar fun ionamientos
errneos o prdidas de sin ronismo.
En general, los retardos pueden ser modelados de tres formas diferentes, de
a uerdo al tipo de nivel de modelado que ha sido utilizado. A saber: nivel de
ompuertas, nivel del ujo de datos y nivel del omportamiento. Aunque no hemos
asumido an estos temas de manera formal, los to aremos brevemente.
En el modelado a nivel ompuertas, los retardos estn aso iados al tiempo
de propaga in de la seal a travs de la ompuerta, es de ir a los tiempos de:
eleva in ( ambio ha ia una salida en 1 ), ada ( ambio ha ia una salida 0 ) y
desa tiva in ( ambio ha ia una salida z ). Los parmetros programables por el
diseador se en uentran resumidos en la tabla 11.2.
Cuadro 11.2: Retardos de Transi in
eleva in
ada
desa tiva in

0; x; z ! 1
1; x; z ! 0
0; 1; x ! z

La programa in de ada uno se realiza empleando el ar ter #, junto a la


asigna in fun ional de la ompuerta. Si slo un valor es espe i ado, se usa para
los tres retardos. Si dos valores son espe i ados, estos orresponden a eleva in
y ada; la desa tiva in se asume omo el menor de los dos. La uarta ategora
de retardo, a la ual el programador no tiene a eso, es el paso a un estado
des ono ido ( ; ; z ! x), y siempre se omputa omo el menor de los tres
anteriores. A lararemos on unos ejemplos:

01

otra_AND
otra_AND
otra_AND
otra_AND

1 (F, a, b);
#2 a1 (F, a, b);
#(2, 3) a1 (F, a, b);
#(2, 3, 1) a1 (F, a, b);
a

// Eleva in =
// Eleva in =
// Eleva in =
// Eleva in =

0, Cada = 0, Desa tiva in = 0


2, Cada = 2, Desa tiva in = 2
2, Cada = 3, Desa tiva in = 2
2, Cada = 3, Desa tiva in = 1

El renamiento en el manejo del tiempo puede llevar in luso a la deni in de


los parmetros mnimo, normal y mximo, para ada uno de estos tiempos, on
los uales una deni in puede resultar, por ejemplo, en:

11.6. REFINAMIENTO EN EL CONTROL DEL TIEMPO

281

otra_AND #(1:2:4, 2:3:4, 1:2:3) a1 (F, a, b);


Es importante men ionar que no todos los ompiladores del lenguaje soportan
ompletamente el estndar. Por lo tanto, de a uerdo a la versin que se utili e,
no siempre ser posible disponer de toda la apa idad de simula in de Verilog.
En el modelado a nivel del ujo de datos, en lugar de usar el on epto de
ompuerta, se emplea la idea de seales o valores. Esta tenden ia permite modelar
los retardos de una manera ligeramente diferente. Aqu los retardos son aso iados
on la red (es de ir on variables tipo wire) a travs de la ual son transmitidos.
Debido a que existen diferentes formas de asignar los retardos a la red, hay
mtodos orrespondientes para espe i arlos de manera apropiada.
Retardo en la de lara in de la red.
El retardo atribuido a una red puede ser aso iado a la de lara in
de la misma; es de ir
wire #10 salida;
assign salida = e1 & e0;
Esto indi a que ualquier ambio en las entradas produ ir un efe to
en la salida, retardado 10 unidades de tiempo de simula in. Si la
entradas ambian de valor antes que la asigna in de la salida haya
tomado lugar, enton es sern ignoradas, omo es el aso de pulsos muy
ortos en rela in on la dura in del retardo. Esto se ono e omo
Retardo Iner ial.
Asigna in Regular de Retardo.
Este se introdu e para produ ir un retardo sobre una red que ya
ha sido previamente de larada; es de ir
wire salida;
assign #10 salida = e1 & e0;
Esto tiene un efe to similar al aso anterior, determinando el valor de la
opera in (e1 & e0 ) en el momento en que el omando es eje utado, y
enton es alma ena el valor antes de asignarlo (en este aso 10 unidades
de tiempo despus) a la salida.
Asigna in Impl ita Continua.
Ya que una red puede estar impl itamente asignado un valor en
su de lara in, es posible introdu ir un retardo en esta, antes que la
asigna in tome lugar; es de ir

282
wire #10 salida = e1 & e0;
Esto es efe tivamente una ombina in de los dos tipos de retardos
anteriores.
En el modelado a nivel del omportamiento el ir uito se representa por la
asigna in de valores a variables, algunas de las uales representan a la entradas y
otras a las salidas del modelo en uestin. Nuevamente hay un nmero diferentes
de tipos de retardo aso iados on los diferentes estilos de programa in.
Control Regular del Retardo.
Es el de uso ms omn, tambin ono ido omo Control del
Retardo Inter - Asigna iones. Este simplemente espera un nmero de
unidades de tiempo de simula in antes de ser eje utado; es de ir
#10 salida = e1 + e0;
Control del Retardo Intra - Asigna iones.
Con este tipo de retardos, el valor de (e1 + e0 ) es alma enado en el
momento en que el omando es eje utado, pero el valor no es asignado
a salida sino hasta trans urrido el perodo de retardo, sin importar que
mientras tanto la entradas vuelvan a ambiar o no lo hagan. Este es
similar a los retardos usados en el modelado a nivel del ujo de datos.
salida = #10 e1 + e0;
Con estas ara tersti as en mente modi aremos nuestro digo fuente para
produ ir una simula in de la ompuerta AND que ontemple un ontrol del
retardo intra - asigna in.

Module Prueba_and;
reg f, a, b;
always f = #1 a & b;
initial begin
a = 0;
b = 0;
$dumple("and_2.v d");
$dumpvars(0, prueba_and);

// Deni in de un mdulo para simula in


// Puertos asignados a variables tipo reg
// AND denida por omportamiento
on retardo intra - asigna in

// Todos los niveles

11.7. ALGUNOS EJEMPLOS DE LGICA COMBINATORIA.

283

$monitor("Tiempo= %d , a= %b ,
b= %b , f= %b", $time, a, b, f);
#10; $nish;
end
always #2
always #4

b
a

=
=

;
;

endmodule

// Fin del Mdulo de Simula in

El resultado de esta simula in se muestra en la gura 11.8.

Figura 11.8: Simula in de una ompuerta AND, on retardo

11.7. Algunos ejemplos de lgi a ombinatoria.


Completaremos la primera parte de la introdu in a los HDL on el modelado
y simula in de algunos ir uitos de lgi a ombinatoria.

11.7.1. Multiplexor 2 a 1
Como no debemos olvidar nuestros orgenes, omenzaremos la tarea de
modelar y simular un multiplexor 2 a 1 desde un diagrama esquemti o de di ho
omponente (gura 11.9).

11.7.1.1. Modelado y simula in a nivel de ompuertas


// mux_2a1_g.vl
// Modelo de un multiplexor 2 a 1, he ho a nivel de ompuertas
module mux_2_1 (f, en, s, i1, i0);
output f;
input s, en, i1, i0;
wire ws, wsn, wa1o, wa2o;
buf (ws, s);

284
i1

wa1o
and1

io
and2
ws

wa2o

wsn

buf1

not1

en

Figura 11.9: Diagrama Esquemti o de un multiplexor 2 a 1 on entrada de


habilita in
not (wsn, s);
and (wa2o, en, i0, wsn);
and (wa1o, en, i1, ws);
or (f, wa1o, wa2o);
endmodule
// Mdulo de prueba
module prueba;
reg en, s, i1, i0;
wire f;
integer i;
mux_2_1 mux_p(f, en, s, i1, i0);
initial begin
enp = 1;
sp = 0;
i1p = 0;
i0p = 0;
$dumple("mux_2a1_g.v d");
$dumpvars(0, prueba.mux_p);
$monitor ("Tiempo= %d , en= %b , s= %b , i1= %b ,
i0= %b , f= %b ", $time, enp, sp, i1p, i0p, fp);
for (i = 8; i <16; i = i + 1) begin
{enp, sp, i1p, i0p} = i[3:0; // Con atena in ( {} )
#1;

11.7. ALGUNOS EJEMPLOS DE LGICA COMBINATORIA.

285

end
#16 $nish;
end
endmodule
Este programa fuente es ompilado, simulado y visualizado (gura 11.10) on la
siguiente adena de omandos

iverilog -o mux_2a1_g.red mux_2a1_g.vl


vvp mux_2a1_g.red
wave mux_2a1_g.v d

Figura 11.10: Visualiza in de la simula in para un mux 2 a 1.

11.7.1.2. Modelado y simula in a nivel del omportamiento


El multiplexor, sin embargo, puede ser modelado desde el punto de vista del
omportamiento del dispositivo, de una manera mu ho ms abstra ta y redu ida,
donde no se des ribe su estru tura interna. Observe y estudie el digo siguiente,
al ual se le ha eliminado la seal de habilita in (en):
// mux_2a1_ .vl
// Modelo de un multiplexor 2 a 1,
// modelado a nivel del omportamiento
module mux_2_1 (f, en, s, i1, i0);
output f;
input s, en, i1, i0;
assign f = (s == 1) ? i1: i0;
endmodule

286
La senten ia que modela el omportamiento debe leerse de la manera siguiente:
Si la lnea de sele in est a tiva (s == 1 ), enton es asgnele a la salida el valor
de la entrada 1 (f i1 ), de lo ontrario asgnele a la salida el valor de la entrada
0 (f i0 ). El operador ondi ional del lenguaje (? : ), fa ilita esta des rip in.

Un modelo ms elaborado puede obtenerse, anidando el operador ondi ional,


para in luir la entrada de habilita in:
// mux_2a1_ .vl
// Modelo de un multiplexor 2 a 1
// modelado a nivel del omportamiento
module mux_2_1 (f, en, s, i1, i0);
output f;
input s, en, i1, i0;
assign f = (en ==1) ? ( (s == 1) ? i1: i0 ) : z;
endmodule
La senten ia que modela el omportamiento debe leerse de la manera siguiente:
Si la lnea de habilita in est a tiva (en == 1 ), enton es: si la lnea de sele in
est a tiva (s == 1 ), enton es asgnele a la salida el valor de la entrada 1 (f i1 ),
de lo ontrario asgnele a la salida el valor de la entrada 0 (f i0 ), de lo ontrario
asgnele a la salida el valor de alta impedan ia. Plantendolo de una forma ms
ordena: Si la linea de habilita in est a tiva, enton es opere omo en en aso
anterior (salida en fun in de la sele in), de lo ontrario ina tive el dispositivo.

Empleando el mismo modelo de prueba que para el aso de la simula in a nivel


de la ompuertas, obtenemos el digo y visualiza in (gura 11.11) siguientes:
// mux_2a1_ .vl
// Modelo de un multiplexor 2 a 1,
// modelado a nivel del omportamiento
module mux_2_1 (f, en, s, i1, i0);
output f;
input s, en, i1, i0;
assign f = (en ==1) ? ( (s == 1) ? i1: i0 ) : z;
endmodule
// Mdulo de prueba
module prueba;
reg enp, sp, i1p, i0p;
wire fp;

11.7. ALGUNOS EJEMPLOS DE LGICA COMBINATORIA.

287

integer i;
mux_2_1 mux_p(fp, enp, sp, i1p, i0p);
initial begin
enp = 1;
sp = 0;
i1p = 0;
i0p = 0;
$dumple("mux_2a1_ .v d");
$dumpvars(0, prueba.mux_p);
$monitor ("Tiempo= %d , en= %b , s= %b , i1= %b ,
i0= %b , f= %b ", $time, enp, sp, i1p, i0p, fp);
for (i = 8; i <16; i = i + 1) begin
{enp, sp, i1p, i0p} = i[3:0;
#1;
end
#16 $nish;
end
endmodule

Figura 11.11: Visualiza in de la simula in para un mux 2 a 1, modelado a nivel


del omportamiento
Observe que la salida (f ) est en alta impedan ia (lnea a mitad de nivel)
uando la seal de habilita in est desa tivada (en = 0 ).
Sin embargo, esta no es la ni a forma de modelar el omportamiento. Observe
el digo siguiente:
// mux_2a1_ 2.vl
// Modelo de un multiplexor 2 a 1.
// Nivel del omportamiento

288
// Con asigna in ondi ional
module mux_2_1 (f, en, s, i1, i0);
output f;
input s, en, i1, i0;
reg f;
always(en or s or i1 or i0)
if (en == 1)
if (s == 1)
f = i1;
else f = i0;
else f = 0;
endmodule
Hemos in orporado en esta des rip in dos aspe tos importantes. En primer lugar
el operador de ontrol de eventos (), el ual indi a que ada vez que exista un
ambio en ualquiera (o varias) de las seales dadas omo parmetros (en, s,
i1 i0 ), deba eje utarse el bloque. Como en este aso no existe una asigna in
ontinua para la salida (f), esta debe de larase omo registro (reg f ) y no omo
able (wire f ) para que su valor se sostenga en el tiempo. Las variables tipo reg
tienen omo ontrapartida que su valor se le debe asignar expl itamente, on
lo ual slo pueden tomar eros unos ( uando la habilita in est desa tivada
se ha asignado f = 0 ). En segundo lugar ha apare ido una estru tura if - else,
que ontrola el ujo de la eje u in de una manera similar a los lenguajes de
programa in tradi ionales.
Una vez ms, empleando el mismo mdulo de prueba, se muestra el resultado
de la simula in (gura 11.12).

Figura 11.12: Visualiza in de la simula in para un mux 2 a 1, modelado a nivel


del omportamiento on asigna in ondi ional
El mtodo anterior para implementar el multiplexor es dif il de de seguir si el
nmero de entradas aumenta, ya que la estru tura if - else se torna engorrosa y

11.7. ALGUNOS EJEMPLOS DE LGICA COMBINATORIA.

289

po o pr ti a. Una ter era forma de modelar a nivel del omportamiento es on


la estru tura ase, omo se apre ia en el digo que sigue:
// mux_2a1_ 3.vl
// Modelo de un multiplexor 2 a 1. Uso de estru tura ase
module mux_2_1 (f, en, s, i1, i0);
output f;
input s, en, i1, i0;
reg f;
always(en or s or i1 or i0)
ase ({en, s})
// on atena in de la
// habilita in y sele in
2'b00 : f = 0; // Ina tivo
2'b01 : f =0; // Ina tivo
2'b10 : f = i0; // A tivo
2'b11 : f = i1; // A tivo
end ase
endmodule
Se ha he ho uso, nuevamente, de la on atena in de variables ({en, s}), aunque
evidentemente no es ne esario, ya que las estru turas de rami a in ( ase, if else) pueden anidarse. El resultado de la simula in puede verse en la gura 11.13.

Figura 11.13: Visualiza in de la simula in para un mux 2 a 1, modelado a nivel


del omportamiento (estru tura ase)

11.7.1.3. Modelado y simula in a nivel fun ional


El multiplexor tambin puede ser modelado desde un punto de vista fun ional.
En este se ha e una asigna in ontinua de la salida omo una fun in booleana
de las entradas. Note que aunque no es una des rip in estru tural del dispositivo,
esta se puede obtener f ilmente desde ella.

290
// mux_2a1_f.vl
// Modelo de un multiplexor 2 a 1. Nivel fun ional
module mux_2_1 (f, en, s, i1, i0);
output f;
input s, en, i1, i0;
assign f = (en & s & i1) | (en & s & i0);
endmodule
El resultado de la simula in puede apre iarse en la gura 11.14.

Figura 11.14: Visualiza in de la simula in para un mux 2 a 1, modelado a nivel


fun ional

11.7.2. Multiplexor de mltiples salidas


Es evidente que el multiplexor permite tomar informa in desde mltiples
fuentes y, de a uerdo al valor de la sele in, slo una de ellas es olo ada a la
salida. Hasta ahora las fuentes de informa in (entradas) y la salida han sido de
un bit. Nos proponemos modelar un dispositivo multiplexor donde las diferentes
fuentes de informa in sean de ms de un bit. Naturalmente, la representa in
ir uital en un esquemti o se ompli a en la medida en que aumenta el an ho de
la informa in. El siguiente programa modela y simula un udruple multiplexor
2 a 1.
// 4_mux_2a1.vl
// Modelo de un multiplexor udruple 2 a 1
module mux4_2_1 (f, en, s, i1, i0);
output [3:0 f;
input [3:0 i1, i0;
input s, en;
assign f = (en ==1) ? ( (s == 1) ? i1: i0 ) : 4'bzzzz;
endmodule

11.7. ALGUNOS EJEMPLOS DE LGICA COMBINATORIA.

291

Observe que el digo es idnti o al multiplexor simple, modelado a nivel del


omportamiento. El ni o ambio es el an ho de la informa in. Para poder
simular, estos pequeas diferen ias tambin deben expresarse en el mdulo de
prueba. Un listado ompleto del digo, para modelado y simula in se muestra
a ontinua in:
// 4_mux_2a1.vl
// Modelo de un multiplexor udruple 2 a 1
module mux4_2_1 (f, en, s, i1, i0);
output [3:0 f;
input [3:0 i1, i0;
input s, en;
assign f = (en ==1) ? ( (s == 1) ? i1: i0 ) : 4'bzzzz;
endmodule
// Mdulo de prueba
module prueba;
reg [3:0 i1, i0;
reg en, s;
wire [3:0 f;
integer i;
mux4_2_1 mux_p(f, en, s, i1, i0);
initial begin
enp = 1;
sp = 0;
i1p = 4'b0101;
// Ini ializado a un valor arbitrario
i0p = 4'b1010;
// Ini ializado a un valor arbitrario
#1;
$dumple("4_mux_2a1.v d");
$dumpvars(0, prueba.mux_p);
$monitor ("Tiempo= %d , en= %b , s= %b , i1= %b ,
i0= %b , f= %b ", $time, enp, sp, i1p, i0p, fp);
for (i = 0; i <8; i = i + 1) begin
{en, s} = i[2:1;
#1;
end
#10 $nish;
end
endmodule

292
El resultado de la simula in puede apre iarse en la gura 11.15.

Figura 11.15: Simula in para un udruple multiplexor 2 a 1

11.7.3. Sumador ompleto de 4 bits


El siguiente programa modela y simula (gura 11.16)un sumador ompleto de
4 bits:
// sum 4b.vl
// Modelo de un sumador ompleto de 4 bits
module sum 4b ( o, s, a, b);
output [3:0 s;
output o;
input [3:0 a, b;
assign { o, s} = a + b;
endmodule
// Mdulo de prueba
module prueba;
reg [3:0 ap, bp;
wire [3:0 sp;
wire p;
integer i;
sum 4b sum 4b_p( p, sp, ap, bp);
initial begin
ap = 0;
bp = 0;
#1;
$dumple("sum 4b.v d");
$dumpvars(1, prueba.sum 4b_p);
$monitor ("Tiempo= %d , a= %d , b= %d , o= %b ,

11.8. MODELADO Y SIMULACIN DE LA LGICA SECUENCIAL.

293

s= %d", $time, ap, bp, p, sp);


for (i = 0; i <256; i = i + 14) begin
ap = i[7:4;
bp = i[3:0;
#1;
end
#20 $nish;
end
endmodule

11.8. Modelado y Simula in de la Lgi a


Se uen ial.
Todo el desarrollo y tratamientos de ejemplos de las se iones anteriores se
referan a la lgi a ombinatoria. Avanzaremos en el estudio de las posibilidades de
los HDL on el modelado y simula in de los sistemas se uen iales y las unidades
bsi as de alma enamiento de datos ( errojos, biestables, registros y memorias),
junto on algunas apli a iones.

11.8.1. El biestable tipo D.


En la lgi a se uen ial bsi a uno de los elementos de mayor presen ia en los
diseos es el biestable (ip - op) tipo D, o algunos omponentes derivados de
l. En la gura 11.17 repetimos el diagrama esquemti o de este elemento, ya
estudiado en el aptulo sobre ir uitos se uen iales.
En primer lugar, modelaremos el biestable a nivel del omportamiento, omo
se muestra en el digo siguiente:
// _D_ .vl
// Modelo de un biestable (ip-op) D
// a nivel del omportamiento
module _D_ (q, qn, D, Clk);
output q, qn;
input D, Clk;
reg q, qn;
always (posedge Clk) q = D;
always (posedge Clk) qn = D;
endmodule

294

Figura 11.16: Simula in para un sumador de 4 bits

11.8. MODELADO Y SIMULACIN DE LA LGICA SECUENCIAL.

295

D Q
Clk

Figura 11.17: Biestable tipo D

El estamento de ontrol de eventos () nos indi a que ada vez que o urra un
an o positivo de la seal Clk, enton es la salida prin ipal (q) se har igual a la
entrada (D).
Es posible agregar una entrada de reposi in (reset) on lo ual el digo
quedar modi ado, omo se muestra junto al mdulo de prueba:
// _D_ .vl
// Modelo de un biestable (ip-op) D
// a nivel del omportamiento
module _D_ (q, qn, D, Clk, reset);
output q, qn;
input D, Clk, reset;
reg q, qn;
always (posedge Clk)
if (reset == 1) begin
q = 0;
qn = 1;
else begin
q = D;
qn = D;
end
endmodule
// Mdulo de prueba
module prueba;
reg Dp, Clkp, resetp;
wire qp, qnp;
integer i;
_D_ _D_p (qp, qnp, Dp, Clkp, resetp);
initial begin
{resetp, Dp, Clkp} = 3'b000;

296
$dumple("_D_ .v d");
$dumpvars(0, prueba._D_p);
$monitor ("Tiempo= %d , lk= %b , R= %b , D= %b ,
q= %b , qn= %b", $time, Clkp, resetp, Dp,
qp, qnp);
for (i = 0; i <8; i = i + 1) begin
{resetp, Dp, Clkp} = i[2:0;
#1;
end #10 $nish;
end
endmodule
El resultado de la simula in puede apre iarse en la gura 11.18.

Figura 11.18: Simula in para un biestable tipo D

11.8.2. Registro multifun ional de 8 bits.


Con la apa idad mostrada hasta ahora, modelaremos un registro de 8 bits
que posea las siguientes seales de ontrol:
Carga paralela (l).
Reposi in (r ).
Habilita in de Salida (e).
In remento (i ).
De remento (d).
// registro.vl
// Modelo de un registro multifun ional
module registro (q, D, Clk, l, r, e, i, d);
output [7:0 q;
input [7:0 D;

11.8. MODELADO Y SIMULACIN DE LA LGICA SECUENCIAL.

input Clk, l, r, e, i, d;
wire [7:0 q;
reg [7:0 qtemp;
assign q = (e == 1) ? qtemp : 8'bzzzzzzzz;
always (posedge Clk)
ase ({ r, l, i, d})
4'b0000 : qtemp = qtemp;
4'b0001 : qtemp = qtemp - 1;
4'b0010 : qtemp = qtemp + 1;
4'b0011 : qtemp = qtemp;
4'b0100 : qtemp =D;
4'b0101 : qtemp =D;
4'b0110 : qtemp =D;
4'b0111 : qtemp =D;
4'b1000 : qtemp = 0;
4'b1001 : qtemp = 0;
4'b1010 : qtemp = 0;
4'b1011 : qtemp = 0;
4'b1100 : qtemp = 0;
4'b1101 : qtemp = 0;
4'b1110 : qtemp = 0;
4'b1111 : qtemp = 0;
end ase
endmodule
// Mdulo de prueba
module prueba;
reg [7:0 Dp;
reg Clkp, lp, rp, ep, ip, dp;
wire [7:0 qp;
integer i;
registro reg_p (qp, Dp, Clkp, lp, rp, ep, ip, dp);
initial begin
Dp = 64;
Clkp = 0; lp = 0; rp = 0; ep = 1; ip = 0; dp = 0;
$dumple("Reg_Multi.v d");
$dumpvars(0, prueba.reg_p);
$monitor ("Tiempo= %d , lk= %b , e= %b , R= %d ,

297

298
D= %d , l= %b, i= %b, d= %b, q= %b",
$time, Clkp, ep, rp, Dp, lp, ip, dp, qp);
for (i = 0; i <15 ; i = i+1) begin
Clkp = i[0;
ase (i)
1 : rp = 1;
3 : rp = 0;
4 : lp = 1;
6 : lp = 0;
7 : ip = 1;
9 : ip = 0;
10 : dp = 1;
12 : dp = 0;
13 : ep = 0;
default : $display("Caso no evaluado");
end ase
#1;
end
#16 $nish;
end
endmodule

El resultado de la simula in puede apre iarse en la gura 11.19.

11.8.3. Mquina Se uen ial Rudimentaria.


Enfrentaremos el modelado y simula in de una mquina se uen ial
rudimentaria on el ejemplo del re ono edor de se uen ia. Se desea disear un
ir uito se uen ial que re onoz a la se uen ia 1001, que arriba por su entrada de
datos. El sistema opera on en lavamiento y sin solapamiento. La salida debe ser
tipo Moore.
Repetiremos el Diagrama de Estados de este diseo (gura 11.20).
Lo resaltante, en el diseo tradi ional, era la obten in de las e ua iones de
ex ita in de las unidades de memoria, ya que estas determinan las transi iones
del sistemas (estado futuro), a tiempo de reloj. Re uerde que las salidas de las
unidades de memoria onstituyen el estado presente del sistema.
Realizando la siguiente asigna in de estados

11.8. MODELADO Y SIMULACIN DE LA LGICA SECUENCIAL.

Figura 11.19: Simula in para un Registro Multifun ional

299

300
0
a/0
1
1

b/0
0
1
c/0
0

0 d/0
1

0,1
e/1

Figura 11.20: Diagrama de Estados para re ono edor de se uen ia 1001.

a
b

d
e

=
=
=
=
=

000
001
010
011
111

intentaremos una des rip in del omportamiento de esta mquina, para lo


ual debemos estable er una variable que identique al estado, y modelar las
transi iones entre estos, en fun in del valor de la entrada de datos.
// re _se .vl
// Modelo de un re ono edor de se uen ia
module re _se (SM, D, Clk);
output SM;
// Salida Moore
input D;
// Entrada de Datos
input Clk;
// Reloj
reg SM;
// Salida denida omo "reg" para
// mantener su valor entre i los de reloj
reg [2:0 est_pre;
// Registro para indi ar el estado

11.8. MODELADO Y SIMULACIN DE LA LGICA SECUENCIAL.

301

// presente de la mquina
assign SM = est_pre[2 & est_pre[1 & est_pre[0;
always (posedge Clk)
ase ({ est_pre, D})
4'b0000 : est_pre = 3'b000;
4'b0001 : est_pre = 3'b001; // Primer elemento
4'b0010 : est_pre = 3'b010; // Segundo elemento
4'b0011 : est_pre = 3'b000;
4'b0100 : est_pre =3'b011; // Ter er elemento
4'b0101 : est_pre =3'b000;
4'b0110 : est_pre =3'b000;
4'b0111 : est_pre =3'b100; // Cuarto elemento
4'b1000 : est_pre =3'b100; // En lavado
4'b1001 : est_pre =3'b100; // En lavado
default : est_pre =3'b000; // en ualquier otro estado
// vaya al ini io
end ase
endmodule
Observe que la salida Moore ha sido obtenida de manera fun ional ya que ella
slo es vlida en el estado e
. Por otra parte, han sido on atenados el estado
presente y la entrada de datos ({ est_pre, D}) para ser tratadas en una sola lnea.
Finalmente, omo el ambio de estados o urre slo en el an o positivo del reloj,
la asigna in est_pre = ... debe entenderse omo el estado futuro del sistema.

= 100

Con un mdulo de prueba semejante al mostrado, se obtuvo el Diagrama de


Tiempos de la gura 11.21.
// Mdulo de prueba
module prueba;
reg Dp, Clkp;
wire SM;
integer i;
re _se reg_se _p (SMp, Dp, Clkp);
initial begin
Dp = 0; Clkp = 0;
$dumple("re _se .v d");
$dumpvars(0, prueba.reg_se _p);

302
$monitor ("Tiempo= %d , lk= %b , D= %b , SM= %b",
$time, Clkp, Dp, SMp);
for (i = 0; i <15 ; i = i+1) begin
Clkp = i[0;
ase (i)
0 : Dp = 1;
1 : Dp = 1;
2 : Dp = 0;
3: Dp = 1;
4 : Dp = 1;
5 : Dp = 1;
6 : Dp = 0;
7 : Dp = 0;
8 : Dp = 1;
9 : Dp = 0;
default : $display("Caso no evaluado");
end ase
#1;
end
#10 $nish;
end
endmodule

11.8.4. Mquina Se uen ial Algortmi a.


Para nalizar esta introdu in a los lenguajes de des rip in de hardware
enfrentaremos el modelado y simula in de una mquina se uen ial algortmi a
(ASM ), on el ejemplo del multipli ador mediante sumas su esivas. Es bueno
resaltar que pretendemos ha er hin api en la des rip in y no en la fun ionalidad,
ya que podramos sen illamente modelar de la siguiente manera:
// multip1.vl
// Modelo de un multipli ador de 4 bits, por omportamiento
module multip1 (Mu, A, B);
output [7:0 Mu;
// Resultado (en 8 bits)
input [3:0 A, B;
// Entradas a multipli ar (en 4 bits)
reg [7:0 Mu;
always(A or B) Mu = A * B;
endmodule

11.8. MODELADO Y SIMULACIN DE LA LGICA SECUENCIAL.

Figura 11.21: Simula in para un Re ono edor de se uen ia (1001 ).

303

304

En lugar de esto, deniremos el multipli ador siguiendo las lneas de diseo


dadas en el aptulo sobre Mquinas de Estado Algortmi as. En esa oportunidad
dividamos el sistema en dos etapas: Pro esador de Datos (en argado del manejo
de la informa in, previendo la disposi in de re ursos fsi os apropiados) y
Pro esador de Control (en argado de re ibir los omandos externos, supervisar
el estado de los pro esos y generar las seales de ontrol ade uadas), omo se
muestra en la gura 11.22.
El diagrama ASM que sigue la etapa de ontrol se muestra en la gura 11.23.
donde se ha realizado una asigna in de estados arbitraria:

T0
T1
T2
T3

=
=
=
=

00
01
10
11

El digo siguiente muestra el modelo ompleto del multipli ador


// multip2.vl
// Modelo de un multipli ador de 4 bits,
// a nivel de arquite tura
module multip2 (Res, Fin, A, B, IM, RGM, Clk);
output [7:0 Res;
// Resultado (en 8 bits)
output Fin;
// Fin del Pro eso de Multipli a in
input [3:0 A, B;
// Entradas a multipli ar (en 4 bits)
input IM, RGM;
// Ini io de la multipli a in y
//Reposi in General del Pro eso
input Clk;
wire [7:0 Res;
wire Fin;
Pro _Control PC(Fin, PLA, PLB, DB, PLP, RP, IM, RGM, FM,
A_0, B_0, Clk);
Pro _Datos PD(Res, FM, A_0, B_0, A, B, PLA, PLB, DB, PLP,
RP, Clk);
endmodule
module Pro _Control (Fin_PC, PLA_PC, PLB_PC, DB_PC, PLP_PC,
RP_PC, IM_PC, RGM_PC, FM_PC,

Dato B
Sistema
de Control;

IM
RGM

Inicio
Reposicion

PLA
PLB
DB
PLP
RP
Fin
FM
A=0
B=0

PL
D

Dato A

PL
B

Sumador

Comparador
FM
B=0

PL
R

Comparador

A=0

Resultado

11.8. MODELADO Y SIMULACIN DE LA LGICA SECUENCIAL.

305

Figura 11.22: Diagrama de bloques de un multipli ador por sumas su esivas.

Procesador
de Datos

306

T0
A
B
P

DatoA
DatoB
0

RM
0

IM
1

B
1

T1
B1

RM
0
A=0
0

B=0
0

T2
P+A
B1

P
B
1

RM
0
B=0
1

0
T3

FM
1

RM

Figura 11.23: Diagrama ASM del Pro esador de Control.

11.8. MODELADO Y SIMULACIN DE LA LGICA SECUENCIAL.

307

A_0_PC, B_0_PC, Clk_PC);


output Fin_PC, PLA_PC, PLB_PC, DB_PC, PLP_PC, RP_PC;
input IM_PC, RGM_PC, FM_PC, A_0_PC, B_0_PC, Clk_PC;
wire Fin_PC, PLA_PC, PLB_PC, DB_PC, PLP_PC, RP_PC;
reg [1:0 est_pre;
assign Fin_PC = est_pre[1 & est_pre[0;
assign PLA_PC = ~est_pre[1 & ~est_pre[0;
assign PLB_PC = ~est_pre[1 & ~est_pre[0;
assign DB_PC = ( est_pre[1 & ~est_pre[0 ) |
(~est_pre[1 & est_pre[0 );
assign PLP_PC = est_pre[1 & ~est_pre[0;
assign RP_PC = ~est_pre[1 & ~est_pre[0;
always (posedge Clk_PC)
if ( RGM_PC == 1 )
est_pre = 2'b00;
else
ase (est_pre)
2'b00 : if ( IM_PC == 1)
est_pre = 2'b01;
else
est_pre = 2'b00;
2'b01 : ase ( { A_0_PC, B_0_PC } )
2'b00 : est_pre = 2'b10;
default : est_pre = 2'b00;
end ase
2'b10 : if ( B_0_PC == 0)
est_pre = 2'b10;
else
est_pre = 2'b11;
2'b11 : est_pre = 2'b11;
default : est_pre =2'b00;
end ase
endmodule
module Pro _Datos (Resultado_PD, FM_PD, A_0_PD, B_0_PD, A_PD,
B_PD, PLA_PD, PLB_PD, DB_PD, PLP_PD,
RP_PD, Clk_PD);
output [7:0 Resultado_PD;
output FM_PD, A_0_PD, B_0_PD;
input [3:0 A_PD, B_PD;
input PLA_PD, PLB_PD, DB_PD, PLP_PD, RP_PD, Clk_PD;
wire [7:0 Resultado_PD;

308
wire FM_PD, A_0_PD, B_0_PD;
wire [3:0 A_Reg, B_Reg;
wire [7:0 Sum_Sal;
registro4b_L R_A(A_Reg, A_PD, PLA_PD, Clk_PD);
registro4b_LD R_B(B_Reg, B_PD, PLB_PD, DB_PD, Clk_PD);
registro8b_LR R_P(Resultado_PD, Sum_Sal, PLP_PD, RP_PD, Clk_PD);
sumador8b Sumador (Sum_Sal, Resultado_PD, {4'b0000, A_Reg} );
omparador4b C_A(A_0_PD, A_Reg, 4'b0000);
omparador4b C_B(B_0_PD, B_Reg, 4'b0000);
omparador4b C_FM(FM_PD, B_Reg, 4'b0000);
endmodule
module registro4b_L (O, D, L, Clk);
output [3:0 O;
input [3:0 D;
input L, Clk;
reg [3:0 O;
always(posedge Clk) if (L == 1) O = D;
endmodule
module registro4b_LD (O, D, L, CD, Clk);
output [3:0 O;
input [3:0 D;
input L, CD, Clk;
reg [3:0 O;
always(posedge Clk)
ase ( {L, CD} )
2'b10 : O = D;
2'b01 : O = O - 1;
end ase
endmodule
module registro8b_LR (O, D, L, R, Clk);
output [7:0 O;
input [7:0 D;
input L, R, Clk;
reg [7:0 O;
always(posedge Clk)
ase ( {L, R} )
2'b10 : O = D;
2'b01 : O = 0;
end ase

11.8. MODELADO Y SIMULACIN DE LA LGICA SECUENCIAL.

309

endmodule
module sumador8b (F, X, Y );
output [7:0 F;
input [7:0 X, Y;
assign F = X + Y;
endmodule
module omparador4b (igual, N1, N2);
output igual;
input [3:0 N1, N2;
assign igual = ( N1 == N2 );
endmodule
// Mdulo de prueba
module prueba;
reg [3:0 Ap, Bp;
reg IMp, RGMp, Clkp;
wire [7:0 Resp;
wire Finp;
integer i;
multip2 multip2_p (Resp, Finp, Ap, Bp, IMp, RGMp, Clkp);
initial begin
Ap = 2; Bp = 3; IMp = 0; RGMp = 1; Clkp = 0;
$dumple("multip2.v d");
$dumpvars(1, prueba.multip2_p);
$monitor ("Tiempo= %d , A= %d , B= %d , Resultado= %d",
$time, Ap, Bp, Resp);
for (i = 0; i <34; i = i + 1) begin
Clkp = i[1;
ase ( i )
3 : RGMp = 0;
5 : IMp = 1;
9 : IMp = 0;
end ase
#1;
end // for
end // initial
endmodule

El ar hivo fuente, mostrado anteriormente, se ha guardado on el nombre

310
"multip2.vl" y debe ser pro esado on la siguiente se uen ias de omandos.
[Parraguez$ iverilog -v -o multip2.red -s prueba multip2.vl
[Parraguez$ vvp -v multip2.red.red
[Parraguez$ wave multip2.v d
El resultado de la simula in puede apre iarse en la gura 11.24.

11.8. MODELADO Y SIMULACIN DE LA LGICA SECUENCIAL.

Figura 11.24: Simula in para el Multipli ador

311

312

Bibliografa
[1 Tonny Bybell. Stru tural Verilog Compiler. bybelllinux-workshop. om. 2001
[2 Udi Finkelstein. GTKWave. http:gtk.org. 2001
[3 I arus Verilog. http://www.i arus. om/eda/verilog. 2001
[4 Luis Parraguez. Herramientas Computa ionales para el urso Diseo de
Sistemas Digitales. UDO. 2000.
[5 Daniel Hyde. Handbook on Verilog HDL. Computer S ien e Departament.
Bu knell University. Lewisburg, PA, USA. 1997
[6 Gerard Blair. Verilog - a elerating Digital Design. Departament of Ele tri al
Engineering. University of Edinburgh. S otland. UK. 1997
[7 D. Gajski. Prin ipios de Diseo Digital. Prenti e-Hall, 1997
[8 T. L. Floyd. Fundamentos de Sistemas Digitales. Prenti e-Hall, 1997
[9 Morris Mano. Lgi a Digital y Diseo de Computadoras. Prenti e-Hall, 1993
[10 Morris Mano. Ingeniera Computa ional. Diseo del Hardware. Prenti e-Hall,
1991
[11 J. Wakerly. Digital Design. Prin iples and Pra ti es. Prenti e-Hall, 1991
[12 Abellanas y Lodares. Matemti a Dis reta. Ma robit, 1991
[13 Morris Mano. Diseo Digital. Prenti e-Hall, 1990
[14 R. To i. Sistemas Digitales. Prin ipios y Apli a iones. Prenti e-Hall, 1990
[15 Des hamps y Angulo. Diseo de Sistemas Digitales. Paraninfo, 1989
[16 Hill y Peterson. Teora de Conmuta in y Diseo Lgi o. Limusa, 1987
[17 Mis ha S hwartz. Information Transmission, Modulation, and Noise.
M Graw-Hill, 1970

313

314

BIBLIOGRAFA

Vous aimerez peut-être aussi