Xilinx Computer Hardware PCI X v51 User Manual

LogiCORE™ IP  
Initiator/Target  
v5.1 for PCI-X™  
Getting Started Guide  
UG158 March 24, 2008  
R
 
Version  
2.2.1  
Revision  
Updated trademarks page in ug000_title.fm.  
04/04/02  
06/24/02  
3.0  
Initial Xilinx release of corporate-wide common template set, used for User Guides,  
Tutorials, Release Notes, Manuals, and other lengthy, multiple-chapter documents  
created by both CMP and ITP. See related documents for further information.  
Descriptions for revisions prior to v3.0 have been abbreviated. For a full summary of revision  
changes prior to v3.0, refer to v2.2.1 template set.  
10/30/02  
3.1  
Updated spelling of RocketIO and SelectIO trademarks in ug000_title.fm per 10/09/02  
broadcast email announcement. Also updated file version number and date.  
12/06/02  
01/20/03  
3.2  
3.3  
Fixed all instances of old character formats in header/footer in Master pages.  
Revised copyright date in ug000_title.fm to 2003. Changed all instances of “Manual” in  
ug000_preface.fm to “Guide.”  
02/06/03  
02/25/03  
03/25/03  
3.4  
3.4.1  
3.5  
Added paragraph formats GlossBulleted, GlossNumbered, and GlossNumberedCont.  
Minor clean-ups and corrections.  
Corrected Reference Page identification problem that prevented the IX (index)  
Reference page from taking control of Index formatting.  
Modified paragraph tags Level1IX through Level3IX (index entries) to provide a  
more uniform appearance and enhance clarity.  
Removed <Italic> attribute from Heading2TOC special string on Reference pages.  
Changed autonumbering properties of FigureTitle and TableTitle to remove chapter  
number and hyphen.  
04/30/03  
3.5.1  
Updated Additional Resources table in Preface to give correct URL to data sheets index  
page instead of to obsolete Programmable Logic Data Book page.  
11/11/04  
12/1/04  
3/7/05  
3.5.2  
3.6  
Added installation and licensing chapter; updated to current template.  
Virtex-4 updates; addition of information to Family Specific Considerations, Chapter 3.  
Updated to system 7.1i and build 5.0.95  
3.7  
5/13/05  
8/31/05  
9/12/05  
4.0  
5.0  
6.0  
Updated to build 5.0.100 and Xilinx tools 7.1i SP2.  
Updated to build 5.0.101 and Xilinx tools 7.1i SP3.  
Updated to build 5.0.102, Xilinx tools 7.1i to SP4, changed release date, removed  
instruction to confirm directory structure from Core Licensing chapter.  
1/18/06  
2/14/06  
7/13/06  
2/15/07  
5/17/07  
7.0  
7.5  
8.0  
8.1  
9.0  
Updated build to 5.0.105, Xilinx tools to 8.1i, release date, licensing chapter.  
Advanced build to 108, added SP2 support to ISE v8.1i, updated release date.  
Advanced build to 160, ISE to v8.21, release date  
Advanced build to 161, release date, minor updates  
Changed title and text references to PCI-X and PCI to comply with PCI-SIG trademark  
guidelines. Advanced build to 162, support for IUS to v5.7.  
8/08/07  
9.1  
Updated for IP1 Jade Minor release. Changed capacitor value to 10 uF to match XAPP653  
recommendation.  
PCI-X v5.1 165 Getting Started Guide  
UG158 March 24, 2008  
 
Version  
Revision  
10/10/07  
3/24/08  
9.5  
Updated for IP2 Jade Minor release. Added section regarding configuration pins to  
device family chapter.  
10.0  
Updated tools for IP0K release.  
PCI-X v5.1 165 Getting Started Guide  
UG158 March 24, 2008  
 
Table of Contents  
Schedule of Figures. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7  
Guide Contents. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9  
Conventions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10  
System Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13  
About the Example Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13  
Additional Documentation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14  
Technical Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14  
Feedback . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14  
Before you Begin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15  
Licensing Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15  
Installing Your License File. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16  
Design Support. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17  
Device Initialization. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21  
Configuration Pins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21  
Bus Width Detection. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21  
Bus Mode Detection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21  
Bus Clock Usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22  
Electrical Compliance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23  
Input Delay Buffers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24  
Generating Bitstreams. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25  
Cadence IUS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27  
Mentor Graphics ModelSim. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28  
Synplicity Synplify. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31  
PCI-X v5.1 165 Getting Started Guide  
UG158 March 24, 2008  
 
Exemplar LeonardoSpectrum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40  
Xilinx XST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41  
ISE Foundation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43  
Cadence IUS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45  
Mentor Graphics ModelSim. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46  
PCI-X v5.1 165 Getting Started Guide  
UG158 March 24, 2008  
 
Schedule of Figures  
Figure 3-1: PCI/PCI-X Output Driver VCCO Generation . . . . . . . . . . . . . . . . . . . . . . . . . . . 23  
Figure 5-1: Create a New Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31  
Figure 5-2: Main Project Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32  
Figure 5-3: Files to Add (Virtex Library) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33  
Figure 5-4: Files to Add (LogiCORE Files). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33  
Figure 5-5: Files to Add (User Application) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34  
Figure 5-6: Source Files in Main Project Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34  
Figure 5-7: Options for Implementation: Device . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35  
Figure 5-8: Options for Implementation: Options/Constraints. . . . . . . . . . . . . . . . . . . . . 35  
Figure 5-9: Create a New Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36  
Figure 5-10: Main Project Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37  
Figure 5-11: Files to Add (Virtex Library) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37  
Figure 5-12: Files to Add (LogiCORE Files). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38  
Figure 5-13: Files to Add (User Application) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38  
Figure 5-14: Main Project Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39  
Figure 5-15: Options for Implementation: Device . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40  
PCI-X v5.1 165 Getting Started Guide  
UG158 March 24, 2008  
 
 
PCI-X v5.1 165 Getting Started Guide  
UG158 March 24, 2008  
 
R
Preface  
About This Guide  
The Initiator/Target v5.1 for PCI-X Getting Started Guide provides information about the  
LogiCORE™ IP interface core for Peripheral Component Interconnect Extended (PCI-X),  
which provides a fully verified, pre-implemented PCI-X bus interface targeting devices  
based on the Virtex™ FPGA architecture.  
The guide also includes an example design in both Verilog-HDL and VHDL that lets you  
simulate, synthesize, and implement the interface to understand the design flow for PCI-X.  
Guide Contents  
This manual contains the following chapters:  
Chapter 1, “Getting Started,”describes the Initiator/Target core for PCI-X and  
provides information about getting technical support, and providing feedback to  
Xilinx about the core and the accompanying documentation.  
Chapter 2, “Licensing the Core,” provides instructions for installing and obtaining a  
license for the core interface, which you must do before using it in your designs.  
Chapter 3, “Family Specific Considerations,” discusses design considerations specific  
to the core interface targeting Virtex devices.  
Chapter 4, “Functional Simulation,” describes the use of supported functional  
simulation tools, including Cadence® IUS and Mentor Graphics® ModelSim®.  
Chapter 5, “Synthesizing a Design,” describes the use of supported synthesis tools,  
including Synplicity Synplify, Exemplar LeonardoSpectrum, and Xilinx XST.  
Chapter 6, “Implementing a Design,” describes the use of supported FPGA  
implementation tools, included with the Xilinx ISE™ Foundation v10.1 software.  
Chapter 7, “Timing Simulation,” describes the use of supported post-route timing  
simulation tools, including Cadence IUS and Mentor Graphics ModelSim.  
PCI-X v5.1 165 Getting Started Guide  
9
UG158 March 24, 2008  
 
   
R
Preface: About This Guide  
Conventions  
Typographical  
The following typographical conventions are used in this document:  
Convention  
Meaning or Use  
Example  
Messages, prompts, and  
program files that the system speed grade: - 100  
displays  
Courier font  
Courier bold  
angle brackets < >  
Literal commands you enter in  
ngdbuild design_name  
a syntactical statement  
Variables in a syntax  
statement for which you must  
supply values  
<design_name>  
See the Initiator/Target User  
Guide for more information.  
References to other manuals  
If a wire is drawn so that it  
overlaps the pin of a symbol,  
the two nets are not  
connected.  
Italic font  
Emphasis in text  
An optional entry or  
parameter. However, in bus  
specifications, such as  
ngdbuild [option_name]  
design_name  
Square brackets [ ]  
Braces { }  
bus[7:0], they are required.  
A list of items from which you  
must choose one or more  
lowpwr ={on|off}  
lowpwr ={on|off}  
Separates items in a list of  
choices  
Vertical bar  
|
IOB #1: Name = QOUT’  
IOB #2: Name = CLKIN’  
.
.
.
Vertical ellipsis  
.
.
.
Repetitive material that has  
been omitted  
allow block block_name  
loc1 loc2... locn;  
Horizontal ellipsis . . . Omitted repetitive material  
10  
PCI-X v5.1 165 Getting Started Guide  
UG158 March 24, 2008  
 
   
R
Conventions  
Online Document  
The following conventions are used in this document:  
Convention  
Meaning or Use  
Example  
See “Additional Resources”  
for details.  
Cross-reference link to a  
location in the current  
document  
Blue text  
See “Title Formats” in Chapter  
1 for details.  
for the latest speed files.  
Blue, underlined text  
Hyperlink to a website (URL)  
PCI-X v5.1 165 Getting Started Guide  
11  
UG158 March 24, 2008  
 
 
R
Preface: About This Guide  
12  
PCI-X v5.1 165 Getting Started Guide  
UG158 March 24, 2008  
 
