FPGA中的LUT有什么作用

电子说

1.3w人已加入

描述

首先开门见山的回答这个问题——LUT的作用是 实现所有的逻辑函数 ,也就是类似于计算Y=A&B+C+D之类的算式结果!

LUT是什么构成的?

xilinx的LUT是4输入1输出的 RAM ,也就是4根地址线的,一根数据线的RAM,并且I1是高地址位,I4是低地址位,样子参考下图。I1到I4就是地址线,O是输出数据线。

Xilinx

RAM怎么实现逻辑运算?

假设要实现运算Y=A&B+C+D。假设I1代表A,I2代表B,I3代表C,I4代表D,O代表Y。此时将下表存入LUT中。从下表可以看出,LUT存储的就是函数Y=A&B+C+D的真值表。 **4个输入信号的地址对应的位置上存储的就是4个地址进行逻辑运算后的真值!** 这样任何4输入的所有逻辑运算都可以通过存取真值表的方法实现。一旦输入地址中的任何一个数,立马就会输出存储位置上对应的结果。

地址(I[4:0]) 存储值(I1&I2+I3+I4的运算结果)
0000 0
0001 1
0010 1
0011 1
0100 0
0101 1
0110 1
0111 1
1000 0
1001 1
1010 1
1011 1
1100 1
1101 1
1110 1
1111 1

verilog怎么实现上面的函数呢?

reg Y;

reg [3:0] I ;

always@(*)begin Y=(I[0] & I1) | I2 | I3;end

请注意( )里面是 ,代表不需要时钟,实现的是组合逻辑。如果最后一行变成如下:

always@(posedge clk)begin Y=(I[0] & I1) | I2 | I3;end

则生成的不是一个LUT是一个LUT加一个触发器FF。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分