Diseño,  Jerarquía,  Verificación,  Verificación física

Verificación hardware de un microprocesador simple

Con este ejemplo queremos mostrar algunas características que puedan ser útiles en el diseño de sistemas más complejos; pero la arquitectura de este microprocesador (Multi-Cycle Processor) tiene poco que ver con las solicitadas en la tarea 3 fase 2 (single cycle processor) y 3 (pipeline processor) :

  • Realización de un interfaz para modelar un bus triestado de interconexión de los diferentes elementos de un microprocesador.
    • El bus triestado incomoda bastante a una FPGA y solo las células I/O de las FPGA tienen capacidad para implementarlo.
    • El código es sintetizable en nuestra FPGA Cyclone V
  • Determinación del funcionamiento del microprocesador mediante una especificación ASM (con 11 estados)
  • Es un Multi-Cycle Processor ( se requieren 6 ciclos para completar cada instrucción) sin posibilidad de comenzar una nueva instrucción hasta que ha finalizado la anterior, en contraposición a los denominados «pipeline processors» como el que vais a diseñar en la fase 3
  • Realización de un control cableado (FSM) en lugar de un control microprogramado
  • Implementación de una memoria RAM en la que se almacena el programa y los datos.

La estructura del microprocesador que vamos a diseñar es la de la siguiente figura

Veamos como sería el código del interfaz y del top de la jerarquía.

Interfaz

El interfaz lo voy a utilizar tanto para la distribución de los datos (mediante un bus triestado denomindo sysbus) como para la distribución de las señales de control que irán desde el control path a cada unos de los elementos del data-path (PC,IR, ALU y RAM) y para la recepción de las señales de estado desde el control-path procedentes del data-path.

siendo el «package» importado el siguiente

Como puede observarse nuestro microprocesador es de 8 bits y tenemos tan solo 3 bits para codificar instrucciones. Vamos a definir únicamente 5 instrucciones.

Top de la jerarquía

Ahora la descripción del top de la jerarquía se ve altamente simplificada. Es sin duda una de las cosas que se pretendía con el uso de la construcción «interface»

Elementos del data-path

Veamos los elementos del data path

PC

ALU

Este modulo implementa más bien un registro A(o ACC) y un sumador/restador conectados en modo acumulación, de forma que se puedan hacer operaciones de sumas y restas sin problemas.

IR

RAM

Este último componente si que tiene algunas características que conviene resaltar:

  • Tenemos una memoria «single port» de lectura síncrona
  • Tenemos dos registros de apoyo, uno (mdr) que registra el dato de entrada y otro (mar) que registra la dirección.

Control-path

El control path podemos observarlo en el siguiente fichero

Como puede observarse es una máquina Mealy de 11 estados

Procedimiento de verificación

Supongamos que tenemos un programa preparado para comprobar todas las instrucciones desarrolladas. En nuestro caso es un programa para generar números fibonacci.

Vamos a explicar con el siguiente vídeo cómo verificar el funcionamiento del microprocesador desarrollado bajo una plataforma FPGA remota.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *