微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 调用IP核与直接使用运算符(+,-,*,/)的区别

调用IP核与直接使用运算符(+,-,*,/)的区别

时间:10-02 整理:3721RD 点击:
在编写代码的时候对常规运算(+,-,*,/)直接使用操作符和调用IP核有什么区别啊?除了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

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top