JESD204接口应用笔记——时钟

近期有个新项目接触了JESD204B的Transmit接口,使用Kintex UltraScale器件。总体来说,这东西非常好用,也挺简单。使用过程中在时钟配置方面遇到一点小问题,顺便记录一下。

时钟配置要求

Xilinx器件的JESD接口文档主要有两个,pg066和pg198,其中pg066是JESD204接口IP的文档,pg198是JESD204物理层文档。打开pg066的Clocking章节,可以看到一段比较重要的内容,对外部输入时钟做出了限制。

refclk是收发器的参考时钟,必须提供;glblclk主要用于用户逻辑,开发者使用该时钟产生数据源,然后送给JESD204接口IP。如果refclk大于165MHz,或者小于65MHz,那么glblclk是必须的;如果refclk和glblclk的时钟频率不一致,那么glblclk也是必须的。根据refclk的说明,refclk和glblclk是可以共用一路时钟的。

当refclk再65MHz~165MHz范围内,且与glblclk相等时,glblclk可以使用refclk。注意,任何时候refclk和glblclk都应该是同源的。下面这幅图就是refclk和glblclk共享时钟的情况。

写到这里,需要重点提一下。Ultrascale器件的时钟架构和7系列有很大的区别。对于收发器而言,UltraScale多了一个BUFG_GT。以前的器件中,IBUFDS_GTE扇出的时钟只能用于收发器。现在,将IBUFDS_GTE的另一路扇出连接到BUFG_GT,然后BUFG_GT的输出时钟就和普通BUFG扇出时钟一样,可以用于驱动用户逻辑,也可以用于MMCM/PLL等。BUFG_GT需要用下图中IBUFDS_GTE的黄色端口驱动。

refclk与glblclk可共享时钟

只要满足前文提到的条件,refclk和glblclk是可以共享时钟的。第一个项目中,线速率5Gbps,所以glblclk应该为5000/40=125MHz,同时收发器的参考时钟也可以接收125MHz的频率。在该设计中我使用了共享时钟方案,相关模块和接口都在Block Design中搭建。为了共享时钟,在添加IP时,记得勾掉下面的选项。

在Xilinx提供的源码中,这个与refclk共享的glblclk就是通过BUFG_GT产生的。

refclk与glblclk无法共享

第二个项目中,线路速率10Gbps,所以glblclk为250MHz,大于165MHz。这种情况下,refclk和glblclk只能使用不同的时钟。该项目需要4个link,每两个link共享一个refclk,4个link共享一个glblclk。在block design中,每个link都会生成一个symbol,而且每个symbol都会为glblclk保留一个差分的时钟输入端口,这是不可修改的。所以为了4个JESD204 IP共享一个glblclk,我没有使用block design的方式。而是修改jesd204_support.v模块的时钟端口,将原来的差分输入改为单端,然后将jesd204_clocking.v模块在顶层例化,用于产生glblclk,然后通过BUFG送给4个link。模块架构如下。

上图中,黄线标示的jesd204_clocking.v模块用于产生glblclk,供4个JESD204 IP使用;红线标示的两个jesd204_clocking.v模块用于产生refclk。

 

  • 10
    点赞
  • 75
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值