16 use IEEE.STD_LOGIC_1164.
ALL;
17 use IEEE.NUMERIC_STD.
ALL;
18 library infrastructure_lib;
36 bcn : in std_logic_vector(3 downto 0);
43 tx_datai_1 : out std_logic_vector( 33 downto 0);
44 tx_datai_2 : out std_logic_vector( 33 downto 0);
45 tx_datai_3 : out std_logic_vector( 33 downto 0);
46 tx_datai_4 : out std_logic_vector( 33 downto 0);
47 tx_datai_5 : out std_logic_vector( 33 downto 0);
48 tx_datai_6 : out std_logic_vector( 33 downto 0);
49 tx_datai_7 : out std_logic_vector( 33 downto 0);
50 tx_datai_8 : out std_logic_vector( 33 downto 0);
51 tx_datai_9 : out std_logic_vector( 33 downto 0);
52 tx_datai_10 : out std_logic_vector( 33 downto 0);
53 tx_datai_11 : out std_logic_vector( 33 downto 0)
72 signal cntr :unsigned (3 downto 0):= (others => '0');
73 signal sorted_valid_i,tx_ctrl: std_logic;
74 signal tob_data_i,tx_data_i,txdata_i,crc_data,mux_crc_data,reg_i,tob_data_reg_i: std_logic_vector(31 downto 0);
75 signal crc_start_temp,crc_error_chan : std_logic;
76 signal crc_start_i,crc_start : std_logic := '0';
78 signal crc_out : std_logic_vector(8 downto 0);
79 signal mux_data_temp,mux_data,mux_data_i, tx_data,tx_data_real,tx_data_test,tx_testdata,test_data_temp: std_logic_vector(33 downto 0):= (others => '0');
81 signal reg1,reg2,reset_cnt,synch_i,reset_synch:std_logic;
82 signal BCN_i,BCN_int,BCN_reg, BCN_reg_i : std_logic_vector( 3 downto 0);
83 signal probe0 :std_logic_vector(134 downto 0);
87 attribute keep : string ;
88 attribute max_fanout : integer;
90 attribute keep of tx_data : signal is "true" ;
91 attribute max_fanout of tx_data : signal is 4;
100 tx_datai_1 <= tx_data;
101 tx_datai_2 <= tx_data;
102 tx_datai_3 <= tx_data;
103 tx_datai_4 <= tx_data;
104 tx_datai_5 <= tx_data;
105 tx_datai_6 <= tx_data;
106 tx_datai_7 <= tx_data;
107 tx_datai_8 <= tx_data;
108 tx_datai_9 <= tx_data;
109 tx_datai_10 <= tx_data;
110 tx_datai_11 <= tx_data;
121 generic map( REVERSE_BIT_ORDER =>true
)
124 crc_start => crc_start,
137 tob_data_i <= reg_i after 1 ns ;
138 tob_data_reg_i <= tob_data_i after 1 ns ;
140 BCN_int <= BCN after 1 ns;
141 BCN_reg <= BCN_int after 1 ns;
142 BCN_i <= BCN_reg after 1 ns;
144 BCN_reg_i <= BCN_i after 1 ns;
158 pipe_reset:
process(
clk280)
172 correction_synch:
process(
clk280)
175 if (reset_synch = '1') then
176 cntr <= (others=> '0');
180 cntr <= (others=> '0');
199 reset => reset_synch,
in bcn std_logic_vector( 3 DOWNTO 0)
bnc of the tobs
in tobo_data std_logic_vector( 31 DOWNTO 0)
tob data
in reset std_logic
reset synch
out tx_ctrl std_logic
tx control of the MGT
in crc std_logic_vector( 8 DOWNTO 0)
crc bits
in clk std_logic
fabric clock of 280MHz
in tobo_data_reg std_logic_vector( 31 DOWNTO 0)
tob data pipe
in tobo_valid std_logic
tob valid
out crc_data std_logic_vector( 31 DOWNTO 0)
input to the crc calculator
out crc_start std_logic
stsrt crc generation
out tx_data std_logic_vector( 31 DOWNTO 0)
MGT tx data.
in tobo_sync std_logic
tob synch
in sorted_valid std_logic
Output data valid, high when correspondent output data are valid.
in sorted_sync std_logic
Output sync, high on the first clock cycle of the BC.
out tx_datai_0 std_logic_vector( 33 downto 0)
Output data to the mgt that transimits to the L1Topo.
in clk280 std_logic
clock 280MHz
NCOUNTERS integer := 12
number of tx mgts
in bcn std_logic_vector( 3 downto 0)
bcn from algo block
in tob_data std_logic_vector( 31 downto 0)
Algorithm external data structure, defined in AlgoDataTypes.vhd.
out sorted_synch_int std_logic
internally generated out put synch
in rst std_logic
input reset generated by the not locked 40MHz MMC