[ZYNQ入门宝典]GTX高速口怎么玩(一)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/weixin_42229533/article/details/86541557

GTX的概述

 

高速接口本来就复杂,Xilinx的IP虽然方便,但定制化参数较多,需要去了解的知识很多,官方文档就四五百页。还好在大多数应用里我们都只是用了其皮毛。我也是第一次学习GTX的IP,两个礼拜里摸索出一点东西,在这记录下。

  1. SERDES
    SERDES就是G级速率以上的串行/解串器。Xilinx给出的方案就是芯片里内嵌GTX,GTH,GTP等模块。这里就以GTX为例。Transceivers的这个IP就是专门为GTX的使用而设计的。
     
  2. Transceivers IP中几个基本知识
    几个名词:
    GTXE2_CHANNEL/GTHE2_CHANNEL 就是最后IP例化的名称。
    GTXE2_COMMON/GTHE2_COMMON 就是最终IP中QPLL的名称
     
    GTX硬件结构:
      
                         325T为例整个芯片GTX内部结构
     
    时钟:参考时钟进入,每一个收发器都有一个QPLL,同时单独有一个QPLL,一般更高频率下会用到。

     
    GTX整体功能结构:

     
  3. Transceivers Wizard
  1. 找到Transceivers的IP,并打开定制。在此不再赘述。
  2. 第一页没有什么好定制,只有一个,一定选择Include shared Logic in example design。主要是涉及到时钟相关资源是否可以和example进行共享。本工程用到example里的工程,选择共享总没错吧。

     3.速率、时钟相关。
    Protocol是指协议模式,大概支持了很多模式SRIO, SATA等,这里选择不走协议。
    速率根据实际需求选择,每个速率对应的可选参考时钟系统自动列出。本工程主要测试回环模式的通讯,所以TX和RX的参数需要一致。
    PLL选择QPLL。
    最后一列的三个框均勾选。

     
     
     
  1. 编码。
    External Data Width代表了用户端的数据位数,Encoding代表了编码格式,这里选择8B/10B。Internal Data With根据编码形式已经自动转换了相应的位数格式。其他的选项,暂时没这些必要。
     
  2. COMMA value。标准的Comma,默认值就行。

         6.其他定制。涉及一些特殊协议以及其他参数的定制。这里只勾选LOOKBACK,这是设置回环模式的,以及PRBS相关参数,他是涉及内部PRBS随机数产生的一些参数。TXPRBS负责选择PRBS的模式,TXPRBSFORCEERR可以强制让PRBS出错,RXPRBS_LOOPBACK代表是否需要PRBS回环。

     
     
          7.   总结。后面两项都是默认值,最后一项是对参数设置的一个总结。可以看到的是,通讯速率1G,内部数据位40位,用户时钟最终是25M。 

  1.  4. EXAMPLE DESIGN

           打开example design,了解大概的结构。整个程序有三个部分组成。第一个就是GTX的IP核本身,第二个是数据产生模块,第三个是数据对比模块。具体程序分析下一章再聊。


 


            同时,example design里有现成的仿真文件。运行实现,可以直接观测到误码个数。实际运行中,若硬件电路没有问题则ERROR_COUNT_OUT也是一直为0。
 

        5. 附件

              附件为文章中所用的工程。软件环境是vivado2015.4。

               https://download.csdn.net/download/weixin_42229533/10926049

猜你喜欢

转载自blog.csdn.net/weixin_42229533/article/details/86541557