从原理的视角,一文彻底弄懂FPGA的查找表(LUT)、CLB

从原理的视角,一文彻底弄懂FPGA的查找表(LUT)、CLB

我学东西有个特点,喜欢从原理的层面彻底弄懂一个知识点,这几天想弄明白FPGA的查找表,但发现很多博文写的很模糊,看了以后仍然不是很明白。当然,可能是作者自己弄懂了,但没有站在新人的角度来详细的解释。通过多方资料查找,终于把原理彻底搞懂,在此记录一下吧。如果朋友看了我的文章后,仍然不明白的,欢迎随时交流。

背景知识

我最早接触逻辑门是在初中物理的一堂课上,当时课本的小知识栏讲了一个家用自动晾衣架,原理挺简单,就是晚上或者下雨天晾衣架可以自动收回。当时觉得这种与非门电路太奇妙了!

假如我们用A表示白天,用A‾\overline{A}A表示晚上,用B表示晴天,用B‾\overline{B}B表示阴天或雨天。用y表示晾衣架的控制,为1时收回,为0时伸出。

我们可以据此得到一个真值表

ABy00A‾B‾\overline{A}\overline{B}AB101A‾B\overline{A}BAB110AB‾A\overline{B}AB111ABABAB0逻辑表达式写为

y=A‾B‾+A‾B+AB‾y=\overline{A}\overline{B}+\overline{A}B+A\overline{B}y=AB+AB+AB

这就是晾衣架收回的条件。

这个控制逻辑如果用查找表如何设计呢?我们先设计4个bit的RAM,RAM里存储的数据就是1110, 然后A和B分别控制双路选择器,连接方式见下图,选择器的输出结果为y。

FPGA的LUT

继续上面的思路,假如我要实现

y=(A and B)or Cy= (A \ and \ B)or\ Cy=(A and B)or C

把它的真值表列出来就是如下结果

那么我的查找表RAM只需要8bit,填入01010111即可。

从这两个例子我们应该能够想到,对于FPGA器件,要实现一定的逻辑功能,只需要往查找表单元的RAM里写入对应的真值表输出值即可。

对于下面4输入的一个逻辑,想要实现

y=abcd‾+abcd+abcd‾y= \overline{abcd}+abcd+ab\overline{cd}y=abcd+abcd+abcd

查找表RAM的 配置值为0x8009 即 1000 0000 0000 1001

Xinlinx的FPGA查找表一般设计为6个输入,那么就需要64bit的RAM来存储6个变量所有的可能组合,这个查找表也可以作为两个5输入的查找表使用。

在FPGA的开发中,可以用直接配置LUT的方式实现逻辑功能。

比如要实现二输入的 NAND gate

在verilog中我们一般写成这样

y=~(a&b)

转化成 LUT 的方式可能是这样

// LUT6: 6-input Look-Up Table with general output

// 7 Series

// Xilinx HDL Libraries Guide, version 2012.2

LUT6 #(

.INIT(64'h0000000000000007) // Specify LUT Contents

) LUT6_inst (

.O(y), // LUT general output

.I0(a), // LUT input

.I1(b), // LUT input

.I2(0), // LUT input

.I3(0), // LUT input

.I4(0), // LUT input

.I5(0) // LUT input

);

// End of LUT6_inst instantiation

FPGA的CLB

从上面的介绍我们可以看出,查找表是一些组合逻辑电路,主要是用RAM+MUX2来实现一定的组合逻辑功能。我们知道逻辑电路都会有延时,所以为了确保电路的工作稳定,还需要有同步单元才行。

在FPGA中,每个5输入的查找表后面有一个触发器,那么6输入的查找表有两个触发器。每四个6输入的查找表加2个触发器以及一个进位加法运算器组成一个slice,两个slice组成一个CLB单元。

slice 又分为SLICEM和SLICEL,M的意思是memory,L的意思是logic,区别是SLICEM除了做查找表用之外,还可以用作RAM,这种叫做分散式RAM单元(Distributed RAM)。初次之外,SLICEM还可以用作移位寄存器,本篇就不做展开,等以后再叙吧。SLICEL只能做查找表用。

说到这里,我们应该能读懂FPGA的手册中关于资源的描述了。从中可以看出SLICE的数量等于SLICEM+SLICEL.

到这里就可以明白FPGA大致是如何组成的了,FPGA是一个复杂度极高的集成器件,后续更深入的理解请关注我的其它博文。有用的话点个赞吧。

相关推荐

白条鱼刺多吗?4步告诉你答案_清晰图解
365足球外围平台

白条鱼刺多吗?4步告诉你答案_清晰图解

📅 06-28 👁️ 7412
什么口什么舌什么四字成语(什么口什么舌的成语)(40个)
365官网国内怎么进

什么口什么舌什么四字成语(什么口什么舌的成语)(40个)

📅 06-27 👁️ 1984
点烟器怎么用,汽车点烟器怎么用
Bet—288365

点烟器怎么用,汽车点烟器怎么用

📅 07-02 👁️ 7845
DNF异界攻略,在哪?啥样?图咋打?装备咋得?气息咋处理?
神舟主板报价,神舟主板价格表
365官网国内怎么进

神舟主板报价,神舟主板价格表

📅 07-05 👁️ 5658
凯玫莎布艺床
365足球外围平台

凯玫莎布艺床

📅 07-05 👁️ 8856