diff --git a/src/axis/rtl/taxi_axis_async_fifo.sv b/src/axis/rtl/taxi_axis_async_fifo.sv index b6d2cab..d900c46 100644 --- a/src/axis/rtl/taxi_axis_async_fifo.sv +++ b/src/axis/rtl/taxi_axis_async_fifo.sv @@ -142,6 +142,12 @@ if (m_axis.DATA_W != DATA_W) if (KEEP_EN && m_axis.KEEP_W != KEEP_W) $fatal(0, "Error: Interface KEEP_W parameter mismatch (instance %m)"); +if (DROP_BAD_FRAME && !s_axis.USER_EN) + $fatal(0, "Error: DROP_BAD_FRAME set requires s_axis.USER_EN (instance %m)"); + +if (MARK_WHEN_FULL && !m_axis.USER_EN) + $fatal(0, "Error: MARK_WHEN_FULL set requires m_axis.USER_EN (instance %m)"); + localparam KEEP_OFFSET = DATA_W; localparam STRB_OFFSET = KEEP_OFFSET + (KEEP_EN ? KEEP_W : 0); localparam LAST_OFFSET = STRB_OFFSET + (STRB_EN ? KEEP_W : 0); diff --git a/src/axis/rtl/taxi_axis_fifo.sv b/src/axis/rtl/taxi_axis_fifo.sv index a4fce7a..a936089 100644 --- a/src/axis/rtl/taxi_axis_fifo.sv +++ b/src/axis/rtl/taxi_axis_fifo.sv @@ -130,10 +130,16 @@ if (m_axis.DATA_W != DATA_W) if (KEEP_EN && m_axis.KEEP_W != KEEP_W) $fatal(0, "Error: Interface KEEP_W parameter mismatch (instance %m)"); +if (DROP_BAD_FRAME && !s_axis.USER_EN) + $fatal(0, "Error: DROP_BAD_FRAME set requires s_axis.USER_EN (instance %m)"); + +if (MARK_WHEN_FULL && !m_axis.USER_EN) + $fatal(0, "Error: MARK_WHEN_FULL set requires m_axis.USER_EN (instance %m)"); + localparam KEEP_OFFSET = DATA_W; localparam STRB_OFFSET = KEEP_OFFSET + (KEEP_EN ? KEEP_W : 0); localparam LAST_OFFSET = STRB_OFFSET + (STRB_EN ? KEEP_W : 0); -localparam ID_OFFSET = LAST_OFFSET + (LAST_EN ? 1 : 0); +localparam ID_OFFSET = LAST_OFFSET + (LAST_EN ? 1 : 0); localparam DEST_OFFSET = ID_OFFSET + (ID_EN ? ID_W : 0); localparam USER_OFFSET = DEST_OFFSET + (DEST_EN ? DEST_W : 0); localparam WIDTH = USER_OFFSET + (USER_EN ? USER_W : 0);