• PCIE xilinx v5 IP核使用前的研究


     外带一个月前啃的一个星期,加本星期心无旁骛,啃出些心得,广惠后人。但愿有用。

        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=c595747071f2a744e6e48c2058f53722&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核

    看完这些也就是刚刚能知道如何使用ip核,即transaction层和application层的接口。至于数据链路层的设计和Ghz pcb设计就不要想了。

    转载:https://blog.csdn.net/jahero/article/details/13994907?locationNum=7

  • 相关阅读:
    C#语法糖(Csharp Syntactic sugar)大汇总
    js+JQuery实现返回顶部功能
    【深入ASP.NET原理系列】--ASP.NET页面生命周期
    扩展类
    c# 扩展方法奇思妙用
    常用excel技巧
    SQL Server之数据库语句优化
    SQL Server 聚合函数算法优化技巧
    十步完全理解SQL
    SQL语句统计每天、每月、每年的数据
  • 原文地址:https://www.cnblogs.com/chengqi521/p/8717705.html
Copyright © 2020-2023  润新知