在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 3318|回复: 7

[讨论] dc综合时为什么要编译两次?

[复制链接]
发表于 2021-11-22 11:06:10 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
请教前辈,dc综合时为什么要编译两次?
一次是基于RTL的,一个是基于netlist?二者主要是做什么优化,区别是?



发表于 2021-11-22 12:15:35 | 显示全部楼层
本帖最后由 xuwenbing 于 2021-11-22 12:32 编辑

一般是第一次综合产生netlist在后端生成floorplan,第二次再加入floorplan综合
 楼主| 发表于 2021-11-22 14:19:29 | 显示全部楼层
本帖最后由 xingyun666666 于 2021-11-22 14:31 编辑


xuwenbing 发表于 2021-11-22 12:15
一般是第一次综合产生netlist在后端生成floorplan,第二次再加入floorplan综合


前辈,我们现在是compile 1st和compile 2st,第二次是-inc,不吃后端的FP信息,就是做两次综合

发表于 2022-2-14 17:24:59 | 显示全部楼层
发表于 2022-2-27 12:08:21 | 显示全部楼层


xingyun666666 发表于 2021-11-22 14:19
前辈,我们现在是compile 1st和compile 2st,第二次是-inc,不吃后端的FP信息,就是做两次综合

...


第二次incr编译主要是用于在第一次test_ready的基础上做dft inserttion用的,插入DFT后,第一次编译后的netlist发生改变,所以需要第二次inc编译
发表于 2022-3-6 21:54:03 | 显示全部楼层
要看看两次综合的编译选项有什么区别,肯定有其特殊的目的。

比如我在大型项目中就碰到过一个问题,加了clock gating的后的生成的网表formal过不了,设计reivew了很多遍,没有问题。

最后采取的策略就是分两次综合,第一次对RTL进行综合不做clock gating。然后对第一次综合的网表再做一次带clock gating的综合。

分别对两次综合过程进行formal.
 楼主| 发表于 2022-3-7 10:44:30 | 显示全部楼层


cugjack 发表于 2022-3-6 21:54
要看看两次综合的编译选项有什么区别,肯定有其特殊的目的。

比如我在大型项目中就碰到过一个问题,加了cl ...


前辈,您说的综合时的gating优化是: compile_ultra -gate_clock吗?不太理解第一次综合和第二次综合做gating优化有什么区别,为什么会引起fm不过dcnxt_shell-topo> compile_ultra   -help
Usage: compile_ultra    # compile design
        [-gate_clock]          (optimize clock gating)
        [-no_seq_output_inversion]
                               (supress sequential output inversion)
        [-no_autoungroup]      (supress delay-based auto_ungroup)
        [-exact_map]           (sequential cells to be mapped exactly as indicated in HDL)
        [-no_boundary_optimization]
                               (do not run hierachical boundary optimization)
        [-area_high_effort_script]
                               (apply a compile strategy to improve area)
        [-timing_high_effort_script]
                               (apply a compile strategy to improve delay)
        [-retime]              (use the retiming optimization)
        [-incremental]         (perform only incremental changes)
        [-no_design_rule]      (don't fix design rules)
        [-only_design_rule]    (only fix design rules)
        [-top]                 (optimize the interface logic of the hierarchical sub-designs)
        [-congestion]          (Perform congestion optimization)
        [-spg]                 (Enable Synopsys Physical Guidance)
        [-check_only]          (check discrepancy of library and design)
        [-self_gating]         (Perform XOR Self Gating insertion)
        [-no_auto_layer_optimization]
                               (do not run layer optimization)
        [-scan]                (replace all sequential elements by scan equivalent)
       


发表于 2022-3-15 09:55:31 | 显示全部楼层


xingyun666666 发表于 2022-3-7 10:44
前辈,您说的综合时的gating优化是: compile_ultra  -gate_clock吗?不太理解第一次综合和第二次综合做g ...


第一次综合的时候不带clock gating这个选项。这一次只是单纯地做逻辑地映射和简单的优化。第二次综合带clock gating的选项,工具会在网表中基于逻辑加入clock gating.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-17 23:47 , Processed in 0.019618 second(s), 6 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表