Sunteți pe pagina 1din 258

Xilinx PCI Data Book

, 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

Application Service Centers


North America Hotline: +1 408-879-5199 (USA, Xilinx Headquarters)
+1 800-255-7778
Fax: +1 408-879-4442
Email: hotline@xilinx.com

United Kingdom Hotline: (44) 1932-820821


Fax: (44) 1932-828522
Email: ukhelp@xilinx.com

France Hotline: (33) 1-3463-0100


Fax: (33) 1-3463-0959
Email: frhelp@xilinx.com

Germany Hotline: (49) 89-93088-130


Fax: (49) 89-93088-188
Email: dlhelp@xilinx.com

Japan Hotline: (81) 3-3297-9163


Fax: (81) 3-3297-0067
Email: jhotline@xilinx.com

Korea Hotline: (82) 2-761-4277


Fax: (82) 2-761-4278
Email: korea@xilinx.com

Hong Kong Hotline: (85) 2-2424-5200


Fax: (85) 2-2424-7159
Email: hongkong@xilinx.com

2100 Logic Drive


San Jose, CA 95124
United States of America
Telephone: +1 408-559-7778
Fax: +1 408-559-7114
Dear PCI customer,
On behalf of the PCI Team at Xilinx, and our CORE partners, welcome to our March 1999 PCI Data Book, and thank you for
your interest in Xilinx PCI Solutions.
As the inventor and leading provider of Field Programmable Gate Array Technology, we want to pledge our continuing com-
mitment to support your great ideas in logic design and PCI applications.
Since the last version of this databook we have added the Real 64/66 PCITM, the industry's first general-purpose 64-Bit, 66
MHz PCI Solution, and the PCI32 Spartan XL, a single-chip PCI solution at half the cost of standard PCI bridge chips.
Our mission is to provide you with a high-quality PCI solution that offers better flexibility, higher performance, and lower cost
than any other available solution. Xilinx PCI allows you to integrate a PCI interface with your unique logic, into one flexible
programmable device. Since the first PCI product introduction in February 1996, we have developed a complete solution for
PCI including super-fast FPGAs, easy-to-use predictable LogiCORE modules with guaranteed timing, as well as PCI
boards, drivers, and design examples. We believe you will find Xilinx PCI Solution interesting and we hope that you will con-
sider us for future designs.
Together we can bring the great ideas to life!

Sincerely

Per Holmberg

LogiCORE Product Manager


CORE Solutions Group

Section Titles

1 Introduction

2 PCI Products

3 FPGA Products

4 Design Methodology

5 PCI Compliance Checklists

6 Pinout and Configuration

7 Resources

8 Waveforms

9 Ordering Information and License Agreement

10 Sales Offices, Sales Representatives, and Distributors


9
0
0 May, 1999

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

May, 1999 iii


Timing Specification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 11
Verification Methods. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 11
Ping Reference Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 11
Device Utilization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 12
Recommended Design Experience . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 12
PCI32 4000 XLA Interface Version 3.0
Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 13
Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 13
Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 14
General Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 14
Smart-IP Technology - guaranteed timing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 15
Functional Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 15
PCI I/O Interface Block . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 15
Parity Generator/Checker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 15
Target State Machine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 15
Initiator State Machine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 15
PCI Configuration Space . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 15
User Application with Optional Burst FIFOs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 16
Interface Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 16
Supported PCI Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 16
Burst Transfer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 16
Bandwidth. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 17
Timing Specification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 17
Verification Methods. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 18
Ping Reference Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 18
Synthesizable PCI Bridge Design Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 18
Device Utilization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 18
Recommended Design Experience . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 18
PCI32 SpartanXL Interface Version 3.0
Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 19
Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 19
Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 20
General Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 20
Smart-IP Technology - guaranteed timing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 21
Functional Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 21
PCI I/O Interface Block . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 21
Parity Generator/Checker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 21
Target State Machine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 21
Initiator State Machine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 21
PCI Configuration Space . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 21
User Application with Optional Burst FIFOs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 22
Interface Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 22
Supported PCI Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 22
Burst Transfer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 22
Bandwidth. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 23
Timing Specification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 23
Verification Methods. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 23
Ping Reference Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 24
Synthesizable PCI Bridge Design Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 24
Device Utilization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 24
Recommended Design Experience . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 24

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

May, 1999 vii


Test Scenario: 2.3. Target Detection of Address and Data Parity Error for Special Cycle. . . . . . . . 5 - 52
Test Scenario: 2.4. Target Reception of I/O Cycles with Legal and Illegal Byte Enables.. . . . . . . . 5 - 52
Test Scenario: 2.5. Target Ignores Reserved Commands. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 - 52
Test Scenario: 2.6. Target Receives Configuration Cycles. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 - 53
Test Scenario: 2.7. Target Receives I/O Cycles with Address and Data Parity Errors.. . . . . . . . . . 5 - 53
Test Scenario: 2.8. Target Configuration Cycles with Address and Data Parity Errors. . . . . . . . . . 5 - 53
Test Scenario: 2.9. Target Receives Memory Cycles.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 - 53
Test Scenario: 2.10. Target Gets Memory Cycles with Address and Data Parity Errors. . . . . . . . . 5 - 54
Test Scenario: 2.11. Target Gets Fast Back to Back Cycles. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 - 54
Test Scenario: 2.12. Target Performs Exclusive Access Cycles. . . . . . . . . . . . . . . . . . . . . . . . . . . 5 - 54
Test Scenario: 2.13. Target Gets Cycles with IRDY# Used for Data Stepping. . . . . . . . . . . . . . . . 5 - 54
Test Scenario 2.x Explanations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 - 55

Pinout and Configuration


Pinout and Configuration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-1
Layout Considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-1
Compatibility Considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-1
Pinout Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-1
Configuration Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-1
Pinout for the XC4013XLA PQ208 ............................................... 6-2
Pinout for the XC4013XLA PQ240 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-5
Pinout for the XC4028XLA HQ240 ............................................. 6-8
Pinout for the XC4062XLA HQ240 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 - 11
Pinout for the XC4062XLA BG432 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 - 14
Pinout for the XCS20 TQ144 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 - 18
Pinout for the XCS30 PQ208 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 - 20
Pinout for the XCS30 PQ240 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 - 23
Pinout for the XCS40 PQ208 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 - 26
Pinout for the XCS40 PQ240 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 - 29
Pinout for the XCV300 BG432 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 - 32

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

viii May, 1999


Initiator 64-bit Burst Memory Read Multiple. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 - 30
Initiator 64-bit Burst Memory Write . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 - 32
Initiator 64-bit Burst Memory Write with Disconnect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 - 34
Initiator 64-bit Memory Read of a 32-bit Target . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 - 36
Initiator 64-bit Memory Write of a 32-bit Target . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 - 38
Target 64-bit Burst Memory Read Multiple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 - 40
Target 64-bit Burst Memory Write . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 - 42
Target 64-bit Burst Memory Write with Disconnect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 - 44
Target 64-bit Retry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 - 46
Target 64-bit Abort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 - 48

Ordering Information and License Agreement


Xilinx PCI64 Design Kit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-1
Xilinx PCI64 Virtex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-2
Xilinx PCI32 Design Kit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-2
LogiCORE PCI32 Spartan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-2
Support, Updates, and Licensing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-3
Product Upgrades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-3
Additional PCI Products . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-4
Obsolete products . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-4

Sales Offices, Sales Representatives, and Distributors


Headquarters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 - 1
Xilinx Sales Offices. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 - 1
North American Distributors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 - 2
U.S. Sales Representatives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 - 2
International Sales Representatives. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 - 4

May, 1999 ix
x May, 1999
11


Introduction

1 Introduction

2 PCI Products

3 FPGA Products

4 Design Methodology

5 PCI Compliance Checklists

6 Pinout and Configuration

7 Resources

8 Waveforms

9 Ordering Information and License Agreement

10 Sales Offices, Sales Representatives, and Distributors


Introduction
1 0 0

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

Using Xilinx for PCI Real Compliance


We provide the most cost-effective and high-performance Our PCI cores have been used in over 1,000 customer
PCI solution in the market by leveraging the flexibility of Xil- designs. They are fully verified using our industry-proven
inx Field Programmable Gate Arrays (FPGAs). We make testbench that simulates over six million unique PCI cycles.
PCI easy to design by providing a complete solution of We also characterize our PCI cores together with our
proven cores, intuitive development tools, and world-class FPGAs to verify not only maximum timing, but also mini-
technical support. mum and hold timing. Then, when we know that the timing
constraints are met, we apply our unique Smart-IP technol-
Highest-Performance PCI ogy to ensure that you achieve the same timing and func-
When we introduced the Real 64/66 PCI, we were first out tionality every time you implement the core. Thanks to our
with a fully compliant, general-purpose 64-bit 66MHz PCI regular FPGA architecture with segmented routing, and
solution. By using our LogiCORE PCI64 for Virtex, you can because we use a modular core architecture where the
achieve the highest possible PCI performance, 528 MB/s. FIFOs, DMA channels, and your unique back-end logic are
de-coupled from the core, your own design will not affect
Lowest-cost PCI the PCI interface timing.
With our low-cost FPGA family, Spartan and SpartanXL,
you can design your own unique PCI bridge with integrated
FIFOs, DMA, and custom logic, at a cost only half of other
available standard PCI bridge chips.

May, 1999 1-1


Real Flexibility
Our PCI cores are targeted to our standard off-the-shelf
FPGAs, which were designed to be PCI compliant. This
gives you a range of device sizes and packages to choose
from, allowing you to integrate a fully-compliant Initiator/
Target PCI interface, scalable dual-port FIFOs, customiz-
able DMA channels, and 7,000 to 1,000,000 system gates
of your own unique logic, all on a single device, for the low-
est possible cost.
Because the FPGA is programmable, you can adapt to
future needs and changes in the PCI standard by reconfig-
uring the FPGA device on your board.

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.

1-2 May, 1999


*Limited CompactPCI Hot Swap Support. See Xilinx App. Note Implementing CompactPCI and Hot Swap CompactPCI with Xilinx PCI

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.

Xilinx PCI Design Kits


To help you reduce your development time even further, Xil-
inx has teamed with Nallatech LTD and Virtual Computer
Corp., both providing PCI prototyping boards, NuMega
Software providing SW driver development tools, and
Memec Design Services providing PCI expertise and
design services. With our partners, we offer two complete
PCI Design Kits, PCI64-DK for 64-bit 66MHz PCI, and
PCI32-DK for 32-bit 33MHz PCI. The kits include prototyp-
ing boards, reference software drivers for Windows 95/98/
NT, full-featured SW driver development tools, and synthe-
sizable PCI bridge design examples in VHDL and Verilog.

Xilinx PCI64 Design Kit

May, 1999 1-3


PCI over the Internet About this Databook
As a part of our Silicon Xpresso initiative, we provide the The information in this databook is also available on the Xil-
LogiCORE products with all design files you need over the inx web-site, WebLINX at
Internet. You will instantly have access to new versions of www.xilinx.com/pci
the core, new features, new application notes, and refer-
Xilinx will use the web as primary means of delivering and
ence designs. As a Xilinx PCI customer, you select your
updating this information since it is so dynamic by nature.
own unique user name and password to access the core
We strongly recommend that customers consult the web for
product. To help you configure the PCI core we have an
the latest information on new product availability and
intuitive graphical user interface (GUI) where you easily
datasheet revisions.
select the settings and features that you need. The process
is simple:
1. Enter your configuration data into the GUI.
2. Click “Download,” and our Web tool builds your unique
PCI interface with guaranteed timing, which you then
download to your local computer.
The design files include the PCI design netlist, VHDL/Ver-
ilog simulation model and instantiation wrapper, and imple-
mentation constraints files.

1-4 May, 1999


11


PCI Products

1 Introduction

2 PCI Products

3 FPGA Products

4 Design Methodology

5 PCI Compliance Checklists

6 Pinout and Configuration

7 Resources

8 Waveforms

9 Ordering Information and License Agreement

10 Sales Offices, Sales Representatives, and Distributors


PCI Products
2 0 0

PCI64 Virtex Interface


Version 3.0

May, 1999 Advanced Data Sheet

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

May, 1999 2-1


PCI64 Virtex Interface Version 3.0

1. The exact number of CLBs depends on user configuration of the Applications


core and level of resource sharing with adjacent logic. For exam-
ple, a factor that can affect the size of the design are the number • Embedded applications within networking,
and size of the BARs. telecommunication and industrial systems
2. Re-targeting the PCI core to an unlisted device or package will • PCI add-in boards such as graphic cards, video
void the guarantee of timing. See “Smart-IP Technology - guar-
anteed timing” on page 3 for details. adapters, LAN adapters and data acquisition boards
3. Use -6 for 0-66 MHz operation and -5 for 0-33 MHz operation. • Hot Swap CompactPCI boards
4. See Xilinx Web Site for update on tested design tools. • Other applications that need PCI

Features (cont.) General Description


• Supported Target functions (PCI Master and Slave) The LogiCORE™ PCI64 Interfaces are pre-implemented
- Type 0 Configuration Space Header and fully tested modules for the Xilinx Virtex Series FPGAs.
- Up to 3 Base Address Registers (memory or I/O with The pinout for the device and the relative placement of the
adjustable block size from 16 Bytes to 2 GBytes, internal Configurable Logic Blocks (CLBs) are pre-defined.
medium decode speed) Critical paths are controlled by TimeSpecs and guide files
- Parity Generation (PAR), Parity Error Detection to ensure predictable timing. This significantly reduces
(PERR# and SERR#) engineering time required to implement the PCI portion of
- Memory Read, Memory Write, Memory Read your design. Resources can instead be focused on the
Multiple (MRM), Memory Read Line (MRL), Memory unique back-end logic in the FPGA and on the system level
Write Invalidate (MWI) commands design. As a result, LogiCORE™ PCI products can mini-
- I/O Read, I/O Write commands mize your product development time.
- Configuration Read, Configuration Write commands
- 64-bit data transfers and 32-bit data transfers, burst Xilinx Virtex Series FPGAs enable designs of fully PCI-
transfers with linear address ordering compliant systems. The devices meet all required electrical
- Target Abort, Target Retry, Target Disconnect and timing parameters including AC output drive character-
- Full Command/Status Registers istics, input capacitance specifications (10pF), 3 ns setup
• Available for configuration and download on the web and 0 ns hold to system clock, and 6 ns system clock to out-
- Web-based configuration tool put. These devices meet all specifications for both 3.3 V (0-
- Generation of proven design files 66 MHz) and 5 V PCI (0-33 MHz).
- Instant access to new releases The PCI Compliance Checklist has detailed information
about electrical compliance. Other features that enable effi-
cient implementation of a complete PCI system in the Vir-
tex Series includes:

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

Figure 1: LogiCORE™ PCI64 Interface Block Diagram

2-2 May, 1999


• Block SelectRAM+™ memory: Blocks of on-chip ultra- figuration. This includes information for Command, Status,
fast RAM with synchronous write and dual-port RAM and three Base Address Registers (BARs). These BARs
capabilities. Used in PCI Interfaces to implement FIFO illustrate how to implement memory- or I/O-mapped
• Select-RAM™ memory: on-chip ultra-fast RAM with address spaces.
synchronous write option and dual-port RAM option. Table 1: PCI Configuration Space Header
Used in PCI Interfaces to implement FIFO
• Individual output enable for each I/O 31 16 15 0
• Internal 3-state bus capability 00h
Device ID Vendor ID
• 8 global low-skew clock or signal distribution networks
• IEEE 1149.1-compatible boundary scan logic support Status Command 04h
The Master and Slave Interface module is carefully opti- Class Code Rev ID 08h
mized for best possible performance and utilization in the
Virtex FPGA architecture. When implemented in a BIST Header Latency Cache 0Ch
XCV300, 12% of the FPGA’s slices are used. Type Timer Line Size

Base Address Register 0 (BAR0) 10h


Smart-IP Technology - guaranteed
14h
timing Base Address Register 1 (BAR1)

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.

May, 1999 2-3


PCI64 Virtex Interface Version 3.0

PCI I/O Interface Block size and mode)


