Está en la página 1de 26

1

Captulo 15

Registros. Buses. Memorias.


15.1. Registros.
Se denomina registro a una serie de flip-flops agrupados y con seales de control comn. Se
considera que se leern o escribirn como una unidad.
Se muestra a continuacin un registro de largo 4, con controles de preset y reset (o clear)
asincrnicos, y con reloj comn. Se asume que el grupo es disparado por canto de subida.
S

CP
R

D
CP

clk

CP

Reset
D
CP

S
R

Q
_
Q

Q
_
Q

Q
_
Q

Q
_
Q

Set

Figura 15.1. Registro de cuatro bits.

15.2. Registro con habilitacin de escritura.


Un esquema de un registro con habilitacin de escritura, dispositivo muy empleado para
almacenar variables locales en un procesador, se muestra en la figura 15.2.

Profesor Leopoldo Silva Bijit

19-01-2010

Sistemas Digitales

La seal de control Write Enable habilita el registro para escritura. Con el canto de subida del
reloj, estando WE = 1, se escribe (o carga) el registro con los datos de entrada. Cuando WE = 0,
el registro conserva su valor (queda en modo hold). Un diseo comercial similar al que se
muestra, es el 74LS173, que adems tiene salida de tercer estado. La celda bsica del registro
resulta ms simple si el flip-flop es JK, ya que naturalmente ste permanece en modo hold con
J=0 y K = 0.
Puede anotarse la transferencia como:
WE: Q = D;
tambin suele usarse:
WE: D

Q o bien: WE: Q

D.

La seal de control que produce la transferencia es WE.


D3

Q3

D Q
_
CP Q
D2

Q2

Q
CP Q

D1

Q1

D
CP

Q
_
Q

D0

Q0

D Q
_
CP Q

WE

clk

Figura 15.2. Registro con habilitacin de escritura.

Profesor Leopoldo Silva Bijit

19-01-2010

Captulo 15. Registros. Camino de datos. Memorias.

La seal WE debe estar estable durante el tiempo de setup del registro.


En la prctica las seales de control de los registros son generados en una mquina de estados
con modelo de Moore.
En este caso, se ingresa a un estado con el canto del reloj, y se mantienen las salidas asociadas
al estado hasta el prximo canto de subida del reloj.

Estado 1
WE=1

Estado 2
WE=0

Figura 15.3. Estados que generan la seal de control WE.


Durante el estado 1, la mquina de estados habilita la escritura del registro, activando WE.
Notar que la seal efectivamente se activa despus del canto de subida del reloj, y es sincrnica
con el reloj.
En el estado 1, las seales Di se propagan a travs de las compuertas y llegan a niveles estables
en las entradas de los flip-flops.
En el estado 2, se captura la informacin en el registro y permanecer hasta que se inicie otro
ciclo de escritura en el registro.
Ntese que antes y durante el Estado 1, la salida del registro contiene la informacin que se
haya escrito anteriormente. A partir del estado 2, tiene nueva informacin.
clk
WE

Habilitacin
Estado 1

Escritura
Estado 2

Figura 15.4. Control del registro con WE.

Profesor Leopoldo Silva Bijit

19-01-2010

Sistemas Digitales

Si el registro se hubiera formado con latchs transparentes, habran salidas nuevas durante el
estado 1. Es decir se puede comenzar a usar la nueva informacin un ciclo de reloj antes,
relativo al caso de registros disparados por cantos.
Un registro puede anotarse simblicamente como se muestra en la Figura 15.5:
A la derecha del esquema para el registro, se indica la descripcin de la transferencia.
Que se interpreta as: Cuando WE est alto y cuando llegue el canto del reloj, entonces capture
en el registro R, lo que est estable en A, tsetup antes del canto del reloj. Suele no indicarse el
reloj, en la ecuacin RTL (Register Transfer Level).
WE
R

WE: R = A
A

clk
Figura 15.5. Representacin simblica de registro con habilitacin de escritura.

15.3 Funcionamiento Sincrnico. Transferencias entre Registros.


Se tienen los siguientes registros:
WE
1

WE
2

WE
3

R1

R2

R3

Red Combinacional.
Tc1

R. Comb.
Tc2
Tm2

Tm1

clk

clk

clk

Figura 15.6. Transferencia entre registros.


Profesor Leopoldo Silva Bijit

19-01-2010

Captulo 15. Registros. Camino de datos. Memorias.

Consideremos que las redes combinacionales tienen un tiempo mnimo de propagacin y un


