ilinx的7 series fpga transceivers wizard用于自定义的serdes编码。

要选择多个serdes端口,如下图,点击对应的名称,然后右边选择use该设备就可以。

生成后example文件中的support GT_USRCLK_SOURCE 文件,有个时钟文件。打开了悲剧了。所以经常debug调试,用其他的接收的时钟,无缘无故的出现no arm clk。实在是火大。

module k7_serdesx8_GT_USRCLK_SOURCE 这个文件

BUFG txoutclk_bufg0_i

(

.I                              (gt0_txoutclk_i),

.O                              (gt0_txusrclk_i)

);

BUFG rxoutclk_bufg1_i

(

.I                              (gt0_rxoutclk_i),

.O                              (gt0_rxusrclk_i)

);

assign GT0_TXUSRCLK_OUT = gt0_txusrclk_i;

assign GT0_TXUSRCLK2_OUT = gt0_txusrclk_i;

assign GT0_RXUSRCLK_OUT = gt0_rxusrclk_i;

assign GT0_RXUSRCLK2_OUT = gt0_rxusrclk_i;

assign GT1_TXUSRCLK_OUT = gt0_txusrclk_i;

assign GT1_TXUSRCLK2_OUT = gt0_txusrclk_i;

assign GT1_RXUSRCLK_OUT = gt0_rxusrclk_i;

assign GT1_RXUSRCLK2_OUT = gt0_rxusrclk_i;

assign GT2_TXUSRCLK_OUT = gt0_txusrclk_i;

assign GT2_TXUSRCLK2_OUT = gt0_txusrclk_i;

assign GT2_RXUSRCLK_OUT = gt0_rxusrclk_i;

assign GT2_RXUSRCLK2_OUT = gt0_rxusrclk_i;

assign GT3_TXUSRCLK_OUT = gt0_txusrclk_i;

assign GT3_TXUSRCLK2_OUT = gt0_txusrclk_i;

assign GT3_RXUSRCLK_OUT = gt0_rxusrclk_i;

assign GT3_RXUSRCLK2_OUT = gt0_rxusrclk_i;

办法就是自己增加代码,使用bufg模式,引出其他的时钟。代码如下:

BUFG txoutclk_bufg0_i

(

.I                              (gt0_txoutclk_i),

.O                              (gt0_txusrclk_i)

);

BUFG rxoutclk_bufg0_i

(

.I                              (gt0_rxoutclk_i),

.O                              (gt0_rxusrclk_i)

);

////////////////////////////////1

BUFG txoutclk_bufg1_i

(

.I                              (gt1_txoutclk_i),

.O                              (gt1_txusrclk_i)

);

BUFG rxoutclk_bufg1_i

(

.I                              (gt1_rxoutclk_i),

.O                              (gt1_rxusrclk_i)

);

////////////////////////////////2

BUFG txoutclk_bufg2_i

(

.I                              (gt2_txoutclk_i),

.O                              (gt2_txusrclk_i)

);

BUFG rxoutclk_bufg2_i

(

.I                              (gt2_rxoutclk_i),

.O                              (gt2_rxusrclk_i)

);

////////////////////////////////3

BUFG txoutclk_bufg3_i

(

.I                              (gt3_txoutclk_i),

.O                              (gt3_txusrclk_i)

);

BUFG rxoutclk_bufg3_i

(

.I                              (gt3_rxoutclk_i),

.O                              (gt3_rxusrclk_i)

);

assign GT0_TXUSRCLK_OUT  = gt0_txusrclk_i;

assign GT0_TXUSRCLK2_OUT = gt0_txusrclk_i;

assign GT0_RXUSRCLK_OUT  = gt0_rxusrclk_i;

assign GT0_RXUSRCLK2_OUT = gt0_rxusrclk_i;

assign GT1_TXUSRCLK_OUT  = gt1_txusrclk_i;

assign GT1_TXUSRCLK2_OUT = gt1_txusrclk_i;

assign GT1_RXUSRCLK_OUT  = gt1_rxusrclk_i;

assign GT1_RXUSRCLK2_OUT = gt1_rxusrclk_i;

assign GT2_TXUSRCLK_OUT  = gt2_txusrclk_i;

assign GT2_TXUSRCLK2_OUT = gt2_txusrclk_i;

assign GT2_RXUSRCLK_OUT  = gt2_rxusrclk_i;

assign GT2_RXUSRCLK2_OUT = gt2_rxusrclk_i;

assign GT3_TXUSRCLK_OUT  = gt3_txusrclk_i;

assign GT3_TXUSRCLK2_OUT = gt3_txusrclk_i;

assign GT3_RXUSRCLK_OUT  = gt3_rxusrclk_i;

assign GT3_RXUSRCLK2_OUT = gt3_rxusrclk_i;

这样每个端口发送和接收的时钟都是独立的。如果不是这么设定,那个可能多个端口接收时钟不一样就完蛋

