Xilinx Notes(10)

2020-04-14 02:42

8.1.8 Trace Lengths

以下约束均针对于高速应用,如1333以上。

DQ、DM及其对应的DQS之间的延时应控制在±5ps。

任何address、control及其相应的CK/CK#之间的延时控制在±25ps。

CK/CK#必须在DQS/DQS#之后到达,两者之间的延时必须在0到1600ps之间,推荐值

为150ps到1600ps之间。

7 Series FPGAs Integrated Block for

PCI Express v2.0

参考pg054-7series-pcie.pdf。

“Minimum Device Requirements”描述了支持PCIe Core的7系列器件,同时7系列不

支持PCIe Gen3。

1. Overview

2. Product Specification 3. Designing with the Core 3.1 General Design Guidelines

3.1.1 Designing with the Transaction Layer Interface

1) 当配置为Endpoint时,当core需要发送其自己产生的TLP时将会通知用户程序

(tx_cfg_req)。用户程序可以将tx_cfg_gnt永久性的置高,以允许core以最高优先级发送TLP;用户程序也可以在完成一部分TLP发送后,提高core的优先级(tx_cfg_gnt置高至少一个周期),让core的TLP发送。用户不能无限制的推迟响应core的请求。

2) Figure 3-3:3-DW发送,无负载

Figure 3-5:3-DW发送,带负载。 Figure 3-7:back-to-back TLP发送。

Back-to-back主要用于最大化传输带宽,即在s_axis_tx_tlast后继续保持s_axis_tx_tvalid有效,并立即开始下一个TLP的传输,如下图所示。

3) Source Throttling

Figure 3-8:Source Throttling,发送数据在s_axis_tx_tdata上不连续时使用,是由用户侧发起的。

如果用户程序不能在每个时钟周期都在s_axis_tx_tdata上放置有效数据时,可以通过将

s_axis_tx_tvalid置零,使该周期数据被忽略,如下图所示。

4) Destination Throttling

Figure 3-9:Destination Throttling,core通知用户程序不能发送新的TLP,但是当前已经发生的TLP将正常传输,是由core侧发起的。core通过将s_axis_tx_tready置零通知用户程序。

如果用户使用back-to-back方式传输,s_axis_tx_tready将在s_axis_tx_tlast的下一个周期置零。

5) Discontinuing Transmission of Transaction by Source

用户可以通过置高s_axis_tx_tuser[3](tx_src_dsc)通知core终止当前传输,该信号必须和s_axis_tx_tvalid和s_axis_tx_tready同时有效。tx_src_dsc不能在一个新的包开始时有效,

其他时候出现均可。在没有TLP传输行为时,tx_src_dsc无效。

如果处于非streaming模式,即s_axis_tx_tuser[2](tx_str)为低,则该包在通过串行总线传输前被丢弃;如果处于streaming模式,即s_axis_tx_tuser[2](tx_str)为高,则该包在通过串行总线传输后,在尾部被附加EDB符号。

6) Discarding of Transaction by Destination Core会在以下三种情况下丢弃一个TLP。 ? PCIe链路停止工作。

? TLP违反了Max_Payload_Size规则。

? s_axis_tx_tuser[2](tx_str)为高,且s_axis_tx_tvalid在TLP传输过程中出现不连续

情况。

出现上述情况时,AXI4-Stream interface继续接受当前TLP剩下的内容,然后在EOF后的三个周期内置高tx_err_drop信号,并丢弃当前TLP。

7) Packet Data Poisoning on the Transmit AXI4-Stream Interface 用户程序通过下述方法标明当前TLP的负载是poisoned。 将TLP的header中的EP字段置1。

在当前包的传输过程中,置高s_axis_tx_tuser[1](tx_err_fwd)信号至少1个周期。该方式使TLP header中的EP字段在传输到PCIe的fabric时被置高。在streaming模式下(s_axis_tx_tuser[2]为高)不支持terr_fwd。

如果使用ECRC,用户程序必须置高s_axis_tx_tuser[3],并且通过cfg_err接口报告该错误。

8) Using ECRC Generation

core支持自动产生ECRC信息。用户程序将s_axis_tx_tuser[0](tx_ecrc_gen)置高即可使能ECRC。该信号在包的持续过程中产生。当使能ECRC时,在包的最后会插入一个s_axis_tx_tready无效事件,以允许core在包的最后插入一个digest,如下图所示。

9) Basic TLP Receive Operation 基本的接收流程如下。

? 如果用户程序准备好接收数据,则使能m_axis_rx_tready。

? core使能m_axis_rx_tvalid,并将第一个完整的TLP QWORD放在

m_axis_rx_tdata[63:0]上。

? core继续将数据放置在接收总线上,直到最后一个TLP QWORD。在放置最后一个

数据的同时,core给出m_axis_rx_tlast信号。如果最后的64位全部有效,则m_axis_rx_tkeep置为0xFF;如果仅s_axis_rx_tdata[31:0]有效,则置为0x0F。 ? 如果没有后续TLP则core将m_axis_rx_tvalid置低。 10) Throttling the Datapath on the Receive AXI4-Stream Interface

用户程序可以通过置低m_axis_rx_tready控制位来延时接收数据。在用户置低m_axis_rx_tready时,如果没有正在进行的传输操作,且一个新的TLP有效,则core使能m_axis_rx_tvalid信号,并且将第一个TLP QWORD放置在m_axis_rx_tdata[63:0]上。core会一直保持这个状态,直到用户使能m_axis_rx_tready信号。只要m_axis_rx_tready有效,core会继续将后续的数据放在总线上。用户程序可在传输过程中置低m_axis_rx_tready以延时传输。core不限制用户置低m_axis_rx_tready的时长。

11) Receiving Back-to-Back Transactions on the Receive Interface

与back-to-back一样,接收也可以使用back-to-back模式。在完成上一个TLP后,core会继续使能m_axis_rx_tvalid信号,并开始新的TLP。如果用户不能接收back-to-back包,可以通过前述的throttling方式延迟数据接收。

12) Packet Re-ordering on Receive Interface

Transaction ordering规则允许posted和completion TLP旁路掉Non-Posted TLP。 Core提供两种机制用于管理Non-Posted buffer。第一种是Receive Non-Posted Throttling,


Xilinx Notes(10).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:企业全面预算管理研究综述

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: