SpyGlass Lint
SpyGlass Lint
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.
To enable SV:
● set_option enableSV yes
● read_file -type hdl sv_file.sv
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.
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.
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