Xilinx(K7)和CycloneV之间的光纤通信设置

本文为明德扬原创文章,转载请注明出处!

今天跟大家分享基于Xilinx K7和C5之间的光纤通信,本工程是K7例化四个速率都是3.125Gbps的光纤GTX的IP核的设置,C5例化的是两个GTX的IP核的设置,然后一个K7的板卡和两个C5的板卡连接。

一、例化K7的光纤的IP核

1、打开Vivado光纤工程。

这里我选择的是明德扬的工程,芯片型号为XC7K325tffg900-2,大家做的时候可以新建任意工程。

2、点击“IP Catalog”,进入IP核配置界面。

3、搜索“gt”,双击选择“7 Series FPGAs Transceivers Wizard”。

4、选择“Line Rate,RefClk Selection”页面设置

根据左下角电路图,去掉通道0的勾选,再勾选通道8到通道11,如下面两张图所示;

配置TX/RX端的时钟和速率,如下图所示。

5、选择“Encoding and Clocking”页面设置

在“TX”和“RX”端进行选择设置:“External Data Width (Bits)”中都选择“16”,“Encoding”和“Decoding”中都选择“8B/10B”;

在“Optional Ports”端进行勾选:对“TXPCSRESET”、“TXPMARESET”、“TXBUFSTATUS”、“RXPCSRESET”、“RXBUFSTATUS”、“RXBUFRESET”、“RXCDRHOLD”进行选择。

相关项目选择如下图所示:

6、选择“Comma Alignment and Equalization”页面设置

“RX COMMA detection”设置:其中“Allgn to”下选择“Any Byte Boundary”,如下图所示。

之所以进行此设置,是为了更好的对齐字节。比如说数据“0x0102 0x0304”, 选择“Any Byte Boundary”的时候,接收到的数据出现“0x0102 0x0304”的概率就会更大,否则接收到的数据就会是“0x0201 0x0403”。

7、选择“CB and CC Sequence ”页面设置

“Clock correction”设置:勾选“Use Clock Correction”和“Use Two Clock Correction Sequences”;在“PPM Offset +/-”填上“1000”;在“Sequence length”选择“2”,如下图所示。

“PPM Offset +/-”中选择“1000”是时钟的质量,数值越大表示质量越差。

8、查看参数配置

参数都配置完以后,可以在“Summary”页面查看完整的参数列表,如下图所示。

9、生成IP核

配置完IP核参数后,弹出如下界面,点击“Generate”生成IP核。


10、添加IP核

返回到“Sources”界面,选择添加的IP核,右键选择“Open IP Example Design…”;

弹出界面如下图所示,点击“OK”确认。

11、IP核移植

点击“OK“后会弹出一个新的Vivado界面,这就是它生成IP核使用的例程,如下图所示。
我们需要把里面的一些内容注释掉,并且添上我们的代码,让这个例程封装成一个接口,成为我们能用的IP核——这个过程就是IP核的移植过程。如果不进行修改的话,IP核与我们的工程不配套,就无法正常使用。

需要注释掉的部分如下图所示:


即:

将提供的IP核的用户接口的代码引出,并修改成本工程可以使用的用户接口代码,完成移植。

添加的代码如下:

以上就是K7光纤工程IP核配置和移植的具体操作,如有不明白的地方可以加我的QQ:1479512800,共同讨论,期待与大家一起探讨进步!

二、例化Altera_C5的光纤的IP核

Altera的光纤的IP核同样的是例化3.125Gbps的速率,也就是说板卡和板卡之间的通信速率是一样的。

Altera的光纤的IP核是已经集成了高速的PLL在native_phy的,所以不需要外部的高速的PLL,Altera的光纤的IP核由两个IP核组成,分别为phy_reset的IP核和native_phy核。

1、Naive_phy的IP核的例化

2、native_phy的IP核的设置,选择协议和速率

3、选择实际的参考时钟
4、点击finish完成即可

疑惑点:

有的同学有疑惑不是说速率是在3.125G吗,那为什么我们选择的IP核为2.5G的IP核?

其实数据链路上的传输的速率是3.125Gbps的,由于8b/10b编码之间的关系,则有3.125G * 0.8 = 2.5Gbps(数据真正有效的速率),也就是说我们选择的2.5Gbps的IP核是实际上的速率IP核。

5、光纤的复位IP核设置,选择如下图的IP核
复位IP核的设置如下图所示,参考时钟的选择可以是普通PLL传递过来的时钟,然后点击“Finish”完成即可。

6、模块顶层的例化

关键信号列表说明:

Tx_parallel_data: 发送的数据;

Tx_datak: 发送的K码;

Rx_parallel_data: 接收的数据;

RX_datak: 接收的K码;

另外,native_phy提供了对外发送和接收时钟给用户,分别是rx_std_coreclkin和tx_std_coreclkin,即用户要发送数据的时候数据要以tx_std_coreclkin时钟域对齐;

接收数据的时候是以rx_std_coreclkin对齐的。

以上就是基于Xilinx K7和C5之间的光纤通信设置,有不明白的朋友可以联系明德扬进行学习讨论,当然大家也可以在留言中与我进行交流!

