PRACTICA 6: CIRCUITOS ARITMETICOS: SUMADORES Y RESTADORES.

Documentos relacionados
4. SUMADORES EN BINARIO PURO (I)

2. Sumadores. Diagrama. Donde a y b son los bits a sumar, S el. resultado de la suma y C el acarreo generado. b EB. Circuito. Tabla de verdad.

Sumadores. Tipos de sumadores: Half-adder. Full-Adder. Carry-Look-Ahead. Carry-select.

Sistemas Digitales - Examen temas 1, 2 y 3 - (6 de Abril 2016)

Sistemas Digitales - Examen temas 1, 2 y 3 - (6 de Abril 2016)

VHDL. Lenguaje de descripción hardware

Diseño de Sistemas Electrónicos Digitales Avanzados

Sistemas Electrónicos Digitales Curso de adaptación al Grado

Código concurrente en VHDL [5]

INGENIERÍA DE COMPUTADORES 3. Solución al examen de Junio 2013, Segunda Semana

INGENIERÍA DE COMPUTADORES III. Solución al Ejercicio de Autocomprobación 4

Figura 1: Suma binaria

INGENIERÍA DE COMPUTADORES 3. Solución al Trabajo Práctico - Septiembre de 2016

INGENIERÍA DE COMPUTADORES 3. Solución al examen de Septiembre 2016

Circuitos Lógicos Combinatorios. Ing. Jorge Manrique 2004 Sistemas Digitales 1

INGENIERÍA DE COMPUTADORES 3. Solución al examen de Junio 2015, Segunda Semana

PRUEBA DE ENTRADA NOMBRE : FECHA: / /2005 CÓDIGO : LAB. Nº: 4 HORARIO: H-441

INGENIERÍA DE COMPUTADORES III. Solución al Ejercicio de Autocomprobación 8

INGENIERÍA DE COMPUTADORES III. Solución al Ejercicio de Autocomprobación 10

El código concurrente esta destinado únicamente para el diseño de circuitos combinacionales.

INGENIERÍA DE COMPUTADORES 3. Solución al Trabajo Práctico - Junio de 2016

INGENIERÍA DE COMPUTADORES III. Solución al Ejercicio de Autocomprobación 3

PRÁCTICA: LENGUAJE VHDL

6. Codificadores. Electrónica Digital. Tema

INGENIERÍA DE COMPUTADORES III. Solución al examen de Septiembre 2014

Multiplicador Digital

INGENIERÍA DE COMPUTADORES 3. Solución al Trabajo Práctico - Junio de 2017

VHDL. Very. High. speed integrated circuit Hardware. Description. Language. Digital II Ingeniería Electrónica. Rosa Corti

CONTADORES. Definición. Diseño y analisis de un contador binario hacia arriba de 3 bits con flip-flops JK. Otros contadores típicos.

Tema 4 - Bloques combinacionales

Titulación: Ingeniería Informática Asignatura: Fundamentos de Computadores. Bloque 3: Sistemas secuenciales Tema 9: Módulos secuenciales básicos

INTRODUCCIÓN AL LENGUAJE VHDL PARA CIRCUITOS

CIRCUITOS MULTIPLEXORES Y DEMULTIPLEXORES

Recursos y Metodologías. Función. Programas

Práctica I Modelado y simulación de una máquina expendedora de refrescos

Practica No. 8 Introducción a las Máquinas de Estados. 1. En la figura 1 se muestra el comportamiento de un robot que evade obstáculos.

PRACTICA 3. Lenguaje de descripción de hardware VHDL.

PRÁCTICAS DE CIRCUITOS LÓGICOS PRÁCTICA 8

INGENIERÍA DE COMPUTADORES 3. Solución al examen de Junio 2017, Primera Semana

Circuitos electrónicos digitales

4.5. Procedimiento de síntesis

5. Decodificadores. Salida _1= A A A A = m = M ... Electrónica Digital. Tema

Comparador de 1 bit Tabla de verdad y circuito lógico A B A > B A = B A < B

ARQUITECTURA DE COMPUTADORES INFORME DE LABORATORIO Nº 2 CÁRDENAS MOYA JOSÉ GABRIEL TUTOR ING. HAIMER GUTIERREZ

A (A3, A2, A1, A0) B (B3, B2, B1, B0) A (A0, A1, A2, A3) B (B0, B1, B2, B3) 0 to 3. 3 downto 0

INGENIERÍA DE COMPUTADORES III. Solución al Ejercicio de Autocomprobación 6

MICROPROCESADOR (CÓDIGO EN VHDL) TOMADO DEL LIBRO PARDO Y BOLUDA

UNIVERSIDAD CARLOS III DE MADRID. Ejercicios de VHDL. Circuitos Integrados y Microelectrónica. Luis Entrena. Celia López.

Practica No. 5 Diseño de un Multiplicador

6.1. Operadores aritméticos en binario natural

Tipos de datos en VHDL

INGENIERÍA DE COMPUTADORES III. Solución al Ejercicio de Autocomprobación 1

SUMADORES Y COMPARADORES

Circuitos electrónicos digitales. Unidades Aritméticas Lógicas. Departamento de Tecnología Electrónica Universidad de Sevilla

INGENIERÍA DE COMPUTADORES 3. Solución al Trabajo Práctico - Junio de 2014

Introducción al VHDL

SISTEMAS DIGITALES CONTROL 1 (31/3/2014) APELLIDOS DNI: Firma NOMBRE MODELO DE EXAMEN A

MAQUINA DE ESTADO FINITO (FSM) Autómata finito

Simulación con un banco de pruebas VHDL - test bench.

Unidad Aritmético Lógica A.G.O. All Rights Reserved

ANALISIS Y DISEÑO DE CIRCUITOS ARITMÉTICOS

Practica No. 5 Diseño de un Multiplicador

INFORMÁTICA INDUSTRIAL. 3º INGENIERÍA TÉCNICA ELECTRÓNICA TRABAJO TUTORADO DE VHDL. Primer Cuatrimestre Curso 2005/2006.

Subsistemas aritméticos y lógicos. Tema 8

Arquitectura de Computadoras para Ingeniería

INGENIERÍA DE COMPUTADORES 3. Solución al examen de Junio 2014, Primera Semana

Simulación avanzada con TestBench en HDL. Ing. Andrés Miguel Airabella. Ing. Facundo Aguilera.

1. Módulo de desarrollo Spartan 3 STARTER KIT con un FPGA xc3s200 ft Software de diseño XILINX ISE versión 10.1

Sesión 1: Introducción al lenguaje VHDL. S1 1 Laboratorio de Estructura de Computadores Curso 04 / 05

Sumador completo de un bit - Versión VHDL Sintético

Universidad Autónoma de Querétaro Facultad de Ingeniería

Diseño Lógico I Facultad de Ciencias Exactas y Tecnología UNT. LENGUAJES DE DESCRIPCIÓN DE HARDWARE

Subsistemas aritméticos y lógicos. Tema 10

SECUENCIA: A BASE DE LOS 3 TIPOS DE F/F

4.3. Lenguaje VHDL Declaración de Packages

VHDL: Código Secuencial. Arquitectura del Computador 2017

DISEÑODE SISTEMAS ELECTRÓNICOS DIGITALES AVANZADOS.

INDICE. Definición de codificador Tipos de codificadores. Ejercicios. Referencias. Codificadores sin prioridad Codificadores con prioridad

Laboratorio de Arquitectura de Computadoras

Tema 3 - Modelado con HDL a nivel RTL

Laboratorio de Arquitectura de Computadoras

Estructura de VHDL. Sistemas Digitales Avanzados. Universidad Técnica Particular de Loja Prof: Diego Barragán Guerrero. Oct Feb.

4.4. Métodos de diseño

^6+1 2^5+1 2^2+1 2^1+1 2^ ^6+1 2^0-65.

PROBLEMA VHDL. 7 dig1. dig2. Entradas : Señales a[3..0] y b [3..0] en código GRAY Salida : Señales Dig1[6..0] y Dig2[6..0] para los visualizadores

Los multiplexores son dispositivos de varias entradas que permiten seleccionar la señal que llega a una de éstas y transmitirla a la salida.

Integrantes del equipo: Revisión Teórica

Pipeline. Diseño de Sistemas con FPGA 1er cuatrimestre 2009 Patricia Borensztejn

Fundamentos de Computadores. Tema 5. Circuitos Aritméticos

INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE INGENIERÍA MECÁNICA Y ELÉCTRICA INGENIERÍA EN COMUNICACIONES Y ELECTRÓNICA

ELECTRÓNICA DIGITAL 24-I Determinar el valor decimal de los números expresados en Complemento a 2. (0.25 puntos).

LABORATORIO DE CIRCUITOS DIGITALES (2005-II) SEGUNDA CLASE DE VHDL

Ci A B S Co

Organización de Computadoras

