所有IP核没有正确工作,原因一半是时钟,一半是复位。


汇总篇:

Xilinx FPGA平台GTX简易使用教程(汇总篇)


目录

前言

一、复位与初始化

二、复位模式

三、CPLL复位

四、QPLL复位

五、GTX TX初始化与复位

5.1 GTX TX复位和初始化的端口信号

5.2 GTX TX复位对配置完成的响应

5.3 GTX TX复位对GTTXRESET脉冲的响应

5.4 GTX TX 模块复位

六、RX复位与初始化

结论



前言

复位与初始化部分其实还挺复杂,还好GTX已经帮我们做好了,不想麻烦的直接跳到文末看结论~~~不过了解下也挺有意思的~~

同时GTX复位也挺随意的,你想怎么复位都可以,支持整体复位,单个组件复位。我们也可以不复位,核不会因为我们没有进行软复位就不对核进行复位,在上电之后会自动进行一系列的复位,不随你的意志而转移。下面我们就来仔细研究研究GTX的复位吧!

一、复位与初始化

在FPGA上电配置之后,必须进行初始化才能使用GTX/GTH。(后文全用GTX表示,同样适用于GTH)GTX的发送器(TX)和接收器(RX)可以独立的同步进行初始化。

GTX的TX和RX初始化包含两步:

  1. 初始化相关的PLL来驱动TX/RX
  2. 初始化TX和RX的数据路径(PMA+PCS)

GTX的TX和RX能从QPLL或者CPLL接收一个时钟。所以在TX/RX初始化之前必须对相关的PLL(QPLL/CPLL)进行初始化。TX/RX使用的任何PLL都是单独的进行复位,PLL复位操作与TX/RX复位完全独立。TX/RX的数据路径复位必须在相关的PLL复位完成,locked之后进行。(就跟我们使用PLL  IP核一样,等locked拉高之后,时钟稳定才能使用)

看图说话:TX/RX是独立的并行的进行复位操作。

GTX的TX和RX使用一个状态机来控制初始化过程,并被划分为几块来分别复位。该划分允许复位状态机按顺序控制复位过程:PMA可以首先被复位,PCS可以在TXUSERRDY或者 RXUSERRDY信号被断言后进行复位。在需要的时候,它也同样允许PMS,PCS,他们内部的功能模块独立的进行复位。

GTX提供了两种复位类型: initialization 和 component。

• Initialization Reset: 初始化复位。这种复位用作GTX完全复位。必须在设备上电及配置完成之后。在必要的时候,TX端口和RX端口的复位(GTTXRESET 和 GTRXRESET)同样可被用来重新初始化GTX的TX和RX。

• Component Reset: 模块复位。对TX / RX 单独部分进行复位。 TX模块复位端口包括TXPMARESET 和TXPCSRESET 。RX 模块复位端口包含RXPMARESET,RXDFELPMRESET,EYESCANRESET, RXPCSRESET, RXBUFRESET和 RXOOBRESET。(有木有很多很复杂。。)

注:

  1. 所有的复位高电平有效。
  2. 这些复位都是异步的。对这些异步复位的推荐设计是一个(各自时钟域)时钟周期的脉冲信号。
  3. 复位端口不应该被用做下电的目的。

两种复位类型主要有以下不同:

TX部分:

RX部分:

二、复位模式

GTX的初始化复位 (initialization reset) 只能使用顺序复位模式(Sequential mode )。

GTX的TX复位只能使用顺序复位模式(Sequential mode )。

GTX的RX复位可以使用两种复位模式:

Sequential mode :顺序复位。随复位状态机(initialization 或 component)顺序复位各个部分。

Single mode :单独复位。仅复位单个部分(PMA、PCS、内部功能块)。

复位完成由信号(TX/RX)RESETDONE表示,由低到高。

复位模式对CPLL和QPLL没有任何影响。GTX也可以被软件进行弹性复位设置,不管是哪种模式。

使用GTRESETSEL来选择复位模式,RESETOVRD必须驱动为低电平。详细见下表:

注:复位前,GTRESETSEL和RESETOVRD需要300-500ns的有效时间。

三、CPLL复位

在相关时钟边沿信号被检测到之前,CPLL必须使用CPLLPD端口来下电。在CPLLPD被释放后,CPLL在使用之前必须进行复位。每个GTX通道都有3个专用端口用来CPLL复位。如下图:

CPLLRESET :CPLL的复位输入。推荐设计是一个时钟周期。

CPLLLOCK  :拉高时,表示CPLL的复位完成。

内部CPLL复位信号:低有效。但是由GTX内部电路产生的真正的CPLL复位必须比CPLLRESET高脉冲时间要长。这个时间跟带宽、时钟频率等有关。

四、QPLL复位

QPLL复位大致与CPLL相同。放张图:

五、GTX TX初始化与复位

开门见山的说:GTX的TX复位只能使用顺序复位模式(Sequential mode )。

GTX的TX使用一个复位状态机来控制复位过程。TX复位分为两部分:TX PMA和TX PCS。

回忆下(1)GTX基本知识所介绍的:GTX的TX和RX均有PMA+PCS两个子层组成。

在整个PMA和PCS中,都由这个复位状态机按顺序执行复位。如下图:

使用TXPMARESET来对TX进行复位,TXRESETDONE拉高表示复位完成。

直到TXUSERRDY被检测为高时,TX复位状态机才对PCS进行复位。但是,驱动TXUSERRDY为高需满足以下条件:

  1. 所有应用到的时钟包括TXUSRCLK/TXUSRCLK2必须稳定,或者locked(在PLL/MMCM被使用的时候)
  2. 用户接口已经准备好传输数据到GTX。

5.1 GTX TX复位和初始化的端口信号

端口

方向

时钟域

描述

GTTXRESET

输入

异步

TX复位,驱动为高,然后释放,来启动整个TX复位序列。复位序列要求的时间是决定了的。

TXPMARESET

输入

异步

TX PMA复位。驱动为高,然后释放,来启动TX PMA复位过程。在顺序复位模式时,这个复位端口将激活PMA和PCS都复位。

TXPCSRESET

输入

异步

TX PCS复位。驱动为高,然后释放,来启动TX PCS复位过程。在顺序复位模式时,这个复位端口将激活PMA和PCS都复位。

TXUSERRDY

输入

异步

在TXUSRCLK和TXUSRCLK2时钟稳定后,用户应用将该端口驱动为高。例如:使用了MMCM,那么MMCM的locked信号就可以用到这里。

TXRESETDONE

输出

TXUSRCLK2

拉高表示复位完成。

CFGRESET

输入

异步

保留。

TXPMARESETDONE

输出

异步

拉高表示TX-PMA复位完成。

PCSRSVDOUT

输出

异步

保留。

5.2 GTX TX复位对配置完成的响应

TX复位必须满足下列条件:

1.  使用顺序复位模式,GTRESETSEL必须为低。.

2.  GTTXRESET必须使用。

3.  在复位完成前(TXRESETDONE拉高),TXPMARESET和TXPCSRESET 必须驱动为低不变。

4.  在PLL locked之前,GTTXRESET不能被驱动为低。

如果加载配置时,复位模式默认为顺序复位模式,在配置加载后等待最少500ns,C/QPLLRESET 和GTTXRESET 就可以被断言了。

如果复位模式为single mode,用户必须:

1.  在配置加载完成后,等待最少500ns。

2.  将复位模式改为顺序复位模式 Sequential mode。

3.  再等待300-500ns。

4.  断言 C/QPLLRESET和 GTTXRESET。

推荐的设计是使用来自相关的CPLL或者QPLL的PLLLOCK 来释放GTTXRESET由高到低。

TX复位状态机等GTTXRESET拉高,开始TX复位,直到GTTXRESET被释放低为止。

如下图所示:

5.3 GTX TX复位对GTTXRESET脉冲的响应

GTX允许用户在任意时刻对TX进行复位,只需要给GTTXRESET一个有效的高脉冲信号。 TXPMARESET_TIME和 TXPCSRESET_TIME 可以被设置为静态的也可以通过DRP端口来动态设置以适配在申请 GTTXRESET之前要求的复位时间。

当使用GTTXRESET时必须满足以下条件:

  1. 使用sequential mode必须将GTRESETSEL置低。
  2. 在复位完成之前,TXPMARESET 和 TXPCSRESET 必须一直为低。
  3. 3. 相关 PLL必须 locked。
  4. 4. GTTXRESET的推荐设计是一个时钟周期脉冲。

5.4 GTX TX 模块复位

TX PMA和 TX PCS 可以单独进行复位。在 TXPMARESET 或者 TXPCSRESE复位过程完成之前,TGTTXRESET必须保持为低。驱动TXPMARESET从高到低来启动PMA复位程序, 在TXPMARESET复位过程中,TXPCSRESET必须保持为低。

在顺序复位模式,复位状态机在PMA复位完成后,(如果TXUSERRDY为高)自动开始PCS复位。如下图:

当TXUSERRDY为高时,驱动TXPCSRESET由高到低来启动PCS复位程序。在PCS复位过程中,TXPMARESET 必须保持为低。

在顺序复位模式,复位状态机仅复位PCS,如下图:

六、RX复位与初始化

已经快11点了,累了,溜了溜了,,,放张图:

结论

由GTX核分别输出了发送端TX和接收端RX的初始化完成信号:

TX: gt0_tx_fsm_reset_done_out(output)

RX: gt0_rx_fsm_reset_done_out(output)

直接使用这两个信号就好,TX复位完成就可以开始发送数据,RX复位就可以接收数据。

也可以加个信号 GT_RESET_DONE;

assign GT_RESET_DONE = gt0_tx_fsm_reset_done_out && gt0_rx_fsm_reset_done_out;

先用起来,后面再深入研究,不过了解了复位过程发现还是有点意思~

OK,前面说了一大堆结论却还是很简单的~

拿去搬砖吧~

