KC705 PCIe Design Creation with Vivado August 2012

Similar documents
ML605 PCIe x8 Gen1 Design Creation

ML605 PCIe x8 Gen1 Design Creation

KC705 Ethernet Design Creation October 2012

ZC706 GTX IBERT Design Creation June 2013

AC701 Ethernet Design Creation June 2014

AC701 Ethernet Design Creation October 2014

ML605 Restoring Flash Contents

KC705 GTX IBERT Design Creation October 2012

ZC706 GTX IBERT Design Creation November 2014

KC705 Si5324 Design October 2012

KC705 Si570 Programming

VCU110 GT IBERT Design Creation

SP605 MultiBoot Design

AC701 Built-In Self Test Flash Application April 2015

VCU108 Built In Test July 2015

ML631 U1 DDR3 MIG Design Creation

ML631 U2 DDR3 MIG Design Creation

ML605 GTX IBERT Design Creation

SP605 GTP IBERT Design Creation

ZC702 Si570 Programming June 2012

VCU110 Software Install and Board Setup October 2015

SP605 Standalone Applications

ZC706 Built-In Self Test Flash Application April 2015

ML605 FMC Si570 Programming June 2012

ML605 Built-In Self Test Flash Application

ML605 Built-In Self Test Flash Application

SP605 Built-In Self Test Flash Application

PlanAhead Software Tutorial

Vivado Design Suite Tutorial. Designing IP Subsystems Using IP Integrator

Vivado Design Suite Tutorial. Designing IP Subsystems Using IP Integrator

Quick Front-to-Back Overview Tutorial

Virtual Input/Output v3.0

SP605 MultiBoot Design

SP601 MultiBoot Design

RTL Design and IP Generation Tutorial. PlanAhead Design Tool

ISim Hardware Co-Simulation Tutorial: Accelerating Floating Point FFT Simulation

Vivado Design Suite Tutorial. I/O and Clock Planning

Vivado Design Suite Tutorial

ISim Hardware Co-Simulation Tutorial: Accelerating Floating Point Fast Fourier Transform Simulation

Supported Device Family (1) Supported User Interfaces. Simulation Models Supported S/W Drivers. Simulation. Notes:

Vivado Design Suite User Guide

Vivado Design Suite User Guide. Designing IP Subsystems Using IP Integrator

Vivado Design Suite Tutorial. Designing IP Subsystems Using IP Integrator

Vivado Design Suite Tutorial. I/O and Clock Planning

Vivado Design Suite User Guide

Vivado Design Suite Tutorial. Using Constraints

MultiBoot and Fallback Using ICAP in UltraScale+ FPGAs

ISim Hardware Co-Simulation Tutorial: Accelerating Floating Point FFT Simulation

ISim Hardware Co-Simulation Tutorial: Processing Live Ethernet Traffic through Virtex-5 Embedded Ethernet MAC

Using Xilinx ChipScope Pro ILA Core with Project Navigator to Debug FPGA Applications. UG750 (v12.3) November 5, 2010

Quick Start Guide ZedboardOLED Display Controller IP v1.0

7 Series FPGAs Memory Interface Solutions (v1.9)

Hierarchical Design Using Synopsys and Xilinx FPGAs

I/O Pin Planning Tutorial. PlanAhead Design Tool

Kintex-7 FPGA Base Targeted Reference Design

ISE Tutorial. Using Xilinx ChipScope Pro ILA Core with Project Navigator to Debug FPGA Applications. UG750 (v14.4) December 18, 2012

ISE Tutorial: Using Xilinx ChipScope Pro ILA Core with Project Navigator to Debug FPGA Applications

PetaLinux SDK User Guide. Eclipse Plugin Guide

Vivado Design Suite Tutorial:

Intel Stratix 10 H-Tile PCIe Link Hardware Validation

I/O Planning Tutorial. PlanAhead Design Tool

