(完整版)xilinxPCIE2.0接口EP端设计总结-推荐文档Word下载.doc
- 文档编号:13062331
- 上传时间:2022-10-04
- 格式:DOC
- 页数:47
- 大小:1.89MB
(完整版)xilinxPCIE2.0接口EP端设计总结-推荐文档Word下载.doc
《(完整版)xilinxPCIE2.0接口EP端设计总结-推荐文档Word下载.doc》由会员分享,可在线阅读,更多相关《(完整版)xilinxPCIE2.0接口EP端设计总结-推荐文档Word下载.doc(47页珍藏版)》请在冰豆网上搜索。
这其中数据链路层包(DLLP),物理层(PLP)的包平常不需要关心,在IP核中封装好了。
在FPGA上做PCIe的功能,变成完成事务层包(TLP)的处理。
待移动数据的PCI-Express协议的请求均由主CPU发出。
l当CPU向存储器映射输入/输出(MMIO)地址存储器发出命令时,数据向下游移动。
RootComplex通常会生成一个具有对应MMIO位置地址、字节使能和寄存器内容的存储器写TLP。
Endpoint接收存储器写TLP更新响应的本地寄存器后事务即终止。
l当CPU发出从MMIO地址加载寄存器的命令时,数据向上游移动。
RootComplex通常会生成一个具有响应MMIO位置地址和字节使能的存储器读TLP。
Endpoint在收到存储器读TLP后会生成带数据完成型TLP。
完成包传送到RootComplex,有效载荷加载至目标寄存器后事务即完成。
2.PICE核接口
2.1系统接口
表1系统信号
信号名
方向
定义
Sys_rst_n
Input
异步信号。
sys_rst_n在上电和热复位操作期间,必须被断言至少1500ns
Sys_clk
Output
参考时钟:
可选频率为100MHZ,125MHZ或者500MHZ
2.2PCIE接口
PCIE接口由不同的发送(对)和接收(对)所构成的多线程组成。
一个PCIE线由一对发送差分信号(pci_exp_txp,pci_exp_txn)和一对接收差分信号(pci_exp_rxp,pci_exp_rxn)组成。
单线的只支持0线,双线只支持01线,四线支持0-3线,八线支持0-7线。
下表2定义了4线核的发送和接收信号。
(只给了一线的信号)
表2PCIE接收和发送信号
线
信号名字
pci_exp_txp0
PCIE发送正:
串行差分输出
pci_exp_txn0
PCIE发送负:
串行差分输出
pci_exp_rxp0
PCIE接收正:
串行差分输入
pci_exp_rxn0
PCIE接收负:
1
pci_exp_txp1
pci_exp_txn1
pci_exp_rxp1
pci_exp_rxn1
2
pci_exp_txp2
pci_exp_txn2
pci_exp_rxp2
pci_exp_rxn2
3
pci_exp_txp3
pci_exp_txn3
pci_exp_rxp3
pci_exp_rxn3
2.3事务接口
事务接口为用户设计提供了一个机制来产生和消耗TLP。
2.4发送接口
位宽
描述
S_axis_tx_tlast
O
帧发送结尾:
标记包的结尾,只有在S_axis_tx_tvalid申明时才有效。
S_axis_tx_tdata
64
发送的数据
S_axis_tkeep
8
传输数据选通,决定所给定拍子数据有效字节。
数据在s_axis_tx_tvalid和s_axis_tx_tready都有效时才有效。
此信号的最低位决定数据低字节的有效性。
当last信号没有断言时,只有0xFF有效。
当last信号已断言时,只有0x0F和0xFF是有效的。
S_axis_tx_tvalid
数据有效信号,拉高表明发哦少年宫数据已准备好。
S_axis_tx_tready
I
置1表明核准备好接收数据。
S_axis_tx_tuser
[3]
传输停止。
可以在开始传输后的任意时间断言。
[2]
传输流。
表明一个包在连续时钟周期上被提供并且在链路上能在确认的包写入核之前开始传输。
[1]
此信号标志当前进程中的包是错误的。
此信号能在开始到结束传输的任意时刻被拉高。
但是tx_err_fwd信号必须在s_axis_tx_tuser[2]断言时拉低。
[0]
端对端循环冗余检查摘要被附加。
必须在TLP的开始时就被断言。
Tx_buf_av
6
发送buffer可用:
表明核中空闲发送buffer的数量。
每个空闲的传输buffer能够调节TLP来支持最大负载size。
发送buffer的最大数量由支持的MPS和所选的块RAM配置决定。
Tx_err_drop
传输错误。
表明核因为长度不匹配或者流传的时候数据在连续时钟周期上没有提供而丢弃了一个包。
Tx_cfg_req
发送配置请求。
当核准备好发送一个配置或者其他内部生成的TLP时置1.
Tx_cfg_gnt
1.同意传输配置。
是配置请求的响应。
允许核传输一个内部产生的TLP。
2.tx_cfg_req信号子在核生成的包已被服务,在任何请求生成之前总算解除断言的。
因此,用户设计能够根据tx_cfg_req的上升沿来决定什么时候断言tx_cfg_gnt。
3.在tx_cfg_req给定要传输的用户创建的TLP相对于核生成的TLP更高的优先级之后保持tx_cfg_gnt为非断言状态。
4.在断言tx_cfg_gnt一个时钟州后当tx_cfg_erq断言导致下一个要输出的包为核内部生成的包时拉高tx_cfg_gnt一个时钟周期。
5.当没有buffer空间来存储内部包时,tx_cfg_req甚至在tx_cfg_gnt已经断言后保持断言状态。
6.设计需要再次断言tx_cfg_gnt信号,因为最初的断言已经被捕捉到。
7.如果不想改变内部生成TLP传输的优先次序,保持此信号为高。
2.5接收接口
m_axis_rx_tlast
接收帧结尾:
包结尾信号。
在tvalid断言时才有效。
m_axis_rx_tdata
接收的数据
m_axis_rx_tkeep
接收数据选通
决定接收数据的有效字节。
m_axis_rx_tlast信号没有断言时,只有0xFF为有效值
m_axis_rx_tlast信号断言时,有效值为0x0F额0xFF
m_axis_rx_tvalid
接收数据有效。
m_axis_rx_tready
接收端准备好接收数据。
m_axis_rx_tuser
[9:
2]
rx_bar_hit[7:
0]
接收bar:
表明当前接收事务的目标bar,从包的开头到m_axis_rx_tlast都保持断言。
•(rx_bar_hit[0])m_axis_rx_tuser[2]:
BAR0
•(rx_bar_hit[1])m_axis_rx_tuser[3]:
BAR1
•(rx_bar_hit[2])m_axis_rx_tuser[4]:
BAR2
•(rx_bar_hit[3])m_axis_rx_tuser[5]:
BAR3
•(rx_bar_hit[4])m_axis_rx_tuser[6]:
BAR4
•(rx_bar_hit[5])m_axis_rx_tuser[7]:
BAR5
•(rx_bar_hit[6])m_axis_rx_tuser[8]:
ExpansionROMAddress
•m_axis_rx_tuser[8:
4]不适用于Root端口配置
•m_axis_rx_tuser[9]isreservedforfutureuse.
接收有错误
表明当前包存在EREC无措。
只有在包的帧结尾才会断言
3.PCIE设计参考
3.1设计64位事务层接口
下图代表了典型的32位可寻址内存写请求TLP(TransactionLayerSpecification)
图3-1PCIE字节命令基础规范
PCIE标头各字段定义如下:
lFmt[1:
0] 定义了头标长度和该TLP是否有数据载荷的信息。
lType[4:
0] 与Fmt[1:
0]共同定义了TLP的事务类型、头标长度和是否有数据载荷
lTC[2:
0] (优先级设定)定义了设备核施加于请求TLP及完成TLP的传输类别编号。
PCIE总线规定了8种传输类型,分别为TC0~TC7,默认值为TC0,该字段与PCIE的QoS相关。
PCIE设备以传输类别(TC)、虚通道(VC)、TC/VC映射以及优先级仲裁机制为TLP传输提供有区别的服务质量。
传输类别对应TLP头标中的3位TC字段,由软件根据TLP的紧要程度设置。
虚通道是设备端曰中的TLP缓冲器,每个端口中可设置l~8个VC缓冲器,对应可编号为VC0~VC7,每个编号的VC中可以缓冲若干个TLP。
PCIE设备内部有逻辑电路负责将不同TC的TLP到推入到对应编号VC中,每个TLP只能被映射到一个VC中,使通过该端口
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 完整版 xilinxPCIE2 接口 EP 设计 总结 推荐 文档