Sie sind auf Seite 1von 136

UNIVERSIDAD AUTNOMA DE CIUDAD JUREZ

APUNTES DE SISTEMAS DIGITALES 1










































Maribel Gmez Franco









APUNTES DE SISTEMAS DIGITALES 1










M. C. MARIBEL GMEZ FRANCO
Profesora-Investigadora








Cd. Jurez, Chih., Mxico
Noviembre 2001


Segunda revisin



























Instituto de Ingeniera y Tecnologa
Departamento de Elctrica y Computacin
Ing. en Sistemas Digitales y Comunicaciones



Apuntes de Sistemas Digitales 1
Cd. Jurez, Chih., Mxico
Universidad Autnoma de Ciudad Jurez, 2001
Pginas: 130
Sistemas Digitales 1 Contenido
Maribel Gmez Franco i
Contenido

Contenido ..........................................................................................................................................i
Introduccin..................................................................................................................................... iii
UNIDAD I. MQUINAS SECUENCIALES..............................................................................................1
1.1 Introduccin..........................................................................................................................1
1.2 Tipos de flip-flops (dispositivos biestables) .......................................................................2
1.2.1 Latch SR (flip-flop SR asncrono).....................................................................................2
1.2.2 Latch SR disparado por compuerta .............................................................................4
1.2.3 Latch D disparado por compuerta...............................................................................5
1.2.4 Flip-flops..............................................................................................................................6
1.3 Anlisis de lgica secuencial.............................................................................................8
1.4 Modelo de una mquina de estados-finitos................................................................14
1.5 Sntesis de lgica secuencial............................................................................................17
1.5.1 Modelo de una FSM.......................................................................................................19
1.5.2 Minimizacin de estados...............................................................................................20
1.5.3 Codificacin de estados..............................................................................................25
1.5.4 Seleccin de elementos de memoria........................................................................27
1.5.5 Optimizacin y temporizado........................................................................................27
1.6 Bibliografa ...........................................................................................................................27
UNIDAD II. DISPOSITIVOS DE ALMACENAMIENTO.........................................................................28
2.1. Registros....................................................................................................................................28
2.1.1. Transferencia en serie.........................................................................................................31
2.1.2. Registro de desplazamiento bidireccional con carga en paralelo .........................32
2.2. Contadores..............................................................................................................................33
2.3. Unidades de memoria...........................................................................................................37
2.3.1. Terminologa de la memoria .............................................................................................38
2.3.2. Memoria de acceso aleatorio (RAM random-access memory)...............................38
2.3.2.1. Arquitectura de la RAM..................................................................................................39
2.3.2.2. RAM Esttica (SRAM).......................................................................................................40
2.3.2.2.1. Temporizacin de la SRAM .........................................................................................41
2.3.2.3. RAM Dinmica (DRAM)...................................................................................................43
2.3.2.3.1. Arquitectura de la DRAM............................................................................................44
2.3.2.3.2. Multiplexaje de direcciones........................................................................................45
2.3.2.3.3. Temporizacin de una DRAM.....................................................................................47
2.3.2.3.4. Ciclos del modo pgina..............................................................................................49
2.3.2.3.5. Refresco del contenido de la DRAM ........................................................................49
2.3.3. ROM (Memoria de slo lectura).......................................................................................51
2.3.3.1. PROM (Programmable Read Only Memory)..............................................................52
2.3.3.2. EPROM (Erasable Programmable Read Only Memory) ...........................................54
2.3.3.3. EEPROM (Ellectricaly Erasable Programmable Read Only Memory).....................56
2.3.3.4. Memorias Instantneas (Flash memory)......................................................................58
2.3.3.5. Aplicaciones de la ROM.................................................................................................61
2.3.4. Expansin de memorias.....................................................................................................63
2.3.4.1. Expansin del tamao de la palabra ..........................................................................63
2.3.4.2. Expansin de la capacidad de una palabra ............................................................64
2.4. Bibliografa ...............................................................................................................................65
UNIDAD III. LGICA DE TRANSFERENCIA ENTRE REGISTROS...................................................66
3.1 Introduccin........................................................................................................................66
3.2 Transferencia entre registros.............................................................................................67
3.2.1 Bus de transferencia.......................................................................................................69
3.2.2 Transferencia de memoria............................................................................................70
Sistemas Digitales 1 Contenido
Maribel Gmez Franco ii
3.3 Microoperaciones aritmticas, lgicas y desplazamiento........................................72
3.3.1 Microoperaciones aritmticas.....................................................................................73
3.3.2 Microoperaciones lgicas............................................................................................74
3.3.3 Microoperaciones de desplazamiento......................................................................76
3.4 Proposiciones condicionales de control........................................................................77
3.5 Datos binarios del punto fijo.............................................................................................77
3.5.1 Nmeros binarios con signo..........................................................................................78
3.5.2 Suma aritmtica..............................................................................................................78
3.5.3 Sustraccin aritmtica...................................................................................................80
3.6 Sobrecapacidad................................................................................................................80
3.7 Desplazamientos aritmticos...........................................................................................81
3.8 Datos decimales.................................................................................................................83
3.9 Datos del punto-flotante...................................................................................................84
3.10 Datos no numricos.......................................................................................................86
3.11 Cdigos de instruccin..................................................................................................88
3.11.1 Formatos del cdigo de instruccin...........................................................................89
3.12 Relacin entre una operacin y una microoperacin...........................................90
3.12.1 Macrooperaciones versus microoperaciones..........................................................90
3.13 Diseo de una computadora sencilla........................................................................91
3.13.1 Ciclo de envo de instrucciones..................................................................................93
3.13.2 Ejecucin de las instrucciones.....................................................................................94
3.13.3 Diseo del computador................................................................................................95
3.14 Bibliografa........................................................................................................................98
UNIDAD IV. DISEO LGICO DE PROCESADORES......................................................................99
4.1 Organizacin del Procesador..........................................................................................99
4.1.1 Organizacin del bus.....................................................................................................99
4.1.2 Memoria scratchpad o memoria de apuntes........................................................101
4.1.3 Registro acumulador....................................................................................................104
4.2 Unidad Aritmtica y Lgica............................................................................................105
4.3 Diseo de un circuito aritmtico ...................................................................................106
4.3.1 Efecto del acarreo de salida .....................................................................................108
4.3.2 Diseo de otros circuitos aritmticos........................................................................109
4.4 Diseo del circuito lgico ...............................................................................................111
4.5 Diseo de una ALU...........................................................................................................113
4.6 Registro de condicin......................................................................................................115
4.7 Diseo de un registro de desplazamiento...................................................................117
4.8 Unidad Procesadora........................................................................................................118
4.9 Diseo del acumulador...................................................................................................122
4.9.1 Procedimiento de diseo............................................................................................123
4.9.2 Una etapa del acumulador.......................................................................................127
4.9.3 Acumulador completo................................................................................................129
4.10 Bibliografa......................................................................................................................130
Sistemas Digitales 1 Introduccin
Maribel Gmez Franco iii
Introduccin

Uno de los ejemplos ms comunes de un sistema digital es el computador digital de
propsito general. En estos apuntes se presentan los conocimientos bsicos utilizados en
el anlisis y diseo de sistemas digitales para el desarrollo de un computador simple.

En la primera unidad se estudian los procedimientos de anlisis y diseo de Mquinas
Secuenciales, partiendo de los conocimientos bsicos de flip-flops. En el anlisis se parte
de un diseo o circuito especfico, en algunas ocasiones desconocido, a partir del cual
se determina la funcin que realiza. Por el contrario, en el diseo de Mquinas
Secuenciales se parte de un enunciado o una descripcin de lo que se quiere disear.
Estos circuitos secuenciales estn constituidos principalmente por compuertas lgicas y
flip-flops. Algunas de las herramientas necesarias para el anlisis y diseo de los circuitos
secuenciales son los diagramas de estados, tablas de estado, ecuaciones de estado y
ecuaciones de excitacin.

En la segunda unidad se presentan dispositivos de almacenamiento como son registros,
contadores y memorias. Se explica el funcionamiento de las memorias de acceso
aleatorio (RAM) estticas y dinmica, sobre la base de su arquitectura y diagramas de
tiempos. Otro ejemplo es el de memorias de slo lectura o ROM, a diferencia de las
RAM que son voltiles, las ROMs almacenan la informacin por ms tiempo
dependiendo de la memoria y las especificaciones del fabricante. Las ROMs que se
presentan en esta seccin son: PROM, EPROM, EEPROM y Memoria Instantnea. Una
memoria se selecciona de acuerdo a la aplicacin del sistema digital, si es necesario
almacenar datos lo ms comn es utilizar una RAM. Una ROM, PROM o EPROM se
emplea para almacenar programa que define la operacin del sistema digital. Las
EEPROMs o Memorias Instantneas pueden almacenar el programa y los datos.

En la tercer unidad se estudia el mtodo de transferencia entre registros para la
descripcin de un sistema digital, el cual no se puede definir por una expresin
booleana. En este mtodo se utiliza una notacin simblica para definir las secuencias
de operacin del sistema digital. Implcitamente, en cada microoperacin se especifica
el tipo de componente que se debe utilizar. En cada pulso de reloj se ejecutan una o
varias microoperaciones. Esta unidad se concluye con un ejemplo representativo de la
aplicacin de este mtodo, el diseo del computador simple. Los componentes
utilizados en el diseo de un sistema digital son tipo MSI, esto es, decodificadores,
multiplexores, registros, memorias, latches, etc.

En la ltima unidad se estudia la unidad procesadora de los computadores digitales. Se
analizan diferentes formas de organizacin de buses y memorias. La unidad aritmtica y
lgica se disea partiendo del circuito aritmtico y modificndolo para obtener la
seccin lgica. Otros componentes que constituyen la unidad procesadora con el
registro de condicin y desplazamiento. Al final de la unidad se disea el acumulador,
basndose en el mtodo de diseo de un circuito secuencial de la primera unidad.
Sistemas Digitales 1 Mquinas Secuenciales
Maribel Gmez Franco 1
UNIDAD I. MQUINAS SECUENCIALES

1.1 Introduccin

En un circuito lgico secuencial una salida depende no slo de los valores presentes de
las entradas, sino tambin de los valores anteriores de las entradas y salidas
1
. La
dependencia de valores de entrada anteriores requiere la presencia de elementos de
memoria en circuitos secuenciales
2
. En la figura 1.1 se muestra el modelo general de un
circuito lgico secuencial (mquina de estados).








Figura 1.1 Circuito lgico secuencial

Los circuitos secuenciales pueden existir en uno de un nmero definido de estados y
pueden cambiar de un estado a otro cuando se presentan nuevos valores en la
entrada del circuito
1
. En general, cada estado de un circuito secuencial se define por el
valor binario almacenado en su flip-flop. El trmino secuencial viene de su dependencia
de una secuencia de valores de entrada en lugar de valores de entrada normales. La
secuencia de los valores de entrada, o alguna derivada de ellos, se almacena en
memoria. Puesto que las memorias siempre son finitas, el tamao de la secuencia debe
ser siempre finita, esto significa que la lgica secuencial slo contiene un nmero de
estados finitos
2
.

Existen dos clases de circuitos secuenciales que pueden ser sncronos o asncronos. Un
circuito secuencial sncrono cambia sus estados y valores de salida a intervalos fijos de
tiempo, los cuales son especificados por el flanco de subida o de bajada de una seal
de reloj de corrida libre. Un circuito secuencial asncrono cambia su estado y valor de
salida despus de que ocurre un cambio en la entrada y que no depende de una seal
de reloj.








Figura 1.2 Seal de reloj

En la figura 1.2 se muestra el diagrama de tiempos y la nomenclatura tpica para una
seal de reloj. En este diagrama se puede observar que el periodo de reloj es el tiempo
entre transiciones sucesivas en la misma direccin. La frecuencia del reloj es igual al
recproco del periodo de reloj. El periodo se mide en unidad de tiempo (s) y la
frecuencia en ciclos por segundo (Hz). El ancho del pulso es igual al tiempo en que la
seal de reloj permanece en uno. La relacin entre el ancho y el periodo de la seal de
reloj es igual al ciclo de trabajo. Una seal de reloj es activa en alto cuando el cambio de
Lgica
combinacional
Elementos de
memoria
Entrada (s)
Salida (s)
Periodo de reloj
Ancho de reloj
Flanco de subida
Flanco de bajada
Sistemas Digitales 1 Mquinas Secuenciales
Maribel Gmez Franco 2
estado ocurre en el flanco de subida o durante el ancho de pulso. De otra manera, se
dice que la seal de reloj es activa en bajo.

1.2 Tipos de flip-flops (dispositivos biestables)

Los flip-flops pueden ser sncronos o asncronos (llamados latches). Estos dispositivos
poseen dos estados estables: SET (activar o establecer) y RESET (desactivar o
restablecer), en los cuales se pueden mantener por tiempo indefinido. La diferencia
bsica entre ellos es la manera en que cambian de un estado a otro. El flip-flop
depende de una seal de reloj, el latch depende de una seal de control.

El circuito lgico secuencial bsico es el flip-flop, el cual se utiliza como dispositivo lgico
de almacenamiento en circuitos secuenciales ms complejos. Los flip-flops tienen una o
dos entradas dependiendo del tipo de flip-flop, y una o dos salidas, Q y Q. Si el flip-flop
opera correctamente, la salida Q es igual al valor lgico inverso de Q, esto es, Q=0 si
Q=1. La salida permanece en un estado 0 1 hasta que se aplica un nuevo valor de
entrada. Entonces la salida puede cambiar a 1 si originalmente estaba en 0 o regresar a
0 si originalmente estaba a 1 o permanecer en su estado original
1
.

1.2.1 Latch SR (flip-flop SR asncrono)

El latch SR con entradas activas en nivel alto se puede configurar con dos compuertas
NOR acopladas de forma cruzada, como se ilustra en la figura 1.3(a). Adems se puede
observar que el Latch SR tiene dos seales de entrada S (set) y R (reset), as como dos
salidas Q y Q.

S R Q Qn Qn
0 0 0 0 1
0 0 1 1 0
0 1 X 0 1
1 0 X 1 0
1
1 X Indeterminado




















Figura 1.3 Latch SR (implantacin NOR)
2

a) Diagrama lgico
b) Tabla de verdad
No definido
No definido
t0 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10
S
R
Q
Q
2,8 1,4
c) Diagrama de tiempos
S
R
Q
Q
Sistemas Digitales 1 Mquinas Secuenciales
Maribel Gmez Franco 3
La operacin de este dispositivo se puede describir por la tabla de verdad de la figura
1.3(b). La entrada S se utiliza para hacer que la salida Q se ponga en 1 (modo
ESTABLECER) mientras la entrada R se utiliza para hacer que la salida Q se ponga en 0
(modo RESTABLECER). Cuando la seales de entrada S y R son iguales a 0, las salidas
permanecen en el mismo estado. Si las seales de entrada S=R=1, ambas salidas deben
ser igual a 0, sin embargo, esta es una condicin no vlida que debe evitarse. La salida
Qn determina el estado siguiente y la salida Q el estado presente.

Un problema inherente en el Latch SR es el hecho de que si ambas entradas se ponen al
mismo valor al mismo tiempo, no se puede predecir la salida del latch. En el caso de
que ambas compuertas tengan exactamente el mismo retardo, ambas compuertas se
pondrn en 1 al mismo tiempo y despus 0 al mismo tiempo, y as sucesivamente,
oscilando as indefinidamente, como se puede observar en la figura 1.3(c). En esta
figura, se considera un retardo de 1,4 s por cada compuerta. Este comportamiento
indeterminado se puede evitar asegurndose de que las entradas nunca van a ser
iguales a 1 al mismo tiempo.

El latch SR con entradas activas en nivel bajo se indica en la figura 1.4(a), el cual utiliza
compuertas NAND. En este caso, las entradas S y R normalmente son iguales a 1.
Poniendo S o R a 0 el latch se activa o desactiva, lo opuesto a la implantacin con
compuertas NOR. La operacin de este latch se indica en las figuras 1.4(b) y (c).


S R Q Qn Qn
0 0 X Indeterminado
0 1 X 1 0
1 0 X 0 1
1
1 0 0 1
1 1 1 1 0



















c) Diagrama de tiempos

Figura 1.4 Latch SR (implantacin NAND)
2

S
Q
Q
R
Indefinido
Indefinido
t0 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10
S
R
Q
Q
1,4
2,8
a) Diagrama lgico
b) Tabla de verdad

Sistemas Digitales 1 Mquinas Secuenciales
Maribel Gmez Franco 4
1.2.2 Latch SR disparado por compuerta

El latch SR disparado por compuerta es similar al latch SR, con la excepcin de que
tiene una tercera entrada de control C, como se muestra en la figura 1.5, la cual habilita
o deshabilita la operacin del latch SR. Esto significa que cuando C=1, el latch
disparado por compuerta funciona como un latch SR. Cuando C=0, el latch se
encuentra deshabilitado independiente de los valores de las entradas S y R,
permaneciendo la salida en el estado anterior. En la figura 1.5(d), se puede observar
que la salida del latch considera los cambios de las seales de entrada mientras C=1.






















Figura 1.5 Latch SR disparado por compuerta
2


Cuando se trabaja con el latch SR disparado por compuerta es necesario asegurarse
que las seales de entrada no cambian durante la ventana alrededor del flanco de
subida de la entrada de control. Esta ventana inicia en el tiempo de establecimiento ts
(set up) antes del flanco de bajada de C y termina con el tiempo de sostenimiento th
(hold) despus del flanco de bajada de C. En la figura 1.5(d), por ejemplo, la siguiente
condicin debe mantenerse para el tercer pulso de control:

h
s
t t t
t t t


12 13
11 12

C S R Q Qn
0 X X 0 0
0 X X 1 1
1 0 0 0 0
1 0 0 1 1
1 0 1 X 0
1 1 0 X 1
1 1 1 X NA
S Q

C

R Q
a) Smbolo lgico b) Diagrama lgico c) Tabla de verdad
t0 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 t11 t12 t13
C
S
R
Q 2,0 4,0
d) Diagrama de tiempos
R



C



S
Q




Q
Sistemas Digitales 1 Mquinas Secuenciales
Maribel Gmez Franco 5
En la mayora de los diseos, la entrada de control se conecta a la seal del reloj del
sistema. El latch SR disparado por compuerta tambin es llamado latch SR disparado
por reloj
2
.

1.2.3 Latch D disparado por compuerta

El latch D disparado por compuerta elimina el problema de poner las entradas S=R=1 al
mismo tiempo. El latch D disparado por compuerta slo tiene una entrada y se
construye a partir de un latch SR disparado por compuerta, conectado la entrada D a
la entrada S y D a la entrada R del latch SR, como se indica en la figura 1.6(b). Adems,
tiene la entrada de control C que habilita o deshabilita el latch D. Cuando la entrada
C=1, la salida Q asume el mismo valor que la entrada D despus de un pequeo retardo
de tiempo. Si la entrada C=0, entonces la salida Q mantiene el mismo valor anterior.

La operacin del latch D disparado por compuerta se demuestra en el diagrama de
tiempos de la figura 1.6(d).
6

C D Q Qn
0 X 0 0
0 X 1 1
1 0 X 0
1 1 X 1



















Figura 1.6 Latch D disparado por compuerta
2


Cuando C=1 en t1 la salida Q se pone en modo de establecimiento despus de un
retardo de 4,0 ns y permanece en ese estado hasta t4+2,0 ns donde se habilita de nuevo
la entrada de control y la salida Q cambia a modo de restablecimiento pues la entrada
D=0. Si la entrada D cambia durante el ancho del reloj, Q seguir estos cambios
mientras el cambio ocurra antes de ts y despus de th. La entrada D debe permanecer
estable antes y despus del intervalo de tiempo entre ts y th. La salida Q se retarda 4,0 ns
D Q

4,0/3,0

C Q
a) Smbolo lgico b) Diagrama lgico c) Tabla de verdad
4,0
2,0 3,0
C
D
Q
t0 t1 t2 t3 t4 t5 t6 t7 t8 t9
ts th ts th ts th
d) Diagrama de tiempos
D
C
Q
Q
Sistemas Digitales 1 Mquinas Secuenciales
Maribel Gmez Franco 6
en la transicin bajo-a-alto y 3,0 ns en la transicin de alto-a-bajo, la cual se indica por
4,0/3,0 en el smbolo lgico
2
.

1.2.4 Flip-flops

Como se explic anteriormente, los latches activados por compuerta son elementos de
memoria sencillos que se habilitan mientras la seal de control es igual a 1, por esta
razn, a menudo se les llama latches sensibles al nivel. Estos dispositivos son transparentes
en el sentido de que un cambio en la entrada se propagar a la salida con un pequeo
retardo. Estos latches se comportan como elementos de memoria nicamente despus
del flanco de bajada de la seal de control, cuando mantienen el estado puesto por el
ltimo valor de entrada presentado antes del flanco de bajada de la seal de control.

Todos los flip-flops se pueden dividir en cuatro tipos bsicos: SR, J K, D y T. Ellos difieren en
el nmero de entradas y en su respuesta a seales de entrada de valores diferentes. En
la tabla 1.1 se definen los cuatro tipos de flip-flops.

Tabla 1.1 Tipos de flip-flops [1]

Nombre Smbolo
Tabla
caracterstica
Ecuacin
caracterstica
Tabla de excitacin



S R Qn Q Qn S R
0 0 Q 0 0 0 X
0 1 0 0 1 1 0
1 0 1 1 0 0 1
SR

1 1 NA
Qn=S+RQ

SR=0
1 1 X 0

J K Qn Q Qn J K
0 0 Q 0 0 0 X
0 1 0 0 1 1 X
1 0 1 1 0 X 1
JK
1 1 Q
Qn=J Q+KQ
1 1 X 0

Q Qn D
D Qn 0 0 0
0 0 0 1 1
1 1 1 0 0
D

Qn=D
1 1 1

Q Qn T
T Qn 0 0 0
0 Q 0 1 1
1 Q 1 0 1
T

Qn=TQ+TQ
1 1 0


El smbolo grfico especifica el nmero y tipo de entradas y salidas. Todos los flip-flops
tienen las seales de salida Q y Q, adems de una entrada de seal de reloj. El
pequeo tringulo en la entrada de reloj indica que el flip-flop se dispara por el flanco
S Q
clk
R Q
J Q
clk
K Q
D Q
clk
Q
T Q
clk
Q
Sistemas Digitales 1 Mquinas Secuenciales
Maribel Gmez Franco 7
de subida de la seal de reloj. Cuando el tringulo tiene un crculo enfrente, entonces el
flip-flop se dispara por el flanco de bajada de la seal de reloj.

Similar al latch SR, el flip-flop SR tiene dos entradas S (set-establecimiento) y R (reset-
restablecimiento), cuando S=1 y R=0 el flip-flop se pone en modo de establecimiento
Q=1 y cuando S=0 y R=1 se pone en modo de restablecimiento Q=0. El flip-flop JK,
tambin tiene dos entradas y pone la salida en modo establecer o restablecer. Adems,
cuando J =K=1 la salida cambia de estado. Como se mencion anteriormente, el flip-
flop D tiene una entrada D (data-dato), la cual pone la salida Q=1 cuando D=1 y la
restablece Q=0 cuando D=0. El flip-flop Ttiene una entrada T(toggle-cambio) la cual
fuerza al flip-flop a cambiar de estado cuando T=1.

En la segunda columna de la tabla 1.1 se indica la tabla caracterstica, que es una
versin ms corta de la tabla de verdad que da para cada conjunto de valores de
entrada y el estado de los flip-flops antes del flanco de subida el estado
correspondiente del flip-flop despus del flanco de subida de la seal de reloj. Las
salidas Q y Qn determinan el estado del flip-flop antes y despus del flanco de subida
del reloj, respectivamente. La tabla caracterstica se utiliza durante el anlisis de circuitos
secuenciales cuando se conoce el valor de las entradas de los flip-flops y se quieren
encontrar los valores de salida Q del flip-flop despus del flanco de subida de la seal
de reloj. Como en cualquier tabla de verdad, se pueden utilizar los mapas de Karnaugh
para derivar una ecuacin caracterstica para cada flip-flop, la cual se muestra en la
tercera columna de la tabla.

En la cuarta columna se muestra la tabla de excitacin la cual se utiliza durante la
sntesis de circuitos secuenciales. La tabla de excitacin se deriva de la tabla
caracterstica transportando las columnas de entrada y salida. Esta proporciona los
valores de entrada del flip-flop necesarios para cambiar el estado presente del flip-flop
al estado siguiente requerido despus del flanco de subida de la seal de reloj.

Los flip-flops tambin se pueden describir por medio de diagramas de estado, cada
estado se puede representar por un crculo y la transicin de un estado a otro por medio
de una flecha. En la tabla 1.2, se describen por este mtodo los cuatro flip-flops. Cada
flecha se etiqueta con los valores de sus seales de entrada, que ocasionarn una
transicin de un estado a otro. El mismo estado puede ser fuente y destino de una
transicin.

Tabla 1.2 Diagramas de estado para diferentes flip-flops
2
















S=1, R=0
S=R=0
S=0, R=1
S=R=0

Q=0

Q=1
D=1
D=1
D=0
D=0

Q=0

Q=1
J =1, K=0
J =K=1
J =K=0
J =0, K=1
J =K=1
J =K=0

Q=0

Q=1
T=1
T=0
T=1
T=0

Q=0

Q=1
Sistemas Digitales 1 Mquinas Secuenciales
Maribel Gmez Franco 8
Como se puede observar en la tabla 1.2, todos los flip-flops tienen el mismo nmero de
estados y transiciones: cada flip-flop est en estado de activacin cuando Q=1 y en
estado de restablecimiento cuando Q=0. Adems, cada flip-flop se puede mover de un
estado a otro, o volver a entrar al mismo estado. La nica diferencia entre los cuatro
tipos consiste en los valores de las seales de entrada que provocan la transicin.

Cada flip-flop normalmente est disponible con o sin entradas asncronas que se utilizan
para poner la salida Q=1 (preset) y borrar (clear) los flip-flops independientemente de
las otras seales de entrada. Estas entradas se utilizan para poner al flip-flop en el estado
inicial para su operacin normal, se les llama asncronas porque no dependen de la
seal de reloj y tienen prioridad sobre toda operacin sncrona. En la figura 1.7 se
muestra el diagrama lgico de un latch tipo D con entradas asncronas.
















Figura 1.7 Latch D con entradas asncronas
2


Como se puede observar en la figura 1.7(a), cuando la entrada PRE=1, la salida Q=1 y
Q=0. Si la entrada CLR=1, entonces la salida Q=0. Mientras una de las entradas PRE o
CLR sean igual a 1, la salida del flip-flop o latch depender de los estados impuestos por
estas entradas asncronas.

1.3 Anlisis de lgica secuencial

En algunas ocasiones, los diseadores necesitan modificar el diseo de un producto
para agregarle nuevas caractersticas, o pueden usar un nuevo componente y es
necesario verificar que los reemplazos no modifican la funcionalidad del producto. En
cualquier caso, el diseador necesitar hacer un anlisis para derivar la funcin del
diagrama lgico secuencial. En este proceso, se genera una o ms descripciones
funcionales, utilizando diagramas de estados, tablas de estado y salida, y ecuaciones
Booleanas de entrada y salida. Una vez que se tiene la descripcin funcional, los
diseadores pueden desarrollar diagramas de tiempos que permiten verificar sus
predicciones contra los resultados simulados. El procedimiento de anlisis completo se
demuestra en los siguientes ejemplos.

Ejemplo 1.1. Obtener la tabla de estados y el diagrama de estados para el circuito
secuencial de la figura 1.8.

Solucin: El primer paso es obtener las expresiones Booleanas para las entradas de
cada flip-flop del diagrama, en funcin de la entrada externa C y las salidas Q1 y Q0. La
PRE
D Q

C Q
CLR
a) Latch D
b) Smbolo lgico
CLR
PRE
D
C
Q
Q
Sistemas Digitales 1 Mquinas Secuenciales
Maribel Gmez Franco 9
entrada D0 est conectada a la salida de una compuerta XNOR, en la cual una
entrada est conectada a la entrada de control C y la otra a la salida Q0, por lo tanto:

1 0 1 0 1 1
0 0 0
Q Q C Q CQ Q C D
Q C Q C D
+ + =
+ =


Estas expresiones Booleanas son las ecuaciones de excitacin ya que representan las
entradas a los flip-flops, las cuales determinarn el estado del circuito secuencial en el
siguiente ciclo de reloj.

El siguiente paso es derivar las ecuaciones del estado siguiente convirtiendo las
ecuaciones de excitacin en las ecuaciones caractersticas del flip-flop. En el caso del
flip-flop D Qn=D, por lo tanto, las ecuaciones caractersticas son iguales a las ecuaciones
de excitacin:
( )
( )
1 0 1 0 1 1 1
0 0 0 0
Q Q C Q CQ Q C D n Q
Q C Q C D n Q
+ + = =
+ = =


Ahora, se convierten estas ecuaciones de estado siguiente a su forma tabular llamada
tabla de estado siguiente, en la cual cada rengln corresponde a un estado del circuito
secuencial y cada columna representa un conjunto de valores de entrada. El nmero
de estados posibles es igual a 2
n
, donde n es el nmero de flip-flops. En este ejemplo se
tienen dos flip-flops, por lo tanto, el nmero de estados es igual a 2
2
=4 que son: 00, 01,
10, 11. Estos valores se muestran como estados presentes en la figura 1.8(d). La parte de
estado siguiente tiene dos columnas correspondientes a los valores de la entrada de
control C=0 y C=1 que definen el valor del circuito secuencial en el siguiente ciclo de
reloj. Cada valor del estado siguiente se obtiene de las ecuaciones del estado siguiente.
Por ejemplo, para el estado 00:

para C=0
( )
( ) 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 1 0 0 1 0 0 0 0
1 0 1 0 1 1
0 0 0
= + + = + + = + + =
= + = + = + = + =
Q Q C Q CQ Q C n Q
Q C Q C n Q


para C=1
( )
( ) 0 0 0 0 0 0 1 0 0 1 0 1
1 1 0 1 1 0 0 0 1 0 1
1 0 1 0 1 1
0 0 0
= + + = + + = + + =
= + = + = + = + =
Q Q C Q CQ Q C n Q
Q C Q C n Q


por lo tanto,
Q1 Q0 Q1(n)Q0(n)
C=0 C=1
0 0 0 0 0 1

El comportamiento de un circuito secuencial tambin se puede representar por un
diagrama de estados. En la figura 1.8(e) se tienen cuatro estados, como se puede
observar en las transiciones, mientras C=1 el circuito secuencial pasa al subsecuente
estado siguiendo la secuencia: 0,1,2,3,0,1 Por otra parte, si C=0 el circuito permanece
en el mismo estado hasta que C=1. La secuencia anterior describe el comportamiento
de un contador mdulo-4, por lo tanto, se puede concluir que el circuito de la figura
1.8(a) es un contador mdulo-4 con una entrada de control, que habilita la cuenta
cuando C=1 y la deshabilita cuando C=0. En la figura 1.8(f) se muestra el diagrama de
tiempos que permite entender el comportamiento del contador.
Sistemas Digitales 1 Mquinas Secuenciales
Maribel Gmez Franco 10




















Estado presente Estado siguiente
Q1 Q0 Q1(n)Q0(n)
C=0 C=1
0 0 0 0 0 1
0 1 0 1 1 0
1 0 1 0 1 1
1 1 1 1 0 0


















Figura 1.8 Anlisis de un circuito secuencial
2



Ejemplo 1.2. Derivar la tabla de estados y el diagrama de estados para el circuito
secuencial de la figura 1.9.


1 0 1 0 1 1
0 0 0 0
Q Q C Q CQ Q C D
Q C Q C Q C D
+ + =
+ = =

b) Ecuaciones de excitacin
( )
( )
1 0 1 0 1 1 1
0 0 0 0
Q Q C Q CQ Q C D n Q
Q C Q C D n Q
+ + = =
+ = =

c) Ecuaciones de estado siguiente
d) Tabla de estado siguiente
Q1Q0
00
C=1
C=0
Q1Q0
01
Q1Q0
11
Q1Q0
10
C=1
C=1
C=1
C=0
C=0
C=0
e) Diagrama de estados
a) Diagrama lgico
clk
C
Q1
Q0
t0 t1 t2 t3 t4 t5
f) Diagrama de tiempos
C
clk
FF0
FF1
D
CP QN
Q
D
CP QN
Q
Sistemas Digitales 1 Mquinas Secuenciales
Maribel Gmez Franco 11


















Estado
presente
Estado siguiente Salida
Q1 Q0 Q1(n) Q0(n) Y
C=0 C=1
0 0 0 0 0 1 0
0 1 0 1 1 0 0
1 0 1 0 1 1 0
1 1 1 1 0 0 1






















Figura 1.9 Anlisis de un contador mdulo-4 basado en el estado [1]

1 0 1 0 1 1
0 0 0 0
Q Q C Q CQ Q C D
Q C Q C Q C D
+ + =
+ = =
b) Ecuaciones de excitacin
( )
( )
0 1
1 0 1 0 1 1 1
0 0 0 0
Q Q Y
Q Q C Q CQ Q C D n Q
Q C Q C D n Q
=
+ + = =
+ = =

c) Ecuaciones de estado siguiente y salida
a) Circuito lgico
Q1Q0
00
Y=0
C=1
C=0
C=1
C=1
C=1
C=0
C=0
C=0
Q1Q0
01
Y=0
Q1Q0
11
Y=1
Q1Q0
10
Y=0
d) Tabla de estado siguiente y salida e) Diagrama de estados
clk
C
Q1
Q0
t0 t1 t2 t3 t4 t5
f) Diagrama de tiempos
Y
D
CP QN
Q
D
CP QN
Q
Y
D
clk
Sistemas Digitales 1 Mquinas Secuenciales
Maribel Gmez Franco 12
Solucin: La lgica combinacional de entrada es la misma del ejemplo 1.1, por lo tanto,
las ecuaciones de excitacin y de estado siguiente son iguales a las del ejemplo
anterior. En la figura 1.9(b) y (c) se indican estas ecuaciones agregando la ecuacin de
salida,

Y=Q1Q0

Esta ecuacin indica que la salida Y va a ser igual a 1 mientras Q1 y Q0 sean iguales a 1,
y as se mantendr mientras el contador permanezca en ese estado.

La salida Y slo depende del estado presente del circuito secuencial, por lo tanto se
puede agregar una columna a la tabla de estados para convertirla en una tabla de
estado siguiente/salida. El valor de Y se obtiene de la ecuacin anterior como se
muestra en la figura 1.9(d). En la figura 1.9(e), se puede observar que se agreg la seal
de salida a cada estado en el diagrama de estados, as como al diagrama de tiempos
en la figura 1.9(f).

El circuito secuencial analizado en el ejemplo 1.2 se conoce como circuito secuencial
basado en el estado o tipo Moore, en el cual el valor de la seal de salida slo depende
del estado presente del circuito secuencial sin considerar los valores de la seal de
entrada.

Ejemplo 1.3. Derivar la tabla de estados/ salida y el diagrama de estados para el circuito
secuencial de la figura 1.10.

Solucin: Como se puede observar en la figura 1.10(a) el circuito difiere del ejemplo 1.1
slo en la expresin de salida, la cual ahora depende del valor de la seal de entrada.
Para este circuito la salida Y ser igual a 1 cuando el contador est en el estado
Q1Q0=11 y la entrada de control C=1, por lo tanto la ecuacin de salida es,