Accelerating System Designs Requiring High-Bandwidth Connectivity with Targeted Reference Designs

Vivado Design Suite User Guide

EXOSTIV Dashboard Hands-on - MICA board

Virtex-6 FPGA Connectivity Kit

Data Side OCM Bus v1.0 (v2.00b)

Interlaken IP Core (2nd Generation) Design Example User Guide

Virtex-6 FPGA Connectivity Kit

Designing with the Xilinx 7 Series PCIe Embedded Block. Tweet this event: #avtxfest

Utility Bus Split (v1.00a)

I/O Pin Planning Tutorial. PlanAhead Design Tool

PlanAhead Software Tutorial

Vivado Design Suite Tutorial: Programming and Debugging

Lab 1 - Zynq RTL Design Flow

Vivado Design Suite User Guide

Vivado Design Suite Tutorial: Implementation

Author: Kiran K Gakhal

PlanAhead Software Tutorial

StickIt! MPU-9150 Manual. How to install and use your new StickIt! MPU-9150 Module

Vivado Design Suite Tutorial. Design Flows Overview

Vivado Design Suite Tutorial. Designing with IP

Vivado Design Suite Tutorial:

Getting Started Guide with AXM-A30

Hardware In The Loop (HIL) Simulation for the Zynq-7000 All Programmable SoC Author: Umang Parekh

Utility Reduced Logic (v1.00a)

ChipScope Pro Software and Cores User Guide

SP605 GTP IBERT Design Creation

LogiCORE IP 3GPP LTE Turbo Encoder v1.0 Bit-Accurate C Model. 3GPP LTE Turbo. [optional] UG490 (v1.0) April 25, 2008 [optional]

SPI x4 Configuration Demo on SP601 Board. Boris Qin

ZedBoard: Zynq-7000 AP SoC Concepts, Tools, and Techniques

Zynq-7000 Bus Functional Model

Creating the AVS6LX9MBHP211 MicroBlaze Hardware Platform for the Spartan-6 LX9 MicroBoard Version

Zynq-7000 Platform Software Development Using the ARM DS-5 Toolchain Author: Simon George and Prushothaman Palanichamy

High Bandwidth Memory (HBM2) Interface Intel FPGA IP Design Example User Guide

Understanding Performance of PCI Express Systems

ISE Simulator (ISim) In-Depth Tutorial. UG682 (v 13.1) March 1, 2011

Configuring the Xilinx Spartan-6 LX9 MicroBoard

AXI4 Interconnect Paves the Way to Plug-and-Play IP

PetaLinux SDK User Guide. Firmware Upgrade Guide

Virtex-4 PowerPC Example Design. UG434 (v1.2) January 17, 2008

Transcription:

KC705 PCIe Design Creation with Vivado August 2012 XTP197

Revision History Date Version Description 08/20/12 1.0 Initial version. Added AR50886. Copyright 2012 Xilinx, Inc. All Rights Reserved. XILINX, the Xilinx logo, the Brand Window and other designated brands included herein are trademarks of Xilinx, Inc. All other trademarks are the property of their respective owners. NOTICE OF DISCLAIMER: The information disclosed to you hereunder (the Information ) is provided AS-IS with no warranty of any kind, express or implied. Xilinx does not assume any liability arising from your use of the Information. You are responsible for obtaining any rights you may require for your use of this Information. Xilinx reserves the right to make changes, at any time, to the Information without notice and at its sole discretion. Xilinx assumes no obligation to correct any errors contained in the Information or to advise you of any corrections or updates. Xilinx expressly disclaims any liability in connection with technical support or assistance that may be provided to you in connection with the Information. XILINX MAKES NO OTHER WARRANTIES, WHETHER EXPRESS, IMPLIED, OR STATUTORY, REGARDING THE INFORMATION, INCLUDING ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR NONINFRINGEMENT OF THIRD-PARTY RIGHTS.

