|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
本帖最后由 phuang 于 2010-6-24 19:22 编辑
大家好!向坛子中用过Synopsys UPF的大侠求助有关retention单元映射相关的问题。
最近跑了个Synopsys的低功耗lab,设计很简单,由一个加法器,和一个乘法器组成,mult_out = (add_in0+add_in1)*(add_in0+add_in1),加法的结果送给乘法器运算后输出。我计划关断加法器,并利用retention单元保留其值。
实验结果让我费解:
1)在采用retention单元的情况下,综合将加法结果视为常数而直接将其去掉,如下所示,摘自生产的log文件,请问什么情况下才会将综合结果视为常数而舍弃呢?
Beginning Mapping Optimizations (Ultra High effort)
-------------------------------
Information: Added key list 'DesignWare' to design 'ADD'. (DDB-72)
Information: Added key list 'DesignWare' to design 'MULT'. (DDB-72)
Information: The register 'I_ADD/add_out_reg[0]' is a constant and will be removed. (OPT-1206)
Information: The register 'I_ADD/add_out_reg[1]' is a constant and will be removed. (OPT-1206)
2)当不使用retention单元,即屏蔽掉UPF文件中的set_retention, set_retention_control, map_retention_cell语句时,综合的结果貌似是正确的。
3)当仅仅屏蔽掉map_retention_cell命令时,结果同2),仅仅以warning告知没有使用retention策略。
4)map_retention_cell命令map到一个未知的单元时,结果同3)
请教:
1)出现这种情况可能的缘由是什么?为什么DC会将加法器的输出综合为一个常数呢?
2)怎么解决这个问题?
3(可能是库的问题么?我自己根据library compiler user guide写了一个仅仅有retention cell的库,加载到target_library中仍然没有解决问题,头都大了!!!!
我将源代码,脚本和相关图片都放在附件中,附件中有一个pdf (UPF confusion - retention cell mapping.pdf)文档时整个问题的陈述,请大侠指教,不甚感激!
phuang
UPF confusion – rentention cells mapping.pdf
(165.91 KB, 下载次数: 192 )
scripts with retention.rar
(9.41 KB, 下载次数: 132 )
scripts without retention.rar
(15.17 KB, 下载次数: 91 )
|
|