CMX
CMX firmware code in-line documentation
 All Classes Namespaces Files Functions Variables
Readout_FIFO.vhd
Go to the documentation of this file.
1 
4 
5 
6 LIBRARY ieee ;
7 USE ieee.std_logic_1164.all;
8 USE ieee.numeric_std.all;
9 
10 use work.CMXpackage.all;
11 
12 
13 entity Readout_FIFO is
14  port(
15  rst : IN STD_LOGIC;
16  wr_clk : IN STD_LOGIC;
17  rd_clk : IN STD_LOGIC;
18  din : IN STD_LOGIC_VECTOR(1919 DOWNTO 0);
19  wr_en : IN STD_LOGIC;
20  rd_en : IN STD_LOGIC;
21  dout : OUT STD_LOGIC_VECTOR(1919 DOWNTO 0);
22  full : OUT STD_LOGIC;
23  empty : OUT STD_LOGIC
24  );
25 
26 -- Declarations
27 
28 end Readout_FIFO ;
29 --------------------------------------------------------------------------------
30 ARCHITECTURE RTL OF Readout_FIFO IS
31 --------------------------------------------------------------------------------
32 
33  component Readout_half_FIFO is
34  port (
35  rst : IN STD_LOGIC;
36  wr_clk : IN STD_LOGIC;
37  rd_clk : IN STD_LOGIC;
38  din : IN STD_LOGIC_VECTOR(959 DOWNTO 0);
39  wr_en : IN STD_LOGIC;
40  rd_en : IN STD_LOGIC;
41  dout : OUT STD_LOGIC_VECTOR(959 DOWNTO 0);
42  full : OUT STD_LOGIC;
43  empty : OUT STD_LOGIC);
44  end component Readout_half_FIFO;
45 
46  signal din_1 : STD_LOGIC_VECTOR(959 DOWNTO 0);
47  signal din_2 : STD_LOGIC_VECTOR(959 DOWNTO 0);
48 
49  signal dout_1 : STD_LOGIC_VECTOR(959 DOWNTO 0);
50  signal dout_2 : STD_LOGIC_VECTOR(959 DOWNTO 0);
51 
52  signal full_1 : STD_LOGIC;
53  signal full_2 : STD_LOGIC;
54 
55  signal empty_1 : STD_LOGIC;
56  signal empty_2 : STD_LOGIC;
57 
58 --------------------------------------------------------------------------------
59 BEGIN
60 
61  Readout_half_FIFO_inst_1: entity work.Readout_half_FIFO
62  port map (
63  rst => rst,
64  wr_clk => wr_clk,
65  rd_clk => rd_clk,
66  din => din_1,
67  wr_en => wr_en,
68  rd_en => rd_en,
69  dout => dout_1,
70  full => full_1,
71  empty => empty_1);
72 
73  Readout_half_FIFO_inst_2: entity work.Readout_half_FIFO
74  port map (
75  rst => rst,
76  wr_clk => wr_clk,
77  rd_clk => rd_clk,
78  din => din_2,
79  wr_en => wr_en,
80  rd_en => rd_en,
81  dout => dout_2,
82  full => full_2,
83  empty => empty_2);
84 
85 
86  dout<=dout_2 & dout_1;
87  din_1<=din(959 downto 0);
88  din_2<=din(1919 downto 960);
89 
90  full<=full_1 or full_2;
91 
92  empty<= empty_1 and empty_2;
93 
94 
95 
96 END RTL;
97 
98 
99 
STD_LOGIC_VECTOR (959 downto 0) dout_2
out emptySTD_LOGIC
in wr_enSTD_LOGIC
_library_ ieeeieee
Definition: parity_gen.vhd:14
STD_LOGIC empty_2
in rd_clkSTD_LOGIC
STD_LOGIC full_1
in wr_clkSTD_LOGIC
STD_LOGIC_VECTOR (959 downto 0) din_1
STD_LOGIC empty_1
in rd_enSTD_LOGIC
out fullSTD_LOGIC
STD_LOGIC_VECTOR (959 downto 0) din_2
out doutSTD_LOGIC_VECTOR (1919 downto 0)
in dinSTD_LOGIC_VECTOR (1919 downto 0)
STD_LOGIC_VECTOR (959 downto 0) dout_1
in rstSTD_LOGIC
STD_LOGIC full_2