在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 9758|回复: 12

[原创] 求帮助 FPGA 四输入和六输入查表法的性能

[复制链接]
发表于 2013-9-28 14:56:28 | 显示全部楼层 |阅读模式
20资产
有一道笔试题: 现在主流的FPGA器件采用4输入或者6输入查表法来实现逻辑电路,在同样的组合逻辑电路中,试问采用几输入查表法能获得更好的性能,原因是?

最佳答案

查看完整内容

我的答案是:当组合逻辑输入为1~4个时,LUT4和LUT6一样快(但LUT6浪费面积);当组合逻辑输入为5~6个时,LUT6比LUT4快;当组合逻辑输入为7~8个时, LUT4和LUT6一样快(但LUT6浪费面积);当组合逻辑输入为9个以上时, LUT6比LUT4快。 从上面可以看出选择几输入LUT所面对的Trade-Off。值得注意的是LUT6工作在LUT4下速度不会比LUT4慢,请看LUT4的表达式: 在这里,datad到输出的路径最快,dataa到输出最慢;而在LUT6下,则dataf ...
发表于 2013-9-28 14:56:29 | 显示全部楼层
我的答案是:当组合逻辑输入为1~4个时,LUT4和LUT6一样快(但LUT6浪费面积);当组合逻辑输入为5~6个时,LUT6比LUT4快;当组合逻辑输入为7~8个时, LUT4和LUT6一样快(但LUT6浪费面积);当组合逻辑输入为9个以上时,  LUT6比LUT4快。


从上面可以看出选择几输入LUT所面对的Trade-Off。值得注意的是LUT6工作在LUT4下速度不会比LUT4慢,请看LUT4的表达式:




  1.     lut4 = datad ? ( datac ? ( datab ? ( dataa ? mask[15] : mask[14])
  2.                                      : ( dataa ? mask[13] : mask[12]))
  3.                            : ( datab ? ( dataa ? mask[11] : mask[10])
  4.                                      : ( dataa ? mask[ 9] : mask[ 8])))
  5.                  : ( datac ? ( datab ? ( dataa ? mask[ 7] : mask[ 6])
  6.                                      : ( dataa ? mask[ 5] : mask[ 4]))
  7.                            : ( datab ? ( dataa ? mask[ 3] : mask[ 2])
  8.                                      : ( dataa ? mask[ 1] : mask[ 0])));


复制代码

在这里,datad到输出的路径最快,dataa到输出最慢;而在LUT6下,则dataf到输出最快,dataa到输出最慢;而LUT6中dataf/e/d/c和LUT4中datad/c/b/a到输出的速度是一样的。
发表于 2013-9-28 15:13:26 | 显示全部楼层
六输入比四输入性能更好。例如:y是1bit信号,赋值语句 assign y = &x[5:0] ; 如用六输入实现只需要1个查找表,四输入需要2个查找表,所以六输入比四输入节省资源,性能更好。
发表于 2013-9-28 16:01:04 | 显示全部楼层



按你这么说,8输入比6输入好,10输入比8输入好。。。厂商怎么不做成32输入,性能顶呱呱啊,32位运算也很常见啊
 楼主| 发表于 2013-9-28 18:30:12 | 显示全部楼层
回复 3# zhanghengi

您好谢谢您的指点,我再问一下 怎么看的 4输入需要2个查找表,六输入需要一个查找表,查找表应该是就是个RAM 对吧
发表于 2013-9-28 21:12:13 | 显示全部楼层


回复  zhanghengi

您好谢谢您的指点,我再问一下 怎么看的 4输入需要2个查找表,六输入需要一个查找表, ...
飞翔的鱼儿 发表于 2013-9-28 18:30


mask是RAM,上电配置完后不再变化(相当于ROM)
发表于 2013-9-29 07:25:37 | 显示全部楼层
回复 2# Timme
为什么7-8,lut4会快,一个lut5的实现需要两个lut4。想错了吧。
我的观点是在同一款芯片中小于4的用4,大于4的用6,这样性能会最佳。
因为在纯组合逻辑时,面积也会影响速度。
发表于 2013-9-29 14:39:37 | 显示全部楼层
回复 4# Timme
浪费,你懂吗,如果输入都是大于32的那么,设计成32性能肯定要比,其他的好。
而且查找表的输入没增加1位,资源接近与翻倍。
当组合逻辑输入为1~4个时,LUT4和LUT6一样快(但LUT6浪费面积);当组合逻辑输入为5~6个时,LUT6比LUT4快;当组合逻辑输入为7~8个时, LUT4和LUT6一样快(但LUT6浪费面积);当组合逻辑输入为9个以上时,  LUT6比LUT4快。
你的红色部分的结论从何处得出。
一个7输入LUT需要几个4输入LUT来实现你懂吗?
发表于 2013-9-30 17:12:46 | 显示全部楼层
如果仅仅考虑输入端的数量而忽略输出端的数量,是不妥的
如果输入端是4,输出端是2,那么不论是4输入查找表还是6输入,都是需要两个的;
毕竟一个LUT的输出端只有一个,其实不论怎么使用,输入端所构成的逻辑总是输出端的很多倍
至于速度,LUT是基于RAM结构的,既然是RAM结构,何来楼主所说的优先级呢?不存在查表的先后吧
发表于 2013-10-8 09:14:40 | 显示全部楼层
选定好了一个FPGA芯片,它的LUT不就确定了么?大体上感觉用LUT6的比LUT4的性能好些也……
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条


小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-25 23:07 , Processed in 0.025339 second(s), 9 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表