• Configuration Space Header ROM
The I/O interface block handles the physical connection to • Initiator and target state machine (e.g., termination
the PCI bus including all signaling, input and output syn- conditions, transaction types and request/transaction
chronization, output three-state controls, and all request-
arbitration)
grant handshaking for bus mastering. • Burst functionality
• User Application including FIFO (back-end design)
Parity Generator/Checker
This block generates/checks even parity across the AD Supported PCI Commands
bus, the CBE lines, PAR and the PAR64 signal. It also
Table 2 illustrates the PCI bus commands supported by the
reports data parity errors via PERR- and address parity
LogiCORE™ PCI64 Interface. The PCI Compliance Check-
errors via SERR-.
list has more details on supported and unsupported com-
Target State Machine mands.
Table 2: PCI Bus Commands
This block controls the PCI interface for Target functions.
The states implemented are a subset of equations defined PCI PCI
in “Appendix B” of the PCI Local Bus Specification. The CBE [3:0] Command
Master Slave
controller is a high-performance state machine using
0000 Interrupt Acknowledge No1 Yes
one-hot (state-per-bit) encoding for maximum performance.
0001 Special Cycle No1 Ignore
State-per-bit encoding of the next-state logic functions facil-
itates a high performance implementation in the Xilinx 0010 I/O Read Yes Yes
FPGA architecture. 0011 I/O Write Yes Yes
0100 Reserved Ignore Ignore
Initiator State Machine 0101 Reserved Ignore Ignore
This block controls the PCI interface for Initiator functions. 0110 Memory Read Yes Yes
The states implemented are a subset of equations defined 0111 Memory Write Yes Yes
in “Appendix B” of the PCI Local Bus Specification. The Ini- 1000 Reserved Ignore Ignore
tiator Control Logic also uses state-per-bit encoding for
1001 Reserved Ignore Ignore
maximum performance.
1010 Configuration Read Yes Yes
User Application with Optional Burst FIFOs 1011 Configuration Write Yes Yes
1100 Memory Read Multiple Yes Yes
The LogiCORE PCI64 Interface provides a simple, general-
purpose interface with a 64-bit data path and latched 1101 Dual Address Cycle No1 Ignore
address for de-multiplexing the PCI address/data bus. The 1110 Memory Read Line Yes Yes
general-purpose user interface allows the rest of the device 1111 Memory Write Invalidate No1 Yes
to be used in a wide range of 64-bit and 32-bit applications. Note:
1. The Initiator can present these commands, however, they either
Typically, the user application contains burst FIFOs to require additional user-application logic to support them or have not
increase PCI system performance. An on-chip read/write been thoroughly tested.
FIFO, built from the on-chip synchronous dual-port RAM
(Block SelectRAM+™) available in Virtex Series FPGAs, Burst Transfer
supports data transfers in excess of 66 MHz.
The PCI bus derives its performance from its ability to sup-
Several synthesizable re-usable bridge designs including port burst transfers. The performance of any PCI applica-
commonly used backend functions, such as doorbells and tion depends largely on the size of the burst transfer. A
mailboxes, are provided with the core. FIFO to support PCI burst transfer can efficiently be imple-
mented using the Virtex on-chip RAM features, both Dis-
Interface Configuration tributed and Block SelectRAM+™.
The LogiCORE PCI64 Interface can easily be configured to Each Virtex CLB supports four 16x1 RAM blocks. This
fit unique system requirements by using Xilinx web-based corresponds to 64 bits of single-ported RAM or 32 bits of
PCI configuration tool or by changing the Verilog, VHDL, or dual-ported RAM, with simultaneous read/write capability.
VIEWlogic configuration file. The following customization The Block SelectRAM+ can be used to create deep FIFOs.
options are supported by the LogiCORE product and
described in product documentation. Bandwidth
• Initiator or target functionality (PCI Master only) Xilinx LogiCORE PCI64 Interface supports fully compliant
• Base Address Register configuration (1 - 3 Registers, zero wait-state bust operations for both sourcing and

2-4 May, 1999


receiving data. This Interface supports a sustained band- Table 4: 66 MHz Timing Parameters [ns]
width of up to 528 MBytes/sec. The design can be config-
ured to take advantage of the ability of the LogiCORE LogiCORE
PCI64 Interface to do very long bursts. Since the FIFO is PCI Spec. PCI64
Parameter Ref.
not of fixed size, bursts can go on for as long as the chipset XCV300-064
arbiter will allow. Furthermore, since the FIFOs and DMA Min Max Min Max
are decoupled from the proven core, a designer can modify CLK Cycle Time Tcyc 15 30 151 30
these functions without affecting the critical PCI timing. CLK High Time Thigh 6 6
The flexible Xilinx backend, combined with support for CLK Low Time Tlow 6 6
many different PCI features, gives users a solution that CLK to Bus Sig- TICKOF 2 6 22 6
lends itself to being used in many high-performance appli- nals Valid3
cations. Xilinx is able to support different depths of FIFOs CLK to REQ# and TICKOF 2 6 22 6
as well as dual port FIFOs, synchronous or asynchronous GNT# Valid3
FIFOs and multiple FIFOs. The user is not locked into one Tri-state to Active Ton 2 22
DMA engine, hence, a DMA that fits a specific application
CLK to Tri-state Toff 14 141
can be designed.
Bus Signal Setup TPSD 3 3
The theoretical maximum bandwidth of a 64-bit, 66 MHz to CLK (IOB)
PCI bus is 528 MBytes/sec. Attaining this maximum band-
Bus Signal Setup 5 51
width will depend on several factors, including the PCI
to CLK (CLB)
design used, PCI chipset, the processor’s ability to keep up
GNT# Setup to TPSD 5 5
with your data stream, the maximum capability of your PCI
CLK
design, and other traffic on the PCI bus. Older chipsets and
processors will tend to allow less bandwidth than newer GNT# Setup to TPSD 5 5
ones. CLK (CLB)
Input Hold Time TPHD 0 0
No additional wait-states are inserted in response to a wait-
After CLK (IOB)
state from another agent on the bus. Either IRDY or TRDY
is kept asserted until the current data phase ends, as Input Hold Time 0 02
required by the V2.2 PCI Specification. After CLK (CLB)
RST# to Tri-state Trst-off 40 402
See Table 3 for PCI bus transfer rates for various opera-
Notes:
tions. 1. Controlled by TIMESPECS, included in product
Table 3: LogiCORE PCI64 Transfer Rates 2. Verified by analysis and bench-testing
3. IOB configured for Fast slew rate
4. Virtex Timing will be included when silicon testing is finished.
Zero Wait-State Mode
Operation Transfer Rate
Verification Methods
Initiator Write (PCI ← LogiCORE) 3-1-1-1
Initiator Read (PCI → LogiCORE) 4-1-1-1 Xilinx has developed a system-level testbench that allows
simulation of an open PCI environment in which a Logi-
Target Write (PCI→ LogiCORE) 5-1-1-1
CORE-PCI-based design may be tested by itself or with
Target Read (PCI ← LogiCORE) 6-1-1-1 other simulatable PCI agents. Included in these agents are
***Note: Initiator Read and Target Write operations have effectively a behavioral host and target, and several “plug-in” modules,
the same bandwidth for burst transfer.
including a PCI signal recorder and a PCI protocol monitor.
The Xilinx PCI testbench is a powerful verification tool that
Timing Specification is also used as the basis for verification of the PCI Logi-
The Virtex Series FPGA devices, together with the Logi- CORE. The PCI LogiCORE is also tested in hardware for
CORE PCI64 product enable design of fully compliant PCI electrical, functional, and timing compliance.
systems. The maximum speed at which your back-end is
capable of running can be affected by the size of the design Ping Reference Design
as well as by the loading of the hot signals coming directly The Xilinx “PING64” Application Example, delivered in Ver-
from the PCI bus. Table 4 shows the key timing parameters ilog and VHDL, has been developed to provide an easy-to-
for the LogiCORE PCI64 Interface that must be met for full
understand example which demonstrates many of the prin-
PCI compliance. ciples and techniques required to successfully use a Logi-
CORE PCI64 Interface in a System On A Chip solution.
The PING64 design is also used as a test vehicle when ver-
ifying the PCI core.

May, 1999 2-5


PCI64 Virtex Interface Version 3.0

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

PCI Logic LWE


CONTROL
BUS (non-burst) LRE
LINT_N

TARGET
FORCE_RETRY
CONTROL

Target Burst TFIFO_OUT


BAR 1 Logic TFIFO_IN
CONTROL with TADDR
FIFOs TCONTROL
TARGET STATE

TARGETFIFO

x8950

Figure 1: Block Diagram of Synthesizable Bridge Design for PCI64 LogiCORE Interface, SB07

Device Utilization Recommended Design Experience


The Target/Initiator options require a variable amount of The LogiCORE PCI64 Interface is pre-implemented allow-
CLB resources for the PCI64 Interface. ing engineering focus at the unique back-end functions of a
Utilization of the device can vary slightly, depending on the PCI design. Regardless, PCI is a high-performance system
that is challenging to implement in any technology, ASIC or
configuration choices made by the designer. Factors that
FPGA. Therefore, previous experience with building high-
can affect the size of the core are:
performance, pipelined FPGA designs using Xilinx imple-
• Number of Base Address Registers Used. Turning off mentation software, TIMESPECs, and guide files is recom-
any unused BARs will save resources. mended. The challenge to implement a complete PCI
• Size of the BARs. Setting the BAR to a smaller size design including back-end functions varies depending on
requires more flip-flops. A smaller address space configuration and functionality of your application. Contact
requires more flip-flops to decode. your local Xilinx representative for a closer review and esti-
• Latency timer. Disabling the latency timer will save mation for your specific requirements.
resources. It must be enabled for bursting.

2-6 May, 1999


2 0 0

PCI32 Virtex
Version 3.0

May, 1999 Advanced Data Sheet

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

May, 1999 2-7


PCI32 Virtex Version 3.0

1. The exact number of Slices depends on user configuration of the Applications


core and level of resource sharing with adjacent logic. For
example, a factor that can affect the size of the design are the • Embedded applications within telecommunication,
number and size of the BARs. networking, and industrial systems
2. Re-targeting the PCI core to an unlisted device or package will • PCI add-in boards such as graphic cards, video
void the guarantee of timing. See “Smart-IP Technology - guar-
anteed timing” on page 11. for details. adapters, LAN adapters and data acquisition boards
3. See Xilinx Web Site for updates on tested design tools. • Hot Swap CompactPCI boards
• Other applications that need PCI
Features (cont.)
• Supported Target functions (PCI Master and Slave) General Description
- Type 0 Configuration Space Header The LogiCORE™ PCI32 Master and Slave Interface has
- Up to 3 Base Address Registers (memory or I/O with pre-implemented and fully tested modules for the Xilinx Vir-
adjustable block size from 16 Bytes to 2 GBytes, tex Series FPGAs. The pinout for the device and the rela-
medium decode speed) tive placement of the internal Configurable Logic Blocks
- Parity Generation (PAR), Parity Error Detection (CLBs) are pre-defined. Critical paths are controlled by
(PERR# and SERR#) TimeSpecs and placement to ensure predictable timing.
- Extended Capabilities Registers (backend module) This significantly reduces engineering time required to
- Memory Read, Memory Write, Memory Read implement the PCI portion of your design. Resources can
Multiple (MRM), Memory Read Line (MRL), Memory instead be focused on the unique back-end logic in the
Write Invalidate (MWI) commands FPGA and on the system level design. As a result, Logi-
- I/O Read, I/O Write commands CORE™ PCI products can minimize your product develop-
- Configuration Read, Configuration Write commands ment time.
- Interrupt Acknowledge
Xilinx Virtex Series FPGAs enable designs of fully PCI-
- 32-bit data transfers, burst transfers with linear
compliant systems. The devices meet all required electrical
address ordering
and timing parameters including AC output drive character-
- Target Abort, Target Retry, Target Disconnect
istics, input capacitance specifications (10pF), 3 ns setup
- Full Command/Status Registers
and 0 ns hold to system clock, and 11 ns system clock to
• Available for configuration and download on the web
output. These devices meet all specifications for both 3.3 V
- Web-based configuration tool
and 5 V PCI.
- Generation of proven design files
- Instant access to new releases The PCI Compliance Checklist has detailed information
about electrical compliance. Other features that enable effi-
cient implementation of a complete PCI system in the Vir-
tex Series includes:

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

PCI Configuration Space

TRDY-
DEVSEL-
Target
STOP- State
Machine

LC005

Figure 1: LogiCORE™ PCI32 Interface Block Diagram

2-8 May, 1999


• Block SelectRAM+™ memory: Blocks of on-chip ultra- figuration. This includes information for Command, Status,
fast RAM with synchronous write and dual-port RAM and three Base Address Registers (BARs). These BARs
capabilities. Used in PCI Interfaces to implement FIFO illustrate how to implement memory or I/O mapped address
• Select-RAM™ memory: on-chip ultra-fast RAM with spaces.
synchronous write option and dual-port RAM option. Table 1: PCI Configuration Space Header
Used in PCI Interfaces to implement FIFO
• Individual output enable for each I/O 31 16 15 0
• Internal 3-state bus capability 00h
Device ID Vendor ID
• 4 global low-skew clock or signal distribution networks
• IEEE 1149.1-compatible boundary scan logic support Status Command 04h
The Master and Slave Interface module is carefully opti- Class Code Rev ID 08h
mized for best possible performance and utilization in the
Virtex FPGA architecture. When implemented in a BIST Header Latency Cache 0Ch
XCV300, 12% of the FPGA’s slices are used. Type Timer Line Size

Base Address Register 0 (BAR0) 10h


Smart-IP Technology - guaranteed
14h
timing Base Address Register 1 (BAR1)

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.

May, 1999 2-9


PCI32 Virtex Version 3.0

PCI I/O Interface Block • Base Address Register configuration (1 - 3 Registers,


size and mode)
The I/O interface block handles the physical connection to • Configuration Space Header ROM
the PCI bus including all signaling, input and output syn- • Initiator and target state machine (e.g., termination
chronization, output three-state controls, and all request-
conditions, transaction types and request/transaction
grant handshaking for bus mastering. arbitration)
• Burst functionality
Parity Generator/Checker
• User Application including FIFO (back-end design)
This block generates/checks even parity across the AD
bus, the CBE lines, and the PAR signal. It also reports data Supported PCI Commands
parity errors via PERR- and address parity errors via
Table 2 illustrates the PCI bus commands supported by the
SERR-.
LogiCORE™ PCI32 Interface. The PCI Compliance Check-
Target State Machine list has more details on supported and unsupported com-
mands.
This block controls the PCI interface for Target functions.
Table 2: PCI Bus Commands
The states implemented are a subset of equations defined
in “Appendix B” of the PCI Local Bus Specification. The PCI PCI
controller is a high-performance state machine using CBE [3:0] Command
Master Slave
one-hot (state-per-bit) encoding for maximum perfor- 0000 Interrupt Acknowledge Yes Yes
mance. State-per-bit encoding of the next-state logic func-
0001 Special Cycle Yes Ignore
tions facilitates a high performance implementation in the
Xilinx FPGA architecture. 0010 I/O Read Yes Yes
0011 I/O Write Yes Yes
Initiator State Machine 0100 Reserved No Ignore
This block controls the PCI interface for Initiator functions. 0101 Reserved No Ignore
The states implemented are a subset of equations defined 0110 Memory Read Yes Yes
in “Appendix B” of the PCI Local Bus Specification. The Ini- 0111 Memory Write Yes Yes
tiator Control Logic also uses state-per-bit encoding for 1000 Reserved No Ignore
maximum performance.
1001 Reserved No Ignore
User Application with Optional Burst FIFOs 1010 Configuration Read Yes Yes
1011 Configuration Write Yes Yes
The LogiCORE PCI32 Interface provides a simple, gen-
1100 Memory Read Multiple Yes Yes
eral-purpose interface with a 32-bit data path and latched
address for de-multiplexing the PCI address/data bus. The 1101 Dual Address Cycle No1 Ignore
general-purpose user interface allows the rest of the device 1110 Memory Read Line Yes Yes
to be used in a wide range of 32-bit applications. 1111 Memory Write Invalidate No1 Yes
Typically, the user application contains burst FIFOs to Note:
1. The Initiator can present these commands, however, they either
increase PCI system performance. An on-chip read/write require additional user-application logic to support them or have not
FIFO, built from the on-chip synchronous dual-port RAM been thoroughly tested.
(Block SelectRAM+™) available in Virtex Series FPGAs,
supports data transfers in excess of 66 MHz. Burst Transfer
Several synthesizable re-usable bridge designs including The PCI bus derives its performance from its ability to sup-
commonly used backend functions, such as doorbells and port burst transfers. The performance of any PCI applica-
mailboxes, are provided with the core. tion depends largely on the size of the burst transfer. A
FIFO to support PCI burst transfer can efficiently be imple-
Interface Configuration mented using the Virtex on-chip RAM features, both Dis-
The LogiCORE PCI32 Interface can easily be configured to tributed SelectRAM and Block SelectRAM+™.
fit unique system requirements by using Xilinx web-based Each Virtex CLB supports four 16x1 RAM blocks. This
PCI configuration tool or by changing the Verilog or VHDL corresponds to 64 bits of single-ported RAM or 32 bits of
configuration file. The following customization options are dual-ported RAM, with simultaneous read/write capability.
supported by the LogiCORE product and described in
Each Virtex device has two columns of Block RAM. The
product documentation.
V300 device has 65,536 bits of Block SelectRAM+™ that
• Initiator or target functionality can be used to create deep, dual-ported FIFOs.

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.

Timing Specification Ping Reference Design


The Virtex Series FPGA devices, together with the Logi- The Xilinx “PING” Application Example, delivered in Verilog
CORE PCI32 product enable design of fully compliant PCI and VHDL, has been developed to provide an easy-to-
systems. The maximum speed at which your back-end is understand example which demonstrates many of the prin-
capable of running can be affected by the size of the design ciples and techniques required to successfully use a Logi-
as well as by the loading of the hot signals coming directly CORE PCI32 Interface in a System On A Chip solution.
from the PCI bus. Table 4 shows the key timing parameters The PING design is also used as a test vehicle when veri-

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

PCI Logic LWE


CONTROL
BUS (non-burst) LRE
LINT_N

TARGET
FORCE_RETRY
CONTROL

Target Burst TFIFO_OUT


BAR 1 Logic TFIFO_IN
CONTROL with TADDR
FIFOs TCONTROL
TARGET STATE

TARGETFIFO

x8951

Figure 1: Block Diagram of Synthesizable Bridge Design for PCI32 LogiCORE Interface

Device Utilization Recommended Design Experience


The Target/Initiator options require a variable amount of The LogiCORE PCI32 Interface is pre-implemented allow-
CLB resources for the PCI32 Interface. ing engineering focus at the unique back-end functions of a
PCI design. Regardless, PCI is a high-performance system
Utilization of the device can vary slightly, depending on the
that is challenging to implement in any technology, ASIC or
configuration choices made by the designer. Factors that
FPGA. Therefore, previous experience with building high-
can affect the size of the core are:
performance, pipelined FPGA designs using Xilinx imple-
• Number of Base Address Registers Used. Turning off mentation software, TIMESPECs, and guide files is recom-
any unused BARs will save resources. mended. The challenge to implement a complete PCI
• Size of the BARs. Setting the BAR to a smaller size design including back-end functions varies depending on
requires more flip-flops. A smaller address space configuration and functionality of your application. Contact
requires more flip-flops to decode. your local Xilinx representative for a closer review and esti-
• Latency timer. Disabling the latency timer will save mation for your specific requirements.
resources. It must be enabled for bursting.

2 - 12 May, 1999
2 0 0

PCI32 4000 XLA Interface


Version 3.0

May, 1999 Data Sheet

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

PCI Configuration Space

TRDY-
DEVSEL-
Target
STOP- State
Machine

LC005

Figure 1: LogiCORE™ PCI32 Interface Block Diagram

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

Base Address Register 2 (BAR2) 18h Supported PCI Commands


1Ch Table 2 illustrates the PCI bus commands supported by the
Base Address Register 3 (BAR3)
LogiCORE™ PCI32 4000 XLA Interfaces. The PCI Compli-
Base Address Register 4 (BAR5) 20h ance Checklist, found later in this data book, has more
details on supported and unsupported commands.
Base Address Register 5 (BAR5) 24h
Table 2: PCI Bus Commands
Cardbus CIS Pointer 28h
PCI PCI
Subsystem ID Subsystem Vendor ID 2Ch CBE [3:0] Command
Master Slave
Expansion ROM Base Address 30h 0000 Interrupt Acknowledge Yes Yes
0001 Special Cycle Yes Ignore
Reserved CapPtr 34h
0010 I/O Read Yes Yes
Reserved 38h 0011 I/O Write Yes Yes
3Ch 0100 Reserved Ignore Ignore
Max_Lat Min_Gnt Interrupt Interrupt
Pin Line 0101 Reserved Ignore Ignore
0110 Memory Read Yes Yes
Reserved 40h-FFh
0111 Memory Write Yes Yes
Note: 1000 Reserved Ignore Ignore
Italicized address areas are not implemented in LogiCORE PCI32
4000 XLA Interface default configuration. These locations return 1001 Reserved Ignore Ignore
zero during configuration read accesses. 1010 Configuration Read Yes Yes
1011 Configuration Write Yes Yes
User Application with Optional Burst FIFOs 1100 Memory Read Multiple Yes Yes
The LogiCORE PCI32 4000 XLA Interface is a general-pur- 1101 Dual Address Cycle No1 Ignore
pose interface with a 32-bit data path and latched address 1110 Memory Read Line Yes Yes
for de-multiplexing the PCI address/data bus. The general-
1111 Memory Write Invalidate No1 Yes
purpose user interface allows the rest of the device to be
Note:
used in a wide range of applications. 1. The Initiator can present these commands, however, they either
Typically, the user application contains burst FIFOs to require additional user-application logic to support them or have not
been thoroughly tested.
increase PCI system performance (An Application Note is
available, please see the Xilinx Documents section). An on-
chip read/write FIFO, built from the on-chip synchronous
Burst Transfer
dual-port RAM (SelectRAM™) available in XC4000XLA The PCI bus derives its performance from its ability to
devices, supports data transfers in excess of 33 MHz. support burst transfers. The performance of any PCI
application depends largely on the size of the burst transfer.
Interface Configuration A FIFO to support PCI burst transfer can efficiently be
implemented using the XC4000XLA on-chip RAM feature,
The LogiCORE PCI32 4000 XLA Interfaces can easily be
SelectRAM™. Each XC4000XLA CLB supports two 16x1
configured to fit unique system requirements using Xilinx
RAM blocks. This corresponds to 32 bits of single-ported
web-based graphical configuration tool or changing the
RAM or 16 bits of dual-ported RAM, with simultaneous
VHDL or Verilog configuration file. The following customiza-
read/write capability.

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

Verification Methods Synthesizable PCI Bridge Design


Xilinx has developed a testbench with numerous vectors to Example
test the Xilinx PCI design; this is included with the Logi- Synthesizable PCI bridge design examples, delivered in
CORE PCI32 4000 XLA Interfaces. A version of this test- Verilog and VHDL, are available to demonstrate how to
bench is also used internally by the Xilinx PCI team to verify interface to the LogiCORE PCI32 4000 XLA V3.0 Interfaces
the PCI32 Interfaces. Additionally, the PCI32 Interfaces and provides a modular foundation upon which to base
have been tested in hardware for electrical, functional and other designs. See separate data sheet for details.
timing compliance.
The testbench shipped with the interface verifies the PCI Device Utilization
interface functions according to the test scenarios specified Utilization can vary widely, depending on the configuration
in the PCI Local Bus Specification, V2.1; see Figure 2. This choices made by the designer. Options that can affect the
testbench consists of 28 test scenarios, each designed to size of the core are:
test a specific PCI bus operation. Refer to the checklists
• Number of Base Address Registers Used. Turning off
chapter in this databook for a complete list of scenarios.
any unused BARs will save on resources. The core now
Figure 2: PCI Protocol Testbench includes a switch to force the entire deletion of unused
Base Address Registers.
faketarg pci_lc_i testbnch
• Size of the BARs. Setting the BAR to a smaller size
Target LogiCORE
Initiator requires more flip-flops. A smaller address space
Protocol requires more flip-flops to decode.
Functional PCI
Test User
Mode Interface • Latency timer. Disabling the latency timer will save a
Application
few resources. It must be enabled for bursting.
pcim_tst

Recommended Design Experience


Simple The LogiCORE PCI32 4000 XLA Interfaces are pre-imple-
Arbiter mented allowing engineering focus at the unique back-end
functions of a PCI design. Regardless, PCI is a high-perfor-
fakearb X7951 mance system that is challenging to implement in any tech-
nology, ASIC or FPGA. Therefore, we recommend previous
experience with building high-performance, pipelined
Ping Reference Design FPGA designs using Xilinx implementation software,
The Xilinx LogiCORE PCI “PING” Application Example, TIMESPECs, and guide files. The challenge to implement a
delivered in VHDL and Verilog, has been developed to pro- complete PCI design including back-end functions varies
vide an easy-to-understand example which demonstrates depending on configuration and functionality of your appli-
many of the principles and techniques required to success- cation. Contact your local Xilinx representative for a closer
fully use a LogiCORE PCI32 4000 XLA Interface in a Sys- review and estimation for your specific requirements.
tem On A Chip solution.

2 - 18 May, 1999
2 0 0

PCI32 SpartanXL Interface


Version 3.0

May, 1999 Data Sheet

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

Notes: - Instant access to new releases


1. The exact number of CLBs depends on user configuration of the
core and level of resource sharing with adjacent logic. Factors Applications
that can affect the size of the design are number and size of the
BARs, and use of the latency timer. • PCI add-in boards such as graphic cards, video
2. The XCS20XL device supports up to one BAR. adapters, LAN adapters, and data acquisition boards
3. See Xilinx Web Site for updates on tested design tools.
4. Re-targeting the PCI core to an unlisted device or package will
• Embedded applications within networking,
void the guarantee of timing. See “Smart-IP Technology - guar- telecommunication, and industrial systems
anteed timing” on page 11. for details. • CompactPCI boards
• Other applications that need PCI
Features (cont.)
• Supported Target functions General Description
- Type 0 Configuration Space Header The LogiCORE™ PCI32 SpartanXL Interfaces are pre-
- Up to 2 Base Address Registers (memory or I/O with implemented and fully tested modules for Xilinx SpartanXL
adjustable block size from 16 Bytes to 2 GBytes, FPGAs (see LogiCORE Facts for listing of supported
slow decode speed) devices). The pin-out and the relative placement of the
- Parity Generation (PAR), Parity Error Detection internal Configurable Logic Blocks (CLBs) are pre-defined.
(PERR# and SERR#) Critical paths are controlled by TimeSpecs and guide files
- Extended Capabilities Registers (backend module) to ensure that timing is always met. This significantly
- Memory Read, Memory Write, Memory Read reduces engineering time required to implement the PCI
Multiple (MRM), Memory Real Line (MRL), and portion of your design. Resources can instead be focused
Memory Write & Invalidate (MWI) commands on the unique back-end logic in the FPGA and the system
- I/O Read and I/O Write commands level design. As a result, LogiCORE PCI products can min-
- Configuration Read and Configuration Write imize development time.
commands
Xilinx SpartanXL family FPGAs enables the design of fully
- 32-bit data transfers, burst transfers with linear
PCI compliant systems. These devices meet all specifica-
address ordering
tions for 3.3 V and 5 V PCI and meet all required electrical
- Target Abort, Target Retry, Target Disconnect
and timing parameters including AC output drive character-
- Full Command/Status Register
istics, input capacitance specifications (10pF), 7 ns setup
• Available for configuration and download on the web
and 0 ns hold to system clock, and 11 ns system clock to
- Web-based configuration tool
output.
- Generation of proven design files
PAR
Parity Base Base Command/
PERR- Generator/ Address Address Status
Checker Register Register Register
SERR-
0 1
USER APPLICATION

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.

08h Table 2: PCI Bus Commands


Class Code Rev ID
PCI PCI
BIST Header Latency Cache 0Ch CBE [3:0] Command
Type Timer Line Size Master Slave
0000 Interrupt Acknowledge No1 Ignore
Base Address Register 0 (BAR0) 10h
0001 Special Cycle No1 Ignore
Base Address Register 1 (BAR1) 14h 0010 I/O Read Yes Yes
0011 I/O Write Yes Yes
Base Address Register 2 (BAR2) 18h
0100 Reserved Ignore Ignore
Base Address Register 3 (BAR3) 1Ch 0101 Reserved Ignore Ignore
20h 0110 Memory Read Yes Yes
Base Address Register 4 (BAR5)
0111 Memory Write Yes Yes
Base Address Register 5 (BAR5) 24h
1000 Reserved Ignore Ignore
Cardbus CIS Pointer 28h 1001 Reserved Ignore Ignore
1010 Configuration Read Yes Yes
Subsystem ID Subsystem Vendor ID 2Ch 1011 Configuration Write Yes Yes
Expansion ROM Base Address 30h 1100 Memory Read Multiple Yes Yes
34h 1101 Dual Address Cycle No1 Ignore
Reserved CapPtr
1110 Memory Read Line Yes Yes
Reserved 38h 1111 Memory Write Invalidate No1 Yes
Interrupt 3Ch Note:
Max_Lat Min_Gnt Interrupt 1. The Initiator can present these commands, however, they either
Pin Line require additional user-application logic to support them or have not
40h-FFh been thoroughly tested.
Reserved
Note: Burst Transfer
Italicized address areas are not implemented in the LogiCORE
PCI32 SpartanXL Interface default configuration. These locations The PCI bus derives its performance from its ability to
return zero during configuration read accesses. support burst transfers. The performance of any PCI
application depends largely on the size of the burst transfer.
A FIFO to support PCI burst transfer can efficiently be
Interface Configuration implemented using the SpartanXL on-chip RAM feature,
SelectRAM™. Each SpartanXL CLB supports two 16x1
The LogiCORE PCI32 SpartanXL Interface can easily be
RAM blocks. This corresponds to 32 bits of single-ported
configured to fit unique system requirements using Xilinx
RAM or 16 bits of dual-ported RAM, with simultaneous
web-based PCI Configuration and Download Tool. The fol-
read/write capability.

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:

Initiator • Initiator vs. Target-Only. The Initiator requires about 12


Target LogiCORE
Functional PCI
Protocol CLBs more than the target (not set in the cfg file; set at
Test User
Mode Interface
Application
the time the core is generated).
• Number of Base Address Registers Used. Turning off
pcim_tst any unused BARs will save on resources.
• Size of the BARs. Setting the BAR to a smaller size
requires more flip-flops. A smaller address space
Simple requires more flip-flops to decode.
Arbiter
• Decode Speed. Medium decode requires slightly more
fakearb X7951
logic than slow decode.
• Latency timer. Disabling the latency timer will save a
few resources. It must be enabled for bursting.
Ping Reference Design
The Xilinx LogiCORE PCI “PING” Application Example,
Recommended Design Experience
delivered in VHDL and Verilog, has been developed to pro- The LogiCORE PCI32 Spartan Interface is pre-imple-
vide an easy-to-understand example which demonstrates mented allowing engineering focus at the unique back-end
many of the principles and techniques required to success- functions of a PCI design. Regardless, PCI is a high-perfor-
fully use a LogiCORE PCI32 Spartan Interface in a mance system that is challenging to implement in any tech-
System-on-a-Chip solution. nology, ASIC or FPGA. Therefore, we recommend previous
experience with building high-performance, pipelined
Synthesizable PCI Bridge Design FPGA designs using Xilinx implementation software,
Example TIMESPECs, and guide files. The challenge to implement a
complete PCI design including back-end functions varies
Synthesizable PCI bridge design examples, delivered in
depending on configuration and functionality of your appli-
Verilog and VHDL, are available to demonstrate how to
cation. Contact your local Xilinx representative for details
interface with the LogiCORE PCI32 Spartan Interface and
on your specific design requirements.
provide a modular foundation upon which to base other
designs. See separate data sheet for details.

2 - 24 May, 1999
2 0 0

PCI32 Spartan Master & Slave


Interface

May, 1999 Data Sheet

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

Features (cont.) General Description


• Supported Target functions The LogiCORE™ PCI32 Spartan Master and Slave Inter-
- Type 0 Configuration Space Header faces are pre-implemented and fully tested modules for Xil-
- Up to 2 Base Address Registers (memory or I/O with inx Spartan FPGAs (see LogiCORE Facts for listing of
adjustable block size from 16 bytes to 2 GBytes, supported devices). The pin-out and the relative placement
slow decode speed) of the internal Configurable Logic Blocks (CLBs) are pre-
- Parity Generation (PAR), Parity Error Detection defined. Critical paths are controlled by TimeSpecs and
(PERR# and SERR# guide files to ensure that timing is always met. This signifi-
- ACPI Configuration Registers (backend module) cantly reduces engineering time required to implement the
- Memory Read, Memory Write, Memory Read PCI portion of your design. Resources can instead be
Multiple (MRM), Memory Real Line (MRL), Memory focused on the unique back-end logic in the FPGA and the
Write, Invalidate (MWI) commands system level design. As a result, the LogiCORE PCI prod-
- I/O Read, I/O Write commands ucts can cut your development time by several months.
- Configuration Read, Configuration Write commands
Xilinx Spartan Series FPGAs enables designs of fully PCI
- 32-bit data transfers, burst transfers with linear
compliant systems. The devices meet all required electrical
address ordering
and timing parameters including AC output drive character-
- Target Abort, Target Retry, Target Disconnect
istics, input capacitance specifications (10pF), 7 ns setup
- Full Command/Status Register
and 0 ns hold to system clock, and 11 ns system clock to
• Available for configuration and download on the web
output. These devices meet all specifications for 5 V PCI.
- Web-based configuration
- Generation of proven design files The PCI Compliance Checklists, both device and protocol,
and waveforms for this core, can be found in 1998 Xilinx
Applications PCI Data Book at:
• PCI add-in boards such as graphic cards, video www.xilinx.com/products/logicore/pci/docs/
adapters, LAN adapters and data acquisition boards. pci_databook_5_98.pdf
• Embedded applications within telecommunication and
industrial systems.
• CompactPCI boards,
• Other applications that need PCI

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-

PCI Configuration Space

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

Table 1: PCI Configuration Space Header Table 2: PCI Bus Commands

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

Reserved 38h Supported PCI Commands


Max_Lat Min_Gnt Interrupt Interrupt 3Ch Table 2 illustrates the PCI bus commands supported by the
Pin Line LogiCORE PCI32 Spartan Interface. The compliance
checklist later in this data book have more details on sup-
Reserved 40h-FFh ported and unsupported commands.
Note:
Italicized address areas are not implemented in the LogiCORE Burst Transfer
PCI32 Spartan Interface default configuration. These locations
return zero during configuration read accesses. The PCI bus derives its performance from its ability to
support burst transfers. The performance of any PCI
application depends largely on the size of the burst transfer.
A FIFO to support PCI burst transfer can efficiently be
Interface Configuration implemented using the Spartan on-chip RAM feature,
The LogiCORE PCI32 Spartan Interface can easily be con- SelectRAM™. Each Spartan CLB supports two 16x1 RAM
figured to fit unique system requirements using Xilinx web- blocks. This corresponds to 32 bits of single-ported RAM or
based PCI Configuration and Download Tool. The following 16 bits of dual-ported RAM, with simultaneous read/write
customization is supported by the LogiCORE product and capability.
described in accompanying documentation.
• Initiator and target functionality Bandwidth
• Base Address Register configuration (1 - 2 Registers, The Xilinx PCI32 Spartan Interface supports a sustained
size and mode) bandwidth of up to 132 MBytes/sec. See the Xilinx web for
• Configuration Space Header ROM the supported device/speed grade/wait-states mode com-
• Initiator and target state machine (e.g., termination binations.The design can be configured to take advantage
conditions, transaction types and request/transaction of the ability of the LogiCORE PCI32 Interface to do very
arbitration) long bursts. Since the FIFO isn’t a fixed size, burst can go
• Burst functionality on as long as the chipset arbiter will allow. Furthermore,
• User Application including FIFO (back-end design) since the FIFOs and DMA are decoupled from the proven
core, a designer can modify these functions without effect-
ing the critical PCI timing.

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:

Initiator • Initiator vs. Target-Only. The Initiator requires about 12


Target LogiCORE
Functional PCI
Protocol CLBs more than the target (not set in the cfg file; set at
Test User
Mode Interface
Application
the time the core is generated).
• Number of Base Address Registers Used. Turning off
pcim_tst any unused BARs will save on resources.
• Size of the BARs. Setting the BAR to a smaller size
requires more flip-flops. A smaller address space
Simple requires more flip-flops to decode.
Arbiter
• Decode Speed. Medium decode requires slightly more
fakearb X7951
logic than slow decode.
• Latency timer. Disabling the latency timer will save a
few resources. It must be enabled for bursting.
Ping Reference Design
The Xilinx LogiCORE PCI “PING” Application Example,
Recommended Design Experience
delivered in VHDL and Verilog, has been developed to pro- The LogiCORE PCI32 Spartan Interface is pre-imple-
vide an easy-to-understand example which demonstrates mented allowing engineering focus at the unique back-end
many of the principles and techniques required to success- functions of a PCI design. Regardless, PCI is a high-perfor-
fully use a LogiCORE PCI32 Spartan Interface in a System mance system that is challenging to implement in any tech-
On A Chip solution. nology, ASIC or FPGA. Therefore, we recommend previous
experience with building high-performance, pipelined
Synthesizable PCI Bridge Design FPGA designs using Xilinx implementation software,
Example TIMESPECs, and guide files. The challenge to implement a
complete PCI design including back-end functions varies
Synthesizable PCI bridge design examples, delivered in
depending on configuration and functionality of your appli-
Verilog and VHDL, are available to demonstrate how to
cation. Contact your local Xilinx representative for a closer
interface to the LogiCORE PCI32 Spartan Interface and
review and estimation for your specific requirements.
provides a modular foundation upon which to base other
designs. See separate data sheet for details.

2 - 30 May, 1999
2 0 0

Synthesizable PCI Bridge


Design Examples

May, 1999 Data Sheet

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

PCI Logic LWE


CONTROL
BUS (non-burst) LRE
LINT_N

TARGET
FORCE_RETRY
CONTROL

Target Burst TFIFO_OUT


BAR 1 Logic TFIFO_IN
CONTROL with TADDR
FIFOs TCONTROL
TARGET STATE

TARGETFIFO

X8557

Figure 1: Synthesizable PCI Bridge Block diagram

May, 1999 2 - 31
Synthesizable PCI Bridge Design Examples

Design Example Facts


Features SB01 SB02 SB03 SB07 SB08
Initiator Functions
Separate read and write FIFOs (unidirectional) ✔ ✔ ✔ ✔ ✔
Block data transfer engine (DMA) ✔ ✔ ✔ ✔ ✔
Programmable Burst sizes fixed by transfer counter ✔ ✔ ✔ ✔ ✔
Auto data delivery (handles terminations) ✔ ✔ ✔ ✔ ✔
Discard counter to prevent deadlock ✔ ✔ ✔ ✔ ✔
Initiator address counter ✔ ✔ ✔ ✔ ✔
Target Functions
BAR 0 - Supports single data phase transfers ✔ ✔ ✔
BAR 0 - Region 1 demonstrates doorbells ✔
BAR 0 - Region 2 demonstrates mailboxes ✔
BAR 0 - Region 3 demonstrates long latency accesses ✔
BAR 0 - Region 4 contains control registers for initiator ✔ ✔ ✔
TBD TBD
BAR 1 - Separate read and write FiFOs (unidirectional) ✔
BAR 1 - Delayed completion discard after time-out ✔
BAR 1 - Generates target abort on address wrap ✔
Target address counter ✔ ✔ ✔
Target functions independent of initiator ✔ ✔ ✔
Bus Width
32 Bit ✔ ✔ ✔ ✔
64 Bit ✔
Bus Frequency
33 MHz ✔ ✔ ✔ ✔ ✔
66 MHz ✔
HDL Support
Verilog ✔ ✔ ✔ ✔ ✔
VHDL ✔ ✔ ✔
Supported Families/LogiCORE Product
SpartanXL / PCI32 V3.0 ✔
XLA / PCI32 V2.0 ✔ ✔ ✔
Virtex / PCI32 V3.0 ✔
Virtex / PCI64 V3.0 ✔
Device Features Used
Distributed RAM FIFOs ✔ ✔ ✔
Block RAM FIFOs ✔ ✔
Resource Utilization
CLBs Used1 Up to 990 Up to 530 Up to 530 TBD TBD
These Reference Designs are provided as-is under the Reference Design license agreement. See chapter 9 of the Xilinx PCI Data Book

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

These registers must not be written to while the initiator is


active. To ensure this does not occur, writes to these regis- Table 1: Local Bus Register Interface
ter are disabled while the initiator is active.
Name Direction Function
BAR1 Configuration LWE input Write enable for registers
LRE input Read enable for registers
BAR1 is configured as a 64 kilobyte MEM space which
maps to the target FIFOs. This space supports multiple LADDR input Address input
data phase transfers. Transfers beyond the end of the ad- LDIN input Data input
dress space result in target abort. For all other accesses, LDOUT output Data output
this region will respond according to how it is accessed. LINT_N output Active low local interrupt
Consult the PCI specification regarding delayed transac-
tions. Data transfer between the local side and PCI bus is
Target FIFO Interface
achieved using retries and delayed transactions as needed. The operation of this block is synchronous to the PCI clock.
This block is interfaced to two FIFOs; one is the target read
Posted Writes (TRF) FIFO, and the other is the target write (TWF) FIFO.
The target performs posted writes. On writes to an idle tar- The FIFOs are identical, but data flows in opposite direc-
get, the FIFO accepts incoming data until it is full or the tions. Table 2 lists the signals used in the interface.
write transaction has ended, whichever occurs first. In the
event of a full FIFO, the target issues a disconnect. After the Table 2: Local Bus Target Fifo Interface
PCI transaction is complete, the target empties the FIFO by
Name Direction Function
writing the data out to the local side until the FIFO is empty.
TRF_LD output Data requested or available
To achieve this, the target latches the destination address
TWF_ST output
for use during write out.
TRF_ADDR output Transfer starting address
On writes to a busy target (the FIFO is still busy from the TWF_ADDR output
previous transaction) the target responds with retry, without
TRF_AF, output Transfer almost done flag
putting the request in a retry queue.
TWF_AE
Prefetched Reads TRF_WR, input FIFO write and read enable
TWF_RD
For reads, the target may not anticipate the length of the
transaction or have the data available in time. For this rea- TRF_DIN input Data transfer ports
son, the target puts the transaction in a retry queue and re- TWF_DOUT output
sponds with a retry termination. Then the target prefetches
data to fill the FIFO. When the initiator returns to retry the
Initiator FIFO Interface
transaction, the data will be available. The operation of this block is controlled by the contents of
If the initiator returns to retry the transaction, and does not registers in the register block. This block is interfaced to two
completely empty the FIFO, the FIFO is flushed after the FIFOs, similar to the memory interface block. One is the ini-
transaction is complete. If the initiator does empty the FIFO, tiator read (IRF) FIFO, and the other is the initiator write
and attempts to read more, the target issues a disconnect. (IWF) FIFO.

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.

Recommended Design Experience


The challenge to implement a complete PCI design varies
depending on configuration and functionality of your appli-
cation. We recommend previous experience with building
high-performance, pipelined FPGA designs using the Xilinx
implementation software and familiarity with either VHDL or
Verilog.

Reference Design License


This design is covered under the Xilinx Reference License
Agreement. You can find a copy of this license agreement
in the Xilinx PCI Data Book in chapter 9, and on-line in the
PCI Master and PCI64 Lounges.

May, 1999 2 - 35
Synthesizable PCI Bridge Design Examples

2 - 36 May, 1999
2 01 0

PCI64 PCI Prototyping Board

May, 1999 Advanced Data Sheet

tom systems from a variety of solutions provided by this


royalty free, open module standard.

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

Figure 1: Nallatech PCI64 Prototyping Board

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

The Nallatech PCI64 Prototyping Card is provided with the 1


20 24
0

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

build a universal PCI card. A universal PCI interface


requires the inclusion of diode clamps to the 3.3 V rail for a Figure 2: PCI64 Card Block Diagram
3.3 V signaling environment, and the exclusion of these in a
5 V signaling environment. To accomplish this, the Virtex Configuration
FPGA must load different bitstreams depending on the sig-
The FPGA must be configured in less than 100 mS in order
nalling environment. This card demonstrates one way of
for the PCI interface to be up and running when the PCI bus
achieving this.
is scanned for available devices. In order to achieve this
The Xilinx PCI64 Design Kit provides the user with a com- the Select Map configuration mode is utilized together with
plete PCI design example. This includes an Intel Fast Flash memory. An XC95144 CPLD is used to
• Xilinx 64 bit, 66 Mhz PCI LogiCORE control the booting process.
• Xilinx PCI Bridge interface Core The Flash memory can be erased and reprogrammed with
• Xilinx SDRAM Interface Core new bitstreams using the Xilinx MultiLINX Download Cable.
• An image processing demonstration design including a The CPLD, under the control of either the PCI signalling
Gaussian Noise Generator and 3 x 3 convolvers voltage (Vio) or the MultiLINX cable, if connected, will enter
The sources are available for users that have valid licenses one of several modes:
for the various cores.
Default Mode (no MultiLINX cable connected)
The block diagram, seen in Figure 2, shows the basic inter- • Load 3.3 V PCI bitstream from Flash Memory
connectivity of the various interfaces to the Virtex FPGA. • Load 5 V PCI bitstream from Flash Memory
Two pieces of software demonstrate the performance of Program Mode (MultiLINX cable connected)
the PCI bus and the DSP processing capabilities of the Vir- • Erase 3.3 V PCI bitstream
tex FPGA. • Erase 5 V PCI bitstream
The Virtex FPGA is configured at power on over its Select • Program 3.3 V PCI bitstream
Map interface from an high speed Flash memory. An • Program 5 V PCI bitstream
XC95144 CPLD controls the Flash and the transfer of data • Pass-through mode for direct programming of Virtex

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.

Figure 3: PCI Bridge Design Demo

May, 1999 2 - 39
PCI64 PCI Prototyping Board

Figure 4: GUI for Image Processing Demo

2 - 40 May, 1999
2 0 0

HotPCI Spartan Prototyping Board

May, 1999 Data Sheet

• Xilinx XC95108-10 for reconfiguration management


• 8x128K bytes of fast SRAM organized as
2 Independent Banks of 32-bit RAM (four 8-bit x 128K)
• Configuration Flash 128KB for initial configuration
• Configuration RAM Cache 128KB for reconfiguration
Virtual Computer Corporation • Programmable Clock Generator (360KHz to 100 MHz)
6925 Canby Ave. #103 • Mezzanine Connectors for daughter cards
Reseda, CA 91335 USA • LEDs to indicate configuration finished (DONE), 5 V,
Phone: +1 818-342-8294 and 3.3 V
Fax: +1 818-342-0240 • 3 Split Power Planes & 1 Ground Plane
E-mail: info@vcc.com • 4 Signal Layers
Website: www.vcc.com • Xchecker/Download Cable Module
• PCI Demo bitstream
Introduction • Backend design example files for RAM interface
• PCB design files for the PCI Interface only
To facilitate rapid development of PCI Designs using the
• Reference drivers for Windows 95 and Windows NT
Xilinx LogiCORE PCI32 Interface, VCC has developed the
HotPCI Spartan Prototyping Board. This allows the
designer to quickly develop, modify, and test Xilinx Logi-
Options
CORE PCI32 designs in-system. The HotPCI Board is pro- All options are available directly from VCC. See the Order-
vided with the Xilinx PCI32 Design Kit and should be used ing Information chapter for more details.
in conjunction with the LogiCORE PCI32 Spartan Interface. • Programmable Voltage Control Module (3.3v to 1.8v)
• License for the Configuration Cache Manager
Features • Prototyping Daughter Card
The Spartan HotPCI board comes standard with the follow- • XC40125 Extended Logic Daughter card
ing hardware and features: • XC6264 RPU Daughter Card
• HotPCI Card with a Xilinx XC4062XL FPGA
• 5 V PCI 2.1 Compliance
• Xilinx Spartan XCS40-4, reconfigurable via PCI bus or
Xchecker cable

Figure 1: Spartan HotPCI Spartan Prototyping Board

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

32-Bit Data 32-Bit Data


24-Bit Address User Programmable Logic 24-Bit Address

RAM Bank A: 512KB


Flash: 128KB H.O.T. II - HOS* RAM Bank B: 512KB
Cache: 128KB
Xilinx LogiCore PCI Interface (opt.) Bank A: 2MB
(opt.) Flash: 2MB
(opt.) Bank B : 2MB
(opt.) Cache: 512KB
XCS40 __________
To HOST via PCI Bus * HOS -VCC’s Hardware
Operating System Interface

Figure 2: Spartan HotPCI Block Diagram

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.

Software Configuration with the CCM


The HotPCI Spartan Prototyping Board is supplied with At power-on the FPGA is set to slave serial mode; then the
drivers made by Vireo Software, Inc. The Xilinx PCI32 CCM obtains the configuration data from flash and loads
Design Kit also includes driver development tools from the FPGA. Through the PCI bus, the user can load a new

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

DriverWorks Windows Device Driver


Development Kit Version 2.0

May, 1999 Data Sheet

- Plug and Play handling


• Support for MSVC++ 4.2 and later
• C++ Class Library for NT/WDM driver development
• Full library source code is included
• Dozens of sample drivers, with full source code
• Full Plug and Play support
• Driver Access Architecture (DAA) supports portability
Compuware NuMega between Windows NT, Windows 95, Windows 98, and
9 Townsend West Win32 Driver Model (WDM)
Nashua, NH 03063 • DriverMonitor - monitor driver activity without a
Phone: 1 800-4NUMEGA (1 800 468-6342) debugger.
+1 603 578-8400 • Ready-to-use examples tested on real-world hardware
Fax: +1 603 578-8401 • Full technical support through Vireo
E-mail: customer_service@numega.com • RISC platform support
Technical support: • More than 700 pages of printed and online
www.numega.com/support/support.shtml documentation
Website: www.numega.com
Description
Introduction DriverWorks is a next-generation environment for device
To facilitate rapid development of PCI Designs using the driver development based on a powerful and flexible C++
Xilinx LogiCORE PCI32 Interface, Vireo is providing the class library coupled with a powerful code generation wiz-
DriverWorks Windows Device Driver Development Kit. This ard.
kit includes an interactive GUI Wizard that runs in conjunc- Over time, Windows application development has evolved
tion with the Microsoft Visual C++ 4.2 and later. Provided at to class libraries such as MFC and development tools such
no extra cost with the Xilinx PCI Design Kit, is a full-featured Microsoft’s Application Wizard. Vireo provides a similar en-
version of DriverWorks licensed for prototyping fully func- vironment for Windows NT and WDM device driver devel-
tional drivers and testing them with the HotPCI board. An opment.
unrestricted license is available directly from Vireo.

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

you through a series of steps that identify many character-


istics of your device. DriverWizard then generates source
code tailored to your driver. The DriverWorks class library,
framework, and Wizard provide access to tens of thou-
sands of lines of working, debugged code that will allow you
to develop your device drivers quickly.
DriverWorks implements Vireo's Device Access Architec-
ture (DAA) interfaces. Using DAA, device driver source
code can be easily ported between Windows 95, Windows
98, and all versions of Windows NT. Drivers written with
DAA provide optimal performance on each platform while at
the same time offering a common set of objects and inter-
faces that provide source code portability with no limitations
or overhead.
DriverWorks requires Microsoft Visual C++ version 4.2 or
later, and the Microsoft NT DDK, or the Windows 98 DDK.
DriverWorks drivers have been tested on both Alpha and
Intel single and dual processor platforms.
Figure 2: DriverWizard GUI (earlier version shown)
DriverWorks incorporates years of class-library design ex-
The DriverWorks class library offers thousands of lines of
perience into a clean, object-oriented system that accurate-
tested code that reduce many complex tasks to simple li-
ly reflects the underlying system architecture while avoiding
brary calls. In fact, DriverWorks offers by far the most com-
the use of arcane C++ language features.
plete device driver library available.
The DriverMonitor tool, shown in Figure 3, provides a
DriverWorks also ships with complete examples that are
unique workbench for loading, testing, tracing, and unload-
designed to be used as a basis for further development.
ing your device driver.
DriverWorks also includes Vireo’s unique DriverWizard
technology, shown in Figures 1 & 2. DriverWizard guides

Figure 3: DriverMonitor Interface

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

VtoolsD Windows Device Driver


Development Kit Version 3.0

May, 1999 Data Sheet

• Includes complete source code for all libraries


• Thunks and wraps for every VMM/ VxD service and
handler
• Microsoft DDK components bundled with VtoolsD for
Windows 95
• Debug kernel executables and symbol tables
• WDEB386 system-level debugger for VxDs
Compuware NuMega • More than 1900 online help topic pages
9 Townsend West • DDK documentation and help files
Nashua, NH 03063 • Supports Driver Access Architecture (DAA)
Phone: 1 800-4NUMEGA (1 800 468-6342) • QuickVxD Wizard for quick device driver framework
+1 603 578-8400 development.
Fax: +1 603 578-8401 • Driver Access Architecture (DAA) supports portability
E-mail: customer_service@numega.com between Windows NT, Windows 95, Windows 98, and
Technical support: Win32 Driver Model (WDM)
www.numega.com/support/support.shtml • Complete access to over 900 interfaces from C/C++
Website: www.numega.com • More than 60 classes designed for VxD operation
• More than 80 ANSI-compatible C Run Time Library
Introduction functions
To facilitate rapid development of PCI Designs using the • DriverMonitor - monitor driver activity without a
Xilinx LogiCORE PCI Interface, Vireo is providing the debugger.
VtoolsD Windows Device Driver Development Kit. This kit • QuickVxD source code generator - a VxD Wizard
includes an interactive GUI Wizard that allows the creation • Microsoft and Borland compiler support
of a drive driver framework with a few simple selection and • Dynamic VxD Loader
mouse clicks. Both the Microsoft Visual C++ 4.2 and later • VxD Viewer
and the Borland C++ 4.x and later compilers are supported.
Provided at no extra cost with the Xilinx PCI Design Kit, is
a full-featured, fully functional version of VtoolsD licensed
for prototyping drivers and testing them with the HotPCI
board.
Support
Support for VtoolsD is provided only from Vireo. See Vireo’s
home page for contact information and other details.
Features
• Windows 95, 98, 3.X Support
• VtoolsD Interface
• Works with MS or Borland C/C++ compilers
• More than 50 sample drivers
- Over 2 dozen example drivers written in C
- Over 1 dozen example drivers written in C++
• Detailed on-line and printed documentation
• C and C++ system interfaces  QuickVxD GUI
Figure 1: VtoolsD
• C Run Time Library
• C++ Class Library

May, 1999 2 - 49
VtoolsD Windows Device Driver Development Kit Version 3.0

Description The DriverMonitor tool, shown in Figure 2, provides a


unique workbench for loading, testing, tracing, and unload-
VtoolsD is the easiest and fastest way to build Virtual De- ing your device driver.
vice Drivers (VxDs) for Microsoft Windows. Designed for
both novice and experienced VxD developers, VtoolsD pro- VtoolsD requires either MSVC++ 4.2 or later or the Borland
vides the comprehensive C or C++ solution for all VxD de- C++ 4.X and later compilers. The Microsoft DDK is not re-
velopment challenges. Shipping since July 1994, VtoolsD is quired to use VtoolsD.
a mature, professional product used by thousands of devel-
opers world wide. Licensing
VtoolsD supports all of the system interfaces that the Mi- The version of VtoolsD, included in the Xilinx PCI Design
crosoft DDK provides, plus an additional set of services pro- Kit, is fully functional and includes all libraries and software.
vided by the VtoolsD libraries. VtoolsD can be used to write It is licensed for use in driver development and prototyping
any kind of VxD, and makes that easier than it would be us- only. Vireo offers Xilinx PCI customers the opportunity to
ing the DDK. purchase a royalty-free distribution license. Contact Vireo
for pricing and details.
DriverWorks implements Vireo's Device Access Architec-
ture (DAA) interfaces. Using DAA, device driver source Vireo provides free bug fixes available for immediate down-
code can be easily ported between Windows 95, Windows load. Timely new versions provide support for a new com-
98, and all versions of Windows NT. Drivers written with piler versions, and operating system revisions. Vireo also
DAA provide optimal performance on each platform while at provides new examples and bug fixes on a regular basis.
the same time offering a common set of objects and inter- Technical support on this product is available only through
faces that provide source code portability with no limitations Vireo Software Inc.
or overhead.

Figure 2: DriverMonitor Interface

2 - 50 May, 1999
8
0
0 May, 1999

Synthesizable PCI Power


Management Design Example

May, 1999 (Version 1.0) Data Sheet

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

May, 1999 (Version 1.0) 2 - 51


Synthesizable PCI Power Management Design Example

General Description to 0xFF. This register bank is compliant to the capabilities


linked list structure defined by both the PCI spec and the
This design implements an add-on PCI power manage- Power Management spec. Since Vaux pin is not supported
ment module in Xilinx FPGA and is intended for use with in this reference design, PME# event from D3cold is not sup-
the LogiCORE PCI Interface V2.0 or V3.0. The power man- ported.
agement module interfaces with the LogiCORE PCI32
interface and the backend application design (ping applica- This design does not define any Device-Class Power Man-
tion in this case). It is also compatible with Xilinx’s synthe- agement policy, which falls outside the scope of the Power
sizable PCI bridge design examples. Management spec.

This design contains banks of user-defined registers to


implement the PCI configuration space from address 0x40

Figure 3: Synthesizable PCI Power Management Block Diagram

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.

Bits Read/Write Description


15 Read/Write-Clear PME_Status
14:13 Read Only Data_Scale
12:9 Read/Write Data_Select
8 Read/Write PME_En
7:2 Read Only Reserved
Figure 4: Capabilities Linked List 1:0 Read/Write PowerState
This design only implements the Power Management capa-
bilities linked list register.
PMCSR_BSE
Power Management Register Block
This is an 8-bit read-only register implement in this design
Figure 3 illustrates the PCI Power Management Register to support PCI bridge functionality in PCI-to-PCI bridges.
Block definition. The first 2 bytes (Capabilities ID [offset = 0] The value is set to C0h in the HDL code. System designer
and Next Item Pointer [offset = 1]) are used for the linked list can modify PMCSR_BSE[7:6] for the specific bridge sup-
infrastructure. The next 4 bytes (PMC [offset = 2], and port or remove this register from the HDL code if the PCI
PMCSR registers [offset = 4]) are required for compliance function is not a PCI-to-PCI bridge.
with the Power Management spec. The next byte (bridge
support PMCSR_BSE extensions [offset = 6]) is required
only for bridge functions, and the remaining byte Data reg- Bits Description
ister [offset = 8] is optional for any class of function.
7 BPCC_En (Bus Powered/Clock Control Enable)
6 B2_B3# (B2/B3 support for D3hot)
5:0 Reserved

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)

Writing to a read-only register or unimplemented address in The pcim_top/pcis_top file


the upper configuration space will be ignored but the trans-
• Add PME_N and WAKEUP_N ports
action will be completed gracefully. Reading unimple-
• Instantiate of the power_man module
mented address in the upper configuration space will return
• Reconnect the C_READY and C_TERM ports (refer to
zeros.
Figure 1). Signals from backend design which used to
PME Generation drive C_READY & C_TERM will connect to power_man
and power_man will drive C_READY & C_TERM in the
This optional PME# is an asynchronous signal. Two pins PCI32 interface
(PME_N and WAKEUP_N) are added to implement this cir- • Instantiate IBUF and OBUF for WAKEUP_N and
cuit. When the PCI function is programmed into a lower PME_N respectively for the Express flows
power consumption state, it can request a change in its cur-
Users can enable the Power Management capabilities
rent power management state and/or to indicate that a
linked list in their own designs during web download or by
PME (power management event) has occurred. The PME
editing the cfg file under the src/xpci directory. Then
in this design is the WAKEUP_N signal assertion by the
testbench. include the power_man module and modify the
pcim_top/pcis_top file.
Once PME# is asserted, this design will continue to drive
the signal low until software explicitly clears the PME_En bit Web download
or clears the PME_Status bit. Since 3.3Vaux pin is not sup-
• Enable the Cap List Enable box (note that the User
port in this design, PME# cannot be asserted from D3cold

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

5 PCI Compliance Checklists

6 Pinout and Configuration

7 Resources

8 Waveforms

9 Ordering Information and License Agreement

10 Sales Offices, Sales Representatives, and Distributors


FPGA Products
0

LogiCORE PCI Supported


Virtex FPGAs

May, 1999 0 3 Product Overview

Features • Supported by FPGA Foundation™ and Alliance


Development Systems
• Fast, high-density Field-Programmable Gate Arrays - Complete support for Unified Libraries, Relationally
- Densities from 50k to 1M system gates Placed Macros, and Design Manager
- System performance up to 200 MHz - Wide selection of PC and workstation platforms
- 66-MHz PCI Compliant • SRAM-based in-system configuration
- Hot-swappable for Compact PCI - Unlimited reprogrammability
• Multi-standard SelectIO™ interfaces - Four programming modes
- 16 high-performance interface standards • 0.22-µm five-layer metal process
- Connects directly to ZBTRAM devices • 100% factory tested
• Built-in clock-management circuitry
- Four dedicated delay-locked loops (DLLs) for Description
advanced clock control
- Four primary low-skew global clock distribution nets, The Virtex FPGA family delivers high-performance, high-
plus 24 secondary global nets capacity programmable logic solutions. Dramatic increases
• Hierarchical memory system in silicon efficiency result from optimizing the new architec-
- LUTs configurable as 16-bit RAM, 32-bit RAM, 16-bit ture for place-and-route efficiency and exploiting an
dual-ported RAM, or 16-bit Shift Register aggressive 5-layer-metal 0.22-µm CMOS process. These
- Configurable synchronous dual-ported 4k-bit RAMs advances make Virtex FPGAs powerful and flexible alter-
- Fast interfaces to external high-performance RAMs natives to mask-programmed gate arrays. The Virtex family
• Flexible architecture that balances speed and density comprises the nine members shown in Table 1.
- Dedicated carry logic for high-speed arithmetic Building on experience gained from previous generations
- Dedicated multiplier support of FPGAs, the Virtex family represents a revolutionary step
- Cascade chain for wide-input functions forward in programmable logic design. Combining a wide
- Abundant registers/latches with clock enable, and variety of programmable system features, a rich hierarchy
dual synchronous/asynchronous set and reset of fast, flexible interconnect resources, and advanced pro-
- Internal 3-state bussing cess technology, the Virtex family delivers a high-speed
- IEEE 1149.1 boundary-scan logic and high-capacity programmable logic solution that
- Die-temperature sensing device enhances design flexibility while reducing time-to-market.
Table 1: Virtex Field-Programmable Gate Array Family Members.

System Maximum Max Select


Device CLB Array Logic Cells BlockRAM Bits
Gates Available I/O RAM Bits
XCV50 57,906 16x24 1,728 180 32,768 24,576
XCV100 108,904 20x30 2,700 180 40,960 38,400
XCV150 164,674 24x36 3,888 260 49,152 55,296
XCV200 236,666 28x42 5,292 284 57,344 75,264
XCV3001 322,970 32x48 6,912 316 65,536 98,304
XCV400 468,252 40x60 10,800 404 81,920 153,600
XCV600 661,111 48x72 15,552 500 98,304 221,184
XCV800 888,439 56x84 21,168 514 114,688 301,056
XCV10002 1,124,022 64x96 27,648 514 131,072 393,216
1. Verified by Xilinx for PCI64/66, PCI64/33, and PCI32/33
2. Verified by Xilinx for PCI64/66 and PCI64/33
See the Xilinx PCI Retargeting Guide for 33 MHz PCI support of other devices listed here.

For the complete Virtex Product Specification, see www.xilinx.com

May, 1999 3-1


LogiCORE PCI Supported Virtex FPGAs

3-2 May, 1999


0

LogiCORE PCI32 Supported


Spartan and SpartanXL FPGAs

May, 1999 0 33 Product Overview

Introduction - System performance beyond 80 MHz


TM
- Broad set of AllianceCOREΤΜ and LogiCOREΤΜ
The Spartan Series is the first high-volume production pre-defined solutions available
FPGA solution to deliver all the key requirements for ASIC - Unlimited reprogrammability
replacement up to 40,000 gates. These requirements - Low cost
include high performance, on-chip RAM, Core Solutions • System level features
and prices that, in high volume, approach, and in many - Fully 3.3 V and 5 V PCI compliant
cases are equivalent to mask programmed ASIC devices. - Available in both 5.0 Volt and 3.3 Volt versions
The Xilinx Spartan series is the result of more than thirteen - On-chip SelectRAMTM memory
years of FPGA design experience and feedback from thou- - Low power segmented routing architecture
sands of customers. By streamlining the Spartan feature - Full readback capability for program verification and
set, leveraging advanced hybrid process technologies and internal node observability
focusing on total cost management, the Spartan series - Dedicated high-speed carry logic
delivers the key features required by ASIC and other high - Internal 3-state bus capability
volume logic users while avoiding the initial cost, long - 8 global low-skew clock or signal distribution
development cycles, and inherent risk of conventional networks
ASICs. The Spartan Series currently has 10 members; only - IEEE 1149.1-compatible boundary scan logic
the devices supported by PCI are shown in Figure 1. • Versatile I/O and packaging
- Low cost plastic packages available in all densities
Spartan Series Features - Footprint compatibility in common packages
- Individually programmable output slew-rate control
Note: The Spartan Series devices described in this product
maximizes performance and reduces noise
overview include the 5V SpartanTM family of devices and
- Zero input register hold time simplifies system timing
the 3.3V SpartanXLTM family of devices.
• Fully supported by powerful Xilinx development system
• Next generation ASIC replacement technology - Foundation series: Fully integrated, shrink-wrap
- First ASIC replacement FPGA for high-volume software
production with on-chip RAM - Alliance series: Over 100 PC and engineering
- Advanced process technology workstation third-party development systems
- Density up to 1862 logic cells or 40,000 system supported
gates - Fully automatic mapping, placement, and routing
- Streamlined feature set based on XC4000 - Interactive design editor for design optimization
architecture
Table 1: LogiCORE PCI32 supported Spartan and SpartanXL Series Field Programmable Gate Arrays

Max Typical Number


Logic System Gate Range CLB Total of Max.
Device Cells Gates (Logic and RAM)* Matrix CLBs Flip-Flops User I/O
XCS20XL 950 20,000 7,000 - 20,000 20 x 20 400 1,120 160
XCS30 & XCS30XL 1368 30,000 10,000 - 30,000 24 x 24 576 1,536 192
XCS40 & XCS40XL 1862 40,000 13,000 - 40,000 28 x 28 784 2,016 224
* Max values of Typical Gate Range include 20-30% of CLBs used as RAM.

For the complete Spartan and SpartanXL Product Specification, see www.xilinx.com

May, 1999 3-3


LogiCORE PCI32 Supported Spartan and SpartanXL FPGAs

Additional SpartanXL Features Universal PCI Interfaces


• 3.3V supply for low power with 5V tolerant I/Os A Universal PCI Interface is one capable of being plugged
• Power down input into both a 3.3 V and 5 V PCI bus. Implementing a universal
• Higher performance PCI interface in SpartanXL devices requires loading of dif-
• Faster carry logic ferent bitstreams to change I/O characteristics. For 3.3 V
• More flexible high-speed clock network PCI electrical compliance, the 5 V drive strength must be
• Universal PCI Interface capability in SpartanXL turned off and the 3.3 V clamp diodes enabled. These
• Latch capability in Configurable Logic Blocks changes are done in the bitstream. See the SpartanXL
• Input fast capture latch Implementation Guide for details on generating these bit-
• Optional mux or 2-input function generator on outputs streams. It is the designer’s responsibility to monitor Vio
• 12 mA or 24 mA output drive and load the appropriate bitstream depending on Vio.
• 5V/3.3V PCI compliant
When the 3.3 V PCI clamp diodes are enabled, the Spar-
• Enhanced Boundary Scan tanXL device loses 5 V tolerance. This is due to the 3.3 V
• Express Mode configuration clamp diode being tied to the 3.3 V supply in the device.
The designer must insure that a full 5 V is not applied when
these clamp diodes are enabled.

3-4 May, 1999


4


Design Methodology

1 Introduction

2 PCI Products

3 FPGA Products

4 Design Methodology

5 PCI Compliance Checklists

6 Pinout and Configuration

7 Resources

8 Waveforms

9 Ordering Information and License Agreement

10 Sales Offices, Sales Representatives, and Distributors


Design Methodology
4
0
0 May, 1999

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

CORE Configuration Design Entry Design Verification

Symbol User Design Functional


Sim.Model HDL or Schematic Simulation

Synthesis
User design only
CORE Design Timing
zip or tar
Netlist Simulation
CORE
Download
Netlist Place &
Netlist
Constraints Route

Design
Implementation

Figure 1: PCI32 Interface Design and Simulation Methodology

May, 1999 4-1


Design Methodology

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.

Core Configuration in VHDL and Verilog Cap List Enable


The Cap List Enable Checkbox allows the user to enable
Since the core is a blackbox instantiation, the configuration
the Capabilities List Pointer located at address 34h in con-
file applies the user’s configuration information to the simu-
figuration space. This pointer provides an offset into user
lation model and implementation netlist. If using an VHDL
configuration space for the location of the first item in a
or Verilog synthesis tool, two configuration options are
capabilities list. Enabling this feature also sets the capabili-
available. The LogiCORE PCI interface can be configured
ties bit in the Status register and enables User Configura-
and downloaded from the web or the user can simply edit
tion Space.
the configuration file. To modify the design for either imple-
mentation or simulation in Verilog, edit the cfg.v file. If using
INTA# Enable
VHDL, edit the cfg.vhd file included with the design files.
This file supplies the configuration information to both the The INTA# Enable Checkbox enables the Interrupt Pin field
implementation black box, which is instantiated in your and the Interrupt Line register. If the user chooses to
design, and the functional simulation model. The Logi- enable this feature, these allow the device driver and oper-
CORE PCI Design Guide has more details on the contents ating system to recognize that the device is connected to
of the cfg file and how to edit this file. the INTA# interrupt pin.

Selectable Options User Config Space


The User Config Space Checkbox enables the user to
Enable 66 MHz (Virtex PCI64 only) define and control configuration space addresses 40h
The Enable 66 MHz Checkbox allows the user to set the through FCh. This checkbox is also selected when the Cap
value of the 66 MHz capable bit in the Status register. This List Enable checkbox is checked because the Capabilities
option should be checked for all 66 MHz designs. List must reside in the 40h - FCh address range of configu-
ration space. However, the user may enable this option by
Latency Timer itself in order to allocate space for internal configuration
The Latency Timer Checkbox allows the user to enable or registers. The responsibility for managing data transfer to
disable the Latency Timer and its associated register in and from this space belongs to the user once the this fea-
ture is enabled. The LogiCORE PCI Design Guide contains
configuration space. If the latency timer register is enabled,
the PCI bus host will write a value to this register at system examples of interfacing to user configuration space.
initialization. The value written to this register determines
the minimum number of clocks guaranteed to the initiator
Core Features
during bus transactions. See the LogiCORE PCI Design
Base Address Registers
Guide for more information.
The LogiCORE interface supports up to three BARs. The
Base Address Register Enable user is free to use any combination of BAR desired. Use of
BAR 0 is recommend since some PCs will not recognize a
The Base Address Register Enable Checkboxes allow the
interface that doesn’t have a BAR 0. The user may enable
user to enable or disable any of the three base address reg-
or disable the BAR settings using the configuration tool on
isters. The user should enable at least one base address
the web or by editing the cfg file. Each BAR has several
register. Each enabled base address register may then be
attributes that can be changed. Refer to the LogiCORE PCI
configured by the user to allocate memory space or I/O
space. Design Guide for more details.

External Subsystem
The External Subsystem Checkbox allows the user to dis-
able the Subsystem ID and Subsystem Vendor ID fields.

4-2 May, 1999


Figure 2: PCI Configuration and Download GUI (Demo available at www.xilinx.com/pci)

May, 1999 4-3


Design Methodology

4-4 May, 1999


11


PCI Compliance Checklists

1 Introduction

2 PCI Products

3 FPGA Products

4 Design Methodology

5 PCI Compliance Checklists

6 Pinout and Configuration

7 Resources

8 Waveforms

9 Ordering Information and License Agreement

10 Sales Offices, Sales Representatives, and Distributors


PCI Compliance Checklists
5 0 0

Virtex
PCI Compliance Checklist

May, 1999 Data Sheet

Component Product Information


Date May, 1999
Vendor Name Xilinx, Inc.
Vendor Street Address 2100 Logic Drive
Vendor City, State, Zip San Jose, CA 95124
U.S.A
Vendor Phone Number +1 408-559-7778
Vendor Contact, Title Per Holmberg
LogiCORE Marketing Manager
Product Name Virtex
Product Model Number XCVxxx
Product Revision Level

Component Electrical Checklist

This checklist applies to the following Component/Manufacturer: Virtex/ Xilinx, Inc.


All items were verified over the following range of junction temperatures: ____min ____max
OR
All items were verified over the following range of CASE temperatures: - 5 o C min 85 o C max

May, 1999 5-1


Virtex PCI Compliance Checklist

5 V Signaling

Type Description Yes or N/A


CE1. Component supports 5V signaling environment? yes ✓
na
if “na”, skip to section “3.3V Signaling” below.
CE2. Component operates over voltage range 5V +/- 5%? na
yes ✓
no
“na” allowed for components that support 5V signaling, but draw power from a
supply other than Vcc 5V.
CE3. Voltages between 2.0V and Vcc+0.5V are recognized as logic high? yes ✓
no___
CE4. Voltages between -0.5V and 0.8V are recognized as logic low? yes ✓
no___
CE5. All inputs sink less than 70uA when pulled to 2.7V DC? yes ✓
no___
CE6. All inputs source less than 70uA when pulled to 0.5V DC? yes ✓
no___
CE7. All outputs drive to 2.4V (min) in the high state while sourcing 2mA? yes ✓
no___
CE8. All outputs drive to 0.55V (max) in the low state, sinking 3 or 6*mA? yes ✓
no___
CE9. Outputs source at least 44mA at 1.4V in the high state? yes ✓
proven at: 3.0 Vcc= min, ___process=worst/slow, ___ junction temp= 85 o C(max) no___
by: ___ SPICE simulation, ✓ device characterization, ___ other:
NOTE: applies to all outputs except REQ#, GNT#, CLK, and RST#
CE10. Outputs source no more than 142mA at 3.1V in the high state? yes ✓
proven at: 3.6 Vcc=max, ___ process=best/fast, ___ junction temp= -5o C(min) no___
by: ___ SPICE simulation, ✓ device characterization, ___ other:____________
NOTE: applies to all outputs except REQ#, GNT#, CLK, and RST#
CE11. Outputs sink at least 95mA at 2.2V in the low state? yes ✓
proven at: 3.6 Vcc=max, process=worst/slow, junctiontemp= 85 o C(max) no___
by: ___ SPICE simulation, ✓ device characterization, ___ other:
NOTE: applies to all outputs except REQ#, GNT#, CLK, and RST#
CE12. Outputs sink no more than 206mA at 0.71V in the low state? yes ✓
proven at: 3.6 Vcc=max, ___ process=best/fast, ___ junction temp= -5 o C(min) no___
by: ___ SPICE simulation, ___ device characterization, ___ other:
NOTE: applies to all outputs except REQ#, GNT#, CLK, and RST#

5-2 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= 85 o C no___
(max) by: ___ SPICE simulation,✓ device characterization, ___ other:
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=85 o C (max) yes ✓
by: ___ SPICE simulation, ✓ device characterization, ___ other:____________ no___
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: 2 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.5 V/nS (measured at pin) no___

May, 1999 5-3


Virtex PCI Compliance Checklist

3.3 V Signaling

Type Description Pass/NA


CE18. Component supports 3.3V signaling environment? yes ✓
na___
if “na”, skip to section “Loading and Device Protection” below.
CE19. Component operates over voltage range 3.3V +/- 0.3V? yes ✓
no___
CE20. Voltages between 0. 5Vcc and Vcc+0.5V are recognized as logic high? yes ✓
no___
CE21. Voltages between -0.5V and 0.3Vcc are recognized as logic low? yes ✓
no___
CE22. All inputs sink/source less than 10 uA at any voltage from 0V to Vcc? yes ✓
no___
CE23. All outputs drive to 0.9Vcc (min) in the high state while sourcing 500uA? yes ✓
no___
CE24. All outputs drive to 0.1Vcc (max) in the low state, sinking 1500uA? yes ✓
no___
CE25. Outputs source at least 36mA at 0.9V in the high state? yes ✓
proven at: ✓ Vcc=3.0V, ___ process=worst/slow, ✓ junction temp= 75 o C (max) no___
by: ___ SPICE simulation, ✓ device characterization, other: ________________
NOTE: applies to all outputs except REQ#, GNT#, CLK, RST#, and SERR#
CE26. Outputs source no more than 115mA at 2.5V in the high state? yes ✓
proven at: ✓ Vcc=3.6V, ___ process=best/fast, ___ junction temp= 25 o C (min) no___
by: ___ SPICE simulation, ✓ device characterization, other: ________________
NOTE: applies to all outputs except REQ#, GNT#, CLK, RST#, and SERR#
CE27. Outputs sink at least 48mA at 1.8V in the low state? yes ✓
proven at: ✓ Vcc=3.0V, ___ process=worst/slow, ✓ junction temp= 75 o C (max) no___
by: ___ SPICE simulation, ✓ device characterization, other: ___________
NOTE: applies to all outputs except REQ#, GNT#, CLK, and RST#
CE28. Outputs sink no more than 137mA at 0.65V in the low state? yes ✓
proven at: ✓ Vcc=3.6V, ___ process=best/fast, ✓ junction temp= 25 o C (min) by: no___
___ SPICE simulation,✓ device characterization, other: ________________
NOTE: applies to all outputs except REQ#, GNT#, CLK, and RST#
CE29. REQ#, GNT# outputs source at least 18mA at 0.9V in the high state? yes ✓
proven at: ✓ Vcc=3.0V, ___ process=worst/slow, ✓ junction temp= 75 o C (max) no___
by: ___ SPICE simulation, ✓ device characterization, other: ___________
CE30. REQ#, GNT# outputs sink at least 24mA at 1.8V in the low state? yes ✓
proven at: ✓ Vcc=3.0V, ___ process=worst/slow, ✓ junction temp= 75 o C (max) no __
by: ___ SPICE simulation, ✓ device characterization, other: ___________
CE31. Clamps on all signals source at least 25mA at -1V, and 91mA at -2V? yes ✓
proven by: ___ SPICE simulation, ✓ device characterization, other:___________ no___
CE32. Clamps on all signals sink at least 25mA at Vcc+1V, and 91mA at Vcc+2V? na ___
proven by: ___ SPICE simulation, ✓ device characterization, other:___________ yes ✓
no___

5-4 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.54 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: 3.3 V/nS (measured at pin) no___

May, 1999 5-5


Virtex PCI Compliance Checklist

Loading and Device Protection

Type Description Yes/No


CE35. Capacitance on all PCI signals (except CLK, IDSEL) is less than or equal to 10 yes ✓
pF? no___
CE36. Capacitance on CLK signal is between 5 and 12 pF? yes ✓
no___
CE37. Capacitance on IDSEL signal is less than 8 pF? yes ✓
capacitance guaranteed by: device characterization ✓ no ___
other _______________. The maximum inductance on any PCI pin is: 15.9 nH.
CE38. Read, understand section “Maximum AC Ratings and Device Protection”? yes ✓
✓ believe to be non-issue given technology used proven robustness when ex- no___
posed to prescribed test condition.

5-6 May, 1999


Timing Specification

Type Description Pass / N/A


CE39. Component is operational at any frequency between DC and 33 MHz? yes ✓
na___
Notes: “na” implies component intended for motherboard use only. To satisfy this
requirement, designs are allowed to require software to place the component in
the proper state before stopping the clock and return it to an operational state af-
ter restarting the clock.
CE40. Component is operational with a CLK High Time of 11 nS for 33 Mhz PCI, 6 ns na ___
for 66 Mhz PCI? yes ✓
no___
CE41. Component is operational with a CLK Low Time of 11 nS for 33 Mhz PCI, 6 ns for na ___
66 Mhz PCI? yes ✓
no___
CE42. All bussed signals are driven valid between 2 and 11 nS after CLK for 33 Mhz yes ✓
PCI, between 2 and 6 ns for 66 Mhz PCI? no___
CE43. REQ# and GNT# signals are driven valid between 2 and 12 nS after CLK for 33 yes ✓
Mhz PCI, between 2 and 6 ns for 66 Mhz PCI? no___
CE44. All Tri-state signals become active no earlier than 2 nS after CLK? yes ✓
no___
CE45. All Tri-state signals float no later than 28 nS after CLK for 33 Mhz PCI, no later yes ✓
than 14 nS for 66 Mhz PCI? no___
CE46. All bussed inputs require no more than 7 nS setup to CLK for 33 Mhz PCI, no yes ✓
more than 3 nS for 66 Mhz PCI? no___
CE47. REQ# requires no more than 12 nS setup to CLK for 33 Mhz PCI, no more than na ___
5 nS for 66 Mhz PCI? yes ✓
no___
CE48. GNT# requires no more than 10 nS setup to CLK for 33 Mhz PCI, no more than na ___
5 nS for 66 Mhz PCI? yes ✓
no___
CE49. All inputs require no more than 0 nS of hold time after CLK? yes ✓
no___
CE50. All outputs are Tri-stated within 40 nS after RST# goes low? yes ✓
all timings (CE39 through CE50 verified by (check all that apply) no___
____ static timing design tools (MOTIVE, QTV, QuickPath, Veritime...)
____ dynamic timing design tools (Verilog, Qsim, Quicksim, ViewSim, VHDL, ...)
✓ silicon AC testing
____other____________________________________
NOTE: Maximum and minimum timings assume different output loadings for both
5.0V and 3.3V parts. See PCI Spec Rev 2.1 page 134 note #2.

May, 1999 5-7


Virtex PCI Compliance Checklist

64-bit Components

Type Description Pass or N/A


Component is 32-bit only, this section is NA__
CE51. Component senses, during RST# active, its connection to 64-bit wires? yes ✓
no___
CE52. 64-bit input signals will be stable when not connected? yes ✓
no__

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.

5-8 May, 1999


5 0 0

XC4000XLA
PCI Compliance Checklist

May, 1999 Data Sheet

Component Product Information


Date May, 1999
Vendor Name Xilinx, Inc.
Vendor Street Address 2100 Logic Drive
Vendor City, State, Zip San Jose, CA 95124
U.S.A
Vendor Phone Number +1 408-559-7778
Vendor Contact, Title Per Holmberg
LogiCORE Marketing Manager
Product Name XC4000XLA
Product Model Number XC4xxxXLA
Product Revision Level

Component Electrical Checklist

This checklist applies to the following Component/Manufacturer: XC4000XLA / Xilinx, Inc.


All items were verified over the following range of junction temperatures: ____min ____max
OR
All items were verified over the following range of CASE temperatures: -10 oC min 125 oC max

May, 1999 5-9


XC4000XLA PCI Compliance Checklist

5 V Signaling

Type Description Yes or N/A


CE1. Component supports 5V signaling environment? yes✓
na__
if “na”, skip to section “3.3V Signaling” below.
CE2. Component operates over voltage range 5V +/- 5%? na ✓
yes ___
no___
“na” allowed for components that support 5V signaling, but draw power from a
supply other than Vcc 5V.
CE3. Voltages between 2.0V and Vcc+0.5V are recognized as logic high? yes ✓
no___
CE4. Voltages between -0.5V and 0.8V are recognized as logic low? yes ✓
no___
CE5. All inputs sink less than 70uA when pulled to 2.7V DC? yes ✓
no___
CE6. All inputs source less than 70uA when pulled to 0.5V DC? yes ✓
no___
CE7. All outputs drive to 2.4V (min) in the high state while sourcing 2mA? yes ✓
no___
CE8. All outputs drive to 0.55V (max) in the low state, sinking 3 or 6*mA? yes ✓
no___
CE9. Outputs source at least 44mA at 1.4V in the high state? yes ✓
proven at: 3.0 Vcc= min, ___ process=worst/slow, ___ junction temp=125 oC no___
____ (max) by: ___ SPICE simulation, ✓ device characterization, ___ oth-
er:________________
NOTE: applies to all outputs except REQ#, GNT#, CLK, and RST#
CE10. Outputs source no more than 142mA at 3.1V in the high state? yes ✓
proven at: 3.6 Vcc=max, ___ process=best/fast, ___ junction temp= -10 oC no___
min)by: ___ SPICE simulation, ✓ device characterization, ___ oth-
er:____________
NOTE: applies to all outputs except REQ#, GNT#, CLK, and RST#
CE11. Outputs sink at least 95mA at 2.2V in the low state? yes ✓
proven at: 3.6 Vcc=max, ___ process=worst/slow, ___ junction temp=125 oC no___
(max) by: ___ SPICE simulation, ___ device characterization, ___ other:
_______________
NOTE: applies to all outputs except REQ#, GNT#, CLK, and RST#
CE12. Outputs sink no more than 206mA at 0.71V in the low state? yes ✓
proven at: 3.6 Vcc=max, ___ process=best/fast, ___ junction temp=-10 oC (min) no___
by: ___ SPICE simulation, ✓ device characterization, ___ other:
_______________
NOTE: applies to all outputs except REQ#, GNT#, CLK, and RST#

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

Type Description Pass/NA


CE18. Component supports 3.3V signaling environment? yes ✓
na___
if “na”, skip to section “Loading and Device Protection” below.
CE19. Component operates over voltage range 3.3V +/- 0.3V? yes ✓
no___
CE20. Voltages between 0. 5Vcc and Vcc+0.5V are recognized as logic high? yes ✓
no___
CE21. Voltages between -0.5V and 0.3Vcc are recognized as logic low? yes ✓
no___
CE22. All inputs sink/source less than 10 uA at any voltage from 0V to Vcc? yes ✓
no___
CE23. All outputs drive to 0.9Vcc (min) in the high state while sourcing 500uA? yes ✓
no___
CE24. All outputs drive to 0.1Vcc (max) in the low state, sinking 1500uA? yes ✓
no___
CE25. Outputs source at least 36mA at 0.9V in the high state? yes ✓
proven at: ✓ Vcc=3.0V, ___ process=worst/slow, ✓ junction temp= 85 o C (max) no___
by: ___ SPICE simulation, ✓ device characterization, other: ________________
NOTE: applies to all outputs except REQ#, GNT#, CLK, RST#, and SERR#
CE26. Outputs source no more than 115mA at 2.5V in the high state? yes ✓
proven at: ✓ Vcc=3.6V, ___ process=best/fast, ✓ junction temp= 25 o C (min) by: no___
___ SPICE simulation, ✓ device characterization, other: ________________
NOTE: applies to all outputs except REQ#, GNT#, CLK, RST#, and SERR#
CE27. Outputs sink at least 48mA at 1.8V in the low state? yes ✓
proven at: ✓ Vcc=3.0V, ___ process=worst/slow, ✓ junction temp= 85 o C (max) no___
by: ___ SPICE simulation, ✓ device characterization, other: ___________
NOTE: applies to all outputs except REQ#, GNT#, CLK, and RST#
CE28. Outputs sink no more than 137mA at 0.65V in the low state? yes ✓
proven at: ✓ Vcc=3.6V, ___ process=best/fast, ✓ junction temp= 25 o C (min) by: no___
___ SPICE simulation,✓ device characterization, other: ________________
NOTE: applies to all outputs except REQ#, GNT#, CLK, and RST#
CE29. REQ#, GNT# outputs source at least 18mA at 0.9V in the high state? yes ✓
proven at: ✓ Vcc=3.0V, ___ process=worst/slow, ✓ junction temp= 85 o C (max) no___
by: ___ SPICE simulation, ✓ device characterization, other: ___________
CE30. REQ#, GNT# outputs sink at least 24mA at 1.8V in the low state? yes ✓
proven at: ✓ Vcc=3.0V, ___ process=worst/slow, ✓ junction temp= 85 o C (max) no __
by: ___ SPICE simulation, ✓ device characterization, other: ___________
CE31. Clamps on all signals source at least 25mA at -1V, and 91mA at -2V? yes ✓
proven by: ___ SPICE simulation, ✓ device characterization, other:___________ no___
CE32. Clamps on all signals sink at least 25mA at Vcc+1V, and 91mA at Vcc+2V? na ___
proven by: ___ SPICE simulation, ✓ device characterization, other:___________ yes ✓
no___

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

Loading and Device Protection

Type Description Yes/No


CE35. Capacitance on all PCI signals (except CLK, IDSEL) is less than or equal to 10 yes ✓
pF? no___
CE36. Capacitance on CLK signal is between 5 and 12 pF? yes ✓
no___
CE37. Capacitance on IDSEL signal is less than 8 pF? yes ✓
capacitance guaranteed by: device characterization ✓ no ___
other _______________. The maximum inductance on any PCI pin is: 15.9 nH.
CE38. Read, understand section “Maximum AC Ratings and Device Protection”? yes ✓
✓ believe to be non-issue given technology used proven robustness when ex- no___
posed to prescribed test condition.

5 - 14 May, 1999
Timing Specification

Type Description Pass / N/A


CE39. Component is operational at any frequency between DC and 33 MHz? yes ✓
na___
Notes: “na” implies component intended for motherboard use only. To satisfy this
requirement, designs are allowed to require software to place the component in
the proper state before stopping the clock and return it to an operational state af-
ter restarting the clock.
CE40. Component is operational with a CLK High Time of 11 nS for 33 Mhz PCI, 6 ns na ___
for 66 Mhz PCI? yes ✓
no___
CE41. Component is operational with a CLK Low Time of 11 nS for 33 Mhz PCI, 6 ns for na ___
66 Mhz PCI? yes ✓
no___
CE42. All bussed signals are driven valid between 2 and 11 nS after CLK for 33 Mhz yes ✓
PCI, between 2 and 6 ns for 66 Mhz PCI? no___
CE43. REQ# and GNT# signals are driven valid between 2 and 12 nS after CLK for 33 yes ✓
Mhz PCI, between 2 and 6 ns for 66 Mhz PCI? no___
CE44. All Tri-state signals become active no earlier than 2 nS after CLK? yes ✓
no___
CE45. All Tri-state signals float no later than 28 nS after CLK for 33 Mhz PCI, no later yes ✓
than 14 nS for 66 Mhz PCI? no___
CE46. All bussed inputs require no more than 7 nS setup to CLK for 33 Mhz PCI, no yes ✓
more than 3 nS for 66 Mhz PCI? no___
CE47. REQ# requires no more than 12 nS setup to CLK for 33 Mhz PCI, no more than na ___
5 nS for 66 Mhz PCI? yes ✓
no___
CE48. GNT# requires no more than 10 nS setup to CLK for 33 Mhz PCI, no more than na ___
5 nS for 66 Mhz PCI? yes ✓
no___
CE49. All inputs require no more than 0 nS of hold time after CLK? yes ✓
no___
CE50. All outputs are Tri-stated within 40 nS after RST# goes low? yes ✓
all timings (CE39 through CE50 verified by (check all that apply) no___
____ static timing design tools (MOTIVE, QTV, QuickPath, Veritime...)
____ dynamic timing design tools (Verilog, Qsim, Quicksim, ViewSim, VHDL, ...)
✓ silicon AC testing
____other____________________________________
NOTE: Maximum and minimum timings assume different output loadings for both
5.0V and 3.3V parts. See PCI Spec Rev 2.1 page 134 note #2.

May, 1999 5 - 15
XC4000XLA PCI Compliance Checklist

64-bit Components

Type Description Pass or N/A


Component is 32-bit only, this section is NA ✓
CE51. Component senses, during RST# active, its connection to 64-bit wires? yes ___
no___
CE52. 64-bit input signals will be stable when not connected? yes ___
no__

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 Data Sheet

Component Product Information


Date May, 1999
Vendor Name Xilinx, Inc.
Vendor Street Address 2100 Logic Drive
Vendor City, State, Zip San Jose, CA 95124
U.S.A
Vendor Phone Number +1 408-559-7778
Vendor Contact, Title Per Holmberg
LogiCORE Marketing Manager
Product Name SpartanXL
Product Model Number XCSxxxXL
Product Revision Level

Component Electrical Checklist

This checklist applies to the following Component/Manufacturer: Spartan-XL / Xilinx, Inc.


All items were verified over the following range of junction temperatures: ____min ____max
OR
All items were verified over the following range of CASE temperatures: -10 o C min +125 o C max

May, 1999 5 - 17
Spartan-XL PCI Compliance Checklist

5 V Signaling

Type Description Yes or N/A


CE1. Component supports 5V signaling environment? yes ✓
na __
if “na”, skip to section “3.3V Signaling” below.
CE2. Component operates over voltage range 5V +/- 5%? na___
yes ✓
no___
“na” allowed for components that support 5V signaling, but draw power from a
supply other than Vcc 5V.
CE3. Voltages between 2.0V and Vcc+0.5V are recognized as logic high? yes ✓
no___
CE4. Voltages between -0.5V and 0.8V are recognized as logic low? yes ✓
no___
CE5. All inputs sink less than 70uA when pulled to 2.7V DC? yes ✓
no___
CE6. All inputs source less than 70uA when pulled to 0.5V DC? yes ✓
no___
CE7. All outputs drive to 2.4V (min) in the high state while sourcing 2mA? yes ✓
no___
CE8. All outputs drive to 0.55V (max) in the low state, sinking 3 or 6*mA? yes ✓
no___
CE9. Outputs source at least 44mA at 1.4V in the high state? yes ✓
proven at: 3.0 Vcc= min, ___ process=worst/slow, ✓ junction temp= 85 °C no___
max) by: ___ SPICE simulation, ✓device characterization, other:_____________
NOTE: applies to all outputs except REQ#, GNT#, CLK, and RST#
CE10. Outputs source no more than 142mA at 3.1V in the high state? yes ✓
proven at: 3.6 Vcc=max, ___ process=best/fast, ✓ junction temp= -5 °C no___
(min)by: ___ SPICE simulation, ✓ device characterization, ___ other:________
NOTE: applies to all outputs except REQ#, GNT#, CLK, and RST#
CE11. Outputs sink at least 95mA at 2.2V in the low state? yes ✓
proven at: 3.6 Vcc=max, ___ process=worst/slow, ✓ junction temp = 85 °C (max) no___
by: ___ SPICE simulation,✓ device characterization, ___ other: ____________
NOTE: applies to all outputs except REQ#, GNT#, CLK, and RST#
CE12. Outputs sink no more than 206mA at 0.71V in the low state? yes ✓
proven at: 3.6 Vcc=max, ___ process=best/fast,✓ junction temp = -5 °C (min) by: no___
___ SPICE simulation, ✓ device characterization, ___ other: ____________
NOTE: applies to all outputs except REQ#, GNT#, CLK, and RST#
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 = 85 °C (max) no___
by: ___ SPICE simulation, ✓ device characterization, ___ other________
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= 85 °C (max) yes ✓
by: ___ SPICE simulation, ✓ device characterization, ___ other_______ no___

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

Type Description Pass/NA


CE18. Component supports 3.3V signaling environment? yes ✓
na___
if “na”, skip to section “Loading and Device Protection” below.
CE19. Component operates over voltage range 3.3V +/- 0.3V? yes ✓
no___
CE20. Voltages between 0. 5Vcc and Vcc+0.5V are recognized as logic high? yes ✓
no___
CE21. Voltages between -0.5V and 0.3Vcc are recognized as logic low? yes ✓
no___
CE22. All inputs sink/source less than 10 uA at any voltage from 0V to Vcc? yes ✓
no___
CE23. All outputs drive to 0.9Vcc (min) in the high state while sourcing 500uA? yes ✓
no___
CE24. All outputs drive to 0.1Vcc (max) in the low state, sinking 1500uA? yes ✓
no___
CE25. Outputs source at least 36mA at 0.9V in the high state? yes ✓
proven at: ✓ Vcc=3.0V, ___ process=worst/slow, ✓ junction temp= 75 °C max) no___
by: ___ SPICE simulation, ✓ device characterization, other: ________________
NOTE: applies to all outputs except REQ#, GNT#, CLK, RST#, and SERR#
CE26. Outputs source no more than 115mA at 2.5V in the high state? yes ✓
proven at: ✓ Vcc=3.6V, ___ process=best/fast, ✓ junction temp = 25 °C (min) no___
by: ___ SPICE simulation, ✓ device characterization, other: ________________
NOTE: applies to all outputs except REQ#, GNT#, CLK, RST#, and SERR#
CE27. Outputs sink at least 48mA at 1.8V in the low state? yes ✓
proven at: ✓ Vcc=3.0V, ___ process=worst/slow, ✓ junction temp = 75 °C (max) no___
by: ___ SPICE simulation, ✓ device characterization, other: ___________
NOTE: applies to all outputs except REQ#, GNT#, CLK, and RST#
CE28. Outputs sink no more than 137mA at 0.65V in the low state? yes ✓
proven at: ✓ Vcc=3.6V, ✓ process=best/fast, ___ junction temp= 25 °C (min) by: no___
___ SPICE simulation,✓ device characterization, other: ________________
NOTE: applies to all outputs except REQ#, GNT#, CLK, and RST#
CE29. REQ#, GNT# outputs source at least 18mA at 0.9V in the high state? yes ✓
proven at: ✓ Vcc=3.0V, ___ process=worst/slow, ✓ junction temp= 75 °C (max) no___
by: ___ SPICE simulation, ✓ device characterization, other: ___________
CE30. REQ#, GNT# outputs sink at least 24mA at 1.8V in the low state? yes ✓
proven at: ✓ Vcc=3.0V, ___ process=worst/slow, ✓ junction temp= 75 °C(max) no __
by: ___ SPICE simulation, ✓ device characterization, other: ___________
CE31. Clamps on all signals source at least 25mA at -1V, and 91mA at -2V? yes ✓
proven by: ___ SPICE simulation, ✓ device characterization, other:___________ no___
CE32. Clamps on all signals sink at least 25mA at Vcc+1V, and 91mA at Vcc+2V? na ___
proven by: ___ SPICE simulation, ✓ device characterization, other:___________ yes ✓
no___

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

Loading and Device Protection

Type Description Yes/No


CE35. Capacitance on all PCI signals (except CLK, IDSEL) is less than or equal to 10 yes ✓
pF? no___
CE36. Capacitance on CLK signal is between 5 and 12 pF? yes ✓
no___
CE37. Capacitance on IDSEL signal is less than 8 pF? yes ✓
capacitance guaranteed by: device characterization ✓ no ___
other _______________. The maximum inductance on any PCI pin is: 15.9 nH.
CE38. Read, understand section “Maximum AC Ratings and Device Protection”? yes ✓
✓ believe to be non-issue given technology used proven robustness when ex- no___
posed to prescribed test condition.

5 - 22 May, 1999
Timing Specification

Type Description Pass / N/A


CE39. Component is operational at any frequency between DC and 33 MHz? yes ✓
na___
Notes: “na” implies component intended for motherboard use only. To satisfy this
requirement, designs are allowed to require software to place the component in
the proper state before stopping the clock and return it to an operational state af-
ter restarting the clock.
CE40. Component is operational with a CLK High Time of 11 nS for 33 Mhz PCI, 6 ns na ___
for 66 Mhz PCI? yes ✓
no___
CE41. Component is operational with a CLK Low Time of 11 nS for 33 Mhz PCI, 6 ns for na ___
66 Mhz PCI? yes ✓
no___
CE42. All bussed signals are driven valid between 2 and 11 nS after CLK for 33 Mhz yes ✓
PCI, between 2 and 6 ns for 66 Mhz PCI? no___
CE43. REQ# and GNT# signals are driven valid between 2 and 12 nS after CLK for 33 yes ✓
Mhz PCI, between 2 and 6 ns for 66 Mhz PCI? no___
CE44. All Tri-state signals become active no earlier than 2 nS after CLK? yes ✓
no___
CE45. All Tri-state signals float no later than 28 nS after CLK for 33 Mhz PCI, no later yes ✓
than 14 nS for 66 Mhz PCI? no___
CE46. All bussed inputs require no more than 7 nS setup to CLK for 33 Mhz PCI, no yes ✓
more than 3 nS for 66 Mhz PCI? no___
CE47. REQ# requires no more than 12 nS setup to CLK for 33 Mhz PCI, no more than na ___
5 nS for 66 Mhz PCI? yes ✓
no___
CE48. GNT# requires no more than 10 nS setup to CLK for 33 Mhz PCI, no more than na ___
5 nS for 66 Mhz PCI? yes ✓
no___
CE49. All inputs require no more than 0 nS of hold time after CLK? yes ✓
no___
CE50. All outputs are Tri-stated within 40 nS after RST# goes low? yes ✓
all timings (CE39 through CE50 verified by (check all that apply) no___
____ static timing design tools (MOTIVE, QTV, QuickPath, Veritime...)
____ dynamic timing design tools (Verilog, Qsim, Quicksim, ViewSim, VHDL, ...)
✓ silicon AC testing
____other____________________________________
NOTE: Maximum and minimum timings assume different output loadings for both
5.0V and 3.3V parts. See PCI Spec Rev 2.1 page 134 note #2.

May, 1999 5 - 23
Spartan-XL PCI Compliance Checklist

64-bit Components

Type Description Pass or N/A


Component is 32-bit only, this section is NA ✓
CE51. Component senses, during RST# active, its connection to 64-bit wires? yes ___
no
CE52. 64-bit input signals will be stable when not connected? yes
no

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

LogiCORE PCI V3.0 Cores


PCI Compliance Checklist

May, 1999 Data Sheet

Component Product Information


Date May, 1999
Vendor Name Xilinx, Inc.
Vendor Street Address 2100 Logic Drive
Note Vendor City, State, Zip San Jose, CA 95124
U.S.A
Vendor Phone Number +1 408-559-7778
Vendor Contact, Title Per Holmberg
LogiCORE Marketing Manager
Product Name LogiCORE PCI32 and PCI64 Interfaces
Product Model Number DO-DI-PCI64,
DO-DI-PCI32
XC4000XLA FPGA
Spartan-XL FPGA
Product Revision Level All cores based on V3.0

May, 1999 5 - 25
LogiCORE PCI V3.0 Cores PCI Compliance Checklist

Component Configuration Checklist


Organization

Type Description Yes or No


CO1. Does each PCI resource have a configuration space based on the 256 byte tem- yes ✓
plate defined in section 6.1, with a predefined 64 byte header and a 192 byte de- no___
vice specific region?
CO2. Do all functions in the device support the Vendor ID, Device ID, Command, Sta- yes ✓
tus, Header Type and Class Code fields in the header? See figure 6-1. no___
CO3. Is the configuration space available for access at all times? yes ✓
no___
CO4. Are writes to reserved registers or read only bits completed normally and the data yes ✓
discarded? no___
CO5. Are reads to reserved or unimplemented registers, or bits, completed normally yes ✓
and a data value of 0 returned? no___
CO6. Is the vendor ID a number allocated by the PCI SIG? yes ✓
End users must use their own Vendor ID. no___
CO7. Does the Header Type field have a valid encoding? yes ✓
no___
CO8. Do multi-byte transactions access the appropriate registers and are the registers yes ✓
in “little endian” order? no___
CO9. Are all READ ONLY register values within legal ranges? For example, the Inter- yes ✓
rupt Pin register must only contain values 0-4. no___
CO10. Is the class code in compliance with the definition in Appendix D? yes ✓
no___
CO11. Is the predefined header portion of configuration space accessible as bytes, yes ✓
words, and dwords? no___
CO12. Is the device a multifunction device? yes __
no ✓
CO13. If the device is multifunction, are config space accesses to unimplemented func- yes ___
tions ignored? no___
N/A_✓

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.

Location Name Required/Optional N/A Implemented


00h-01h Vendor ID Required ✓
02h-03h Device ID Required ✓
04h-05h Command Required ✓
06h-07h Status Required ✓
08h Revision ID Required ✓
09h-0Bh Class Code Required ✓
0Ch Cache Line Size Required by master devices/functions ✓
that can generate Memory Write and
Invalidate
0Dh Latency Timer Required by master devices/functions ✓
that can burst more than two data
phases
0Eh Header Type If the device is multi-functional, then bit ✓
7 must be set to a 1. The remaining
bits are required to have a defined val-
ue.
0Fh BIST Optional ✓
10h-27h Base Address Registers 1 or more required for any address al- ✓
location.
28h-2Bh Cardbus CIS Pointer Optional ✓
2CH=2Dh Subsystem Vendor ID Optional ✓
2Eh-2Fh Subsystem ID Optional ✓
30h-2Fh Expansion ROM Base Required for devices/functions that ✓
Address have expansion ROM.
34h-3Bh Reserved ✓
3Ch Interrupt Line Required by devices/functions that ✓
use an interrupt pin.
3Dh Interrupt Pin Required by devices/functions that ✓
use an interrupt pin.
3Eh Min_Gnt Optional ✓
3Fh Max_Lat Optional ✓

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.

Type Description Yes/No


DC1. When the command register is loaded with a 0000h is the device/function logical- yes ✓
ly disconnected from the PCI, with the exception of configuration accesses? (De- no___
vices in BOOT code path are exempt).
DC2. Is the device/function disabled after the assertion of PCI RST#? (Devices in yes ✓
BOOT code path are exempt). no___

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.

Bit Name Required/Optional Target Master


0 I/O Space Required if device/function has registers mapped ✓ N/A
into I/O space.
1 Memory Space Required if device/function responds to memory ✓ N/A
space accesses.
2 Bus Master Required N/A ✓
3 Special Cycles Required for devices/functions that can respond to N/A N/A
Special Cycles.
4 Memory Write and Invalidate Required for devices/functions that generate N/A N/A
Enable Memory Write and Invalidate cycles.
5 VGA Palette snoop Required for VGA or graphical devices/functions N/A N/A
that snoop VGA color palette.
6 Parity Error Response Required unless exempted per section 3.7.2. ✓ ✓
7 Wait cycle control Optional N/A N/A
8 SERR# enable Required if device/function has SERR# pin. ✓ N/A
9 Fast Back-to-Back Enable Required if Master device/function can support N/A N/A
fast back-to-back cycles among different targets.
10-15 Reserved ✓ ✓

Device Status
This section should be completed individually for all functions in a multifunction device.
Device Status Questions

Type Description Yes/No


DS1. Do all implemented read/write bits in the Status reset to 0? yes ✓
no___
DS2. Are read/write bits set to a 1 exclusively by the device/function? yes ✓
no___
DS3. Are read/write bits reset to a 0 when PCIRST# is asserted? yes ✓
no___
DS4. Are read/write bits reset to a 0 by writing a 1 to the bit? yes ✓
no___

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

Type Description Yes/No


BA1. If the device/function uses expansion ROM, does it implement the Expansion yes ___
ROM Base Address Register? The expansion ROM base address is not sup- no ✓
ported.
BA2. Do all Base Address registers asking for IO space request 256 bytes or less? yes ✓
no ___
BA3. If the device/function has an Expansion ROM Base Address register, does the yes ___
memory enable bit in the Command register have precedence over the enable bit no ✓
in the Expansion ROM base Address register? The expansion ROM base ad-
dress is not supported.
BA4. Does the device/function use any address space (memory or IO) other than that yes ___
assigned using Base Address registers? (i.e.; Does the device/function hard-de- no ✓
code any addresses?) Note: If the answer is yes, you must list decoded address-
es as explanations at the end of this section.
BA5. Does the device/function decode all 32-bits of IO space? yes ✓
no ___
BA6. If the device/function has an Expansion ROM Base Address register, is the size yes ___
of the memory space requested 16MB or smaller? no___

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)

Type Description Yes/No


VG1. Is palette snoop implemented, including bit in Command register? yes ___
no___
VG2. Is Expansion ROM Base Address register implemented and provide full relocat- yes ___
ability of the expansion ROM? (The device must NOT do a hard decode of no ___
0C0000h).
VG3. Does the device come up disabled? (Bottom three bits of Command register must yes ___
be initialized to zero on power-up and PCIRST#). no ___
VG4. Does Class Code field indicate VGA device? (value of 030000h). yes ___
no___
VG5. Does the device hard-decode only standard ISA VGA addresses and their alias- yes ___
es? (IO addresses 3B0h through 3BBh, 3C0h through 3DFh, Memory addresses no___
0A0000h through 0BFFFFh)
VG6. Does the device use Base Address Registers to allocate needed space other yes ___
than standard ISA VGA Addresses? (e.g. for a linear FRAME buffer) no___

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.

Test # Description Yes or No


MP1. All Sustained Tri-State signals are driven high for one clock before being Tri- yes ✓
Stated. (2.1) no___
MP2. IUT always asserts all byte enables during each data phase of a Memory Write yes ___
Invalidate cycle. (3.1.1) Memory Write and Invalidate command not supported no ✓
MP3. IUT always uses Linear Burst Ordering for Memory Write Invalidate cycles. (3.1.1) yes ___
Memory Write and Invalidate command not supported. no ✓
MP4. IUT always drives IRDY# when data is valid during a write transaction. (3.2.1) yes ✓
no ___
MP5. IUT only transfers data when both IRDY# and TRDY# are asserted on the same yes ✓
rising clock edge. (3.2.1) no ___
MP6. Once the IUT asserts IRDY# it never changes FRAME# until the current data yes ✓
phase completes. (3.2.1) no___
MP7. Once the IUT asserts IRDY# it never changes IRDY# until the current data phase yes ✓
completes. (3.2.1) no ___
MP8. IUT never uses reserved burst ordering (AD[1::0] = “01”. (3.2.2) Value driven yes ✓
onto AD bus is controlled by the user application. no __
MP9. IUT never uses reserved burst ordering (AD[1::0] = “11”. (3.2.2) Value driven yes ✓
onto AD bust is controlled by the user application. no __
MP10. IUT always ignores configuration command unless IDSEL is asserted and yes ✓
AD[1::0] are “00”. (3.2.2) no ____
MP11. The IUT's AD lines are driven to stable values during every address and data yes ✓
phase. (3.2.4) no ___
MP12. The IUT's C/BE# output buffers remain enabled from the first clock of the data yes ✓
phase through the end of the transaction. (3.3.1) no ___
MP13. The IUT's C/BE# lines contain valid Byte Enable information during the entire data yes ✓
phase. (3.3.1) The values on the C/BE# pins are driven by the user applica- no ___
tion.
MP14. IUT never deasserts FRAME# unless IRDY# is asserted or will be asserted yes ✓
(3.3.3.1) no ___
MP15. IUT never deasserts IRDY# until at least one clock after FRAME# is deasserted. yes ✓
(3.3.3.1) no ___
MP16. Once the IUT deasserts FRAME# it never reasserts FRAME# during the same yes ✓
transaction. (3.3.3.1) no ___
MP17. IUT never terminates with master abort once target has asserted DEVSEL#. yes ✓
(3.3.3.1) no ___
MP18. IUT never signals master abort earlier than 5 clocks after FRAME# was first sam- yes ✓
pled asserted. (3.3.3.1) no ___
MP19. IUT always repeats an access exactly as the original when terminated by retry. yes ✓
(3.3.3.2.2) The retry process is controlled by logic in the user’s application. no ___
The user application must repeat the transaction to meet this requirement.

May, 1999 5 - 31
LogiCORE PCI V3.0 Cores PCI Compliance Checklist

Test # Description Yes or No


MP20. IUT never starts cycle unless GNT# is asserted. (3.4.1) yes ✓
no ___
MP21. IUT always Tri-States C/BE# and AD within one clock after GNT# negation when yes ✓
bus is idle and FRAME# is negated. (3.4.3) no___
MP22. IUT always drives C/BE# and AD within eight clocks of GNT# assertion when bus yes ✓
is idle. (3.4.3) no___
MP23. IUT always asserts IRDY# within eight clocks on all data phases. (3.5.2) The user yes ✓
application must assert M_READY appropriately to meet this requirement. no ___
MP24. IUT always begins lock operation with a read transaction. (3.6) LOCK# function yes ___
not supported. no ✓
MP25. IUT always releases LOCK# when access is terminated by target-abort or master- yes ___
abort. (3.6) LOCK# function not supported. no ✓
MP26. IUT always deasserts LOCK# for minimum of one idle cycle between consecutive yes ___
lock operations. (3.6) LOCK# function not supported. no✓
MP27. IUT always uses Linear Burst Ordering for configuration cycles. (3.7.4) yes ✓
no ___
MP28. IUT always drives PAR within one clock of C/BE# and AD being driven. (3.8.1) yes ✓
no ___
MP29. IUT always drives PAR such that the number of “1”s on AD[31::0],C/BE[3:0], and yes ✓
PAR equals an even number. (3.8.1) no ___
MP30. IUT always drives PERR# (when enabled) active two clocks after data when data yes ✓
parity error is detected. (3.8.2.1) no ___
MP31. IUT always drives PERR (when enabled) for a minimum of 1 clock for each data yes ✓
phase that a parity error is detected. (3.8.2.1) no ___
MP32. IUT always holds FRAME# asserted for cycle following DUAL command. (3.10.1) yes ___
Dual Address command not supported. no ✓
MP33. IUT never generates DUAL cycle when upper 32-bits of address are zero. (3.10.1) yes ___
no ✓

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)

Test # Description Pass or N/A


TP1. All Sustained Tri-State signals are driven high for one clock before being Tri-Stat- yes ✓
ed. no ___
TP2. IUT never reports PERR# until it has claimed the cycle and completed a data yes ✓
phase. (2.2.5) no ___
TP3. IUT never aliases reserved commands with other commands. (3.1.1) yes ✓
no ___
TP4. 32-bit addressable IUT treats DUAL command as reserved. (3.1.1) yes ✓
no ___
TP5. Once IUT has asserted TRDY# it never changes TRDY# until the data phase yes ✓
completes. (3.2.1) no ___
TP6. Once IUT has asserted TRDY# it never changes DEVSEL# until the data phase yes ✓
completes. (3.2.1) no ___
TP7. Once IUT has asserted TRDY# it never changes STOP# until the data phase yes ✓
completes. (3.2.1) no___
TP8. Once IUT has asserted STOP# it never changes STOP# until the data phase yes ✓
completes. (3.2.1) no ___
TP9. Once IUT has asserted STOP# it never changes TRDY# until the data phase yes ✓
completes. (3.2.1) no ___
TP10. Once IUT has asserted STOP# it never changes DEVSEL# until the data phase yes ✓
completes. (3.2.1) no ___
TP11. IUT only transfers data when both IRDY# and TRDY# are asserted on the same yes ✓
rising clock edge. (3.2.1) no ___
TP12. IUT always asserts TRDY# when data is valid on a read cycle. (3.2.1) yes ✓
no ___
TP13. IUT always signals target-abort when unable to complete the entire IO access as yes ✓
defined by the byte enables. (3.2.2) This function is implemented in the user no ___
application. Only the user application could determine if the byte enables
were valid for the selected I/O devices.
TP14. IUT never responds to reserved encodings. (3.2.2) yes ✓
no ___
TP15. IUT always ignores configuration command unless IDSEL is asserted and yes ✓
AD[1::0] are “00”. (3.2.2) no ___
TP16. IUT always disconnects after the first data phase when reserved burst mode is yes ✓
detected. (3.2.2) no ___
TP17. The IUT's AD lines are driven to stable values during every address and data yes ✓
phase. (3.2.4) no ___
TP18. The IUT's C/BE# output buffers remain enabled from the first clock of the data yes ✓
phase through the end of the transaction. (3.3.1) no ___
TP19. IUT never asserts TRDY# during turnaround cycle on a read. (3.3.1) yes ✓
no ___

May, 1999 5 - 33
LogiCORE PCI V3.0 Cores PCI Compliance Checklist

General Component Protocol Checklist (Target) (Continued)

Test # Description Pass or N/A


TP20. IUT always deasserts TRDY#,STOP#, and DEVSEL# the clock following the yes ✓
completion of the last data phase. (3.3.3.2) no ___
TP21. IUT always signals disconnect when burst crosses resource boundary. (3.3.3.2) yes ✓
This function would be implemented in the user application. no __
TP22. IUT always deasserts STOP# the cycle immediately following FRAME# being yes ✓
deasserted. (3.3.3.2.1) no ___
TP23. Once the IUT has asserted STOP# it never deasserts STOP# until FRAME# is yes ✓
negated. (3.3.3.2.1) no ___
TP24. IUT always deasserts TRDY# before signaling target-abort. (3.3.3.2.1) yes ✓
no ___
TP25. IUT never deasserts STOP# and continues the transaction. (3.3.3.2.1) yes ✓
no ___
TP26. IUT always completes initial data phase within 16 clocks. (3.5.1.1) yes ✓
no ___
TP27. IUT always locks minimum of 16 bytes. (3.6) LOCK# function not supported. yes ___
no ✓
TP28. IUT always issues DEVSEL# before any other response. (3.7.1) yes ✓
no ___
TP29. Once IUT has asserted DEVSEL# it never deasserts DEVSEL# until the last data yes ✓
phase has competed except to signal target-abort. (3.7.1) no ___
TP30. IUT never responds to special cycles. (3.7.2) yes ✓
no ___
TP31. IUT always drives PAR within one clock of C/BE# and AD being driven. (3.8.1) yes ✓
no ___
TP32. IUT always drives PAR such that the number of “1”s on AD[31::0],C/BE[3:0], and yes ✓
PAR equals an even number. (3.8.1) no ___

5 - 34 May, 1999
Component Protocol Checklist for a Master Device
Definition: IUT is an acronym for “Implementation Under Test”.

Test Scenario: 1.1. PCI Device Speed Tests


Memory Transactions

Test # Description Pass N/A


If IUT does not implement memory transactions mark 1 through 10 N/A.
1 Data transfer after write to fast memory slave. ✓
2 Data transfer after read from fast memory slave. ✓
3 Data transfer after write to medium memory slave. ✓
4 Data transfer after read from medium memory slave. ✓
5 Data transfer after write to slow memory slave. ✓
6 Data transfer after read from slow memory slave. ✓
7 Data transfer after write to subtractive memory slave. ✓
8 Data transfer after read from subtractive memory slave. ✓
9 Master abort bit set after write to slower than subtractive memory slave. ✓
10 Master abort bit set after read from slower than subtractive memory ✓
slave.

I/O Transactions

Test # Description Pass N/A


If IUT does not implement I/O transactions mark 11 through 20 N/A.
11 Data transfer after write to fast I/O slave. ✓
12 Data transfer after read from fast I/O slave. ✓
13 Data transfer after write to medium I/O slave. ✓
14 Data transfer after read from medium I/O slave. ✓
15 Data transfer after write to slow I/O slave. ✓
16 Data transfer after read from slow I/O slave. ✓
17 Data transfer after write to subtractive I/O slave. ✓
18 Data transfer after read from subtractive I/O slave. ✓
19 Master abort bit set after write to slower than subtractive I/O slave. ✓
20 Master abort bit set after read from slower than subtractive I/O slave. ✓

Configuration Transactions:

Test # Description Pass N/A


If IUT does not implement configuration transactions mark 21 through 30 N/A.
21 Data transfer after write to fast config slave. ✓
22 Data transfer after read from fast config slave. ✓
23 Data transfer after write to medium config slave. ✓
24 Data transfer after read from medium config slave. ✓
25 Data transfer after write to slow config slave. ✓

May, 1999 5 - 35
LogiCORE PCI V3.0 Cores PCI Compliance Checklist

Test # Description Pass N/A


26 Data transfer after read from slow config slave. ✓
27 Data transfer after write to subtractive config slave. ✓
28 Data transfer after read from subtractive config slave. ✓
29 Master abort bit set after write to slower than subtractive config slave. ✓
30 Master abort bit set after read from slower than subtractive config slave. ✓

Interrupt Acknowledge Transactions:

Test # Description Pass N/A


If IUT does not implement interrupt transactions mark 31 through 35 N/A.
31 Data transfer after interrupt from fast memory slave. ✓
32 Data transfer after interrupt from medium memory slave. ✓
33 Data transfer after interrupt from slow memory slave. ✓
34 Data transfer after interrupt from subtractive memory slave. ✓
35 Master abort bit set for interrupt from slower than subtractive memory ✓
slave.

Special Cycle Transactions:

Test # Description Pass N/A


If IUT does not implement special cycle transactions mark 36 through 37 N/A.
36 Data transfer after special transaction to slave. ✓
37 Master abort bit is not set after special transaction. ✓

Test Scenario: 1.2. PCI Bus Target Abort Cycles


Memory Transactions:

Test # Description Pass N/A


If IUT does not implement memory transactions mark 1 through 16 N/A.
1 Target Abort bit set after write to fast memory slave. ✓
2 IUT does not repeat the write transaction. ✓
3 IUT's Target Abort bit set after read from fast memory slave. ✓
4 IUT does not repeat the read transaction. ✓
5 Target Abort bit set after write to medium memory slave. ✓
6 IUT does not repeat the write transaction. ✓
7 IUT's Target Abort bit set after read from medium memory slave. ✓
8 IUT does not repeat the read transaction. ✓
9 Target Abort bit set after write to slow memory slave. ✓
10 IUT does not repeat the write transaction. ✓
11 IUT's Target Abort bit set after read from slow memory slave. ✓
12 IUT does not repeat the read transaction. ✓
13 Target Abort bit set after write to subtractive memory slave. ✓
14 IUT does not repeat the write transaction. ✓

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:

Test # Description Pass N/A


If IUT does not implement I/O transactions mark 17 through 32 N/A.
17 Target Abort bit set after write to fast I/O slave. ✓
18 IUT does not repeat the write transaction. ✓
19 IUT's Target Abort bit set after read from fast I/O slave. ✓
20 IUT does not repeat the read transaction. ✓
21 Target Abort bit set after write to medium I/O slave. ✓
22 IUT does not repeat the write transaction. ✓
23 IUT's Target Abort bit set after read from medium I/O slave. ✓
24 IUT does not repeat the read transaction. ✓
25 Target Abort bit set after write to slow I/O slave. ✓
26 IUT does not repeat the write transaction. ✓
27 IUT's Target Abort bit set after read from slow I/O slave. ✓
28 IUT does not repeat the read transaction. ✓
29 Target Abort bit set after write to subtractive I/O slave. ✓
30 IUT does not repeat the write transaction. ✓
31 IUT's Target Abort bit set after read from subtractive I/O slave. ✓
32 IUT does not repeat the read transaction. ✓

Configuration Transactions:

Test # Description Pass N/A


If IUT does not implement configuration transactions mark 33 through 48 N/A.
33 Target Abort bit set after write to fast config slave ✓
34 IUT does not repeat the write transaction. ✓
35 IUT's Target Abort bit set after read from fast config slave. ✓
36 IUT does not repeat the read transaction. ✓
37 Target Abort bit set after write to medium config slave. ✓
38 IUT does not repeat the write transaction. ✓
39 IUT's Target Abort bit set after read from medium config slave. ✓
40 IUT does not repeat the read transaction. ✓
41 Target Abort bit set after write to slow config slave. ✓
42 IUT does not repeat the write transaction. ✓
43 IUT's Target Abort bit set after read from slow config slave. ✓
44 IUT does not repeat the read transaction. ✓
45 Target Abort bit set after write to subtractive config slave. ✓
46 IUT does not repeat the write transaction. ✓

May, 1999 5 - 37
LogiCORE PCI V3.0 Cores PCI Compliance Checklist

Test # Description Pass N/A


47 IUT's Target Abort bit set after read from subtractive config slave. ✓
48 IUT does not repeat the read transaction. ✓

Interrupt Acknowledge Transactions:

Test # Description Pass N/A


If IUT does not implement interrupt transactions mark 49 through 56 N/A.
49 IUT's Target Abort bit set after interrupt acknowledge from fast slave. ✓
50 IUT does not repeat the interrupt acknowledge transaction. ✓
51 IUT's Target Abort bit set after interrupt acknowledge from medium slave. ✓
52 IUT does not repeat the interrupt acknowledge transaction. ✓
53 IUT's Target Abort bit set after interrupt acknowledge from slow slave. ✓
54 IUT does not repeat the interrupt acknowledge transaction. ✓
55 IUT's Target Abort bit set after interrupt acknowledge from subtractive ✓
slave.
56 IUT does not repeat the interrupt acknowledge transaction. ✓

Test Scenario: 1.3. PCI Bus Target Retry Cycles


Memory Transactions:

Test # Description Pass N/A


If IUT does not implement memory transactions mark 1 through 8 N/A.
1 Data transfer after write to fast memory slave. ✓
2 Data transfer after read from fast memory slave. ✓
3 Data transfer after write to medium memory slave. ✓
4 Data transfer after read from medium memory slave. ✓
5 Data transfer after write to slow memory slave. ✓
6 Data transfer after read from slow memory slave. ✓
7 Data transfer after write to subtractive memory slave. ✓
8 Data transfer after read from subtractive memory slave. ✓

I/O Transactions:

Test # Description Pass N/A


If IUT does not implement I/O transactions mark 9 through 16 N/A.
9 Data transfer after write to fast I/O slave. ✓
10 Data transfer after read from fast I/O slave. ✓
11 Data transfer after write to medium I/O slave. ✓
12 Data transfer after read from medium I/O slave. ✓
13 Data transfer after write to slow I/O slave. ✓
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. ✓

5 - 38 May, 1999
Configuration Transactions:

Test # Description Pass N/A


If IUT does not implement configuration transactions mark 17 through 24 N/A.
17 Data transfer after write to fast config slave. ✓
18 Data transfer after read from fast config slave. ✓
19 Data transfer after write to medium config slave. ✓
20 Data transfer after read from medium config slave. ✓
21 Data transfer after write to slow config slave. ✓
22 Data transfer after read from slow config slave. ✓
23 Data transfer after write to subtractive config slave. ✓
24 Data transfer after read from subtractive config slave. ✓

Interrupt Acknowledge Transactions:

Test # Description Pass N/A


If IUT does not implement interrupt transactions mark 25 through 28 N/A.
25 Data transfer after interrupt acknowledge from fast slave. ✓
26 Data transfer after interrupt acknowledge from medium slave. ✓
27 Data transfer after interrupt acknowledge from slow slave. ✓
28 Data transfer after interrupt acknowledge from subtractive slave. ✓

Test Scenario: 1.4. PCI Bus Single Data Phase Disconnect Cycles
Memory Transactions:

Test # Description Pass N/A


If IUT does not implement memory transactions mark 1 through 8 N/A.
1 Data transfer after write to fast memory slave. ✓
2 Data transfer after read from fast memory slave. ✓
3 Data transfer after write to medium memory slave. ✓
4 Data transfer after read from medium memory slave. ✓
5 Data transfer after write to slow memory slave. ✓
6 Data transfer after read from slow memory slave. ✓
7 Data transfer after write to subtractive memory slave. ✓
8 Data transfer after read from subtractive memory slave. ✓

I/O Transactions:

Test Description Pass N/A


If IUT does not implement I/O transactions mark 9 through 16 N/A.
9 Data transfer after write to fast I/O slave. ✓
10 Data transfer after read from fast I/O slave. ✓
11 Data transfer after write to medium I/O slave. ✓
12 Data transfer after read from medium I/O slave. ✓
13 Data transfer after write to slow I/O slave. ✓

May, 1999 5 - 39
LogiCORE PCI V3.0 Cores PCI Compliance Checklist

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:

Test # Description Pass N/A


If IUT does not implement configuration transactions mark 17 through 24 N/A.
17 Data transfer after write to fast config slave. ✓
18 Data transfer after read from fast config slave. ✓
19 Data transfer after write to medium config slave. ✓
20 Data transfer after read from medium config slave. ✓
21 Data transfer after write to slow config slave. ✓
22 Data transfer after read from slow config slave. ✓
23 Data transfer after write to subtractive config slave. ✓
24 Data transfer after read from subtractive config slave. ✓

Interrupt Acknowledge Transactions:

Test # Description Pass N/A


If IUT does not implement interrupt transactions mark 25 through 28 N/A.
25 Data transfer after interrupt acknowledge from fast slave. ✓
26 Data transfer after interrupt acknowledge from medium slave. ✓
27 Data transfer after interrupt acknowledge from slow slave. ✓
28 Data transfer after interrupt acknowledge from subtractive slave. ✓

Test Scenario: 1.5. PCI Bus Multi-Data Phase Target Abort Cycles
Memory Transactions:

Test # Description Pass N/A


If IUT does not implement memory transactions mark 1 through 16 N/A.
1 Target Abort bit set after write to fast memory slave. ✓
2 IUT does not repeat the write transaction. ✓
3 IUT's Target Abort bit set after read from fast memory slave. ✓
4 IUT does not repeat the read transaction. ✓
5 Target Abort bit set after write to medium memory slave. ✓
6 IUT does not repeat the write transaction. ✓
7 IUT's Target Abort bit set after read from medium memory slave. ✓
8 IUT does not repeat the read transaction. ✓
9 Target Abort bit set after write to slow memory slave. ✓
10 IUT does not repeat the write transaction. ✓
11 IUT's Target Abort bit set after read from slow memory slave. ✓
12 IUT does not repeat the read transaction. ✓

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

Dual Address Cycle Transactions:

Test # Description Pass N/A


If IUT does not implement dual address transactions mark 17 through 32 N/A.
17 Target Abort bit set after write to fast memory slave. ✓
18 IUT does not repeat the write transaction. ✓
19 IUT's Target Abort bit set after read from fast memory slave. ✓
20 IUT does not repeat the read transaction. ✓
21 Target Abort bit set after write to medium memory slave. ✓
22 IUT does not repeat the write transaction. ✓
23 IUT's Target Abort bit set after read from medium memory slave. ✓
24 IUT does not repeat the read transaction. ✓
25 Target Abort bit set after write to slow memory slave. ✓
26 IUT does not repeat the write transaction. ✓
27 IUT's Target Abort bit set after read from slow memory slave. ✓
28 IUT does not repeat the read transaction. ✓
29 Target Abort bit set after write to subtractive memory slave. ✓
30 IUT does not repeat the write transaction. ✓
31 IUT's Target Abort bit set after read from subtractive memory slave. ✓
32 IUT does not repeat the read transaction. ✓

Configuration Transactions:

Test # Description Pass N/A


If IUT does not implement configuration transactions mark 33 through 48 N/A.
33 Target Abort bit set after write to fast config. slave. ✓
34 IUT does not repeat the write transaction. ✓
35 IUT's Target Abort bit set after read from fast config. slave. ✓
36 IUT does not repeat the read transaction. ✓
37 Target Abort bit set after write to medium config. slave. ✓
38 IUT does not repeat the write transaction. ✓
39 IUT's Target Abort bit set after read from medium config. slave. ✓
40 IUT does not repeat the read transaction. ✓
41 Target Abort bit set after write to slow config. slave. ✓
42 IUT does not repeat the write transaction. ✓
43 IUT's Target Abort bit set after read from slow config. slave. ✓
44 IUT does not repeat the read transaction. ✓

May, 1999 5 - 41
LogiCORE PCI V3.0 Cores PCI Compliance Checklist

Test # Description Pass N/A


45 Target Abort bit set after write to subtractive config. slave. ✓
46 IUT does not repeat the write transaction. ✓
47 IUT's Target Abort bit set after read from subtractive config. slave. ✓
48 IUT does not repeat the read transaction. ✓

Memory Read Multiple Transactions:

Test # Description Pass N/A


If IUT does not implement memory read multiple transactions mark 49 through 56 N/A.
49 IUT's Target Abort bit set after read from fast memory slave. ✓
50 IUT does not repeat the read transaction. ✓
51 IUT's Target Abort bit set after read from medium memory slave. ✓
52 IUT does not repeat the read transaction. ✓
53 IUT's Target Abort bit set after read from slow memory slave. ✓
54 IUT does not repeat the read transaction. ✓
55 IUT's Target Abort bit set after read from subtractive memory slave. ✓
56 IUT does not repeat the read transaction. ✓

Memory Read Line Transactions:

Test # Description Pass N/A


If IUT does not implement memory read line transactions mark 57 through 64 N/A.
57 IUT's Target Abort bit set after read from fast memory slave. ✓
58 IUT does not repeat the read transaction. ✓
59 IUT's Target Abort bit set after read from medium memory slave. ✓
60 IUT does not repeat the read transaction. ✓
61 IUT's Target Abort bit set after read from slow memory slave. ✓
62 IUT does not repeat the read transaction. ✓
63 IUT's Target Abort bit set after read from subtractive memory slave. ✓
64 IUT does not repeat the read transaction. ✓

Memory Write and Invalidate Transactions:

Test # Description Pass N/A


If IUT does not implement memory write and invalidate transactions mark 65 through 72 N/A.
65 Target Abort bit set after write to fast memory slave. ✓
66 IUT does not repeat the write transaction. ✓
67 Target Abort bit set after write to medium memory slave. ✓
68 IUT does not repeat the write transaction. ✓
69 Target Abort bit set after write to slow memory slave. ✓
70 IUT does not repeat the write transaction. ✓
71 IUT's Target Abort bit set after read from slow memory slave. ✓
72 IUT does not repeat the write transaction. ✓

5 - 42 May, 1999
Test Scenario: 1.6. PCI Bus Multi-Data Phase Retry Cycles
Memory Transactions:

Test # Description Pass N/A


If IUT does not implement memory transactions mark 1 through 8 N/A.
1 Data transfer after write to fast memory slave. ✓
2 Data transfer after read from fast memory slave. ✓
3 Data transfer after write to medium memory slave. ✓
4 Data transfer after read from medium memory slave. ✓
5 Data transfer after write to slow memory slave. ✓
6 Data transfer after read from slow memory slave. ✓
7 Data transfer after write to subtractive memory slave. ✓
8 Data transfer after read from subtractive memory slave. ✓

I/O Transactions:

Test # Description Pass N/A


If IUT does not implement I/O transactions mark 9 through 16 N/A.
9 Data transfer after write to fast I/O slave. ✓
10 Data transfer after read from fast I/O slave. ✓
11 Data transfer after write to medium I/O slave. ✓
12 Data transfer after read from medium I/O slave. ✓
13 Data transfer after write to slow I/O slave. ✓
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:

Test # Description Pass N/A


If IUT does not implement configuration transactions mark 17 through 24 N/A.
17 Data transfer after write to fast config. slave. ✓
18 Data transfer after read from fast config. slave. ✓
19 Data transfer after write to medium config. slave. ✓
20 Data transfer after read from medium config. slave. ✓
21 Data transfer after write to slow config. slave. ✓
22 Data transfer after read from slow config. slave. ✓
23 Data transfer after write to subtractive config. slave. ✓
24 Data transfer after read from subtractive config. slave. ✓

Memory Read Multiple Transactions:

Test # Description Pass N/A


If IUT does not implement memory read multiple transactions mark 25 through 28 N/A.
25 Data transfer after memory read multiple from fast slave. ✓

May, 1999 5 - 43
LogiCORE PCI V3.0 Cores PCI Compliance Checklist

Test # Description Pass N/A


26 Data transfer after memory read multiple from medium slave. ✓
27 Data transfer after memory read multiple from slow slave. ✓
28 Data transfer after memory read multiple from subtractive slave. ✓

Memory Read Line Transactions:

Test # Description Pass N/A


If IUT does not implement memory read line transactions mark 29 through 32 N/A.
29 Data transfer after memory read line from fast slave. ✓
30 Data transfer after memory read line from medium slave. ✓
31 Data transfer after memory read line from slow slave. ✓
32 Data transfer after memory read line from subtractive slave. ✓

Memory Write and Invalidate Transactions:

Test # Description Pass N/A


If IUT does not implement memory write and invalidate transactions mark 33 through 36 N/A.
33 Data transfer after memory write and invalidate to fast slave. ✓
34 Data transfer after memory write and invalidate to medium slave. ✓
35 Data transfer after memory write and invalidate to slow slave. ✓
36 Data transfer after memory write and invalidate to subtractive slave. ✓

Test Scenario: 1.7. PCI Bus Multi-Data Phase Disconnect Cycles


Memory Transactions:

Test # Description Pass N/A


If IUT does not implement memory transactions mark 1 through 8 N/A.
1 Data transfer after write to fast memory slave. ✓
2 Data transfer after read from fast memory slave. ✓
3 Data transfer after write to medium memory slave. ✓
4 Data transfer after read from medium memory slave. ✓
5 Data transfer after write to slow memory slave. ✓
6 Data transfer after read from slow memory slave. ✓
7 Data transfer after write to subtractive memory slave. ✓
8 Data transfer after read from subtractive memory slave. ✓

I/O Transactions:

Test # Description Pass N/A


If IUT does not implement I/O transactions mark 9 through 16 N/A.
9 Data transfer after write to fast I/O slave. ✓
10 Data transfer after read from fast I/O slave. ✓
11 Data transfer after write to medium I/O slave. ✓
12 Data transfer after read from medium I/O slave. ✓
13 Data transfer after write to slow I/O slave. ✓

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:

Test # Description Pass N/A


If IUT does not implement configuration transactions mark 17 through 24 N/A.
17 Data transfer after write to fast config. slave. ✓
18 Data transfer after read from fast config. slave. ✓
19 Data transfer after write to medium config. slave. ✓
20 Data transfer after read from medium config. slave. ✓
21 Data transfer after write to slow config. slave. ✓
22 Data transfer after read from slow config. slave. ✓
23 Data transfer after write to subtractive config. slave. ✓
24 Data transfer after read from subtractive config. slave. ✓

Memory Read Multiple Transactions:

Test # Description Pass N/A


If IUT does not implement memory read multiple transactions mark 25 through 28 N/A.
25 Data transfer after memory read multiple from fast slave. ✓
26 Data transfer after memory read multiple from medium slave. ✓
27 Data transfer after memory read multiple from slow slave. ✓
28 Data transfer after memory read multiple from subtractive slave. ✓

Memory Read Line Transactions:

Test # Description Pass N/A


If IUT does not implement memory read line transactions mark 29 through 32 N/A.
29 Data transfer after memory read line from fast slave. ✓
30 Data transfer after memory read line from medium slave. ✓
31 Data transfer after memory read line from slow slave. ✓
32 Data transfer after memory read line from subtractive slave. ✓

Memory Write and Invalidate Transactions:

Test # Description Pass N/A


If IUT does not implement memory write and invalidate transactions mark 33 through 36 N/A.
33 Data transfer after memory write and invalidate to fast slave. ✓
34 Data transfer after memory write and invalidate to medium slave. ✓
35 Data transfer after memory write and invalidate to slow slave. ✓
36 Data transfer after memory write and invalidate to subtractive slave. ✓

Test Scenario: 1.8. Multi-Data Phase and TRDY# Cycles

May, 1999 5 - 45
LogiCORE PCI V3.0 Cores PCI Compliance Checklist

Memory Transactions:

Test # Description Pass N/A


If IUT does not implement multi-data phase memory transactions mark 1 through 12 N/A.
1 Verify that data is written to primary target when TRDY# is released after ✓
2nd rising clock edge and asserted on 3rd rising clock edge after
FRAME#
2 Verify that data is read from primary target when TRDY# is released after ✓
2nd rising clock edge and asserted on 3rd rising clock edge after
FRAME#
3 Verify that data is written to primary target when TRDY# is released after ✓
3rd rising clock edge and asserted on 4th rising clock edge after FRAME#
4 Verify that data is read from primary target when TRDY# is released after ✓
3rd rising clock edge and asserted on 4th rising clock edge after FRAME#
5 Verify that data is written to primary target when TRDY# is released after ✓
3rd rising clock edge and asserted on 5th rising clock edge after FRAME#
6 Verify that data is read from primary target when TRDY# is released after ✓
3rd rising clock edge and asserted on 5th rising clock edge after FRAME#
7 Verify that data is written to primary target when TRDY# is released after ✓
4th rising clock edge and asserted on 6th rising clock edge after FRAME#
8 Verify that data is read from primary target when TRDY# is released after ✓
4th rising clock edge and asserted on 6th rising clock edge after FRAME#
9 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#
10 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#
11 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#
12 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#

Dual Address Cycle Transactions:

Test # Description Pass N/A


If IUT does not implement dual address cycle transactions mark 13 through 24 N/A.
13 Verify that data is written to primary target when TRDY# released after ✓
3rd rising clock edge and asserted on 4th rising clock edge after FRAME#
14 Verify that data is read from primary target when TRDY# released after ✓
3rd rising clock edge and asserted on 4th rising clock edge after FRAME#
15 Verify that data is written to primary target when TRDY# released after ✓
4th rising clock edge and asserted on 5th rising clock edge after FRAME#
16 Verify that data is read from primary target when TRDY# released after ✓
4th rising clock edge and asserted on 5th rising clock edge after FRAME#
17 Verify that data is written to primary target when TRDY# released after ✓
4th rising clock edge and asserted on 6th rising clock edge after FRAME#
18 Verify that data is read from primary target when TRDY# released after ✓
4th rising clock edge and asserted on 6th rising clock edge after FRAME#

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#

Memory Read Multiple Transactions:

Test # Description Pass N/A


If IUT does not implement memory read multiple transactions mark 25 through 30 N/A.
25 Verify that data is read from primary target when TRDY# released after ✓
2nd rising clock edge and asserted on 3rd rising clock edge after
FRAME#
26 Verify that data is read from primary target when TRDY# released after ✓
3rd rising clock edge and asserted on 4th rising clock edge after FRAME#
27 Verify that data is read from primary target when TRDY# released after ✓
3rd rising clock edge and asserted on 5th rising clock edge after FRAME#
28 Verify that data is read from primary target when TRDY# released after ✓
4th rising clock edge and asserted on 6th rising clock edge after FRAME#
29 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#
30 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#

Memory Read Line Transactions:

Test # Description Pass N/A


If IUT does not implement memory read line transactions mark 31 through 36 N/A.
31 Verify that data is read from primary target when TRDY# released after ✓
2nd rising clock edge and asserted on 3rd rising clock edge after
FRAME#
32 Verify that data is read from primary target when TRDY# released after ✓
3rd rising clock edge and asserted on 4th rising clock edge after FRAME#
33 Verify that data is read from primary target when TRDY# released after ✓
3rd rising clock edge and asserted on 5th rising clock edge after FRAME#
34 Verify that data is read from primary target when TRDY# released after ✓
4th rising clock edge and asserted on 6th rising clock edge after FRAME#

May, 1999 5 - 47
LogiCORE PCI V3.0 Cores PCI Compliance Checklist

Test # Description Pass N/A


35 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#
36 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#

Memory Write and Invalidate Transactions:

Test # Description Pass N/A


If IUT does not implement memory write and invalidate transactions mark 37 through 42 N/A.
37 Verify that data is written to primary target when TRDY# released after ✓
2nd rising clock edge and asserted on 3rd rising clock edge after
FRAME#
38 Verify that data is written to primary target when TRDY# released after ✓
3rd rising clock edge and asserted on 4th rising clock edge after FRAME#
39 Verify that data is written to primary target when TRDY# released after ✓
3rd rising clock edge and asserted on 5th rising clock edge after FRAME#
40 Verify that data is written to primary target when TRDY# released after ✓
4th rising clock edge and asserted on 6th rising clock edge after FRAME#
41 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#
42 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#

Test Scenario: 1.9. Bus Data Parity Error Single Cycles


Memory Transactions:

Test # Description Pass N/A


If IUT does not implement memory transactions mark 1 through 3 N/A.
1 Verify the IUT sets Data Parity Error Detected bit when Primary Target ✓
asserts PERR# on IUT memory write
2 Verify that PERR# is active two clocks after the first data phase (which ✓
had odd parity) on IUT memory read
3 Verify the IUT sets Parity Error Detected bit when odd parity is detected ✓
on IUT memory read

I/O Transactions:

Test # Description Pass N/A


If IUT does not implement I/O transactions mark 4 through 6 N/A.
4 Verify the IUT sets Parity Error Detected bit when Primary Target asserts ✓
PERR# on IUT I/O write
5 Verify that PERR# is active two clocks after the first data phase (which ✓
had odd parity) on IUT I/O read
6 Verify the IUT sets Parity Error Detected bit when odd parity is detected ✓
on IUT I/O read

5 - 48 May, 1999
Configuration Transactions:

Test # Description Pass N/A


If IUT does not implement configuration transactions mark 7 through 9 N/A.
7 Verify the IUT sets Parity Error Detected bit when Primary Target asserts ✓
PERR# on IUT config write
8 Verify that PERR# is active two clocks after the first data phase (which ✓
had odd parity) on IUT config read
9 Verify the IUT sets Parity Error Detected bit when odd parity is detected ✓
on IUT config read

Test Scenario: 1.10. Bus Data Parity Error Multi-Data Phase Cycles
Memory Transactions:

Test # Description Pass N/A


If IUT does not implement memory transactions mark 1 through 3 N/A.
1 Verify the IUT sets Parity Error Detected bit when Primary Target asserts ✓
PERR# on IUT multi data phase memory write
2 Verify that PERR# is active two clocks after the first data phase (which ✓
had odd parity) on IUT multi data phase memory read
3 Verify the IUT sets Parity Error Detected bit when odd parity is detected ✓
on IUT Memory multi data phase read