Y=CQ1Q0



















Figura 1.10 Anlisis de un contador mdulo-4 basado en la entrada
2


1 0 1 0 1 1
0 0 0 0
Q Q C Q CQ Q C D
Q C Q C Q C D
+ + =
+ = =
b) Ecuaciones de excitacin
( )
( )
0 1
1 0 1 0 1 1 1
0 0 0 0
Q Q Y
Q Q C Q CQ Q C D n Q
Q C Q C D n Q
=
+ + = =
+ = =

c) Ecuaciones de estado siguiente y salida
a) Circuito lgico
C
clk
Y
D
CP QN
Q
D
CP QN
Q
Sistemas Digitales 1 Mquinas Secuenciales
Maribel Gmez Franco 13


Estado
presente
Estado siguiente/salida
Q1 Q0 Q1(n)Q0(n)/Y
C=0 C=1
0 0 0 0 /0 0 1 /0
0 1 0 1 /0 1 0 /0
1 0 1 0 /0 1 1 /0
1 1 1 1 /0 0 0 /1




















Figura 1.10 Anlisis de un contador mdulo-4 basado en la entrada [2]

Las ecuaciones de excitacin y de estado siguiente son las mismas del ejemplo anterior,
excepto por la ecuacin de salida, como se puede ver en las figuras 1.10(b) y (c). La
tabla de estado/salida modificada se muestra en la figura 1.10(d). En el diagrama de
estados de este circuito basado en la entrada, figura 1.10(e), el valor de salida se pone
en de cada transicin modificando la etiqueta en la forma X/Y. Esta etiqueta se puede
interpretar como sigue: si el valor de la seal de entrada en el siguiente flanco positivo
de la seal de reloj es igual a X, el circuito cambiar al estado apuntado por el arco en
el siguiente ciclo de reloj, adems, su salida durante el ciclo de reloj presente ser igual
a Y mientras el valor de la seal de entrada es igual a X. En otras palabras, si se presenta
la entrada X, entonces la salida ser igual a Y. Este comportamiento se puede entender
mejor analizando el diagrama de tiempos de la figura 1.10(f).

El circuito secuencial analizado en el ejemplo 1.3 se conoce como circuito secuencial
basado en la entrada o tipo Mealy, en el cual el valor de la seal de salida depende del
estado presente del circuito secuencial y de los valores de la seal de entrada.

En forma de resumen, en la figura 1.11 se indica el procedimiento que se sigui en los
ejemplos anteriores para analizar circuitos lgicos secuenciales. Como se puede
Q1Q0
00
C=1/Y=0
C=0/Y=0
Q1Q0
01
Q1Q0
11
Q1Q0
10
C=1/Y=0
C=1/Y=0
C=1/Y=1
C=0/Y=0
C=0/Y=0
C=0/Y=0
d) Tabla de estado siguiente y salida e) Diagrama de estados
clk
C
Q1
Q0
t0 t1 t2 t3 t4 t5
f) Diagrama de tiempos
Y
Sistemas Digitales 1 Mquinas Secuenciales
Maribel Gmez Franco 14
observar en la figura, el primer paso es obtener las ecuaciones de excitacin para las
entradas de cada flip-flop a partir del circuito lgico. Despus, se derivan las
ecuaciones del estado siguiente, sustituyendo las ecuaciones de excitacin en las
ecuaciones caractersticas, en el caso de que aplique se obtiene la ecuacin de salida
basndose en el circuito lgico. Una vez obtenidas estas ecuaciones, se genera la tabla
de estado siguiente y salida as como el diagrama de estados. Al llegar a esta etapa, se
desarrolla el diagrama de tiempos utilizando ya sea la tabla o el diagrama de estados.
Por ltimo, se puede simular el circuito lgico secuencial para comprobar el
funcionamiento si se tiene a disposicin el programa adecuado para la simulacin.



























Figura 1.11 Procedimiento de anlisis para circuitos secuenciales.

1.4 Modelo de una mquina de estados-finitos

Es un modelo matemtico que sirve para definir sistemas. La mquina de estados-finitos
(FSM finite-state machine) se puede definir de manera abstracta como:

FSM=<S, I, O, f, h >

donde S representa un conjunto de estados
I un conjunto de entradas
O un conjunto de salidas
f funcin del estado siguiente (transicin)
h funcin de salida


Circuito lgico
Obtener las ecuaciones
de excitacin
Obtener las ecuaciones de
estado siguiente y de salida
Generar las tablas de estado
siguiente y de salida
Generar el diagrama
de estados
Desarrollar el diagrama de
tiempos
Simular
el circuito lgico
Sistemas Digitales 1 Mquinas Secuenciales
Maribel Gmez Franco 15
La funcin de estado siguiente f asigna a cada par de estados y smbolos de entrada
otro smbolo de estado. En otras palabras, el estado siguiente se determina por la
informacin que proporcionan el estado presente y la entrada, se define para todos los
pares de S I S.

El modelo FSM asume que el tiempo se divide en intervalos uniformes y que las
transiciones de un estado a otro ocurren slo al inicio de cada intervalo de tiempo. Por
lo tanto, para los valores de estados y entradas en el intervalo de tiempo presente, la
funcin del estado siguiente f define que la FSM tomar estos valores en el intervalo de
tiempo siguiente. La funcin de salida h determina los valores de salida en el estado
presente.

Existen dos tipos de mquinas de estados finitos. Un tipo es la FMS Moore o basada en el
estado, para la cual h est definida como un mapeo S O, esto es, un smbolo de salida
es asignado a cada estado de la FSM. El otro tipo es una FSM Mealy o basada en la
entrada, donde h se define como el mapeo S I O. En este caso, cada smbolo de
salida en cada estado es definido por un par de estados y smbolos de entrada.

Cada conjunto S, I, y O puede tener un nmero de smbolos. Sin embargo, slo se
trabaja con variables binarias, operadores y elementos de memoria. Por lo tanto, S, I y O
pueden implantarse como un producto vectorial de seales binarias o elementos de
memorias, mientras las funciones f y h se definen por expresiones Booleanas que se
configuran con compuertas lgicas. Cada elemento en S, I, y O est representado por
una cadena de 1s y 0s.

La mquina de estados finitos puede modelar cualquier circuito secuencial con k
seales de entrada A1,, Ak, m flip-flops Q1,Qm, y n seales de salida Y1,Yn, como se
muestra en la figura 1.15. La seal de reloj define los intervalos de tiempo llamados ciclos
de reloj. Para este circuito secuencial, S, I y O son un conjunto de flip-flops o seales
como sigue:

{ }
{ }
{ }
n
k
m
Y , , Y , Y O
A , , A , A I
Q , , Q , Q S
!
!
!
2 1
2 1
2 1
=
=
=









Figura 1.15 Modelo de FSM de un circuito secuencial
2


Considerando el contador mdulo 4 de los ejercicios anteriores se puede modelar como
una FSM basada en el estado (tipo Moore), donde:

{ }
{ }
{ }
1 0
1 0
3 2 1 0
o o O
i i I
s s s s S
,
,
, , ,
=
=
=



Q0, , Qm
Y1


Yn
A1


Ak
reloj
4. O
Sistemas Digitales 1 Mquinas Secuenciales
Maribel Gmez Franco 16
Las funciones f y h estn dadas por la tabla 1.2.

Tabla 1.2 Modelo de una FSM basada en el estado de un contador mdulo-4
2

Estado siguiente (S I S)
Estado
presente
i0 i1
Salida
(S O)
s0 s0 s1 o0
s1 s1 s2 o0
s2 s2 s3 o0
s3 s3 s0 o1

De la misma manera, se puede modelar el contador mod-4 como una FSM basada en
la entrada (Mealy), en la cual S, I, O se definen igual que el ejemplo anterior y f y h estn
dadas por la tabla de la tabla 1.3.

Tabla 1.3 Modelo de una FSM basada en la entrada de un contador mdulo-4
2

Estado siguiente (S I S)/Salida (S I O)
Estado
presente
i0 i1
s0 s0/ o0 s1/ o0
s1 s1/ o0 s2/ o0
s2 s2/ o0 s3/ o0
s3 s3/ o0 s0/ o1

Los estados de los modelos de las FSMs se pueden configurar con flip-flops, mientras que
f y h son implantadas como lgica combinacional. En la figura 1.16 se muestra el
diagrama a bloques para una FSM basada en el estado y la entrada.























D1 Q1

FF1
D2 Q2

FF2
Dm Qm

FFm









f:SIS
Seales de entrada
A1 A2 Ak
Y1
Y2
.
.
.
Yn
Seales
de salida









h:SO
clk
a) basada en el estado
Sistemas Digitales 1 Mquinas Secuenciales
Maribel Gmez Franco 17





































Figura 1.16 Implantacin de FSMs.

1.5 Sntesis de lgica secuencial

En el procedimiento de sntesis se inicia con una descripcin del comportamiento del
circuito secuencial y se genera su implantacin, lo inverso al procedimiento de anlisis
en el cual se inicia con el diagrama y se termina con la descripcin del circuito. En la
figura 1.17 se muestra el diagrama de flujo del procedimiento de sntesis.

El proceso inicia con la definicin del problema en un lenguaje descriptivo,
posiblemente incluyendo un diagrama de tiempos, o utilizando un lenguaje ms formal
para su descripcin tal como el lenguaje VHDL (Very High Speed Integrated Circuit
Hardware Design Languaje).

El primer paso del proceso consiste en desarrollar el diagrama de estados y convertirlo a
las tablas de estados siguientes y salidas. Enseguida, se trata de reducir el nmero de
estados eliminando estados redundantes, y uniendo estados equivalentes, pues con un
menor nmero de estados se requieren menos flip-flops. A continuacin, puesto que
cada estado debe expresarse como n-uplas de valores de los flip-flops, es necesario
asignar n-uplas a los diferentes estados. Este procedimiento llamado codificacin
simplifica la lgica de entrada y salida. Despus de codificar se genera la forma binaria
de las ecuaciones de estados siguientes y salida. La tarea siguiente consiste en elegir los
tipos de flip-flops, considerando que cada tipo de flip-flop requiere de una lgica
D1 Q1

FF1
D2 Q2

FF2
Dm Qm

FFm









f:SIS
Seales de entrada
A1 A2 Ak
Y1
Y2
.
.
.
Yn
Seales de
salida









h:SIO
clk
Seales de estado
b) basada en la entrada
Sistemas Digitales 1 Mquinas Secuenciales
Maribel Gmez Franco 18
diferente para la implantacin de las ecuaciones de excitacin y salida. Una vez
seleccionados los tipos de flip-flops, se obtienen las ecuaciones de excitacin para
cada entrada de flip-flop, en este punto se puede optimizar la configuracin lgica de
las ecuaciones de excitacin y salida y dibujar el circuito lgico que sirve como
referencia para hacer el diagrama de tiempos. Por ltimo, debe simularse el circuito
lgico y verificar si su comportamiento realmente corresponde al esperado.











































Figura 1.17 Procedimiento de sntesis para modelos de FSM
2



Descripcin del diseo o diagrama de tiempos
Obtener las ecuaciones
de excitacin
Optimizar la
implantacin lgica
Generar las tablas de estado
siguiente y de salida
Generar el diagrama
de estados
Minimizar
estados
Obtener el circuito lgico y
diagramas de tiempos
Simular
el circuito lgico
Codificar entradas,
estados, salidas
Seleccionar elementos de
memoria
Verificar funcionalidad y
temporizacin
Sistemas Digitales 1 Mquinas Secuenciales
Maribel Gmez Franco 19

1.5.1 Modelo de una FSM

El diseo de la lgica secuencial parte de la descripcin del problema, la cual
expresada en un lenguaje natural puede ser ambigua o incompleta, ya que slo se
enfoca en la funcin principal sin considerar el comportamiento para diferentes
situaciones. Por esta razn, se parte de un diagrama de tiempos en lugar de un lenguaje
natural. En esta seccin, se describir el procedimiento para generar un diagrama de
estados y/o tablas de estado siguiente y salida.

Ejemplo 1.6. Disear un contador mod-8 ascendente sncrono

Solucin:

a). Generar el diagrama de estados











b). Obtener la tabla de estado siguiente:

Estado presente Estado siguiente
QA QB QC QA(n) QB(n) QC(n)
0 0 0 0 0 0
0 0 1 0 0 1
0 1 0 0 1 0
0 1 1 0 1 1
1 0 0 1 0 0
1 0 1 1 0 1
1 1 0 1 1 0
1 1 1 1 1 1


c). Seleccin de Flip-flop J K, su tabla de excitacin es la siguiente:

Q Qn J K
0 0 0 X
0 1 1 X
1 0 X 1
1 1 X 0


000 001 010 011
100 101 110
111
Sistemas Digitales 1 Mquinas Secuenciales
Maribel Gmez Franco 20

d). Determinar las ecuaciones de excitacin:

QBQC
QA
00 01 11 10
QBQC
QA
00 01 11 10
0 1 0 X X X X
1 X X X X 1 1
J A=QBQC KA=QBQC


QBQC
QA
00 01 11 10
QBQC
QA
00 01 11 10
0 1 X X 0 X X 1
1 1 X X 1 X X 1
J B=QC KB=QC


QBQC
QA
00 01 11 10
QBQC
QA
00 01 11 10
0 1 X X 1 0 X 1 1 X
1 1 X X 1 1 X 1 1 X
J C=1 KC=1

e). Obtener el circuito lgico













1.5.2 Minimizacin de estados

El propsito de la minimizacin de estados es reducir el nmero de estados en un
circuito secuencial, de tal manera que el circuito necesite menos flip-flops, lo que
reduce el costo de su implantacin. Como n flip-flops producen 2
n
estados, una
reduccin en el nmero de estados podra o no resultar en una minimizacin del nmero
de flip-flops. Sin embargo, es importante considerar que al reducir el nmero de flip-flops
se puede incrementar el nmero de compuertas lgicas. El primer mtodo para reducir
estados se demuestra en el siguiente ejemplo.
RST
+V
J
CP
K
R
QN
Q
FFC
J
CP
K
R
QN
Q
FFB
J
CP
K
R
QN
Q
FFA
Sistemas Digitales 1 Mquinas Secuenciales
Maribel Gmez Franco 21

Ejemplo 1.5. Minimizacin de estados utilizando una tabla de estados.

Problema: Minimizar un circuito secuencial cuya especificacin se da en el diagrama de
estados de la figura 1.19. En este ejemplo slo importan las secuencias de
entrada/salida, los estados internos slo se utilizan para suministrar las secuencias
requeridas. Es por ello, que los estados se denotan por smbolos de letras en lugar de sus
valores binarios. La secuencia de entrada es 01010110100 empezando por el estado
inicial a.

Solucin: Cada entrada 0 1 produce una salida de 0 1 y ocasiona que el circuito
vaya al estado siguiente. De este diagrama de estados se obtiene la salida y secuencia
de estado para una secuencia dada como sigue: con el circuito en el estado inicial a,
una entrada 0 produce una salida 0 y el circuito permanece en el estado a. Con el
estado presente a y una entrada de 1, la salida es 0 y el siguiente estado es b. Con el
estado presente b y una entrada de 0, la salida es cero y el siguiente estado es c.
Continuando este proceso, se encontrar que la secuencia completa es como sigue:

Estado a a b c d e f f g f g a
Entrada 0 1 0 1 0 1 1 0 1 0 0
Salida 0 0 0 0 0 1 1 0 1 0 0

En cada columna, se tiene el estado presente, el valor de la entrada y el valor de la
salida. El estado siguiente se escribe encima de la siguiente columna. En este circuito el
principal inters son las secuencias de salida generadas por las secuencias de entrada.























Figura 1.19 Diagrama de estados
3


El primer paso para iniciar con la minimizacin es obtener una tabla de estado
partiendo del diagrama de estados, tabla 1.3.

a
b c
d e
f
g
0/0
0/0
0/0
0/0
0/0
0/0
0/0
1/0
1/0
1/0
1/1
1/1
1/1
1/1
Sistemas Digitales 1 Mquinas Secuenciales
Maribel Gmez Franco 22

Tabla 1.3 Tabla de estados

Estado presente Estado siguiente Salida
x=0 x=1 x=0 x=1
a a b 0 0
b c d 0 0
c a d 0 0
d e f 0 1
e a f 0 1
f g f 0 1
g a f 0 1

En este mtodo se trata de encontrar estados equivalentes de tal forma que se puedan
eliminar. La equivalencia de estados se puede definir sobre la base de los valores de
estado, salidas y estados siguientes. En una FSM se dice que dos estados son
equivalentes, sjsk, si cumplen las dos condiciones siguientes:

1. Ambos estados sj y sk producen la misma salida para cada entrada i: esto es, h(sj,
i)=h(sk, i).
2. Ambos estados tienen estados siguientes equivalentes para cada entrada i: esto es:
f(sj, i)=f(sk, i) [1].

En otras palabras, se dice que dos estados son equivalentes si por cada elemento del
conjunto de entradas, ellos dan exactamente la misma salida y envan al circuito al
mismo estado o a un estado equivalente. Cuando dos estados son equivalentes uno de
ello puede eliminarse sin alterar las relaciones de entrada/salida [3].

Analizando la tabla 1.3, se eligen los estados presentes que van al mismo estado
siguiente y que generan la misma salida para ambas combinaciones de entrada. Por
ejemplo, los estados e y g van a los estados a y f generando las mismas salidas. Por
tanto, el estado g y e son equivalentes y se puede eliminar uno de ellos. El
procedimiento para eliminar un estado y remplazarlo por un equivalente se demuestra
en la tabla 1.4. En la columna de estado presente g se tacha y se remplaza por el
estado e cada vez que aparezca en las siguientes columnas de estado.

Tabla 1.4 Reduciendo la tabla de estados
3


Estado presente Estado siguiente Salida
x=0 x=1 x=0 X=1
a a b 0 0
b c d 0 0
c a d 0 0
d e f d 0 1
e a f d 0 1
f g e f 0 1
g a f 0 1
Sistemas Digitales 1 Mquinas Secuenciales
Maribel Gmez Franco 23
En el estado presente f, despus de cambiar el estado siguiente g por e, se puede
observar en la tabla que ahora el estado d es equivalente al estado f, de esta forma se
puede eliminar el estado f y remplazarlo por d. La tabla final reducida se muestra en la
tabla 1.5. El diagrama de estado para la tabla reducida consta de cinco estados y se
muestra en la figura 1.20.

Tabla 1.5 Reduciendo la tabla de estados [2]

Estado presente Estado siguiente Salida
x=0 x=1 x=0 x=1
a a b 0 0
b c d 0 0
c a d 0 0
d e d 0 1
e a d 0 1
















Figura 1.20 Diagrama de estados minimizado

Este diagrama de estados satisface las especificaciones de entrada/salida y producir
la secuencia de salida requerida para la secuencia dada de entrada. Sustituyendo los
estados equivalentes, se nota que resulta la misma secuencia de salida, aunque la
secuencia de estados es diferente:

Estado a a b c d e d d e d e a
Entrada 0 1 0 1 0 1 1 0 1 0 0
Salida 0 0 0 0 0 1 1 0 1 0 0

En el circuito secuencial de este ejemplo, la minimizacin de siete a cinco estados no
reduce el nmero de flip-flops [2].

En general, la minimizacin de estados se basa en el concepto de comportamiento
equivalente de FSMs y, por extensin, la equivalencia de sus estados. Se puede decir
que dos FSMs son equivalentes si producen la misma secuencia de salida para cada
secuencia de entrada.

a
b c
d
0/0
0/0
0/0
0/0
0/0
1/0
1/0
1/0
1/1
1/1
e
Sistemas Digitales 1 Mquinas Secuenciales
Maribel Gmez Franco 24
La equivalencia de una mquina de estados tambin se puede encontrar construyendo
una tabla de implicacin que permite eliminar estados no equivalentes e indicar
estados equivalentes. Como se muestra en la figura 1.21 una tabla de implicacin es
una tabla triangular en la cual cada cuadro representa un par de estados especficos.
Note que los renglones se han etiquetado con todos los estados exceptuando el
primero, mientras que las columnas se han etiquetado con todos los estados menos el
ltimo. De esta manera, se asegura que cada par de estados es asignado a slo un
cuadro de la tabla.

S1
S2
S3
S4
S5 <s3,s4>
<s2,s6>
<s0,s4>

S6
S0 S1 S2 S4 S5 S6

Figura 1.21 Tabla de implicacin [1]

El primer paso en poner una X para cada par de estados que tienen salidas diferentes
para al menos un conjunto de valores de entrada. De esta manera se pueden eliminar
pares de estados que no son equivalentes, como se muestra en la figura 1.21 para los
pares <s1,s3>y <s0,s4>. Para los pares de estados restantes, se introduce en cada cuadro
los pares de estado siguiente que podran ser equivalentes si el par de estados
representado por el cuadro son equivalentes. En general, se dice que la equivalencia
del par de los estados siguientes est implcita, de ah el nombre de tabla de
implicacin. Por ejemplo, la equivalencia del par <s1,s5> implica la equivalencia de
<s3,s4>. Similarmente, la equivalencia del par <s3,s5>implica la equivalencia de <s2,s6>y
<s3,s4>de acuerdo a la segunda condicin de la definicin de equivalencia.

Ejemplo 1.6. Minimizar un circuito secuencial utilizando una tabla de implicacin cuya
especificacin se da en el diagrama de estados de la figura 1.19. En este ejemplo slo
importan las secuencias de entrada/salida, los estados internos slo se utilizan para
suministrar las secuencias requeridas. Es por ello, que los estados se denotan por
smbolos de letras en lugar de sus valores binarios. La secuencia de entrada es
01010110100 empezando por el estado inicial a.

Solucin: El primer paso es formar la lista de estados con salidas diferentes (estados
incompatibles).

{a-d; a-e; a-f; a-g; b-d; b-e; b-f; b-g; c-d; c-d; c-f; c-g}

Enseguida se construye la tabla de pares compatibles o tabla de implicacin. Lo
primero que se debe hacer en la tabla es marcar las casillas de los pares de la lista de
estados incompatibles (X). Despus, observando la tabla de estados, escribir dentro de
cada casilla de la tabla de reduccin, los estados que deben ser compatibles para que
el par correspondiente a dicha casilla lo sea tambin.


Sistemas Digitales 1 Mquinas Secuenciales
Maribel Gmez Franco 25




Analizando la compatibilidad de los estados, tachar aquellas casillas en las que exista
escrito algn par de estados incompatibles (+). Todas las celdas sin tachar corresponden
a parejas de estados compatibles (o equivalentes entre s).

Por ltimo se construye la lista de estados compatibles iniciando por el escaln ms
bajo. Ver tabla 1.6.

Tabla 1.6 Estados compatibles

Estado Equivalentes Compatibles
g e g-e
f d g-e, f-d
e - g-e, f-d
d - g-e, f-d
c - g-e, f-d, c
b - g-e, f-d, c, b
a - g-e, f-d, c, b, a
e, d, c, b, c

1.5.3 Codificacin de estados

En cualquier FSM el costo y retardo de la entrada y salida dependen de los valores
Booleanos asignados a los estados lgicos. Por ejemplo, una FSM de cuatro estados {s0,
s1, s2, s3}se puede realizar con dos flip-flops que pueden tener los valores de 00, 01, 10, 11.
En cada estado se pueden tener cuatro combinaciones, para los cuatro estados
pueden existir 4!=24 posibles codificaciones de los cuatro estados. La tabla 1.7 muestra
estas combinaciones.

Los diseadores utilizan diferentes estrategias en la asignacin de estados para evitar el
problema de un recuento manual de estados. La estrategia de cambio mnimo de bit es
la ms utilizada y consiste en asignar valores booleanos a los estados, de forma que el
nmero total de cambios de bit para todas las transiciones se minimice. Si cada
transicin en el diagrama de estados tiene un peso que es igual al nmero de bits en los
que difieren el estado fuente y destino, la codificacin ptima ser la que minimice la
suma de pesos.
a b
b
c d

a b c d
c
a d a d

d
e f
e
a f

e f a f
f
g f g f

e f e f
g
a f a f
a b c d e f
Sistemas Digitales 1 Mquinas Secuenciales
Maribel Gmez Franco 26
Tabla 1.7 Posibles codificaciones para cuatros estados


























En la figura 1. (a) y (b) se muestran dos codificaciones para el mismo diagrama de
estados. En la codificacin directa se tienen dos arcos con peso 1 y dos con peso 2, el
peso total es 6. Por otra parte, en la codificacin con mnimo cambio de bit los cuatro
arcos tienen un peso de1, sumando un peso total de 4. Esta estrategia de mnimo
cambio de bits se basa en la premisa de que en una implementacin a dos niveles se
necesitan, al menos, una compuerta AND adicional y una entrada mas a la compuerta
OR para establecer o poner a cero flip-flop en cada cambio de bit [1].













a) codificacin directa b) codificacin de mnimo cambio de bit

Figura 1. Dos codificaciones distintas para un contador binario de dos bits



Nmero de codificacin S0 S1 S2 S3
1 00 01 10 11
2 00 01 11 10
3 00 10 01 11
4 00 10 11 01
5 00 11 01 10
6 00 11 10 01
7 01 00 10 11
8 01 00 11 10
9 01 10 00 11
10 01 10 11 00
11 01 11 00 10
12 01 11 10 00
13 10 00 01 11
14 10 00 11 01
15 10 01 11 00
16 10 01 00 11
17 10 11 01 00
18 10 11 00 01
19 11 00 01 10
20 11 00 10 01
21 11 01 00 10
22 11 01 10 00
23 11 10 00 01
24 11 10 01 00
00 01
10 11
1
2
1
2
00 01
11 10
1
1
1
1
Sistemas Digitales 1 Mquinas Secuenciales
Maribel Gmez Franco 27
1.5.4 Seleccin de elementos de memoria

Existen cuatro tipos de flip-flops. El flip-flop T es una excelente eleccin para circuitos
secuenciales tipo contador, donde los flip-flops deben conmutar de 0 a 1 y volver a
hacerlo de 1 a 0 con gran frecuencia. Los flip-flops D deben utilizarse en aplicaciones
donde la informacin de entrada se almacene durante algn tiempo para su uso
posterior. El flip-flop SR se utiliza en situaciones donde diferentes seales ponen en SET o
RESET a los flip-flops. Por ltimo, el flip-flop J K se utiliza cuando se necesita combinar el
comportamiento de los flip-flops T y SR.

1.5.5 Optimizacin y temporizado

El siguiente paso en la sntesis de lgica secuencial consiste en disear la lgica de
entrada y salida. Esto es, dibujar el diagrama para observar todas las compuertas y
conexiones del circuito. Despus, se obtiene un diagrama de tiempos del circuito, y los
retardos de las compuertas y flip-flops. Por ltimo, se simula el circuito para comprobar
su funcionamiento.

1.6 Bibliografa

Gajsky, Daniel. Principles of Digital Design. Ed. Prentice Hall. USA, 1997. [1]

Morris Mano, M. Lgica digital y diseo de computadores. Ed. Prentice Hall, Mxico,
1982. [2]

Wilkinson B. y R. Makki. Digital System Design. Ed. Prentice Hall. Second edition, USA, 1992.
[3]

Sistemas Digitales 1 Dispositivos de Almacenamiento
Maribel Gmez Franco 28
UNIDAD II. DISPOSITIVOS DE ALMACENAMIENTO

Un circuito secuencial temporizado est formado por un grupo de flip-flops y
compuertas combinacionales conectados para formar un camino de realimentacin.
Un circuito MSI constituido slo por flip-flops es por definicin un circuito secuencial. Los
circuitos MSI que adems incluyen compuertas lgicas se clasifican de acuerdo a la
funcin que realizan: registros, contadores o memorias. En esta unidad se describe la
operacin de varios registros y contadores. As como el funcionamiento de las memorias
de acceso aleatorio y de slo lectura.

2.1. Registros

Un registro es un circuito lgico capaz de almacenar informacin binaria y est
constituido por un grupo de flip-flops. Cada registro de n bits contiene n flip-flops para
almacenar n bits de informacin. Estos flip-flops son manejados por una seal de reloj
comn y normalmente se utiliza el flip-flop tipo D.

Un registro tiene dos funciones bsicas: almacenamiento y movimiento de datos. La
capacidad de desplazamiento de un registro permite el movimiento de los datos de
una etapa a otra dentro del registro, o la entrada o salida del mismo, en funcin de los
impulsos de reloj que se apliquen.

Un registro de entrada-paralelo y salida-paralelo almacena un nmero de dgitos
binarios, que son introducidos simultneamente y extrados de los flip-flops del registro al
mismo tiempo. En la figura 2.1 se muestra el smbolo grfico y el diagrama lgico de este
tipo de registro.













a) Smbolo grfico b) Diagrama lgico

Figura 2.1 Registro con entrada-paralelo/salida-paralelo

En el circuito de la figura 2.1(b), cuando se presenta el flanco de subida de la seal de
reloj la informacin presente en la entrada I se transfiere a la salida Q. La informacin
presente en la salida se mantiene hasta la siguiente transicin del reloj. Esto se puede
observar en el diagrama de tiempos de la figura 2.2.






I3 I2 I1 I0
Clk
Q3Q2Q1Q0
D3 Q3


Clk
I3
Q3
D2 Q2


Clk
I2
D1 Q1


Clk
I1
D0 Q0


Clk
I0
Q2
Q1 Q0
Sistemas Digitales 1 Dispositivos de Almacenamiento
Maribel Gmez Franco 29











Figura 2.2 Diagrama de tiempos de un registro con entrada-paralelo/salida-paralelo

La funcionalidad del registro bsico se puede mejorar agregando seales de control
diferentes. Por ejemplo, si el registro debe ponerse en modo SET o RESET
independientemente de la seal de reloj, se pueden adicionar las entradas asncronas
PRESET y CLEAR. En la figura 2.3 se muestra este registro.













a) Smbolo grfico b) Diagrama lgico

Figura 2.3 Registro con entrada-paralelo/salida-paralelo y entradas asncronas PRE y CLR

Si la entrada CLR=0 por un periodo corto de tiempo, todas las salidas se ponen a cero
(modo RESET). De la misma manera si PRE=0 las salidas se ponen en modo en modo SET,
todas en uno. Estas seales por ser asncronas no dependen del pulso de reloj.

En la mayora de los sistemas digitales, es necesario que un dato se almacene durante
varios ciclos de reloj antes de introducir el siguiente datos de entrada. Por esta razn es
importante controlar el momento en que debe introducirse el dato siguiente al registro.
Esto se puede lograr utilizando una seal de control llamada carga o habilitacin, la
cual permite cargar el dato dentro del registro conocido como registro con carga en
paralelo. Cuando todos los bits se cargan simultneamente al registro con un slo pulso
de reloj, se dice que la carga se hace en paralelo. En la figura 2.4 se muestra este tipo
de registro.

El diseo del registro contiene un multiplexor de 2 a 1, el cual selecciona el dato de
entrada o el dato que ya est en el registro (salida). Cuando la seal Carga=0, el dato
que se almacen previamente se vuelve a cargar al registro en cada flanco de subida
del pulso de reloj. Cuando carga=1, se introduce el dato nuevo al registro.


PRE I3 I2 I1 I0
Clk
CLR Q3Q2Q1Q0
D3 Q3


Clk
I3
Q3
D2 Q2


Clk
I2
D1 Q1


Clk
I1
D0 Q0


Clk
I0
Q2
Q1 Q0
PRE
CLR
CLK
Clk



I1



Q1
Sistemas Digitales 1 Dispositivos de Almacenamiento
Maribel Gmez Franco 30

Estado presente Estado siguiente
Carga Q3 Q2 Q1 Q0
0 Sin cambio
1 I3 I2 I1 I0


a) Smbolo lgico b) Tabla de operacin















c) Diagrama lgico

Figura 2.4 Registro con carga paralelo

Un registro configurado para mover los dgitos a la izquierda o derecha se conoce como
registro de desplazamiento. Los dgitos se mueven de un flip-flop al flip-flop adyacente
al aplicar la seal de reloj. Tambin se puede utilizar una seal de control para habilitar
la direccin del corrimiento. En la figura 2.5 se muestra un registro de desplazamiento a
la derecha entrada-serie/salida paralelo.















Figura 2.5 Registro de desplazamiento a la derecha entrada-serie/salida paralelo

La entrada serial IL se utiliza para introducir el nuevo dato de 1 bit al flip-flop de ms a la
izquierda dentro del diseo. Esta configuracin se utiliza para convertir un flujo de datos
en serie o paralelo.
Load I3 I2 I1 I0
Clk
Q3Q2Q1Q0
D3 Q3


Clk
I3
Q3
D2 Q2


Clk
I2
D1 Q1


Clk
I1
D0 Q0


Clk
I0
Q2
Q1
Q0
1 0
s
1 0
s
1 0
s
1 0
s
Carga
Clk
Shift
D3 Q3


Clk
IL
Q3
D2 Q2


Clk
D1 Q1


Clk
D0 Q0


Clk
Q2
Q1
Q0
1 0
s
1 0
s
1 0
s
1 0
s
Clk
Sistemas Digitales 1 Dispositivos de Almacenamiento
Maribel Gmez Franco 31
2.1.1. Transferencia en serie

El contenido de un registro se transfiere en serie a otro desplazando los bits de un registro
al siguiente. En la figura 2.6 se muestra un registro de desplazamiento.








Figura 2.6 Registro de desplazamiento

En la figura 2.7 se muestra la transferencia en serie del registro A al registro B. Esta
transferencia en serie se realiza con registros de desplazamiento. Para evitar la prdida
de informacin del registro A, se conecta su salida serial a la entrada del mismo registro
A. La entrada de control de desplazamiento determina en qu momento se va a hacer
la transferencia y cuntas veces.









a) Diagrama a bloques












b) Diagrama de tiempos

Figura 2.7 Transferencia en serie del registro A al registro B

La tabla 2.1 se obtiene analizando el diagrama de tiempos de la figura 2.6(b). En esta
tabla se puede observar qu sucede para cada pulso de reloj de T1 a T4. Como ambos
registros son de cuatro bits, despus de T4 los dos registros mantienen el mismo valor
10112. El contenido de A se transfiere a B, mientras que A no cambia.

El tiempo de palabra es el tiempo necesario para desplazar todo el contenido del
registro de desplazamiento A. El tiempo de bit es el intervalo de tiempo entre los pulsos
de reloj.

D3 Q3


Clk
Si
Entrada
Serial
D2 Q2


Clk
D1 Q1


Clk
D0 Q0


Clk
Salida
serial
So
T1 T2 T3 T4
Reloj
Control de
desplazamiento
C
Registro de
desplazamiento A
Registro de
desplazamiento B
Si
So
Clk
Control de
desplazamiento
C
Sistemas Digitales 1 Dispositivos de Almacenamiento
Maribel Gmez Franco 32
Tabla 2.1 Ejemplo de transferencia serie

Pulso de tiempo
Desplazamiento
Registro A
Desplazamiento
Registro B
Salida en serie de B
Valor inicial 1 0 1 1 0 0 1 0 0
Despus de T1 1 1 0 1 1 0 0 1 1
Despus de T2 1 1 1 0 1 1 0 0 0
Despus de T3 0 1 1 1 0 1 1 0 0
Despus de T4 1 0 1 1 1 0 1 1 1

2.1.2. Registro de desplazamiento bidireccional con carga en paralelo

