sumador 10 números con unidad de control y camino de datos

18
SUMADOR 10 NÚMEROS CON UC Y CD (Tarea) Universidad Distrital Francisco José de Caldas Diego Alejandro Barragán Vargas .20131005113 Bayron Alexis Cárdenas Espitia .20132005045 PROBLEMA Desarrollar en código VHDL un procesador dedicado que realice la suma de 10 números. DISEÑO

Upload: bayronalexiscardenasespitia

Post on 19-Feb-2016

6 views

Category:

Documents


1 download

DESCRIPTION

Implementación en VHDL del algoritmo para un sumador de 10 números, utilizando el modelo de unidad de control más camino de datos

TRANSCRIPT

Page 1: Sumador 10 Números con Unidad de Control y Camino de Datos

SUMADOR 10 NÚMEROS CON UC Y CD

(Tarea)

Universidad Distrital Francisco José de Caldas

Diego Alejandro Barragán Vargas .20131005113

Bayron Alexis Cárdenas Espitia .20132005045

PROBLEMA

Desarrollar en código VHDL un procesador dedicado que realice la suma de 10 números.

DISEÑO

Page 2: Sumador 10 Números con Unidad de Control y Camino de Datos

Teniendo en cuenta que las funciones a realizar de la ALU y el registro acumulador son:

ALU

M 𝑆1 𝑆0 OPERACIÓN

0 0 0 A+B

0 0 1 A-B

0 1 0 A+1

0 1 1 B-1

1 0 0 NOT(A)

1 0 1 AND(A,B)

1 1 0 OR(A,B)

1 1 1 XOR(A,B)

Fig2. Diagrama

estructural CD

Page 3: Sumador 10 Números con Unidad de Control y Camino de Datos

REGISTRO

R1 R0 FUNCIÓN

0 0 CARGA

0 1 ROTAR <-

1 0 DESPLAZAR <-

1 1 NADA

Se procede a realizar el siguiente algoritmo:

Suma =0; Final=0;

For => i=1:100

Suma= Suma + 𝑋𝑖

End;

Y = suma, Final=1;

P1

P2

P3

WHEN INICIO=’1’

Fig3. Diagrama de

Estados de la Unidad

de Control

Page 4: Sumador 10 Números con Unidad de Control y Camino de Datos

Con este diagrama de estados se tienen las siguientes tablas:

EP EF

Q0 Q1 I=0 α =0 I=0 α =1 I=1 α =0 I=1 α =1

0 0 0 0 0 0 0 1 0 1

0 1 0 1 1 0 0 1 1 0

1 0 0 0 0 0 0 0 0 0

SEÑALES DE CONTROL

0 1 0 1 0 0 0 0 1

1 0 0 0 0 0 0 1 1

X X X X 1 1 1 X X

Con esta información obtenida de los análisis se obtiene la FSM:

Fig4. Modelo implementación directa UC

P2

P1

P1 P1 P1 P1 P1 P1 P1 P1 P3

S M S1 S0

R1 R0 R1 P W

Page 5: Sumador 10 Números con Unidad de Control y Camino de Datos

De igual forma hay que tener en cuenta que para realizar la sumatoria se debe agregar otro

circuito adicional el cual es:

Fig5. Circuito contador del CD

Los códigos en VHDL para implementar la UC y el CD se muestran a continuación:

Page 6: Sumador 10 Números con Unidad de Control y Camino de Datos

Unidad de Control

Fig6. Código VHDL UC

Para la implementación del CD se requirieron 7 archivos (uno para el Mux 2 a 1, uno para

la ALU, uno para el Registro del camino de datos, uno para el three state, uno para el

contador de las 10 iteraciones, uno para el Package que contuviese todos los componentes

anteriores y uno para la unidad del CD como tal) los cuales se muestran a continuación:

Page 7: Sumador 10 Números con Unidad de Control y Camino de Datos

Mux 2 a 1

ALU

Fig7. Código VHDL Mux 2 a 1

Fig9. Código VHDL ALU

Three State

Fig8. Código VHDL Three State

Page 8: Sumador 10 Números con Unidad de Control y Camino de Datos

Registro Camino de Datos

Fig10. Código VHDL Registro Acumulador

Page 9: Sumador 10 Números con Unidad de Control y Camino de Datos

Contador del CD

Fig11. Código VHDL Contador del CD