tiempo mximo o crtico, desde que se le aplican entradas hasta que se tienen salidas.
El esquema simboliza la capacidad de efectuar acciones u operaciones mondicas de una red
combinacional. Se ilustra: R2 = f(R1) y R3 = g(R2), con un ingreso de datos simbolizado por
la transferencia R1 = A.
En el esquema se ilustra la composicin de funciones, ya que globalmente puede escribirse:
R3 = g(f(A)).
15.3.1. Requerimientos de tiempo.
Se considera el tiempo de variabilidad del reloj, o tiempo de corrimiento (skew), debido a que
en dos lugares distintos no puede tenerse la misma seal. stas viajan a travs de cables y
debera asumirse que el reloj que llega al registro 2, puede estar adelantado (clk2a) respecto a
clk1 o atrasado (clk2b) respecto de l, como se muestra en la grfica a continuacin.
clk1
clk2a
clk2b
Corrimiento clk. ( tskew)
Figura 15.7. Corrimientos del reloj (skew).
Con:
Tf1 = Tiempo desde el canto de subida de clk1 hasta tener salidas estables en las salidas de R1.
Tc1 = tiempo de propagacin a travs de la ruta crtica en la red combinacional 1. Es decir,
cuando haya tomado nivel estable la seal que se propaga ms lentamente a travs de la red, a la
salida de R1.
Tm1 = tiempo mnimo de propagacin a travs de la red combinacional 1. Es decir, cuando
haya tomado nivel estable la seal que se propaga ms rpidamente a travs de la red que
alimenta a R2.
Tsu2 = Tiempo de setup-up de los flip-flops del registro R2.
Thold2 = Tiempo de sostenimiento de los flip-flops del registro R2.
Para que la captura de informacin sea confiable en el registro 2 debe cumplirse que el perodo
del reloj debe ser mayor que: T(clk2 ) > Tskew + Tf1 + Tc1 + Tsu2

Profesor Leopoldo Silva Bijit

19-01-2010

Sistemas Digitales
T(clk2)

clk2
clk1

Tskew

Tf
1

Tc
1

Tsu2

Figura 15.8. Requerimientos de setup del registro 2.


Se considera el peor caso, ya que se asume que clk1 est atrasado respecto de clk2. En caso de
estar adelantado, se podra tener una frecuencia de funcionamiento sincrnica mayor, ya que en
este caso se requiere un T(clk2) menor.
Para que las entradas permanezcan estables un poco despus del canto de subida en el registro 2,
debe cumplirse: Thold2 < Tf1 +Tm1 + Tskew
Thold
2
clk2
clk1

Tskew
Tf
1

Tm1

Figura 15.9. Requerimientos de hold para el registro 2.


Tambin se ha considerado el peor caso para determinar que se cumpla el requerimiento del
tiempo de sostenimiento de las entradas despus del canto; se asume que el clk1 est atrasado
respecto del clk2. En general este requerimiento es ms fcil de cumplir que el de tiempo de
setup.
Si se desea usar el mismo reloj, para efectuar transferencias entre registros, deben cumplirse los
requerimientos de estableciemiento (setup) y sostenimiento (hold) de todos los registros del
sistema. Esto implica que la etapa ms lenta es la que determina la frecuencia del reloj.

Profesor Leopoldo Silva Bijit

19-01-2010

Captulo 15. Registros. Camino de datos. Memorias.

15.3.2. Operaciones posibles.


Asumiendo que las seales WE1, WE2 y WE3 son salidas de una mquina secuencial de
Moore, controlada por el mismo reloj, se tendr que es posible efectuar concurrentemente las
operaciones:
R1 = A; R2 = f1(R1); R3 = f2(R2)
Durante el ciclo en que estn habilitadas las seales WE, los valores de A, R1 y R2 permanecen
estables (son los que figuran a la derecha en las ecuaciones anteriores). Al terminar dicho ciclo,
se establecen los nuevos contenidos de estos registros; los nuevos valores sern asignados a las
variables que figuran a la izquierda en las ecuaciones anteriores.
Si se omite el registro R2, la misma operacin anterior puede plantearse:
R1 = A; R3 = f2(f1(R1))
Con ello se tiene una red combinacional ms compleja, y posiblemente resulte una frecuencia
sincrnica menor, debido a que aumentan los tiempos de propagacin, si las funciones
combinacionales deben efectuarse en secuencia. No obstante, el tiempo de propagacin entre A
y la salida de R3 se reduce.
15.3.3. Operaciones combinacionales alternativas.
Si las funciones combinacionales son alternativas, puede expresarse:
R1 = A; if ( C ) then R3 = f1(R1) ; else R3 = f2(R1);
Lo cual puede lograrse con un multiplexor, comandado por la seal de control C, la cual
tambin es generada por la mquina secuencial que genera los WE. En este caso la frecuencia
mxima queda determinada por la funcin combinacional que tenga propagacin ms lenta.
Obviamente debe agregarse al tiempo que toma realizar las acciones, el tiempo que adiciona el
multiplexor.
WE
1
R1

