PCI Express v1.7的端点模块 –  ISE 10.1初始IP更新(IP_10.1.0)的发行说明和已知问题-Altera-Intel社区-FPGA CPLD-ChipDebug

PCI Express v1.7的端点模块 – ISE 10.1初始IP更新(IP_10.1.0)的发行说明和已知问题

问题描述

[保留10.1 IP更新0]

本发行说明和已知问题答案记录适用于ISE 10.1初始IP更新中发布的PCI Express v1.7端点模块,包含以下信息:

– 一般信息

– 新功能

– Bug修复

– 已知的问题

有关安装说明,一般CORE Generator已知问题和设计工具要求,请参阅“IP发行说明指南”,网址为:http://www.xilinx.com/support/documentation/user_guides/xtp025.pdf

解决/修复方法

一般信息

用户应将LogiCORE PCI Express Block Plus设计用于所有典型的PCI Express端点应用。有关更多信息,请参阅(Xilinx答复30120) 。 Endpoint Block Plus包装器包含端点块包装器v1.7中未提供的许多所需功能。

已知的问题

用于PCI Express已知限制的Virtex-5 FPGA集成模块

请参阅“用于PCI Express设计的Virtex-5集成端点模块用户指南”

(UG197 – v1.2,2007年12月13日),发现于: http//www.xilinx.com/support/documentation/user_guides/ug197.pdf

Virtex-5 FPGA GTP收发器

以下是有关GTP收发器与PCI Express集成模块接口的已知问题。

– 收发器从Rx.L0s退出

当GTP收发器退出Rx.L0s时,块将忽略FTS-FTS-COM-SKP通道绑定序列中SKP符号之后的有效数据的最多8个符号时间。这是由于来自GTP的RXCHANISALIGNED信号的断言延迟。如果数据包由上游端口重放并由集成块正确确认,则链路将保持运行状态。但是,如果原始丢失数据是ACK,上游组件发送ACK,则返回L0s,唤醒发送ACK,然后返回L0s。如果连续重复,最终会触发链接重新训练。但是,没有数据丢失,链接最终会恢复,对安全操作造成的影响微乎其微。

-TX路径输入L0和接收的数据包

当核心的TX路径进入L0并且链路伙伴发送分组时,转换回L0以发送ACK非常长,导致链路伙伴重放该分组。它导致核心发送两个ACK(一个用于原始数据包,一个用于重放数据包)。这是由于GTP从L0返回L0所需的时间。目前没有解决方法。

-GTP重置

在仿真GTP复位时,TX输出保持驱动的最后逻辑值,而不是将TXp和TXn驱动到X,1或0.这可能导致链接伙伴模型错误地解释行为和将其视为潜在的数据包开始。已经使用Denali BMF报告了这一点,它导致Denali模型报告错误,因为它将这些值解释为潜在的数据包START。解决方法是在GTP重置时关闭Denali错误报告。

– 报告8B / 10B错误

GTP收发器需要通过将RXSTATUS [2:0]设置为3’b100,将RXDATA [7:0]设置为8’hFE并将RXCHARISK设置为1来发出8B / 10B错误信号。收发器正确设置RXSTATUS,但不指示RXDATA和RXCHARISK上的正确值。结果,8B / 10B错误表现为LCRC错误,并且集成块发送NAK DLLP。这不会导致任何致命错误,但会导致不合规的响应。用户可以通过监视GTP收发器RXSTATUS输出并使用结构逻辑将RXDATA和RXDATAK输入上的正确值插入到集成模块来解决此问题。

L0s退出时的通道绑定

当链路从L0s转换到L0时,在多通道链路上存在信道绑定的问题。解决此问题的方法已包含在PCI Express的Block Plus Wrapper中。在实现过程中,MAP可能会报告在类似于以下路径上使用锁存器:

“EP / BU2 / U0 / pcie_ep0 / pcie_blk / SIO / .pcie_gt_wrapper_i / icdrreset <7:0>”。

这些锁存器是预期的并且是核心正确操作所必需的。

– 仿真电气空闲

在仿真期间,每个链路伙伴在某些时间需要仿真驱动电气空闲。 Xilinx GTP收发器希望在RXp和RXn线路上接收1,0或X,而不是High-Z来表示电气空闲。如果链接伙伴模型发送High-Z表示电气空闲,则设计将无法链接。要解决此问题,用户可以将链接伙伴模型设置为驱动程序1,0或X以获取电气空闲,或者在测试平台中插入一些逻辑以“捕获”High-Z并将其替换为1,这与(XilinxAnswer 29294)在与Xilinx下游端口模型进行接口仿真时遇到的类似问题类似。

– 仿真GTP重置

在仿真GTP复位时,TX输出保持驱动的最后一个逻辑值,而不是将TXp和TXn驱动为X,1或0.这可能导致链路伙伴模型错误地解释行为并看到它作为潜在的数据包开始。已经使用Denali BMF报告了这一点,它导致Denali模型报告错误,因为它将这些值解释为潜在的数据包START。解决方法是在GTP重置时关闭Denali错误报告。

端点块包装器

– 示例设计:没有拆分事务。完成者不能将读取请求分成两个或多个单独的完成。

– 示例设计:只能处理VC0中的数据包,只能处理流程类0。

– 示例设计:如果不对代码进行进一步修改,端点不会启动流程。

– 某些250 MHz设计可能无法满足时序要求。在ucf中引入区域约束和maxdelay约束可能有助于设计满足时序要求。

请登录后发表评论

    没有回复内容