调用IP核与直接使用运算符(+,-,*,/)的区别
直接使用操作符是否也会调用IP核,还是只是综合生成一个常规的逻辑电路。
望大神给予指点啊...
+—用代码写, */用IP核。延迟一般比较大。
直接写和掉用IP核的效果一样吗?
我觉得,IP就是在性能方面得到优化了的算法实现,比起直接写+,-,*,/应该优化的多。
IP应该还可以选择几级流水线啊、面积最优还是速度最优等这些。
尤其,比如FPGA,*,/算法,IP应该是调用专门的DSP算法模块实现功能的。
这个我知道,我想问的是直接调使用操作符的话,它是一个什么样的实现过程...
在DC的memory中,设计map时有一步就是将运算符优化,用库里的IP代替的,因为这个属性常开的。
如果非要讲有啥好处,延时是一方面,另外这也是工具厂商的优化所在,比如为什么多用DC,不是RC?
不太一样,自己写可以调整流水线或者优化,
直接用*/只能约束multicycle了。
综合器见到+ - * / 操作符之后,到库里去map各种IP,找到一个最适合的designware后映射到网表中,然后基于这个网表做逻辑优化,包括timing/power,
我记得coding style的文档中有个要求,尽量实例化design ware,其基本过程是找到designware的列表及文档,研究哪个在gatecont/power,timing方面最适合你,然后在rtl中采用。
如果是小尺寸的运算,可以考虑直接写操作符,如果是大尺寸尤其 * /运算,最好不要直接用操作符,毕竟综合器的mapping及优化过程不完全可控。
所谓design based on spec, not based on tool.
恩,又长见识了,谢谢啊
可以直接调用/吗,*是通常FPGA内部本身有乘法器模块吧
如果是FPGA的话,直接写是不能调用IP的;DC可以调用DW
