Modelo VHDL del RSCPU+ Omar X. Avelar & Omar de la Mora ARQUITECTURA DE COMPUTADORAS (ESI 031B) Instituto Tecnológico y de Estudios Superiores de Occidente (ITESO) Departamento de Electrónica, Sistemas e Informática (DESI)
3. PRUEBAS A EFECTUAR
1. OBJETIVO
Extender la arquitectura del conjunto de instrucciones del procesador RSCPU agregando cuatro nuevas instrucciones para permitir el uso de un registro apuntador para direccionar la memoria. Agregar también a la arquitectura los elementos que se requieran para el soporte de estas instrucciones. Usar un simulador Lógico (Modelsim) para verificar la implementación correcta. La práctica debe realizarse en equipos de 2 personas.
Calcular la serie de Fibonacci en el RSCPU. Desarrollar el programa en lenguaje ensamblador del RSCPU utilizando las cuatro instrucciones que se agregaron al CPU para proveer acceso a la memoria de datos. Los números, o serie de Fibonacci, están definidos por la siguiente recurrencia:
F o =0 F 1=1 F i =F i−1 F i −2
Modifica la Descripción VHDL del RSCPU de tal forma que incluya la posibilidad de direccionar la memoria por medio de un registro apuntador denominado el Registro Índice IX. Los cambios requeridos para lograr esto son los siguientes:
Agregar el registro apuntador IX (Registro Indice) de 16 bits. Este registro se podrá utilizar para direccionar la memoria y hacer transferencias entre la memoria y el acumulador utilizándolo como registro apuntador. El CPU debe realizar las instrucciones LDIX [value], INIX, LDAI y STAI descritas en la tabla. La instrucción LDIX [value] carga el registro IX con un valor inicial de 16 bits definido en los bytes 2 y 3 de la instrucción. La instrucción INIX incrementa el valor de IX. La instrucción LDAI carga el Acumulador con el contenido de la localidad de memoria direccionada por IX. La instrucción STAI almacena el contenido del acumulador en la localidad de memoria direccionada por IX.
Cabe señalar que las micro-operaciones separadas por “puntos y comas” ocurren secuencialmente y las micro-operaciones separadas por “comas” ocurren simultáneamente.
Instrucción
Código de instrucción
INIX
10000100 Value Low Value High 10000101
LDAI
10000110
STAI
10000111
LDIX [value]
DICIEMBRE 2009
i2
Por lo tanto, cada número de Fibonacci es la suma de los dos anteriores, generando la secuencia
2. ENUNCIADO
, para
Micro-operaciones que describen la instrucción después de la obtención del código de operación DR