R
Chapter 1  
Getting Started  
The Initiator/Target core for PCI-X provides a fully verified, pre-implemented PCI-X bus  
interface targeted for devices based on the Virtex architecture. This chapter provides  
information about the example design, resources for additional documentation, obtaining  
technical support, and providing feedback to Xilinx about the core and its documentation.  
System Requirements  
Windows  
Windows XP® Professional 32-bit/64-bit  
Windows Vista® Business 32-bit/64-bit  
Solaris/Linux  
Red Hat® Enterprise Linux WS v4.0 32-bit/64-bit  
Red Hat® Enterprise Desktop v5.0 32-bit/64-bit  
(with Workstation Option)  
SUSE Linux Enterprise (SLE) v10.1 32-bit/64-bit  
Software  
ISE™ software v10.1 with applicable service sack  
Check the release notes for the required service pack; ISE software service packs can be  
About the Example Design  
The example design is a simple user application. It is provided as a training tool and  
design flow test. The example design consists of the user application Userapp, and  
supporting files for simulation and implementation.  
The Userapp example design includes a test bench capable of generating simple read and  
write transactions. This stimulation generation capability is used to set up the  
configuration space of the design, and then perform some simple transactions. In addition,  
a special configuration file is provided with the Userapp design, and the test bench makes  
assumptions about the size and number of base address registers used.  
You can change the core options related to implementation—options that relate to the  
selected FPGA architecture. However, do not change core options that alter the functional  
behavior of the core; such change may cause unpredictable results when you simulate the  
example design. For custom designs, you have the flexibility to change the core  
configuration as described in the Initiator/Target v5.1 for PCI-X User Guide.  
PCI-X v5.1 165 Getting Started Guide  
13  
UG158 March 24, 2008  
 
       
R
Chapter 1: Getting Started  
Step-by-step instructions using supported design tools are provided in this guide to  
simulate, synthesize, and implement the Userapp example design.  
Additional Documentation  
For more information about the core interface, see the following documents, provided in  
the CORE Generator zip file:  
Initiator/Target v5.1 for PCI-X User Guide  
Initiator/Target v5.1 Release Notes  
Further information is available in the Mindshare PCI System Architecture text, and the  
PCI Local Bus Specification, available from the PCI Special Interest Group site.  
Technical Support  
For technical support, visit www.xilinx.com/support. Questions are routed to a team of  
engineers with expertise using the Initiator/Target core for PCI-X.  
Xilinx provides technical support for use of this product as described in the User and  
Getting Started Guides for this core. Xilinx cannot guarantee timing, functionality, or  
support of this product for designs outside of these guidelines.  
Feedback  
Xilinx welcomes comments and suggestions about the core interface for PCI-X and the  
documentation supplied with the core.  
Core Interface for PCI-X  
For comments or suggestions about the core interface for PCI-X, please submit a WebCase  
following information:  
Product name  
Core version number  
Explanation of your comments  
Document  
For comments or suggestions about this document, please submit a WebCase from  
following information:  
Document title and number  
Page number(s) to which your comments refer  
Explanation of your comments  
14  
PCI-X v5.1 165 Getting Started Guide  
UG158 March 24, 2008  
 
         
R
Chapter 2  
Licensing the Core  
This chapter provides instructions for installing and obtaining a license for the  
Initiator/Target core for PCI-X, which you must do before using it in your designs. The  
core is provided under the terms of the Xilinx LogiCORE Site License Agreement, which  
conforms to the terms of the SignOnce IP License standard defined by the Common  
License Consortium. Purchase of the core entitles you to technical support and access to  
updates for a period of one year.  
This chapter assumes that you have installed the core using either the CORE Generator™  
IP Software Update installer, or by performing a manual installation after downloading the  
core from the web. For information about installing the core, see the product lounge at  
Before you Begin  
Before installing the core, you must have a Xilinx.com account and the ISE 10.1 software  
installed on your system.  
To create an account, and download ISE software:  
1. Click Login at the top of the Xilinx home page; then follow the onscreen instructions to  
create a support account.  
2. Install ISE software v10.1 and the applicable service pack software. ISE service packs  
can be downloaded from www.xilinx.com/support/download.htm.  
Licensing Options  
The PCI-X core provides two licensing options, described in this section.  
Full System Hardware Evaluation  
The Full System Hardware Evaluation license is available at no cost and lets you fully  
integrate the core into an FPGA design, place and route the design, evaluate timing, and  
perform back-annotated gate-level simulation of the core using the demonstration test  
bench provided.  
In addition, the license lets you generate a bitstream from the placed and routed design,  
which can then be downloaded to a supported device and tested in hardware. The core can  
be tested in the target device for a limited time before timing out (ceasing to function) at  
which time it can be reactivated by reconfiguring the device.  
You can obtain a Full System Evaluation license for this core by contacting your local Xilinx  
FAE to request a Full System Hardware Evaluation license key.  
PCI-X v5.1 165 Getting Started Guide  
15  
UG158 March 24, 2008  
 
         
R
Chapter 2: Licensing the Core  
Full License  
The Full license is provided when you purchase the core, and provides full access to all  
core functionality both in simulation and in hardware, including:  
Gate-level functional simulation support.  
Back annotated gate-level simulation support.  
Full implementation support including place and route and bitstream generation.  
Full functionality in the programmed device with no time-outs.  
Obtaining a Full License  
To obtain a Full license, you must purchase the core. After purchase, a full license can be  
downloaded from the product lounge. To create and download a license file for use with  
the CORE Generator software, do the following:  
1. After purchase, you will receive a letter containing a serial number, which is used to  
register for access to the lounge; a secured area of the product page.  
Go to www.xilinx.com/pci/index.htm and choose the appropriate link to gain access.  
2. From the product page, click Register to request access to the lounge. Xilinx will  
review your access request and typically grants access to the lounge in 48 hours.  
(Contact Xilinx Customer Service if you need faster turnaround.)  
3. After you receive confirmation of lounge access, click Access Lounge from the product  
page and log in.  
4. From the lounge, a link at the top of the initial page allows you to generate a license.  
Click this link and follow the instructions to fill out the license request form; then click  
Submit to generate the license. An e-mail containing license and installation  
instructions will be sent to you immediately.  
Direct Download  
A CORE Generator license is not required when performing a direct download of the  
Initiator/Target core for PCI-X core.  
Installing Your License File  
After selecting a license option, an email will be sent to you that includes instructions for  
installing your license file. In addition, information about advanced licensing options and  
technical support is provided.  
16  
PCI-X v5.1 165 Getting Started Guide  
UG158 March 24, 2008  
 
     
R
Chapter 3  
Family Specific Considerations  
This chapter provides important design information specific to the core interface targeting  
Virtex devices.  
Design Support  
Table 3-1 provides a list of supported device and interface combinations, consisting of a  
device, a bus interface type, and two or three specific implementation files.  
Table 3-1: Device and Interface Selection  
Wrapper File  
Supported Device  
Bus Type  
Simulation  
Model  
Constraints File  
Virtex-E Devices  
V300E-BG432-8C  
V300E-BG432-8C  
33 MHz PCI  
3.3V 64-bit  
pcix_lc_64ne  
pcix_core  
v300ebg432_64n.ucf  
v300ebg432_64x.ucf  
66 MHz PCI-X  
3.3V 64-bit  
pcix_lc_64xe  
pcix_core  
Virtex-II Devices  
2V1000-FG456-5C/I  
2V1000-FG456-5C/I  
2V1000-FG456-5C/I  
2V1000-FG456-6C/I  
2V1000-FG456-5C/I  
33 MHz PCI  
3.3V 64-bit  
pcix_lc_64n  
pcix_core  
2v1000fg456_64n.ucf  
2v1000fg456_64x.ucf  
2v1000fg456_64xf.ucf  
2v1000fg456_64xf.ucf  
2v1000fg456_64s.ucf  
66 MHz PCI-X  
3.3V 64-bit  
pcix_lc_64x  
pcix_core  
100 MHz PCI-X pcix_lc_64xf  
3.3V 64-bit pcix_fast  
133 MHz PCI-X pcix_lc_64xf  
3.3V 64-bit  
pcix_fast  
33 MHz PCI  
66 MHz PCI-X  
3.3V 64-bit  
pcix_lc_64s  
pcix_core  
Virtex-II Pro Devices  
2VP7-FF672-6C/I  
33 MHz PCI  
pcix_lc_64n  
pcix_core  
2vp7ff672_64n.ucf  
3.3V 64-bit  
PCI-X v5.1 165 Getting Started Guide  
UG158 March 24, 2008  
17  
 
       
R
Chapter 3: Family Specific Considerations  
Table 3-1: Device and Interface Selection  
Wrapper File  
Supported Device  
Bus Type  
Simulation  
Model  
Constraints File  
2VP7-FF672-6C/I  
66 MHz PCI-X  
3.3V 64-bit  
pcix_lc_64x  
pcix_core  
2vp7ff672_64x.ucf  
2VP7-FF672-6C/I  
2VP7-FF672-6C/I  
2VP7-FF672-6C/I  
100 MHz PCI-X pcix_lc_64xf  
3.3V 64-bit pcix_fast  
133 MHz PCI-X pcix_lc_64xf  
2vp7ff672_64xf.ucf  
2vp7ff672_64xf.ucf  
2vp7ff672_64s.ucf  
3.3V 64-bit  
pcix_fast  
33 MHz PCI  
66 MHz PCI-X  
3.3V 64-bit  
pcix_lc_64s  
pcix_core  
2VP20-FF1152-6C/I  
2VP20-FF1152-6C/I  
2VP20-FF1152-6C/I  
2VP20-FF1152-6C/I  
2VP20-FF1152-6C/I  
33 MHz PCI  
3.3V 64-bit  
pcix_lc_64n  
pcix_core  
2vp20ff1152_64n.ucf  
2vp20ff1152_64x.ucf  
2vp20ff1152_64xf.ucf  
2vp20ff1152_64xf.ucf  
2vp20ff1152_64s.ucf  
66 MHz PCI-X  
3.3V 64-bit  
pcix_lc_64x  
pcix_core  
100 MHz PCI-X pcix_lc_64xf  
3.3V 64-bit pcix_fast  
133 MHz PCI-X pcix_lc_64xf  
3.3V 64-bit  
pcix_fast  
33 MHz PCI  
66 MHz PCI-X  
3.3V 64-bit  
pcix_lc_64s  
pcix_core  
2VP30-FF1152-6C/I  
2VP30-FF1152-6C/I  
2VP30-FF1152-6C/I  
2VP30-FF1152-6C/I  
2VP30-FF1152-6C/I  
33 MHz PCI  
3.3V 64-bit  
pcix_lc_64n  
pcix_core  
2vp30ff1152_64n.ucf  
2vp30ff1152_64x.ucf  
2vp30ff1152_64xf.ucf  
2vp30ff1152_64xf.ucf  
2vp30ff1152_64s.ucf  
66 MHz PCI-X  
3.3V 64-bit  
pcix_lc_64x  
pcix_core  
100 MHz PCI-X pcix_lc_64xf  
3.3V 64-bit pcix_fast  
133 MHz PCI-X pcix_lc_64xf  
3.3V 64-bit  
pcix_fast  
33 MHz PCI  
66 MHz PCI-X  
3.3V 64-bit  
pcix_lc_64s  
pcix_core  
2VP40-FF1152-6C/I  
33 MHz PCI  
3.3V 64-bit  
pcix_lc_64n  
pcix_core  
2vp40ff1152_64n.ucf  
18  
PCI-X v5.1 165 Getting Started Guide  
UG158 March 24, 2008  
 
