基于vivado+Verilog FPGA开发 — GT收发器

这篇具有很好参考价值的文章主要介绍了基于vivado+Verilog FPGA开发 — GT收发器。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

代码规范:Verilog 代码规范_verilog代码编写规范-CSDN博客

开发流程:FPGA基础知识----第二章 FPGA 开发流程_fpga 一个项目的整个流程-CSDN博客 

 源码下载:GitHub - Redamancy785/FPGA-Learning-Record: 项目博客:https://blog.csdn.net/weixin_51460407

 一、功能定义

零、低速通信接口的缺陷

1、同步通信要求传输数据线与时钟线等长,高速通信也意味着PCB绘制过程中对走线的要求极高。

2、异步通信冗余度高,不适合高速传输。

3、低速接口高速通信时会产生偏斜。

信道偏斜(Channel Skew)通常指的是在数字通信系统中,信号在信道中传播时由于多种因素导致的时延差异。这种时延差异可能是由于信道的物理特性或者信号在信道中经历的多径传播造成的。信道偏斜会影响信号的时序,可能导致信号的失真,特别是在高速数字通信中,这种失真可能会引起码间干扰(ISI)或其他性能问题。

gt系列收发器,FPGA,fpga开发

gt系列收发器,FPGA,fpga开发

在设计和分析通信系统时,需要考虑信道偏斜的影响,并采取相应的措施来减少其对系统性能的影响。例如,可以使用均衡器(Equalizer)来补偿信道引起的失真,或者设计适当的编码和调制方案来提高系统的抗干扰能力。

一、GT收发器

1、CDR技术

gt系列收发器,FPGA,fpga开发

        从接收到的信号中恢复出发送端的时钟信息,并利用这些信息来准确重定时(resample)接收到的数据,以便正确地恢复原始数据。

2、8B10B编码

        作用:直流平衡

3、收发器结构

gt系列收发器,FPGA,fpga开发

4、发送数据

gt系列收发器,FPGA,fpga开发

5、接收数据

gt系列收发器,FPGA,fpga开发

6、时钟架构

gt系列收发器,FPGA,fpga开发

7、CPLL与QPLL区别

gt系列收发器,FPGA,fpga开发

gt系列收发器,FPGA,fpga开发

8、拓展——使用GT收发器实现万兆网传输

千兆网1Gbps

万兆网10Gbps

gt系列收发器,FPGA,fpga开发

二、GT收发案例

gt系列收发器,FPGA,fpga开发

1、IP核配置过程以及例程生成

参考:FPGA GTX全网最细讲解,aurora 8b/10b协议,HDMI视频传输,提供2套工程源码和技术支持 - 知乎

2、顶层文件修改

step1:顶层文件中添加如下代码:

gt系列收发器,FPGA,fpga开发

    reg [31:0] r_sent_cnt;
    reg [31:0] r_sent_data; 
    reg [3 :0] r_sent_char; 
    wire [31:0] r_receive_data;
    wire [3 :0] r_receive_char;

    always @(posedge gt0_rxusrclk2_i or negedge gt0_rxresetdone_i)
        begin
            if (gt0_tx_system_reset_c || r_sent_cnt == 299)
                r_sent_cnt <= 0;
            else
                r_sent_cnt <= r_sent_cnt + 1;
        end
    

    always @(posedge gt0_rxusrclk2_i or negedge gt0_rxresetdone_i)
        begin
            if (gt0_tx_system_reset_c )
                r_sent_data <= 0;
            else if(r_sent_cnt == 199)
                r_sent_data <= 32'hbcbcbcbc;
            else if(r_sent_cnt >= 200 && r_sent_cnt <= 299)
                r_sent_data <= (r_sent_cnt - 200);
            else 
                r_sent_data <= r_sent_data;
        end

    always @(posedge gt0_rxusrclk2_i or negedge gt0_rxresetdone_i)
    begin
        if(r_sent_cnt == 199)
            r_sent_char <= 4'b1111;
        else
            r_sent_char <= 0;

    end

step2:顶层文件中修改如下代码:

gt系列收发器,FPGA,fpga开发

gt系列收发器,FPGA,fpga开发

gt系列收发器,FPGA,fpga开发

3、运行仿真

发送数据:

gt系列收发器,FPGA,fpga开发

接收数据:

        r_receive_char在接收端初始阶段不稳定,可以在接收几轮数据之后再观察稳定的波形。

结果发现接收数据端发生了错位:

gt系列收发器,FPGA,fpga开发

        查找资料之后,目前只找到一种解决方案:

        在数据接收端通过判断r_receive_char的错位模式,对r_receive_data进行相应的拼接。但是这种解决方案类似于“对着答案写问题”,希望今后更进一步的学习可以解决这个问题。文章来源地址https://www.toymoban.com/news/detail-853924.html

