微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > ise综合后,LUT中的输入顺序和真值表有问题,请各位帮忙看一下!

ise综合后,LUT中的输入顺序和真值表有问题,请各位帮忙看一下!

时间:10-02 整理:3721RD 点击:
刚刚开始学习verilog HDL,试着编写了几个小的程序,其中想要实现四个四入一出的LUT的小程序让我产生了很大的困惑,代码如下:

  1. module BasicLut(a,b,c,d,out1,out2,out3,out4);

  2. input a,b,c,d;
  3. output out1,out2,out3,out4;
  4. wire a,b,c,d;
  5. wire out1,out2,out3,out4;

  6. assign out1 = (a & ~d) | (~b & c & ~d) | (~a & ~c & d) | (~a & b & d);
  7. assign out2 = (a & ~b) | (~a & b & d) | (c & d);
  8. assign out3 = (~b & c) | (b & ~c & d) | (a & ~b & ~d) | (a & b & ~c);
  9. assign out4 = (b & d) | (b & c) | (~a & c & ~d) | (a & c & d);

  10. endmodule

复制代码





问题如下:
1、这张图左侧有四个输入,如何让它们按照abcd的顺序排布,而不是现在的bcda?
2、即便左侧的顺序不重要,但是我打开的第一个LUT的公式,因为我的理想是a对应I0,b对应I1,c对应I2,d对应I3,但是实际上第一个LUT中的顺序是a对应I0,d对应I1,c对应I2,b对应I3,所以按照这个公式计算出来的真值表和我想要的完全不一样。而其他三个LUT的顺序也是不正确的,并且和第一个中的adcb也是不同。我想请问,如何规定好abcd与I0I1I2I3之间的对应关系,使得我想要的真值表可以实现出来?
谢谢各位!

顶一下

不懂,关注。

顶一下~

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top