Skip to content
Snippets Groups Projects

Resolve L2SDP-557

Merged Reinier van der Walle requested to merge L2SDP-557 into master
9 unresolved threads

Closes L2SDP-557

Merge request reports

Loading
Loading

Activity

Filter activity
  • Approvals
  • Assignees & reviewers
  • Comments (from bots)
  • Comments (from users)
  • Commits & branches
  • Edits
  • Labels
  • Lock status
  • Mentions
  • Merge request status
  • Tracking
192 192 );
193 193
194 194 bsn_at_sync <= bs_sosi.bsn WHEN bs_sosi.sync = '1' ELSE bsn_at_sync_reg;
  • added 1 commit

    • 217e96fd - processed review comments, also updated TB

    Compare with previous version

  • 196 out_valid <= '1' WHEN in_sosi.sop = '1' AND TO_UINT(in_sosi.channel) /= g_check_channel ELSE
    197 bsn_ok WHEN in_sosi.sop = '1' AND TO_UINT(in_sosi.channel) = g_check_channel ELSE
    198 out_valid_reg;
    193 p_bsn_check : PROCESS(bs_sosi, in_sosi, bsn_at_sync_reg, bsn_ok_reg)
    194 VARIABLE v_bsn_ok : STD_LOGIC;
    195 VARIABLE v_bsn_at_sync : STD_LOGIC_VECTOR(g_bsn_w-1 DOWNTO 0);
    196 BEGIN
    197 v_bsn_at_sync := bsn_at_sync_reg;
    198 v_bsn_ok := bsn_ok_reg;
    199 out_valid <= out_valid_reg;
    200
    201 IF bs_sosi.sync = '1' THEN
    202 v_bsn_at_sync := bs_sosi.bsn;
    203 END IF;
    199 204
    205 IF in_sosi.sync = '1' AND TO_UINT(in_sosi.channel) = g_check_channel THEN
  • 187 186 -- MM registers in st_clk domain
    188 187 reg_wr_arr => OPEN,
    189 188 reg_rd_arr => OPEN,
    190 in_reg => count_reg, -- read only
    189 in_reg => count_reg, -- read only
    191 190 out_reg => OPEN -- no write
    192 191 );
    193 192
    194 bsn_at_sync <= bs_sosi.bsn WHEN bs_sosi.sync = '1' ELSE bsn_at_sync_reg;
    195 bsn_ok <= bsn_ok_reg WHEN in_sosi.sync = '0' ELSE '1' WHEN in_sosi.bsn = bsn_at_sync ELSE '0';
    196 out_valid <= '1' WHEN in_sosi.sop = '1' AND TO_UINT(in_sosi.channel) /= g_check_channel ELSE
    197 bsn_ok WHEN in_sosi.sop = '1' AND TO_UINT(in_sosi.channel) = g_check_channel ELSE
    198 out_valid_reg;
    193 p_bsn_check : PROCESS(bs_sosi, in_sosi, bsn_at_sync_reg, bsn_ok_reg)
  • 202 v_bsn_at_sync := bs_sosi.bsn;
    203 END IF;
    199 204
    205 IF in_sosi.sync = '1' AND TO_UINT(in_sosi.channel) = g_check_channel THEN
    206 IF in_sosi.bsn = v_bsn_at_sync THEN
    207 v_bsn_ok := '1';
    208 ELSE
    209 v_bsn_ok := '0';
    210 END IF;
    211 END IF;
    212
    213 IF in_sosi.sop = '1' THEN
    214 IF TO_UINT(in_sosi.channel) = g_check_channel THEN
    215 out_valid <= v_bsn_ok;
    216 ELSE
    217 out_valid <= '1';
  • 189 in_reg => count_reg, -- read only
    191 190 out_reg => OPEN -- no write
    192 191 );
    193 192
    194 bsn_at_sync <= bs_sosi.bsn WHEN bs_sosi.sync = '1' ELSE bsn_at_sync_reg;
    195 bsn_ok <= bsn_ok_reg WHEN in_sosi.sync = '0' ELSE '1' WHEN in_sosi.bsn = bsn_at_sync ELSE '0';
    196 out_valid <= '1' WHEN in_sosi.sop = '1' AND TO_UINT(in_sosi.channel) /= g_check_channel ELSE
    197 bsn_ok WHEN in_sosi.sop = '1' AND TO_UINT(in_sosi.channel) = g_check_channel ELSE
    198 out_valid_reg;
    193 p_bsn_check : PROCESS(bs_sosi, in_sosi, bsn_at_sync_reg, bsn_ok_reg)
    194 VARIABLE v_bsn_ok : STD_LOGIC;
    195 VARIABLE v_bsn_at_sync : STD_LOGIC_VECTOR(g_bsn_w-1 DOWNTO 0);
    196 BEGIN
    197 v_bsn_at_sync := bsn_at_sync_reg;
    198 v_bsn_ok := bsn_ok_reg;
    199 out_valid <= out_valid_reg;
  • 193 192
    194 bsn_at_sync <= bs_sosi.bsn WHEN bs_sosi.sync = '1' ELSE bsn_at_sync_reg;
    195 bsn_ok <= bsn_ok_reg WHEN in_sosi.sync = '0' ELSE '1' WHEN in_sosi.bsn = bsn_at_sync ELSE '0';
    196 out_valid <= '1' WHEN in_sosi.sop = '1' AND TO_UINT(in_sosi.channel) /= g_check_channel ELSE
    197 bsn_ok WHEN in_sosi.sop = '1' AND TO_UINT(in_sosi.channel) = g_check_channel ELSE
    198 out_valid_reg;
    193 p_bsn_check : PROCESS(bs_sosi, in_sosi, bsn_at_sync_reg, bsn_ok_reg)
    194 VARIABLE v_bsn_ok : STD_LOGIC;
    195 VARIABLE v_bsn_at_sync : STD_LOGIC_VECTOR(g_bsn_w-1 DOWNTO 0);
    196 BEGIN
    197 v_bsn_at_sync := bsn_at_sync_reg;
    198 v_bsn_ok := bsn_ok_reg;
    199 out_valid <= out_valid_reg;
    200
    201 IF bs_sosi.sync = '1' THEN
    202 v_bsn_at_sync := bs_sosi.bsn;
  • Eric Kooistra
  • added 1 commit

    Compare with previous version

  • 198 VARIABLE v_bsn_ok : STD_LOGIC;
    199 -- Using v_bsn_at_sync to ensure correct behavior when in_sosi has no latency compared to bs_sosi.
    200 VARIABLE v_bsn_at_sync : STD_LOGIC_VECTOR(g_bsn_w-1 DOWNTO 0);
    201 BEGIN
    202 v_bsn_at_sync := bsn_at_sync_reg;
    203 v_bsn_ok := bsn_ok_reg;
    204 out_valid <= out_valid_reg;
    205
    206 IF bs_sosi.sync = '1' THEN
    207 v_bsn_at_sync := bs_sosi.bsn;
    208 END IF;
    209
    210 IF TO_UINT(in_sosi.channel) = g_check_channel THEN
    211 -- Compare bsn at sync of in_sosi to bsn at sync of bs_sosi.
    212 IF in_sosi.sync = '1' THEN
    213 IF in_sosi.bsn = v_bsn_at_sync THEN
  • 211 -- Compare bsn at sync of in_sosi to bsn at sync of bs_sosi.
    212 IF in_sosi.sync = '1' THEN
    213 IF in_sosi.bsn = v_bsn_at_sync THEN
    214 v_bsn_ok := '1';
    215 ELSE
    216 v_bsn_ok := '0';
    217 END IF;
    218 END IF;
    219
    220 -- Setting out_valid to control the discarding at packet level.
    221 IF in_sosi.sop = '1' THEN
    222 out_valid <= v_bsn_ok;
    223 END IF;
    199 224
    225 -- set cnt_discarded_en to control u_discarded_counter.
    226 cnt_discarded_en <= in_sosi.sync AND NOT v_bsn_ok;
  • 64 63 CONSTANT c_gap_size : NATURAL := 4;
    65 64 CONSTANT c_nof_sync : NATURAL := 5;
    66 65 CONSTANT c_nof_blk : NATURAL := g_nof_blocks_per_sync * c_nof_sync;
    66 -- choosing c_check_channel such that it corresponds with a channel from stimuli on a sync because the channel field is generated by a counter.
    67 CONSTANT c_check_channel : NATURAL := g_nof_blocks_per_sync; -- can be c_check_channel MOD g_nof_blocks_per_sync = 0 but not larger than c_nof_blk.
    • -- The u_stimuli_in creates counter data in stimuli_sosi.channel. Therefore choose some c_check_channel value (> 0, < c_nof_blk) that will occur in the future. Hence this c_check_channel value will occur once in the tb, because stimuli_sosi.channel keeps incrementing.

    • Please register or sign in to reply
  • added 1 commit

    Compare with previous version

  • merged

  • Eric Kooistra mentioned in commit 397cdaf9

    mentioned in commit 397cdaf9

  • Please register or sign in to reply
    Loading