Biblioteca VHDL para Circuitos Digitais -
Packages VHDL para uso em Projetos de Circuitos Digitais
 Todos Classes Namespaces Variáveis
portas.vhdl

Exemplo de uso de portas com/sem atraso

Para compilar e visualizar a simulação, use o procedimento de compilação, acrescentando a opção '-P/home/html/inf/nicolui/grad/ci068/geral/VHDL/lib' em cada comando 'ghdl'

1 -------------------------------------------------------------
2 -- PACKAGE ci068.portas
3 -- Exemplo de uso de portas lógicas com/sem atraso
4 -------------------------------------------------------------
5 library IEEE;
6 use IEEE.std_logic_1164.all;
7 --
8 library ci068;
9 use ci068.portas.all;
10 
11 entity circuito is
12  port( a, b, c: in std_logic;
13  f: out std_logic );
14 end circuito;
15 
16 architecture comportamento_circuito of circuito is
17  signal s1,s2,s3 : std_logic;
18 
19  begin
20  comp1 : xor2 port map (a, b, s1);
21  comp2 : or2 generic map (delay => 10 ns ) port map (s1, c, s2);
22  comp3 : inv generic map (delay => 5 ns ) port map (s2, s3);
23  comp4 : and2 generic map (delay => 10 ns ) port map (s3, b, f);
24  end comportamento_circuito;
25 
26 -----------------------------------------------
27 library IEEE;
28 use IEEE.std_logic_1164.all;
29 
30 entity teste is
31 end teste;
32 
33 architecture simulacao of teste is
34  component circuito
35  port( a,b,c: in std_logic;
36  f: out std_logic );
37  end component;
38 
39  signal a_in, b_in, c_in: std_logic;
40  signal f_out: std_logic;
41 begin
42  circ: circuito port map ( a_in, b_in, c_in, f_out);
43 
44  a_in <= '0',
45  '1' after 50 ns, '0' after 100 ns,
46  '1' after 150 ns, '0' after 200 ns;
47  b_in <= '1',
48  '0' after 60 ns, '0' after 120 ns,
49  '1' after 160 ns, '0' after 220 ns;
50  c_in <= '0',
51  '1' after 70 ns, '0' after 140 ns,
52  '0' after 170 ns, '0' after 240 ns;
53 end simulacao;
54 
55 -----------------------------------------------