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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 951|回复: 4

[原创] 基于Xilinx FPGA的逻辑设计,工具有时候似乎不是那么靠谱

[复制链接]
发表于 2023-5-12 22:22:21 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
本帖最后由 innovation 于 2023-5-12 22:35 编辑

近日在一个基于Xilinx FPGA的I2C主控制器逻辑设计中,被Xilinx的工具折腾郁闷了,记录下来,供感兴趣的朋友参考。PS:仅为试验参考。。。


在我的设计中,有这样一段代码:

                               
登录/注册后可看大图


这个SCL_lut共计10个逻辑变量输入,其中FSM1_IsIdle、FSM1_IsARB、FSM1_IsStop、FSM1_IsHold为“独热”状态机的状态输出,BitClk、BitClk_180为系统时钟单周期脉冲信号,不同时有效 。10个逻辑变量,我的心理预期在2~3个LUTs,2个逻辑层级,但是ISE 14.7 + Spartan-6的综合结果,实在让我意外,如下图:
I2C_SCL_lut_code_1_2_ISE.PNG

ISE这是抽什么疯,居然消耗了4x LUT6 + 1x LUT5 + 1x LUT3,共计6个LUTs来实现我一个10输入的逻辑表达式?最不能忍的是,居然要3个逻辑层级(Logic levels)。咋办?换个工具试一下咯,然后用Vivado 2019.2 + Artix-7试了一下,结果如下图:
I2C_SCL_lut_code_1.PNG

Vivado 2019.2使用了2x LUT6 + 2x LUT5 + 1x LUT4 + 1x LUT3,共计6个LUTs,且其中LUT4、LUT3分别输出至其它逻辑电路 ,逻辑层级降为了2,但我还是不满意!

eetop居然限制了帖子的大小?没发完,只有后面发了


 楼主| 发表于 2023-5-12 23:06:52 | 显示全部楼层
这段代码,ISE(14.7)和Vivado(2019.2)都使用了6个LUTs,分别需要占用32、29条布线资源,但我只有10个输入呀,总觉得哪里有问题,咋办?看来只有改代码了,考虑到FSM1_IsIdle = '1'时,SCL_lut <= '1',其它逻辑分支无效,故其它逻辑分支中的not FSM1_IsIdle是可以去掉的,于是,我把代码改成了这样(当然,改的时候也没报啥希望):


                               
登录/注册后可看大图


修改后,ISE 14.7的综合结果没有改变。Vivado 2019.2的综合结果变为了这个样子:
I2C_SCL_lut_code_2.PNG

这一次Vivado 2019.2使用1x LUT6 + 3x LUT5 + 1x LUT3来实现我这个10输入的表达式,相比前一个代码,减少了1个LUT的消耗,布线资源由29条降低为24条,有所改善,但似乎还是不够啊!
 楼主| 发表于 2023-5-13 12:40:29 | 显示全部楼层
没办法了,只有对着我原来的代码,仔细地数一个、又一个、再一个逻辑分支的输入数量,然后把代码改成了这样:


                               
登录/注册后可看大图


改完后综合,ISE 14.7的结果如下图:
I2C_SCL_lut_code_3_ISE.PNG

Vivado 2019.2的综合结果:
I2C_SCL_lut_code_3.PNG


看着这个结果,我默默地喝了口水(其实是抽了颗烟,但抽烟不提倡呀)(。。的,太欺负人了,逻辑设计这样干,就不是人干的活儿了!!!)

看到这里,似乎感觉Vivado的逻辑综合效果比ISE要好一些,但不知道什么时候二者都会抽风,咋个看它们的综合结果都不顺眼。。。

各位别急,这个故事还有续集。。。

 楼主| 发表于 2023-5-13 15:21:45 | 显示全部楼层
好吧,被劝退了,发不动了


                               
登录/注册后可看大图

发表于 2023-5-15 09:01:47 | 显示全部楼层
楼主有试过用其他的综合工具吗?比如synplify之类的,这是所有的综合工具的通病还是仅仅是xilinx不够智能
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

×

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

GMT+8, 2024-5-1 20:48 , Processed in 0.097705 second(s), 8 queries , Gzip On, Redis On.

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