Note: This presentation applies to the KC705 Overview Kintex-7 PCIe x8 Gen 2 Capability Xilinx KC705 Board Software Requirements KC705 Setup Compile PCIe Cores Generate x8 Gen 2 PCIe Core and MCS File Program KC705 Flash with PCIe Design Running the PCIe x8 Gen 2 Design References IP Release Notes Guide XTP025

Kintex-7 PCIe x8 Gen 2 Capability KC705 Supports PCIe Gen 1 and Gen 2 Capability x8, x4, x2, or x1 Gen 1 and Gen 2 lane width x8 Gen 2 not supported in -1 parts See DS821 for details LogiCORE PIO Example Design RDF0187.zip Available through http://www.xilinx.com/kc705 LogiCORE Integrated Block for PCI Express See UG477 for details

Kintex-7 PCIe x8 Gen 2 Capability Integrated Block for PCI Express PCI Express Base 2.0 Specification Configurable for Endpoint or Root Port Applications KC705 configured for Endpoint Applications GTX Transceivers implement a fully compliant PHY Large range of maximum payload size 128 / 256 / 512 / 1024 bytes Configurable BAR spaces Up to 6 x 32 bit, 3 x 64 bit, or a combination Memory or IO BAR and ID filtering Management and Statistics Interface

Xilinx KC705 Board Note: Presentation applies to the KC705

ISE Software Requirements Xilinx Vivado 2012.2 software Apply AR50886

PciTree Software Requirement PciTree Bus Viewer Free download HLP.SYS must be copied to C:\WINDOWS\system32\drivers directory

Generate x8 Gen 2 PCIe Core Open Vivado Start All Programs Xilinx Design Tools Vivado 2012.2 Vivado Select Create New Project

Generate x8 Gen 2 PCIe Core Click Next

Generate x8 Gen 2 PCIe Core Set the Project name and location to kc705_pcie_vivado and C:\ Check Create Project Subdirectory

Generate x8 Gen 2 PCIe Core Select RTL Project Select Do not specify sources at this time

Generate x8 Gen 2 PCIe Core Select the KC705 Board

Generate x8 Gen 2 PCIe Core Click Finish

Generate x8 Gen 2 PCIe Core Click on IP Catalog

Generate x8 Gen 2 PCIe Core Select 7 Series PCIe Version 1.6 under Standard Bus Interfaces

Generate x8 Gen 2 PCIe Core Right click on 7 Series PCIe Version 1.6 Select Customize IP

Note: Pre-built design, RDF0187, available through http://www.xilinx.com/kc705 Generate x8 Gen 2 PCIe Core Under the Page 1 tab, set the Component name to kc705_pcie_x8_ gen2 Set the lane Width to X8 Set the Link Speed to 5 GT/s Set the Frequency to 250 MHz Click on Page 2

Generate x8 Gen 2 PCIe Core Under the Page 2 tab, BAR 0 Set to 1 Megabytes Click on Page 3

Generate x8 Gen 2 PCIe Core Under the Page 3 tab, note ID Initial Values Vendor ID = 10EE Device ID = 7028 Revision ID = 00 Subsystem Vendor ID = 10EE Subsystem ID = 0007 Click on Page 11

Generate x8 Gen 2 PCIe Core Under the Page 11 tab Select KC705 REVC Click on Page 13

Generate x8 Gen 2 PCIe Core On Page 13 Set the Reference Clock Freq: 100 MHz Set the Silicon Revision to General ES Click OK

Generate x8 Gen 2 PCIe Core PCIe design appears in Design Sources The PCIe IP is already checked but still needs to be generated

Compile Example Design Right-click on kc705_pcie_x8_gen2 and select Generate

Compile Example Design Select Synthesis, Examples, and Instantiation Template as the targets to generate

Compile Example Design Once the Generate step is complete, a check (re)appears on the IP

