xilinx的serdes接收时钟坑
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接收时钟坑的更多相关文章
- Xilinx原语学习之时钟资源相关原语
一直来,都是使用Vivado中自带的GMIItoRGMII IP核来完成GMII转RGMII的功能:尽管对GMII及RGMII协议都有一定的了解,但从没用代码实现过其功能.由于使用IP时,会涉及到MD ...
- Xilinx FPGA的专用时钟引脚及时钟资源相关
主要参考了https://www.eefocus.com/liu1teng/blog/12-02/237897_4533d.html .Xilinx UG471.UG472以及Xilinx Forum ...
- xilinx FPGA全局时钟资源的使用
1.什么是xilinx fpga全局时钟资源 时钟对于一个系统的作用不言而喻,就像人体的心脏一样,如果系统时钟的抖动.延迟.偏移过大,会导致系统的工作频率降低,严重时甚至会导致系统的时序错乱,实现不了 ...
- 007 GMII、SGMII和SerDes的区别和联系
一.GMII和SGMII的区别和联系 GMII和SGMII区别,上一篇已经介绍了,这一篇重点介绍SGMII和SerDes区别. GMII和SGMII GMII 在MII接口基础上提升了数据位宽和Clo ...
- Xilinx FPGA LVDS应用
最近项目需要用到差分信号传输,于是看了一下FPGA上差分信号的使用.Xilinx FPGA中,主要通过原语实现差分信号的收发:OBUFDS(差分输出BUF),IBUFDS(差分输入BUF). 注意在分 ...
- Xilinx FPGA编程技巧之常用时序约束详解
1. 基本的约束方法 为了保证成功的设计,所有路径的时序要求必须能够让执行工具获取.最普遍的三种路径为: 输入路径(Input Path),使用输入约束 寄存器到寄存器路径(Register-to ...
- DS1337 时钟芯片在 C8051F 上的实现
一.DS1337介绍 DS1337串行实时时钟芯片是一种低功耗.全部采用BCD码的时钟日历芯片,它带有两个可编程的定时闹钟和一个可编程的方波输出.其地址和数据可通过I2C总线串行传输,能提供秒.分.时 ...
- FPGA中亚稳态相关问题及跨时钟域处理
前言 触发器输入端口的数据在时间窗口内发生变化,会导致时序违例.触发器的输出在一段时间内徘徊在一个中间电平,既不是0也不是1.这段时间称为决断时间(resolution time).经过resolut ...
- FPGA的时钟质量对设计的影响
小梅哥编写,未经许可严禁用于任何商业用途 近期,一直在调试使用Verilog编写的以太网发送摄像头数据到电脑的工程(以下简称以太网图传).该工程基于今年设计的一款FPGA教学板AC620.AC620上 ...
- 基于FPGA的跨时钟域信号处理——专用握手信号
在逻辑设计领域,只涉及单个时钟域的设计并不多.尤其对于一些复杂的应用,FPGA往往需要和多个时钟域的信号进行通信.异步时钟域所涉及的两个时钟之间可能存在相位差,也可能没有任何频率关系,即通常所说的不同 ...
随机推荐
- XAF Number(编号)
前言 编号在各类系统中都会存在,同时它还会根据业务场景的不同,会有不同的生成规则.XAF提供了一个编号生成助手(DistributedIdGeneratorHelper),它能在多并发的情况下,生成一 ...
- sign 单词学习 - 本质:去分开
sign 英[saɪn],美[saɪn] n. 符号; 指示牌; 手势; 征兆; 正负号; 星座 v. 签名; 签约; 打手语 词源说明(童理民) sign : 来自拉丁语signum,符号,标志,图 ...
- config.js 多人同步更新 解决方案 多项目公用一套config.js dev
index.html <script type='text/javascript' src='<%= BASE_URL %>config.js?${Math.random().toS ...
- vm 虚拟机总是蓝屏 移除打印机和声卡 移除这俩硬件 (大文件用飞秋传输)
vm 虚拟机总是蓝屏 移除打印机和声卡 移除这俩硬件 (大文件用飞秋传输)
- baidu 突然打不开了 20210621
换了个dns 123.125.81.6 114.114.114.114
- Linux安装Nginx详细教程
一.下载Nginx安装包 Nginx官网下载地址 根据需求选择自己需要的版本下载后上传至服务器(路径自行决定). 如果服务器有外网,可以直接在服务器上下载. wget -c https://nginx ...
- 基于python的wav转txt的源码
最近在做一个算法的时候,用到了这个转换,这里做一个备忘,希望能给你提供价值. import wave import matplotlib.pyplot as plt import numpy as n ...
- Android自定义View学习(1)——基础知识介绍
原文:Android自定义View学习(1)--基础知识介绍 - Stars-One的杂货小窝 准备学习自定义View,介绍一下先了解了下相关的前置基础知识,特此总结 本系列集合文章链接可访问Andr ...
- Linux 运维工程师面试真题-4-Linux 服务配置及管理
Linux 运维工程师面试真题-4-Linux 服务配置及管理** 1.请写出 apache2.X 版本的两种工作模式,以及各自工作原理.如何查看 apache 当前所 支持的模块,并且查看是工作在哪 ...
- .net core WPF关于进程打开网页链接报错"文件找不到"
System.Diagnostics.Process proc = new System.Diagnostics.Process(); proc.StartInfo.FileName = " ...