Dual Address Cycle Transactions:

Test # Description Pass N/A


If IUT does not implement dual address transactions mark 4 through 6 N/A.
4 Verify the IUT sets Parity Error Detected bit when Primary Target asserts ✓
PERR# on IUT dual address multi data phase write
5 Verify that PERR# is active two clocks after the first data phase (which ✓
had odd parity) on IUT dual address multi data phase read
6 Verify the IUT sets Parity Error Detected bit when odd parity is detected ✓
on IUT dual address multi data phase read

Configuration Transactions:

Test # Description Pass N/A


If IUT does not implement configuration transactions mark 7 through 9 N/A.
7 Verify the IUT sets Parity Error Detected bit when Primary Target asserts ✓
PERR# on IUT config multi-data phase write
8 Verify that PERR# is active two clocks after the first data phase (which ✓
had odd parity) on IUT config multi-data phase read
9 Verify the IUT sets Parity Error Detected bit when odd parity is detected ✓
on IUT config multi-data phase read

May, 1999 5 - 49
LogiCORE PCI V3.0 Cores PCI Compliance Checklist

Memory Read Multiple:

Test # Description Pass N/A


If IUT does not implement memory read multiple transactions mark 10 through 11 N/A.
10 Verify that PERR# is active two clocks after the first data phase (which ✓
had odd parity) on IUT memory read multiple data phase.
11 Verify the IUT sets Parity Error Detected bit when odd parity is detected ✓
on IUT memory read multiple data phase.

