]> AND Private Git Repository - blast.git/blob - logical_AND_3.vhd
Logo AND Algorithmique Numérique Distribuée

Private GIT Repository
moved generate vhdl methods
[blast.git] / logical_AND_3.vhd
1 -------------------------------------------------------------------------------
2 --
3 --  File          : logical_AND_3.vhd
4 --  Related files : 
5 --
6 --  Author(s)     : stephane Domas (sdomas@univ-fcomte.fr)
7 --
8 --  Creation Date : 2017/10/16
9 --
10 --  Description   : This IP does a logical AND on three inputs.
11 --  
12 --
13 --  Note          :
14 --
15 -------------------------------------------------------------------------------
16
17 library IEEE;
18 use IEEE.std_logic_1164.all;
19 use IEEE.numeric_std.all;
20
21 entity logical_AND_3 is
22   port(
23     clk          : in  std_logic;
24     reset        : in  std_logic;
25     data1_in      : in  std_logic;
26     data1_in_enb  : in  std_logic;
27     data2_in      : in  std_logic;
28     data2_in_enb  : in  std_logic;
29     data3_in      : in  std_logic;
30     data3_in_enb  : in  std_logic;
31     
32     data_out     : out std_logic;
33     data_out_enb : out std_logic  -- the control signal, common to all output
34     );
35 end logical_AND_3;
36
37
38 architecture rtl of logical_AND_3 is
39
40 begin
41
42   and_process : process (clk, reset)
43   begin
44     if reset = '1' then
45
46       data_out <= '0';
47       data_out_enb    <= '0';
48
49     elsif rising_edge(clk) then
50
51       data_out <= '0';
52       data_out_enb    <= '0';
53       
54       if data1_in_enb = '1' and data2_in_enb = '1' and data3_in_enb = '1' then
55         
56         data_out <= data1_in and data2_in and data3_in;
57         data_out_enb <= '1';
58         
59       end if;
60     end if;
61
62   end process and_process;
63
64 end rtl;
65