You are on page 1of 18

SUMADOR 10 NMEROS CON UC Y CD

(Tarea)
Universidad Distrital Francisco Jos de Caldas
Diego Alejandro Barragn Vargas .20131005113
Bayron Alexis Crdenas Espitia .20132005045

PROBLEMA
Desarrollar en cdigo VHDL un procesador dedicado que realice la suma de 10 nmeros.

DISEO

Fig2. Diagrama
estructural CD

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

1
0
0
1
1
0
0
1
1

0
0
1
0
1
0
1
0
1

OPERACIN
A+B
A-B
A+1
B-1
NOT(A)
AND(A,B)
OR(A,B)
XOR(A,B)

R1
0
0
1
1

REGISTRO
R0
0
1
0
1

FUNCIN
CARGA
ROTAR
<DESPLAZAR <NADA

Se procede a realizar el siguiente algoritmo:

Suma =0; Final=0;

P1

For => i=1:100


Suma= Suma +

P2

WHEN INICIO=1

End;
Y = suma, Final=1;

P3

Fig3. Diagrama de
Estados de la Unidad
de Control

Con este diagrama de estados se tienen las siguientes tablas:


EP
Q0
0
0
1

P1
P2
P3
P1

0
1
X

EF
Q1
0
1
0

1
0
X

=0
0
1
0

I=0
0
0
0

0
0
X

I=0
0
1
0

=1
0
0
0

I=1
0
0
0

SEALES DE CONTROL
1
0
0
0
0
0
X
1
1

M S1 S0

R1 R0

=0
1
1
0

0
0
1

R1

Con esta informacin obtenida de los anlisis se obtiene la FSM:

Fig4. Modelo implementacin directa UC

=1
1
0
0

I=1
0
1
0

0
1
X

1
1
X

PW

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 cdigos en VHDL para implementar la UC y el CD se muestran a continuacin:

Unidad de Control

Fig6. Cdigo VHDL UC

Para la implementacin 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 continuacin:

Mux 2 a 1

ALU

Fig7. Cdigo VHDL Mux 2 a 1

Three State

Fig9. Cdigo VHDL ALU

Fig8. Cdigo VHDL Three State

Registro Camino de Datos

Fig10. Cdigo VHDL Registro Acumulador

Contador del CD

Fig11. Cdigo VHDL Contador del CD

Package componentes del CD

Fig12. Cdigo VHDL Package


componentes del CD

Camino de Datos

Fig13. Cdigo 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
nmeros; dicho archivo es el siguiente:

Sumador 10 nmeros Unin UC/CD

Fig14. Cdigo VHDL Sumador 10 nmeros unin UC/CD

De la Unidad de Control, el Camino de Datos y la unin de ambos, se obtuvo una simulacin (para un total de 3 simulaciones). Dichas
simulaciones fueron las siguientes:

Simulacin Unidad de Control

En est simulacin se pueden apreciar los 3 estados de la Unidad de Control para las diferentes condiciones (sealados 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 seal de control 010100001, luego start se hace 1 y la UC pasa al siguientes estado que se seala con el cursor azul, all final es
igual a cero y la seal 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 seal de control XXXX111XX.

Simulacin Camino de Datos

En la simulacin se pueden apreciar los mismos 3 valores de la seal de control de la UC mostrada anteriormente. Para cada seal de
control el CD realiza determinada accin. Primero, en el cursor amarillo, para la SC 010100001, el CD hace la seal 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 nmeros ingresados. Se ingresan 10 nmeros
(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 nmeros del 0 al 9 da como resultado 45 que en binario a 10 bits sera 0000101101 que es el resultado obtenido
donde se seala con el cursor naranja.

Finalmente se simula el sumador de 10 nmeros Unin 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 simulacin obtenida es la siguiente:

Simulacin Sumador 10 nmeros Unin UC/CD

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.
Despus 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 simulacin. Despus del estado 3 la FSM se reinicia y vuelve al estado cero haciendo final a 0 y la salida alta impedancia.

SNTESIS EN ISE

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

Fig15. Sntesis ISE de la UC

Fig16. Sntesis ISE del CD

Fig17. Sntesis ISE Sumador de 10 Nmeros

You might also like