Visible to Intel only — GUID: lbw1473353223212
Ixiasoft
1. Datasheet
2. Getting Started with the Arria V Hard IP for PCI Express
3. Parameter Settings
4. Interfaces and Signal Descriptions
5. Registers
6. Interrupts
7. Error Handling
8. IP Core Architecture
9. Transaction Layer Protocol (TLP) Details
10. Throughput Optimization
11. Design Implementation
12. Additional Features
13. Hard IP Reconfiguration
14. Transceiver PHY IP Reconfiguration
15. Testbench and Design Example
16. Debugging
A. Frequently Asked Questions for PCI Express
B. Lane Initialization and Reversal
C. Document Revision History
1.1. Arria V Avalon-ST Interface for PCIe Datasheet
1.2. Features
1.3. Release Information
1.4. Device Family Support
1.5. Configurations
1.6. Example Designs
1.7. Debug Features
1.8. IP Core Verification
1.9. Performance and Resource Utilization
1.10. Recommended Speed Grades
1.11. Creating a Design for PCI Express
4.1. Clock Signals
4.2. Reset, Status, and Link Training Signals
4.3. ECRC Forwarding
4.4. Error Signals
4.5. Interrupts for Endpoints
4.6. Interrupts for Root Ports
4.7. Completion Side Band Signals
4.8. LMI Signals
4.9. Transaction Layer Configuration Space Signals
4.10. Hard IP Reconfiguration Interface
4.11. Power Management Signals
4.12. Physical Layer Interface Signals
15.6.1. ebfm_barwr Procedure
15.6.2. ebfm_barwr_imm Procedure
15.6.3. ebfm_barrd_wait Procedure
15.6.4. ebfm_barrd_nowt Procedure
15.6.5. ebfm_cfgwr_imm_wait Procedure
15.6.6. ebfm_cfgwr_imm_nowt Procedure
15.6.7. ebfm_cfgrd_wait Procedure
15.6.8. ebfm_cfgrd_nowt Procedure
15.6.9. BFM Configuration Procedures
15.6.10. BFM Shared Memory Access Procedures
15.6.11. BFM Log and Message Procedures
15.6.12. Verilog HDL Formatting Functions
15.7.1. Changing Between Serial and PIPE Simulation
15.7.2. Using the PIPE Interface for Gen1 and Gen2 Variants
15.7.3. Viewing the Important PIPE Interface Signals
15.7.4. Disabling the Scrambler for Gen1 and Gen2 Simulations
15.7.5. Disabling 8B/10B Encoding and Decoding for Gen1 and Gen2 Simulations
15.7.6. Changing between the Hard and Soft Reset Controller
Visible to Intel only — GUID: lbw1473353223212
Ixiasoft
4.9.1. Configuration Space Register Access Timing
The tl_cfg_add and tl_cfg_ctl signals have multi-cycle paths. They update every eight coreclkout_hip cycles.
To ensure correct values are captured, your Application RTL must include code to force sampling to the middle of this window. The following example RTL captures the correct values of the tl_cfg busses in the case of an eight-cycle window. A generated strobe signal, cfgctl_addr_strobe, captures the address and data values by sampling them in the middle of the window.
// register LSB bit of tl_cfg_add
always @(posedge coreclkout_hip)
begin
tl_cfg_add_reg <= tl_cfg_add[0];
tl_cfg_add_reg2 <= tl_cfg_add_reg;
end
// detect the address change to generate a strobe to sample the input 32-bit data
always @(posedge coreclkout_hip)
begin
cfgctl_addr_change <= tl_cfg_add_reg2 != tl_cfg_add_reg;
cfgctl_addr_change2 <= cfgctl_addr_change;
cfgctl_addr_strobe <= cfgctl_addr_change2;
end
// capture cfg ctl addr/data bus with the strobe
always @(posedge coreclkout_hip)
if(cfgctl_addr_strobe)
begin
captured_cfg_addr_reg[3:0] <= tl_cfg_add[3:0];
captured_cfg_data_reg[31:0] <= tl_cfg_ctl[31:0];
end
Figure 16. Sample tl_cfg_ctl in the Middle of Eight-Cycle Window