Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
N leo de Anzotegui
Profesor Agregado
Puerto La Cruz, O
tubre del 2001.
1 Este do umento es mantenido por su autor. Por favor, enve sus omentarios sobre
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
iverilog
wave
GIMP
KIllustrator
Xg
ii
XPaint
gv
psutils
Dia
de Angus Duggan.
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.
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.
2. Cdigos Binarios.
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
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
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.
ix
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
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
NDICE GENERAL
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
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
231
243
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
267
270
271
272
273
279
279
279
283
283
283
285
289
290
292
293
293
296
xii
NDICE GENERAL
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
40
40
40
41
47
53
54
54
56
56
57
57
60
60
61
62
63
65
66
68
68
71
73
73
74
76
76
77
78
x;y
x;y
xiii
=
=
+
+
.
.
.
.
.
.
.
.
.
.
.
.
xiv
NDICE DE FIGURAS
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
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
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
168
169
169
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
=
=
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
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
.
.
.
.
.
.
.
.
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
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
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.
xix
.
.
.
.
.
.
.
.
.
.
.
.
.
.
NDICE DE CUADROS
xx
.
.
.
.
.
.
47
49
51
52
55
61
70
75
91
x;y
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
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
144
145
146
153
154
154
156
157
158
158
158
160
161
161
162
163
164
164
165
170
171
180
189
190
8.1.
8.2.
8.3.
8.4.
8.5.
196
202
216
219
227
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
177
xxii
NDICE DE CUADROS
. . . . . . .
. . . . . . .
on entrada
. . . . . . .
. . 244
. . 246
de
. . 247
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.
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
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.
b 1 b 2 b1 b0 :b 1 b 2 b
n
y su valor es
= P =1
n
2
2 =8
2 = 16
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
= a
r
=0 a
r
= 0)
= 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
Q = a 1 r 2 + a 2 r 3 + ::: + a1
n
1234
De esta forma,
De
imal a O
tal
Opera
in
Residuo
1234 8 = 154
2
154 8 = 19
2
19 8 = 2
3
28=0
2
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
1=161 = 16 1 = 0;1
8=162 = 8 16 2 = 0;08
1=163 = 16 3 = 0;001
Fra in De imal
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
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
0 37510 = 0;0112 .
As, ;
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
= b 12 1 + b 22 2 + b 3 2 3 + b 4 2 4 + ::::
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 =
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
0 011
A+B
+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
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
10 + a 1 10 1 + ::: + (a
+(a1 b1 )101 + (a0 b0 )100
)10 + (a
m
1 )10 1 + :::
m
10 +
Por ejemplo, usando los mismos valores numri
os que para el
aso de la suma,
desarrollemos
=
=
=
=
=
=
=
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
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
x-y
y r
0 0
1 1
0 1
1 0
0
1
0
0
0
1
0
0
10 10
0
1 0
1 1
1 1
13
010101012 = 8510
011111112 = 12710
000000002 = 010
110101012 = 8510
111111112 = 12710
100000002 =
010
+2
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
(N ) = (r
N)
=r
(r
N) = r
+N =N
Opera in
101 3 = 7
102 28 = 72
105 12345 = 87655
100 0;2156 = 0;7844
102 37;841 = 62;159
15
D
= A+B
= A + (10
= 10 + A
= 10 + D
B)
B
10
10 +
10
m
10
10
10
10
= 10
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
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
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
N 1=
; rN
; rN
6= 0
=0
N 1
=
=
r
N
N
r
N 1
=
=
=
r
r
N
r0
N
N
m
m
=0
(N 1 ) 1 = (r
N) 1
=r
(r
N) = r
+r
+N = N
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
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
+( )
= A+B 1
= A + (10 10
= 10 10 + A
= 10 10 + D
D
B)
B
10
10
10
10 + 10
m
10
10 ,
on lo
=
10 + 10 (que
= 10 10 + D)
10
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
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
;
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
b)
101
-010
011
101
+101
1010
010 1 = 101
=0)2 =1
1110.101
-1001.111
0100.110
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 <
= 100 1 = 011
1001.111
+0001.011
1011.010
)
D
D
0
= 1011 010 1
= 0100 110
D <
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
= a(b )
e
( )
e
= 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
=
=
=
=
=
AB
e2
22
A=B
b) 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 .
Posicionales
Simetricos
No Posicionales
No Simetricos
Reflejados
23
Distancia Unitaria
24
1001
BC D
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
25
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
=9
X
X
X
De
imal 631(-1) 631(-1) De
imal
2
0101
1010
7
8
1101
0010
1
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
27
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.
2.
3.
0
0000
1000
9
1
0001
1001
8
2
0100
1100
7
3
0101
1101
6
4
0110
1110
5
n
m
= m!(nn! m)!
16!
= 16
=
10
10!(16 10)! = 8008
0011
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
Uno de Diez
0000000001
0000000010
0000000100
0000001000
0000010000
0000100000
0001000000
0010000000
0100000000
1000000000
29
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).
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
STX ETX
DC2 DC3
#
2
3
B
C
R
S
b
r
s
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
Cubo 1
0
Cubo 2
1
10
Cubo 3
11
110
111
010
00
01
011
100
101
000
001
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
34
Cubo 3 y Sub-Cubo 2
110
111
010
011
100
101
000
001
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
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.
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
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
37
D.P. par
0000000
0000111
0011001
0011110
0101010
0101101
0110011
0110100
1001011
1001100
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
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
3.4: L prende
SI Y SOLO SI
S1 ierra
( S2 ierra
39
S3 ierra).
40
+
V
S1
S2
+
V
S1
+
V
S2
L
41
S1
S3
+
V
S2
+
( + )
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
= 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
(2
1)
0)
=AB )C
AB )C
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
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)
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
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
8(a; b; ) 2 B : a + (b ) = (a +
45
+a=1
aa=0
a) a
b)
=b
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
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
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
(
0 + 1 = 1 ;
uando x = 0 por A5 ) x + x = 1 ; 8x 2 B
x+x=
1 + 0 = 1 ;
uando x = 1 por A5
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
+(
)=
)=
U
x
x
y
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
;
;
;
;
x+1
=
=
=
=
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.
= +
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
9
T10
T11
T
Idempoten
ia
De Morgan
Expansin
49
50
)
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
S , y vi
eversa.
n
( )
( ) = 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
51
+ +
+ +
+ +
+ +
+(
)+(
( + ) ( + + )
sumas
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
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
(011)
= + + (011)
m3
m3
=
=
=
=
=
ii
xyz
xyz
x+y+z
x+y+z
M3
=(
)+(
x;y
= (1 2)
53
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
=( + ) ( + )
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
54
=xy+xyz
=xy+xyz
x;y
x;y
55
=xy+xyz
xy+xyz
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
= ABE + C + D
= (A + B ) E + C + D
= AE + BE + C + D
= AE + BE + CD
56
A
A*B
A*B *E
A*B *E + C+D
E
C
C+D
D
D
F
B
D
C
57
A =A
A
B
A
B
A
B
F
B
A
F
F
B
58
Problemas o PSP por sus siglas en ingls (Problem Solving Pro
edure). Este
onsta, en general, de
uatro pasos :
1.
2.
3.
4.
2.
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
Hora
Diurna
Diurna
Diurna
Diurna
No
turna
No
turna
No
turna
No
turna
De donde, F
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
3.
Solu in y Simpli a in. Apli ando los teoremas y axiomas del lgebra
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
60
61
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.
=A
F14
"
V
V
F
F
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=
62
= HP V + HP V + HP V
= (HP V + HP V + HP V )
= (HP V ) (HP V ) (HP V )
63
P
P
V
V
H
H
A
A
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.
Vcc
R2
Vs
R1
V1
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
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
67
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
i = < i
= (V1
ALT Omin
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
68
Vcc
2k
20k
A
B
Q1
2k
20k
C
Q2
69
OF F
V
I
= I (2k + 20k) + V be
= V 22Vkbe
= 5V 22k0;6V = 0;2mA
Q2
Q2
04 =46
04
5V
n 0;4V
2 02
04
2;0V ) n 50;42
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
400
16
20 = 20 8
=5
0 36
= 22 22
400
40
= 10
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
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.
pLH
Vcc
R3
F
R1
R2
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.
75
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
76
A
B
dB
77
A
B
dB
= 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
2k
1k
C
F
D
A
B
20k
dB
79
R2
1.6k
Q2
Q1
D2
R3
130
Q4
R4
1k
F
Q3
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).
R2
1.6k
A
B
D2
Q1
D3
R3
130
Q2
Q4
R4
1k
F
Q3
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).
MARGEN
VIHmin
TRANSICION
VILmax
MARGEN
VOLmax
BAJO
Gnd
OH min
I H min
I Lmax
OLmax
83
1
5
+ =
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.
84
Vcc
A
F
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
85
86
Vcc
R1
4k
R2
1.6k
Q2
Q1
D2
R4
1k
F
Q3
Vcc
R1
4k
R2
1.6k
Q2
Q1
D2
Vdd
R4
1k
F
Q3
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
89
90
Vdd
S
G
Q 1 canal p
D
F
D
Q 2 canal n
G
S
Q1
Q2
F
Q3
Q4
B
91
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
Q3
Q1
F
Q2
E
Q4
A
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.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
de
Apli a iones
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.
:
= (0 0) (0 1) (1 0) (1 1)
= (0 1)
94
0
1
(0; 0) a b m0 (0; 1) a b m1
(0; 0) a b m2 (1; 1) a b m3
0
1
00
01
11
10
95
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
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
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.
97
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.
98
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
11 10
1
1
1
_ _
acd
cd
ab
00
01
11 10
00
1*
01
11
1*
_
abd
1*
1*
10
_
abc
bd
acd
F(
a;b; ;d
) = ab + ab + a d + a d
=1
F(
a;b; ;d
=1
) = a d + abd + ab + ab + ab d
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)
100
cd
00 01 11 10
1
00
01
11 1
ab
1
10
Figura 5.4: Mapa K para la fun
in
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.
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
cd
00 01 11 10
00
01
ab
11
10
102
cd
00 01 11 10
00
01
ab
11
1
1
10
Figura 5.6: Mapa K redu
ido para la fun
in
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.
a;b; ;d
103
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) *
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
0; 2; 8; 10(2; 8) )
8
>
>
>
<
>
>
>
:
2; 3; 6; 7(1; 4) )
8
>
>
>
<
>
>
>
:
9; 13(4) )
1001 ) 1x01
1101
1x01
a d
on lo ual arribamos a:
F(
a;b; ;d
105
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
=
=
=
=
O3
O2
O1
O0
I3
I3 I2
I2 I1
I1 I0
O 1
O 2
n
O1
O0
=
=
=
I
I I 1
I 1I 2
=
=
I2 I1
I1 I0
:::
106
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
Cubo 1
0
Cubo 2
1
Cubo 3
11
10
110
111
010
00
01
011
100
101
000
001
1k+r
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 .
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.
p1 m1 m2 m4
p2 m1 m3 m4
p3 m2 m3 m4
= 0
= 0
= 0
p1
p2
p3
=
=
=
m1 m2 m4
m1 m3 m4
m2 m3 m4
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
0
1
m1 m1 p2 p1
109
110
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
111
=[
= [0 0 0 0 1 1 1
= [0 0 1 0 1 1 1 [
on
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
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 )
O=h
(S;I )
1
113
114
instante t +2 (donde
1).
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.
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
1
S
0
S
0
S
1
S
Activa cerradura
Figura 6.2: Diagrama de Flujo para la a tiva in de una erradura se uen ial.
116
0
a/0
1
1
b/0
0
1
c/0
0
0 d/0
1
0,1
e/1
117
6.1. INTRODUCCIN
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
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.
119
(t+1)
Q( +1)
0
1
0
0
1
1
X
X
t
(t)
R+S
SR
00,01
00,10
10
0
11
1
01
11
Indeterminado
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.
121
Q
C
Q
R
RC
(t+1)
C (Q
(t)
R + S)
H OLD
122
JC
J
C
Q
KC
(t+1)
Q( +1)
0
1
0
0
1
1
1
0
t
C (K Q
(t)
SQ
(t) )
JK
00,01
00,10
10,11
0
1
01,11
123
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
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.
D Q
D Q
C Q
C Q
Clk
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).
z
Q
6.6. BIESTABLES
127
C
D
u
v
w
x
y
z
Q
Q
128
11
00
1
0
Clk
11
00
1
0
1
0
0
1
1
0
11
00
D
r
11
00
11
00
Clk
Clk Q
Clk
Q
R
S
D
Clk Q
R
129
X
Clk
11
00
00
11
D Q
D Q
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).
131
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
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
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
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
134
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
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
135
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
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
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.
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
139
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
141
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
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
( )= (
j
( )
j
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
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
144
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
[ ( )=
j
( )= (
)=
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
146
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
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
01
2
2
11
10
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 ).
01
1
1
10
11
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.
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
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
151
a = 00001
b = 00010
= 00100
d = 01000
e = 10000
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
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
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.
= (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
154
Q2( +1)
Q2( +1)
t
Q2( +1)
0
0
0
0
1
0
0
0
0
0
Q1( +1)
Q1( +1)
t
Q1( +1)
0
1
0
0
0
0
0
1
1
1
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
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
T2 = (2; 8; 9) +
T2 = Q2 Q1 I + Q2
T1 = (1; 4; 5; 9) +
T1 = Q0 I + Q1 Q0
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
157
( ) Q( ) Q( ) I
2 1 0
158
Q0 I
00 01 11 10
0 0 0 1
0 0 0 0
x x x x
1 1 x x
Q0 I
00 01 11 10
0 1 0 0
1 1 0 0
x x x x
0 1 x x
Q0 I
00 01 11 10
0 0 1 1
1 0 0 0
x x x x
0 1 x x
159
= +
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
( +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
( ) Q( ) Q( ) I
2 1 0
161
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
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
Q2( +1)
Q1( +1)
Q0( +1)
t
= J2Q2( ) + K2Q2( ) = Q1 Q0 I
= J1Q1( ) + K1Q1( ) = Q1 Q0
= J0Q0( ) + K0Q0( ) = Q1 I + Q2 Q1 + Q2I
t
( +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
( ) Q( ) Q( ) I
2 1 0
163
164
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
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
165
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
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.
167
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
(q ; i ) ! (q +1; o )
t
169
i 1 , i2 , i3 / o2
i 2 / o1
q2
q1
i 4 / o1
q1 ;
q2 ;
q1 ;
q1 ;
q3 ;
q3 ;
q3 ;
q1 ;
z1
z1
z1
z1
z2
z2
z2
z1
i2
* *
q1/z1
**
q2/z1
i 1 , i2 , i3
i4
* *
q3/z2
i 1 , i2 , i3
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
j;k
) (
j;k
k
) (
j;k
i1
i2
i3
i4
!
!
!
!
i1
i2
i3
i4
q1
q2
q3
!
!
!
q1
q2
q3
)
)
)
)
(q1; i1 ; o1)
(q1; i2 ; o1)
(q1; i3 ; o1)
(q1; i4 ; o1)
j;k
171
)
)
)
)
)
)
)
)
q
q1
q2
q3
k
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
q
q1
q2
k
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
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
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
1
0
L
Q
Q
Clk
176
1
0
1
0
D Q
Q
1
0
D Q
Q
D Q
Q
Clk
S
Qn1
Qn2
Q0
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
Q0
177
7.3. CONTADORES
S1 S0 Opera
in
00
01
10
11
Desplaza a la dere
ha
Carga en paralelo
Desplaza a la izquierda
Nada (
onserva ltimo dato)
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.
178
Clk
Q0
Q1
Q2
Q3
0 15 14 13 12 11 10
(a)
(b)
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
180
Cuadro 7.2: Tabla de estados para un
ontador sin
rni
o as
endente de
uatro
bits
Est. Pre.
Est. Futuro
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
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
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
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.
182
Q 1+0 1
Q 1+2
0 1
Q 1
t
7.3. CONTADORES
183
184
Figura 7.13: Contador Sin rni o As endente / Des endente on arga paralela
185
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
187
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.
189
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.
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
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).
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
194
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
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
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.
196
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.
198
8.2. DECODIFICADORES.
199
200
201
8.2. DECODIFICADORES.
a1
a0
3 1
5
o3
2
3
Dec 2a4
02
a1
a0
o3
o2
o1
o0
o1
5
4
3
E
o0
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
203
8.2. DECODIFICADORES.
x1 x0 F3 F2 F1 F0
00
01
10
11
0000
0011
0110
1001
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)
(1 3) =
I ;I
I ;I
= (1 2)
F3
F2
Dec 2a4
x1
x0
Vcc
a1
a0
E
o3
o2
o1
o0
F1
F0
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
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
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.
I2
Y
I1
E
I0
s1 s0
s1
s0
Y(
Entradas
s1 s0 I3 I2 I1 I0
x
0
0
1
1
x
0
1
0
1
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
F0( 1
F1( 1
F2( 1
F3( 1
)
0)
0)
0)
I ;I0
I ;I
I ;I
I ;I
= I0
= (1; 2)
= (2)
= (3)
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
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
A
A
I0 I1 I2 I3
0
4
0
2 3
6 7
A A
=0
=1
Vcc
Mux 4a1
I3
I2
I1
Y
I0
E
s1 s0
B C
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
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
210
An1 ... A1 A0 Bn1 ... B1 B0
C
.
.
.
= B y A < B) y
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 .
2 1
n
= 1011
= 1001
211
8.4. COMPARADORES
= 0011
=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
= +
=3
213
8.4. COMPARADORES
A+B ; AB
3B ; A<B
A
B
Sumador
Amp. x 3
Comparador
A+B
3*B
A<B
Mux
0
1
S
2 1
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.
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
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
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
128
ava
(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
217
218
Observemos el siguiente
digo, es
rito en Borland C 4.2, para
solu
ionar el problema planteado:
//
//
//
//
#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
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.
//
//
//
//
221
222
223
224
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.
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, ...
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
Estacion de Trabajo
Procesamiento
Compilacion
Expansion y
Traduccion
Minimizacion
Logica
Simulacion
Ajuste
Archivo
de Salida
Maquinas
de Estado
Programador
del Circuito
230
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
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.
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.
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
= Q2 Q1Q0
= IQ2Q1 Q0 + IQ2 Q1Q0
= (6; 14)
D2
Q1 Q0
IQ2 00 01 11 10
00
01
11
10
0
x
x
0
0
x
x
0
0
x
x
0
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
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
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
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)
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
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
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
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
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
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
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.
243
244
0
1
+1
1
;
1
1
245
C0
X3 Y3
X2 Y2
X1 Y1
X0 Y0
SC
SC
SC
SC
S3
S2
S1
S0
+ +
=0 3
=0
246
0
X3 X2 X1 X0
Y3 Y2 Y1 Y0
S3 S2 S1 S0
C4 C3 C2 C1
01,10/0
11/0
c=0
c=1
00/1
00/0
11/1
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
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
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
248
E
c
Q D
Q
Clk
Notas:
Estado Presente = Acarreo de Entrada
Estado Futuro = Acarreo de Salida
249
250
Datos
Entradas
Externas
Procesador
de Control
Procesador
de Datos
Comandos
Salida
de Datos
Estatus
Nombre
Casilla de Decision
Casilla Condicional
Codigo Binario
Operaciones de Registro
Salidas tipo Moore
Condicion
Operaciones de Registros
Salidas tipo Mealy
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.
251
01
S1
1
R
T1
F
10
A
=1
252
=0
T0
T1
D1
D0
S1
L
O
R
F
=
=
=
=
=
=
=
=
Q1 Q0
Q1 Q0
T0
T1
T0
T1
T1
CT0
253
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
254
x
y
X
Procesador de Datos
PL
PL
SHR
SHR
n1 ... 1 0
n1 ... 1 0
x y
E Sumador
R Serial 1b
co s
ESS
RSS
n
PL
CD
F
RF
SLR
Contador
Comparador
Fin
DR
n1 ... 1 0
Estado T0
=1
S (Ini
io
y RG
vaya al estado T1
} de lo
ontrario {
vaya al estado T0
}
Estado T1
= 0) enton es {
=0
=0
255
}
} de lo
ontrario {
vaya al estado T0
}
Estado T2
=1
Estado T3
=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)
}
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
257
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
T0
T1
T2
T3
T4
=
=
=
=
=
000
001
011
010
111
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
258
D2
D1
D0
=
=
=
T1 (Conta) + T3 (Conta) + T4
T1 + T2 + T3
T0 I + T1 + T3
y
X
PL
PL
SHR
SHR
n1 ... 1 0
n1 ... 1 0
x y
E Sumador
R Serial 1b
co s
ESS
RSS
F
RF
SLR
Procesador de Datos
Contador
Comparador
Fin
DR
n1 ... 1 0
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
259
= A B,
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
=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
=1
Estado T3
=1
vaya al estado T4
Estado T4
=1
=1
Estado T5
=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
T0
T1
T2
T3
T4
T5
T6
=
=
=
=
=
=
=
000
001
010
011
100
101
110
D2
D1
263
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
264
D0
RM (B = 0)T5 + RMT6
RMT0 + RMT2 + RM (F S )T4
D2
D1
D0
F M , obtenemos:
D2
D1
D0
265
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
268
b
c
z
269
11.1. INTRODUCCIN
A3 B3
A2 B2
A1 B1
A0 B0
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
271
Module C_1b(o0 , o1 , i0 , i1 );
input i0 , i1 ;
output o0 , o1 ;
assign o0 i0 i1 ;
assign o1 i0 ^ i1 ;
endmodule
//
//
//
//
//
//
//
//
//
= &
= ~(
(
(
(
(
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).
273
ambiar
entre
diferentes
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.
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
...
<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,
275
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
= &
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
always begin
#2 a a;
end
endmodule
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
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.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
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 =
281
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);
283
$monitor("Tiempo= %d , a= %b ,
b= %b , f= %b", $time, a, b, f);
#10; $nish;
end
always #2
always #4
b
a
=
=
;
;
endmodule
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).
284
i1
wa1o
and1
io
and2
ws
wa2o
wsn
buf1
not1
en
285
end
#16 $nish;
end
endmodule
Este programa fuente es
ompilado, simulado y visualizado (gura 11.10)
on la
siguiente
adena de
omandos
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.
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
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).
289
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.
291
292
El resultado de la simula
in puede apre
iarse en la gura 11.15.
293
294
295
D Q
Clk
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.
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
299
300
0
a/0
1
1
b/0
0
1
c/0
0
0 d/0
1
0,1
e/1
a
b
d
e
=
=
=
=
=
000
001
010
011
111
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
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
303
304
T0
T1
T2
T3
=
=
=
=
00
01
10
11
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
305
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
307
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
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
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.
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