教你使用ISE/ Viavado查看FPGA的LUT是怎么实现逻辑功能


转自:21IC 赛灵思 FPGA世界  作者:金猴

声明:本教程为Goldsunmonkey为庆祝Xilinx论坛成立一周年来与大家分享一些东西的系列。
为Xilinx和Xilinx论坛发展贡献自己的一点力量。可以供大家(除商业意图以外)随意下载使用交流。
如果使用为了商业意图,请联系作者。
这个问题很简单,写完后不希望大家责怪我说这个也太简单了,我也是偶尔发现,解决了我对如何
使用LUT进行逻辑设计的困惑。希望对有用的人有用

[color] 第一步 打开一个ISE工程,随便哪一个有HDL组成的都可以,我打开的如下:
2011-10-05_162257.jpg
下载 (408.24 KB)
4 天前 16:07

                          第二步 进行综合,修改自己的错误。综合成功。
                          第三步,在区域2中点击区域3的选项运行,一定不要选择区域3上面的那个选项,出现如下界面:在不熟悉的条件下,请选用默认的选项。
                           2011-10-05_162257.jpg
下载 (64.72 KB)
4 天前 16:12

将出现如下图的顶层图:
                           2011-10-05_162257.jpg
下载 (48.57 KB)
4 天前 16:15

双击后进入,一直看到自己所有 模块都在里面。
2011-10-05_162257.jpg
下载 (80.78 KB)
4 天前 16:17

不停双击,直到最底层,只能是LUT和 寄存器为止,我的是如此:
2011-10-05_162257.jpg
下载 (81.94 KB)
4 天前 16:18

双击上面显示的LUT,跳出对话框。
2011-10-05_162257.jpg
下载 (35.09 KB)
4 天前 16:21


上面的为显示原理图部分。
依次为等式,真值表,卡纳夫表,就不一一列出了。
2011-10-05_162257.jpg



在Vivado中也类似:

打开Synthesis Design,鼠标单击要查看的LUT上,如下图所示:

然后查看左下角的Cell Properties的Truth table,如下图所示:

可见,此LUT的逻辑表达式就是output = I0 & !I1 & I2 & !I3 & !I4;

下载 (50.81 KB)
4 天前 16:25


  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
作为赛灵思的现场工程师,我常常问这样的问题:我们是否能够提供一款其功能可满足客户所有独特设计要求的DSP内核。有时候内核会太大,太小或者不够快。有时,我们会开发一款能确切满足客户需求的内核,并迅速以COREGeneratorTM商标推出。不过即便在这种情况下,客户仍然想要一套特定的DSP功能,而且刻不容缓。在这些情况下,我常常建议他们使用我们器件中的插值查找表来定制他们的DSP功能。   查找表(LUT)实质上是一个存储元件,能够根据任何给定的输入状态组合,“查找”输出,以确保每个输入都有确切的输出。采用LUT实现DSP功能具有一些重大优势:   您可用诸如MATLAB:registered:或Simulink:registered:等高抽象层编程语言改变LUT内容。   您可以设计一项DSP功能来运行那些采用离散逻辑运算将极度困难的数学函数,比如y=log(x)、y=exp(x)、y=1/x、y=sin(x)等。   LUT还可轻松执行在可配置逻辑块(CLB)芯片,以及嵌入式乘法单元或DSP48可编程乘法累加(MAC)单元方面可能要求过多FPGA资源的复杂数学函数。   不过,以这种方式使用LUT当然也会存在一些弊端。当您使用LUT实现DSP功能时,您必须使用块RAM(BRAM)元件。若执行函数y=sqrt(x)(其中x表示16位输入,y表示18位输出),每个变量则需要约64个18KBBRAM单元。如果,比如说,您的目标是实现小型化Spartan:registered:器件,或者您有太多的运算需要执行,无法为每个变量省出64个BRAM单元,建议您放弃这种需要如此大量BRAM单元的方法,从系统架构的角度来看,这种方法代价太大。
FPGA中,实现逻辑的基本单元是查找表(LUT)而非基本门电路。目前的FPGA中,单一LE或者Cell通常能实现至少4输入查找表的逻辑功能。   4输入查找表可以看成是具有4位地址1位数据的存储器,能够存储16bit数据,这也是LUT能被用于组建分布式RAM的原因。   如果要构成一个6输入1输出MUX,可以通过两片4输入查找表级联,也可直接用一片完整的6输入查找表,两片4输入的查找表的存储容量是32,而一片完整的6输入查找表的存储容量是64;若使用6输入查找表(存储容量为64)实现4输入(存储容量为16)的逻辑功能,则浪费了75%的存储容量。也就是说,采用较少输入的查找表实现较多输入查找表的功能,在面积上有更高的利用率。   但是并非只需要考虑面积利用率,还应考虑到时序和布线问题,按照输入越少面积利用率越高的说法,岂不是2输入查找表更具有优势?但是各个FPGA厂商都不提供2输入查找表,因为如果FPGA都以2输入查找表为基本逻辑单元,那么实际应用中,几乎所有的逻辑都需要查找表级联实现,但是FPGA中的布线资源并不足以支撑这样的设计,同时,这样的设计也将导致时序问题。   因此,使用多少输入作为基本的查找表是一个重要的问题,目前在一般的FPGA中,为了平衡查找表扩展和面积使用率,4输入查找表受到广泛应用;在复杂的FPGA中,可能采用混合查找表,比如同时使用3输入和4输入。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值