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


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.)


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:


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

PAR64 <= 'H';

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

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


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