R
Design Support  
Table 3-1: Device and Interface Selection  
Wrapper File  
Simulation  
Model  
Supported Device  
Bus Type  
Constraints File  
2VP40-FF1152-6C/I  
66 MHz PCI-X  
3.3V 64-bit  
pcix_lc_64x  
pcix_core  
2vp40ff1152_64x.ucf  
2VP40-FF1152-6C/I  
2VP40-FF1152-6C/I  
2VP40-FF1152-6C/I  
100 MHz PCI-X pcix_lc_64xf  
3.3V 64-bit pcix_fast  
133 MHz PCI-X pcix_lc_64xf  
2vp40ff1152_64xf.ucf  
2vp40ff1152_64xf.ucf  
2vp40ff1152_64s.ucf  
3.3V 64-bit  
pcix_fast  
33 MHz PCI  
66 MHz PCI-X  
3.3V 64-bit  
pcix_lc_64s  
pcix_core  
2VP50-FF1152-6C/I  
2VP50-FF1152-6C/I  
2VP50-FF1152-6C/I  
2VP50-FF1152-6C/I  
2VP50-FF1152-6C/I  
33 MHz PCI  
3.3V 64-bit  
pcix_lc_64n  
pcix_core  
2vp50ff1152_64n.ucf  
2vp50ff1152_64x.ucf  
2vp50ff1152_64xf.ucf  
2vp50ff1152_64xf.ucf  
2vp50ff1152_64s.ucf  
66 MHz PCI-X  
3.3V 64-bit  
pcix_lc_64x  
pcix_core  
100 MHz PCI-X pcix_lc_64xf  
3.3V 64-bit pcix_fast  
133 MHz PCI-X pcix_lc_64xf  
3.3V 64-bit  
pcix_fast  
33 MHz PCI  
66 MHz PCI-X  
3.3V 64-bit  
pcix_lc_64s  
pcix_core  
Virtex-4 Devices  
4VFX20-FF672-10C/I  
4VFX20-FF672-10C/I  
4VFX20-FF672-10C/I  
4VFX20-FF672-10C/I  
4VLX25-FF668-10C/I  
4VLX25-FF668-10C/I  
33 MHz PCI  
3.3V 64-bit  
pcix_lc_64.ng  
pcix_core  
4vfx20ff672_64ng.ucf  
4vfx20ff672_64x.ucf  
4vfx20ff672_64xf.ucf  
4vfx20ff672_64xf.ucf  
4vlx25ff668_64ng.ucf  
4vlx25ff668_64x.ucf  
66 MHz PCI-X  
3.3V 64-bit  
pcix_lc_64x  
pcix_core  
100 MHz PCI-X pcix_lc_64x  
3.3V 64-bit pcix_core  
133 MHz PCI-X pcix_lc_64x  
3.3V 64-bit  
pcix_core  
33 MHz PCI  
3.3V 64-bit  
pcix_lc_64.ng  
pcix_core  
66 MHz PCI-X  
3.3V 64-bit  
pcix_lc_64x  
pcix_core  
PCI-X v5.1 165 Getting Started Guide  
19  
UG158 March 24, 2008  
 
