Previamente Se Realiza El Codigo VHDL para Un Sumador Completo
Previamente Se Realiza El Codigo VHDL para Un Sumador Completo
LIBRARY ieee ;
USE ieee.std_logic_1164.all ;
ENTITY SUMADORCOMPLETO IS
END SUMADORCOMPLETO ;
BEGIN
END LogicFunc;
FULL ADDER 4
LIBRARY IEEE ;
USE IEEE.STD_LOGIC_1164.ALL ;
ENTITY sumador4 IS
END sumador4 ;
COMPONENT FULLADD
END COMPONENT ;
BEGIN
STAGE3 : FULLADD PORT MAP ( CIN => C3, COUT => COUT, X =>
X3,
PREGUNTA B
LIBRARY ieee ;
USE ieee.std_logic_1164.all ;
PACKAGE BLOQUESUMADORCOMPLETO IS
COMPONENT SUMADORCOMPLETO
END COMPONENT ;
END BLOQUESUMADORCOMPLETO ;
LIBRARY ieee ;
USE IEEE.STD_LOGIC_1164.ALL ;
USE work.BLOQUESUMADORCOMPLETO.all ;
ENTITY sumador41 IS
END sumador41 ;
BEGIN
STAGE3: SUMADORCOMPLETO PORT MAP ( CIN => C3, COUT => COUT,
END Structure ;
LIBRARY ieee ;
USE ieee.std_logic_1164.all ;
USE ieee.std_logic_signed.all ;
ENTITY sumador16 IS
END sumador16 ;
BEGIN
END BEHAVIOR;
PREGUNTA D
library ieee ;
USE ieee.std_logic_1164.all ;
USE ieee.std_logic_arith.all ;
ENTITY sumador161 IS
X, Y : IN SIGNED(15 DOWNTO 0) ;
END sumador161 ;
BEGIN
END BEHAVIOR;
END Structure;
--Código estructural de VHDL para el circuito comparador
*5.17 Considere el código de VHDL de la figura P5.2. Dada la relación entre las
señales IN y OUT, ¿cuál es la funcionalidad del circuito descrito por el código?
Comente si este código constituye o no un buen estilo para la funcionalidad que
representa.
LIBRARY ieee ;
USE ieee.std_logic_1164.all ;
ENTITY problem517 IS
PORT ( Input : IN STD_LOGIC_VECTOR(3 DOWNTO 0) ;
Output : OUT STD_LOGIC_VECTOR(3 DOWNTO 0) ) ;
END problem517 ;
ARCHITECTURE LogicFunc OF problem517 IS
BEGIN
WITH Input SELECT
Output <= "0001" when "0101" ,
"0010" when "0110" ,
"0011" when "0111" ,
"0100" when "1001" ,
"0110" when "1010" ,
"0011" when "1101" ,
"0110" when "1110" ,
"1001" when "1111" ,
"0000" when others ;
end LogicFunc;
El código representa un multiplicador. Multiplica los dos bits inferiores de entrada por los dos
bits superiores de entrada, produciendo la salida de cuatro bits. el estilo del código es
deficiente, porque no es evidente lo que se describe.
5.19 Derive un esquema para realizar la resta usando operandos BCD. Muestre un diagrama
de bloques para el circuito restador.
Sugerencia: la resta puede realizarse fácilmente si los operandos están en representación de
complemento a 10 ( complemento a la base). En esta representación, el dígito signo es 0 para
un número positivo y 9 para un número negativo.
La resta BCD se puede realizar utilizando la representación del complemento de 10, utilizando
un enfoque que es similar a los complementos de 2; son los complementos de radix en
sistemas numéricos donde los radices son 10 y 2, respectivamente.
Consideramos a x e y BCD los números dados en la representación del complemento de 10, de
modo que el signo (el extremo izquierdo) BCD dígito sea 0 para números positivos y 9 para
números negativos.
Luego, la operación de resta s = x - y se realiza al encontrar el complemento de y de los 10 y
sumando a x, ignorando cualquier resultado de la posición de signo-dígito.
POR EJEMPLO
X=068
Y=043
EL COMPLEMENTO A BASE 10 DE Y ES: 957
ASÍ: S´= 068 + 957 = 1025
Luego no se considera el arrastre de la posición de signo, así nuestro resultado será:
S=025
*6.18 Considere el código de VHDL de la fi gura P6.2. ¿Qué tipo de circuito representa?
Comente si el estilo de código usado es una buena elección para el circuito que representa.
El código es un decodificador dos a cuatro con una entrada enable. No es un buen estilo para
definir este decodificador. El código no es fácil de leer. Es mejor utilizar el estilo de las figuras
6.30 o 6.46.
6.26 Cree una entidad de VHDL llamada if2to4 que represente un decodificador binario que
use una instrucción if-then-else. Cree una segunda entidad llamada h3to8 que represente el
decodificador binario tres a ocho de la fi gura 6.17, con dos instancias de la entidad if2to4.
--CREAMOS UN CÓDIGO IF2OF4
library ieee ;
use ieee.std_logic_1164.all;
entity if2to4 is
port ( w : IN std_logic_vector ( 1 downto 0 );
En : IN std_logic;
y : OUT std_logic_vector ( 3 downto 0 ));
END if2to4;
ENTITY h3to8 is
port ( w: in std_logic_vector(2 downto 0);
En: in std_logic;
y: out std_logic_vector(7 downto 0);
END h3to8;
ARCHITECTURE structure of h3to8 is
signal enableTop, enableBot: std_logic;
BEGIN
enableTop <= w(2) and En;
enableBOT <= (NOT w(2)) and En;