Modulo 5 y notas adicionales
El módulo 5 esta dedicado a realizar la integración de la CPU, en primer lugar, posteriormente unir la CPU con la memoria a través del controlador de memoria, creando, así un sistema computador sin periféricos (solo CPU y Memoria). Por último, se va a verificar el correcto funcionamiento de este sistema mediante el ensamblado y la ejecución de un programa a través de simulación.
Módulo 5a
Integración de los componentes que se han diseñado desde el módulo 1a hasta el 4c para completar la CPU
Recursos
- Enunciado: Lab4Mod5aV1.1_E
- Recursos: cpu.vhd
Notas adicionales
- Sería conveniente copiar todos los códigos generados y/o usados en esos módulos a la carpeta
modulo5a/input/
Módulo 5b
Unión de la CPU, memoria y el controlador de memoria
Recursos
- Enunciado: Lab4Mod5bV1.1_E.pdf
- Recursos: system.vhd
Módulo 5c
Conocer el lenguaje ensamblador de Micro6 y de su transformación en código máquina mediante un ensamblador
Hay que realizar las siguientes tareas:
- Completar el programa ensamblador que implementa un programa de ordenación de números
- Ensamblar el programa para generar el código máquina
Recursos
- Enunciado: Lab4Mod5cV1.1_E.pdf
- Recursos: Multiples ficheros
Notas adicionales
- Existen una serie de errores en el programa (fichero prog.asm) que hay que corregir además de completar el programa
Errores | Correciones |
---|---|
INC RX | INC RX RX |
DEC RX | DEC RX RX |
ZRO RX | ZRO RX RX |
CMP RX RY | CMP RX RY RZ |
- El programa ensamblador esta desarrollado en VHDL (no es lo más apropiado pero es válido)
- Para generar el código máquina hay que ejecutar una simulación del ensamblador con los ficheros que incluyan los siguientes ficheros del programa:
➔ micro_ram_pk.vdh: Código VHDL que da valor a la constante RAM_CONTENTS. Se usará para simulación del sistema (módulo 5d)
➔ ram.coe: Fichero con el contenido de la memoria que se utilizará para inicializar el IP core de la memoria en el proceso de implementación (módulo 6a)
Módulo 5d
El objetivo del módulo 5d es comprobar la correcta funcionalidad del diseño realizado de Micro6. Para ello se realiza la simulación del sistema del módulo 5b con el programa ensamblado en el módulo 5d.
El módulo esta preparado para utilizar el simulador MODELSIM, sin embargo se puede realizar la simulación con ISEsimulator (simulador del entorno ISE). Cuando se emplea ISEsimulator hay que obviar todo lo que cuenta el documento pdf del módulo respecto de Modelsim.
Para comprobar la correcta ejecución del programa en el sistema hay que realizar un proceso de análisis de las formas de onda de las señales adecuadas. Lo habitual es que el sistema no funcione correctamente a la
primera (si es así, enhorabuena al que lo consiga)
Si no funciona correctamente, habrá que realizar un muy laborioso proceso de análisis y corrección de errores que se hayan cometido a lo largo de todo el proceso de diseño
Para visualizar los datos de la memoria en el código memory.vhd
hay que transformar la variable interna en señal interna
Recursos:
- Enunciado: Lab4Mod5dV1.1_E.pdf
- Recursos: tb_system.vhd
Notas adicionales
- Solo se chequea la sintaxis del código cpu.vhd (5a) y system.vhd (5b) que son los que hay que completar respectivamente. No existen testbench. Esto significa que puede haber interconexiones erróneas y a la luz en la simulación del sistema completo en este módulo