FPGA的构成
基本逻辑单元CLB
CLB是FPGA的基本逻辑单元, 一个 CLB 包括了 2 个 Slices,所以知道Slices的数量就可以知道FPGA的"大概"逻辑资源容量了。一个 Slice 等于 4 个6输入LUT+8个触发器(flip-flop)+算数运算逻辑,每个 Slice 的 4 个触发器(虽然有 8个flip-flop,但是每个 LUT 分配一个 flip-flop)可以配置成锁存器,这样会有4 个触发器(flip-flop)未被使用。对于CLB来说,里面的Slice有2种类型。一种是SLICEL,另外一种是SLICEM.SLICEM的功能更强大,SLICEM可以当作分布式RAM 或者ROM,或者实现移位寄存器。
对于 XILINX 7 系列的 FPGA 来说,SLICEM 约占三分一的 Slices。比如对于 7K325T的 FPGA,有 16000个SLICEM,即16000X4X64bit=4096Kb的 distributed RAM或者2000kb的Shift Register。
slice 的基本结构
•四个逻辑函数生成器(查找表)
•8 个存储单元
•多功能多路复选器
• 快速进位逻辑
FPGA 的逻辑、算术和 ROM 功能就是靠 Slice 实现,其中 slice 又分 SLICEL 和 SLICEM,SLICEM 的功能更强 大,除了具备 SLICEL 的所有功能,还能实现分布式 RAM、ROM 和实现移位逻辑
slicel的结构图
slicem的结构图
对比 SLICEM 和 SLICEL,可以看到以上结构图中,他们的差异在查找表上,SLICEM 的查找表结构功能更复杂。 SLICEM 增加了写操作的控制信号,以及移动位进位的功能。