WE
3
R3

f1( )
1

A
f2( )

Figura 15.10. Funciones combinacionales alternativas.

Profesor Leopoldo Silva Bijit

19-01-2010

Sistemas Digitales

Hasta el momento se ha estado desarrollando cmo efectuar operaciones y depositar los


resultados en registros. Los recursos planteados permiten implementar la asignacin a una
variable del resultado de una operacin mondica. Otra cuestin que es de inters es el poder
mover los datos entre registros, ya sea para memorizar un resultado parcial, o para intercambiar
el contenido de stos, o para copiar una variable en otra. Es decir deseamos estudiar un
conjunto de registros y las conexiones entre ellos para posibilitar dichas transferencias.

15.4. Camino de Datos.


Se denomina as a las formas empleadas para conectar los recursos, en este caso los registros.
Existen varias estrategias que se diferencian entre s por los recursos empleados y el tiempo que
demoran en efectuarse las transferencias.
Cuando el camino de datos soporta transferencias simultneas se requerirn menos estados para
realizar las acciones requeridas.
15.4.1. Conexiones punto a punto.
Esta estrategia requiere conexiones entre cada registro fuente y cada registro destino. Es decir si
deseamos conectar punto a punto a tres registros, se requiere que las tres salidas estn
conectadas con las tres entradas.
En el desarrollo actual los registros suelen ser de 32 bits, y se dispone de un nmero elevado
de ellos, sobre 32.

Profesor Leopoldo Silva Bijit

19-01-2010

Captulo 15. Registros. Camino de datos. Memorias.


M0
WE0
0

R
0

1
2

M1

0
1
2
M2
0
1
2

WE1
R
1

WE2
R
2

Figura 15.11. Conexiones punto a punto entre 3 registros.


La transferencia R1 = R2 se logra activando en un mismo ciclo a: WE1 y M1 = 2
En este caso la seal M1 est formada por dos lneas que llevan el control M1[1]=1 y M1[0] =0,
al multiplexor que alimenta la entrada del registro R1.
La conexin tambin permite la transferencia simultnea: R0 = R1 y R2 = R1.
Se logra en el mismo ciclo de reloj, que activa las salidas: WE0 =1, WE2 = 1, M0 =1, M2 =1
Ntese que se est leyendo el registro R1 y escribiendo en R0 y R2. Durante el ciclo de reloj, la
salida de R1 est estable y viaja a travs del camino de datos, y se propaga a travs de los
circuitos combinacionales que forman los multiplexores 0 y 2, y llega a las entradas de los
registros R0 y R2 antes del prximo canto de subida del reloj. En este mismo ciclo, los valores
de R0 y R2 conservan los valores que tenan desde la ltima vez que fueron escritos. Los
nuevos valores de R0 y R2 son capturados al terminar el ciclo, justo cuando vuelve a subir el
reloj.
Las transferencias R0 = R1, R1 = R2 tambin pueden realizarse. Nte que en sta, se lee R1 y
se escribe R1 en el mismo ciclo.
Profesor Leopoldo Silva Bijit

19-01-2010

10

Sistemas Digitales

Se activan: WE0, WE1, M0 = 1, M1 = 2. En el ciclo que se activan estas salidas desde el


controlador, el contenido de R1 no cambia. Permitiendo as mantener el valor en la entrada de
R0. Por otro lado, como R2 no cambia su valor, posibilita que ste llegue en forma estable a las
entradas de R1, pasando por el multiplexor 1. Al llegar el prximo canto de subida del reloj, se
captura el nuevo valor de R1 y de R0.
La operacin de intercambio de dos registros puede tambin efectuarse en un mismo ciclo. Esto
puede verse analizando el caso anterior, con: R0 = R1, R1 = R0.
La estructura permite R1 = R1.
La transferencia R1 = R2, R1 =R0 en la cual se escribe dos cosas diferentes en el mismo
registro, no puede efectuarse, ya que el multiplexor 1 slo acepta un valor. Excluyendo as estas
operaciones ilegales.
La versatilidad y rapidez con que se pueden realizar transferencias en el esquema anterior se
debe a la gran cantidad de recursos destinados al camino de datos.
15.4.2. Bus simple.
Se emplea bus para un grupo de cables que efecta determinados recorridos, transportando los
datos, y que son compartidos por varias fuentes de datos.
La siguiente estructura emplea un bus de escritura que es compartido por las erntradas de los
registros. Ahora se tiene un solo multiplexor. Si se considera el costo de un multiplexor de 3
vas de 32 bits cada una; ms an si se tienen 32 registros, ya que en este caso debera ser un
mux de 32 vas de entrada con 32 bits cada una, podr estimarse que esta configuracin emplea
menos recursos de hardware que la conexin punto a punto( es decir, mucho menos compuertas
o productos).
Al existir el bus, ste solo puede ser empleado para una transferencia por ciclo. Se estudiarn
transferencias similares a las vistas antes, para poder comparar los aumentos de tiempo que
derivan de ocupar menos espacio de silicio.