Memory Read Line:

Test # Description Pass N/A


If IUT does not implement memory read line transactions mark 12 through 13 N/A.
12 Verify that PERR# is active two clocks after the first data phase (which ✓
had odd parity) on IUT memory read line data phase.
13 Verify the IUT sets Parity Error Detected bit when odd parity is detected ✓
on IUT memory read line data phase.

Memory Write and Invalidate:

Test # Description Pass N/A


If IUT does not implement memory write and invalidate transactions mark 14 N/A.
14 Verify the IUT sets Parity Error Detected bit when Primary Target asserts ✓
PERR# on IUT memory write and invalidate data phase.

Test Scenario: 1.11. Bus Master Timeout


Test # Description Pass N/A
1 Memory write transaction terminates before 4 data phases completed ✓
2 Memory read transaction terminates before 4 data phases completed ✓
3 Config write transaction terminates before 4 data phases completed ✓
4 Config read transaction terminates before 4 data phases completed ✓
5 Memory read multiple transaction terminates before 4 data phases ✓
6 Memory read line transaction terminates before 4 data phases ✓
7 Dual Address write transaction terminates before 4 data phases complete ✓
8 Dual Address read transaction terminates before 4 data phases complete ✓
If IUT does not support cache coherent transactions mark 9 N/A.
9 Memory write invalidate terminates on line boundary ✓

