一直不理解说FPGA中是通过查找表LUT来实现逻辑功能,这不同于像CPLD这种的器件,是通过通断连线来组成想要的功能的,后来搜了下资料,似乎有点明白了,也理解了之前查询资料有人说,实际上LUT就是一个数据库这个表述的意思了。
例如这个图,你会发现是一个组合逻辑电路,实现的功能暂且不管,一定是类似于F=ABCD这样的逻辑功能,那么这种功能如何使用FPGA实现,只需要把ABCD从0000到1111代入到表达式时F的值输入到上图的整个器件的输入中去即可,那么我们现在知道了,左侧的0000001000100010就是ABCD取0000到1111时F的输出值,这时候LUT是怎么通过我们输入的具体的ABCD值比如1010来确定最终的输出的呢,实际上关键在于上图中的很多个多路选择器上,当多路选择器从右往左依次我们给到的输入为1010的时候,我们会发现,数据会沿着图中红线的路径跑到输出端,而相应的数据1就是当ABCD取值为1010的输出,只不过此时通过对多路选择器的配置把这个值取出来传递到了输出端而已,通过对四个多路选择器的配置,我们将早些时候就已经计算出来的ABCD取0000到1111时候的所有输出都送进去,然后按需查找并输出,这就是查找表的内涵所在。