Algunos registros disponen de terminales de entrada y salida necesarias para la
transferencia en paralelo. Adems, pueden tener la caracterstica de desplazamiento a
la izquierda o a la derecha. El registro ms comn puede tener las siguientes funciones:

! Control de borrado para poner el registro a cero.
! Una entrada de reloj para sincronizar las operaciones.
! Control de desplazamiento a la derecha y las lneas de entrada y salida serie.
! Control de desplazamiento a la izquierda y las lneas de entrada y salida serie.
! Control de carga en paralelo y las n lneas de entrada paralelo.
! n lneas de salida en paralelo.
! Un control de desplazamiento.

Un registro capaz de desplazar a la izquierda y a la derecha se llama registro de
desplazamiento bidireccional.

En la figura 2.8 se muestra un registro de corrimiento de 4 bits con carga paralelo. En la
figura 2.8(a) se muestra el smbolo lgico que incluye cuatro terminales de entrada en
paralelo, una de entrada serie izquierda, una entrada serie derecha, dos seales de
control, la terminal de borrado, la seal de reloj y las cuatro terminales de salida
paralelo. Su funcionamiento se describe por medio de la tabla de operacin, ver figura
2.8(b), cuando S1S0=00 el registro permanece sin cambio, para S1S0=01 se realiza un
desplazamiento a la izquierda. Si S1S0=10 el desplazamiento es a la derecha y por ltimo
si S1S0=11, entonces se hace la carga en paralelo. En la figura 2.8(c) se indica el diseo
del registro, el cual dispone adems de los cuatro flip-flops un multiplexor para
seleccionar una de las cuatro opciones antes mencionadas. El CI 74LS194 es un registro
que cumple con estas caractersticas, ver figura 2.8(d).


Estado
presente
Estado siguiente
S1 S0
Operacin
Q3 Q2 Q1 Q0
0 0 No hay cambio Q3 Q2 Q1 Q0
0 1 Desplazamiento a la izquierda Q2 Q1 Q0 IR
1 0 Desplazamiento a la derecha IR Q3 Q2 Q1
1 1 Carga paralelo I3 I2 I1 I0


a) Smbolo lgico b) Tabla de operacin

IL I3 I2 I1 IO IR
S0
S1
Clear
Clk
Q3 Q2 Q1 Q0
Sistemas Digitales 1 Dispositivos de Almacenamiento
Maribel Gmez Franco 33





















c) Diagrama lgico

Figura 2.8 Registro de corrimiento de cuatro bits con carga en paralelo

2.2. Contadores

Un contador es un tipo especial de registro que incorpora un incrementador, el cual
permite contar hacia arriba o hacia abajo. En la figura 2.9 se muestra un ejemplo de
contador ascendente que tiene dos seales de control. La seal de habilitacin (E,
enable) cuando es igual a uno habilita la cuenta. La seal de borrado (Clear) pone a
cero al contador. En la figura 2.9(d) se puede observar que el incrementador consta de
una serie de medio-sumadores (Half Adder) colocados de tal forma que el HA en la
posicin de bit i tenga sus entradas conectadas a la salida del i-simo flip-flop Qi y al
acarreo Ci del medio sumador en la posicin i-1. El nuevo valor del flip-flop Di ser 1 si Qi
o Ci, pero no ambas, son 1. Por el contrario, la salida Ci+1 ser 1 slo si Qi y Ci son ambas
1. De la tabla de verdad del medio sumador, figura 2.9(c) se derivan las siguientes
expresiones booleanas para Di y Ci+1.

Mientras el contador est habilitado, E=1, realizar una cuenta ascendente mdulo 16.
Por cada flanco de subida del reloj, se suma uno a su cuenta actual.











a) Smbolo lgico b) Tabla de operacin c) Tabla de verdad del medio sumador

Figura 2.9 Contador binario de cuatro bits





Qi Ci Ci+1 Di
E Operaciones

0 0 0 0
0 No cambia

0 1 0 1
1 Cuenta

1 0 0 1


1 1 1 0
E Contador
Clk
CLR Q3Q2Q1Q0
IL
Q3
D0 Q0


Clk
Q2
Q1
Q0
3 2 1 0
s
Clk
Clear
D1 Q1


Clk
3 2 1 0
s
D2 Q2


Clk
3 2 1 0
s
D3 Q3


Clk
3 2 1 0
s
I3
I2 I1 I0
IR
S0
S1
Sistemas Digitales 1 Dispositivos de Almacenamiento
Maribel Gmez Franco 34















d) Diagrama del contador

Figura 2.9 Contador binario de cuatro bits

Este contador bsico puede modificarse para contar ascendente/descendente
sustituyendo el medio-sumador por un medio sumador/restador, agregando una seal
de control para seleccionar la direccin de cuenta. En la figura 2.10 se muestra el diseo
del contador ascendente/descendente partiendo de su tabla de operacin hasta el
diseo del circuito.









a) smbolo lgico b) Tabla de operacin
















c) Tabla de verdad

Figura 2.10 Contador binario de 4 bits ascendente/descendente

E D Operaciones
0 X No cambia
1 0 Cuenta ascendente
1 1 Cuenta descendente
E D Qi Ci Ci+1 Di
QiCi
D
00 01 11 10
1 0 0 0 0 0

0 1
1 0 0 1 0 1

1 1
1 0 1 0 0 1

Ci+1=DQiCI+DQiCi
1 0 1 1 1 0


1 1 0 0 0 0
QiCi
D
00 01 11 10
1 1 0 1 1 1

0 1 1
1 1 1 0 0 1

1 1 1
1 1 1 1 0 0

Di=QiCi+QiCi
D Contador
E
Clk
CLR Q3Q2Q1Q0
E
Clear
Clk
S
D
CP
R
QN
Q
S
D
CP
R
QN
Q
S
D
CP
R
QN
Q
S
D
CP
R
QN
Q
Acarreo
de salida
Q3 Q2 Q1
Q0
C4
C3
C2
C1 C0
Sistemas Digitales 1 Dispositivos de Almacenamiento
Maribel Gmez Franco 35










d) Circuito sumador/restador


















d) Diseo del contador ascendente/descendente

Figura 2.10 Contador binario de 4 bits ascendente/descendente





















Figura 2.12 Contador binario de 4 bits ascendente/descendente con inicializacin
Qi
Ci



D
Di
Ci+1
D Ci+1
Ci
Qi Di
E
D
Rst
Clk
S
D
CP
R
QN
Q
S
D
CP
R
QN
Q
S
D
CP
R
QN
Q
S
D
CP
R
QN
Q
Cout
Q3
Q2 Q1
Q0
D3 Q3


Clk
I3
Q3
D2 Q2


Clk
I2
D1 Q1


Clk
I1
D0 Q0


Clk
I0
Q2
Q1
Q0
1 0
s
1 0
s
1 0
s
1 0
s
Carga
Clk
Ci+1 D
Ci
DIi Qi
Ci+1 D
Ci
DIi Qi
Ci+1 D
Ci
DIi Qi
Ci+1 D
Ci
DIi Qi
Cout
E
D
Sistemas Digitales 1 Dispositivos de Almacenamiento
Maribel Gmez Franco 36
El contador de la figura 2.10 siempre inicia en cero la cuenta. Sin embargo, en algunas
ocasiones es ms conveniente poner al contador en un valor diferente de cero a partir
del cual comenzar a contar. En la figura 2.11 se ilustra el contador binario
ascendente/descendente con carga paralelo.

Los contadores BCD cuentan en la secuencia 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, . El contador
preseleccionable cuenta del 00002 al 11112, por lo tanto para que opere como
contador BCD es necesario detectar el 10012 para cargar el cero. En la figura 2.12 se
muestra un contador BCD partiendo de un contador binario.



































Figura 2.12 Contadores BCD

En un contador asncrono el conteo sin un incrementador/decrementador se alcanza
cambiando cada flip-flop a la frecuencia del flip-flop precedente. El trmino asncrono
se refiere a que los flip-flops no estn sincronizados por la misma seal. En un contador
asncrono se conecta la salida complementada de un flip-flop (i-1)a la entrada de reloj
del siguiente flip-flop (i) de tal manera que estos cambien de estado por cada transicin
de 0 a 1 en su entrada de reloj. El flip-flop ms conveniente para disear este contador
es el tipo T porque con slo conectar un uno a la entrada, la salida cambia para cada
flanco de subida en la seal de reloj. En la figura 2.13 se muestra un contador asncrono
de cuatro bits utilizando flip-flop tipo T.


74LS169A
CEP
CET
CP
D3
D2
D1
D0
PE
U/D
TC
Q3
Q2
Q1
Q0
U/D
Clk
I3=0
I2=0
I1=0
I0=0
Q3
Q2
Q1
Q0
74LS157
S
I1a
I0a
I1b
I0b
I1c
I0c
I1d
I0d
E
Ya
Yb
Yc
Yd
74LS169A
CEP
CET
CP
D3
D2
D1
D0
PE
U/D
TC
Q3
Q2
Q1
Q0
Q3
Q2
Q1
Q0
I3=0
I2=0
I1=0
I0=0
I3=1
I2=0
I1=0
I0=1
U/D
Clk
a) contador ascendente
b) Contador ascendente/descendente
Sistemas Digitales 1 Dispositivos de Almacenamiento
Maribel Gmez Franco 37











a) Smbolo lgico b) Diagrama lgico




















c) Diagrama de tiempos

Figura 2.13 Contador ascendente asncrono de 4 bits

2.3. Unidades de memoria

En un sistema con microprocesador o de computadora, la memoria se utiliza para
almacenar el programa en lenguaje de mquina que se va a ejecutar y para
almacenar cualquier dato a utilizar dentro del programa. En la figura 2.14 se muestra el
diagrama a bloques de una memoria.













Figura 2.14 Diagrama a bloques de una memoria

Unidad de
memoria


2
k
palabras
n bits por palabra
k lneas de direccin
Lectura
Escritura
n lneas entrada de datos
n lneas de salida de datos
T Q
FF3
> Qn
R
T Q
FF2
> Qn
R
T Q
FF1
> Qn
R
T Q
FF0
> Qn
R
E
Clk
Rst
Q3
Q2
Q1
Q0
E Contador
>Clk asncrono
CLR Q3Q2Q1Q0
Clk
Q0
Q1
Q2
Q3
Sistemas Digitales 1 Dispositivos de Almacenamiento
Maribel Gmez Franco 38
Los dos principales tipos de memorias semiconductoras son la RAM y ROM. La RAM es
una memoria de lectura y escritura voltil, esto quiere decir que pierde su informacin
al desconectarle la alimentacin. La ROM es una memoria de slo escritura no voltil.
Las familias semiconductoras se fabrican utilizando dos tecnologas bsicas: la bipolar y
la MOS. La tecnologa dominante es la MOS que utiliza MOSFET.

2.3.1. Terminologa de la memoria

Celda de memoria. Dispositivo utilizado para almacenar un bit (0 1). Ejemplo: flip-flop.

Palabra de memoria. Grupo de n bits que pueden representar un operando, una
instruccin, grupo de caracteres alfanumricos o cualquier informacin codificada
binariamente. El tamao de las palabras en las computadoras vara de 4 a 64 bits,
segn la dimensin de la computadora.

Byte. Es el tamao de una palabra de 8 bits.

Capacidad (Densidad). El nmero de bits o bytes que se pueden almacenar en un
dispositivo de memoria y se puede determinar a partir del nmero de palabras y el
nmero de bits por palabra. Por ejemplo, una memoria puede almacenar 4 096
palabras de 20 bits (4 096 20), esto equivale a 81 920 bits. Normalmente, la capacidad
de una memoria se expresa como un mltiplo de 1 k (2
10
=1 024) 1 M (2
20
=1 048 576).

Direccin. Nmero que identifica la localidad de una palabra de memoria.

Operacin de lectura. Operacin por medio de la cual se transfiere la informacin de
una localidad de memoria hacia otro dispositivo.

Operacin de escritura. Operacin por medio de la cual se almacena una palabra en
una direccin especfica de la memoria.

Tiempo de acceso. Es el tiempo requerido para realizar una operacin de lectura o
escritura. Medida de la velocidad de operacin del dispositivo de memoria.

Memoria voltil. Unidades de memoria cuyos componentes pierden la informacin
almacenada con el tiempo o cuando se corta la energa elctrica.


2.3.2. Memoria de acceso aleatorio (RAM random-access memory)

El trmino RAM significa memoria de acceso aleatorio, lo cual quiere decir que tarda el
mismo tiempo en acceder cualquier localidad de memoria. Generalmente, este trmino
se utiliza en memorias semiconductoras como memoria de lectura y escritura. En la RAM
los datos se pueden escribir y leer rpidamente en cualquier direccin y en cualquier
orden.

La RAM se utiliza para almacenar datos a corto plazo, ya que por ser voltil no puede
retener la informacin cuando se desconecta el suministro de energa, su ventaja
principal es que se puede escribir y leer muy rpido con la misma facilidad.


Sistemas Digitales 1 Dispositivos de Almacenamiento
Maribel Gmez Franco 39
2.3.2.1. Arquitectura de la RAM

La RAM consta de varios registros, cada uno de ellos almacena una palabra de datos y
tiene una direccin nica. La capacidad de una RAM comnmente es de 1 k, 4 k, 8 k,
16 k, 64 k, 128 k, 256 k, 1 024 k, etc, y tamaos de palabras de 1,4 u 8 bits.































Figura 2.15 Organizacin interna de una RAM de 64 4

En la figura 2.15 se muestra la arquitectura simplificada de una RAM que almacena 64
palabras de 4 bits cada una. El direccionamiento de las 64 palabras se realiza por medio
de un decodificador con 6 lneas de entrada y 64 lneas de salida para direccionar 64
localidades de memoria 2
6
=64. La memoria se compone de circuitos integrados de RAM
ms circuitos de lgica adicionales. Los circuitos de RAM generalmente son las entradas
de control para lectura y escritura. En la mayora de los circuitos integrados se utiliza slo
una lnea de control para la lectura/escritura y el control de estas operaciones se realiza
mediante una habilitacin del integrado (Chip Select, CS). En la tabla 2.2 se indica el
modo de operacin de la RAM.

Tabla 2.2 Entradas de control de un circuito de memoria

Seleccin del circuito Escritura Lectura Operacin de memoria
1 X Ninguna
0 0 Escribe la palabra seleccionada
0 1 Lee la palabra seleccionada
0 =escritura
1 =lectura



Decodific
a-
dor de 6
a 64
lneas
A0
A1
A2
A3
A4
A5
Entradas de
direcciones
Registro 0
Registro 1
Registro 2




Registro 62
Registro 63
Buffers de
entrada
I0 I1 I2 I3
Buffers de
salida
O0 O1 O2 O3
Salida de datos
Entradas de datos
W R
CS
Seleccin del
circuito
Selecciona un registro
Sistemas Digitales 1 Dispositivos de Almacenamiento
Maribel Gmez Franco 40
Seleccin de circuito integrado (CS). La mayora de las memorias tienen una o ms
entradas de control que habilitan o deshabilitan el circuito integrado. En el modo
desactivado todas las entradas y salidas permanecen deshabilitadas (alta impedancia)
de manera que no se pueden realizar operaciones. Cuando est activo se dice que el
circuito integrado se ha seleccionado, y la entrada lectura/escritura determina la
operacin a realizar.

Operacin de lectura. El nmero de la direccin selecciona el registro de la memoria
que se va a leer. La entrada de lectura/escritura R/W debe ser 1 y el circuito debe estar
seleccionado. La combinacin CS=0 y R/W=1 habilita los buffers de salida de tal manera
que el contenido del registro seleccionado aparecer en las cuatro salidas de datos. El
buffer de entrada se deshabilita.

Operacin de escritura. Para escribir una palabra de 4 bits en el registro seleccionado se
requiere que CS=0 y R/W=0. Esta combinacin habilita los buffers de entrada permitiendo
que la palabra de entrada se cargue al registro seleccionado. Adems, deshabilita los
buffers de salida que son de tres estados.

Algunos fabricantes utilizan la seal de control WE (habilitacin de escritura) o W, en
lugar de R/W.

Terminales comunes de entrada/salida. Algunos fabricantes combinan las funciones de
entrada y salida de datos utilizando terminales comunes de entrada y salida. La entrada
R/W controla la funcin de estas terminales.


2.3.2.2. RAM Esttica (SRAM)

La RAM esttica es aquella que puede almacenar informacin mientras se suministra
energa al circuito. Las celdas de este tipo de memoria son bsicamente flip-flops, ver
figura 2.16, que almacenarn el estado de un bit indefinidamente, siempre y cuando no
se interrumpa la energa.











Figura 2.16 Celda de RAM esttica

Las RAMs estticas se encuentran disponibles en tecnologas bipolar y MOS, aunque la
mayora de las aplicaciones utilizan RAMs NMOS o CMOS. Las bipolares tienen la ventaja
en velocidad y las NMOS tienen mayores capacidades con menor consumo de
potencia.




Seleccin
B
B
C
C
S
R QN
Q
Sistemas Digitales 1 Dispositivos de Almacenamiento
Maribel Gmez Franco 41
2.3.2.2.1. Temporizacin de la SRAM

La RAM es la que ms se utiliza como memoria interna de una computadora. La CPU
realiza continuamente operaciones de escritura y de lectura en su memoria y se
sincronizan mediante las seales de control. El tiempo de ciclo de escritura es el tiempo
mximo desde la aplicacin de la direccin hasta la terminacin de las operaciones
internas de memoria necesarias para almacenar una palabra.

En la figura 2.17 se muestran las seales para una operacin de escritura. En t0 la CPU
proporciona la nueva direccin a la RAM. La CPU lleva las lneas R/W y CS a un estado
BAJ O despus de esperar un tiempo tAS (tiempo de establecimiento de direcciones),
necesario para darle tiempo a los decodificadores de la RAM para responder a la
nueva direccin. Las seales R/W y CS se mantienen en BAJ O durante el tiempo de
escritura tW.





















Figura 2.17 Ciclo de escritura

En t1, durante el tiempo de intervalo de escritura, la CPU enva el nuevo dato que se va
a escribir a la RAM. Estos datos deben mantenerse en la entrada de la RAM por lo
menos un intervalo de tiempo tDS (tiempo de establecimiento del dato), previo a por lo
menos un intervalo de tiempo tDH (tiempo de mantenimiento del dato) despus de la
desactivacin de las seales R/W y CS en t2. De igual manera la direccin debe
permanecer estable durante el tiempo tAH (tiempo de retencin de las direcciones),
despus de t2.

Si no se satisfacen estos requerimientos de tiempo, la operacin de lectura no se llevar
a cabo de manera confiable. El tiempo de escritura completo tWC se extiende de t0 a t4,
cuando la CPU cambia a una nueva direccin para la siguiente operacin de lectura o
escritura.

El diagrama de tiempos de la figura 2.18 muestra la operacin de lectura. La CPU
proporciona las seales de control y la direccin de la localidad de memoria que
Direccin Direcciones vlidas
Seleccin
del circuito
Entrada
de datos
Datos vlidos
t0 t1 t2 t3 t4
Alta impedancia
tAS
tAH
tW
tDS tDH
W R
tWC
Sistemas Digitales 1 Dispositivos de Almacenamiento
Maribel Gmez Franco 42
requiere leer. Antes de t0, la direccin puede ser cualquiera puesto que el circuito se
encuentra desactivado CS=1, por lo tanto, los datos de salida permanecen en alta
impedancia, la seal R/W=1. En t0 la CPU enva la nueva direccin a la RAM y, despus
de un tiempo necesario para que se estabilice la nueva direccin se activa al circuito
CS=0.




















Figura 2.18 Ciclo de lectura

En t1 la RAM coloca el dato contenido en la localidad de memoria en el buffer de salida
de datos. El tiempo entre t0 y t1, es el tiempo de acceso (tACC) de la RAM, esto es, el
tiempo que transcurre entre la aplicacin de una nueva direccin y la obtencin del
dato en la salida. TCO es el tiempo que le toma a la salida de la RAM cambiar su estado
de alta impedancia hacia el nivel de dato vlido una vez activada la seal CS.

En t2, CS regresa al estado ALTO, mientras la salida de la RAM regresa a su estado de
alta impedancia despus de transcurrido cierto tiempo, tOD. Los datos son colocados en
el buffer de salida entre t1 y t3.

El tiempo completo de lectura tRC, se extiende de t0 a t4, cuando la CPU cambia la
direccin para la siguiente operacin de lectura o escritura.













Figura 2.19 SRAM MCM6264C


SRAM
8 k x 8




MCM6264C
A12
A11

A1
A0


WE
CS1

CS2
OE
7
6
E/S



0

Direccin Direcciones vlidas
Seleccin
del circuito
Entrada
de datos
Datos vlidos
t0 t1 t2 t3 t4
Alta impedancia
tCO
tAH
tACC
tOD
W R
tRC
Sistemas Digitales 1 Dispositivos de Almacenamiento
Maribel Gmez Franco 43
Entrada
Habilitacin
Salida
Un ejemplo de una RAM comercial es la CMOS MCM6264C. En la figura 2.19 se puede
observar que tiene cuatro lneas de control para habilitar el CI y seleccionar el tipo de
operacin. Tiene 13 lneas de direccin (2
13
=8192), por lo tanto tiene una capacidad de
8 k. El tamao de la palabra es de 8 bits y utiliza las mismas lneas para entrada o salida
de datos. Algunas de sus caractersticas son las siguientes:

Capacidad de 8 k 8
Ciclos de lectura y escritura de 12 ns
Consumo de potencia 100 mW en estado de espera

En la tabla 2.3 se indica el modo de operacin de la MCM6264C. Las lneas CS1 y CS2
habilitan al circuito integrado. La seal de control WE selecciona el modo de operacin
si es lectura o escritura. La seal OE habilita la salida de datos, por lo tanto, para leer la
memoria debe seleccionarse WE=1 y OE=0.

Tabla 2.3 Modo de operacin de la MCM6264C

Modo WE CS1 CS2 OE Terminales de E/S
Lectura 1 0 1 0 Dato de salida
Escritura 0 0 1 X Dato de entrada
Deshabilitacin de entradas 1 X X 1 Alta impedancia
No seleccionadas X 1 X X Alta impedancia
(reduccin de potencia) X X 0 X

Buffers de tres estados. Dos de los estados son el 1 y el 0 de la lgica combinacional, el
tercer estado es de alta impedancia, el cual se comporta como un circuito abierto, esto
es, la salida parece estar desconectada. El smbolo lgico y la tabla de verdad del
buffer de tres estados se ilustran en la figura 2.20. La diferencia con el bfer normal es la
entrada de habilitacin (EN). Cuando el buffer se habilita EN=1, la salida es igual a la
entrada como en un buffer normal, mientras se encuentre deshabilitado EN=0, la salida
permanece en alta impedancia independientemente del valor de la entrada.

EN IN OUT
0 X alta-Z
1 0 0
1 1 1



Figura 2.20 Buffer de tres estados.

2.3.2.3. RAM Dinmica (DRAM)

La RAM dinmica almacena la informacin binaria en forma de carga elctrica en
capacitores. Estos capacitores se acceden dentro del CI por medio de transistores de
MOS de canal N. La carga almacenada en los capacitores tiende a perderse con el
tiempo, por lo que deben recargarse peridicamente refrescando la DRAM. Para ello se
ciclan las palabras cada tantos milisegundos, se leen y rescriben para restablecer la
carga disminuida. En algunas DRAMs, cada celda debe refrescarse cada 2, 4 u 8 ms, o
de lo contrario se perder la informacin.

La DRAM ofrece un consumo de corriente reducido y mayor capacidad de
almacenamiento en un CI de memoria, una desventaja es la necesidad de refrescar las
a) Smbolo lgico
b) Tabla de verdad
Sistemas Digitales 1 Dispositivos de Almacenamiento
Maribel Gmez Franco 44
celdas dado que se requerir circuitera de soporte externa. Algunas RAMs tienen
interconstruida circuitera de control para el refresco pero requieren temporizacin
especial para las entradas de control del CI.

Las DRAMs generalmente tienen cuatro veces la densidad de las SRAMs, lo cual permite
colocar hasta cuatro veces ms capacidad de memoria sobre una tarjeta de circuito
impreso. El costo por bit de almacenamiento de la DRAM se encuentra entre la cuarta y
quinta parte de costo de la SRAM. Adems, se obtiene un ahorro adicional en el costo
debido a los bajos requerimientos de potencia.

La memoria interna principal de las computadoras personales emplean DRAM por su
gran capacidad y bajo consumo de potencia y, en algunas ocasiones utilizan SRAM
para funciones que requieren de mxima velocidad, como las grficas en video y las
tablas de bsqueda. Las SRAM se utiliza principalmente en reas donde se requieren
pequeas cantidades de memoria (hasta 64 k) o donde se requiere alta velocidad.

2.3.2.3.1. Arquitectura de la DRAM

La arquitectura de una DRAM se puede visualizar como una matriz formada por celdas
que almacenan un bit, como se ilustra en la figura 2.21. Esta estructura corresponde a
una DRAM de 16 k x 1, por lo que se requieren 14 (2
14
=16 384) lneas a fin de seleccionar
una de las celdas colocadas en una matriz de 128 128. Los bits A0 hasta A6
seleccionan el rengln, mientras que A7 hasta A13 seleccionan la columna.




























Figura 2.21 Disposicin de celdas de la RAM dinmica de 16 k 1
128 renglones
Celda de memoria

Decodificador de
1 a 128

D
e
c
o
d
i
f
i
c
a
d
o
r

d
e

1

a

1
2
8

Selecciona de 1
a 128 columnas
Selecciona de 1
a 128 renglones
128 columnas
A7 A8 A9 A10 A11 A12 A13
A6
A5
A4
A3
A2
A1
A0
Entrada de direcciones en columna
E
n
t
r
a
d
a

d
e

d
i
r
e
c
c
i
o
n
e
s
e
n

r
e
n
g
l
o
n
e
s

Sistemas Digitales 1 Dispositivos de Almacenamiento
Maribel Gmez Franco 45

Las DRAMs con palabras de 4 bits tienen una disposicin similar a la de la figura 2.21,
excepto que cada posicin dentro de la matriz contiene cuatro celdas y cada
direccin selecciona un grupo de cuatro celdas para la operacin de lectura y
escritura.

La figura 2.22 es la representacin simblica de una celda de memoria dinmica junto
con la circuitera que est asociada con ella. Los interruptores S1 hasta S4 son MOSFETs
que estn controlados por las salidas de varios decodificadores junto con la seal R/W.
El capacitor es la verdadera celda de almacenamiento.

En la operacin de escritura, las seales que provienen del decodificador de
direcciones y de la lgica de lectura/escritura cierran los interruptores S1 y S2, mientras
mantienen abiertos a S3 y S4. Esto conecta la entrada de los datos a C, un nivel lgico
de 1 carga a C y un nivel lgico de 0 lo descarga. Despus, los interruptores S1 y S2 se
abren y C queda desconectado del circuito.












Figura 2.22 Representacin simblica de una celda de memoria dinmica

En la operacin de lectura, se cierran los interruptores S2, S3 y S4 mientras S1 permanece
abierto. El amplificador de deteccin se conecta a C, este amplificador compara el
nivel de tensin de C con una referencia para determinar si es un 1 0 lgico, y genera
una salida de 0 V 5 V en la salida de datos. La salida est conectada a C y refresca el
nivel de tensin a travs del capacitor ya sea volvindolo a cargar o descargndolo. El
bit de la celda de memoria se refresca cada vez que se lee el dato contenido en sta.


2.3.2.3.2. Multiplexaje de direcciones

La matriz de la DRAM de 16 k 1 tiene 14 entradas de direcciones. Una matriz DRAM de
64 k 1 requiere 16 lneas para direcciones. Una DRAM de 1 M necesita 20 entradas
para direcciones, etc. La reduccin del nmero de terminales en los CI DRAM, se realiza
multiplexando las direcciones de tal forma que en cada terminal se reciban dos bits
diferentes de la direccin. Al minimizar el nmero de terminales se reduce el tamao de
los CIs y para el caso de tarjetas de memoria de gran capacidad esto es muy
importante porque se puede maximizar la cantidad de memoria en una tarjeta. En la
figura 2.23 se muestra el direccionamiento para una SRAM y una DRAM con las
direcciones multiplexadas.



C
S1
S2
S3
S4
Vref
Amplificador
de deteccin
Dato de
entrada Dato de
salida
+
Sistemas Digitales 1 Dispositivos de Almacenamiento
Maribel Gmez Franco 46



















Figura 2.23 Direccionamiento de memorias SRAM y DRAM

En la figura 2.24 se ilustra un diagrama simplificado de la arquitectura interna de una
DRAM 4116 de 16 k x 1. El CI contiene una matriz de celdas de 128 renglones por 128
columnas, slo existe una lnea de entrada de datos, una lnea para salida de datos y
una entrada R/W. Adems tiene siete lneas para direcciones y cada una de ellas tiene
una doble funcin. Asimismo, se incluyen dos entradas de seleccin para sincronizar las
direcciones de rengln y columna en los correspondientes registros que se encuentran
sobre el CI. La seal de seleccin de rengln RAS almacena en el registro de 7 bits
correspondiente a las direcciones de rengln, mientras que la seal de seleccin de
columna CAS almacena en el registro de 7 bits asociado con las direcciones de
columna.

La direccin de 14 bits se enva a la DRAM en dos pasos, utilizando las seales RAS y
CAS. Inicialmente stas seales permanecen en nivel alto. En el tiempo t0 se aplican los 7
bits de la direccin del rengln A0 a A6 en las entradas de direcciones. Despus de
esperar un tiempo de establecimiento de la direccin tRS, en t1 se activa la seal RAS
ponindola en bajo de tal manera que se habilitan el registro y el decodificador de
direcciones del rengln y as se pueda seleccionar uno de los renglones de la matriz.

En el tiempo t2 se aplican los 7 bits de la direccin de la columna A7 a A13 en las
entradas de direcciones. Despus de esperar el tiempo necesario para que se
establezca la direccin tCS, en t3 la entrada CAS se pone en nivel bajo para cargar la
direccin de la columna en el registro y decodificador correspondiente para
seleccionar una de las columnas de la matriz.

En este momento, se selecciona la celda que corresponde a la direccin de la columna
y del rengln y se puede realizar la operacin de lectura o escritura sobre esa celda.

Las seales RAS y CAS realizan la funcin de seleccin del circuito (CS), ya que ambas
deben estar en nivel bajo para que los decodificadores seleccionen una celda para
lectura o escritura.
A13
A12
A11
A10
A9
A8
A7
A6
A5
A4
A3
A2
A1
A0
CPU
A13
A12
A11
A10
A9
A8
A7
A6
A5
A4
A3
A2
A1
A0
Memoria SRAM
de 16 k
A13
A12
A11
A10
A9
A8
A7
A6
A5
A4
A3
A2
A1
A0
CPU

M
u
l
t
i
p
l
e
x
o
r


A6 /A13
A5 /A12
A4 /A11
A3 /A10
A2 /A9
A1 /A8
A0 /A7

DRAM 16 k
Entrada de datos
MUX
R/W RAS CAS
Salida de datos
b) Las direcciones del bus de la CPU se multiplexan para
direccionar la DRAM
a) Direccionamiento de memoria SRAM o
ROM por el bus de la CPU
Sistemas Digitales 1 Dispositivos de Almacenamiento
Maribel Gmez Franco 47




























a) Arquitectura simplificada de una DRAM 4116 de 16 k x 1















b) Temporizacin RAS/CAS

Figura 2.24 Arquitectura y temporizacin de las seales de control de una DRAM

2.3.2.3.3. Temporizacin de una DRAM

En la figura 2.25 se muestra el diagrama de tiempos que describe la operacin de
lectura de la RAM dinmica. En t0 se aplican los bits correspondientes a la direccin del
rengln en las entradas de direcciones de la DRAM. En t1 la seal RAS cambia a cero



Arreglo de celdas
128 x 128
Decodificador de
direcciones en columna
D
e
c
o
d
i
f
i
c
a
d
o
r

d
e

d
i
r
e
c
c
i
o
n
e
s

e
n

r
e
n
g
l

n

Registro de 7 bits
para las direcciones
de columna
R
e
g
i
s
t
r
o

d
e

7

b
i
t
s

p
a
r
a

l
a
s

d
i
r
e
c
c
i
o
n
e
s

d
e

r
e
n
g
l
o
n
e
s

EN
CLK
EN
CLK
CAS
RAS
A0/A7
A1/A8
A2/A9
A3/A10
A4/A11
A5/A12
A6/A13
A0
A1
A2
A3
A4
A5
A6
A7 A8 A9 A10 A11 A12 A13
R/W
Entrada
de dato
Salida
de dato
Entrada de
direcciones
Direcciones del rengln
Direcciones de columna
RAS
CAS
tRS
tCS
t0 t1
t2 t3
Sistemas Digitales 1 Dispositivos de Almacenamiento
Maribel Gmez Franco 48
para cargar la direccin del rengln a la memoria. En t2 se aplican los bits de la
direccin de la columna en las entradas de direcciones de la DRAM. En t3 la seal CAS
cambia a cero para cargar la direccin de la columna. En t4 la DRAM coloca el dato de
la celda seleccionada sobre la lnea de salida de dato. En t5 las todas las seales
vuelven a sus estados iniciales.


















Figura 2.25 Ciclo de lectura de una DRAM

En la figura 2.26 se muestra el diagrama de tiempos del ciclo de escritura de una DRAM.
En t0 se aplican los bits correspondientes a la direccin del rengln en las entradas de
direcciones de la DRAM. En t1 la seal RAS cambia a cero para cargar la direccin del
rengln a la memoria. En t2 se aplican los bits de la direccin de la columna en las
entradas de direcciones de la DRAM. En t3 la seal CAS cambia a cero para cargar la
direccin de la columna. En t4 se coloca el dato sobre la lnea de entrada de dato. En t5
la seal R/W se pone en cero para escribir el dato en la celda de memoria
seleccionada. En t6 se retira el dato de la lnea de entrada de dato. En t7 las todas las
seales vuelven a sus estados iniciales.


















Figura 2.26 Ciclo de escritura
RAS
CAS
t4
t5
t0 t1
t2
t3
Salida
de dato
Dato vlido
R/W
Direccin Rengln
Columna
RAS
CAS
t7
t6 t0 t1
t2 t3 t4 t5
Salida
de dato
Dato
vlido
R/W
Direccin Rengln
Columna
Sistemas Digitales 1 Dispositivos de Almacenamiento
Maribel Gmez Franco 49
2.3.2.3.4. Ciclos del modo pgina

El modo pgina permite operaciones de lectura y escritura sucesivas rpidas en cada
una de las direcciones de columna de un rengln seleccionado. Esto se puede observar
en la figura 2.27, primero, se carga la direccin del rengln cambiando la seal RAS a
nivel bajo y permanece en este nivel, mientras que CAS cambia entre los niveles alto y
bajo, seleccionando cada columna del rengln especificado. De este modo, despus
de un ciclo en modo pgina, se han ledo o escrito todas las direcciones del rengln
seleccionado.

















Figura 2.27 Ciclo del modo pgina para la operacin de lectura

2.3.2.3.5. Refresco del contenido de la DRAM

El refresco de una celda DRAM debe hacerse peridicamente (por lo general cada 4
ms) para no perder su informacin. En memorias de alta capacidad es casi imposible
cumplir con este requerimiento, afortunadamente los fabricantes han diseado las
DRAM de tal forma que cada vez que se lee una celda, se refresquen todas las celdas
que se encuentran en el mismo rengln.