Profesor Leopoldo Silva Bijit

19-01-2010

Captulo 15. Registros. Camino de datos. Memorias.

11
WE0
R
0

Bus

0
1
2

WE1
R
1

WE2
R
2

Figura 15.12. Bus simple.


La transferencia R1 = R2 se logra activando: WE1 = 1, B = 2. En un ciclo.
La transferencia simultnea: R0 = R1 y R2 = R1, se logra en un ciclo.
Se activan WE0 = 1, WE2 = 1 y B=1, logrando al finalizar el ciclo la captura simultnea del
valor de R1 en R0 y R2. Esto es posible ya que el bus queda ocupado con la informacin que
proviene de la salida de R1.
Las transferencias R0 = R1, R1 = R2 demandan dos ciclos, pero importa el orden en que se
activen los controles. Ya que primero debe leerse R1 y escribirse en R0; luego puede
sobreescribirse R1 con el contenido de R2. Lo cual se logra con los controles: WE0 = 1, B = 1
en el primer ciclo; luego: WE1 = 1, B = 2 en el segundo ciclo de reloj.
En general en esta estructura slo puede efectuarse una escritura en un registro por ciclo de
reloj. Debe compartirse el bus.

Profesor Leopoldo Silva Bijit

19-01-2010

12

Sistemas Digitales

La operacin de intercambio de dos registros: R0 = R1, R1 = R0, resulta ms compleja en esta


estructura. Su realizacin requiere de un registro temporal, en caso de arreglos de 32 registros
suele haber un grupo dedicado a estas funciones; en el caso muy simplificado que se estudia se
emplear el registro R2 como temporal.
Entonces, en un primer ciclo: R2 = R0 salvando el contenido de R0. En el siguiente R0=R1,
sobreescribe R0, cambiando su contenido original que ya est salvado en R2. Finalmente
R0=R2.
En lugar del multiplexor puede emplearse registros que tengan habilitacin de la salida en tercer
estado, suele denominarse OE (output enable) a esta seal. Entonces un simple decodificador
de 2 a tres vas, en este caso, permite alimentar a una y slo una seal habilitadora de tercer
estado. Ver por ejemplo el 74LS173.
15.4.3. Estructura multibus.
Para implementar operaciones didicas resulta til disponer de salida dual del arreglo de
registros. Es decir que cada registro puede alimentar dos buses diferentes, sean stos los buses
de salida A y B. Los buses A y B suelen alimentar una red combinacional que es capaz de
realizar operaciones didicas; es decir con dos operandos. Dicha red combinacional se
denomina unidad aritmtica.
Adems para escribir en el arreglo de registros puede disponerse de un bus de escritura, sea ste
el bus C. Esta arquitectura limita la escritura a un solo registro por ciclo. Lo que est
alimentando al bus C, en el esquema la seal WReg, se escribe en un registro del arreglo.
En un mismo ciclo pueden realizarse transferencias simultneas a los buses de salida, y una
escritura, por ejemplo:
bus A = R0; bus B = R2; R1 = WReg;
Transferencias que pueden lograrse con los controles:
A = 0 ; B = 2; WE1 =1;
Incluso puede escribirse en un registro que se est leyendo. Esto es posible, ya que la seal WEi
habilita el camino desde el bus C hasta la entrada del registro i, pero el contenido de ste no
cambia hasta el prximo canto del reloj. Y en el mismo ciclo, puede estarse leyendo en forma
estable la salida actual del registro i.
Si el registro estuviera implementado con latchs transparentes, cuando se habilita el WEi, se
dispone a la salida del registro i-simo el valor que se tenga en el bus C. es decir: Ri = WReg
Si las seales WE se implementan con un decodificador, se asegura que slo una de ellas estar
activa. Esto en el caso que se desee escribir solamente en un registro.
El esquema de buses mltiples se muestra a continuacin:

Profesor Leopoldo Silva Bijit

19-01-2010

Captulo 15. Registros. Camino de datos. Memorias.


WE0

13

R
0
Bus C

0
1
2

Bus A

WE1

f(A,B)

R
1
WReg
B

0
WE2

Bus B

1
2

R
2

Figura 15.13. Camino de datos con tres buses.

