0% found this document useful (0 votes)
5K views

SpyGlass Lint

The document discusses how to configure and run SpyGlass Lint, a static verification tool. It describes how to specify input files, enable SystemVerilog, set options, add waivers, and invoke the tool via the command line or shell. The output includes severity levels for any reported violations.

Uploaded by

brbvikas
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
5K views

SpyGlass Lint

The document discusses how to configure and run SpyGlass Lint, a static verification tool. It describes how to specify input files, enable SystemVerilog, set options, add waivers, and invoke the tool via the command line or shell. The output includes severity levels for any reported violations.

Uploaded by

brbvikas
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 3

SpyGlass Lint runs in 2-Stage Mode:

1. Design Read:
a. All RTL are gathered, parsed and compiled into libraries.
b. Basic Syntax Checking is performed.
2. Goal Run:
a. The actual static check.
b. Design Read stage Data are loaded and RTL Checks are being Run.

How to Specify RTL Files / Libraries to Read:


● read_file -type hdl verilog_file.v

To enable SV:
● set_option enableSV yes
● read_file -type hdl sv_file.sv

Adding a source file list:


● read_file -type sourcelist sources.f

Technology lib(.lib) are better suited for SpyGlass analysis as compared to the simulation lib
● SpyGlass reads the .lib file and converts to an internal format with .sglib extension.
● SpyGlass needs the synthesizable descriptions of the cells and hence better to use .lib
models as opposed to behavioral models.

Specify the library to be used for analysis as follows:


● read_file -type gateslib <path to .lib file>

Specify the top to define the top module:


● set_option top <top module name>

Include the directory:


● set_option incdir <path to include in search>

Enable synthesis during the design read:


● set_option designread_enable_synthesis yes

Enable parsing of SV constraints:


● set_option enableSV09 <yes/no>

Specify the operating Language for the current run:


● set_option language_mode <verilog/vhdl/mixed>
Process memories in an optimised manner:
● set_option handlememory yes
● set_option mthresh 64000
● Telling that the tool supports memory upto 64000 bits. If it is greater, it throws errors.

Provide higher preference to .lib file over user-specified definitions present in source HDL file.
● set_option prefer_tech_lib <yes/no>
● It gives preference to technology lib more than RTL files.

SpyGlass BBx(BlackBox) options added to .prj file:


● set_option stop <module name>
● #body is skipped, interfaces in checked
● set_option ignoredu <module name>
● #body and interface are skipped.

After Design Setup, move on to Goal Setup:

Goal Selection:
- Select which goals need to be run at the current stage of the design.
- Goals determine the checks you want to perform on the current version of the design.

Goal Setup:
- Setup Goals ensure that analysis remains meaningful.
- If you dont set up goals that should, the results will be misleading.
- In case you want to create a different setup for the same goals, you can make use of
scenarios.

SpyGlass Waiver:
● A waiver is a mechanism to hide specific rule violations.
● Hide a violation that is known to be fixed at a later point of the design flow.
● Hide false( or minor) violation which will not be fixed.
● Ignore violations for DU/Block without complete functionality.
● Hide violations that will not be looked at right now (temporary waivers).
● At SoC Integration to hide violations with specific blocks.
● Hide exceptions to design policies or company practices.
● Hide certain violations from 3rd party IP.

Waivers are provided to SpyGlass in a waiver file (.awl file extension) with waive commands.
Multiple waiver files are allowed.
Running SpyGlass for Deign Read and Run Goal:
● spyglass -project <project_file>.prj -designread -batch
● spyglass -project <project_file>.prj -goals “lint/lint_rtl” -batch

Invoking SpyGlass Tool


● % spyglass
○ Invokes spyglass with default setting.
● % spyglass -project top.prj
○ Invokes with prj file
● % spyglass -project top.prj -showgoals
○ Provides all goals in the methodology with setup and run status.
● % spyglass -project top.prj -designread -batch
○ Invokes in batch mode and runs designread process
● % spyglass -project top.prj -batch -goals “lint/lint_rtl”
○ Invokes in batch mode and runs the specified goal.
● % spyglass -shell ( or % sg_shell)
○ Invokes sg_shell prompt.

SpyGlass reports the result of analysis as messages:


● All violations have a severity( label as well as class) and a message.
● Violation severity classes are:
○ FATAL - Analysis can no longer proceed and must exit.
○ ERROR - A possible design or setup error which can impede analysis or may
result in incorrect results.
○ WARNING - This is a potential problem and may or may not be a design error.
○ INFO - Informational messages for auxiliary rules that help in debug as well as
information about different rule reports being generated.

You might also like