// 这是一个宏定义,
`define _HEADER_FIELD_(offset, field) \
if (ptr_reg == offset/KEEP_WIDTH && (!KEEP_ENABLE || s_axis_tkeep[offset%KEEP_WIDTH])) begin \
field = s_axis_tdata[(offset%KEEP_WIDTH)*8 +: 8]; \
end
// 循环128次
for (j = 0; j < HEADER_KEEP_WIDTH; j = j + 1) begin
`_HEADER_FIELD_(j, m_proto_hdr_next[(HEADER_KEEP_WIDTH-j-1)*8 +: 8])
end
如图所示宏定义 _HEADER_FIELD_ ,用于从 s_axis_tdata
输入中基于给定的 offset
提取单个字节数据到 field
变量。
然后实现了数据的逆序排列。