目录

1 基础知识

2 Aurora  使用过程中报错


1 基础知识

Xilinx的7系列FPGA随着集成度的提高,其高速串行收发器不再独占一个单独的参考时钟,而是以Quad来对串行高速收发器进行分组,四个串行高速收发器和一个COMMOM(QPLL)组成一个Quad,每一个串行高速收发器称为一个Channel。

QPLL和CPLL的区别,在于两者支持的线速率不同,对于CPLL来说,支持的线速率位1.6GHz到3.3GHZ之间,而对于QPLL来说,GTX支持的线速率分两档,Lower Baud支持5.93GHz~8.0GHz,Upper Baud支持9.8GHz~12.5GHz,对于GTH则不分档位,支持的线速率为8.0GHz~13.1GHz。

Xilinx的7系列FPGA根据不同的器件类型,集成了GTP、GTX、GTH以及GTZ四种串行高速收发器,四种收发器主要区别是支持的线速率不同,下图可以说明在7系列里面器件类型和支持的收发器类型以及最大的收发器数量。

以XC7K325T为例,GTX在FPGA内部如下图所示:

对于每一个串行高速收发器,其包含了发送部分和接收部分,内部结构如下图

发送端和接收端功能独立,均由PMA(Physical Media Attachment,物理媒介适配层)和PCS(Physical Coding Sublayer,物理编码子层)两个子层组成。其中PMA子层包含高速串并转换(Serdes)、预/后加重、接收均衡、时钟发生器及时钟恢复等电路。PCS子层包含8B/10B编解码、缓冲区、通道绑定和时钟修正等电路。

GTX发送端处理流程:首先用户逻辑数据经过8B/10B编码后,进入一个发送缓存区,该缓冲区主要是PMA子层和PCS子层两个时钟域的时钟隔离,解决两者时钟速率匹配和相位差异的问题,最后经过高速Serdes进行并串转换,有必要的话,可以进行预加重、后加重。值得一提的是,如果在PCB设计时不慎将TXP和TXN差分引脚交叉连接,则可以通过极性控制来弥补这个设计错误。接收端和发送端过程相反,相似点较多,这里就不赘述了,需要注意的是RX接收端的弹性缓冲区,其具有时钟纠正和通道绑定功能。

如果用户需要使用其他Quad的参考时钟源来作为当前Quad的参考时钟,在满足下面三个条件的情况下可以使用:

1、只能使用当前Quad上方的Quad的参考时钟;

2、只能使用当前Quad下方的Quad的参考时钟;

3、一个Quad的参考时钟源不能驱动超过3个Quad的收发器(只能驱动当前Quad和上下方相邻两个Quad);

参考网址:

https://cloud.tencent.com/developer/article/1528849

2 Aurora  使用过程中报错

从这个错误里,提示我们两点:

A)

在配置IP核第二页的时候,其实就是每个通路分配引脚的过程。这里选择通路的时候,要和引脚分配严格对应。否则,生成bit文件可能不会报错(在只使用一个bank接口的时候,LAN就选错了,但是也顺利生成了bit文件)。对应方式如下:

GTHQ8 对应bank 118这个quad,上图对应的就是bank118 的MGTX1。

B)

QPLL时钟驱动该QUAD以外的GTX模块报错。虽然错中提示中让添加时序约束,把错误降为warning。但是,也说明了不建议用,同时也尝试过,不能正常生成bit文件。

差分时钟可以最多驱动12个GTX正常工作,但是在驱动时要注意GTX_COMMOM模块,即一个GTX_COMMON最多可以驱动同一个QUAD上的4个GTX_CHANNEL,如果说要驱动超过四个或者其他QUAD上的GTX,必须要生成新的GTX_COMMON模块,来保证其他QUAD上的GTX可以正常工作。

这是检查了一下工程发现了问题,主核的Aurora IP核中包含了GTX_COMMON模块,但是从核GTX_COMMON模块在IP核的外面被注释掉了,因为在之前的设计中,两个IP核的四个GTX在同一个BANK中,所以在从核的顶层将GTX_COMMOM模块删掉了,所以该模块产生的信号(gt_qpllclk_quad1_in_i和gt_qpllrefclk_quad1_in_i)采用了主核产生后外接到从核的工作模式。

发现问题后,将从核的GTX_COMMON模块添加到从核的顶层,并且将gt_qpllclk_quad1_in_i和gt_qpllrefclk_quad1_in_i这两个信号从外接改成了从核的GTX_COMMON模块产生后再接到IP核的方式,问题解决。

参考网址:https://blog.csdn.net/weiweiliulu/article/details/107513829

根据2  修改代码

修改Xilinx自带IP核源码的方法:

https://blog.csdn.net/weiweiliulu/article/details/107490705

代码结构如下:

Aurora_8b10b  是最顶层,看有个链接,有人说顶层更改一些IO端口以后,更改IP核报错,为了躲避这个风险,就没有更改最顶层的IO端口。所以在Aurora_8b10b_8_core这个文件里删除端口上的公共时钟。

调用 _core 的时候common的信号没用到。这些信号在 _core里面自己生成。

Aurora_8b10b  中更改:  定义下面5个公共端口为 wire 型,同时初始化为0(没有初始化为0 编译最终结果会报严重警告,端口未连接).

Aurora_8b10b_8_core 中修改:

