Práctica 5. Banco de registros

Anuncio
Práctica 5. Banco de registros
Diseñar un banco de registros con 32 registros de 32 bits. Tendrá dos puertos de salida
de datos de 32 bits, busA y busB; dos puertos de direcciones para lectura de 5 bits, RA
y RB, que indican cuál es el registro cuyo contenido se muestra en busA y busB; un
puerto de direcciones de escritura de 5 bits, RW, y otro de datos de escritura de 32 bits,
busW. También tendrá una señal RegWrite que cuando este a 1 permitirá que
coincidiendo con el flanco de bajada del reloj CLK se almacene en el registro
deterrminadopor RW los datos que se encuentren en busW.
El diseño deberá hacerse de dos modos:
a) Con un diseño algorítmico basado en un único Process.
b) Con un diseño estructural en el que se definirán:
a. 32 registros de 32 bits.
b. Para la operación de lectura, se diseñarán dos multiplexores de “32 a 1”
en los que cada una de las entradas y la salida tendrán 32 bits.
Para diseñar estos multiplexores se modelará de modo algorítmico un
multiplexor en el que se dan como genéricos el números de entradas de
control y el número de bits de anchura de la salida (por supuesto igual al
de las entradas). Nota: El operador exponenciación es **.
c. Para la escritura se necesitará diseñar un decodificador de “5 a 32”.
Diseñar uno algorítmico en el que el número de entradas sea genérico.
d. También para la escritura se necesitará usar puertas and. Por comodidad
a la hora de realizar el interconexionado puede definirse una puerta
super_and, que internamente conste de 32 puertas, en las que una de las
dos entradas es común (la señal RegWrite).
c) Definir un banco de pruebas que lea y escriba varios valores.
RA
Registro 0
Registro 1
....
Registro 32
Registro 31
M
U
bus
A
RB
M
U
bus
B
RA
RB
RW
bus
W
RegW
r
RW
Ban
co
de
regi
bus
A
bus
B
RegW
r
0
Deco 1
difica
dor
5a
32 31
32
C
Registro 0
D
C
Registro 1
D
C
Registro 30
D
C
Registro 31
Bus
W
D
Descargar