Profesor Leopoldo Silva Bijit

19-01-2010

14

Sistemas Digitales

15.5. Memoria RAM Esttica.


Desde un punto de vista lgico una memoria tiene un bus unidireccional de direcciones, un bus
bidireccional de datos y seales de control. En general se asume una comunicacin asincrnica
entre la memoria y los registros del sistema sincrnico; esto permite adaptarse a memorias con
diferentes tiempos de acceso.
Desde que se coloca la direccin en el bus de direcciones, transcurre un tiempo hasta que en la
salida se tiene datos vlidos en el bus de datos, esto en una operacin de lectura; tambin
transcurre un tiempo para que, lo que se ha colocado en el bus de datos, sea grabado en la
direccin de memoria, esto en una operacin de escritura. Ese tiempo se denomina de acceso.
Las memorias estticas asincrnicas no necesitan que se les suministre un reloj, y para su
control disponen de tres seales que las manejan:
Chip Enable (E): Con esta seal en nivel bajo se habilita la memoria.
Write Enable (W): Cuando est baja (y la memoria est habilitada), los valores en el bus de
datos son escritos en la localizacin seleccionada por el bus de direcciones.
Output Enable (G): Cuando est baja (y la memoria est habilitada), el bus de datos es
alimentado con el valor de la localizacin de memoria seleccionada por el bus de direcciones.
Cuando est alta, el bus de datos interno de salida queda en un estado de alta impedancia.
ADD[n..0]
E

Memoria
Esttica

D[m..0]

W
G

Figura 15.14. Control asincrnico de memoria esttica.


Para una memoria de 8KB, se tiene que m es 7, y n es 12. Es decir 8 bits de datos y 13 de
direcciones, ya que 8K equivale a 8x1024=213.
15.5.1. Ciclo de lectura.
Los fabricantes establecen los requerimientos temporales de las seales de control. Indicando
las secuencias que deben cumplir las formas de ondas de las seales de control, y una tabla con
valores mnimos y mximos para los parmetros.

Profesor Leopoldo Silva Bijit

19-01-2010

Captulo 15. Registros. Camino de datos. Memorias.

15

Figura 15.15. Ciclo de lectura.


Las formas de ondas para el ciclo de lectura son con W=1.
Parmetro
Smbolo mn mx
Tiempo de ciclo de lectura
tAVAV
12
Tiempo acceso direccin
tAVQV
12
Tiempo acceso luego de habilitacin de chip
tELQV
12
Tiempo acceso luego de habilitacin de salida
tGLQV
6
Mantenimiento desde cambio de direccin
tAXQX
4
De chip enable bajo a salida activa
tELQX
4
De chip enable alto a salida alta impedancia
tEHQZ
0
6
De output enable bajo a salida activa
tGLQX
0
De output enable alto a salida alta impedancia
tGHQZ
0
6
Tiempo de encendido
tELICCH
0
Tiempo de apagado
tEHICCL
12
Figura 15.16. Parmetros de lectura.
Los valores corresponden a una memoria con tiempo de acceso igual a 12 ns, que suele
indicarse al final de las siglas que identifican la memoria.
El ciclo de lectura comienza cuando E y G estn bajas. Los datos son vlidos luego del tiempo
de acceso en lectura. Luego de que E o G suben, los datos se mantienen en la salida, hasta que
sta entra en flotacin.
El tiempo de ciclo es el tiempo mnimo que debe transcurrir entre dos requerimientos a la
memoria. Esto implica que no se puede cambiar el bus de direcciones durante una operacin.

Profesor Leopoldo Silva Bijit

19-01-2010

16

Sistemas Digitales
tc
direcciones
ta
Chip enable E
tae
tag

Output enable G

tf

tb
datos

validos

Figura 15.17. Requerimientos temporales lectura.


Se actualiza el bus de direcciones.
Luego de un tiempo se activan: chip enable y output enable.
Luego del tiempo de acceso desde el cambio de direccin (ta), o del canto de bajada de chip
enable (tae), o del tiempo de acceso desde la habilitacin de la salida (tag), el tiempo que sea
mayor, los datos quedan disponibles para ser capturados en el bus de datos. El tiempo de acceso
al bus, luego de activar la salida se indica con tb.
Luego de esto puede deshabilitarse la salida y la seal chip enable. Los datos se mantienen en la
salida un breve lapso (tf).
El bus de direcciones debe permanecer estable durante el tiempo de ciclo, antes de proceder a
un nuevo acceso a la memoria (tc).
15.5.2. Ciclo de escritura.
Las formas de ondas para el ciclo de escritura son con G=1.

Figura 15.18. Ciclo de escritura.

Profesor Leopoldo Silva Bijit

19-01-2010