VHDL. VHDL: VHSIC Hardware Description Language VHSIC: Very High Speed Integrated Circuits

SENTENCIA LOOP 1.- Implementar y simular el siguiente circuito que cuenta el número de bits 1 que ingresan

MAQUINA DE ESTADO FINITO (FSM) Autómata finito

Electrónica Digital Departamento de Electrónica VHDL. Bioingeniería Facultad de Ingeniería - UNER

Realizar un descripción VHDL de las siguientes funciones lógicas, o grupos de funciones lógicas

Transcripción:

PRACTICA 6: CIRCUITOS ARITMETICOS: SUMADORES Y RESTADORES. Sumadores básicos: Los sumadores son muy importantes no solamente en las computadoras, sino en muchos pos de sistemas digitales en los que se procesan datos numéricos. Comprender el funcionamiento de un sumador básico es fundamental en el estudio de los sistemas digitales. A con nuación se analiza el semisumador (HA: Half-Adder) y el sumador completo (FA: Full Adder). Semisumador. Recordemos las reglas básicas de la suma binaria expuestas en clase. Todas estas operaciones se realizan mediante un circuito lógico denominado semi-sumador. Un semisumador admite dos dígitos binarios en sus entradas y genera dos dígitos binarios en sus salidas: un bit de suma y un bit de acarreo. En la figura 6.1 se muestra su símbolo las operaciones que realiza, su tabla de verdad y el diagrama lógico que realiza dicha operación. Símbolo lógico de un semi-sumador. Operaciones que realiza Lógica del semisumador Figura 6.1 El semisumador Tabla de verdad de un semi-sumador. Sumador completo: El segundo po de sumador es el sumador completo. Este sumador acepta dos bits de entrada y un acarreo de entrada, y genera una salida de suma y un acarreo de salida. La diferencia principal entre un sumador completo y un semi-sumador es que el sumador completo acepta un acarreo de entrada. El símbolo lógico de un sumador completo, su tabla de verdad y la lógica necesaria para realizar la suma de 3 bits se muestra en la Figura 6.2. ING MIGUEL ANGEL PEREZ SOLANO Página 53

Símbolo lógico de un sumador completo. Tabla de verdad de un sumador completo. Lógica necesaria para realizar la suma de tres bits Figura 6.2 Sumador completo. Circuito lógico de un sumador completo (cada semi-sumador se representa por un área sombreada) El acarreo de salida es 1 cuando las dos entradas de la primera puerta XOR están a 1 o cuando las dos entradas de la segunda puerta XOR están a 1. Puede comprobar esto estudiando la Tabla de verdad. El acarreo de salida del sumador completo se ob ene por tanto del producto lógico (AND) de las entradas A y B, y del producto lógico de A B y Cin. Después se aplica la operación OR a estos dos términos, como muestra la ecuación de salida. Esta función se implementa y se combina con la lógica de la suma para formar un circuito sumador completo, como se muestra en la Figura 6.2. SUMADORES BINARIOS EN PARALELO: Para formar un sumador binario en paralelo se conectan dos o más sumadores completos. En esta prác ca aprenderemos los principios básicos de este po de sumador, de manera que podamos entender todas las funciones necesarias de entrada y salida cuando se trabaja con este po de disposi vos. Para sumar dos números binarios, se necesita un sumador completo por cada bit que tengan los números que se quieren sumar. Así, para números de dos bits se necesitan dos sumadores, para números de cuatro bits se usaran cuatro sumadores, y así sucesivamente. La salida de acarreo ING MIGUEL ANGEL PEREZ SOLANO Página 54

de cada sumador se conecta a la entrada de acarreo del sumador de orden inmediatamente superior, como se muestra en la Figura 6.3 para un sumador de 2 bits. Téngase en cuenta que se puede usar un semi-sumador para la posición menos significa va, o bien se puede poner a 0 ( erra) la entrada de acarreo de un sumador completo, ya que no existe entrada de acarreo en la posición del bit menos significa vo. En la Figura 6.3 los bits menos significa vos (LSB) de los dos números se representan como A 1 y B 1. Los siguientes bits de orden superior se representan como A 2 y B 2. Los tres bits de suma son Σ 1, Σ 2 y Σ 3. Observe que el acarreo de salida del sumador completo de más a la izquierda se convierte en el bit más significa vo (MSB) en la suma Σ 3. Figura 6.3 Sumador de 2 bits 6.1 EJERCICIOS RESUELTOS 1.- Modelar (por flujo de datos) un circuito semisumador, en donde las variables de entrada son. A y B y las de salida es Cout y Suma. Sinte zarlo, simularlo e implementarlo. Solución. en ty SEMISUMADOR is Port ( A : in STD_LOGIC; B : in STD_LOGIC; Cout : out STD_LOGIC; SUMA : out STD_LOGIC); end SEMISUMADOR; architecture Behavioral of SEMISUMADOR is SUMA <= A XOR B; Cout <= A AND B; ING MIGUEL ANGEL PEREZ SOLANO Página 55

