Xilinx 7 系列的时钟资源(1)

谈到数字逻辑,谈到FPGA设计,每位工程师都离不开时钟。这里我们简单介绍一下xilinx 7 系列中的时钟资源。时钟设计的好坏,直接影响到布局布线时间、timing的收敛情况,FPGA的时钟设计非常重要,认识FPGA的时钟资源很有必要。

FPGA设计是分模块的,每个模块都有自己的时钟域。FPGA有很多的对外外设接口,这些接口很多是源同步的设计,所以按照驱动能力和逻辑规模大体可以分为全局时钟和局域时钟。

全局时钟,顾名思义就是FPGA内部驱动能力强,驱动范围大的时钟资源。所以这类资源在FPGA比较宝贵,一般器件手册都会有多少个全局时钟的介绍。

局域时钟则只是能够驱动FPGA部分区域,比如BUFR、BUFMR、BUFIO、BUFH等。它们的区域都很有限,有一定的限制,工程师在使用时需要特别注意;如果任意分配,恐怕会带来硬件问题。

XilinxFPGA相对Altera 在时钟资源上划分比较细致,很多早期altera的用户切换到xilinx平台感到很多术语没听过。

本节先提到xilinx 7系列的几个非常常见的时钟资源问题,希望您看到了解后不用再咨询FAE了,^_^

Q:时钟接到任意管脚么?

A:这个问题很初级,但也会有工程师认为时钟随意引入;其实FPGA都有IO定位,在7系列中尾缀带有MRCC、SRCC 才是专用时钟管脚了,这里涉及到时钟的专用布局布线资源。即使时钟频率不高,也不建议使用普通IO管脚。

Q:单端时钟接到P 还是N ?

A:这个问题也很常见,通常在单端时钟需要连接到P端了,否则也会布局布线错误。

Q:BUFR和BUFMR 有什么区别 ?

BUFMR是7系列才有的时钟buffer,它是在有些源同步设计中逻辑IO跨上中下三个bank;

而BUFR仅仅能够驱动一个bank,所以需要bufmr级联bufr来完成每个bank的功能,如图。

Q:高速接口的参考时钟可以内部BUFG引入么?

A:这个问题很多客户遇到,客户希望能够通过内部逻辑走线到高速的参考时钟网络上;原理上是可以有这条通道的,如下图。但实际xilinx并不推荐这类时钟应用,因为参考时钟的抖动指标影响到整个高速的传输,建议外部使用专用晶振的时钟引入。

Q:BUFH怎么用?

A:BUFH 可用于互联逻辑、SelectIO 逻辑、SDP48A1 模块或 Block RAM 资源的时钟驱动。

Q:Spartan6 有bufio2 如果移植到7系列怎么办?

A:这是很多S6客户移植的问题,当遇到bufio2时必须要使用bufr + bufio一起来完成。因为在S6上很多设计需要分频,在7系列上必须使用bufr来完成。还有如果burfio2 还承担了取反的功能,在7这里可能比较麻烦,最简单的是直接逻辑反了。

Q:时钟资源选择上是不是BUFG最优?

A:这个要根据设计,很多AD DA需要源同步设计,如果上了BUFG 由于时钟走线延迟较大;完全很数据不同步,很难再进行正确的采样。接口设计的逻辑量一般比较小,不建议上全局。

文章来源:East  FPGA那点事儿微信公众号