UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

AR# 31851

Endpoint Block Plus Wrapper v1.9 for PCI Express - PIO design file PCI_EP_MEM_ACCESS.vhd corrupts block RAM data when checking byte enables

Description

Known Issue: 1.9, 1.8, 1.7.1, 1.7, 1.6.1, 1.6, 1.5.2, 1.5.1, 1.5, 1.4, 1.3, 1.2

In the VHDL PIO example design, the file PCI_EP_MEM_ACCESS reads the data being addressed from the block RAM in order to ensure only enabled bytes are written. However, byte 2 and byte 0 get swapped in the process.

Solution

The problem is in the following code:

w_pre_wr_data_b3 <= pre_wr_data(31 downto 24);

w_pre_wr_data_b0 <= pre_wr_data(23 downto 16);

w_pre_wr_data_b1 <= pre_wr_data(15 downto 08);

w_pre_wr_data_b2 <= pre_wr_data(07 downto 00);

which should be changed to:

w_pre_wr_data_b3 <= pre_wr_data(31 downto 24);

w_pre_wr_data_b2 <= pre_wr_data(23 downto 16);

w_pre_wr_data_b1 <= pre_wr_data(15 downto 08);

w_pre_wr_data_b0 <= pre_wr_data(07 downto 00);

Revision History

10/28/2008 - Initial Release

AR# 31851
Date Created 10/28/2008
Last Updated 12/15/2012
Status Active
Type General Article