到了这里,关于基于vivado+Verilog FPGA开发 — GT收发器的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • FPGA-结合协议时序实现UART收发器(一):UART协议、架构规划、框图

    记录FPGA的UART学习笔记,以及一些细节处理,主要参考奇哥fpga学习资料。 本次UART主要采用计数器方法实现,实现uart的稳定性发送和接收功能,最后实现串口数据回环进行功能测试。 UART协议如图。 包含:空闲位、起始位、数据位、校验位、停止位、空闲位(一般没有) 对于

    2024年02月08日
    浏览(47)
  • rtl8221b+mcu,2.5g光纤收发器的开发备份

    1、rtl8221b是一款2.5g的光电转换的phy 系统的构建如下 为了省成本,不用mac来对接其中的gmii接口直接接光模块 2、mdio和mdc由mcu的gpio来模拟,在csdn上有很多的文章来参考 mdio的参数如下 不想看英文可以参考下面的文章 MDIO(clause 22 与 clause 45)接口简介以及FPGA Verilog 实现_Angry Noob的

    2024年02月12日
    浏览(32)
  • FPGA-结合协议时序实现UART收发器(五):串口顶层模块UART_TOP、例化PLL、UART_FIFO、uart_drive

    串口顶层模块UART_TOP、例化PLL、UART_FIFO、uart_drive,功能实现。 对照代码,串口发送模块UART_TOP实现功能包括: PLL锁相环,实现稳定系统输入时钟功能 UART_FIFO,数据先进先出,实现数据缓存功能,防止出现数据错乱 w_clk_rst = ~w_system_pll_locked;保证复位电平是先高位再地位 r_use

    2024年02月08日
    浏览(47)
  • PowerBUS 双总线收发器

    随着智能化的发展,人的需求变高,在一个环境内,如果子设备较多,距离适中,大多数是布置485总线加电源地需要4根线。这样就会导致走线复杂,线的成本也较高;如果用BLE或者wifi无线连接时也需要电源地2根线,成本更高。 而powerbus双总线就解决了以上的布线复杂的问题

    2024年02月16日
    浏览(34)
  • AD9361收发器中文手册

    因最近公司需要,借此机会和大家一起学习AD9361 制作不易,记得三连哦,给我动力,持续更新! 工程文件下载: 纯硬件SPI配置AD9361    提取码:g9jy ----------------------------------------------------------------------------------------         接收RF信号,并将其转换成可供BBP使用的数字数据

    2023年04月19日
    浏览(31)
  • Xilinx Artix-7【XC7A35T-2CSG324I】【XC7A35T-1CSG324I】成本与收发器优化的FPGA器件

    产品介绍: Xilinx® Artix -7系列 FPGA 重新定义了成本敏感型解决方案,功耗比上一代产品降低了一半,同时为高带宽应用提供一流的收发器和信号处理能力。这些设备基于 28 纳米 HPL 工艺构建,提供一流的性能功耗比。与 MicroBlaze™ 软处理器一起,Artix-7 FPGA 非常适用于便携式医

    2024年02月09日
    浏览(45)
  • CAN收发器与CAN控制器

    CAN收发器是一种用于CAN总线通信的专用芯片,主要用于将CAN控制器和CAN总线物理层之间的信号进行转换和调节。它的主要作用是将CAN控制器输出的数字信号转换为CAN总线所需要的物理信号,同时将CAN总线上接收到的物理信号转换为数字信号,并将其传递给CAN控制器进行处理。

    2024年01月24日
    浏览(35)
  • 缓冲器/驱动器/收发器IC

    记录学习未使用过的IC,开发使用新的IC,哎,就是玩 本编文章主要介绍缓冲器/驱动器/收发器 FPGA或MCU低驱动能力引脚 单向长距离信号 1.SN74HCT245NSR DIR高电平,A到B可控制,B到A不可控制 DIR低电平,B到A可控制,A到B不可控制 OE高电平,所有通道端口高阻 OE低电平,所有通道端

    2024年02月09日
    浏览(31)
  • STM32+收发器实现CAN和485总线

    RS485总线是一种常见的(Recommended Standard)串行总线标准(485是它的标识号),采用平衡发送与差分接收的方式,因此具有抑制共模干扰的能力。CAN是控制器局域网络(Controller Area Network, CAN)的简称,是一种能够实现分布式实时控制的串行通信网络,属于CSMA(多路载波侦听)/CD(冲突检测

    2024年02月05日
    浏览(38)
  • ARINC429总线收发器 -- HI-3593调试记录

    ​ HI-3593是一款ARINC429协议收发器芯片,和之前介绍的HI-3582芯片功能一样,该芯片支持两路接收和一路发送,其中每个接收机具有标签识别、32×32 FIFO和模拟线路接收机。不同的是HI-3593通信接口为SPI总线,可以减少MCU的硬件管脚负担,而且HI-3593片内集成DC/DC 转换器用于产生双

    2024年02月12日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包