仅对英特尔可见 — GUID: mjj1475884406973
Ixiasoft
3.1. Avalon-ST RX接口
3.2. Avalon-ST TX接口
3.3. TX信用接口(TX Credit Interface)
3.4. TX和RX串行数据
3.5. 时钟
3.6. 功能级复位接口(Function-Level Reset (FLR) Interface)
3.7. SR-IOV的控制阴影接口(Control Shadow Interface for SR-IOV)
3.8. 配置扩展总线接口(Configuration Extension Bus Interface)
3.9. Hard IP重配置接口
3.10. 中断接口
3.11. 电源管理接口(Power Management Interface)
3.12. 复位(Reset)
3.13. 传输层配置接口
3.14. PLL重配置接口
3.15. PIPE接口(仅适用于仿真)
6.1.1. Avalon-ST RX和TX接口的TLP Header和Data对齐
6.1.2. Avalon-ST 256-Bit RX接口
6.1.3. Avalon-ST 512-Bit RX接口
6.1.4. Avalon-ST 256-Bit TX接口
6.1.5. Avalon-ST 512-Bit TX接口
6.1.6. TX信用接口(TX Credit Interface)
6.1.7. 解释TX信用接口(Interpreting the TX Credit Interface)
6.1.8. 时钟
6.1.9. 更新流程控制计时器和信用释放(Update Flow Control Timer and Credit Release)
6.1.10. 复位(Resets)
6.1.11. 功能级复位接口(Function-Level Reset (FLR) Interface)
6.1.12. 中断
6.1.13. SR-IOV的控制阴影接口(Control Shadow Interface for SR-IOV)
6.1.14. 传输层配置空间接口(Transaction Layer Configuration Space Interface)
6.1.15. 配置扩展总线接口(Configuration Extension Bus Interface)
6.1.16. 硬核IP状态接口(Hard IP Status Interface)
6.1.17. 串行数据接口
6.1.18. PIPE接口
6.1.19. Hard IP重配置
6.1.20. 功耗管理接口(Power Management Interface)
6.1.21. 测试接口
6.1.22. PLL IP重配置
6.1.23. 消息处理(Message Handling)
8.1.1. 寄存器访问定义
8.1.2. PCI配置头(header)寄存器
8.1.3. PCI Express性能结构
8.1.4. Intel定义的VSEC Capability头
8.1.5. 通用控制和状态寄存器(General Purpose Control and Status Register)
8.1.6. 不可纠正的内部错误状态寄存器
8.1.7. 不可纠正的内部错误掩码寄存器
8.1.8. 可纠正的内部错误状态寄存器
8.1.9. 可纠正的内部错误掩码寄存器
8.1.10. SR-IOV虚拟化扩展功能寄存器地址映射(SR-IOV Virtualization Extended Capabilities Registers Address Map)
8.1.10.1. ARI Enhanced Capability Header
8.1.10.2. SR-IOV增强性能寄存器(SR-IOV Enhanced Capability Registers)
8.1.10.3. 初始VF和总共VF寄存器(Initial VFs and Total VFs Registers)
8.1.10.4. VF Device ID Register
8.1.10.5. Page Size Registers
8.1.10.6. VF基地址寄存器(BARs) 0-5 (VF Base Address Registers (BARs) 0-5)
8.1.10.7. Secondary PCI Express Extended Capability Header
8.1.10.8. 通道状态寄存器(Lane Status Registers)
8.1.10.9. Transaction Processing Hints (TPH) Requester Enhanced Capability Header
8.1.10.10. TPH Requester Capability Register
8.1.10.11. TPH Requester Control Register
8.1.10.12. Address Translation Services ATS Enhanced Capability Header
8.1.10.13. ATS Capability Register and ATS Control Register
9.4.1. ebfm_barwr处理过程
9.4.2. ebfm_barwr_imm过程(ebfm_barwr_imm Procedure)
9.4.3. ebfm_barrd_wait处理过程
9.4.4. ebfm_barrd_nowt处理过程
9.4.5. ebfm_cfgwr_imm_wait过程(ebfm_cfgwr_imm_wait Procedure)
9.4.6. ebfm_cfgwr_imm_nowt处理过程
9.4.7. ebfm_cfgrd_wait处理过程
9.4.8. ebfm_cfgrd_nowt处理过程
9.4.9. BFM配置过程
9.4.10. BFM共享存储器访问过程
9.4.11. BFM日志和消息过程
9.4.12. Verilog HDL格式化函数
仅对英特尔可见 — GUID: mjj1475884406973
Ixiasoft
B. TX信用调整示例代码
此实例Verilog HDL代码计算非发布TLP的可用信用。 它在tx_nph_cdts和tx_npd_cdts总线上提供来自远程器件的更新信用信息。 tx_nph_cdts和tx_npd_cdts总线驱动链路伙伴的RX缓冲区中的实际可用信用空间。由于EMIB(嵌入式多芯片互联桥)延迟,很难使用实际的信用空间。
以下Verilog RTL恢复了对非发布TLP的信用限制,在发送到TLP之前可被应用逻辑使用。
module nph_credit_limit_gen ( input clk, input rst_n, input [7:0] tx_nph_cdts, input tx_hdr_cdts_consumed, input [1:0] tx_cdts_type, output [7:0] tx_nph_cdts_limit ); reg tx_nph_credit_consume_1r; reg tx_nph_credit_consume_2r; reg [7:0] tx_nph_credit_consume_count_hip_3r; always @(posedge clk) begin if (!rst_n) begin tx_nph_credit_consume_1r <= 1'b0; tx_nph_credit_consume_2r <= 1'b0; tx_nph_credit_consume_count_hip <= 8'h0; end else begin tx_nph_credit_consume_1r <= (tx_cdts_type == 2'b01) ? tx_hdr_cdts_consumed : 1'b0; tx_nph_credit_consume_2r <= tx_nph_credit_consume_1r; tx_nph_credit_consume_count_hip_3r <= tx_nph_credit_consume_count_hip_3r + tx_nph_credit_consume_2r; end end assign tx_nph_cdts_limit = tx_nph_cdts + tx_nph_credit_consume_count_hip_3r; endmodule
以下伪代码解释了上面的Verilog RTL。
// reset credit_consume_count initially tx_nph_credit_consume_count = 0; tx_nph_credit_consume_count_hip = 0; if (tx_nph_credit_limit_count – (tx_nph_credit_consume_count + tx_nph_credit_required) <= (2^8)/2) { send NPH packet tx_nph_credit_consume_count += tx_nph_credit_required; } where tx_nph_credit_required: the number of credits required to send given NP TLP. For NP, tx_nph_credit_required is 1. tx_nph_credit_consume_count_hip += (tx_cdts_type == "01") ? tx_hdr_cdts_consumed : 1'b0; tx_nph_credit_consume_count_hip_delayed : three pld_clk cycle delayed tx_nph_credit_consume_count_hip tx_nph_credit_limit_count = tx_nph_cdts + tx_nph_credit_consume_count_hip_delayed;