ASIC设计中的乘法除法器问题
时间:10-02
整理:3721RD
点击:
写FPGA code的时候直接用 * ,/就可以综合,当然面积性能可能就不是很优。
想请教下,在ASIC中我看有些公司好像都自己设计或者调用DC或RC中的DsignWare,是不是直接写* ,/不能综合还是性价比太低。
而且在ASIC中好像很少看到一个运算比较长的组合逻辑写在一个表达式里,都分解成一步一步的,而且位宽都刚刚好,再者有符号数相加减也得自己写。难道现在综合器还不能很好的支持以上这些做法吗?
以前就这个问题请教过一个资深工程师,她说最好所有的logic按照原始的运算来操作,比如减法:补码相加而不直接用减。我在想是不是当年综合器不够强大所以那些老工程师都这样做,久而久之也就习惯了,工具进化了,习惯任然没有改。
望各位大牛不吝赐教。
想请教下,在ASIC中我看有些公司好像都自己设计或者调用DC或RC中的DsignWare,是不是直接写* ,/不能综合还是性价比太低。
而且在ASIC中好像很少看到一个运算比较长的组合逻辑写在一个表达式里,都分解成一步一步的,而且位宽都刚刚好,再者有符号数相加减也得自己写。难道现在综合器还不能很好的支持以上这些做法吗?
以前就这个问题请教过一个资深工程师,她说最好所有的logic按照原始的运算来操作,比如减法:补码相加而不直接用减。我在想是不是当年综合器不够强大所以那些老工程师都这样做,久而久之也就习惯了,工具进化了,习惯任然没有改。
望各位大牛不吝赐教。
请大侠解释。
就这样沉了啊,顶起来
答案是肯定的。asic里面也可以直接用*,/。只是有别的考虑,比如timing,area等。至于你提到的后面的问题,几句话说不清楚。你可以搜一下,有人讲这个的
用DC综合的时候可以直接写*,我专门对乘法器综合出来的网表验证过,功能没有问题;
对有符号数的运算,我还是手动操作符号位;
我有过类似的困惑,最后不了了之了,希望各路大神详细解释
写*没有任何问题,除非你对data path设计很精通,并且非常了解DW。绝大多数情况下,直接例化dw并不比高级的*,+更省面积或者更快,甚至可能更差。
举个例子:a*b+c,如果你直接例化普通的乘法器会比直接写a*b+c多一个全加器。
我想ASIC的要求和FPGA应用在这方面区别比较大吧
工业产品的设计中,对面积极敏感的。直接写*,就是性能最一般的乘法器。这样的设计,要工程师何用?
一般情况下都可以直接用,特殊情况下就要特殊处理
我也很纠结除法的问题,关注中
请了解DC综合工具使用的库单元算法就清楚了,直接综合*/法得到的基本使用最简单的算法实现的。如果你要高质量的设计的话请多阅读相关论文,比如国防科大和西工大!
顶顶顶顶
学习学习
