sumador de 3 bits en vhdl

15
Nombre de la Asignatura LABORATORIO DE SISTEMAS DIGITALES I Nombre de la Práctica SUMADOR DE 3 BITS EN VHDL Número de Práctica 6 Fecha de entrega 16/04/2016 Profesor Dr. Fortino Duración 2Hrs INTEGRANTES: Jesus Ismael Suárez Soto INTRODUCCIÓN. Un sumador es un circuito que realiza la suma de dos palabras binarias. Es distinta de la operación OR, con la que no nos debemos confundir. La operación suma de números binarios tiene la misma mecánica que la de números decimales. Por lo que en la suma de números binarios con dos o más bits, puede ocurrir el mismo caso que podemos encontrar en la suma de números decimales con varias cifras: cuando al sumar los dos primeros dígitos se obtiene una cantidad mayor de 9, se da como resultado el dígito de menor peso y “me llevo" el anterior a la siguiente columna, para sumarlo allí. En la suma binaria de los dígitos 1 + 1, el resultado es 0 y me llevo 1, que debo sumar en la columna siguiente y pudiéndose escribir 10, solamente cuando sea la última columna a sumar. A este bit más significativo de la operación de sumar, se le conoce en inglés 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 operación sería: Tabla 1.-Tabla de verdad de un Semisumador. ENTRADAS SALIDAS A B C S 0 0 0 0 0 1 0 1 1 0 0 1 1 1 1 0

Upload: ismael-suarez

Post on 09-Jul-2016

1.169 views

Category:

Documents


15 download

DESCRIPTION

Sumador de 3 Bits en VHDL descrito con puras compuertas.Es un reporte de practica.

TRANSCRIPT

Nombre de la Asignatura LABORATORIO DE SISTEMAS DIGITALES I

Nombre de la Práctica SUMADOR DE 3 BITS EN VHDL

Número de Práctica 6 Fecha de entrega 16/04/2016

Profesor Dr. Fortino Duración 2Hrs

INTEGRANTES:

Jesus Ismael Suárez Soto

INTRODUCCIÓN.

Un sumador es un circuito que realiza la suma de dos palabras binarias. Es distinta de la operación OR, conla que no nos debemos confundir. La operación suma de números binarios tiene la misma mecánica que lade números decimales.

Por lo que en la suma de números binarios con dos o más bits, puede ocurrir el mismo caso que podemosencontrar en la suma de números decimales con varias cifras: cuando al sumar los dos primeros dígitos seobtiene una cantidad mayor de 9, se da como resultado el dígito de menor peso y “me llevo" el anterior a lasiguiente columna, para sumarlo allí.

En la suma binaria de los dígitos 1 + 1, el resultado es 0 y me llevo 1, que debo sumar en la columnasiguiente y pudiéndose escribir 10, solamente cuando sea la última columna a sumar. A este bit mássignificativo de la operación de sumar, se le conoce en inglés como carry (acarreo), equivalente al “mellevo una” de la suma decimal.

Semisumador. Es un dispositivo capaz de sumar dos bits y dar como resultado la suma de ambos y elacarreo. La tabla de verdad correspondiente a esta operación sería:

Tabla 1.-Tabla de verdad de un Semisumador.ENTRADAS SALIDAS

A B C S

0 0 0 0

0 1 0 1

1 0 0 1

1 1 1 0

OBJETIVO.

El presente Trabajo práctico consta en especificar, diseñar, 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 descripción de hardware

VHDL

MARCO TEÓRICO.

SUMADOR RESTADOR DE 3 BITS EN BINARIO NATURAL.

Sabemos que a un sumador de n bits, haciéndole un pequeño cambio, lo podemos convertir ensumador y restador. Simplemente se complementan a 1 los bits del sustraendo y además se añade un 1por la entrada de acarreo. La suma de dos números de n bits necesitan n+1 bits para poder expresarse sinoverflow.

Figura 1.- Sumador de 3 bits.

Una señal 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 número de 3 bits en complemento a 2 (A 2 , A 1 , A 0 ), donde A 2 es el bit de signo. Sea B unnúmero de 3 bits en complemento a 2 (B 2 , B 1 , B 0 ), donde B 2 es el bit de signo. Vamos a realizar unsumador restador para A y B, basándonos en la idea del sumador restador binario.

El rango de números representados es [-4, +3], si bien el rango de posibles resultados es [-8,+6], quenecesita 4 bits en complemento a 2.

Vamos a considerar todos los casos posibles, teniendo en cuenta que A puede ser positivo o negativo, queB puede ser positivo o negativo y que podemos sumar o restar, resultan 8 casos

• Caso 1. Sumar un número positivo con otro positivo. Ej: +3 +2 = +5

• Caso 2. Sumar un número positivo con otro negativo. Ej: +3 + (-2) = +1

• Caso 3. Sumar un número negativo con otro positivo. Ej -2 + (+3) = +1

• Caso 4. Sumar un número negativo con otro negativo. Ej: -2 + (-3) = -5

• Caso 5. Restar un número positivo de otro positivo. Ej: +2- (+3) = -1

• Caso 6. Restar un número negativo de otro positivo. Ej: +3 - (-2) = +5

• Caso 7. Restar un número positivo de otro negativo. Ej: -2 – (+3) = -5

• Caso 8. Restar un número 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 representación con 3bits [-4,+3], mientras que en los restantes casos (2, 3, 5 y 8) sólo se necesitan 3 bits, ya que el resultadoestá dentro del citado margen de representación.

Veámoslo en binario en cada caso.

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

En el caso en que sólo se necesitan 3 bits, para expresar el resultado con 4 bits, hay que hacer unaEXTENSIÓN 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 números de distintos signo o cuando se restan dos números delmismo signo, se necesitan 3 bits y en el caso contrario se necesitan 4 bits.

