Visible to Intel only — GUID: nik1410905340471
Ixiasoft
1. Datasheet
2. Getting Started with the Stratix V Hard IP for PCI Express
3. Getting Started with the Configuration Space Bypass Mode Qsys Example Design
4. Parameter Settings
5. Interfaces and Signal Descriptions
6. Registers
7. Interrupts
8. Error Handling
9. PCI Express Protocol Stack
10. Transaction Layer Protocol (TLP) Details
11. Throughput Optimization
12. Design Implementation
13. Additional Features
14. Hard IP Reconfiguration
15. Transceiver PHY IP Reconfiguration
16. Testbench and Design Example
17. Debugging
A. Frequently Asked Questions for PCI Express
B. Lane Initialization and Reversal
C. Document Revision History
2.1.1. Generating the Testbench
2.1.2. Simulating the Example Design
2.1.3. Generating Synthesis Files
2.1.4. Understanding the Files Generated
2.1.5. Understanding Simulation Log File Generation
2.1.6. Understanding Physical Placement of the PCIe IP Core
2.1.7. Compiling the Design in the Qsys Design Flow
Synopsys Design Constraints
Files Generated for Intel IP Cores
2.1.8. Modifying the Example Design
2.1.9. Using the IP Catalog To Generate Your Stratix V Hard IP for PCI Express as a Separate Component
3.3.1. Timing for Configuration Read to Function 0 for the 256-Bit Avalon-ST Interface
3.3.2. Timing for Configuration Write to Function 0 for the 256-Bit Avalon-ST Interface
3.3.3. Timing for Memory Write and Read of Function 1 256-Bit Avalon-ST Interface
3.3.4. Partial Transcript for Configuration Space Bypass Simulation
5.1. Clock Signals
5.2. Reset, Status, and Link Training Signals
5.3. ECRC Forwarding
5.4. Error Signals
5.5. Interrupts for Endpoints
5.6. Interrupts for Root Ports
5.7. Completion Side Band Signals
5.8. Configuration Space Bypass Mode Interface Signals
5.9. Parity Signals
5.10. LMI Signals
5.11. Transaction Layer Configuration Space Signals
5.12. Hard IP Reconfiguration Interface
5.13. Power Management Signals
5.14. Physical Layer Interface Signals
6.1. Correspondence between Configuration Space Registers and the PCIe Specification
6.2. Type 0 Configuration Space Registers
6.3. Type 1 Configuration Space Registers
6.4. PCI Express Capability Structures
6.5. Intel-Defined VSEC Registers
6.6. CvP Registers
6.7. Uncorrectable Internal Error Mask Register
6.8. Uncorrectable Internal Error Status Register
6.9. Correctable Internal Error Mask Register
6.10. Correctable Internal Error Status Register
16.6.1. ebfm_barwr Procedure
16.6.2. ebfm_barwr_imm Procedure
16.6.3. ebfm_barrd_wait Procedure
16.6.4. ebfm_barrd_nowt Procedure
16.6.5. ebfm_cfgwr_imm_wait Procedure
16.6.6. ebfm_cfgwr_imm_nowt Procedure
16.6.7. ebfm_cfgrd_wait Procedure
16.6.8. ebfm_cfgrd_nowt Procedure
16.6.9. BFM Configuration Procedures
16.6.10. BFM Shared Memory Access Procedures
16.6.11. BFM Log and Message Procedures
16.6.12. Verilog HDL Formatting Functions
16.7.1. Changing Between Serial and PIPE Simulation
16.7.2. Using the PIPE Interface for Gen1 and Gen2 Variants
16.7.3. Viewing the Important PIPE Interface Signals
16.7.4. Disabling the Scrambler for Gen1 and Gen2 Simulations
16.7.5. Disabling 8B/10B Encoding and Decoding for Gen1 and Gen2 Simulations
16.7.6. Changing between the Hard and Soft Reset Controller
Visible to Intel only — GUID: nik1410905340471
Ixiasoft
2.1.7. Compiling the Design in the Qsys Design Flow
To compile the Qsys design example in the Quartus® Prime software, you must create a Quartus® Prime project and add your Qsys files to that project.
- Before compiling, you can optionally turn on two parameters in the testbench. The first parameter specifies pin assignments that match those for the Intel Development Kit board I/Os. The second parameter enables the Compliance Base Board (CBB) logic on the development board. In the Gen1 x8 example design, complete the following steps if you want to enable these parameters:
- Right-click the APPS component and select Edit.
- Turn on Enable FPGA Dev kit board I/Os.
- Turn on Enable FPGA Dev kit board CBB logic.
- Click Finish.
- On the Generate menu, select Generate Testbench System and then click Generate.
- On the Generate menu, select Generate HDL and then click Generate. (You can use the same parameters that are specified in Generating the Testbench earlier in this chapter).
- In the Quartus® Prime software, click the New Project Wizard icon.
- Click Next in the New Project Wizard: Introduction (The introduction does not appear if you previously turned it off.)
- On the Directory, Name, Top-Level Entity page, enter the following information:
- The working directory shown is correct. You do not have to change it.
- For the project name, browse to the synthesis directory that includes your Qsys project, <working_dir>/pcie_de_gen1_x8_ast128/synthesis. Select your variant name, pcie_de_gen1_x8_ast128.v . Then, click Open.
- For Project Type select Empty project.
- Click Next to display the Add Files page.
- Complete the following steps to add the Quartus® Prime IP File ( .qip )to the project:
- Click the browse button. The Select File dialog box appears.
- In the Files of type list, select IP Variation Files (*.qip).
- Click pcie_de_gen1_x8_ast128.qip and then click Open.
- On the Add Files page, click Add.
- Click Next to display the Device page.
- On the Family & Device Settings page, choose the following target device family and options:
- In the Family list, select Stratix V (GS/ST/GX/E).
- In the Devices list, select Stratix V GX PCIe.
- In the Available Devices list, select 5SGXEA7K2F40C2 .
- Click Next to close this page and display the EDA Tool Settings page.
- From the Simulation list, select ModelSim ®. From the Format list, select the HDL language you intend to use for simulation.
- Click Next to display the Summary page.
- Check the Summary page to ensure that you have entered all the information correctly.
- Click Finish to create the Quartus® Prime project.
- Before compiling, you must assign I/O standards to the pins of the device. Refer to Making Pin Assignments to Assign I/O Standard to Serial Data Pins for instructions.
- You must connect the pin_perst reset signal to the corresponding nPERST pin of the device. Refer to the definition of pin_perst in the Reset, Status, and Link Training Signals section for more information.
- Next, set the value of the test_in bus to a value that is compatible for hardware testing. In Qsys design example provided, test_in is a top-level port.
- Comment out the test_in port in the top-level Verilog generated file.
- Add the following declaration, wire[31:0] test_in, to the same top-level Verilog file.
- Assign hip_ctrl_test_in = 32'h188.
- Connect test_in to hip_ctrl_test_in.
- Add the Synopsys Design Constraint (SDC) shown in the following example below to the top‑level design file for your Quartus® Prime project.
- To compile your design using the Quartus® Prime software, on the Processing menu, click Start Compilation. The Quartus® Prime software then performs all the steps necessary to compile your design.
Synopsys Design Constraints
create_clock -period “100 MHz” -name {refclk_pci_express}{*refclk_*}
derive_pll_clocks
derive_clock_uncertainty
# PHY IP reconfig controller constraints
# Set reconfig_xcvr clock
# Modify to match the actual clock pin name
# used for this clock, and also changed to have the correct period set
create_clock -period "125 MHz" -name {reconfig_xcvr_clk}{*reconfig_xcvr_clk*}
# HIP Soft reset controller SDC constraints
set_false_path -to [get_registers* altpcie_rs_serdes|fifo_err_sync_r[0]]
set_false_path -from [get_registers *sv_xcvr_pipe_native*] -to[get_registers *altpcie_rs_serdes|*]
# Hard IP testin pins SDC constraints
set_false_path -from [get_pins -compatibilitly_mode *hip_ctrl*]
Files Generated for Intel IP Cores
Figure 7. IP Core Generated Files