R
Chapter 3: Family Specific Considerations  
Table 3-1: Device and Interface Selection  
Wrapper File  
Supported Device  
Bus Type  
Simulation  
Model  
Constraints File  
4VLX25-FF668-10C/I  
100 MHz PCI-X pcix_lc_64x  
3.3V 64-bit pcix_core  
133 MHz PCI-X pcix_lc_64x  
4vlx25ff668_64xf.ucf  
4VLX25-FF668-10C/I  
4VSX35-FF668-10C/I  
4VSX35-FF668-10C/I  
4VSX35-FF668-10C/I  
4VSX35-FF668-10C/I  
4vlx25ff668_64xf.ucf  
4vsx35ff668_64ng.ucf  
4vsx35ff668_64x.ucf  
4vsx35ff668_64xf.ucf  
4vsx35ff668_64xf.ucf  
3.3V 64-bit  
pcix_core  
33 MHz PCI  
3.3V 64-bit  
pcix_lc_64.ng  
pcix_core  
66 MHz PCI-X  
3.3V 64-bit  
pcix_lc_64x  
pcix_core  
100 MHz PCI-X pcix_lc_64x  
3.3V 64-bit pcix_core  
133 MHz PCI-X pcix_lc_64x  
3.3V 64-bit pcix_core  
Wrapper Files  
Wrapper files contain an instance of the core interface and its simulation model, as well as  
the instances of all I/O elements used by the core interface. Each wrapper file is specific to  
a particular implementation.  
The wrapper files, located in the <Install Path>/hdl/src/wrapdirectory, are  
actually variations of the pcix_lc.hdl file located in the <Install  
Path>/hdl/src/xpcidirectory. The file in the <Install Path>/hdl/src/xpciis  
suitable for functional simulation in most modes. When starting a new design, copy the  
appropriate wrapper file from the wrap/directory into the xpci/directory, and rename it  
as pcix_lc.hdl.  
The simulation models, located in the <Install Path>/hdl/src/xpcidirectory,  
contain structural simulation models of the interface. Note that there are multiple  
simulation models as there are multiple interface netlists. Each wrapper file instantiates a  
specific simulation model.  
Constraints Files  
The constraints files contain various constraints required for the core interface, and must  
always be used while processing a design. Each constraints file is specific to a particular  
device and interface—use the appropriate constraints file from the <Install  
Path>/hdl/src/ucfdirectory when processing designs using the Xilinx  
implementation tools.  
Note: The example design relies on the presence of the default pcix_lc.hdl wrapper file in the  
xpci/directory. If you change this file, you must also change the constraints files used in the  
processing scripts.  
20  
PCI-X v5.1 165 Getting Started Guide  
UG158 March 24, 2008  
 