Captulo 15. Registros. Camino de datos. Memorias.

17

Parmetro
Smbolo mn mx
Tiempo de ciclo de escritura
tAVAV
12
Tiempo de setup de la direccin
tAVWL
0
Direccin vlida hasta el fin de la escritura
tAVWH
10
Ancho de pulso de escritura
tWLWH
10
Ancho de pulso de escritura hasta enable
tWLEH
10
Datos vlidos hasta fin de escritura
tDVWH
6
Tiempo de mantenimiento de datos (hold)
tWHDX
0
De write bajo hasta alta impedancia
tWLQZ
0
6
De write alto hasta salida activa
tWHQX
4
Tiempo de recuperacin escritura
tWHAX
0
Figura 15.19. Parmetros de escritura.
Los datos son capturados en la celda de memoria cuando W tiene un canto de subida, en ese
momento los datos del bus deben estar estables. Adems el bus de direcciones debe estar estable
antes del canto de bajada de W (setup), y luego del canto de subida de W (hold). Los glitches
en el bus de direcciones pueden producir cambios de estado no deseados en la memoria.
tc
direcciones
tas

tah

Chip enable E
tw
Write enable W

th
ts

datos

validos

Figura 15.20. Requerimientos temporales escritura.


Luego de establecida la nueva direccin, no puede activarse el canto de bajada de write enable
hasta tas segundos despus. El ancho del pulso de escritura debe tener un mnimo de tw. Los
datos que sern escritos en la celda, no deben cambiar durante el tiempo de setup, ts segundos
antes del canto de subida del pulso de escritura, y deben mantenerse th segundos despus del
canto de subida del pulso de escritura. Tambin no puede cambiarse el bus de direccin,
debiendo mantenerlo estable tah segundos luego del canto de subida del pulso de escritura.
15.5.3. Control de memoria ram esttica.
Se desea disear un controlador que permita conectar una memoria a un sistema sincrnico. Los
controles read y write, sincronizados por cantos de bajada, desencadenan las secuencias de
seales de control, que permiten leer y escribir en la memoria. La Figura 15.21, muestra el
ambiente de diseo.

Profesor Leopoldo Silva Bijit

19-01-2010

18

Sistemas Digitales

add

direcciones

la

Memoria

reset

E
W

read

controlador

write
ld

doe

cd

datos

Din
dw
Dout

clk

Figura 15.21. Entorno de diseo.


La operacin de lectura, puede describirse por la transferencia:
Dout = M[add]
La operacin de escritura, puede escribirse:
M[add] = Din
Un diagrama de bloques simplificado se muestra en la Figura 15.22.
read write add

Din

Memoria
Controlador

clk

Dout

clk

Figura 15.22. Entorno de diseo.

Profesor Leopoldo Silva Bijit

19-01-2010

Captulo 15. Registros. Camino de datos. Memorias.

19

Las seales de lgica negativa: E, G, W y doe, se identifican con: Ep, Gp, Wp y doep.
Las rdenes: reset, read y write se consideran pulsos de un ancho de pulso del reloj, y
sincronizadas por cantos de bajada. Todas las salidas del controlador sern seales
sincronizadas por cantos de subida, por lo cual las habilitaciones de escritura en los registros se
efectan con cantos de bajada del reloj.
Se emplean: la por load address, ld por load data, cd por captura datos.
Para cumplir con los requerimientos temporales de la memoria, basta que dos perodos del reloj
sean mayores que el tiempo de acceso. Esto puede comprobarse, en el esquema de las seales de
control de la Figura 15.23, ya que transcurren dos ciclos desde que se tiene una nueva direccin
hasta que se graba en el registro de lectura.
clk
read
la
Ep
aGp
Cd
E0 E4 E5 E6

E0

Figura 15.23. Secuencia de lectura.


La Figura 15.24, desarrolla las secuencias de escritura en tres ciclos del reloj.
clk
write
ld

la
Ep
aWp
doep
E0 E1 E2 E3

E0

Figura 15.24. Secuencia de escritura.


La Figura 15.25 ilustra el diagrama de estados del controlador. Slo se muestran las seales la y
cd asociadas a los estados del diagrama de Moore; el resto de los valores se ilustran en las
Figuras 15.23 y 15.24.

Profesor Leopoldo Silva Bijit

19-01-2010

20

Sistemas Digitales
E4
reset

read=0

E5

la=1

E6
cd=1

read=1
E0

write=0
write=1
E1

E2

E3

la=1

Figura 15.25. Diagrama de estados del controlador.