Test Scenario: 1.12. Target Lock


Test # Description Pass N/A
If IUT does not support locked transactions mark 1 through 5 N/A.
1 IUT does not perform bus transaction (read lock) on locked resource ✓
2 IUT does establish lock after lock is released ✓
3 IUT does release lock after write to primary target ✓
4 IUT does not establish lock when it detects retry ✓
5 IUT does not establish lock when it detects target abort ✓

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.

Test Scenario: 1.14. PCI Bus Master Arbitration


Test # Description Pass N/A
Verify that the IUT is able to complete bus transaction when GNT# is deasserted coincident with FRAME# as-
serted.
1 IUT completes transaction when de-asserting GNT# is coincident with as- ✓
serting FRAME#.

Test Scenario 1.x Explanations.

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

Component Protocol Checklist for a Target Device


Definition: IUT is an acronym for “Implementation Under Test”.

Test Scenario: 2.1. Target Reception of an Interrupt Cycle.


Test # Description Pass N/A
If IUT does not respond to Interrupt Acknowledge bus transactions mark 1 through 2 N/A
1 IUT generates interrupts when programmed ✓
2 IUT clears interrupts when serviced (may include driver specific actions) ✓

Test Scenario: 2.2. Target Reception of a Special Cycle.


Test # Description Pass N/A
If IUT does not implement Special Cycles mark 1 through 2 N/A
1 No DEVSEL# assertion by IUT after Special Cycle ✓
2 IUT receives encoded special cycle ✓

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 ✓

