Decodificador Vhdl
Enviado por cfos • 9 de Octubre de 2012 • 326 Palabras (2 Páginas) • 733 Visitas
INFORMÁTICA INDUSTRIAL.
3º INGENIERÍA TÉCNICA INDUSTRIAL. ESPECIALIDAD ELECTRÓNICA
BOLETÍN VHDL.
1. Dado un decodificador de dos entradas (DEC 2:4), dar la descripción estructural, la descripción de flujo de datos y
la descripción del comportamiento en VHDL. Describir también la simulación en VHDL.
El circuito anterior responde al decodificador propuesto en el enunciado. La descripción estructural en VHDL de
la entidad será:
01 entity DEC24 is
02 port ( a,b: in std_logic;
03 O: out std_logic_vector(3 downto 0));
04 end DEC24;
En primer lugar veamos la descripción estructural de la arquitectura:
01 architecture A of DEC24 is
02 component AND2
03 port (I1,I2: in std_logic;
04 O: out std_logic);
05 end component;
06 component INV
07 port (I: in std_logic;
08 O: out std_logic);
09 end component;
10 signal na,nb: std_logic;
11 begin
12 U1: INV port map (a,na);
13 U2: INV port map (b,nb);
14 U3: AND2 port map (na,nb,O(0));
15 U4: AND2 port map (na,b,O(1));
16 U5: AND2 port map (a,nb,O(2));
17 U6: AND2 port map (a,b,O(3));
18 end A;
Esta visión estructural se basa en la descripción de 2 componentes: la puerta AND y el inversor. Veamos la
descripción de la entidad y arquitectura de estos componentes, que suponen otro nivel en la jerarquía de nuestro
diseño.
01 entity AND2 is
02 port (I1,I2: in std_logic;
03 O: out std_logic);
04 end AND2;
05 architecture A of AND2 is
06 begin
07 O <= I1 and I2;
08 end A;
01 entity INV is
02 port (I: in std_logic;
03 O: out std_logic);
04 end INV;
05 architecture A of INV is
06 begin
07 O <= not I;
08 end A;
La descripción del flujo de datos será:
01 architecture A2 of DEC24 is
02 begin
03 O <= “0001” when a=’0’ and b=’0’ else
04 “0010” when a=’0’ and b=’1’ else
05 “0100” when a=’1’ and b=’0’ else
a
b
O(0)
O(1)
O(2)
O(3)
06 “1000”;
07 end A2;
Y la descripción del comportamiento será:
01 architecture A3 of DEC24 is
02 begin
03 process (a,b)
04 variable c: std_logic_vector(1 downto 0);
05 begin
06 c(1):= a;
07 c(0):= b;
08 case c is
09 when “00” => O <= “0001”;
10 when “01” => O <= “0010”;
11 when “10” => O <= “0100”;
12 when others => O <= “1000”;
13 end case;
14 end process;
15 end A3;
Por último,
...