跳转到主要内容

FPGA时钟篇(一) 7系列的时钟结构

judy 提交于

作者:张大侠,文章来源:<span id="profileBt"><a href="https://mp.weixin.qq.com/s/YDvhOgnbhMt7WYHODR4ZOQ"&gt; 傅里叶的猫</a></span>

从本篇文章开始,我们来介绍下Xilinx FPGA的时钟结构、资源、用法,首先从7系列的FPGA开始,因为7系列的FPGA结构跟前面的有很大不同,而且前面那些FPGA用的也越来越少了。

首先来看7系列FPGA的时钟结构图:

<li>Clock Region:时钟区域,下图中有6个时钟区域,用不同的颜色加以区分出来</li>
<li>Clock Backbone:从名字也能看出来,这个一个纵向贯穿整个FPGA的时钟资源,把FPGA的clock region分成了两个部分,所有的全局时钟时钟都要从这经过。可以看到BUFG都在Clock Backbone上。Clocking Center就是Backbone中间的分割线。</li>
<li>Horizontal Center:水平分割线,将FPGA的BUFG分割成上下相等的两部分,像下图中,上下各有16个BUFG。需要注意的是,BUFG不属于任何的clock region,并且BUFG可以到底FPGA的任一个时钟角落。</li>
<li>HROW:Horizontal Clock Row, 将每一个clock region分成上下两部分,全局时钟进入每个clock region时,需要要经过HROW,有点类似于Clock Backbone在FPGA中的作用。</li>
<li>CMT Backbone:Clock Backbone是整个FPGA的Backbone,是很珍贵的资源,而如果是上下相邻的clock region,可以通过CMT Backbone互连。</li>
<li>CMT Column:每个Cloumn包含一个MMCM和一个PLL。</li>
<li>GT Column:高速收发器的column。</li>
<center><img src="http://xilinx.eetrend.com/files/2022-04/%E5%8D%9A%E5%AE%A2/100559186-24…; alt=""></center>

有同学可能有疑惑,为什么要分clock region,用一个clock region不是更简单么?

下面用我师兄的回复:为了适用更多的时钟,加入没有clock region,那就全部是global clock,如果有16个时钟网络,那最多就支持16个时钟。而分成了clock region后,如果该区域的时钟资源恰好可以布局到对应的region,则只使用该region的时钟网络资源。

也就是说,如果有16个时钟网络资源,那么极限情况下,两个region就可以使用32个时钟。