Durante el funcionamiento normal de una DRAM es difcil que se realice una operacin
de lectura en todos los renglones, por lo que se requiere de una lgica de control para
la regeneracin, ya sea externa al circuito integrado o interna. Existen dos modos de
regeneracin: por rfaga y distribuida.

En la regeneracin por rfaga, se suspende el funcionamiento normal de operacin de la
memoria y se realiza la regeneracin rengln por rengln hasta que se han regenerado
todos los renglones de la DRAM. En la regeneracin distribuida la regeneracin de cada
rengln se intercala en la operacin normal de la memoria.

El mtodo ms comn para regenerar o refrescar una memoria DRAM es la
regeneracin slo de RAS. Se utiliza un contador de regeneraciones para suministrar las
direcciones de los renglones de la memoria y se aplican pulsos a la seal RAS para
cargar la direccin del rengln en memoria, CAS y R/W permanecen en nivel alto. En la
figura 2.28 se muestra este ciclo. El contador se incrementa y se repite el proceso hasta
Columna n
Dato
vlido
Rengln Columna 0 Columna 1
Direcciones
RAS
CAS
R/W
Dato de
salida
Dato
vlido
Dato
vlido
Sistemas Digitales 1 Dispositivos de Almacenamiento
Maribel Gmez Franco 50
llegar a la ltima direccin. En una memoria de 128 x 128 la regeneracin completa por
rfaga se realiza en aproximadamente 50 s.









Figura 2.28 Mtodo de regeneracin slo de RAS

Muchos fabricantes han desarrollado circuitos controladores de DRAM especiales para
manejar la operacin de refresco y multiplexaje en estas memorias. El CI 3242 de Intel
est diseado para utilizarse con DRAM de 16 k x 1.















a) Conexin del controlador de DRAM

Habilitacin del
refresco
Habilitacin del
rengln
Salida del controlador
Alto X Regeneracin de la direccin (proveniente del contador interno)
Bajo Alto Direcciones de rengln (A0-A6 provenientes de la CPU)
Bajo Bajo Direcciones de columna (A7-A13 provenientes de la CPU)

b) Tabla de operacin del controlador de DRAM 3242

Figura 2.29 Controlador DRAM 3242

La direccin de memoria de 14 bits que enva la CPU se conecta a la entrada de
direcciones del 3242 y la multiplexa hacia las direcciones de rengln y columna
utilizadas para realizar una operacin de lectura o escritura de la DRAM, ver figura
2.29(a). La salida del 3242 es una direccin multiplexada de 7 bits que se conecta a las
entradas de direccin de la DRAM. Existen tres posibles fuentes para esta direccin. El
contador de regeneracin de 7 bits se incrementa de acuerdo a una seal de reloj
externa conectada a su entrada COUNT para proporcionar las direcciones de los
renglones de la DRAM durante la operacin de regeneracin. Las seales habilitacin
de refresco y habilitacin de rengln determinan las direcciones de 7 bits que
Rengln 0
Rengln 1
Rengln 2
Rengln 127
RAS
Direccin
Habilitacin del refresco
Habilitacin del rengln
Conteo

A13
.
.
A0

Controlador
de DRAM
3242

DRAM
16 k x 1

A6/A7
.
.
A0/A13


4116
Contador
de 7 bits
A0-A13
Bus de direcciones
de la CPU
Direcciones
multiplexadas
Entrada
de dato
RAS
CAS
R/W
Salida
de dato
14
7
Sistemas Digitales 1 Dispositivos de Almacenamiento
Maribel Gmez Franco 51
aparecern en las salidas del controlador de acuerdo a la tabla mostrada en la figura
2.29(b).

Algunos CI DRAM tienen capacidad de refresco interno. La DRAM Intel 21256 de 256 k x
1 dispuesta como una matriz de 512 x 512 tiene una lgica de control interna en el CI
para regeneracin y un contador de regeneracin utilizados como parte de un mtodo
llamado regeneracin de CAS antes que de RAS. En este mtodo, la lnea de CAS pasa
a nivel bajo y a continuacin la lnea RAS pasa a nivel bajo. Esta secuencia activa un
contador de refresco interno que genera la direccin del rengln que debe recargase.

2.3.3. ROM (Memoria de slo lectura)

La memoria de solo lectura ROM, es un tipo de memoria de semiconductor no voltil
que contiene un conjunto de valores ya preestablecidos que puede almacenarse por
tiempo indefinido. Como su nombre lo indica, es una memoria que solo se puede leer
durante la operacin normal, esto quiere decir que no se puede escribir o alterar la
informacin que contiene. La mayora de las ROM tambin son de acceso aleatorio,
aunque este trmino corresponda las siglas de la RAM. Por ello, es mejor relacionar a la
RAM con una memoria de lectura y escritura.

En la figura 2.30 se muestra la construccin interna de una ROM que utiliza un
decodificador, cuatro compuertas de tres estados y algunos diodos. Esta ROM con tres
lneas de direccin puede almacenar hasta ocho datos de cuatro bits, esto es una
capacidad de 32 bits. Cada palabra de cuatro bits, o nibble, se puede leer
proporcionando la direccin correcta a las entradas del decodificador y habilitando las
compuertas de tres estados con un nivel bajo en la entrada de control de seleccin de
circuito integrado CS.





















Figura 2.30 ROM construida a partir de un arreglo de diodos.

Cuando en la entrada de direccin se pone un 1112 se habilita la salida 7 del
decodificador poniendo a cero o nivel bajo esta salida. El diodo que se encuentra entre
A2 A1 A0 DECODIFICADOR

7 6 5 4 3 2 1 0
Entradas de direccin
CS
+5 V
D3


D2


D1


D0
Sistemas Digitales 1 Dispositivos de Almacenamiento
Maribel Gmez Franco 52
la salida 7 y D0 se polariza, generando un cero en la salida D0. Los otros diodos que estn
conectados a la salida D0 no conducen por estar polarizados inversamente, esto se
debe a que las otras salidas del decodificador estn en nivel alto. Como D3, D2 y D1 no
tienen diodos que pongan estas salidas en nivel bajo, su salida es uno. El valor de salida
se determina por la colocacin de los diodos entre la salida del decodificador y las
salidas D0 a D3. En la tabla 2.4 se muestra la informacin almacenada para cada
localidad de memoria.

Esta memoria tiene la capacidad de direccionar ocho localidades de memoria, cada
una de cuatro bits, por lo tanto, tiene una capacidad de 8 4, esto es, puede
almacenar 32 bits de informacin. Este tipo de ROM se programa en la fbrica con un
patrn de bits predefinidos, algunas veces especificado por el cliente. Este tipo de ROM
se utiliza para memorias de computadoras, generadores de caracteres y convertidores
de cdigo.

Tabla 2.4 Informacin almacenada en la memoria

Direccin Dato
0 0 0 0 0 0 1
0 0 1 1 1 1 0
0 1 0 0 1 1 1
0 1 1 1 1 0 0
1 0 0 0 0 1 1
1 0 1 1 1 0 0
1 1 0 0 1 1 1
1 1 1 1 1 1 0

2.3.3.1. PROM (Programmable Read Only Memory)

El problema con la ROM es que una vez fabricado el CI, ya no se puede modificar el
patrn de bits que hay en l, y en caso de requerir una modificacin es necesario
fabricar un nuevo CI lo que resulta muy costoso. Para solucionar este problema, se cre
la PROM. La PROM es una memoria programable de slo lectura donde el usuario
puede programarla estableciendo su propio patrn de bits. La programacin se realiza
quemando un fusible semiconductor pequeo en la celda de memoria donde se
requiere tener un uno. En la figura 2.31 se muestra la celda de la PROM.










Figura 2.31 Celda de memoria PROM

Para programar una PROM tpica, se coloca la direccin de la localidad de memoria en
las lneas de direccin de la PROM, a continuacin se pone el dato a ser guardado en
Fusible
Sistemas Digitales 1 Dispositivos de Almacenamiento
Maribel Gmez Franco 53
las lneas de salida de datos, despus se mantiene CS en nivel ato y luego se introduce
un pulso en nivel alto en la entrada PM por unos cuantos milisegundos. Con esto se
quema el fusible de los diodos en los que se coloca un uno, pero no en los diodos en los
que se coloca un cero. Una vez que se quema el fusible, la lectura de la celda ser de
uno, debido a que el diodo ha sido desconectado. En la figura 2.31 se muestra el
circuito de una PROM de 44 que programa del modo descrito anteriormente. Este tipo
de memorias se programan utilizando un dispositivo especial de programacin que
emplea pulsos elctricos.











































Figura 2.31 PROM de 4 4
A1 A0

3 2 1 0
Entradas de direccin
CS
D3




D2



D1




D0
Salidas de collector
abierto
Vpp
+ 25
Vcc
+ 5 V
+ 25
Salidas de collector
abierto
PM
Sistemas Digitales 1 Dispositivos de Almacenamiento
Maribel Gmez Franco 54
Un programador de PROM quemar el fusible de cada bit que necesite poner a un uno
lgico aplicando una alta tensin (10 V a 30 V) a la terminal especial de programacin.
Una vez que se quema fsicamente el fusible, una PROM no puede reprogramarse.


2.3.3.2. EPROM (Erasable Programmable Read Only Memory)

Una vez que la PROM ha sido programada al quemar los fusibles de los bits en los que se
necesitan unos, ya no se puede volver a programar. La EPROM permite que el CI pueda
borrarse y luego programarlo con un nuevo patrn de bits. La EPROM es una memoria
programable y borrable de slo lectura.
Las EPROM utilizan una celda de memoria sensible a la luz que, cuando se expone a la
luz ultravioleta, regresa un valor de uno. Por consiguiente, la mayora de las EPROM
tienen unos en todas sus celdas de memoria despus de que se han borrado al
exponerlas a la luz ultravioleta por un lapso de aproximadamente 20 minutos.

En la figura 2.32 se puede observar que la celda de memoria de una EPROM tiene una
compuerta flotante para el transistor de efecto de campo que puede cargarse
aplicndole una tensin alta, de 12,5 V a 25 V. La tensin de programacin exacta
depende del tipo de EPROM. Es importante que el usuario verifique en las
especificaciones del CI el voltaje de programacin exacto que debe emplearse. La
carga de esta compuerta flotante hace que la celda de memoria guarde un cero.
Dado que los electrones son forzados a pasar por una barrera muy delgada de dixido
de silicio (un aislante) para cargar la compuerta flotante, stos no la cruzarn en
direccin opuesta a menos que sus niveles de energa aumenten por medios artificiales.
La luz ultravioleta hace que la compuerta flotante pierda su carga, ocasionando con
esto que la celda de memoria vuelva a tomar su valor de uno. Muchas EPROM se
borrarn completamente al exponerlas a luz ultravioleta con una longitud de onda de 2
500 ! o menor y una intensidad de 15 W-s/ cm
2
durante 15 o 20 minutos.

















Figura 2.32 Transistor FET de una EPROM


Una lmpara germicida fluorescente de 15 W funcionar muy bien para el borrado de
la EPROM. Las EPROMs deben colocarse a una distancia aproximada de una pulgada
debajo de la luz. La luz debe estar confinada, de modo tal que los ojos no queden
+VG
Compuerta normal
Compuerta flotante
Canal N
Fuente
Drenaje
Sustrato P
N
N
SiO2
e e e e e
Sistemas Digitales 1 Dispositivos de Almacenamiento
Maribel Gmez Franco 55
expuestos a ella durante un tiempo prolongado. El borrado se inicia a una longitud de
onda aproximada de 4000 !. Esto significa que la luz fluorescente normal puede borrar
una EPROM en un lapso de tres a cuatro aos. La luz directa del sol puede hacerlo slo
en una semana. Por lo tanto, la EPROM debe tener la ventana ptica de la pastilla
cubierta para impedir que la luz externa entre en el CI.

El material aislante alrededor de la compuerta flotante tiene una debilidad: se puede
hacer ligeramente conductivo por la exposicin a luz ultravioleta de una cierta longitud
de onda. Cuando esto sucede, la carga de la compuerta flotante se puede disipar,
borrando la EPROM. Sin embargo, si el material aislante se expone a esta luz ultravioleta
muy seguido, este se rompe y se convierte en conductivo permanentemente. Cuando
esto sucede, la EPROM se vuelve intil y hay que descartarla.

En la figura 2.33 se muestra la distribucin de terminales de la EPROM 2716. Existen 11
lneas de direccin, de la A0 a la A10, que seleccionan la localidad de memoria a leer o
programar, y ocho lneas de datos, de D0 a D7, que se emplean para dar salida a los
datos o colocarlos en la memoria. El CI tiene un voltaje de alimentacin de +5 V y +25 V
en la entrada Vpp para programar la memoria. La terminal OE (habilitacin de salida)
controla las compuertas internas de tres estados de las terminales de salida D0 a D7. La
terminal CE (habilitacin de circuito) tambin controla las compuertas de salida de tres
estados. La diferencia entre ellas es que cuando CE regresa al estado inactivo (alto) la
2716 entra en modo de reserva, lo que hace que consuma un 75% menos de potencia.




















Figura 2.33 EPROM 2764A y 2716

Para programar la EPROM 2716, se aplican + 25 V a la terminal Vpp, OE se pone en nivel
alto y CE se emplea para controlar la programacin. El byte que va a guardarse en la
memoria se coloca en las lneas de salida (D0 a D7) y se aplica un pulso alto, a partir del
nivel bajo, en la terminal CE por 50 ms. Las localidades de memoria pueden
programarse aleatoria o secuencialmente. Una vez programado, un 0 permanecer en
as hasta que sea borrado por exposicin a la luz ultravioleta.

Las EPROM se han convertido rpidamente en el CI ms empleado para almacenar
programas de puesta en marcha y sistemas operativos para las computadoras que se
utilizan en la actualidad.







EPROM

2716

2 k 8
A7
A6
A5
A4
A3
A2
A1
A0
D0
D1
D2
GND
Vcc
A8
A9
Vpp
OE
A10
CE
D7
D6
D5
D4
D3
Sistemas Digitales 1 Dispositivos de Almacenamiento
Maribel Gmez Franco 56
2.3.3.3. EEPROM (Ellectricaly Erasable Programmable Read Only
Memory)

La EEPROM es una memoria programable y borrable elctricamente de slo lectura.
Este tipo de memoria mantiene el patrn de bits que est guardado en ella cuando se
retira la energa elctrica. El patrn de bits puede ser programado y modificado
mediante la aplicacin de un campo elctrico a la celda de memoria. La ventaja
principal de este tipo de memoria es la facilidad con que puede modificarse.

Las EPROMs no pueden borrarse de manera selectiva ni con mucha rapidez. La
EEPROM es una mejora sobre la tecnologa EPROM bsica. La figura 2.34 muestra el
transistor de memoria EEPROM bsico y la compuerta flotante. En la EPROM, los
electrones son obligados a pasar a travs del aislante de dixido de silicio al aplicar una
alta tensin entre el sustrato P y la compuerta normal. Los electrones se concentran en
la compuerta flotante y quedan atrapados en ella, cargando as la compuerta.
Cuando la compuerta est cargada, el transistor de efecto de campo no conduce.

















Figura 2.34 Transistor de una EEPROM

En la EEPROM, la compuerta flotante y la compuerta normal tienen una protuberancia
que queda muy cerca del drenaje del transistor. Los electrones son obligados a entrar
en la compuerta flotante al aplicar una alta tensin de menos a ms del drenaje a la
compuerta normal. Entonces, al igual que en el transistor de la EPROM, los electrones se
concentran en la compuerta flotante, cargndola negativamente. Invirtiendo la
polaridad del voltaje se retiran los electrones y se invierte la carga. Esto es lo que da a la
EEPROM la caracterstica de poder ser borrada y reprogramada con rapidez, con una
tensin de aproximadamente 21 V.


Otra ventaja de la EEPROM es el poder programar bytes individuales en la memoria. Al
escribir datos en la memoria los circuitos internos automticamente borran los que ya
existan. La EEPROM puede programarse ms rpido que muchas EPROM requiere de 5
ms para escribir una localidad de la EEPROM, siendo que la EPROM tarda 50 ms, algunas
tardan mucho menos.

Compuerta normal
Compuerta flotante
+VG
Sustrato P
N N
SiO2
Canal N
Drenaje Fuente xido tnel
Sistemas Digitales 1 Dispositivos de Almacenamiento
Maribel Gmez Franco 57
Las primeras EEPROMs como los 2816 de intel, necesitaban circuitera externa de soporte
que incluan el voltaje de programacin Vpp de 21 V que era proporcionado por una
fuente de 5 V a travs de un convertidor de cc a cc. Adems de circuitos que
controlaban la temporizacin del borrado y programacin.

Las EEPROMs tienen dos desventajas: densidad y costo. Al ser ms complejas las celdas
de memoria y al necesitar circuitos externos, el silicio que se necesita se duplica entre
una y otra aumentando el costo. De tal forma que si se necesita gran cantidad de
memoria las EEPROM no podran sustituir a las EPROM.

En la figura 2.35(a) se muestra el smbolo lgico para la EEPROM 2864 de Intel. Est
organizada como una matriz de 8k x 8 con 13 entradas de direccin (8192 bits) y 8
terminales de E/S. Las entradas de control determinan su modo de operacin, esto se
puede observar en la figura 2.35(b). Cuando CE est en nivel alto el circuito se
encuentra en modo de espera con bajo consumo de corriente, no se efectan
operaciones y las terminales de datos estn en alta impedancia.


Entradas
Modo
CE OE WE
Terminales E/S
Lectura Bajo Bajo Alto Dato de salida
Escritura Bajo Alto Bajo Dato de entrada
Espera Alto X X Alta-Z

b) Modos de operacin





a) smbolo lgico


















c) Temporizacin de la operacin de escritura


Figura 2.35 EEPROM 2864
Datos vlidos
Modo de escritura Espera
Direccin
CE
WE
OE
Datos E/S
Tpicamente 200 ns
Borrar y almacenar
operaciones tpicamente 5 ms
t1 t2 t3 t4 t5
I/O7
I/O6
I/O5
I/O4
I/O3
I/O2
I/O1
I/O0





EEPROM

2864

8 k 8
A12
A11
.
.
.
A1
A0
OE
CE
WE
Sistemas Digitales 1 Dispositivos de Almacenamiento
Maribel Gmez Franco 58

Para leer el contenido de una localidad de memoria, primero se pone la direccin, CE
se pone en bajo y OE que es la habilitacin de salida tambin se pone en bajo para
obtener el dato en las terminales de salida. WE se mantiene en nivel alto.

Para escribir o programar en una localidad de una EEPROM se deshabilitan los buffers
de salida para introducir los datos de entrada en las terminales E/S. En la figura 2.35(c) se
muestra el diagrama de tiempos para la operacin de escritura. Antes de t1, el circuito
se encuentra en modo de espera. En ese momento se le proporciona la direccin,
despus en t2 se ponen en nivel bajo las entradas de control CE y WE, para iniciar la
escritura. OE que es la habilitacin de salida se pone en nivel alto, as las terminales de
datos estn en alta impedancia. Los datos se ponen en las terminales de E/S en t3 y se
escriben en la direccin de memoria en el flanco de subida de WE en t4. En realidad,
los datos antes de ser almacenados en la memoria pasan a una memoria intermedia
formada por flip-flops que es parte de los circuitos de la 2864. Los datos se retienen ah
mientras otros circuitos realizan el borrado en la localidad de memoria seleccionada,
despus de que el byte es transferido desde el buffer hasta a la matriz de la EEPROM.
Esta operacin de borrar y almacenar tarda 5 ms. Cuando CE cambia a nivel alto en t4
el circuito regresa al modo de espera, mientras se efectan las ultimas operaciones
internas en el circuito integrado.

Las 2864 tienen un modo de escritura acrecentado que permite escribir hasta 16 bytes
en la memoria intermedia de flip-flop, mientras el circuito interno de la EEPROM borra las
localidades de memoria seleccionadas,. Pasando despus los 16 bytes a las localidades
de memoria seleccionadas. Este proceso tambin requiere de aproximadamente 5ms.


2.3.3.4. Memorias Instantneas (Flash memory)

La memoria instantnea o de rfaga, es un tipo de EEPROM, no voltil, que se puede
borrar y programar elctricamente dentro del sistema, pero con densidades y costos
mucho ms cercanos a las EPROM, manteniendo a la vez el acceso de lectura a alta
velocidad.














Figura 2.36 Complejidad y costo de las memorias no voltiles

En cuanto a su estructura, una memoria instantnea es como una celda EEPROM
sencilla de un solo transistor. Tiene una capa ms delgada de xido en la compuerta
que permite borrar por medio de electricidad, pero que se puede construir con
densidades mucho ms altas que las EEPROMs. El costo de la memoria instantnea es
EEPROM
Instantnea
EPROM
ROM y PROM
C
o
m
p
l
e
j
i
d
a
d

y

c
o
s
t
o

d
e
l

d
i
s
p
o
s
i
t
i
v
o
Elcticamente borrable en circuito byte por byte
Elcticamente borrable en circuito por sector o
masivamente (todas las celdas)
Borrable en forma masiva con UV; se borra y
vuelve a programar fuera del circuito
No se pueden borrar y reprogramar
Sistemas Digitales 1 Dispositivos de Almacenamiento
Maribel Gmez Franco 59
bastante menor al de la EEPROM, pero an no se acerca al de la EPROM hasta que
mejore la tecnologa de la rfaga. En la figura 2.36 se muestran los intercambios para las
diversas memorias no voltiles de semiconductores. Puesto que la flexibilidad de borrar y
reprogramar aumenta, lo mismo sucede con la complejidad y costo de la memoria. Las
ROM y PROM son las ms sencillas y baratas, pero no se pueden borrar y reprogramar.
La EEPROM es la ms compleja y costosa porque se puede borrar y reprogramar en el
circuito byte por byte.

Las memorias instantneas o de rfaga reciben este nombre por sus muy cortos tiempos
para borrar y escribir. Todas las celdas del microcircuito se borran en forma simultnea;
este proceso de borrado requiere de cientos de milisegundos en comparacin con los
20 minutos de la EPROM borrada por luz ultravioleta. Algunas de las memorias
instantneas ms nuevas ofrecen un modo de borrado por sectores, en las que cada
vez se puede borrar un sector especfico de la matriz de memoria, por ejemplo 512 bytes
pueden ser borrados a un tiempo. Esto evita tener que borrar todas las celdas cuando
solo se necesita actualizar una parte de la memoria. El tiempo de escritura aproximado
es de 10 s por byte comparada con 100 s de la EPROM ms avanzada y los 5 ms de la
EEPROM.

En la figura 2.37(a) se muestra el smbolo lgico de la memoria instantnea de Intel
28F256A CMOS, que tiene una capacidad de 32 k 8. En el diagrama se muestran 15
lneas de direccin (A0 A14) para seleccionar 2
15
=32 k=32 768 localidades de memoria.
Las ocho terminales de datos de entrada/salida (I/O0 I/O7) se utlizan como entradas
durante la escritura y como salida durante la lectura. Estas terminales permanecen en
estado de alta impedancia cuando se dehabilita la memoria (CE en nivel alto) o
cuando se deshabilitan las salidas (OE en nivel alto). La entrada WE de habilitacin de
escritura se utiliza para controlar las operaciones de escritura en la memoria. En el
smbolo lgico se puede observar que requiere de fuentes de tensin: Vcc es la fuente
normal de alimentacin de +5 V; Vpp es una tensin de +12 V nominales para borrado y
programacin, necesario para las operaciones de escritura.





Entradas
Modo
CE OE WE
Terminales E/S
Lectura Bajo Bajo Alto Dato de salida
Escritura
1
Bajo Alto Bajo Dato de entrada
Espera Alto X X Alta-Z
1
Si Vpp 6,5, no se puede hacer una operacin de escritura





a) smbolo lgico b) Modo de operacin

Figura 2.37 Memoria instantnea 28F256



28F256A





CMOS

32 k 8


Memoria
instantnea
A14
A13
.
.
.
A1
A0
OE
CE
WE
I/O7
I/O6
I/O5
I/O4
I/O3
I/O2
I/O1
I/O0
+Vpp +Vcc
Sistemas Digitales 1 Dispositivos de Almacenamiento
Maribel Gmez Franco 60
Las entradas de control CE, OE y WE controlas las terminales de datos como se
muestra en la figura 2.37(b). Estas terminales de datos por lo general estn conectadas
a un canal de datos. Durante una operacin de escritura, se transfieren los datos por el
canal (bus), por lo general desde el microprocesador y hacia adentro de la memoria. Es
importante considerar que si la terminal VPP no se mantiene a una tensin alta (mayor
que 6,5 V), las operaciones de escritura no se podran llevar a cabo y el microcircuito
slo se puede leer, esto es, acta como una memoria de slo lectura y no se puede
alterar su contenido. Durante una operacin de lectura, los datos dentro del
microcircuito se transfieren por el canal de datos, generalmente al microprocesador.

En la figura 2.38 se muestra la arquitectura de la 28F256A. La caracterstica principal de
esta estructura es el registro de comando (orden), que se utiliza para manejar todas las
funciones de la memoria. Los cdigos de comando se escriben en este registro para
controlar las operaciones que ocurren dentro de la memoria. La lgica de control del
estado examina el contenido de este registro y genera seales lgicas y de control para
el resto de los circuitos en la memoria para ejecutar los pasos de la operacin.


























Figura 2.38 Diagrama funcional de la memoria instantnea 27F256A


Para iniciar una operacin de lectura, primero es necesario escribir ceros (0016) en el
registro de comandos. Esto se hace poniendo 0016 a las terminales de datos y aplicando
pulsos a WE para que se vaya a nivel bajo mientras que CE est en bajo y OE en alto
como se especifica en la figura 2.37(b). Las entradas de direccin pueden estar en
cualquier estado para este paso, puesto que los datos de entrada se enviarn
directamente al registro de comando. Una vez hecho lo anterior, se establece el
dispositivo para leer los datos de la matriz de memoria. Los datos de la memoria se leen
de la forma usual: primero se pone la direccin, enseguida se ponen WE y CE ambos
Interruptor de
voltaje para borrar
Buffers de
entrada/salida
Interruptor de
voltaje PGM
Lgica de
habilitacin de
microcircuito/
habilitacin de
salidas
Enclaves de datos
(Latch)
Control de estado




Programa integrado/
Temporizador para
detener el borrado
Registro
de comando
Decodificador Y


Decodificador X
E
n
c
l
a
v
e

d
e

d
i
r
e
c
c
i
o
n
e
s

Compuerta Y


Matriz de celdas de
262 144 bits
Vcc
Vss
Vpp
WE
CE
OE
A0 A14
A la fuente
del arreglo
STB
STB
DQ0 DQ7
.
.
.
Sistemas Digitales 1 Dispositivos de Almacenamiento
Maribel Gmez Franco 61
en nivel bajo y se aplican pulsos a OE para que se vaya a nivel bajo con el fin de
habilitar las memorias intermedias de salida para que pasen los datos desde la matriz de
la celda hasta las terminales de salida de datos. El tiempo de acceso para lectura de la
28F256A es de 120 ns, mximo. El dispositivo permanece habilitado para lecturas de
memoria siempre y cuando el contenido del registro de comando permanezca en 0016.

Para borrar todo el contenido de la matriz de memoria se requieren dos pasos: primero
escribir el cdigo 2016 en el registro de comandos a fin de establecer la operacin de
borrar y volver a escribir el cdigo 2016 en el registro de comandos para iniciar la
operacin de borrado. Despus de escribir el segundo comando, se emplean los 12 V
de Vpp para borrar todas las celdas en la matriz. Este proceso requiere de alrededor de
10 ms.

Despus de la operacin de borrado, es necesario comprobar que se hayan borrado
todas las celdas de la memoria; es decir, que todos los bytes=FF16. Esta operacin de
comprobar el borrado se debe efectuar en cada direccin de byte. Para empezar se
escribe A016 en el registro de comando. Luego, se efecta una operacin de lectura
que es la operacin que se va a comprobar y se verifican los datos de salida para ver
que sean iguales a FF16. Estos dos pasos se realizan para cada direccin, el tiempo total
para comprobar todas las direcciones es de aproximadamente 1 s. Si los datos en una
direccin no aparecen como FF16, hay que volver a borrar la memoria utilizando la
secuencia de borrado descrita anteriormente.

El dispositivo se puede establecer para programacin por bytes si se escribe el cdigo
4016 en el registro de comando. Esto contina, escribiendo los datos que se van a
programar en la direccin deseada.

Despus de haber programado un byte en una direccin se debe comprobar el
contenido de la misma para tener la certeza de que se program correctamente. Para
ello, primero se escribe el cdigo C016 en el registro de comandos para iniciar la
operacin de comprobacin. Luego, se contina con una operacin de lectura, lo cual
har que la memoria d salida a los datos de la direccin que se acaba de programar,
con el fin de compararlos con los datos deseados.

Todo el proceso de programar y comprobar cada localidad de direccin en la 28F256A
requiere de unos 500 ms.

2.3.3.5. Aplicaciones de la ROM

La aplicacin ms extensa de las ROMs es en el almacenamiento de datos y cdigos de
programas que deben estar disponibles al conectar la corriente elctrica en los sistemas
basados en microprocesador. Estos datos y cdigos de programa se llaman fi rmware
(microprogramacin cableada) porque estn firmemente almacenados en el hardware
y no estn sujetos a cambio durante el funcionamiento normal del sistema. Algunas PCs
almacenan los programas de sus sistemas operativos y los intrpretes de lenguaje en el
firmware de la ROM.

Los productos para consumidores tales como automviles, videocaseteras,
reproductores de CD y hornos de microondas as como todos los tipos de maquinas
para produccin, tienen microcontroladores que operan de acuerdo a los programas y
datos almacenados en la ROM.

Sistemas Digitales 1 Dispositivos de Almacenamiento
Maribel Gmez Franco 62
Al encender una computadora se ejecutan instrucciones que se encuentran en el
programa de arranque, por lo general, estas instrucciones hacen que la CPU inicialice
la circuitera del sistema.

Las ROMS se utilizan para almacenar tablas de datos que no varan, como son las tablas
trigonomtricas y tablas de conversin de cdigo. Por ejemplo, la MM4220BM almacena
la funcin seno para ngulos entre 0 y 90 grados. La ROM tiene una capacidad de 128
8. Las siete entradas de direccin representan el ngulo en incrementos de
aproximadamente 0,7. Cuando una direccin se aplica a la ROM, las salidas de datos
representarn el valor aproximado del seno del ngulo.

El circuito convertidor de datos toma datos expresados en cierto cdigo y produce una
salida expresada en otro tipo. Por ejemplo, cuando se necesita convertir cdigo binario
a cdigo BCD con el fin de mostrarlo en indicadores de 7 segmentos. El mtodo ms
sencillo es utilizar una ROM programada de tal forma que la aplicacin de cierta
direccin genera una salida de datos que representa el equivalente en el nuevo
cdigo. La 74185 es una ROM TTL que almacena la conversin de cdigo binario a BCD
para una entrada binaria de 6 bits.

El generador de funciones es un circuito que produce formas de onda como senoidales,
diente de sierra, triangulares y cuadradas. Por ejemplo, una ROM de 256 8 almacena
256 distintos valores que corresponden cada uno a un valor diferente de la forma de
onda. Generalmente, se utiliza un contador para generar las direcciones de forma
continua y un convertidor digital/anlogo para convertir el nmero digital a un nivel de
tensin. La salida que se genera es escalonada por lo que se utiliza un filtro para suavizar
la seal generada. La misma idea se utiliza en algunos sintetizadores de voz, donde la
forma de onda digitalizada de voz se almacena en la ROM.

Varios fabricantes producen pequeas tarjetas de circuitos impresos con decenas de
megabytes de memoria flash para usarse como cinta de video y almacenar imgenes
en cmaras digitales, adems de muchos otros usos. Algn da podrn usarse las
memorias flash para sustituir a los discos, lo cual representara un avance importante, en
vista de sus tiempos de acceso de 100 ns. El principal problema de ingeniera en la
actualidad es que las memorias flash se desgastan despus de 10 000 borrados,
mientras que los discos duran aos, por mas frecuentemente que se rescriban. En la
tabla 2.5 se presenta un resumen de los diversos tipos de memoria.

Tabla 2.5 Comparacin de los diferentes tipos de memorias

Tipo Categora Borrado
Alterable
por byte
Voltil Uso tpico
SRAM Lectura/Escritura Elctrico S S Cach nivel 2
DRAM Lectura/Escritura Elctrico S S Memoria principal
ROM Slo lectura Imposible No No Aparatos en volmenes grandes
PROM Slo lectura Imposible No No Equipos en volumen pequeo
EPROM Principalmente lectura Luz UV No No Prototipos de dispositivos
EEPROM Principalmente lectura Elctrico S No Prototipos de dispositivos
Flash Lectura/escritura Elctrico No No Pelcula para cmara digital



Sistemas Digitales 1 Dispositivos de Almacenamiento
Maribel Gmez Franco 63
2.3.4. Expansin de memorias

En muchas aplicaciones las memorias no satisfacen la capacidad de almacenamiento
requerido. Las memorias disponibles se pueden ampliar para incrementar el tamao de
la palabra (nmero de bits en cada direccin) o la capacidad de la palabra (nmero
de direcciones), o ambas. La expansin de memoria se puede lograr agregando el
nmero apropiado de circuitos de memoria a las lneas de direccin, datos y control.

2.3.4.1. Expansin del tamao de la palabra

El tamao de la palabra de una memoria puede incrementarse aumentando el nmero
de bits de datos. Por ejemplo, a partir de dos memorias de 4 bits se puede obtener una
memoria de 8 bits. La conexin para estas dos memorias se ilustra en la figura 2.39.















Figura 2.39 Expansin del tamao de la palabra de dos RAMs de 256x4 a una RAM de 256x8






















Figura 2.40 Combinacin de dos RAMs de 16 x 4 para un mdulo de 16 x 8

RAM
256x4
8 bits
4 bits

RAM
256x4
8 bits
4 bits
Bus de
direcciones
Bus de
direcciones
Bus de
control
Bus de
control
Bus de
direcciones
8 bits
8 bits
4 bits
4 bits
8 bits
Bus de
control
RAM 1
RAM 2
A3 A2 A1 A0

R/W
CS
RAM 16 x 4

I/O3 I/O2 I/O1 I/O0
AB3
AB2
AB1
AB0
R/W
CS
DB7
DB6
DB5
DB4
DB3
DB2
DB1
DB0
A3 A2 A1 A0

R/W
CS
RAM 16 x 4

I/O3 I/O2 I/O1 I/O0
Sistemas Digitales 1 Dispositivos de Almacenamiento
Maribel Gmez Franco 64

Ejemplo: Se requiere de una memoria que pueda almacenar 16 palabras de 8 bits y slo
se dispone de dos RAMs de 16 x 4 con lneas de entrada/salida comunes. La solucin se
indica en la figura 2.40.

Cada circuito puede almacenar 16 palabras de 4 bits y se requiere almacenar 16
palabras de 8 bits, por lo tanto, la RAM 0 se utiliza para almacenar los cuatro bits de la
parte alta y la RAM 1 almacena los cuatro bits de la parte inferior de cada una de las 16
palabras. El intervalo de direccin es de 0000 a 1111.


2.3.4.2. Expansin de la capacidad de una palabra