端口上删除 公共模块中 的5个信号,代码中定义为wire型。把代码中原本需要外部输入的信号变换成用gt_common输出。gt_common的输入有复位  和initclk

core  代码的 aurora_8b10b_8_GT_WRAPPER 中添加这一部分,具体不会的抄第一个核的代码

添加gt_common模块。IP核源码中不会添加.V 文件,所以,gt_common直接在改模块中添加,不做成独立的.V

GTX/GTH QPLL CPLL学习之Aurora相关推荐

  1. zynq中mgtx应用_Xilinx 7系列FPGA 高速收发器GTX/GTH的一些基本概念

    本来写了一篇关于高速收发器的初步调试方案的介绍,给出一些遇到问题时初步的调试建议.但是发现其中涉及到很多概念.逐一解释会导致文章过于冗长.所以单独写一篇基本概念的介绍,基于Xilinx 7系列的GTX ...

  2. 高速串行总线系列(3)GTX/GTH 物理层结构分析

    文章目录 前言 Transceiver总览 MGT BANK QUAD GTX CHANNEL TRANSMITTER FPGA TX Interface TX 8B/10B Encoder TX G ...

  3. Xilinx 7系列FPGA 高速收发器GTX/GTH的一些基本概念

    本来写了一篇关于高速收发器的初步调试方案的介绍,给出一些遇到问题时初步的调试建议.但是发现其中涉及到很多概念.逐一解释会导致文章过于冗长.所以单独写一篇基本概念的介绍,基于Xilinx 7系列的GTX ...

  4. FPGA高速收发器GTX/GTH关于外部参考时钟MGTREFCLK的设计

    FPGA高速收发器GTX/GTH关于外部参考时钟MGTREFCLK的设计 0  背景 最近在调试多片FPGA基于GTX高速收发器的芯片间接口通信,FPGA型号为Kintex7-325T.硬件板卡是直接 ...

  5. FPGA芯片的GTX/GTH/GTY/GTP/GTZ/GTM高速信号有什么区别?

    GTX/GTH/GTY/GTP/GTZ/GTM有什么区别? 首先需要明确的一点是,他们都是高速收发器,传输速率不同,速率大小为: GTP < GPX < GTH < GTZ < ...

  6. (41)FPGA面试技能提升篇(FC接口、GTX/GTH介绍)

    1.1 FPGA面试技能提升篇41(FC接口.GTX/GTH介绍) 1.1.1 本节目录 1)本节目录: 2)本节引言: 3)FPGA简介: 4)FPGA面试技能提升篇41(FC接口.GTX/GTH介 ...

  7. GTX/GTH/GTY/GTP/GTZ/GTM有什么区别?

    GTX/GTH/GTY/GTP/GTZ/GTM有什么区别? 首先需要明确的一点是,他们都是高速收发器,只是传输速率同,速率大小为: GTP < GPX < GTH < GTZ < ...

  8. SerDes,GTP , GTX , GTH理解

    SerDes:是串行/解串器,也可以叫串行收发器 GT(包括GTX.GTH和GTP):是Xilinx在高速SerDes的基础上,增加了其他模块,如8b/10b编解码等(具体可以看Xilinx相关文档, ...

  9. GTX/GTH的使用心得

    (想直接看GTX介绍的可略过以下文字)= = ! 记得前几个月最开始接手PCI-E传输图像的节点时,内心还是比较反对的,因为之前买了一本PCI-Express 体系结构导读(强烈推荐),对PCI-e有 ...

最新文章

  1. bat、sh等批处理文件(脚本文件)
  2. 可能是堆被损坏,这也说明 XX.exe 中或它所加载的任何 DLL 中有 bug
  3. 大话数据结构18:最小生成树算法
  4. mysql取得列类型_Mysql列类型
  5. nssl1446-小智的旅行【dp】
  6. Ubuntu14.04 LTS(64bit)彻底解决matplotlib中文乱码问题
  7. python自学行吗-有编程基础Python自学行吗?
  8. 【CCCC】L3-005 垃圾箱分布 (30分),Dijkstra跑n遍 = 多源最短路,emm
  9. 网站点击数字翻页html代码,html5数字翻页时钟代码
  10. 进制转换方法总结——摘自百度
  11. 北大青鸟python教程_北大青鸟python课程六大优势
  12. 自定义微信小程序TabBar
  13. Redis异地多活原理简介
  14. 集合之比较接口器+Map家族的HashMap+LinkedHashMap+Hashtable+ConcurrentHashMap
  15. NODE安装和使用说明,报错处理方法
  16. 【图形学】计算机图形学-练习题7
  17. 快速收集资料的一种方法
  18. 华语乐坛到底姓什么?------酷狗篇
  19. 2019年全网最全的新手SEO教程
  20. 慕课网 (IT技能学习平台)

热门文章

  1. 森林消防智慧预警:火灾监测 Web GIS 可视化平台
  2. 今天收到了WinZip发来的免费License
  3. 编写Android app更新模块遇到的问题分析与总结
  4. CentOS 7视频音频解码器问题
  5. ImportError: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.26‘ not foun Python GDAL
  6. 图文详解MOS管的米勒效应
  7. 紫光输入法导致系统故障
  8. 协同过滤算法概述与python 实现协同过滤算法基于内容(usr-item,item-item)
  9. 飘零网络验证-商业版3和金盾版1.5-研究中
  10. 从零开始制作U盘启动工具