本文主要对vivado软件的资源利用报告中各个资源(Slice、Slice LUT、Slice Registers、LUT as Logic以及LUT as Memory等等)之间的关系进行讲解。
需要了解的基础知识
7 Series FPGA 主要资源为: CLB、DSP、Block RAM、CMTs、GT以及XADC等等。
其中CLB为可配置逻辑块(Configurable Logic Blocks),如下图所示,一个CLB由2个Slice组成,Slice分为SLICEM和SLICEL,一个CLB里最多有一个SLICEM,即一个CLB可由两个SLICEL或一个SLICEL加一个SLICEM组成。
SLICEL和SLICEM见下图所示
SLICEL可用于逻辑,算术运算, SLICEM除了用于逻辑,算术运算外,还可配置成分布式RAM或32位的移位寄存器。 其主要是因为SLICEM 中含有能够把 LUT 资源重新整合为 Distributed RAM 或 ROM 的逻辑。而 SLICEL 则不具备此功能。
从上图中可以看出,一个SLICEL或SLICEM均由四个6输入LUT和八个FF组成,其中SLICEL和SLICEM中的LUT结构不同,SLICEM中的LUT多了做存储器和移位的功能。
综上所示,一个CLB里由两个SLICE,一个SLICE里有四个LUT和八个FF,其中SLICEM可以配置成Distributed RAM,
即1个CLB = 2个SLICE = 8个6输入LUT = 16个Flip-Flops = 256bits Distributed RAM(4个6输入LUT=4*2^6=256bit) = 128bits Shift Registers(一个LUT可以配置成一个32bit Shift Registers,4个LUT最大可配置成128bits Shift Registers)
vivado软件的资源利用报告中各个资源分析
以xc7k410tffg900-2为例,其vivado中资源报告如下所示。
下图为ds180手册中7k410t资源截图
下图为ug474手册中7k410t CLB资源截图
资源分析:
xc7k410t FPGA总有63550个Slices;一个Slice有8个FF,即Slice Registers = 8×63550=508400;一个Slice中有4个6输入LUT,即Slice LUTs=4×63550 = 254200;所有LUT都可以逻辑运算,即LUT as Logic = Slice LUTs = 254200;从ug474手册中查出,SLICEM共22650个,即LUT as Memory = 4×22650 = 90600;Block RAM = 795个36kb。