La capacidad de una palabra se incrementa aumentando el nmero de direcciones.

Ejemplo: se requiere de una memoria que pueda almacenar 32 palabras de 4 bits y slo
se dispone de dos RAMs de 16 x 4. La solucin se muestra en la figura 2.41.
























Figura 2.41 Combinacin de dos RAMs de 16x4 para obtener una memoria de 32x4

Cada circuito puede almacenar 16 palabras de 4 bits, y se requiere incrementar el
nmero de palabras que se pueden almacenar, por lo tanto en la RAM 0 se almacenan
las primeras 16 palabras y en la RAM 1 las siguientes 16. El intervalo de direcciones es de
00000 a 01111 palabras en RAM 0 y 10000 a 11111 palabras en RAM 1. Observando los
intervalos de direcciones se puede notar que slo el bit ms significativo cambia y este
bit es que se utiliza para seleccionar una u otra memoria, eliminando de esta forma la
lnea de control externa CS. Cuando la lnea de direccin A5 es cero, se habilita la RAM
0 para leer o escribir de las primeras 16 palabras. Cuando la lnea de direccin es uno,
entonces debe habilitarse la RAM 1. Como la lnea CS de la RAM se habilita en nivel
A3 A2 A1 A0

R/W
CS
RAM 0
16 x 4
I/O3 I/O2 I/O1 I/O0
AB4
AB3
AB2
AB1
AB0
R/W
DB7
DB6
DB5
DB4
A3 A2 A1 A0

R/W
CS
RAM1
16 x 4
I/O3 I/O2 I/O1 I/O0
Sistemas Digitales 1 Dispositivos de Almacenamiento
Maribel Gmez Franco 65
bajo, es necesario conectar un inversor entre A5 y CS de la RAM1. Utilizando este inversor
slo una RAM se habilita a la vez, eliminando as cualquier conflicto que se pudiera
presentar en el bus de datos.

2.4. Bibliografa

Gajsky, Daniel. Principles of Digital Design. Ed. Prentice Hall. USA, 1997.

Tocci, Ronald. Sistemas Digitales Principios y Aplicaciones. Sexta edicin. Ed. Prentice
Hall, Mxico, 1996.

Floyd, T.L. Fundamentos de Sistemas Digitales. Ed. Prentice Hall. Sexta edicin, Madrid,
1997.

Mano, M. Morris. Lgica Digital y Diseo de Computadores. Ed. Prentice Hall. Mxico,
1982.

Bignell y Donovan. Electrnica Digital. Tercera edicin en Ingls (primera edicin en
espaol). Ed. CECSA. Mxico, 1999.

Sistemas Digitales 1 Lgica de transferencia entre registros
Maribel Gmez Franco 66

UNIDAD III. LGICA DE TRANSFERENCIA ENTRE REGISTROS


3.1 Introduccin

Un sistema digital tpico puede ser la unidad procesadora de un computador digital. El
diagrama a bloque se muestra en la figura 3.1. La unidad de memoria almacena los
programas as como los datos de entrada, salida e intermedios. La unidad de proceso
realiza las tareas aritmticas y de procesamiento de datos segn lo especifique el
programa. La unidad de control supervisa el flujo de informacin entre las diferentes
unidades. Dicha unidad obtiene las instrucciones una a una del programa almacenado
en la memoria. Para cada instruccin, ella informa al procesador a fin de ejecutar la
operacin especifica de la instruccin.

















Figura 3.1. Diagrama a bloques de un computador digital

Un sistema digital en trminos de funciones tales como sumadores, decodificadores y
registros no puede describirse por medio de tcnicas combinacionales o de secuencias
lgicas, es necesario emplear una notacin matemtica de alto nivel como el mtodo
de Lgica de transferencia entre registros. En este mtodo, se seleccionan registros
como componentes primarios de un sistema digital en lugar de compuertas o flip-flops.

La lgica de transferencia de registros utiliza un conjunto de expresiones y afirmaciones
similares a las usadas en los lenguajes de programacin. Los componentes bsicos de
este mtodo son aquellos que describen un sistema digital a partir del nivel operacional.
La operacin de un sistema digital se describe especificando:

# El conjunto de registros en el sistema y sus funciones.
# La informacin en cdigo binario almacenada en los registros
# Las operaciones realizadas a partir de la informacin almacenada en los registros.
# Las funciones de control que inician la secuencia de operaciones.

Un registro abarca todos los tipos de registros tales como registros de desplazamiento,
contadores y unidades de memoria.

Un contador es un registro cuya funcin es incrementar en 1 la informacin almacenada
en l.
Unidad
de control
Procesador
o Unidad
Aritmtica
Unidad de
memoria
Dispositivos de
entrada y salida
Unidad de procesamiento central CPU
Sistemas Digitales 1 Lgica de transferencia entre registros
Maribel Gmez Franco 67

Una unidad de memoria se considera como una coleccin de registros de
almacenamiento donde se guarda la informacin.

En este mtodo, los flip-flops y las compuertas asociadas de cualquier circuito
secuencial se llama registro.

La informacin binaria que se almacena en los registros puede ser nmeros binarios,
nmeros BCD, caracteres alfanumricos, control de informacin o cualquier informacin
binaria codificada. Esta informacin se manipula con operaciones aritmticas para los
nmeros y operaciones lgicas para el control de la informacin.

Las microoperaciones son las operaciones que se realizan con los datos almacenados
en los registros, como pueden ser desplazar, contar, sumar, borrar y cargar. Una
microoperacin se ejecuta con un slo pulso de reloj si la operacin se hace en
paralelo. Si la operacin se hace en serie, el nmero de pulsos depende del tamao de
la palabra del sistema.

Las funciones de control que inician la secuencia de las operaciones consisten de
seales de tiempo que le dan secuencia a las operaciones una por una.

Los tipos de microoperaciones ms comunes se pueden clasificar en cuatro categoras:

! Las microoperaciones de transferencia entre registros mueven la informacin binaria
de un registro a otro sin cambiar el contenido de la informacin.

! Las microoperaciones aritmticas realizan aritmtica con los nmeros almacenados
en los registros.

! Las microoperaciones lgicas realizan operaciones lgicas tales como AND y OR con
el par de bits individuales almacenados en los registros.

! Las microoperaciones de desplazamiento especifican operaciones para los registros
de desplazamiento.

3.2 Transferencia entre registros

Los registros de un sistema digital se designan por letras maysculas (algunas veces
seguidas por nmeros) para denotar la funcin del registro. Por ejemplo, el registro de
direcciones de memoria se designa como MAR (memory address register), A, G, R1, R2 e
IR. Las celdas o flip-flops de un registro de n bits se numeran en secuencias de 1 hasta n
( de 0 a n-1). La figura 3.2 muestra cuatro formas para representar un registro. La
manera ms comn de representarlo es por medio de un rectngulo con el nombre del
registro dentro de l.

La transferencia de informacin de un registro a otro se designa en forma simblica por
medio del operador de reemplazo (). Por tanto, la proposicin:

A B

denota la transferencia del contenido del registro B al registro A. El registro B es la fuente
de la transferencia y el registro A es el destino, por definicin el contenido del registro
fuente B no cambia despus de la transferencia.
Sistemas Digitales 1 Lgica de transferencia entre registros
Maribel Gmez Franco 68


A A8 A7 A6 A5 A4 A3 A2 A1

a) Registro A b) Se muestran las celdas individuales


MBR PC(H) PC(L)

c) Numeracin de celdas d) Porciones de registro

Figura 3.2 Diagrama a bloque de los registros

Una proposicin que especifica una transferencia de registros implica que las salidas del
registro fuente estn conectadas a las entradas del registro destino. La transferencia
debe realizarse bajo una condicin predeterminada, la cual se conoce como funcin
de control y puede ser una funcin booleana que se evale como 0 1. La funcin de
control se incluye en la proposicin de la siguiente manera:

B A T x :
1


La funcin de control se determina con dos puntos y simboliza la condicin de las
seales de control para realizar la operacin de transferencia, la cual se ejecutara slo
cuando x=0 y T=1. Esta proposicin se puede implantar como se muestra en la figura 3.3.











Figura 3.3 Implantacin de la proposicin B A T x :
1


La funcin de control est sincronizada con los pulsos de reloj que se aplican a los
registros. La funcin de control permanece activa durante un perodo de pulso de reloj y
la transferencia ocurre durante la siguiente transicin del pulso de reloj. Todas las
transferencias suceden en respuesta a una transicin de reloj.

Los smbolos bsicos de la lgica de transferencia de registros se listan en la tabla 3.1. En
algunas ocasiones el registro destino puede recibir informacin de dos fuentes en
diferentes tiempo, como en la siguiente proposicin:

T1: C A
T5: C B



12 1 16 9 8 1

T1
Reloj
xT1
t
t+1
Registro B

Registro A
Control
Carga
x
Reloj
Sistemas Digitales 1 Lgica de transferencia entre registros
Maribel Gmez Franco 69

Tabla 3.1 Smbolos bsicos de la lgica de transferencia entre registros

Smbolo Descripcin Ejemplos
Letras (y nmeros) Denota un registro A, MBR, R2
Subndice Denota un bit de un registro A2, B6
Parntesis ( ) Denota una porcin de un registro PC(H), MBR(OP)
Flecha Denota una transferencia de informacin A B
Dos puntos : Termina una funcin de control xT0:
Coma , Separa dos microoperaciones A B, B A
Corchetes [ ] Especifica una direccin para una transferencia de memoria MBR M[MAR]

En el tiempo T1 la informacin del registro A debe transferirse al registro C, mientras que
en T5 el contenido del registro B se transfiere al mismo registro C. La conexin de los dos
registros fuente no puede hacerse directamente al registro destino, para ello se requiere
de un multiplexor que seleccione uno de ambos. En la figura 3.4 se muestra el diagrama
a bloques que cumple con la proposicin anterior.


















Figura 3.4 Transferencia de informacin de dos fuentes a un destino

3.2.1 Bus de transferencia

Normalmente en un sistema digital se tienen muchos registros y se debe proveer un
medio para transferir informacin entre ellos, como se indica en la figura 3.5 donde se
tiene tres registros y es necesario hacer transferencias entre ellos. Hay seis lneas de datos
y cada registro requiere de un multiplexor para seleccionar entre dos fuentes, si cada
registro consiste de n flip-flops, hay necesidad de 6 n lneas y tres multiplexores.

Un bus es un conjunto de alambres a travs de los cuales se transfiere la informacin
binaria bit a bit. En la transferencia en paralelo el nmero de lneas del bus es igual al
nmero de bits de los registros.



Registro B Registro A

Multiplexor
cudruple de
2 x 1
Registro C
T5
T1
Carga
Seleccin
4 1
4 1
4 1
Habilitar
Sistemas Digitales 1 Lgica de transferencia entre registros
Maribel Gmez Franco 70









Figura 3.5 Transferencia entre registros

Un sistema de bus puede constituirse con multiplexores para seleccionar el registro
fuente y un decodificador para seleccionar el registro destino para transferir la
informacin desde el bus. El sistema de bus para cuatro registros se muestra en la figura
3.6.




























Figura 3.6. Sistema de bus para cuatro registros

3.2.2 Transferencia de memoria

Un registro de memoria o palabra se simboliza por medio de la letra M. El registro de
memoria en particular se selecciona por medio de una direccin de memoria, por lo
tanto, es necesario especificar la direccin de M cuando se escriben proposiciones de
transferencias de memoria.

Considrese una unidad de memoria que slo tiene un registro de direccin de
memoria MAR y un registro separador de memoria MBR como se indica en la figura 3.7.
R1 R2 R3
Registro A
Registro B
Registro C
Registro D
0 MUX
1 4 x 1
2
3
0 MUX
1 4 x 1
2
3
Decodificador
de destino
Carga
n lneas de bus
Seleccionar
Habilitar
Seleccionar
Sistemas Digitales 1 Lgica de transferencia entre registros
Maribel Gmez Franco 71












Figura 3.7 Comunicacin de una memoria con registros externos

La operacin de lectura es una transferencia del registro de memoria seleccionado al
MBR y se puede representar por la siguiente proposicin:

R: MBR M

donde R es la funcin de control que determina la operacin de lectura. Durante esta
operacin se transfiere la informacin del registro de la unidad de memoria
especificado por la direccin en el MAR hacia el MBR.

La operacin de escritura es una transferencia del MBR hacia el registro seleccionado
de la unidad de memoria M y, se designa por medio de la siguiente proposicin:

W: M MBR

donde W es la funcin de control que inicia la operacin de escritura. La informacin
del MBR se transfiere al registro de memoria seleccionado por la direccin presente en el
MAR.

El tiempo de acceso de una unidad de memoria debe estar sincronizado con los pulsos
del reloj principal en el sistema que dispara los registros del procesador. En memorias
rpidas el tiempo de acceso debe ser menor que o igual a un perodo de pulso de reloj.
En memorias lentas, podra ser necesario esperar varios pulsos de reloj para que se
complete la transferencia.

En algunos sistemas, la unidad de memoria recibe direcciones y datos de muchos
registros conectados a los buses comunes. Considrese el caso de la figura 3.8. La
direccin a la unidad de memoria puede suministrarse por cualquiera de los cuatro
registros que estn conectados al bus de direccin. A travs de otros cuatro registros
que estn conectados al bus de datos y se seleccionan por medio de un decodificador,
se envan o reciben los datos de entrada/salida de la memoria.

La transferencia del registro B2 a una palabra seleccionada de memoria por la
direccin en el registro A1 se simboliza por medio de la proposicin:

W: M[A1] B2

La funcin de control indica una operacin de escritura, donde el registro A1 especifica
la direccin de la memoria. La proposicin no especifica los buses, sin embargo, implica
las entradas de seleccin requeridas por los dos multiplexores que forman los buses de
direccin y de datos.
Unidad
de memoria
MAR
MBR
Lectura


Escritura
Sistemas Digitales 1 Lgica de transferencia entre registros
Maribel Gmez Franco 72

































Figura 3.8 Comunicacin de la unidad de memoria con mltiples registros

La operacin de lectura en una memoria con buses puede especificarse de manera
similar por la siguiente proposicin:

R: B0 M[A3]

Lo anterior indica una operacin de lectura del registro de la memoria direccionado por
A3. La informacin que sale de la memoria se transfiere al registro B0.


3.3 Microoperaciones aritmticas, lgicas y desplazamiento

Entre todas las operaciones que pueden existir en un sistema digital, hay un conjunto
bsico del cual todas las dems pueden obtenerse. Se pueden definir otras
microoperaciones con smbolos adecuados, si es necesario, para amoldarse a una
aplicacin en particular.





MUX


Unidad de
memoria
A0
A1
A2
A3
Lectura
Escritura
Bus de
direccin


MUX
B0
B1
B2
B3
Salidas
Entradas

Decodificador de
destino
Carga
Seleccin
Seleccin
Seleccin
Bus de
datos
Sistemas Digitales 1 Lgica de transferencia entre registros
Maribel Gmez Franco 73

3.3.1 Microoperaciones aritmticas

Las microoperaciones aritmticas bsicas son: sumar, restar, complementar y desplazar.
Las dems operaciones aritmticas se pueden obtener de una variacin o secuencia
de estas microoperaciones bsicas.

La operacin de suma se define por la proposicin:

B A F +

Esta proposicin establece que el contenido del registro A se va a sumar al contenido
del registro B y el resultado se transfiere al registro F. Para configurar la proposicin se
requieren tres registros A, B y F, y la funcin digital que realiza la operacin de suma,
como puede ser un sumador en paralelo.

La resta aritmtica se configura a menudo por medio de la suma y del complemento a
2 como se especifica por la siguiente proposicin:

1 B A F + +

Bes el complemento a 1 de B y sumndole un 1, se obtiene el complemento a 2. El
resultado de la sustraccin A-B se obtiene sumando A al complemento a 2 de B.

Las mircrooperaciones de incremento y decremento se simbolizan por sumar o restar un
uno al contenido del registro. Se configuran con un contador ascendente o
descendente respectivamente. En la tabla 3.2 se listan las operaciones aritmticas
bsicas.

Tabla 3.2 Microoperaciones aritmticas

Smbolo Descripcin
B A F + Contenido de A ms B se transfiere a F
B A F Contenido de A menos B se transfiere a F
B B
Se complementa el registro B (complemento a 1)
1 B B +
Se forma el complemento a 2 del registro B
1 B A F + +
A ms el complemento a 2 de B se transfiere a F
1 A A + Incrementa el contenido de A en 1 (cuenta ascendente)
1 A A Decrementa el contenido de A en 1 (cuenta descendente)

Debe haber una relacin directa entre las proposiciones escritas, los registros y las
funciones de control. Considrese las dos proposiciones:

T2: A A + B
T5: A A + 1

La variable de tiempo T2 inicia una operacin para sumar el contenido del registro B al
contenido del registro A. La variable de tiempo T5 incrementa el registro A. El incremento
Sistemas Digitales 1 Lgica de transferencia entre registros
Maribel Gmez Franco 74

se puede hacer con un contador y la suma de dos nmeros binarios con un sumador en
paralelo. El resultado del sumador se transfiere al registro A activando la entrada de
carga al registro. Esto indica que el registro es un contador con capacidad de carga en
paralelo. La configuracin de estas dos declaraciones se muestra en la figura 3.9. El
sumador en paralelo recibe informacin de entrada de los registros A y B. Los bits de
salida del sumador se aplican a las entradas del registro A y la variable T2 carga la suma
al registro A. La variable T5 incrementa al registro habilitando la entrada de incremento.











Figura 3.9. Configuracin para las microoperaciones de suma e incremento

La operacin de multiplicacin puede representarse por el smbolo y la divisin por un
/. Estas dos operaciones son vlidas pero no se incluyen en el conjunto de
microoperaciones bsicas. nicamente pueden considerarse como microoperaciones
en un sistema digital donde se configuran por medio de lgica combinacional. En la
mayora de los computadores, la operacin de multiplicacin de ejecuta con una
secuencia de microoperaciones de suma y desplazamiento. La divisin se ejecuta con
una secuencia de mircrooperaciones de resta y desplazamiento.

3.3.2 Microoperaciones lgicas

Las microoperaciones lgicas son tiles para la manipulacin de los bits almacenados
en un registro. Estas operaciones consideran por separado cada bit del registro y lo
tratan como variable binaria. La tabla 3.3 lista las microoperaciones lgicas bsicas

Tabla 3.3 Microoperaciones lgicas

Designacin simblica Descripcin
A A
Complementa todos los bits del registro A
B A F Microoperacin OR lgica
B A F Microoperacin AND lgica
B A F Microoperacin OR exclusiva lgica

Es muy importante diferenciar entre un microoperacin aritmtica de suma y una
microoperacin OR lgica, por esta razn se utilizan diferentes smbolos. Sin embargo, el
smbolo + se utiliza en una funcin de control (o de Boole) para denotar una operacin
lgica OR. Por ejemplo:

F D C , B A A : T T
2 1
+ +

Registro B
Registro A


Sumador
paralelo
T2 Cargar
T5 Incrementar
Contador binario de 4 bits
con carga en paralelo
Sistemas Digitales 1 Lgica de transferencia entre registros
Maribel Gmez Franco 75

El smbolo + entre T1 y T2 indica una operacin OR entre dos variables de tiempo de una
funcin de control. El + entre A y B especifica una operacin de suma. La
microoperacin OR se distingue por el smbolo entre los registros D y F.

Las microoperaciones lgicas pueden implementarse fcilmente con un grupo de
compuertas, una por posicin de bit. El complemento de un registro de n bits se obtiene
de n compuertas inversoras en paralelo. La microoperacin AND se obtiene a partir de n
compuertas AND, cada una de las cuales recibe un par de entradas correspondientes a
los dos registros fuente y las salidas se aplican a las entradas correspondientes del
registro destino. Las mircrooperaciones OR y OR exclusiva se configuran de manera
similar a las AND.

Las microoperaciones lgicas pueden cambiar valores de bit, despejar un grupo de bits
o insertar valores nuevos en un registro.

La microoperacin AND puede utilizarse para poner a cero uno o ms bits de un
registro, como se indica en las ecuaciones Booleanas X 0=0 y X 1=X. Por ejemplo:

10101101 10101011 A (datos)
00000000 11111111 B (mscara)
00000000 10101011 AAB

El registro B tiene ceros en el byte superior y unos en el byte inferior. Haciendo una AND
de A con B, es posible poner a cero el byte de orden mayor de A y dejar el byte de
orden menor intacto. La funcin AND sirve para poner a cero selectivamente los bytes
de un registro. Esta operacin a veces se llama enmascaramiento de bits, porque
enmascara o borra todos los 1 de los datos de A segn las posiciones de bit.

La microoperacin OR sirve para establecer uno o ms bits en un registro, como lo
indican las ecuaciones Booleanas X+1=1 y X+0=X. Un bit o grupo de bits puede ponerse
a 1 si se le aplica una OR con 1. Por ejemplo:

10101101 10101011 A (datos)
11111111 00000000 B (mscara)
11111111 10101011 AAB

El byte de orden mayor de A se pone a unos al aplicar OR con los 1s de B. El byte de
orden menor no cambia porque se aplica OR con cero.

La microoperacin del XOR (OR exclusiva) sirve para complementar uno o ms bits de
un registro, como lo indican las ecuaciones Booleanas X 1=X y X 0=X. Por ejemplo:

10101101 10101011 A
11111111 00000000 B
01010010 10101011 AAB

El byte de orden mayor de A se complementa con B tras la operacin XOR, el byte de
menor orden no se altera.




Sistemas Digitales 1 Lgica de transferencia entre registros
Maribel Gmez Franco 76

3.3.3 Microoperaciones de desplazamiento

Las microoperaciones de desplazamiento se utilizan en la transferencia serial de datos y
tambin se utilizan para manipular el contenido de los registros durante las operaciones
aritmticas, lgicas y de control. El contenido de un registro puede desplazarse a la
izquierda o a la derecha. El registro destino de una microoperacin de desplazamiento
puede ser el registro fuente u otro diferente. No hay smbolos convencionales para las
microoperaciones de desplazamiento. La representacin de estas mircrooperaciones se
definen en la tabla 3.4. Por ejemplo:

A shl A , A shr B

Son dos microoperaciones que especifican un desplazamiento de 1 bit a la izquierda del
registro A y una transferencia de B desplazando un bit a la derecha al registro A. Por
ejemplo:

10011110 B 11100101 B
00111100 shl B 01110010 shr B
00111100 Ashl B 01110010 Ashr B

Como se muestra en los ejemplos el bit de entrada es cero para ambos
desplazamientos y el bit de salida se descarta.

Tabla 3.4 Microoperaciones de desplazamiento

Designacin simblica Descripcin
A shl A desplazamiento a la izquierda del registro A
A shr A desplazamiento a la derecha del registro A


Mientras los bits de un registro se desplazan, los flip-flops extremos reciben informacin
de la entrada en serie. Una proposicin de una microoperacin de desplazamiento
puede estar acompaada con otra microoperacin que especifica el valor de la
entrada en serie del bit transferido al filp-flop extremo. Por ejemplo:

A shl A, A1 An





Es un desplazamiento circular que transfiere el bit de la extrema izquierda desde An
hasta el bit de la extrema derecha A1. De manera similar:

B shr B Bn E




Es una operacin de desplazamiento a la derecha con el flip-flop de la extrema
izquierda Bn recibiendo el valor del registro E de 1 bit.

An A1
Bn B1 E
Sistemas Digitales 1 Lgica de transferencia entre registros
Maribel Gmez Franco 77

3.4 Proposiciones condicionales de control

En algunas ocasiones es conveniente especificar una condicin de control por medio
de una proposicin condicional en lugar de una funcin de control de Boole. Una
proposicin de control condicional se simboliza por medio de una proposicin de si-
entonces-por tanto de la siguiente manera:

P: si (condicin) entonces [microoperacin(es) A]
por tanto [microoperacin(es) B]

Si la condicin de control es verdadera, entonces se ejecuta la microoperacin(es) A, si
la condicin es falsa, por tanto se realiza la microoperacin(es) B. Cuando falta la parte
por tanto, si la condicin no es verdadera no se ejecuta nada.

La proposicin condicional es una conveniencia que simplifica la escritura de
proposiciones. Por ejemplo:

T2: si (C=0) entonces (F1) por tanto (F0)


Se asume que F es un registro de 1 bit (flip-flop) que puede ponerse a 1 0. Si el registro
C tambin es de 1 bit, la proposicin anterior es equivalente a lo siguiente:

0 :
1 :
2
2


F CT
F T C


Si el registro C tiene ms de un bit, la condicin C=0 significa que todos los bits de C
deben ser 0. Asumiendo que el registro C es de cuatro bits C1, C2, C3 y C4 la condicin se
puede expresar como una funcin de Boole:

( (( ( ) )) )
4 3 2 1 4 3 2 1
C C C C C C C C x + ++ + + ++ + + ++ + = == = = == =

La variable x puede generarse con una compuerta NOR. Usando la definicin de x, la
proposicin del control condicional es equivalente a dos proposiciones:

0 :
1 :
2
2


F T x
F xT


La condicin debe establecerse claramente y debe poder configurarse con un circuito
combinacional.


3.5 Datos binarios del punto fijo

Un registro almacena la magnitud de un nmero binario sin dar informacin acerca de
su signo o la posicin del punto binario. El signo se requiere en las operaciones
aritmticas para representar cuando el nmero es positivo o negativo. El signo de un
nmero es una cantidad discreta de informacin que tiene dos valores ms o menos y
se pueden representar por un cdigo de un bit, la convencin es representar un ms
con un 0 y un menos con un 1. Un nmero binario con signo se puede representar con
Sistemas Digitales 1 Lgica de transferencia entre registros
Maribel Gmez Franco 78

n=k+1 flip-flops, k de ellos es para la magnitud y uno para almacenar el signo del
nmero.

La posicin del punto decimal es necesaria para representar nmeros enteros,
fracciones o mezcla de ambos. La representacin del punto binario se complica por el
hecho de que ste se caracteriza por una posicin entre los dos flip-flops en un registro.
Existen dos formas de especificar la posicin del punto binario en un registro: dndole
una posicin de punto fijo o punto flotante. El mtodo de punto fijo asume que el punto
binario permanece fijo en una posicin. Las dos posiciones ms usadas son:

1. Un punto binario en el extremo izquierdo del registro para hacer el nmero
almacenado una fraccin, y
2. Un punto binario en el extremo derecho del registro para hacer del nmero binario
un entero.

En ambos casos el punto binario no es visible fsicamente, pero se asume a partir del
hecho de que el nmero almacenado en el registro se trata como una fraccin o como
un entero.

La representacin del punto flotante usa un segundo registro para almacenar un
nmero que designa la posicin del punto binario en el primer registro. Esta
representacin se explica posteriormente.

3.5.1 Nmeros binarios con signo

Cuando un nmero binario de punto fijo es positivo, el signo se representa como cero y
la magnitud por el nmero binario positivo. Si el nmero es negativo, el signo se
representa por un 1 y el resto se puede representar por cualquiera de las siguientes tres
maneras:

1. Signo-magnitud
2. Signo-complemento a 1
3. Signo-complemento a 2

Ejemplo:
+9 -9
Signo-magnitud 0 001001 1 001001
Signo-complemento a 1 0 001001 1 110110
Signo-complemento a 2 0 001001 1 110111

3.5.2 Suma aritmtica

Suma representada por signo-magnitud. El proceso de sumar dos nmeros con signo,
cuando los nmeros estn representados en la forma de signo-magnitud, requiere que
se comparen estos signos. Si los signos son diferentes, se comparan las magnitudes
relativas de los nmeros y luego se resta el menor del mayor.

Suma representada por signo-complemento a 2. La suma de dos nmeros binarios con
signo y los nmeros negativos representados en complemento a 2, se obtiene de la
suma de dos nmeros con sus bits de signo incluidos. Se descarta el acarreo en el bit
ms significativo (signo).

Sistemas Digitales 1 Lgica de transferencia entre registros
Maribel Gmez Franco 79

+ 6 0 000110 - 6 1 111010
+ 9 + 0 001001 + 9 + 0 001001
+ 15 0 001111 + 3 1 0 000011

+ 6 0 000110 - 9 1 110111
- 9 + 1 110111 - 9 + 1 110111
- 3 1 111101 - 18 1 1 101110

Suma representada por signo-complemento a 1. En este caso se obtiene la suma de dos
nmeros con sus bits de signo incluidos. Si hay un acarreo del bit ms significativo (signo),
el resultado se incrementa en 1 y el acarreo se descarta.


+ 6 0 000110 - 6 1 111001
+ 9 + 0 001001 + 9 + 0 001001
+ 15 0 001111 + 3 1 0 000010
+ 1
0 000011

+ 6 0 000110 - 9 1 110110
- 9 + 1 110110 - 9 + 1 110110
- 3 1 111100 - 18 1 1 101100
+ 1
1 101101

La ventaja de la representacin signo-complemento a 2 sobre las formas signo-
complemento a 1 y signo-magnitud es que slo tiene un tipo de cero. Las otras dos
representaciones tienen un cero positivo y un cero negativo. Por ejemplo:

+ 9

0 001001
- 9

1 110110
- 0

1 111111

El nmero cero con su bit de signo asociado aparecer en el registro en una de las
siguientes formas:
+ 0 - 0
Signo-magnitud 0 0000000 1 0000000
Signo-complemento a 1 0 0000000 1 1111111
Signo-complemento a 2 0 0000000 ninguna

El intervalo de los nmeros enteros binarios que se pueden representar en un registro de
n=k+1 bit es (2
k
-1), donde se reservan k bits para el nmero y un bit para el signo. Un
registro de 8 bits puede almacenar nmeros binarios en el intervalo de (2
7
-1) = 127.
Sin embargo, como la representacin de signo complemento a 2 slo tiene un cero,
puede representar un nmero ms que las otras dos representaciones. Por ejemplo:

Sistemas Digitales 1 Lgica de transferencia entre registros
Maribel Gmez Franco 80

Singo-complemento a 1 Signo-complemento a 2
+ 126 =0 1111110 - 126 =1 0000001 -126 =1 0000010
+ 127 =0 1111111 - 127 =1 0000000 - 127 =1 0000001
+ 128 (imposible) - 128 (imposible) - 128 =1 0000000

La representacin del signo-complemento a 2 puede tener nmeros en el intervalo +(2
k
-
1) a 2
k
, donde k=n-1 y n es el nmero de bits en el registro.

3.5.3 Sustraccin aritmtica

La resta de dos nmeros binarios con signo, cuando los nmeros negativos estn en la
forma complemento a 2 se puede obtener por medio de una operacin de suma
considerando el signo del sustraendo:

( (( ( ) )) ) ( (( ( ) )) ) ( (( ( ) )) ) ( (( ( ) )) )
( (( ( ) )) ) ( (( ( ) )) ) ( (( ( ) )) ) ( (( ( ) )) ) B A B A
B A B A
+ ++ + = == = + ++ +
+ ++ + + ++ + = == =


El complemento a 2 se utiliza ms en las computadoras para evitar el bit de acarreo y el
cero negativo.

3.6 Sobrecapacidad

Cuando se suman dos nmeros con n dgitos y la suma ocupa n+1 dgitos, se dice que
hay un desbordamiento por sobrecapacidad. Esto es vlido para nmeros binarios o
decimales con signo o sin signo. Una sobrecapacidad presenta un problema puesto
que todos los registros tienen un nmero finito de bits. La mayora de las computadoras
verifican la sobrecapacidad utilizando un flip-flop que se pone a 1 cuando sta se
presenta para que el usuario revise.

Una sobrecapacidad slo puede ocurrir cuando se suman dos nmeros y ambos son
positivos o negativos. Cuando se suman un nmero positivo y otro negativo, el resultado
va a ser menor que el nmero mayor.

La suma de dos nmeros representados en signo-complemento a 2 produce un
resultado incorrecto cuando hay sobrecapacidad. Esto se debe a que una
sobrecapacidad de los bits del nmero siempre cambian el signo del resultado y el
resultado de n bits es errneo. En el siguiente ejemplo, dos nmeros se almacenan en
registros de 7 bits, la capacidad mxima del registro es (2
6
-1)=63 y la capacidad mnima
es -2
6
=-64.

acarreo: 0 1 acarreo: 1 0
+ 38 0 100110 - 38 1 011010
+ 34 0 100010 - 34 1 011110
+ 72 1 001000 - 72 0 111000

En ambos casos, se puede observar que el bit de signo del resultado est invertido. Si el
bit de acarreo se toma como bit de signo, entonces el resultado de los 8 bits es
correcto. La sobrecapacidad se puede detectar observando el acarreo a la posicin
del signo y el acarreo de la posicin del bit de signo. Si ambos acarreos no son iguales se
produce sobrecapacidad, como se puede observar en la tabla 3.5.

Sistemas Digitales 1 Lgica de transferencia entre registros
Maribel Gmez Franco 81

Tabla 3.5 Deteccin de sobrecapacidad utilizando dos bits de acarreo

Acarreo de la posicin del signo Acarreo a la posicin del signo Condicin
0 0 Resultado correcto
0
0 1 Sobrecapacidad
1
1 0 Sobrecapacidad
1
1 1 Resultado correcto
0

Considerando las condiciones de la tabla 3.5, se puede utilizar una compuerta XOR
para detectar la sobrecapacidad. La suma de dos nmeros con signo representados
por la forma signo-complemento a 2, se implementa con funciones digitales como se
indica en la figura 3.10. El registro A almacena el sumando con el bit de signo en la
posicin An. El registro B almacena el otro sumando con el bit de signo en la posicin Bn.
Los dos nmeros se suman por medio de un sumador en paralelo de n bits. El sumador
completo suma los bits de signo de los dos registros ms el bit de acarreo Cn del
sumador en paralelo. Los dos acarreos Cn y Cn+1 se conectan a las entradas de una XOR
y su salida se aplica a un flip-flop de sobrecapacidad OV. Despus de realizar la suma si
OV=0 el resultado cargado en A es correcto. Si OV=1, hay sobrecapacidad y la suma
de n bits es incorrecta. El circuito de la figura 3.10 se puede especificar por la siguiente
proposicin:

T: A A + B, OV Cn Cn+1
















Figura 3.10 Suma de nmeros en signo-complemento a 2

3.7 Desplazamientos aritmticos

Un desplazamiento aritmtico es una microoperacin que multiplica por dos un nmero
binario con signo si se desplaza a la izquierda, o divide el nmero por dos si el
desplazamiento es a la derecha. Cuando se realiza un desplazamiento aritmtico el bit
de signo debe permanecer sin cambio, slo la magnitud debe moverse. El bit ms
significativo de un registro almacena el bit de signo y los dems bits almacenan la
magnitud, como se indica en la figura 3.11.






Figura 3.11 Registro para desplazamientos aritmticos
Registro A
n 1
A(N) A(S)
n n-1 1
Bit de signo Magnitud
Registro B
Bn
Sumador
paralelo
Sumador
completo
Registro A
An
OV Carga
T
Cn+1
Cn
Sistemas Digitales 1 Lgica de transferencia entre registros
Maribel Gmez Franco 82


El desplazamiento en nmeros binarios de punto fijo se puede representar de diferentes
maneras. Un desplazamiento aritmtico a la derecha (divisin por 2), se puede
simbolizar por las siguientes proposiciones:

A(N) shr A(N), An-1 0 para signo-magnitud

A shr A, A(S) A(S) para signo-complemento a 1 signo-complemento a 2

