当前位置: 代码网 > 科技>人工智能 > FPGA - Xilinx系列高速收发器---GTX

FPGA - Xilinx系列高速收发器---GTX

2024年08月02日 人工智能 我要评论
(9)IP核生成完成打开官方Example DesignGT高速收发器的IP Example已经具有相当完备的功能,但是GT IP 核端口信号非常多,乱七八糟的信号也多,可以使用官方的文件封装 一个非常简洁明了、看着非常舒服的用户端信号出来如下图:修改gtwizard_0_exdes.v文件,加入用户端接受和发送相关信号就实现上述框架!

1,gtx是什么?

gt :gigabit transceiver千兆比特收发器;

gtx :xilinx 7系列fpga的高速串行收发器,硬核

xilinx的7系列fpga根据不同的器件类型,集成了gtp、gtx、gth、gtz四种串行高速收发器,可以支持多种协议如pci express,sata,jesd204b等。

四种收发器主要区别是支持的线速率不同,下图可以说明在7系列里面器件类型和支持的收发器类型以及最大的收发器数量:

下图是各个系列的芯片所包含的gt资源,以及它们的相关性能参数

首先需要明确的一点是,他们都是高速收发器,只是传输速率不同,速率大小为:

gtp < gpx < gth < gtz < gty < gtm

可以看到不同系列收发器个数和传输速度都不一样。

        artix-7 中的收发器类型为gtp;
        kintex-7 中的收发器类型为gtx;
        virtex-7 中的收发器类型为gtx/gth/gtz ;
        ultrascale 中的gth、gty;
        ultrascale+ 中的gtr、gth、gty;

原理图


2,高速收发器的用途

        可以把它理解为一个高速串行并行转换器,其串行速率可达几十g。它可以将输入的并行数据转换为串行输出,或者将串行数据转换为并行数据。它既可以作为独立的发送装置或接收装置,也可以同时进行发送和接收。此外,用户可以根据需要自定义协议来实现通信,与其他ip核配合使用,以实现协议通信。例如,用于实现两块板子之间的通信,如aurora协议,可以与xilinx提供的aurora ip核配合使用。gtx主要负责物理层数据的发送和接收,包括串行化和解串行化、编码和解码、时钟恢复等一系列物理层任务。此外,它还支持以下协议(见下图 该图是在数据手册截取的):


3,为什么需要高速收发器

         主要是还是速率的问题,特别是在现在对于速率要求越来越高的情况下。在高速串行口之前,当数据速率开始超过1gb /s时,并行i/o方案就会达到物理限制,并且不再能够提供可靠、经济的方式来保持信号同步。

        在早期的并行i/o总线中,接口对齐问题阻碍了与外部设备的有效通信。随着更高的速度在数字设计中变得普遍,管理信号延迟成为一个问题。

        接口对齐问题是指在并行通信中,由于各个数据位可能在物理线路长度信号传播速度等方面存在不同,因此它们可能无法在完全相同的时间到达目标设备,导致数据传输过程中发生错误。简单地说,就是各个数据线的信号需要在同一时刻到达目标,对齐就是把这个时刻统一

        之前也有一些解决方案,比如利用系统时钟来同步:两个ic之间的通信,在两个ic上都应用一个公共时钟,用于数据传输和接收

看起来好像很容易就解决了时间同步的问题,但实际上的系统是这样的

        各种延误在速率低的情况下还可以忽略,因为延误相对于有效信号来说非常小。但随着速率的提高,延误的影响越来越大,甚至导致系统上的错误。随之而来的解决方法是,不依靠系统时钟,发送方在发生数据的时候,也发送一个同步的时钟

        这样可以消除部分延迟,同时由于两根线是从同一个地方发出传输距离等也很容易做的一致,所以有些延迟也可以抵消

        不过,源同步设计导致时钟域数量的显著增加。这引入了时序约束和分析的复杂性,如现场可编程设备具有有限时钟缓冲的门阵列(fpga),以及必须定制设计每个时钟树的专用集成电路(asic)。这个问题在大型并行总线上更加严重,因为电路板设计的限制常常迫使每个数据总线使用多个转发时钟。因此,32位总线可能需要4个,甚至8个转发时钟

        还有一种自同步的模式:

        数据线带着时钟,相对自同步来说,它不需要那么多的时钟线了,随之而来的时钟复制也不需要。但比特率变动时需要额外的手段来纠正。如果数据包含相当多的连续零或连续一,那么可能出现失同步的情况。此外,在传输中,噪声或者干扰可能会导致误码。

        这些问题,gtx的设计都给出了解决方案。