xilinx的serdes接收时钟坑的更多相关文章

  1. Xilinx原语学习之时钟资源相关原语

    一直来,都是使用Vivado中自带的GMIItoRGMII IP核来完成GMII转RGMII的功能:尽管对GMII及RGMII协议都有一定的了解,但从没用代码实现过其功能.由于使用IP时,会涉及到MD ...

  2. Xilinx FPGA的专用时钟引脚及时钟资源相关

    主要参考了https://www.eefocus.com/liu1teng/blog/12-02/237897_4533d.html .Xilinx UG471.UG472以及Xilinx Forum ...

  3. xilinx FPGA全局时钟资源的使用

    1.什么是xilinx fpga全局时钟资源 时钟对于一个系统的作用不言而喻,就像人体的心脏一样,如果系统时钟的抖动.延迟.偏移过大,会导致系统的工作频率降低,严重时甚至会导致系统的时序错乱,实现不了 ...

  4. 007 GMII、SGMII和SerDes的区别和联系

    一.GMII和SGMII的区别和联系 GMII和SGMII区别,上一篇已经介绍了,这一篇重点介绍SGMII和SerDes区别. GMII和SGMII GMII 在MII接口基础上提升了数据位宽和Clo ...

  5. Xilinx FPGA LVDS应用

    最近项目需要用到差分信号传输,于是看了一下FPGA上差分信号的使用.Xilinx FPGA中,主要通过原语实现差分信号的收发:OBUFDS(差分输出BUF),IBUFDS(差分输入BUF). 注意在分 ...

  6. Xilinx FPGA编程技巧之常用时序约束详解

    1.   基本的约束方法 为了保证成功的设计,所有路径的时序要求必须能够让执行工具获取.最普遍的三种路径为: 输入路径(Input Path),使用输入约束 寄存器到寄存器路径(Register-to ...

  7. DS1337 时钟芯片在 C8051F 上的实现

    一.DS1337介绍 DS1337串行实时时钟芯片是一种低功耗.全部采用BCD码的时钟日历芯片,它带有两个可编程的定时闹钟和一个可编程的方波输出.其地址和数据可通过I2C总线串行传输,能提供秒.分.时 ...

  8. FPGA中亚稳态相关问题及跨时钟域处理

    前言 触发器输入端口的数据在时间窗口内发生变化,会导致时序违例.触发器的输出在一段时间内徘徊在一个中间电平,既不是0也不是1.这段时间称为决断时间(resolution time).经过resolut ...

  9. FPGA的时钟质量对设计的影响

    小梅哥编写,未经许可严禁用于任何商业用途 近期,一直在调试使用Verilog编写的以太网发送摄像头数据到电脑的工程(以下简称以太网图传).该工程基于今年设计的一款FPGA教学板AC620.AC620上 ...

  10. 基于FPGA的跨时钟域信号处理——专用握手信号

    在逻辑设计领域,只涉及单个时钟域的设计并不多.尤其对于一些复杂的应用,FPGA往往需要和多个时钟域的信号进行通信.异步时钟域所涉及的两个时钟之间可能存在相位差,也可能没有任何频率关系,即通常所说的不同 ...

随机推荐

  1. 并发编程 --- CAS原子操作

    介绍 CAS(Compare And Swap) 是一种无锁算法的实现手段,中文名称为比较并交换.它由 CPU 的原子指令实现,可以在多线程环境下实现无锁的数据结构. 原理 CAS 的原理是:它会先比 ...

  2. [VueJsDev] 其他知识 - 单词本

    [VueJsDev] 目录列表 https://www.cnblogs.com/pengchenggang/p/17037320.html 单词本z 这里的单词就是很随性的记忆,来源有生活中能见到的, ...

  3. 软件推荐: Sourcetree git软件

    注意事项: 破解的时候,json文件目录不是软件exe所在目录,是数据目录 %LocalAppData%\Atlassian\SourceTree 还有就是第一次运行弹出个 有个插件要不要用,选第3个 ...

  4. jsp转换成html

    相信很多人都希望自己的页面越快越好,最好是能静态的,提高客户访问速度.也便于搜索引擎搜索.所以,就希望我们的动态读取数据库的页面,尽可能的生成静态页面.一下系列文章,介绍一下个人的解决方案.      ...

  5. Unity3D 横板跳跃游戏半成品demo源代码

    项目介绍: 基于B站的 Unity3D新手教程进行学习制作,但视频中的做法有很多BUG,此demo是经过优化,几乎修复了教程里带的所有bug. 实现了基本的功能比如:怪物ai,开始菜单,设置菜单,地图 ...

  6. 三维模型OBJ格式轻量化的纹理压缩和质量关系分析

    三维模型OBJ格式轻量化的纹理压缩和质量关系分析 三维模型的OBJ格式通常包含纹理信息,而对纹理进行轻量化压缩可以减小文件大小和提高加载性能.然而,在进行纹理压缩时需要权衡压缩比率和保持质量之间的关系 ...

  7. 记录--vue中使用vue-video-player实现直播推流播放m3u8

    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 1.安装 vue-video-player npm install vue-video-player --save npm install ...

  8. Linux修改账户密码

    打开终端并登录到要修改密码的账户 输入 passwd 命令,然后 Enter 系统会提示你输入 Current password. 如果是第一次登录或者忘记密码,使用 passwd -d userna ...

  9. 马文·柯林斯的教育之道 「Marva Collins' Way」 阅读笔记

    <马文·柯林斯的教育之道> 是 哈佛幸福课(积极心理学) 中强列推荐的一本书 这本书主写的是 马文·柯林斯 的成长经历已经和教育理念,仅看介绍,会误认为这本书只是在说鼓励式的教学理念,看完 ...

  10. GFLV2:边界框不确定性的进一步融合,提点神器 | CVPR 2021

      GFLV2基于GFLV1的bbox分布进行改进,将分布的统计信息融入到定位质量估计中,整体思想十分创新和完备,从实验结果来看,效果还是挺不错的 来源:晓飞的算法工程笔记 公众号 论文: Gener ...