En la representacin signo-magnitud, es necesario mover los bits del nmero y poner un
cero en el bit ms significativo de la magnitud An-1, el bit de signo no cambia.

En la representacin de signo-complemento a 1 a 2, se desplaza el registro y el bit de
signo permanece sin cambio. Para un nmero positivo, en el bit ms significativo de la
magnitud se pone un cero y para nmeros negativos, se pone un 1 en An-1, como se
muestra en el ejemplo siguiente.

Nmero positivo + 12: 0 01100 shr 0 00110
Signo-magnitud - 12: 1 01100 1 00110
Signo-complemento a 1 - 12: 1 10011 1 11001
Signo-complemento a 2 - 12: 1 10100 1 11010

En cada representacin, un corrimiento aritmtico a la derecha del 12 genera un 6, sin
modificar el signo, a este proceso tambin se le conoce como desplazamiento con
extensin de signo.

Un desplazamiento aritmtico a la izquierda (multiplicacin por 2), puede simbolizarse
por las siguientes proposiciones:

A(N) shl A(N), A1 0 signo-magnitud

A shl A, A1 A(S) signo-complemento a 1

A shl A, A1 0 signo-complemento a 2

En la representacin signo-magnitud, los bits se desplazan a la izquierda y en el bit
menos significativo (A1) se pone un cero. En signo-complemento a 1, se desplaza todo el
registro y el bit de signo se pasa al bit A1. En signo-complemento a 2, tambin se
desplaza todo el registro pero en el bit menos significativo se pone un 0. Por ejemplo:

Nmero positivo + 12: 0 01100 Shl 0 11000
Signo-magnitud - 12: 1 01100 1 11000
Signo-complemento a 1 - 12: 1 10011 1 00111
Signo-complemento a 2 - 12: 1 10100 1 01000

Sistemas Digitales 1 Lgica de transferencia entre registros
Maribel Gmez Franco 83


Un desplazamiento a la izquierda puede provocar un desbordamiento por
sobrecapacidad. Una sobrecapacidad se presenta bajo las siguientes condiciones
antes del desplazamiento:

An-1 =1 para signo-magnitud
An An-1 =1 para signo-complemento a 1 a 2

En la representacin signo-magnitud, se desplaza y desaparece un 1 del bit ms
significativo. En el caso signo-complemento, cuando el bit de signo y el bit ms
significativo de la magnitud son diferentes ocurre una sobrecapacidad. Por ejemplo:

Nmero positivo + 9: 0 1001 Shl 1 0010
Signo-magnitud - 9: 1 1001 1 0010
Signo-complemento a 1 - 9: 1 0110 0 1101
Signo-complemento a 2 - 9: 1 0111 0 1110

Para un nmero positivo, el resultado correcto debe ser 18, pero el bit de signo original
se pierde, por lo tanto el resultado es incorrecto. Para nmeros negativos en
complemento a 1 a 2, tambin se pierde el bit de signo.

3.8 Datos decimales

Un dgito decimal se representa por cuatro bits, por lo tanto, se requieren cuatro flip-flops
para cada dgito. La representacin decimal requiere mucho espacio de
almacenamiento, puesto que se necesitan ms flip-flops y los circuitos necesarios para
realizar aritmtica decimal son ms complejos, aunque tiene la ventaja de que los datos
de entrada y salida de una computadora se generan por usuarios que usan el sistema
decimal. Algunas computadoras utilizan esta representacin para realizar operaciones
sencillas en sistema decimal. Cuando se utiliza el sistema binario, primero se convierten
los nmeros decimales a binario, se realizan las operaciones en binario y finalmente el
resultado se convierte a nmero decimal, aunque este proceso consume tiempo, es
recomendable para operaciones aritmticas complejas, como en el caso de
aplicaciones cientficas.

Ejemplo de representacin de un nmero decimal en binario:

+ 5 6 8 9
0 0101 0110 1000 1001

En el ejemplo anterior, se necesitan 17 flip-flops, 16 para representar la magnitud y uno
para el signo.

Los nmeros decimales con signo de punto fijo se pueden representar de tres maneras:

Signo-magnitud
Signo-complemento a 9
Signo-complemento a 10
Sistemas Digitales 1 Lgica de transferencia entre registros
Maribel Gmez Franco 84


El signo positivo se representa con un cero y el signo negativo con un 1. Un nmero
positivo se representa por un cero y va seguido por la magnitud del nmero para todos
los casos.

En la representacin signo magnitud, un nmero negativo se representa por un 1 y la
magnitud del nmero es positiva.

Algunas veces se utilizan cuatro bits para representar el signo de un nmero decimal, es
costumbre representar el signo positivo con cuatro ceros (0000) y el signo negativo con
un 9 (1001). Los procedimientos desarrollados por los nmeros de signo-complemento a
2 se aplican tambin a los nmeros signo-complemento a 10. Por ejemplo:

425 10 000 0 425
+ (-315) - 315 + 9 685
+ 110 Complemento a 10 = 9 685 1 0 110

El 9 representa el signo y el 685 el complemento a 10 de 315. La sobrecapacidad se
puede detectar de la misma manera que con nmeros binarios, utilizando una XOR con
los bits de acarreo que entran y salen de la posicin de los dgitos de signo.

Las operaciones aritmticas decimales se pueden representar por los mismos smbolos
de las operaciones binarias, considerando que los nmeros estn en base 10. La
proposicin:

1 B A A + +

puede expresar la suma del nmero decimal almacenado en el registro A con el
complemento a 10 del nmero decimal almacenado en el registro B. B denota
complemento a 9 del nmero decimal.

Los desplazamientos aritmticos tambin se pueden aplicar a los nmeros decimales, un
desplazamiento a la derecha divide por 10 el nmero decimal y, un corrimiento a la
izquierda lo multiplica por 10.

3.9 Datos del punto-flotante

Un nmero de punto-flotante necesita dos registros para su representacin. En el primer
registro se representa un nmero con signo de punto fijo y en el segundo la posicin del
punto del radical. Por ejemplo, el nmero decimal + 7 834.761 se puede representar:








El bit ms significativo del primer registro indica que es positivo (0) y la magnitud del
nmero se almacena en 28 flip-flops (7 dgitos 4 bits). El nmero del primer registro se
0 7 8 3 4 7 6 1 9 0 0 4
signo Punto decimal inicial
Primer registro
(coeficiente )
signo
Segundo registro
(exponente )
Sistemas Digitales 1 Lgica de transferencia entre registros
Maribel Gmez Franco 85

considera una fraccin, por lo que el punto decimal se encuentra a la izquierda del bit
ms significativo. El segundo registro indica la posicin del punto decimal, en este
ejemplo es un +4, por lo tanto el punto decimal se mueve cuatro posiciones a la
derecha. Esta representacin es equivalente a expresar el nmero como una fraccin
multiplicada por 10 a una potencia dada: 0.783476110
+4
. Por esta analoga, el
contenido del primer registro se llama coeficiente (mantisa o parte fraccionaria) y el
contenido del segundo registro se llama exponente (o caracterstica).

La posicin del punto decimal, puede estar fuera del intervalo de los dgitos del registro
del coeficiente. Por ejemplo:





Asumiendo una representacin decimal signo-magnitud, el nmero:

+ 0.260100010
-4
=+ 0.00002601000

En el ejemplo se asume que el nmero es una fraccin y el punto decimal se encuentra
a la izquierda del bit ms significativo, se puede dar el caso de que se asuma que el
nmero es un entero, por lo que el punto decimal est a la derecha del bit menos
significativo.

Un nmero binario de punto flotante, tambin se representa con dos registros, uno para
almacenar el coeficiente y el otro para el exponente. Por ejemplo, el nmero +1001.110:







El registro del coeficiente utiliza 10 flip-flops para representar el coeficiente: uno para el
signo y nueve para la magnitud. Asumiendo que el nmero binario es una fraccin de
punto fijo, el punto binario actual se mueve cuatro posiciones a la derecha, puesto que
el exponente es +4. El nmero binario se representa como 0.10011100010
+100
(10
100
=2
4
).

El punto decimal se interpreta en la representacin de un nmero la siguiente manera:

c r
e


donde c representa el coeficiente y e el exponente. El radical r y la posicin del punto
radical en el coeficiente siempre se asumen.

Se dice que un nmero flotante est normalizado cuando el bit ms significativo del
coeficiente es diferente de cero, de esta manera contiene el mayor nmero de dgitos
significativos.

La suma o resta de dos nmeros en representacin punto flotante requiere la alineacin
de los puntos radicales, ya que la parte exponencial debe igualarse antes de que los
coeficientes se sumen o resten. Esta alineacin se realiza desplazando un coeficiente
0 2 6 0 1 0 0 0
1 0 4
coeficiente exponente
0 1 0 0 1 1 1 0 0 0 0 0 1 0 0
signo Punto binario inicial signo
coeficiente exponente
Sistemas Digitales 1 Lgica de transferencia entre registros
Maribel Gmez Franco 86

mientras el exponente se ajusta hasta que sea igual al otro exponente. En la
multiplicacin de punto flotante, el producto puede formarse multiplicando los dos
coeficientes y sumando los dos exponentes. En la divisin, se dividen los dos coeficientes
y los exponentes se restan (exponente del divisor-exponente del dividendo).

3.10 Datos no numricos

Las computadoras adems de realizar operaciones aritmticas con datos numricos
manipulan smbolos en lugar de nmeros. La mayora de los programas para usuario
estn escritos en forma de caracteres, esto es, un conjunto de smbolos que pueden ser
letras, dgitos o caracteres especiales.

Los caracteres se representan por cdigo binario. Un cdigo alfanumrico es un cdigo
binario de un grupo de elementos que abarca los diez nmeros decimales, los 26
caracteres del alfabeto y algunos smbolos especiales. Algunos cdigos de uso comn
son: el cdigo interno que puede representar hasta 64 caracteres con seis bits; el cdigo
ASCII (American Standard Code for Information Interchange, Cdigo normalizado
americano para el intercambio de informacin) utiliza siete bits para la representacin
de ms de 64 caracteres, adems se le agrega un bit de paridad; otro cdigo es
conocido como EBCDIC (Extended BCE Interchange Code, Cdigo de intercambio BCD
aumentado) y se representa por ocho bits.

El nmero de caracteres que se pueden almacenar depende de la longitud del registro
y el nmero de bits utilizado por el cdigo. Las cadenas de caracteres se almacenan en
memoria de manera consecutiva, el primer caracter se puede especificar en la
direccin de la primera palabra. El ltimo caracter puede localizarse en la direccin de
la ltima palabra, o por especificacin de una cuenta de caracteres, o por una marca
especial que define el fin de la cadena de caracteres. Cada caracter representa una
unidad de informacin que se puede manipular en los registros de la unidad de
proceso.

Algunas de las operaciones que se pueden realizar con datos no numricos son
transferencias, lgica, desplazamientos y decisiones de control. Las operaciones de
transferencia preparan la informacin binaria codificada en cierto orden requerido por
la memoria y transfieren esta informacin de y a las unidades externas. Las operaciones
lgicas y de desplazamiento permiten la manipulacin de datos para el proceso de
toma de decisiones.

Las microoperaciones lgicas son muy tiles para la manipulacin de bits individuales o
un grupo de bits almacenados en un registro. stas operaciones, pueden cambiar
valores, eliminar o agregar nuevos valores de bits individuales o en grupo en un registro.

La microoperacin OR, se puede utilizar para poner a uno un bit o grupo de bits de un
registro. Por ejemplo:
0 1 0 1 0 1 0 1 A
1 1 1 1 0 0 0 0 B
1 1 1 1 0 1 0 1 A A B

La operacin AND se puede utilizar para borrar selectivamente los bits de un registro.
Por ejemplo:
Sistemas Digitales 1 Lgica de transferencia entre registros
Maribel Gmez Franco 87

0 1 0 1 0 1 0 1 A
0 0 0 0 1 1 1 1 B
0 0 0 0 0 1 0 1 A A B

La microoperacin AND seguida de una operacin OR, se puede utilizar para cambiar
el valor de un bit o grupo de bits por un nuevo valor. Primero se enmascara el bit o
grupo de bits que se quiere modificar y despus se aplica una OR el nuevo valor. Por
ejemplo:

0 1 0 1 0 1 0 1 A
0 0 0 0 1 1 1 1 B1
0 0 0 0 0 1 0 1 A A B1

Agregando el nuevo valor:

0 0 0 0 0 1 0 1 A
1 1 0 0 0 0 0 0 B2
1 1 0 0 0 1 0 1 A A B2

La microoperacin XOR se puede utilizar para complementar selectivamente los bits en
un registro. Por ejemplo:

1 1 0 1 0 1 0 1 A
1 1 1 1 0 0 0 0 B
0 0 1 0 0 1 0 1 A A B

Si el contenido de A se aplica a una XOR consigo mismo, el registro se borra:

1 1 0 1 0 1 0 1 A
1 1 0 1 0 1 0 1 A
0 0 0 0 0 0 0 0 A A A

Las operaciones de desplazamiento se utilizan para agrupar o dispersar informacin
binaria codificada. La agrupacin de informacin es una operacin que puede unir dos
o ms caracteres en una palabra. La dispersin es una operacin que puede separar
dos o ms caracteres de una palabra en caracteres individuales. Por ejemplo, se tienen
los nmeros 6 y 3 en cdigo ASCII y se van a unir para formar el nmero 63 en cdigo
BCD:

ASCII 6 =0 0 1 1 0 1 1 0

ASCII 3 =0 0 1 1 0 0 1 1

Sistemas Digitales 1 Lgica de transferencia entre registros
Maribel Gmez Franco 88

Los cuatro bits de mayor orden no se utilizan en BCD, por lo tanto se pueden
enmascarar:

0 0 1 1 0 1 1 0 A 0 0 1 1 0 0 1 1 B
0 0 0 0 1 1 1 1 C 0 0 0 0 1 1 1 1 C
0 0 0 0 0 1 1 0 A A C 0 0 0 0 0 0 1 1 A A C

Para agrupar los dos dgitos es necesario desplazar 4 bits del registro y colocar ceros en
el bit menos significativo en cada desplazamiento:

0 1 1 0 0 0 0 0 A shl, A1 0; cuatro veces

Finalmente se aplica una OR a los registros A y B.


0 1 1 0 0 0 0 0 A

0 0 0 0 0 0 1 1 B
BCD 63 = 0 1 1 0 0 0 1 1 A A B

Una operacin de desplazamiento en la que se coloca un cero en el bit del extremo se
considera una microoperacin de desplazamiento lgico. La informacin binaria
disponible en un registro durante una operacin lgica se llama palabra lgica. La
unidad de informacin de la palabra lgica es un bit.

3.11 Cdigos de instruccin

La organizacin interna de un sistema digital se define por los registros que usa y la
secuencia de las microoperaciones que realiza con los datos almacenados en los
registros.

Una computadora digital es un sistema digital de propsito general que puede ejecutar
varias operaciones y recibir instrucciones sobre la secuencia especfica de operaciones
que debe realizar.

Un cdigo de instruccin es un conjunto de bits que le dice a la computadora cmo
realizar una funcin especfica. Normalmente, este cdigo se divide en dos partes. El
cdigo de operacin de una instruccin es un grupo de bits que define la operacin
que se va a realizar tal como: suma, resta, multiplicacin, desplazamiento y
complemento. El nmero total de operaciones determina el conjunto de operaciones
de la mquina. El nmero de bits requeridos para el cdigo de operacin debe ser por
lo menos n bits para 2
n
(o menos) operaciones diferentes.

El diseador define la combinacin de bits para cada operacin. La unidad de control
de la computadora se disea para recibir esta configuracin de bits en el momento
adecuado en una secuencia y generar las seales de control especificas para que se
ejecute la operacin correcta.

Un cdigo de instruccin, adems de especificar la operacin debe indicar los registros
donde se encuentran los operandos y donde se va a almacenar el resultado. Un registro
Sistemas Digitales 1 Lgica de transferencia entre registros
Maribel Gmez Franco 89

se especifica explcitamente si el cdigo de instruccin contiene bits especiales para su
identificacin. Un registro se especifica implcitamente cuando se incluye como parte
de la definicin de la operacin.

3.11.1 Formatos del cdigo de instruccin

En la figura 3.12 se muestran tres formatos de cdigo instruccin. El formato de
instruccin (a) consiste de un cdigo de operacin que implica un registro en la unidad
procesadora, y puede especificar operaciones tales como: borrar un registro del
procesador o transferir el contenido de un registro a otro registro. El formato de
instruccin en (b) se llama instruccin de operando inmediato porque tiene un cdigo
de operacin seguido inmediatamente de un operando, y puede especificar cualquier
operacin entre el contenido de un registro y el operando tal como: sumar el
operando al contenido del presente registro o transferir el operando al registro
procesador. El formato de instruccin de la figura (c) especifica que la operacin
definida por el cdigo de instruccin se realiza entre un registro procesador y un
operando que puede almacenarse en memoria. La direccin del operando se incluye
en la instruccin.

Cdigo-operacin a) implcito

Cdigo-operacin Operando b) operando inmediato

Cdigo-operacin
Direccin del
operando
c) direccin directa

Figura 3.12 Formatos posibles de cdigos de instruccin

Asumiendo una memoria de 8 bits por palabra y un cdigo de operacin de 8 bits, la
localizacin de los tres cdigos de instruccin se ilustran en la figura 3.13.

En la direccin 25 se tiene una instruccin implcita que especifica la operacin:
transferir el contenido del registro R al registro A y se puede simbolizar por la siguiente
proposicin:

A R

En las direcciones 35 y 36 hay una instruccin de operando inmediato que requiere dos
palabras. La primera palabra en la direccin 35 especifica el cdigo de operacin para
la instruccin transferir el operando al registro A, simbolizado como:

A operando

La segunda palabra en la direccin 36 almacena el valor del operando.

En las direcciones 45 y 46, se tiene una instruccin de direccin directa, la primera
palabra define una transferencia de memoria de un operando especificado por la
parte de direccin de la instruccin, simbolizado como:

Sistemas Digitales 1 Lgica de transferencia entre registros
Maribel Gmez Franco 90

A M[direccin]

La segunda palabra de la instruccin, direccin 46, contiene la direccin del operando.
En esta operacin, en la direccin 70 se tiene almacenado el valor del operando, en
este caso es el nmero binario 28, por lo tanto, al registro A se le va a transferir el nmero
binario 28.

Direccin Memoria Operacin

25 00000001 Cod-oper=1 A R


35 00000010 Cod-oper=2 A operando
36 00101100 Cod-oper=44


45 00000011 Cod-oper=3
A
M[direccin]
46 01000110 Direccin=70


70 00011100 Operando=28


Figura 3.13 Representacin de la memoria de instrucciones

3.12 Relacin entre una operacin y una microoperacin

Una operacin es un cdigo binario que le dice a la computadora la operacin que
debe ejecutar, se especifica por una instruccin almacenada en memoria. La unidad
de control recibe la instruccin de la memoria e interpreta los bits del cdigo de
operacin y enva una secuencia de funciones de control para realizar
microoperaciones en los registros internos de la computadora, que configuran los
componentes necesarios para ejecutar la operacin.

El usuario especifica una operacin en forma de instruccin a la computadora. Una
microoperacin es una operacin elemental que est restringida por los componentes
de la computadora.

3.12.1 Macrooperaciones versus microoperaciones

Una macrooperacin es una proposicin que requiere una secuencia de
microoperaciones para su configuracin. La nica manera de distinguir una
macrooperacin de una microoperacin es reconocer a partir del contenido y los
componentes internos del sistema en cuestin, si la proposicin se ejecuta con una
unidad de control o no. Si la proposicin se puede ejecutar con una funcin de control
sencilla, se dice que es una microoperacin, si requiere de dos o mas funciones de
control, entonces se puede tomar como macrooperacin.
Sistemas Digitales 1 Lgica de transferencia entre registros
Maribel Gmez Franco 91


Considerando la instruccin de la figura 3.13:

A operando

Esta proposicin es una macrooperacin porque especifica una instruccin y para su
ejecucin la unidad de control debe emitir funciones de control para la siguiente
secuencia de microoperaciones:

1. Leer el cdigo de operacin de la direccin 35.
2. Transferir el cdigo de operacin al registro de control.
3. La unidad de control decodifica el cdigo de operacin y lo reconoce como
una instruccin de operando inmediato, por lo que debe leer la operacin de la
direccin 36.
4. El operando ledo de la memoria se transfiere al registro A.

La microoperacin del paso 4 ejecuta la instruccin, pero se requieren de los pasos 1 a 3
para que el control interprete la instruccin en s.

La proposicin que simboliza la instruccin:

A R

Tambin es una macrooperacin porque la unidad de control debe leer primero el
cdigo de operacin en la direccin 25 para interpretarlo. La transferencia entre
registros se ejecuta con una segunda funcin de control.

El mtodo de transferencia entre registros es adecuado para describir las operaciones
entre los registros de un sistema digital y se puede usar especficamente para las
siguientes tareas:

! Definir instrucciones de computadora de manera concisa por medio de
proposiciones de macrooperacin.
! Expresar cualquier operacin por medio de una proposicin de macrooperacin, sin
ninguna relacin con una configuracin especfica de componentes.
! Definir la organizacin interna de los sistemas digitales por medio de funciones de
control y microoperaciones.
! Disear un sistema digital especificando los componentes de los materiales y sus
interconexiones.

3.13 Diseo de una computadora sencilla

La figura 3.14 muestra el diagrama a bloques de una computadora sencilla. Los registros
se listan en la tabla 3.6. El MAR almacena la direccin de memoria. El MBR almacena el
dato ledo o escrito en la memoria. Los registros A y B son registros de propsito general.
El PC pasa por una secuencia de cuenta paso a paso y ocasiona que la computadora
genere las instrucciones sucesivas que estn almacenadas en memoria. El PC siempre
almacena la direccin de la siguiente instruccin en la memoria. El IR recibe el cdigo
de operacin de las instrucciones. El decodificador asociado, suministra una salida para
cada cdigo de operacin encontrado. T se decodifica para suministrar ocho variables
de tiempo, t0 hasta t7. Este contador se incrementa con cada pulso de reloj, y puede
Sistemas Digitales 1 Lgica de transferencia entre registros
Maribel Gmez Franco 92

borrarse en cualquier instante e iniciar una nueva secuencia de cuenta. El PC, IR y T son
parte de la unidad de control.
























Figura 3.14 Diagrama a bloques de una computadora simple.

Secuencia de lectura de una instruccin:

1. El contenido del PC se transfiere al MAR para iniciar un ciclo de lectura de memoria.
2. El PC se incrementa en uno para almacenar la direccin en la siguiente secuencia
de instrucciones.
3. Se lee un cdigo de operacin el cual se transfiere del MBR al IR.
4. El IR interpreta el cdigo de operacin y habilita la circuitera correspondiente para
realizar la operacin.

Cuando una instruccin indica una localidad de memoria, el contenido del MBR se
transfiere al MAR para leer el operando. Por lo tanto, el MAR puede recibir direcciones
del PC o del MBR.

Tabla 3.6 Lista de registros de un computador sencillo

Smbolo
No. de
bits
Nombre del registro Funcin
MAR 8 Registro de direccin de memoria Almacena direcciones de memoria
MBR 8 Registro separador de memoria Almacena contenidos de palabras en memoria
A 8 Registro A Registro de propsito general
R 8 Registro B Registro de propsito general
PC 8 Contador de programa Almacena la direccin de la instruccin
IR 8 Registro de instruccin Almacena cdigos de operacin corrientes
T 3 Contador de tiempo Generador de secuencias
Decodificador
de operaciones
PC
MAR
IR
MBR
Decodificador
de tiempo
T
A
R

Unidad de
memoria
q3 q2 q1
t7
t0
Sistemas Digitales 1 Lgica de transferencia entre registros
Maribel Gmez Franco 93

En el diseo de la computadora sencilla, se van a considerar nicamente tres
instrucciones, las cuales se listan en la tabla 3.7. En el cdigo de operacin se tiene 8
bits, por lo tanto se pueden definir hasta 256 operaciones diferentes. La sigla MOV
(move) se establece para la operacin del cdigo binario correspondiente y simboliza
una instruccin de movimiento. El smbolo R delante de MOV indica que el contenido de
R se mueve al registro A. La sigla LDI (load inmediate) simboliza un instruccin de carga
inmediata y el OPRD seguido a ste mnemnico especifica que el valor de ese
operando especificado por el programador se va a cargar al registro A. LDA (load into
A) es una abreviatura para cargar a A y ADRS a continuacin se establece para
indicar que el contenido de sta direccin ADRS se va a cargar al registro A. Los valores
de OPRD y ADRS estn almacenados en memoria.

Tabla 3.7 Tres instrucciones para un computador sencillo

Cdigo de operacin Mnemnico Descripcin Funcin
0000 0001 MOV R Mover R a A A R
0000 0010 LDI OPRD Cargar OPRD a A A Operando
0000 0011 LDA ADRS Cargar el operando especificado por ADRS a A A M[ADRS]

El programa escrito para la computadora se almacena en memoria. Este programa
consta de muchas instrucciones, sin embargo, slo se utilizarn tres de ellas para
ejemplificar su operacin.

3.13.1 Ciclo de envo de instrucciones

El contador de programa debe inicializarse con la primera direccin del programa
almacenado en memoria.
Al activar el interruptor de inicio la secuencia de la computadora sigue un patrn
bsico.
El PC manda la direccin al MAR.
Se lee el cdigo de operacin de la direccin de memoria y se transfiere al MBR.
El PC se incrementa en 1 para preparar la siguiente direccin de la secuencia.
El cdigo de operacin se transfiere del MBR al IR, donde se decodifica por el
control.

Esta secuencia se llama ciclo de envo de instruccin, porque obtiene el cdigo de
operacin de la memoria y lo pone en un registro de control.

Las variables de tiempo, t0, t1 y t2 que salen del decodificador de tiempos, se utilizan
como funciones de control para darle secuencia a las microoperaciones para leer un
cdigo de operacin y colocarlo en el IR:

t0 MAR PC Transferir direccin del cdigo de operacin
t1 MBR M, PC PC+1 Leer el cdigo de operacin, incrementar PC
t2 IR MBR Transferir el cdigo de operacin al MBR

Se asumen que el contador de tiempo T inicia a partir del valor 000, produciendo una
variable de tiempo t0 en la salida del decodificador. El registro T se incrementa con
cada pulso de reloj y automticamente genera la siguiente variable de tiempo en la
Sistemas Digitales 1 Lgica de transferencia entre registros
Maribel Gmez Franco 94

secuencia. Las tres primeras variables de tiempo pueden simbolizarse por medio de la
macrooperacin:

IR M[PC], PC PC + 1

Esto significa que el contenido de la palabra de memoria especificada por PC se
transfiere al IR y luego se incrementa el PC. La computadora sencilla tiene algunas
restricciones:

slo el MAR y MBR se comunican con la memoria,
el PC no puede incrementarse mientras slo suministre la direccin para una lectura
de memoria, sino hasta despus de completar la operacin de lectura. Cuando se
transfiere el contenido del PC al MAR, el PC puede incrementarse mientras la
memoria lee la palabra direccionada por el MAR.

El ciclo de envo es comn para todas las instrucciones. Las microoperaciones y
funciones de control que preceden al ciclo de envo se determinan en la seccin de
control a partir del cdigo de operacin decodificado, el cual est disponible en las
salidas qi, i=1, 2, 3, en el decodificador de operacin.

3.13.2 Ejecucin de las instrucciones

El cdigo de operacin est en IR en el tiempo t3, y se habilita una salida del
decodificador de operacin. El control usa las variables qi para determinar las siguientes
microoperaciones en secuencia. La instruccin MOV R, tiene un cdigo de operacin
0001 que hace q1=1. La ejecucin de esta instruccin requiere la microoperacin:

q1t3: A R, T 0

Cuando q1=1 en el tiempo t3, el contenido de R se transfiere a A y el registro de tiempo T
se borra. Al borrar T, el control regresa a producir la variable de tiempo t0, y comienza de
nuevo el ciclo de envo para leer el cdigo de operacin de la siguiente instruccin en
secuencia. El PC se incrementa en el tiempo t1, de manera que mantiene la direccin
de la siguiente instruccin.

El cdigo de operacin de la instruccin LDI OPRD habilita la salida q2=1. Las
microoperaciones que realizan esta instruccin son:

q2t3: MAR PC Transferir direccin del operando
q2t4: MBR M, PC PC+1 Leer el operando, incrementar PC
q2t5: A MBR, T 0 Transferir el operando, pasar al ciclo de envo

Mientras q2=1, las tres variables de tiempo que siguen el ciclo de envo leen el operando
de la memoria y lo transfieren al registro A. El operando se localiza en memoria
enseguida del cdigo de operacin, se lee de la memoria a partir de la direccin
especificada por el PC. El operando ledo en el MBR se transfiere a A. El PC se
incrementa una vez ms para prepararlo para la direccin del siguiente cdigo de
operacin, antes de regresar al ciclo de envo.

El cdigo de operacin de la instruccin LDA ADRS, pone la salida q3=1. Las
microoperaciones para realizar esta instruccin son:
Sistemas Digitales 1 Lgica de transferencia entre registros
Maribel Gmez Franco 95

q3t3: MAR PC Transferir la siguiente direccin de instruccin
q3t4: MBR M, PC PC+1 Leer direccin (ADRS), incrementar PC
q3t5: MAR MBR Transferir direccin del operando
q3t6: MBR M Leer el operando
q3t7: A MBR, T 0 Transferir el operando a A, pasar al ciclo de envo

La direccin del operando, simbolizada por ADRS se coloca en la memoria despus del
cdigo de operacin. Como el PC se increment en el ciclo de envo t1, ste mantiene
la direccin donde se almacena el ADRS. En el tiempo t4 el valor del ADRS se lee de la
memoria, por lo tanto, el PC se incrementa y est listo para el ciclo de envo de la
siguiente instruccin. En el tiempo t5, se transfiere el valor del ADR del MBR al MAR. Como
ADR especifica la direccin del operando, en el tiempo t6 se lee el operando de sta
direccin y se transfiere al MBR. En el tiempo t7, el operando del MBR se transfiere al
registro A y el control regresa al ciclo de envo.

En la tabla 3.8 se resumen las funciones de control y microoperaciones para un
computador sencillo. Las primeras tres variables constituyen el ciclo de envo en el cul
se lee el cdigo de operacin y se transfiere al IR. Las microoperaciones que se van a
ejecutar en el tiempo t3 dependen del valor del cdigo de operacin en el IR. En el
tiempo t3, se puede realizar cualquiera de las funciones de control q1, q2 o q3.

Tabla 3.8 Proposiciones de transferencia entre registros para una computadora sencilla.

Enviar t0: MAR PC
t1: MBR M, PC PC+1
t2: IR MBR
Mover q1t3: A R, T 0
Carga inmediata q2t3: MAR PC
q2t4: MBR M, PC PC+1
q2t5: A MBR, T 0
Carga a A q3t3: MAR PC
q3t4: MBR M, PC PC+1
q3t5: MAR MBR
q3t6: MBR M
q3t7: A MBR, T 0

3.13.3 Diseo del computador

La lista de microoperaciones especifica el tipo de registros y las funciones digitales
asociadas que deben ser incorporadas en el sistema. La lista de funciones de control
especifica las compuertas lgicas requeridas para la unidad de control.

El primer paso en el diseo es repasar las proposiciones de transferencia entre los
registros listadas en la tabla 3.8 y seleccionar todas las proposiciones que realizan la
misma microoperacin en el mismo registro. Por ejemplo, la microoperacin MAR PC
se lista en las funciones de control t0, q2t3 y q3t3. Las tres lneas se combinan en una sola
proposicin:
t0 + q2t3 +q3t3 : MAR PC

Sistemas Digitales 1 Lgica de transferencia entre registros
Maribel Gmez Franco 96










Figura 3.15 Configuracin de x1: MAR PC

La funcin de control es una funcin de Boole, por lo tanto el smbolo + significa una
operacin OR y la secuencia de un operador entre q2 y t3 denota una operacin de
Boole AND. La proposicin anterior combina todas las proposiciones para la
transferencia del PC al MAR, en la figura 3.15 se muestra la configuracin de los
componentes de sta proposicin. La funcin de control puede manipularse como una
funcin de Boole para dar:

( (( ( ) )) )
3 3 2 0 3 3 3 2 0 1
t q q t t q t q t x + ++ + + ++ + = == = + ++ + + ++ + = == =

La variable x1 se aplica a la entrada del MAR y las salidas del PC se aplican a las
entradas del MAR. Cuando x1=1, el siguiente pulso de reloj transfiere el contenido del PC
al MAR. Las variables binarias que causan que x1 sea 1 vienen de los decodificadores de
operacin de tiempo de la unidad de control.

Existen ocho microoperaciones diferentes listadas en la tabla 3.8. Para cada operacin
distinta, se acumularn las funciones de control asociadas y se aplicarn
conjuntamente a una compuerta OR. El resultado se muestra en la tabla 3.9. Las
funciones de control obtenidas para cada microoperacin se forman en una ecuacin
de la variable binaria xi, i=1, 2, , 8. Las ocho variables pueden generarse fcilmente
con las compuertas AND y OR.

Tabla 3.9 Especificacin de los componentes para un computador sencillo

x1=t0 + q2t3 +q3t3: MAR PC
x2=q3t5: MAR MBR
x3=t1 + q2t4 +q3t4: PC PC+1
x4=x3 + q3t6: MBR M
x5=q2t5 +q3t7: A MBR
x6=q1t3: A R
x7=x5 + x6 : T 0
x8=t2: IR MBR
X9=q3t7: PC 0

El diseo de la computadora sencilla se puede obtener de la informacin de
transferencia entre registros dada en la tabla 3.9, el diagrama a bloque se muestra en la
figura 3.16. Se tienen los siete registros, la unidad de memoria y los dos decodificadores.
El bloque del circuito combinacional genera las ocho funciones de control, x1 hasta x8.
MAR
PC
t0
t3

q2
q3
cargar
x1
Sistemas Digitales 1 Lgica de transferencia entre registros
Maribel Gmez Franco 97

Las funciones de control habilitan la carga e incrementan las entradas de varios
registros. Un registro que recibe informacin de dos fuentes necesita un multiplexor. Por
ejemplo, el MAR recibe informacin del PC o del MBR. Cuando x1=1 el PC transfiere su
contenido al MAR, si x1=0 entonces transfiere el contenido del MBR al MAR. Si x2=1 y x1=0
se carga el dato del MBR al MAR. El contador de tiempo T se incrementa con cada
pulso de reloj; sin embargo cuando x7=1 se borra y se pone en cero.













































Figura 3.16 Diseo de la computadora sencilla
PC
1

MUX
0
s
MAR

Memoria
IR
MBR
Decodificador
R
1 0


s
MUX
A
x8 q3 q2 q1
x1
x2 Circuito x5
combinacional
x3 x6

x4 x7

t7 t6 t0
Decodificador
T
Incrementar
Cargar
Direccionar
Leer
Cargar
Cargar
Cargar
Reloj Borrar
Sistemas Digitales 1 Lgica de transferencia entre registros
Maribel Gmez Franco 98

3.14 Bibliografa

Morris, M. Lgica Digital y Diseo de Computadores. Ed. Prentice Hall. Mxico, 1982.
Cap. 8.


Sistemas Digitales 1 Diseo Lgico de Procesadores
Maribel Gmez Franco 99

UNIDAD IV. DISEO LGICO DE PROCESADORES
1

