使用PlanAhead查看Virtex-7系列FPGA的底层架构

FPGA整体架构

下图是FPGA架构的一个整体架构图,可见,Virtex-7系列的FPGA分为20个时钟域(Clock Region),左侧从X0Y0到X0Y9,右侧从X1Y0到X1Y9,命名方式为:X后面的数字表示列,从0开始到1,总共两列;Y表示行,后面的数字从下网上计数,依次为0,1,...,9,总共10行。

每个时钟域的长度度为FPGA板子的一半,高为大约为48个CLB的高度。

使用PlanAhead查看Virtex-7系列FPGA的底层架构

 

让后我们放大其中一个时钟域来看看(X0Y0):

使用PlanAhead查看Virtex-7系列FPGA的底层架构

上图可见,放的还不够大,但已经开始呈现出一些阵列状的东西了。继续放大:

使用PlanAhead查看Virtex-7系列FPGA的底层架构

可见,整齐分布了大量的CLB,即可编程逻辑块,还有BRAM,也就是块RAM:

使用PlanAhead查看Virtex-7系列FPGA的底层架构

还有DSP48:

使用PlanAhead查看Virtex-7系列FPGA的底层架构

还有IOB,FIFO等,如下图:

使用PlanAhead查看Virtex-7系列FPGA的底层架构

还有缓冲器Buffer:

使用PlanAhead查看Virtex-7系列FPGA的底层架构

真是让人大开眼界,这种技术不得不让人赞叹。

下面我们继续放大CLB,看看CLB是怎么组成的:

使用PlanAhead查看Virtex-7系列FPGA的底层架构

使用PlanAhead查看Virtex-7系列FPGA的底层架构

从上面两张图中可以看出,有的CLB是由两个SLICE组成的,这里还有区分,也就是说,有的CLB是由两个SLICEL组成的,命名为CLBLL;有的CLB是由一个SLICEL和一个SLICEM组成的,命名为CLBLM。

SLICEL和SLICEM的区别我们以前的博文也写过,可见我的CLB介绍三部曲:

Xilinx® 7 series FPGAs CLBs专题介绍(一)

Xilinx® 7 series FPGAs CLBs专题介绍(二)

第三部还没有开始写;

也就是说,SLICEM中的查找表(LUT)可以配置成分布式的RAM以及FIFO等,而SLICEL没有这么个功能,只能作为函数发生器,这里是6输入的函数发生器。

我们继续放大看SLICEL中什么组成的:

使用PlanAhead查看Virtex-7系列FPGA的底层架构

从上图可见,SLICEL包含4个6输入的LUT,进位链,还有8个DFF,还有一些多路复用器(MUX)。

下图为SLICEM:

使用PlanAhead查看Virtex-7系列FPGA的底层架构

可见,结构基本是一致的,只是这个LUT看起来有点不一样呀,那继续放大看看这个LUT怎么回事:

使用PlanAhead查看Virtex-7系列FPGA的底层架构

明显与SLICEL中的LUT不一样啊,多了好多端口出来,这也不奇怪,为什么SLICEM可以配置成分布式的RAM以及FIFO了。

借此机会再看看所谓的进位链是什么样的:

使用PlanAhead查看Virtex-7系列FPGA的底层架构

可见,进位链是由多路复用器和异或门组成。

这种直观的方式去了解FPGA的内部结构是十分有益的,至少对于初学者来说,容易建立一个直观的认识,看到这些令人赞叹的技术,是不是更加让人有欲望去了解呀。