Skip to content
Snippets Groups Projects
Commit 42bdc3c3 authored by Daniel van der Schuur's avatar Daniel van der Schuur
Browse files

-Added options to preserve input fields.

parent 19854a09
Branches
Tags
No related merge requests found
...@@ -57,7 +57,9 @@ ENTITY dp_block_gen IS ...@@ -57,7 +57,9 @@ ENTITY dp_block_gen IS
g_nof_blk_per_sync : NATURAL := 8; g_nof_blk_per_sync : NATURAL := 8;
g_empty : NATURAL := 0; g_empty : NATURAL := 0;
g_channel : NATURAL := 0; g_channel : NATURAL := 0;
g_error : NATURAL := 0 g_error : NATURAL := 0;
g_preserve_sync : BOOLEAN := FALSE;
g_preserve_bsn : BOOLEAN := FALSE
); );
PORT ( PORT (
rst : IN STD_LOGIC; rst : IN STD_LOGIC;
...@@ -116,10 +118,17 @@ BEGIN ...@@ -116,10 +118,17 @@ BEGIN
nxt_r.src_out.re <= snk_in.re; nxt_r.src_out.re <= snk_in.re;
nxt_r.src_out.im <= snk_in.im; nxt_r.src_out.im <= snk_in.im;
END IF; END IF;
IF g_preserve_sync = FALSE THEN
nxt_r.src_out.sync <= '0'; nxt_r.src_out.sync <= '0';
ELSE
nxt_r.src_out.sync <= snk_in.sync;
END IF;
nxt_r.src_out.valid <= '0'; nxt_r.src_out.valid <= '0';
nxt_r.src_out.sop <= '0'; nxt_r.src_out.sop <= '0';
nxt_r.src_out.eop <= '0'; nxt_r.src_out.eop <= '0';
nxt_r.src_out.bsn <= snk_in.bsn;
CASE r.state IS CASE r.state IS
WHEN s_sop => WHEN s_sop =>
...@@ -129,6 +138,7 @@ BEGIN ...@@ -129,6 +138,7 @@ BEGIN
nxt_r.bsn <= (OTHERS=>'0'); nxt_r.bsn <= (OTHERS=>'0');
ELSE -- enabled block generator ELSE -- enabled block generator
IF ready='1' THEN -- once enabled the complete block will be output IF ready='1' THEN -- once enabled the complete block will be output
IF g_preserve_sync = FALSE THEN
IF r.blk_cnt=0 THEN IF r.blk_cnt=0 THEN
nxt_r.src_out.sync <= '1'; nxt_r.src_out.sync <= '1';
END IF; END IF;
...@@ -137,11 +147,14 @@ BEGIN ...@@ -137,11 +147,14 @@ BEGIN
ELSE ELSE
nxt_r.blk_cnt <= r.blk_cnt+1; nxt_r.blk_cnt <= r.blk_cnt+1;
END IF; END IF;
END IF;
nxt_r.src_out.valid <= '1'; nxt_r.src_out.valid <= '1';
nxt_r.src_out.sop <= '1'; nxt_r.src_out.sop <= '1';
IF g_preserve_bsn=FALSE THEN
nxt_r.bsn <= INCR_UVEC(r.bsn, 1); nxt_r.bsn <= INCR_UVEC(r.bsn, 1);
nxt_r.src_out.bsn <= r.bsn; nxt_r.src_out.bsn <= r.bsn;
nxt_r.src_out.channel <= TO_DP_CHANNEL(g_channel); nxt_r.src_out.channel <= TO_DP_CHANNEL(g_channel);
END IF;
IF g_nof_data=1 THEN IF g_nof_data=1 THEN
nxt_r.src_out.eop <= '1'; -- single word block nxt_r.src_out.eop <= '1'; -- single word block
nxt_r.src_out.empty <= TO_DP_EMPTY(g_empty); nxt_r.src_out.empty <= TO_DP_EMPTY(g_empty);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment