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# 13888

LogiCORE PCI/PCI-X - The sample test benches for 64-bit applications are missing required pull-ups on the 64-bit extension signals

Description

General Description:

The sample test benches for 64-bit applications are missing required pull-ups on the 64-bit extension signals. (These are AD[63:32], CBE[7:4], and PAR64.)

Solution

There is an error in the PCI test benches. In 64-bit applications, pull-ups must be added to AD[63:31], CBE[7:4], and PAR64.

This is stated in the PCI Specification Rev 2.2 section 3.8.1:

"When a 64-bit data path is provided, AD[61:32],CBE[7:4], and PAR64 require either pull-up resistors or input "keepers," because

they are not used in transactions with 32-bit devices...This pull-up or keeper function must be part of the motherboard central resource, not the expansion board, (refer to Section 4.3.3)...."

To work around this problem:

VHDL:

In the file "ping_tb.vhd", add the following:

PAR64 <= 'H';

AD(63 downto 32) <= (others => 'H');

CBE(7 downto 4) <= (others => 'H');

Verilog:

In the file "ping_tb.v", add the following:

PULLUP pu_PAR64(.O(PAR64));

PULLUP pu_CBE_7(.O(CBE[7]));

PULLUP pu_CBE_6(.O(CBE[6]));

PULLUP pu_CBE_5(.O(CBE[5]));

PULLUP pu_CBE_4(.O(CBE[4]));

PULLUP pu_AD_63(.O(AD[63]));

PULLUP pu_AD_62(.O(AD[62]));

PULLUP pu_AD_61(.O(AD[61]));

PULLUP pu_AD_60(.O(AD[60]));

PULLUP pu_AD_59(.O(AD[59]));

PULLUP pu_AD_58(.O(AD[58]));

PULLUP pu_AD_57(.O(AD[57]));

PULLUP pu_AD_56(.O(AD[56]));

PULLUP pu_AD_55(.O(AD[55]));

PULLUP pu_AD_54(.O(AD[54]));

PULLUP pu_AD_53(.O(AD[53]));

PULLUP pu_AD_52(.O(AD[52]));

PULLUP pu_AD_51(.O(AD[51]));

PULLUP pu_AD_50(.O(AD[50]));

PULLUP pu_AD_49(.O(AD[49]));

PULLUP pu_AD_48(.O(AD[48]));

PULLUP pu_AD_47(.O(AD[47]));

PULLUP pu_AD_46(.O(AD[46]));

PULLUP pu_AD_45(.O(AD[45]));

PULLUP pu_AD_44(.O(AD[44]));

PULLUP pu_AD_43(.O(AD[43]));

PULLUP pu_AD_42(.O(AD[42]));

PULLUP pu_AD_41(.O(AD[41]));

PULLUP pu_AD_40(.O(AD[40]));

PULLUP pu_AD_39(.O(AD[39]));

PULLUP pu_AD_38(.O(AD[38]));

PULLUP pu_AD_37(.O(AD[37]));

PULLUP pu_AD_36(.O(AD[36]));

PULLUP pu_AD_35(.O(AD[35]));

PULLUP pu_AD_34(.O(AD[34]));

PULLUP pu_AD_33(.O(AD[33]));

PULLUP pu_AD_32(.O(AD[32]));

AR# 13888
Date Created 08/29/2007
Last Updated 12/15/2012
Status Active
Type General Article