Skip to content
Snippets Groups Projects
Commit 21da4446 authored by Eric Kooistra's avatar Eric Kooistra
Browse files

Merge branch 'master' of git.astron.nl:desp/hdl

parents add9bbc9 b1341f59
No related branches found
No related tags found
No related merge requests found
Pipeline #38135 passed
......@@ -75,6 +75,10 @@ ARCHITECTURE rtl of nw_arp_request IS
CONSTANT c_dp_field_blk_snk_data_w : NATURAL := field_slv_len(c_hdr_field_arr);
CONSTANT c_dp_field_blk_src_data_w : NATURAL := c_data_w;
SIGNAL valid_sha : STD_LOGIC := '0';
SIGNAL valid_spa : STD_LOGIC := '0';
SIGNAL valid_tpa : STD_LOGIC := '0';
SIGNAL valid_arp : STD_LOGIC := '0';
SIGNAL pps_cnt : NATURAL := 0;
SIGNAL trigger : BOOLEAN := FALSE;
......@@ -101,11 +105,20 @@ BEGIN
p_dp_pps : PROCESS (dp_clk, dp_rst)
BEGIN
IF dp_rst = '1' THEN
valid_sha <= '0';
valid_spa <= '0';
valid_tpa <= '0';
valid_arp <= '0';
trigger <= FALSE;
pps_cnt <= 0;
dp_field_blk_snk_in <= c_dp_sosi_rst;
ELSIF RISING_EDGE(dp_clk) THEN
-- Use signal to indicate if ARP can be enabled.
valid_sha <= vector_or(arp_sha);
valid_spa <= vector_or(arp_spa);
valid_tpa <= vector_or(arp_tpa);
valid_arp <= valid_sha AND valid_spa AND valid_tpa;
IF valid_arp = '1' THEN
dp_field_blk_snk_in <= nxt_dp_field_blk_snk_in;
IF trigger AND dp_field_blk_snk_out.ready = '1' AND dp_field_blk_snk_out.xon = '1' THEN
trigger <= FALSE;
......@@ -122,7 +135,11 @@ BEGIN
trigger <= TRUE;
END IF;
END IF;
ELSE
trigger <= FALSE;
pps_cnt <= 0;
dp_field_blk_snk_in <= c_dp_sosi_rst;
END IF;
END IF;
END PROCESS;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment