总结:下面的全文都是用术语来表达的,这同样适用于可以独立同步初始化的发射器和接收器。 全部采用的是多段复位,复位操作完全独立于复位。 确定重置序列所需的时间。 复位期间必须保持低电平。
所有 IP 核均无法正常工作。 一半原因是时钟,另一半是复位。
概述:
赛灵思有关如何使用 FPGA 平台 GTX 的快速教程(概述)
目录
简介
1.重置和初始化
2.重置模式
3. CPLL复位
4.QPLL复位
5. GTX TX初始化和重置
5.1 GTX TX 复位和初始化端口信号
配置完成时的 5.2 GTX TX 重置响应
5.3 GTX TX 重置对 GTTXRESET 脉冲的响应
5.4 重置GTX TX模块
6. RX重置和初始化
结论
前言
重置和初始化部分实际上相当复杂。 幸运的是,GTX 使这成为可能。 如果你比较懒,请跳到文末看结论。 ~~~不过了解一下还是很有趣的~~
同时GTX重置也很随意。 如有必要,您可以重置它。 支持全局复位和单个组件复位。 无需重置。 不执行软重置不会重置内核。 一系列复位在上电后自动执行,不会随意转移。 让我们仔细看看 GTX 重置。
笔者刚刚学习FPGA半年,对一些基础知识还不是很熟悉,所以本章内容为UG476的翻译关于重置和初始化的章节。
1. 重置和初始化
PGA 上电并配置后,在使用 GTX/GTH 之前必须对其进行初始化。 (以下所有文本均以 GTX 以及 GTH 表示。)GTX 发送器 (TX) 和接收器 (RX) 可以独立且同步地初始化。
GTX TX 和 RX 初始化包含两个步骤。
初始化相关 PLL 以驱动 TX/RX 并初始化 TX 和 RX 数据路径。 (PMA+PCS)
GTX TX 和 RX 可以从 QPLL 或 CPLL 接收时钟。 因此,相关 PLL (QPLL/CPLL) 必须在 TX/RX 初始化之前初始化。 TX/RX 中使用的所有 PLL 都是多频段复位,并且 PLL 复位行为完全独立于 TX/RX 复位。 相关 PLL 复位完成并锁定后,必须执行 TX/RX 数据路径复位。 (与使用PLL IP核类似,只有锁拉高且时钟稳定后才能使用。)
看图告诉我:TX/RX独立并行执行复位操作。
GTX TX 和 RX 使用状态机控制初始化。 将过程分成几个部分并单独重置它们。 这种划分允许复位状态机顺序控制复位过程。 您可以先复位 PMA,然后在 TXUSERRDY 或 RXUSERRDY 信号置位后复位 PCS。 如果需要,您还可以单独重置PMS、PCS及其内部功能模块。
GTX 提供两种重置类型:初始化和组件。
• 初始化重置:初始化重置。 此重置相当于完整的 GTX 重置。 这必须在设备上电并配置后完成。 或者,您还可以使用 TX 和 RX 端口重置(GTTXRESET 和 GTRXRESET)来重新初始化 GTX TX 和 RX。
• 组件重置:重置模块。 重置发送和接收多频段部分。 TX 模块复位端口包括 TXPMARESET 和 TXPCSRESET。 RX 模块复位端口包括 RXPMARESET、RXDFELPMRESET、EYESCANRESET、RXPCSRESET、RXBUFRESET 和 RXOOBRESET。 (有很多复杂性...)
注意:
所有重置都在高级别上有效。 这些重置是异步的。 这些异步复位的推荐设计是具有一个时钟周期(每个时钟域)的脉冲信号。 请勿将复位端口用于断电目的。
两种重置类型之间的主要区别是:
发送部分:
接收部分:
2. 重置模式
GTX初始化重置(initialization Reset)仅可能的使用顺序复位模式(顺序模式)。
GTX TX重置只能使用顺序重置模式(Sequential mode)。
GTX RX 重置允许两种重置模式。
顺序模式:顺序重置。 各个部分由复位状态机(初始化或组件)顺序复位。
单模式:多频段重置。 仅重置单个部件(PMA、PCS、内部功能块)。
复位完成由信号(TX/RX)RESETDONE从低电平到高电平指示。
复位模式不影响CPLL和QPLL。 GTX 还可以配置为在任何模式下通过软件灵活重置。
用法 要将 GTRESETSEL 置于复位模式,RESETOVRD 必须驱动为低电平。 请参阅下表了解更多信息。
注意:重置之前需要 GTRESETSEL 和 RESETOVRD 300 -。 有效时间为500ns。
3. CPLL 复位
在检测到相关时钟边沿信号之前,必须将 CPLL CPLLPD 复位用过的。 关闭端口电源。 CPLLPD 释放后,CPLL 在使用前必须复位。 每个 GTX 通道都有三个专用于 CPLL 复位的端口。 如下图:
CPLLRESET:CPLL 复位输入。 推荐设计为1个时钟周期。
CPLLLOCK:拉高时,表示CPLL复位完成。
内部 CPLL 复位信号:低电平有效。 然而,GTX 内部电路产生的实际 CPLL 复位必须长于 CPLLRESET 高脉冲时间。 这个时间与带宽、时钟频率等有关。
4. QPLL 复位
QPLL 复位与 CPLL 几乎相同。 发布照片:
5. GTX TX 初始化和重置
让我们开始吧:GTX TX复位处于顺序复位模式(sequential mode)。
GTX中的TX使用复位状态机来控制复位过程。TX复位分为两部分:TX PMA和TX PCS。
(1) 记住GTX基础知识中介绍的内容。 RX由两个子层组成:PMA+PCS。 /p>
通过PMA和PCS,执行这个复位状态机,如下所示。 style="text-align:居中。 ;">
使用TXPMARESET复位TX,TXRESETDONE拉高表示复位完成。
TX 复位状态机保持在 PCS 模式,直到检测到 TXUSERRDY 为高电平。 然而,要驱动 TXUSERRDY 为高电平,必须满足以下条件:
全部已应用 包含 TXUSRCLK/TXUSRCLK2 的时钟必须稳定或锁定 是(使用 PLL/MMCM 时),用户接口已准备好向其发送数据。 GTX 5.1 GTX TX 复位和初始化端口信号
端口
方向
时钟域
说明
GTTXRESET
输入
异步
TX 复位、驱动为高电平并释放,启动整个 TX 复位序列。 确定重置序列所需的时间。
TXPMARESET
输入
异步
TX PMA 重置。 驱动高电平并释放以开始 TX PMA 复位过程。 在顺序复位模式下,该复位端口激活并复位 PMA 和 PCS。
TXPCSRESET
输入
异步
TX PCS 被驱动为高电平,然后释放以开始 PMA 和 TX 复位过程。 启用两个 PCS 重置
TXUSERRDY
输入
异步
TXUSRCLK 和 TXUSRCLK2 时钟稳定后,用户应用程序将该端口驱动为高电平 示例:如果使用 MMCM,则 MMCM。
TXRESETDONE
输出
TXUSRCLK2
拉高表示重置完成。
CFGRESET
输入
异步
保留。
TXPMARESETDONE
输出
异步
拉高时,TX-PMA 表示正在发生重置。
PCSRSVDOUT
输出
异步
保留。
5.2 GTX TX 重置对配置完成的响应
TX 复位必须满足以下条件:
1. GTRESETSEL 必须为低电平才能使用顺序复位模式。 .
2. 必须使用GTTXRESET。
3. 复位完成前,TXPMARESET 和 TXPCSRESET 必须拉低不变(TXRESETDONE 拉高)。
4. GTTXRESET 在 PLL 锁定之前无法驱动为低电平。
配置加载时,复位模式默认为顺序复位模式。 加载配置后至少等待 500ns,然后才能置位 C/QPLLRESET 和 GTTXRESET。 。
如果重置模式为单一模式,用户必须:
1. 配置加载后等待至少 500ns。
2.将复位模式更改为顺序复位模式。
3.再等待300-500ns。
4. 置位 C/QPLLRESET 和 GTTXRESET。
推荐的设计是使用关联的 CPLL 或 QPLL 中的 PLLLOCK 将 GTTXRESET 从高电平释放到低电平。
TX 复位状态机等待 GTTXRESET 被拉高,然后复位 TX,直到 GTTXRESET 被释放为低电平。 开始重置。
如下图所示:
5.3 GTX TX 复位对 GTTXRESET 脉冲的响应
GTX 允许用户通过向 GTTXRESET 提供有效的高脉冲信号来随时重置 TX。TXPMARESET_TIME 和 TXPCSRESET_TIME 是自适应的,可以通过静态或动态设置DRP 端口在请求 GTTXRESET 之前达到所需的复位时间。
使用 GTTXRESET 时,必须满足以下条件:
顺序模式,GTRESETSEL 必须为在复位完成之前设置为低。、TXPMARESET 和 TXPCSRESET 必须始终为低电平。 3. 关联的 PLL 必须被锁定。 4. GTTXRESET 推荐设计为时钟周期脉冲。
5.4 GTX TX重置模块
TX PMA 和 TX PCS 可以在多个频段进行重置。 TGTTXRESET 必须保持低电平,直到 TXPMARESET 或 TXPCSRESE 复位过程完成。 通过将 TXPMARESET 从高电平驱动至低电平来启动 PMA 复位过程。 TXPMARESET TXPCSRESET 在复位过程中必须保持低电平。
在顺序复位模式下,复位状态机在 PMA 复位完成后(TXUSERRDY 为高电平)自动启动 PCS 复位。 如下所示:
如果 TXUSERRDY 为高电平,则将 TXPCSRESET 从高电平驱动至低电平以对 PCS 复位进行编程。 PCS 复位期间 TXPMARESET 必须保持低电平。
在顺序复位模式下,复位状态机是PCS 。 如下图:
6. RX复位与初始化
快十一点了,我累了,所以出去散步...这是一张照片:
结论
GTX 内核分别输出发送器TX和接收器RX初始化完成信号。
TX:gt0_tx_fsm_reset_done_out(输出)
RX:gt0_rx_fsm_reset_done_out(输出)
直接使用这两个信号就可以了。 一旦 TX 复位完成,您就可以开始发送数据并在 RX 复位时接收数据。
您还可以添加信号 GT_RESET_DONE。
allocate GT_RESET_DONE = gt0_tx_fsm_reset_done_out && gt0_rx_fsm_reset_done_out;
先尝试使用,稍后再详细研究。 即使了解了重置过程,我仍然觉得很有趣~
好吧,到目前为止我已经得出了很多结论,但仍然很简单。 ~
我们来搬砖吧~
评论前必须登录!
注册