La tabla anterior también 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 extensión de signo(necesita 3 bits), mientras que F=1 significa que la salida de acarreo es el 4o bits (necesita 4 bits).

Finalmente, la función F decidirá cuál de las dos posibles opciones se saque como 4 bits. F se puedeimplementar de forma sencilla con puertas y puede ser la línea de selección de un MUX 2x1 para elegirentre el bit de salida de acarreo o entre la tercera línea del sumador restador.

MATERIALES Y EQUIPO.

FPGA BASYS 3 Software VIVADO 2016 Cable USB VHDL

METODOLOGÍA.

1. Describir e implementar en VHDL un circuito lógico sumador de 3 bits. El circuito sugerido paraesta practica es el siguiente.

Figura 5.- Circuito utilizado para el experimento de la práctica

2. Sintetizar, implementar y simular el circuito logico en VIVADO

3. Finalmente realizar la implementación en la FPGA BASYS 3

4. Comparar el comportamiento del circuito descrito en VHDL con el teórico en base a las sumasbinarias presentadas en el marco teórico.

RESULTADOS.

Analizando el circuito lógico de la figura 5, decidí analizarlo de tal manera que yo pudiera comprender como hacer mi diseño en VHDL. Asigne señales a cada salida de las compuertas lógicas.

La asignación de las señales quedo de la siguiente manera:

Figura 6.- Asignación de señales para el diseño 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). Obsérvese que se han asignado nombres al resultado de la operación de cadacompuerta lógica ( son nuestras señales que actúan como cables que interconectan todo).

En base al diagrama de asignación de señales y lo descrito en el párrafo anterior escribí el siguientecódigo:

library IEEE;

use IEEE.STD_LOGIC_1164.ALL;

­­DECLARACION DE PUERTOS DE ENTRADA Y DE SALIDA

entity Sumador_3_Bit is

    Port ( A1 : in STD_LOGIC;

           B1 : in STD_LOGIC;

           A2 : in STD_LOGIC;

           B2 : in STD_LOGIC;

           A3 : in STD_LOGIC;

           B3 : in STD_LOGIC;

           D1 : out STD_LOGIC;

           D2 : out STD_LOGIC;

           D3 : out STD_LOGIC;

           D4 : out STD_LOGIC);

end Sumador_3_Bit;

architecture Combinacional of Sumador_3_Bit is

­­AQUI DECLARAMOS LAS CONEXIONES INTERNAS QUE UNEN LAS COMPUERTAS

SIGNAL S1, S2, S3, S4, S5, S6, S7, S8, S9 : STD_LOGIC:='0';

SIGNAL Ci, C1, C2 : STD_LOGIC:='0';

­­AQUÍ SE DESCRIBE EL COMPORTAMIENTO DEL SISTEMA Y CADA OPERACIÓN QUE ­­SE LE ASIGNA A LAS SEÑALES. 

begin

S1 <= A1 XOR B1;

S2 <= A1 AND B1;

S3 <= S1 AND Ci;

D1 <= S1 XOR Ci;

C1 <= S2 OR S3;

S4 <= A2 XOR B2;

S5 <= A2 AND B2;

S6 <= S4 AND C1;

D2 <= S4 XOR C1;

C2 <= S5 OR S6;

S7 <= A3 XOR B3;

S8 <= A3 AND B3;

S9 <= S7 AND C2;

D3 <= S7 XOR C2;

D4 <= S8 OR S9;

end Combinacional;

Al sintetizar y correr la implementación el en software VIVADO se procedió a realizar el esquemático delcircuito descrito en VHDL . En la figura 7 se puede apreciar.

Figura 7.- Esquemático a partir del análisis RTL en VIVADO

Simulación De Comportamiento

Con ayuda del software de Xilinx VIVADO (versión 2016), se genera un test bench o banco de pruebascuyo objetivo es demostrar la veracidad de lo que describimos (una simulación). Por fortuna el softwarehace la mayoría de la tarea. La figura 8 muestra los resultados de la simulación.

En la simulación realice algunas pruebas de funcionamiento del circuito con algunas sumas ya dadasanteriormente en las figuras 2 ,3 y 4 . La primera simulación fue con todo en cero lógico.

Figura 8.- Resultados de la simulación en VIVADO

Estos fueron los valores obtenidos por la simulación 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 concuerdanperfectamente con los resultados de las sumas en las figuras 2,3y 4, sabiendo esto procedemos a laimplementación física del sistema.

Implementación en la FPGA BASYS 3

Para la implementación física del sistema se escogieron los siguientes puertos físicos.

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

Entiéndase por 1 o 0 los estados lógicos que adquieren las entradas cuando los interruptores conmutan con la alimentación o tierra, respectivamente (prende o apaga el Led).

Las siguientes figuras muestran los resultados prácticos.

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 teóricos, simulados y prácticos concuerdan perfectamente, lo cual quiere decir que se diseño correctamente el circuito lógico en VHDL

CONCLUSIONES.

En base a los resultados teóricos, simulados y prácticos concuerdan perfectamente, lo cual quiere decir que se diseño correctamente el circuito lógico en VHDL

Se cumplió el objetivo de la practica.

BIBLIOGRAFÍA.

Marcos Sánchez-Élez. (Julio 2014). Introducción a la Programación en VHDL.Facultad de Informática Universidad Complutense de Madrid: UniversidadComplutense de Madrid.

http://educativa.catedu.es/44700165/aula/archivos/repositorio/4750/4923/html/7_sumadores.html

http://www.esi.uclm.es/www/isanchez/teco0910/sr.pdf

ANEXO.

--Constrsset_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]