STIMULUS APLICADOR AL CIRCUITO A<= '0', '1' AFTER 100 NS, '0' AFTER 250 NS, '1' AFTER 400 NS; B<= '0', '1' AFTER 200 NS, '0' AFTER 300 NS, '1' AFTER 350 NS; FORMAS DE ONDA OBTENIDAS EN LA SIMULACION 2.- Modelar (por flujo de datos) un circuito sumador completo, en donde las variables de entrada son. A, B, Cin y las de salida son Cout y Suma. Sinte zar, simular e implementar. MODELADO DEL CIRCUITO en ty Fulladder is port ( A: in std_logic; B: in std_logic; Cin: in std_logic; Cout: out std_logic; Suma: out std_logic ); DIAGRAMA A BLOQUES end Fulladder; architecture Behavioral of Fulladder is Suma<= Cin xor A xor B; Cout<= (Cin and B) or (Cin and B) or ( a and b); STIMULUS APLICADOS AL CIRCUITO a<='1', '0' a er 100 ns, '1' a er 250 ns, '0' a er 400 ns, '1' a er 550 ns; b<='1', '0' a er 150 ns, '1' a er 300 ns, '0' a er 450 ns, '1' a er 650 ns; Cin<='0', '1' a er 300 ns; ING MIGUEL ANGEL PEREZ SOLANO Página 56

FORMAS DE ONDA OBTENIDAS EN LA SIMULACION 3.- Modelar (por flujo de datos: booleano) con 3 circuitos sumadores completos un sumador de tres-bits (u lizar instanciación haciendo un top para ello y usar el código del full_adder), en donde las variables de entrada son: A[2:0], B[2:0] y Cin y las de salida es Cout y Suma[2:0]. Sinte zarlo, simularlo e implementarlo, u lizando el archivo MasterNxys3.ucf. Solución: en ty TOP_adder3bits is Port ( sw : in STD_LOGIC_VECTOR (5 downto 0); led : out STD_LOGIC_VECTOR (3 downto 0); btn : in STD_LOGIC_VECTOR (0 downto 0)); end TOP_adder3bits; architecture Behavioral of TOP_adder3bits is signal c: std_logic_vector (1 downto 0); FA0: ENTITY work.adder4bits PORT MAP( A => sw(0), B => sw(3), Cin => btn(0), s => led(0), Cout => c(0) ); FA1: ENTITY work.adder4bits PORT MAP( A =>sw(1), B =>sw(4), Cin =>c(0), s => led(1), Cout => c(1) ); FA2:ENTITY work.adder4bits PORT MAP( A => sw(2), B => sw(5), Diagrama a bloques de un circuito ING MIGUEL ANGEL PEREZ SOLANO Página 57

Cin => c(1), s => led(2), Cout =>led(3) ); 4.- Modelar (por flujo de datos: Booleano) un sumador de 16 bits (u lizar instanciación y concatenación), en donde las variables de entrada son. X[15:0], Y[15:0] y Cin y las de salida son: Cout y Suma[15:0]. Sinte zarlo. Solución: MODELADO DEL CIRCUITO SUMADOR DE 16 BITS LIBRARY ieee ; USE ieee.std_logic_1164.all ; USE ieee.std_logic_signed.all ; ENTITY adder16 IS PORT ( Cin : IN STD_LOGIC ; X, Y : IN STD_LOGIC_VECTOR(15 DOWNTO 0) ; S : OUT STD_LOGIC_VECTOR(15 DOWNTO 0) ; Cout : OUT STD_LOGIC ); END adder16 ; ARCHITECTURE Behavior OF adder16 IS SIGNAL Sum : STD_LOGIC_VECTOR(16 DOWNTO 0) ; BEGIN Sum <= ('0' & X) + Y + Cin ; S <= Sum(15 DOWNTO 0) ; Cout <= Sum(16) ; END Behavior ; STIMULUS APLICADOS A LA SIMULACION Cin<= '0','1' a er 300 ns; x<= x"34dc", x"55bf" a er 100 ns, x"dc12" a er 200 ns, x"abcd" a er 400 ns; y<=x"c4fc", x"67bf" a er 100 ns, x"ab12" a er 200 ns, x"a78d" a er 400 ns; FORMAS DE ONDA OBTENIDAS EN LA SIMULACION ING MIGUEL ANGEL PEREZ SOLANO Página 58

