Sie sind auf Seite 1von 10

UNIVERSIDAD NACIONAL MAYOR

DE SAN MARCOS
Universidad del Perú - Decana de América

FACULTAD DE INGENIERÍA ELECTRÓNICA Y


ELÉCTRICA

E.P de INGENIERÍA ELECTRÓNICA

TAREA VHDL 2

PROFESOR: ALARCÓN MATUTTI RUBÉN

ALUMNO: SONCCO CORNEJO MIGUEL ANGEL

CÓDIGO: 14190133

CURSO: CIRCUITOS DIGITALES I

TEMA: TAREA VHDL 2

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);

Output : OUT STD_LOGIC_VECTOR(3 DOWNTO 0));


END problem;

ARCHITECTURE LogicFunc OF problem IS


BEGIN

WITH Input select


Output <= "0001" when "0101",

"0010" when "0110",

"0011" when "0111",

"0010" when "1001",

"0100" when "1010",

"0110" when "1011",

"0011" when "1101",

"0110" when "1110",

"1001" when "1111",


"0000" when OTHERS;

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

Para describir dicho circuito se empleará 3 bloques de diseño diferentes:


-La compuerta OR Exclusivo
-La compuerta NOR
-Se tomará cada Full Adder con su respectivo NOT (en la entrada Y) como un bloque, el cual se
empleará 4 veces durante el diseño.

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.

Creamos la compuerta NOR de 4 entradas:


En otra hoja de código creamos el XOR:

Luego creamos el Full Adder(1 bit) con la entrada Y negada:

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:

En este caso creamos el primer Full adder (FA_Y_negado)

Para nombrar las entradas y salidas del bloque que estamos usando se debe tomar en cuenta
el orden que les dimos cuando fueron creados.

La correspondencia de variables seria:

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;

entity ckto_comparador is port(


x0,x1,x2,x3,y0,y1,y2,y3,cin:in std_logic;
v,n,z: out std_logic);
end ckto_comparador;

architecture behavioral of ckto_comparador is


signal cable1,cable2,cable3,cable4,cable5,cable6,cable7,cable8: std_logic;
begin

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;

Das könnte Ihnen auch gefallen