CLB slice 和lut
时间: 2023-09-27 14:11:06 浏览: 117
CLB是可配置逻辑块(Configurable Logic Blocks),由2个Slice组成。Slice是CLB的组成部分,分为SLICEM和SLICEL。一个CLB里最多有一个SLICEM,即一个CLB可由两个SLICEL或一个SLICEL加一个SLICEM组成。SLICEL可用于逻辑和算术运算,而SLICEM除了用于逻辑和算术运算外,还可以配置成分布式RAM或32位的移位寄存器。SLICEM中的LUT多了做存储器和移位的功能。一个SLICE由四个6输入LUT和八个FF组成。综上所示,一个CLB里有两个SLICE,即8个6输入LUT和16个Flip-Flops。
相关问题
XILINX FPGA的CLB由2个SLICE组成,SLICE由哪些部分组成
在 Xilinx FPGA 中,CLB(Configurable Logic Block,可配置逻辑块)是 FPGA 的基本逻辑单元之一,用于实现数字电路中的逻辑功能。每个 CLB 由两个 SLICE(Slice,切片)组成,每个 SLICE 又由以下三个部分组成:
1. LUT(Look-Up Table,查找表):用于存储逻辑函数,并计算输出结果。每个 LUT 可以存储一个布尔函数,大小为 16 位或 32 位,其中 16 位的 LUT 能存储 4 个输入位的布尔函数,32 位的 LUT 能存储 5 个输入位的布尔函数。LUT 也可以通过配置实现存储器等其他功能。
2. D触发器(D Flip-Flop):用于存储状态,实现时序逻辑功能。每个 SLICE 包括一个 D 触发器。
3. 级联加法器(Carry Logic):用于实现级联加法器。每个 SLICE 包括一个级联加法器,可以通过级联多个 SLICE 实现更宽的加法器。
slice luts\slice registers
Slice LUTs和Slice registers是FPGA中的两个重要组成部分。每个Slice包含一个LUT和一个flip-flop。LUT是查找表,根据输入组合产生输出结果。Flip-flop是状态寄存器,用于存储数据。在综合时,单个reg变量使用的是Flip-flop的资源。如果reg数组编写的是RAM,则在综合时使用LUTs或者Bram的资源。[1]
在FPGA中,25-50%的Slice还可以将其LUT用作分布式64位RAM或32位移位寄存器(SRL32)或两个16位移位寄存器(SRL16)。这意味着LUT可以用于存储数据或进行移位操作。现代综合工具可以充分利用这些高效的逻辑、算术和存储器特性。[2]
具体来说,在7系列FPGA中,LUT可以配置为一个6输入LUT(64位ROM)或两个5输入LUT(32位ROM),每个LUT都有独立的输出但共享地址或逻辑输入。每个LUT的输出可以选择性地在一个flip-flop中进行注册。每个Slice由四个这样的LUT和它们的八个flip-flop以及多路复用器和算术进位逻辑组成,而两个Slice则形成一个可配置逻辑块(CLB)。每个Slice中的八个flip-flop中的四个(每个LUT一个)可以选择性地配置为锁存器。[3]
阅读全文