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. XAF Number(编号)

    前言 编号在各类系统中都会存在,同时它还会根据业务场景的不同,会有不同的生成规则.XAF提供了一个编号生成助手(DistributedIdGeneratorHelper),它能在多并发的情况下,生成一 ...

  2. sign 单词学习 - 本质:去分开

    sign 英[saɪn],美[saɪn] n. 符号; 指示牌; 手势; 征兆; 正负号; 星座 v. 签名; 签约; 打手语 词源说明(童理民) sign : 来自拉丁语signum,符号,标志,图 ...

  3. config.js 多人同步更新 解决方案 多项目公用一套config.js dev

    index.html <script type='text/javascript' src='<%= BASE_URL %>config.js?${Math.random().toS ...

  4. vm 虚拟机总是蓝屏 移除打印机和声卡 移除这俩硬件 (大文件用飞秋传输)

    vm 虚拟机总是蓝屏 移除打印机和声卡 移除这俩硬件 (大文件用飞秋传输)

  5. baidu 突然打不开了 20210621

    换了个dns 123.125.81.6 114.114.114.114

  6. Linux安装Nginx详细教程

    一.下载Nginx安装包 Nginx官网下载地址 根据需求选择自己需要的版本下载后上传至服务器(路径自行决定). 如果服务器有外网,可以直接在服务器上下载. wget -c https://nginx ...

  7. 基于python的wav转txt的源码

    最近在做一个算法的时候,用到了这个转换,这里做一个备忘,希望能给你提供价值. import wave import matplotlib.pyplot as plt import numpy as n ...

  8. Android自定义View学习(1)——基础知识介绍

    原文:Android自定义View学习(1)--基础知识介绍 - Stars-One的杂货小窝 准备学习自定义View,介绍一下先了解了下相关的前置基础知识,特此总结 本系列集合文章链接可访问Andr ...

  9. Linux 运维工程师面试真题-4-Linux 服务配置及管理

    Linux 运维工程师面试真题-4-Linux 服务配置及管理** 1.请写出 apache2.X 版本的两种工作模式,以及各自工作原理.如何查看 apache 当前所 支持的模块,并且查看是工作在哪 ...

  10. .net core WPF关于进程打开网页链接报错"文件找不到"

    System.Diagnostics.Process proc = new System.Diagnostics.Process(); proc.StartInfo.FileName = " ...