You are on page 1of 15

Nombre de la Asignatura

LABORATORIO DE SISTEMAS DIGITALES I

Nombre de la Prctica

SUMADOR DE 3 BITS EN VHDL

Nmero de Prctica

Profesor

Fecha de entrega

Dr. Fortino

Duracin

16/04/2016
2Hrs

INTEGRANTES:
Jesus Ismael Surez Soto

INTRODUCCIN.
Un sumador es un circuito que realiza la suma de dos palabras binarias. Es distinta de la operacin OR, con
la que no nos debemos confundir. La operacin suma de nmeros binarios tiene la misma mecnica que la
de nmeros decimales.
Por lo que en la suma de nmeros binarios con dos o ms bits, puede ocurrir el mismo caso que podemos
encontrar en la suma de nmeros decimales con varias cifras: cuando al sumar los dos primeros dgitos se
obtiene una cantidad mayor de 9, se da como resultado el dgito de menor peso y me llevo" el anterior a la
siguiente columna, para sumarlo all.
En la suma binaria de los dgitos 1 + 1, el resultado es 0 y me llevo 1, que debo sumar en la columna
siguiente y pudindose escribir 10, solamente cuando sea la ltima columna a sumar. A este bit ms
significativo de la operacin de sumar, se le conoce en ingls como carry (acarreo), equivalente al me
llevo una de la suma decimal.
Semisumador. Es un dispositivo capaz de sumar dos bits y dar como resultado la suma de ambos y el
acarreo. La tabla de verdad correspondiente a esta operacin sera:
Tabla 1.-Tabla de verdad de un Semisumador.
ENTRADAS
SALIDAS
A

OBJETIVO.

El presente Trabajo prctico consta en especificar, disear, describir una arquitectura, simular,
sintetizar e implementar en FPGA un sistema digital para un sumador de 3 bits.
La practica tiene como objetivo familiarizar al alumno con el lenguaje de descripcin de hardware
VHDL

MARCO TERICO.
SUMADOR RESTADOR DE 3 BITS EN BINARIO NATURAL.
Sabemos que a un sumador de n bits, hacindole un pequeo cambio, lo podemos convertir en
sumador y restador. Simplemente se complementan a 1 los bits del sustraendo y adems se aade un 1
por la entrada de acarreo. La suma de dos nmeros de n bits necesitan n+1 bits para poder expresarse sin
overflow.

Figura 1.- Sumador de 3 bits.


Una seal de control S/R decide si se hace o no ese cambio, y, por tanto, si se resta o suma,
respectivamente.
Veamos algunos ejemplos de sumas:

Figura 2.- Resultado de la suma con el Sumador de 3 bits

Figura 3- Resultado de la suma con el Sumador de 3 bits

SUMADOR RESTADOR DE 3 BITS EN COMPLEMENTO A 2.

Sea A un nmero de 3 bits en complemento a 2 (A 2 , A 1 , A 0 ), donde A 2 es el bit de signo. Sea B un


nmero de 3 bits en complemento a 2 (B 2 , B 1 , B 0 ), donde B 2 es el bit de signo. Vamos a realizar un
sumador restador para A y B, basndonos en la idea del sumador restador binario.
El rango de nmeros representados es [-4, +3], si bien el rango de posibles resultados es [-8,+6], que
necesita 4 bits en complemento a 2.
Vamos a considerar todos los casos posibles, teniendo en cuenta que A puede ser positivo o negativo, que
B puede ser positivo o negativo y que podemos sumar o restar, resultan 8 casos

Caso 1. Sumar un nmero positivo con otro positivo.

Ej: +3 +2 = +5

Caso 2. Sumar un nmero positivo con otro negativo.

Ej: +3 + (-2) = +1

Caso 3. Sumar un nmero negativo con otro positivo.

Ej -2 + (+3) = +1

Caso 4. Sumar un nmero negativo con otro negativo.

Ej: -2 + (-3) = -5

Caso 5. Restar un nmero positivo de otro positivo.

Ej: +2- (+3) = -1

Caso 6. Restar un nmero negativo de otro positivo.

Ej: +3 - (-2) = +5

Caso 7. Restar un nmero positivo de otro negativo.

Ej: -2 (+3) = -5

Caso 8. Restar un nmero negativo de otro negativo.

Ej: -2 (-3) = +1

En los casos 1, 4, 6 y 7 necesitan los 4 bits, ya qye en resultado excede el margen de representacin con 3
bits [-4,+3], mientras que en los restantes casos (2, 3, 5 y 8) slo se necesitan 3 bits, ya que el resultado
est dentro del citado margen de representacin.
Vemoslo en binario en cada caso.

Figura 4- Resultado de la suma o resta con el Sumador de 3 bits

