当前位置: 首页 > news >正文

Spyglass:参数(parameter)及其设置方式

相关阅读

Spyglasshttps://blog.csdn.net/weixin_45791458/category_12828934.html?spm=1001.2014.3001.5482


简介

        Spyglass中的参数(parameter)用于控制目标(Goal)运行时的规则检查,通常一个参数会影响多个规则(Rule),图1展示了allow_combo_logic参数的相关信息。

图1 allow_combo_logic参数

设置手段

        设置参数的手段有很多,如在sg_shell中使用set_parameter命令、在GUI界面中进行设置、直接修改项目文件,下面将对此进行详细说明。

sg_shell

// 例1
sg_shell> current_goal lint/lint_rtl -alltop
sg_shell> set_parameter fast yes
yes
sg_shell> get_parameter fast
yes
sg_shell> set_parameter fast -default
no
sg_shell> get_parameter fast
no

        例1使用set_parameter命令设置fast参数的值为yes,并随后使用get_parameter命令显示了该参数的当前值,接着使用-default选项设置该参数为其默认值。

        顺带一提,保存项目时Spyglass会自动在项目文件中加入set_parameter命令以保存项目的设置信息。

GUI界面

        选择Goal Setup阶段,并选择一个目标,使其绿色高亮,如图2所示。

图2 选择目标

        点击Setup,此时所有与该目标相关的参数将显示在界面中,如图3所示。

图3 参数设置界面

        此时用户便可以根据自身需求对参数进行设置,顺带一提,保存项目时Spyglass会自动在项目文件中加入set_parameter命令以保存项目的设置信息。

        需要注意的是,参数设置界面的一些参数使用加粗显示,这表示该参数已进行了设置、存在默认值覆盖或已废弃。

项目文件

// 例2
##Goal Setup Section
current_methodology $SPYGLASS_HOME/GuideWare/latest/block/rtl_handoffcurrent_goal lint/lint_rtl -alltop
set_parameter fast yes

        直接将set_parameter命令添加到项目文件也是可行的,如例2所示,一旦项目文件在打开时被人为修改,Spyglass会立刻重新读取项目文件。

作用域

        值得注意的是,设置手段一节中的三种情况都是在目标作用域设置参数,只会影响当前目标,如果在方法(Methodology)作用域进行设置,则会影响当前方法下的所有目标(如果没有在目标作用域设置该参数,则会继承来自方法的参数设置),下面以sg_shell为例进行说明。

// 例3
sg_shell> current_goal none
sg_shell> set_parameter fast yes
yes
sg_shell> current_goal lint/lint_rtl -alltop
sg_shell> get_parameter fast
yes

        例3中使用current_goal none命令退出目标作用域而进入方法作用域,并设置了fast参数,由于该参数在目标作用域并未进行设置,因此继承了来自方法作用域的参数值。

默认值覆盖

        许多参数拥有自己的默认值,可以使用report_paramter [get_parameter]命令进行查看,如例4所示。

