集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 1063|回复: 2

PCIE xilinx v5 IP核使用前的研究

[复制链接]
jahero 发表于 2015-8-1 12:30:22 | 显示全部楼层 |阅读模式
外带一个月前啃的一个星期,加本星期心无旁骛,啃出些心得,广惠后人。但愿有用。

    trn信号是数据链路层的信号 TLP包是数据链路层传给transaction层的包 解包需要一个transaction的协议,所有req信号都是属于transaction层的信号,都是从包内数据解得的

    数据链路层中trn_rd是传输TLP包的数据线 其他线都是辅助trn_rd传输数据的。比如起始结束 数据掩膜之类的。

    header的叫法只属于transaction,header,payload,digist组成tlp数据包,payload专指有效数据。transaction层中的req_td 是用来表示crc校验用的。

req_rid和req_tag信号是 在接到tlp包后rx_engine进行拆包后得到的,得到的requester_id和request_tag信号被传给tx_engine并回传给主机 告诉主机req_rid的请求已经收到,这两个信号与数据位mask(BE)合并于tlp包头的第三帧回传。

    虽然pcie只有两根线传数据,但是需要数据链路层一个协议以及tlp解包协议。这主要因为1.数据链路层的协议可以使两端点pcie设备顺利传输数据,在物理层面上保证时序不错位。(电路人来做)2.包协议 更虚构的协议 告诉收发包者各个位都表示什么意思,进行bits align(计算机人关心)。 所以两个协议一个不能少。



    non-posted和posted传输方式 修改trn_tbuf_av寄存器实现配置不同方式。 non-posted需要completer传给requester completion包,有时如果requester需要completer读数据 数据包含在completion包里。 posted传输方式 requester总是认为completer能够稳稳收包 不需要completion包应答而且posted request不一定在request tlp包里含有数据。



completion帧协议有变化,|completer_id(16bits)|000|0|byte_count(12bits)|     在此处出数据



http://note.youdao.com/share/?id ... 53722&type=note 带图版本;



以上为精髓

下面就是浩如烟海的文档中本人筛选出来的比较有用的文档

pcie_slot_to_pc.pdf

xcell26_678.pdf

PCIE总线的FPGA设计方法.pdf

PCIe-8622H.pdf

基于PCI+Express总线的高性能嵌入式系统研究_1357727089890.pdf

ug197.pdf



重点看ug197.pdf与两篇中文论文对着看

接下来就是实际操作一下xilinx的ip核
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|小黑屋|手机版|Archiver|fpga论坛|fpga设计论坛 ( 京ICP备20003123号-1 )

GMT+8, 2025-5-6 07:21 , Processed in 0.054903 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表