En el caso en que slo se necesitan 3 bits, para expresar el resultado con 4 bits, hay que hacer una
EXTENSIN DE SIGNO, es decir, forzar a que el cuarto bit sea igual que el tercero.

Tabla 2.- Tabla del sumador-restador de 3 bits

Como se puede ver, cuando se suman dos nmeros de distintos signo o cuando se restan dos nmeros del
mismo signo, se necesitan 3 bits y en el caso contrario se necesitan 4 bits.
La tabla anterior tambin se puede poner de la siguiente forma:

Tabla 3.- Tabla binaria del sumador-restador de 3 bits

donde S/R=0 significa suma y S/R=1 significa resta. F=0 significa que hay que hacer extensin de signo
(necesita 3 bits), mientras que F=1 significa que la salida de acarreo es el 4o bits (necesita 4 bits).
Finalmente, la funcin F decidir cul de las dos posibles opciones se saque como 4 bits. F se puede
implementar de forma sencilla con puertas y puede ser la lnea de seleccin de un MUX 2x1 para elegir
entre el bit de salida de acarreo o entre la tercera lnea del sumador restador.

MATERIALES Y EQUIPO.

FPGA BASYS 3
Software VIVADO 2016
Cable USB
VHDL

METODOLOGA.
1. Describir e implementar en VHDL un circuito lgico sumador de 3 bits. El circuito sugerido para
esta practica es el siguiente.

Figura 5.- Circuito utilizado para el experimento de la prctica


2. Sintetizar, implementar y simular el circuito logico en VIVADO
3. Finalmente realizar la implementacin en la FPGA BASYS 3
4. Comparar el comportamiento del circuito descrito en VHDL con el terico en base a las sumas
binarias presentadas en el marco terico.

RESULTADOS.
Analizando el circuito lgico de la figura 5, decid analizarlo de tal manera que yo pudiera comprender
como hacer mi diseo en VHDL. Asigne seales a cada salida de las compuertas lgicas.
La asignacin de las seales quedo de la siguiente manera:

Figura 6.- Asignacin de seales para el diseo en VHDL


En base a la figura 6 se puede observar que tenemos 6 entradas (A1, A2, A3 , B1, B2 y B3) y 4 salidas
(D1, D2, D3 y D4). Obsrvese que se han asignado nombres al resultado de la operacin de cada
compuerta lgica ( son nuestras seales que actan como cables que interconectan todo).
En base al diagrama de asignacin de seales y lo descrito en el prrafo anterior escrib el siguiente
cdigo:
libraryIEEE;
useIEEE.STD_LOGIC_1164.ALL;
DECLARACIONDEPUERTOSDEENTRADAYDESALIDA
entitySumador_3_Bitis
Port(A1:inSTD_LOGIC;
B1:inSTD_LOGIC;

A2:inSTD_LOGIC;
B2:inSTD_LOGIC;
A3:inSTD_LOGIC;
B3:inSTD_LOGIC;
D1:outSTD_LOGIC;
D2:outSTD_LOGIC;
D3:outSTD_LOGIC;
D4:outSTD_LOGIC);
endSumador_3_Bit;
architectureCombinacionalofSumador_3_Bitis
AQUIDECLARAMOSLASCONEXIONESINTERNASQUEUNENLASCOMPUERTAS
SIGNALS1,S2,S3,S4,S5,S6,S7,S8,S9:STD_LOGIC:='0';
SIGNALCi,C1,C2:STD_LOGIC:='0';
AQUSEDESCRIBEELCOMPORTAMIENTODELSISTEMAYCADAOPERACINQUE
SELEASIGNAALASSEALES.
begin
S1<=A1XORB1;
S2<=A1ANDB1;
S3<=S1ANDCi;
D1<=S1XORCi;
C1<=S2ORS3;
S4<=A2XORB2;
S5<=A2ANDB2;
S6<=S4ANDC1;
D2<=S4XORC1;
C2<=S5ORS6;
S7<=A3XORB3;
S8<=A3ANDB3;
S9<=S7ANDC2;
D3<=S7XORC2;
D4<=S8ORS9;
endCombinacional;

Al sintetizar y correr la implementacin el en software VIVADO se procedi a realizar el esquemtico del


circuito descrito en VHDL . En la figura 7 se puede apreciar.

Figura 7.- Esquemtico a partir del anlisis RTL en VIVADO


Simulacin De Comportamiento
Con ayuda del software de Xilinx VIVADO (versin 2016), se genera un test bench o banco de pruebas
cuyo objetivo es demostrar la veracidad de lo que describimos (una simulacin). Por fortuna el software
hace la mayora de la tarea. La figura 8 muestra los resultados de la simulacin.
En la simulacin realice algunas pruebas de funcionamiento del circuito con algunas sumas ya dadas
anteriormente en las figuras 2 ,3 y 4 . La primera simulacin fue con todo en cero lgico.