R
Device Initialization  
Device Initialization  
Immediately after FPGA configuration, both the core interface and the user application are  
initialized by the startup mechanism present in all Virtex devices. During normal  
operation, the assertion of RST#on the PCI-X bus reinitializes the core interface and three-  
state all PCI-X bus signals. This behavior is fully compliant with the PCI Local Bus  
Specification. The core interface is designed to correctly handle asynchronous resets.  
Typically, the user application must be initialized each time the core interfacee is  
initialized. In this case, use the RSToutput of the core interface as the asynchronous reset  
signal for the user application. If part of the user application requires an initialization  
capability that is asynchronous to PCI-X bus resets, simply design the user application  
with a separate reset signal.  
Note that these reset schemes require the use of routing resources to distribute reset  
signals, since the global resource is not used. The use of the global reset resource is not  
recommended.  
Configuration Pins  
Designers should be aware that PCI-X bus interface pins should not be placed on the dual  
purpose I/O pins used for configuration. Please verify the selected UCF to ensure that the  
pins do not conflict with the pins used for the chosen configuration mode. It is fine for PCI-  
X pins to be located on dual purpose I/O configuration pins that are NOT also used for  
configuration. Please refer to the appropriate device pin-out guide for locations of  
configuration pins.  
Bus Width Detection  
A core interface that provides a 64-bit datapath needs to know if it is connected to a 64-bit  
bus or a 32-bit bus. The core interface is capable of sensing and adjusting to the bus width  
automatically. However, this behavior can be manually forced by setting options in the  
HDL configuration file. For more information, see the Initiator/Target for PCI-X User Guide,  
and the following section about bus mode detection.  
Bus Mode Detection  
A core interface that provides backward compatibility with PCI mode must determine  
whether it is in PCI-X bus mode or PCI bus mode. The core interface is capable of sensing  
and adjusting to the bus mode automatically. However, this behavior can be manually  
forced by setting options in the HDL configuration file. See the Initiator/Target for PCI-X  
User Guide for details.  
The core interface targeting Virtex-E devices cannot support PCI-X bus mode and PCI bus  
mode with a single bitstream. This is because the Virtex-E DLL, (required in PCI-X but  
forbidden in PCI) cannot be switched on and off by any means other than uploading a new  
bitstream to the device. For this reason, a fully compliant design requires two bitstreams  
and the ability to reconfigure the FPGA after the bus mode is detected. The core  
interfacetargeting Virtex-II and Virtex-II Pro devices can support PCI-X bus mode and PCI  
bus mode with a single bitstream, although dual bitstreams may be required in certain  
configurations.  
For designs that use multiple bitstreams, the RTRoutput of the core interface will assert  
following the deassertion of the bus reset signal if the interface recognizes that the incorrect  
PCI-X v5.1 165 Getting Started Guide  
21  
UG158 March 24, 2008  
 
       
R
Chapter 3: Family Specific Considerations  
bitstream is in use. When this occurs, external circuitry is responsible for re-initializing the  
FPGA and loading an alternate bitstream. This requires storage for two complete  
bitstreams and another device, such as a CPLD, for managing the reconfiguration process.  
The reconfiguration process cannot be controlled by the FPGA because the FPGA becomes  
inactive during configuration.  
The bitstream loaded in response to RTRwill become active after the bus reset and the  
design will not be present to observe the busmode and buswidth broadcast. Missing the  
busmode broadcast is not an issue, as the newly loaded bitstream will be correct for the  
busmode in use. However, the newly loaded bitstream will not know if the bus is 32-bit or  
64-bit. Upon the assertion of RTR, the FPGA must save the buswidth state in the CPLD so  
that the CPLD can restore it later.  
Bus width is visible on the PCIW_ENsignal when the Buswidth Detect Disable option is set  
to false in the CFGmodule, even if previously set to true. Buswidth may be forced by  
setting this option to true and then setting Bus Width Manual As 32-bit appropriately.  
While single bitstream designs will set these CFGoptions to permanent true or false values,  
it is possible to control these options dynamically by adding ports to the CFGmodule and  
making signal assignments to CFG[502]and CFG[503]. This important concern is a  
board level design requirement and the exact implementation is dependent on the specific  
Table 3-2 describes available implementation options. For system interface  
implementations that with 1 or 2 bitstreams, the 2-bitstream implementation is allowed to  
provide for future enhancement to a faster bus interface.  
Table 3-2: Bitstream Requirements  
Desired System Interface Implementation  
Virtex-E Devices, PCI Only 33 MHz  
Bitstreams  
1
1
2
1
1
Virtex-E Devices, PCI-X Only 66 MHz  
Virtex-E Devices, PCI-X 66 MHz with PCI 33 MHz  
Virtex-II Devices, Virtex-II Pro, and Virtex-4, PCI Only 33 MHz  
Virtex-II Devices, Virtex-II Pro and Virtex-4, PCI-X Only 66/100/133  
MHz  
Virtex-II and Virtex-II Pro Devices, PCI-X 66 MHz with PCI 33 MHz  
1 or 2  
2
Virtex-II, Virtex-II Pro and Virtex-4 Devices, PCI-X 100 MHz with PCI  
33 MHz  
Virtex-II, Virtex-II Pro and Virtex-4 Devices, PCI-X 133 MHz with PCI  
33 MHz  
2
2
Virtex-4 Devices, PCI-X 66 MHz with PCI 33 MHz  
Bus Clock Usage  
The bus clock output provided by the interface is derived from the bus clock input, and is  
distributed using a global clock buffer. The interface itself is fully synchronous to this  
clock. In general, the portion of the user application that communicates with the interface  
must also be synchronous to this clock.  
22  
PCI-X v5.1 165 Getting Started Guide  
UG158 March 24, 2008  
 
   
R
Electrical Compliance  
It is important to note that the frequency of this clock is not guaranteed to be constant. In  
fact, in a compliant system, the clock may be any frequency, up to and including the  
maximum allowed frequency, and the frequency may change on a cycle-by-cycle basis.  
Under certain conditions, the PCI-X core may also apply phase shifts to this clock.  
For these reasons, the user application should not use this clock as an input to a DLL or  
PLL, nor should the user application use this clock in the design of interval timers (for  
example, DRAM refresh counters).  
Electrical Compliance  
Virtex-II, Virtex-II Pro, and Virtex-4 devices, as specified in the relevant device data sheet,  
exhibit a 10 pF pin capacitance. This is compliant with the PCI Local Bus Specification, with  
one exception. The specification requires an 8 pF pin capacitance for the IDSELpin, to  
allow for non-resistive coupling to an AD[xx]pin. In practice, this coupling may be  
resistive or non-resistive, and is performed on the system board or backplane. For system  
board or backplane designs, use resistive coupling to avoid non-compliance. For add-in  
cards, this is not under the control of the designer.  
The PCI-X Addendum requires an 8 pF pin capacitance for all pins. Virtex-II, Virtex-II Pro,  
and Virtex-4 devices do not comply with this requirement.  
Although the core interface provides a direct PME#output from a general purpose I/O pin,  
this output signal has certain limitations. If the FPGA power is removed, the general  
purpose I/O pin will appear as a low impedance to ground. This appears to the system as  
an assertion of PME#. For this reason, implementations that use the PME#signal should  
employ an external buffering scheme that will prevent false assertions of PME#when  
power is removed from the FPGA device.  
For 3.3 volt signaling in Virtex-II Pro and Virtex-4 devices, the V . supply must be  
CCO  
reduced to 3.0 volts and derived from a precision regulator. This reduction of the output  
driver supply provides robust device protection without sacrificing PCI electrical  
compliance, even in the extreme case where the 3.3 volt system supply climbs as high as  
3.6 volts, as allowed by the PCI Local Bus Specification.  
Figure 3-1 illustrates one possible low-cost solution to generate the required 3.0 volt output  
driver supply. Xilinx recommends the use of this circuit; however, other approaches using  
other regulators are possible.  
SUPPLY  
VCCO  
8
5
7
6
1
2
4
3
IN  
OUT  
ADJ  
SHDN#  
GND  
GND  
BYP  
GND  
38.3, 1%  
LT1763CS8  
+3.0V SUPPLY  
1.0 uF  
10 uF  
26.1, 1%  
GND  
Figure 3-1: PCI/PCI-X Output Driver VCCO Generation  
PCI-X v5.1 165 Getting Started Guide  
23  
UG158 March 24, 2008  
 
   
R
Chapter 3: Family Specific Considerations  
Input Delay Buffers  
Input delay buffers are used to provide guaranteed hold time on all bus inputs when in  
PCI bus mode. Where possible, the core interface targeting Virtex devices uses input delay  
elements present in the IOBs of the FPGA device. The use of these delay buffers is selected  
through the implementation specific constraints file.  
Virtex-4 FPGA implementations that support PCI bus mode make use of the new IDELAY  
input delay buffer primitives. An IDELAY input delay buffer is a calibrated and adjustable  
delay line. This delay mechanism provides superior performance over the legacy input  
delay buffers.  
Designs that use IDELAY primitives also require the use of the IDELAYCTRL primitive.  
The function of the IDELAYCTRL primitive is to calibrate the IDELAY delay lines. To  
perform this calibration, the IDELAYCTRL primitive requires a 200 MHz input clock. The  
design and wrapper files for use with reference clocks contain IDELAY instances,  
IDELAYCTRL instances, and an additional input, REF_I, for a 200 MHz reference clock  
from an I/O pin. This reference clock is distributed to all applicable IDELAYCTRL  
primitives using a global clock buffer. It is important to note that there is some flexibility in  
the origin, generation, and use of this 200 MHz reference clock. The provided design and  
wrapper files represent a trivial case that can may be modified to suit specific design  
requirements.  
For designs requiring IDELAY and IDELAYCTRL for other IP cores, or custom user  
logic, the 200 MHz reference clock can be shared. It is possible to tap the reference  
clock in the wrapper file, after it is driven by the global buffer. This signal may be  
used by other IDELAY and IDELAYCTRL instances.  
For designs that already have a 200 MHz reference clock distributed on a global clock  
buffer, this clock can be shared. The wrapper file can be modified to remove the  
external I/O pin and the global clock buffer instance. Simply tap the existing 200 MHz  
clock signal and bring it into the wrapper file for the interface to use.  
For designs that do not have a 200 MHz reference clock, it may be possible to generate  
a 200 MHz reference clock using a Digital Clock Manager (DCM) and another clock.  
The other clock may be available internally or externally, but must be fixed frequency.  
In this case, it is the responsibility of the user to verify the following:  
1. The jitter of the source clock, to determine if it is appropriate for use as an input to  
a DCM.  
2. The DCM configuration, to generate a 200 MHz clock on any appropriate DCM  
output (CLKFX, CLKDV, and so forth).  
3. The jitter of the derived 200 MHz reference clock, to determine if it is appropriate  
for use as an input to an IDELAYCTRL.  
4. The IDELAYCTRL reset must be tied to the DCM lock output so that the  
IDELAYCTRL remains in reset until the DCM is locked.  
For more information about timing parameters, see the Virtex-4 FPGA Data Sheet and  
Virtex-4 FPGA User Guide. As with the other implementation options, the derived 200 MHz  
reference clock must be distributed by a global clock buffer to the IDELAYCTRL instances.  
Warning! The fixed frequency requirement of the source clock precludes the use of the PCI  
bus clock, unless the design is used in an embedded/closed system where the PCI bus  
clock is known to be a fixed frequency. See “Bus Clock Usage” for additional information  
about the allowed behavior of the PCI bus clock in compliant systems.  
24  
PCI-X v5.1 165 Getting Started Guide  
UG158 March 24, 2008  
 
 
R
Generating Bitstreams  
Generating Bitstreams  
The bitstream generation program, bitgen, may issue DRC warnings when generating  
bitstreams for PCI-X designs. The number of these warnings varies depending on the  
configuration options used for the PCI-X core. Typically, these warnings are related to nets  
with no loads generated during trimming by the map program. Some of these nets are  
intentionally preserved by statements in the user constraints file.  
Please be aware that the bitgen options provided with the example design are only for  
reference. The actual options used will depend on the desired FPGA configuration method  
and clock rate of your complete design, as implemented on a board. Please carefully  
consider the following configuration time requirements when selecting a configuration  
method and clock rate.  
1. Any designs that do not automatically sense both the bus width and bus mode must be  
25  
configured within (100 ms + 2 bus clocks) after the bus power rails become valid.  
2. Any designs that must sense either the bus width or the bus mode must be configured  
within 100 ms after the bus power rails become valid.  
3. Cardbus designs must be configured as quickly as possible after the bus power rails  
become valid.  
PCI-X v5.1 165 Getting Started Guide  
25  
UG158 March 24, 2008  
 
 
R
Chapter 3: Family Specific Considerations  
26  
PCI-X v5.1 165 Getting Started Guide  
UG158 March 24, 2008  
 