Page 10: Sumador 10 Números con Unidad de Control y Camino de Datos

Package componentes del CD

Fig12. Código VHDL Package

componentes del CD

Page 11: Sumador 10 Números con Unidad de Control y Camino de Datos

Camino de Datos

Fig13. Código VHDL CD

Finalmente para unir la Unidad de Control y el camino de Datos, se requirió de otro archivo VHDL y se obtuvo el sumador de 10

números; dicho archivo es el siguiente:

Page 12: Sumador 10 Números con Unidad de Control y Camino de Datos

Sumador 10 números Unión UC/CD

Fig14. Código VHDL Sumador 10 números unión UC/CD

Page 13: Sumador 10 Números con Unidad de Control y Camino de Datos

De la Unidad de Control, el Camino de Datos y la unión de ambos, se obtuvo una simulación (para un total de 3 simulaciones). Dichas

simulaciones fueron las siguientes:

Simulación Unidad de Control

En está simulación se pueden apreciar los 3 estados de la Unidad de Control para las diferentes condiciones (señalados con los 3

cursores amarillo, azul y naranja). En el lugar del cursor amarillo se presenta que el reset es igual a 1 por lo tanto la UC hace final a 0 y

la señal de control “010100001”, luego start se hace 1 y la UC pasa al siguientes estado que se señala con el cursor azul, allí final es

igual a cero y la señal de control es “100000011”, luego alpha es cero por lo que se mantiene este último estado. Finalmente, cuando

alpha se hace 1 y start está en 1, la UC pasa al estado 2 donde final se hace 1 y la señal de control “XXXX111XX”.

Page 14: Sumador 10 Números con Unidad de Control y Camino de Datos

Simulación Camino de Datos

Page 15: Sumador 10 Números con Unidad de Control y Camino de Datos

En la simulación se pueden apreciar los mismos 3 valores de la señal de control de la UC mostrada anteriormente. Para cada señal de

control el CD realiza determinada acción. Primero, en el cursor amarillo, para la SC “010100001”, el CD hace la señal de estado SE

cero y la salida alta impedancia o circuito abierto. Cuando se cambia la Sc por “100000011” en el cursor azul, el CD mantiene la SE en

cero, la salida sigue siendo alta impedancia pero comienza a realizar la sumatoria de los números ingresados. Se ingresan 10 números

(0, 1, 2, 3, 4, 5, 6, 7, 8, 9) durante 10 pulsos de reloj y al onceavo pulso se obtiene la salida al ingresar la SC “XXXX111XX”. La

sumatoria de los números del 0 al 9 da como resultado 45 que en binario a 10 bits sería “0000101101” que es el resultado obtenido

donde se señala con el cursor naranja.

Finalmente se simula el sumador de 10 números Unión UC/CD para comprobar el correcto funcionamiento del conjunto ya que se

comprobó que tanto la UC como el CD funcionaban de buena manera; la simulación obtenida es la siguiente:

Page 16: Sumador 10 Números con Unidad de Control y Camino de Datos

Simulación Sumador 10 números Unión UC/CD

Page 17: Sumador 10 Números con Unidad de Control y Camino de Datos

En el cursor amarillo se puede ver el primer estado que se inicializa con el reset en 1 y que hace final a cero y la salida alta impedancia.

Este estado se mantiene con start en 0. En el cursor azul o segundo estado, cuando start se hace 1 se comienzan a ingresar los valores a

sumar; estos se ingresan durante 10 pulsos (enteros del 0 al 9); y se ve que final se mantiene en 0 y la salida en alta impedancia.

Después de pasados los 10 pulsos, en el pulso siguiente, cuando se cambia al 3 estado, se ve que final se hace 1 y que la salida muestra

el resultado de la sumatoria que es el mismo del caso anterior o sea 45 que en binario es “0000101101” que es lo mismo que aparece

en la simulación. Después del estado 3 la FSM se reinicia y vuelve al estado cero haciendo final a 0 y la salida alta impedancia.

SÍNTESIS EN ISE

Los diagramas estructurales de la UC, Cd y el sumador obtenidos en ISE fueron los siguientes:

Fig15. Síntesis ISE de la UC

Page 18: Sumador 10 Números con Unidad de Control y Camino de Datos

Fig16. Síntesis ISE del CD

Fig17. Síntesis ISE Sumador de 10 Números