Mediante las especificaciones de las Figuras 15.23, 15.24 y 15.25, resulta sencillo especificar el
diseo en Verilog.
module MSE(clk, reset, read, write, Din, Dout, add, direcciones, Ep, Wp, Gp, doep, la, ld, cd,
datos);
input clk, reset, read, write;
input [7:0] Din;
output [7:0] Dout;
input [12:0] add;
output [12:0] direcciones;
output Ep, Gp, Wp, doep, la, ld, cd;
inout [7:0] datos;
reg [7:0] Dout;
reg [7:0] dw;
reg [12:0] direcciones;
reg [2:0] estado, next;
reg Ep, Gp, Wp, doep, la, ld, cd;
wire [7:0] datos;
assign datos = doep ? 8'hz : dw;

//doep=1 alta impedancia.

// Asignacin de estados
parameter IDLE = 0;
parameter write1 = 1;
parameter write2 = 2;
parameter write3 = 3;
parameter read1 = 4;
parameter read2 = 5;
parameter read3 = 6;

Profesor Leopoldo Silva Bijit

19-01-2010

Captulo 15. Registros. Camino de datos. Memorias.

21

always @ (posedge clk)


begin
if (reset) estado <= IDLE;
else estado <= next;
end
always @ (negedge clk)
begin
if (la) direcciones <= add;
if (cd) Dout <= datos;
if (ld) dw <= Din;
end
// Bloque combinacional. Genera prximo estado y las seales de control.
always @ (estado or read or write)
begin
case (estado)
IDLE:
begin
Ep= 1; Wp= 1; Gp= 1; doep=1; la= 0; ld= 0; cd= 0;
if (write) next = write1;
else if (read) next = read1;
else next = IDLE;
end
write1:
begin
Ep= 1; Wp= 1; Gp= 1; doep=0; la= 1; ld= 1; cd= 0;
next = write2;
end
write2:
begin
Ep= 0; Wp= 0; Gp= 1; doep=0; la= 0; ld= 0; cd= 0;
next = write3;
end
write3:
begin
Ep= 1; Wp= 1; Gp= 1; doep=0; la= 0; ld= 0; cd= 0;
next = IDLE;
end
read1:
begin
Ep= 1; Wp= 1; Gp= 1; doep=1; la= 1; ld= 0; cd= 0;
next = read2;
end
read2:
begin
Ep= 0; Wp= 1; Gp= 0; doep=1; la= 0; ld= 0; cd= 0;
Profesor Leopoldo Silva Bijit

19-01-2010

22

Sistemas Digitales

