Documente Academic
Documente Profesional
Documente Cultură
Salida
A+B
A-B
A and B
A or B
A xor B
not B
A
No importa
4
4
3
AL
U
Memoria de
datos
4
4
MUX
16 x 4
Z C
ACC
4
Z
C
IR
4
Unidad de Control
8
Memoria de
programa
PC
256 x 8
una entrada de reloj, una entrada de datos de 4 bits, una salida de datos de 4 bits,
una entrada de direccin de cuatro bits y una entrada de habilitacin de escritura
WE (write enable). Los registros del 0 al 7 son registros internos, los del 8 al 11
funcionan como puertos de salida y los del 12 al 1 5 funcionan como puertos de
entrada. Para esto ltimo se requieren cuatro salidas de 4 bits y cuatro entradas de
4 bits para los puertos de salida y de entrada respectivamente (no se muestran en
la figura 1 para simplicidad del esquemtico).
La memoria de programa es de tipo ROM de 256 posiciones de 8 bits cada una y
tiene los valores correspondientes a las instrucciones que el procesador debe
ejecutar, estas instrucciones estn programadas directamente en la descripcin en
VHDL de la memoria. Esta tiene una entrada de direcciones de 8 bits y una salida
de datos de 8bits. este bloque es totalmente asncrono.
La unidad de control es una maquina de estados finitos, que est encargada de
realizar cada uno de los pasos necesarios (micro-instrucciones) para que se
ejecuten las instrucciones programadas, esta debe realizar internamente una
decodificacin de las instrucciones. Este bloque tiene entradas de reloj, de reset, de
Z, de C y la entrada de instruccin de 4 bits que corresponde a la parte alta del IR.
Adems tienen salidas para: las seales de carga de ACC e IR, las seales de
incremento, suma y resta del PC, la seal de reset_flags del ACC, la seal de WE de
la memoria de datos y la seal de seleccin del selector de palabra (ninguna de
estas seales se muestra en el esquemtico de la figura 1).
Juego de instrucciones
El procesador posee un set de 13 instrucciones, 2 aritmticas, 4 lgicas, 3 de
transferencia de memoria, 2 saltos incondicionales y 2 saltos condicionales. las
instrucciones son las siguientes:
Instruccin
ADD Address
Funcin
ACC = DataMem[Address] +
ACC
SUB
Address
AND Address
ACC = DataMem[Address]
and ACC
OR
ACC = DataMem[Address]
or ACC
Address
Descripcin
Suma el acumulador mas la
posicin de memoria de datos
indicada por Address y carga el
resultado en el acumulador.
Resta el valor del acumulador a la
posicin de memoria de datos
indicada por Address y carga el
resultado en el acumulador.
Hace la operacin AND bit a bit
entre el acumulador y la posicin de
memoria de datos indicada por
Address. Carga el resultado en el
acumulador.
Hace la operacin OR bit a bit entre
el acumulador y la posicin de
memoria de datos indicada por
XOR Address
ACC = DataMem[Address]
xor ACC
NOT
LOAD
Address
ACC = DataMem[Address]
STORE
Address
DataMem[Address] = ACC
LOADK
Constant
GOUP
Jump
ACC = Constant
GODW
PC = PC + Jump
Jump
PC = PC - Jump
JIC
Jump
Si ( carry = 1) entonces
PC = PC + Jump
JIZ
Jump
Si ( zero = 1) entonces
PC = PC + Jump
Cdigo de operacin
(4 MSBs)
0000
0001
0010
0011
0100
Operando (4
LSBs)
A3 A2 A1 A0
A3 A2 A1 A0
A3 A2 A1 A0
A3 A2 A1 A0
A3 A2 A1 A0
NOT
LOAD
Address
STORE
Address
LOADK
Constant
GOUP
Jump
GODW Jump
JIC
Jump
JIZ
Jump
0101
0110
XXXX
A3 A2 A1 A0
1000
A3 A2 A1 A0
1001
K3 K2 K1 K0
1010
1011
1100
J3 J2 J1 J0
J3 J2 J1 J0
J3 J2 J1 J0
1101
J3 J2 J1 J0
Esto basta debido a que cuando se hace la bsqueda la parte baja del IR direcciona
la memoria y a la salida de esta se muestra el valor del registro del operando.
Para la instruccin LOADK las microinstrucciones son:
Para las instrucciones de salto condicional (JIC y JIZ) las microinstrucciones son:
Laboratorio
Se debe implementar todos los bloques a excepcin de la memoria de programa y
la memoria de datos, cuyos cdigos en VHDL sern entregados por el profesor. Se
debe implementar todo el diseo en la tarjeta de CPLD. el programa establecido
utiliza los display y los botones de la tarjeta.
Condiciones
El proyecto debe ser entregado como plazo mximo el da 1 de Septiembre, en
grupos de mximo 4 personas. La calificacin ser la siguiente:
50%
30%
20%