JESD204 - Vivado 2013.4及更早版本 - GTP和GTH - 生产重置DRP序列可能处于挂起状态,需要重新配置才能恢复

描述

WHE N使用JESD V5.0和更早,生产复位GTP和GTH DRP序列可以在需要重新配置,以恢复挂起状态结束  (Xilinx答案60489)  

只有在 正在进行复位序列的 同时向内核发出第二次复位时才会出现故障  

复位序列在配置后自动启动,因此如果在配置器件后不久切换主核复位,则可能会发生这种情况。  

由于DRP寄存器设置卡在16位Rx数据宽度而不是所需的20位数据宽度,故障发生。  

JESD204在正常操作期间使用20位数据宽度,但DRP逻辑在复位序列期间将数据宽度设置为16位,以避免生产复位问题(有关所需复位逻辑的更多信息,请参阅“GT收发器用户指南”)。  

仅在先前的复位序列正在进行时向核心发出第二次复位时才会出现故障。

要解决此问题,可以更改第二个DRP写入以确保数据宽度设置回20而不是依赖于最初读取的值,如果在DRP序列期间发出复位,则该值可能会卡在16。

DRP更新应该发送到<core_name> _ * _ gtrxreset_seq.v / vhd

(如果使用也更改<core_name> _ * _ gtrxrate_seq.v / vhd<core_name> _ * _ gtrxpmarst_seq.v / vhd )。
对于VHDL,请更改以下内容:

- 写入20位模式
当wr_20 =>时
....
drpdi_o <= rd_data(15 downto 0); - 每个上一个读取的恢复用户设置
至:
- 写入20位模式
当wr_20 =>时
...
drpdi_o <= rd_data(15 downto 12)&'1'&rd_data(10 downto 0); --restore 20位模式


对于Verilog,请更改以下内容:
//写入20位模式
wr_20:开始
....
drpdi_o = rd_data [15:0]; //恢复每个上一次阅读的用户设置
结束
至:
//写入20位模式
wr_20:开始
....
drpdi_o = {rd_data [15:12],1'b1,rd_data [10:0]}; //恢复20位
结束
编辑 重设标签(回车键确认) 标为违禁 关闭 合并 删除

提问于 2018-07-31 08:26:18 +0800

这个帖子被标记为一个社区wiki

这个帖子是一个wiki(维基). 任何一个积分 >500的人都可以完善它