(1)综合的注意事项
Q1.1 需要fix hold吗?
不需要,hold交由后端去做就好了。
所以综合时,不需要读入min.lib,不用设wc_bc等复杂的选项
Q1.2 综合出来的网表如何验证?
如RTL做形式验证
gate-sim (网表仿真)。不要用延迟。
不需要从DC输出SDF,因为那个根本不准,而且它也无法保证没有hold违反
Q1.3 如何让DC自动插入clock gating
在脚本中加入
set power_cg_always_enable_registers true
set_max_leakage_power 0.0
set_max_dynamic_power 0.0
set_clock_gating_style (指定ICG)
insert_clock_gating
replace_clock_gates
Q1.4 综合时要检查哪些项目?
最最起码要做,
综合前,check_design,check_timing,保证所有的path都有约束(含timing exception)
综合后,report_timing, report_constraint,report_area,report_power,report_qor
Q1.5 如何解决综合后setup的违法?
多综合几遍
检查约束是否合理
最后只好改RTL了
Q1.6 如何判断约束是否合理?
什么是合理的约束还真不好说,但是下面是一些不合理的情况,遇到了一定得解决
2#楼里面所列约束项目不完整的
startpoint或endpoint的clock cycle特别大的,说明那是异步时钟
某个cell或net延迟很大的,可能是clock net当作signal用了,设了dont_touch
Q1.7 如何得到更好的网表?
对于DC,一般人们都喜欢把clock period调小一点(10~25%),那样DC会给你个timing比较好的网表,但是代价的面积的增大和功耗的增加。当然,你调clock uncertainty也有同样的效果
网友评论