Skip to content

Commit 0a0ea52

Browse files
committed
Merge branch 'cabal_mfb_trim' into 'devel'
feat(mfb-tools): add MFB conf support (1,1,256,8) to MFB_FRAME_TRIMMER See merge request ndk/ndk-fpga!362
2 parents ebd41d9 + b9527a9 commit 0a0ea52

2 files changed

Lines changed: 26 additions & 5 deletions

File tree

comp/mfb_tools/edit/frame_trimmer/mfb_frame_trimmer.vhd

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,10 @@ begin
155155
-- PACKET PREPARE
156156
-- -------------------------------------------------------------------------
157157

158-
s_rx_sof_pos <= slv_array_deser(RX_SOF_POS, REGIONS);
158+
spw_g: if (SOF_POS_WIDTH > 1) generate
159+
s_rx_sof_pos <= slv_array_deser(RX_SOF_POS, REGIONS);
160+
end generate;
161+
159162
s_rx_eof_pos <= slv_array_deser(RX_EOF_POS, REGIONS);
160163
s_rx_new_len <= slv_array_deser(RX_TRIM_LEN, REGIONS);
161164

@@ -180,10 +183,16 @@ begin
180183
end process;
181184

182185
new_len_g : for r in 0 to REGIONS-1 generate
183-
s_rx_sof_pos_ext(r) <= unsigned(s_rx_sof_pos(r)) & to_unsigned(0,log2(BLOCK_SIZE));
184186
s_rx_eof_pos_blk(r) <= s_rx_eof_pos(r)(EOF_POS_WIDTH-1 downto log2(BLOCK_SIZE));
185187

186-
s_rx_sof_after_eof(r) <= '1' when (unsigned(s_rx_sof_pos(r)) > unsigned(s_rx_eof_pos_blk(r))) else '0';
188+
spw_g: if (SOF_POS_WIDTH > 1) generate
189+
s_rx_sof_pos_ext(r) <= unsigned(s_rx_sof_pos(r)) & to_unsigned(0,log2(BLOCK_SIZE));
190+
s_rx_sof_after_eof(r) <= '1' when (unsigned(s_rx_sof_pos(r)) > unsigned(s_rx_eof_pos_blk(r))) else '0';
191+
else generate
192+
s_rx_sof_pos_ext(r) <= to_unsigned(0,log2(BLOCK_SIZE));
193+
s_rx_sof_after_eof(r) <= '0';
194+
end generate;
195+
187196
s_rx_sof_after_eof_vld(r) <= s_rx_sof_after_eof(r) and RX_SOF(r) and RX_EOF(r);
188197
s_rx_sof_before_eof_vld(r) <= not s_rx_sof_after_eof(r) and RX_SOF(r) and RX_EOF(r);
189198

comp/mfb_tools/edit/frame_trimmer/uvm/tbench/dut.sv

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,18 @@ module DUT #(REGIONS, REGION_SIZE, BLOCK_SIZE, ITEM_WIDTH, META_WIDTH, PKT_MTU,
1414
logic [REGIONS*$clog2(PKT_MTU+1)-1 : 0] mfb_rx_trim_len;
1515
logic [REGIONS -1 : 0] mfb_rx_trim_en;
1616
logic [REGIONS*META_WIDTH -1 : 0] mfb_rx_meta;
17+
logic [((REGION_SIZE != 1) ? REGIONS*$clog2(REGION_SIZE) : REGIONS)-1 : 0] mfb_rx_sof_pos;
18+
logic [((REGION_SIZE != 1) ? REGIONS*$clog2(REGION_SIZE) : REGIONS)-1 : 0] mfb_tx_sof_pos;
19+
20+
generate
21+
if (REGION_SIZE != 1) begin
22+
assign mfb_rx_sof_pos = mfb_rx.SOF_POS;
23+
assign mfb_tx.SOF_POS = mfb_tx_sof_pos;
24+
end else begin
25+
assign mfb_rx_sof_pos = '0;
26+
assign mfb_tx.SOF_POS = '0;
27+
end
28+
endgenerate
1729

1830
MFB_FRAME_TRIMMER #(
1931
.REGIONS (REGIONS),
@@ -32,7 +44,7 @@ module DUT #(REGIONS, REGION_SIZE, BLOCK_SIZE, ITEM_WIDTH, META_WIDTH, PKT_MTU,
3244

3345
.RX_DATA (mfb_rx.DATA),
3446
.RX_META (mfb_rx_meta),
35-
.RX_SOF_POS (mfb_rx.SOF_POS),
47+
.RX_SOF_POS (mfb_rx_sof_pos),
3648
.RX_EOF_POS (mfb_rx.EOF_POS),
3749
.RX_SOF (mfb_rx.SOF),
3850
.RX_EOF (mfb_rx.EOF),
@@ -42,7 +54,7 @@ module DUT #(REGIONS, REGION_SIZE, BLOCK_SIZE, ITEM_WIDTH, META_WIDTH, PKT_MTU,
4254

4355
.TX_DATA (mfb_tx.DATA),
4456
.TX_META (mfb_tx.META),
45-
.TX_SOF_POS (mfb_tx.SOF_POS),
57+
.TX_SOF_POS (mfb_tx_sof_pos),
4658
.TX_EOF_POS (mfb_tx.EOF_POS),
4759
.TX_SOF (mfb_tx.SOF),
4860
.TX_EOF (mfb_tx.EOF),

0 commit comments

Comments
 (0)