微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 微电子和IC设计 > 微电子学习交流 > 数字外行问个综合的问题

数字外行问个综合的问题

时间:12-12 整理:3721RD 点击:
要做个作业,多位二进制数的除法、乘法能直接dc综合出门级网表吗?
Y=A*B
Y=A/B
这种行为级的能直接出门级吗?

乘法肯定没问题,当然位宽太大(>512)肯定时间很长,可能跑死机
除法小位宽的也没问题,大位宽的估计不行,面积延时都无法接受

谢谢,纯粹就是忽悠老师的作业,没有任何考虑性能面积等因素的内容。
除法8bit吧,应该没问题吧。
乘法如果能直接综合问题倒不大,移位相加以前写过,但除法现在就没概念了,懒得翻书,能直接综合最好。

8bit除法肯定没问题,直接1个组合逻辑出来了,面积延时估计都不大

Hi, the divide operation seems to refuse to work under my design, I put it in a case, like this :
        8'b0011 : s = b / a;
a and b is 8bit.
when DC compile it, it report error and show me this:
Error: Cannot find valid synthetic library module for operator 'div_UNS_OP'. (SYNDB-34)
0
the DC I used is verseion 2009.06(SP5), the  .lib file is provide by my teacher. Why DC refuse to do the divide operation? And how to slove it?
BTW the multiplier operation can be synthesis by DC
Thanks all! I need your help

库里没有除法器的元件,你的老师就没想让你这么做设计。

for循环那段显然是C语言的风格,写电路不能这么写,综合估计不过
你想实现除法的话,如果纯组合逻辑的话,位宽小的直接用/即可,位宽大的可以用阵列除法器,如果带时钟的,就用最普通的恢复余数的方法或者不恢复余数的方法实现吧
当然,dw有现成的单元,如果你dc对dw的支持比较全的话

谢谢指导,这代码是可以综合的,刚在linux下综合好,for循环那段我设定了固定循环次数,所以不是那种无限循环不可综合的for语句了。我用过直接/表达行为级,dc直接把我拒了。
我知道这么做除法很愚蠢的,但也就为了作业,不想搞成几个模块,仿来访去,不想花太多时间在上面。
BTW,dw是啥?

你那个除法不能综合应该是综合库没有设好的原因
在.synopsys_dc.setup里面加上
set synthetic_library { dw_foundation.sldb}
当然在你的tcl脚本里面加也行

thanks, I am able to direct synthesis divider operation according to your instruction. (set synthetic_library [list /tools/synopsys/C-2009.06-SP5/libraries/syn/dw_foundation.sldb ])
another question, I run command report_design_lib on dc_shell-t as the attachment file log. It report some error when include some libs and all this lib contains a mark "n" which indicates that,  n --- Can't find the source for this file.
why? Is this problem serious or just neglect them ?

 log_lib.txt

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

网站地图

Top