Test Scenario: 2.5. Target Ignores Reserved Commands.


Test # Description Pass N/A
1 IUT does not respond to reserved commands ✓
2 Initiator detects master abort for each transfer ✓
For 32-bit targets
3 IUT does not respond to 64bit cycle (dual address) ✓

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 ✓

Test Scenario: 2.9. Target Receives Memory Cycles.


Test # Description Pass N/A
If IUT does not interface to a memory subsystem mark all N/A
1 IUT completes single memory read and write cycles appropriately ✓
If IUT does not interface to main system memory or memory is not cacheable mark 2 to 4 N/A
2 IUT completes memory read line cycles appropriately ✓
3 IUT completes memory read multiple cycles appropriately ✓
4 IUT completes memory write and invalidate cycles appropriately ✓
5 IUT disconnects after one cycle on reserved memory operations ✓
6 IUT disconnects on burst transactions that cross address boundaries ✓

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.11. Target Gets Fast Back to Back Cycles.


Test # Description Pass N/A
1 IUT responds to back to back memory writes appropriately ✓
2 IUT responds to memory write followed by memory read appropriately ✓
If IUT does not implement the “Fast Back-to-Back Bit” then mark 3 and 4 N/A
3 IUT responds to back to back memory writes with 2nd write selecting IUT ✓
4 IUT responds to memory write followed by memory read with read select- ✓
ing IUT

Test Scenario: 2.12. Target Performs Exclusive Access Cycles.


Test # Description Pass N/A
If the IUT does not implement LOCK# mark all N/A
1 IUT responds to exclusive access by initiator and accepts LOCK# ✓
2 IUT responds with retry when second initiator attempts an access ✓
3 IUT responds to access releasing LOCK# by initiator ✓
4 IUT responds to access by second initiator ✓

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

5 PCI Compliance Checklists

6 Pinout and Configuration

7 Resources

8 Waveforms

9 Ordering Information and License Agreement

10 Sales Offices, Sales Representatives, and Distributors


Pinout and Configuration
6
0
0 May, 1999

Pinout and Configuration


Layout Considerations one of the serial configuration modes. Pins without a PCI
function listed are available as additional user I/O.
The PQ pinouts Xilinx supplies follow the PCI-SIG sug-
gested pinout and aligns the PCI data path (ADIO[31:0]) Note: If there are conflicts between these tables and the
constraints file, the constraints file has
along the horizontal long lines in the FPGA. The horizontal precedence.
Long-lines support internal 3-state busses. Various regis-
Due to the complexity of the Virtex I/O, the V300 pinout
ters, such as the Base Address Registers, are aligned ver-
table will only list the PCI specific pins. Refer to the Virtex
tically, in columns.
data sheet for details on the remaining pins.
Since the BG432 package used by the XC4062XLA is cav-
ity down, the LogiCORE PCI Interface is placed on the Configuration Mode
other side of the die.
The LogiCORE PCI Interface is designed to use Serial
Compatibility Considerations Master Mode or Slave Mode for configuring the device. An
external serial configuration device, such as the Xchecker
Here are a few issues to consider in design your PCB. cable or an embedded processor is required for Serial
• If you are migrating from an XC4000XLT to an Slave Mode.
XC4000XLA device, all pinouts are identical except the Use of the XC4000XLA or SpartanXL fast configuration
Vtt pins become regular I/Os. mode is recommended to minimize the FPGA power-up
• Spartan and SpartanXL pinouts are identical for the configuration time. The fast mode is set as part of the
same packages. MakeBits options in the XDM profile read in during the
• Spartan/SpartanXL PQ208 and XC4000XLA PQ208 design compilation phase.
PCI pinouts do not match, due to a different bondout on
Please refer to the Xilinx Programmable Logic Data Book
the Spartan/SpartanXL PQ208.
for additional information.
• The SpartanXL PQ240 and the XC4000XLA PQ/
HQ240 PCI pinouts match. The Xchecker is useful during debugging. However, the PCI
system needs to be held reset while the FPGA's bit-stream
Pinout Tables is loaded. If using an embedded processor, the user needs
The following pinout tables list the PCI pin assignment for to insure that configuration will not be delayed by interrupts
these supported packages: to the processor, and that it is capable of configuring it prior
to the assertion of IDSEL. Currently the v2.1 PCI Specifica-
• Table 1 XC4013XLAPQ208 tion does not specify a time requirement for the initial
• Table 2 XC4013XLAPQ240 asserting of IDSEL after power-on. Currently, there is a pro-
• Table 3 XC4028XLAPQ240 posal for the v2.2 PCI Specification to require 2^25 clocks
• Table 4 XC4062XLAPQ240 before configuring the PCI bus after power-on. Until this is
• Table 5 XC4062XLABG432 required in the PCI Specification, Xilinx recommends use of
• Table 6 XCS20TQ144 the Master Serial fast mode to assure the FPGA is config-
• Table 7 XCS30PQ208 ured at the time of IDSEL assertion.
• Table 8 XCS30PQ240
• Table 9 XCS40PQ208
• Table 10 XCS40PQ240
• Table 10 XCV300BG432 (64 bit)
For each pin, both the PCI function and the fundamental
device pin function are listed. Those shown in bold italics
are dedicated pins for configuring the FPGA device using

May, 1999 6-1


Pinout and Configuration

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

6-2 May, 1999


Table 1: Pinout for the XC4013XLA PQ208 (Continued) Table 1: Pinout for the XC4013XLA PQ208 (Continued)

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

May, 1999 6-3


Pinout and Configuration

Table 1: Pinout for the XC4013XLA PQ208 (Continued)

Pin Function PCI Function PQ208


VCC VCC P183
I/O (A8) P184
I/O (A9) P185
I/O (A19) P186
I/O (A18) P187
I/O P188
I/O P189
I/O (A10) P190
I/O (A11) AD31 P191
I/O P192
I/O AD30 P193
GND GND P194
I/O AD29 P195
I/O AD28 P196
I/O AD27 P197
I/O AD26 P198
I/O (A12) AD25 P199
I/O (A13) AD24 P200
I/O CBE3 P201
I/O IDSEL P202
I/O (A14) P203
I/O, GCK8 (A15) P204
VCC VCC P205
N.C. N.C. P206
N.C. N.C. P207
N.C. N.C. P208

6-4 May, 1999


Pinout for the XC4013XLA PQ240 Table 2: Pinout for the XC4013XLA PQ240 (Continued)

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

May, 1999 6-5


Pinout and Configuration

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

6-6 May, 1999


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 (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

May, 1999 6-7


Pinout and Configuration

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

6-8 May, 1999


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

May, 1999 6-9


Pinout and Configuration

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

Table 7: Pinout for the XCS30 PQ208 (Continued)

Pin Function PCI Function PQ208


I/O P184
I/O P185
I/O P186
I/O P187
I/O P188
I/O P189
I/O P190
I/O AD31 P191
VCC VCC P192
I/O AD30 P193
I/O AD29 P194
GND GND P195
I/O AD28 P196
I/O AD27 P197
I/O AD26 P198
I/O AD25 P199
I/O AD24 P200
I/O CBE3 P201
I/O IDSEL P202
I/O P203
I/O P204
I/O P205
I/O P206
I/O, SGCK1 P207
VCC VCC P208

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

Table 9: Pinout for the XCS40 PQ208 (Continued)

Pin Function PCI Function PQ208


I/O P184
I/O P185
I/O P186
I/O P187
I/O P188
I/O P189
I/O P190
I/O AD31 P191
VCC VCC P192
I/O AD30 P193
I/O AD29 P194
GND GND P195
I/O AD28 P196
I/O AD27 P197
I/O AD26 P198
I/O AD25 P199
I/O AD24 P200
I/O CBE3 P201
I/O IDSEL P202
I/O P203
I/O P204
I/O P205
I/O P206
I/O, SGCK1 P207
VCC VCC P208

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

5 PCI Compliance Checklists

6 Pinout and Configuration

7 Resources

8 Waveforms

9 Ordering Information and License Agreement

10 Sales Offices, Sales Representatives, and Distributors


Resources
7
0
0 May, 1999

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.

May, 1999 7-1


Resources

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.

Dark Room Technologies, Inc. has been specializing in


Xilinx FPGA design consulting since 1987, and doing
product development and engineering consulting since
1976. We have done over 50 FPGA design including
interfaces to SCSI, PCI, ISA/EISA, Turbo channel, ATM,

7-2 May, 1999


PCI Reference Books 11848 Bernardo Center Drive
Suite 110
There are many reference books available on PCI. The fol- San Diego, CA 92128
lowing are a few that the LogiCORE development team Phone: +1 619-673-0870
found useful.
+1 800-462-1042
PCI System Architecture by Tom Shanley and Don Ander- Fax: +1 619-673-1432
son. ISBN 1-881609-08-1. An excellent general reference E-mail: info@annabooks.com
book on PCI. This book is included with the LogiCORE PCI URL: www.annabooks.com
product.

Contact: Xilinx Documents


Mindshare Press
See the Xilinx web page at
2202 Buttercup Dr.
Richardson, TX 75082 www.xilinx.com/pci
Phone: +1 214-231-2216 for available literature.
Fax: +1 214-783-4715
IMPORTANT! Be sure to visit the Xilinx WebLINX web
Distributed by: site for the latest information and application notes
Computer Literacy Bookshops, Inc. using the LogiCORE PCI interface.
P.O. Box 641897
San Jose, CA 95164 LogiCORE User's Lounge
Phone: +1 408-435-0744 The LogiCORE User's Lounge web site provides a quick
Fax: +1 408-435-1823 and convenient way to obtain the latest updates, documen-
E-mail: contact-us@fatbrain.com tation, design tips, application notes, and utilities. The
URL: www.fatbrain.com Lounge web site is open to registered LogiCORE users. To
register, point your Internet browser software to:
PCI Hardware and Software, 4th Edition by Edward Solari www.xilinx.com/pci
& George Willse. ISBN 0-929392-59-0. Everything that you
ever wanted to know about PCI systems design, and more.

Contact:
Annabooks

May, 1999 7-3


Resources

7-4 May, 1999


11


Waveforms

1 Introduction

2 PCI Products

3 FPGA Products

4 Design Methodology

5 PCI Compliance Checklists

6 Pinout and Configuration

7 Resources

8 Waveforms

9 Ordering Information and License Agreement

10 Sales Offices, Sales Representatives, and Distributors


Waveforms
8
0
0 May, 1999

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.

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
Initiator 64-bit Burst Memory Read Multiple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 - 30
Initiator 64-bit Burst Memory Write . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 - 32
Initiator 64-bit Burst Memory Write with Disconnect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 - 34
Initiator 64-bit Memory Read of a 32-bit Target. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 - 36
Initiator 64-bit Memory Write of a 32-bit Target. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 - 38
Target 64-bit Burst Memory Read Multiple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 - 40
Target 64-bit Burst Memory Write . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 - 42
Target 64-bit Burst Memory Write with Disconnect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 - 44
Target 64-bit Retry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 - 46
Target 64-bit Abort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 - 48

May, 1999 8-1


Waveforms

Target Configuration Read The transaction continues and completes in accordance


with a single cycle read. The Xilinx PCI core always termi-
Figure 1 represents a Configuration Read transaction. In nates configuration transactions with a “disconnect with
this transaction, data from configuration space (in this case data” where DEVSEL#, STOP#, and TRDY# are all
the devices and vendor IDs) is driven onto the ADIO[31:0] asserted since burst configuration cycles are not supported
bus. The “cfg.v/.vhd” file is the source of the configuration in Xilinx PCI Interfaces. For details on using extended con-
space setting. figuration space (addresses from 40h to FFh) refer to the
Xilinx PCI Design Guide.
Address Phase

The host asserts IDSEL and puts the address on the PCI
bus. The address appears on the ADIO bus one cycle later.

Data Phase

Since the address is in the first 64 bytes of configuration,


the PCI core automatically responds to this transactions.
The PCI core asserts CFG_VLD and ADDR_VLD, indicat-
ing the Target has a valid configuration cycle address on
the ADIO bus. CFG_HIT and DEVSEL# are then asserted.

8-2 May, 1999


CLK

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

Target Configuration Write The transaction continues and completes in accordance


with a single cycle write. The Xilinx PCI core always termi-
Figure 2 represents a Configuration Write transaction. In nates configuration transactions with a “disconnect with
this transaction, data from the host is written into Base data” where DEVSEL#, STOP#, and TRDY# are all
Address Register 1. asserted since burst configuration cycles are not supported
Address Phase in Xilinx PCI Interfaces. For details on using extended con-
figuration space (addresses from 40h to FFh) refer to the
The host asserts IDSEL and puts the address on the PCI Xilinx PCI Design Guide.
bus. The address appears on the ADIO bus one cycle later.

Data Phase

Since the address is in the first 64 bytes of configuration,


the PCI core automatically responds to this transactions.
The PCI core asserts CFG_VLD and ADDR_VLD, indicat-
ing the Target has a valid configuration cycle address on
the ADIO bus. CFG_HIT and DEVSEL# are then asserted.

8-4 May, 1999


CLK

May, 1999
FRAME#

C/BE#[3:0] 1111 1011 0000 1111


AD[31:0] ffffffff 00000014 f0000000 ffffffff
ADIO[31:0] 00000014 f0000000
IRDY#
TRDY#
STOP#
IDSEL
Figure 2: Target Configuration Write

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

Initiator 32-bit Single Memory Read Data Phase

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.

8-6 May, 1999


CLK

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

Initiator 32-bit Single Memory Write Data Phase

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.

8-8 May, 1999


CLK

May, 1999
REQ#
GNT#
FRAME#

C/BE#[3:0] 1111 0000 0111 0000 1111

AD[31:0] ffffffff 00000000 c0000000 00320649 ffffffff

ADIO[31:0] c0000000 00320649 00469126


IRDY#
TRDY#
STOP#
IDSEL
Figure 4: Initiator 32-bit Single Memory Write

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.

Address Phase M_DATA_VLD indicates the data is present on the AD bus


and is used to advance the Initiator address pointer. With
The M_ADDR_N signal is used to drive the output-enable both IRDY# and TRDY# asserted, the data transfer occurs
of the 3-state buffers (BUFTs) which enable the valid without inserted wait states from either agent. COMPLETE
address onto the internal ADIO bus one CLK cycle before is asserted on the next to last data phase, since the Initiator
the assertion of FRAME#. Once the Initiator asserts has to deassert FRAME# at the beginning of the last data
FRAME#, it drives the AD lines with the address put on the phase. The transfer completes with the deassertion of
ADIO bus during the previous CLK cycle, and drives a IRDY#, TRDY#, and DEVSEL# and the bus has a turn-
Memory Read Multiple command (1100), supplied by the around cycle. The signal M_WRDN is asserted low to rep-
user to the backend (M_CBE[3:0], not shown), onto the C/ resent data is being read.
BE# lines.

Data Phase

The M_DATA phase begins on the CLK cycle immediately


following the M_ADDR_N phase. During M_DATA, the byte

8 - 10 May, 1999
CLK

May, 1999
REQ#
GNT#
FRAME#

C/BE#[3:0] 1111 0000 1100 0000 1111

AD[31:0] ffffffff 00469126 c0000000 00320649 00469126 0078976f 00bf2895 ffffffff

ADIO[31:0] c0000000 00469126 c0000000 00320649 00469126 0078976f 00bf2895


IRDY#
TRDY#
STOP#
IDSEL
DEVSEL#
PAR
Figure 5: Initiator 32-bit Burst Memory Read Multiple

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

Initiator 32-bit Burst Memory Write Data Phase

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#

C/BE#[3:0] 1111 0000 0111 0000 1111

AD[31:0] ffffffff 0078976f c0000000 00320649 00469126 0078976f 00bf2895 ffffffff

ADIO[31:0] c0000000 00320649 00469126 0078976f 00bf2895 0137c004


IRDY#
TRDY#
STOP#
Figure 6: Initiator 32-bit Burst Memory Write

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.

Address Phase The Target signalled a disconnect by asserting STOP#, and


kept TRDY# asserted so that the third Dword was trans-
The M_ADDR_N signal is used to drive the output-enable ferred. The last data phase does not have a data transfer
of the 3-state buffers (BUFTs) which enable the valid because TRDY# is not asserted. M_SRC_EN is asserted
address onto the internal ADIO bus one CLK cycle before for four cycles and M_DATA_VLD is asserted for only three
the assertion of FRAME#. Once the Initiator asserts cycles. Since there is a difference between the number of
FRAME#, it drives the AD lines with the address put on the data transfers anticipated (four), and the number that
ADIO bus during the previous CLK cycle, and drives a occurred (three), the user design may have to perform a
Memory Write command (0111), supplied by the user to the backup of the FIFO. Details on how to do this are docu-
backend (M_CBE[3:0], not shown), onto the C/BE# lines. mented in the Xilinx PCI Design Guide.

Data Phase The transfer completes with the deassertion of IRDY#,


STOP#, and DEVSEL# and the bus has a turnaround
The M_DATA phase begins on the CLK cycle immediately cycle. The signal M_WRDN is asserted high to represent
following the M_ADDR_N phase. During M_DATA, the byte data is being written.
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 - 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#

C/BE#[3:0] 1111 0110 0000 1111


AD[31:0] ffffffff f0000000 ffffffff 00bf2895 00320649 ffffffff
ADIO[31:0] f0000000 00320649 00469126 0078976f
IRDY#
TRDY#
STOP#
IDSEL
DEVSEL#
Figure 8: Target 32-bit Single Memory Read

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

Target 32-bit Single Memory Write Data Phase

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

Target 32-bit Burst Memory Write Data Phase

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#

C/BE#[3:0] 1111 0111 0000 1111


AD[31:0] ffffffff f0000000 00320649 00469126 0078976f 00bf2895 ffffffff
ADIO[31:0] f0000000 00320649 00469126 0078976f 00bf2895
IRDY#
TRDY#
STOP#
IDSEL
DEVSEL#
Figure 11: Target 32-bit Burst 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)
9600.0 9630.0 9660.0 9690.0 9720.0 9750.0 9780.0 9810.0 9840.0

8 - 23
Waveforms

Target 32-bit Burst Memory Write with Data Phase


Disconnect
The PCI Interface sees that the bus is no longer idle and
Figure 12 represents a Target Memory Write transaction asserts Target state machine signals, IDLE and B_BUSY.
where the backend causes a disconnect with data termina- After B_BUSY, the Target state machine enters the
tion. In this transaction data is captured from the ADIO bus S_DATA state, indicating that the backend will begin trans-
to a FIFO in the user design. Disconnect with Data occurs ferring data. DEVSEL# is asserted as a medium decode
when both S_READY and S_TERM are asserted. speed. The PCI Interface always adds one cycle of TRDY#
latency after DEVSEL# assertion.
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 Write command (0111) onto S_WRDN is asserted high to represent that data is being
C/BE#. The Initiator signals that it wants to transfer multiple written to the target.
Dwords by keeping FRAME# asserted and asserting
IRDY# on the next cycle. ADDR_VLD is asserted one cycle Initially, S_READY is asserted and S_TERM is deasserted,
after the address phase, indicating that a valid address is indicating that the backend is able to transfer more than
present on ADIO. The ADDR_VLD is used by the user one Dword. S_TERM is asserted with two more Dwords to
design to capture a copy of this address into the address transfer. The equation for S_TERM is usually derived from
counter. the Almost Full flag on the FIFO. One cycle later, STOP# is
asserted, and the Initiator concludes the transaction by
deasserting FRAME# and then IRDY# on the subsequent
cycle. Only a single Dword is transferred after STOP# is
asserted.

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.

Data Phase On the rising CLK edge after S_ABORT is asserted,


STOP# is asserted and both TRDY# and DEVSEL# are
The PCI Interface sees that the bus is no longer idle and deasserted. As a result, FRAME# is deasserted on the next
asserts Target state machine signals, IDLE and B_BUSY. CLK cycle which ends the transaction.
After B_BUSY, the Target state machine enters the
S_DATA state, indicating that the backend will begin trans- The states of S_READY and S_TERM are not particularly
ferring data. DEVSEL# is asserted as a medium decode relevant since asserting S_ABORT causes the Target state
speed. The PCI Interface always adds one cycle of TRDY# machine to do a Target abort.

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

Initiator 64-bit Burst Memory Read Multiple Data Phase

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

Initiator 64-bit Burst Memory Write Data Phase

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

ffffffff 00469126 00bf2895 01f6e899


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

 Ordering Information and


License Agreement

1 Introduction

2 PCI Products

3 FPGA Products

4 Design Methodology

5 PCI Compliance Checklists

6 Pinout and Configuration

7 Resources

8 Waveforms

9 Ordering Information and License Agreement

10 Sales Offices, Sales Representatives, and Distributors


9
0
0 May, 1999

Ordering Information and License Agreement


