最佳答案
//------为什么有些乘法运算没有使用MULT16X16,而是使用slice,lut资源来实现
FPGA的Synthesis和Impl对于资源的占用需要在代码或者约束文件中指定使用MULT16X16才行,否则它会依据你选择的策略(包括默认策略)自动选择合适的资源。
对于你的乘法运算,可以考虑选用资源更多的其他FPGA芯片,或者使用IP(Multiplier)。亦或者,通过原语指定使用乘法器资源(这点我不太了解如何指定)。
//------仿真
仿真占用的资源只能当作一个理论参考,对于实际综合或者布局布线的结果不具备决定意义。换句话说,仿真占用的资源,看看就行。
//------为什么有些乘法运算没有使用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。
-