// 例4
sg_shell> current_goal lint/lint_rtl -alltop
current_goal: warning: goal `lint/lint_rtl' was run but not saved last timerun results and goal settings might not match
current_goal: info: loading goal `lint/lint_rtl' (in progress)
current_goal: info: finished loading goal `lint/lint_rtl' (ok)sg_shell> report_parameter [get_parameter]
Parameters in the current scope:
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Parameter Name                     Current Value     Default Value
===============================================================================
W416_vhdl_only                     no                no
add_signature_expression           no                no
allow_clk_in_condition             no                no
allow_combo_logic_base             no                no
allviol                            no                no
assume_driver_load                 yes               no
attach_violation_tag               no                no
buf_count                          -1                -1
checkInHierarchy                   yes               yes
checkOperatorOverload              yes               yes
checkRTLCInst                      yes               no
check_any_bit_for_xz               no                no
check_assert                       no                no
check_assign_pattern               no                no
check_bbox_driver                  no                no
check_block_comments               no                no
check_clock_cell                   0                 0
check_complete_design              no                no
check_concat_max_width             no                no
check_counter_assignment           no                no
check_default_value                yes               yes
check_enum_decl                    no                no
check_explicit_width               no                no
check_gate_primitives              no                no
check_genvar                       no                no
check_implicit_senselist           no                no
check_initialization_assignment    no                no
check_inst_connections             no                no
check_latch                        no                no
check_loop_breakers                no                no
check_only_cell_attr               no                no
check_pad_concat                   no                no
check_parameter                    no                no
check_sequential                   no                no
check_shifted_only                 no                no
check_shifted_width                no                no
check_sign_extend                  no                no
check_static_value                 no                no
check_task_calls                   no                no
check_temporary_flop               no                no
check_xassign_casedefault          no                no
checkblocking                      no                no
checkconstassign                   yes               no
checkfullbus                       yes               no
checkfullrecord                    yes               no
checkfullstruct                    no                no
checknonblocking                   no                no
checksyncreset                     yes               yes
chkTopModule                       yes               no
clk_EnableLatch                    yes               yes
combloop_waiver_compat             no                no
considerInoutAsOutput              no                no
consider_sub_as_add                no                no
depth_ml                           -1                -1
disable_flattened_net              no                no
disable_rtl_deadcode               no                no
disable_signal_usage_report        no                no
do_not_run_W71                     no                no
dump_array_bits                    no                no
effort_level                       100               100
enableE2Q                          yes               no
enable_busmerging                  no                no
enable_csv                         no                no
enable_latch_based_clusters        no                no
enable_rtl_deadcode                no                no
evaluate_for_loops                 no                no
fast                               no                no
filter_mark_open                   no                no
generate_connpoint_report          no                no
handle_case_select                 64                64
handle_equivalent_drivers          no                no
handle_greybox                     yes               yes
handle_hier_clock_reset            no                no
handle_large_bus                   no                no
handle_latch_setreset              no                no
handle_mux_select                  no                no
handle_negation_semantics          no                no
handle_shift_op                    no                no
handle_static_caselabels           no                no
handle_zero_padding                no                no
ignoreCellName                     <empty_value>     <empty_value>
ignoreLatchHierarchy               <empty_value>     <empty_value>
ignoreModuleInstance               yes               no
ignoreRealLatch                    no                no
ignoreRtlBuffer                    no                no
ignoreSRlatch                      no                no
ignoreSeqProcess                   no                no
ignore_auto_function_return        no                no
ignore_bitwise_assign_in_forloop   no                no
ignore_bitwiseor_assignment        no                no
ignore_case_compare_op             no                no
ignore_case_inside                 no                no
ignore_cell                        0                 0
ignore_concat_expr                 no                no
ignore_const_outport               no                no
ignore_default_supply              no                no
ignore_deliberately_unconnected    no                no
ignore_explicit_ports              no                no
ignore_flops                       no                no
ignore_forloop_indexes             no                no
ignore_fsm_counter                 no                no
ignore_fullcase_default            no                no
ignore_greybox_driver              no                no
ignore_hanging_flop                no                no
ignore_hier_scope_var              no                no
ignore_if_case_statement           no                no
ignore_inout                       no                no
ignore_integer                     no                no
ignore_integer_constant_labels     no                no
ignore_interface_locals            no                no
ignore_internal_loops              no                no
ignore_internal_nets               no                no
ignore_iopad                       no                no
ignore_libcell_traversal           no                no
ignore_local_variables             no                no
ignore_memory                      no                no
ignore_mult_and_div                no                no
ignore_multi_assign_in_forloop     no                no
ignore_multi_assign_in_genforblock no                no
ignore_nonBlockCondition           no                no
ignore_non_reset                   no                no
ignore_nonstatic_counter           no                no
ignore_padding                     no                no
ignore_param_case_condition        no                no
ignore_param_type                  no                no
ignore_parameter                   no                no
ignore_qmark                       no                no
ignore_reinitialization            no                no
ignore_sca_constant                no                no
ignore_signed_expressions          no                no
ignore_sync_reset                  no                no
ignore_truncation                  no                no
ignore_unique_and_priority         no                no
ignore_unloaded_inst               no                no
ignore_unloaded_port               no                no
ignore_unused_flop                 no                no
ignore_wildcard_operators          no                no
ignore_within_range_labels         no                no
inv_count                          1                 1
latch_chain_max_length             2                 2
loop_unroll_effort                 1                 1
max_flop_count                     3                 3
net_count                          10                10
new_flow_width                     yes               yes
no_strict                          <empty_value>     <empty_value>
nocheck_always_init                no                no
nocheckoverflow                    yes               ImproperRangeIndex-ML,LINT_IMPROPER_RANGE_INDEX,MTK_ImproperRangeIndex
not_used_signal                    nil               nil
overlappingLatchLoops              yes               yes
overlappingLoops                   yes               yes
pragma_list_ml                     synopsys          synopsys
process_complete_condop            no                no
reportHangingLatch                 no                no
reportLatchHierarchy               no                no
reportLibLatch                     no                no
report_all_connections             no                no
report_all_messages                no                no
report_all_pins                    no                no
report_all_rst                     no                no
report_all_rst_count               999999            999999
report_allclk                      no                no
report_allclk_optimized            no                no
report_assignment                  default           default
report_blackbox_inst               no                no
report_boundary_nets               no                no
report_clock_reset_loops           no                no
report_clock_use                   no                no
report_const_connect               no                no
report_expr_type                   no                no
report_floating_source             no                no
report_flop_clock_loop             no                no
report_flop_reset_loop             no                no
report_hierarchy                   no                no
report_inferred_cell               yes               no
report_module_configuration        no                no
report_mux_select                  yes               yes
report_only_bitwise                no                no
report_only_from_one_hierarchy     no                no
report_reason                      no                no
report_single_violation            no                no
report_sorted_order                yes               yes
report_static_assign               no                no
report_struct_name_only            no                no
report_through_mux                 no                no
report_violation_type              both              both
reportalwayslatch                  no                no
reportconstassign                  no                no
reportsimilarassgn                 no                no
reset_synchronizer_modname         sgdummy1,sgdummy2 sgdummy1,sgdummy2
search_const_net_extended          yes               yes
show_connected_net                 no                no
sign_extend_func_names             EXTEND,resize     EXTEND,resize
simplesense                        no                no
skip_fl_check_on_constant          no                no
skip_lib_cell_checking             no                no
stop_at_no_func_view               no                no
strict                             W342,W343         no
supplyHigh                         __null__          __null__
supplyLow                          __null__          __null__
traverse_function                  no                no
traverse_through_mux               no                no
treat_latch_as_combinational       yes               no
use_carry_bit                      W164a,W164b       W164a,W164b
use_lrm_width                      no                no
use_natural_width                  no                no
use_secondary_message              no                no
waiver_compat                      no                no
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

        这些默认值可以被覆盖,只需要修改目标文件(.spq)即可,如例5将lint/lint_rtl目标的allviol参数的默认值覆盖为yes。

// 例5
// lint_rtl.spq文件
-allviol=yes

        例6展示了是默认值覆盖后的情况,可以看出虽然显示默认值并没有变化还是no,但是使用-default选项时设置的默认值已经变成了yes。

// 例6
sg_shell> report_parameter [get_parameter]
Parameters in the current scope:
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Parameter Name                     Current Value     Default Value
===============================================================================
W416_vhdl_only                     no                no
add_signature_expression           no                no
allow_clk_in_condition             no                no
allow_combo_logic_base             no                no
allviol                            yes               no
assume_driver_load                 yes               no
attach_violation_tag               no                no
buf_count                          -1                -1
checkInHierarchy                   yes               yes
checkOperatorOverload              yes               yes
checkRTLCInst                      yes               no
check_any_bit_for_xz               no                no
check_assert                       no                no
check_assign_pattern               no                no
check_bbox_driver                  no                no
check_block_comments               no                no
check_clock_cell                   0                 0
check_complete_design              no                no
check_concat_max_width             no                no
check_counter_assignment           no                no
check_default_value                yes               yes
check_enum_decl                    no                no
check_explicit_width               no                no
check_gate_primitives              no                no
check_genvar                       no                no
check_implicit_senselist           no                no
check_initialization_assignment    no                no
check_inst_connections             no                no
check_latch                        no                no
check_loop_breakers                no                no
check_only_cell_attr               no                no
check_pad_concat                   no                no
check_parameter                    no                no
check_sequential                   no                no
check_shifted_only                 no                no
check_shifted_width                no                no
check_sign_extend                  no                no
check_static_value                 no                no
check_task_calls                   no                no
check_temporary_flop               no                no
check_xassign_casedefault          no                no
checkblocking                      no                no
checkconstassign                   yes               no
checkfullbus                       yes               no
checkfullrecord                    yes               no
checkfullstruct                    no                no
checknonblocking                   no                no
checksyncreset                     yes               yes
chkTopModule                       yes               no
clk_EnableLatch                    yes               yes
combloop_waiver_compat             no                no
considerInoutAsOutput              no                no
consider_sub_as_add                no                no
depth_ml                           -1                -1
disable_flattened_net              no                no
disable_rtl_deadcode               no                no
disable_signal_usage_report        no                no
do_not_run_W71                     no                no
dump_array_bits                    no                no
effort_level                       100               100
enableE2Q                          yes               no
enable_busmerging                  no                no
enable_csv                         no                no
enable_latch_based_clusters        no                no
enable_rtl_deadcode                no                no
evaluate_for_loops                 no                no
fast                               no                no
filter_mark_open                   no                no
generate_connpoint_report          no                no
handle_case_select                 64                64
handle_equivalent_drivers          no                no
handle_greybox                     yes               yes
handle_hier_clock_reset            no                no
handle_large_bus                   no                no
handle_latch_setreset              no                no
handle_mux_select                  no                no
handle_negation_semantics          no                no
handle_shift_op                    no                no
handle_static_caselabels           no                no
handle_zero_padding                no                no
ignoreCellName                     <empty_value>     <empty_value>
ignoreLatchHierarchy               <empty_value>     <empty_value>
ignoreModuleInstance               yes               no
ignoreRealLatch                    no                no
ignoreRtlBuffer                    no                no
ignoreSRlatch                      no                no
ignoreSeqProcess                   no                no
ignore_auto_function_return        no                no
ignore_bitwise_assign_in_forloop   no                no
ignore_bitwiseor_assignment        no                no
ignore_case_compare_op             no                no
ignore_case_inside                 no                no
ignore_cell                        0                 0
ignore_concat_expr                 no                no
ignore_const_outport               no                no
ignore_default_supply              no                no
ignore_deliberately_unconnected    no                no
ignore_explicit_ports              no                no
ignore_flops                       no                no
ignore_forloop_indexes             no                no
ignore_fsm_counter                 no                no
ignore_fullcase_default            no                no
ignore_greybox_driver              no                no
ignore_hanging_flop                no                no
ignore_hier_scope_var              no                no
ignore_if_case_statement           no                no
ignore_inout                       no                no
ignore_integer                     no                no
ignore_integer_constant_labels     no                no
ignore_interface_locals            no                no
ignore_internal_loops              no                no
ignore_internal_nets               no                no
ignore_iopad                       no                no
ignore_libcell_traversal           no                no
ignore_local_variables             no                no
ignore_memory                      no                no
ignore_mult_and_div                no                no
ignore_multi_assign_in_forloop     no                no
ignore_multi_assign_in_genforblock no                no
ignore_nonBlockCondition           no                no
ignore_non_reset                   no                no
ignore_nonstatic_counter           no                no
ignore_padding                     no                no
ignore_param_case_condition        no                no
ignore_param_type                  no                no
ignore_parameter                   no                no
ignore_qmark                       no                no
ignore_reinitialization            no                no
ignore_sca_constant                no                no
ignore_signed_expressions          no                no
ignore_sync_reset                  no                no
ignore_truncation                  no                no
ignore_unique_and_priority         no                no
ignore_unloaded_inst               no                no
ignore_unloaded_port               no                no
ignore_unused_flop                 no                no
ignore_wildcard_operators          no                no
ignore_within_range_labels         no                no
inv_count                          1                 1
latch_chain_max_length             2                 2
loop_unroll_effort                 1                 1
max_flop_count                     3                 3
net_count                          10                10
new_flow_width                     yes               yes
no_strict                          <empty_value>     <empty_value>
nocheck_always_init                no                no
nocheckoverflow                    yes               ImproperRangeIndex-ML,LINT_IMPROPER_RANGE_INDEX,MTK_ImproperRangeIndex
not_used_signal                    nil               nil
overlappingLatchLoops              yes               yes
overlappingLoops                   yes               yes
pragma_list_ml                     synopsys          synopsys
process_complete_condop            no                no
reportHangingLatch                 no                no
reportLatchHierarchy               no                no
reportLibLatch                     no                no
report_all_connections             no                no
report_all_messages                no                no
report_all_pins                    no                no
report_all_rst                     no                no
report_all_rst_count               999999            999999
report_allclk                      no                no
report_allclk_optimized            no                no
report_assignment                  default           default
report_blackbox_inst               no                no
report_boundary_nets               no                no
report_clock_reset_loops           no                no
report_clock_use                   no                no
report_const_connect               no                no
report_expr_type                   no                no
report_floating_source             no                no
report_flop_clock_loop             no                no
report_flop_reset_loop             no                no
report_hierarchy                   no                no
report_inferred_cell               yes               no
report_module_configuration        no                no
report_mux_select                  yes               yes
report_only_bitwise                no                no
report_only_from_one_hierarchy     no                no
report_reason                      no                no
report_single_violation            no                no
report_sorted_order                yes               yes
report_static_assign               no                no
report_struct_name_only            no                no
report_through_mux                 no                no
report_violation_type              both              both
reportalwayslatch                  no                no
reportconstassign                  no                no
reportsimilarassgn                 no                no
reset_synchronizer_modname         sgdummy1,sgdummy2 sgdummy1,sgdummy2
search_const_net_extended          yes               yes
show_connected_net                 no                no
sign_extend_func_names             EXTEND,resize     EXTEND,resize
simplesense                        no                no
skip_fl_check_on_constant          no                no
skip_lib_cell_checking             no                no
stop_at_no_func_view               no                no
strict                             W342,W343         no
supplyHigh                         __null__          __null__
supplyLow                          __null__          __null__
traverse_function                  no                no
traverse_through_mux               no                no
treat_latch_as_combinational       yes               no
use_carry_bit                      W164a,W164b       W164a,W164b
use_lrm_width                      no                no
use_natural_width                  no                no
use_secondary_message              no                no
waiver_compat                      no                no
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++sg_shell> set_parameter allviol -default
yes

        默认值覆盖不被认为是对参数的设置,因此可以继承来自方法的参数设置。

http://www.xdnf.cn/news/520885.html

相关文章:

  • 考研数学积分学
  • supervisorctl守护进程
  • PCB设计实践(十九)PCB设计中NPN/PNP选型策略
  • C++(23):容器类<vector>
  • C++控制结构详解:if-else、switch、循环(for/while/do-while)
  • 嵌入式学习笔记 - U(S)ART 模块HAL 库函数总结
  • 开启健康生活的多元养生之道
  • Prism使用消息总线打开窗体的案例(中介者模式)
  • GBS 8.0服装裁剪计划软件在线试用
  • SAPROv5.7
  • Muduo网络库大总结
  • 大语言模型 vs NLTK/SpaCy:NLP工具的代际跃迁与互补之道
  • LORA 微调 - LoRA 介绍与 LoRA 微调指南
  • 最长公共子序列(LCS)
  • 网络编程套接字(二)
  • 17 C 语言数据类型转换与数据溢出回绕详解:隐式转换、显式转换、VS Code 警告配置、溢出回绕机制
  • 并发编程(4)
  • 中山市东区信息学竞赛2025 题目解析
  • CMake调试与详细输出选项解析
  • 基于区块链技术的智能汽车诊断与性能分析
  • 运行vscode编辑器源码
  • 课外活动:再次理解页面实例化PO对象的魔法方法__getattr__
  • 【免杀】C2免杀技术(五)动态API
  • C2S-Scale方法解读
  • [Android] 青木扫描全能文档3.0,支持自动扫描功能
  • 机器学习入门之朴素叶贝斯和决策树分类(四)
  • 【VMware】开启「共享文件夹」
  • 计算机系统的工作原理
  • 2.2.5
  • 进程间通信--信号量【Linux操作系统】