From de541cc554193df4c27373a1249d1d75a9c2fe13 Mon Sep 17 00:00:00 2001 From: Leon Hiemstra <hiemstra@astron.nl> Date: Wed, 9 Mar 2016 12:25:49 +0000 Subject: [PATCH] added the eth_frm_discard module (but not yet activated) --- libraries/io/eth/src/vhdl/eth.vhd | 30 ++++++++++++++++++++++ libraries/io/eth/src/vhdl/eth_hdr.vhd | 2 ++ libraries/io/eth/src/vhdl/eth_hdr_ctrl.vhd | 1 + 3 files changed, 33 insertions(+) diff --git a/libraries/io/eth/src/vhdl/eth.vhd b/libraries/io/eth/src/vhdl/eth.vhd index 2d89af1bae..50664c8bfb 100644 --- a/libraries/io/eth/src/vhdl/eth.vhd +++ b/libraries/io/eth/src/vhdl/eth.vhd @@ -135,6 +135,9 @@ ARCHITECTURE str OF eth IS SIGNAL eth_rx_siso : t_dp_siso; SIGNAL eth_rx_sosi : t_dp_sosi; + SIGNAL rx_frm_discard : STD_LOGIC := '0'; + SIGNAL rx_eth_discard : STD_LOGIC := '0'; + SIGNAL rx_frame_rd : STD_LOGIC; SIGNAL rx_frame_ack : STD_LOGIC; SIGNAL rx_frame_done : STD_LOGIC; @@ -337,10 +340,37 @@ BEGIN -- Streaming Source src_in => rx_hdr_siso, src_out => rx_hdr_sosi, + + -- Frame control + frm_discard => rx_eth_discard, -- Header info hdr_status => rx_hdr_status ); + + -- comment next line out to disable frame discard function + --rx_eth_discard <= rx_frm_discard; + + u_frm_discard : ENTITY work.eth_frm_discard + GENERIC MAP ( + g_support_dhcp => TRUE, + g_support_udp_onload => FALSE + ) + PORT MAP ( + -- Clocks and reset + rst => st_rst, + clk => st_clk, + + -- MM control + reg_config => reg_config, + reg_demux => reg_demux, + + -- ST info + hdr_status => rx_hdr_status, + + -- Frame discard decision + frm_discard => rx_frm_discard + ); ------------------------------------------------------------------------------ diff --git a/libraries/io/eth/src/vhdl/eth_hdr.vhd b/libraries/io/eth/src/vhdl/eth_hdr.vhd index 12336bef2e..3e97f29189 100644 --- a/libraries/io/eth/src/vhdl/eth_hdr.vhd +++ b/libraries/io/eth/src/vhdl/eth_hdr.vhd @@ -113,6 +113,8 @@ BEGIN hdr_words_arr => i_hdr_words_arr, hdr_status => i_hdr_status, + frm_discard => frm_discard, + -- ST interface snk_in_word_cnt => snk_in_word_cnt, snk_in => snk_in, diff --git a/libraries/io/eth/src/vhdl/eth_hdr_ctrl.vhd b/libraries/io/eth/src/vhdl/eth_hdr_ctrl.vhd index 34757f8cc4..84a2e74398 100644 --- a/libraries/io/eth/src/vhdl/eth_hdr_ctrl.vhd +++ b/libraries/io/eth/src/vhdl/eth_hdr_ctrl.vhd @@ -44,6 +44,7 @@ ENTITY eth_hdr_ctrl IS hdr_words_arr : IN t_network_total_header_32b_arr; hdr_status : IN t_eth_hdr_status; + -- Frame control frm_discard : IN STD_LOGIC := '0'; -- ST interface -- GitLab