Xilinx中原语LUT的介绍及使用
- LUT与always
- LUT的用法
LUT与always
lut与always@(*)的作用是没有区别的,只是在写法上有些区别,如下电路图所示分别为lut(u_lut)与always(u_tirgger)综合后的电路。
LUT的用法
在原语中有LUT1~LUT6的选择,用法都是一样的,这里选择LUT3实现三输入的异或程序进行详解。
如果使用always语句,我们只需要知道在verilog中的异或符号为^即可
always @( * )
begin
tir1 <= a^b^c ;
end
在Xilinx官方手册中是这样描述LUT3结构和使用的:
结构图
知道输入输出方向后要使用LUT实现三输入异或程序时,首先要知道真值结果,如下所示:
在vivado2018.3中点击Language Templates后选择LUT3
将该原语复制到自己的代码中去
在.INIT(8’h00)的位置输入真值表的结果,如上图真值表中Output一列结果为01101001,写在原语中需要依次调换顺序即为[10010110],再更改为十六进制表达为:8’h96即可实现所需要的运算结果啦
以上仅为个人学习理解所得,若有不对的地方还请各位大佬轻点喷。