Aurora 8B/10B 协议包括本地流控制(NFC)接口,其允许接收机通过指定必须
放入数据流的空闲数据跳数来控制接收数据的速率。 甚至可以通过请求发送器临时发送空闲(XOFF) 来完全关闭数据流.NFC 通常用于防止 FIFO 溢出条件。有关 NFC 操作和代码的详细说明,请参阅 Aurora 8B/10B 协议规范(SP002)。
当 NFC 选项启用时生成 IPCORE 时,就会创建 NFC 接口。该接口包括用于发送 NFC 消息的请求 (s_axi_nfc_tx_tvalid)和确认(s_axi_nfc_tx_tready)端口以及 4 位 s_axi_nfc_tx_tdata 端口, 以指定所请求的空闲周期数。 表列出了 NFC 接口的端口,仅在全双工 Aurora 8B/10B 内核中可用。
用户应用程序断言 s_axi_nfc_tx_tvalid 并将 NFC 代码写入 s_axi_nfc_tx_tdata。 NFC 代码
指示频道合作 伙伴应在其 TX 数据流中 插入的最 小空闲周期 数。 用 户应用程序 必须保 存
s_axi_nfc_tx_tvalid 和 s_axi_nfc_tx_tdata,直到 s_axi_nfc_tx_tready 被断言。 Aurora 8B / 10B
内核在发送NFC消息时无法传输数据。在s_axi_nfc_tx_tready断言之后的周期上,s_axi_tx_tready
总是被取消置位。
示例 A:发送 NFC 消息
图示出了当用户应 用 向 通 道 伙 伴 发 送 NFC 消 息 时 的 发 送 定 时 的 示 例 。
s_axi_nfc_tx_tready 信号被断言一个周期(假设 n 至少为 2),以在 NFC 消息的数据流中创建间隙。
Example B: Receiving a Message with NFC Idles Inserted(接收带有 NFC 空闲的消息插入)
图显示了当接收到 NFC 消息时,TX 用户界面上的信号示例。 在这种情况下,NFC 消息具有
0001 的代码,请求两个空闲数据跳动。 内核在用户界面上取消 s_axi_tx_tready,直到发送足够的
空闲来满足请求。 在这个例子中,核心正在立即进入 NFC 模式,NFC 空闲时间立即被插入。 Aurora 8B / 10B 内核也可以在完成模式下工作,其中 NFC 空闲仅插入帧之间。 如果完成模式核心在发送帧时收到 NFC 消息,则在取消 s_axi_tx_tready 以插入空闲之前完成发送帧。