diff --git a/libraries/io/eth/src/vhdl/eth.vhd b/libraries/io/eth/src/vhdl/eth.vhd index 2d89af1baeeb0a14d70a767d4c395e9b825ffa1a..50664c8bfb5fc905fb5d01349e68e27bb5e44994 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 12336bef2e5b74f9311bc80ba558b3ee1cbed1ef..3e97f291891a2c7627c6849ad959d10881bf4902 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 34757f8cc455d05ed4a3c1e6f055e88628a74b26..84a2e743984959211cadb3a5951d2aef1937c973 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