Unidad de registros, memorias y ULA en VHDL

Unidad de Proceso. 

La unidad de proceso está formada por la UAL (la cual realizara las operaciones aritméticas y lógicas) y por los registros (los cuales almacenaran información temporalmente). Con estos elementos se podrán realizar las operaciones necesarias. 6.3.1 UAL. 

El diseño de la UAL siempre dependerá del juego de instrucciones que vayamos a usar por lo tanto en este caso solo necesitamos que cumpla con las cuatro instrucciones que tenemos.

Tendrá que sumar (ADD), pasar un dato sin modificarlo (MOV), comparar (CMP), la cuarta instrucción (BEQ) de salto condicional no implica a la UAL. Finalmente indicar que debido al funcionamiento de las instrucciones se debe detectar cuando el resultado de las operaciones es igual a cero. Para referirnos a las distintas operaciones la UAL poseerá dos señales de control, como puede verse en la Tabla 1:

Referencias dela UAL a las diferentes operaciones.


En la Figura 2: se puede observar el aspecto de la UAL:
Figura 2 - Diseño UAL (tomado de [16]).

Registros Los registros permiten almacenar información temporalmente. Para diseñar un procesador didáctico necesitaremos los siguientes:

  • Contador de programa (CP). 
  • Registro de instrucción (RI). 
  • Registro A y B. 


Registro de estado. Contador de programa: es el encargado de almacenar la dirección de la siguiente instrucción a ejecutar. Como normalmente las instrucciones se ejecutan de manera secuencial se dotara el registro de un sumador. También tendrá una señal de control INCP que producirá la carga de la dirección que actualmente se esté tratando incrementada en una unidad, esta señal se utilizara para los saltos. Teniendo así el aspecto que se puede ver en la Figura 3

Figura 3: Diseño contador de programa (tomado de [16]).

Registro de instrucciones: almacena la instrucción que está siendo ejecutada en ese momento, siendo así una copia de la palabra que está en la memoria principal en la posición que indica el contador de programa antes de su incremento. Contará con una señal de control ERI que indica cuando debe cargarse el registro. Cada campo tendrá una salida diferente ya que su utilización varía en cada caso. Teniendo este aspecto (véase Figura 4):


Figura 4: - Diseño registros A y B (tomado de [16]).

Registros A y B: debido a que en esta arquitectura el bus de datos es único se necesitara almacenar temporalmente los operandos que se van a emplear. Por lo tanto en ambos la entrada será desde el bus de datos y su salida estará conectada con la UAL. También poseen cada uno, una señal de control que indica cuando producir la carga con el valor que hay en el bus de datos, se ponen dos para que el bus de datos este libre para almacenar el resultado de la operación realizada en el mismo pulso de reloj. 

Teniendo así el aspecto que se puede ver:

 Registro de estado: en el caso de que queramos ejecutar la instrucción de salto condicional (BEQ) se necesita saber si el resultado de la anterior operación fue nulo. Para implementar esto utilizamos un biestable D para almacenar el valor de la salida Z. Posee una señal de control llamada EZ que produce la carga cuando la instrucción lo requiere. También posee una salida FZ que es la que indica el valor del registro, es decir, del biestable. Teniendo así este aspecto (véase Figura 4): Figura 3 - Diseño registro de instrucciones (tomado de [16]) - Diseño registro.









Comentarios

Entradas populares de este blog

Dispositivos Digitales Programables Pal y Gal

Arquitectura de los DSP y sus módulos embebidos

Bloques funcionales en PLD