@@ -235,7 +235,6 @@ module data_offload #(
235235 (dst_bypass_s) ? data_bypass_s : s_storage_axis_data;
236236 assign m_axis_last = (dst_bypass_s) ? 1'b0 : s_storage_axis_last;
237237 assign m_axis_tkeep = (dst_bypass_s) ? {DST_DATA_WIDTH/ 8 {1'b1 }} : s_storage_axis_tkeep;
238-
239238 assign s_axis_ready = src_bypass_s ? ready_bypass_s : (wr_ready & m_storage_axis_ready);
240239
241240 assign m_storage_axis_valid = s_axis_valid & wr_ready;
@@ -248,32 +247,38 @@ module data_offload #(
248247 // Bypass module instance -- the same FIFO, just a smaller depth
249248 // NOTE: Generating an overflow is making sense just in BYPASS mode, and
250249 // it's supported just with the FIFO interface
251- util_axis_fifo_asym #(
252- .S_DATA_WIDTH (SRC_DATA_WIDTH),
253- .ADDRESS_WIDTH (SRC_ADDR_WIDTH_BYPASS),
254- .M_DATA_WIDTH (DST_DATA_WIDTH),
255- .ASYNC_CLK (1 )
256- ) i_bypass_fifo (
257- .m_axis_aclk (m_axis_aclk),
258- .m_axis_aresetn (dst_rstn),
259- .m_axis_ready (m_axis_ready),
260- .m_axis_valid (valid_bypass_s),
261- .m_axis_data (data_bypass_s),
262- .m_axis_tlast (),
263- .m_axis_empty (),
264- .m_axis_almost_empty (),
265- .m_axis_tkeep (),
266- .m_axis_level (),
267- .s_axis_aclk (s_axis_aclk),
268- .s_axis_aresetn (src_rstn),
269- .s_axis_ready (ready_bypass_s),
270- .s_axis_valid (s_axis_valid & src_bypass_s),
271- .s_axis_data (s_axis_data),
272- .s_axis_tlast (),
273- .s_axis_full (),
274- .s_axis_almost_full (),
275- .s_axis_tkeep (),
276- .s_axis_room ());
250+ generate if (HAS_BYPASS) begin
251+ util_axis_fifo_asym #(
252+ .S_DATA_WIDTH (SRC_DATA_WIDTH),
253+ .ADDRESS_WIDTH (SRC_ADDR_WIDTH_BYPASS),
254+ .M_DATA_WIDTH (DST_DATA_WIDTH),
255+ .ASYNC_CLK (1 )
256+ ) i_bypass_fifo (
257+ .m_axis_aclk (m_axis_aclk),
258+ .m_axis_aresetn (dst_rstn),
259+ .m_axis_ready (m_axis_ready),
260+ .m_axis_valid (valid_bypass_s),
261+ .m_axis_data (data_bypass_s),
262+ .m_axis_tlast (),
263+ .m_axis_empty (),
264+ .m_axis_almost_empty (),
265+ .m_axis_tkeep (),
266+ .m_axis_level (),
267+ .s_axis_aclk (s_axis_aclk),
268+ .s_axis_aresetn (src_rstn),
269+ .s_axis_ready (ready_bypass_s),
270+ .s_axis_valid (s_axis_valid & src_bypass_s),
271+ .s_axis_data (s_axis_data),
272+ .s_axis_tlast (),
273+ .s_axis_full (),
274+ .s_axis_almost_full (),
275+ .s_axis_tkeep (),
276+ .s_axis_room ());
277+ end else begin
278+ assign valid_bypass_s = 1'b0 ;
279+ assign data_bypass_s = 'd0;
280+ assign ready_bypass_s = 1'b0 ;
281+ end endgenerate
277282
278283 // register map
279284
0 commit comments