公司动态
SDC命令详解:使用write_app_var命令进行输出
相关阅读SDC命令详解https://blog.csdn.net/weixin_45791458/category_12931432.html?spm1001.2014.3001.5482目录指定文件名指定全部应用变量指定仅输出已更改的应用变量指定patterns参数Multicorner-Multimode支持简单使用写在最后应用变量无法保存在ddc文件中也无法使用write_script命令输出write_app_var命令用于将当前设计中的应用变量设置命令输出为脚本文件其实它并不是一个SDC命令归为此类只是为了方便管理。本文针对Design Compiler但该命令同样存在于PrimeTime、IC Compiler等工具中它们大致相同略有差别。write_app_var命令的BNF范式有关BNF范式可以参考以往文章为write_app_var -output file [-all | -only_changed_vars] [pattern] //注该命令的选项和参数顺序任意指定文件名-output选项指定脚本文件的名称该选项是必须的。指定全部应用变量-all选项指定输出全部应用变量。-all选项和-only_changed_vars选项是互斥的只能使用其中一个。指定仅输出已更改的应用变量-only_changed_vars选项指定只输出已更改的应用变量该行为是默认的。-all选项和-only_changed_vars选项是互斥的只能使用其中一个。指定patterns参数patterns参数用于指定一个字符串支持使用通配符模式串中可以包含*匹配0至多个字符和?匹配1个字符。当不使用模式串时默认输出所有应用变量。Multicorner-Multimode支持该命令对所有场景生效。关于场景的更多介绍可以参考下面的博客。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简单使用假设执行了以下脚本文件。dcnxt_shell set_app_var search_path . ./src ./libs dcnxt_shell set_app_var target_library class.db dcnxt_shell set_app_var link_library * class.db dcnxt_shell set_app_var symbol_library class.sdb使用write_app_var命令后输出的脚本文件内容如下所示。set_app_var __ek_tcl_prompt1 {dcnxt_shell } set_app_var acs_global_user_compile_strategy_script default set_app_var acs_override_script_suffix scr set_app_var acs_work_dir /home/zhangchen/DCNXT_2021.06/lab1 set_app_var arch_init_path /opt/Synopsys/syn/W-2024.09-SP5/linux64/motif/syn/uid set_app_var bus_dimension_separator_style {][} set_app_var bus_naming_style {%s[%d]} set_app_var check_error_list {CMD-004 CMD-006 CMD-007 CMD-008 CMD-009 CMD-010 CMD-011 CMD-012 CMD-014 CMD-015 CMD-016 CMD-019 CMD-026 CMD-031 CMD-037 DB-1 DCSH-11 DES-001 ACS-193 FILE-1 FILE-2 FILE-3 FILE-4 LINK-7 LINT-7 LINT-20 LNK-023 OPT-100 OPT-101 OPT-102 OPT-114 OPT-124 OPT-127 OPT-128 OPT-155 OPT-157 OPT-181 OPT-462 UI-11 UI-14 UI-15 UI-16 UI-17 UI-19 UI-20 UI-21 UI-22 UI-23 UI-40 UI-41 UID-4 UID-6 UID-7 UID-8 UID-9 UID-13 UID-14 UID-15 UID-19 UID-20 UID-25 UID-27 UID-28 UID-29 UID-30 UID-32 UID-58 UID-87 UID-103 UID-109 UID-270 UID-272 UID-403 UID-440 UID-444 UIO-2 UIO-3 UIO-4 UIO-25 UIO-65 UIO-66 UIO-75 UIO-94 UIO-95 EQN-6 EQN-11 EQN-15 EQN-16 EQN-18 EQN-20} set_app_var compile_hold_reduce_cell_count false set_app_var found_arch_apollo 0 set_app_var found_x11_vendor_string_apollo 0 set_app_var gui_preset_directory /home/zhangchen/.synopsys_dc_gui/presets set_app_var hdlin_always_fsm_complete FALSE set_app_var hdlin_enable_elaborate_update true set_app_var hdlin_enable_rtldrc_info false set_app_var hdlin_failsafe_fsm TRUE set_app_var hdlin_generate_operator_sharing_data FALSE set_app_var hdlin_vhdl93_concat TRUE set_app_var ilm_preserve_core_constraints false set_app_var isatty 1 set_app_var link_path {* class.db} set_app_var motif_files /opt/Synopsys/syn/W-2024.09-SP5/admin/setup set_app_var mw_use_pdb_lib_format false set_app_var search_path {. ./src ./libs} set_app_var set_svf_enable true set_app_var site_info_file /opt/Synopsys/syn/W-2024.09-SP5/admin/license/site_info set_app_var symbol_library class.sdb set_app_var synlib_library_list {DW01 DW02 DW03 DW04 DW05 DW06 DW07} set_app_var target_library class.db set_app_var test_allow_clock_reconvergence true set_app_var test_bsd_control_cell_drive_limit 0 set_app_var test_bsd_manufacturer_id 0 set_app_var test_bsd_part_number 0 set_app_var test_bsd_version_number 0 set_app_var test_bsdl_max_line_length 80 set_app_var test_default_min_fault_coverage 95 set_app_var test_user_defined_instruction_naming_style USER%d set_app_var timing_report_attributes {dont_touch dont_use map_only size_only ideal_net infeasible_paths} set_app_var vhdllib_architecture VITAL set_app_var vhdllib_logic_system ieee-1164 set_app_var vhdllib_tb_x_eq_dontcare FALSE set_app_var vhdlout_follow_vector_direction TRUE set_app_var vhdlout_use_packages IEEE.std_logic_1164 set_app_var view_analyze_file_suffix {v vhd vhdl} set_app_var view_arch_types {sparcOS5 hpux10 rs6000 sgimips} set_app_var view_execute_script_suffix {.script .scr .dcs .dcv .dc .con .tcl} set_app_var view_independent_dialogs { test_report Test Reports report_print Report report_options Report Options report_win Report Output manual_page Manual Page } set_app_var view_read_file_suffix {db gdb sdb edif eqn fnc lsi mif NET pla st tdl v vhd vhdl xnf} set_app_var view_script_submenu_items {DA to SGE Transfer write_sge} set_app_var view_write_file_suffix {gdb db sdb do edif eqn fnc lsi NET neted pla st tdl v vhd vhdl xnf} set_app_var write_test_formats {synopsys tssi_ascii tds verilog vhdl wgl} set_app_var xterm_executable xterm除了设置的四个应用变量外其余的应用变量都是Design Compiler的三个默认配置文件中设置的具体情况如下面的博客所示。Design Compiler默认配置文件https://blog.csdn.net/weixin_45791458/article/details/144016186?ops_request_misc%257B%2522request%255Fid%2522%253A%25221666e53b1cc47fa33221748141f1b551%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257Drequest_id1666e53b1cc47fa33221748141f1b551biz_id0utm_mediumdistribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~rank_v31_ecpm-4-144016186-null-null.nonecaseutm_term-no_initspm1018.2226.3001.4450启动Design Compiler时添加-no_init选项即可禁止默认设置文件的读取和执行此时的结果如下所示。set_app_var __ek_tcl_prompt1 {dcnxt_shell } set_app_var gui_preset_directory /home/zhangchen/.synopsys_dc_gui/presets set_app_var isatty 1 set_app_var link_path {* class.db} set_app_var search_path {. ./src ./libs} set_app_var symbol_library class.sdb set_app_var target_library class.db写在最后建议使用大写字母命名用户自定义变量这样更加直观可以将其与应用变量显著区分。需要注意的是不管是应用变量还是用户自定义变量它们都无法保存在文件中即使是.ddc格式所以每次启动Design Compiler时应用变量将被还原为默认值 需要重新设置应用变量以避免出现错误。关于应用变量的命令还有以下几个感兴趣的读者可以阅读。SDC命令详解使用printvar命令进行报告https://chenzhang.blog.csdn.net/article/details/147404464SDC命令详解使用report_app_var命令进行报告https://blog.csdn.net/weixin_45791458/article/details/148856149?ops_request_misc%257B%2522request%255Fid%2522%253A%252284989bf84436f37d45580c4f11503321%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257Drequest_id84989bf84436f37d45580c4f11503321biz_id0utm_mediumdistribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~rank_v31_ecpm-3-148856149-null-null.nonecaseutm_termapp_varspm1018.2226.3001.4450SDC命令详解使用get_app_var命令进行查询https://chenzhang.blog.csdn.net/article/details/148867734SDC命令详解使用set_app_var命令进行设置https://blog.csdn.net/weixin_45791458/article/details/145433790?ops_request_misc%257B%2522request%255Fid%2522%253A%252284989bf84436f37d45580c4f11503321%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257Drequest_id84989bf84436f37d45580c4f11503321biz_id0utm_mediumdistribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~rank_v31_ecpm-4-145433790-null-null.nonecaseutm_termapp_varspm1018.2226.3001.4450