5.- Modelar (por flujo de datos: booleano) un circuito semirestador, en donde las variables de entrada son. A, B, y las de salida son bout y Sub (siguiendo el algoritmo sub = A-B). Sinte zarlo, simularlo e implementarlo. Solución: MODELADO DEL CIRCUITO DIAGRAMA A BLOQUES DEL CIRCUITO en ty HalfSubstractor is Port ( a : in STD_LOGIC; b : in STD_LOGIC; sub : out STD_LOGIC; bout : out STD_LOGIC); end HalfSubstractor; architecture Behavioral of HalfSubstractor is sub<= a xor b; bout<= (not a) and b; STIMULUS APLICADOS EN LA SIMULACION a<='1', '0' a er 100 ns, '1' a er 300 ns; b<='1', '0' a er 150 ns, '1' a er 350 ns; FORMAS DE ONDA OBTENIDAS EN LA SIMULACION ING MIGUEL ANGEL PEREZ SOLANO Página 59

6.- Modelar (por flujo de datos) un circuito restador completo, en donde las variables de entrada son. A, B, Bin (borrow in) y las de salida son Bout y Sub, usar el algoritma A-B-bin. Sinte zarlo, simularlo e implementarlo. Solución: en ty FullSubstractor is Port ( sw : in STD_LOGIC_VECTOR (2 downto 0); led : out STD_LOGIC_VECTOR (1 downto 0)); end FullSubstractor; architecture Behavioral of FullSubstractor is signal a,b,bin,bout,sub:std_logic; sub<= a xor b xor bin; bout<= (b and bin) or ( not a and b) or (not a and bin); Bin<=sw(0); b<=sw(1); a<=sw(2); led(0)<= sub; led(1)<=bout; 7.- Modelar (comportamental: if then else y u lizar concatenacion) un circuito aritmé co sumador/ restador de 4 bits. Mediante una línea de control llamada sel que controlará que operación realizará el circuito, en ac vo bajo la SUMA y en ac vo alto la RESTA. Para los operandos se u lizarán las variables A, B, y para las salidas: Resultado, Cout. Esta úl ma extrae el acarreo de la suma o el préstamo de la resta del resultado. Al final, u lice el archivo MasterNexys3.ucf para implementarlo (sin instanciación), Sinte zar, Simular e impleméntelo. ING MIGUEL ANGEL PEREZ SOLANO Página 60

MODELADO DEL CIRCUITO use IEEE.STD_LOGIC_UNSIGNED.ALL; en ty sum is Port ( A : in STD_LOGIC_VECTOR (3 downto 0); B : in STD_LOGIC_VECTOR (3 downto 0); Sel : in STD_LOGIC; Cout : out STD_LOGIC; Resultado : out STD_LOGIC_vector (3 downto 0)); end sum; architecture Behavioral of sum is signal temp: std_logic_vector (4 downto 0); PROCESS (A, B, SEL, TEMP) BEGIN IF SEL = '0' THEN TEMP<= ('0'& A) + ('0'& B); RESULTADO <= TEMP (3 DOWNTO 0); Cout <= temp(4); ELSE TEMP<= ('0'& A) -('0'& B); RESULTADO <= TEMP (3 DOWNTO 0); Cout <= temp(4); END IF; END PROCESS; STIMULUS APLICADOS AL CIRCUITO A<= X"f", X"C" AFTER 100 NS, X"A" AFTER 200 NS, X"3" AFTER 300 NS; B<= X"C", X"C" AFTER 100 NS, X"7" AFTER 200 NS, X"5" AFTER 300 NS; sel <= '0', '1' a er 200 ns; ING MIGUEL ANGEL PEREZ SOLANO Página 61

FORMAS DE ONDA OBTENIDAS EN LA SIMULACION 6.2 EJERCICIOS PROPUESTOS 1.- Modelar (por flujo de datos) con 4 circuitos sumador completos (u lizar instanciación), en donde las variables de entrada son. A[3:0] y B[3:0] y las de salida es Cout y Suma[3:0], un sumador completo de 4bits. Sinte zarlo, simularlo e implementarlo, u lizando el archivo MasterNxys3.ucf ING MIGUEL ANGEL PEREZ SOLANO Página 62