Una unidad procesadora est formada por un nmero de registros y funciones digitales
y es la encargada de configurar las operaciones de un sistema digital tal como
microoperaciones aritmticas, lgicas, de desplazamiento y transferencia. A esta
unidad procesadora se le llama unidad de procesamiento central CPU al combinarse
con una unidad de control que inspecciona la secuencia de microoperaciones.

El procesador se configura para realizar funciones bsicas, como por ejemplo sumar y
desplazar. La unidad de control se disea para dar secuencia a las microoperaciones
que no son bsicas. La unidad aritmtica lgica ALU es un circuito combinacional que
especifica las microoperaciones con la informacin almacenada en los registros del
procesador. El resultado de la operacin se transfiere al registro destino. Comnmente
las microoperaciones de desplazamiento se configuran en otra unidad.

La CPU debe operar adems de los datos, cdigos de instruccin y direcciones que
vienen de memoria. El registro que almacena y maneja el cdigo de operacin de
instrucciones es parte de la unidad de control. Los registros que almacenan direcciones,
algunas veces se incluyen como parte de la unidad de proceso y esta informacin de
direcciones se procesa por la ALU.

4.1 Organizacin del Procesador

En algunas ocasiones a la unidad procesadora se trata como el canal de datos de la
CPU porque establece los canales de transferencia de datos entre los registros de la
unidad. Las compuertas de control en un canal de datos, son principalmente
multiplexores y decodificadores.

4.1.1 Organizacin del bus

Cuando se incluye un gran nmero de registros en una unidad de proceso es ms
eficiente conectarlos por medio de buses comunes o arreglarlos como una memoria
pequea con tiempo de acceso muy rpido. Los registros se comunican entre s por la
transferencia directa de datos o cuando se realizan varias microoperaciones. En la
figura 4.1 se muestra una organizacin con bus para cuatro registros procesadores.
Cada registro se conecta a dos multiplexores para formar los buses de entrada A y B. Las
lneas de seleccin de cada multiplexor seleccionan un registro para el bus particular.
Los buses A y B se conectan a una ALU, y la funcin seleccionada en esta determina la
operacin que se va a realizar. Las microoperaciones de desplazamiento se configuran
en el registro de desplazamiento. El resultado de la microoperacin pasa a travs del
bus de salida S hasta las entradas de todos los registros. El registro de destino que recibe
la informacin del bus de salida se selecciona por medio de un decodificador. Cuando
se habilita, este decodificador activa una de las entradas de carga del registro para
suministrar un canal de transferencia entre los datos del bus S y las entradas del registro
de destino seleccionado.

El bus de salida S alimenta las terminales para transferir datos de un destino externo. Una
entrada del multiplexor A o B puede recibir datos de los elementos que lo rodean
cuando es necesario transferir datos externos a la unidad de proceso.

1
Morris, M. Lgica Digital y Diseo de Computadores. Ed. Prentice Hall. Mxico, 1982. Cap. 9.
Sistemas Digitales 1 Diseo Lgico de Procesadores
Maribel Gmez Franco 100




































Figura 4.1 Registros procesadores y ALU conectados por medio de buses comunes

La construccin de un procesador con bus organizado con mas registros requiere de
multiplexores mayores y decodificador. La unidad de control que supervisa el sistema de
bus procesador dirige el flujo de informacin a travs del ALU seleccionando los
diferentes componentes de la unidad. Por ejemplo, para realizar la microoperacin:

R1R2+R3

El control debe suministrar variables de seleccin binarias a las siguientes entradas:

1. Selector MUX A: coloca el contenido de R2 en el bus A.
2. Selector MUX B: pone el contenido de R3 en el bus B.
3. Selector de funcin ALU: genera la operacin aritmtica A+B.
4. Selector de desplazamiento: para la transferencia directa de la salida del ALU al bus
de salida S (ningn desplazamiento).
5. Selector de destino del decodificador: transfiere el contenido del bus S a R1.

R0
Decodificador
Carga
Bus S
Habilitar
R1
R2
R3

MUX MUX
Unidad aritmtica lgica
ALU
Registro de desplazamiento
Seleccin
de destino
Selector A
Selector
Entrada
de datos
Selector de
funcin
Salida de datos
Bus A Bus B
Sistemas Digitales 1 Diseo Lgico de Procesadores
Maribel Gmez Franco 101

Las cinco variables de control deben generarse en un pulso de reloj simultneamente.
La informacin binaria de los registros R2 y R3 se propaga a travs de la lgica
combinacional (multiplexores, ALU y el registro de desplazamiento) hasta el bus de
salida y a las entradas del registro R1 en un pulso de reloj, esta informacin se carga al
registro R1 hasta el pulso de reloj siguiente. Para que la respuesta sea ms rpida se
utiliza la ALU con circuitos generadores de arrastre posterior y el registro de
desplazamiento se configura con compuertas combinacionales.

En algunas ocasiones a la unidad procesadora se le llama registro y unidad aritmtica
lgica o RALU (register and arithmetic logic unit). Algunos fabricantes lo llaman un
microprocesador de un grupo de bits. El prefijo micro se refiere a un tamao fsico muy
pequeo del circuito integrado en el cual se incluye el procesador. El grupo de bits se
refiere al hecho de que el procesador puede ser expandido a una unidad de proceso
con un gran nmero de bits usando un grupo de CIs. Por ejemplo, un microprocesador
de un grupo de 4 bits contiene registros y ALU para manipular datos de 4 bits. Si se
combinan dos CIs de stos se puede construir una unidad procesadora de 8 bits.

Un microprocesador de un grupo de bits es diferente de un microprocesador. El primero
es una unidad procesadora mientras que el microprocesador se refiere a una CPU
completa encapsulada en una pastilla de CI.

4.1.2 Memoria scratchpad o memoria de apuntes

Scratch-pad memory. Memoria de apuntes. Dispositivo almacenador de informacin
relacionado directamente con el procesador central de una computadora, caracterizado por su
rapidez de funcionamiento y su relativamente pequea capacidad. Su funcin es la de
suministrar a dicho procesador los datos que intervienen en un cmputo inmediato, sin las
demoras que ocurriran si los datos son extrados directamente de la memoria principal.
(J avier Collazo. Diccionario enciclopdico de trminos tcnicos. Vol. I I . Ed. McGrawHill.
Mxico, 1980. I mpresin 1996)

Cuando los registros de una unidad procesadora se pueden incluir dentro de una
memoria pequea, a esta memoria se le llama memoria de apuntes. Entonces, la
transferencia de informacin hacia la ALU se puede hacer de dos maneras. En el
sistema de bus, esta transferencia se elige por medio de multiplexores que forman los
canales (buses). Por otra parte, un slo registro se puede seleccionar por medio de una
direccin de memoria.

La memoria de apuntes no debe confundirse con la memoria principal del computador.
La memoria principal almacena instrucciones y datos. La memoria de apuntes es solo
una alternativa para conectar un nmero de registros procesadores por medio de un
camino de transferencia comn. La informacin almacenada en la memoria de
apuntes proviene normalmente de la memoria principal.

En la figura 4.2 se muestra una unidad procesadora que utiliza una memoria de apuntes.
Los registros fuente A y B se cargan de la memoria. La seleccin se hace especificando
las direcciones de palabra correspondientes y activando la entrada de lectura de la
memoria. La informacin de A y B se manipula en la ALU y en el registro de
desplazamiento. El resultado de la operacin se transfiere a un registro de memoria
especificando su direccin de palabra y activando el control de entrada de escritura
en memoria. El multiplexor a la entrada de la memoria puede seleccionar datos de
entrada de una fuente externa.
Sistemas Digitales 1 Diseo Lgico de Procesadores
Maribel Gmez Franco 102



























Figura 4.2 Unidad de proceso que utiliza memoria de apuntes

Asumiendo que la memoria tiene ocho palabras, por lo tanto se requieren tres bits para
especificar la direccin. Para realizar la operacin:

R1R2+R3

El control debe suministrar las variables de seleccin binarias para realizar la siguiente
secuencia de tres microoperaciones:

T1: A M[010] transferir R2 al registro A
T2: B M[011] transferir R3 al registro B
T3: M[001] A+B ejecutar una operacin en la ALU y transferir el resultado a R1

La funcin de control T1 debe poner la direccin 010 en la memoria, habilitar la lectura y
cargar el dato en el registro A. La funcin de control T2 debe suministrar la direccin 011
a la memoria, activar la lectura y cargar el dato al registro B. La funcin de control T3,
debe seleccionar el cdigo de la ALU y del registro de desplazamiento correspondiente
a la operacin de suma sin desplazamiento, poner la direccin 001 a la memoria,
seleccionar la salida del registro de desplazamiento para el MUX y activar la entrada de
escritura de la memoria.

La secuencia de tres microoperaciones en lugar de una, se debe a la limitacin de la
unidad de memoria. Para leer los registros fuente A y B de la memoria se utilizan las
mismas lneas de direccin, por lo tanto se requieren de dos microoperaciones para
obtener la informacin de A y B. La tercera microoperacin es necesaria para escribir al
registro destino. Si el registro destino fuera el mismo que el segundo registro fuente, la
MUX
Memoria de
apuntes
A B

ALU
Registro de
desplazamiento
Entrada
de datos
Direccin
Seleccin
Lectura

Escritura
Salida de
datos
Carga Carga
Seleccin
de funcin
Seleccin de
desplazamiento
Sistemas Digitales 1 Diseo Lgico de Procesadores
Maribel Gmez Franco 103

seal de control puede activar la operacin de lectura para obtener el dato de la
segunda fuente, seguida de la seal de escritura para transferir el resultado al registro
destino sin modificar la direccin.

Algunos procesadores emplean una memoria de dos puertos para leer los dos registros
fuente al mismo tiempo y evitar demoras. Este tipo de memoria tiene dos lneas de
direccin separadas para seleccionar las palabras de memoria simultneamente. Si el
registro destino es igual a uno de los registros fuente, entonces la microoperacin puede
realizarse durante un pulso de reloj.

Una unidad procesadora con una memoria de dos puertos se muestra en la figura 4.3.
La memoria tiene dos grupos de direcciones, uno para el puerto A y otro para el puerto
B. Los registros A y B son retenedores (latches) que aceptan nueva informacin siempre
y cuando el pulso de reloj se encuentre en nivel alto, cuando el reloj cambia a nivel
bajo se deshabilitan y retienen la informacin. La entrada de reloj controla las
operaciones de lectura y escritura en memoria por medio de la terminal de habilitacin
de escritura (WE). Adems controla las transferencias a los registros A y B.



















Figura 4.3 Unidad de proceso con una memoria de dos puertos

Cuando la seal de reloj es 1, las palabras seleccionadas por las direcciones A y B se
leen de la memoria y se colocan en los registros A y B respectivamente. La operacin en
la ALU se realiza con los datos almacenados en A y B. Cuando la seal de reloj se pone
en cero, los registros mantienen los ltimos datos introducidos. Si la terminal de ME est
habilitada cuando WE=0, el resultado de la microoperacin se escribe en la palabra de
memoria definida por la direccin B. As una microoperacin:

R1R2+R3

puede hacerse dentro de un periodo de un pulso de reloj. El registro de memoria R1
debe especificarse con la direccin B y R2 con la direccin A.




Memoria de apuntes
WE ME
A B
ALU y registro
de desplazamiento
Direccin A Direccin B
Habilitar
memoria
(ME)
Habilitacin de
escritura (WE)
Pulso de reloj (CP)
Sistemas Digitales 1 Diseo Lgico de Procesadores
Maribel Gmez Franco 104

4.1.3 Registro acumulador

Algunas unidades procesadoras separan el registro acumulador (AC o A) de los otros
registros. El nombre acumulador se deriva del proceso de adicin aritmtica que utilizan
las computadoras digitales. El proceso de sumar muchos nmeros se realiza
almacenando esos nmeros en otros registros o unidad de memoria del procesador y
poniendo a cero el acumulador. Los nmeros se agregan al acumulador uno a uno en
orden consecutivo. El registro acumula la suma paso a paso haciendo sumas
secuenciales entre un nmero nuevo y la suma acumulada previamente.

En una unidad de proceso, el registro acumulador es un registro de propsito general
capaz de realizar no slo la microoperacin de suma sino tambin otras
microoperaciones de la misma forma.

La figura 4.4 muestra el diagrama a bloques de una unidad procesadora con registro
acumulador. El registro A se distingue de los dems registros procesadores. En algunos
casos toda la unidad procesadora es justamente el registro acumulador y la ALU
asociada. El registro en si puede funcionar como un registro de desplazamiento para
suministrar las microoperaciones de desplazamiento. La entrada B suministra una fuente
de informacin externa. Esta informacin puede provenir de otros registros procesadores
o directamente de la memoria principal del computador. El registro A suministra la otra
fuente de informacin a la ALU por la terminal A. El resultado de una operacin se
transfiere de nuevo al registro A y se remplaza por su contenido previo. La salida del
registro A puede ir a un destino externo o a las terminales de entrada de otros registros
procesadores o unidad de memoria.
























Figura 4.4 Procesador con un registro acumulador


Registros procesadores
o
unidad de memoria

ALU

Registro acumulador
A
Seleccin de fuente
B
A
Salida de datos
Entrada de datos
Sistemas Digitales 1 Diseo Lgico de Procesadores
Maribel Gmez Franco 105

Para hacer la suma de dos nmeros almacenados en los registros procesadores, es
necesario agregarlos en el registro A usando la siguiente secuencia de
microinstrucciones:

T1: A 0 borrar A
T2: A A + R1 transferir R1 a A
T3: A A + R2 agregar R2 a A

Primero se borra el registro A. El nmero almacenado en R1 se transfiere al registro
acumulador. El segundo nmero almacenado en R2 se suma al contenido del
acumulador. La suma formada en A debe utilizarse para otros clculos o se puede
transferir a su destino requerido.

4.2 Unidad Aritmtica y Lgica

Una unidad aritmtica y lgica (ALU) es un circuito digital combinacional que como su
nombre lo indica realiza un conjunto de operaciones aritmticas bsicas y lgicas. La
ALU tiene un nmero de lneas de seleccin para elegir una operacin particular de la
unidad. Las lneas de seleccin se decodifican dentro de la ALU de manera que las k
variables de seleccin pueden especificar hasta 2
k
operaciones diferentes.

En la figura 4.5 se muestra el diagrama a bloques de una ALU de 4 bits. Las cuatro
entradas de datos de A se combinan con las cuatro entradas de B para generar una
operacin en las salidas F. La terminal de seleccin de modo S2 distingue entre las
operaciones aritmticas y lgicas. Las dos entradas de seleccin S1 y S0 especifican la
operacin aritmtica o lgica que se va a generar. Con tres variables de seleccin es
posible especificar cuatro operaciones aritmticas (con S2 en un estado). Los arrastres
de entrada y salida tienen significado solamente durante una operacin aritmtica.
















Figura 4.5 Diagrama a bloques de una ALU de cuatro bits

El arrastre de entrada en la posicin menos significativa de una ALU se utiliza como una
cuenta variable de seleccin que puede doblar el nmero de operaciones aritmticas.
De esta manera, es posible generar cuatro operaciones mas, para un total de ocho
operaciones aritmticas.

El diseo de una ALU tpica se puede realizar en tres etapas:

A4 A3 A2 A1 B4 B3 B2 B1

Unidad Aritmtica Lgica
ALU

F4 F3 F2 F1
Cout
Acarreo de salida
Cin
Acarreo de entrada
S1
Seleccin de funcin
S0
A B
F
S2 Seleccin de modo
Sistemas Digitales 1 Diseo Lgico de Procesadores
Maribel Gmez Franco 106

diseo de la seccin aritmtica
diseo de la seccin lgica
modificar la seccin aritmtica de tal forma que se puedan realizar ambas
operaciones aritmticas y lgicas

4.3 Diseo de un circuito aritmtico

El componente bsico de la seccin aritmtica es un sumador en paralelo. Controlando
la entrada de datos al sumador en paralelo, es posible obtener diferentes tipos de
operaciones aritmticas. La figura 4.6 muestra las operaciones aritmticas obtenidas
cuando se controlan externamente las entradas de un sumador.







































Figura 4.6 Operaciones aritmticas obtenidas de un sumador en paralelo

La suma aritmtica se obtiene cuando un grupo de entradas recibe un nmero binario
A, el otro grupo de entradas recibe un nmero binario B y el acarreo de entrada es
Sumador en
paralelo
A B
F=A+B
Cin=0
Cout
Sumador en
paralelo
A B
F=A+B+1
Cin=1
Cout
Sumador en
paralelo
A B
F=A+B
Cin=0
Cout
Sumador en
paralelo
A B
F=A+B+1
Cin=1
Cout
Sumador en
paralelo
A 0
F=A
Cin=0
Cout
Sumador en
paralelo
A 0
F=A+1
Cin=1
Cout
Sumador en
paralelo
A 1s
F=A-1
Cin=0
Cout
Sumador en
paralelo
A 1

F=A
Cin=1
Cout
a) suma b) suma con acarreo
c) resta en complemento a 1 d) resta en complemento a 2
e) transferir A f) incrementar A
g) decrementar A g) transferir A
Sistemas Digitales 1 Diseo Lgico de Procesadores
Maribel Gmez Franco 107

cero, ver figura 4.6(a). Haciendo Cin como en la figura 4.6(b), se agrega un uno a la
sumatoria de A+B. Si se complementan todos los bits de B y el acarreo de entrada es
cero, se obtiene una resta en complemento a 1. Sumando un 1 al resultado anterior, se
produce una resta en complemento a 2. Al colocar ceros en la entrada B, la entrada A
se transfiere a la salida F. Ademas, poniendo el acarreo de entrada a 1 se obtiene el
incremento A. En la condicion mostrada en la figura 4.6(g) se ponen las terminales de la
entrada B en unos. Esto genera una operacin de decremento.

El circuito que controla la entrada B para suministrar las funciones ilustradas en la figura
4.6 se llama elemento verdadero/complemento, uno/cero. Las dos lineas de seleccin de
funcion s0 y s1 controlan la entrada de cada terminal B. Con dos bits de control se
pueden obtener cuatro combinaciones. En la figura 4.7 se muestra el diagrama y la
tabla de verdad para cada bit Bi y su salida Yi. Por medio de estas dos lineas de control
la terminal Bi se puede poner a cero, poner a uno, transferir el bit o complementarlo.


s1
s0 Yi
0 0 0
0 1 Bi
1 0 Bi
1 1 1

Figura 4.7 Circuito verdadero/complemento, uno/cero

Un circuito aritmtico de 4 bits que realiza ocho operaciones aritmticas se muestra en
la figura 4.8. El sumador en paralelo internamente tiene cuatro sumadores completos.
Internamente, el arrastre que va a la primera etapa es el arrastre de entrada Cin, el
arrastre de salida de la cuarta etapa es el arrastre de salida Cout; todos los dems
arrastres estan conectados de una etapa a la siguiente. Las variables de seleccin son:
s0, s1 y Cin. Las variables s1 y s0 controlan todas las entrdas de B, como se vio
anteriormente. Las entradas A van directamente a las otras entradas del sumador en
paralelo. Las operaciones aritmticas configuradas se listan en la tabla 4.1.

Tabla 4.1 Operaciones aritmeticas para el circuito de la figura 4.8

Selector de funcin
s1 s0 Cin
Y igual a: Salida igual a: Funcin
0 0 0 0 F=A Transferir A
0 0 1 0 F=A+1 Incrementar A
0 1 0 B F=A+B Sumar A+B
0 1 1 B F=A+B+1 Sumar A+B+1
1 0 0 B F=A+B Restar A-B en complemento a 1
1 0 1 B F=A+B+1 Restar A-B en complemento a 2
1 1 0 Todos unos F=A-1 Decrementar A
1 1 1 Todos unos F=A Transferir A

Este ejemplo demuestra la factibilidad de construir un circuito aritmtico por medio del
sumador en paralelo. El circuito combinacional que se agrega en cada etapa entre las
Bi
s0
s1
Yi
Sistemas Digitales 1 Diseo Lgico de Procesadores
Maribel Gmez Franco 108

entradas externas Ai y Bi y las entradas del sumador en paralelo, es una funcin de las
operaciones aritmticas que van a ser configuradas.
































Figura 4.8 Diagrama lgico del circuito aritmtico

4.3.1 Efecto del acarreo de salida

El acarreo de salida de un circuito aritmtico proporciona informacin especial,
principalmente despus de realizar una resta. Considerando un circuito aritmtico de n
bits el acarreo de salida ser igual a uno, cuando la salida del circuito es igual o mayor
que 2
n
. La tabla 4.2 lista las condiciones para que se presente un acarreo de salida. En la
funcin F=A el acarreo de salida siempre ser cero. En la funcin de incremento el
acarreo de salida slo ser igual a uno cuando los n bits de A sean slo unos (A=2
n
-1).
Cuando en una operacin de suma el Cout=1 indica una condicin de sobrecapacidad.

Al realizar una sustraccin en complemento a 1, si A>B se genera un acarreo de salida,
esto indica que el resultado es positivo y que al resultado se le debe sumar un uno.
Cuando A<B, el acarreo de salida es cero e indica que el resultado es negativo y que
est en complemento a 1.




Cin
s1
s0
A4
B4
F3
F2
A3
B3
A2
B2
A1
B1
F1
F4
COUT
Sistemas Digitales 1 Diseo Lgico de Procesadores
Maribel Gmez Franco 109

Tabla 4.2 Efecto del acarreo de salida en el circuito aritmtico de la figura 4.8

Selector de funcin
s1 s0 Cin
Funcin
aritmtica
Cout=1 si: Comentarios
0 0 0 F=A Cout es siempre 0
0 0 1 F=A+1 A=2
n
1 Cout =1 y F=0 si A=2
n
1
0 1 0 F=A+B (A +B) 2
n
Ocurre sobreflujo si Cout =1
0 1 1 F=A+B+1 ( A +B ) ( 2
n
1) Ocurre sobreflujo si Cout =1
1 0 0 F=A +B A >B Si Cout =0, entonces AB y F=C a 1 de (B A)
1 0 1 F=A +B +1 A B Si Cout =0, entonces A<B y F=C a 2 de (B A)
1 1 0 F=A-1 A 0 Cout =1, excepto cuando A=0
1 1 1 F=A Cout siempre es igual a 1

En la operacin de sustraccin en complemento a 2, el acarreo de salida proporciona
la misma informacin que para el caso anterior, si A>B se genera un acarreo de salida,
esto indica que el resultado es positivo y que al resultado se le debe sumar un uno.
Cuando A<B, el acarreo de salida es cero e indica que el resultado es negativo y que
est en complemento a 2.

La operacin de decremento se obtiene sumando unos al valor de A, por lo tanto, el
acarreo de salida siempre ser uno, excepto cuando el valor de A es cero. En la ltima
operacin,transferencia de A, el acarreo de salida siempre es uno debido a que al valor
de A se le suman unos y el acarreo de entrada es uno.

4.3.2 Diseo de otros circuitos aritmticos

El diseo de cualquier circuito aritmtico que genera un conjunto de operaciones
bsicas se puede desarrollar asumiendo que todas las operaciones se llevan a cabo
con un sumador en paralelo. Sobre la base del diagrama de funcin se obtiene una
tabla de funcin que relaciona las entradas del circuito sumador completo con las
entradas externas. A partir de la tabla de funcin se obtiene el circuito combinacional
que debe agregarse al sumador.

Por ejemplo, disee un circuito sumador/restador con dos entradas A y B una variable
de seleccin s. Cuando s=1 se realiza la operacin de A-B, utilizando el complemento a
2 de B. En la figura 4.9(a) se presenta la especificacin de la funcin. En la suma el
acarreo de entrada es cero. En la resta, para obtener el complemento a 2 de B es
necesario el complemento de B mas uno, por lo tanto, el acarreo de entrada es uno. En
la figura 4.9(b) se lista la tabla de funcin cuando s=0, las entradas del sumador Xi y Yi
deben ser igual a las entradas A y B, respectivamente. Si s=1, entonces a Yi debe llegar
el complemento de B. El acarreo de entrada debe ser igual a la lnea de seleccin.
Adems, en la figura 4.9(b) se muestra un diagrama a bloques la ubicacin del circuito
combinacional. La tabla de verdad de la figura 4.9(c) lista todos los valores de las
variables de entrada y las funciones de salida simplificadas.

El diagrama del circuito sumador/restador de cuatro bits en complemento a 2 se
muestra en la figura 4.10. Este circuito utiliza un sumador en paralelo de cuatro bits y
compuertas XOR.

Sistemas Digitales 1 Diseo Lgico de Procesadores
Maribel Gmez Franco 110








a) Especificacin de la funcin


s Xi Yi Cin
0 Ai Bi 0
1 Ai Bi 1


b) Especificacion del circuito combinacional

s Ai Bi Xi Yi
0 0 0 0 0
0 0 1 0 1
0 1 0 1 0
0 1 1 1 1
1 0 0 0 1
1 0 1 0 0
1 1 0 1 1
1 1 1 1 0

c) Tabla de verdad y ecuaciones simplificadas

Figura 4.9 Diseo del circuito sumador/restador



















Figura 4.10 Circuito sumador/restador de 4 bits
Xi=Ai
Yi=Bis
Cin=s

Circuito
combinacional
Xi
Sumador
completo
Yi
Ci
Ci+1
Fi
s
Ai
Bi
Cin=0
Sumador en
paralelo
A B
F=A+B
Cout
Cin=1
Sumador en
paralelo
A B
F=A+B+1
Cout
S
A1
B1


A2
B2



A3
B3


A4
B4
F1



F2




F3




F4

Cout
Sistemas Digitales 1 Diseo Lgico de Procesadores
Maribel Gmez Franco 111

4.4 Diseo del circuito lgico

Las microoperaciones lgicas manipulan los bits de los operandos de forma individual.
En la tabla 4.3 se listan 16 operaciones aritmticas que se pueden realizar con dos
variables binarias. Estas operaciones se pueden generar en un circuito y seleccionarse
por medio de cuatro lneas.

Figura 4.3 Expresiones de Boole para 16 funciones de dos variables

Funciones de Boole Nombre Comentarios
F0 =0 Nulo Constante binaria 0
F1 =xy AND x y y
F2 =xy Inhibicin x pero no y
F3 =x Transferencia x
F4 =xy Inhibicin y pero no x
F5 =y Transferencia y
F6 =xy+xy OR-exclusiva x o y pero no ambas
F7 =x+y OR x o y
F8 =(x+y) NOR No OR
F9 =xy+xy Equivalencia (XNOR) x igual a y
F10 =y Complemento No y
F11 =x+y Implicacin Si y entonces x
F12 =x Complemento No x
F13 =x+y Implicacin Si x entonces y
F14 =(xy) NAND No AND
F15 =1 Identidad Constante binaria 1

Todas las operaciones lgicas se pueden obtener a partir de AND, OR y NOT (inversor),
e implementarse a partir de estas compuertas lgicas. Con dos lneas de seleccin se
pueden seleccionar hasta cuatro operaciones lgicas, como slo son tres operaciones
bsicas adems se agrega la funcin XOR.


S1 S0 Salida Operacin
0 0 Fi=Ai +Bi OR
0 1 Fi=Ai Bi XOR
1 0 Fi=Ai Bi AND
1 1 Fi=Ai NOT



a) Diagrama lgico b) Tabla de operacin

Figura 4.11 Una etapa del circuito lgico


0

1

MUX

2

3 Seleccin
Ai
Bi
s1
s0
Fi
Sistemas Digitales 1 Diseo Lgico de Procesadores
Maribel Gmez Franco 112

En la figura 4.11 se muestra una etapa del circuito lgico. Las variables de seleccin s1 y
s0 se pueden hacer comunes para la seccin aritmtica y lgica, siempre y cuando se
utilice una tercer variable para diferenciar entre las dos. En la figura 4.12 se muestra una
configuracin donde las salidas de los circuitos aritmticos y lgicos de cada etapa
llegan a un multiplexor y la seleccin la efecta s2. Si s2=0 se selecciona la salida
aritmtica, para s2=1 la salida lgica.













Figura 4.12 Combinacin de circuitos lgicos y aritmticos

Una ALU ms eficiente se puede obtener utilizando el mismo circuito aritmtico para
realizar ambas operaciones aritmticas y lgicas. Esto puede realizarse inhibiendo los
acarreos de entrada de los circuitos sumadores. En un circuito sumador completo, la
funcin de salida es:

F=Xi Yi Cin

El acarreo de entrada se puede hacer cero durante una operacin lgica (s2=1),
entonces la funcin de salida ser:

F=Xi Yi

Con el acarreo de entrada cero el sumador completo funciona como una XOR.
Considerando el circuito de la figura 4.8, el valor de Yi puede recibir 0, Bi, Bi 1 por
medio de las dos variables de seleccin. El valor de Xi siempre es igual a la entrada Ai.
En la tabla 4.4 se muestras las cuatro operaciones lgicas obtenidas cuando la tercera
variable de seleccin s2=1. Esta variable de seleccin obliga a que Ci sea igual a cero,
mientras que s1 y s0 seleccionan un valor particular de Yi. Cuando la entrada Yi=0 se
obtiene la operacin de transferencia donde Fi=Ai0=Ai. Si Yi=Bi, se realiza la operacin
XOR, F=AiBi. Al complementar la entrada Bi se obtiene una operacin XNOR. Por ltimo,
si Yi=1 entonces Fi=A1=Ai.

Tabla 4.4 Operaciones lgicas en una etapa de un circuito aritmtico
s2 s1 s0 Xi Yi Ci F=Xi Yi Operacin Operacin requerida
1 0 0 Ai 0 0 F=Ai Transferir A OR
1 0 1 Ai Bi 0 F=Ai Bi XOR XOR
1 1 0 Ai Bi 0 F=Ai Bi Equivalencia AND
1 1 1 Ai 1 0 F=Ai NOT NOT
Una etapa de un
circuito aritmtico
Una etapa de un
circuito lgico
0
MUX
1
Cin Ci+1
Ai
Bi
S1
S0
S2
Fi
Sistemas Digitales 1 Diseo Lgico de Procesadores
Maribel Gmez Franco 113

En la ltima columna de la tabla 4.4 se listan las cuatro operaciones lgicas que deben
incluirse en la ALU. Dos de estas operaciones, XOR y NOT, se obtienen directamente, sin
embargo, es necesario encontrar la forma de implementar las otras dos operaciones.

4.5 Diseo de una ALU

En esta seccin se disea una ALU con ocho operaciones aritmticas y cuatro
operaciones lgicas. Con la seal de control s2 se elige el modo de operacin
aritmtico o lgico. Cuando s2=0, las seales s1 y s0 en conjunto con Cin seleccionan las
ocho operaciones aritmticas. Si s2=1, las seales s1 y s0 seleccionan las cuatro
operaciones lgicas AND, OR, XOR y NOT.

En el diseo de la ALU se puede trabajar primero con una etapa de un bit y
posteriormente conectar en cascada estas etapas. En cada etapa se tiene seis
variables de entrada s2, s1, s0, Ai, Bi y Cin y dos de salida Fi y Ci+1. Una ALU se puede
disear por medio de un circuito combinacional a partir de una tabla de verdad, sin
embargo, el procedimiento a seguir para disear la ALU es el siguiente:

1. Disear la seccin aritmtica independientemente de la seccin lgica
2. Determinar las operaciones lgicas obtenidas del circuito aritmtico del paso
anterior, asumiendo que los arrastres de entrada son cero
3. Modificar el circuito aritmtico para obtener las operaciones lgicas requeridas

Los primeros dos pasos ya se disearon en las secciones anteriores. El tercer paso
consiste en modificar el circuito aritmtico para obtener las operaciones lgicas AND y
OR. Cuando s1s0=00 se genera Fi=Ai, para obtener la operacin OR es necesario cambiar
la entrada Xi de Ai a Ai + Bi. Para s1s0=10 se genera Fi=AiBi pero la operacin que debe
realizar es la AND, donde Fi=AiBi. Considerando la funcin OR a la entrada de Xi se
puede buscar una funcin de Boole Ki que genere la operacin AND:

( (( ( ) )) ) ( (( ( ) )) ) ( (( ( ) )) )
i
i i
i i i i i
i i i i i i i i i i i i
B K A B K B A F
B K A B K A B K A Y X F
+ ++ + + ++ + = == =
+ ++ + + ++ + + ++ + = == = + ++ + = == = = == =


Analizando la funcin, si la variable Ki=Bi entonces

B A B B A B B B A F
i i
i i
i i i i i
= == = + ++ + + ++ + = == =

Como resultado se obtiene la operacin AND. En la tabla 4.5 se listan las cuatro
operaciones.

Tabla 4.5 Operaciones lgicas en una etapa de un circuito aritmtico









s2 s1 s0 Xi Yi Ci F=Xi Yi Operacin
1 0 0 Ai+Bi 0 0 F=Ai+Bi OR
1 0 1 Ai Bi 0 F=Ai Bi XOR
1 1 0 Ai +Bi Bi 0 F=AiBi AND
1 1 1 Ai 1 0 F=Ai NOT
Sistemas Digitales 1 Diseo Lgico de Procesadores
Maribel Gmez Franco 114

En la figura 4.13 se muestran dos etapas del diseo final de la ALU. Las entradas a cada
circuito sumador completo se especifican por medio de las funciones de Boole:

Xi=Ai+s2s1s0Bi+s2s1s0Bi
Yi=s0Bi+siBi
Zi=s2Ci

Cuando s2=0, la ALU opera en el modo aritmtico y las tres funciones se reducen a:

Xi=Ai
Yi=s0Bi+s1Bi
Zi=Ci

Cuando s2=1, la ALU opera en el modo lgico y las tres funciones se reducen de
acuerdo al valor de s1 y s0:

Xi=Ai+s1s0Bi+s1s0Bi
Yi=s0Bi+s1Bi
Zi=0
































Figura 4.13 Diagrama lgico de dos etapas de una ALU

Zi
Xi

Fi

Yi

Zi
Xi

Fi

Yi

cin

s2
s1
s0
A1
B1
A2
B2
F2
F1
Cout
C3
C2
C1
Sistemas Digitales 1 Diseo Lgico de Procesadores
Maribel Gmez Franco 115

En la tabla 4.6 se listan las 12 operaciones lgicas y aritmticas.

Tabla 4.6 Tabla de operacin para la ALU de la figura 4.13

Seleccin
S2 S1 S0 Cin
Salida Funcin
0 0 0 0 F =A Transferir A
0 0 0 1 F =A +1 Incrementar A
0 0 1 0 F =A +B Suma
0 0 1 1 F =A +B +1 Suma con acarreo
0 1 0 0 F =A B 1 Resta con prstamo
0 1 0 1 F =A B Sustraccin
0 1 1 0 F =A-1 Decrementar A
0 1 1 1 F =A Transferir A
1 0 0 0 F =A B OR
1 0 1 0 F =A B XOR
1 1 0 0 F =A B AND
1 1 1 0 F =A Complemento de A

4.6 Registro de condicin

Cuando se realiza una operacin entre dos nmeros, el resultado puede brindar ciertas
condiciones que se pueden utilidar para determinar si este resultado es correcto. Por
ejemplo, cuando se suman dos nmeros con signo es importante conocer el signo del
resultado, si el resultado es cero o si se presenta una condicin de sobrecapacidad. Si
los dos nmeros son positivos las condiciones de los bits de algn inters, son el arrastre
de salida y un resultado posible de cero. En algunas ocasiones, es conveniente disponer
de un registro que almacene ciertas condiciones de los bits para un anlisis posterior. El
estado de los bits de condicin se llama algunas veces cdigo de condicin de los bits o
bits indicadores o de estado.