Modify PCIe Core As per AR44635, the design must be modified Open the file: <design path>/<design name>.srcs\sources_1\ip\ kc705_pcie_x8_gen2\kc705_pcie_x8_gen2\example_design\ xilinx_pcie_2_1_ep_7x.v Add this line: input emcclk,

Modify PCIe Core As per AR44635, the design must be modified Open the UCF file (name may vary): <design path>/<design name>.srcs\sources_1\ip\kc705_pcie_x8_gen2\kc705_pcie_x8_gen2\ example_design\ xilinx_pcie_2_1_ep_7x_8_lane_gen2_xc7k325t-ffg900-2_kc705_revc.xdc Add these lines: set_property IOSTANDARD LVCMOS25 [get_ports emcclk] set_property LOC R24 [get_ports emcclk]

Modify PCIe Core As per UG470, UG628, and P30 Flash specifications In the XDC file, xilinx_pcie_2_1_ep_7x_8_lane_gen2_xc7k325t-ffg900-2_kc705_revc.xdc, add these lines: set_property BITSTREAM.CONFIG.BPI_SYNC_MODE Type2 [current_design] set_property BITSTREAM.CONFIG.EXTMASTERCCLK_EN div-2 [current_design] set_property BITSTREAM.GENERAL.COMPRESS TRUE [current_design]

Modify PCIe Core Details on the bitgen command: P30T Maximum Frequency: 52 MHz; KC705 EMCCLK Frequency: 66 MHz BITSTREAM.CONFIG.EXTMASTERCCLK_EN div-2: Sets the EMCCLK in the FPGA to divide by 2, which meets the P30T Maximum Frequency specification BITSTREAM.CONFIG.BPI_SYNC_MODE Type2: For Numonyx P30 Family BITSTREAM.GENERAL.COMPRESS TRUE: Further shrinks the bitstream size

Compile Example Design Click Add Sources:

Compile Example Design Select Add or Create Design Sources

Compile Example Design Add kc705_pcie_x8_gen2_pipe_clock.v

Compile Example Design Click Add Directories

Compile Example Design Add the example_design directory from the PCIe source files

Compile Example Design Click Finish

Compile Example Design Click Add Sources again

Compile Example Design Select Add or Create Constraints

Compile Example Design Add xilinx_pcie_2_1_ep_7x_8_lane_gen2_xc7k325t-ffg900-2_kc705_revc.xdc

Compile Example Design Click Finish

Compile Example Design Click on Generate Bitstream

Compile Example Design The completed design appears in GUI

Hardware Setup Set S13 to 00010 (1 = on, Position 1 Position 5) This enables Master BPI configuration from Slot #1 Flash A25, A24 = 00 FPGA mode pins M[2:0] = 010

KC705 Setup Connect a USB Type-A to Micro-B cable to the USB JTAG (Digilent) connector on the KC705 board Connect this cable to your PC Power on the KC705 board

Generate x8 Gen 2 PCIe MCS File

Generate PCIe MCS File Click on Launch impact

Generate PCIe MCS File Under impact Flows, double click on Create a PROM File

Generate PCIe MCS File To generate a PROM file for the BPI Flash, select: BPI Configure Single FPGA

Generate PCIe MCS File Select Virtex7 Add 128M Storage Device

Generate PCIe MCS File Click on Output File Location, create a ready_for_download directory, set the file name, set Data Width to 16, and click OK

Generate PCIe MCS File Add xilinx_pcie_2_1_ep_7x.bit from the <design path>\kc705_pcie_vivado.runs\impl_1 directory

Generate PCIe MCS File Click OK on this dialog

Generate PCIe MCS File From the impact menu, select Operations Generate File

Program BPI Flash with PCIe Design After generation completes, click on the Boundary Scan tab

Program BPI Flash with PCIe Design Right click on the SPI/BPI? and select Add SPI/BPI Flash Add <design path>\ready_for_download\kc705_pcie_x8_gen2.mcs

