Transcript
LogiCORE IP Aurora 64B/66B v7.3 Product Guide
PG074 December 18, 2012
Table of Contents SECTION I: SUMMARY IP Facts Chapter 1: Overview Feature Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 Unsupported Features. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 Licensing and Ordering Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Chapter 2: Product Specification Standards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 Performance. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 Resource Utilization. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 Port Descriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Chapter 3: Designing with the Core General Design Guidelines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 Using the Build Script. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 Clocking. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 Reset and Power Down . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 Top‐Level Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 Flow Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 User K‐Block Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 Status, Control, and the Transceiver Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 Core Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
LogiCORE IP Aurora 64B/66B v7.3 PG074 December 18, 2012
www.xilinx.com
2
SECTION II: VIVADO DESIGN SUITE Chapter 4: Customizing and Generating the Core GUI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 Output Generation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
Chapter 5: Constraining the Core Device, Package, and Speed Grade Selections. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 Clock Frequencies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 Clock Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 Clock Placement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 Banking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 Transceiver Placement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 I/O Standard and Placement. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
Chapter 6: Detailed Example Design Directory and File Contents. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 Quick Start Example Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 Detailed Example Design. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 Generating the Core. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 Implementing the Example Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
SECTION III: ISE DESIGN SUITE Chapter 7: Customizing and Generating the Core GUI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 Output Generation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
Chapter 8: Constraining the Core Device, Package, and Speed Grade Selections. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 Clock Frequencies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
Chapter 9: Detailed Example Design Directory and File Contents. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 Quick Start Example Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 Detailed Example Design. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 Generating the Core. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 Simulating the Example Design. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 Implementing the Example Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
LogiCORE IP Aurora 64B/66B v7.3 PG074 December 18, 2012
www.xilinx.com
3
SECTION IV: APPENDICES Appendix A: Verification, Compliance, and Interoperability Appendix B: Migrating Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 Overview of Major Changes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 Block Diagrams. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 Signal Changes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 Migration Steps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 GUI Changes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 Limitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
Appendix C: Debugging Finding Help on Xilinx.com . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 Debug Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 Simulation Debug. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 General Checks. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 Interface Debug . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
Appendix D: Generating a GT Wrapper File from the Transceiver Wizard Case 1: Virtex‐7/Kintex‐7 FPGA Wrapper Compatibility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 Case 2: Virtex‐6 GTX FPGA Wrapper Compatibility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142 Case 3: Virtex‐6 GTH FPGA Wrapper Compatibility. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
Appendix E: Additional Resources Xilinx Resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144 Technical Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 Revision History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 Notice of Disclaimer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
LogiCORE IP Aurora 64B/66B v7.3 PG074 December 18, 2012
www.xilinx.com
4
SECTION I: SUMMARY IP Facts Overview Product Specification Designing with the Core
LogiCORE IP Aurora 64B/66B v7.3 PG074 December 18, 2012
www.xilinx.com
5
IP Facts
Introduction
LogiCORE IP Facts Table
Aurora 64B/66B is a scalable, lightweight, high data rate, link-layer protocol for high-speed serial communication. The protocol is open and can be implemented using Xilinx FPGA technology. The ISE® Design Suite and Vivado™ Design Suite produce source code for Aurora 64B/66B cores. The cores can be simplex or full-duplex, and feature one of two simple user interfaces and optional flow control.
Core Specifics Supported Device Family (1)
Virtex-7(2), Kintex™-7(2), Virtex-6(3)
Supported User Interfaces Resources (4)
AXI4-Stream See Table 2-1 through Table 2-6.
Provided with Core ISE: Verilog and VHDL Vivado: RTL
Design Files Example Design
Verilog and VHDL
Test Bench
Verilog and VHDL
Features
Constraints File
ISE: UCF Vivado: XDC
•
Simulation Model
Not Provided
Supported S/W Driver
N/A
•
•
Aurora 64B/66B cores supported on the ISE and Vivado Design Suites General-purpose data channels with throughput range from 600 Mb/s to over 200 Gb/s Supports up to 16 GTX transceivers, 12 Virtex®-6 FPGA GTH transceivers, or 16 Virtex-7 FPGA GTH transceivers
•
Aurora 64B/66B protocol specification v1.2 compliant (64B/66B encoding)
•
Low resource cost with very low (3%) transmission overhead
Tested Design Flows(5) ISE Design Suite v14.4
Design Entry
Simulation
Vivado Design Suite(6) v2012.4 ISE: Mentor Graphics ModelSim, Xilinx ISim, Cadence Incisive Enterprise Vivado: Mentor Graphics ModelSim, Vivado Simulator ISE: XST, Synopsys Synplify Pro Vivado: Vivado Synthesis
Synthesis
Support Provided by Xilinx @ www.xilinx.com/support
•
Easy-to-use AXI4-Stream (framing) or streaming interface and optional flow control
Notes:
•
Automatically initializes and maintains the channel
3. For more information, see Virtex-6 Family Overview (DS150).
Full-duplex or simplex operation
5. For the supported versions of the tools, see the Xilinx Design Tools: Release Notes Guide .
•
1. For a complete listing of supported devices, see the release notes for this core. 2. For more information, see 7 Series FPGAs Overview (DS180).
4. For more complete performance data, see Performance, page 12.
6. Supports only 7 series devices.
LogiCORE IP Aurora 64B/66B v7.3 PG074 December 18, 2012
www.xilinx.com
6 Product Specification
Chapter 1
Overview Note: This core release supports only Virtex®-7 and Kintex™-7 devices. Virtex-6 families are listed for backward compatibility with previous core releases.
This product guide describes the function and operation of the LogiCORE™ IP Aurora 64B/66B v7.3 core and provides information about designing, customizing, and implementing the core. Aurora 64B/66B is a lightweight, serial communications protocol for multi-gigabit links (Figure 1-1). It is used to transfer data between devices using one or many GTX/GTH transceivers. Connections can be full-duplex (data in both directions) or simplex (data in either one of the directions). The LogiCORE IP Aurora 64B/66B core supports the AMBA ® protocol AXI4-Stream user interface. It implements the Aurora 64B/66B protocol using the high-speed serial GTX or GTH transceivers in applicable Virtex-7, Kintex-7, and Virtex-6 LXT, SXT, and HXT, devices. The core can use up to 16 Virtex-6, Kintex-7, or Virtex-7 FPGA GTX or GTH transceivers and up to 12 GTH transceivers in a Virtex-6 HXT device running at any supported line rate to provide a low-cost, general-purpose, data channel with throughput from 600 Mb/s to over 200 Gb/s. Aurora 64B/66B cores are verified for protocol compliance using an array of automated simulation tests. X-Ref Target - Figure 1-1
!URORA #HANNEL 0ARTNERS !URORA ,ANE
5SER !PPLICATION
5SER )NTERFACE
!URORA #HANNEL
!URORA "" #ORE
!URORA "" #ORE
5SER )NTERFACE
5SER !PPLICATION
!URORA ,ANE N
5SER $ATA
Figure 1‐1:
LogiCORE IP Aurora 64B/66B v7.3 PG074 December 18, 2012
"" %NCODED $ATA
5SER $ATA 8
Aurora 64B/66B Channel Overview
www.xilinx.com
7
Chapter 1: Overview Aurora 64B/66B cores automatically initialize a channel when they are connected to an Aurora 64B/66B channel partner. After initialization, applications can pass data across the channel as frames or streams of data. Aurora 64B/66B frames can be of any size, and can be interrupted any time by high priority requests. Gaps between valid data bytes are automatically filled with idles to maintain lock and prevent excessive electromagnetic interference. Flow control is optional in Aurora 64B/66B, and can be used to throttle the link partner transmit data rate, or to send brief, high-priority messages through the channel. Streams are implemented in Aurora 64B/66B as a single, unending frame. Whenever data is not being transmitted, idles are transmitted to keep the link alive. Excessive bit errors, disconnections, or equipment failures cause the core to reset and attempt to initialize a new channel. The Aurora 64B/66B core can support a maximum of two symbols skew in the receive of a multi-lane channel. The Aurora 64B/66B protocol uses 64B/66B encoding. The 64B/66B encoding offers improved performance because of its very low (3%) transmission overhead, compared to 25% overhead for 8B/10B encoding. RECOMMENDED: Although the Aurora 64B/66B core is a fully-verified solution, the challenge
associated with implementing a complete design varies depending on the configuration and functionality of the application. For best results, previous experience building high-performance, pipelined FPGA designs using Xilinx implementation tools and user constraints files (UCF)/Xilinx Design Constraints (XDC) is recommended.
Read Status, Control, and the Transceiver Interface in Chapter 3 carefully. Consult the PCB design requirements information in the following manuals. •
Virtex-6 FPGA GTX Transceivers User Guide (UG366)
•
Virtex-6 FPGA GTH Transceivers User Guide (UG371)
•
7 Series FPGAs GTX/GTH Transceivers User Guide (UG476)
Contact your local Xilinx representative for a closer review and estimation for your specific requirements.
LogiCORE IP Aurora 64B/66B v7.3 PG074 December 18, 2012
www.xilinx.com
8
Chapter 1: Overview
Feature Summary The LogiCORE IP Aurora 64B/66B core implements the Aurora 64B/66B protocol using the high-speed serial transceivers on the Virtex-6 LXT, SXT, HXT, and lower-power FPGA families, and Virtex-7/Kintex-7 FPGAs. The core supports the AMBA® protocol AXI4-Stream user interface. The Aurora 64B/66B core is based on the Aurora 64B/66B Protocol Specification (SP011) and uses the high-speed serial GTX or GTH transceivers in applicable Virtex-7, Kintex-7, and Virtex-6, FPGAs. The core is delivered as open-source code and supports Verilog and VHDL design environments. Each core comes with an example design and supporting modules.
Applications Aurora 64B/66B cores can be used in a wide variety of applications because of their low resource cost, scalable throughput, and flexible data interface. Examples of Aurora 64B/66B core applications include: •
Chip-to-chip links: Replacing parallel connections between chips with high-speed serial connections can significantly reduce the number of traces and layers required on a PCB. The Aurora 64B/66B core provides the logic needed to use GTX/GTH transceivers, with minimal FPGA resource cost.
•
Board-to-board and backplane links: Aurora 64B/66B uses standard 64B/66B encoding, which is the preferred encoding scheme for 10-Gigabit Ethernet making it compatible with many existing hardware standards for cables and backplanes. Aurora 64B/66B can be scaled, both in line rate and channel width, to allow inexpensive legacy hardware to be used in new, high-performance systems.
•
Simplex connections (unidirectional): In some applications there is no need for a high-speed back channel. The Aurora 64B/66B simplex protocol provides several ways to perform unidirectional channel initialization, making it possible to use the GTX/GTH transceivers when a back channel is not available, and to reduce costs due to unused full-duplex resources.
•
ASIC applications: Aurora 64B/66B is not limited to FPGAs, and can be used to create scalable, high-performance links between programmable logic and high-performance ASICs. The simplicity of the Aurora 64B/66B protocol leads to low resource costs in ASICs as well as in FPGAs, and design resources like the Aurora 64B/66B bus functional model (BFM) with automated compliance testing make it easy to get an Aurora 64B/66B connection up and running. Contact Xilinx Sales or
[email protected] for information on licensing Aurora for ASIC applications.
LogiCORE IP Aurora 64B/66B v7.3 PG074 December 18, 2012
www.xilinx.com
9
Chapter 1: Overview
Unsupported Features There are no unsupported features in Aurora 64B/66B.
Licensing and Ordering Information This Xilinx LogiCORE IP module is provided at no additional cost with the Xilinx Vivado™ Design Suite and ISE® Design Suite tools under the terms of the Xilinx End User License. Information about this and other Xilinx LogiCORE IP modules is available at the Xilinx Intellectual Property page. For information about pricing and availability of other Xilinx LogiCORE IP modules and tools, contact your local Xilinx sales representative. To use the Aurora 64B/66B core with an application specific integrated circuit (ASIC), a separate paid license agreement is required under the terms of the Xilinx Core License Agreement. Contact Aurora Marketing at
[email protected] for more information. For more information, visit the Aurora 64B/66B product page.
LogiCORE IP Aurora 64B/66B v7.3 PG074 December 18, 2012
www.xilinx.com
10
Chapter 2
Product Specification Figure 2-1 shows a block diagram of the implementation of the Aurora 64B/66B core. X-Ref Target - Figure 2-1
#ONTROL )NTERFACE
28 $ATA
48 $ATA
'LOBAL ,OGIC #HANNEL -AINTENANCE
,ANE ,OGIC
28 5SER )NTERFACE &RAMING