AR# 40466: Virtex-6 FPGA Integrated Block Wrapper v2.3 for PCI Express (AXI) - m_axis_rx_tstrb[7:0] only outputs 0x0F
AR# 40466
|
Virtex-6 FPGA Integrated Block Wrapper v2.3 for PCI Express (AXI) - m_axis_rx_tstrb[7:0] only outputs 0x0F
描述
Known Issue: v2.3, v2.2, v2.1
When using the 64-bit interface, due to a mistake in the axi_basic_rx_pipeline.vhd file found in the generated core's source directory, the m_axis_rx_tstrb[7:0] output to the user will only output 0x0F. This is only a problem with the 64-bit VHDL wrapper. This is not a problem with the x8 GEN2 128-bit VHDL wrapper or any of the Verilog-HDL wrappers.
解决方案
To fix this problem, edit the axi_basic_rx_pipeline.vhd found in the generated core's source directory to change the GENERATE statement starting on line 380. Modify the assignments to tstrb and tstrb_prev. Notice the change below is to change "11" to "1".
Change:
xhdl15 : IF (C_DATA_WIDTH = 64) GENERATE -- 64-bit interface: contains 2 DWORDs per cycle, for a total of 8 bytes -- TSTRB has only two possible values here, 0xFF or 0x0F tstrb <= x"FF" WHEN (TRN_RREM = "11") ELSE x"0F"; tstrb_prev <= x"FF" WHEN (trn_rrem_prev = "11" ) ELSE x"0F"; END GENERATE;
To:
xhdl15 : IF (C_DATA_WIDTH = 64) GENERATE -- 64-bit interface: contains 2 DWORDs per cycle, for a total of 8 bytes -- TSTRB has only two possible values here, 0xFF or 0x0F tstrb <= x"FF" WHEN (TRN_RREM = "1") ELSE x"0F"; tstrb_prev <= x"FF" WHEN (trn_rrem_prev = "1" ) ELSE x"0F"; END GENERATE;