next = read3;
end
read3:
begin
Ep= 0; Wp= 1; Gp= 0; doep=1; la= 0; ld= 0; cd= 1;
next = IDLE;
end
default:
begin
Ep= 1; Wp= 1; Gp= 1; doep=1; la= 0; ld= 0; cd= 0;
next = IDLE;
end
endcase
end //always
endmodule
El siguiente mdulo efecta una simulacin del controlador.
`timescale 1ns / 1ps
module test_v;
// Inputs
reg clk;
reg reset;
reg read;
reg write;
reg [7:0] Din;
reg [12:0] add;
// Outputs
wire [7:0] Dout;
wire [12:0] direcciones;
wire Ep;
wire Wp;
wire Gp;
wire doep;
wire la;
wire ld;
wire cd;
// Bidirs
wire [7:0] datos;
// Instantiate the Unit Under Test (UUT)
MSE uut (
.clk(clk),
.reset(reset),
.read(read),
Profesor Leopoldo Silva Bijit

19-01-2010

Captulo 15. Registros. Camino de datos. Memorias.

23

.write(write),
.Din(Din),
.Dout(Dout),
.add(add),
.direcciones(direcciones),
.Ep(Ep),
.Wp(Wp),
.Gp(Gp),
.doep(doep),
.la(la),
.ld(ld),
.cd(cd),
.datos(datos)
);
initial begin
// Initialize Inputs
clk = 0; reset = 0; read = 0; write = 0; Din = 0; add = 0;
// Wait 100 ns for global reset to finish
#100;
// Add stimulus here
reset=1; clk=0; #100; clk=1; #100;
reset=0; clk=0; #100; clk=1; #100;
clk=0; #100; clk=1; #100;
add=13'b0000000000001;
read=1; clk=0; #100; clk=1; #100;
read=0; clk=0; #100; clk=1; #100;
clk=0; #100; clk=1; #100;
clk=0; #100; clk=1; #100;
clk=0; #100; clk=1; #100;
clk=0; #100; clk=1; #100;
clk=0; #100; clk=1; #100;
add=13'b0000000000111;
Din=8'b00001111;
write=1; clk=0; #100; clk=1; #100;
write=0; clk=0; #100; clk=1; #100;
clk=0; #100; clk=1; #100;
clk=0; #100; clk=1; #100;
clk=0; #100; clk=1; #100;
clk=0; #100; clk=1; #100;
clk=0; #100; clk=1; #100;
end
endmodule

Profesor Leopoldo Silva Bijit

19-01-2010

24

Sistemas Digitales

Figura 15.26. Formas de ondas generadas por la simulacin.


15.3.4. Memorias flash o EEPROM.
El procedimiento de lectura de memorias flash o EEPROM es el mismo que para las memorias
estticas SRAM. Estas memorias disponen de un circuito interno que genera el voltaje de
programacin de tipo 12 V, y adems tienen una mquina secuencial de estados internas que
permite escribirlas. Las seales de escritura deben cumplir los requerimientos temporales de la
mquina de estados, y usan las mismas seales de control.
15.3.5. Memorias sincrnicas.
En la actualidad se dispone de memorias estticas sincrnicas que logran velocidades de acceso
mayores.

Profesor Leopoldo Silva Bijit

19-01-2010

Captulo 15. Registros. Camino de datos. Memorias.

25

ndice general.
CAPTULO 15 ........................................................................................................................................... 1
REGISTROS. BUSES. MEMORIAS. ...................................................................................................... 1
15.1. REGISTROS. ..................................................................................................................................... 1
15.2. REGISTRO CON HABILITACIN DE ESCRITURA. ................................................................................. 1
15.3 FUNCIONAMIENTO SINCRNICO. TRANSFERENCIAS ENTRE REGISTROS. ........................................... 4
15.3.1. Requerimientos de tiempo. ...................................................................................................... 5
15.3.2. Operaciones posibles. ............................................................................................................. 7
15.3.3. Operaciones combinacionales alternativas. ............................................................................ 7
15.4. CAMINO DE DATOS. ......................................................................................................................... 8
15.4.1. Conexiones punto a punto. ...................................................................................................... 8
15.4.2. Bus simple. ............................................................................................................................ 10
15.4.3. Estructura multibus. .............................................................................................................. 12
15.5. MEMORIA RAM ESTTICA. ........................................................................................................... 14
15.5.1. Ciclo de lectura. .................................................................................................................... 14
15.5.2. Ciclo de escritura. ................................................................................................................. 16
15.5.3. Control de memoria ram esttica. ......................................................................................... 17
15.3.4. Memorias flash o EEPROM. ................................................................................................. 24
15.3.5. Memorias sincrnicas. .......................................................................................................... 24
NDICE GENERAL. ................................................................................................................................... 25
NDICE DE FIGURAS................................................................................................................................. 26

Profesor Leopoldo Silva Bijit

19-01-2010

26

Sistemas Digitales

ndice de figuras
Figura 15.1. Registro de cuatro bits.............................................................................................. 1
Figura 15.2. Registro con habilitacin de escritura. ..................................................................... 2
Figura 15.3. Estados que generan la seal de control WE............................................................ 3
Figura 15.4. Control del registro con WE. ................................................................................... 3
Figura 15.5. Representacin simblica de registro con habilitacin de escritura......................... 4
Figura 15.6. Transferencia entre registros. ................................................................................... 4
Figura 15.7. Corrimientos del reloj (skew)................................................................................... 5
Figura 15.8. Requerimientos de setup del registro 2. ................................................................... 6
Figura 15.9. Requerimientos de hold para el registro 2. ............................................................... 6
Figura 15.10. Funciones combinacionales alternativas. ............................................................... 7
Figura 15.11. Conexiones punto a punto entre 3 registros. .......................................................... 9
Figura 15.12. Bus simple. ........................................................................................................... 11
Figura 15.13. Camino de datos con tres buses. .......................................................................... 13
Figura 15.14. Control asincrnico de memoria esttica. ............................................................ 14
Figura 15.15. Ciclo de lectura. ................................................................................................... 15
Figura 15.16. Parmetros de lectura. .......................................................................................... 15
Figura 15.17. Requerimientos temporales lectura. ...................................................................... 16
Figura 15.18. Ciclo de escritura.................................................................................................. 16
Figura 15.19. Parmetros de escritura. ....................................................................................... 17
Figura 15.20. Requerimientos temporales escritura. ................................................................... 17
Figura 15.21. Entorno de diseo.................................................................................................. 18
Figura 15.22. Entorno de diseo.................................................................................................. 18
Figura 15.23. Secuencia de lectura. ............................................................................................. 19
Figura 15.24. Secuencia de escritura. .......................................................................................... 19
Figura 15.25. Diagrama de estados del controlador. ................................................................... 20
Figura 15.26. Formas de ondas generadas por la simulacin. ..................................................... 24

Profesor Leopoldo Silva Bijit

19-01-2010

También podría gustarte