Summary - Master and Slave (Initiator/Target) functionality
- Configurable and downloadable from Xilinx web
Xilinx provides a complete solution for development of fully
- CD available upon request only
compliant PCI and CompactPCI products. This chapter
• LogiCORE PCI32 Spartan Interface
describes the various product packages. See Table 1 for a
- Master and Slave (Initiator/Target) functionality
quick overview. Please refer to the individual data sheets
- Configurable and downloadable from Xilinx web
for details. Call your local sales office for the latest availabil-
- CD available upon request only
ity and pricing information.
• Synthesizable PCI Bridge Design Examples
- VHDL and Verilog source files
Xilinx PCI64 Design Kit - On-line Design Examples User's Guide
Part no: DO-DI-PCI64-DK • LogiCORE PCI Design Guide
• LogiCORE PCI Implementation Guide
Overview • PCI System Architecture (Reference Book from
MindShare, Inc.)
The LogiCORE PCI64 Virtex interface allows the user to
• Nallatech PCI64 Prototyping System
rapidly implement 64-bit PCI Interfaces. By forming a part-
- 64-bit, 66 MHz PCI Virtex prototyping board
nership with Nallatech Limited, and Compuware NuMega,
- Example drivers (NuMega)
formerly Vireo Software, our customers will always have
- PCI64 User's Guide
access to the leading industry expertise.
- Demo software
• NuMega DriverWorks Development tools for Windows
Package Includes
NT/98 drivers
See individual data sheets for details - Fully functional development tools
• LogiCORE PCI64 Virtex Interface - Development and prototyping license
- Master and Slave (Initiator/Target) functionality - Unrestricted license required for production and is
- Configurable and downloadable from Xilinx web available from NuMega
- CD available upon request only - Technical support provided by NuMega only
• LogiCORE PCI32 4000 Interface • NuMega VtoolsD Development tools for Windows 95/98

Table 1: Xilinx PCI Product Line

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

May, 1999 9-1


Ordering Information and License Agreement

and 3.x drivers Package Includes


- Fully functional development tools
- Development and prototyping license See individual data sheets for details.
- Unrestricted license required for production and is • LogiCORE 32-bit 33 MHz PCI designs
available from NuMega - Master and Slave (Initiator/Target) functionality
- Technical supported provided by NuMega only - zero wait-state
- Configurable and downloadable from Xilinx web
Xilinx PCI64 Virtex - CD available upon request only
• Synthesizable PCI Bridge Design Examples
Part no: DO-DI-PCI64 - VHDL and Verilog source files
- On-line Design Examples User's Guide
Overview • Xilinx PCI Design Guide
The LogiCORE PCI64 Virtex interface allows the user to • Xilinx PCI Implementation Guide
rapidly implement 64 bit bits interfaces. Based on the • PCI System Architecture (Reference Book from
proven LogiCORE PCI32 Interface, the designer will be MindShare, Inc.)
able to implement custom 64 bit, 66 MHz PCI Interfaces. • VCC HotPCI Prototyping System
- PCI32 Spartan prototyping board
Package Includes - Example drivers (NuMega)
See individual data sheets for details - HotPCI User's Guide
- Demo software CD for Windows NT, 98/95
• LogiCORE PCI64 Virtex Interface • NuMega DriverWorks Development tools for Windows
- Master and Slave (Initiator/Target) functionality NT/98 drivers
- Configurable and downloadable from Xilinx web - Fully functional development tools
- CD available upon request only - Development and prototyping license
• LogiCORE PCI32 4000 Interface - Unrestricted license required for production and is
- Master and Slave (Initiator/Target) functionality available from NuMega
- Configurable and downloadable from Xilinx web - Technical support provided by NuMega only
- CD available upon request only • NuMega VtoolsD Development tools for Windows 95/98
• LogiCORE PCI32 Spartan Interface and 3.x drivers
- Master and Slave (Initiator/Target) functionality - Fully functional development tools
- Configurable and downloadable from Xilinx web - Development and prototyping license
- CD available upon request only - Unrestricted license required for production and is
• Synthesizable PCI Bridge Design Examples available from NuMega
- VHDL and Verilog source files - Technical supported provided by NuMega only
- On-line Design Examples User's Guide
• LogiCORE PCI User's Guide LogiCORE PCI32 Spartan
• LogiCORE PCI Implementation Guide
• PCI System Architecture (Reference Book from Part no: DO-DI-PCI32-S
MindShare, Inc.)
Overview
Xilinx PCI32 Design Kit The LogiCORE PCI32 Spartan interface is included in Xil-
Part no: DO-DI-PCI32-DK inx PCI32 Design Kit, but may be purchased separately as
a web-only, release.
Overview
Package Includes
To minimize the learning curve for PCI and to enable rapid
See individual data sheets for details
development and prototyping, Xilinx provides a complete
PCI Design Kit including cores, a prototyping board and • LogiCORE PCI32 Spartan and SpartanXL Interface
driver development tools. By forming a partnership with Vir- - Configurable and downloadable from Xilinx web
tual Computer Corporation, leading provider of rapid proto- - Support for Xilinx Spartan and SpartanXL families
typing boards and reconfigurable computing systems, and (see data sheet for specific parts)
Compuware Numega, formerly Vireo Software, leading - Master and Slave (Initiator/Target) functionality
provider of device driver tools, our customers will always - On-line LogiCORE PCI32 User's Guide
have access to the leading industry expertise.

9-2 May, 1999


Support, Updates, and Licensing Technical support for NuMega DriverWorks, and VtoolsD
driver development tools are provided by NuMega only. The
All Xilinx PCI products include a twelve-month mainte- NuMega DriverWorks and VtoolsD driver development
nance contract including free updates is included with pur- tools are licensed for development and prototyping only. An
chase. After expiring, the maintenance contract may be unrestricted license can be purchased from NuMega Soft-
renewed annually. Included in this contract are the following ware.
items:
• Access to Xilinx LogiCORE PCI Lounges Licensing
www.xilinx.com/pci/ Xilinx LogiCORE PCI64 Interfaces are licensed under the
- LogiCORE PCI design files and updates standard LogiCORE license agreement, at the end of this
- Reference Designs chapter. Additional licenses are available for evaluation or
- Extensive Application Notes for design with non-Xilinx technology. Contact your local Xil-
- Known issues and design tips inx representative for more details.
• Answer Database on Xilinx web-site
support.xilinx.com Product Upgrades
• Hotline telephone support
Existing Xilinx PCI customers with valid maintenance
• Apps fax and email
agreements may be able to upgrade a PCI product to
• Technical email Newsletter
another. See Figure 3 for available upgrade paths.

PCI64/66 Design Kit


DO-DI-PCI64-DK

DX-DI-M2DK-DK DX-DI-PCI64* DX-DI-PCI32-DK


d
ue
in
nt
co

PCI Master V2.0 PCI32 Design Kit PCI64 Virtex


is

DO-DI-PCIM DO-DI-PCI32-DK DO-DI-PCI64


D

DX-DI-S2M DX-DI-PCI32-DK
ers
rd
O
w

PCI Slave V2.0 PCI32 Spartan


ne

DO-DI-PCIS DO-DI-PCI32-S
o
N

*Also a valid update from PCI Master V2.0

Figure 3: Upgrade paths for various Xilinx PCI products

May, 1999 9-3


Ordering Information and License Agreement

Additional PCI Products


Additional products are available from Xilinx PCI partners
Nallatech, VCC and Compuware Numega. For pricing and
availability, please contact the partners directly.

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

9-4 May, 1999


XILINX LOGICORETM PCI INTEFACE LICENSE AGREEMENT
PLEASE READ THIS DOCUMENT CAREFULLY BEFORE USING Limitation of Liability: IN NO EVENT WILL XILINX OR ITS
THE XILINX LOGICORE PCI INTERFACE DESIGN. UNLESS LICENSORS BE LIABLE FOR ANY LOSS OF DATA, LOST PROF-
YOU HAVE A SEPARATE WRITTEN LICENSE EXECUTED BY ITS, COST OF PROCUREMENT OF SUBSTITUTE GOODS OR
XILINX COVERING YOUR USE OF THE DESIGN, BY USING SERVICES, OR FOR ANY SPECIAL, INCIDENTAL, CONSE-
THE DESIGN, YOU ARE AGREEING TO BE BOUND BY THE QUENTIAL OR INDIRECT DAMAGES ARISING FROM THE USE
TERMS OF THIS LICENSE. OR OPERATION OF THE DESIGN OR ACCOMPANYING DOCU-
License: XILINX, INC. ("XILINX") hereby grants you a nonexclu- MENTATION, HOWEVER CAUSED AND ON ANY THEORY OF
sive, non-transferable license to use the LOGICORE PCI INTER- LIABILITY. THIS LIMITATION WILL APPLY EVEN IF XILINX HAS
FACE design (the "Design"), solely for your use in developing BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
designs for XILINX programmable logic devices or XILINX Hard- THIS LIMITATION SHALL APPLY NOTWITHSTANDING THE FAIL-
Wire™ devices. Use of the Design in non-XILINX devices or tech- URE OF THE ESSENTIAL PURPOSE OF ANY LIMITED REME-
nologies is prohibited unless you have entered into a separate DIES HEREIN.
written agreement with XILINX for such use. XILINX retains title to Export Restriction: You agree that you will not export or re-export
the Design and to any patents, copyrights, trade secrets and other the Design, reference images or accompanying documentation in
intellectual property rights therein. To protect such intellectual any form without the appropriate United States and foreign govern-
property rights, you may not decompile, reverse engineer, disas- ment licenses. Your failure to comply with this provision is a mate-
semble, or otherwise reduce the Design to a human - perceivable rial breach of this Agreement.
form. You may not modify or prepare derivative works of the Design Third Party Beneficiary: You understand that portions of the
in whole or in part, except with respect to any source code for the Design and related documentation may have been licensed to XIL-
Design supplied by XILINX. This License allows you to make an INX from third parties and that such third parties are intended third
unlimited number of copies of any source code, schematics and party beneficiaries of the provisions of this Agreement.
other documentation supplied by XILINX for the Design for internal
use only, including without limitation modified versions thereof, pro- Non-Transferable: You may not provide design source information
vided you reproduce on each such copy the copyright and any including, but not limited to, schematics, hardware description lan-
other proprietary legends that were on the original copy. guage source code, or netlist files, to a third party without prior writ-
ten approval from XILINX. You may provide device programming
Termination: This License is effective until terminated. You may files—XILINX bit-stream files or PROM files—or the resulting Hard-
terminate this License at any time by destroying the Design and all Wire gate array to third-parties without prior approval.
copies thereof. This License will terminate immediately without
notice from XILINX if you fail to comply with any provision of this Interoperability: If you acquired the Design in the European Union
License. Upon termination you must destroy the Design and all (EU), even if you believe you require information related to the
copies thereof. interoperability of the Design with other programs, you shall not
decompile or disassemble the Design to obtain such information,
Governmental Use: The Design is commercial computer software and you agree to request such information from Xilinx at the
developed exclusively at Xilinx’s expense. Accordingly, pursuant to address listed above. Upon receiving such a request, Xilinx shall
the Federal Acquisition Regulations (FAR) Section 12.212 and determine whether you require such information for a legitimate
Defense FAR Supplement Section 227.7202, use, duplication and purpose and, if so, Xilinx will provide such information to you within
disclosure of the Design by or for the Government is subject to the a reasonable time and on reasonable conditions.
restrictions set forth in this License Agreement. Manufacturer is
XILINX, INC., 2100 Logic Drive, San Jose, California 95124 Governing Law: This License shall be governed by the laws of the
State of California, without reference to conflict of laws principles,
Limited Warranty and Disclaimer: THE DESIGN IS PROVIDED provided that if the Design is acquired in the EU, this License shall
TO YOU "AS IS". XILINX AND ITS LICENSORS MAKE AND YOU be governed by the laws of the Republic of Ireland. The local lan-
RECEIVE NO WARRANTIES OR CONDITIONS, EXPRESS, guage version of this License shall apply to any Design acquired in
IMPLIED, STATUTORY OR OTHERWISE, AND XILINX SPECIFI- the EU. Irish law provides that certain conditions and warranties
CALLY DISCLAIMS ANY IMPLIED WARRANTIES OF MER- may be implied in contracts for the sale of goods and in contracts
CHANTABILITY, NON-INFRINGEMENT, OR FITNESS FOR A for the supply of services. Such conditions and warranties are
PARTICULAR PURPOSE. XILINX does not warrant that the func- hereby excluded, to the extent such exclusion, in the context of this
tions contained in the Design will meet your requirements, or that transaction, is lawful under Irish law. Conversely, such conditions
the operation of the Design will be uninterrupted or error free, or and warranties, insofar as they may not be lawfully excluded, shall
that defects in the Design will be corrected. Furthermore, XILINX apply. Accordingly nothing in this License shall prejudice any rights
does not warrant or make any representations regarding use or the that you may enjoy by virtue of Sections 12, 13, 14 or 15 of the Irish
results of the use of the Design in terms of correctness, accuracy, Sale of Goods Act 1893 (as amended).
reliability or otherwise.
General: If for any reason a court of competent jurisdiction finds
any provision of this License, or portion thereof, to be unenforce-
able, that provision of the License shall be replaced to the maxi-
mum extent permissible so as to effectuate the intent of the parties,
and the remainder of this License shall continue in full force and
effect. This License constitutes the entire agreement between the
parties with respect to the use of this Design and related documen-
tation, and supersedes all prior or contemporaneous understand-
ings or agreements, written or oral, regarding such subject matter.

May, 1999 9-5


Ordering Information and License Agreement

XILINX REFERENCE DESIGN LICENSE AGREEMENT


By using the accompanying Xilinx, Inc. Reference Designs Xilinx makes no representation that the Designs will pro-
(the "Designs"), you agree to the following terms and con- vide the functionality you are looking for, or that they are
ditions. You may use the Designs solely in support of your appropriate for any given use. Xilinx does not warrant that
use in developing designs for Xilinx programmable logic the Designs are error-free, nor does Xilinx make any other
devices or Xilinx HardWire devices. Access to the Designs representations or warranties, whether express or implied,
is provided only to purchasers of Xilinx programmable including without limitation implied warranties of merchant-
logic devices or Xilinx HardWire devices for the purposes ability or fitness for a particular purpose. The Designs are
set forth herein. not covered by any other license or agreement you may
The Designs are provided by Xilinx solely for your refer- have with Xilinx.
ence, for use as-is or as a template to make your own The Designs are the copyrighted, confidential and propri-
working designs. The Designs may be incomplete, and Xil- etary information of Xilinx. You may not disclose, repro-
inx does not warrant that the Designs are completed, duce, transmit or otherwise copy the Designs by any
tested, or will work on their own without revisions. The suc- means for any purpose not set forth in this license, without
cess of any designs you complete using the Designs as a the prior written permission of Xilinx.
starting point is wholly dependent on your design efforts.
You agree that you will comply with all applicable govern-
As provided, Xilinx does not warrant that the Designs will
mental export rules and regulations, and that you will not
provide any given functionality, and all verification must be
export or reexport the Designs in any form without the
completed by the customer.
appropriate government licenses.
Xilinx specifically disclaims any obligations for technical
support and bug fixes, as well as any liability with respect
to the Designs, and no contractual obligations are formed
either directly or indirectly by use of the Designs. XILINX
SHALL NOT BE LIABLE FOR ANY DAMAGES, INCLUD-
ING WITHOUT LIMITATION DIRECT, INDIRECT, INCI-
DENTAL, SPECIAL, RELIANCE OR CONSEQUENTIAL
DAMAGES ARISING FROM THE USE OF THE
DESIGNS, EVEN IF XILINX HAS BEEN ADVISED OF
THE POSSIBILITY OF SUCH DAMAGES.

9-6 May, 1999


11

Sales Offices, Sales



Representatives, and
Distributors

1 Introduction

2 PCI Products

3 FPGA Products

4 Design Methodology

5 PCI Compliance Checklists

6 Pinout and Configuration

7 Resources

8 Waveforms

9 Ordering Information and License Agreement

10 Sales Offices, Sales Representatives, and Distributors


0

R Sales Offices, Sales


Representatives, and Distributors

May, 1999 0 10*

Headquarters XILINX, Inc.


1025 S. Semoran Blvd.
XILINX, Inc.
939 North Plum Grove Road
XILINX, Inc.
2910 South Sheridan Way,
XILINX, Inc. Suite 1093 Suite H Suite 203
2100 Logic Drive Winter Park, FL 32792 Schaumburg, IL 60173 Oakville, Ontario
San Jose, CA 95124 Tel: (407) 673-8661 Tel: (847) 605-1972 Canada L6J7L9
Tel: (408) 559-7778 Fax: 407-673-8663 Fax: (847) 605-1976 Tel: (905) 829-9095
TWX: (510) 600-8750 Fax: (905) 829-3045
Fax: (408) 559-7114 XILINX, Inc. XILINX, Inc.
3280 Pointe Parkway 18283 Minnetonka Blvd. XILINX, Inc.
Xilinx Sales Suite 1600
Norcross, GA 30092
Suite C
Deephaven, MN 55391
34 Hampel Crescent
Stittsville, Ontario
Offices Tel: (770) 448-4733 Tel: (612) 473-4816 Canada K2S 1E4
Fax: 770-448-4857 Fax: 612-473-5060 Tel: (613) 836-5255
NORTH AMERICA Fax: 613-836-5393
XILINX, Inc. XILINX, Inc.
XILINX, Inc. EUROPE
15615 Alton Parkway 12922 Kentbury Dr.
4825 University Square
Suite 280 Clarksville, MD 21029 XILINX, Ltd.
Suite 12
Irvine, CA 92618 Tel: (301) 924-1300 Benchmark House
Huntsville, AL 35816
Tel: (949) 727-0780 Fax: 301-924-1301 203 Brooklands Road
Tel: (256) 721-3370
Fax: (949) 727-3128 Weybridge, Surrey
Fax: 256-721-3371
XILINX, Inc. KT13 ORH
XILINX, Inc. 6010-C Six Forks Road United Kingdom
XILINX, Inc.
6494 Weathers Place Raleigh, NC 27609 Tel: (44) 1932-349401
10235 South 51st St.
Suite 100 Tel: (919) 846-3922 Fax: (44) 1932-349499
Suite 160
San Diego, CA 92121 Fax: (919) 846-8316
Phoenix, AZ 85044
Tel: (619) 597-9855 XILINX, Ltd.
Tel: (602) 753-4503
Fax: 619-597-6418 XILINX, Inc. (Northern European Sales)
Fax: 602-753-4504
4100 McEwen, Suite 237 Suite 1B Cobb House
XILINX, Inc. Dallas, TX 75244 Oyster Lane
XILINX, Inc.
61 Spit Brook Rd. Tel: (972) 960-1043 Byfleet, Surrey
1281 Oakmead Pkwy.
Suite 403 Fax: (972) 960-0927 KT14 7DU
Suite 202
Nashua, NH 03060 United Kingdom
Sunnyvale, CA 94086
Tel: (603) 891-1098 XILINX, Inc. Tel: (44) 1932-349403
Tel: (408) 245-9850
Fax: (603) 891-0890 4765 S. Quail Point Road Fax: (44) 1932-345519
Fax: (408) 245-9865
Salt Lake City, UT 84124
XILINX, Inc. Tel: (801) 273-7338 XILINX Sarl
XILINX, Inc.
39 Surrey Dr. Espace Jouy Technology
1227 Platte Ave.
Belle Mead, NJ 08502 XILINX, Inc. 21, rue Albert Calmette, Bât. C
Ventura, CA 93004
Tel: (908) 359-3136 14575 Bel-Red Road 78353 Jouy en Josas, Cedex
Tel: (805) 647-9221
Fax: 908-359-1253 Suite 102 France
Fax: 805-647-9221
Bellevue, WA 98007 Tel: (33) 1 34 63 01 01
XILINX, Inc. Tel: (425) 603-0102 Fax: (33) 1 34 63 01 09
XILINX, Inc.
30 Two Bridges Rd. Fax: 425-603-0197
5690 DTC Blvd.
Suite 330 XILINX, Sarl
Suite 490W
Fairfield, NJ 07004 XILINX, Inc. 417, Chemin du Cassan
Englewood, CO 80111
Tel: (973) 808-2780 3554 Brecksville Rd 06140 Tourrettes sur Loup
Tel: (303) 220-7541
Fax: 973-808-2738 Richfield, OH 44286 France
Fax: (303) 220-8641
Tel: (330) 659-3131 Tel: (33) 4-9324-1175
XILINX, Inc. Fax: (330) 659-9254 Fax: (33) 4-9324-1007
XILINX, Inc.
14 Mitchell Terrace
1500 Kansas Ave.
West Long Branch, NJ 07764 XILINX, Inc. XILINX GmbH
Suite 1B
Tel: (732) 870-1126 9600 S. W. Oak St. Süskindstr. 4
Longmont, CO 80501
Fax: 732-870-1785 Suite 320 D-81929 München
Tel: (303) 774-1175
Portland, OR 97223 Germany
Fax: 303-774-1198
XILINX, Inc. Tel: (425) 293-9016 Tel: (49) 89-93088-0
905 Airport Rd. Fax: 425-293-3858 Tech Support Tel:
Suite 200 (49) 89-93088-130
West Chester, PA 19380 Fax: (49) 89-93088-188
Tel: (610) 430-3300
Fax: (610) 430-0470

May, 1999 10-1


R

XILINX AB Insight Electronics COLORADO Thorson Pacific, Inc.


Box 1230 (Locations throughout the U.S.) 14575 Bel-Red Road #102
Torshamnsgatan 35 Tel: (800) 677-7716 Luscombe Engineering, Inc. Bellevue, WA 98007
S-164 28 Kista Fax: (619) 587-1380 1500 Kansas Ave. Suite 1B Tel: (425) 603-9393
Sweden Longmont, CO 80501 Fax: (425) 603-9380
Tel: (46) 8-752-2470 Nu Horizons Tel: (303) 772-3342
Fax: (46) 8-750-6260 Electronics Corp. Fax: (303) 772-8783 ILLINOIS
E-mail: xilinx-nordic@xilinx.com Locations throughout the U.S. CONNECTICUT Advanced Technical Sales
Tel: (516) 396-5000 13755 St. Charles Rock Rd.
XILINX Italia Fax: (516) 396-7576 John E. Boeing, Co., Inc. Bridgeton, MO 63044
Via Zamagna 19 - Scala A 123 South Main Street Tel: (314) 291-5003
20148 Milano
Italy
U.S. Sales Wallingford, CT 06492
Tel: (203) 265-1318
Fax: (314) 291-7958
Tel: (39) 02 487 12 101 Representatives Fax: 203-265-0235 Beta Technology Sales, Inc.
Fax: (39) 02 400 94 700 1009 Hawthorn Drive
ALABAMA DELAWARE
Itasca, IL 60143
XILINX Benelux bvba Electro Source, Southeast Delta Technical Sales, Inc. Tel: (708) 250-9586
Oude Wichelsesteenweg 27 4825 University Sq., Ste.12 122 N. York Rd., Suite 9 Fax: (708) 250-9592
9340 Lede Huntsville, AL 35816 Hatboro, PA 19040
Belgium Tel: (256) 830-2533 Tel: (215) 957-0600 INDIANA
Tel: (32) 3 205 56 65 Fax: (256) 830-5567 Fax: (215) 957-0920 Gen II Marketing, Inc.
Fax: (32) 5381 0472
FLORIDA 31 E. Main St.
ARIZONA Carmel, IN 46032
JAPAN
Quatra Associates Semtronic Assoc., Inc. Tel: (317) 848-3083
XILINX K. K. 10235 S. 51st St. Suite #160 (Disti Office) Fax: (317-848-1264
Shinjuku Square Tower 18F Phoenix, AZ 85044 600 S. North Lake Blvd.
6-22-1 Nishi-Shinjuku Tel: (602) 753-5544 Suite 270 Gen II Marketing, Inc.
Shinjuku-ku, Tokyo 163-1118 Fax: (602) 753-0640 Altamonte Springs, FL 32701 1415 Magnavox Way
Japan E-mail: quatra@earthlink.net Tel: (407) 831-0451 Suite 130
Tel: (81) 3-5321-7711 Fax: (407) 831-6055 Ft. Wayne, IN 46804
Fax: (81) 3-5321-7765 ARKANSAS Tel: (219) 436-4485
Semtronic Assoc., Inc. Fax: (219) 436-1977
ASIA PACIFIC Bonser-Philhower Sales
(OEM Sales)
689 W. Renner Road IOWA
XILINX Asia Pacific 600 S. North Lake Blvd.
Suite 101
Unit 4312, Tower II Suite 220 Advanced Technical Sales
Richardson, TX 75080
Metroplaza Altamonte, Springs, FL 32701 375 Collins Road NE
Tel: (972) 234-8438
Hing Fong Road Tel: (407) 831-8233 Cedar Rapids, IA 52402
Fax: (972) 437-0897
Kwai Fong, N.T. Fax: (407) 831-2844 Tel: (319) 393-8280
Hong Kong CALIFORNIA Fax: (319) 393-7258
Tel: (852) 2-424-5200 Semtronic Assoc., Inc.
Fax: (852) 2-494-7159 Norcomp 3471 NW 55th Street KANSAS
E-mail: hongkong@xilinx.com 1267 Oakmead Pkwy Ft. Lauderdale, FL 33309
Sunnyvale, CA 94086 Tel: (954) 731-2384 Advanced Technical Sales
Tel: (408) 733-7707 Fax: (954) 731-1019 2012 Prairie Cir. Suite A
XILINX Korea
Fax: (408) 774-1947 Olathe, KS 66062
Room #901
Semtronic Assoc., Inc. Tel: (913) 782-8702
Sambo-Hojung Bldg.,
Norcomp 14004 Roosevelt Blvd. Fax: (913) 782-8641
14-24, Yoido-Dong
Youngdeungpo-Ku 8880 Wagon Way Suite 604
Granite Bay, CA 95746 KENTUCKY
Seoul, South Korea Clearwater, FL 33762
Tel: (82) 2-761-4277 Tel: (916) 791-7776 Tel: (727) 507-0504 Gen II Marketing, Inc.
Fax: (82) 2-761-4278 Fax: (916) 791-2223 Fax: (727) 539-0601 861 Corporate Dr. #210
Lexington, KY 40503
XILINX Taiwan Norcomp GEORGIA Tel: (606) 223-9181
Rm. 1006, 10F, No. 2, Lane 150 30101 Agoura Ct. #234 Fax: (606) 223-2864
Electro Source, Southeast
Sec. 5, Hsin Yin Rd. Agoura, CA 91301
3280 Pointe Parkway, LOUISIANA (Northern)
Taipei, 105 Taiwan, R.O.C. Tel: (818) 865-8330
Suite 1500
Tel: (886) 2-2758-8373 Fax: (818) 865-2167 Bonser-Philhower Sales
Norcross, GA 30092
Fax: (886) 2-2758-8367 Tel: (770) 734-9898 689 W. Renner Rd., Suite 101
Norcomp Richardson, TX 75080
Fax: (770) 734-9977
30 Corporate Park #200
North American Irvine, CA 92714 IDAHO (Southwest)
Tel: (972) 234-8438
Fax: (972) 437-0897
Distributors Tel: (949) 260-9868
Luscombe Engineering, Inc.
Fax: (949) 260-9659 LOUISIANA (Southern)
Hamilton Hallmark 6901 Emerald, Suite 206
(Locations throughout Quest-Rep Inc. Boise, ID 83704 Bonser-Philhower Sales
the U.S. and Canada) 6494 Weathers Pl, Suite 200 Tel: (208) 377-1444 10700 Richmond, Suite 150
Tel: (800) 332-8638 San Diego, CA 92121 Fax: (208) 377-0282 Houston, TX 77042
Fax: (800) 257-0568 Tel: (619) 622-5040 Tel: (713) 782-4144
Fax: (619) 622-9007 Fax: (713) 789-3072
E-mail: questrep@questrep.com

10-2 May, 1999


R

MAINE NEBRASKA NORTH CAROLINA PUERTO RICO


Genesis Associates Advanced Technical Sales Electro Source, Southeast Semtronic Assoc., Inc.
128 Wheeler Road 375 Collins Road NE 5964-A Six Forks Rd. Crown Hills
Burlington, MA 01803 Cedar Rapids, IA 52402 Raleigh, NC 27609 125 Carite St.
Tel: (781) 270-9540 Tel: (319) 393-8280 Tel: (919) 846-5888 Esq. Avenue Parana
Fax: (781) 229-8913 Fax: (319) 393-7258 Fax: (919) 846-0408 Rio Piedras, P.R. 00926
NEVADA Tel: (787) 766-0700/0701
MARYLAND Electro Source Fax: (787) 763-8071
Norcomp 12411 Angle Oak Drive
Micro Comp, Inc. Huntersville, NC 28078
8880 Wagon Way RHODE ISLAND
1421 S. Caton Avenue Tel: (704) 948-8905
Baltimore, MD 21227-1082 Granite Bay, CA 95748 Genesis Associates
Tel: (916) 393-8280 Fax: (704) 948-5829
Tel: (410) 644-5700 128 Wheeler Road
Fax: (410) 644-5707 Fax: (916) 393-7258 Burlington, MA 01803
NORTH DAKOTA
Tel: (781) 270-9540
MASSACHUSETTS Quatra Associates Beta Technology Fax: (781) 229-8913
(Las Vegas) 18283 Minnetonka Blvd.
Genesis Associates 4645 S. Lakeshore Dr., Suite 1 Suite C SOUTH CAROLINA
128 Wheeler Road Tempe, AZ 85282 Deephaven, MN 55391
Burlington, MA 01803 Tel: (602) 820-7050 Tel: (612) 473-2680 Electro Source, Southeast
Tel: (781) 270-9540 Fax: (602) 820-7054 Fax: (612) 473-2690 5964-A Six Forks Rd.
Fax: (781) 229-8913 Raleigh NC 27609
NEW HAMPSHIRE OHIO Tel: (919) 846-5888
MICHIGAN Fax: (919) 846-0408
Genesis Associates Bear Marketing, Inc.
Miltimore Sales Inc. 128 Wheeler Road 3554 Brecksville Road SOUTH DAKOTA
22765 Heslip Drive Burlington, MA 01803 PO Box 427
Novi, MI 48375 Tel: (781) 270-9540 Richfield, OH 44286-0427 Beta Technology
Tel: (248) 349-0260 Fax: (781) 229-8913 Tel: (216) 659-3131 18283 Minnetonka Blvd.
Fax: (248) 349-0756 Fax: (216) 659-4823 Suite C
NEW JERSEY (Northern) Deephaven, MN 55391
Miltimore Sales Inc. Bear Marketing, Inc. Tel: (612) 473-2680
3680 44th St., Suite 100-J Parallax Fax: (612) 473-2690
734 Walt Whitman Road 270 Regency Ridge Drive
Kentwood, MI 49512 Suite 115
Tel: (616) 554-9292 Melville, NY 11747 TENNESSEE
Tel: (516) 351-1000 Dayton, OH 45459
Fax: (616) 554-9210 Tel: (513) 436-2061 Electro Source, Southeast
Fax: (516) 351-1606
Fax: (513) 436-9137 4825 University Square,
MINNESOTA
NEW JERSEY (Southern) Suite 12
Beta Technology OKLAHOMA Huntsville, AL 35816
18283 Minnetonka Blvd. Delta Technical Sales, Inc. Tel: (205) 830-2533
122 N. York Road, Suite 9 Bonser-Philhower Sales
Suite C 689 W. Renner Rd., Suite 101 Fax: (205)-830-5567
Deephaven, MN 55391 Hatboro, PA 19040
Tel: (215) 957-0600 Richardson, TX 75080 TEXAS
Tel: (612) 473-2680 Tel: (972) 234-8438
Fax: (612) 473-2690 Fax: (215) 957-0920
Fax: (972) 437-0897 Bonser-Philhower Sales
NEW MEXICO 8240 MoPac Expwy.
MISSISSIPPI OREGON Suite 295
Electro Source, Southeast Quatra Associates Austin, TX 78759
600 Autumnwood Place, SE Thorson Pacific, Inc.
4825 University Sq., Ste.12 9600 SW Oak Street, Tel: (512) 346-9186
Huntsville, AL 35816 Albuquerque, NM 87123 Fax: (512) 346-2393
Tel: (505) 296-6781 Suite 320
Tel: (256) 830-2533 Portland, OR 97223
Fax: (256) 830-5567 Fax: (505) 292-2092 Bonser-Philhower Sales
Tel: (503) 293-9001
NEW YORK (Metro) Fax: (503) 293-9007 10700 Richmond, Suite 150
MISSOURI Houston, TX 77042
Advanced Technical Sales Parallax PENNSYLVANIA Tel: (713) 782-4144
2012 Prairie Cir. Suite A 734 Walt Whitman Road Fax: (713) 789-3072
Melville, NY 11747 Bear Marketing, Inc.
Olathe, KS 66062 4284 Rt. 8, Suite 211
Tel: (913) 782-8702 Tel: (516) 351-1000 Bonser-Philhower Sales
Fax: (516) 351-1606 Allison Park, PA 15101 689 W. Renner Rd., Suite 101
Fax: (913) 782-8641 Tel: (412) 492-1150 Richardson, TX 75080
NEW YORK Fax: (412) 492-1155 Tel: (972) 234-8438
Advanced Technical Sales
13755 St. Charles Rock Rd. Electra Sales Corp. Fax: (972) 437-0897
Delta Technical Sales, Inc.
Bridgeton, MO 63044 333 Metro Park
122 N. York Rd., Suite 9 TEXAS (El Paso County)
Tel: (314) 291-5003 Rochester, NY 14623
Hatboro, PA 19040
Fax: (314) 291-7958 Tel: (716) 427-7860 Quatra Associates
Tel: (215) 957-0600
Fax: (716) 427-0614 600 Autumnwood Place SE
MONTANA Fax: (215) 957-0920
Albuquerque, NM 87123
Luscombe Engineering, Inc. Electra Sales Corp. Tel: (505) 296-6781
670 East 3900 South #103 6057 Corporate Drive Fax: (505) 292-2092
Salt Lake City, UT 84107 E. Syracuse, NY 13057
Tel: (801) 268-3434 Tel: (315) 463-1248
Fax: (801) 266-9021 Fax: (315) 463-1717