En la figura 4.14 se muestra un diagrama a bloques de una ALU de 8 bits con un registro
de condicin de 4 bits (C, S, Z y V). Los bits se ponen a uno o cero como resultado de
una operacin realizada en la ALU.

! El bit C (acarreo) se pone a uno si el arrastre de salida de la ALU es uno y se pone a
cero (borrado) si el arrastre de salida es cero.

! El bit S (signo) se pone a uno si el bit de signo (MSB) del resultado es negativo y se
pone a cero si el bit de signo es cero, esto es resultado positivo.

! El bit Z (cero) se pone a uno si la salida de la ALU contiene slo ceros y se pone a
cero si el resultado es diferente de cero.

! El bit V (sobreflujo) se pone a uno si en el resultado se presenta una sobrecapacidad
al sumar nmeros con signo, y de otra manera se pone en cero. En la ALU de 8 bits,
el bit V se pone a uno cuando el resultado es mayor que 127 menor que 128.



Sistemas Digitales 1 Diseo Lgico de Procesadores
Maribel Gmez Franco 116


















Figura 4.14 Habilitacin del registro de condicin

Despus de realizar una operacin, los bits de condicin se pueden utilizar para
determinar cierta relacin entre los valores de A y B. Si V se pone a uno despus de
sumar dos nmeros con signo, ste indica que hay una condicin de sobrecapacidad.
Si Z se pone a uno despus de una operacin XOR indica que A=B. Se puede verificar
un solo bit de A es 0 1, enmascarando todos los bits excepto el bit de prueba y luego
comprobar si el bit de condicin Z. Por ejemplo, sea A=101x1100 donde x es el bit a
verificar. La operacin AND de A con B=00010000 producir un resultado 000x0000, si x=0
el bit de condicin se pone a uno, pero si x=1 el bit Z se borra ya que el resultado es
diferente de cero.

La operacin de comparacin es una sustraccin de A menos B, salvo que el resultado
de la operacin no se transfiere al registro de destino, afectando slo los bits de
condicin. El registro de condicin proporciona la informacin acerca de las
magnitudes relativas de A y B.

Considerando la operacin de AB realizada con nmeros sin signo, es posible
determinar las magnitudes relativas de A y B por medio de los bits de condicin C y Z. Si
Z=1, entonces A=B ya que A-B=0. Si Z=0 se sabe que AB. De la tabla 4.2 se obtiene que
C=1 si AB y C=0 si A<B. En la tabla 4.7 se listan varias condiciones de comparacin. Para
que A >B se debe tener C=1 y Z=0, como C se pone a uno cuando el resultado es cero
es necesario comprobar que el resultado es diferente de cero (Z=0). Para que A sea
menor que o igual a B (A B), el bit C debe ser 0 (para A<B) bit Z=1 (para A=B).

Tabla 4.7 Bits de condicin despus de la sustraccin de A-B de nmeros sin signo

Relacin Estado del bit de condicin Funcin de Boole
A >B C=1 y Z=0 CZ
A B C=1 C
A <B C=0 C
A B C=0 Z=1 C +Z
A =B Z=1 Z
A B Z=0 Z
A B

C8 ALU
C9=Cout S

F
V Z S C
Sistemas Digitales 1 Diseo Lgico de Procesadores
Maribel Gmez Franco 117

Considerando ahora una resta de dos nmeros binarios con signo en complemento a 2,
las magnitudes relativas de A y B se pueden determinar de dos valores transferidos a los
bits de condicin Z, S y V. Si Z=1 se sabe que A=B, si Z=0 entonces AB. Si S=0 el resultado
es positivo, entonces A debe ser mayor que B, esto es cierto si no hay sobreflujo y V=0. Si
S=1 y V=1 esto indica que el resultado debera haber sido positivo y por lo tanto A debe
ser mayor que B. Para que A<B, el resultado debe ser negativo. Si el resultado es
negativo o cero, entonces A B. En la tabla 4.8 se listan las seis relaciones posibles que
pueden existir entre A y B y los valores correspondientes para los bits de condicin en
cada caso.

Tabla 4.8 Bits de condicin despus de la sustraccin de A-B de nmeros con signo

Relacin Estado del bit de condicin Funcin de Boole
A >B Z=0 y (S=0, V=0 S=1, V=1) Z(S V)
A B S=0, V=0 S=1, V=1 S V
A <B S=1, V=0 S=0, V=1 S V
A B S=1, V=0 S=0, V=1 Z=1 (S V) +Z
A =B Z=1 Z
A B Z=0 Z

4.7 Diseo de un registro de desplazamiento

El registro de desplazamiento se conecta directamente a la salida de la ALU y puede
transferir la informacin directamente sin un desplazamiento o puede desplazar la
informacin hacia la izquierda o a la derecha. Este registro produce la microoperacin
de desplazamiento que comnmente no est disponible en la ALU.

Obviamente, el circuito ms ptimo para realizar el desplazamiento es un registro de
desplazamiento con carga en paralelo. En esta configuracin se necesita un pulso de
reloj para la transferencia al registro de desplazamiento y otro pulso de reloj para el
desplazamiento. Estos pulsos son adicionales al pulso necesario para transferir la
informacin al registro destino.

La transferencia de un registro fuente a un registro de destino se puede realizar en un
solo pulso de reloj utilizando un circuito combinacional. En un registro de desplazamiento
de lgica combinacional, las seales de la ALU al bus de salida se propagan por las
compuertas sin necesidad de un pulso de reloj. Por tanto, slo se utilizara un pulso de
reloj para cargar la informacin al registro destino.

Un registro de desplazamiento de lgica combinacional se puede construir con
multiplexores como se muestra en la figura 4.15. Las dos variables de seleccin H1 y H0
aplicadas a los cuatro multiplexores determinan el tipo de operacin en el registro de
desplazamiento. Cuando H1H0=00 no se realizan desplazamientos. Con H1H0=01=10 se
genera un desplazamiento hacia la derecha o a la izquierda, respectivamente. Si
H1H0=11, la salida del registro se pone en cero. La tabla 4.9 muestra la operacin del
registro de desplazamiento.

En la figura 4.15 se muestran un registro de desplazamiento de cuatro bits, para n bits se
requieren n etapas. Las entradas IR e IL son las entradas en serie durante un
desplazamiento a la derecha o a la izquierda, respectivamente. Adems, puede
agregarse una tercer variable de seleccin H2 que cuando est en un estado puede
Sistemas Digitales 1 Diseo Lgico de Procesadores
Maribel Gmez Franco 118

seleccionar un 0 para la entrada en serie durante el desplazamiento. Cuando H2 est en
el otro estado la informacin puede circularse conjuntamente con el valor del bit de
condicin. De esta forma un arrastre producido durante una operacin de suma puede
desplazarse a la derecha a la posicin del bit ms significativo de un registro.


















Figura 4.15 Registro de desplazamiento de 4 bits a base de lgica combinacional

Tabla 4.9 Tabla de operacin para el registro de desplazamiento

H1 H0 Operacin Funcin
0 0 S F Transferir F a S sin desplazamiento
0 1 S shr F Desplazar F a la derecha hacia S
1 0 S shl F Desplazar F a la izquierda hacia S
1 1 S 0 Transferir 0 a S

4.8 Unidad Procesadora

Las variables de seleccin de la unidad procesadora controlan los buses, la ALU, el
registro de desplazamiento y el registro destino, esto es, controla las microoperaciones
ejecutadas durante cualquier pulso de reloj.

En la figura 4.16(a) se muestra un diagrama a bloques de la unidad procesadora. Esta
consta de siete registros R1 hasta R7 y el registro de condicin. Las salidas de los siete
registros van a travs de dos multiplexores para seleccionar las entradas de la ALU.
Adems se puede seleccionar una fuente de datos externa con los mismos
multiplexores. La salida de la ALU pasa a travs de un registro de desplazamiento y
luego va a un grupo de terminales de salida externos. La salida del registro de
desplazamiento puede transferirse a cualquiera de los registros o a un destino externo.

En la unidad procesadora hay 16 variables de seleccin y su funcin se especifica por la
palabra de control de la figura 4.16(b). La palabra se puede dividir en seis campos o
grupos, cada campo asignado a una letra. Los tres bits de A seleccionan el registro
fuente para la entrada en la parte izquierda de la ALU. El campo B realiza la misma
funcin pero para la entrada en la parte derecha de la ALU. El campo D selecciona el
registro destino. El campo F en conjunto con Cin seleccionan una funcin en la ALU. El
campo H selecciona la operacin del registro de desplazamiento.

0 1 2 3

MUX
0 1 2 3

MUX
0 1 2 3

MUX
0 1 2 3

MUX
F4 F3 F2 F1
Salida serial Salida serial
IR
IL
S4
S3
S2 S1
H1
H0
0
Sistemas Digitales 1 Diseo Lgico de Procesadores
Maribel Gmez Franco 119

























a) Diagrama a bloques





b) Palabra de control

Figura 4.16 Unidad Procesadora con variables de control

Las funciones de todas las variables de seleccin se especifican en la tabla 4.10. El
cdigo binario de tres bits listado en la tabla especifica el cdigo para cada uno de los
cinco campos A, B, D, F y H. El registro seleccionado por A, B o D en decimal
corresponde a su equivalente en binario. Los tres bits del campo F en conjunto con Cin,
proporcionan las 12 operaciones de la ALU.

Tabla 4.10 Funciones de las variables de control para el procesador de la figura 4.16

Funcin de las variables de seleccin
Cdigo
binario
A B D F con Cin=0 F con Cin=1 H
0 0 0 Din Dout Ninguno A, C 0 A +1 No desplazamiento
0 0 1 R1 R1 R1 A +B A +B +1 Desplazamiento a la derecha, IR=0
0 1 0 R2 R2 R2 A B 1 A B Desplazamiento a la izquierda, IL=0
0 1 1 R3 R3 R3 A 1 A, C 1 0 al bus de salida
1 0 0 R4 R4 R4 A B - -
1 0 1 R5 R5 R5 A B - Circular a la derecha con C
1 1 0 R6 R6 R6 A B - Circular a la izquierda con C
1 1 1 R7 R7 R7 A - -

Selector de
destino
Selector
bus B
Selector
bus A

ALU
Registro de
desplazamiento
1
2
3
4
5
6
10
11
12
13
Datos de salida
Archivo de
registros
de R1 a R7
14
15
16
7
8
9
Datos de entrada
V Z S C
Registro de condicin
A
B
F
Cin
H
D
A B D F Cin H
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Sistemas Digitales 1 Diseo Lgico de Procesadores
Maribel Gmez Franco 120

Cuando el campo A B es 000, el multiplexor correspondiente selecciona la entrada de
datos. Si D=000 no se selecciona el registro destino. En el campo H cuando H2 es cero se
especifican las operaciones de desplazamiento. Cuando H2=1 se especifica el valor de
las entradas en serie IR e IL que puede ser un cero o un desplazamiento circular con el
bit de acarreo C. Por conveniencia un desplazamiento circular a la derecha con
acarreo se designa como crc (circular right-shift with carry) y a la izquierda como clc
(circular left-shift with carry). Entonces, la declaracin:

R crc R

es una abreviacin de la proposicin:

R shr R, Rn C, C R1

R se desplaza a la derecha, el acarreo se transfiere a Rn (MSB) y el valor del bit menos
significativo R1, se pasa a C.

En la unidad de proceso se requieren de una palabra de control de 16 bits para
especificar una microoperacin. La forma ms eficiente de generar una palabra de
control de tantos bits es almacenarla en una memoria que funciona como memoria de
control. La secuencia de palabras de control se lee de la memoria de control palabra a
palabra para iniciar la secuencia deseada de microoperaciones. Este tipo de
organizacin de control se llama microprogramacin.

La palabra de control para una microoperacin determinada se puede derivar
directamente de la tabla 4.10. Por ejemplo, la microoperacin de sustraccin:

R1 R1 R2

Especifica que en la ALU, R1 va a la entrada A y R2 a la entrada B. La operacin de la
ALU es A-B sin desplazamiento y R1 es el registro destino. De la tabla 4.10 se deriva la
palabra de control para esta operacin:




En la tabla 4.11 se listan otras microoperaciones. La operacin de comparar es similar a
la microoperacin de sustraccin, excepto que la diferencia no se transfiere al registro
destino y solo afecta a los bits de condicin. En este caso el campo de destino D debe
ser 000. La transferencia de R4 a R5 requiere una operacin en la ALU de F=A. La fuente
A es 100 y el destino D es 101. El cdigo de seleccin B no importa porque la ALU no
utiliza el valor de B, sin embargo, en la tabla se marca como 000.

Para transferir los datos de entrada a R6, se debe tener A=000 para seleccionar la
entrada externa y D=110 para seleccionar el registro destino. Nuevamente, el valor de B
no importa y la operacin de la ALU es una transferencia de A, F=A. Los datos de R7 se
sacan poniendo A=111 y D=000. La operacin en la ALU F=A coloca la informacin de
R7 en el bus de salida.

En algunas ocasiones es necesario borrar o poner a 1 el bit de acarreo antes de una
operacin circular de desplazamiento. Esto se puede realizar poniendo en la ALU 0000
1111. Con el primer cdigo se tiene el bit C borrado y con el segundo el bit C en 1. La
A B D F Cin H
001 010 001 010 1 000
Sistemas Digitales 1 Diseo Lgico de Procesadores
Maribel Gmez Franco 121

transferencia R1 R1, C 0 no cambia el contenido del registro, pero borrar C y V.
Los bits de seleccin Z y S se afectan de igual manera. Si R1=0 entonces Z se pone a 1,
de otra manera se borrar. El bit S se pone a uno con el valor del bit de signo en R1.

Tabla 4.11 Ejemplos de microoperaciones para un procesador

Palabra de control
Microoperacin
A B D F Cin H
Funcin
R1 R1 R2 001 010 001 010 1 000 Sustraer R2 de R1
R3 R4 011 100 000 010 1 000 Comparar R3 y R4
R5 R4 100 000 101 000 0 000 Transferir R4 a R5
R6 Entrada 000 000 110 000 0 000 Entrada de datos a R6
Salida R7 111 000 000 000 0 000 Salida de datos de R7
R1 R1, C 0 001 000 001 000 0 000 Borrar el bit de arrastre C
R3 shl R3 011 011 011 100 0 010 Desplazar a la derecha R3 con IL=0
R1 crc R1 001 001 001 100 0 101 Circular a la derrecha R1 con C
R2 0 000 000 010 000 0 011 Borrar R2

El pulso de reloj que dispara el registro de destino transfiere tambin los bits de condicin
de la ALU al registro de condicin. Estos bits de condicin se afectan despus de las
operaciones aritmticas. Los bits de condicin C y V permanecen sin cambio despus
de una operacin lgica ya que no tienen significado.

Si se quiere colocar el contenido de un registro a un registro de desplazamiento sin
cambiar el bit de arrastre, se puede usar la operacin lgica OR con el mismo registro
seleccionado para las entradas A y B de la ALU. La operacin:

R R R

no cambia el valor del registro R, sin embargo, coloca el contenido de R a las entradas
del registro de desplazamiento y no cambia los valores de los bits de condicin C y V.

Para desplazar el contenido de un registro se debe colocar el valor del registro en el
registro de desplazamiento sin hacerle ningn cambio a la ALU. La proposicin de la
microoperacin de desplazamiento a la izquierda:

R3 shl R3

especifica el cdigo para la seleccin de desplazamiento pero no el cdigo para la
ALU. El contenido de R3 puede colocarse en el registro de desplazamiento para
especificar una operacin OR entre R3 y el registro mismo. La informacin desplazada
regresa a R3 si se especifica como el registro de destino. Esto requiere que los campos
de seleccin A, B y D tengan el cdigo 011 para R3, que el cdigo de la funcin de la
ALU sea 1000 para la operacin OR y que el selector H de desplazamiento sea 010 para
el desplazamiento a la izquierda.

El desplazamiento circular a la derecha con arrastre del registro R1 se simboliza por
medio de la proposicin:

R1 crc R1

Sistemas Digitales 1 Diseo Lgico de Procesadores
Maribel Gmez Franco 122

Esta proposicin especifica el cdigo del registro de desplazamiento pero no el cdigo
para la ALU. Para colocar el contenido de R3 en las terminales de salida de la ALU sin
afectar el bit C se usa la operacin OR como se hizo anteriormente. De esta manera no
se afecta el bit C en la operacin de la ALU, pero puede cambiarse debido al
desplazamiento circular.

En el ltimo ejemplo de la tabla 4.11 se muestra la palabra de control para borrar el
registro R2, para ello, se hace que el bus de salida contenga slo ceros con H=011. El
campo de destino D se hace igual al cdigo del registro R2.

Una unidad procesadora con un conjunto completo de microoperaciones es un
elemento de propsito general que puede adaptarse a muchas aplicaciones. Utilizando
el mtodo de transferencia entre registros, un sistema se puede definir con una
secuencia de proposiciones de microoperacin. Una funcin de control se representa
por medio de una cadena de variables binarias llamadas palabras de control, la cual se
deriva de la tabla de funcin del procesador. La secuencia de palabras de control para
el sistema se almacena en la memoria de control cuya salida se aplica a las variables
de seleccin del procesador. Leyendo consecutivamente las palabras de control de la
memoria, es posible darle secuencia a las microoperaciones del procesador. Este caso
particular de diseo se puede realizar utilizando el mtodo de microprogramacin.

4.9 Diseo del acumulador

El registro acumulador es esencialmente un registro de desplazamiento bidireccional
con carga paralelo el cual es conectado a una ALU. En la figura 4.17 se puede observar
que existe una conexin de retroalimentacin de la salida del registro acumulador a
una de las entradas de la ALU formando un circuito secuencial.













Figura 4.17 Diagrama a bloques del acumulador

El circuito combinacional remplaza a la ALU pero no puede separarse del registro ya
que este es solamente la parte combinacional del circuito secuencial. Las entradas
externas del acumulador son las entradas de datos de B y las variables de control que
determinan las microoperaciones del registro. El estado siguiente del registro A es una
funcin de un estado presente y de las entradas externas.

Un acumulador es un registro de multifuncin que por s mismo puede realizar todas las
microoperaciones en la unidad procesadora. Las microoperaciones que puede realizar
el acumulador dependen de las operaciones que deben incluirse en el procesador
Registro A
Circuito
combinacional
Variables de control
B
Entradas de datos
Sistemas Digitales 1 Diseo Lgico de Procesadores
Maribel Gmez Franco 123

particular. Con el fin de demostrar el diseo lgico de un acumulador se disea el
circuito con nueve microoperaciones las cuales se listan en la tabla 4.12.

Tabla 4.12 Lista de microoperaciones del acumulador
















Las variables de control p1 hasta p9 son generadas por los circuitos lgicos de control y
deben ser consideradas como funciones de control que inician las operaciones
correspondientes de transferencia entre registros. El registro A es un registro fuente en
todas las microoperaciones listadas. En esencia el registro A representa el estado
presente del circuito secuencial. El registro B se usa como un segundo registro fuente
para microoperaciones que necesitan dos operandos. Se asume que el registro B est
conectado al acumulador y suministra las entradas al circuito secuencial. El registro A
siempre es el registro destino. La nueva informacin transferida a A constituye el
siguiente estado del circuito secuencial. Las nueve variables de control tambin se
consideran entradas al circuito secuencial y son mutuamente excluyentes. La ltima
entrada produce un 1 binario en una variable de salida Z, cuando el contenido del
registro A es cero.

4.9.1 Procedimiento de diseo

El acumulador consiste de n etapas y n flip-flops A1, A2, ..., An numeradas
consecutivamente iniciando desde la posicin de la extrema izquierda. En este
procedimiento de diseo slo se considera una etapa i teniendo en cuenta que un
acumulador de n bits consta de n etapas par i=1, 2, ..., n. Cada etapa Ai se conecta a
su etapa Ai-1 vecina a su derecha y a la Ai+1 a su izquierda. A las etapas primera y ltima
debe prestrsele atencin especial por no tener etapas vecinas. El registro se disea
utilizando flip-flops J K.

Cada variable de control pj, j=1, 2, ..., 9 inicia una microoperacin en particular. Para
que la operacin tenga significado es necesario asegurar que slo una variable de
control se habilita a la vez. El acumulador se puede dividir en n etapas y cada una debe
seccionarse en aquellos circuitos que se necesitan para la microoperacin.

Agregar B a A(p1): esta microoperacin de suma se inicia cuando p1=1. Esta parte del
acumulador puede utilizar un sumador en paralelo compuesto de circuitos sumadores
completos como se hizo con la ALU. El sumador completo en cada etapa i acepta
como entradas el estado presente de Ai, la entrada de datas Bi y el bit de arrastre previo
Variable de control Microoperacin Nombre
p1 A A +B Sumar
p2 A 0 Borrar
p3 A A Complementar
p4 A A B AND
p5 A A B OR
p6 A A B XOR
p7 A shr A Desplazar a la derecha
p8 A shl A Desplazar a la izquierda
p9 A A +1 Incremento
Si A=0 entonces Z=1 Comprobar el cero
Sistemas Digitales 1 Diseo Lgico de Procesadores
Maribel Gmez Franco 124

Ci. El bit suma generado en el sumador completo debe ser transferido al flip-flop Ai y el
arrastre de salida Ci+1 debe aplicarse al arrastre de entrada en la siguiente etapa.

Considerando al sumador como un circuito secuencial, su tabla de estado se muestra
en la figura 4.19. El valor de flip-flop Ai anterior al pulso de reloj especifica el estado
presente del circuito secuencial. El valor de Ai despus de la aplicacin de un pulso de
reloj especifica el estado siguiente. El estado siguiente y la salida Ci+1 corresponde a las
salidas del sumador completo.

Estado
presente
Entradas
Estado
siguiente
Entradas de
los flip-flops
Salida
Ai Bi Ci Ai J Ai KAi Ci+1
0 0 0 0 0 X 0
0 0 1 1 1 X 0
0 1 0 1 1 X 0
0 1 1 0 0 X 1
1 0 0 1 X 0 0
1 0 1 0 X 1 1
1 1 0 0 X 1 1
1 1 1 1 X 0 1

BiCi
Ai
00 01 11 10
BiCi
Ai
00 01 11 10
BiCi
Ai
00 01 11 10
0 1 1

0 X X X X

0 1
1 X X X X

1 1 1

1 1 1 1


Figura 4.19 Tabla de excitacin par la microoperacin de suma

Las entradas de excitacin para el flip-flop J K se listan en las columnas J Ai y KAi. Las
funciones de entrada del flip-flop y las funciones de Boole para la salida se simplifican en
los mapas de la figura 4.19. Estas dos ecuaciones deben afectar el flip-flop solamente
cuando p1 est habilitada. La lgica combinacional asociada a la operacin de suma
se puede expresar con tres funciones de Boole:

J Ai=BiCip1+BiCip1
KAi=BiCip1+BiCip1
Ci+1=AiBI +AiCi +BiCi

Las primeras ecuaciones son idnticas y especifican una condicin para complementar
Ai. La tercera ecuacin genera el acarreo de la siguiente etapa.

Borrar(p2): La variable de control p2 borra todos los flip-flops en el registro A. Para poner
en modo reset al flip-flop, es suficiente con aplicar a la entrada K la variable de control
p2. Las funciones de entrada para esta microoperacin son:

J Ai =0
KAi =p2

J Ai=BiCi+BiCi KAi=BiCi+BiCi Ci+1=AiBi+AiCi +BiCi
Sistemas Digitales 1 Diseo Lgico de Procesadores
Maribel Gmez Franco 125

Compl ementar(p3): esta variable de control complementa el estado del registro A. Para
generar esta transicin en un flip-flop J K es necesario aplicar p3 a ambas entradas J y K:

J Ai =p3
KAi =p3

Estado
presente
Entradas
Estado
siguiente
Entradas de
los flip-flops

Bi
Ai
0 1
Bi
Ai
0 1
Ai Bi Ai J Ai KAi 0 0 X X
0 0 0 0 X 1 X X 1 1
0 1 0 0 X
1 0 0 X 1 J Ai=0 KAi=Bi
1 1 1 X 0

a) AND

Estado
presente
Entradas
Estado
siguiente
Entradas de
los flip-flops

Bi
Ai
0 1
Bi
Ai
0 1
Ai Bi Ai J Ai KAi 0 1 0 X X
0 0 0 0 X 1 X X 1
0 1 1 1 X
1 0 1 X 0 J Ai=Bi KAi=0
1 1 1 X 0

b) OR

Estado
presente
Entradas
Estado
siguiente
Entradas de
los flip-flops

Bi
Ai
0 1
Bi
Ai
0 1
Ai Bi Ai J Ai KAi 0 1 0 X X
0 0 0 0 X 1 X X 1 1
0 1 1 1 X
1 0 1 X 0 J Ai=Bi KAi=Bi
1 1 0 X 1

c) XOR

Figura 4.20 Tablas de excitacin para las microoperaciones lgicas

AND (p4): La microoperacin AND se inicia con la variable de control p4. Esta operacin
forma la operacin lgica entre Ai y Bi y transfiere el resultado a Ai. La tabla de
excitacin para esta operacin se muestra en la figura 4.20(a). La etapa siguiente de Ai
es uno solamente cuando Bi y el estado presente de Ai es uno. Las funciones de entrada
del flip-flop, las cuales se simplifican en los mapas, indican que la entrada K del flip-flop
se habilita con el valor del complemento de Bi. Si Bi=1 el estado presente y siguiente de
Ai son iguales de manera que el flip-flop no debe sufrir cambio de estado. Si Bi=0, el
estado siguiente de Ai debe ir a cero y para lograrlo se habilita la entrada K del flip-flop.
Las funciones de entrada para la microoperacin AND son:

J Ai =0
KAi =Bi p4
Sistemas Digitales 1 Diseo Lgico de Procesadores
Maribel Gmez Franco 126


OR (p5): La variable de control p5 inicia la operacin lgica OR entre Ai y Bi con el
resultado transferido a Ai. La figura 4.20(b) muestra la deduccin de las funciones de
entrada del flip-flop para esta operacin. Las operaciones simplificadas en los mapas
indican que la entrada J est habilitada cuando Bi=1. Cuando Bi=0, el estado presente y
siguiente de Ai son iguales. Cuando Bi=1, la entrada J se habilita y el estado siguiente de
Ai se convierte en 1. Las funciones de entrada para las microoperaciones OR son:

J Ai =Bip5
KAi =0

XOR (p6): Esta realiza la operacin lgica OR entre Ai y Bi con el resultado transferido a
Ai. La figura 4.20(c) muestra la deduccin de las funciones de entrada del flip-flop para
esta operacin. Las funciones de entrada para las microoperaciones XOR son:

J Ai =Bip6
KAi =Bip6


Despl azami ento a l a derecha (p7): Esta operacin desplaza el contenido del registro A
una posicin a la derecha. Esto significa que el valor del flip-flop Ai+1, el cual est una
posicin a la izquierda de la etapa i, debe ser transferido al flip-flop Ai. Esta transferencia
se expresa por medio de las funciones de entrada:

J Ai =Ai+1p7
KAi =Ai+1p7

Despl azami ento a l a i zqui erda (p8): Esta operacin desplaza el contenido del registro
A una posicin a la izquierda. Para este caso el valor del flip-flop Ai-1, el cual est una
posicin a la derecha de la etapa i, debe ser transferido a Ai. Esta transferencia se
expresa por medio de las funciones de entrada:

J Ai =Ai-1p8
KAi =Ai-1p8

I ncremento (p9): Esta operacin incrementa el contenido del registro A en uno. En otras,
palabras, el registro se comporta como un contador binario asncrono con p9
habilitando la cuenta. Un contador sncrono de tres bits se muestra en la figura 4.21. Del
diagrama se puede obervar que cada etapa se complementa cuando el arrastre de
entrada Ei=1. Cada etapa genera un arrastre de salida Ei+1 para la siguiente etapa de la
izquierda. La primera etapa es una excepcin ya que sta se complementa con el
habilitador de cuenta p9. Las funciones de Boole de una etapa tpica se pueden
expresar por medio de las funciones de entrada:

J Ai =Ei
KAi =Ei
Ei+1=EiAi I =1, 2, . . ., n
E1=p9

El acarreo de entrada Ei a la etapa, se usa para complementar el flip-flop Ai. Cada
etapa genera un arrastre para la siguiente, aplicando la funcin AND al arrastre de
entrada y a Ai. El arrastre de entrada que va a la primera etapa es E1 y debe ser igual a
la variable de control p9 la cual habilita la cuenta.
Sistemas Digitales 1 Diseo Lgico de Procesadores
Maribel Gmez Franco 127














Figura 4.21 Contador binario sncrono de 3 bits

Comprobaci n de cero (Z): La variable Z es una salida del acumulador usado para
indicar un contenido de cero en el registro A. Esta salida es igual a uno cuando todos los
flip-flops se hayan puesto a cero. En la figura 4.22 se muestran las primeras tres etapas
del acumulador para comprobar un contenido de ceros. Cada etapa genera una
variable zi+1 al aplicar la funcin AND a la salida complementada de Ai y a una variable
de entrada zi. De esta manera una cadena de compuertas AND a lo largo de todas las
etapas indicar si todos los flip-flops estn borrados. Las funciones de Boole de una
etapa tpica se pueden expresar de la siguiente manera:

zi+1 =ziAi i=1, 2, . . ., n
z1 =1
zn+1=Z

La variable Z se convierte en uno si la seal de salida de la ultima etapa zn+1 es uno.











Figura 4.22 Cadena de compuertas AND para comprobar el contenido de ceros en el registro

4.9.2 Una etapa del acumulador

Una etapa del acumulador completo consta de todos los circuitos que fueron
deducidos para las microoperaciones individuales. Las variables de control p1 hasta p9
son mutuamente excluyentes de tal forma que los circuitos lgicos correspondientes
pueden ser combinados con una operacin OR. Combinando todas las funciones para
las entradas J y K del flip-flop Ai se produce un conjunto compuesto de funciones de
entrada de Boole para un estado tpico:



J Q
>
K
J Q
>
K
J Q
>
K
E1=p9
A1
A2
A3
E4
CP
E3
E2
J Q
>
K Q
J Q
>
K Q
J Q
>
K Q
z1=1
A1
A2 A3
z4
Etapa 3
z3
z2
Etapa 3
Sistemas Digitales 1 Diseo Lgico de Procesadores
Maribel Gmez Franco 128

J Ai=BiCip1+BiCip1 +p3 +Bip3 +Bip6 +Ai+1p7 +Ai-1p8 +Ei

KAi=BiCip1+BiCip1+p2 +p3 +Bip4 +Bip6 +Ai+1p7 +Ai-1p8 +Ei

Cada etapa en el acumulador debe generar tambin los acarreos para la siguiente
etapa:
Ci+1=AiBi+AiCi +BiCi
Ei+1=EiAi
zi+1=ziAi

El diagrama lgico de una etapa del acumulador se muestra en la figura 4.23. Cada
etapa del acumulador tiene ocho entradas de control (p1 p8) que indican una de las
ocho microoperaciones posibles. La variable de control p9 se aplica solamente a la
primera etapa para habilitar la operacin de incremento a travs de la entrada Ei. Bi es
el bit de datos de las terminales B que suministran las entradas al acumulador. Ci es el
acarreo de entrada de la etapa previa a la derecha. Ai-1 viene de la salida del flip-flop
que est una posicin a la derecha y Ai+1 viene del flip-flop que est una posicin a la
izquierda. Ei es el acarreo de entrada par la operacin de incremento y zi se usa para
formar la cadena para deteccin de cero. El circuito tiene cuatro salidas: Ai es la salida
del flip-flop, Ci+1 es el acarreo para la siguiente etapa, Ei+1 es el arrastre de incremento
para la siguiente etapa y zi+1 es para la siguiente etapa a la izquierda, para formar la
cadena de deteccin de cero.




































Figura 4.23 Etapa tpica del acumulador
Q Q
K CP J
zi+1
Ci+1
Ai
Ei+1
zi
Ci
Bi
pi sumar
CP
p2 borrar
p3 complemento
p4 AND
p5 OR
p6 XOR
Ai+1
p7 desplazamiento
a la derecha
Ai-1
p8 desplazamiento
a la izquierda
Ei incremento
Sistemas Digitales 1 Diseo Lgico de Procesadores
Maribel Gmez Franco 129

4.9.3 Acumulador completo

Un acumulador completo con n bits requiere n estados conectados en cascada con
cada etapa conteniendo el circuito mostrado en la figura 4.23. Todas las variables de
control excepto p9 deben ser aplicadas a cada etapa. Las otras entradas y salidas en
cada etapa deben estar conectadas en cascada para formar un acumulador
completo.

La interconexin entre etapas para formar un acumulador completo se muestra en la
figura 4.24. Cada bloque en el diagrama representa el circuito de la figura 4.23. El
nmero de la parte superior de cada bloque representa la posicin de bit en el
acumulador. Todos los bloques reciben ocho variables de control p1 hasta p8y los pulsos
de reloj del CP. Las otras seis entradas y cuatro salidas en cada bloque son idnticas a
una etapa tpica, excepto que el subndice i se remplaza por el nmero particular de
cada bloque.

El circuito tiene cuatro entradas B. La cadena de deteccin de cero se obtiene
conectando las variables z en cascada, con el primer bloque que recibe una constante
binaria 1. La ltima etapa de esta cadena produce la variable de deteccin de cero Z.
Los acarreos de la suma aritmtica se conectan en cascada como en un sumador
paralelo. La entrada en serie par la operacin de desplazamiento a la izquierda, va a la
entrada A0 la cual corresponde a Ai-1 en la primera etapa. La entrada en serie para la
operacin de desplazamiento a la derecha, va a la entrada A5 la cual corresponde a
Ai+1 en la cuarta y ltima etapa. La operacin de incremento se habilita con la variable
de control p9 en la primera etapa. Los otros bloques reciben el incremento de arrastre
de la etapa previa.

El nmero total de terminales en un acumulador de 4 bits es 25 incluyendo las terminales
para las salidas A. Agregando dos terminales ms para la fuente de poder el circuito se
puede encapsular dentro de un CI que tenga 27 28 pines. El nmero de terminales
para las variables de control pueden reducirse de 9 a 4 si se agrega un decodificador
en el CI. En tal caso, el nmero de terminales se reduce a 22 y el acumulador se puede
extender a 16 microoperaciones sin la necesidad de agregar terminales.

















Figura 4.24 Acumulador de 4 bits

B1
z2 z1
C2 C1
A1 A0
E2 E1
A2
B2
z3 z2
C3 C2
A2 A1
E3 E2
A3
B3
z4 z3
C4 C3
A3 A2
E3 E3
A4
B4
z5 z4
C5 C4
A4 A3
E5 E4
A5
B1 B2 B3 B4
Entrada en serie
Arrastre de entrada
1
p9
p1 a p8
CP
Entrada
en serie
Arrastre de
incremento
Arrastre
de salida
Z
Sistemas Digitales 1 Diseo Lgico de Procesadores
Maribel Gmez Franco 130

4.10 Bibliografa

Morris, M. Lgica Digital y Diseo de Computadores. Ed. Prentice Hall. Mxico, 1982. Cap. 9.

Das könnte Ihnen auch gefallen