初识FPGA CLB之LUT实现逻辑函数

一、概述
lut中文名字叫查找表。以7系列的fpga为例,每一个slice里面有四个lut。fpga就是通过lut实现大量的组合逻辑,以及slicem里面的lut还可以构成ram,shift register,以及multiplexers。这篇文章我们一起来学习lut如何构成组合逻辑。
二、lut实现原理
lut,中文名字叫做查找表,其原理其实也就是一个一个查找表,根据输入去找到相应位置的信号,然后做输出。说白了就好像一个小容量的rom,把输入当作地址信号,对lut里面预存的内容进行寻址。
7系列的fpga的lut有6个输入端口(a1-6),然后有两个输出端口(o5,o6)。下图是slicel里面的lut。
其可以实现6输入的布尔组合逻辑函数,输入信号为a1,a2,a3,a4,a5,a6,输出端口为o6。如下
o6=f(a1,a2,a3,a4,a5,a6)
其实现方式就是将输入(a1,a2...a6)对应的输出在lut里面预存好(这一步在我们用bit文件配置fpga时实现),然后把输入信号当作地址信号去把对应的输出信号调出来。
同样其还可以构成两个5输入的布尔组合逻辑函数,其中这两个函数共用5个输入信号(a1,a2,a3,a4,a5),a6被拉高,o5,o6分别是两个布尔逻辑的输出。
o5=f(a1,a2,a3,a4,a5)
o6=f(a1,a2,a3,a4,a5)
故这也相当于实现的是一个5输入2输出的逻辑函数。
[o5,o6]=f(a1,a2,a3,a4,a5)
三、总结与提升
总结一下,就好比单个lut里面可以预存 2^6=64个结果。那么单个lut可以实现
(1)输入信号最多为6bit,输出信号为1bit的的布尔逻辑函数;
(2)输入信号最多为5bit,输出信号为2bit的逻辑。
一个slice里面有四个lut故最多可以预存的输出信号个数为 2^6*4=2^8。
因此在一个slice里面,借助选择器将多个lut进行互连,可以实现输入数,输出数最多为如下所示的逻辑。
(1)2个lut通过互连可以构成7bit输入,单bit输出的逻辑。实现方式为两个lut的输入信号a1,a2,a3,a4,a5,a6接到一起,输出信号经过选择器选择输出,选择器的选择信号也是逻辑函数的一个输入信号。
将逻辑函数的输出送到storage element便可以形成同步时序逻辑。
(2)4个lut通过互连可以构成8bit输入,单bit输出的逻辑。实现方式大家可以根据上面的实现方式自行推理。
(3)2个lut通过互连可以构成6bit输入,2bit输出的逻辑。实现方式自行推理。
(4)4个lut通过互连可以构成7bit输入,2bit输出的逻辑。实现方式自行推理。
超过8输入的布尔逻辑就需要多个slice来实现。


清华大学首次实现具有亚1纳米栅极长度的晶体管
全音域空间音频技术打造“360°强劲立体声场”,览邦让科技更无界
RFID技术在远程监控系统中的应用
土壤肥料养分速测仪的测试项目
4K电视普及浪潮来袭 推动4K生态系统发展
初识FPGA CLB之LUT实现逻辑函数
简易磁感应线圈磁性检测装置
塑料、金属与木质音箱比较
“厚道”的孙宏斌自评,帮助贾跃亭是性情使然?
用增强并口EPP协议扩展计算机的ISA接口
运动耳机哪个牌子好性价比高,十大跑步运动耳机品牌排行榜
AMD全新锐龙8000G系列参数介绍
安防应用场景的进一步拓展 将推动5G+安防融合应用走向新高度
8芯网线的排列方式有哪些
工信部:电子信息行业复岗率达到95% 红外温度传感器日交付量提升
【IoT毕业设计】STM32开发板+机智云IoT+智能楼宇照明灯控
对于只有一个输出端的时钟信号线,如何实现差分布线?
MAX31725超精确的温度传感器(±0.5°C)
BOE京东方供货荣耀Magic4系列 定义柔性显示新标准
2022年对手机行业具有影响力的新技术介绍