目录
1、IP核的创建
说明:
1、GT refclk
适用于驱动高速收发器里面的GTXE2_COMMON/ GTHE2_COMMON和GTXE2_CHANNEL/GTHE2_CHANNEL。
2、INIT clk
上电初始化阶段来驱动一些逻辑
3、DRP clk (动态配置端口)
大概意思就是所可以动态改变这些模块GTXE2_COMMON/ GTHE2_COMMON和GTXE2_CHANNEL/GTHE2_CHANNEL的配置参数
共享逻辑的选择,共享的PLL是包含在IP核中还是包含在例子工程中
2、stream接口的时序图
stream接口操作非常简单,推荐使用该接口,是一种数据流的模式
1、时序图
2、接口说明
s_axi_tx_data | input | 要发送的数据,送给ip核 |
s_axi_tx_valid | input | 表示发送的数据有效标志 |
s_axi_tx_tready | output | IP核告诉用户准备好了,可以开始发送数据 |
m_axi_rx_tdata | output | ip核接收到的数据输出给用户侧 |
m_axi_rx_valid | output | ip核数据数据的有效标志 |
user | input | ip核数据给用户侧,发送数据需要在该时钟域中操作 |
reset | input | ip的输出复位 |
3、复位操作
因为本次章节是采用双工模式,所以只介绍双工复位模式的讲解
1、reset复位介绍
由上图可只,reset复位只是针对通道复位(channel_up),至少需要保持6个user_clk的高电平,channel_up才会拉低。
2、gt_reset复位介绍
gt_reset是对user_clk进行复位,在gt_reset保持至少6个init_clk时钟周期的时候,过一段时间会复位user_clk时钟,最后channel_up会拉低。
3、正常上电复位顺序
ip核正常上电过程先是gt_reset和reset都是高电平,过一段时间先是拉低gt_reset,等待一段时间reset才会拉低。
4、用户操作全双工复位
当用户想复位IP核,可以按照上图时序去操作,首先是先拉高reset信号,保持128个(user_clk)时钟周期之后,在拉高gt_reset,在时钟intit_clk下保持1秒或者26位的计数器值,在拉低gt_reset,最后在拉低reset。
注意:gt_rest复位是在init_clk时钟域下的,reset是在user_clk时钟域下的,在操作复位的时候需要考虑不同时钟域的逻辑操作。
4、例子工程的分析
1、打开例子工程
选中AURORA ip核,右键选中 open ip example design ,打开例子工程。
等待打开例子工程,你会看到如下模块,工程中有很多外围的控制接口,我们可以不用在意其是什么意思,我们只需提取我们有用的模块。
2、例子设计的框图
它的仿真模型就是如下图,由两个模块互相发送
3、主要模块简介
1、时钟模块
2、内部复位模块
3、配置COMMON PORT配置参数
4、AURORA IP核主要接口说明
channel_up | output | user_clk | 信号拉高表示通道初始化完成,IP核准备好可以传输数据 |
lane_up | output | user_clk | 代表链路初始化成功,每一bit代表一条链路 |
reset | input | async | 直接复位IP核,必须在user_clk时钟域下至少拉高6个时钟周期,复位才会有效果 |
gt_reset | input | async | 这个复位信号会控制PCS和PCM电路,它是通过debouncer电路直接与顶层相连,这个信号是至少拉高6个init_clk时钟,才有效 |
init_clk_in | input | 当gt_reset拉高以后会使user_clk复位,所以init_clk是非常有用的 | |
loopback
| input | user |
一般设置成000,正常收发模式
000
: Normal operation
001
: Near-End PCS Loopback
010
: Near-End PMA Loopback
011
: Reserved
100
: Far-End PMA Loopback
101
: Reserved
110
: Far-End PCS Loopback
|
关于DRP不做过多的讲解,如果没用到可以直接将一些输入端口置零 |
5、调试总结
1、关于bank共用时钟的问题
在设计过程中,如果需要用到多通道的光纤,可以考虑公用参考时钟,相邻的bank可以公用一组时钟。
2、channel_up拉不高的问题
- 在上板调试的时候必须要正确接好光纤线,channel_up才会拉高。如果没有接光纤线,channel_up是不会拉高的
- 在使用复位的过程一定要正确按照官方给的时序操作来,正确控制好reset和gt_reset的时序关系
本篇是来记录在工作学习过程出现的问题,如果有误还望指正!更详细的说明可以参考XILINX官方文档pg046