SpyGlass Usage Help
Usage:
spyglass -verilog <options> <Verilog source file names>
spyglass -vhdl <options> <VHDL source file names>
spyglass -mixed <options> <Verilog and VHDL source file names>
spyglass -def <options> <Def source file names>
enable SpyGlass Rule-checking on specified
Verilog or VHDL source files, as per other
selected options.
spyglass -32bit run SpyGlass in 32bit mode. If the default startup
mode has been set as 64bit mode through the
configuration file, then this option can override
it and run SpyGlass in 64bit mode.
spyglass -64bit enforce 64bit binary execution on Linux(64-bit)
and Solaris(64-bit) machines (32-bit binary is
executed by default).
spyglass -version show SpyGlass version.
spyglass -usage show the standard option set.
spyglass -h | -help show site-specific help.
spyglass -quickstart show the `quick start' help.
spyglass -printrules [-verilog | -vhdl | -mixed]
Print a list of all active rules in the current session
for the specified language, then exit.
spyglass -printgroups [-verilog | -vhdl | -mixed]
Print a list of all active groups in the current session
for the specified language, then exit.
spyglass -printreportformats Print a list of Registered Report Formats.
spyglass -batch ... run SpyGlass in BATCH mode (Default is GUI).
spyglass -gui ... run SpyGlass in GUI mode. If the default startup
mode has been set as batch through the
configuration file, then this option can override
that default and run SpyGlass in GUI mode.
If both -batch and -gui are specified, then -batch is given higher priority.
All SpyGlass options can be be supplied in a command file as follows.
spyglass -f <command_filename)
-f files can be nested and mixed with command line options.
OPTION DETAILS:
Language Choice:
-vhdl All files are in VHDL.
-verilog All files are in Verilog HDL.
-mixed All files are either in VHDL or Verilog or both.
-def All files are in def format.
Rule-Checking Choice:
-template <methodology-name>/<template-name>
where, <methodology-name> is the methodology and template-name is the
template lying inside the methodology <methodology-name>
Example:
'-template DFT/Latches' will load the "Latches" template of "DFT"
methodology as per the language specified i.e.,
(-verilog | -vhdl | -mixed)
The default behaviour is to load the "Creation" template of "Block-Design"
methodology (Block-Design/Creation), as per the language specified.
-policy=<policy1>,<policy2>....
-policies=<policy1>,<policy2>.... (same as -policy)
where, policy1 and policy2 are supported RuleDeck policies by SpyGlass.
Example:
'-policy=lint' will load the Lint RuleDeck policy.
'-policy=openmore,lint' will run OpenMore and Lint RuleDecks.
-overloadpolicy=<policy1>,<policy2>.... will cause the overloaded version
of specified policy be run, if installed.
-overload=<NamedOverload1>,<NamedOverload2>.... will apply given Named
Overloads, if present, to the specified policies.
-fullpolicy Causes SpyGlass to run all rules of all specified
policies when you have not selected any rules
(only -policies option used and -rules option
not used).
By default, only a selected set of rules are run
for each selected policy.
Checking Session Options:
========================
-rules 'rule_name' Rule or group name to be checked. This option
can specify multiple values if tick or double
quotes is used for specifying argument value.
The default is to check all available rules.
-ignorerules 'rule_name' Rule or group name to be ignored in the rule
checking. The default is no rules should be
ignored. Specifying policy name in place of
rule_name will cause all the rules of that
policy to get ignored.
-norules No rule checking is to be done. Useful when
compiling VHDL libraries.
-ignore_undefined_rules Ignore those rules which are not registered.
Only warning message will appear for
such rules and SpyGlass run will continue.
-addrules <rule-list> runs rules from the <rule-list> in addition to
the rule-set already specified through -rules etc.
-sglib <sglib-file> Specifies the pre-compiled '.sglib' library file
to be loaded.
-plib <plib-files> Specifies PLIB library files. It is recommended to
to compile PLIB library file into an .sglib file
and then use .sglib file for SpyGlass analysis.
-lef <lef-files> Specifies LEF library files. It is recommended to
to compile LEF library file into an .sglib file
and then use .sglib file for SpyGlass analysis.
-sgdc <constraint-file> Specifies the SpyGlass constraints format file
for specification of design constraints to be
used for rule checking.
-dw Enables analysis of DesignWare components
instantiated in the design.
-enable_pgnetlist Enables reading of PLIB files for LowPower Policy.
-noelab Exit SpyGlass after analyzing the design files,
i.e. elaboration does not take place. Useful when
user wants to dump libraries for which elaboration
is not required. No rule-checking is performed.
Reporting Related Options:
=========================
-wdir 'work_dir_path' Specify the directory to be used for keeping
all SpyGlass output files, including .vdb,
.log and schematic data files. The default
is current working directory.
-vdbfile <file.vdb> Define the violation database file -
The default is $(wdirpath)/spyglass.vdb
-logfile <file.log> Define the log file -
The default is $(wdirpath)/spyglass.log
-waiver <Waiver-file> Specifies the SpyGlass waiver constraints format file
for specification of waiver constraints to be
used for rule checking.
-ignorewaivers Ignores the rule waivers due to embedded waiver
pragmas in HDL source description.
-lvpr <number> | The limit on number of violations per rule (lvpr)
-lvpr <rule-name=value> to report; the default is infinity.
Can also be used to specify limit on occurence
of particular rules.
-report <reporttype> When analysis has completed, call the report
generator for the specified <reporttype>.
If this option is not specified then `moresimple'
report is generated.
-noreport No report is generated. Useful if you want to
analyze results separately (in GUI, for example)
-reportfile <file.txt> The generated report is written to this file;
the default file is $(wdirpath)/<reporttype>.rpt.
If you want to see the report on stdout then
use `-reportfile stdout'
-report_max_size=<size> This option provides the flexiblity to change
the sorted report maximum size. By default, the
sorted report size is unlimited and all the
results are shown. However, the user can limit
the size of the report as per need to any
<size> value.
-rulegroup_display_depth=<number> This option provides the flexibility to change
the number of subgroups to be considered for
display in reports and in message Tree.Default value
for this option is 2. If 0 value is specified then
all the subgroups are considered.
-report_per_policy Generate separate reports for each specified
policy.
-report_incr_messages This option is used to set the Incremental Mode
option. This option is useful if you want to compare
the results (messages) of two different SpyGlass runs.
SpyGlass compares the results of the current SpyGlass
run against the results of a previous SpyGlass run.
After the analysis is done with the Incremental Mode
option set, the violation messages in the reports are
categorized into:
* New Messages: These are the additional violation
messages that were not reported in the previous
run but have been reported in the current run.
* PreExisting Messages: These are the violation messages
that were reported in the previous run as well as the
current run.
* Fixed/Missing Messages: These are the violation
messages that were reported in the previous run
but have not been reported in the current run.
reports specific options mentioned in this section
do not affect this section of the reports and this
section is not grouped further.
-old_vdbfile To give the violation database file (vdbfile) of the run
that you want to target as last run. In case this is not
given the SpyGlass will pick up the vdbfile from the
location where it is going to create vdbfile in the
present run.
-define_incr_dirmap This option provides old to new source directory
mapping for spyglass incremental analysis. Old
SpyGlass run might be done for RTL files in
<dir1> while new SpyGlass run can be done for RTL
files in <dir2>. In such a case user needs to
tell SpyGlass that RTL files in new directory
<dir2> are same as those in old direcrory <dir1>
for SpyGlass incremental analysis to work
properly. This mapping can be specified as
-define_incr_dirmap <old_dir> <new_dir>
-sortrule <language>+<rule name>+<sort-order>
Specifies the sort order for messages of a rule
in SpyGlass reports.
-overloadrule <rule name>+<language>+<severity=value><weight=value>
Use this option to overload rule's severity
and/or weight. Please note that all parameters
after rule name are optional. If language is
missing then overload is applied to all existing
personalities of the rule.
-define_severity <policy name>+<severity label>+<severity class>
Use this option to define a new severity label
under a pre-defined SpyGlass severity class for a given
policy.
SpyGlass Design Environment Options:
===================================
spyglass -gui [console | sde]
Used to select between the different modes of GUI.
Console mode guides user through different steps of RTL
analysis and debugging.
'sde' mode opens the tranditional SDE.
If default startup mode is set through the configuration
file, then this switch can be used to override it.
-noispy Disables generation of additional data required
only by SpyGlass GUI interface.
-nosch Disables generation of additional schematic data
required for schematic-based browsing of rule
violations in SpyGlass Design Environment.
-run Causes the design to be immediately analyzed with
the specified settings after the
SpyGlass Design Environment (SDE) is invoked.
Normally, you need to click the RUN button to
start design analysis.
-namevdb <name> Specifies the name of the VDB file for the next analysis
run in the SpyGlass Design Environment (SDE).
The default name is 'spyglass.vdb'.
-disablesplashscreen Disables the appearance of Atrenta splash screen when
the SpyGlass Design Environment (SDE) is starting.
-filter <filter-files> Specifies the filter files (.sfl files).
SpyGlass Console Related Options:
==================================
spyglass -project <project_file_name> [ OPTIONS ]
Used to load the specified project in the GUI.
This option is only valid in the console mode
and will be ignored if used with '-gui sde'
command-line option.
In case of batch mode (-batch specified ),
apart from the console specific options listed
below, only certain non-console options are
supported.Specify 'atleast' one of the options from
the OPTIONS list given below to run console in batch
mode.For more details, Please refer the documentation
for console.
[ OPTIONS ]
-goals <goal name/goal name list>
Specifies the list of Goals to be run. All the
goals specified in this list will be run one by
one by spyglass taking inputs from the project
file.
-designread Used to perform "Design Read" in batch run of
console.
-showgoals Used to print all the goals in the project default
methodology along with their recommended setup status
and run status. In case the goal run is complete, the
corresponding message count by severity is also given,
i.e Error/Info/Warning counts of messages per goal.
-group Spyglass will run the goals specified in the -goals
list and generate combined results for all the goals
run, in a common project working directory.
Perl-Related Options:
====================
-f <file.f> Commands are taken from the file;
one option per line (with an optional value).
Lines beginning with // are ignored.
-I<directory> SpyGlass will first attempt to find scripts ,and
files required from scripts, in the specified
directory, before searching in default locations
(specifically under SPYGLASS_HOME/lib and auxi).
Multiple -I options may be specified and will
be searched in the specified order.
-M<module_syntax> The module is imported via perl's `-M' option.
-m<module_syntax> The module is imported via perl's `-m' option.
-w Turn on warnings both for perl-level compilation
and also for the checker's activities.
HDL Common Options:
==================
-top <du-names-list> Rule Checking will only be done on passed designs
and their hierarchy. However, some language
semantic rules may be checked on full design.
-stop <du-names-list> Skips rule-checking on the specified design units.
-stopfile <file-list> Skips rule-checking on all design units present
in given HDL <file-list>.
-stopdir <dir-list> Skips rule-checking on all design units present
in the rtl source files kept in
<dir-list> directories.
-param {<key=value>} Overrides the value of VHDL generics or Verilog
Parameters used in the design. 'key' should be
<ent-name>.<gen-name> or <module-name>.<param-name>.
-pragma <pragma_name> Specify a prefix for synthesis pragmas;
the default is `synopsys' for Verilog source, and
both 'synopsys' and 'pragma' for VHDL source.
this option can be specified multiple times.
Use '-pragma nopragma' to disable all pragma.
-nobb Forces SpyGlass to exit without processing if any
blackbox is found in the design.
The default behaviour is to allow blackboxes to
be passed in the design.
-lib <logical> <physical> Specify the logical-to-physical mapping for
referenced libraries; the physical locations must
exist but may be multiply used. For example,
-lib STD ~/SPYGLASS_HOME/vhdl_libs/STD
-lib IEEE ~/SPYGLASS_HOME/vhdl_libs/IEEE
-work 'name' Use the logical library `NAME' for compilation
the default value is `WORK'
-hdllibdu Runs pre-synthesis rules on pre-compiled Verilog/VHDL
library design units also (if used in design).
-disable_hdllibdu_lexical_checks
Disallow lexical rule checking on Precompile
Libraries
-enable_hdl_encryption Enables encryption of the hdl library dump.
-disable_encrypted_hdl_checks
Disables rule checking on Encrypted design
units.
-dump_all_modes Causes SpyGlass to create both 32-bit
and 64-bit versions of the pre-compiled HDL
sources irrespective of the architecture.
-remove_work Forces cleanup of work directory, before starting
the design parsing.
+resetall Resets Verilog compiler directive 'default_nettype'
to language default which is 'wire'.
Other Verilog compiler directives are not reset
currently by this option.
It is useful while analyzing multiple design files
where user doesn't want to specify this default
in each of these files.
-libhdlfiles <logical-library-name> '<list of design files>'
Enables SpyGlass to precompile multiple HDL libraries
libraries in a single run. Logical library name must be
mapped to a physical location by -lib command line switch.
Elaboration and Rule Checking is disabled by default unless
-elab_precompile or -top command line switch is specified
or Top level design files have been given.
-libhdlf <logical-library-name> '<list of source files>'
Enables SpyGlass to precompile multiple HDL libraries
libraries in a single run. Logical library name must be
mapped to a physical location by -lib command line switch.
Elaboration and Rule Checking is disabled by default unless
-elab_precompile or -top command line switch is specified
or Top level design files have been given.
-cell_library '<list of logical-library-names>'
Causes SpyGlass to skip rule-checking on design units that
are loaded from the precompiled libraries specified by this
command-line option. However, such units are synthesized
by SpyGlass.
-checkip <du-name>
Causes SpyGlass to limit rule-checking on specific parts
of design hierarchy. SpyGlass considers all those design units
starting from the top in the hierarchy till the design unit
specified by this option for rule checking. All the design
units instantiated under the design unit specified by this
command-line option are also considered for rule
checking.
-checkdu <du-name>
Causes SpyGlass to limit rule-checking on specific parts
of design hierarchy. SpyGlass considers all those design units
starting from the top in the hierarchy till the design unit
specified by this option for rule checking. All the design
units instantiated under the design unit specified by this
command-line option are treated as greyboxes.
-elab_precompile Enables elaboration and rule checking with -libhdlfiles
or -libhdlf command line switch. Rule checking done on last
compiled libarary or Top level design files if
specified.
-force_compile Forces SpyGlass to compile all HDL libraries
specified by -libhdlfile or -libhdlf command line
switch. By default, only out-of-date libraries are
recompiled.
-macro_synthesis_off Sets the macro 'SYNTHESIS' to OFF during design
read. By default, the macro is ON in design read phase
of spyglass run.
VHDL-Specific Options:
=====================
-87 Check for IEEE-1076 VHDL-87 compliance.
-print Print the list of sorted VHDL files & does not
run other analysis. It requires the -vhdl and
-sort options but does not imply them.
-sort Sort the files before analyzing;
this is useful when specifying `*.vhd'
-disable_sort Disable the effect of -sort if -sort has been
enabled through configuration file.
-hdlin_translate_off_skip_text completely ignore the VHDL code between
translate_off/translate_on pragma block.
-hdlin_synthesis_off_skip_text completely ignore the VHDL code between
synthesis_off/synthesis_on pragma block.
-relax_hdl_parsing Performs relaxed VHDL semantic checking
Verilog-Specific Options:
========================
+define+<var1>+... Add the specified macro definitions.
-ignorelibs Disables synthesis and rule-checking of Verilog
modules that are defined using -v/-y options.
+incdir+<path1>+... Search specified paths for include files.
+libext+<ext1>... Specify library directory file extensions.
+stopmodule+<mod>+... Treat the named modules as black-boxes.
+topmodule+<mod>+... Analyze only these modules and their descendants.
-v <file> Specify a library file.
-y <directory> Specify a library directory.
-show_lib Generates info as to which modules are loaded
from -v, -y library along with the library name.
-disablev2k Disable parsing of Verilog 2000/2001 constructs.
It has been enabled by default.
-enableSV Enable parsing of System Verilog constructs.
The default is to give error for System Verilog
constructs.
-sfcu To treat each System Verilog file as separate
compilation unit.
-enable_precompile_vlog Enables the dump of the Verilog modules in a
VHDL like library-mechanism.
Precompiled Verilog modules are restored by
default (without any switch) as in VHDL.
-allow_module_override Allows duplicate module names in Verilog designs.
(The last module definition is used.)
Normally, SpyGlass flags a FATAL violation in such cases.
Synthesis-Specific Options: (are language-independent)
==========================
-nopreserve Remove the hanging nets in the netlist.
Default behaviour is to retain hanging nets.
--sgsyn_loop_limit Specifies the loop unrolling limit during
design synthesis. Default is 2048.
Other SpyGlass Optional Features:
================================
-mthresh <number> Specify a bit-count threshold for the compilation
of memories. Above the threshold, memories will
not be compiled (they are treated as black boxes).
The default value is 4096 bits.
Also see: -handlememory
-handlememory Enables special processing for design containing
large size memory instances.
-check_celldefine By default rule checking is off for `celldefine modules.
If you want to do rule checking on such modules please specify
-check_celldefine on command line.
-allow_celldefine_as_top Enables rule-checking on top modules which are
within Verilog `celldefine directive. By default
such top modules are ignored for rule-checking.
-inferblackbox Infers blackbox module interface based on the
blackbox instances in the synthesized netlist and
writes description to output file: sgBlackbox.v
-inferblackbox_rtl Infers blackbox module interface based on the
blackbox instances in the RTL description in
addition to the synthesized netlist and writes
description to output file: sgBlackbox.v
-disable_inferblackbox Disables the effect of -inferblackbox or
-inferblackbox_rtl if any of these have been
enabled through configuration file.
-higher_capacity Disables those rules that require multiple design
views, and hence, is able to support much larger
design sizes.
-enable_const_prop_thru_seq
Allows constant propagation beyond sequential elements
during logic simulation.
By default, constant propagation stops at sequential elements.
This switch is used by SpyGlass clock-reset and erc policy rules.
-disallow_view_delete Forces RTL design view to be visible during all
phases of rule-checking.
-disable_mmdelete Normally, during synthesis, RTL modules are
deleted as they are synthesized. This switch
forces RTL deletion in one go, after synthesis
has completed.
-LICENSEDEBUG Generates license checkout related debugging
information in the logfile.
-DEBUG Generates additional debugging information in
the logfile.
-enable_sglib_debug Generates functional view summary report for all
cells inside SGLIB.
-enable_cmdline_debug Generates a Command-line processing debug log in
wdir. The debug log contains the tracing of the
internal processing of user-specified command-line
options done by SpyGlass in both BATCH and SDE
mode.
--perflog Generates the SpyGlass performance log (.perflog)
containing details like memory/runtime values of
each rule run and benchmark data for various
stages of SpyGlass run, like analysis, synthesis,
flattening, etc.
(Feature available on 32bit platforms only)
-enable_pass_exit_codes Generates more descriptive SpyGlass Exit Status
Code for successful completion of SpyGlass run.
-lang=<language> Specifies display language of interest. The
display language specification is case-sensitive,
i.e., -lang=ja is different from -lang=JA. The
default display language is English.
-configfile=<config-file> Specified configuration file will be read and
will have priority over configuration files read from
pre-determined locations, namely SPYGLASS_HOME,
user's home directory, and current working
directory.
-support_sdc_style_escaped_name
Allows synopsys-style escaped names in
Spyglass Design Constraint files.
-templatedir Specifies directory from which user wants to
pick a template.It can take single value and
last value overrides all the values given earlier
If not specified Spyglass sets templatedir to
the value specified for DEFAULT_TEMPLATE_DIRECTORY
key in .spyglass.setup
-enable_gateslib_autocompile
Enables auto-compilation of gates library (.lib)
files into '.sglib' library file. The generated
.sglib file ('aggregate.sglib') gets stored in
spyglass cache directory (as specified through
-cachedir option) so that it can be reused in
subsequent spyglass runs
-force_gateslib_autocompile
Forces re-compilation of gates library (.lib)
files into .sglib file. Any data present in cache
directory is ignored. In fact, the cache
directory gets updated with the results of the
current compilation
-cachedir <dir> Specifies the location of cache directory for
storing the auto-generated 'aggregate.sglib' file
during auto-compilation of .lib files. In future,
this cache directory can also be used to store
other spyglass data so that the same data can be
reused across multiple spyglass runs
-disable_gateslib_autocompile
Disables auto-compilation of gates library (.lib)
files into '.sglib' library file if the same has
been enabled via .spyglass.setup file. This
switch is ignored if any of
-enable_gateslib_autocompile or
-force_gateslib_autocompile options is also
specified on the command line
Save-Restore related options:
============================
-enable_save_restore enables save-restore capability in SpyGlass.
-dbdir <database-directory> specifies the design save directory when
working in the Design Save/Restore mode.
-force_save forces design save.
-force_restore forces design restore if possible.
-savepolicy | -savepolicies <policy-name-list>
specifies policies to be saved in addition to
policies given through -policy/-policies option.
-skip_rules_for_fast_restore Disables all those rules which do not allow SpyGlass
to run in full design restore mode.
-nosavepolicy <policy-name-list>
Specifies the policies (not specified with the -policies/
-savepolicies command-line options) for which the
design views should not be saved by default.
SpyGlass options for Power Estimation Policy:
============================================
-target <lib-name-list> Specifies libraries to be used for technology
mapping out of the specified SGLIB libraries.
By default, all specified SGLIB libraries are used
for technology mapping.
-use_scan_flops Causes SpyGlass to use a scan flip-flop if it fails to
find a normal (non-scan) flip-flop for mapping.
-preserve_mux Enables Spyglass to pick mux cells from the technology library
for mapping muxes in a user design.
When this switch is specified, SpyGlass gives priority to the
mux cells present in the technology library rather than a mux
implementation in terms of more basic cells from the technology
library. If mux cells are not present in the technology library,
Spyglass selects the mux implementation in terms of more basic
cells from the technology library.
-sgsyn_clock_gating Causes SpyGlass to create a simple clock gating logic
instead of creating a MUX-based enable logic
when 16 or more flip-flops with the same clock signal
and the same enable signal are found.
Use '-sgsyn_clock_gating_threshold' option to
specify your own number.
-sgsyn_clock_gating_threshold <num>
Specifies the number (default 16) of flip-flops beyond
which SpyGlass create a simple clock gating logic
for flip-flops with the same clock signal and
the same enable signal.
Spyglass aggregate report generation related options:
====================================================
-gen_aggregate_report <report_name>
Used to generate the specified aggregate report. The report_name may
be project_summary or datasheet.
-config_file <config_file> Specify a configuration file having project files path or classic dump directory path
for which aggregate report needs to be generated.
-project <project_file> Specifies the name of a single project file. This option is considered only if the
-config_file option is NOT specified. In such cases, Console accepts the specified
project file as the input. If you have specified both the -config_file and -project
options, Console ignores the -project option and considers the -config_file option.
-aggregate_reportdir <output directory>
The user can optionally redirect generated aggregate reports to a directory specified
with '-aggregate_reportdir". By default, the aggregate reports are generated in
directory "./aggregate_reports".
SpyGlass Exit Code 0 (Informational command executed, rule-checking not done)