Xilinx FPGA平台GTX简易使用教程(三)GTX复位与初始化相关推荐

  1. Xilinx FPGA平台GTX简易使用教程(一)GTX基础知识

    理解GTX的必备姿势,学起来! 汇总篇: Xilinx FPGA平台GTX简易使用教程(汇总篇) 目录 一.什么是GTX? 二.Quad/Channel 三.PMA与PCS 四.GTX收发处理流程 五 ...

  2. Xilinx FPGA平台GTX简易使用教程(汇总篇)

    GTX简易使用教程,先"知其然",慢慢再研究"所以然". 目录 一.GTX必备基础知识 二.时钟篇 三.复位与初始化 四.GTX   IP核配置介绍 五.GTX ...

  3. Xilinx FPGA平台GTX简易使用教程(四)GTX IP核配置教程

    干货来了,GTX核配置,搬砖全靠它~~ 汇总篇: Xilinx FPGA平台GTX简易使用教程(汇总篇) 目录 前言 一.GTX  IP核配置界面 1.1第一页配置 1.2第二页配置 1.3第三页配置 ...

  4. Xilinx FPGA平台GTX简易使用教程(五)GTX收发测试及示例工程介绍

    GTX IP配置完了,你不得搞个回环测试一番? 汇总篇: Xilinx FPGA平台GTX简易使用教程(汇总篇) 目录 前言 一.示例工程Example Design 1.1 gtx_support模 ...

  5. Xilinx FPGA平台GTX简易使用教程(二)GTX时钟篇

    时钟就是脉搏,能否工作全靠它! 汇总篇: Xilinx FPGA平台GTX简易使用教程(汇总篇) 目录 一.参考时钟 1.1 收发测试能跑起来的基本参考时钟设置 1.2 继续了解时钟,走着 1.3 单 ...

  6. Xilinx FPGA平台DDR3设计保姆式教程(3)MIG IP核使用教程及DDR读写时序

    干货来了,用DDR搬砖,只需要会用IP就好,Xilinx官方YYDS! ---------------------------------------------------------------- ...

  7. Xilinx FPGA平台DDR3设计保姆式教程(1)DDR3基础简介

    如果我们只是拿来用ddr搬砖,那么它就简单,知道IP怎么使用就好,但是要想知其所以然,理论知识是必备的,这也是我们初学者所欠缺的东西,慢慢修炼吧! 汇总篇: Xilinx平台DDR3设计保姆式教程(汇 ...

  8. W nDOwS多系统安装,IVB新平台Wndows XP系统安装教程.doc

    IVB新平台Windows XP系统安装教程 发布时间:2012-08-27 13:35 作者:本站整理 来源: 334 次阅读 随着硬件的一次次升级,现在想要随随便便安装一个Windows XP已经 ...

  9. Xilinx 原语简介--(Xilinx FPGA开发实用教程)

    目录 前言 1.Xilinx 原语简介 1.1 时钟组件原语(Clock Components) 1.1.1 BUFG 1.1.2 BUFGMUX 1.2 I/O端口组件(IO Components) ...

最新文章

  1. 桌子上有个盘子_日本留学生活:留学生在餐厅刷盘子的传闻,竟然在自己身上上演...
  2. uniapp富文本兼容视频实现方案
  3. 【Mybatis 之应用篇】 3_Lombok、多对一处理和一对多处理
  4. 虚拟机从暂停状态恢复后HEALTH_WARN,osds down
  5. sql serve基础
  6. [Beego] [bootstrap-paginator]实现分页功能
  7. ThinkPHP系的两个东东OneThink和ThinkCMF
  8. php7.4 微信小程序获取手机号
  9. robocode 安装 使用
  10. abb机器人编程指令写字_ABB机器人编程指令创建
  11. 董文永武汉大学计算机学院,董文永
  12. AutoJs学习-获取QQ群消息
  13. 2018年全国国家级自然保护区功能区划空间分布
  14. DDoS Deflate 的安装和使用
  15. 无线路由器如何建立ftp服务器,利用无线路由器建立FTP服务器
  16. 【数理知识】狄利克雷函数 dirac(t)
  17. statgraphics画Multifactor ANOVA图
  18. mysql字段替换_mysql 替换字段部分内容及mysql 替换函数replace()
  19. 真实揭露:一段激情视频裸聊被骗的经历
  20. LC振荡器稳定度与品质因数的关系

热门文章

  1. Nginx尚硅谷学习笔记
  2. 怎样选择加盟咖啡连锁品牌?
  3. Qt 5.12--Item详解
  4. 荣耀平板2 android go,荣耀平板2和华为M2哪个好?华为荣耀平板2和华为M2详细区别对比评测_硬件教程...
  5. 仙人掌相关问题的解法(1)-DFS树解决仙人掌DP问题,圆方树
  6. PhotoShop 矢量蒙板
  7. 【JsvaScript】——运算符
  8. 有图有视频:惯犯“京东金融APP”被曝盗取用户手机本地敏感图
  9. Navicat 快捷键大全(史上最全)
  10. 【Guacamole中文文档】二、用户指南 —— 4.代理Guacamole