26
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

Registros. Buses. Memorias. - elo.utfsm.cllsb/elo211/clases/c15.pdf · Capítulo 15. Registros. Camino de datos. Memorias. 3 Profesor Leopoldo Silva Bijit 19-01-2010 La señal WE

Embed Size (px)

Citation preview

Page 1: Registros. Buses. Memorias. - elo.utfsm.cllsb/elo211/clases/c15.pdf · Capítulo 15. Registros. Camino de datos. Memorias. 3 Profesor Leopoldo Silva Bijit 19-01-2010 La señal WE

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

Page 2: Registros. Buses. Memorias. - elo.utfsm.cllsb/elo211/clases/c15.pdf · Capítulo 15. Registros. Camino de datos. Memorias. 3 Profesor Leopoldo Silva Bijit 19-01-2010 La señal WE

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

Page 3: Registros. Buses. Memorias. - elo.utfsm.cllsb/elo211/clases/c15.pdf · Capítulo 15. Registros. Camino de datos. Memorias. 3 Profesor Leopoldo Silva Bijit 19-01-2010 La señal 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

Page 4: Registros. Buses. Memorias. - elo.utfsm.cllsb/elo211/clases/c15.pdf · Capítulo 15. Registros. Camino de datos. Memorias. 3 Profesor Leopoldo Silva Bijit 19-01-2010 La señal WE

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

Page 5: Registros. Buses. Memorias. - elo.utfsm.cllsb/elo211/clases/c15.pdf · Capítulo 15. Registros. Camino de datos. Memorias. 3 Profesor Leopoldo Silva Bijit 19-01-2010 La señal WE

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

Page 6: Registros. Buses. Memorias. - elo.utfsm.cllsb/elo211/clases/c15.pdf · Capítulo 15. Registros. Camino de datos. Memorias. 3 Profesor Leopoldo Silva Bijit 19-01-2010 La señal WE

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

Page 7: Registros. Buses. Memorias. - elo.utfsm.cllsb/elo211/clases/c15.pdf · Capítulo 15. Registros. Camino de datos. Memorias. 3 Profesor Leopoldo Silva Bijit 19-01-2010 La señal WE

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

Page 8: Registros. Buses. Memorias. - elo.utfsm.cllsb/elo211/clases/c15.pdf · Capítulo 15. Registros. Camino de datos. Memorias. 3 Profesor Leopoldo Silva Bijit 19-01-2010 La señal WE

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.

Page 9: Registros. Buses. Memorias. - elo.utfsm.cllsb/elo211/clases/c15.pdf · Capítulo 15. Registros. Camino de datos. Memorias. 3 Profesor Leopoldo Silva Bijit 19-01-2010 La señal WE

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

Page 10: Registros. Buses. Memorias. - elo.utfsm.cllsb/elo211/clases/c15.pdf · Capítulo 15. Registros. Camino de datos. Memorias. 3 Profesor Leopoldo Silva Bijit 19-01-2010 La señal WE

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.

Page 11: Registros. Buses. Memorias. - elo.utfsm.cllsb/elo211/clases/c15.pdf · Capítulo 15. Registros. Camino de datos. Memorias. 3 Profesor Leopoldo Silva Bijit 19-01-2010 La señal WE

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

Page 12: Registros. Buses. Memorias. - elo.utfsm.cllsb/elo211/clases/c15.pdf · Capítulo 15. Registros. Camino de datos. Memorias. 3 Profesor Leopoldo Silva Bijit 19-01-2010 La señal WE

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:

Page 13: Registros. Buses. Memorias. - elo.utfsm.cllsb/elo211/clases/c15.pdf · Capítulo 15. Registros. Camino de datos. Memorias. 3 Profesor Leopoldo Silva Bijit 19-01-2010 La señal WE

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)

Page 14: Registros. Buses. Memorias. - elo.utfsm.cllsb/elo211/clases/c15.pdf · Capítulo 15. Registros. Camino de datos. Memorias. 3 Profesor Leopoldo Silva Bijit 19-01-2010 La señal WE

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.

Page 15: Registros. Buses. Memorias. - elo.utfsm.cllsb/elo211/clases/c15.pdf · Capítulo 15. Registros. Camino de datos. Memorias. 3 Profesor Leopoldo Silva Bijit 19-01-2010 La señal WE

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.

Page 16: Registros. Buses. Memorias. - elo.utfsm.cllsb/elo211/clases/c15.pdf · Capítulo 15. Registros. Camino de datos. Memorias. 3 Profesor Leopoldo Silva Bijit 19-01-2010 La señal WE

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.

Page 17: Registros. Buses. Memorias. - elo.utfsm.cllsb/elo211/clases/c15.pdf · Capítulo 15. Registros. Camino de datos. Memorias. 3 Profesor Leopoldo Silva Bijit 19-01-2010 La señal WE

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.

Page 18: Registros. Buses. Memorias. - elo.utfsm.cllsb/elo211/clases/c15.pdf · Capítulo 15. Registros. Camino de datos. Memorias. 3 Profesor Leopoldo Silva Bijit 19-01-2010 La señal WE

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.

Page 19: Registros. Buses. Memorias. - elo.utfsm.cllsb/elo211/clases/c15.pdf · Capítulo 15. Registros. Camino de datos. Memorias. 3 Profesor Leopoldo Silva Bijit 19-01-2010 La señal WE

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.

Page 20: Registros. Buses. Memorias. - elo.utfsm.cllsb/elo211/clases/c15.pdf · Capítulo 15. Registros. Camino de datos. Memorias. 3 Profesor Leopoldo Silva Bijit 19-01-2010 La señal WE

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;

Page 21: Registros. Buses. Memorias. - elo.utfsm.cllsb/elo211/clases/c15.pdf · Capítulo 15. Registros. Camino de datos. Memorias. 3 Profesor Leopoldo Silva Bijit 19-01-2010 La señal WE

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;

Page 22: Registros. Buses. Memorias. - elo.utfsm.cllsb/elo211/clases/c15.pdf · Capítulo 15. Registros. Camino de datos. Memorias. 3 Profesor Leopoldo Silva Bijit 19-01-2010 La señal WE

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),

Page 23: Registros. Buses. Memorias. - elo.utfsm.cllsb/elo211/clases/c15.pdf · Capítulo 15. Registros. Camino de datos. Memorias. 3 Profesor Leopoldo Silva Bijit 19-01-2010 La señal WE

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

Page 24: Registros. Buses. Memorias. - elo.utfsm.cllsb/elo211/clases/c15.pdf · Capítulo 15. Registros. Camino de datos. Memorias. 3 Profesor Leopoldo Silva Bijit 19-01-2010 La señal WE

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.

Page 25: Registros. Buses. Memorias. - elo.utfsm.cllsb/elo211/clases/c15.pdf · Capítulo 15. Registros. Camino de datos. Memorias. 3 Profesor Leopoldo Silva Bijit 19-01-2010 La señal WE

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

Page 26: Registros. Buses. Memorias. - elo.utfsm.cllsb/elo211/clases/c15.pdf · Capítulo 15. Registros. Camino de datos. Memorias. 3 Profesor Leopoldo Silva Bijit 19-01-2010 La señal WE

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