Skip to content
Snippets Groups Projects
Commit 7ebff2b7 authored by David Gabriel Monk's avatar David Gabriel Monk
Browse files

Update top/addr_table/emp_payload.xml, top/firmware/hdl/emp_payload.vhd,...

Update top/addr_table/emp_payload.xml, top/firmware/hdl/emp_payload.vhd, top/firmware/hdl/LinkCombiner.vhd files
parent c869d2a4
No related branches found
No related tags found
No related merge requests found
Pipeline #3199485 passed
...@@ -27,6 +27,8 @@ ...@@ -27,6 +27,8 @@
<node id="link_combiner" mask="0xff0"/> <node id="link_combiner" mask="0xff0"/>
<node id="head_start_select" mask="0x3000"/> <node id="head_start_select" mask="0x3000"/>
</node> </node>
<node id="header_user_bits" address="0x3"/>
<node id="super_id" address="0x4"/> <node id="super_id" address="0x4"/>
<node id="lff" address="0x5" mask="0x0001"/> <node id="lff" address="0x5" mask="0x0001"/>
<node id="link_combiner_fifo" address="0x6"> <node id="link_combiner_fifo" address="0x6">
......
...@@ -14,19 +14,20 @@ entity LinkCombiner is ...@@ -14,19 +14,20 @@ entity LinkCombiner is
); );
port ( port (
--- Input Ports --- --- Input Ports ---
clk_p : in std_logic; clk_p : in std_logic;
reset : in std_logic; reset : in std_logic;
output_reset : in std_logic := '0'; output_reset : in std_logic := '0';
output_rd_en : in std_logic_vector(N_OUTPUT_LINKS - 1 downto 0) := (others => '0'); output_rd_en : in std_logic_vector(N_OUTPUT_LINKS - 1 downto 0) := (others => '0');
links_in : in ldata(N_INPUT_LINKS - 1 downto 0); links_in : in ldata(N_INPUT_LINKS - 1 downto 0);
packet_start : in std_logic; packet_start : in std_logic;
header_in : in tCICHeaderArray(cNumberOfFEModules * cNumberOfCICs - 1 downto 0) := (others => ('0', (others => '0'), (others => '0'), (others => '0'))); header_in : in tCICHeaderArray(cNumberOfFEModules * cNumberOfCICs - 1 downto 0) := (others => ('0', (others => '0'), (others => '0'), (others => '0')));
header_user_bits : in std_logic_vector(31 downto 0) := (others => '0');
--- Ouput Ports --- --- Ouput Ports ---
links_out : out ldata(N_OUTPUT_LINKS - 1 downto 0); links_out : out ldata(N_OUTPUT_LINKS - 1 downto 0);
--- Debug Ports --- --- Debug Ports ---
debug : out lword := LWORD_NULL; debug : out lword := LWORD_NULL;
debug_super_id : out std_logic_vector(31 downto 0); debug_super_id : out std_logic_vector(31 downto 0);
debug_fifo : out std_logic_vector(31 downto 0) := (others => '0') debug_fifo : out std_logic_vector(31 downto 0) := (others => '0')
); );
end LinkCombiner; end LinkCombiner;
...@@ -330,7 +331,7 @@ begin ...@@ -330,7 +331,7 @@ begin
if counter = 1 then if counter = 1 then
output_wr_en_array_buf(0) <= '1'; output_wr_en_array_buf(0) <= '1';
output_din_array_buf(0)(63 downto 32) <= X"DEADBEEF"; output_din_array_buf(0)(63 downto 32) <= header_user_bits;
output_din_array_buf(0)(31 downto 0) <= std_logic_vector(super_id); output_din_array_buf(0)(31 downto 0) <= std_logic_vector(super_id);
elsif counter = 2 then elsif counter = 2 then
output_din_array_buf(0) <= (others => '0'); output_din_array_buf(0) <= (others => '0');
......
...@@ -75,7 +75,7 @@ constant input_width : integer := 9; ...@@ -75,7 +75,7 @@ constant input_width : integer := 9;
signal status_registers : ipb_reg_v(N_STAT_HIST - 1 downto 0) := (others => (others => '0')); signal status_registers : ipb_reg_v(N_STAT_HIST - 1 downto 0) := (others => (others => '0'));
signal control_registers : ipb_reg_v(N_CTRL_HIST - 1 downto 0) := (others => (others => '0')); signal control_registers : ipb_reg_v(N_CTRL_HIST - 1 downto 0) := (others => (others => '0'));
signal link_aggregator_status_registers : ipb_reg_v(4 - 1 downto 0) := (others => (others => '0')); signal link_aggregator_status_registers : ipb_reg_v(4 - 1 downto 0) := (others => (others => '0'));
signal link_aggregator_control_registers : ipb_reg_v(3 - 1 downto 0) := (others => (others => '0')); signal link_aggregator_control_registers : ipb_reg_v(4 - 1 downto 0) := (others => (others => '0'));
signal trigger_window_lower : std_logic_vector(31 downto 0) := (others => '0'); signal trigger_window_lower : std_logic_vector(31 downto 0) := (others => '0');
signal trigger_window_upper : std_logic_vector(3 downto 0) := (others => '0'); signal trigger_window_upper : std_logic_vector(3 downto 0) := (others => '0');
...@@ -417,7 +417,7 @@ packet_start <= header_start_array(to_integer(unsigned(link_aggregator_control_r ...@@ -417,7 +417,7 @@ packet_start <= header_start_array(to_integer(unsigned(link_aggregator_control_r
LinkAggregatorControlInstance: entity work.ipbus_ctrlreg_v LinkAggregatorControlInstance: entity work.ipbus_ctrlreg_v
--==============================-- --==============================--
generic map( generic map(
N_CTRL => 3, N_CTRL => 4,
N_STAT => 4 N_STAT => 4
) )
port map( port map(
...@@ -438,19 +438,20 @@ generic map ( ...@@ -438,19 +438,20 @@ generic map (
) )
port map ( port map (
--- Input Ports --- --- Input Ports ---
clk_p => clk_p, clk_p => clk_p,
reset => readout_reset, reset => readout_reset,
output_reset => link_aggregator_control_registers(1)(0), output_reset => link_aggregator_control_registers(1)(0),
output_rd_en => link_combiner_rd_en, output_rd_en => link_combiner_rd_en,
links_in => link_combiner_input, links_in => link_combiner_input,
packet_start => packet_start, packet_start => packet_start,
header_in => header_array, header_in => header_array,
header_user_bits => link_aggregator_control_registers(3),
--- Output Ports --- --- Output Ports ---
links_out => eth_link_out, links_out => eth_link_out,
--- Debug Ports --- --- Debug Ports ---
debug => link_combiner_debug, debug => link_combiner_debug,
debug_super_id => link_combiner_debug_super_id, debug_super_id => link_combiner_debug_super_id,
debug_fifo => link_aggregator_status_registers(2) debug_fifo => link_aggregator_status_registers(2)
); );
q(32).valid <= eth_link_out(0).valid; q(32).valid <= eth_link_out(0).valid;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment