FPGA的基础架构,什么是CLB?

如题所述

CLB,即可编程逻辑功能块(Configurable Logic Blocks),是FPGA(Field-Programmable Gate Array)架构中的基本逻辑单元。CLB的数量、配置和特性因FPGA器件的不同而有所变化,但其核心功能在于提供可编程的数字逻辑电路。在Xilinx公司的FPGA器件中,CLB通常由2个相同的SliceL或一个SliceL和一个SliceM组成。每个Slice不仅可以实现组合逻辑和时序逻辑,SliceM还能配置为分布式RAM和分布式ROM,提供额外的存储功能。

以Xilinx的ZYNQ 7000系列为例,该系列采用了全新的第四代ASMBL架构。这一架构优化了芯片布局,解决了随着IO数量增长导致的芯片阵列尺寸约束问题。它还允许在芯片的任何位置放置电源和地,增加了更多的电源和地,同时支持多种不同功能的IP单元在芯片内独立排布,利用独特的SSI技术提供了更高效的布局。

在ZYNQ 7000系列中,分布式RAM和移位寄存器功能仅限于SliceM。SliceM在不使用触发器的情况下,可以配置为32位移位寄存器,通过4个LUT的级联,形成128位移位寄存器。SliceM之间通过级联形成更大的移位寄存器。

Slice是Xilinx定义的基本逻辑单位,内部结构包含四个6输入的查找表(LUTs)、进位逻辑、算术逻辑、存储逻辑和多路复选器。算术逻辑中的异或门用于实现2位全加操作,专用与门提高了乘法器的效率;进位逻辑由专用进位信号和函数复用器组成,支持快速的算术加减法操作;4输入函数发生器用于实现4输入LUT、分布式RAM或16位移位寄存器。每个Slice包含四个6输入查找表、八个存储单元、多路复选器、进位逻辑等,这些单元提供逻辑、算术和ROM功能。

SLICEL和SLICEM是Slice的两个变体,SLICEL包含两个SLICEL或一个SLICEL和一个SLICEM,SLICEM支持分布式存储数据RAM和移位寄存器功能。在FPGA中,LUT查找表提供可编程的逻辑功能,每个Slice包含4个6输入的LUT,通过级联可以形成更多输入的LUT,LUT本质上是RAM,支持异或运算、算数运算等,直接输出逻辑结果。每个Slice有8个存储单元,4个可配置为DFF或锁存器,另外4个只能配置为DFF。

在FPGA的CLB结构中,分布式RAM和移位寄存器功能仅限于SLICEM,这为小规模存储提供了灵活性。分布式RAM比块RAM具有更好的灵活性,但资源相对宝贵,适用于需要少量存储空间的场景。移位寄存器功能同样仅限于SLICEM,通过级联多个Slice,可以形成更大规模的移位寄存器,实现数据的位移操作。

多路复选器MUX用于连接LUT,配置成不同的多路选择器,实现逻辑功能。在Slice中,有两条快速进位链,支持数据运算时的进位操作,每个Slice有4位的进位链,通过进位MUX和异或门实现。这不仅支持加法/减法运算,还能产生一般逻辑操作。

通过上述描述,我们可以看到FPGA中CLB的基础架构及其各个组件的功能与特性,这些设计为FPGA提供了高度的灵活性和可编程性,使其在各种计算和逻辑处理任务中具有广泛的应用。
温馨提示:答案为网友推荐,仅供参考
相似回答
大家正在搜