4,gtx ip核配置

基础知识

        gt又称之为gigabit transceiver 千兆比特收发器,是嵌入在fpag芯片里面 的一种硬核

         一条lane包含一对tx和rx;

        一对tx、rx、加上cpll称之为一条通道channel;

        一个bank有4对tx和rx、两对差分时钟,也被称之为quad。

        ①参考时钟不仅可以驱动当前 bank 的上面的通道,还可以驱动相临近的 bank。 上面的bank的被称之为北north,下面的bank被称之为南south。

        ②一对外部参考时钟,最多驱动三组相邻的 bank,( quad 不超过不超过三 个),驱动的通道不超过12个


ip核配置

(1)创建工程

ip catalog中搜索gt

(2)第一页配置

(3)第二页配置

(4)第三页配置

(5)第四页配置

(6)第五页配置

(7)第六页配置

(8)第七页 总结界面

(9)ip核生成完成

打开官方example design


代码框架

(1)gtwizard_0_exdes.v为整体工程的top文件

输入输出端口分别为:

        q0_clk1_gtrefclk_pad_n/p_in:外部差分输入参考时钟

        drp_clk_in_p/n:系统时钟

        txp/n_out:发送1bit差分输出

        rxp/n_in:接收1bit差分输入

(2)gtwizard_0_support.v

该文件主要例化了gt高速收发器的ip核,并对时钟进行了配置

例如fpga与gt的接口:32bit的待发送数据gt0_txdata_in:

32bit的接收数据gt0_rxdata_out

(3) gtwizard_0_gt_frame_gen.v

该文件用于产生发送数据的来源,本质上是从rom中读取数据。

(4)gtwizard_0_gt_frame_check.v

该文件用于接收到数据后,与文件中的数据源进行比对,并且记录下错误的数据个数。

(5)gtwizard_0_tb.v

        gtx收发的测试文件,在此之前,应该先了解一下loopback

        从手册中得知收发器有专门的回环模式进行测试,即进行自发自收,如下图所示有四个通道。

测试的时候选择哪种呢?

查看top文件,即gtwizard_0_exdes.v文件,loopbacl设置的是0,即normal 模式,并没有进行回环测试,如下图

观察tb文件,这里是直接在仿真中把发送端和接收端用线连在一起实现回环测试


仿真波形

由于此仿真是自收发,因此我们需要关注的信号只有四个,gtwizard_0_support.v中的:

/gtwizard_0_tb/gtwizard_0_exdes_i/gtwizard_0_support_i/gt0_txdata_in
/gtwizard_0_tb/gtwizard_0_exdes_i/gtwizard_0_support_i/gt0_txcharisk_in
/gtwizard_0_tb/gtwizard_0_exdes_i/gtwizard_0_support_i/gt0_rxdata_out
/gtwizard_0_tb/gtwizard_0_exdes_i/gtwizard_0_support_i/gt0_rxcharisk_out

发送端

gt0_txcharisk_in为1时发送数据060504bc,然后gt0_txcharisk_in为0后数据gt0_txdata_in依次为0a090807,0e0d0c0b……

接收端

gt0_txcharisk_in为1时发送数据060504bc,然后gt0_txcharisk_in为0后数据gt0_rxdata_out依次为0a090807,0e0d0c0b……  

接受数据和发送端一致,测试正确!


总结:

gt高速收发器的ip example已经具有相当完备的功能,但是gt ip 核端口信号非常多,乱七八糟的信号也多,可以使用官方的文件封装 一个非常简洁明了、看着非常舒服的用户端信号出来

修改gtwizard_0_exdes.v文件,加入用户端接受和发送相关信号就实现上述框架!

参考:

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2026  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com