Xilinx(K7)和CycloneV之间的光纤通信设置相关推荐

  1. 使用Xilinx K7 KC705开发板调试PCIe中的问题【持续更新】

    开发板:Xilinx K7 KC705 软件:ISE14.7 1.由于应用需求,我们要将开发板作为主机端,通过PCIe接口转接板外接一个NVMe PCIe SSD.并由FPGA控制SSD的数据读写. ...

  2. 202- K7 +C6678学习资料:基于TI DSP TMS320C6678、Xilinx K7 FPGA XC7K325T的高速数据处理核心板

    基于TI DSP TMS320C6678.Xilinx K7 FPGA XC7K325T的高速数据处理核心板 一.板卡概述 该DSP+FPGA高速信号采集处理板由我公司自主研发,包含一片TI DSP ...

  3. C6678板卡学习资料:202-基于TI DSP TMS320C6678、Xilinx K7 FPGA XC7K325T的高速数据处理核心板

    一.板卡概述 该DSP+FPGA高速信号采集处理板由我公司自主研发,包含一片TI DSP TMS320C6678和一片Xilinx FPGA K7 XC72K325T-1ffg900.包含1个千兆网口 ...

  4. 202-基于TI DSP TMS320C6678、Xilinx K7 FPGA XC7K325T的高速数据处理核心板

    基于TI DSP TMS320C6678.Xilinx K7 FPGA XC7K325T的高速数据处理核心板 一.板卡概述 该DSP+FPGA高速信号采集处理板由我公司自主研发,包含一片TI DSP ...

  5. Alfred 初学者指南:如何在 Mac 之间同步 Alfred 设置?

    Alfred 初学者指南:如何在 Mac 之间同步 Alfred 设置?具体教程如下: 首选项同步要求 本指南将带您完成使用 Dropbox 在两台 Mac 上设置同步所需的步骤. 要遵循此工作流程, ...

  6. 主机、虚拟机、开发板之间网络连接设置

    最近在玩开发板,主机使用的无线网卡,开发板与主机网线直连,现在开发板想使用tftp直接从虚拟机下载镜像等文件,偶尔又需要虚拟机从主机下载文件,虚拟机有时候又需要网络,经过一番折腾算是调试成功. 1.主 ...

  7. RK3399+XILINX K7 FPGA 应用于雷达通信遥测成像等领域

    ARM端 xdma 的驱动编译,交叉编译器的配置,编译内核. 先上图. 以下参考XILINX FPGA+RK3399 PCIE X4_FPGA零下的博客-CSDN博客 编译xdma说明 一.安装交叉编 ...

  8. 【转】xilinx usb下载器 速度高速极限设置 JTAG-SMT2 JTAG-HS2 JTAG-HS3和Platform Cable USB DLC9 DLC10速度测试

    xilinx usb下载器 下载速度极限设置以及高速JTAG-SMT2(HS1 HS2 HS3)和DLC9 DLC10 速度测试 对于一款xilinx的下载器,研发和烧录以及boss都最关心下载速度的 ...

  9. unity动画系统之两个动画片段之间连线设置

    Has Exit Time:true代表是否等待上一个节点动画播放完毕后切换到下一个动画,false带表立刻切换,不需要等待.(该属性默认为true) Settings: Exit Time:设置节点 ...

最新文章

  1. mysql longtext可以存储多少文字_MySQL 四万字精华总结 + 面试100 问,和面试官扯皮绰绰有余(收藏系列)
  2. linux内核SMP负载均衡浅析
  3. EXPLAIN PLAN获取SQL语句执行计划
  4. FreeMarker的使用
  5. 【C】KoobooJson在asp.net core中的使用
  6. python开发web项目_Django2:Web项目开发入门笔记(20)
  7. postek二次开发_20190626_二次开发BarTender打印机_C#代码_一边读取TID_一边打印_打印机POSTEK...
  8. 工业机器人控制问题---来自睿慕课
  9. reactrouter4路由钩子_react router @4 和 vue路由 详解(八)vue路由守卫
  10. LeetCode-----重建二叉树
  11. 成功的人都很会控制自己的情绪
  12. Ubuntu su root提示输入密码 怎么输入都不对
  13. C# 性能优化之斤斤计较篇 二
  14. 计算机软件考试大纲,求计算机软件资格考试大纲和复习资料
  15. 「解读苏宁」30年门店数字化发展心法与实践分享
  16. vm服务器复制文件,怎么实现从宿主机拖动复制文件到虚拟机VM中的示例
  17. 伪标签(Pseudo-Labelling)
  18. 游戏设计之路——游戏设计文档详解(GDD)
  19. ReadHub源码阅读笔记(二)dagger+MVP
  20. python实现简单图书管理系统

热门文章

  1. 牛客网大厂在线笔试输入输出练习python3版
  2. 注册地址从零开始学建站-域名篇
  3. 关于符合车规的高精度定位产品
  4. HTMLCSS笔记 [全文字数4w]
  5. 15天精读掌握《高德纳:具体数学》 第4天 2019.5.30
  6. 20221220英语学习
  7. docker中--privileged的使用
  8. SQL Server安全(4/11):许可(Permissions)
  9. 27个机器学习图表,帮你作弊一般飞速成长!
  10. java wed登录面 代码_Java Web登录界面