Spyglass:官方Hands-on Training(三)
相关阅读
Spyglasshttps://blog.csdn.net/weixin_45791458/category_12828934.html?spm=1001.2014.3001.5482
本文是对Spyglass Hands-on Training中第三个实验的翻译(有删改),Lab文件可以从以下链接获取。Spyglass Hands-on Traininghttps://download.csdn.net/download/qq_43699362/85585058?ops_request_misc=%257B%2522request%255Fid%2522%253A%25225fb1922ab549e363d5c551d14bebd31a%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fdownload.%2522%257D&request_id=5fb1922ab549e363d5c551d14bebd31a&biz_id=1&utm_medium=distribute.pc_search_result.none-task-download-2~download~first_rank_ecpm_v1~rank_v31_ecpm-30-85585058-null-null.269^v2^control&utm_term=Spyglass%20Get%20Start&spm=1018.2226.3001.4451.31
实验三、在批处理模式下设置、运行和查看结果
实验三的目标是使用实验二中保存的项目文件wb_subsystem.prj在批处理模式下设置、运行和查看结果。
1、使用以下命令获取可用目标列表(不包括Design_Read目标)。
% spyglass -project wb_subsystem.prj -showgoals
可以随时使用上面的命令查看目标状态总结,如下所示。
====================================================================================================================================
Goal Status Summary
====================================================================================================================================
Goal Setup Status Run Status Results by Severity( Fatal / Errors / Warnings / Info )
====================================================================================================================================
lint/lint_rtl Setup Optional Run Complete ( 0 / 7 / 9 / 4 )
lint/lint_rtl_enhanced Setup Optional Not Run Yet
lint/lint_turbo_rtl Setup Optional Not Run Yet
lint/lint_functional_rtl Setup Optional Not Run Yet
lint/lint_abstract Setup Optional Not Run Yet
adv_lint/adv_lint_struct Setup Optional Not Run Yet
adv_lint/adv_lint_verify Setup Optional Not Run Yet
constraints/sdc_audit Setup Optional Not Run Yet
constraints/sdc_check Setup Recommended Not Run Yet
constraints/sdc_exception_struct* Setup Recommended Not Run Yet
constraints/sdc_redundancy Setup Recommended Not Run Yet
constraints/sdc_abstract Setup Optional Not Run Yet
txv_verification/fp_verification Setup Optional Not Run Yet
txv_verification/mcp_verification Setup Optional Not Run Yet
txv_verification/fp_mcp_verification Setup Optional Not Run Yet
txv_verification/txv_run_audit Setup Optional Not Run Yet
txv_verification/txv_glitch Setup Optional Not Run Yet
txv_verification/txv_rtl_gen Setup Optional Not Run Yet
txv_verification/txv_sdc_migration Setup Optional Not Run Yet
cdc/cdc_setup_check Setup Optional Not Run Yet
cdc/clock_reset_integrity Setup Optional Not Run Yet
cdc/cdc_verify_struct Setup Optional Not Run Yet
cdc/cdc_verify* Setup Optional Not Run Yet
rdc/rdc_verify_struct Setup Recommended Not Run Yet
cdc/cdc_abstract* Setup Optional Not Run Yet
dft/dft_scan_ready Setup Recommended Not Run Yet
dft/dft_best_practice Setup Optional Not Run Yet
dft/dft_bist_ready Setup Optional Not Run Yet
dft/dft_dsm_best_practice Setup Optional Not Run Yet
dft/dft_dsm_random_resistance Setup Optional Not Run Yet
dft/dft_abstract Setup Optional Not Run Yet
power/power_audit Setup Recommended Not Run Yet
power/power_activity_check Setup Recommended Not Run Yet
power/power_gen_pesd Setup Optional Not Run Yet
power/power_calibration Setup Optional Not Run Yet
power/power_est_average Setup Recommended Not Run Yet
power/power_est_profiling Setup Optional Not Run Yet
power/power_cge_profiling Setup Optional Not Run Yet
power/power_cge_profiling_est Setup Optional Not Run Yet
power/power_reduction_adv Setup Recommended Not Run Yet
power/power_mem_reduction Setup Recommended Not Run Yet
power/power_guidance Setup Optional Not Run Yet
power_verification/power_verif_audit Setup Optional Not Run Yet
power_verification/power_verif_noninstr Setup Recommended Not Run Yet
power_verification/power_verif_instr_rtl Setup Recommended Not Run Yet
power_verification/power_verif_abstract Setup Recommended Not Run Yet
physical_aware_power/power_est_average Setup Optional Not Run Yet
rtl2netlist/rtl2netlist_migration Setup Optional Not Run Yet
connectivity_verify/connectivity_verification Setup Optional Not Run Yet
mandatory - - Regression Goal
optional - - Regression Goal
all - - Regression Goal
physical_aware_power_est - - Regression Goal
====================================================================================================================================
总结中给出了当前方法(Current Methodology)中的目标名(Goal),是否建议运行前进行设置(Setup Status)、运行状态(Run Status)和运行结果(Results by Severity)。可以看出,此时lint_rtl目标的状态还是保持在实验一时,而未列出的Design_Read目标的所有错误在实验二中已经得到解决。
2、使用以下命令重新运行lint_rtl目标。
% spyglass -project wb_subsystem.prj -goals lint/lint_rtl -batch
所选择的目标应该属于当前方法,一般来说项目文件中的当前方法(使用current methodology命令设置)与当前激活方法(使用set_option active_methodology命令设置)是统一的(由SpyGlass自动调整),但如果用户自行修改了项目文件,则可能出现两者不统一的情况。
如果两者不统一,项目文件中的set_option active_methodology命令的优先级高于current methodology命令(即打开项目后的当前方法会被设置为当前激活方法),但如果在sg_shell中使用current methodology命令或图形用户界面(GUI)设置了当前方法,则当前激活方法也会由SpyGlass自动调整为当前方法。
3、一旦lint_rtl目标运行完成,可以在终端中查看报告,如下所示。
---------------------------------------------------------------------------------------------------
Results Summary:
---------------------------------------------------------------------------------------------------Goal Run : lint/lint_rtlTop Module : wb_subsystem
---------------------------------------------------------------------------------------------------Reports Directory: /home/zhangchen/Training_labs/spyglass/wb_subsystem/consolidated_reports/wb_subsystem_lint_lint_rtl/ SpyGlass LogFile: /home/zhangchen/Training_labs/spyglass/wb_subsystem/wb_subsystem/lint/lint_rtl/spyglass.log Standard Reports: moresimple.rpt no_msg_reporting_rules.rpt HTML report:/home/zhangchen/Training_labs/spyglass/wb_subsystem/html_reports/goals_summary.htmlTechnology Reports: <Not Available>---------------------------------------------------------------------------------------------------Goal Violation Summary:Waived Messages: 0 Errors, 0 Warnings, 0 InfosReported Messages: 0 Fatals, 5 Errors, 188 Warnings, 5 Infos
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
4、可以在以下路径查看lint_rtl目标的报告。
spyglass/wb_subsystem/wb_subsystem/lint/lint_rtl/spyglass_reports/moresimple.rpt
################################################################################
#
# This file has been generated by SpyGlass:
# Report Name : moresimple
# Report Created by: zhangchen
# Report Created on: Tue May 6 17:30:54 2025
# Working Directory: /home/zhangchen/Training_labs/spyglass
# SpyGlass Version : SpyGlass_vW-2024.09-SP1
# Policy Name : SpyGlass(SpyGlass_vW-2024.09-SP1)
# erc(SpyGlass_vW-2024.09-SP1)
# latch(SpyGlass_vW-2024.09-SP1)
# lint(SpyGlass_vW-2024.09-SP1)
# morelint(SpyGlass_vW-2024.09-SP1)
# openmore(SpyGlass_vW-2024.09-SP1)
# simulation(SpyGlass_vW-2024.09-SP1)
# starc(SpyGlass_vW-2024.09-SP1)
# starc2005(SpyGlass_vW-2024.09-SP1)
#
# Total Number of Generated Messages : 198
# Number of Waived Messages : 0
# Number of Reported Messages : 198
# Number of Overlimit Messages : 0
#
#
################################################################################+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
MORESIMPLE REPORT:############### BuiltIn -> RuleGroup=Command-line read ###############
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
ID Rule Alias Severity File Line Wt Message
======================================================================================
[3] HdlLibDuCheck_01 HdlLibDuCheck_01 Warning N.A. 0 10 To run RTLDU/RTLDULIST/RTLALLDULIST/LEXICAL rules on precompiled designs set option 'hdllibdu'
[0] checkCMD_unset_option UnsetOption Warning N.A. 0 10 Option/Parameter 'enable_save_restore': Failed to check out license feature 'save_restore'.SpyGlass would disable 'save-restore' feature
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++############### BuiltIn -> RuleGroup=Design Read ###############
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
ID Rule Alias Severity File Line Wt Message
======================================================================================
[2] DetectTopDesignUnits DetectTopDesignUnits Info ../rtl/wb_subsystem.v 11 2 Module wb_subsystem is a top level design unit
[124] SYNTH_5159 SynthesisWarning /home/zhangchen/Training_labs/rtl/ima_adpcm/IMA_ADPCM_top.vhd 226 1000 ima_adpcm_top -> Report Statements are not supported for synthesis
[1] ElabSummary ElabSummary Info ./wb_subsystem/wb_subsystem/lint/lint_rtl/spyglass_reports/SpyGlass/elab_summary.rpt 0 2 Please refer file './wb_subsystem/wb_subsystem/lint/lint_rtl/spyglass_reports/SpyGlass/elab_summary.rpt' for elab summary report
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++############### Non-BuiltIn -> Goal=lint/lint_rtl ###############
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
ID Rule Alias Severity File Line Wt Message
======================================================================================
[13A] InferLatch (OpenMORE 5.5.2.1) Error ../rtl/ahb2wb.v 173 5 Latch inferred for signal 'hready' in module 'ahb2wb'
[13C] InferLatch (OpenMORE 5.5.2.1) Error ../rtl/ahb2wb.v 187 5 Latch inferred for signal 'dat_o[31:0]' in module 'ahb2wb'
[13B] InferLatch (OpenMORE 5.5.2.1) Error ../rtl/ahb2wb.v 189 5 Latch inferred for signal 'hrdata[31:0]' in module 'ahb2wb'
[13D] UndrivenInTerm-ML Error ../rtl/wb_subsystem.v 93 10 Detected undriven input terminal wb_subsystem.ahb2wb_u0.dat_i[31:0]
[13E] W415 Error ../rtl/wb_subsystem.v 100 10 Signal.......
上面的报告展示了如InferLatch、UndrivenInTerm-ML等常见错误,实验四将解决其中的错误和部分警告。