在 Aurora 64B66B v8.0 中,如果在二级 NFC 命令过程中时钟校正字符被强制,随即外部握手结束(nfc_tready 出现),但 txdata_c 未显示 NFC 命令。
这样会导致数据流不间断,而且数据 FIFO 将会溢流。该问题在组帧及流媒体传输用户接口类型中都可出现。
在随同 S_AXI_NFC_TVALID 断言 DO_CC 时,CC 不仅会按照协议进行优先级排序,而且还会被发送。
NFC 请求需要等待,直到 CC 完成并恢复工作。在发送 CC 后,内核不发送 NFC 请求。
注:使用用户生成的组件名称替换 <=: USER_COMPONENT_NAME :>。
在所生成内核的 src 目录中,按照如下方式更新 <=: USER_COMPONENT_NAME :>_tx_ll_control_sm.v[hd] 文件中的 NFC 状态机代码:
Verilog:
always @(posedge USER_CLK)
if(!CHANNEL_UP) do_nfc_r <= `DLY 1'b0;
else if(!TXDATAVALID_IN) do_nfc_r <= `DLY do_nfc_r;
else if(!do_nfc_r) do_nfc_r <= `DLY !NFC_REQ_N & (!(DO_CC | do_cc_r));
else do_nfc_r <= `DLY 1'b0;
VHDL:
process(USER_CLK)
begin
if(USER_CLK'event and USER_CLK='1') then
if(CHANNEL_UP = '0') then
do_nfc_r <= '0' after DLY;
elsif(TXDATAVALID_IN = '0') then
do_nfc_r <= do_nfc_r after DLY;
elsif(do_nfc_r = '0') then
do_nfc_r <= (not NFC_REQ_N) and (not (DO_CC or do_cc_r)) after DLY;
else
do_nfc_r <= '0' after DLY;
end if;
end if;
end process;
该更新只适用于一个启用了本地数据流控制的 Duplex Aurora 64B66B 内核。此问题将在 Vivado 2016.1 版本中得以修复。
修订历史记录
06/28/2013 – 初始版本
2016 年 2 月 24 日 — 针对最新内核进行了更新
AR# 55252 | |
---|---|
日期 | 03/04/2016 |
状态 | Active |
Type | 已知问题 |
器件 | |
IP |