Upload
phungkhanh
View
216
Download
0
Embed Size (px)
Citation preview
1
Profesor Leopoldo Silva Bijit 19-01-2010
Capítulo 15
Registros. Buses. Memorias.
15.1. Registros.
Se denomina registro a una serie de flip-flops agrupados y con señales de control común. Se
considera que se leerán o escribirán como una unidad.
Se muestra a continuación un registro de largo 4, con controles de preset y reset (o clear)
asincrónicos, y con reloj común. Se asume que el grupo es disparado por canto de subida.
Figura 15.1. Registro de cuatro bits.
15.2. Registro con habilitación de escritura.
Un esquema de un registro con habilitación de escritura, dispositivo muy empleado para
almacenar variables locales en un procesador, se muestra en la figura 15.2.
Set
Reset
clk
S D
CP R Q
_ Q
S D
CP R Q
_ Q
S D
CP R
Q _ Q
S D
CP R
Q _ Q
2 Sistemas Digitales
Profesor Leopoldo Silva Bijit 19-01-2010
La señal 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 diseño comercial similar al que se
muestra, es el 74LS173, que además tiene salida de tercer estado. La celda básica del registro
resulta más 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;
también suele usarse:
WE: D Q o bien: WE: Q D.
La señal de control que produce la transferencia es WE.
Figura 15.2. Registro con habilitación de escritura.
D CP Q’
_ Q
Q3 D3
D CP Q’ _
Q
D0 Q0
D
CP Q’ _ Q
D1 Q1
D CP Q’
Q
D2 Q2
clk
WE
Capítulo 15. Registros. Camino de datos. Memorias. 3
Profesor Leopoldo Silva Bijit 19-01-2010
La señal WE debe estar estable durante el tiempo de setup del registro.
En la práctica las señales de control de los registros son generados en una máquina 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 próximo canto de subida del reloj.
Figura 15.3. Estados que generan la señal de control WE.
Durante el estado 1, la máquina de estados habilita la escritura del registro, activando WE.
Notar que la señal efectivamente se activa después del canto de subida del reloj, y es sincrónica
con el reloj.
En el estado 1, las señales Di se propagan a través de las compuertas y llegan a niveles estables
en las entradas de los flip-flops.
En el estado 2, se captura la información en el registro y permanecerá hasta que se inicie otro
ciclo de escritura en el registro.
Nótese que antes y durante el Estado 1, la salida del registro contiene la información que se
haya escrito anteriormente. A partir del estado 2, tiene nueva información.
Figura 15.4. Control del registro con WE.
clk
WE
Habilitación Estado 1
Escritura Estado 2
Estado 1
WE=1
Estado 2 WE=0
4 Sistemas Digitales
Profesor Leopoldo Silva Bijit 19-01-2010
Si el registro se hubiera formado con latchs transparentes, habrían salidas nuevas durante el
estado 1. Es decir se puede comenzar a usar la nueva información un ciclo de reloj antes,
relativo al caso de registros disparados por cantos.
Un registro puede anotarse simbólicamente como se muestra en la Figura 15.5:
A la derecha del esquema para el registro, se indica la descripción 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 ecuación RTL (Register Transfer Level).
Figura 15.5. Representación simbólica de registro con habilitación de escritura.
15.3 Funcionamiento Sincrónico. Transferencias entre Registros.
Se tienen los siguientes registros:
Figura 15.6. Transferencia entre registros.
WE
clk
R
A
WE: R = A
WE
1
clk
R1
A
WE
2
clk
R2
WE
3
clk
R3
Red Com-
binacional.
Tc1
Tm1
R. Comb.
Tc2
Tm2
Capítulo 15. Registros. Camino de datos. Memorias. 5
Profesor Leopoldo Silva Bijit 19-01-2010
Consideremos que las redes combinacionales tienen un tiempo mínimo de propagación y un
tiempo máximo o crítico, desde que se le aplican entradas hasta que se tienen salidas.
El esquema simboliza la capacidad de efectuar acciones u operaciones monádicas 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 composición 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 señal. Éstas viajan a través de cables y
debería 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 gráfica a continuación.
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 propagación a través de la ruta crítica en la red combinacional 1. Es decir,
cuando haya tomado nivel estable la señal que se propaga más lentamente a través de la red, a la
salida de R1.
Tm1 = tiempo mínimo de propagación a través de la red combinacional 1. Es decir, cuando
haya tomado nivel estable la señal que se propaga más rápidamente a través 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 información sea confiable en el registro 2 debe cumplirse que el período
del reloj debe ser mayor que: T(clk2 ) > Tskew + Tf1 + Tc1 + Tsu2
clk1
clk2a
Corrimiento clk. ( tskew)
clk2b
6 Sistemas Digitales
Profesor Leopoldo Silva Bijit 19-01-2010
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 podría tener una frecuencia de funcionamiento sincrónica mayor, ya que en
este caso se requiere un T(clk2) menor.
Para que las entradas permanezcan estables un poco después del canto de subida en el registro 2,
debe cumplirse: Thold2 < Tf1 +Tm1 + Tskew
Figura 15.9. Requerimientos de hold para el registro 2.
También se ha considerado el peor caso para determinar que se cumpla el requerimiento del
tiempo de sostenimiento de las entradas después del canto; se asume que el clk1 está atrasado
respecto del clk2. En general este requerimiento es más fácil 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 más lenta es la que determina la frecuencia del reloj.
clk2
clk1
Tskew Tf
1
Tc
1
Tsu2
T(clk2)
clk2
clk1
Tskew Tf
1
Tm1
Thold
2
Capítulo 15. Registros. Camino de datos. Memorias. 7
Profesor Leopoldo Silva Bijit 19-01-2010
15.3.2. Operaciones posibles.
Asumiendo que las señales WE1, WE2 y WE3 son salidas de una máquina 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 están habilitadas las señales 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 serán asignados a las
variables que figuran a la izquierda en las ecuaciones anteriores.
Si se omite el registro R2, la misma operación anterior puede plantearse:
R1 = A; R3 = f2(f1(R1))
Con ello se tiene una red combinacional más compleja, y posiblemente resulte una frecuencia
sincrónica menor, debido a que aumentan los tiempos de propagación, si las funciones
combinacionales deben efectuarse en secuencia. No obstante, el tiempo de propagación 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 señal de control C, la cual
también es generada por la máquina secuencial que genera los WE. En este caso la frecuencia
máxima queda determinada por la función combinacional que tenga propagación más lenta.
Obviamente debe agregarse al tiempo que toma realizar las acciones, el tiempo que adiciona el
multiplexor.
Figura 15.10. Funciones combinacionales alternativas.
f1( )
f2( )
R1 R3
WE
1 C WE
3
A 1
0
8 Sistemas Digitales
Profesor Leopoldo Silva Bijit 19-01-2010
Hasta el momento se ha estado desarrollando cómo efectuar operaciones y depositar los
resultados en registros. Los recursos planteados permiten implementar la asignación a una
variable del resultado de una operación monádica. Otra cuestión que es de interés 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 simultáneas se requerirán 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 estén
conectadas con las tres entradas.
En el desarrollo actual los registros suelen ser de 32 bits, y se dispone de un número elevado
de ellos, sobre 32.
Capítulo 15. Registros. Camino de datos. Memorias. 9
Profesor Leopoldo Silva Bijit 19-01-2010
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 señal M1 está formada por dos líneas que llevan el control M1[1]=1 y M1[0] =0,
al multiplexor que alimenta la entrada del registro R1.
La conexión también permite la transferencia simultánea: 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
Nótese 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 través del camino de datos, y se propaga a través de los
circuitos combinacionales que forman los multiplexores 0 y 2, y llega a las entradas de los
registros R0 y R2 antes del próximo canto de subida del reloj. En este mismo ciclo, los valores
de R0 y R2 conservan los valores que tenían 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 también pueden realizarse. Nóte que en ésta, se lee R1 y
se escribe R1 en el mismo ciclo.
R
0
M0 WE0
R1
M1 WE1
R2
M2 WE2
1
0
2
1 0
2
1
0
2
10 Sistemas Digitales
Profesor Leopoldo Silva Bijit 19-01-2010
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 próximo canto de subida del reloj, se
captura el nuevo valor de R1 y de R0.
La operación de intercambio de dos registros puede también 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 sólo 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 efectúa 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
vías de 32 bits cada una; más aún si se tienen 32 registros, ya que en este caso debería ser un
mux de 32 vías de entrada con 32 bits cada una, podrá estimarse que esta configuración emplea
menos recursos de hardware que la conexión 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 estudiarán
transferencias similares a las vistas antes, para poder comparar los aumentos de tiempo que
derivan de ocupar menos espacio de silicio.
Capítulo 15. Registros. Camino de datos. Memorias. 11
Profesor Leopoldo Silva Bijit 19-01-2010
Figura 15.12. Bus simple.
La transferencia R1 = R2 se logra activando: WE1 = 1, B = 2. En un ciclo.
La transferencia simultánea: 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 simultánea del
valor de R1 en R0 y R2. Esto es posible ya que el bus queda ocupado con la información 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 sólo puede efectuarse una escritura en un registro por ciclo de
reloj. Debe compartirse el bus.
R0
WE0
R1
B WE1
R2
WE2
1
0
2
Bus
12 Sistemas Digitales
Profesor Leopoldo Silva Bijit 19-01-2010
La operación de intercambio de dos registros: R0 = R1, R1 = R0, resulta más compleja en esta
estructura. Su realización 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 habilitación de la salida en tercer
estado, suele denominarse OE (output enable) a esta señal. Entonces un simple decodificador
de 2 a tres vías, en este caso, permite alimentar a una y sólo una señal habilitadora de tercer
estado. Ver por ejemplo el 74LS173.
15.4.3. Estructura multibus.
Para implementar operaciones diádicas 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 diádicas; es decir con dos operandos. Dicha red combinacional se
denomina unidad aritmética.
Además 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 señal WReg, se escribe en un registro del arreglo.
En un mismo ciclo pueden realizarse transferencias simultáneas 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 señal WEi
habilita el camino desde el bus C hasta la entrada del registro i, pero el contenido de éste no
cambia hasta el próximo 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 señales WE se implementan con un decodificador, se asegura que sólo una de ellas estará
activa. Esto en el caso que se desee escribir solamente en un registro.
El esquema de buses múltiples se muestra a continuación:
Capítulo 15. Registros. Camino de datos. Memorias. 13
Profesor Leopoldo Silva Bijit 19-01-2010
Figura 15.13. Camino de datos con tres buses.
R0
WE0
R1
WE1
R2
WE2
A
1
0
2
B
1
0
2
Bus A
Bus B
Bus C
WReg
f(A,B)
14 Sistemas Digitales
Profesor Leopoldo Silva Bijit 19-01-2010
15.5. Memoria RAM Estática.
Desde un punto de vista lógico una memoria tiene un bus unidireccional de direcciones, un bus
bidireccional de datos y señales de control. En general se asume una comunicación asincrónica
entre la memoria y los registros del sistema sincrónico; esto permite adaptarse a memorias con
diferentes tiempos de acceso.
Desde que se coloca la dirección en el bus de direcciones, transcurre un tiempo hasta que en la
salida se tiene datos válidos en el bus de datos, esto en una operación de lectura; también
transcurre un tiempo para que, lo que se ha colocado en el bus de datos, sea grabado en la
dirección de memoria, esto en una operación de escritura. Ese tiempo se denomina de acceso.
Las memorias estáticas asincrónicas no necesitan que se les suministre un reloj, y para su
control disponen de tres señales que las manejan:
Chip Enable (E’): Con esta señal 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 localización 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 localización 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.
Memoria
Estática
G’
W’
E’
ADD[n..0]
D[m..0]
Figura 15.14. Control asincrónico de memoria estática.
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 señales de control. Indicando
las secuencias que deben cumplir las formas de ondas de las señales de control, y una tabla con
valores mínimos y máximos para los parámetros.
Capítulo 15. Registros. Camino de datos. Memorias. 15
Profesor Leopoldo Silva Bijit 19-01-2010
Figura 15.15. Ciclo de lectura.
Las formas de ondas para el ciclo de lectura son con W’=1.
Parámetro Símbolo mín máx
Tiempo de ciclo de lectura tAVAV 12 -
Tiempo acceso dirección tAVQV - 12
Tiempo acceso luego de habilitación de chip tELQV - 12
Tiempo acceso luego de habilitación de salida tGLQV - 6
Mantenimiento desde cambio de dirección 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. Parámetros 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’ están bajas. Los datos son válidos 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 flotación.
El tiempo de ciclo es el tiempo mínimo que debe transcurrir entre dos requerimientos a la
memoria. Esto implica que no se puede cambiar el bus de direcciones durante una operación.
16 Sistemas Digitales
Profesor Leopoldo Silva Bijit 19-01-2010
ta
tae
tc
tb tf
direcciones
Chip enable E’
Output enable G’
datos validos
tag
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 dirección (ta), o del canto de bajada de chip
enable (tae), o del tiempo de acceso desde la habilitación 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 señal 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.
Capítulo 15. Registros. Camino de datos. Memorias. 17
Profesor Leopoldo Silva Bijit 19-01-2010
Parámetro Símbolo mín máx
Tiempo de ciclo de escritura tAVAV 12 -
Tiempo de setup de la dirección tAVWL 0 -
Dirección válida 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 válidos 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 recuperación escritura tWHAX 0 -
Figura 15.19. Parámetros 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. Además 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.
tas tah
tc
ts
th
direcciones
Chip enable E’
Write enable W’
datos validos
tw
Figura 15.20. Requerimientos temporales escritura.
Luego de establecida la nueva dirección, no puede activarse el canto de bajada de write enable
hasta tas segundos después. El ancho del pulso de escritura debe tener un mínimo de tw. Los
datos que serán 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 después del
canto de subida del pulso de escritura. También no puede cambiarse el bus de dirección,
debiendo mantenerlo estable tah segundos luego del canto de subida del pulso de escritura.
15.5.3. Control de memoria ram estática.
Se desea diseñar un controlador que permita conectar una memoria a un sistema sincrónico. Los
controles read y write, sincronizados por cantos de bajada, desencadenan las secuencias de
señales de control, que permiten leer y escribir en la memoria. La Figura 15.21, muestra el
ambiente de diseño.
18 Sistemas Digitales
Profesor Leopoldo Silva Bijit 19-01-2010
W’
G’
datos
E’ reset
read
clk
write
Memoria
controlador
direcciones
Din
Dout
add
doe’ cd ld
la
dw
Figura 15.21. Entorno de diseño.
La operación de lectura, puede describirse por la transferencia:
Dout = M[add]
La operación de escritura, puede escribirse:
M[add] = Din
Un diagrama de bloques simplificado se muestra en la Figura 15.22.
clk
Din Dout
add read
clk
write
Memoria
Controlador
Figura 15.22. Entorno de diseño.
Capítulo 15. Registros. Camino de datos. Memorias. 19
Profesor Leopoldo Silva Bijit 19-01-2010
Las señales de lógica 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 serán señales
sincronizadas por cantos de subida, por lo cual las habilitaciones de escritura en los registros se
efectúan 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 períodos del reloj
sean mayores que el tiempo de acceso. Esto puede comprobarse, en el esquema de las señales de
control de la Figura 15.23, ya que transcurren dos ciclos desde que se tiene una nueva dirección
hasta que se graba en el registro de lectura.
clk
read
E0 E4 E5 E6
la
Ep
a Gp
Cd
E0
Figura 15.23. Secuencia de lectura.
La Figura 15.24, desarrolla las secuencias de escritura en tres ciclos del reloj.
clk
write
E0 E1 E2 E3
la
Ep
a Wp
doep
E0
ld
Figura 15.24. Secuencia de escritura.
La Figura 15.25 ilustra el diagrama de estados del controlador. Sólo se muestran las señales 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.
20 Sistemas Digitales
Profesor Leopoldo Silva Bijit 19-01-2010
E0
reset
read=0
write=1
E1
la=1
write=0
E2
E3
read=1
E4
la=1
E5
E6
cd=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
diseño 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.
// Asignación de estados
parameter IDLE = 0;
parameter write1 = 1;
parameter write2 = 2;
parameter write3 = 3;
parameter read1 = 4;
parameter read2 = 5;
parameter read3 = 6;
Capítulo 15. Registros. Camino de datos. Memorias. 21
Profesor Leopoldo Silva Bijit 19-01-2010
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 próximo estado y las señales 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;
22 Sistemas Digitales
Profesor Leopoldo Silva Bijit 19-01-2010
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 módulo efectúa una simulación 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),
Capítulo 15. Registros. Camino de datos. Memorias. 23
Profesor Leopoldo Silva Bijit 19-01-2010
.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
24 Sistemas Digitales
Profesor Leopoldo Silva Bijit 19-01-2010
Figura 15.26. Formas de ondas generadas por la simulación.
15.3.4. Memorias flash o EEPROM.
El procedimiento de lectura de memorias flash o EEPROM es el mismo que para las memorias
estáticas SRAM. Estas memorias disponen de un circuito interno que genera el voltaje de
programación de tipo 12 V, y además tienen una máquina secuencial de estados internas que
permite escribirlas. Las señales de escritura deben cumplir los requerimientos temporales de la
máquina de estados, y usan las mismas señales de control.
15.3.5. Memorias sincrónicas.
En la actualidad se dispone de memorias estáticas sincrónicas que logran velocidades de acceso
mayores.
Capítulo 15. Registros. Camino de datos. Memorias. 25
Profesor Leopoldo Silva Bijit 19-01-2010
Índice general.
CAPÍTULO 15 ........................................................................................................................................... 1
REGISTROS. BUSES. MEMORIAS. ...................................................................................................... 1
15.1. REGISTROS. ..................................................................................................................................... 1 15.2. REGISTRO CON HABILITACIÓN DE ESCRITURA. ................................................................................. 1 15.3 FUNCIONAMIENTO SINCRÓNICO. 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 ESTÁTICA. ........................................................................................................... 14 15.5.1. Ciclo de lectura. .................................................................................................................... 14 15.5.2. Ciclo de escritura. ................................................................................................................. 16 15.5.3. Control de memoria ram estática. ......................................................................................... 17 15.3.4. Memorias flash o EEPROM. ................................................................................................. 24 15.3.5. Memorias sincrónicas. .......................................................................................................... 24
ÍNDICE GENERAL. ................................................................................................................................... 25 ÍNDICE DE FIGURAS ................................................................................................................................. 26
26 Sistemas Digitales
Profesor Leopoldo Silva Bijit 19-01-2010
Índice de figuras
Figura 15.1. Registro de cuatro bits. ............................................................................................. 1 Figura 15.2. Registro con habilitación de escritura. ..................................................................... 2 Figura 15.3. Estados que generan la señal de control WE. ........................................................... 3 Figura 15.4. Control del registro con WE. ................................................................................... 3 Figura 15.5. Representación simbólica de registro con habilitación 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 asincrónico de memoria estática. ............................................................ 14 Figura 15.15. Ciclo de lectura. ................................................................................................... 15 Figura 15.16. Parámetros de lectura. .......................................................................................... 15 Figura 15.17. Requerimientos temporales lectura. ...................................................................... 16 Figura 15.18. Ciclo de escritura.................................................................................................. 16 Figura 15.19. Parámetros de escritura. ....................................................................................... 17 Figura 15.20. Requerimientos temporales escritura. ................................................................... 17 Figura 15.21. Entorno de diseño. ................................................................................................. 18 Figura 15.22. Entorno de diseño. ................................................................................................. 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 simulación. ..................................................... 24