R
Chapter 4  
Functional Simulation  
This chapter describes how to simulate the Userapp example design using the supported  
functional simulation tools. If you are using a design with reference clocks, substitute  
pcix_top with pcix_top_r and test_tb with test_tb_r.  
Supported functional simulation tools include  
Cadence IUS v6.1  
Mentor Graphics ModelSim v6.3c  
Cadence IUS  
Before attempting functional simulation, ensure that the IUS environment is properly  
configured.  
1. Navigate to the functional simulation directory:  
cd <Install Path>/verilog/example/func_sim  
2. Edit the test_tb.f file. This file lists command line arguments for IUS, as shown below:  
../source/glbl.v  
../source/cfg_test_s.v  
../source/stimulus.v  
../source/test_tb.v  
../source/busrec.v  
../source/pcix_top.v  
../source/userapp.v  
../../src/xpci/pcix_lc.v  
../../src/xpci/pcix_core.v  
+libext+.vmd+.v  
-y <Xilinx Install Path>/verilog/src/unisims  
-y <Xilinx Install Path>/verilog/src/simprims  
3. Modify the library search path by changing <Xilinx Install Path>to match the  
Xilinx installation directory. If you have changed the wrapper file, be sure you are  
using the correct simulation model.  
4. Save the file.  
Most of the files listed are related to the example design and its test bench. For other  
test benches, the following subset must be used for proper simulation of the core  
interface:  
../source/glbl.v  
PCI-X v5.1 165 Getting Started Guide  
27  
UG158 March 24, 2008  
 
     
R
Chapter 4: Functional Simulation  
../../src/xpci/pcix_lc.v  
../../src/xpci/pcix_core.v  
+libext+.vmd+.v  
-y <Xilinx Install Path>/verilog/src/unisims  
-y <Xilinx Install Path>/verilog/src/simprims  
This subset list does not include any configuration file, user application, top-level  
wrapper, or test bench. These additional files are required for a meaningful simulation.  
5. To run the IUS simulation, type the following:  
ncverilog -f test_tb.f  
IUS processes the simulation files and exits. The test bench prints status messages to  
the console.  
6. After completing simulation, view the ncverilog.logfile to check for errors.  
The Simvision browser may be used to view the simulation results.  
7. If desired, start Simvision using the following command:  
simvision  
Mentor Graphics ModelSim  
Before attempting functional simulation, ensure that the ModelSim environment is  
properly configured.  
Verilog  
1. Navigate to the functional simulation directory:  
cd <Install Path>/verilog/example/func_sim  
2. Edit the test_tb.ffile. This file lists command line arguments, and is shown below:  
../source/glbl.v  
../source/cfg_test_s.v  
../source/stimulus.v  
../source/test_tb.v  
../source/busrec.v  
../source/pcix_top.v  
../source/userapp.v  
../../src/xpci/pcix_lc.v  
../../src/xpci/pcix_core.v  
+libext+.vmd+.v  
-y <Xilinx Install Path>/verilog/src/unisims  
-y <Xilinx Install Path>/verilog/src/simprims  
3. Modify the library search path by changing <Xilinx Install Path>to match the  
Xilinx installation directory. If you have changed the wrapper file make sure you are  
using the correct simulation model.  
4. Save the file.  
28  
PCI-X v5.1 165 Getting Started Guide  
UG158 March 24, 2008  
 
   
R
Mentor Graphics ModelSim  
Most of the files listed are related to the example design and its test bench. For other  
test benches, the following subset must be used for proper simulation of the core  
interface:  
../source/glbl.v  
../../src/xpci/pcix_lc.v  
../../src/xpci/pcix_core.v  
+libext+.vmd+.v  
-y <Xilinx Install Path>/verilog/src/unisims  
-y <Xilinx Install Path>/verilog/src/simprims  
This list does not include any configuration file, user application, top level wrapper, or  
test bench. These additional files are required for a meaningful simulation.  
5. Invoke ModelSim and ensure that the current directory is set to the following:  
<Install Path>/verilog/example/func_sim  
6. To run the simulation, type the following:  
do modelsim.do  
This compiles all modules, loads them into the simulator, displays the waveform  
viewer, and runs the simulation.  
VHDL  
1. Navigate to the functional simulation directory:  
cd <Install Path>/vhdl/example/func_sim  
2. View the test.filesfile. This file lists the individual source files required, and is  
shown below:  
../../src/xpci/pcix_lc.vhd  
../../src/xpci/pcix_core.vhd  
../source/cfg_test_s.vhd  
../source/userapp.vhd  
../source/pcix_top.vhd  
../source/busrec.vhd  
../source/stimulus.vhd  
../source/test_tb.vhd  
If you have changed the wrapper file make sure you are using the correct simulation  
model. Most of the files listed are related to the example design and its test bench. For  
other test benches, the following subset must be used for proper simulation of the  
core interface:  
../../src/xpci/pcix_lc.vhd  
../../src/xpci/pcix_core.vhd  
This subset list does not include any configuration file, user application, top level  
wrapper, or test bench. These additional files are required for a meaningful simulation.  
3. Invoke ModelSim, and ensure that the current directory is set to the following:  
<Install Path>/vhdl/example/func_sim  
4. Create the SimPrim and UniSim libraries. This step only needs to be done once, the  
first time you perform a simulation:  
PCI-X v5.1 165 Getting Started Guide  
29  
UG158 March 24, 2008  
 
 
R
Chapter 4: Functional Simulation  
vlib simprim  
vcom -93 -work simprim <Xilinx Install  
Path>/vhdl/src/simprims/simprim_Vpackage_mti.vhd  
vcom -93 -work simprim <Xilinx Install  
Path>/vhdl/src/simprims/simprim_Vcomponents_mti.vhd  
vcom -93 -work simprim <Xilinx Install  
Path>/vhdl/src/simprims/simprim_VITAL_mti.vhd  
vlib unisim  
vcom -93 -work unisim <Xilinx Install  
Path>/vhdl/src/unisims/unisim_VPKG.vhd  
vcom -93 -work unisim <Xilinx Install  
Path>/vhdl/src/unisims/unisim_VCOMP.vhd  
vcom -93 -work unisim <Xilinx Install  
Path>/vhdl/src/unisims/unisim_VITAL.vhd  
5. To run the simulation, type the following:  
do modelsim.do  
30  
PCI-X v5.1 165 Getting Started Guide  
UG158 March 24, 2008  
 
