Xilinx - Pci Databook
Xilinx - Pci Databook
Xilinx - Pci Databook
, XILINX, XACT, XC2064, XC3090, XC4005, XC-DS501, FPGA Archindry, NeoCAD, NeoCAD EPIC, NeoCAD
PRISM, NeoROUTE, Plus Logic, Plustran, P+, Timing Wizard, and TRACE are registered trademarks of Xilinx, Inc.
, all XC-prefix product designations, XACTstep, XACTstep Advanced, XACTstep Foundry, XACT-Floorplanner, XACT-
Performance, XAPP, XAM, X-BLOX, X-BLOX plus, XChecker, XDM, XDS, XEPLD, XPP, XSI, Foundation Series, Alli-
anceCORE, BITA, Configurable Logic Cell, CLC, Dual Block, FastCLK, FastCONNECT, FastFLASH, FastMap, HardWire,
LCA, Logic Cell, LogiCORE, LogiBLOX, LogicProfessor, MicroVia, PLUSASM, PowerGuide, PowerMaze, Select-RAM,
SMARTswitch, TrueMap, UIM, VectorMaze, VersaBlock, VersaRing, and ZERO+ are trademarks of Xilinx, Inc. The Program-
mable Logic Company and The Programmable Gate Array Company are service marks of Xilinx, Inc.
All other trademarks are the property of their respective owners.
Xilinx does not assume any liability arising out of the application or use of any product described or shown herein; nor does
it convey any license under its patents, copyrights, or maskwork rights or any rights of others. Xilinx reserves the right to
make changes, at any time, in order to improve reliability, function or design and to supply the best product possible. Xilinx
will not assume responsibility for the use of any circuitry described herein other than circuitry entirely embodied in its prod-
ucts. Xilinx devices and products are protected under one or more of the following U.S. Patents: 4,642,487; 4,695,740;
4,706,216; 4,713,557; 4,746,822; 4,750,155; 4,758,985; 4,820,937; 4,821,233; 4,835,418; 4,853,626; 4,855,619;
4,855,669; 4,902,910; 4,940,909; 4,967,107; 5,012,135; 5,023,606; 5,028,821; 5,047,710; 5,068,603; 5,140,193;
5,148,390; 5,155,432; 5,166,858; 5,224,056; 5,243,238; 5,245,277; 5,267,187; 5,291,079; 5,295,090; 5,302,866;
5,319,252; 5,319,254; 5,321,704; 5,329,174; 5,329,181; 5,331,220; 5,331,226; 5,332,929; 5,337,255; 5,343,406;
5,349,248; 5,349,249; 5,349,250; 5,349,691; 5,357,153; 5,360,747; 5,361,229; 5,362,999; 5,365,125; 5,367,207;
5,386,154; 5,394,104; 5,399,924; 5,399,925; 5,410,189; 5,410,194; 5,414,377; 5,422,833; 5,426,378; 5,426,379;
5,430,687; 5,432,719; 5,448,181; 5,448,493; 5,450,021; 5,450,022; 5,453,706; 5,466,117; 5,469,003; 5,475,253;
5,477,414; 5,481,206; 5,483,478; 5,486,707; 5,486,776; 5,488,316; 5,489,858; 5,489,866; 5,491,353; 5,495,196;
5,498,979; 5,498,989; 5,499,192; 5,500,608; 5,500,609; 5,502,000; 5,502,440; RE 34,363, RE 34,444, and RE 34,808.
Other U.S. and foreign patents pending. Xilinx, Inc. does not represent that devices shown or products described herein are
free from patent infringement or from any other third party right. Xilinx assumes no obligation to correct any errors contained
herein or to advise any user of this text of any correction if such be made. Xilinx will not assume any liability for the accuracy
or correctness of any engineering or software support or assistance provided to a user.
Xilinx products are not intended for use in life support appliances, devices, or systems. Use of a Xilinx product in such appli-
cations without the written consent of the appropriate Xilinx officer is prohibited.
Copyright 1999 Xilinx, Inc. All Rights Reserved.
Data Book
Xilinx PCI Solutions (www) www.xilinx.com/pci
Xilinx Home Page www.xilinx.com
Sincerely
Per Holmberg
1 Introduction
2 PCI Products
3 FPGA Products
4 Design Methodology
7 Resources
8 Waveforms
Introduction
Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-1
Using an FPGA for PCI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-1
Using Xilinx for PCI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-1
Highest-Performance PCI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-1
Lowest-cost PCI. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-1
The Real-PCI from Xilinx . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-1
Real Compliance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-1
Real Flexibility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-2
Real Performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-2
Real Availability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-3
Xilinx PCI Design Kits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-3
PCI over the Internet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-4
About this Databook . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-4
PCI Products
PCI64 Virtex Interface Version 3.0
Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-1
Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-1
Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-2
General Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-2
Smart-IP Technology - guaranteed timing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-3
Functional Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-3
PCI Configuration Space . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-3
PCI I/O Interface Block . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-4
Parity Generator/Checker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-4
Target State Machine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-4
Initiator State Machine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-4
User Application with Optional Burst FIFOs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-4
Interface Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-4
Supported PCI Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-4
Burst Transfer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-4
Bandwidth. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-4
Timing Specification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-5
Verification Methods. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-5
Ping Reference Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-5
Device Utilization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-6
Recommended Design Experience . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-6
PCI32 Virtex Version 3.0
Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-7
Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-7
Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-8
General Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-8
Smart-IP Technology - guaranteed timing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-9
Functional Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-9
PCI Configuration Space . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-9
PCI I/O Interface Block . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 10
Parity Generator/Checker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 10
Target State Machine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 10
Initiator State Machine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 10
User Application with Optional Burst FIFOs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 10
Interface Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 10
Supported PCI Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 10
Burst Transfer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 10
Bandwidth. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 11
iv May, 1999
PCI32 Spartan Master & Slave Interface
Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 25
Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 25
Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 26
General Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 26
Smart-IP Technology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 27
Functional Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 27
PCI I/O Interface Block . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 27
Parity Generator/Checker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 27
Target State Machine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 27
Initiator State Machine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 27
PCI Configuration Space . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 27
User Application with Optional Burst FIFOs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 27
Interface Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 28
Supported PCI Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 28
Burst Transfer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 28
Bandwidth. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 28
Timing Specification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 29
Verification Methods. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 29
Ping Reference Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 30
Synthesizable PCI Bridge Design Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 30
Device Utilization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 30
Recommended Design Experience . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 30
Synthesizable PCI Bridge Design Examples
Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 31
General Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 31
Functional Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 33
BAR0 Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 33
BAR1 Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 34
Register File Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 34
Target FIFO Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 34
Initiator FIFO Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 34
Pinout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 35
Core Modifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 35
Verification Methods. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 35
Recommended Design Experience . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 35
Reference Design License . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 35
PCI64 PCI Prototyping Board
Nallatech Limited . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 37
Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 37
Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 37
Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 38
General Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 38
Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 38
Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 39
HotPCI Spartan Prototyping Board
Virtual Computer Corporation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 41
Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 41
Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 41
Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 41
General Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 42
Software. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 42
Functional Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 42
Configuration with the CCM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 42
Configuration with an Xchecker cable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 43
May, 1999 v
DriverWorks Windows Device Driver Development Kit Version 2.0
Compuware NuMega . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ................ 2 - 45
Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ................ 2 - 45
Support. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ................ 2 - 45
Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ................ 2 - 45
Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ................ 2 - 45
Licensing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ................ 2 - 47
VtoolsD Windows Device Driver Development Kit Version 3.0
Compuware NuMega . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ................ 2 - 49
Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ................ 2 - 49
Support. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ................ 2 - 49
Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ................ 2 - 49
Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ................ 2 - 50
Licensing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ................ 2 - 50
Synthesizable PCI Power Management Design Example
Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 51
General Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 52
Functional Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 52
Capabilities Linked List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 52
Power Management Register Block . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 53
User-defined Configuration Space. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 54
PME Generation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 54
Pinout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 54
Core Modifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 54
The cfg file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 54
The pcim_top/pcis_top file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 54
Web download . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 54
Editing the cfg file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 55
Verification Methods. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 55
Recommended Design Experience . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 55
FPGA Products
LogiCORE PCI Supported Virtex FPGAs
Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 - 1
Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 - 1
LogiCORE PCI32 Supported Spartan and SpartanXL FPGAs
Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-3
Spartan Series Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-3
Additional SpartanXL Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-4
Universal PCI Interfaces. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-4
Design Methodology
LogiCORE PCI Configuration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-1
Core Configuration in VHDL and Verilog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-2
Selectable Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-2
Enable 66 MHz (Virtex PCI64 only) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-2
Latency Timer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-2
Base Address Register Enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-2
External Subsystem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-2
Cap List Enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-2
INTA# Enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-2
User Config Space. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-2
Core Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-2
Base Address Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-2
vi May, 1999
PCI Compliance Checklists
Virtex PCI Compliance Checklist
Component Product Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-1
Component Electrical Checklist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-1
5 V Signaling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-2
3.3 V Signaling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-4
Loading and Device Protection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-6
Timing Specification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-7
64-bit Components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-8
XC4000XLA PCI Compliance Checklist
Component Product Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-9
Component Electrical Checklist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-9
5 V Signaling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 - 10
3.3 V Signaling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 - 12
Loading and Device Protection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 - 14
Timing Specification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 - 15
64-bit Components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 - 16
Spartan-XLPCI Compliance Checklist
Component Product Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 - 17
Component Electrical Checklist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 - 17
5 V Signaling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 - 18
3.3 V Signaling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 - 20
Loading and Device Protection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 - 22
Timing Specification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 - 23
64-bit Components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 - 24
LogiCORE PCI V3.0 Cores PCI Compliance Checklist
Component Product Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 - 25
Component Configuration Checklist. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 - 26
Organization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 - 26
Device Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 - 28
Device Status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 - 28
Base Addresses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 - 29
VGA Devices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 - 30
General Component Protocol Checklist (Master). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 - 31
General Component Protocol Checklist (Target) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 - 33
Component Protocol Checklist for a Master Device . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 - 35
Test Scenario: 1.1. PCI Device Speed Tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 - 35
Test Scenario: 1.2. PCI Bus Target Abort Cycles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 - 36
Test Scenario: 1.3. PCI Bus Target Retry Cycles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 - 38
Test Scenario: 1.4. PCI Bus Single Data Phase Disconnect Cycles . . . . . . . . . . . . . . . . . . . . . . . . 5 - 39
Test Scenario: 1.5. PCI Bus Multi-Data Phase Target Abort Cycles . . . . . . . . . . . . . . . . . . . . . . . . 5 - 40
Test Scenario: 1.6. PCI Bus Multi-Data Phase Retry Cycles. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 - 43
Test Scenario: 1.7. PCI Bus Multi-Data Phase Disconnect Cycles . . . . . . . . . . . . . . . . . . . . . . . . . 5 - 44
Test Scenario: 1.8. Multi-Data Phase and TRDY# Cycles. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 - 45
Test Scenario: 1.9. Bus Data Parity Error Single Cycles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 - 48
Test Scenario: 1.10. Bus Data Parity Error Multi-Data Phase Cycles . . . . . . . . . . . . . . . . . . . . . . . 5 - 49
Test Scenario: 1.11. Bus Master Timeout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 - 50
Test Scenario: 1.12. Target Lock. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 - 50
Test Scenario: 1.13. PCI Bus Master Parking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 - 51
Test Scenario: 1.14. PCI Bus Master Arbitration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 - 51
Test Scenario 1.x Explanations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 - 51
Component Protocol Checklist for a Target Device . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 - 52
Test Scenario: 2.1. Target Reception of an Interrupt Cycle. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 - 52
Test Scenario: 2.2. Target Reception of a Special Cycle. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 - 52
Resources
Resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-1
PCI Special Interest Group (PCI-SIG) Publications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-1
PCI and FPGA XPERT Partners . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-1
Supporting PCI Tools. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-2
PCI Reference Books . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-3
Xilinx Documents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-3
LogiCORE User's Lounge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-3
Waveforms
Waveforms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-1
Target Configuration Read . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-2
Target Configuration Write. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-4
Initiator 32-bit Single Memory Read . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-6
Initiator 32-bit Single Memory Write. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-8
Initiator 32-bit Burst Memory Read Multiple. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 - 10
Initiator 32-bit Burst Memory Write . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 - 12
Initiator 32-bit Burst Memory Write with Disconnect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 - 14
Target 32-bit Single Memory Read . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 - 16
Target 32-bit Single Memory Write . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 - 18
Target 32-bit Burst Memory Read Multiple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 - 20
Target 32-bit Burst Memory Write . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 - 22
Target 32-bit Burst Memory Write with Disconnect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 - 24
Target 32-bit Retry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 - 26
Target 32-bit Abort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 - 28
May, 1999 ix
x May, 1999
11
Introduction
1 Introduction
2 PCI Products
3 FPGA Products
4 Design Methodology
7 Resources
8 Waveforms
Introduction
PCI (Peripheral Component Interconnect) has become one
of the most popular bus standards, not only for personal
computers, but also for industrial computers, communica-
tion switches, routers, and instrumentation.
PCI is also a significant design challenge; the stringent
electrical, functional, and timing specifications are difficult
to meet in any technology and the standard keeps evolving
to meet the dynamic needs of our industry.
This is why you need a flexible PCI solution that will meet
both your current and future requirements, while guaran-
teeing full PCI compliance with no limitations on perfor-
mance or functionality.
Using an FPGA for PCI
By integrating a fully-compliant PCI interface with an appli-
cation-specific back-end design into one FPGA, you can
achieve higher integration, higher performance and lower
cost than other PCI solutions. The Real-PCI from Xilinx
Further, the Xilinx PCI solution can be customized for a The Real-PCI from Xilinx is engineered to address all your
specific application and, as a result, the highest possible requirements on a fully compliant PCI system. It provides
performance is achieved. you with
The flexibility of an FPGA makes it possible to update the • Real Compliance
PCI board, through software alone, in development or in the • Real Flexibility
field. This significantly reduces your design risk and cuts • Real Performance
development time. • Real Availability
Real Performance
All Xilinx PCI cores operate at maximum throughput, with 0
wait-state bursts. For example, the Xilinx Real-PCI 64/66
solution allows you to create 64-bit PCI systems that oper-
ate at up to 66MHz, delivering a sustained throughput of up
to 528 Mbytes per second - the maximum performance you
can get from PCI. Our PCI 32/33 cores supports up to 132
Mbytes per second.
Real Availability
Real-PCI is here today. It includes a complete family of Log-
iCORE designs that are fully characterized for our
XC4000XLA, Spartan, SpartanXL, and Virtex FPGAs. By
using our standard, off-the-shelf manufacturing capability,
leading edge silicon processes, excellent quality and test-
ability, and lower manufacturing costs. Plus Real-PCI is not
just cores and devices, it’s also a complete system of devel-
opment tools, support, services, and third-party Xilinx-
authorized XPERTS to help you every step of the way.
PCI Products
1 Introduction
2 PCI Products
3 FPGA Products
4 Design Methodology
7 Resources
8 Waveforms
LogiCORE™ Facts
R
Core Specifics
Xilinx Inc. Device Family Virtex
2100 Logic Drive
Slices Used1 381-403
San Jose, CA 95124
IOBs Used 88
Phone: +1 408-559-7778
Fax: +1 408-377-3259 System Clock fmax 0-66MHz
E-mail: Techsupport: hotline@xilinx.com Device Features Used Bi-directional data buses
Feedback: logicore@xilinx.com SelectIO
URL: www.xilinx.com/pci Block SelectRAM+™
(optional user FIFO)
Introduction Boundary scan (optional)
With Xilinx LogiCORE PCI64 Virtex interface, a designer Supported Devices2/Percent Resources Used
can build a customized, 64-bit, 0-66 MHz fully PCI compli- I/O Slices
ant system with the highest possible sustained perfor-
XCV300-5/6 BG4323 28% 12%
mance, 528 Mbytes/sec, and up to 1 Million System Gates
in the Virtex family FPGA. XCV1000-5/6 FG6803 17% 3%
Provided with Core
Features Documentation PCI Design Guide
PCI Implementation Guide
• Fully 2.2 PCI compliant 64-bit, 0-66 MHz PCI Initiator/
PCI Data Book
Target Interface
• Zero wait-state burst operation Design File Formats Verilog/VHDL Simulation Model
• Programmable single-chip solution with customizable Verilog/VHDL Instantiation Code
back-end functionality NGO Netlist
• Pre-defined implementation for predictable timing in Constraint Files M1 User Constraint File (UCF)
Xilinx Virtex Series FPGAs M1 Guide files
• Incorporates Xilinx Smart-IP Technology Verification Tools Verilog/VHDL Testbench
• 3.3 V Operation at 33-66 MHz Reference designs & Example designs:
• 3.3 V and 5 V Operation at 0-33 MHz application notes PING64 Reference Design
• Master automatically handles 64-bit or 32-bit PCI Synthesizable PCI64 Bridge(SB07)
transactions without knowing the bus width of the target Design Tool Requirements
• Fully verified design tested with Xilinx testbench and
Xilinx Core Tools M1.5i SP2
hardware
• Configurable on-chip dual-port FIFOs can be added for Tested Entry/Verifica- For CORE instantiation:
maximum burst speed tion Tools4 Synopsys FPGA Express
• Supported Initiator functions (PCI Master only) Synopsys FPGA Compiler
- Memory Read, Memory Write, Memory Read Synplicity Synplify
Multiple (MRM), Memory Read Line (MRL) For CORE verification:
commands Cadence Verilog XL
- I/O Read, I/O Write commands MTI ModelSim PE/Plus V4.7g
- Configuration Read, Configuration Write commands Xilinx provides technical support for this LogiCORE™ product when
used as described in the User’s Guide and in the Application Notes.
- Bus Parking Xilinx cannot guarantee timing, functionality, or support of product if
- Special Cycles, Interrupt Acknowledge implemented in devices not listed above, or if customized beyond
- Basic Host Bridging that referenced in the product documentation, or if any changes are
made in sections of design marked as “DO NOT MODIFY”.
PAR
PAR64 Base Base Base
Parity Command/
PERR- Generator/ Address Address Address Status
Checker Register Register Register Register
SERR- 0 1 2
USER APPLICATION
AD[63:0]
PCI I/O INTERFACE
ADIO[63:0]
FRAME-
Interrupt Vendor ID,
IRDY- Latency
Pin and Rev ID,
Timer
REQ- Initiator Line Other User
Register
State Register Data
GNT- Machine
REQ64-
PCI Configuration Space
ACK64-
TRDY-
Target
DEVSEL- State
STOP- Machine
LC003
Drawing on the architectural advantages of Xilinx FPGAs, Base Address Register 2 (BAR2) 18h
new Xilinx Smart-IP technology ensures highest perfor-
Base Address Register 3 (BAR3) 1Ch
mance, predictability, repeatability, and flexibility in PCI
designs. The Smart-IP technology is incorporated in every Base Address Register 4 (BAR5) 20h
LogiCORE PCI Core.
Base Address Register 5 (BAR5) 24h
Xilinx Smart-IP technology leverages the Xilinx architec-
tural advantages, such as look-up tables (LUTs), distrib- Cardbus CIS Pointer 28h
uted RAM, and segmented routing, as well as floorplanning
information, such as logic mapping and relative location Subsystem ID Subsystem Vendor ID 2Ch
constraints. This technology provides the best physical lay- Expansion ROM Base Address 30h
out, predictability, and performance. Additionally, these pre-
determined features allow for significantly reduced compile Reserved CapPtr 34h
times over competing architectures.
Reserved 38h
PCI Cores made with Smart-IP technology are unique by
maintaining their performance and predictability regardless Max_Lat Min_Gnt Interrupt Interrupt 3Ch
of the device size. Pin Line
To guarantee the critical setup, hold, and min. and max. Reserved 40h-FFh
clock-to-out timing, the PCI core is delivered with Smart-IP Note:
constraint files that are unique for a device and package Italicized address areas are not implemented in the LogiCORE
combination. These constraint files guide the implementa- PCI64 Virtex Interface default configuration. These locations return
tion tools so that the critical paths always are within PCI zero during configuration read accesses.
specification. Retargeting the PCI core to an unsupported
Each BAR sets the base address for the interface and
device will void the guarantee of timing. Contact one of the
allows the system software to determine the addressable
Xilinx XPERTs partners for support of unlisted devices and
range required by the interface. Each BAR designated as a
packages. See the XPERTs section in chapter 7 of the Xil-
memory space can be made to represent a 32-bit or a 64-
inx PCI Data Book for contact information.
bit space.
Functional Description Using a combination of Configurable Logic Block (CLB) flip-
flops for the read/write registers and CLB look-up tables for
The LogiCORE PCI64 Master and Slave Interface is parti-
the read-only registers results in optimized logic mapping
tioned into five major blocks and an user application as
and placement.
shown in Figure 1. Each block is described below.
The capability for extending configuration space has been
PCI Configuration Space built into the backend interface. This capability, including
the ability to implement a CapPtr in configuration space,
This block provides the first 64 Bytes of Type 0, version 2.1
allows the user to implement functions such as Advanced
Configuration Space Header (CSH) (see Table 1) to sup-
Configuration and Power Interface (ACPI) in the backend
port software-driven “Plug-and Play” initialization and con-
design.
Synthesizable PCI Bridge Design This design is a general purpose data transfer engine to be
used with the LogiCORE PCI64 Interface. Figure 3 pre-
(SB07) sents a block diagram of the SB07 design. Typically, the
The synthesizable PCI bridge design, SB07, is an applica- user will customize the local interface to conform to a par-
tion bridge for use with the LogiCORE PCI64 Interface. It is ticular peripheral bus (ISA, VME, i960) or attach to a mem-
delivered in Verilog and VHDL and has been fully tested ory device. The design is modular so that unused portions
with various devices. This example demonstrates how to in- may be removed. Other bridge applications can be de-
terface to the PCI core and provide a modular foundation signed using subsets of SB07. The Synthesizable PCI
upon which to base other designs. The reference design Bridge Design Data Sheet lists the set of features and spe-
can be easily modified to remove select portions of func- cifics for the SB07 design.
tionality.
PCI_TOP
PCIM_LC SYNTHESIZABLE BRIDGE (SB07)
TRANSFER
INITIATOR
IFIFO_OUT
STATE IFIFO_IN
Initiator Transfer Engine with FIFOs
INITIATOR IADDR
ICONTROL
CONTROL
XFER XFER
ADIO STATUS STATE
REGISTERS
S_CBE
RESOLVE
LogiCORE PCI Interface
LDOUT
LDIN
BAR 0
Target Register LADDR
Target Control Multiplexer
TARGET
FORCE_RETRY
CONTROL
TARGETFIFO
x8950
Figure 1: Block Diagram of Synthesizable Bridge Design for PCI64 LogiCORE Interface, SB07
PCI32 Virtex
Version 3.0
LogiCORE™ Facts
R
Core Specifics
Xilinx Inc. Device Family Virtex
2100 Logic Drive
Slices Used1 381-403
San Jose, CA 95124
IOBs Used 53
Phone: +1 408-559-7778
Fax: +1 408-377-3259 System Clock fmax 0-33MHz
E-mail: Techsupport: hotline@xilinx.com Device Features Multi-standard SelectIO
Feedback: logicore@xilinx.com Used SelectMAP Configuration (optional)
URL: www.xilinx.com/pci Block SelectRAM+™
(optional user FIFO)
Introduction Boundary scan (optional)
With Xilinx LogiCORE PCI32 Virtex Interface, a designer Supported Devices2/Percent Resources Used
can build a customized, 32-bit, 33 MHz fully PCI compliant I/O Slices
system with the highest possible sustained performance,
XCV300-5 BG432 17% 12%
128 Mbytes/sec, and up to 300,000 System Gates in the
Virtex family FPGA. Provided with Core
Documentation PCI Design Guide
Features PCI Implementation Guide
PCI Data Book
• Fully 2.2 PCI compliant 32-bit, 33 MHz PCI
Design File Formats Verilog/VHDL Simulation Model,
Initiator/Target Interface
Verilog/VHDL Instantiation Code,
• Zero wait-state burst operation
NGO Netlist,
• Programmable single-chip solution with customizable
back-end functionality Constraint Files M1 User Constraint File (UCF)
• Pre-defined implementation for predictable timing in M1 Guide files
Xilinx Virtex Series FPGAs Verification Tools Verilog/VHDL Testbench
• Incorporates Xilinx Smart-IP Technology Reference designs & Example designs
• 3.3 V and 5 V Operation application notes PING Reference Design
• Fully verified design tested with Xilinx testbench and Synthesizable PCI32 Bridge(SB08)
hardware Design Tool Requirements
• Configurable on-chip dual-port FIFOs can be added for Xilinx Core Tools M1.5i SP2
maximum burst speed
Tested Entry/Verifi- For CORE instantiation:
• Supported Initiator functions
cation Tools3 Synopsys FPGA Express
- Memory Read, Memory Write, Memory Read
Synopsys FPGA Compiler
Multiple (MRM), Memory Read Line (MRL)
Synplicity Synplify
commands
For CORE verification:
- I/O Read, I/O Write commands
Cadence Verilog XL
- Configuration Read, Configuration Write commands
MTI ModelSim PE/Plus V4.7g
- Bus Parking
Xilinx provides technical support for this LogiCORE™ product when
- Special Cycles, Interrupt Acknowledge used as described in the Design and Implementation Guides and
- Basic Host Bridging in the Application Notes. Xilinx cannot guarantee timing,
functionality, or support of product if implemented in devices not
listed above, or if customized beyond that referenced in the product
documentation, or if any changes are made in sections of design
marked as “DO NOT MODIFY”.
PAR
PERR- Parity Base Base Base Command/
Generator/ Address Address Address
SERR- Status
Checker Register Register Register Register
0 1 2
USER APPLICATION
AD[31:0]
PCI I/O INTERFACE
ADIO[31:0]
FRAME-
Interrupt Vendor ID,
IRDY- Latency
Pin and Rev ID,
Timer
REQ- Initiator Line Other User
Register
State Register Data
GNT- Machine
TRDY-
DEVSEL-
Target
STOP- State
Machine
LC005
Drawing on the architectural advantages of Xilinx FPGAs, Base Address Register 2 (BAR2) 18h
new Xilinx Smart-IP technology ensures highest perfor-
Base Address Register 3 (BAR3) 1Ch
mance, predictability, repeatability, and flexibility in PCI
designs. The Smart-IP technology is incorporated in every Base Address Register 4 (BAR5) 20h
LogiCORE PCI Core.
Base Address Register 5 (BAR5) 24h
Xilinx Smart-IP technology leverages the Xilinx architec-
tural advantages, such as look-up tables (LUTs), distrib- Cardbus CIS Pointer 28h
uted RAM, and segmented routing, as well as floorplanning
information, such as logic mapping and relative location Subsystem ID Subsystem Vendor ID 2Ch
constraints. This technology provides the best physical lay- Expansion ROM Base Address 30h
out, predictability, and performance. Additionally, these pre-
determined features allow for significantly reduced compile Reserved CapPtr 34h
times over competing architectures.
Reserved 38h
PCI Cores made with Smart-IP technology are unique by
maintaining their performance and predictability regardless Max_Lat Min_Gnt Interrupt Interrupt 3Ch
of the device size. Pin Line
To guarantee the critical setup, hold, and min. and max. Reserved 40h-FFh
clock-to-out timing, the PCI core is delivered with Smart-IP Note:
constraint files that are unique for a device and package Italicized address areas are not implemented in the LogiCORE
combination. These constraint files guide the implementa- PCI32 Virtex Interface default configuration. These locations return
tion tools so that the critical paths always are within PCI zero during configuration read accesses.
specification. Retargeting the PCI core to an unsupported
Each BAR sets the base address for the interface and
device will void the guarantee of timing. Contact one of the
allows the system software to determine the addressable
Xilinx XPERTs partners for support of unlisted devices and
range required by the interface. Each BAR designated as a
packages. See the XPERTs section in chapter 7 of the Xil-
memory space can be made to represent a 32-bit space.
inx PCI Data Book for contact information.
Using a combination of Configurable Logic Block (CLB) flip-
Functional Description flops for the read/write registers and CLB look-up tables for
the read-only registers results in optimized logic mapping
The LogiCORE PCI32 Master and Slave Interface is parti-
and placement.
tioned into five major blocks and an user application as
shown in Figure 1. Each block is described below. The LogiCORE PCI32 Interface includes the ability to add
extended configuration capabilities as defined in the V2.2
PCI Configuration Space PCI specification. This capability, including the ability to
implement a CapPtr in configuration space, allows the user
This block provides the first 64 Bytes of Type 0, version 2.1
to implement extended functions such as Power Manage-
Configuration Space Header (CSH) (see Table 1) to sup-
ment, Hot Swap CSR, and Message Based Interrupts in
port software-driven “Plug-and-Play” initialization and con-
the backend design.
2 - 10 May, 1999
Bandwidth for the LogiCORE PCI32 Interface that must be met for full
PCI compliance.
Xilinx LogiCORE PCI32 Interface supports fully compliant
zero wait-state burst operations for both sourcing and Table 4: 33 MHz Timing Parameters [ns]
receiving data. This Interface supports a sustained band- LogiCORE
width of up to 128 MBytes/sec. The design can be config- PCI Spec. PCI32
ured to take advantage of the ability of the LogiCORE Parameter Ref.
XCV300-5
PCI32 Interface to do very long bursts. Since the FIFO is
Min Max Min Max
not of fixed size, bursts can go on for as long as the chipset
arbiter will allow. Furthermore, since the FIFOs and DMA CLK Cycle Time TCYC 30 ∞ 301 ∞
are decoupled from the proven core, a designer can modify CLK High Time THIGH 11 11
these functions without affecting the critical PCI timing. CLK Low Time TLOW 11 11
The flexible Xilinx backend, combined with support for CLK to Bus Sig- TICKOF 2 11 22 111
many different PCI features, gives users a solution that nals Valid3
lends itself to being used in many high-performance appli- CLK to REQ# TICKOF 2 12 22 121
cations. Xilinx is able to support different depths of FIFOs Valid3
as well as dual port FIFOs, synchronous or asynchronous Tri-state to Active TON 2 22
FIFOs and multiple FIFOs. The user is not locked into one CLK to Tri-state TOFF 28 281
DMA engine, hence, a DMA that fits a specific application Bus Signal Setup TPSD 7 71
can be designed. to CLK
The theoretical maximum bandwidth of a 32-bit, 33 MHz GNT# Setup to TPSD 10 101
PCI bus is 128 MBytes/sec. Attaining this maximum band- CLK
width will depend on several factors, including the PCI Input Hold Time TPHD 0 02
design used, PCI chipset, the processor’s ability to keep up After CLK
with your data stream, the maximum capability of your PCI
RST# to Tri-state TRST-OFF 40 401
design, and other traffic on the PCI bus. Older chipsets and
Notes:
processors will tend to allow less bandwidth than newer 1. Controlled by TIMESPECS, included in product
ones. 2. Verified by silicon characterization
No additional wait-states are inserted in response to a wait-
state from another agent on the bus. Either IRDY or TRDY Verification Methods
is kept asserted until the current data phase ends, as Xilinx has developed a system-level testbench that allows
required by the V2.2 PCI Specification. simulation of an open PCI environment in which a Logi-
See Table 3 for PCI bus transfer rates for various opera- CORE-PCI-based design may be tested by itself or with
tions. other simulatable PCI agents. Included in these agents are
a behavioral host and target, and several “plug-in” modules,
Table 3: LogiCORE PCI32 Transfer Rates including a PCI signal recorder and a PCI protocol monitor.
Zero Wait-State Mode Using these tools, the PCI developers can write microcode-
Operation Transfer Rate style test scripts that can be used to verify different bus-
operation scenarios, including those in the PCI Compliance
Initiator Write (PCI ← LogiCORE) 3-1-1-1
Checklist.
Initiator Read (PCI → LogiCORE) 4-1-1-1
The Xilinx PCI testbench is a powerful verification tool that
Target Write (PCI→ LogiCORE) 5-1-1-1
is also used as the basis for verification of the PCI Logi-
Target Read (PCI ← LogiCORE) 6-1-1-1
CORE. The PCI LogiCORE is also tested in hardware for
electrical, functional, and timing compliance.
May, 1999 2 - 11
PCI32 Virtex Version 3.0
Synthesizable PCI Bridge Design This design is a general purpose data transfer engine to be
used with the LogiCORE PCI32 Interface. Figure 1 pre-
(SB08) sents a block diagram of the synthesizable PCI bridge de-
The synthesizable PCI bridge design, SB08, is an applica- sign. Typically, the user will customize the local interface to
tion bridge for use with the LogiCORE PCI32 Interface. It is conform to a particular peripheral bus (ISA, VME, i960) or
delivered in Verilog and VHDL and has been fully tested attach to a memory device. The design is modular so that
with various devices. This example demonstrates how to in- unused portions may be removed. The Synthesizable PCI
terface to the PCI core and provide a modular foundation Bridge Design Data Sheet lists the set of features and spe-
upon which to base other designs. The reference design cifics for the SB08 design.
can be easily modified to remove select portions of func-
tionality.
PCI_TOP
PCIM_LC SYNTHESIZABLE BRIDGE (SB08)
TRANSFER
INITIATOR
IFIFO_OUT
STATE IFIFO_IN
Initiator Transfer Engine with FIFOs
INITIATOR IADDR
ICONTROL
CONTROL
XFER XFER
ADIO STATUS STATE
REGISTERS
S_CBE
RESOLVE
LogiCORE PCI Interface
LDOUT
LDIN
BAR 0
Target Register LADDR
Target Control Multiplexer
TARGET
FORCE_RETRY
CONTROL
TARGETFIFO
x8951
Figure 1: Block Diagram of Synthesizable Bridge Design for PCI32 LogiCORE Interface
2 - 12 May, 1999
2 0 0
LogiCORE™ Facts
R
Core Specifics
Xilinx Inc. Device Family XC4000XLA
2100 Logic Drive
CLBs Used1 178 - 308
San Jose, CA 95124
IOBs Used 53
Phone: +1 408-559-7778
Fax: +1 408-377-3259 System Clock fmax 0 - 33MHz
E-mail: Techsupport:hotline@xilinx.com Device Features Bi-directional data buses
Feedback: logicore@xilinx.com Used SelectRAM™ (optional user FIFO)
URL: www.xilinx.com/pci Boundary scan (optional)
Supported Devices2/Resources Remaining
Introduction
I/O CLB1
With Xilinx LogiCORE PCI32 4000 XLA Interfaces Version
XC4013XLA PQ208 101 268 - 398
3.0, a designer can build a customized, 32-bit, 33 MHz fully
PCI compliant system with the highest possible sustained XC4013XLA PQ240 135 268 - 398
performance, 132 Mbytes/sec, and up to 124,000 system XC4028XLA HQ240 135 716 - 846
gates in a XC4000XLA FPGA. XC4062XLA HQ240 135 1996 - 2126
XC4062XLA BG432 295 1996 - 2126
Features Provided with Core
• Fully 2.2 PCI compliant 32-bit, 33 MHz PCI Documentation PCI Design Guide
Initiator/Target Interface XLT to XLA Conversion Guide
• Programmable single-chip solution with customizable PCI Data Book
back-end functionality Design File Formats Verilog/VHDL Simulation Model
• Pre-defined implementation for predictable timing in Verilog/VHDL Instantiation Code
Xilinx XC4000XLA FPGAs NGO Netlist
• Incorporates Xilinx Smart-IP Technology Constraint Files M1 User Constraint File (UCF)
• 5 V and 3.3 V operation M1 Guide files
• Zero wait-state burst operation
Verification Tools VHDL\Verilog Testbench
• Fully verified design
- Tested with Xilinx internal testbench and in hardware Core Symbols VHDL, Verilog
(proven in FPGAs and HardWire devices) Reference designs & Ping Reference Design
• Configurable on-chip dual-port FIFOs can be added for application notes Synthesizable PCI Bridge Design
maximum burst speed (see Xilinx Documents section) Design Tool Requirements
• Supported Initiator functions Xilinx Core Tools M1.5i
- Memory Read, Memory Write, Memory Read Tested Entry/Verifi- For CORE instantiation:
Multiple (MRM), Memory Read Line (MRL) cation Tools3 Synopsys FPGA Express, Compiler
commands Synplicity Synplify
- I/O Read, I/O Write commands For CORE verification:
- Configuration Read, Configuration Write commands Cadence Verilog XL
- Bus Parking MTI ModelSim PE/Plus V4.7g
- Special Cycles, Interrupt Acknowledge Support
- Basic Host Bridging
Xilinx provides technical support for all LogiCORE prod-
ucts when used as described in product documentation.
Xilinx cannot guarantee timing, functionality, or support if
implemented in unspecified devices or customized beyond
that referenced in product documentation, or if changes
are made to “DO NOT MODIFY” sections of the design.
May, 1999 2 - 13
PCI32 4000 XLA Interface Version 3.0
1. The exact number of CLBs depends on user configuration of the telecommunication, and industrial systems
core and level of resource sharing with adjacent logic. For • CompactPCI boards
example, a factor that can affect the size of the design are the • Other applications that need PCI
number and size of the BARs.
2. Re-targeting the PCI core to an unlisted device or package will
void the guarantee of timing. See “Smart-IP Technology - guar- General Description
anteed timing” on page 19 for details.
3. See Xilinx Web Site for update on tested design tools.
The LogiCORE™ PCI32 4000 XLA Interfaces V3.0 are pre-
implemented and fully tested modules for Xilinx
Features (cont.) XC4000XLA FPGAs (see LogiCORE Facts for list of sup-
ported devices). The pin-out and the relative placement of
• Supported Target functions internal Configurable Logic Blocks (CLBs) are pre-defined.
- Type 0 Configuration Space Header Critical paths are controlled by TimeSpecs and guide files
- Up to 3 Base Address Registers (memory or I/O with to ensure that timing is always met. This significantly
adjustable block size from 16 bytes to 2 GBytes, reduces engineering time required to implement the PCI
slow or medium decode speed) portion of your design. Resources can instead be focused
- Parity Generation (PAR), Parity Error Detection on unique back-end logic in FPGA and on system level
(PERR# and SERR#) design. Consequently, LogiCORE™ PCI products can min-
- Memory Read, Memory Write, Memory Read imize development time.
Multiple (MRM), Memory Real Line (MRL), Memory
Write, Invalidate (MWI) commands Xilinx XC4000XLA Series FPGAs enables designs of fully
- I/O Read, I/O Write commands PCI-compliant systems. The devices meet all required
- Configuration Read, Configuration Write commands electrical and timing parameters for 3.3V and 5V including
- 32-bit data transfers, burst transfers with linear AC output drive characteristics, input capacitance specifi-
address ordering cations (10pF), 7 ns setup and 0 ns hold to system clock,
- Target Abort, Target Retry, Target Disconnect and 11 ns system clock to output.
- Full Command/Status Register The XC4000XLA devices have programmable clamp
• Available for configuration and download on the Web diodes as required by the PCI 3.3V electrical specification.
- Web-based configuration with intuitive GUI For more details about this see the XC4000XLA FPGA
- Generation of proven design files Data Sheet.
The PCI Compliance Checklist (See the Xilinx PCI
Applications Databook) has additional details about electrical compli-
• PCI add-in boards such as graphic cards, video ance. Other features that enable efficient implementation of
adapters, LAN adapters and data acquisition boards a complete PCI system in the XC4000XLA include:
• Embedded applications within networking,
PAR
PERR- Parity Base Base Base Command/
Generator/ Address Address Address
SERR- Status
Checker Register Register Register Register
0 1 2
USER APPLICATION
AD[31:0]
PCI I/O INTERFACE
ADIO[31:0]
FRAME-
Interrupt Vendor ID,
IRDY- Latency
Pin and Rev ID,
Timer
REQ- Initiator Line Other User
Register
State Register Data
GNT- Machine
TRDY-
DEVSEL-
Target
STOP- State
Machine
LC005
2 - 14 May, 1999
• Select-RAM™ memory: on-chip ultra-fast RAM with PCI I/O Interface Block
synchronous write option and dual-port RAM option
used in PCI Interfaces to implement the FIFO. The I/O interface block handles physical connection to the
• Individual output enable for each I/O PCI bus including all signaling, input and output synchroni-
zation, output three-state controls, and all request-grant
• Internal 3-state bus capability
• 8 global low-skew clock or signal distribution networks handshaking for bus mastering.
• IEEE 1149.1-compatible boundary scan logic support
Parity Generator/Checker
The module is carefully optimized for best possible sus-
Generates/checks even parity across the AD bus, the CBE
tained performance and utilization in the XC4000XLA
lines, and the PAR signal. Reports data parity errors via
FPGA architecture. When implemented in a XC4013, more
PERR- and address parity errors via SERR-.
than 50% of the FPGA’s resources remain for integrating a
unique back-end interface and other system functions into Target State Machine
a fully programmable one-chip solution. When imple-
mented in a XC4062, 90% of the FPGA’s resources This block manages control over the PCI interface for Tar-
remain. get functions. The states implemented are a subset of
equations defined in “Appendix B” of the PCI Local Bus
Smart-IP Technology - guaranteed Specification. The controller is a high-performance state
machine using state-per-bit (one-hot) encoding for maxi-
timing mum performance. State-per-bit encoding has narrower
Drawing on the architectural advantages of Xilinx FPGAs, and shallower next-state logic functions that closely match
new Xilinx Smart-IP technology ensures highest perfor- the Xilinx FPGA architecture.
mance, predictability, repeatability, and flexibility in PCI
designs. The Smart-IP technology is incorporated in every Initiator State Machine
LogiCORE PCI Core.
This block manages control over the PCI interface for Initia-
Xilinx Smart-IP technology leverages the Xilinx architec- tor functions. The states implemented are a subset of equa-
tural advantages, such as look-up tables (LUTs), distrib- tions defined in “Appendix B” of the PCI Local Bus
uted RAM, and segmented routing, as well as floorplanning Specification. The Initiator Control Logic also uses state-
information, such as logic mapping and relative location per-bit encoding for maximum performance.
constraints. This technology provides the best physical lay-
out, predictability, and performance. Additionally, these pre- PCI Configuration Space
determined features allow for significantly reduced compile This block provides the first 64 Bytes of Type 0, V 2.1, Con-
times over competing architectures. figuration Space Header (CSH) (see Table 1) to support
PCI Cores made with Smart-IP technology are unique by software-driven “Plug-and Play” initialization and configura-
maintaining their performance and predictability regardless tion. This includes Command, Status, and three Base
of the device size. Address Registers (BARs). BAR 2 is not shown in figure 1.
These BARs illustrate how to implement memory- or I/O-
To guarantee the critical setup, hold, and min. and max.
mapped address spaces. Each BAR sets base address for
clock-to-out timing, the PCI core is delivered with Smart-IP
the interface and allows system software to determine
constraint files that are unique for a device and package
addressable range required by the interface. Using a com-
combination. These constraint files guide the implementa-
bination of Configurable Logic Block (CLB) flip-flops for the
tion tools so that the critical paths always are within PCI
read/write registers and CLB look-up tables for the read-
specification. Retargeting the PCI core to an unsupported
only registers results in optimized packing density and lay-
device will void the guarantee of timing. Contact one of the
out.
Xilinx XPERTs partners for support of unlisted devices and
packages. See the XPERTs section in chapter 7 of the Xil- With this release, the hooks for extending configuration
inx PCI Data Book for contact information. space has been built into the backend interface. These
hooks, including the ability to implement a CapPtr in config-
Functional Description uration space, allows the user to implement functions such
as Advanced Configuration and Power Interface (ACPI) in
The LogiCORE PCI32 4000 XLA Interfaces are partitioned
the backend design.
into five major blocks, and the user application as shown in
Figure 1. Each block is described below.
May, 1999 2 - 15
PCI32 4000 XLA Interface Version 3.0
Table 1: PCI Configuration Space Header tion is supported by the LogiCORE product and described
in accompanying documentation.
31 16 15 0
• Initiator or target functionality (The core can be used as
Device ID Vendor ID 00h
a target-only Interface)
Status Command 04h • Base Address Register configuration (1 - 3 Registers,
size and mode)
Class Code Rev ID 08h • Configuration Space Header ROM
0Ch • Initiator and target state machine (e.g., termination
BIST Header Latency Cache
conditions, transaction types and request/transaction
Type Timer Line Size
arbitration)
Base Address Register 0 (BAR0) 10h • Burst functionality
• User Application including FIFO (back-end design)
Base Address Register 1 (BAR1) 14h
2 - 16 May, 1999
Bandwidth 100% burst transfer rate in both directions with full PCI
compliance. No additional wait-states are inserted in
The Xilinx PCI32 4000 XLA Interfaces support a sustained
response to a wait-state from another agent on the bus.
bandwidth of up to 132 MBytes/sec (except in the
Either IRDY or TRDY is kept asserted until the current data
XC4062XLA HQ240). The design can be configured to take
phase ends, as required by the V2.2 PCI Specification.
advantage of the ability of the LogiCORE PCI32 Interface
to do very long bursts. Since the FIFO isn’t a fixed size, In one wait-state mode, the LogiCORE PCI32 4000 XLA
burst can go on as long as the chipset arbiter will allow. Fur- Interface automatically inserts a wait-state when sourcing
thermore, since the FIFOs and DMA are decoupled from data (Initiator Write, Target Read) during a burst transfer. In
the proven core, a designer can modify these functions this mode, the LogiCORE PCI32 4000 XLA Interface can
without effecting the critical PCI timing. accept data at 100% burst transfer rate and supply data at
50%.
The flexible Xilinx backend, combined with support for
many different PCI features, gives users a solution that Timing Specification
lends itself to being used in many high-performance appli-
The XC4000XLA family, together with the LogiCORE PCI32
cations. Xilinx is able to support different depths of FIFOs
products enables design of fully compliant PCI systems.
as well as dual port FIFOs, synchronous or asynchronous
Backend design can affect the maximum speed your
FIFOs and multiple FIFOs. The user is not locked into one
design is capable of. Factors in your back-end designs that
DMA engine, hence, a DMA that fits a specific application
can affect timing include loading of hot signals coming
can be designed.
directly from the PCI bus, and gate count. Table 4 shows
The theoretical maximum bandwidth of a 32 bit, 33 MHz the key timing parameters for the LogiCORE PCI32 Inter-
PCI bus is 132 MB/s. How close you get to this maximum faces that must be met for full PCI compliance.
will depend on several factors, including the PCI design
Table 4: Timing Parameters [ns]
used, PCI chipset, the processor’s ability to keep up with
your data stream, the maximum capability of your PCI LogiCORE
design and other traffic on the PCI bus. Older chipsets and PCI Spec. PCI32 4000 XLA
processors will tend to allow less bandwidth than newer Parameter Ref.
XC4000XLA-1
ones. Min Max Min Max
In this version of the Interface, all devices are zero wait CLK Cycle Time 30 ∞ 301 ∞
state except for the XC4062XLA HQ240, which is a one CLK High Time 11 11
wait state design. The XC4013XLA-09, XC4028XLA-09
CLK Low Time 11 11
and XC4062XLA-09 support zero wait-state burst, equal to
CLK to Bus Sig- TICKOF 2 11 22 8.5
a sustained bandwidth of up to 132 MBytes/sec. Only the
nals Valid3
XC4062XLA HQ240 requires one wait-state while sourcing
data. See Table 3 for a PCI bus transfer rates for various CLK to REQ# TICKOF 2 12 22 11
operations in either zero or one wait-state mode. and GNT# Valid3
Tri-state to Ac- 2 22
Table 3: LogiCORE PCI32 4000 XLA Transfer Rates
tive
Zero Wait-State Mode CLK to Tri-state 28 281
Operation Transfer Rate Bus Signal Setup TPSD 7 7
Initiator Write (PCI ← LogiCORE) 3-1-1-1 to CLK (IOB)
Initiator Read (PCI → LogiCORE) 4-1-1-1 Bus Signal Setup 7 71
Target Write (PCI→ LogiCORE) 5-1-1-1 to CLK (CLB)
Target Read (PCI ← LogiCORE) 6-1-1-1 GNT# Setup to TPSD 10 7
CLK
One Wait-State Mode (XC4062XLA HQ240 only)
GNT# Setup to TPSD 10 10
Operation Transfer Rate
CLK (CLB)
Initiator Write (PCI ← LogiCORE) 3-2-2-2
Input Hold Time TPHD 0 0
Initiator Read (PCI → LogiCORE) 4-1-1-1 After CLK (IOB)
Target Write (PCI→ LogiCORE) 5-1-1-1 Input Hold Time 0 02
Target Read (PCI ← LogiCORE) 6-2-2-2 After CLK (CLB)
Note: Initiator Read and Target Write operations have effectively RST# to Tri-state 40 402
the same bandwidth for burst transfer.
Notes:
In the Zero wait-state mode, no wait-states are inserted 1. Controlled by TIMESPECS, included in product
2. Verified by analysis and bench-testing
either while sourcing data or receiving data. This allows a 3. IOB configured for Fast slew rate
May, 1999 2 - 17
PCI32 4000 XLA Interface Version 3.0
2 - 18 May, 1999
2 0 0
R
LogiCORE™ Facts
Core Specifics
Xilinx Inc. Device Family SpartanXL
2100 Logic Drive CLBs Used1 152 - 268
San Jose, CA 95124 IOBs Used 53
Phone: +1 408-559-7778 System Clock fmax 0 − 33MHz
Fax: +1 408-377-3259 Device Features Bi-directional data buses
E-mail: Techsupport: hotline@xilinx.com Used SelectRAM™ (optional user FIFO)
Feedback: logicore@xilinx.com Boundary scan (optional)
URL: www.xilinx.com/pci
Supported Devices4/Resources Remaining
Introduction I/O CLB1
With Xilinx LogiCORE PCI32 SpartanXL Interface, a XCS20XL-4 TQ144 60 190 - 2482
designer can build a cost-efficient, customizable, zero wait- XCS30XL-4 PQ208 107 308 - 424
state, 32-bit, 33MHz fully PCI compliant system in a Spar- XCS30XL-4 PQ240 141 308 - 424
tanXL family FPGA. XCS40XL-4 PQ208 107 516 - 632
XCS40XL-4 PQ240 141 516 - 632
Features Provided with Core
• Fully 2.2 PCI compliant 32-bit, 33 MHz PCI Documentation PCI Design Guide
Initiator/Target Interface SpartanXL Implementation Guide
• Incorporates Xilinx Smart-IP Technology with pre- Spartan to SpartanXL
defined implementation for predictable timing in Xilinx Conversion Guide
SpartanXL FPGAs (see LogiCORE Facts for listing of PCI Data Book
supported devices) Design File Formats VHDL & Verilog Simulation Models
• 3.3V and 5V operation with SpartanXL devices NGO Netlist
• Zero wait-state burst operation
Constraint Files M1 User Constraint File (UCF)
• Fully verified design
M1 Guide files
- Tested with Xilinx internal testbench and in hardware
Verification Tools VHDL and Verilog Testbench
(silicon proven)
• Configurable on-chip dual-port FIFOs can be added for Core Symbols VHDL, Verilog
maximum burst speed (see Xilinx Documents section) Reference designs Synthesizable PCI Bridge Design
• Programmable single-chip solution with customizable Design Tool Requirements
back-end functionality Xilinx Core Tools M1.5i
• Supported Initiator functions Tested Entry/Verifi- For CORE instantiation:
- Memory Read, Memory Write, Memory Read cation Tools3 Synopsys FPGA Express, Compiler
Multiple (MRM), Memory Read Line (MRL) Synplicity Synplify
commands For CORE verification:
- I/O Read, I/O Write commands Cadence Verilog XL
- Configuration Read, Configuration Write commands MTI ModelSim PE/Plus V4.7g
- Bus Parking
Support
- Special Cycles, Interrupt Acknowledge
Xilinx provides technical support for this LogiCORE™ product when
- Basic Host Bridging used as described in the Design and Implementation Guides and
in the Application Notes. Xilinx cannot guarantee timing,
functionality, or support of product if implemented in devices not
listed above, or if customized beyond that referenced in the product
documentation, or if any changes are made in sections of design
marked as “DO NOT MODIFY”.
May, 1999 2 - 19
PCI32 SpartanXL Interface Version 3.0
AD[3 1 :0 ]
PCI I/O INTERFACE
ADI O[ 3 1 : 0 ]
FRAME-
Interrupt Vendor ID,
IRDY- Latency
Initiator Pin and Rev ID,
Timer
REQ- State Line Other User
Register
Machine Register Data
GNT-
PC I C o n f ig u r at io n Sp ace
TRDY-
Target
DEVSEL- State
STOP- Machine
X7954
Figure 1: LogiCORE PCI32 SpartanXL Interface Block Diagram (one BAR only in XCS20XL)
2 - 20 May, 1999
The PCI Compliance Checklists, found in the Xilinx PCI Functional Description
Databook, have additional details. Other features that
enable efficient implementation of a complete PCI system The LogiCORE PCI32 SpartanXL Interface is partitioned
in the SpartanXL family includes: into five major blocks, plus the user application, shown in
Figure 1. Each block is described below.
• Select-RAM™ memory: on-chip ultra-fast RAM with
synchronous write option and dual-port RAM option. PCI I/O Interface Block
Used in the PCI32 SpartanXL Interface to implement
the FIFO. The I/O interface block handles the physical connection to
• Individual output enable for each I/O the PCI bus including all signaling, input and output syn-
chronization, output three-state controls, and all request-
• Internal 3-state bus capability
• 8 global low-skew clock or signal distribution networks grant handshaking for bus mastering.
• IEEE 1149.1-compatible boundary scan logic support
Parity Generator/Checker
See Spartan FPGA Data Sheet for more details.
Generates/checks even parity across the AD bus, the CBE
The module is carefully optimized for best possible perfor- lines, and the PAR signal. Reports data parity errors via
mance and utilization in the SpartanXL FPGA architecture. PERR- and address parity errors via SERR-.
When implemented in the XCS30, more than 50% of the
FPGA’s resources remain for integrating a unique back-end Target State Machine
interface and other system functions into a fully program- This block manages control over the PCI32 SpartanXL
mable one-chip solution. When implemented in the XCS40,
Interface for Target functions. The states implemented are
more than 65% of the FPGA’s resources remain for inte- a subset of equations defined in “Appendix B” of the PCI
grating a unique back-end interface and other system func- Local Bus Specification. The controller is a high-perfor-
tions into a fully programmable one-chip solution.
mance state machine using state-per-bit (one-hot) encod-
ing for maximum performance. State-per-bit encoding has
Smart-IP Technology - guaranteed narrower and shallower next-state logic functions that
timing closely match the Xilinx FPGA architecture.
Drawing on the architectural advantages of Xilinx FPGAs,
new Xilinx Smart-IP technology ensures highest perfor-
Initiator State Machine
mance, predictability, repeatability, and flexibility in PCI This block manages control over the PCI32 SpartanXL
designs. The Smart-IP technology is incorporated in every Interface for Initiator functions. The states implemented are
LogiCORE PCI Core. a subset of equations defined in “Appendix B” of the PCI
Xilinx Smart-IP technology leverages the Xilinx architec-
Local Bus Specification. The Initiator Control Logic also
uses state-per-bit encoding for maximum performance.
tural advantages, such as look-up tables (LUTs), distrib-
uted RAM, and segmented routing, as well as floorplanning
PCI Configuration Space
information, such as logic mapping and relative location
constraints. This technology provides the best physical lay- This block provides the first 64 bytes of Type 0, version 2.1,
out, predictability, and performance. Additionally, these pre- Configuration Space Header (CSH) (see Table 1) to sup-
determined features allow for significantly reduced compile port software-driven “Plug-and Play” initialization and con-
times over competing architectures. figuration. This includes Command, Status, and two Base
Address Registers (BARs). These BARs illustrate how to
PCI Cores made with Smart-IP technology are unique by
implement memory- or I/O-mapped address spaces. Each
maintaining their performance and predictability regardless
BAR sets the base address for the interface and allows the
of the device size.
system software to determine the addressable range
To guarantee the critical setup, hold, and min. and max. required by the interface. Using a combination of Config-
clock-to-out timing, the PCI core is delivered with Smart-IP urable Logic Block (CLB) flip-flops for the read/write regis-
constraint files that are unique for a device and package ters and CLB look-up tables for the read-only registers
combination. These constraint files guide the implementa- results in optimized packing density and layout.
tion tools so that the critical paths always are within PCI
With this release, the hooks for extending configuration
specification. Retargeting the PCI core to an unsupported
space has been built into the backend interface. Setting the
device will void the guarantee of timing. Contact one of the
CapPtr and bit 15 of the Status Register allows the user to
Xilinx XPERTs partners for support of unlisted devices and
implement functions such as Advanced Configuration and
packages. See the XPERTs section in chapter 7 of the Xil-
Power Interface (ACPI) in the backend design.
inx PCI Data Book for contact information.
May, 1999 2 - 21
PCI32 SpartanXL Interface Version 3.0
User Application with Optional Burst FIFOs lowing customization is supported by the LogiCORE prod-
uct and described in accompanying documentation.
The LogiCORE PCI32 SpartanXL Interface provides a sim-
ple, general-purpose interface with a 32-bit data path and • Initiator and target functionality
latched address for de-multiplexing the PCI address/data • Base Address Register configuration (1-2 Registers in
bus. The general-purpose user interface allows the rest of XCS30XL and XCS40XL, 1 BAR only in XCS20XL, size
the device to be used in a wide range of applications. and mode of BAR)
• Configuration Space Header ROM
Typically, the user application contains burst FIFOs to • Initiator and target state machine (e.g., termination
increase PCI system performance (An Application Note is conditions, transaction types and request/transaction
available, please see the Xilinx Documents section). An on-
arbitration)
chip read/write FIFO, built from the on-chip synchronous
• Burst functionality
dual-port RAM (SelectRAM™) available in SpartanXL
• User Application including FIFO (back-end design)
devices, supports data transfers in excess of 33 MHz.
Table 1: PCI Configuration Space Header Supported PCI Commands
31 16 15 0 Table 2 illustrates the PCI bus commands supported by the
00h LogiCORE PCI32 SpartanXL Interface. The compliance
Device ID Vendor ID checklist later in this data book have more details on sup-
Status Command 04h ported and unsupported commands.
2 - 22 May, 1999
Bandwidth Timing Specification
The Xilinx PCI32 SpartanXL Interface supports a sustained The SpartanXL family, together with the LogiCORE PCI32
bandwidth of up to 132 MBytes/sec. The design can be Interface enables design of fully compliant PCI systems.
configured to take advantage of the ability of the LogiCORE Backend design can affect the maximum speed your
PCI32 Interface to do very long bursts. Since the FIFO does design is capable of. Factors in your back-end designs that
not have a fixed size, a burst can go on for as long as the can affect timing include loading of hot signals coming
chipset arbiter will allow. Furthermore, since the FIFOs and directly from the PCI bus, gate count and floor planning.
the DMA are decoupled from the proven core, a designer Table 4 shows the key timing parameters for the LogiCORE
can modify these functions without affecting the critical PCI PCI32 SpartanXL Interface that must be met for full PCI
timing. compliance.
The flexible Xilinx backend, combined with support for
many different PCI features, gives users a solution that can
Verification Methods
be used in many high-performance applications. Xilinx is Xilinx has developed a testbench with numerous vectors to
able to support different depths of FIFOs as well as dual test the Xilinx PCI design; this is included with the
port FIFOs, synchronous or asynchronous FIFOs, and mul- LogiCORE PCI32 SpartanXL Interfaces. A version of this
tiple FIFOs. The user is not restricted to one DMA engine, testbench is also used internally by the Xilinx PCI team to
hence, a DMA that fits a specific application can be verify the PCI32 Interfaces. Additionally, the PCI32 Inter-
designed. faces have been tested in hardware for electrical, functional
and timing compliance.
The theoretical maximum bandwidth of a 32-bit, 33 MHz
PCI bus is 132 MBytes. How close you get to this maximum Table 4. Advanced Timing Parameters [ns]
bandwidth will depend on several factors, including the PCI
design used, PCI chipset, the processor’s ability to keep up LogiCORE
with your data stream, the maximum capability of your PCI PCI Spec. PCI32,
Parameter Ref.
design, and other traffic on the PCI bus. Older chipsets and XCSXL-4
processors will tend to allow less bandwidth than newer Min Max Min Max
ones. CLK Cycle Time 30 ∞ 301 ∞
In the Zero wait-state mode, no wait-states are inserted CLK High Time 11 11
either while sourcing data or receiving data. This allows a CLK Low Time 11 11
100% burst transfer rate in both directions with full PCI CLK to Bus Sig- TICK- 2 11 22 9.6
compliance. No additional wait-states are inserted in nals Valid3 OF
response to a wait-state from another agent on the bus, as CLK to REQ# and TICK- 2 12 22 9.6
required by the PCI V 2.2 specification. Either IRDY or GNT# Valid3 OF
TRDY is kept asserted until the current data phase ends, as Tri-state to Active 2 22
required by PCI V 2.2 Specification.
CLK to Tri-state 28 281
In this version of the PCI Interface, based on the Xilinx V3.0 Bus Signal Setup TPSU 7 7
PCI Interface, the end of initiator transaction wait-state has to CLK (IOB)
been removed. Bus Signal Setup 7 71
See Table 3 for PCI bus transfer rates for various operations to CLK (CLB)
in Zero wait-state mode. GNT# Setup to TPSU 10 5.2
Table 3: LogiCORE PCI32 SpartanXL Transfer Rates CLK
Input Hold Time TPH 0 0
Zero Wait-State Mode After CLK (IOB)
Operation Transfer Rate Input Hold Time 0 02
Initiator Write (PCI ← LogiCORE) 3-1-1-1 After CLK (CLB)
Initiator Read (PCI → LogiCORE) 4-1-1-1 RST# to Tri-state 40 402
Target Write (PCI→ LogiCORE) 5-1-1-1 Notes:
1. Controlled by TIMESPECs, included in product
Target Read (PCI ← LogiCORE) 6-1-1-1
2. Verified by analysis and bench-testing
Note: Initiator Read and Target Write operations have effectively 3. IOB configured for Fast slew rate
the same bandwidth for burst transfer.
May, 1999 2 - 23
PCI32 SpartanXL Interface Version 3.0
The testbench shipped with the interface verifies the PCI Device Utilization
interface functions according to the test scenarios specified
The Target-Only and Target/Initiator options require a vari-
in PCI Compliance Checklist, V 2.1; see Figure 2. This test-
bench consists of 28 test scenarios, each designed to test able amount of CLB resources for the PCI32 Spartan Inter-
face. The core includes a switch to force the entire deletion
a specific PCI bus operation. Refer to the checklists chapter
in this databook for a complete list of scenarios. of unused Base Address Registers.
Utilization can vary widely, depending on the configuration
Figure 2. PCI Protocol Testbench
choices made by the designer. Options that can affect the
faketarg pci_lc_i testbnch size of the core are:
2 - 24 May, 1999
2 0 0
LogiCORE™ Facts
R
Core Specifics
Xilinx Inc. Device Family XCS Spartan
2100 Logic Drive CLBs Used1 152 - 268
San Jose, CA 95124 IOBs Used 53
Phone: +1 408-559-7778 System Clock fmax 0 − 33MHz
Fax: +1 408-377-3259 Device Features Bi-directional data buses
E-mail: Techsupport: hotline@xilinx.com Used SelectRAM™ (optional user FIFO)
Feedback: logicore@xilinx.com Boundary scan (optional)
URL: www.xilinx.com
Supported Devices/Resources Remaining
Introduction I/O CLB1
With Xilinx LogiCORE PCI32 Spartan Master & Slave Inter- XCS30 PQ208 107 308 - 424
face, a designer can build a customizable, low-cost 32-bit, XCS30 PQ240 141 308 - 424
33MHz fully PCI compliant system in a Spartan-family XCS40 PQ208 107 516 - 632
FPGA. XCS40 PQ240 141 516 - 632
Provided with Core
Features
Documentation PCI32 User’s Guide
• Fully 2.1 PCI compliant 32 bit, 33MHz PCI Interface PCI Data Book
- Master (Initiator/Target)
Design File Formats VHDL, Verilog Simulation Models
- Slave (Target-only)
NGO Netlist2
• Pre-defined implementation for predictable timing in
Constraint Files M1 User Constraint File (UCF)
Xilinx Spartan FPGAs (see LogiCORE Facts for listing
M1 Guide files
of supported devices)
• Incorporates Xilinx Smart-IP Technology Verification Tools VHDL and Verilog Testbench
• 5 V Operation with Spartan devices Core Symbols VHDL, Verilog
• Zero wait-state burst operation Reference designs Synthesizable PCI Bridge Design
• Fully verified design Design Tool Requirements
- Tested with the Xilinx internal testbench Xilinx Core Tools M1.4
- Tested in hardware (silicon proven)
Entry/Verification VHDL, Verilog
• Configurable on-chip dual-port FIFOs can be added for
Tools4
maximum burst speed (see Xilinx Documents section)
• Programmable single-chip solution with customizable Support
back-end functionality Xilinx provides technical support for this LogiCORE prod-
• Supported Initiator functions uct when used as described in the User’s Guide or sup-
- Initiate Memory Read, Memory Write, Memory Read porting Application Notes. Xilinx cannot guarantee timing,
Multiple (MRM), Memory Read Line (MRL) functionality, or support of the product if implemented in
commands devices not listed above, or customized beyond that refer-
- Initiate I/O Read, I/O Write commands enced in the product documentation.
- Initiate Configuration Read, Configuration Write Notes:
commands 1. The exact number of CLBs depends on user configuration of the
core and level of resource sharing with adjacent logic. Factors
- Bus Parking that can affect the size of the design are number and size of the
BARs, and medium vs. slow decode. These numbers include a
16 x 32 FIFO.
2. Available on Xilinx Home Page, in the LogiCORE PCI Lounge:
www.xilinx.com/products/logicore/pci/pci_sol.htm
3. See Xilinx Home Page for supported EDA tools
May, 1999 2 - 25
PCI32 Spartan Master & Slave Interface
PAR
Parity Base Base Command/
PERR- Generator/ Address Address Status
Checker Register Register Register
SERR-
0 1
USER APPLICATION
AD[31:0]
PCI I/O INTERFACE
ADIO[31:0]
FRAME-
Interrupt Vendor ID,
IRDY- Latency
Initiator Pin and Rev ID,
Timer
REQ- State Line Other User
Register
Machine Register Data
GNT-
TRDY-
Target
DEVSEL- State
STOP- Machine
X7954
Figure 1: LogiCORE PCI32 Spartan Interface Block Diagram
2 - 26 May, 1999
Other features that enable efficient implementation of a Parity Generator/Checker
complete PCI system in the Spartan family includes:
Generates/checks even parity across the AD bus, the CBE
• Select-RAM™ memory: on-chip ultra-fast RAM with lines, and the PAR signal. Reports data parity errors via
synchronous write option and dual-port RAM option. PERR- and address parity errors via SERR-.
Used in the PCI32 Spartan Interface to implement the
FIFO. Target State Machine
• Individual output enable for each I/O
This block manages control over the PCI32 Spartan Inter-
• Internal 3-state bus capability
face for Target functions. The states implemented are a
• 8 global low-skew clock or signal distribution networks
subset of equations defined in “Appendix B” of the PCI
• IEEE 1149.1-compatible boundary scan logic support
Local Bus Specification. The controller is a high-perfor-
See Spartan FPGA Data Sheet for more details. mance state machine using state-per-bit (one-hot) encod-
The module is carefully optimized for best possible perfor- ing for maximum performance. State-per-bit encoding has
mance and utilization in the Spartan FPGA architecture. narrower and shallower next-state logic functions that
When implemented in the XCS30, more than 50% of the closely match the Xilinx FPGA architecture.
FPGA’s resources remain for integrating a unique back-end
interface and other system functions into a fully program-
Initiator State Machine
mable one-chip solution. When implemented in the XCS40, This block manages control over the PCI32 Spartan Inter-
more than 65% of the FPGA’s resources remain for inte- face for Initiator functions. The states implemented are a
grating a unique back-end interface and other system func- subset of equations defined in “Appendix B” of the PCI
tions into a fully programmable one-chip solution. Local Bus Specification. The Initiator Control Logic also
uses state-per-bit encoding for maximum performance.
Smart-IP Technology
PCI Configuration Space
Drawing on the architectural advantages of Xilinx FPGAs,
new Xilinx Smart-IP technology ensures highest perfor- This block provides the first 64 bytes of Type 0, version 2.1,
mance, predictability, repeatability, and flexibility in PCI Configuration Space Header (CSH) (see Table 1) to sup-
designs. The Smart-IP technology is incorporated in every port software-driven “Plug-and Play” initialization and con-
LogiCORE PCI Core. figuration. This includes Command, Status, and two Base
Address Registers (BARs). These BARs illustrate how to
Xilinx Smart-IP technology leverages the Xilinx architec-
implement memory- or I/O-mapped address spaces. Each
tural advantages, such as look-up tables (LUTs), distrib-
BAR sets the base address for the interface and allows the
uted RAM, and segmented routing, and floorplanning
system software to determine the addressable range
information, such as logic mapping and relative location
required by the interface. Using a combination of Config-
constraints. This technology provides the best physical lay-
urable Logic Block (CLB) flip-flops for the read/write regis-
out, predictability, and performance. Additionally, these pre-
ters and CLB look-up tables for the read-only registers
determined features allow for significantly reduced compile
results in optimized packing density and layout.
times over competing architectures.
With this release, the hooks for extending configuration
The PCI32 Spartan Interface can parameterized, allowing
space has been built into the backend interface. Setting the
for design flexibility in which users can create the exact PCI
CapPtr and bit 15 of the Status Register allows the user to
interface needed. PCI Cores made with Smart-IP technol-
implement functions such as Advanced Configuration and
ogy are unique by maintaining their performance and pre-
Power Interface (ACPI) in the backend design.
dictability regardless of the device size.
User Application with Optional Burst FIFOs
Functional Description
The LogiCORE PCI32 Spartan Interface provides a simple,
The LogiCORE PCI32 Spartan Interface is partitioned into
general-purpose interface with a 32-bit data path and
five major blocks, plus the user application, shown in Figure
latched address for de-multiplexing the PCI address/data
1. Each block is described below.
bus. The general-purpose user interface allows the rest of
the device to be used in a wide range of applications.
PCI I/O Interface Block
Typically, the user application contains burst FIFOs to
The I/O interface block handles the physical connection to
increase PCI system performance (An Application Note is
the PCI bus including all signaling, input and output syn-
available, please see the Xilinx Documents section). An on-
chronization, output three-state controls, and all request-
chip read/write FIFO, built from the on-chip synchronous
grant handshaking for bus mastering.
dual-port RAM (SelectRAM™) available in Spartan
devices, supports data transfers in excess of 33 MHz
May, 1999 2 - 27
PCI32 Spartan Master & Slave Interface
31 16 15 0 PCI PCI
CBE [3:0] Command
00h Master Slave
Device ID Vendor ID
0000 Interrupt Acknowledge No1 Ignore
Status Command 04h
0001 Special Cycle No1 Ignore
Class Code Rev ID 08h 0010 I/O Read Yes Yes
0011 I/O Write Yes Yes
BIST Header Latency Cache 0Ch
0100 Reserved Ignore Ignore
Type Timer Line Size
0101 Reserved Ignore Ignore
Base Address Register 0 (BAR0) 10h
0110 Memory Read Yes Yes
Base Address Register 1 (BAR1) 14h 0111 Memory Write Yes Yes
1000 Reserved Ignore Ignore
Base Address Register 2 (BAR2) 18h
1001 Reserved Ignore Ignore
Base Address Register 3 (BAR3) 1Ch 1010 Configuration Read Yes Yes
20h 1011 Configuration Write Yes Yes
Base Address Register 4 (BAR5)
1100 Memory Read Multiple Yes Yes
Base Address Register 5 (BAR5) 24h 1101 Dual Address Cycle No1 Ignore
Cardbus CIS Pointer 28h 1110 Memory Read Line Yes Yes
1111 Memory Write Invalidate No1 Yes
Subsystem ID Subsystem Vendor ID 2Ch Note:
30h 1. The Initiator can present these commands, however, they either
Expansion ROM Base Address require additional user-application logic to support them or have not
been thoroughly tested.
Reserved CapPtr 34h
2 - 28 May, 1999
The flexible Xilinx backend, combined with support for Timing Specification
many different PCI features, gives users a solution that
lends itself to being used in many high-performance appli- The XCS family, together with the LogiCORE PCI32 Spar-
cations. Xilinx is able to support different depths of FIFOs tan Interface enables design of fully compliant PCI sys-
as well as dual port FIFOs, synchronous or asynchronous tems. Backend design can affect the maximum speed your
FIFOs and multiple FIFOs. The user is not locked into one design is capable of. Factors in your back-end designs that
DMA engine, hence, a DMA that fits a specific application can affect timing include loading of hot signals coming
can be designed. directly from the PCI bus, gate count and floor planning.
Table 4 shows the key timing parameters for the LogiCORE
The theoretical maximum bandwidth of a 32 bit, 33 MHz PCI32 Spartan Interface that must be met for full PCI com-
PCI bus is 132 MB/s. How close you get to this maximum pliance.
will depend on several factors, including the PCI design
used, PCI chipset, the processor’s ability to keep up with Verification Methods
your data stream, the maximum capability of your PCI
design and other traffic on the PCI bus. Older chipsets and Xilinx has developed a testbench with numerous vectors to
processors will tend to allow less bandwidth than newer test the Xilinx PCI design; this is included with the Logi-
ones. CORE PCI32 Spartan Master and Slave Interfaces A ver-
sion of this testbench is also used internally by the Xilinx
In the Zero wait-state mode, no wait-states are inserted PCI team to verify the PCI32 Interfaces. Additionally, the
either while sourcing data or receiving data. This allows a PCI32 Interfaces have been tested in hardware for electri-
100% burst transfer rate in both directions with full PCI cal, functional and timing compliance.
compliance. No additional wait-states are inserted in
response to a wait-state from another agent on the bus. Table 4. Advanced Timing Parameters [ns]
Either IRDY or TRDY is kept asserted until the current data LogiCORE
phase ends, as required by the V2.1 PCI Specification. PCI Spec.
Parameter Ref. PCI32, XCS-4
In one wait-state mode, the LogiCORE PCI32 Spartan Min Max Min Max
Interface automatically inserts a wait-state when sourcing CLK Cycle Time 30 ∞ 301 ∞
data (Initiator Write, Target Read) during a burst transfer. In CLK High Time 11 11
this mode, the LogiCORE PCI32 Spartan Interface can
CLK Low Time 11 11
accept data at 100% burst transfer rate and supply data at
50%. CLK to Bus Sig- TICK- 2 11 22 9.6
nals Valid3 OF
See Table 3 for a PCI bus transfer rates for various opera-
CLK to REQ# and TICK- 2 12 22 9.6
tions in either zero or one wait-state mode.
GNT# Valid3 OF
Table 3: LogiCORE PCI32 Spartan Transfer Rates Tri-state to Active 2 22
Zero Wait-State Mode CLK to Tri-state 28 281
Operation Transfer Rate Bus Signal Setup TPSU 7 7
to CLK (IOB)
Initiator Write (PCI ← LogiCORE) 3-1-1-2
Bus Signal Setup 7 71
Initiator Read (PCI → LogiCORE) 4-1-1-2
to CLK (CLB)
Target Write (PCI→ LogiCORE) 5-1-1-1
GNT# Setup to TPSU 10 5.2
Target Read (PCI ← LogiCORE) 6-1-1-1
CLK
One Wait-State Mode
Input Hold Time TPH 0 0
Operation Transfer Rate After CLK (IOB)
Initiator Write (PCI ← LogiCORE) 3-2-2-2 Input Hold Time 0 02
Initiator Read (PCI → LogiCORE) 4-1-1-2 After CLK (CLB)
Target Write (PCI→ LogiCORE) 5-1-1-1 RST# to Tri-state 40 402
Target Read (PCI ← LogiCORE) 6-2-2-2 Notes:
Note: Initiator Read and Target Write operations have effectively 1. Controlled by TIMESPECs, included in product
the same bandwidth for burst transfer. 2. Verified by analysis and bench-testing
3. IOB configured for Fast slew rate
May, 1999 2 - 29
PCI32 Spartan Master & Slave Interface
The testbench shipped with the interface verifies the PCI Device Utilization
interface functions according to the test scenarios specified
The Target-Only and Target/Initiator options require a vari-
in the PCI Local Bus Specification, V2.1; see Figure 2. This
testbench consists of 28 test scenarios, each designed to able amount of CLB resources for the PCI32 Spartan Inter-
face. The core includes a switch to force the entire deletion
test a specific PCI bus operation. Refer to the checklists
chapter in this databook for a complete list of scenarios. of unused Base Address Registers.
Utilization can vary widely, depending on the configuration
Figure 2. PCI Protocol Testbench
choices made by the designer. Options that can affect the
faketarg pci_lc_i testbnch size of the core are:
2 - 30 May, 1999
2 0 0
R
General Description
Part of or all of the design is available at no cost to all reg-
istered LogiCORE PCI Interface customers, who can down-
Xilinx Inc. load it from the LogiCORE PCI Lounges at
2100 Logic Drive
www.xilinx.com/pci
San Jose, CA 95124
Phone: +1 408-559-7778 See the Ordering Information chapter for details.
Fax: +1 408-377-3259 These designs are general purpose data transfer engines
E-mail: Techsupport: hotline@xilinx.com to be used with the LogiCORE PCI Interfaces. Figure 1 pre-
Feedback: logicore@xilinx.com sents a block diagram of the bridge design. Typically, the
URL: www.xilinx.com/pci user will customize the local interface to conform to a par-
ticular peripheral bus (ISA, VME, i960) or attach to a mem-
Introduction ory device. The design is modular so that unused portions
This synthesizable PCI bridge designs are a set of re-us- may be removed. Some versions are subsets of the com-
able Reference Designs for use with the LogiCORE PCI64 plete design, and do not contain parts of the target function-
and PCI32 Interfaces. They are delivered in Verilog and ality as indicated in the facts table.
VHDL and have been tested with various devices. These
examples demonstrate how to interface to the PCI core and
provide a modular foundation upon which to base other de-
signs. The Reference Designs can be easily modified to re-
move select portions of functionality. The facts table lists
the set of features and specifics for each design.
PCI_TOP
PCIM_LC VOYAGER
TRANSFER
INITIATOR
IFIFO_OUT
STATE IFIFO_IN
Initiator Transfer Engine with FIFOs
INITIATOR IADDR
ICONTROL
CONTROL
XFER XFER
ADIO STATUS STATE
REGISTERS
S_CBE
RESOLVE
LogiCORE PCI Interface
LDOUT
LDIN
BAR 0
Target Register LADDR
Target Control Multiplexer
TARGET
FORCE_RETRY
CONTROL
TARGETFIFO
X8557
May, 1999 2 - 31
Synthesizable PCI Bridge Design Examples
1. The CLB count includes the full design and PCI interface. Actual count depends on the implemented feature set. The bridge design
does not use any I/O.
2 - 32 May, 1999
Functional Description side, and are cleared by reading the mailbox. Before mail-
box interrupts may occur, the mailbox interrupt enable bits
This design example supports target functionality in two in the CONTROL register must be set.
memory spaces. Initiator functionality is controlled by writ-
ing into registers. The local bus interface signals are distinct Region Three: Bounded Latency Accesses
for each block in the design, allowing blocks to be added or
The two registers in this region are used for demonstrating
removed. Data transfer is pipelined for high clock rate. The
bounded latency non-burst accesses. This type of access
functional description listed here describes the entire syn-
may be used in situations where the user application has a
thesizable bridge design, certain versions will contain a
short latency with a known upper bound of 16 PCI clocks
subset of this functionality as listed in the facts table.
from the time the initiator asserts FRAME#. This is done by
inserting wait states until the target is capable of completing
BAR0 Configuration
the transaction.
BAR0 is configured as a 4 kilobyte MEM space which maps
Register BL_CTRL controls the initial latency of read and
to a number of registers. This space does not support mul-
write operations for itself and BL_DATA. Only the least-sig-
tiple data phase transfers. All accesses to this space termi-
nificant four bits of the register are implemented, and the
nate with target disconnect with data.
register is only accessible from the PCI bus. The local side
This space is logically divided into four regions based on has no access to this register, so local reads will return all
functionality. The four regions, and the functions of the reg- zeroes and writes have no effect.
isters, are discussed below.
The second register, BL_DATA, is a general purpose, read/
Region One: Doorbells write register that responds according to the settings in
BL_CTRL. This data register is only accessible from the
Register DBELL_P1 is a PCI-to-local doorbell. A PCI agent
PCI bus. The local side has no access to this register, so lo-
may create an interrupt on the local side by setting any bit
cal reads will return all zeroes and writes have no effect.
of the register. A PCI agent is permitted to read back the
status of this register with no side-effects. Region Four: Control Registers
When the local side services the interrupt, it reads this reg- The first three registers in this region control the initiator
ister to determine the cause of the interrupt, then clears the transfer engine.
interrupt by writing a one to that bit. The local side may read
Register XFER_LEN is used to indicate the length of the
this register without side-effects.
data block to be transferred. The low half of the register is
Similarly, DBELL_L1 is a local-to-PCI doorbell. To prevent not implemented. The high half is implemented as a load-
spurious interrupts, an interrupt may not be cleared by the able 16-bit counter.
agent that requested it. The recipient of the interrupt must
This register is accessible from both the PCI bus and local
clear the interrupt. To enforce this, doorbell register bits
bus, and may be read at any time. Status of transfers in
may not be cleared from the requesting side. Before door-
progress may be obtained by reading this register. With
bell interrupts may occur, the doorbell interrupt enable bits
each successful transfer, the counter decrements.
in the CONTROL register must be set.
Register XFER_PADR contains the current PCI bus ad-
Region Two: Mailboxes dress for transfers performed by the transfer engine. De-
Register MBOX_P1 is a PCI-to-local mailbox. A PCI agent pending on the direction of the transfer, this address may
may deliver mail to an empty mailbox for a local agent to be a source or destination.
pick up. When a PCI agent writes to this register, the data This register is accessible from both the PCI bus and local
is registered and a “full” flag is set. Subsequent writes to a bus, and may be read at any time. Status of transfers in
full mailbox have no effect. The PCI agent may not read progress may be obtained by reading this register. With
back delivered mail. Reads of the mailbox from the PCI bus each successful transfer, the address increments.
side return the state of the full flag (replicated in all bits).
Register XFER_LADR contains the current local address
When the local side reads the mailbox, the “full” flag is for transfers performed by the transfer engine. Depending
cleared. Subsequent reads of an empty mailbox return the on the direction of the transfer, this address may be a
last valid data present in the mailbox. source or destination. Only the low half of this register is im-
Similarly, MBOX_L1 is a local-to-PCI mailbox. The “full” flag plemented.
may be monitored in two ways. Mailbox “full” flags are al- This register is accessible from both the PCI bus and local
ways observable in the CONTROL register, so both PCI bus, and may be read at any time. Status of transfers in
agents and local agents may poll the CONTROL register to progress may be obtained by reading this register. With
watch for new messages. Optionally, full mailboxes may each successful transfer, the address increments.
create interrupts. Interrupts are created on the recipient’s
May, 1999 2 - 33
Synthesizable PCI Bridge Design Examples
If the initiator never retries the original transaction, dead- The FIFOs are identical, but data flows in opposite direc-
lock may occur. For this reason, there exists a discard timer tions. A description of a FIFO follows in the FIFO section.
that signals a waiting delayed completion should be dis- Table 3 lists the signals used in the interface.
carded. This timer times out after 32,768 PCI clocks. This Table 3: Local Bus Initiator Fifo Interface
period may be shortened to allow simulation of this event in
a reasonable amount of time. Name Direction Function
IWF_LD output Data requested or available
Register File Interface IRF_ST output
The operation of this block is synchronous to the PCI clock. IF_ADDR output Transfer starting address
This block contains all the control and status registers dis- IWF_AF, output Transfer almost done flag
cussed in the functional description. The local bus access IRF_AE
port is defined in Table 1. IWF_WR, input FIFO write and read enable
IRF_RD
IWF_DIN input Data transfer ports
IRF_DOUT output
2 - 34 May, 1999
Pinout
The register file and FIFO interface pinouts are not fixed to
specific FPGA I/O pads, allowing flexibility in customization.
The PCI bus specific signals are constrained as part of the
LogiCORE PCI32 implementation.
As shipped, all of the register file and FIFO interface signals
are brought off-chip, but it is not necessary that any inter-
face signals be brought off chip at all in single FPGA de-
signs.
Core Modifications
Modifications can be done to remove the initiator function-
ality or selected portions of the target functionality. The full
design may be expanded as needed or reduced to a very
small subset of the original design. The PCI interface itself
is also configurable by the designer.
Verification Methods
This design example includes a system level testbench that
simulates a four-slot PCI system. This simulation testbench
includes a behavioral host bridge (with programmable arbi-
ter) capable of generating burst transactions and a pro-
grammable behavioral target.
May, 1999 2 - 35
Synthesizable PCI Bridge Design Examples
2 - 36 May, 1999
2 01 0
Features
• Universal PCI Card
• PCI 2.2 Compliant
• Supports 3.3V and 5V VIO voltages using auto-sensing
Nallatech Limited Circuitry
• Supports 32 & 64 bit PCI in frequencies up to 66 MHz
10-14 Market Street
• Requires only a 5V supply from the Host Motherboard
Kilsyth, Glasgow
• Configured over SelectMap Interface from Flash
G65 0BD
Memory via 95144XL CPLD
Scotland
• Flash Memory reconfigured via Xilinx MultiLINX
Phone: +1 44 7020 986532
Download Cable
Fax: +1 44 7020 986534
• 50Mbytes per second configuration rate
E-mail: info@nallatech.com
• CPLD Flash booting source files included with board
Website: www.nallatech.com
• Direct Virtex Configuration using MultiLINX Download
Cable
Introduction • Image Processing Demonstration Bitstream
This board allows designers to quickly evaluate the perfor- • Image Processing Demonstration Software
mance of Xilinx’s 64 bit / 66 MHz PCI Core including data • PCB Design Files for PCI Interface available
throughput capabilities across the PCI bus to an on-board • 4M x 64 (32Mbytes) SDRAM in SODIMM Socket
SDRAM SODIMM module. • LEDs showing Power Good for 5V, 3.3V, 2.5V & 1.8V
Expansion capability is provided through an interface stan- • LEDs Indicating Vio level and whether 3.3V or 5V
dard known as DIME. Two DIME module sites are present Bitstream has been loaded
on the PCI card providing users with the ability to build cus- • 2 DIME Module Sites for Customization and Expansion
• 50MHz and Programmable Oscillator
May, 1999 2 - 37
PCI64 PCI Prototyping Board
Options to the FPGAs Select Map port. This data is transferred over
the selectmap port at 50MBytes/Sec, thus allowing the
All options are available directly from Nallatech. FPGA to be configured in a few milliseconds. This is a 50x
• DSP and Image Processing Core, Compliant with DIME improvement over the fast serial mode transfer rate.
Distributed Image Processing Level 1 Standard Two DIME Module sites provide the user with access to an
• JTAG FPGA Configuration Software (for FPGAs on ever growing variety of interfaces and data processing
DIME Modules) nodes. In fact full system solutions can be developed with
• Reprogram Bitstream in Boot Flash Via PCI Interface just this card and one or two DIME modules. Therefore the
(for easy field upgrades) user often need not bother with the development of custom
• Ballyvision - NTSC/PAL Video Capture and Display PCBs for a solution to their system problem. For more
DIME Module details on available DIME modules and more information
• Ballyblue - Dual V1000 Virtex FPGA DIME Module for on the standard, go to the Nallatech web site,
over 2 Million Gates
• Ballytest - DIME Connector Breakout Module www.nallatech.com
• Ballydiff - Low Voltage Differential Signalling, LVDS, D 68 D
I I
DIME Module M M
E E
• Custom DIME Module Design Service is Available 64
S S
l l
General Description o
t
o
t
Xilinx PCI64/66 Design Kit, available from Xilinx. This card MultiLINX
XCV300
Interface
allows designers to quickly evaluate the performance of the Config
Control Select Map I/F
VIRTEX
FPGA 4Mx64
Xilinx PCI64/66 LogiCORE design in their system. The EPLD
SDRAM
93
SODIMM
firmware and software provided clearly demonstrate the Module
capabilities of the LogiCORE design along with the perfor- Flash
mance enhancements that the Virtex offers for DSP appli- Memory
cations.
Further, the Nallatech PCI64 board demonstrates how to PCI BUS 64 Bit, 66MHz
x9024
2 - 38 May, 1999
The default mode demonstrates how a universal PCI card The first program provides a GUI interface to the PCI
can be built. The Program mode gives the user control over Bridge Design part of the PCI LogiCORE. The SDRAM is
the flash chip. connected to the back of this bridge and DMA transfers to
and from this memory can be performed and the transfer
Alternatively, Nallatech have a product that can be added to
a user’s PCI interface that allows the Flash Configuration rate is displayed. This interface also provides the user with
Memory to be reprogrammed directly over the PCI inter- the basic operation of the Xilinx PCI Bridge Design.
face using a software Utility. This allows users of the PCI Another GUI-based program allows the user to download
logicore to easily integrate Firmware Field upgrades into an image to the SDRAM memory. Noise can then be added
their products. to the image and functions such as convolution or edge
detection can be performed on the image. The resultant
Software image is then stored in another part of the SDRAM for col-
lection by the GUI. The function is also performed on the
Two software programs are included, demonstrating the
performance of the PCI bus and the DSP processing capa- PC and the time to complete the functions is logged for
bilities of the Virtex FPGA. comparison. Figure 3 shows the user interface to the Image
Processing Demonstration program.
May, 1999 2 - 39
PCI64 PCI Prototyping Board
2 - 40 May, 1999
2 0 0
May, 1999 2 - 41
HotPCI Spartan Prototyping Board
Configration Configration
Flash Cache
8
Connector CCM Connector
A Power ON Run-Time B
32 Loader Loader 32
BANK A BANK B
RAM Runtime Readback RAM
32-bit 32-bit
XC95108
A Bus B Bus
Configuration & Control Signals
General Description Vireo. Together with VCC’s HotPCI Board, Vireo’s develop-
ment tools allow easy customization and prototyping of a
The Spartan HotPCI board is a PCI bus based general pur- complete PCI system. See the Driver::Works Windows
pose PCI Prototyping Board, which is provided with the Xil- Device Driver Development Kit Version 2.0 and the VtoolsD
inx PCI32 Design Kit (see the Ordering Information chapter Windows Device Driver Development Kit Version 3.0 data
of this data book for details). When used in conjunction with sheets for more details on the driver development tools.
the LogiCORE PCI32 Spartan Interface, designers can Included with the board is also a bitstream and a Windows
quickly modify and test their PCI designs in-system. It fea- ‘95 application CD that allow demonstration of the card.
tures the XCS40 FPGA as the PCI bus interface chip, and a
single bank of SRAM plus a VCC proprietary reconfigura- Functional Description
tion system, the Configuration Cache Manager (CCM).
The Spartan HotPCI Spartan Prototyping Board is valuable The Spartan XCS40 FPGA contains the Xilinx LogiCORE
for evaluating, customizing, and verifying the Xilinx Logi- PCI32 Interface Macro and the backend design. VCC sup-
CORE PCI32 product line. The mezzanine daughter card plies a customized backend that allows users to communi-
connectors offer expandability for prototyping additional cate with two fully independent 32-bit banks of RAM and
features or extending the programmable logic capabilities the Configuration Cache Manager (CCM). The CCM con-
of the HotPCI board. A series of daughter cards are avail- trols the Run-Time Reconfiguration (RTR) behavior of the
able from VCC, including a prototyping card for wire-wrap system.
projects, an extended logic card with the XC40125, and a The HotPCI board has two independent buses, each with
XC6200 Reconfigurable Processing Unit (RPU) card offer- 32-bit data and 24-bit address. There is a daughter board
ing microsecond dynamic partial reconfiguration. I/O connector for each of these two buses.
2 - 42 May, 1999
configuration into the Configuration Ram Cache. The user Configuration with an Xchecker cable
then writes to the CCM to start the reconfiguration of the
FPGA. During this time access to the board is disabled by Configuration can also be performed through an Xchecker
the driver. When the FPGA comes back on-line it signals cable or download cable. The supplied Xchecker module
occupies one of the daughter card I/O connectors. The PCI
the driver, which reloads the PCI Header information into
the LogiCORE PCI Core. A 128KB Configuration Cache bus of the host computer must be reset when this occurs.
RAM can hold 3 XCS40 configurations. See Figure 2 for a
block diagram of the board.
May, 1999 2 - 43
HotPCI Spartan Prototyping Board
2 - 44 May, 1999
2 0 0
Support
Support for DriverWorks is provided only from Vireo. See
Vireo’s home page for contact instructions and other
details.
Features
• Windows NT support
• Windows 98 support
• DriverWizard, Vireo’s Code Generation Wizard
Interface. The Wizard includes automated support for
all PCI functions, including:
- PCI Configuration
- DMA
- Mapped Memory
- Interrupt handling
- IO Ports Figure 1: DriverWizard GUI (earlier version shown)
- Application interface
- Registry interface
May, 1999 2 - 45
DriverWorks Windows Device Driver Development Kit Version 2.0
2 - 46 May, 1999
Licensing
The version of DriverWorks included in the Xilinx PCI De-
sign Kit is fully functional and includes all libraries and soft-
ware. It is licensed for use in driver development and
prototyping only. Vireo offers Xilinx PCI customers the op-
portunity to purchase a royalty-free distribution license.
Contact Vireo for pricing and details.
Vireo provides free bug fixes available for immediate down-
load. Timely new versions provide support for a new com-
piler versions, and operating system revisions. Vireo also
provides new examples and bug fixes on a regular basis.
Technical support on this product is available only through
Vireo Software Inc.
May, 1999 2 - 47
DriverWorks Windows Device Driver Development Kit Version 2.0
2 - 48 May, 1999
2 0 0
May, 1999 2 - 49
VtoolsD Windows Device Driver Development Kit Version 3.0
2 - 50 May, 1999
8
0
0 May, 1999
R
Reference Design Facts
Design Specifics
Tested LogiCORE PCI32 4000 V2.0.2
Xilinx Inc. PCI Interfaces PCI32 Spartan V2.0.3
2100 Logic Drive PCI32 4000XLA V3.0
San Jose, CA 95124 PCI32 SpartanXL V3.0
Phone: +1 408-559-7778 Tested Devices1 XC4013XLT-1 PQ240
Fax: +1 408-377-3259 XC4028XLT-1 HQ240
E-mail: Techsupport: hotline@xilinx.com XC4013XLA-09 PQ208
Feedback: logicore@xilinx.com XCS30-4 PQ240
URL: www.xilinx.com/pci XCS30XL-4 PQ240
CLBs Used3 Up to 58
Introduction IOBs Used3 2
The synthesizable PCI Power Management design is a Tested Platforms2
Reference Design for use with the LogiCORE PCI32 Spar-
Workstation Flows Verilog XL 2.6, VSS 9802,
tan/Spartan XL and PCI32 4000/4000XLA . It is delivered in
FPGA Compiler and A1.5iSP1
both Verilog and VHDL. This example shows how the capa-
PC Flows MTI ModelSim PE/Plus V4.7h,
bilities linked list structure may be implemented along with
Foundation Express 3.1 and F1.5i
the LogiCORE PCI32 Interface and the user backend func-
with Service Pack 1
tion in the Xilinx FPGA.
Xilinx Core Tools M1.5isp1
This design is demonstrated as an add-on module to the
Provided with the Reference Design
Xilinx ping design. Please refer to the PCI application note
Ping Application Example for details (available from Xilinx’s Documentation Synthesizable PCI Power
customer-only PCI lounge). Management Application Note
Design File Formats VHDL, Verilog
This data sheet assumes that you are familiar with the PCI
Verification Tools VHDL\Verilog Testbench
V2.2 specification and the PCI Power Management V1.1
specification. If you are not familiar with this information, Symbols VHDL, Verilog
please review the PCI Local Bus Specification, Revision 2.2 Support
and the PCI Bus Power Management Interface Specifica- This Reference Design is provided as is under the Refer-
tion, Version 1.1 available from the PCI Special Interest ence Design License Agreement, refer to chapter 9 in the
Group (www.pcisig.com). Xilinx PCI Databook.
Notes:
Features 1. Listed are the devices that Xilinx used to verify the de-
• Demonstrates how to implement the capabilities linked sign. Other devices may be used.
list in the LogiCORE PCI32 Interfaces 2. Listed are the design tools that Xilinx used to verify the
• Demonstrates how to implement the user-defined design.
configuration space register 3. The CLB and IOB counts do not include the PCI inter-
• Supports for up to 4 PCI function power management face and the Ping application design. Actual CLB number
states (D0-D3) depends on the core & device used.
• Supports PMCSR_BSE register for PCI bridge specific
functionality
• Supports optional Data register to report state-
dependent operating data
Functional Description Since the PCI32 Interface provides only the PCI Configura-
tion Header (Offset 0x00 to 0x3F), a User-defined Configu-
The Power Management spec defines a standard for four ration Register is needed to implement registers from
basic power management operations: Capabilities Report- address offset 0x40 to 0xFF. This design implements an 8-
ing, Power Status Reporting, Setting Power States, and byte register to implement the Power Management register
System Wakeup. These four operations are supported in block. This design also supports the RTL-level logic for the
this reference design. PME generator.
Xilinx’s LogiCORE PCI32 Interface allows user to enable
the Capabilities bit (Bit 4) in the Status register and to spec- Capabilities Linked List
ify the address of the capabilities linked list in the 1-byte In order for the software to determine if a specific PCI func-
Cap_Ptr field of the PCI Configuration Header. Refer to the tion is designed to support Capabilities Linked List, Bit 4 of
File Modification section for details. the Status register needs to be set and the first address of
2 - 52 May, 1999
the linked list needs to be set to the Cap_Ptr register (Offset Capability ID and Next Item Pointer
0x34 for Header Type 0 & 1 devices) during design time.
Both the Cap_ID and the Next_Item_Ptr are 8-bit read-only
This can be done during the web download of the PCI32 registers and their values are set by in the HDL code
Interface or by editing the configuration file (cfg.v or (power_man.v or power_man.vhd).
cfg.vhd). For each capabilities linked list, the first byte of
each entry contains the ID for that capability (01h for Power PMC
Management). The next byte (Next_Item_Ptr) contains the This is a 16-bit read-only register which provides informa-
pointer to the absolute offset in the function’s PCI Config- tion on the capabilities of the PCI function related to power
uration Space for the next item in the list. Items must be management. The information in this register is static and
DWORD aligned. The last item in the list must have its known at design time.
Next_Item_Ptr set to null.
The register value is set in the HDL code. This design sup-
ports the optional D1 and D2 power states, PME# can be
asserted from D0, D1, D2 and D3hot, and no PCI clock is
required for the function to generate PME#.
PMCSR
This 16-bit read-write register is used to managed the PCI
function’s power management state as well as to enable/
monitor PMEs.
Data
This is an optional 8-bit read-only register that provides a
mechanism for the PCI function to report state dependent
operating data such as power consumed or heat dissipa-
tion. Typically the data returned through the Data register is
Figure 5: Power Management Register Block
a static copy of the PCI function’s worst case “DC charac-
This design implements the complete register block with teristics” data sheet. This data, when made available to the
user-defined configuration space (refer to next section). system software, could then be used to intelligently make
Refer to the Power Management spec for detailed descrip- decisions about power budgeting, cooling requirements,
tion of this register. etc.
May, 1999 2 - 53
Synthesizable PCI Power Management Design Example
If Data register is implemented, then the Data_Select and state and it will be system software’s responsibility to bring
Data_Scale fields of the PMCSR register must also be it back to D0 uninitialized state.
implemented.
This register is implemented as a 16x8 ROM in the HDL
Pinout
code and its value can be modified by user. The new PME_N and WAKEUP_N pins are not fixed to
specific FPGA I/O pads. The PCI bus specific signals are
User-defined Configuration Space constrained as part of the LogiCORE PCI32 implementa-
The PCI spec defines a 256-byte configuration space and tion.
Xilinx’s LogiCORE PCI32 Interface implements only the
PCI Configuration Header (first 40 bytes, offset 0x00 to Core Modifications
0x3F). Configuration space with address offset 0x40 to This design is released with all the RTL source codes and
0xFF can be added by the user. Please refer to the User run scripts for simulation and M1 implementation. It does
Definable Configuration Space section in the Configuration not include any PCI32 core related files (e.g. PCI32 core
Transfers chapter of the PCI32 User’s Guide. netlist, ucf files, guide files, etc.) that are located in the src
The Power Management register block is implemented directory of the PCI32 download.
using this user-defined configuration space (address 0x50 Although this design is released with all the Ping backend
in this design, can be changed by user). Access to this design, files are different from those in the Ping example.
region is controlled by the “User Config Space Enable” Under the /example/source directory, a new file
switch in the configuration file. This switch can be enabled (power_man) is added and modifications are made to
during the web download or by editing the configuration file. ping_tb, pcim_lc/pcis_lc, cfg and stimulus files.
This design allows different configuration data phase con- To run the Power Management reference design, download
trol conditions between the Power Management register the design from Xilinx’s PCI32 lounge. Unzipping the down-
block and the backend design (ping example design in this load creates the example_pm directory. Move the
case). Output signals C_TERM and C_READY from the example_pm directory under the same directory where
backend design will go to the power_man instead of driving example directory is located. The example_pm directory
the PCI interface, as is normally the case in the ping design contains all the design files and run scripts for this refer-
example. These two signals are named in the top-level ence design.
wrapper file as C_TERM_INT and C_READY_INT respec-
Below is a description of the file differences.
tively). Since this design will disconnect with data on the
first data phase during configuration cycles, it will drive The cfg file
these two signals HIGH all the time. The Configuration
Phase Termination Control Multiplexer will multiplex • The Cap List Enable and the User Config Space Enable
between these signals from ping and power_man with con- switches are enabled
trol signal c_switch. The multiplexer output will then drive • Capability List Pointer address is programmed to 0x50
the C_TERM and C_READY of the PCI32 interface. (this address can be set to 0x40 to 0xFF by user)
2 - 54 May, 1999
Config Space box will also be enabled) generates PCI transactions to test the Power Management
• Double click on the Cap List Ptr field (address 34h) and capabilities linked list, the I/O and memory registers.
enter the Cap List Ptr address
Recommended Design Experience
Editing the cfg file
Previous experience with Xilinx’s PCI design flow, Verilog
• Enable the Capability List Enable switch and the User and VHDL is recommended to user of this reference
Config Space Enable switch design.
• Enter the Capability List Pointer address
Verification Methods
A simulation testbench is provided in both Verilog and
VHDL. This testbench first configures this design, then it
May, 1999 2 - 55
Synthesizable PCI Power Management Design Example
2 - 56 May, 1999
11
FPGA Products
1 Introduction
2 PCI Products
3 FPGA Products
4 Design Methodology
7 Resources
8 Waveforms
For the complete Spartan and SpartanXL Product Specification, see www.xilinx.com
Design Methodology
1 Introduction
2 PCI Products
3 FPGA Products
4 Design Methodology
7 Resources
8 Waveforms
Design Methodology
The LogiCORE PCI Interfaces are highly optimized for the provided VHDL and Verilog simulation models. Next, the
Virtex, XC4000XLA, and SpartanXL FPGAs. Easy to use user compiles the design using Xilinx Alliance or Founda-
tools provide easy implementation of the PCI interface. Pre- tion Series software for the targeted FPGA. At this point the
placed and pre-routed guide files along with .ucf files guar- design can be resimulated or downloaded to the target
antee timing performance on critical control signals like device. See Figure 1 for a complete design flow.
IRDY#, TRDY#, and FRAME#.
The user connects the LogiCORE PCI Interface to other
LogiCORE PCI Configuration
modules to complete the design. For example, to complete To support multiple design environments, the LogiCORE
a PCI adapter card interface using the XC4013XLA, a PCI interface can be configured and downloaded from the
designer first configures the PCI core using the intuitive web complete with a netlist, constraints, simulation model,
graphical user interface on the Xilinx web site, and down- and testbench in VHDL or Verilog. This methodology is
loads proven PCI design. See Figure 2 for the GUI. A described in our on-line documentation. For more details
designer would then create either a VHDL or a Verilog see the Xilinx PCI Design Guide.
description, using the LogiCORE PCI32 Interface compo-
nent together with the required user application. The user
can then simulate the core with the customer design using
Synthesis
User design only
CORE Design Timing
zip or tar
Netlist Simulation
CORE
Download
Netlist Place &
Netlist
Constraints Route
Design
Implementation
This LogiCORE PCI configuration methodology allows HDL Subsystem ID and Subsystem Vendor ID uniquely identify
users to modify some attributes of the PCI macro. After the add-in board or subsystem containing the PCI device.
configuring the macro, the user can download the design The option to disable the Subsystem ID and Subsystem
files in a PC or UNIX format. Using the macro in a HDL flow Vendor ID fields is provided to enable the user to design an
is described in either the LogiCORE PCI Virtex, XLA, or application which dynamically provides this information to
SpartanXL Implementation Guide. the LogiCORE PCI64 interface, rather than have it defined
in the configuration file. When this option is enabled, the
For users that cannot access the configuration tool on the
web, the core can be configured locally by editing a single Subsystem ID and Subsystem Vendor ID must be supplied
VHDL or Verilog file. to the interface using the SUB_DATA[31:0] bus.
External Subsystem
The External Subsystem Checkbox allows the user to dis-
able the Subsystem ID and Subsystem Vendor ID fields.
PCI Compliance Checklists
1 Introduction
2 PCI Products
3 FPGA Products
4 Design Methodology
7 Resources
8 Waveforms
Virtex
PCI Compliance Checklist
5 V Signaling
3.3 V Signaling
64-bit Components
Explanations:
CE51: The Virtex device must be configured prior to the deassertion of RST#.
CE52: The user must follow recommendations explained in the documentation.
This section should be used to clarify any answers on checklist items above. Please key explanation to item
number.
XC4000XLA
PCI Compliance Checklist
5 V Signaling
5 - 10 May, 1999
Type Description Yes or N/A
CE13. REQ#, GNT# outputs source at least 22mA at 1.4V in the high state? yes ✓
proven at: 3.6 Vcc=max, ___ process=worst/slow, ___ junction temp=125 oC no___
(max) by: ___ SPICE simulation, __ device characterization, ___ oth-
er:_______________
CE14. REQ#, GNT# outputs sink at least 47mA at 2.2V in the low state? na ___
proven at: 3.0 Vcc=min, ___ process=worst/slow, ___ junction temp=125 oC yes ✓
(max) by: ___ SPICE simulation, __ device characterization, ___ oth- no___
er:________________
CE15. Clamps on all signals source at least 25mA at -1V, and 91mA at -2V? na ___
proven by: __ SPICE simulation, ✓ device characterization, oth- yes ✓
er:_____________ no___
CE16. Unloaded rise times are no lower than 1 V/nS between 0.4 and 2.4V? yes ✓
The unloaded maximum rise time is: 2.3V/nS (measured at pin) no___
CE17. Unloaded fall times are no lower than 1 V/nS between 2.4 and 0.4V? yes ✓
The unloaded maximum fall time is: 2.1V/nS (measured at pin) no___
May, 1999 5 - 11
XC4000XLA PCI Compliance Checklist
3.3 V Signaling
5 - 12 May, 1999
Type Description Pass/NA
CE33. Unloaded rise times are no lower than 1 V/nS between 0.2Vcc and 0.6Vcc? na ___
The unloaded maximum rise time is: 1.55 V/nS (measured at pin) yes ✓
no___
CE34. Unloaded fall times are no lower than 1 V/nS between 0.6Vcc and 0.2Vcc? yes ✓
The unloaded maximum fall time is: 1.43 V/nS (measured at pin) no___
May, 1999 5 - 13
XC4000XLA PCI Compliance Checklist
5 - 14 May, 1999
Timing Specification
May, 1999 5 - 15
XC4000XLA PCI Compliance Checklist
64-bit Components
Explanations:
This section should be used to clarify any answers on checklist items above. Please key explanation to item
number.
5 - 16 May, 1999
5 0 0
Spartan-XL
PCI Compliance Checklist
May, 1999 5 - 17
Spartan-XL PCI Compliance Checklist
5 V Signaling
5 - 18 May, 1999
Type Description Yes or N/A
CE15. Clamps on all signals source at least 25mA at -1V, and 91mA at -2V? na ___
proven by: __ SPICE simulation, ✓ device characterization, other:____________ yes ✓
no___
CE16. Unloaded rise times are no lower than 1 V/nS between 0.4 and 2.4V? yes ✓
The unloaded maximum rise time is: 22 V/nS (measured at pin) no___
CE17. Unloaded fall times are no lower than 1 V/nS between 2.4 and 0.4V? yes ✓
The unloaded maximum fall time is: 2.3 V/nS (measured at pin) no___
May, 1999 5 - 19
Spartan-XL PCI Compliance Checklist
3.3 V Signaling
5 - 20 May, 1999
Type Description Pass/NA
CE33. Unloaded rise times are no lower than 1 V/nS between 0.2Vcc and 0.6Vcc? na ___
The unloaded maximum rise time is: 1.47 V/nS (measured at pin) yes ✓
no___
CE34. Unloaded fall times are no lower than 1 V/nS between 0.6Vcc and 0.2Vcc? yes ✓
The unloaded maximum fall time is: 1.5 V/nS (measured at pin) no___
May, 1999 5 - 21
Spartan-XL PCI Compliance Checklist
5 - 22 May, 1999
Timing Specification
May, 1999 5 - 23
Spartan-XL PCI Compliance Checklist
64-bit Components
Explanations:
This section should be used to clarify any answers on checklist items above. Please key explanation to item
number.
5 - 24 May, 1999
5 0 0
May, 1999 5 - 25
LogiCORE PCI V3.0 Cores PCI Compliance Checklist
5 - 26 May, 1999
Indicate either N/A (Not Applicable) or Implemented by placing a check in the appropriate box. Grayed areas indicate invalid
selections. This table should be completed for each function in a multifunction device.
May, 1999 5 - 27
LogiCORE PCI V3.0 Cores PCI Compliance Checklist
Device Control
This section should be completed individually for all functions in a multifunction device.
In the following tables for Command and Status Registers, an “✓” in the “Target” or “Master” columns, indicates that applying
the bit is appropriate. “N/A” indicates that applying the bit is not applicable, but must return a 0 when read.
Device Status
This section should be completed individually for all functions in a multifunction device.
Device Status Questions
5 - 28 May, 1999
Bit Name Required/Optional Target Master
0-4 Reserved Required ✓ ✓
5 66 Mhz Capable Required for 66Mhz capable devices ✓ ✓
6 UDF Supported Optional N/A N/A
7 Fast Back-to-Back Capa- Optional N/A N/A
ble
8 Data Parity Detected Required N/A ✓
9-10 DEVSEL Timing Required ✓ N/A
11 Signaled Target Abort Required for devices/functions that are capable of ✓ N/A
signaling target abort
12 Received Target Abort Required N/A ✓
13 Received Master Abort Required N/A ✓
14 Signaled System Error Required for devices/functions that are capable of ✓ ✓
asserting SERR#
15 Detected Parity Error Required unless exempted per section 3.7.2 ✓ ✓
Base Addresses
This section should be completed individually for all functions in a multifunction device
May, 1999 5 - 29
LogiCORE PCI V3.0 Cores PCI Compliance Checklist
VGA Devices
VGA Devices (fill in this section only if component is VGA device)
5 - 30 May, 1999
General Component Protocol Checklist (Master)
The following checklist is to filled out as a general verification of the IUT's protocol compliance. This checklist applies to all
master operations.
May, 1999 5 - 31
LogiCORE PCI V3.0 Cores PCI Compliance Checklist
5 - 32 May, 1999
General Component Protocol Checklist (Target)
The following checklist is to filled out as a general verification of the IUT's protocol compliance. This checklist applies to all
target operations.
General Component Protocol Checklist (Target)
May, 1999 5 - 33
LogiCORE PCI V3.0 Cores PCI Compliance Checklist
5 - 34 May, 1999
Component Protocol Checklist for a Master Device
Definition: IUT is an acronym for “Implementation Under Test”.
I/O Transactions
Configuration Transactions:
May, 1999 5 - 35
LogiCORE PCI V3.0 Cores PCI Compliance Checklist
5 - 36 May, 1999
Test # Description Pass N/A
15 IUT's Target Abort bit set after read from subtractive memory slave. ✓
16 IUT does not repeat the read transaction. ✓
I/O Transactions:
Configuration Transactions:
May, 1999 5 - 37
LogiCORE PCI V3.0 Cores PCI Compliance Checklist
I/O Transactions:
5 - 38 May, 1999
Configuration Transactions:
Test Scenario: 1.4. PCI Bus Single Data Phase Disconnect Cycles
Memory Transactions:
I/O Transactions:
May, 1999 5 - 39
LogiCORE PCI V3.0 Cores PCI Compliance Checklist
Configuration Transactions:
Test Scenario: 1.5. PCI Bus Multi-Data Phase Target Abort Cycles
Memory Transactions:
5 - 40 May, 1999
Test # Description Pass N/A
13 Target Abort bit set after write to subtractive memory slave. ✓
14 IUT does not repeat the write transaction. ✓
15 IUT's Target Abort bit set after read from subtractive memory slave. ✓
16 IUT does not repeat the read transaction. ✓
Configuration Transactions:
May, 1999 5 - 41
LogiCORE PCI V3.0 Cores PCI Compliance Checklist
5 - 42 May, 1999
Test Scenario: 1.6. PCI Bus Multi-Data Phase Retry Cycles
Memory Transactions:
I/O Transactions:
Configuration Transactions:
May, 1999 5 - 43
LogiCORE PCI V3.0 Cores PCI Compliance Checklist
I/O Transactions:
5 - 44 May, 1999
Test # Description Pass N/A
14 Data transfer after read from slow I/O slave. ✓
15 Data transfer after write to subtractive I/O slave. ✓
16 Data transfer after read from subtractive I/O slave. ✓
Configuration Transactions:
May, 1999 5 - 45
LogiCORE PCI V3.0 Cores PCI Compliance Checklist
Memory Transactions:
5 - 46 May, 1999
Test # Description Pass N/A
19 Verify that data is written to primary target when TRDY# released after ✓
5th rising clock edge and asserted on 7th rising clock edge after FRAME#
20 Verify that data is read from primary target when TRDY# released after ✓
5th rising clock edge and asserted on 7th rising clock edge after FRAME#
21 Verify that data is written to primary target when TRDY# alternately re- ✓
leased for one clock cycle and asserted for one clock cycle after FRAME#
22 Verify that data is read from primary target when TRDY# alternately re- ✓
leased for one clock cycle and asserted for one clock cycle after FRAME#
23 Verify that data is written to primary target when TRDY# alternately re- ✓
leased for two clock cycles and asserted for two clock cycles after
FRAME#
24 Verify that data is read from primary target when TRDY# alternately re- ✓
leased for two clock cycles and asserted for two clock cycles after
FRAME#
May, 1999 5 - 47
LogiCORE PCI V3.0 Cores PCI Compliance Checklist
I/O Transactions:
5 - 48 May, 1999
Configuration Transactions:
Test Scenario: 1.10. Bus Data Parity Error Multi-Data Phase Cycles
Memory Transactions:
Configuration Transactions:
May, 1999 5 - 49
LogiCORE PCI V3.0 Cores PCI Compliance Checklist
5 - 50 May, 1999
Test Scenario: 1.13. PCI Bus Master Parking
Test # Description Pass N/A
Verify that the IUT is able to drive PCI bus to stable conditions if it is idle and GNT# is asserted.
1 IUT drives AD[31::00] to stable values within eight PCI Clocks of GNT#. ✓
2 IUT drives C/BE[3::0]# to stable values within eight PCI Clocks of GNT#. ✓
3 IUT drives PAR one clock cycle after IUT drives AD[31::0] ✓
Verify that the IUT will tri-state the bus when GNT# is not asserted.
4 IUT Tri-states AD[31::00] and C/BE[3::0] and PAR when GNT# is re- ✓
leased.
Explanations
Scenario 1.1: The LogiCORE initiator detects and reports a master abort. However, the initiator deasserts
FRAME# and IRDY# one cycle later than specified in the PCI Local Bus Specification. Otherwise, the initiator
treats master abort as required. A one cycle latency should not adversely affect most designs.
Scenario 1.2: The LogiCORE initiator will not retry the transaction unless directed to do so by the user applica-
tion. It is the responsibility of the user application to monitor for target aborts and act appropriately.
Scenario 1.3: The LogiCORE initiator will retry the transaction if directed to do so by the user application. It is
the responsibility of the user application to monitor for retries and act appropriately.
Scenario 1.5: The LogiCORE initiator will not retry the transaction unless directed to do so by the user applica-
tion. It is the responsibility of the user application to monitor for target aborts and act appropriately.
Scenario 1.6: The LogiCORE initiator will retry the transaction if directed to do so by the user application. It is
the responsibility of the user application to monitor for retries and act appropriately.
Scenario 1.7: The core will always issue a disconnect with data on the first data phase of a configuration trans-
action. For extended configuration space transactions, the user application must perform a disconnect with data
on the first data phase. Multi-data phase configuration transactions are not supported.
Scenario 1.14: The LogiCORE initiator will not begin a transaction if GNT# is asserted for a single cycle and then
deasserted. In this case, the initiator will request the bus again. This behavior is transparent to the user applica-
tion.
This section should be used to clarify any answers on checklist items above. Please key explanation to item
number.
May, 1999 5 - 51
LogiCORE PCI V3.0 Cores PCI Compliance Checklist
Test Scenario: 2.3. Target Detection of Address and Data Parity Error for Special Cycle.
Test # Description Pass N/A
1 IUT reports address parity error via SERR# ✓
2 IUT reports data parity error via SERR# ✓
3 IUT keeps SERR# active for at least one clock ✓
Test Scenario: 2.4. Target Reception of I/O Cycles with Legal and Illegal Byte Enables.
Test # Description Pass N/A
If IUT does not support I/O cycles mark 1 through 4 N/A or
if IUT claims all 32 bits during an I/O cycle mark 1 and 2 N/A
1 IUT asserts TRDY# following 2nd rising edge from FRAME# on all legal ✓
BE’s
2 IUT terminates with target abort for each illegal BE ✓
If IUT supports target disconnect check the following
3 IUT asserts STOP# ✓
4 IUT deasserts STOP# after FRAME# deassertion ✓
5 - 52 May, 1999
Test Scenario: 2.6. Target Receives Configuration Cycles.
Test # Description Pass N/A
1 IUT responds to all type 0 configuration read/write cycles appropriately ✓
2 IUT does not respond to type 0 configuration cycles with IDSEL inactive ✓
If IUT does not support type 1 configuration cycles mark 3 through 5 N/A
Test # Description Pass N/A
3 IUT responds to all type 1 configuration read/write cycles appropriately ✓
4 IUT responds to all type 0 configuration read/write cycles appropriately ✓
5 IUT does not respond (master abort) on illegal configuration cycle types ✓
Test Scenario: 2.7. Target Receives I/O Cycles with Address and Data Parity Errors.
Test # Description Pass N/A
If IUT does not support I/O cycles mark all N/A
1 IUT reports address parity error via SERR# during I/O read/write cycles ✓
2 IUT reports data parity error via PERR# during I/O write cycles ✓
Test Scenario: 2.8. Target Configuration Cycles with Address and Data Parity Errors.
Test # Description Pass N/A
1 IUT reports address parity error via SERR# during configuration read/ ✓
write cycles
2 IUT reports data parity error via PERR# during configuration write cycles ✓
May, 1999 5 - 53
LogiCORE PCI V3.0 Cores PCI Compliance Checklist
Test Scenario: 2.10. Target Gets Memory Cycles with Address and Data Parity Errors.
Test # Description Pass N/A
If IUT does not interface to a memory subsystem mark 1 to 2 N/A
1 IUT reports address parity error via SERR# during all memory read and ✓
write cycles
2 IUT reports data parity error via PERR# during all memory write cycles ✓
Test Scenario: 2.13. Target Gets Cycles with IRDY# Used for Data Stepping.
Test # Description Pass N/A
1 IUT responds appropriately with a wait state inserted on phase 1 of 3 data ✓
phases
2 IUT responds appropriately with a wait state inserted on phase 2 of 3 data ✓
phases
3 IUT responds appropriately with a wait state inserted on phase 3 of 3 data ✓
phases
4 IUT responds appropriately with a wait state inserted on all of 3 data ✓
phases
5 - 54 May, 1999
Test Scenario 2.x Explanations.
Explanations
Scenario 2.4: The LogiCORE target does not automatically generate target abort or disconnect during illegal
transfers. However, this behavior can be implemented in the user application.
Scenario 2.6: The LogiCORE target does not support burst transfers in or out of its configuration space.
Scenario 2.9: The LogiCORE target does not automatically generate target abort when a burst transaction cross-
es an address boundary. However, this behavior can be implemented in the user application.
This section should be used to clarify any answers on checklist items above. Please key explanation to item
number.
May, 1999 5 - 55
LogiCORE PCI V3.0 Cores PCI Compliance Checklist
5 - 56 May, 1999
11
Pinout and Configuration
1 Introduction
2 PCI Products
3 FPGA Products
4 Design Methodology
7 Resources
8 Waveforms
Pinout for the XC4013XLA PQ208 Table 1: Pinout for the XC4013XLA PQ208 (Continued)
Table 1: Pinout for the XC4013XLA PQ208 Pin Function PCI Function PQ208
I/O P46
Pin Function PCI Function PQ208
I/O, GCK2 P47
N.C. N.C. P1
O (M1) M1 P48
GND GND P2
GND GND P49
N.C. N.C. P3
I (M0) M0 P50
I/O, GCK1 (A16) PCLK P4
N.C. N.C. P51
I/O (A17) AD23 P5
N.C. N.C. P52
I/O AD22 P6
N.C. N.C. P53
I/O AD21 P7
N.C. N.C. P54
I/O, TDI TDI P8
VCC VCC P55
I/O, TCK TCK P9
I (M2) M2 P56
I/O AD20 P10
I/O, GCK3 P57
I/O AD19 P11
I/O (HDC) HDC P58
I/O AD18 P12
I/O CBE0 P59
I/O AD17 P13
I/O AD7 P60
GND GND P14
I/O AD6 P61
I/O AD16 P15
I/O (LDC-) LDC- P62
I/O CBE2 P16
I/O AD5 P63
I/O, TMS TMS P17
I/O AD4 P64
I/O P18
I/O AD3 P65
I/O GNT- P19
I/O AD2 P66
I/O FRAME- P20
GND GND P67
I/O IRDY- P21
I/O AD1 P68
I/O TRDY- P22
I/O P69
I/O DEVSEL- P23
I/O AD0 P70
I/O STOP- P24
I/O P71
GND GND P25
I/O P72
VCC VCC P26
I/O P73
I/O PERR- P27
I/O P74
I/O SERR- P28
I/O P75
I/O PAR P29
I/O P76
I/O REQ- P30
I/O (INIT-) INIT- P77
I/O P31
VCC VCC P78
I/O P32
GND GND P79
I/O P33
I/O P80
I/O P34
I/O P81
I/O CBE1 P35
I/O P82
I/O AD15 P36
I/O P83
GND GND P37
I/O P84
I/O AD14 P38
I/O P85
I/O AD13 P39
I/O P86
I/O AD12 P40
I/O P87
I/O AD11 P41
I/O P88
I/O AD10 P42
I/O P89
I/O AD9 P43
GND GND P90
I/O AD8 P44
I/O P91
I/O P45
Pin Function PCI Function PQ208 Pin Function PCI Function PQ208
I/O P92 I/O (D2) P138
I/O P93 I/O P139
I/O P94 I/O P140
I/O P95 I/O P141
I/O P96 GND GND P142
I/O P97 I/O P143
I/O P98 I/O P144
I/O P99 I/O P145
I/O, GCK4 P100 I/O P146
GND GND P101 I/O (D1) P147
N.C. N.C. P102 I/O (RCLK, RDY/ P148
DONE DONE P103 BUSY)
N.C. N.C. P104 I/O P149
N.C. N.C. P105 I/O P150
VCC VCC P106 I/O (D0, DIN) DIN P151
N.C. N.C. P107 I/O, GCK6 DOUT P152
PROGRAM- PROGRAM- P108 (DOUT)
I/O (D7) RST- P109 CCLK CCLK P153
I/O, GCK5 P110 VCC VCC P154
I/O P111 N.C. N.C. P155
I/O P112 N.C. N.C. P156
I/O (D6) P113 N.C. N.C. P157
I/O P114 N.C. N.C. P158
I/O P115 O, TDO TDO P159
I/O P116 GND GND P160
I/O P117 I/O (A0, WS-) P161
I/O P118 I/O, GCK7 (A1) P162
GND GND P119 I/O P163
I/O P120 I/O P164
I/O P121 I/O (CS1, A2) P165
I/O (D5) P122 I/O (A3) P166
I/O (CS0-) P123 I/O P167
I/O P124 I/O P168
I/O P125 I/O P169
I/O P126 I/O P170
I/O P127 GND GND P171
I/O (D4) P128 I/O P172
I/O P129 I/O P173
VCC VCC P130 I/O (A4) P174
GND GND P131 I/O (A5) P175
I/O (D3) P132 I/O P176
I/O (RS-) P133 I/O P177
I/O P134 I/O(A21) P178
I/O P135 I/O(A20) P179
I/O P136 I/O (A6) P180
I/O P137 I/O (A7) P181
GND GND P182
Table 2: Pinout for the XC4013XLA PQ240 Pin Function PCI Function PQ240
I/O P46
Pin Function PCI Function PQ240
I/O P47
GND GND P1
I/O AD14 P48
I/O, GCK1 (A16) PCLK P2
I/O AD13 P49
I/O (A17) AD23 P3
I/O AD12 P50
I/O P4
I/O AD11 P51
I/O AD22 P5
I/O AD10 P52
I/O, TDI TDI P6
I/O AD9 P53
I/O, TCK TCK P7
I/O AD8 P54
I/O AD21 P8
I/O P55
I/O AD20 P9
I/O P56
I/O AD19 P10
I/O, GCK2 P57
I/O AD18 P11
O (M1) M1 P58
I/O P12
GND GND P59
I/O P13
I (M0) M0 P60
GND GND P14
VCC VCC P61
I/O AD17 P15
I (M2) M2 P62
I/O P16
I/O, GCK3 P63
I/O, TMS TMS P17
I/O (HDC) HDC P64
I/O P18
I/O CBE0 P65
VCC P19
I/O AD7 P66
I/O AD16 P20
I/O AD6 P67
I/O CBE2 P21
I/O (LDC-) LDC- P68
GND‡ GND P22
I/O AD5 P69
I/O GNT- P23
I/O AD4 P70
I/O FRAME- P24
I/O AD3 P71
I/O IRDY- P25
I/O AD2 P72
I/O TRDY- P26
I/O P73
I/O DEVSEL- P27
I/O P74
I/O STOP- P28
GND GND P75
GND GND P29
I/O AD1 P76
VCC VCC P30
I/O P77
I/O PERR- P31
I/O AD0 P78
I/O SERR- P32
I/O P79
I/O PAR P33
VCC VCC P80
I/O REQ- P34
I/O P81
I/O P35
I/O P82
I/O P36
GND‡ GND P83
GND‡ GND P37
I/O P84
I/O P38
I/O P85
I/O P39
I/O P86
VCC VCC P40
I/O P87
I/O P41
I/O P88
I/O P42
I/O (INIT-) INIT- P89
I/O CBE1 P43
VCC VCC P90
I/O AD15 P44
GND GND P91
GND GND P45
Table 2: Pinout for the XC4013XLA PQ240 (Continued) Table 2: Pinout for the XC4013XLA PQ240 (Continued)
Pin Function PCI Function PQ240 Pin Function PCI Function PQ240
I/O P92 I/O P138
I/O P93 I/O P139
I/O P94 VCC VCC P140
I/O P95 I/O (D5) P141
I/O P96 I/O (CS0-) P142
I/O P97 GND‡ GND P143
GND‡ GND P98 I/O P144
I/O P99 I/O P145
I/O P100 I/O P146
VCC VCC P101 I/O P147
I/O P102 I/O (D4) P148
I/O P103 I/O P149
I/O P104 VCC VCC P150
I/O P105 GND GND P151
GND GND P106 I/O (D3) P152
I/O P107 I/O (RS-) P153
I/O P108 I/O P154
I/O P109 I/O P155
I/O P110 I/O P156
I/O P111 I/O P157
I/O P112 GND‡ GND P158
I/O P113 I/O (D2) P159
I/O P114 I/O P160
I/O P115 VCC VCC P161
I/O P116 I/O P162
I/O P117 I/O P163
I/O, GCK4 P118 I/O P164
GND GND P119 I/O P165
DONE DONE P120 GND GND P166
VCC VCC P121 I/O P167
PROGRAM- PROGRAM- P122 I/O P168
I/O (D7) RST- P123 I/O P169
I/O, GCK5 P124 I/O P170
I/O P125 I/O P171
I/O P126 I/O P172
I/O P127 I/O (D1) P173
I/O P128 I/O (RCLK, RDY/ P174
I/O (D6) P129 BUSY)
I/O P130 I/O P175
I/O P131 I/O P176
I/O P132 I/O (D0, DIN) DIN P177
I/O P133 I/O, GCK6 DOUT P178
I/O P134 (DOUT)
GND GND P135 CCLK CCLK P179
I/O P136 VCC VCC P180
I/O P137 O, TDO TDO P181
GND GND P182
Pin Function PCI Function PQ240 Pin Function PCI Function PQ240
I/O (A0, WS-) P183 I/O (A9) P214
I/O, GCK7 (A1) P184 I/O (A19) P215
I/O P185 I/O (A18) P216
I/O P186 I/O P217
I/O (CS1, A2) P187 I/O P218
I/O (A3) P188 GND‡ GND P219
I/O P189 I/O (A10) P220
I/O P190 I/O (A11) P221
I/O P191 VCC VCC P222
I/O P192 I/O P223
I/O P193 I/O AD31 P224
I/O P194 I/O P225
N.C. N.C. P195 I/O AD30 P226
GND GND P196 GND GND P227
I/O P197 I/O AD29 P228
I/O P198 I/O AD28 P229
I/O P199 I/O AD27 P230
I/O P200 I/O AD26 P231
VCC VCC P201 I/O (A12) AD25 P232
I/O (A4) P202 I/O (A13) AD24 P233
I/O (A5) P203 I/O P234
GND‡ GND P204 I/O P235
I/O P205 I/O CBE3 P236
I/O P206 I/O IDSEL P237
I/O (A21) P207 I/O (A14) P238
I/O (A20) P208 I/O, GCK8 (A15) P239
I/O (A6) P209 VCC VCC P240
I/O (A7) P210 ‡ Pins marked with this symbol are used for Ground connections on
GND GND P211 some revisions of the device. These pins may not physically connect
to anything on the current device revision. However, they should be
VCC VCC P212 externally connected to Ground, if possible.
I/O (A8) P213
Pinout for the XC4028XLA HQ240 Table 3: Pinout for the XC4028XLA HQ240 (Continued)
Table 3: Pinout for the XC4028XLA HQ240 Pin Function PCI Function HQ240
I/O P46
Pin Function PCI Function HQ240
I/O P47
GND GND P1
I/O AD14 P48
I/O, GCK1 (A16) PCLK P2
I/O AD13 P49
I/O (A17) AD23 P3
I/O AD12 P50
I/O P4
I/O AD11 P51
I/O AD22 P5
I/O AD10 P52
I/O, TDI TDI P6
I/O AD9 P53
I/O, TCK TCK P7
I/O AD8 P54
I/O AD21 P8
I/O P55
I/O AD20 P9
I/O P56
I/O AD19 P10
I/O, GCK2 P57
I/O AD18 P11
O (M1) M1 P58
I/O P12
GND GND P59
I/O P13
I (M0) M0 P60
GND GND P14
VCC VCC P61
I/O AD17 P15
I (M2) M2 P62
I/O P16
I/O, GCK3 P63
I/O, TMS TMS P17
I/O (HDC) HDC P64
I/O P18
I/O CBE0 P65
VCC P19
I/O AD7 P66
I/O AD16 P20
I/O AD6 P67
I/O CBE2 P21
I/O (LDC-) LDC- P68
GND GND P22
I/O AD5 P69
I/O GNT- P23
I/O AD4 P70
I/O FRAME- P24
I/O AD3 P71
I/O IRDY- P25
I/O AD2 P72
I/O TRDY- P26
I/O P73
I/O DEVSEL- P27
I/O P74
I/O STOP- P28
GND GND P75
GND GND P29
I/O AD1 P76
VCC VCC P30
I/O P77
I/O PERR- P31
I/O AD0 P78
I/O SERR- P32
I/O P79
I/O PAR P33
VCC VCC P80
I/O REQ- P34
I/O P81
I/O P35
I/O P82
I/O P36
GND GND P83
GND GND P37
I/O P84
I/O P38
I/O P85
I/O P39
I/O P86
VCC VCC P40
I/O P87
I/O P41
I/O P88
I/O P42
I/O (INIT-) INIT- P89
I/O CBE1 P43
VCC VCC P90
I/O AD15 P44
GND GND P91
GND GND P45
Pin Function PCI Function HQ240 Pin Function PCI Function HQ240
I/O P92 I/O P138
I/O P93 I/O P139
I/O P94 VCC VCC P140
I/O P95 I/O (D5) P141
I/O P96 I/O (CS0-) P142
I/O P97 GND GND P143
GND GND P98 I/O P144
I/O P99 I/O P145
I/O P100 I/O P146
VCC VCC P101 I/O P147
I/O P102 I/O (D4) P148
I/O P103 I/O P149
I/O P104 VCC VCC P150
I/O P105 GND GND P151
GND GND P106 I/O (D3) P152
I/O P107 I/O (RS-) P153
I/O P108 I/O P154
I/O P109 I/O P155
I/O P110 I/O P156
I/O P111 I/O P157
I/O P112 GND GND P158
I/O P113 I/O (D2) P159
I/O P114 I/O P160
I/O P115 VCC VCC P161
I/O P116 I/O P162
I/O P117 I/O P163
I/O, GCK4 P118 I/O P164
GND GND P119 I/O P165
DONE DONE P120 GND GND P166
VCC VCC P121 I/O P167
PROGRAM- PROGRAM- P122 I/O P168
I/O (D7) RST- P123 I/O P169
I/O, GCK5 P124 I/O P170
I/O P125 I/O P171
I/O P126 I/O P172
I/O P127 I/O (D1) P173
I/O P128 I/O (RCLK, RDY/ P174
I/O (D6) P129 BUSY)
I/O P130 I/O P175
I/O P131 I/O P176
I/O P132 I/O (D0, DIN) DIN P177
I/O P133 I/O, GCK6 DOUT P178
I/O P134 (DOUT)
GND GND P135 CCLK CCLK P179
I/O P136 VCC VCC P180
I/O P137 O, TDO TDO P181
GND GND P182
Table 3: Pinout for the XC4028XLA HQ240 (Continued) Table 3: Pinout for the XC4028XLA HQ240 (Continued)
Pin Function PCI Function HQ240 Pin Function PCI Function HQ240
I/O (A0, WS-) P183 I/O AD28 P229
I/O, GCK7 (A1) P184 I/O AD27 P230
I/O P185 I/O AD26 P231
I/O P186 I/O (A12) AD25 P232
I/O (CS1, A2) P187 I/O (A13) AD24 P233
I/O (A3) P188 I/O P234
I/O P189 I/O P235
I/O P190 I/O CBE3 P236
I/O P191 I/O IDSEL P237
I/O P192 I/O (A14) P238
I/O P193 I/O, GCK8 (A15) P239
I/O P194 VCC VCC P240
I/O P195
GND GND P196
I/O P197
I/O P198
I/O P199
I/O P200
VCC VCC P201
I/O (A4) P202
I/O (A5) P203
GND‡ GND P204
I/O P205
I/O P206
I/O (A21) P207
I/O (A20) P208
I/O (A6) P209
I/O (A7) P210
GND GND P211
VCC VCC P212
I/O (A8) P213
I/O (A9) P214
I/O (A19) P215
I/O (A18) P216
I/O P217
I/O P218
GND‡ GND P219
I/O (A10) P220
I/O (A11) P221
VCC VCC P222
I/O P223
I/O AD31 P224
I/O P225
I/O AD30 P226
GND GND P227
I/O AD29 P228
6 - 10 May, 1999
Pinout for the XC4062XLA HQ240 Table 4: Pinout for the XC4062XLA HQ240 (Continued)
Table 4: Pinout for the XC4062XLA HQ240 Pin Function PCI Function HQ240
I/O P46
Pin Function PCI Function HQ240
I/O P47
GND GND P1
I/O AD14 P48
I/O, GCK1 (A16) PCLK P2
I/O AD13 P49
I/O (A17) AD23 P3
I/O AD12 P50
I/O P4
I/O AD11 P51
I/O AD22 P5
I/O AD10 P52
I/O, TDI TDI P6
I/O AD9 P53
I/O, TCK TCK P7
I/O AD8 P54
I/O AD21 P8
I/O P55
I/O AD20 P9
I/O P56
I/O AD19 P10
I/O, GCK2 P57
I/O AD18 P11
O (M1) M1 P58
I/O P12
GND GND P59
I/O P13
I (M0) M0 P60
GND GND P14
VCC VCC P61
I/O AD17 P15
I (M2) M2 P62
I/O P16
I/O, GCK3 P63
I/O, TMS TMS P17
I/O (HDC) HDC P64
I/O P18
I/O CBE0 P65
VCC P19
I/O AD7 P66
I/O AD16 P20
I/O AD6 P67
I/O CBE2 P21
I/O (LDC-) LDC- P68
GND GND P22
I/O AD5 P69
I/O GNT- P23
I/O AD4 P70
I/O FRAME- P24
I/O AD3 P71
I/O IRDY- P25
I/O AD2 P72
I/O TRDY- P26
I/O P73
I/O DEVSEL- P27
I/O P74
I/O STOP- P28
GND GND P75
GND GND P29
I/O AD1 P76
VCC VCC P30
I/O P77
I/O PERR- P31
I/O AD0 P78
I/O SERR- P32
I/O P79
I/O PAR P33
VCC VCC P80
I/O REQ- P34
I/O P81
I/O P35
I/O P82
I/O P36
GND GND P83
GND GND P37
I/O P84
I/O P38
I/O P85
I/O P39
I/O P86
VCC VCC P40
I/O P87
I/O P41
I/O P88
I/O P42
I/O (INIT-) INIT- P89
I/O CBE1 P43
VCC VCC P90
I/O AD15 P44
GND GND P91
GND GND P45
May, 1999 6 - 11
Pinout and Configuration
Table 4: Pinout for the XC4062XLA HQ240 (Continued) Table 4: Pinout for the XC4062XLA HQ240 (Continued)
Pin Function PCI Function HQ240 Pin Function PCI Function HQ240
I/O P92 I/O P138
I/O P93 I/O P139
I/O P94 VCC VCC P140
I/O P95 I/O (D5) P141
I/O P96 I/O (CS0-) P142
I/O P97 GND GND P143
GND GND P98 I/O P144
I/O P99 I/O P145
I/O P100 I/O P146
VCC VCC P101 I/O P147
I/O P102 I/O (D4) P148
I/O P103 I/O P149
I/O P104 VCC VCC P150
I/O P105 GND GND P151
GND GND P106 I/O (D3) P152
I/O P107 I/O (RS-) P153
I/O P108 I/O P154
I/O P109 I/O P155
I/O P110 I/O P156
I/O P111 I/O P157
I/O P112 GND GND P158
I/O P113 I/O (D2) P159
I/O P114 I/O P160
I/O P115 VCC VCC P161
I/O P116 I/O P162
I/O P117 I/O P163
I/O, GCK4 P118 I/O P164
GND GND P119 I/O P165
DONE DONE P120 GND GND P166
VCC VCC P121 I/O P167
PROGRAM- PROGRAM- P122 I/O P168
I/O (D7) RST- P123 I/O P169
I/O, GCK5 P124 I/O P170
I/O P125 I/O P171
I/O P126 I/O P172
I/O P127 I/O (D1) P173
I/O P128 I/O (RCLK, RDY/ P174
I/O (D6) P129 BUSY)
I/O P130 I/O P175
I/O P131 I/O P176
I/O P132 I/O (D0, DIN) DIN P177
I/O P133 I/O, GCK6 DOUT P178
I/O P134 (DOUT)
GND GND P135 CCLK CCLK P179
I/O P136 VCC VCC P180
I/O P137 O, TDO TDO P181
GND GND P182
6 - 12 May, 1999
Table 4: Pinout for the XC4062XLA HQ240 (Continued) Table 4: Pinout for the XC4062XLA HQ240 (Continued)
Pin Function PCI Function HQ240 Pin Function PCI Function HQ240
I/O (A0, WS-) P183 I/O (A9) P214
I/O, GCK7 (A1) P184 I/O (A19) P215
I/O P185 I/O (A18) P216
I/O P186 I/O P217
I/O (CS1, A2) P187 I/O P218
I/O (A3) P188 GND‡ GND P219
I/O P189 I/O (A10) P220
I/O P190 I/O (A11) P221
I/O P191 VCC VCC P222
I/O P192 I/O P223
I/O P193 I/O AD31 P224
I/O P194 I/O P225
I/O P195 I/O AD30 P226
GND GND P196 GND GND P227
I/O P197 I/O AD29 P228
I/O P198 I/O AD28 P229
I/O P199 I/O AD27 P230
I/O P200 I/O AD26 P231
VCC VCC P201 I/O (A12) AD25 P232
I/O (A4) P202 I/O (A13) AD24 P233
I/O (A5) P203 I/O P234
GND‡ GND P204 I/O P235
I/O P205 I/O CBE3 P236
I/O P206 I/O IDSEL P237
I/O (A21) P207 I/O (A14) P238
I/O (A20) P208 I/O, GCK8 (A15) P239
I/O (A6) P209 VCC VCC P240
I/O (A7) P210 ‡ Pins marked with this symbol are used for Ground connections on
GND GND P211 some revisions of the device. These pins may not physically connect
to anything on the current device revision. However, they should be
VCC VCC P212 externally connected to Ground, if possible.
I/O (A8) P213
May, 1999 6 - 13
Pinout and Configuration
Pinout for the XC4062XLA BG432 Table 5: Pinout for the XC4062XLA BG432
Pin Function PCI Function BG432
Table 5: Pinout for the XC4062XLA BG432
I/O T29
Pin Function PCI Function BG432
I/O U31
I/O, GCK1 (A16) D29
I/O U30
I/O (A17) C30
I/O U28
I/O E28
I/O U29
I/O E29
I/O V30
I/O, TDI TDI D30
I/O V29
I/O, TCK TCK D31
I/O V28
I/O F28
I/O W31
I/O F29
I/O W30
I/O E30
I/O W29
I/O E31
I/O W28
I/O G28
I/O Y31
I/O G29
I/O Y30
I/O F30
I/O Y29
I/O F31
I/O Y28
I/O H28
I/O AA30
I/O H29
I/O AA29
I/O G30
I/O AB31
I/O H30
I/O AB30
I/O J28
I/O AB29
I/O J29
I/O AB28
I/O H31
I/O AC30
I/O J30
I/O AC29
I/O K28
I/O AC28
I/O K29
I/O AD31
I/O, TMS TMS K30
I/O AD30
I/O K31
I/O AD29
I/O L29
I/O AD28
I/O L30
I/O AE30
I/O M30
I/O AE29
I/O M28
I/O AF31
I/O M29
I/O AE28
I/O M31
I/O AF30
I/O N31
I/O AF29
I/O N28
I/O AG31
I/O N29
I/O AF28
I/O N30
I/O AG30
I/O P30
I/O AG29
I/O P28
I/O AH31
I/O P29
I/O AG28
I/O R31
I/O AH30
I/O R30
I/O, GCK2 AJ30
I/O R28
O (M1) M1 AH29
I/O R29
I (M0) M0 AH28
I/O T31
I (M2) M2 AJ28
I/O T30
I/O, GCK3 AK29
6 - 14 May, 1999
Table 5: Pinout for the XC4062XLA BG432 Table 5: Pinout for the XC4062XLA BG432
Pin Function PCI Function BG432 Pin Function PCI Function BG432
I/O (HDC) HDC AH27 I/O AK15
I/O AK28 I/O AJ14
I/O AJ27 I/O AH14
I/O AL28 I/O AK14
I/O (LDC-) LDC- AH26 I/O AL13
I/O AK27 I/O AK13
I/O AJ26 I/O AJ13
I/O AL27 I/O AH13
I/O AH25 I/O AL12
I/O AK26 I/O AK12
I/O AL26 I/O AJ12
I/O AH24 I/O AK11
I/O AJ25 I/O AH12
I/O AK25 I/O AJ11
I/O AJ24 I/O AL10
I/O AH23 I/O AK10
I/O AK24 I/O AJ10
I/O AL24 I/O AK9
I/O AH22 I/O AL8
I/O AJ23 I/O AH10
I/O AK23 I/O AJ9
I/O AJ22 I/O AK8
I/O AK22 I/O AJ8
I/O AL22 I/O AH9
I/O AJ21 I/O AK7
I/O AH20 I/O AL6
I/O AK21 I/O AJ7
I/O AJ20 I/O AH8
I/O AH19 I/O AK6
I/O AK20 I/O AL5
I/O AJ19 I/O AH7
I/O AL20 I/O AJ6
I/O AH18 I/O AK5
I/O AK19 I/O AL4
I/O AJ18 I/O AH6
I/O AL19 I/O AJ5
I/O AK18 I/O AK4
I/O AH17 I/O AH5
I/O AJ17 I/O AK3
I/O AK17 I/O, GCK4 AJ4
I/O AL17 DONE DONE AH4
I/O AJ16 PROGRAM- PROGRAM- AH3
I/O (INIT-) INIT- AK16 I/O (D7) AJ2
I/O AL16 I/O, GCK5 PCLK AG4
I/O AH15 I/O AD0 AG3
I/O AL15 I/O AD1 AH2
I/O AJ15 I/O AD2 AH1
May, 1999 6 - 15
Pinout and Configuration
Table 5: Pinout for the XC4062XLA BG432 Table 5: Pinout for the XC4062XLA BG432
Pin Function PCI Function BG432 Pin Function PCI Function BG432
I/O AD3 AF4 I/O N1
I/O AD4 AF3 I/O N2
I/O AD5 AG2 I/O AD22 N3
I/O AD6 AG1 I/O AD23 N4
I/O AD7 AE4 I/O IDSEL M1
I/O AE3 I/O CBE3 M2
I/O AF2 I/O M3
I/O (D6) AF1 I/O M4
I/O CBE0 AD4 I/O (D2) L2
I/O AD8 AD3 I/O L3
I/O AD9 AE2 I/O K1
I/O AD10 AD2 I/O AD24 K2
I/O AC4 I/O AD25 K3
I/O AD11 AC3 I/O AD26 K4
I/O AD12 AD1 I/O AD27 J2
I/O AD13 AC2 I/O AD28 J3
I/O AD14 AB4 I/O AD29 J4
I/O AD15 AB3 I/O AD30 H1
I/O CBE1 AB2 I/O AD31 H2
I/O REQ- AB1 I/O H3
I/O AA3 I/O H4
I/O (D5) AA2 I/O G2
I/O (CS0-) Y2 I/O G3
I/O Y4 I/O F1
I/O Y3 I/O (D1) G4
I/O Y1 I/O (RCLK, RDY/ F2
I/O PAR W1 BUSY)
I/O SERR- W4 I/O F3
I/O W3 I/O E1
I/O PERR- W2 I/O F4
I/O V2 I/O E2
I/O STOP- V4 I/O E3
I/O DEVSEL- V3 I/O D1
I/O TRDY- U1 I/O E4
I/O IRDY- U2 I/O D2
I/O FRAME- U4 I/O (D0, DIN) DIN C2
I/O GNT- U3 I/O, GCK6 DOUT D3
I/O (D4) T1 (DOUT)
I/O CBE2 T2 CCLK CCLK D4
I/O (D3) T3 O, TDO TDO C4
I/O (RS-) R1 I/O (A0, WS-) B3
I/O AD16 R2 I/O, GCK7 (A1) D5
I/O AD17 R4 I/O B4
I/O AD18 R3 I/O C5
I/O AD19 P2 I/O A4
I/O AD20 P3 I/O D6
I/O AD21 P4 I/O B5
6 - 16 May, 1999
Table 5: Pinout for the XC4062XLA BG432 Table 5: Pinout for the XC4062XLA BG432
Pin Function PCI Function BG432 Pin Function PCI Function BG432
I/O C6 I/O D19
I/O (CS1, A2) A5 I/O A20
I/O (A3) D7 I/O B20
I/O B6 I/O C20
I/O A6 I/O B21
I/O D8 I/O D20
I/O C7 I/O C21
I/O B7 I/O A22
I/O D9 I/O B22
I/O B8 I/O C22
I/O A8 I/O B23
I/O D10 I/O A24
I/O C9 I/O D22
I/O I/O B9 I/O C23
I/O C10 I/O B24
I/O B10 I/O C24
I/O A10 I/O D23
I/O C11 I/O B25
I/O D12 I/O A26
I/O B11 I/O C25
I/O C12 I/O (A12) D24
I/O D13 I/O (A13) B26
I/O B12 I/O A27
I/O C13 I/O D25
I/O A12 I/O C26
I/O D14 I/O B27
I/O B13 I/O A28
I/O (A4) C14 I/O D26
I/O (A5) A13 I/O C27
I/O B14 I/O B28
I/O D15 I/O D27
I/O (A21) C15 I/O B29
I/O (A20) B15 I/O (A14) C28
I/O A15 I/O, GCK8 (A15) D28
I/O C16
BG432
I/O (A6) B16
VCC Pins
I/O (A7) A16 A1 A11 A21 A31 C3 C29 D11
I/O (A8) D17 D21 L1 L4 L28 L31 AA1 AA4
AA28 AA31 AH11 AH21 AJ3 AJ29 AL1
I/O (A9) A17
AL11 AL21 AL31 - - - -
I/O C17 GND Pins
I/O B17 A2 A3 A7 A9 A14 A18 A23
I/O (A19) C18 A25 A29 A30 B1 B2 B30 B31
C1 C31 D16 G1 G31 J1 J31
I/O (A18) D18 P1 P31 T4 T28 V1 V31 AC1
I/O B18 AC31 AE1 AE31 AH16 AJ1 AJ31 AK1
I/O A19 AK2 AK30 AK31 AL2 AL3 AL7 AL9
AL14 AL18 AL23 AL25 AL29 AL30 -
I/O (A10) B19
N.C. Pins
I/O (A11) C19 C8 - - - - - -
May, 1999 6 - 17
Pinout and Configuration
Pinout for the XCS20 TQ144 Table 6: Pinout for the XCS20 TQ144 (Continued)
Table 6: Pinout for the XCS20 TQ144 Pin Function PCI Function PQ208
I/O AD5 P46
Pin Function PCI Function PQ208
I/O AD4 P47
GND GND P1
I/O AD3 P48
I/O, GCK1 PCLK P2
I/O AD2 P49
I/O AD20 P3
I/O AD1 P50
I/O AD19 P4
I/O AD0 P51
I/O AD18 P5
I/O P52
I/O, TDI TDI P6
I/O (INIT-) INIT- P53
I/O, TCK TCK P7
VCC VCC P54
GND GND P8
GND GND P55
I/O AD17 P9
I/O P56
I/O AD16 P10
I/O P57
I/O, TMS TMS P11
I/O P58
I/O CBE2 P12
I/O P59
I/O FRAME- P13
I/O P60
I/O IRDY- P14
I/O P61
I/O TRDY- P15
I/O P62
I/O DEVSEL- P16
I/O P63
GND GND P17
GND GND P64
VCC VCC P18
I/O P65
I/O STOP- P19
I/O P66
I/O PERR- P20
I/O P67
I/O SERR- P21
I/O P68
I/O PAR P22
I/O P69
I/O GNT- P23
I/O, GCK4 P70
I/O REQ- P24
GND GND P71
I/O CBE1 P25
DONE DONE P72
I/O AD15 P26
VCC VCC P73
GND GND P27
PROGRAM P74
I/O AD14 P28
I/O (D7) RST- P75
I/O AD13 P29
I/O, GCK5 P76
I/O AD12 P30
I/O P77
I/O AD11 P31
I/O P78
I/O AD10 P32
I/O (D6) P79
I/O, GCK2 AD9 P33
I/O P80
M1 P34
GND GND P81
GND GND P35
I/O P82
M0 P36
I/O P83
VCC VCC P37
I/O (D5) P84
PWRDWN P38
I/O P85
GCK3 AD8 P39
I/O P86
I/O(HDC) P40
I/O P87
I/O CBE0 P41
I/O (D4) P88
I/O AD7 P42
I/O P89
I/O AD6 P43
VCC VCC P90
I/O(LDC-) P44
GND GND P91
GND GND P45
6 - 18 May, 1999
Table 6: Pinout for the XCS20 TQ144 (Continued) Table 6: Pinout for the XCS20 TQ144 (Continued)
Pin Function PCI Function PQ208 Pin Function PCI Function PQ208
I/O (D3) P92 I/O AD24 P138
I/O P93 I/O CBE3 P139
I/O P94 I/O IDSEL P140
I/O P95 I/O AD23 P141
I/O (D2) P96 I/O AD22 P142
I/O P97 I/O, GCK8 AD21 P143
I/O P98 VCC VCC P144
I/O P99
GND GND P100
I/O (D1) P101
I/O P102
I/O P103
I/O P104
I/O (D0, DIN) DIN P105
I/O, GCK6 DOUT P106
(DOUT)
CCLK CCLK P107
VCC VCC P108
O, TDO TDO P109
GND GND P110
I/O P111
I/O, GCK7 P112
I/O P113
I/O P114
I/O (CS1) P115
I/O P116
I/O P117
GND GND P118
I/O P119
I/O P120
I/O P121
I/O P122
I/O P123
I/O P124
I/O P125
I/O P126
GND GND P127
VCC VCC P128
I/O P129
I/O AD31 P130
I/O AD30 P131
I/O AD29 P132
I/O AD28 P133
I/O AD27 P134
I/O AD26 P135
I/O AD25 P136
GND GND P137
May, 1999 6 - 19
Pinout and Configuration
Pinout for the XCS30 PQ208 Table 7: Pinout for the XCS30 PQ208 (Continued)
Table 7: Pinout for the XCS30 PQ208 Pin Function PCI Function PQ208
I/O P46
Pin Function PCI Function PQ208
I/O P47
GND GND P1
I/O P48
I/O, PGCK1 PCLK P2
I/O, SGCK2 P49
I/O P3
N.C. N.C. P50
I/O P4
GND GND P51
I/O AD23 P5
MODE MODE P52
I/O, TDI TDI P6
VCC VCC P53
I/O, TCK TCK P7
N.C. N.C. P54
I/O AD22 P8
I/O, PGCK2 P55
I/O AD21 P9
I/O (HDC) HDC P56
I/O AD20 P10
I/O P57
I/O AD19 P11
I/O I/O P58
I/O AD18 P12
I/O CBE0 P59
GND GND P13
I/O (LDC-) LDC- P60
I/O AD17 P14
I/O AD7 P61
I/O AD16 P15
I/O AD6 P62
I/O, TMS TMS P16
I/O AD5 P63
I/O P17
I/O AD4 P64
VCC VCC P18
I/O AD3 P65
I/O GNT- P19
GND GND P66
I/O FRAME- P20
I/O AD2 P67
I/O IRDY- P21
I/O AD1 P68
I/O TRDY- P22
I/O AD0 P69
I/O DEVSEL- P23
I/O P70
I/O STOP- P24
VCC VCC P71
GND GND P25
I/O P72
VCC VCC P26
I/O P73
I/O PERR- P27
I/O P74
I/O SERR- P28
I/O P75
I/O PAR P29
I/O P76
I/O REQ- P30
I/O (INIT-) INIT- P77
I/O P31
VCC VCC P78
I/O CBE2 P32
GND GND P79
VCC VCC P33
I/O P80
I/O P34
I/O P81
I/O CBE1 P35
I/O P82
I/O AD15 P36
I/O P83
I/O AD14 P37
I/O P84
GND GND P38
I/O P85
I/O AD13 P39
VCC VCC P86
I/O AD12 P40
I/O P87
I/O AD11 P41
I/O P88
I/O AD10 P42
I/O P89
I/O AD9 P43
I/O I/O P90
I/O AD8 P44
GND GND P91
I/O P45
6 - 20 May, 1999
Table 7: Pinout for the XCS30 PQ208 (Continued) Table 7: Pinout for the XCS30 PQ208 (Continued)
Pin Function PCI Function PQ208 Pin Function PCI Function PQ208
I/O P92 I/O P138
I/O P93 I/O P139
I/O P94 VCC VCC P140
I/O P95 I/O P141
I/O P96 I/O P142
I/O P97 GND GND P143
I/O P98 I/O P144
I/O P99 I/O P145
I/O P100 I/O P146
I/O P101 I/O P147
I/O, SGCK3 P102 I/O P148
GND GND P103 I/O P149
DONE DONE P104 I/O P150
VCC VCC P105 I/O P151
PROGRAM- PROGRAM- P106 I/O P152
I/O I/O P107 I/O (DIN) DIN P153
I/O, PGCK3 P108 I/O, SGCK4 DOUT P154
I/O RST- P109 (DOUT)
I/O P110 CCLK CCLK P155
I/O P111 VCC VCC P156
I/O P112 O, TDO TDO P157
I/O P113 GND GND P158
I/O P114 I/O P159
I/O P115 I/O, PGCK4 P160
I/O P116 I/O P161
I/O P117 I/O P162
GND GND P118 I/O P163
I/O P119 I/O P164
I/O P120 I/O P165
VCC VCC P121 I/O P166
I/O P122 I/O P167
I/O P123 I/O P168
I/O P124 I/O P169
I/O P125 GND GND P170
I/O P126 I/O P171
I/O P127 I/O P172
I/O P128 VCC VCC P173
I/O P129 I/O P174
VCC VCC P130 I/O P175
GND GND P131 I/O P176
I/O P132 I/O P177
I/O P133 I/O P178
I/O P134 I/O P179
I/O P135 I/O P180
I/O P136 I/O P181
I/O P137 GND GND P182
VCC VCC P183
May, 1999 6 - 21
Pinout and Configuration
6 - 22 May, 1999
Pinout for the XCS30 PQ240 Table 8: Pinout for the XCS30 PQ240 (Continued)
Table 8: Pinout for the XCS30 PQ240 Pin Function PCI Function PQ240
I/O P46
Pin Function PCI Function PQ240
I/O P47
GND GND P1
I/O AD14 P48
I/O, PGCK1 PCLK P2
I/O AD13 P49
I/O AD23 P3
I/O AD12 P50
I/O P4
I/O AD11 P51
I/O AD22 P5
I/O AD10 P52
I/O, TDI TDI P6
I/O AD9 P53
I/O, TCK TCK P7
I/O AD8 P54
I/O AD21 P8
I/O P55
I/O AD20 P9
I/O P56
I/O AD19 P10
I/O, SGCK2 P57
I/O AD18 P11
N.C. P58
I/O P12
GND GND P59
I/O P13
MODE MODE P60
GND GND P14
VCC VCC P61
I/O AD17 P15
N.C. N.C. P62
I/O P16
I/O, PGCK2 P63
I/O, TMS TMS P17
I/O (HDC) HDC P64
I/O P18
I/O CBE0 P65
VCC P19
I/O AD7 P66
I/O AD16 P20
I/O AD6 P67
I/O CBE2 P21
I/O (LDC-) LDC- P68
GND‡ GND P22
I/O AD5 P69
I/O GNT- P23
I/O AD4 P70
I/O FRAME- P24
I/O AD3 P71
I/O IRDY- P25
I/O AD2 P72
I/O TRDY- P26
I/O P73
I/O DEVSEL- P27
I/O P74
I/O STOP- P28
GND GND P75
GND GND P29
I/O AD1 P76
VCC VCC P30
I/O P77
I/O PERR- P31
I/O AD0 P78
I/O SERR- P32
I/O P79
I/O PAR P33
VCC VCC P80
I/O REQ- P34
I/O P81
I/O P35
I/O P82
I/O P36
GND‡ GND P83
GND‡ GND P37
I/O P84
I/O P38
I/O P85
I/O P39
I/O P86
VCC VCC P40
I/O P87
I/O P41
I/O P88
I/O P42
I/O (INIT-) INIT- P89
I/O CBE1 P43
VCC VCC P90
I/O AD15 P44
GND GND P91
GND GND P45
May, 1999 6 - 23
Pinout and Configuration
Table 8: Pinout for the XCS30 PQ240 (Continued) Table 8: Pinout for the XCS30 PQ240 (Continued)
Pin Function PCI Function PQ240 Pin Function PCI Function PQ240
I/O P92 I/O P138
I/O P93 I/O P139
I/O P94 VCC VCC P140
I/O P95 I/O P141
I/O P96 I/O P142
I/O P97 GND‡ GND P143
GND‡ GND P98 I/O P144
I/O P99 I/O P145
I/O P100 I/O P146
VCC VCC P101 I/O P147
I/O P102 I/O P148
I/O P103 I/O P149
I/O P104 VCC VCC P150
I/O P105 GND GND P151
GND GND P106 I/O P152
I/O P107 I/O P153
I/O P108 I/O P154
I/O P109 I/O P155
I/O P110 I/O P156
I/O P111 I/O P157
I/O P112 GND‡ GND P158
I/O P113 I/O P159
I/O P114 I/O P160
I/O P115 VCC VCC P161
I/O P116 I/O P162
I/O P117 I/O P163
I/O, SGCK3 P118 I/O P164
GND GND P119 I/O P165
DONE DONE P120 GND GND P166
VCC VCC P121 I/O P167
PROGRAM- PROGRAM- P122 I/O P168
I/O RST- P123 I/O P169
I/O, PGCK3 P124 I/O P170
I/O P125 I/O P171
I/O P126 I/O P172
I/O P127 I/O P173
I/O P128 I/O P174
I/O P129 I/O P175
I/O P130 I/O P176
I/O P131 I/O (DIN) DIN P177
I/O P132 I/O, SGCK4 DOUT P178
I/O P133 (DOUT)
I/O P134 CCLK CCLK P179
GND GND P135 VCC VCC P180
I/O P136 O, TDO TDO P181
I/O P137 GND GND P182
I/O P183
6 - 24 May, 1999
Table 8: Pinout for the XCS30 PQ240 (Continued) Table 8: Pinout for the XCS30 PQ240 (Continued)
Pin Function PCI Function PQ240 Pin Function PCI Function PQ240
I/O, PGCK4 P184 I/O P216
I/O P185 I/O P217
I/O P186 I/O P218
I/O P187 GND‡ GND P219
I/O P188 I/O P220
I/O P189 I/O P221
I/O P190 VCC VCC P222
I/O P191 I/O P223
I/O P192 I/O AD31 P224
I/O P193 I/O P225
I/O P194 I/O AD30 P226
N.C. N.C. P195 GND GND P227
GND GND P196 I/O AD29 P228
I/O P197 I/O AD28 P229
I/O P198 I/O AD27 P230
I/O P199 I/O AD26 P231
I/O I/O P200 I/O AD25 P232
VCC VCC P201 I/O AD24 P233
I/O P202 I/O P234
I/O P203 I/O P235
GND‡ GND P204 I/O CBE3 P236
I/O P205 I/O IDSEL P237
I/O P206 I/O P238
I/O P207 I/O, SGCK1 P239
I/O P208 VCC VCC P240
I/O P209 ‡ Pins marked with this symbol are used for Ground connections on
I/O P210 some revisions of the device. These pins may not physically connect
to anything on the current device revision. However, they should be
GND GND P211 externally connected to Ground, if possible.
VCC VCC P212
I/O P213
I/O P214
I/O P215
May, 1999 6 - 25
Pinout and Configuration
Pinout for the XCS40 PQ208 Table 9: Pinout for the XCS40 PQ208 (Continued)
Table 9: Pinout for the XCS40 PQ208 Pin Function PCI Function PQ208
I/O P46
Pin Function PCI Function PQ208
I/O P47
GND GND P1
I/O P48
I/O, PGCK1 PCLK P2
I/O, SGCK2 P49
I/O P3
N.C. N.C. P50
I/O P4
GND GND P51
I/O AD23 P5
MODE MODE P52
I/O, TDI TDI P6
VCC VCC P53
I/O, TCK TCK P7
N.C. N.C. P54
I/O AD22 P8
I/O, PGCK2 P55
I/O AD21 P9
I/O (HDC) HDC P56
I/O AD20 P10
I/O P57
I/O AD19 P11
I/O I/O P58
I/O AD18 P12
I/O CBE0 P59
GND GND P13
I/O (LDC-) LDC- P60
I/O AD17 P14
I/O AD7 P61
I/O AD16 P15
I/O AD6 P62
I/O, TMS TMS P16
I/O AD5 P63
I/O P17
I/O AD4 P64
VCC VCC P18
I/O AD3 P65
I/O GNT- P19
GND GND P66
I/O FRAME- P20
I/O AD2 P67
I/O IRDY- P21
I/O AD1 P68
I/O TRDY- P22
I/O AD0 P69
I/O DEVSEL- P23
I/O P70
I/O STOP- P24
VCC VCC P71
GND GND P25
I/O P72
VCC VCC P26
I/O P73
I/O PERR- P27
I/O P74
I/O SERR- P28
I/O P75
I/O PAR P29
I/O P76
I/O REQ- P30
I/O (INIT-) INIT- P77
I/O P31
VCC VCC P78
I/O CBE2 P32
GND GND P79
VCC VCC P33
I/O P80
I/O P34
I/O P81
I/O CBE1 P35
I/O P82
I/O AD15 P36
I/O P83
I/O AD14 P37
I/O P84
GND GND P38
I/O P85
I/O AD13 P39
VCC VCC P86
I/O AD12 P40
I/O P87
I/O AD11 P41
I/O P88
I/O AD10 P42
I/O P89
I/O AD9 P43
I/O I/O P90
I/O AD8 P44
GND GND P91
I/O P45
6 - 26 May, 1999
Table 9: Pinout for the XCS40 PQ208 (Continued) Table 9: Pinout for the XCS40 PQ208 (Continued)
Pin Function PCI Function PQ208 Pin Function PCI Function PQ208
I/O P92 I/O P138
I/O P93 I/O P139
I/O P94 VCC VCC P140
I/O P95 I/O P141
I/O P96 I/O P142
I/O P97 GND GND P143
I/O P98 I/O P144
I/O P99 I/O P145
I/O P100 I/O P146
I/O P101 I/O P147
I/O, SGCK3 P102 I/O P148
GND GND P103 I/O P149
DONE DONE P104 I/O P150
VCC VCC P105 I/O P151
PROGRAM- PROGRAM- P106 I/O P152
I/O I/O P107 I/O (DIN) DIN P153
I/O, PGCK3 P108 I/O, SGCK4 DOUT P154
I/O RST- P109 (DOUT)
I/O P110 CCLK CCLK P155
I/O P111 VCC VCC P156
I/O P112 O, TDO TDO P157
I/O P113 GND GND P158
I/O P114 I/O P159
I/O P115 I/O, PGCK4 P160
I/O P116 I/O P161
I/O P117 I/O P162
GND GND P118 I/O P163
I/O P119 I/O P164
I/O P120 I/O P165
VCC VCC P121 I/O P166
I/O P122 I/O P167
I/O P123 I/O P168
I/O P124 I/O P169
I/O P125 GND GND P170
I/O P126 I/O P171
I/O P127 I/O P172
I/O P128 VCC VCC P173
I/O P129 I/O P174
VCC VCC P130 I/O P175
GND GND P131 I/O P176
I/O P132 I/O P177
I/O P133 I/O P178
I/O P134 I/O P179
I/O P135 I/O P180
I/O P136 I/O P181
I/O P137 GND GND P182
VCC VCC P183
May, 1999 6 - 27
Pinout and Configuration
6 - 28 May, 1999
Pinout for the XCS40 PQ240 Table 10: Pinout for the XCS40 PQ240 (Continued)
Table 10: Pinout for the XCS40 PQ240 Pin Function PCI Function PQ240
I/O P46
Pin Function PCI Function PQ240
I/O P47
GND GND P1
I/O AD14 P48
I/O, PGCK1 PCLK P2
I/O AD13 P49
I/O AD23 P3
I/O AD12 P50
I/O P4
I/O AD11 P51
I/O AD22 P5
I/O AD10 P52
I/O, TDI TDI P6
I/O AD9 P53
I/O, TCK TCK P7
I/O AD8 P54
I/O AD21 P8
I/O P55
I/O AD20 P9
I/O P56
I/O AD19 P10
I/O, SGCK2 P57
I/O AD18 P11
N.C. P58
I/O P12
GND GND P59
I/O P13
MODE MODE P60
GND GND P14
VCC VCC P61
I/O AD17 P15
N.C. N.C. P62
I/O P16
I/O, PGCK2 P63
I/O, TMS TMS P17
I/O (HDC) HDC P64
I/O P18
I/O CBE0 P65
VCC P19
I/O AD7 P66
I/O AD16 P20
I/O AD6 P67
I/O CBE2 P21
I/O (LDC-) LDC- P68
GND‡ GND P22
I/O AD5 P69
I/O GNT- P23
I/O AD4 P70
I/O FRAME- P24
I/O AD3 P71
I/O IRDY- P25
I/O AD2 P72
I/O TRDY- P26
I/O P73
I/O DEVSEL- P27
I/O P74
I/O STOP- P28
GND GND P75
GND GND P29
I/O AD1 P76
VCC VCC P30
I/O P77
I/O PERR- P31
I/O AD0 P78
I/O SERR- P32
I/O P79
I/O PAR P33
VCC VCC P80
I/O REQ- P34
I/O P81
I/O P35
I/O P82
I/O P36
GND‡ GND P83
GND‡ GND P37
I/O P84
I/O P38
I/O P85
I/O P39
I/O P86
VCC VCC P40
I/O P87
I/O P41
I/O P88
I/O P42
I/O (INIT-) INIT- P89
I/O CBE1 P43
VCC VCC P90
I/O AD15 P44
GND GND P91
GND GND P45
May, 1999 6 - 29
Pinout and Configuration
Table 10: Pinout for the XCS40 PQ240 (Continued) Table 10: Pinout for the XCS40 PQ240 (Continued)
Pin Function PCI Function PQ240 Pin Function PCI Function PQ240
I/O P92 I/O P138
I/O P93 I/O P139
I/O P94 VCC VCC P140
I/O P95 I/O P141
I/O P96 I/O P142
I/O P97 GND‡ GND P143
GND‡ GND P98 I/O P144
I/O P99 I/O P145
I/O P100 I/O P146
VCC VCC P101 I/O P147
I/O P102 I/O P148
I/O P103 I/O P149
I/O P104 VCC VCC P150
I/O P105 GND GND P151
GND GND P106 I/O P152
I/O P107 I/O P153
I/O P108 I/O P154
I/O P109 I/O P155
I/O P110 I/O P156
I/O P111 I/O P157
I/O P112 GND‡ GND P158
I/O P113 I/O P159
I/O P114 I/O P160
I/O P115 VCC VCC P161
I/O P116 I/O P162
I/O P117 I/O P163
I/O, SGCK3 P118 I/O P164
GND GND P119 I/O P165
DONE DONE P120 GND GND P166
VCC VCC P121 I/O P167
PROGRAM- PROGRAM- P122 I/O P168
I/O RST- P123 I/O P169
I/O, PGCK3 P124 I/O P170
I/O P125 I/O P171
I/O P126 I/O P172
I/O P127 I/O P173
I/O P128 I/O P174
I/O P129 I/O P175
I/O P130 I/O P176
I/O P131 I/O (DIN) DIN P177
I/O P132 I/O, SGCK4 DOUT P178
I/O P133 (DOUT)
I/O P134 CCLK CCLK P179
GND GND P135 VCC VCC P180
I/O P136 O, TDO TDO P181
I/O P137 GND GND P182
I/O P183
6 - 30 May, 1999
Table 10: Pinout for the XCS40 PQ240 (Continued) Table 10: Pinout for the XCS40 PQ240 (Continued)
Pin Function PCI Function PQ240 Pin Function PCI Function PQ240
I/O, PGCK4 P184 I/O P214
I/O P185 I/O P215
I/O P186 I/O P216
I/O P187 I/O P217
I/O P188 I/O P218
I/O P189 GND‡ GND P219
I/O P190 I/O P220
I/O P191 I/O P221
I/O P192 VCC VCC P222
I/O P193 I/O P223
I/O P194 I/O AD31 P224
N.C. N.C. P195 I/O P225
GND GND P196 I/O AD30 P226
I/O P197 GND GND P227
I/O P198 I/O AD29 P228
I/O P199 I/O AD28 P229
I/O I/O P200 I/O AD27 P230
VCC VCC P201 I/O AD26 P231
I/O P202 I/O AD25 P232
I/O P203 I/O AD24 P233
GND‡ GND P204 I/O P234
I/O P205 I/O P235
I/O P206 I/O CBE3 P236
I/O P207 I/O IDSEL P237
I/O P208 I/O P238
I/O P209 I/O, SGCK1 P239
I/O P210 VCC VCC P240
GND GND P211 ‡ Pins marked with this symbol are used for Ground connections on
VCC VCC P212 some revisions of the device. These pins may not physically connect
to anything on the current device revision. However, they should be
I/O P213 externally connected to Ground, if possible.
May, 1999 6 - 31
Pinout and Configuration
Pinout for the XCV300 BG432 Table 11: Pinout for the PCI64
Interface in a XCV300 BG432
Table 11: Pinout for the PCI64
PCI Function BG432
Interface in a XCV300 BG432
AD19 E1
PCI Function BG432
AD18 F3
AD63 N4
AD17 F2
AD62 N3
AD16 G4
AD61 N1
AD15 G3
AD60 P3
AD14 G2
AD59 AB4
AD13 H4
AD58 AC2
AD12 H3
AD57 AD1
AD11 H2
AD56 AC3
AD10 H1
AD55 AC4
AD9 J4
AD54 AD2
AD8 J3
AD53 AE2
AD7 J2
AD52 AD3
AD6 K1
AD51 AD4
AD5 L3
AD50 AF2
AD4 L2
AD49 AE3
AD3 M4
AD48 AE4
AD2 M3
AD47 AG1
AD1 M2
AD46 AG2
AD0 M1
AD45 AF3
PCLK A16
AD44 AF4
RST B6
AD43 AH1
REQ P2
AD42 AH2
IDSEL R3
AD41 AG3
DEVSEL R4
AD40 AJ4
GNT R2
AD39 AK3
STOP R1
AD38 AH5
IRDY T3
AD37 AK4
TRDY T2
AD36 AJ5
FRAME U3
AD35 AH6
ACK64 U4
AD34 AL4
REQ64 U2
AD33 AK5
CBE3 U1
AD32 AJ6
CBE2 V3
AD31 D7
CBE1 V2
AD30 A5
CBE0 W3
AD29 C6
PERR W4
AD28 B5
PAR W1
AD27 D6
PAR64 Y1
AD26 A4
CBE7 Y3
AD25 C5
CBE6 Y4
AD24 D2
CBE5 Y2
AD23 E4
CBE4 AA2
AD22 D1
SERR AA3
AD21 E2
INTA A6
AD20 F4
6 - 32 May, 1999
11
Resources
1 Introduction
2 PCI Products
3 FPGA Products
4 Design Methodology
7 Resources
8 Waveforms
Resources
PCI Special Interest Group (PCI-SIG) Edgard Garcia
Publications 106 Av. des Guis
38130 Plaisance du Touch
The PCI-SIG publishes various PCI specifications and France
related documents. Most publications cost US$25 plus Phone: +1 (33) 05 62 13 52 32
applicable shipping charges. Fax: +1 (33) 05 61 06 72 60
• PCI Local Bus Specification, Rev. 2.2 Email: edgard.garcia@mvd-fpga.com
• PCI Compliance Checklist v2.1 (available via the Web) URL: www.mvd-fpga.com
• PCI System Design Guide v1.0
Memec Design Services
Contact: Memec Design Services is dedicated to bringing you the
PCI Special Interest Group best Xilinx design engineering services and FPGA
2575 NE Kathryn St. #17 library modules available in the market today. Memec
Hillsboro, OR 97124 Design Service is also an AllianceCORE member.
Phone: +1 800-433-5177 (within USA) Memec is a global services company with offices in U.S,
Phone: +1 503-693-6232 (worldwide) Europe, Hong Kong and China. They provide PCI ser-
Fax: +1 503-693-8344 vices that include customization and integration.
E-Mail: info@pcisig.com
URL: www.pcisig.com Headquarters:
1819 S. Dobson Rd. Ste. 203
PCI and FPGA XPERT Partners Mesa, AZ 85202, USA
Listed below are design centers and design consultants Phone: +1 888-360-9044 - inside the USA
that have experience with the LogiCORE PCI Products. +1 602-491-4311 - outside the USA
Fax: +1 602-491-4907
Nallatech Limited
E-mail: southwest@memecdesign.com
Nallatech are experts in complete electronics based
URL: www.memecdesign.com
systems design. This includes the skills required for soft-
ware/hardware partitioning and the development of Dis-
Branch Offices:
tributed Parallel Processing Systems.
2460 N. First Street
Nallatech specializes in:
Suite 170
- Real time image processing systems
San Jose, CA 95131
- DSP
Phone: +1408-952-7018
- DSP algorithm development targeting FPGA's
Fax: +1 408-952-7059
- Military designs, specifically obsolescence upgrades
Email: west@memecdesign.com
- High speed data throughput
- Complex PCI Logicore designs
30 Nagog Park
Acton, MA 01720
10-14 Market Street
Phone: +1 978-266-9193
Kilsyth
Fax: +1 978-266-9194
Glasgow
Email: northeast@memecdesign.com
G65 0BD
Scotland
Memec Design Services
Phone: +1 44 7020 986532
% Insight World Trade Center
Fax: +1 44 7020 986534
Montecito No. 38
Email: info@nallatech.com
Piso 19, OFNA.12.Col.Napoles,
URL: www.nallatech.com
C.P. 03810, Mexico City D.F.
Phone: +1 525-488-0119
Multi Video Designs
Fax: +1 525-488-0179
Multi Video Designs (MVD) offer complete consultant
Email: mexico@memecdesign.com
design and training services to their clients. MVD's
experience in offering design consultancy services has
offered then a broad experience with Xilinx related
designs.
4835 University Square T1, DS-3, and most micro and embedded processors,
Suite 19 such as StrongARM, i960, IDT4640 and the R3000.
Huntsville, AL 35816
Phone: +1 256-830-5732 Austin Franklin
Fax: +1 256-830-5787 126 Poor Farm Road
Email: southeast@memecdesign.com Harvard MA, 01451, USA
Phone: +1 508-772-9928
555 Legget Drive, Suite 305 Fax: +1 508-772-4287
Kanata, Ontario K2K2X3 E-mail: info@darkroom.com
Phone: +1 613-271-2028 URL: www.darkroom.com
Fax: +1 613-599-4867
Email: canada@memecdesign.com
Supporting PCI Tools
Unit 3520, Tower 1, Metroplaza Nallatech Limited
Hing Fong Road, Kwai Fong Provides the PCI64 PCI Prototyping Board
N.T., Hong Kong Allan Cantle
Phone: +1 852-2410-2720 10-14 Market Street
FAX: +1 852-2481-6937 Kilsyth, Glasgow
G65 0BD
Rm A801, Bao Hua Building Scotland
Hua Qiang North Road Phone: +1 44 7020 986532
Shenzhen, P.R.China Fax: +1 44 7020 986534
Email: a.cantle@nallatech.com
Comit Systems URL: www.nallatech.com
Comit Systems is a software and systems engineering
company. They offer design services along with a set of VCC Corporation
efficiently implemented libraries for Xilinx devices. Comit Provides HotPCI Rapid Prototyping Board
Systems is also an AllianceCORE member. Comit Sys- 6925 Canby Ave. #103
tems have done numerous turnkey designs and have Reseda, CA 91335 USA
extensive experience with Xilinx PCI Core, both in inte- Phone: +1 818-342-8294
gration and customization. Fax: +1 818-342-0240
E-mail: info@vcc.com
3375 Scott Blvd, Suite 330 Website: www.vcc.com
Santa Clara California 95054
Phone: +1 408-988-7966 Compuware Numega (formerly, Vireo Software Inc.)
Fax: +1 408-988-2133 Provides drivers and driver development tools.
E-mail: preeth@comit.com 30 Monument Square, Suite 135
URL: www.comit.com Concord, MA 01742 USA
Phone: +1 978-369-3380
Dark Room Technologies, Inc. Fax: +1 978-318-6946
Dark Room Technologies provides all levels of consult- E-mail: customer_service@numega.com
ing from routing an FPGA to complete board-level solu- Website: www.numega.com
tions, including debugged prototypes. Our tools include
the full Viewlogic tool suite with VHDL modeling capabil-
ity, Abel, XAbel, PC design and layout, C cross compil-
ers, 192-channel 200-MHz logic analysis systems, FCC
prescreening, T1 and DS-3 Test and Diagnostic equip-
ment, and SMD assembly, inspection and rework equip-
ment. We can do code development and bring the
design through FCC EMI testing and verification.
Contact:
Annabooks
Waveforms
1 Introduction
2 PCI Products
3 FPGA Products
4 Design Methodology
7 Resources
8 Waveforms
Waveforms
These waveforms demonstrate the operation the Xilinx V3.0 PCI core, including the states of the backend signals. The 64-
bit transactions only apply to the PCI64 Virtex Interface. In these examples, the PCI V2.2 Specification names, such as
FRAME# and IRDY# are used for the PCI Bus signals. Due to the limitations of design tools, the Xilinx PCI core has slightly
different names for the PCI Bus signals. These names are listed in the Signal Description chapter of the Xilinx PCI Design
Guide.
These waveforms were created with the Xilinx Internal PCI Testbench. See specific sections for explanations regarding
these waveforms.
The host asserts IDSEL and puts the address on the PCI
bus. The address appears on the ADIO bus one cycle later.
Data Phase
May, 1999
FRAME#
C/BE#[3:0]
1111 1010 0000 1111
AD[31:0]
ffffffff 00000000 ffffffff ff000000 406210ee ffffffff
ADIO[31:0]
00000000 406210ee
IRDY#
TRDY#
STOP#
IDSEL
Figure 1: Target Configuration Read
DEVSEL#
PAR
ADDR_VLD
BASE_HIT[7:0]
00
S_READY
S_TERM
S_ABORT
S_DATA_VLD
S_SRC_EN
S_WRDN
M_DATA
DR_BUS
I_IDLE
M_ADDR_N
IDLE
B_BUSY
S_DATA
BACKOFF
CFG_HIT
CFG_VLD
time (ns)
4740.0 4770.0 4800.0 4830.0 4860.0 4890.0 4920.0
8-3
Waveforms
Data Phase
May, 1999
FRAME#
DEVSEL#
PAR
ADDR_VLD
BASE_HIT[7:0] 00
S_READY
S_TERM
S_ABORT
S_DATA_VLD
S_SRC_EN
S_WRDN
M_DATA
DR_BUS
I_IDLE
M_ADDR_N
IDLE
B_BUSY
S_DATA
BACKOFF
CFG_HIT
CFG_VLD
time (ns)
5145.0 5160.0 5190.0 5220.0 5250.0 5280.0 5310.0 5325.0
8-5
Waveforms
Figure 3 represents a single cycle Memory Read transac- The M_DATA phase begins on the CLK cycle immediately
tion. This consists of an address phase followed immedi- following the M_ADDR_N phase. During M_DATA, the byte
ately by a single data phase. enables are presented on M_CBE. One clock cycle after
FRAME# and REQ64# are asserted, the Initiator asserts
Requesting the PCI Bus IRDY#, and the fast decode Target asserts DEVSEL#.
REQUEST is asserted by the user’s logic for one clock Since this is a Read, there is a one cycle bus turnaround
cycle to generate a REQ# signal to the PCI Arbiter. The PCI after the address phase; TRDY# can not be asserted until
after the turnaround cycle. The Target is now suppling data
Interface asserts FRAME# only if GNT# is asserted for
more than one clock cycle. onto the PCI bus, while the Initiator is supplying the Byte
enables. Since this is only a single Dword transfer, COM-
Address Phase PLETE and M_READY are both asserted at the beginning
of the transaction, and FRAME# is deasserted after one
The M_ADDR_N signal is used to drive the output-enable cycle to indicate the last data will occur. The Target asserts
of the tri-state buffers (BUFTs) which enable the valid TRDY#, which starts the data transfer and completes with
address onto the internal ADIO bus one CLK cycle before the deassertion of IRDY#, TRDY#, and DEVSEL#.
the assertion of FRAME#. Once the Initiator asserts M_DATA_VLD indicates that the data is valid on AD bus
FRAME#, it drives the AD bus with the address from the and should be latched by the Initiator register, in the user’s
ADIO bus, and drives a Memory Read command (0110), backend. Notice that this is the cycle after TRDY# and
supplied by the user to the backend (M_CBE[3:0], not IRDY# were asserted. The signal M_WRDN is asserted
shown), onto the C/BE# lines. low to represent data is being read.
May, 1999
REQ#
GNT#
FRAME#
C/BE#[3:0]
1111 0000 0110 0000 1111
AD[31:0]
ffffffff f0000000 c0000000 00000000 00320649 ffffffff
ADIO[31:0]
c0000000 f0000000 c0000000 00000000 00320649
IRDY#
TRDY#
STOP#
IDSEL
Figure 3: Initiator 32-bit Single Memory Read
DEVSEL#
PAR
ADDR_VLD
M_READY
COMPLETE
M_DATA_VLD
M_SRC_EN
M_WRDN
REQUEST
M_DATA
DR_BUS
I_IDLE
M_ADDR_N
IDLE
B_BUSY
S_DATA
BACKOFF
time (ns)
5490.0 5520.0 5550.0 5580.0 5610.0 5640.0 5670.0 5700.0 5730.0 5760.0 5790.0
8-7
Waveforms
Figure 4 represents a single cycle Memory Write transac- The M_DATA phase begins on the CLK cycle immediately
tion. This consists of an address phase followed immedi- following the M_ADDR_N phase. During M_DATA, the byte
ately by a single data phase. enables are presented on M_CBE. Data is placed on the
ADIO bus from a register in the user design. The output
Requesting the PCI Bus enable of the register is controlled by M_DATA (conditional
REQUEST is asserted for one clock cycle to generate a upon being the write state!).
REQ# signal to the PCI Arbiter. The PCI Interface asserts One clock cycle after FRAME# is asserted, the Initiator
FRAME# only if GNT# is asserted for more than one clock asserts IRDY#, and on the next CLK cycle, the fast decode
cycle. Target asserts both TRDY# and DEVSEL#. Since this is
only a single Dword transfer, COMPLETE and M_READY
Address Phase
are both asserted at the beginning of the transaction, and
The M_ADDR_N signal is used to drive the output-enable FRAME# is deasserted after one cycle to indicate the last
of the 3-state buffers (BUFTs) which enable the valid data is present on the AD[31:0] bus. With both IRDY# and
address onto the internal ADIO bus one CLK cycle before TRDY# asserted, the data transfer completes and we see
the assertion of FRAME#. M_DATA_VLD on the next cycle, indicating the Target
accepted the data. The transfer completes with the deas-
Once the Initiator asserts FRAME#, it drives the AD lines sertion of IRDY#, TRDY#, and DEVSEL# and the bus has a
with the address put on the ADIO bus during the previous turnaround cycle. The signal M_WRDN is asserted high to
CLK cycle, and drives a Memory Write command (0111), represent data is being written.
supplied by the user to the backend (M_CBE[3:0], not
shown), onto the C/BE# lines.
May, 1999
REQ#
GNT#
FRAME#
DEVSEL#
PAR
ADDR_VLD
M_READY
COMPLETE
M_DATA_VLD
M_SRC_EN
M_WRDN
REQUEST
M_DATA
DR_BUS
I_IDLE
M_ADDR_N
IDLE
B_BUSY
S_DATA
BACKOFF
time (ns)
5970.0 6000.0 6030.0 6060.0 6090.0 6120.0 6150.0 6180.0 6210.0 6240.0 6270.0
8-9
Waveforms
Initiator 32-bit Burst Memory Read Multiple enables are presented on M_CBE. One clock cycle after
FRAME# and REQ64# are asserted, the Initiator asserts
Figure 5 represents a burst cycle Memory Read Multiple IRDY#, and the fast decode Target asserts DEVSEL#.
transaction. This consists of a single address phase fol- Since this is a Read, there is a one cycle bus turnaround
lowed by two or more data phases. after the address phase; TRDY# can not be asserted until
Requesting the PCI Bus after the turnaround cycle. The Target is now suppling data
onto the PCI bus, while the Initiator is supplying the Byte
REQUEST is asserted for one clock cycle to generate a enables. Since this is a multi-Dword transfer, COMPLETE
REQ# signal to the PCI Arbiter. The PCI Interface asserts is initially deasserted and M_READY is asserted at the
FRAME# only if GNT# is asserted for more than one clock beginning of the transaction, and FRAME# stays asserted
cycle. until the next to last data phase.
Data Phase
8 - 10 May, 1999
CLK
May, 1999
REQ#
GNT#
FRAME#
ADDR_VLD
M_READY
COMPLETE
M_DATA_VLD
M_SRC_EN
M_WRDN
REQUEST
M_DATA
DR_BUS
I_IDLE
M_ADDR_N
IDLE
B_BUSY
S_DATA
BACKOFF
time (ns)
6450.0 6510.0 6570.0 6630.0 6690.0 6750.0 6810.0 6870.0
8 - 11
Waveforms
Figure 6 represents a burst cycle Memory Write transac- The M_DATA phase begins on the CLK cycle immediately
tion. This consists of a single address phase followed by following the M_ADDR_N phase. During M_DATA, the byte
four data phases. enables are presented on M_CBE. Data is placed on the
ADIO bus from a FIFO in the user design. The output
Requesting the PCI Bus enable of the FIFO is controlled by M_DATA (conditional
REQUEST is asserted for one clock cycle to generate a upon being the write state!).
REQ# signal to the PCI Arbiter. The PCI Interface asserts One clock cycle after FRAME# is asserted, the Initiator
FRAME# only if GNT# is asserted for more than one clock asserts IRDY#, and the fast decode Target asserts
cycle. DEVSEL# and TRDY#. Since this is a multi-Dword transfer,
COMPLETE is initially deasserted and M_READY is
Address Phase
asserted at the beginning of the transaction. COMPLETE is
The M_ADDR_N signal is used to drive the output-enable asserted during the next to last data phase and FRAME# is
of the 3-state buffers (BUFTs) which enable the valid deasserted at the beginning of the last data phase.
address onto the internal ADIO bus one CLK cycle before
the assertion of FRAME#. Once the Initiator asserts M_DATA_VLD indicates the data was taken by the Target
and M_SRC_EN is used to advance the Initiator address
FRAME#, it drives the AD lines with the address put on the
ADIO bus during the previous CLK cycle, and drives a pointer to read the next data from the FIFO. With both
Memory Write command (0111), supplied by the user to the IRDY# and TRDY# asserted, the data transfer occurs with-
out inserted wait states from either agent. The transfer
backend (M_CBE[3:0], not shown), onto the C/BE# lines.
completes with the deassertion of IRDY#, TRDY#, and
DEVSEL# and the bus has a turnaround cycle. The signal
M_WRDN is asserted high to represent data is being writ-
ten.
8 - 12 May, 1999
CLK
May, 1999
REQ#
GNT#
FRAME#
IDSEL
DEVSEL#
PAR
ADDR_VLD
M_READY
COMPLETE
M_DATA_VLD
M_SRC_EN
M_WRDN
REQUEST
M_DATA
DR_BUS
I_IDLE
M_ADDR_N
IDLE
B_BUSY
S_DATA
BACKOFF
time (ns)
7050.0 7110.0 7170.0 7230.0 7290.0 7350.0 7410.0
8 - 13
Waveforms
Initiator 32-bit Burst Memory Write with One clock cycle after FRAME# is asserted, the Initiator
Disconnect asserts IRDY#, and the fast decode Target asserts
DEVSEL# and TRDY#. Since this is a multi-Dword transfer,
Figure 7 represents a burst cycle Memory Write transaction COMPLETE is initially deasserted and M_READY is
with a Target termination. This consists of a single address asserted at the beginning of the transaction. COMPLETE is
phase followed by four data phases but only three Dwords asserted during the next to last data phase and FRAME# is
were transferred because of the disconnect with data. deasserted at the beginning of the last data phase.
Requesting the PCI Bus M_DATA_VLD indicates the data was taken by the Target
and M_SRC_EN is used to advance the Initiator address
REQUEST is asserted for one clock cycle to generate a
REQ# signal to the PCI Arbiter. The PCI Interface asserts pointer to read the next data from the FIFO. With both
FRAME# only if GNT# is asserted for more than one clock IRDY# and TRDY# asserted, the data transfer occurs with-
out inserted wait states from either agent.
cycle.
8 - 14 May, 1999
CLK
May, 1999
REQ#
GNT#
FRAME#
C/BE#[3:0]
1111 0000 0111 0000 1111
AD[31:0]
ffffffff 0137c004 c0000000 00320649 00469126 0078976f 00bf2895 ffffffff
ADIO[31:0]
c0000000 00320649 00469126 0078976f 00bf2895 0137c004
IRDY#
TRDY#
STOP#
IDSEL
DEVSEL#
PAR
ADDR_VLD
M_READY
COMPLETE
Figure 7: Initiator 32-bit Burst Memory Write with Disconnect
M_DATA_VLD
M_SRC_EN
M_WRDN
REQUEST
M_DATA
DR_BUS
I_IDLE
M_ADDR_N
IDLE
B_BUSY
S_DATA
BACKOFF
time (ns)
7650.0 7680.0 7710.0 7740.0 7770.0 7800.0 7830.0 7860.0 7890.0 7920.0 7950.0 7980.0 8010.0
8 - 15
Waveforms
Target 32-bit Single Memory Read latency after DEVSEL# assertion. Since this is a read,
TRDY# is not asserted for one extra cycle beyond the usual
Figure 8 represents a single cycle Target Memory Read TRDY# latency due to the Read transaction turnaround
transaction. In this transaction, data is placed on the ADIO cycle where the Initiator stops driving AD and the Target
bus from a data register in the user design. begins driving AD.
Address Phase BASE_HIT[x] is asserted for one cycle to indicate to the
The Initiator drives FRAME# and the address onto the AD backend logic that it is the target of an access. The signal
lines, and drives a Memory Read command (0110) onto S_WRDN is asserted low to represent data is being read
from the Target.
C/BE#. The Initiator signals that it only wants to transfer
one Dword by deasserting FRAME# and asserting IRDY# S_READY is asserted and S_TERM is deasserted, indicat-
on the next cycle. ADDR_VLD is asserted one cycle after ing that the backend is able to transfer more than one
the address phase, indicating that a valid address is Dword. The PCI core deasserts TRDY# and DEVSEL#
present on ADIO. The ADDR_VLD is used by the user after one transfer, because the Initiator deasserts
design to capture this address. FRAME#.
Data Phase S_SRC_EN is asserted for two cycles and S_DATA_VLD is
asserted for one cycle. Since there is a difference between
The PCI Interface sees that the bus is no longer idle and
asserts Target state machine signals, IDLE and B_BUSY. the number of data transfers anticipated (two), and the
After B_BUSY, the Target state machine enters the number that occurred (one), the user design may have to
perform a backup of the FIFO. Details on how to do this are
S_DATA state, indicating that the backend will begin trans-
ferring data. DEVSEL# is asserted as a medium decode documented in the Xilinx PCI Design Guide.
speed. The PCI Interface always adds one cycle of TRDY#
8 - 16 May, 1999
CLK
May, 1999
FRAME#
PAR
ADDR_VLD
BASE_HIT[7:0] 00 02 00
S_READY
S_TERM
S_ABORT
S_DATA_VLD
S_SRC_EN
S_WRDN
M_DATA
DR_BUS
I_IDLE
M_ADDR_N
IDLE
B_BUSY
S_DATA
BACKOFF
time (ns)
8280.0 8310.0 8340.0 8370.0 8400.0 8430.0 8460.0
8 - 17
Waveforms
Figure 9 represents a single cycle Target Memory Write The PCI Interface sees that the bus is no longer idle and
transaction. In this transaction, data is captured from the asserts Target state machine signals, IDLE and B_BUSY.
ADIO bus to a data register in the user design. After B_BUSY, the Target state machine enters the
S_DATA state, indicating that the backend will begin trans-
Address Phase ferring data. DEVSEL# is asserted as a medium decode
The Initiator drives FRAME# and the address onto the AD speed. The PCI Interface always adds one cycle of TRDY#
lines, and drives a Memory Write command (0111) onto latency after DEVSEL# assertion.
C/BE#. The Initiator signals that it only wants to transfer BASE_HIT[x] is asserted for one cycle to indicate to the
one Dword by deasserting FRAME# and asserting IRDY# backend logic that it is the target of an access. The signal
on the next cycle. ADDR_VLD is asserted one cycle after S_WRDN is asserted high to represent that data is being
the address phase, indicating that a valid address is written to the target.
present on ADIO. The ADDR_VLD is used by the user
design to capture this address. S_READY is asserted and S_TERM is deasserted, indicat-
ing that the backend is able to transfer more than one
Dword. The PCI core deasserts TRDY# and DEVSEL#
after one transfer, because the Initiator deasserts
FRAME#.
8 - 18 May, 1999
CLK
May, 1999
FRAME#
C/BE#[3:0]
1111 0111 0000 1111
AD[31:0]
ffffffff f0000000 00320649 ffffffff
ADIO[31:0]
f0000000 00320649
IRDY#
TRDY#
STOP#
IDSEL
DEVSEL#
Figure 9: Target 32-bit Single Memory Write
PAR
ADDR_VLD
BASE_HIT[7:0]
00 02 00
S_READY
S_TERM
S_ABORT
S_DATA_VLD
S_SRC_EN
S_WRDN
M_DATA
DR_BUS
I_IDLE
M_ADDR_N
IDLE
B_BUSY
S_DATA
BACKOFF
time (ns)
8685.0 8700.0 8730.0 8760.0 8790.0 8820.0 8850.0 8865.0
8 - 19
Waveforms
Target 32-bit Burst Memory Read Multiple ferring data. DEVSEL# is asserted as a medium decode
speed. The PCI Interface always adds one cycle of TRDY#
Figure 10 represents a Target Memory Read Multiple trans- latency after DEVSEL# assertion. Since this is a read,
action. In this transaction, data is placed on the ADIO bus TRDY# is not asserted for one extra cycle beyond the usual
from a FIFO in the user design. TRDY# latency due to the Read transaction turnaround
Address Phase cycle where the Initiator stops driving AD and the Target
begins driving AD.
The Initiator drives FRAME# and the address onto the AD
lines, and drives a Memory Read Multiple command (1100) BASE_HIT[x] is asserted for one cycle to indicate to the
backend logic that it is the target of an access. The signal
onto C/BE#. The Initiator signals that it wants to transfer
multiple Dwords by keeping FRAME# asserted and assert- S_WRDN is asserted low to represent data is being read
ing IRDY# on the next cycle. ADDR_VLD is asserted one from the Target.
cycle after the address phase, indicating that a valid S_READY is asserted and S_TERM is deasserted, indicat-
address is present on ADIO. The ADDR_VLD is used by ing that the backend is able to transfer more than one
the user design to capture a copy of this address into the Dword.
address counter.
S_SRC_EN is asserted for five cycles and S_DATA_VLD is
Data Phase asserted for four cycles. Since there is a difference
The PCI Interface sees that the bus is no longer idle and between the number of data transfers anticipated (five),
asserts Target state machine signals, IDLE and B_BUSY. and the number that occurred (four), the user design may
have to perform a backup of the FIFO. Details on how to do
After B_BUSY, the Target state machine enters the
S_DATA state, indicating that the backend will begin trans- this are documented in the Xilinx PCI Design Guide.
8 - 20 May, 1999
CLK
May, 1999
FRAME#
C/BE#[3:0]
1111 1100 0000 1111
AD[31:0]
ffffffff f0000000 ffffffff 00320649 00469126 0078976f 00bf2895 ffffffff
ADIO[31:0]
f0000000 00320649 00469126 0078976f 00bf2895 0137c004 01f6e899
IRDY#
TRDY#
STOP#
IDSEL
DEVSEL#
PAR
ADDR_VLD
BASE_HIT[7:0]
00 02 00
Figure 10: Target 32-bit Burst Memory Read Multiple
S_READY
S_TERM
S_ABORT
S_DATA_VLD
S_SRC_EN
S_WRDN
M_DATA
DR_BUS
I_IDLE
M_ADDR_N
IDLE
B_BUSY
S_DATA
BACKOFF
time (ns)
9090.0 9120.0 9150.0 9180.0 9210.0 9240.0 9270.0 9300.0 9330.0 9360.0
8 - 21
Waveforms
Figure 11 represents a Target Memory Write transaction. In The PCI Interface sees that the bus is no longer idle and
this transaction data is captured from the ADIO bus to a asserts Target state machine signals, IDLE and B_BUSY.
FIFO in the user design. After B_BUSY, the Target state machine enters the
S_DATA state, indicating that the backend will begin trans-
Address Phase ferring data. DEVSEL# is asserted as a medium decode
speed. The PCI Interface always adds one cycle of TRDY#
The Initiator drives FRAME# and the address onto the AD
latency after DEVSEL# assertion.
lines, and drives a Memory Write command (0111) onto
C/BE#. The Initiator signals that it wants to transfer multiple BASE_HIT[x] is asserted for one cycle to indicate to the
Dwords by keeping FRAME# asserted and asserting backend logic that it is the target of an access. The signal
IRDY# on the next cycle. ADDR_VLD is asserted one cycle S_WRDN is asserted high to represent that data is being
after the address phase, indicating that a valid address is written to the target.
present on ADIO. The ADDR_VLD is used by the user
design to capture a copy of this address into the address S_READY is asserted and S_TERM is deasserted, indicat-
counter. ing that the backend is able to transfer more than one
Dword.
8 - 22 May, 1999
May, 1999
CLK
FRAME#
PAR
ADDR_VLD
BASE_HIT[7:0] 00 02 00
S_READY
S_TERM
S_ABORT
S_DATA_VLD
S_SRC_EN
S_WRDN
M_DATA
DR_BUS
I_IDLE
M_ADDR_N
IDLE
B_BUSY
S_DATA
BACKOFF
time (ns)
9600.0 9630.0 9660.0 9690.0 9720.0 9750.0 9780.0 9810.0 9840.0
8 - 23
Waveforms
8 - 24 May, 1999
May, 1999
CLK
FRAME#
C/BE#[3:0]
1111 0111 0000 1111
AD[31:0]
ffffffff f0000000 00320649 00469126 0078976f ffffffff
ADIO[31:0]
f0000000 00320649 00469126 0078976f
IRDY#
TRDY#
STOP#
IDSEL
DEVSEL#
PAR
ADDR_VLD
BASE_HIT[7:0]
00 02 00
S_READY
S_TERM
Figure 12: Target 32-bit Burst Memory Write with Disconnect
S_ABORT
S_DATA_VLD
S_SRC_EN
S_WRDN
M_DATA
DR_BUS
I_IDLE
M_ADDR_N
IDLE
B_BUSY
S_DATA
BACKOFF
time (ns)
10080.0 10110.0 10140.0 10170.0 10200.0 10230.0 10260.0 10290.0 10320.0
8 - 25
Waveforms
Target 32-bit Retry ing IRDY# on the next cycle. ADDR_VLD is asserted one
cycle after the address phase, indicating that a valid
Figure 13 represents a Target Retry. This is the same as a address is present on ADIO. The ADDR_VLD is used by
disconnect without data on first data phase. The Retry the user design to capture a copy of this address into the
occurs when S_TERM is asserted while S_READY is low. address counter.
Users may want to signal retrys when designing with very
slow peripherals or if the user design implements delayed Data Phase
reads.
The user design deasserts S_READY and asserts
Address Phase S_TERM, to cause a Retry. The Target state machine
never enters the S_DATA state. TRDY# is never asserted
The Initiator drives FRAME# and the address onto the AD and STOP# is asserted. The Initiator deasserts FRAME#
lines, and drives a Memory Read Multiple command (1100) and concludes the cycle.
onto C/BE#. The Initiator signals that it wants to transfer
multiple Dwords by keeping FRAME# asserted and assert-
8 - 26 May, 1999
May, 1999
CLK
FRAME#
C/BE#[3:0]
1111 1100 0000 1111
AD[31:0]
ffffffff f0000000 ffffffff
ADIO[31:0]
f0000000
IRDY#
Figure 13: Target 32-bit Retry
TRDY#
STOP#
IDSEL
DEVSEL#
PAR
ADDR_VLD
BASE_HIT[7:0]
00 02 00
S_READY
S_TERM
S_ABORT
S_DATA_VLD
S_SRC_EN
S_WRDN
M_DATA
DR_BUS
I_IDLE
M_ADDR_N
IDLE
B_BUSY
S_DATA
BACKOFF
time (ns)
10560.0 10590.0 10620.0 10650.0 10680.0 10710.0 10740.0
8 - 27
Waveforms
Target 32-bit Abort latency after DEVSEL# assertion. Since this is a read,
TRDY# is not asserted for one extra cycle beyond the usual
Figure 14 the signalling of a Target abort. When S_ABORT TRDY# latency due to the Read transaction turnaround
is asserted, this signals a serious error condition and cycle where the Initiator stops driving AD and the Target
requires the current transaction to stop. The transaction begins driving AD.
starts normally as detailed below and end with a Target
abort. BASE_HIT[x] is asserted for one cycle to indicate to the
backend logic that it is the target of an access. The signal
Address Phase S_WRDN is asserted low to represent data is being read
from the Target.
The Initiator drives FRAME# and the address onto the AD
lines, and drives a Memory Read Multiple command (1100) S_READY is asserted and S_TERM is deasserted, indicat-
onto C/BE#. The Initiator signals that it wants to transfer ing that the backend is able to transfer more than one
multiple Dwords by keeping FRAME# asserted and assert- Dword.
ing IRDY# on the next cycle. ADDR_VLD is asserted one
cycle after the address phase, indicating that a valid The backend design detected a serious error condition,
address is present on ADIO. The ADDR_VLD is used by such as attempting to burst past the end of the memory
the user design to capture a copy of this address into the space for that Base address register. When this occurs, a
address counter. Target abort must be signalled to the Initiator.
8 - 28 May, 1999
CLK
May, 1999
FRAME#
C/BE#[3:0]
1111 1100 0000 1111
AD[31:0]
ffffffff f0000038 ffffffff 00469126 00320649 00469126 0078976f ffffffff
ADIO[31:0]
f0000038 00320649 00469126 0078976f
IRDY#
Figure 14: Target 32-bit Abort
TRDY#
STOP#
IDSEL
DEVSEL#
PAR
ADDR_VLD
BASE_HIT[7:0]
00 02 00
S_READY
S_TERM
S_ABORT
S_DATA_VLD
S_SRC_EN
S_WRDN
M_DATA
DR_BUS
I_IDLE
M_ADDR_N
IDLE
B_BUSY
S_DATA
BACKOFF
time (ns)
10980.0 11010.0 11040.0 11070.0 11100.0 11130.0 11160.0 11190.0 11220.0 11250.0
8 - 29
Waveforms
Figure 15 represents a 64-bit burst cycle Memory Read The M_DATA phase begins on the CLK cycle immediately
Multiple transaction. This consists of a single address following the M_ADDR_N phase. During M_DATA, the byte
phase followed by two or more data phases. enables are presented on M_CBE. One clock cycle after
FRAME# and REQ64# are asserted, the Initiator asserts
Requesting the PCI Bus IRDY#, and the fast decode, 64-bit Target asserts
REQUEST64 is asserted for one clock cycle to generate a DEVSEL# and ACK64#. Since this is a Read, there is a one
REQ# signal to the PCI Arbiter and to signal to the PCI cycle bus turnaround after the address phase; TRDY# can
not be asserted until after the turnaround cycle. The Target
Interface that a 64-bit transaction will be performed. The
PCI Interface asserts FRAME# and REQ64# only if GNT# is now suppling data onto the PCI bus, while the Initiator is
is asserted for more than one clock cycle. supplying the Byte enables. Since this is a multi-Qword
transfer, COMPLETE is initially deasserted and M_READY
Address Phase is asserted at the beginning of the transaction, and
FRAME# and REQ64# stay asserted until the next to last
The M_ADDR_N signal is used to drive the output-enable data phase.
of the 3-state buffers (BUFTs) which enable the valid
address onto the internal ADIO bus one CLK cycle before M_DATA_VLD indicates the data is present on the AD bus
the assertion of FRAME#. Once the Initiator asserts and is used to advance the Initiator address pointer. With
FRAME#, it drives the AD lines with the address put on the both IRDY# and TRDY# asserted, the 64-bit data transfer
ADIO bus during the previous CLK cycle, and drives a occurs without inserted wait states from either agent. COM-
Memory Read Multiple command (1100), supplied by the PLETE is asserted on the next to last data phase, since the
user to the backend (M_CBE[3:0], not shown), onto the C/ Initiator has to deassert FRAME# and REQ64# at the
BE# lines. beginning of the last data phase. The transfer completes
with the deassertion of IRDY#, TRDY#, DEVSEL#, and
ACK64# and the bus has a turnaround cycle. The signal
M_WRDN is asserted low to represent data is being read.
8 - 30 May, 1999
CLK
May, 1999
REQ#
GNT#
FRAME#
C/BE#[3:0]
1111 0000 1100 0000 1111
AD[31:0]
ffffffff 0078976f c0000000 f0000038 00320649 0078976f 0137c004 032ea89d ffffffff
ADIO[31:0]
c0000000 0078976f c0000000 f0000038 00320649 0078976f 0137c004 032ea89d
C/BE#[7:4]
1111 0000 1111
AD[63:32]
ffffffff 00bf2895 00000000 ffffffff 00469126 00bf2895 01f6e899 05259136 ffffffff
ADIO[63:32]
00000000 00bf2895 00000000 ffffffff 00469126 00bf2895 01f6e899 05259136
IRDY#
TRDY#
STOP#
IDSEL
DEVSEL#
PAR
ADDR_VLD
REQ64#
Figure 15: Initiator 64-bit Burst Memory Read Multiple
ACK64#
REQUEST64
PAR64
SLOT64
S_CYCLE64
M_READY
COMPLETE
M_DATA_VLD
M_SRC_EN
M_WRDN
REQUEST
M_DATA
DR_BUS
I_IDLE
M_ADDR_N
IDLE
B_BUSY
S_DATA
BACKOFF
time (ns)
11400.0 11460.0 11520.0 11580.0 11640.0 11700.0 11760.0 11820.0
8 - 31
Waveforms
Figure 16 represents a 64-bit burst cycle Memory Write The M_DATA phase begins on the CLK cycle immediately
transaction. This consists of a single address phase fol- following the M_ADDR_N phase. During M_DATA, the byte
lowed by four data phases. enables are presented on M_CBE. Data is placed on the
ADIO bus from a FIFO in the user design. The output
Requesting the PCI Bus enable of the FIFO is controlled by M_DATA (conditional
REQUEST64 is asserted for one clock cycle to generate a upon being the write state!).
REQ# signal to the PCI Arbiter and to signal to the PCI One clock cycle after FRAME# is asserted, the Initiator
Interface that a 64-bit transaction will be performed. The asserts IRDY#, and the fast decode, 64-bit Target asserts
PCI Interface asserts FRAME# and REQ64# only if GNT# DEVSEL#, ACK64#, and TRDY#. Since this is a multi-
is asserted for more than one clock cycle. Qword transfer, COMPLETE is initially deasserted and
Address Phase M_READY is asserted at the beginning of the transaction.
COMPLETE is asserted during the next to last data phase
The M_ADDR_N signal is used to drive the output-enable and FRAME# and REQ64# are deasserted at the begin-
of the 3-state buffers (BUFTs) which enable the valid ning of the last data phase.
address onto the internal ADIO bus one CLK cycle before
M_DATA_VLD indicates the data was taken by the Target
the assertion of FRAME#. Once the Initiator asserts
FRAME#, it drives the AD lines with the address put on the and M_SRC_EN is used to advance the Initiator address
ADIO bus during the previous CLK cycle, and drives a pointer and read the next piece of data from the FIFO. With
both IRDY# and TRDY# asserted, the data transfer occurs
Memory Write command (0111), supplied by the user to the
backend (M_CBE[3:0], not shown), onto the C/BE# lines. without inserted wait states from either agent. The transfer
completes with the deassertion of IRDY#, TRDY#,
DEVSEL#, and ACK64# and the bus has a turnaround
cycle. The signal M_WRDN is asserted high to represent
data is being written.
8 - 32 May, 1999
CLK
May, 1999
REQ#
GNT#
FRAME#
C/BE#[3:0]
1111 0000 0111 0000 1111
AD[31:0]
ffffffff 0137c004 c0000000 00320649 0078976f 0137c004 032ea89d ffffffff
ADIO[31:0]
c0000000 00320649 0078976f 0137c004 032ea89d 085439d3
C/BE#[7:4]
1111 0000 1111
AD[63:32]
ffffffff 01f6e899 00000000 00469126 00bf2895 01f6e899 05259136 ffffffff
ADIO[63:32]
00000000 00469126 00bf2895 01f6e899 05259136 0d79cb09
IRDY#
TRDY#
STOP#
IDSEL
DEVSEL#
Figure 16: Initiator 64-bit Burst Memory Write
PAR
ADDR_VLD
REQ64#
ACK64#
REQUEST64
PAR64
SLOT64
S_CYCLE64
M_READY
COMPLETE
M_DATA_VLD
M_SRC_EN
M_WRDN
REQUEST
M_DATA
DR_BUS
I_IDLE
M_ADDR_N
IDLE
B_BUSY
S_DATA
BACKOFF
time (ns)
12000.0 12060.0 12120.0 12180.0 12240.0 12300.0 12360.0
8 - 33
Waveforms
Initiator 64-bit Burst Memory Write with One clock cycle after FRAME# and REQ64# are asserted,
Disconnect the Initiator asserts IRDY#, and the fast decode Target
asserts DEVSEL#, TRDY#, and ACK64#. Since this is a
Figure 17 represents a 64-bit burst cycle Memory Write multi-Qword transfer, COMPLETE is initially deasserted
transaction with a Target termination. This consists of a sin- and M_READY is asserted at the beginning of the transac-
gle address phase followed by four data phases but only tion. COMPLETE is asserted during the next to last data
two Qwords were transferred because of the disconnect phase and FRAME# and REQ64# are deasserted at the
with data. beginning of the last data phase.
Requesting the PCI Bus M_DATA_VLD indicates the data was taken by the Target
REQUEST64 is asserted for one clock cycle to generate a and M_SRC_EN is used to advance the Initiator address
REQ# signal to the PCI Arbiter and to signal to the PCI pointer and read the next piece of data from the FIFO. With
both IRDY# and TRDY# asserted, the data transfer occurs
Interface that a 64-bit transaction will be performed. The
PCI Interface asserts FRAME# and REQ64# only if GNT# without inserted wait states from either agent.
is asserted for more than one clock cycle. The Target signalled a disconnect by asserting STOP#, and
Address Phase deasserted TRDY# so that the third Qword was not trans-
ferred. Likewise, the last data phase does not have a data
The M_ADDR_N signal is used to drive the output-enable transfer because TRDY# is not asserted. M_SRC_EN is
of the 3-state buffers (BUFTs) which enable the valid asserted for four cycles and M_DATA_VLD is asserted for
address onto the internal ADIO bus one CLK cycle before only two cycles. Since there is a difference between the
the assertion of FRAME#. Once the Initiator asserts number of data transfers anticipated (four), and the number
FRAME#, it drives the AD lines with the address put on the that occurred (two), the user design may have to perform a
ADIO bus during the previous CLK cycle, and drives a backup of the FIFO. Details on how to do this are docu-
Memory Write command (0111), supplied by the user to the mented in the Xilinx PCI Design Guide.
backend (M_CBE[3:0], not shown), onto the C/BE# lines.
The transfer completes with the deassertion of IRDY#,
Data Phase STOP#, DEVSEL#, and ACK64# and the bus has a turn-
around cycle. The signal M_WRDN is asserted high to rep-
The M_DATA phase begins on the CLK cycle immediately resent data is being written.
following the M_ADDR_N phase. During M_DATA, the byte
enables are presented on M_CBE. Data is placed on the
ADIO bus from a FIFO in the user design. The output
enable of the FIFO is controlled by M_DATA (conditional
upon being the write state!).
8 - 34 May, 1999
CLK
May, 1999
REQ#
GNT#
FRAME#
C/BE#[3:0]
1111 0000 0111 0000 1111
AD[31:0]
ffffffff 085439d3 c0000000 00320649 0078976f 0137c004 ffffffff
ADIO[31:0]
c0000000 00320649 0078976f 0137c004 032ea89d 085439d3
C/BE#[7:4]
1111 0000 1111
AD[63:32]
ffffffff 0d79cb09 00000000 00469126 00bf2895 01f6e899 ffffffff
ADIO[63:32]
00000000 00469126 00bf2895 01f6e899 05259136 0d79cb09
IRDY#
TRDY#
STOP#
IDSEL
DEVSEL#
PAR
ADDR_VLD
REQ64#
ACK64#
REQUEST64
PAR64
Figure 17: Initiator 64-bit Burst Memory Write with Disconnect
SLOT64
S_CYCLE64
M_READY
COMPLETE
M_DATA_VLD
M_SRC_EN
M_WRDN
REQUEST
M_DATA
DR_BUS
I_IDLE
M_ADDR_N
IDLE
B_BUSY
S_DATA
BACKOFF
time (ns)
12600.0 12660.0 12720.0 12780.0 12840.0 12900.0 12960.0
8 - 35
Waveforms
Initiator 64-bit Memory Read of a 32-bit enables are presented on M_CBE. One clock cycle after
Target FRAME# and REQ64# are asserted, the Initiator asserts
IRDY#, and the fast decode, 32-bit Target asserts
Figure 18 represents a 64-bit burst cycle Memory Read DEVSEL#, leaving ACK64# deasserted.
Multiple transaction of a 32-bit Target. This consists of a
single address phase followed by two or more data phases. The Xilinx PCI Interface sees that the Target did not assert
The Xilinx PCI core handles this situation by transferring ACK64#, and after transferring the first Dword, the Initiator
one Qword as two Dwords (assuming the Target will take state machine automatically deasserts IRDY#, even
both Dwords) and then ending the transaction. though M_READY is asserted. The data on the upper
ADIO and M_CBE bus is transferred to the lower AD and
Requesting the PCI Bus M_CBE bus inside the PCI core. No extra muxes or back-
REQUEST64 is asserted for one clock cycle to generate a end inputs are needed. When the PCI core is being used in
zero wait state mode, a 64-bit transfer encountering a 32-
REQ# signal to the PCI Arbiter and to signal to the PCI
Interface that a 64-bit transaction will be performed. The bit Target is the only instance where a wait state is ever
PCI Interface asserts FRAME# and REQ64# only if GNT# inserted after IRDY# is asserted.
is asserted for more than one clock cycle. The PCI Interface also asserts M_FAIL64 (not shown) to
Address Phase the user backend. M_FAIL64 is used to indicate that the 64-
bit Target request was claimed as a 32-bit transfer by the
The M_ADDR_N signal is used to drive the output-enable Target.
of the 3-state buffers (BUFTs) which enable the valid
M_DATA_VLD indicates the data is present on the AD bus.
address onto the internal ADIO bus one CLK cycle before
the assertion of FRAME#. Once the Initiator asserts Since a automatic wait state was inserted, M_DATA_VLD is
FRAME#, it drives the AD lines with the address put on the toggled. The behavior of M_DATA_VLD combined with the
state of M_FAIL64 indicates two Dwords are transferred.
ADIO bus during the previous CLK cycle, and drives a
Memory Read Multiple command (1100), supplied by the M_DATA_VLD and M_FAIL64 are used to advance the Ini-
user to the backend (M_CBE[3:0], not shown), onto the C/ tiator address pointer.
BE# lines. When an event like this occurs, the Initiator should re-ini-
Data Phase tiate as a 32-bit transfer and move the data as Dwords. The
XIlinx PCI core will not allow you to burst more than two
The M_DATA phase begins on the CLK cycle immediately Dwords in this type of event. The user backend design
following the M_ADDR_N phase. During M_DATA, the byte must keep track of the number of Dwords transferred.
8 - 36 May, 1999
May, 1999
CLK
REQ#
GNT#
FRAME#
C/BE#[3:0]
1111 0000 1100 0000 1111
AD[31:0]
ffffffff 0137c004 c0000000 032ea89d 00320649 00469126 ffffffff
ADIO[31:0]
c0000000 0137c004 c0000000 032ea89d 00320649 00469126
C/BE#[7:4]
1111 0000 1111
AD[63:32]
ffffffff 01f6e899 00000000 ffffffff
ADIO[63:32]
00000000 01f6e899 00000000 ffffffff
IRDY#
TRDY#
STOP#
IDSEL
DEVSEL#
PAR
ADDR_VLD
REQ64#
ACK64#
Figure 18: Initiator 64-bit Memory Read of a 32-bit Target
REQUEST64
PAR64
SLOT64
S_CYCLE64
M_READY
COMPLETE
M_DATA_VLD
M_SRC_EN
M_WRDN
REQUEST
M_DATA
DR_BUS
I_IDLE
M_ADDR_N
IDLE
B_BUSY
S_DATA
BACKOFF
time (ns)
13140.0 13200.0 13260.0 13320.0 13380.0 13440.0 13500.0
8 - 37
Waveforms
Initiator 64-bit Memory Write of a 32-bit IRDY#, and the fast decode, 32-bit Target asserts
Target DEVSEL#, leaving ACK64# deasserted.
Figure 19 represents a single cycle Memory Write transac- The Xilinx PCI Interface sees that the Target did not assert
tion from a 64-bit master to a 32-bit Target. This consists of ACK64#, and after transferring the first Dword, the Initiator
a single address phase followed by two or more data state machine automatically deasserts IRDY#, even
phases. The Xilinx PCI core handles this situation by trans- though M_READY is asserted. The data on the upper
ferring one Qword as two Dwords (assuming the Target will ADIO and M_CBE bus is transferred to the lower AD and
take both Dwords) and then ending the transaction. M_CBE bus inside the PCI core. No extra muxes or back-
end inputs are needed. When the PCI core is being used in
Requesting the PCI Bus zero wait state mode, a 64-bit transfer encountering a 32-
REQUEST64 is asserted for one clock cycle to generate a bit Target is the only instance where a wait state is ever
inserted after IRDY# is asserted.
REQ# signal to the PCI Arbiter and to signal to the PCI
Interface that a 64-bit transaction will be performed. The The PCI Interface also asserts M_FAIL64 (not shown) to
PCI Interface asserts FRAME# and REQ64# only if GNT# the user backend. M_FAIL64 is used to indicate that the 64-
is asserted for more than one clock cycle. bit Target request was claimed as a 32-bit transfer by the
Address Phase Target.
The M_ADDR_N signal is used to drive the output-enable M_DATA_VLD indicates that data was taken by the Target.
of the 3-state buffers (BUFTs) which enable the valid M_SRC_EN combined with M_FAIL64 are used to
advance the Initiator address pointer and read the next
address onto the internal ADIO bus one CLK cycle before
the assertion of FRAME#. Once the Initiator asserts piece of data from the FIFO. In this case, since the PCI
FRAME#, it drives the AD lines with the address put on the Interface asserts M_FAIL and M_SRC_EN, the user FIFO
should backup the FIFO data to prevent data loss. This is
ADIO bus during the previous CLK cycle, and drives a
Memory Write command (0111), supplied by the user to the because two Dwords were transferred, but the FIFO was
backend (M_CBE[3:0], not shown), onto the C/BE# lines. advanced two Qwords.
Data Phase When an event like this occurs, the Initiator should re-ini-
tiate as a 32-bit transfer and move the data as Dwords. The
The M_DATA phase begins on the CLK cycle immediately XIlinx PCI core will not allow you to burst more than two
following the M_ADDR_N phase. During M_DATA, the byte Dwords in this type of event. The user backend design
enables are presented on M_CBE. One clock cycle after must keep track of the number of Dwords transferred.
FRAME# and REQ64# are asserted, the Initiator asserts
8 - 38 May, 1999
CLK
May, 1999
REQ#
GNT#
FRAME#
C/BE#[3:0]
1111 0000 0111 0000 1111
AD[31:0]
ffffffff 01f6e899 c0000000 00320649 0078976f 00469126 ffffffff
ADIO[31:0]
c0000000 00320649 0078976f 0137c004
C/BE#[7:4]
1111 0000 1111
AD[63:32]
ffffffff 01f6e899 00000000 00469126 00bf2895 00469126 ffffffff
ADIO[63:32]
00000000 00469126 00bf2895 01f6e899
IRDY#
TRDY#
STOP#
IDSEL
DEVSEL#
PAR
ADDR_VLD
REQ64#
ACK64#
Figure 19: Initiator 64-bit Memory Write of a 32-bit Target
REQUEST64
PAR64
SLOT64
S_CYCLE64
M_READY
COMPLETE
M_DATA_VLD
M_SRC_EN
M_WRDN
REQUEST
M_DATA
DR_BUS
I_IDLE
M_ADDR_N
IDLE
B_BUSY
S_DATA
BACKOFF
time (ns)
13710.0 13770.0 13830.0 13890.0 13950.0 14010.0 14070.0
8 - 39
Waveforms
Target 64-bit Burst Memory Read Multiple cycle where the Initiator stops driving the AD bus and the
Target begins driving the AD bus.
Figure 20 represents a Target Memory Read Multiple trans-
action. In this transaction, data is placed on the ADIO bus BASE_HIT[x] is asserted for one cycle when DEVSEL# is
from a FIFO in the user design. asserted to indicate to the backend logic that it is the target
of an access. The signal S_WRDN is asserted low to rep-
Address Phase resent data is being read from the Target.
The Initiator drives FRAME#, REQ64#, and the address The PCI Interface also asserts S_CYCLE64 starting at the
onto the AD lines, and drives a Memory Read Multiple com- assertion of DEVSEL# and it remains asserted throughout
mand (1100) onto C/BE#. The Initiator signals that it wants the transfer. This indicates to the user backend that this is a
to transfer multiple Dwords by keeping FRAME# asserted 64-bit transfer.
and asserting IRDY# on the next cycle. ADDR_VLD is
asserted one cycle after the address phase, indicating that S_READY is asserted and S_TERM is deasserted, indicat-
a valid address is present on ADIO. The ADDR_VLD is ing that the backend is able to transfer more than one
used by the user design to capture a copy of this address Dword.
into the address counter.
The PCI interface asserts S_SRC_EN to indicate to the
Data Phase user backend that it must supply the next piece of data. The
PCI interface also asserts S_DATA_VLD to indicate to the
The PCI Interface sees that the bus is no longer idle and user backend that on the previous clock, data was
asserts Target state machine signals, IDLE and B_BUSY. accepted by the Initiator.
After B_BUSY, the Target state machine enters the
S_DATA state, indicating that the backend will begin trans- In this example, S_SRC_EN is asserted for five cycles and
ferring data. DEVSEL# is asserted as a medium decode S_DATA_VLD is asserted for four cycles. Since there is a
speed, along with ACK64#, claiming the 64-bit transaction. difference between the number of data transfers antici-
The PCI Interface always adds one cycle of TRDY# latency pated (five), and the number that occurred (four), the user
after DEVSEL# assertion. Since this is a read, TRDY# is design may have to perform a backup of the FIFO. Details
not asserted for one extra cycle beyond the usual TRDY# on how to do this are documented in the Xilinx PCI Design
latency. This is due to the Read transaction turnaround Guide.
8 - 40 May, 1999
May, 1999
CLK
FRAME#
C/BE#[3:0]
1111 1100 0000 1111
AD[31:0]
ffffffff ff000000 ffffffff 00469126 00320649 0078976f 0137c004 032ea89d ffffffff
ADIO[31:0]
ff000000 00320649 0078976f 0137c004 032ea89d 085439d3 15ce04dc
C/BE#[7:4]
1111 0000 1111
AD[63:32]
ffffffff 00469126 00bf2895 01f6e899 05259136 ffffffff
ADIO[63:32]
ffffffff 00469126 00bf2895 01f6e899 05259136 0d79cb09 2347cfe5
IRDY#
TRDY#
STOP#
IDSEL
DEVSEL#
PAR
ADDR_VLD
REQ64#
ACK64#
Figure 20: Target 64-bit Burst Memory Read Multiple
REQUEST64
PAR64
SLOT64
S_CYCLE64
BASE_HIT[7:0]
00 04 00
S_READY
S_TERM
S_ABORT
S_DATA_VLD
S_SRC_EN
S_WRDN
M_DATA
DR_BUS
I_IDLE
M_ADDR_N
IDLE
B_BUSY
S_DATA
BACKOFF
time (ns)
14340.0 14370.0 14400.0 14430.0 14460.0 14490.0 14520.0 14550.0 14580.0 14610.0
8 - 41
Waveforms
Target 64-bit Burst Memory Write ferring data. DEVSEL# is asserted as a medium decode
speed, along with ACK64#, claiming the 64-bit transaction.
Figure 21 represents a Target Memory Write transaction. In The PCI Interface always adds one cycle of TRDY# latency
this transaction data is captured from the ADIO bus to a after DEVSEL# assertion.
FIFO in the user design.
BASE_HIT[x] is asserted for one cycle when DEVSEL# is
Address Phase asserted to indicate to the backend logic that it is the target
The Initiator drives FRAME#, REQ64#, and the address of an access. The signal S_WRDN is asserted high to rep-
onto the AD lines, and drives a Memory Write command resent that data is being written to the target.
(0111) onto C/BE#. The Initiator signals that it wants to The PCI Interface also asserts S_CYCLE64 starting at the
transfer multiple Qwords by keeping FRAME# asserted assertion of DEVSEL# and it remains asserted throughout
and asserting IRDY# on the next cycle. ADDR_VLD is the transfer. This indicates to the user backend that this is a
asserted one cycle after the address phase, indicating that 64-bit transfer.
a valid address is present on ADIO. The ADDR_VLD is
used by the user design to capture a copy of this address S_READY is asserted and S_TERM is deasserted, indicat-
into the address counter. ing that the backend is able to transfer more than one
Qword.
Data Phase
The PCI Interface also asserts S_DATA_VLD to indicate to
The PCI Interface sees that the bus is no longer idle and the user backend that valid data is present on the internal
asserts Target state machine signals, IDLE and B_BUSY. ADIO bus. This signal is used by the backend to capture
After B_BUSY, the Target state machine enters the the data into the FIFO.
S_DATA state, indicating that the backend will begin trans-
8 - 42 May, 1999
CLK
May, 1999
FRAME#
C/BE#[3:0]
1111 0111 0000 1111
AD[31:0]
ffffffff ff000000 00320649 0078976f 0137c004 032ea89d ffffffff
ADIO[31:0]
ff000000 00320649 0078976f 0137c004 032ea89d
C/BE#[7:4]
1111 0000 1111
AD[63:32]
ffffffff 00469126 00bf2895 01f6e899 05259136 ffffffff
ADIO[63:32]
ffffffff 00469126 00bf2895 01f6e899 05259136
IRDY#
TRDY#
STOP#
IDSEL
DEVSEL#
Figure 21: Target 64-bit Burst Memory Write
PAR
ADDR_VLD
REQ64#
ACK64#
REQUEST64
PAR64
SLOT64
S_CYCLE64
BASE_HIT[7:0]
00 04 00
S_READY
S_TERM
S_ABORT
S_DATA_VLD
S_SRC_EN
S_WRDN
M_DATA
DR_BUS
I_IDLE
M_ADDR_N
IDLE
B_BUSY
S_DATA
BACKOFF
time (ns)
14850.0 14880.0 14910.0 14940.0 14970.0 15000.0 15030.0 15060.0 15090.0 15120.0
8 - 43
Waveforms
Target 64-bit Burst Memory Write with The PCI Interface always adds one cycle of TRDY# latency
Disconnect after DEVSEL# assertion.
Figure 22 represents a Target Memory Write transaction BASE_HIT[x] is asserted for one cycle when DEVSEL# is
where the backend causes a disconnect with data termina- asserted to indicate to the backend logic that it is the target
tion. In this transaction data is captured from the ADIO bus of an access. The signal S_WRDN is asserted high to rep-
to a FIFO in the user design. resent that data is being written to the target.
Address Phase The PCI Interface also asserts S_CYCLE64 starting at the
assertion of DEVSEL# and it remains asserted throughout
The Initiator drives FRAME#, REQ64#, and the address the transfer. This indicates to the user backend that this is a
onto the AD lines, and drives a Memory Write command 64-bit transfer.
(0111) onto C/BE#. The Initiator signals that it wants to
transfer multiple Qwords by keeping FRAME# asserted The PCI Interface asserts S_DATA_VLD to indicate to the
and asserting IRDY# on the next cycle. ADDR_VLD is user backend that valid data is present on the internal
asserted one cycle after the address phase, indicating that ADIO bus. This signal is used by the backend to capture
a valid address is present on ADIO. The ADDR_VLD is the data into the FIFO.
used by the user design to capture a copy of this address
into the address counter. Initially, S_READY is asserted and S_TERM is deasserted,
indicating that the backend is able to transfer more than
Data Phase one Qword. S_TERM is asserted with two more Qwords to
transfer. The equation for S_TERM is usually derived from
The PCI Interface sees that the bus is no longer idle and the Almost Full flag on the FIFO. One cycle later, STOP# is
asserts Target state machine signals, IDLE and B_BUSY. asserted, and the Initiator concludes the transaction by
After B_BUSY, the Target state machine enters the deasserting FRAME# and then IRDY# on the subsequent
S_DATA state, indicating that the backend will begin trans- cycle.
ferring data. DEVSEL# is asserted as a medium decode
speed, along with ACK64#, claiming the 64-bit transaction.
8 - 44 May, 1999
CLK
May, 1999
FRAME#
C/BE#[3:0]
1111 0111 0000 1111
AD[31:0]
ffffffff ff000000 00320649 0078976f 0137c004 ffffffff
ADIO[31:0]
ff000000 00320649 0078976f 0137c004
C/BE#[7:4]
1111 0000 1111
AD[63:32]
ffffffff 00469126 00bf2895 01f6e899 ffffffff
ADIO[63:32]
ffffffff 00469126 00bf2895 01f6e899
IRDY#
TRDY#
STOP#
IDSEL
DEVSEL#
PAR
ADDR_VLD
REQ64#
ACK64#
REQUEST64
PAR64
SLOT64
Figure 22: Target 64-bit Burst Memory Write with Disconnect
S_CYCLE64
BASE_HIT[7:0]
00 04 00
S_READY
S_TERM
S_ABORT
S_DATA_VLD
S_SRC_EN
S_WRDN
M_DATA
DR_BUS
I_IDLE
M_ADDR_N
IDLE
B_BUSY
S_DATA
BACKOFF
time (ns)
15330.0 15360.0 15390.0 15420.0 15450.0 15480.0 15510.0 15540.0 15570.0 15600.0
8 - 45
Waveforms
Target 64-bit Retry and asserting IRDY# on the next cycle. ADDR_VLD is
asserted one cycle after the address phase, indicating that
Figure 23 represents a 64-bit Target Retry. This is the same a valid address is present on ADIO. The ADDR_VLD is
as a disconnect without data on first data phase. The Retry used by the user design to capture a copy of this address
occurs when S_TERM is asserted while S_READY is low. into the address counter.
Users may want to signal retrys when designing with very
slow peripherals or if the user design implements delayed Data Phase
reads.
Based on a decode of the BASE_HIT[x] signal, the user
Address Phase design deasserts S_READY and asserts S_TERM, which
will cause a Retry. The Target state machine never enters
The Initiator drives FRAME#, REQ64#, and the address the S_DATA state. TRDY# is never asserted and STOP# is
onto the AD lines, and drives a Memory Read Multiple com- asserted. The Initiator deasserts FRAME# and concludes
mand (1100) onto C/BE#. The Initiator signals that it wants the cycle.
to transfer multiple Qwords by keeping FRAME# asserted
8 - 46 May, 1999
May, 1999
CLK
FRAME#
C/BE#[3:0]
1111 1100 0000 1111
AD[31:0]
ffffffff ff000000 ffffffff
ADIO[31:0]
ff000000
C/BE#[7:4]
1111 0000 1111
AD[63:32]
ffffffff
ADIO[63:32]
Figure 23: Target 64-bit Retry
ffffffff
IRDY#
TRDY#
STOP#
IDSEL
DEVSEL#
PAR
ADDR_VLD
REQ64#
ACK64#
REQUEST64
PAR64
SLOT64
S_CYCLE64
BASE_HIT[7:0]
00 04 00
S_READY
S_TERM
S_ABORT
S_DATA_VLD
S_SRC_EN
S_WRDN
M_DATA
DR_BUS
I_IDLE
M_ADDR_N
IDLE
B_BUSY
S_DATA
BACKOFF
time (ns)
15810.0 15840.0 15870.0 15900.0 15930.0 15960.0 15990.0 16020.0
8 - 47
Waveforms
Target 64-bit Abort cycle where the Initiator stops driving the AD bus and the
Target begins driving the AD bus.
Figure 24 the signalling of a Target abort. When S_ABORT
is asserted, this signals a serious error condition and BASE_HIT[x] is asserted for one cycle to indicate to the
requires the current transaction to stop. The transaction backend logic that it is the target of an access. The signal
starts normally as detailed below and end with a Target S_WRDN is asserted low to represent data is being read
abort. from the Target.
Address Phase The PCI Interface also asserts S_CYCLE64 starting at the
assertion of DEVSEL# and it remains asserted throughout
The Initiator drives FRAME#, REQ64#, and the address the transfer. This indicates to the user backend that this is a
onto the AD lines, and drives a Memory Read Multiple com- 64-bit transfer.
mand (1100) onto C/BE#. The Initiator signals that it wants
to transfer multiple Qwords by keeping FRAME# asserted S_READY is asserted and S_TERM is deasserted, indicat-
and asserting IRDY# on the next cycle. ADDR_VLD is ing that the backend is able to transfer more than one
asserted one cycle after the address phase, indicating that Qword.
a valid address is present on ADIO. The ADDR_VLD is
used by the user design to capture a copy of this address The backend design detected a serious error condition,
into the address counter. such as attempting to burst past the end of the memory
space for that Base address register. When this occurs, a
Data Phase Target abort must be signalled to the Initiator.
The PCI Interface sees that the bus is no longer idle and On the rising CLK edge after S_ABORT is asserted,
asserts Target state machine signals, IDLE and B_BUSY. STOP# is asserted and TRDY# with DEVSEL# are deas-
After B_BUSY, the Target state machine enters the serted. As a result, FRAME# is deasserted on the next CLK
S_DATA state, indicating that the backend will begin trans- cycle which ends the transaction.
ferring data. DEVSEL# is asserted as a medium decode
speed. The PCI Interface always adds one cycle of TRDY# The states of S_READY and S_TERM are not particularly
latency after DEVSEL# assertion. Since this is a read, relevant since asserting S_ABORT causes the Target state
TRDY# is not asserted for one extra cycle beyond the usual machine to do a Target abort.
TRDY# latency due to the Read transaction turnaround
8 - 48 May, 1999
May, 1999
CLK
FRAME#
C/BE#[3:0]
1111 1100 0000 1111
AD[31:0]
ffffffff ff000030 ffffffff 0078976f 00320649 0078976f 0137c004 ffffffff
ADIO[31:0]
ff000030 00320649 0078976f 0137c004
C/BE#[7:4]
1111 0000 1111
AD[63:32]
ffffffff 00bf2895 00469126 00bf2895 01f6e899 ffffffff
ADIO[63:32]
Figure 24: Target 64-bit Abort
time (ns)
16230.0 16260.0 16290.0 16320.0 16350.0 16380.0 16410.0 16440.0 16470.0 16500.0
8 - 49
Waveforms
8 - 50 May, 1999
11
1 Introduction
2 PCI Products
3 FPGA Products
4 Design Methodology
7 Resources
8 Waveforms
Feature PCI64 Design Kit PCI64 Virtex PCI32 Design Kit PCI32 Spartan
See individual data sheets for details DO-DI-PCI64-DK DO-DI-PCI64 DO-DI-PCI32-DK DO-DI-PCI32-S
64-bit, 66 MHz PCI Initiator & Target ✔ ✔
64-bit, 33 MHz PCI Initiator & Target ✔ ✔
32-bit, 66 MHz PCI Initiator & Target ✔ ✔
32-bit, 33MHz PCI Initiator & Target ✔ ✔ ✔ ✔
Support for Xilinx Virtex FPGAs ✔ ✔
Support for Xilinx Spartan FPGAs ✔ ✔ ✔ ✔
Support for Xilinx XC4000 FPGAs ✔ ✔ ✔
PCI Bridge Design Examples All All 32 bit only SB03
Configuration and Download from web ✔ ✔ ✔ ✔
LogiCORE User's Guide ✔ ✔ ✔ On-line
PCI System Architecture Book ✔ ✔ ✔
Nallatech PCI64 Prototyping Board ✔ ✔
VCC HotPCI Prototyping System ✔
Example Reference Drivers ✔ ✔
NuMega DriverWorks ✔ ✔
NuMega VtoolsD ✔ ✔
12 month Maintenance Contract ✔ ✔ ✔
Free updates 12 months 12 months 12 months 3 months
DX-DI-S2M DX-DI-PCI32-DK
ers
rd
O
w
DO-DI-PCIS DO-DI-PCI32-S
o
N
9 Townsend West
Nashua, NH 03063
Phone: 1 800-4NUMEGA (1 800 468-6342)
+1 603 578-8400
Fax: +1 603 578-8401
E-mail: customer_service@numega.com
10-14 Market Street
Technical support:
Kilsyth, Glasgow
www.numega.com/support/support.shtml
G65 0BD
Website: www.numega.com
Scotland
Phone: +1 44 7020 986532
Fax: +1 44 7020 986534 Obsolete products
E-mail: info@nallatech.com
Website: www.nallatech.com • LogiCORE PCI Master V2.0 (Part no: DO-DI-PCIM) is
no longer available for new purchases. Existing
customers with valid maintenance will still receive core
design file updates. Additionally, an upgrade package to
the complete PCI32 Design Kit is available for
customers under valid maintenance agreement.
6925 Canby Ave. #103 Contact Xilinx for price information.
Reseda, CA 91335 USA • LogiCORE PCI Slave V2.0 (Part no: DO-DI-PCIS) is no
Phone: +1 818-342-8294 longer available for new purchases. Existing customers
Fax: +1 818-342-0240 with valid maintenance will still receive core design file
E-mail: info@vcc.com updates.
Website: www.vcc.com
1 Introduction
2 PCI Products
3 FPGA Products
4 Design Methodology
7 Resources
8 Waveforms