基于Virtext6平台的GTX IP核基本设置说明

本工程基于以下条件使用:

板卡:DBF板v3.0
芯片型号:Virtex6 315T
ISE版本:14.7
IP核版本: v6_gtxwizard : 1.12

一、IP核配置进行流程

第一页配置:线速率和编码

TX、RX的 Line Rate 、Data Path Width 、Reference Clock根据项目的实际情况进行选择
Reference Clock :表示 外界时钟输入给GTX模块的参考时钟

注:
红色框代表必须按照截图设置。
绿色框代表根据项目需求进行设置。
黄色框代表,可自由选择项。

第二页配置:参考时钟位置选择

此处必须参考原理图选择REFCLK。

第三页配置:同步和对齐

RXUSRCLK Source 一般选择 RERECCLK,但是在位宽32bit,且使用GTX格式较多的情况下,建议选择TXOUTCLK因为这样可以节省出大量的BUFG资源。

RX Comma Alignment部分,Xilinx 在V6系列处理的不好,设置作用不是很明显,还是有翻转情况出现。

第四页配置:预加重,终端、均衡

Enable DFE : 当外部信号传输质量比较差(>100ppm)时,建议选上。
Rx Equalization:此处保持默认即可,当实际工程中,发现误码较高时,可以在程序中动态修改此值。
Post Emphasis:当对方接受误码较高时,可适当修改此值进行调试。

第五页配置:失同步状态机

保持默认不变

第六页配置:通道绑定

此功能没有用过,保持默认不变

第七页配置:时钟校准

Use Clock Correction :在同源时钟下可以不选择
Sequence : 00011100,配置向导中使用了此值即K28.0,实验室所有的项目也是按照此值配置的。但是个人认为按照我们平时习惯用法,此值应该配置成10111100,K28.5。经简单测试没有发现问题,但未在任何大型项目上验证过。

工程使用说明

基本使用方法

当IP核生成以后将如下文件添加到工程:

ip/[gtx核名].v
ip/[gtx核名]_gtx.v
ip/[gtx核名]/example_design/所有文件

在[gtx核名]_top 文件中将GTX0_RXENMCOMMAALIGN_IN,GTX0_RXENPCOMMAALIGN_IN括号内的值改为1(如下图),这里用到了多少了gtx模块就要按照序号该几处。

此时工程已基本可以仿真与简单测试,在modlesim中切换到如下目录,并输入simulate_mti.do即可开始仿真。

..\imp\ip\fiber\simulation\functional

gtx重点信号线说明

在整个GTX工程中只需关注top层如下信号线即可。

TOP层输入输出端口

Qx_CLK0_MGTREFCLK_PAD_N_IN :x视实际位置而定,表示GTX参考时钟
GTXTXRESET_IN\GTXRXRESET_IN:由用户控制的TX/RX全局复位
RXN_IN :GTX接收引脚
TXP_OUT:GTX发送引脚

重要控制信号线说明
gtx0_loopback_i:gtx自环控制。
3’b000:非自环模式;
3’b001,近端PCS自环;
3’b010,近端PMA自环,一般仿真或单板测试时选择此模式。

gtx0_rxnotintable_i :接收错误指示信号线:当接收到无法通过8b/10b解码的数据时此信号线拉高,可以简单的理解为接收到误码的标志。

重要数据时钟信号线说明
接收
gtx0_rxusrclk2_i:当IP核配置第三页的 RXUSRCLK Source 选择 RXRECCLK时,每个gtx模块单独对应一个此类型时钟。
gtx0_rxdata_i : 用户接收到的数据
gtx0_rxcharisk_i: 用户接收到的K码,用于指示gtx0_rxdata_i数据类型。
当gtx0_rxcharisk_i某位为1时,表示gtx0_rxdata_i对应的某个8位为K码。

发送
gtx0_txusrclk2_i:用户发送时钟,所有的gtx发送模块均用此时钟;当IP核配置第三页的 RXUSRCLK Source 选择 TXOUTCLK时,所有的gtx接收模块也是用此时钟。
gtx0_txcharisk_i:用户待发送的K码
gtx0_txdata_i:用户待发送的数据

实际开发工程的使用

在实际开发中还需对工程做如下的修改,才更方便使用。

删除例程测试部分

起点:从注释Frame Generators处开始
终点:一直到代码begin:no_chipscope,以上全部删除。
其他:后面的vio,ila核内容一并删除,以及一些其他导致报错的多余代码。

修改UCF文件

为了保证在以后大工程中使用gtx核时路径不出问题,需对gtx的两个ucf文件做如下修改。

xxx_attributes.ucf:在所有约束前加入*/

xxx_top.ucf:和上面类似,在User Clokc Constraints 和 mgt wrapper constraints 约束的前面加入 */

本文原文链接: http://blog.csdn.net/lutianfeiml/article/details/51242160