Sumador de 3 Bits en VHDL
Short Description
Descripción: Sumador de 3 Bits en VHDL descrito con puras compuertas. Es un reporte de practica....
Description
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
Profesor
Fecha de entrega
Dr. Fortino
Duración
16/04/2016 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
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 en sumador y restador. Simplemente se complementan a 1 los bits del sustraendo y además se añade un 1 por la entrada de acarreo. La suma de dos números de n bits necesitan n+1 bits para poder expresarse sin overflow.
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 un nú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 un sumador 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], 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 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 3 bits [-4,+3], mientras que en los restantes casos (2, 3, 5 y 8) sólo se necesitan 3 bits, ya que el resultado está 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 una EXTENSIÓ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 del mismo 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 puede implementar de forma sencilla con puertas y puede ser la línea de selección de un MUX 2x1 para elegir entre 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 para esta 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 sumas binarias 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 cada compuerta 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 siguiente có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
View more...
Comments