当前位置:   article > 正文

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

fpga高速收发器

代码规范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)或其他性能问题。

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

一、GT收发器

1、CDR技术

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

2、8B10B编码

        作用:直流平衡

3、收发器结构

4、发送数据

5、接收数据

6、时钟架构

7、CPLL与QPLL区别

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

千兆网1Gbps

万兆网10Gbps

二、GT收发案例

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

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

2、顶层文件修改

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

  1. reg [31:0] r_sent_cnt;
  2. reg [31:0] r_sent_data;
  3. reg [3 :0] r_sent_char;
  4. wire [31:0] r_receive_data;
  5. wire [3 :0] r_receive_char;
  6. always @(posedge gt0_rxusrclk2_i or negedge gt0_rxresetdone_i)
  7. begin
  8. if (gt0_tx_system_reset_c || r_sent_cnt == 299)
  9. r_sent_cnt <= 0;
  10. else
  11. r_sent_cnt <= r_sent_cnt + 1;
  12. end
  13. always @(posedge gt0_rxusrclk2_i or negedge gt0_rxresetdone_i)
  14. begin
  15. if (gt0_tx_system_reset_c )
  16. r_sent_data <= 0;
  17. else if(r_sent_cnt == 199)
  18. r_sent_data <= 32'hbcbcbcbc;
  19. else if(r_sent_cnt >= 200 && r_sent_cnt <= 299)
  20. r_sent_data <= (r_sent_cnt - 200);
  21. else
  22. r_sent_data <= r_sent_data;
  23. end
  24. always @(posedge gt0_rxusrclk2_i or negedge gt0_rxresetdone_i)
  25. begin
  26. if(r_sent_cnt == 199)
  27. r_sent_char <= 4'b1111;
  28. else
  29. r_sent_char <= 0;
  30. end

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

3、运行仿真

发送数据:

接收数据:

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

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

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

        在数据接收端通过判断r_receive_char的错位模式,对r_receive_data进行相应的拼接。但是这种解决方案类似于“对着答案写问题”,希望今后更进一步的学习可以解决这个问题。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/599643
推荐阅读
相关标签
  

闽ICP备14008679号