Program BPI Flash with PCIe Design Make the following settings Select 28F00AP30 Set the RS Pins to 25:24

Note: Programming takes about 2 minutes Program BPI Flash with PCIe Design Right click on the Flash and select Program Use default settings to Erase and Verify device

Program BPI Flash with PCIe Design Erase Before Programming must be selected

Hardware Setup Insert the KC705 Board into a PCIe slot (x16 shown) Use the included PC Power adapter; turn on Power Switch

Hardware Setup Do not use the PCIe connector from the PC power supply

Running the PCIe x8 Gen 2 Design Power on the PC Start PciTree

Running the PCIe x8 Gen 2 Design Set Number of Configuration Registers to 64 Click on Refresh dump

Running the PCIe x8 Gen 2 Design Locate the Xilinx Device Vendor ID is 0x10EE The x8 Gen 2 configuration will have a Device ID of 0x7028

Running the PCIe x8 Gen 2 Design Navigate the linked list in configuration space to locate the PCIe Capabilities Structure See UG477 for details With the Xilinx device selected, select Register 0x40 Register 0x40 points to the next structure 0x48 is the address of the next structure

Running the PCIe x8 Gen 2 Design Select Register 0x48 Register 0x48 points to the next structure 0x60 is the address of the next structure

Running the PCIe x8 Gen 2 Design Register 0x60 0x60 is a type 0x10, indicating PCIe Capabilities Structure Last Structure

Running the PCIe x8 Gen 2 Design 1 Register 0x6C Link Capabilities Register Indicates the maximum number of lanes and speed (Gen 1, Gen 2) for device The value 0x82 shows this is an x8 Gen 2 device (1) Link Status Register 0x70 Shows the current link status This design, in a Gen 2 chassis, trained to x8 Gen 2 (2) 2

Running the PCIe x8 Gen 2 Design Double-click on BAR 0 BAR 0 Address is machine dependent Click Yes on the Dialog box seen below

Running the PCIe x8 Gen 2 Design Select auto read memory

Running the PCIe x8 Gen 2 Design Click on the first memory location Type <Shift-End> to select 1024 Bytes

Running the PCIe x8 Gen 2 Design Write Memory Select count Click Write Memory Click refr view View results counting up to FF

Running the PCIe x8 Gen 2 Design Restore Memory Deselect count Click Write Memory Click refr view Memory is reset to zeros Turn off PCIe chassis and remove KC705 board

References

References PCIe Base Specification PCI SIG Web Site http://www.pcisig.com/home Kintex-7 PCIe PCIe Product Overview http://www.xilinx.com/products/intellectual-property/ 7_SERIES_PCI_Express_Block.htm 7 Series FPGAs Integrated Block for PCI Express User Guide UG477 http://www.xilinx.com/support/documentation/ip_documentation/ pcie_7x/v1_4/ug477_7series_intblock_pcie.pdf 7 Series FPGAs Integrated Block for PCI Express Data Sheet DS821 http://www.xilinx.com/support/documentation/ip_documentation/ pcie_7x/v1_4/ds821_7series_pcie.pdf IP Release Notes Guide http://www.xilinx.com/support/documentation/ip_documentation/xtp025.pdf

Documentation

Documentation Kintex-7 Kintex-7 FPGA Family http://www.xilinx.com/products/silicon-devices/fpga/kintex-7/index.htm KC705 Documentation Kintex-7 FPGA KC705 Evaluation Kit http://www.xilinx.com/products/boards-and-kits/ek-k7-kc705-g.htm KC705 Getting Started Guide http://www.xilinx.com/support/documentation/boards_and_kits/ ug883_k7_kc705_eval_kit.pdf KC705 User Guide http://www.xilinx.com/support/documentation/boards_and_kits/ ug810_kc705_eval_bd.pdf KC705 Reference Design User Guide http://www.xilinx.com/support/documentation/boards_and_kits/ ug845_ref_design.pdf