Figura 8.- Resultados de la simulacin en VIVADO

Estos fueron los valores obtenidos por la simulacin siendo la suma como (Ax + Bx)
La suma1 (000 + 000) = 0000
La suma2 (010 + 101) = 0111
La suma3 (110 + 111) = 1101
La suma4 (011 + 010) = 0101
La suma5 (011 + 110) = 1001
La suma6 (110 + 011) = 1001
La suma7 (110 + 101) = 1011
Se puede observar que los valores obtenidos de las salidas respecto a las entradas concuerdan
perfectamente con los resultados de las sumas en las figuras 2,3y 4, sabiendo esto procedemos a la
implementacin fsica del sistema.
Implementacin en la FPGA BASYS 3
Para la implementacin fsica del sistema se escogieron los siguientes puertos fsicos.
A1 = T2 ( suiche)
A2 = R3 ( suiche)
A3 = W2 ( suiche)
B1 = U1

( suiche)

B2 = T1

( suiche)

B3 = R2

( suiche)

D1 = P3 (LED)
D2 = N3 (LED)
D3 = P1 (LED)
D4 = L1 (LED)
La salida fue acomodada de tal manera que se pueda visualizar el bit menos significativo a la izquierda yel
mas significativo a la derecha. De igual manera , las entradas fueros acomodadas en el mismo orden (Ax
juntas y Bx juntas).

Figura 9.- Suiches y Leds configurados para el sumador


Entindase por 1 o 0 los estados lgicos que adquieren las entradas cuando los interruptores conmutan con
la alimentacin o tierra, respectivamente (prende o apaga el Led).
Las siguientes figuras muestran los resultados prcticos.

Figura 10.- Suiches configurados para la suma1


Resultado:
La suma1 (000 + 000) = 0000

Figura 11.- Suiches configurados para la suma2


Resultado:
La suma2 (010 + 101) = 0111

Figura 12.- Suiches configurados para la suma3


Resultado:
La suma3 (110 + 111) = 1101

Figura 13.- Suiches configurados para la suma4


Resultado:
La suma4 (011 + 010) = 0101

Figura 14.- Suiches configurados para la suma5


Resultado:
La suma5 (011 + 110) = 1001

Figura 15.- Suiches configurados para la suma6


Resultado:
La suma6 (110 + 011) = 1001

Figura 16.- Suiches configurados para la suma7


Resultado:
La suma7 (110 + 101) = 1011
Los resultados tericos, simulados y prcticos concuerdan perfectamente, lo cual quiere decir que se
diseo correctamente el circuito lgico en VHDL

CONCLUSIONES.

En base a los resultados tericos, simulados y prcticos concuerdan perfectamente, lo cual quiere
decir que se diseo correctamente el circuito lgico en VHDL

Se cumpli el objetivo de la practica.

BIBLIOGRAFA.
Marcos Snchez-lez. (Julio 2014). Introduccin a la Programacin en VHDL.

Facultad de Informtica Universidad Complutense de Madrid: Universidad


Complutense de Madrid.
http://educativa.catedu.es/44700165/aula/archivos/repositorio/4750/4923/html/7_su
madores.html
http://www.esi.uclm.es/www/isanchez/teco0910/sr.pdf
ANEXO.
--Constrs
set_property PACKAGE_PIN T2 [get_ports A1]
set_property PACKAGE_PIN P3 [get_ports D1]
set_property PACKAGE_PIN N3 [get_ports D2]
set_property PACKAGE_PIN P1 [get_ports D3]
set_property PACKAGE_PIN L1 [get_ports D4]
set_property IOSTANDARD LVCMOS33 [get_ports D3]
set_property IOSTANDARD LVCMOS33 [get_ports D4]
set_property IOSTANDARD LVCMOS33 [get_ports B1]
set_property IOSTANDARD LVCMOS33 [get_ports B2]
set_property IOSTANDARD LVCMOS33 [get_ports B3]
set_property IOSTANDARD LVCMOS33 [get_ports A1]
set_property IOSTANDARD LVCMOS33 [get_ports D1]
set_property IOSTANDARD LVCMOS33 [get_ports A2]
set_property IOSTANDARD LVCMOS33 [get_ports D2]
set_property IOSTANDARD LVCMOS33 [get_ports A3]
set_property PACKAGE_PIN R3 [get_ports A2]
set_property PACKAGE_PIN W2 [get_ports A3]
set_property PACKAGE_PIN U1 [get_ports B1]
set_property PACKAGE_PIN T1 [get_ports B2]
set_property PACKAGE_PIN R2 [get_ports B3]

You might also like