
相关阅读SDC命令详解https://blog.csdn.net/weixin_45791458/category_12931432.html?spm1001.2014.3001.5482remove_sdc命令用于移除当前设计中设置的所有SDC约束其实它并不是一个SDC命令归为此类只是为了方便管理。本文针对Design Compiler但该命令同样存在于PrimeTime、IC Compiler等工具中它们大致相同略有差别。在使用remove_sdc命令时有三点需要注意1、remove_sdc命令不会移除UPF约束要想移除UPF约束需要使用remove_upf命令。2、remove_sdc命令只会移除那些用户定义的约束而无法移除默认约束。例如对于Design Compiler而言会在link_library变量或local_link_library属性两者统称为link_path中的第一个逻辑库即主库中搜索默认工作环境(operating condition)和默认线负载模型(wire load model)如下面两篇文章所说。SDC命令详解使用set_operating_conditions命令进行约束bc_wc模式和on_chip_variation模式https://chenzhang.blog.csdn.net/article/details/146458759?spm1001.2014.3001.5502静态时序分析线负载模型的选择机制https://chenzhang.blog.csdn.net/article/details/140619371?spm1001.2014.3001.5502假设用户用set_operating_conditions命令和set_wire_load_model命令设置了约束随后使用remove_sdc命令移除了这些约束如果此时默认工作环境和默认线负载模型恰好与之前设置的约束相同用户可能会产生困惑认为remove_sdc命令失效了其实不然使用write_sdc命令输出一个SDC文件就可以对此进行验证其中用户指定的set_operating_conditions命令和set_wire_load_model命令并不存在。3、remove_sdc命令不会影响非SDC命令。假设用户用set_dont_touch命令进行了设置随后使用remove_sdc命令但这并不起作用因为set_dont_touch命令并不是SDC命令虽然它们确实设置了对象的属性它们不会受到remove_sdc命令的影响可以使用reset_design命令重置当前设计。该命令对所有活跃场景生效关于场景的更多介绍可以参考下面的博客。Design Compiler多工艺角和多工作模式(Multicorner-Multimode, MCMM)https://blog.csdn.net/weixin_45791458/article/details/149578771?ops_request_misc%257B%2522request%255Fid%2522%253A%2522e3267dcc7cc26380435f53994dc8b9b8%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257Drequest_ide3267dcc7cc26380435f53994dc8b9b8biz_id0utm_mediumdistribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~rank_v31_ecpm-1-149578771-null-null.nonecaseutm_termMCMMspm1018.2226.3001.4450需要注意的是该命令只对当前设计生效如果在重置当前设计后又使用current_design命令切换了当前设计切换后的当前设计是没有被重置的状态如下所示。dcnxt_shell current_design top Current design is top. {top} dcnxt_shell create_clock -period 10 -name clk 1 dcnxt_shell get_clocks {clk} dcnxt_shell current_design bot Current design is bot. {bot} dcnxt_shell remove_sdc 1 dcnxt_shell current_design top Current design is top. {top} dcnxt_shell get_clocks {clk}