系列文章目录
学习使用Vivado和SDK进行Xilinx ZYNQ FPGA开发 | (一)开始
学习使用Vivado和SDK进行Xilinx ZYNQ FPGA开发 | (二)学习方法选择
学习使用Vivado和SDK进行Xilinx ZYNQ FPGA开发 | (三)安装并破解Vivado和SDK
学习使用Vivado和SDK进行Xilinx ZYNQ FPGA开发 | (四)安装并破解Modelsim
学习使用Vivado和SDK进行Xilinx ZYNQ FPGA开发 | (五)ZYNQ-7000芯片摘要
学习使用Vivado和SDK进行Xilinx ZYNQ FPGA开发 | (六)ZYNQ-7000芯片的PS有什么资源
学习使用Vivado和SDK进行Xilinx ZYNQ FPGA开发 | (七)ZYNQ-7000芯片的PL有什么资源
学习使用Vivado和SDK进行Xilinx ZYNQ FPGA开发 | (八)ZYNQ-7000芯片的CLB(本文)
摘要
ZYNQ-7000的PL相当于A7或者K7,其中低配相当于A7,高配相当于K7,其中可编程逻辑资源是Configurable Logic Block(CLB),在UG474 7 Series FPGAs Configurable Logic Block User Guide中有关于7系列CLB的描述,包括但不限于如下几种:
- CLB与Slice
- Slice的分类
- CLB资源数
- CLB的排布
一、CLB与Slice
7系列实现时序逻辑和组合逻辑的主要资源是CLB,每个CLB由2个Slice组成,每个Slice由4个6输入LUT+8个触发器组成。这些LUT和触发器组合,可以配置成不同的逻辑,例如:
- 6输入LUT
- 2个非完全独立的5输入LUT
- 分布式RAM
- 位移寄存器
- 用于算术运算的进位逻辑
- 多路复用器
二、SliceM与SliceL
7系列的Slice有两种,包括SliceM和SliceL(以前的Spatan6还有SliceX),SliceM上面的LUT逻辑复杂一些,可以将其配置成分布式RAM,一般只有25–50%的SliceM,SliceM和SliceL的示意图如下。
三、7系列上的资源
CLB有不同的类型,所以它可以当做不同资源使用,一般展示7系列资源的时候,会把Slice数量,SliceL和M的数量,6输入查找表的数量,分布式RAM数量,位移寄存器数量,触发器的数量。当然,这些数量是指最大能配置的数量,实际使用时,他们可能会消耗相同类型的Slice,比如分布式RAM用多了,位移寄存器资源就少了。
以A7系列芯片为例,资源表如下,可以看出LUT数量是FF的二分之一,与“每个Slice由4个6输入LUT+8个触发器组成”对应;可以看出SliceM比SliceL少,占总Slice数约1/3,与“一般只有25–50%的SliceM”对应。
四、ASMBL架构:CLB与其他资源在片上的排布
7系列使用Advanced Silicon Modular Block (ASMBL)架构,按照柱状将CLB资源与其他资源在片上进行排布,不同的排布方式适合不同的应用场景。一块芯片上,不同的区域也可能使用不同的排布方法,S7、A7、K7、V7也各有差异,所以在FPGA选型的时候,可以根据自己的应用场景,选择更适合自己应用的芯片系列。