AR# 55252

|

LogiCORE IP Aurora 64B66B v10.0 或之后版本、即时NFC – 时钟校正可删除nfc传输

描述

在 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
People Also Viewed