R
Chapter 5  
Synthesizing a Design  
This chapter describes the use of supported synthesis tools using the Userapp example  
design for step-by-step instructions and illustrations. If you are using a design with  
reference clocks, substitute pcix_top with pcix_top_r and test_tb with test_tb_r.  
Supported synthesis tools include  
Synplicity Synplify  
Exemplar LeonardoSpectrum  
Xilinx XST  
Each section in this chapter illustrates how to synthesize the example design for dual-  
mode operation with a single bitstream. The synthesis flow for other configurations is  
identical.  
Synplicity Synplify  
Before synthesizing a design, ensure that the Synplicity Synplify environment is properly  
configured.  
Verilog  
1. Start Synplify and choose File > New (Figure 5-1), or click the new file icon on the tool  
bar.  
The New dialog appears.  
Figure 5-1: Create a New Project  
PCI-X v5.1 165 Getting Started Guide  
31  
UG158 March 24, 2008  
 
         
R
Chapter 5: Synthesizing a Design  
2. Under File Type, select Project File and enter the project name (flowtest in this example)  
and synthesis directory:  
<Install Path>/verilog/example/synthesis  
3. Click OK to return to the project window (Figure 5-2).  
Figure 5-2: Main Project Window  
4. To add source files to the new project, click Add. The first file (used by any design that  
instantiates Xilinx primitives) is located in:  
<Synplicity Install Path>/lib/xilinx  
32  
PCI-X v5.1 165 Getting Started Guide  
UG158 March 24, 2008  
 
 
R
Synplicity Synplify  
5. Navigate to the virtex.v file (Figure 5-3); then click Add to move this source file into the  
Files To Add list.  
Figure 5-3: Files to Add (Virtex Library)  
The next files are located in:  
<Install Path>/verilog/src/xpci  
6. Navigate to the xpci directory (Figure 5-4), select the simulation model and the  
wrapper files (pcix_core.v and pcix_lc.v), and click Add to move these files into the  
Files To Add list. (Ctrl + click to select multiple files.)  
Figure 5-4: Files to Add (LogiCORE Files)  
The final set of design files (the user application) is located in:  
<Install Path>/verilog/example/source  
PCI-X v5.1 165 Getting Started Guide  
33  
UG158 March 24, 2008  
 
   
R
Chapter 5: Synthesizing a Design  
7. Navigate to the source directory (Figure 5-5), select the cfg_test_s.v, pcix_top.v, and  
userapp.v files, and then click Add.  
Figure 5-5: Files to Add (User Application)  
8. After adding the three final files (for a total of six source files), click OK to return to the  
main project window.  
9. In the Source Files list, view the list of newly added source files by double-clicking the  
flowtest/verilogfolder (if it is not already open). Reorder the source files in the  
folder by dragging them to list them in the hierarchical order displayed in Figure 5-6.  
Figure 5-6: Source Files in Main Project Window  
34  
PCI-X v5.1 165 Getting Started Guide  
UG158 March 24, 2008  
 
   
R
Synplicity Synplify  
10. Click Change Result File to display the EDIF Result File dialog box; then move the to  
following directory:  
<Install Path>/verilog/example/synthesis  
11. Name the file pcix_top_s.edf and click OK to set the name of the result file and  
return to the main project window.  
Note: In practice, the directory for the EDIF result file does not need to be changed. However,  
the sample processing scripts included with the example design assume that the output EDIF  
files will be located in the synthesisdirectory.  
12. From the main project window, click Change Target to display the Options for  
Implementation dialog, Figure 5-7.  
Figure 5-7: Options for Implementation: Device  
13. On the Device tab, set the Technology, Part, Speed, and Package options to reflect the  
targeted device (a 2V1000FG456-5 in this example). Be sure that Disable I/O Insertion  
is deselected.  
14. On the Options/Constraints tab, deselect Symbolic FSM Compiler (but leave Resource  
Sharing selected) and set the Frequency to 66 MHz.  
Figure 5-8: Options for Implementation: Options/Constraints  
PCI-X v5.1 165 Getting Started Guide  
35  
UG158 March 24, 2008  
 
   
R
Chapter 5: Synthesizing a Design  
15. On the Implementation Results tab, deselect Write Vendor Constraint File.  
16. Click OK to return to the main project window.  
17. From the main project window, click Run.  
Synplify synthesizes the design and writes out an optimized EDIF file. In the lower-  
right corner of the window, the various stages or synthesis, such as Compiling or  
Mapping, are displayed.  
When the process is complete, Done is displayed. Synplify may issue a number of  
warnings (which are expected) about instantiated I/O cells and attributes used for  
other synthesis tools.  
VHDL  
1. Start Synplify and choose File > New (Figure 5-9), or use the new file icon on the tool  
bar. The New dialog appears.  
Figure 5-9: Create a New Project  
2. Under File Type, select Project File and enter the project name (flowtest in this example)  
and synthesis directory:  
<Install Path>/vhdl/example/synthesis  
36  
PCI-X v5.1 165 Getting Started Guide  
UG158 March 24, 2008  
 
   
R
Synplicity Synplify  
3. Click OK to exit the dialog and return to the project window (Figure 5-10).  
Figure 5-10: Main Project Window  
4. To add source files to the new project, click Add.  
The first file (used by any design that instantiates Xilinx primitives) is located in:  
<Synplicity Install Path>/lib/xilinx  
5. Select the virtex.vhd file (Figure 5-11); then click Add to move the file into the Files  
To Add list.  
Figure 5-11: Files to Add (Virtex Library)  
PCI-X v5.1 165 Getting Started Guide  
37  
UG158 March 24, 2008  
 
   
R
Chapter 5: Synthesizing a Design  
The next files are located in:  
<Install Path>/vhdl/src/xpci  
6. Navigate to the xpci directory (Figure 5-12), select the simulation model and the  
wrapper files (pcix_core.vhd and pcix_lc.vhd), and click Add to move these files into  
the Files To Add list. (Ctrl + click to select multiple files.)  
Figure 5-12: Files to Add (LogiCORE Files)  
The final set of design files (the user application) is located in:  
<Install Path>/vhdl/example/source  
7. Navigate to the source directory (Figure 5-13), select the cfg_test_s.vhd, pcix_top.vhd,  
and userapp.vhd, then click Add.  
Figure 5-13: Files to Add (User Application)  
38  
PCI-X v5.1 165 Getting Started Guide  
UG158 March 24, 2008  
 
   
R
Synplicity Synplify  
8. In the Source Files list, view the list of newly added source files by double-clicking the  
flowtest/vhdlfolder (if it is not already open). Drag to reorder the source files in  
the hierarchical order shown in Figure 5-14.  
Figure 5-14: Main Project Window  
9. Click Change Result File to display the EDIF Result File dialog box; then move the to  
following directory:  
<Install Path>/vhdl/example/synthesis  
10. Name the file pcix_top.edfand click OK to set the name of the result file and return  
to the main project window.  
Note: In practice, the directory for the EDIF result file does not need to be changed. However,  
the sample processing scripts included with the example design assume that the output EDIF  
files will be located in the synthesis directory.  
PCI-X v5.1 165 Getting Started Guide  
39  
UG158 March 24, 2008  
 
 
R
Chapter 5: Synthesizing a Design  
11. From the main project window, click Change Target to display the Options for  
Implementation dialog box, as shown in Figure 5-15.  
Figure 5-15: Options for Implementation: Device  
12. On the Device tab, set the Technology, Part, Speed, and Package options to reflect the  
targeted device (a 2V1000FG456-5 in this example). Be sure that Disable I/O Insertion  
is deselected.  
13. On the Options/Constraints tab, deselect Symbolic FSM Compiler (leave Resource  
Sharing selected) and set the Frequency to 66 MHz.  
14. On the Implementation Results tab, deselect Write Vendor Constraint File.  
15. Click OK to return to the main project window; then click Run.  
Synplify synthesizes the design and writes out an optimized EDIF file. In the lower-  
right corner of the window, the various stages or synthesis, such as Compiling or  
Mapping, are displayed. When the process is complete, Done is displayed. Note that  
Synplify may issue a number of warnings (which are expected) about instantiated I/O  
cells and attributes used for other synthesis tools.  
Exemplar LeonardoSpectrum  
Before attempting to synthesize a design, ensure that the Exemplar LeonardoSpectrum  
environment is properly configured for use.  
1. Navigate to the synthesis directory:  
cd <Install Path>/hdl/example/synthesis  
The synthesis directory contains a script for use with LeonardoSpectrum.  
2. Edit the script to change the following line:  
cd <Install Path>/hdl/example/synthesis  
Modify the path to point to the actual installation location, and then save the file.  
3. Invoke LeonardoSpectrum.  
Depending on the implementation, you may also need to change the wrapper file and  
the simulation model, but this is not required for the example design.  
4. Synthesize the design by running the leonardo_s.tcl script.  
40  
PCI-X v5.1 165 Getting Started Guide  
UG158 March 24, 2008  
 
   
R
Xilinx XST  
Note: if you run LeonardoSpectrum with the graphical user interface, the quick setup form cannot be  
used to synthesize the design. Instead, choose File > Run Script from the menu.  
The end result of the synthesis step is an EDIF file that is fed into the Xilinx implementation  
tools during the implementation step.  
In practice, the provided script file must be modified to accommodate other designs. To  
provide insight into the synthesis script, the major steps are presented below:  
1. Various synthesis options are set through the use of environment variables. These  
must be present in the script, and should not be modified. The synthesis library is also  
loaded; this may be altered for different devices and speed grades.  
2. The design is loaded by reading in the design files. At this point, the top level module  
is declared as the present_design. The script adds nopadattributes (with a value of  
FALSE) to all PCI-X bus interface signals. The I/O structures for these ports are  
directly instantiated in the wrapper file.  
3. The optimization step is done with the -hierarchy preserveand the -chip  
options. The -hierarchy preserveoption prevents LeonardoSpectrum from  
dissolving the design hierarchy. The -chipoption indicates that automatic I/O buffer  
insertion should be performed.  
4. After synthesis is complete, the synthesized netlist is written out.  
5. The tool may issue warnings about unused signals. These warnings are expected.  
Xilinx XST  
Before attempting to synthesize a design, ensure that the Xilinx XST environment is  
properly configured. Synthesis is supported only from the XST command line.  
1. Navigate to the synthesis directory:  
cd <Install Path>/hdl/example/synthesis  
The synthesis directory contains a script for use with Xilinx XST; this script is called  
run_xst.batfor PC platforms and run_xst.shfor Unix platforms. Note that the  
run_xst.cmdand run_xst.prjfiles are common and used by both scripts.  
2. If required, modify the files as required to suit your application. You may need to  
change the target architecture and select different wrapper and configuration files.  
3. Synthesize the design by running the script.  
The end result of the synthesis step is an NGC file, which is fed into the Xilinx  
implementation tools during the implementation step. The tool may issue warnings about  
unused signals; these warnings are expected.  
PCI-X v5.1 165 Getting Started Guide  
41  
UG158 March 24, 2008  
 
 
R
Chapter 5: Synthesizing a Design  
42  
PCI-X v5.1 165 Getting Started Guide  
UG158 March 24, 2008  
 
