FPGA|CPLD|ASICwilliam hill官网
直播中

cmkcmk

4年用户 14经验值
擅长:可编程逻辑 嵌入式技术 EDA/IC设计
私信 关注
[问答]

ISE进行工程综合时出现资源使用过多的问题

在使用ISE综合工程时(芯片为XC3S200AN),为什么有些乘法运算没有使用MULT16X16,而是使用slice,lut资源来实现使得资源占用较多,图中svpwm部分和eemf均使用了较多的乘法运算,但是SVPWM部分没有MAP_MULT18X18应用,我单独进行了SVPWM的仿真,其使用了MAP_MULT18X18,使得占用资源少了很多,请问有大佬知道这是为什么吗?或者说为什么会产生这种综合的差异呢?
image.png
image.png

回帖(1)

卿小小_9e6

2023-5-31 14:17:41

最佳答案

//------为什么有些乘法运算没有使用MULT16X16,而是使用slice,lut资源来实现
FPGA的Synthesis和Impl对于资源的占用需要在代码或者约束文件中指定使用MULT16X16才行,否则它会依据你选择的策略(包括默认策略)自动选择合适的资源。
对于你的乘法运算,可以考虑选用资源更多的其他FPGA芯片,或者使用IP(Multiplier)。亦或者,通过原语指定使用乘法器资源(这点我不太了解如何指定)。
//------仿真
仿真占用的资源只能当作一个理论参考,对于实际综合或者布局布线的结果不具备决定意义。换句话说,仿真占用的资源,看看就行。
5 举报
  • cmkcmk: 您好,请问如果资源占用较多,超过了芯片的资源总数,导致map处报错,请问有哪些方式可以减小资源的使用呢?
  • 卿小小_9e6 回复 cmkcmk: 改算法,先减少资源占用。例如减少generate或者for循环等。或者算法分段验证。


    你的算法貌似在低端FPGA(资源少)上实现,条件允许的话换中高端的FPGA验证,没问题后再迁移回来。
  • cmkcmk 回复 卿小小_9e6: 芯片采用的是XC3S200AN,程序里倒是只有简单的乘法操作和状态跳转的操作(其他的就是赋值),没有复杂的语句,每执行一条语句便进行一次跳转到下一步。请问这种有哪些可能的改进空间呢?
  • 卿小小_9e6 回复 cmkcmk: 基本没太大的优化空间,算法可以尝试流水处理。
    感觉就是将乘法部分改为使用乘法器,你需要改代码或者约束,或者直接使用multiplier。
  • cmkcmk 回复 卿小小_9e6: 哦好的,谢谢啦

更多回帖

发帖
×
20
完善资料,
赚取积分