由于 Quartus II 10.0 SP1 及更早版本中的软件错误导致的 CDR 锁定问题rx_freqlocked您可能会发现信号卡在高电平/置位位置。除 PCIe 模式外,所有模式都可能出现此问题。SAS/SATA 或使用rx_signaldetect信号的应用程序可能需要其他变通方法。
有关Arria® II GX CDR 单元为什么能在除 PCIe 模式以外的任何其他模式下保持rx_freqlocked信号置位的说明,请参阅 Arria II GX 勘误表 (PDF)。
要解决此问题,请从以下链接下载并安装相应的修补程序。解决此问题的软件解决方案已完全集成到 10.0 SP1 之后的 Quartus II 软件版本中,因此在更高版本的软件中不需要任何补丁。
请注意,软件补丁与下面指出的某些先前补丁不兼容。如果您使用的是这些不兼容补丁之一,请查看涉及图 1 所示和下面描述的重置序列的替代解决方案,或者如果您需要兼容补丁,请通过 mysupport.altera.com 提出服务请求。
- Quartus II 软件版本 9.1 SP2(补丁 2.109 与补丁 2.17、2.35、2.76、2.77、2.78、2.83 和 2.98 不兼容)
- Quartus II 软件版本 10.0 SP1(补丁 1.158 与补丁 1.151 不兼容)
安装补丁后,您只需重新运行 Quartus II 软件组装器,而无需执行完整编译。
注意:如果您没有使用 rx_signaldetect 信号,请忽略 64k 并行时钟周期定时,仅参考以下步骤。
- 断言rx_analogreset和rx_digitalreset信号。
- rx_freqlocked[0..n-1] 信号将变为低电平,表明收发器锁定至参考时钟(锁定至参考时钟)。
- 解除rx_analogreset信号。在取消rx_analogreset信号之前,请确保数据存在于接收器输入端。如果您使用的是 rx_signaldetect 端口,则可以按照上面建议的时序图进行操作。如果您没有使用rx_signaldetect信号,请参阅下面的特别说明,了解如何检测 RX 缓冲区上是否存在数据。
- rx_freqlocked[0..n-1] 信号将上升,表明收发器正在锁定数据。
- 在最后一rx_freqlocked后约 4 μs (tLTD_Auto) 信号变高,解除rx_digitalreset信号。
特别说明
使用以下一种或多种方法确定 RX 缓冲区中是否存在数据。
- 信号检测在 PCIe 和基本模式下可用。您可以将rx_signaldetect信号作为链路指示器的丢失或存在进行监控。rx_signaldetect将断言 RX 缓冲区中是否存在有效数据。
- 您可以在设备内核中实现 PPM 检测器,用于没有信号检测来监视链路的模式。PPM 检测器将帮助您识别链接中是否存在有效数据。
- 用户逻辑中的数据损坏或 RX 相位 comp fifo 溢出/下溢情况可能表示 RX 缓冲区中的数据有效或无效。