R
Chapter 6  
Implementing a Design  
This chapter describes the use of supported FPGA implementation tools using the Userapp  
example design. If you are using a design with reference clocks, substitute pcix_top with  
pcix_top_r and test_tb with test_tb_r.  
Supported FPGA implementation tools are included with the ISE Foundation v10.1  
software.  
ISE Foundation  
Before implementing a design, ensure that the Xilinx environment is properly configured  
and that the design has been successfully synthesized.  
1. Navigate to the implementation directory:  
cd <Install Path>/hdl/example/xilinx  
This directory contains the run_xil_n, run_xil_s, and run_xil_xscripts. These  
call the appropriate tools to place and route the example design in one of three possible  
incarnations: PCI only, Dual Mode, and PCI-X only. Use the script that corresponds to  
the core configuration you have selected. For the default example design, the Dual  
Mode script should be used.  
2. Inspect the appropriate script file and note the following:  
The ngdbuildcommand lists both../../src/xpciand../synthesisas  
search directories. The xpcidirectory contains a netlist of the core interface, and  
the synthesisdirectory must contain the EDIF netlist generated during design  
synthesis.  
The ngdbuildcommand also reads a user constraints file that corresponds to a  
desired target device and a particular version of the core interface.  
To target a different device or to use a different version of the core interface, the  
constraints file must be changed to match the device and interface selection. The  
available selections are listed in the Chapter 3, “Family Specific Considerations.”  
The user constraints files provided with the core interface contain constraints that  
guarantee pinout and timing specifications. These constraints must be used  
during processing.  
Any additional constraints that pertain to the user application must be placed in  
this file. Before making additions to the user constraints file, back up the original  
so that it may be restored if necessary.  
The mapcommand requires no special arguments, but uses an input/output  
register packing option.  
The PAR effort levels and delay cleanup iterations may be adjusted if necessary.  
PCI-X v5.1 165 Getting Started Guide  
43  
UG158 March 24, 2008  
 
     
R
Chapter 6: Implementing a Design  
The trcecommand performs a static timing analysis based on the design  
constraints originally specified in the user constraints file.  
The netgencommand generates a simulation model of the placed and routed  
design.  
3. Implement the design by running the appropriate script.  
During initial processing trials, it is useful to enter the commands one at a time from the  
command line, instead of running the script, so that you may inspect the output of each  
step.  
44  
PCI-X v5.1 165 Getting Started Guide  
UG158 March 24, 2008  
 
R
Chapter 7  
Timing Simulation  
This chapter describes the use of supported timing simulation tools using the Userapp  
example design. If you are using a design with reference clocks, substitute pcix_top with  
pcix_top_r and test_tb with test_tb_r.  
Supported timing simulation tools include  
Cadence IUS v6.1  
Mentor Graphics ModelSim v6.3c  
Note: The stimulus source file delivered with the example design  
(source/stimulus.hdl) simulates in both PCI and PCI-X mode, automatically  
detecting the proper mode and bus speed based on power-on signaling.  
Cadence IUS  
Before attempting timing simulation, ensure that the IUS environment is properly  
configured for use.  
1. Navigate to the timing simulation directory and copy the back annotated timing  
models from the implementation directory:  
cd <Install Path>/verilog/example/post_sim  
cp ../xilinx/*.v ./  
cp ../xilinx/*.sdf ./  
2. Edit the test_tb.ffile. This file lists command line arguments for IUS, and is shown  
below:  
../source/stimulus.v  
../source/test_tb.v  
../source/busrec.v  
./pcix_top_s_routed.v  
+libext+.vmd+.v  
-y <Xilinx Install Path>/verilog/src/simprims  
Modify the library search path by changing <Xilinx Install Path>to match the  
Xilinx installation directory. Save the file.  
3. To run the IUS simulation, type the following:  
ncverilog -f test_tb.f  
IUS processes the simulation files and exits. The test bench prints status messages to the  
console. After the simulation completes, view the ncverilog.logfile to check for errors.  
PCI-X v5.1 165 Getting Started Guide  
45  
UG158 March 24, 2008  
 
     
R
Chapter 7: Timing Simulation  
The SimVision browser may be used to view simulation results. SimVision is started with  
the following command:  
simvision  
Mentor Graphics ModelSim  
Before attempting functional simulation, ensure that the ModelSim environment is  
properly configured for use.  
Verilog  
1. Navigate to the timing simulation directory and copy the back annotated timing  
models from the implementation directory:  
cd <Install Path>/verilog/example/post_sim  
cp ../xilinx/*.v ./  
cp ../xilinx/*.sdf ./  
2. Edit the test_tb.ffile. This file lists command line arguments for ModelSim, and is  
shown below:  
../source/stimulus.v  
../source/test_tb.v  
../source/busrec.v  
./pcix_top_s_routed.v  
+libext+.vmd+.v  
-y <Xilinx Install Path>/verilog/src/simprims  
Modify the library search path by changing <Xilinx Install Path>to match the  
Xilinx installation directory. Save the file.  
3. Invoke ModelSim, and ensure that the current directory is set to:  
<Install Path>/verilog/example/post_sim  
4. To run the simulation:  
do modelsim.do  
This compiles all modules, loads them into the simulator, displays the waveform viewer,  
and runs the simulation.  
VHDL  
1. Navigate to the timing simulation directory and copy the back annotated timing  
models from the implementation directory:  
cd <Install Path>/vhdl/example/post_sim  
cp ../xilinx/*.vhd ./  
cp ../xilinx/*.sdf ./  
2. View the test.filesfile. This file lists the individual source files required, and is  
shown below:  
./pcix_top_s_routed.vhd  
../source/busrec.vhd  
../source/stimulus.vhd  
../source/test_tb.vhd  
46  
PCI-X v5.1 165 Getting Started Guide  
UG158 March 24, 2008  
 
     
R
Mentor Graphics ModelSim  
3. Invoke ModelSim, and ensure that the current directory is set to:  
<Install Path>/vhdl/example/post_sim  
4. Create the SimPrim and UniSim libraries. This step only needs to be done once, the  
first time you perform a simulation:  
vlib simprim  
vcom -93 -work simprim <Xilinx Install  
Path>/vhdl/src/simprims/simprim_Vpackage_mti.vhd  
vcom -93 -work simprim <Xilinx Install  
Path>/vhdl/src/simprims/simprim_Vcomponents_mti.vhd  
vcom -93 -work simprim <Xilinx Install  
Path>/vhdl/src/simprims/simprim_VITAL_mti.vhd  
vlib unisim  
vcom -93 -work unisim <Xilinx Install  
Path>/vhdl/src/unisims/unisim_VPKG.vhd  
vcom -93 -work unisim <Xilinx Install  
Path>/vhdl/src/unisims/unisim_VCOMP.vhd  
vcom -93 -work unisim <Xilinx Install  
Path>/vhdl/src/unisims/unisim_VITAL.vhd  
5. To run the simulation:  
do modelsim.do  
This compiles all modules, loads them into the simulator, displays the waveform  
viewer, and runs the simulation.  
PCI-X v5.1 165 Getting Started Guide  
47  
UG158 March 24, 2008  
 

Whirlpool Oven FT 337 User Manual
Wright Manufacturing Lawn Mower B User Manual
Xyron Laminator ProFinishTM Jr User Manual
Yamaha Automobile fzs6w User Manual
Yamaha Music Mixer M3000A User Manual
Yamaha Outboard Motor 6M8 F8199 18 User Manual
Zanussi Convection Oven 239002 User Manual
Zanussi Heating System ZLGS12HG 856248 User Manual
Zanussi Oven ZYB992 User Manual
Zanussi Washer ZWG 5120 P User Manual