May, 1999 10-3


R

UTAH WISCONSIN (Eastern) Tel: (61) 8-8364-2844 Fax: (359) 2-627099


Fax: (61) 8-8364-2811
Luscombe Engineering Co. Beta Technology Sales, Inc. CANADA (ALBERTA)
670 East 3900 South #103 9401 N. Beloit, Suite 409 Advanced Component Dist.
Salt Lake City, UT 84107 Milwaukee, WI 53227 Electro Source
Ste. 1, 1048 Beaudesert Rd. 2635 37th Ave NE #245
Tel: (801) 268-3434 Tel: (414) 543-6609 Cooper Plains
Fax: (801) 266-9021 Fax: (414) 543-9288 Calgary, Alberta T1Y 5Z6
Queensland 4108 Canada
VERMONT WYOMING Australia Tel: (403) 735-6230
Tel: (61) 7-3246-5214 Fax: (403) 735-0599
Genesis Associates Luscombe Engineering, Inc. Fax: (61) 7-3275-3662
128 Wheeler Road 1500 Kansas Ave. Suite 1B CANADA
Burlington, MA 01803 Longmont, CO 80501 EDA Solutions Pty. Ltd. (BRITISH COLUMBIA)
Tel: (781) 270-9540 Tel: (303) 772-3342 Level 3, South Tower
Fax: (781) 229-8913 Fax: (303) 772-8783 1-5 Railway Street Thorson Pacific, Inc.
Chatswood NSW 2067 4170 Still Creek Dr. #200
VIRGINIA
International Australia Burnaby BC V5C 6C6
Canada
Microcomp, Inc. Tel: (61) 02-9413-4611
1421 S. Caton Avenue Sales Fax: (61) 02-9413-4622 Tel: (604) 294-3999
Fax: (604) 473-7755
Baltimore, MD 21227
Tel: (410) 644-5700
Representatives EDA Solutions Pty. Ltd.
CANADA (OTTAWA)
Fax: (410) 644-5707 ALGERIA Level 2, 854 Glenferrie Road
Hawthorn VIC 3122 Electro Source, Inc.
WASHINGTON Development Centre of Australia 50 Hines Road, Suite 220
Advanced Technologies Tel: (61) 03-9819-0000 Kanata, Ontario K2K 2M5
Thorson Pacific, Inc.
128 Chemin Mohamed GACEM Fax: (61) 03-9818-8870 Canada
14575 Bel-Red Rd.
16075 El-Madania Tel: (613) 592-3214
Suite 102
Algiers Fax: (613) 592-4256
Bellevue, WA 98007 AUSTRIA
Algeria
Tel: (206) 603-9393 CANADA (QUEBEC)
Tel: (213) 2-67-73-25 Metronik GmbH
Fax: (206) 603-9380
Fax: (213) 2-66-26-89 Diefenbachgasse 35 Electro Source
WASHINGTON A-1150 Wien 6600 TransCanada Hwy
ARGENTINA
(Vancouver, WA only) Austria Suite 420
Reycom Electronica S.A. Tel: (43) 1-89-5762652 Pointe Claire, Quebec H9R 4S2
Thorson Pacific, Inc. Bdo. de Irigoyen Fax: (43) 1-89-5762650 Canada
9600 SW Oak Street 972 Piso 2do “B” Tel: (514) 630-7486
Suite 320 1304 Buenos Aires BELGIUM & LUXEMBURG Fax: (514) 630-7421
Portland, OR 97223 Argentina
Tel: (503) 293-9001 SEI Rodelco NV
Tel: (54) 1-304-2018 CANADA (TORONTO)
Fax: (503) 993-9007 Limburg Stirum 243
Fax: (54) 1-304-2010 1780 Wemmel Electro Source, Inc.
WASHINGTON D.C. Belgium 230 Galaxy Blvd.
Insight Argentina Tel: (32) 2-456-0757 Rexdale Ontario M9W 5R8
Micro Comp, Inc. Av. Adolfo Davila 550, 2nd Floor Fax: (32) 2-460-0271 Canada
1421 S. Caton Avenue 1107 Buenos Aires Tel: (416) 675-4490
Baltimore, MD 21227-1082 Argentina BRASIL Fax: (416)-675-6871
Tel: (410) 644-5700 Tel: (54) 1-310-0052
Fax: (410) 644-5707 Fax: (54) 1-310-0053 Hitech
CHILE
Rua Branco de Moraes 489
WEST VIRGINIA AUSTRALIA Ch. Santo Antonio DTS Ltda.
Sao Paulo Rosas 1444
Bear Marketing, Inc. Advanced Component Dist. 04718-010 - SP - Brazil Santiago
4284 Rt. 8 Suite 211 Suite 5, Level 1, "Metro Centre" Tel: (55) 11-882-4000 Chile
Allison Park, PA 15101 124 Forest Rd. Fax: (55) 11-882-4100 Tel: (56) 2-6970991
Tel: (412) 492-1150 Hurstville 2220 Fax: (56) 2-6993316
Fax: (412) 492-1155 Australia Insight Brasil
Tel: (61) 2-9585-5533 Rua Alcides Ricardini Neves CHINA PEOPLE’S
WISCONSIN (Western) Fax: (61) 2-9585-5534 12 - 13o andar REPUBLIC
Beta Technology Conjunto 1306 - Brooklin
18283 Minnetonka Blvd. Advanced Component Dist. Insight
04575-050 Sao Paulo SP
Suite C Unit 2, 17-19 Melrich Road Rm. 692, Pana Tower
Tel: (55) 11-5505-6501/2
Deephaven, MN 55391 Bayswater VIC 3153 No. 128 Zhichun Rd.
Fax: (55) 11-5505-6702
Tel: (612) 473-2680 Melbourne, Australia Haidian District
E-Mail: insbrz@uol.com.br
Fax: (612) 473-2690 Tel: (61) 3-9760-4250 Beijing 10086
Fax: (61) 3-9760-4255 BULGARIA P.R. China
Tel: (86) 10-6262-8985
Advanced Component Dist. Petrex 92 Ltd. Fax: (86) 10-6262-0393
20D William Street Philip Kutev Str. 1
Norwood SA 5067 BG-1407 Sofia
Australia Bulgaria
Tel: (359) 2-626987

10-4 May, 1999


R

Insight CZECH REPUBLIC AVNET Composants GERMANY


Rm. 2015-2018, Sud-Ouest
Tong Mei Mansion MES Praha s.r.o. Technoparc Avnet EMG GmbH
No. 76, Section 1, Platonova 3287/26 Bât.4, Voie 5, BP 404 Stahlgruberring 12
Jianshe North Rd., CZ 14300 Praha 31314 Labège Cedex D-81829 München
Chengdu, Sichuan 610051 Tel: (420) 2-90059190 France Germany
P.R. China Fax: (420) 2-90059190 Tel: (33) 5 61 39 21 12 Tel: (49) 89-45110-01
Tel: (86) 28-3399-629 E-mail: mespraha@ms.anet.cz Fax: (33) 5 61 39 21 40 Fax: (49) 89-45110-129
Fax: (86) 28-3398-829 DENMARK
AVNET Composants Avnet EMG GmbH
Insight Micronor A/S Rhône-Auvergne Kurfürstenstr. 130
Rm. 705, P.O. Box 929 Parc Club du Moulin à Vent D-10785 Berlin
Wuhan Computer City Torvet 1 Bât 32-33, rue du Dr. G. Levy Germany
39 Luo Yu Road, DK-8600 Silkeborg 69693 Venissieux Cedex Tel: (49) 30-214882-0
Hongshan District Denmark France Fax: (49) 30-2141728
Wuhan, 430079 Tel: (45) 8681-6522 Tel: (33) 4 78 00 1280
PR China Fax: (45) 8681-2827 Fax: (33) 4 78 75 95 97 Avnet EMG GmbH
Tel: (86) 27-8787-4319 E-Mail: e-mail@micronor.dk Wolfenbüttler Str. 33
Fax: (86) 27-8786-3102 WWW: http://www.micronor.dk AVNET EMG D-38102 Braunschweig
E-mail: Parc Club du Moulin à Vent Germany
memecnh@public.wh.hb.cn Avnet Nortec Bât. 40 Tel: (49) 531-22073-0
Transformervej 17 33, av. du Dr. Georges Levy Fax: (49) 531-22073-35
Insight Dek-2730 Herlev 69693 Venissieux Cedex
Rm. 715, Bao Hua Bldg., Denmark France Avnet EMG GmbH
#1016, Hua Qiang North Rd., Tel: (45) 44-88-08-00 Tel: (33) 4 78 77 13 60 Friedrich-Ebert-Damm 145
Shenzhen 518031 Fax: (45) 44-88-08-88 Fax: (33) 4 78 77 13 99 D-22047 Hamburg
P.R. China Germany
Tel: (86) 755-377-9548 EGYPT AVNET Composants Tel: (49) 40-696952-0
Fax: (86) 755-377-9026 Ouest Fax: (49) 40-6962787
Guide Systems Integrators
27 Mokhles Al-Alfi St. Technoparc-Bât. E
Insight 4 Av. des Peupliers, BP 43 Avnet EMG GmbH
First - Zone Nasr City
Room. 1407-1409 35511 Cesson Sévigné Cedex Benzstr. 1
Cairo
China Venturetech Plaza France D-70839 Gerlingen
Egypt
819 Nanjing Road (W) Tel: (33) 2 99 83 84 85 Stuttgart, Germany
Tel: (20) 2-401-4085
Shanghai 200041 Fax: (33) 2 99 83 80 83 Tel: (49) 7156-4390
Fax: (20) 2-401-4997
P.R. China Fax: (49) 7156-439-111
E-Mail: obadr@idsc.gov.eg
Tel: (86) 21-6215-9935 Compress
Fax: (86) 21-6215-9938 FINLAND 47, rue de l’Estérel Avnet EMG GmbH
Silic 539 Max-Planck-Str. 15b
Memec Finland OY D-40699 Erkrath
Insight Kauppakaarre 1 94633 Rungis Cedex
Rm. 805, Genius Xin Jie Kou France Düsseldorf, Germany
00700 Helsinki Tel: (49) 211-92003-0
Commercial Centre Finland Tel: (33) 1 41 80 29 00
#219 Zhongshan South Road. Fax: (33) 1 46 86 67 63 Fax: (49) 211-9200399
Tel: (358) 9-350-8880
Nanjing, 210005, P.R. China Fax: (358) 9-350-88828
Tel: (86) 25-4549-807 / Compress Avnet EMG GmbH
Schmidtstr. 49
4513-183 FRANCE Rhône-Alpesl
Fax: (86) 25-4549-585 19 Chemin du Goyet D-60326 Frankfurt/M.
REP’TRONIC 38300 Bourgoin-Jallieu Germany
Insight 1 Bis, rue Marcel Paul France Tel: (49) 69-973804-0
Rm. 703, Chongqing (Yuzhou) Z.I. La Bonde Tel: (33) 4 74 43 53 33 Fax: (49) 69-7380712
Computer City 91742 Massy Cedex Fax: (33) 4 74 43 53 30
3 Ke Yuan Yi Rd., Shiqiaopu France Avnet EMG GmbH
Chongqing, 400039, P.R. Tel: (33) 1 69 53 67 20 Compress Fürther Str. 212
China Fax: (33) 1 60 13 91 98 Bretagne D-90429 Nürnberg
Tel: (86) 23-6879-0845 E-Mail: 19 rue de Kerjean Germany
Fax: (86) 23-6879-0845 100745.605@compuserve.com 22700 Louannec Tel: (49) 911-93149-0
France Fax: (49) 911-320821
Insight AVNET EMG. Tel: (33) 2 96 49 09 52
Rm 35G, Tower 3, Xiangjiang 79 Rue Pierre Sémard Fax: (33) 2 96 49 09 56 Intercomp
Great Garden 92320 Châtillon Am Hochwald 42
Xiamen, 361009, P.R. China France Compress D-82319 Starnberg
Tel: (86) 592-513-7850 Tel: (33) 1 49 65 27 00 Ouest Germany
Fax: (86) 592-513-7850 Fax: (33) 1 49 65 27 39 5 Impasse Guenot Tel: (49) 8151-16044
31100 Toulouse Fax: (49) 8151-79270
France E-Mail: intercomp.tiefenthaler
Tel: (33) 5 62 87 75 08 @t-online.de
Fax: (33) 5 62 87 75 09

May, 1999 10-5


R

Intercomp Metronik GmbH INDIA Avnet EMG


Heerstr. 167 Äussere Grossweiden- Centro Direzionale
D-78628 Rottweil mühlstr. 45 CG-CoreEl Logic System Ltd. Via Novara, 570
Germany D-90419 Nürnberg First Floor, Surya Bhavan C.A.P 20153 Milan
Tel: (49) 741-14845 Germany 1181 Fergusson College Rd. Italy
Fax: (49) 741-15220 Tel: (49) 911-338802 Pune 411 005 Tel: (39) 02-381-901
E-Mail: Fax: (49) 911-338827 India Fax: (39) 02-380-02988
intercomp.klink@t-online.de Tel: (91) 212-323982, 328074
Metronik GmbH Fax: (91) 212-323985 Avnet EMG
Intercomp Löwenstrasse 37 Email: xsupport@cromp.ernet.in Ancona
Schustergasse 25 D-70597 Stuttgart Via Adriatica, 13
D-55278 Köngernheim Germany CG-CoreEL Logic System Ltd. 60022 Castelfidardo
Germany Tel: (49) 711-769641-0 961 Main 12th Italy
Tel: (49) 6737-9881 Fax: (49) 711-765-5181 HAL 2nd Stage Tel: (39) 071-781-9644
Fax: (49) 6737-9882 Bangalore 560 008 Fax: (39) 071-781-9699
E-Mail: Metronik GmbH India
intercomp.harkam@t-online.de Franz-Schubert-Str.41 Tel: (91) 80-527-9726 Avnet EMG
D-16548 Glienicke Fax: (91) 80-527-3073 Firenze
Intercomp Berlin, Germany E-Mail: Via Panciatichi, 40
Heidbergstr 30 Tel: (49) 33056-62510 vishwa@giasbg01.vsni.net.in 50127 Firenze
D-22846 Norderstedt Fax: (49) 33056-62550 Italy
Germany CG-CoreEl Logic Systems Tel: (39) 055-436-0392
Tel: (49) 405-25-50377 Metronik GmbH ABC Business Centre Fax: (39) 055-431-035
Fax: (49) 405-25-50378 Schönauer Strasse 113 N-52 Connaught Place
E-Mail: D-04207 Leipzig New Delhi, 110001 Avnet EMG
intercomp.robben@t-online.de Germany India Modena
Tel: (49) 341-4240027 Tel: (91) 11-3738-973 Via Scaglia Est, 144
Intercomp Fax: (49) 341-4240029 Fax: (91) 11-3730-404 41100 Modena
Abdeck 3B Italy
D-84095 Furth bei Landshut Metronik GmbH Core El Micro Systems Tel: (39) 059-351-300
Germany Bahnstrasse 9 45131 Manzanita Ct. Fax: (39) 059-344993
Tel: (49) 870-48-593 D-65205 Wiesbaden Fremont, CA 94539
Fax: (49) 870-48-594 Germany Tel: ( 510) 770-2277 Avnet EMG
E-mail: intercomp.neugebauer Tel: (49) 611-973-84-0 Fax: (510) 770-2288 Napoli
@t-online.de Fax: (49) 611-973-8418 IRELAND Via Ferrante Imparato, 27
80146 Napoli
Metronik GmbH GREECE Memec Ireland Ltd. Italy
Leonhardsweg 2 Semicon Gardner House Tel: (39) 081-55-91477
D-82008 Unterhaching 104 Aeolou Str. Bank Place Fax: (39) 081-55-91580
München, Germany 10564 Athens Limerick
Tel: (49) 89-611-080 Greece Ireland Avnet EMG
Fax: (49) 89-611-08110 Tel: (30) 1-32-536-26 Tel: (353) 61-411842 Roma
Fax: (30) 1-32-160-63 Fax: (353) 61-411888 Via Zoe Fontana, 220
Metronik GmbH E-Mail: semicon@hellas.eu.net E-Mail: memec@iol.ie Tecnocitta
Zum Lonnenhohl 40 00131 Roma
D-44319 Dortmund HONG KONG ISRAEL Italy
Germany E.I.M. International Ltd. Tel: (39) 064-13-1151
Insight
Tel: (49) 231-9271-10-0 9 Hashiloach Street Fax: (39) 064-13-1161
Units 3601-02 & 07-25, Tower I,
Fax: (49) 231-9271-10-99 P.O. Box 7025
Metroplaza, Hing Fong Road,
Petach Tikva 49130 Avnet EMG
Kwai Fong, N.T.
Metronik GmbH Israel Torino
Hong Kong
Carl-Zeiss Str.6 Tel: (972) 3-923-3257 Corso Orbassano, 336
Tel: (852) 2410-2780
D-25451 Quickborn Fax: (972) 3-922 3577 10137 Torino
Fax: (852) 2401-2518
Hamburg Germany Italy
Tel: (49) 4106-77-30-50 HUNGARY E.I.M. International Elec Tel: (39) 011-311-2347
Fax: (49) 4106-77-30-52 2000 Arctic Ave Fax: (39) 011-308-2138
ChipCAD Kft Bohemia
Metronik GmbH Dolmany u. 12 New York, NY 11716 Avnet EMG
Osmiastrasse 9 H-1131 Budapest Tel: (516) 567-0500 Treviso
D-69221 Dossenheim Tel: (36) 1-270-7680 Fax: (516) 567-0011 Via Delle Querce, 7
Mannheim, Germany Fax: (36) 1-270-7699 31033 Castelfranco Veneto
Tel: (49) 6221-8-70-44 ITALY Italy
Fax: (49) 6221-8-70-46 Acsis Srl Tel: (39) 0423-722-675
Via Alberto Mario, 26 Fax: (39) 0423-722-671
20149 Milano, Italy
Tel: (39) 02-480-22522
Fax: (39) 02-480-12289
WWW: http://www.acsis.it

10-6 May, 1999


R

Silverstar-Celdis Kaga Electronics Co., Ltd. NEW ZEALAND Scan Engineering


Viale Fulvio Testi, 280 3-13-20, Nishi-tenman 14 Plekhanova St.
20126 Milano Kita-ku, Osaka 530-0047 MEMEC EBV (NZ) Ltd. Voronezh 394000
Italy Japan Suite 5a, Level 4, Russia
Tel: (39) 02-661-251 Tel: (81) 6-364-3911 North City Plaza, Tel: (7) 0732-521006
Fax: (39) 02-661-01-359 Fax: (81) 6-364-4191 Titahi Bay Rd., Porirua, Fax: same
Wellington, New Zealand
Silverstar-Celdis Marubun Corporation Tel: (64) 4-237-9711 Scan Pulsar
Via Collamarini, 22 Marubun Daiya Bldg. Fax: (64) 4-237-9718 9 Rogaliova St.
40138 Bologna 8-1, Nihonbashi, Odenmacho Dniepropetrovsk 320030
Italy Chuo-ku, Tokyo 103-8577 MEMEC EBV (NZ) Ltd. Ukraine
Tel: (39) 051-53-8500 Japan P.O. Box 3700 Tel: (7) 0562-472870
Fax: (39) 051-53-8831 Tel: (81) 3-3639-5120 Christchurch Fax: (7) 0562-451115
Fax: (81) 3-3639-9925 New Zealand
Silverstar-Celdis Tel: (64) 03-379-3889 Scan-West
Via G. Antonio Resti, 63 Marubun Corporation Fax: (64) 03-379-3072 217, 32 Asanbaljieva St.
00143 Roma 5-5-15, Nishi-nakashima Minsk 220024
Italy Yodogawa-ku, Osaka 532-0011 MEMEC EBV (NZ) Ltd. Belorussia
Tel: (39) 06-519-57527 Japan Unit 7, 110 Mays Road Tel: (7) 0172-756 261
Fax: (39) 06-504-3330 Tel: (81) 6-301-1551 Penrose Fax: (7) 0172-756 750
Fax: (81) 6-301-1991 Auckland
Silverstar-Celdis New Zealand SINGAPORE
Centro Piero Della Francesca OEL K.K. Tel: (64) 09-636-5984
Fax: (64) 09-636-5985 MEMEC (Asia Pacific) Penang
Corso Svizzera, 185 Bis Bunkyo Green Court Center 6L-2 Jalan Rumbia
10149 Torino Office, 19F NORWAY 11900 Penang
Italy 2-28-8 Hon-Komagome Malaysia
Tel: (39) 011-77-10082 Bunkyo-ku BIT Elektronikk AS Tel: (60) 4-646-9986
Fax: (39) 011-77-64921 Tokyo 113-6591 Smedsvingen 4 Fax: (60) 4-646-9946
Japan P.O. Box 194
Silverstar-Celdis Tel: (81) 3-5978-8204 1360 Nesbru MEMEC Asia Pacific Ltd.
Centro Direzionale Benelli Fax: (81) 3-5978-1818 Norway Singapore Representative
Via Degli Abeti, 346 Tel: (47) 66-77-65-00 Office
61100 Pesaro OEL K.K. Fax: (47) 66-77-65-01 10 Anson Road #23-08
Italy 4-4-2 Kitakyuhoji-cho International Plaza
Tel: (39) 0721-26-560 Chuo-ku POLAND
Singapore 079903
Fax: (39) 0721-400896 Osaka 541-0057 P.T.H. Atest s.c. Tel: (65)-222-4962
Japan ul. Sowinskiego 5 Fax: (65)-222-4939
Silverstar-Celdis Tel: (81) 6-282-4810 PL-44-100 Gliwice
Via A.da Noli, 6 Fax: (81) 6-282-4160 Poland SLOVAK REPUBLIC
50127 Firenze Tel: (48) 32-380341 Elbatex SK S.R.O.
Italy Tokyo Electron Device Ltd. Fax: (48) 32-380692 Kasmirska 7
Tel: (39) 055-43-5125 No. 1, Higashikata-machi
PORTUGAL SK-821 04 Bratislava
Fax: (39) 055-43-77184 Tsuzuki-ku,
Tel: (421) 7-43414173
Yokohama ADM Electronica SA Fax: (421) 7-43420600
Silverstar-Celdis Kanagawa 224-0003 en 107, No 743 Email: ek.elbatex@net.lask
Via. delle Industrie, 13 Japan Aguas Santas
35010 Limena Tel: (81) 45-474-5096 4445 Ermesinde SLOVENIA/CROATIA
Padova Fax: (81) 45-474-5583 Portugal
Italy IC Elektronika d.o.o.
Tel: (35) 1-92-973-6957 Vodovodna 100
Tel: (39) 049-88-40044 Tokyo Electron Device Ltd. Fax: (35) 1-92-973-6958
Fax: (39) 049-88-41079 4-1-14, Miyahara, Yodogawa-ku SL-1000 Ljubljana
Osaka 532-0003 RUSSIA Tel: (386) 61165316010
Silverstar-Celdis Japan Fax: (386) 61165317020
Via Famagosta, 1/5 Tel: (81) 6-399-0234 Scan Ltd.
10/32 “B” Druzhby St. SOUTH AFRICA
17100 Savona Fax: (81) 6-399-0283
Italy 117330 Moscow Avnet - ASD
Tel: (39) 019-81-5090 THE NETHERLANDS Russia Avnet Kopp (Pty) Ltd.
Fax: (39) 019-81-5091 Tel: (7) 095-232-2343 PO Box 3853
Rodelco BV Fax: (7) 095-938-2247
P.O. Box 6824 Rivonia 2128
JAPAN South Africa
Takkebijsters 2 Scan Ltd
Kaga Electronics Co., Ltd. 4802 HV Breda Tel: (27) 11 444 2333
42 Ordjonikidze Street Fax: (27) 11 444 7778
1-26-1, Otowa The Netherlands 196143 St. Petersburg
Bunkyo-ku, Tokyo 112-8657 Tel: (31) 76-5722700 Russia
Japan Fax: (31) 76-5710029 Tel: (7) 812-299-7028
Tel: (81) 3-3942-6744 Fax: (7) 812-264-6000
Fax: (81) 3-3942-6256

May, 1999 10-7


R

SOUTH KOREA SWEDEN TURKEY Cedar Technologies


Unit One Old Barns
Hyunmyung Electronics Co. Ltd. DipCom Electronics AB Empa Elektronik ve Bilgi Rycote Lane Farm
3 Fl, Dukwha Bldg., Torshamnsgatan 35 Teknolojilei AS Milton Common
444-17, Seokyo-Dong, P.O. Box 1230 Besyol Mah. Florya Kavsagi Oxfordshire
Mapo-Ku, Seoul S-164 28 Kista Eski Havaalani Cad. No: 26/6 OX9 2NZ
South Korea Sweden 34630 Florya England
Tel: (82) 2-3141-0147 Tel: (46) 8 752 24 80 Istanbul Tel: (44) 1844-278278
Fax: (82) 2-3141-0149 Fax: (46) 8 751 3649 Turkey Fax: (44) 1844-278378
Tel: (90) 212 592 7401
Insight Avnet EMG AB Fax: (90) 212 599 3059 Cedar Technologies
Rm. 501, Daeha Bldg. Boc 1410 32 Enterprise House
14-11 Yoido-Dong Englundavagen 7 Eltronik Inc. Sprinkerse Business Park
Youngdeungpo-Ku S-171 27 Solna 8427 Kennedy Boulevard Striling FK7 7UF
Seoul, 150-715 Sweden North Bergen England
South Korea Tel: (46) 8-629-14-00 New Jersey 07047 Tel: (44) 1786-446220
Tel: (82) 2-786-8180 Fax: (46) 8-29--26-95 USA Fax: (44) 1786-446223
Fax: (82) 2-761-4121 Tel: (201) 453-0410
SWITZERLAND Fax: (201) 453-0959 Memec Plc
Seodu Inchip Memotec AG 17, Thame Park Road
4 Fl, Myoungi Bldg., UNITED ARAB EMIRATES
Gaswerkstr. 32 Thame
142-21, Samsung-Dong, CH-4901 Langenthal Culato Oxfordshire
Kangnam-Ku, Seoul Switzerland P.O. Box 7820 OX9 3XD
South Korea Tel: (41) 629195555 Dubai England
Tel: (82) 2-563-8008 Fax: (41) 629195500 United Arab Emirates Tel: (44) 1844-261919
Fax: (82) 2- 563-8411 Tel: (971)-4-284031 Fax: (44) 1844-1683
TAIWAN Fax: (971)-4-284934
SPAIN
Insight Memec Ireland Ltd.
ADM Electronica SA Rm. 1005, 10F, No.2, Lane 150 Rezwan Trading Est. Garden House
Calle Tomas Breton, Sec.5, Hsin Yin Rd. PO Box 51973 Bank Place
No 50, 3-2 Taipei, Taiwan R.O.C. Dubai Limerick
28045 Madrid Tel: (886) 2-8780-1216 United Arab Emirates Eire
Spain Fax: (886) 2-8780-1220 Tel: (97) 1-4279420 Tel: (353) 61-411842
Tel: (34) 9-1-530-4121 Fax: (97) 1-4275741 Fax: (353) 61-411888
Fax: (34) 9-1-530-164 Avnet - Mercuries Co. Ltd. Email: memec@iol.ie
UNITED KINGDOM
14th Floor, No. 145, Sec.
ADM Electronica SA 2, Chien-Kuo N. Rd. Avnet EMG Ltd Microcall Ltd.
Calle Mallorca 1 Taipei, Avnet House The Gate House
08014 Barcelona Taiwan R.O.C. Rutherford Close, Meadway Alton House Business Park
Spain Tel: (886) 2-2503-1111 Stevenage Gatehouse Way
Tel: (349) 3-426-6892 Fax: (886) 2-2505-1449 Hertfordshire, SG1 2EF Aylesbury, Bucks
Fax: (349) 3-425-0544 England HP19 3DL
THAILAND Tel: (44) 1438-788500 England
ADM Electronica, SA Fax: (44) 1438-788 250 Tel: (44) 1296-330061
MEMEC Thailand
Sasi Koa, 26, 3°C Fax: (44) 1296-330065
240/10, 12th Floor,
48200 Durango (Vizcaya)
Ayodhaya Tower
Spain
Ratchadapisek Road
Tel: (349) 4-620-1572
Huey-Kuang
Fax: (349) 4- 620-2331
Bangkok, 10310
Thailand
Tel: 662-2741644-5
Fax: 662-2741673

10-8 May, 1999

S-ar putea să vă placă și