eFEX firmware  1.7.3
ATLAS l1-calo - electron and tau feature extraction firmware for eFEX boards

Back to eFEX documentation
srl16e_cntrl.vhd
Go to the documentation of this file.
1 
7 library ieee;
8 use ieee.std_logic_1164.all;
9 use ieee.std_logic_arith.all;
10 Library UNISIM;
11 use UNISIM.vcomponents.all;
13  entity SRL16E_cntrl is
14 
15  port (
17  clk : in std_logic;
19  srl_en : in std_logic;
21  address : in std_logic_vector (3 downto 0);
23  data_in : in std_logic_vector (33 downto 0);
25  data_out : out std_logic_vector (33 downto 0)
26  );
27 
28  end SRL16E_cntrl;
30 
31  architecture Behavioral of SRL16E_cntrl is
32 
33  signal d_i,q_i :std_logic_vector (33 downto 0);
34 
35 begin
36 
37 data_out <= q_i;
38 d_i <= data_in;
39 
40 
41  shift_mux33 : for i in 0 to 33
42 
43  generate
44 
45  SRL16E_inst_32 : SRL16E
46 
47  generic map (
48 
49  INIT => X"0000")
50  port map (
51  Q => q_i(i) , -- SRL data output
52  A0 => address(0), -- Select(0) input
53  A1 => address(1), -- Select(1) input
54  A2 => address(2), -- Select(2) input
55  A3 => address(3), -- Select(3) input
56  CE => srl_en, -- Clock enable input
57  CLK => CLK, -- Clock input
58  D => d_i(i) -- SRL data input
59  );
60  end generate shift_mux33 ;
61 
62  end Behavioral;
63 
shift register
in clk std_logic
clock
out data_out std_logic_vector( 33 downto 0)
data out
in srl_en std_logic
enable of shifter
in address std_logic_vector( 3 downto 0)
shift depth
in data_in std_logic_vector( 33 downto 0)
data in