Tarea VHDL 2
Tarea VHDL 2
DE SAN MARCOS
Universidad del Perú - Decana de América
TAREA VHDL 2
CÓDIGO: 14190133
LIMA – PERÚ
5.17 Considere el codigo 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 codigo constituye
o no un buen estilo para la funcionalidad que representa.
LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
ENTITY problem IS
PORT( Input : IN STD_LOGIC_VECTOR(3 DOWNTO 0);
END INTERIOR;
El circuito muestra una manera eficiente de representar circuitos de varias salidas que
dependen de varias variables de entrada, esto mediante su tabla de verdad. En este caso tanto
salida y entrada están representados por vectores de 4 bits (3 downto 0).
Pregunta 8:
5.11 Escriba el código VHDL para especificar el circuito de la figura
Por lo tanto se creará un proyecto en QuartusII el cual tendrá 4 alrchivos de VHDL, los tres
primeros pertenecen a cada bloque de diseño que se va a emplear y el 4° archivo será donde
se juntarán los tres bloques básicos para formar una sola “Entity” que representa al circuito
completo.
Para la última hoja de código se crea una “Entity” con todas las entradas y salidas del circuito.
La integración de los bloques de diseño se hará en “Architecture” donde se definirán las
señales internas (“Signal”) que usaremos para conectar los 3 bloques creados previamente.
A estas señales les llamaremos “Cables” y serán necesarias 8 en total por lo que en el código
serán identificadas como: cable1, cable2, cable3, cable4, cable5, cable6, cable7, cable8.
Para empezar a diseñar la arquitectura del circuito se debe ir llamando a cada bloque que
vamos a usar mediante el código:
Entity work.”nombre del bloque a usar”(behavioral)
Y luego se procede a realizar las conexiones usando el comando “port map” y seguidamente
nombrando cada terminal del bloque que estamos usando empezando por sus entradas y
luego sus salidas. Ejm:
Para nombrar las entradas y salidas del bloque que estamos usando se debe tomar en cuenta
el orden que les dimos cuando fueron creados.
x → x0
y → y0
ci → cin
S → cable5
co →cable1
La última hoja de código, que representa el circuito sería:
library ieee;
use ieee.std_logic_1164.all;
u1:entity work.FA_Y_negado(behavioral)
port map (x0,y0,cin,cable5,cable1);
u2:entity work.FA_Y_negado(behavioral)
port map (x1,y1,cable1,cable6,cable2);
u3:entity work.FA_Y_negado(behavioral)
port map (x2,y2,cable2,cable7,cable3);
u4:entity work.FA_Y_negado(behavioral)
port map (x3,y3,cable3,cable8,cable4);
u5:entity work.compuerta_nor(behavioral)
port map (cable5,cable6,cable7,cable8,z);
u6:entity work.exor(behavioral)
port map (cable4,cable3,v);
n<= cable8;
end architecture behavioral;