SpyGlass Console UserGuide
SpyGlass Console UserGuide
User Guide
Version O-2018.09, September 2018
Copyright Notice and Proprietary Information
©2018 Synopsys, Inc. All rights reserved. This Synopsys software and all associated
documentation are proprietary to Synopsys, Inc. and may only be used pursuant to the
terms and conditions of a written license agreement with Synopsys, Inc. All other use,
reproduction, modification, or distribution of the Synopsys software or the associated
documentation is strictly prohibited.
Disclaimer
SYNOPSYS, INC., AND ITS LICENSORS MAKE NO WARRANTY OF ANY KIND, EXPRESS
OR IMPLIED, WITH REGARD TO THIS MATERIAL, INCLUDING, BUT NOT LIMITED TO,
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE.
Trademarks
Synopsys and certain Synopsys product names are trademarks of Synopsys, as set forth
at http://www.synopsys.com/company/legal/trademarks-brands.html.
All other product or company names may be trademarks of their respective owners.
Third-Party Links
Any links to third-party websites included in this document are for your convenience
only. Synopsys does not endorse and is not responsible for such websites and their
practices, including privacy practices, availability, and content.
Synopsys, Inc.
690 E. Middlefield Road
Mountain View, CA 94043
www.synopsys.com
Report an Error
The SpyGlass Technical Publications team welcomes your feedback and suggestions on
this publication. Please provide specific feedback and, if possible, attach a snapshot.
Send your feedback to spyglass_support@synopsys.com.
Contents
Preface........................................................................................17
About This Book .................................................................................... 17
Contents of This Book ........................................................................... 18
Typographical Conventions ................................................................... 19
v
Feedback Synopsys, Inc.
Adding Files in GUI ..........................................................................36
Specifying Functionality Information of Gate Cells ................................42
Specifying a List of .sglib Files ...........................................................44
Specifying Compressed Verilog Designs ..............................................44
Mapping File Extensions....................................................................45
Rearranging HDL Files ......................................................................46
Performing Version Control................................................................46
Editing Files ....................................................................................47
Setting Stop Files.............................................................................50
Ignoring Files from SpyGlass Analysis .................................................50
Waiving Messages by File ..................................................................51
Viewing Include Files ........................................................................51
Configuring Columns ........................................................................51
Viewing and Changing Design Read Options ............................................52
Using Verilog Constructs ...................................................................54
Running Design Read ...........................................................................55
Running Design Read in GUI..............................................................55
Running Design Read in Batch ...........................................................58
Checks Performed During the Design Read Process...............................58
Viewing Messages after Running Design Read ......................................59
Identifying Common Syntax Errors and Issues .....................................59
Tips for Debugging Syntax Errors .......................................................60
Viewing Reports...............................................................................60
Viewing Source Files ........................................................................62
Searching Instances .........................................................................62
Stage 2: Selecting a Goal (Goal Setup & Run) ....................................... 64
Selecting a Goal ..................................................................................65
Modifying a Goal ..............................................................................67
Running Custom Goals .....................................................................72
Running Goals in Parallel...................................................................72
Viewing Directories Created After Goal Run .........................................81
Setting up the Goal ..............................................................................93
Determining Parameter Precedence ....................................................93
Setting Parameters and Constraints for Selected Goal ...........................93
Performing Sanity Checks for Parameters .......................................... 101
Using the Dual Design Read (DDR) Flow............................................ 101
Incremental Mode Analysis.............................................................. 108
Setting Up the Goal in Batch Mode ................................................... 109
The Methodology Configuration System ................................................ 109
Running Prerequisite Goals.................................................................. 109
Working with Scenarios ...................................................................... 111
vi
Synopsys, Inc. Feedback
Creating Scenarios......................................................................... 112
Modifying and/or Deleting Scenarios................................................. 114
Running Scenarios ......................................................................... 114
Directory Structure Created After Running a Scenario ......................... 115
Stage 3: Analyzing a Design (Analyze Results) ....................................116
Editing Source Files ........................................................................... 117
Viewing Goal Summary ...................................................................... 117
Comparing Results of Multiple SpyGlass Runs ........................................ 118
Introducing the Incremental Mode Feature ........................................ 118
Using the Incremental Mode Feature ................................................ 119
Comparison Reported in Batch......................................................... 120
Viewing Different Type of Results ......................................................... 120
Design Results .............................................................................. 121
SpyGlass CDC Solution Results ........................................................ 122
SpyGlass Constraints Solution Results .............................................. 122
SpyGlass TXV Solution Results ........................................................ 122
SpyGlass DFT Solution Results ........................................................ 124
Power Results ............................................................................... 125
Viewing Results of Different Scenarios and Goals ................................... 126
Cross-probing from the Msg Tree Page.................................................. 126
vii
Feedback Synopsys, Inc.
Structure of Precompiled Verilog Libraries ......................................... 142
Library Searching Mechanism .......................................................... 142
Working with Precompiled Verilog Libraries in Mixed Language Mode ..... 143
Specifying Verilog Libraries by Using the 'uselib Statement .................. 146
Compiling Libraries in Mixed-Language Designs...................................... 146
VHDL Library Design Units Instantiated in Verilog Modules................... 147
Verilog Modules Instantiated in VHDL Design Units ............................. 147
Searching Master Instance in Mixed-Language Mode........................... 147
Debugging Issues in Gate Libraries....................................................... 148
Specifying Precompiled Libraries for SpyGlass Analysis............................ 149
Specifying Multiple Technology Libraries of the Same Name ................. 150
Using Intermediate Logical Library Name Support in VHDL ...................... 151
Working with Compressed Gate Library Files.......................................... 153
Working with Encrypted Compiled Libraries ........................................... 154
Creating Encrypted Library Dump..................................................... 154
Using Encrypted Library Dump......................................................... 155
Viewing Built-In Messages for Precompiled Libraries ............................... 156
Impact of the addrules Option While Using Pre-compiled Dump ............ 159
Impact of the ignorerules Option While Using Pre-compiled Dump ........ 159
Mapping a File Extension with a Compilation Language ........................... 160
Inferring Language from File Extension During Compilation ................. 161
Specifying Compilation Options in a Source File.................................. 165
Specifying Files in the Order of Their Dependencies ............................ 166
Compiling Verilog Files Containing SystemVerilog Keywords ..................... 167
Compiling the Set of Verilog and SystemVerilog Files Separately........... 167
Using File Extension Based Compilation Flow ..................................... 168
Working with Encrypted Design Files .................................................. 170
Introducing the Use Model for IP Encryption in SpyGlass ......................... 170
Encrypting IPs by Using the spyencrypt Utility ....................................... 171
Arguments of the spyencrypt Utility.................................................. 172
Encrypting IPs Spread Across a Hierarchical Directory Structure ........... 175
Viewing Encryption Summary in a Report .............................................. 176
Specifying Encrypted Files for SpyGlass Analysis .................................... 177
Specifying Encrypted Files through GUI............................................. 177
Specifying Encrypted Files through a Project File ................................ 180
Working with Mixed-Language Designs............................................... 182
Instantiating Verilog Modules in VHDL Architectures ............................... 182
Instantiating as Component Instance................................................ 182
Instantiating as Entity Instance ....................................................... 184
Instantiating VHDL Design Units In Verilog Modules ................................ 186
Examples of Instantiating VHDL Design Units in Verilog Modules .............. 187
viii
Synopsys, Inc. Feedback
Mapping Data Types........................................................................... 189
Mapping between VHDL Generics and Verilog Parameters .................... 189
Current Limitation with Mixed-language Designs in SpyGlass ................... 190
Working with DesignWare® Modules ...................................................192
Prerequisites for Enabling DesignWare Flow........................................... 192
Specifying Path of DesignCompiler Installation....................................... 192
Enabling the DesignWare Flow............................................................. 193
Reusing Netlist of DesignWare Modules during SpyGlass Analysis ............. 194
List of DesignWare Modules Supported in SpyGlass ................................ 195
Using DesignWare Functions ............................................................... 198
Specifying Pragmas in HDL Code ..........................................................199
Supported Pragmas for Verilog ............................................................ 199
Supported Pragmas for VHDL .............................................................. 199
Working with Black Boxes....................................................................200
Inferring Black Boxes ......................................................................... 200
Understanding the Black Box Inference Feature ................................. 201
Using the Black Box Inference Feature.............................................. 202
Checking the Inferred Information ................................................... 202
Using the Corrected Inferred Information.......................................... 204
Stopping Black Box Analysis................................................................ 204
Handling Out of Memory Situations ......................................................205
Reporting Messages at Module Boundary .............................................206
Identifying Modules ........................................................................... 206
Enabling the Feature .......................................................................... 207
Impact of the Feature ........................................................................ 207
Controlling the RTL Synthesis Engine ...................................................208
Limiting Analysis of Memories.............................................................. 208
Preserving all instances and nets in a design ......................................... 209
Interpreting Synthesis Pragmas ........................................................... 209
Interpreting Synthesis Pragmas ....................................................... 210
Managing the Design Hierarchy............................................................212
Specifying a Top-level Design Unit ....................................................... 212
Advantage of Specifying a Top-Level Design Unit................................ 212
Setting a Top-Level Design Unit ....................................................... 213
Multiple Top-Level Design Units ....................................................... 214
Language-Specific Behavior While Specifying a Top-Level Module ......... 215
Stopping Design Units ........................................................................ 216
Implications After Stopping Design Units........................................... 217
Checks Performed on Stopped Design Units....................................... 218
Using the Top and Stop Features Together............................................. 218
ix
Feedback Synopsys, Inc.
Ignoring Files and Design Units From SpyGlass Analysis.......................... 220
Difference between Ignored and Stopped Design Units........................ 221
Ignoring Files Containing Design Units .............................................. 221
Ignoring Individual Design Units ...................................................... 222
Analyzing Selective Design Hierarchy.................................................... 225
Working with 'celldefine Modules ........................................................ 226
Performing Rule-Checking on 'celldefine Modules.................................... 226
Performing Hierarchical Rule-Checking in 'celldefine Modules ................... 227
x
Synopsys, Inc. Feedback
Customizing Goals ............................................................................. 269
Including and Inheriting GuideWare Goals............................................. 269
Including/Inheriting Goals in a Goal File............................................ 270
Including/Inheriting Goals in the MCS Window ................................... 277
Viewing and Adding Options for an Included or Inherited Goal ............. 278
Viewing Rules and Parameters of Included/Inherited Goals .................. 279
Enabling/Disabling Rules of a Parent Goal ......................................... 280
Selecting a Custom Methodology..........................................................281
Comparing Methodologies ....................................................................284
Merging the Differences...................................................................... 286
Copying and Inheriting Methodologies .................................................287
Copying a Methodology ...................................................................... 287
Inheriting a Methodology .................................................................... 288
Specifying a Reference Environment Variable..................................... 289
Specifying an Additional Path .......................................................... 289
Migrating Custom Goals .......................................................................291
Comparing Goals ............................................................................... 291
Viewing the HTML Report for Comparison.......................................... 296
Migrating Goals ................................................................................. 297
Order File .............................................................................................298
Viewing Order of Goals Defined in an Order File ................................. 299
Format of an Order File .................................................................. 299
Map File ...............................................................................................302
xi
Feedback Synopsys, Inc.
Defining Variables .......................................................................... 315
Using Variables.............................................................................. 315
Handling Duplicate Constraint Specifications ...................................... 318
Handling Nets Declared in a Sequential Block ..................................... 319
Conditionally Specifying SGDC Constraints .......................................... 320
Using the SG_OPERATING_MODE Variable............................................. 321
Example of Using the SG_OPERATING_MODE Variable ........................ 322
Processing of SGDC Files ..................................................................... 327
Parsing SGDC Files............................................................................. 327
Performing Syntax Checking in SGDC Files ............................................ 327
Processing SpyGlass Design and Waiver Pragmas ............................... 328
Recognizing Clocks.............................................................................. 330
Converting SDC Attributes into SGDC Commands ................................ 331
Enabling the SDC-to-SGDC Translation Feature ...................................... 331
Changing the Default Hierarchy Separator of the SDC2SGDC Constraints... 332
Specifying the Mode of Domain Inference.............................................. 333
Inferring cdc_false_path for Clocks in Different Domains ......................... 334
Capturing Domain Inferring Results ...................................................... 335
Handling of Generated Clocks .............................................................. 336
Handling Mutually Exclusive Clocks....................................................... 339
Handling Directional Clocks ................................................................. 339
Translating set_clock_sense command .................................................. 340
Translating set_disable_timing command .............................................. 340
Translating set_mode command........................................................... 341
Saving the Generated SGDC Commands in a File ................................... 341
Specifying the Mode of an SDC File ...................................................... 341
Understanding Different Flows for Using This Feature.............................. 342
Generating SGDC Commands as a Part of Goal Run ............................ 342
Generating SGDC Commands as a Part of Design Read ....................... 342
Support for Virtual Clocks in sdc2sgdc Flow ........................................... 343
Virtual to Real Clock Mapping .......................................................... 344
Limitations........................................................................................ 344
Importing Block-Level SGDC Commands to Chip-Level ........................ 346
Creating a Migration File ..................................................................... 346
Constraints Migrated From Block-Level to Chip-Level .......................... 347
Generated Hierarchical SGDC File(s)................................................. 348
Validating the Generated Hierarchical SGDC File..................................... 349
Implementing Scoping in SGDC Commands ......................................... 351
Wildcard Support at Top-Level ......................................................... 353
xii
Synopsys, Inc. Feedback
Conflict Resolution at Top-Level ....................................................... 353
Scoping When Design is at the Block-Level............................................ 354
Wildcard Support at Block-Level ...................................................... 355
Conflict Resolution at Block-Level..................................................... 355
Handling SystemVerilog Objects in SGDC .............................................357
Handling SystemVerilog Interface Port/Terminal ..................................... 357
Handling SystemVerilog Interface Containing a Modport.......................... 357
Handling SV Structure or Union ........................................................... 358
Handling for-generate Constructs......................................................... 359
xiii
Feedback Synopsys, Inc.
Details of the waive Constraint ........................................................ 386
Examples of Using the waive Constraint ............................................ 389
Using Regular Expressions and Wildcard Characters............................ 390
Support for Hierarchical Waivers ...................................................... 400
Waiving Messages by Using SpyGlass Pragmas ...................................... 402
Waiving Rule Messages for a Block of Code........................................ 404
Waiving Rule Messages for a Single Line of Code ................................ 406
Ignoring the SpyGlass Waiver Pragmas ............................................. 411
Waiving Messages in Waiver/SGDC Files............................................ 411
Existing Waiver Support in SpyGlass................................................. 412
Tagging Messages ............................................................................... 413
Adding a Tag ..................................................................................... 413
Modifying a Tag ................................................................................. 414
Deleting a Tag ................................................................................... 415
Handling SpyGlass Built-In Messages.................................................. 416
Handling Syntax Error Messages ...................................................... 416
Handling Language Warning Messages .............................................. 416
Handling Synthesis Warning Messages .............................................. 416
Handling Synthesis Error Messages .................................................. 417
Handling Internal Messages............................................................. 417
xiv
Synopsys, Inc. Feedback
Generating the Datasheet Report through a Project File .......................... 444
Recommended Goals for Generating DataSheet Report ........................... 446
Details of the DataSheet Report........................................................... 449
IO Definitions................................................................................ 451
Clock Trees ................................................................................... 452
Reset Trees................................................................................... 453
Power .......................................................................................... 454
Power Clocks ................................................................................ 455
Constraints ................................................................................... 456
Testability..................................................................................... 457
Design Statistics............................................................................ 458
Black Boxes .................................................................................. 459
Timing ......................................................................................... 459
Congestion ................................................................................... 460
The DashBoard Report .........................................................................462
Licensing Requirements ...................................................................... 464
Browser Compatibility ........................................................................ 464
Generating Dashboard Report ............................................................. 464
Generating the DashBoard Report through Project File ........................ 465
Generating the DashBoard Report in Batch........................................ 465
Generating Dashboard Report in GUI ................................................ 467
Creating a Configuration File ........................................................... 469
Tcl Format Support in the Configuration File ...................................... 471
Creating the Success Criteria File ..................................................... 473
Viewing the DashBoard Report ............................................................ 492
Details of the DashBoard Report .......................................................... 493
SoC Dashboard ............................................................................. 493
Module Dashboard ......................................................................... 500
Customizing Report............................................................................ 504
Including Product-Specific Data in the Report .................................... 505
Customizing the Report Header ....................................................... 507
Managing Reports .............................................................................. 509
Archiving and Managing Data Generated After Running Goals .............. 509
Generating the HTML Goal Summary Page ........................................ 511
Switching to the Old Dashboard Report................................................. 515
Goal Summary......................................................................................516
Managing Datasheet and Dashboard Reports .......................................518
Appendix...................................................................................519
Supported HDL Directives ....................................................................519
xv
Feedback Synopsys, Inc.
Re-using Simulation Scripts ................................................................ 521
Project File Details .............................................................................. 523
Creating a Project File ........................................................................ 523
Structure of a Project File ................................................................... 523
Data Import Section....................................................................... 524
Common Options Section ................................................................ 525
Goal Setup Section ........................................................................ 529
Example of a Tcl-based Project File................................................... 534
Supported Library Cells ....................................................................... 536
Combinational Cell Support ................................................................. 536
Sequential Cell Support ...................................................................... 536
Precompiling Multiple Libraries in a Single SpyGlass Run .................... 539
Features of Single Step Precompilation ................................................. 540
Makefile Based Support in Step Precompilation ...................................... 541
Combining Single-Step Precompilation and Top-level Run ........................ 542
Goals That Do Not Use Default Parameter Value ................................. 544
Sample Order File................................................................................ 555
xvi
Synopsys, Inc. Feedback
Preface
17
Feedback Synopsys, Inc.
Preface
Section Description
Introducing Atrenta Console About Atrenta Console
Using Atrenta Console Graphical User The Atrenta Console Basic Operating Principles
Interface
Working with Input Design and Libraries Describes all aspects of reading a design in Atrenta
Console.
Working with Methodologies The Atrenta Console Methodology Configuration
System (MCS)
Working with SpyGlass Design Constraints SpyGlass Design Constraints Feature
Working with SpyGlass Messages Features to control SpyGlass Messages
Working with Aggregated Reports The Atrenta Console Reports
Appendix Details of various other features in Atrenta Console
18
Synopsys, Inc. Feedback
Preface
Typographical Conventions
Typographical Conventions
This document uses the following typographical conventions:
Syntax Description
[ ] (Square brackets) An optional entry
{ } (Curly braces) An entry that can be specified once or multiple
times
| (Vertical bar) A list of choices out of which you can choose
one
... (Horizontal Other options that you can specify
ellipsis)
19
Feedback Synopsys, Inc.
Preface
Typographical Conventions
20
Synopsys, Inc. Feedback
Introducing Atrenta
Console
Overview
Atrenta® Console is used to solve various design issues in the early stages
of the design development process.
To solve design issues early in the design development cycle, Atrenta
Console provides you a pre-packaged set of goals and methodologies
called GuideWare™.
Introducing Goals
A goal is a pre-packaged set of rules that detects specific types of design
issues. For example, the connectivity goal contains rules that checks
for basic connectivity issues in a design. Similarly, the simulation goal
contains rules that checks for basic simulation issues in a design.
When you run a goal after specifying design files in Atrenta Console all
rules of that goal are run. Once the goal run is complete, appropriate
violation messages are reported to indicate design issues.
Details of goals are specified in Goal Files (.spq files).
21
Feedback Synopsys, Inc.
Introducing Atrenta Console
Overview
Introducing Methodologies
A methodology is a collection of sub-methodologies or a collection of goals.
Each sub-methodology may further contain sub-methodologies or a set of
goals.
You can load the required methodology or sub-methodology that contains
the required goals. For details on loading a methodology, see Specifying an
Active Methodology.
22
Synopsys, Inc. Feedback
Introducing Atrenta Console
23
Feedback Synopsys, Inc.
Introducing Atrenta Console
24
Synopsys, Inc. Feedback
Introducing Atrenta Console
the SpyGlass GUI and want the design to be immediately analyzed after
invoking the SpyGlass GUI.
You must provide all essential SpyGlass command-line options with the
-run command-line option. Otherwise, the design will not be analyzed.
You can either abort the current session or continue the session by clicking
the Abort or Continue buttons, respectively.
25
Feedback Synopsys, Inc.
Introducing Atrenta Console
GUI Details
GUI Details
When you start a new session, the following page appears:
Menu bar
Ribbon bar
HDL libraries
section
SGDC files
section
Tech libraries
section
Session log
Status bar
26
Synopsys, Inc. Feedback
Introducing Atrenta Console
GUI Details
27
Feedback Synopsys, Inc.
Introducing Atrenta Console
28
Synopsys, Inc. Feedback
Introducing Atrenta Console
29
Feedback Synopsys, Inc.
Introducing Atrenta Console
Project File
A project file (.prj) contains the following data about a particular Atrenta
Console session:
Input HDL files and language settings
Run options
State of project (design read, goal setup, goal run, or results analysis)
Constraint files and parameter settings for goals
Status of goal setup and analysis
For details on creating a project file, see Creating a Project File.
When you load a project file in Atrenta Console GUI, the stage at which you
last closed the session gets loaded with all the saved data. For more details
on a project file, see Structure of a Project File.
By default, a project file is saved in the current working directory. You can
specify a different directory by using the File > Save Project As menu option.
NOTE: You can also create a project file using a Tcl (Tool Command Language) scripting
interface. This enables you to configure an Atrenta Console batch session without
using the Atrenta Console GUI.
30
Synopsys, Inc. Feedback
Introducing Atrenta Console
31
Feedback Synopsys, Inc.
Introducing Atrenta Console
32
Synopsys, Inc. Feedback
Introducing Atrenta Console
product-specific reports.
spyglass_spysch
This directory contains internally generated files that are used for
internal SpyGlass processing or to support GUI features. This directory
is saved in the current working directory.
spyglass.vdb
This file stores all the violations generated during SpyGlass run.
33
Feedback Synopsys, Inc.
Introducing Atrenta Console
34
Synopsys, Inc. Feedback
Using Atrenta Console
Graphical User Interface
Overview
This chapter discusses the following stages of Atrenta Console:
Stage 1: Setting up the Design (Design Setup)
Stage 2: Selecting a Goal (Goal Setup & Run)
Stage 3: Analyzing a Design (Analyze Results)
35
Feedback Synopsys, Inc.
Using Atrenta Console Graphical User Interface
36
Synopsys, Inc. Feedback
Using Atrenta Console Graphical User Interface
SGDC files The files are .sgdc files that read_file -type sgdc
contain SpyGlass design <filename>
constraints. These design Example:
constraints are used to provide read_file -type sgdc
additional design information that constraints.sgdc
is not apparent in the RTL.
37
Feedback Synopsys, Inc.
Using Atrenta Console Graphical User Interface
2. Click the File(s) option to add the HDL files or the HDL Lib(s) option to add
HDL libraries.
3. Click the Look In drop-down list to select a directory containing the
required files.
4. For HDL files, select the file type from the Filter drop-down list.
For HDL library files, select the directory containing the files and specify
a logical library name in the Logical Library Name text field.
NOTE: The Logical Library Name text field appears only when you click the HDL Lib(s)
option.
5. Select the required file, and click the Add button to add that file.
38
Synopsys, Inc. Feedback
Using Atrenta Console Graphical User Interface
With HDL files, you can add all files present in the directory by clicking
the Add All button.
NOTE: If you are adding HDL library files, you can add the directory that contains the
HDL files.
6. Click the OK button to close the dialog.
NOTE: If you want to remove a file that you have added in the Add File(s) dialog, select
that file and click the Delete button. To remove all the added files, click the Delete
All button.
After performing the above steps, the specified files appear under
appropriate sections, such as HDL Files, SGDC Files, HDL Libraries, and Tech
Libraries, depending upon the type of the file selected.
The following figure shows various sections containing different files:
39
Feedback Synopsys, Inc.
Using Atrenta Console Graphical User Interface
Placing the mouse pointer over a file in any of these sections displays a
tool-tip showing the path, size, and last modified date of that file.
40
Synopsys, Inc. Feedback
Using Atrenta Console Graphical User Interface
depending upon the file type. You cannot edit files that are grayed out.
A source file should contain HDL files and HDL-related directives. For
example, you can specify a Verilog library directory by using the -y
<path> command.
Atrenta Console accepts many of the same HDL directives as some popular
simulation tools in the source file, and HDL code directly supports some
directives. For a list of supported HDL directives, see Supported HDL
Directives. For HDL directives that differ by tool, see Re-using Simulation
Scripts for the conversion to Atrenta Console project format.
NOTE: If an option (design file or other design option) added through a source file is
already present in a project file, the option added through the source file gets
higher precedence. This means that the option specified through the source file
overrides the option present in the project file.
41
Feedback Synopsys, Inc.
Using Atrenta Console Graphical User Interface
If you want to remove the file from a project file, delete the
corresponding read_file command that you specified to add this file.
If you are working in sg_shell and the file is already added, then use the
remove_file command. For example, the following command would
remove all HDL files:
remove_file -type hdl
You cannot remove a single HDL file in the sg_shell mode.
To remove a source file, right-click on the file name and select the Delete
Source List File shortcut menu option.
To remove multiple files from the HDL Files, HDL Libraries, and Tech Libraries
sections, perform the following steps:
1. Press and hold the <Ctrl> key on the keyboard and select the files that
you want to delete.
2. Click the Delete File(s) link or press the <Delete> key on the keyboard.
42
Synopsys, Inc. Feedback
Using Atrenta Console Graphical User Interface
43
Feedback Synopsys, Inc.
Using Atrenta Console Graphical User Interface
NOTE: If you also specify a .lib file by using the gateslib command, SpyGlass ignores that
.lib file and picks functionality information of gate cells from the specified VHDL file.
44
Synopsys, Inc. Feedback
Using Atrenta Console Graphical User Interface
Specify the name of the compressed file in a source file (.f file), and
specify that source file in Atrenta Console by using the following project
file command:
read_file -type sourcelist <source-file-name>
45
Feedback Synopsys, Inc.
Using Atrenta Console Graphical User Interface
3. In the above dialog, click the file type in the Extension(s) column.
Extension(s) column becomes editable.
The selected cell in the
4. Now enter the required extension name in that cell in the Extension(s)
column.
NOTE: Specify extension names as a space-separated list.
46
Synopsys, Inc. Feedback
Using Atrenta Console Graphical User Interface
Editing Files
You can edit files, such as HDL files, libraries, and source files.
47
Feedback Synopsys, Inc.
Using Atrenta Console Graphical User Interface
2. Specify the new alias of the file in the Library Name column.
3. Click ( ) to browse to the directory that contains the new library file.
4. Select the file
5. Click the OK button.
You must specify both the logical name and the path of the library. The
logical name is the name of the library as you used it when creating a
precompiled Verilog library or in your VHDL description. The physical
library name is the complete path name of the library file.
If you change an entry in the HDL Libraries section, SpyGlass performs the
following sanity checks:
Filename existence check
If you have not specified any RTL file for a particular precompile
mapping, the corresponding library appears in red and the following
message appears in a tool-tip:
No filename specified
Empty file check
SpyGlass checks the size of the RTL file being used. If the file size of all
the specified RTL files is zero, the corresponding library appears in red
and the following message appears in a tool-tip.
All files are of Zero size
Read permission check
If an RTL file being used is read-only, the corresponding library appears
in red and the following message appears in a tool-tip.
Following files are not readable:
- <file-name>
Where, <file-name> is the name of the RTL file(s).
48
Synopsys, Inc. Feedback
Using Atrenta Console Graphical User Interface
49
Feedback Synopsys, Inc.
Using Atrenta Console Graphical User Interface
50
Synopsys, Inc. Feedback
Using Atrenta Console Graphical User Interface
Configuring Columns
To display or hide columns appearing in the HDL Files, SGDC Files, and Tech
Libraries sections, perform the following steps:
1. Right-click on any section, and select the Configure Columns option from
the shortcut menu.
51
Feedback Synopsys, Inc.
Using Atrenta Console Graphical User Interface
2. Select the column name in the Hidden Columns or Visible Columns section.
3. Click or to show or hide the selected column.
4. You can also rearrange the column order in the Visible Columns section by
clicking or buttons.
52
Synopsys, Inc. Feedback
Using Atrenta Console Graphical User Interface
53
Feedback Synopsys, Inc.
Using Atrenta Console Graphical User Interface
Multidimensional arrays Array bit and part selects Signed-up, net and port
declarations
54
Synopsys, Inc. Feedback
Using Atrenta Console Graphical User Interface
55
Feedback Synopsys, Inc.
Using Atrenta Console Graphical User Interface
56
Synopsys, Inc. Feedback
Using Atrenta Console Graphical User Interface
57
Feedback Synopsys, Inc.
Using Atrenta Console Graphical User Interface
Help section
58
Synopsys, Inc. Feedback
Using Atrenta Console Graphical User Interface
Severity Description
FATAL Indicates a critical problem preventing further processing.
You must fix such violations before proceeding to the next stage.
ERROR Indicates a serious problem affecting design quality or analysis and
should be resolved.
It is highly recommended to resolve or reconcile all such
messages.
WARNING Indicates a problem that might be serious.
It is highly recommended to review all such messages to check for
possible problems.
INFO Indicates an informational message about the design.
Such messages can provide further design and analysis
information that helps in the debugging of various errors and
warnings.
While reviewing the output of design read, check the bottom of the run log,
spyglass.log, for a summary of messages by severity. Each run contains the
moresimple.rpt report that contains details of each message.
59
Feedback Synopsys, Inc.
Using Atrenta Console Graphical User Interface
Viewing Reports
SpyGlass provides several predefined report formats to display violation
messages or redirect reports to files for later review.
You can view these reports in any of the following ways:
By selecting the required report from the Tools -> Report menu option.
60
Synopsys, Inc. Feedback
Using Atrenta Console Graphical User Interface
By selecting the required report from the Reports option in the Results
pane.
The results summary displays the number of error messages found in the
design.
Certain error messages in the results summary are prefixed with two
asterisks (* *). It is recommended that these errors are fixed before
proceeding further.
To fix the issues in the design, load the source files in the Source section as
explained in the Viewing Source Files section.
61
Feedback Synopsys, Inc.
Using Atrenta Console Graphical User Interface
In the above page, double-click on the required file (source file or include
file) from the File View page to load the contents of that file in the Source
section.
You can edit a file by clicking the Edit File link on the navigation bar located
at the left of the Source window.
After you have cleaned the design from any fatal errors, re-run design
read.
Searching Instances
To search an instance in the Instances View page, perform the following
steps:
62
Synopsys, Inc. Feedback
Using Atrenta Console Graphical User Interface
1. In the Search section parallel to the menu bar, select the Instance View
option from the pull-down list, as shown in the following figure:
You can select appropriate option(s) from the above list to qualify your
search.
NOTE: When you select the Search in Hierarchical Path option, only Search Backwards
option is enabled.
63
Feedback Synopsys, Inc.
Using Atrenta Console Graphical User Interface
NOTE: Specify a top-level module in Stage 1: Setting up the Design (Design Setup) before
proceeding to the Goal Setup & Run stage.
In this tab, you can perform various actions, such as selecting goals and
specifying parameters and constraints for the selected goals. Finally, run
the selected goals before proceeding to the next stage, Stage 3: Analyzing a
Design (Analyze Results).
64
Synopsys, Inc. Feedback
Using Atrenta Console Graphical User Interface
Selecting a Goal
To select a goal, click the Select Goal tab.
Under this tab, various goals appear in the order based on the selected
methodology, as shown in the following figure:
The Select Goal tab also displays additional information in various fields, as
described in the following table:
65
Feedback Synopsys, Inc.
Using Atrenta Console Graphical User Interface
TABLE 3
Under the Select Goal tab, you can perform the following actions:
Select goal(s) from the available list.
Select the All option to select all the goals of the current methodology.
Select the None option to deselect all the goals of the current
methodology.
After selecting the required goal(s), click the Run Selected Goal(s) option to
run the selected goal(s).
The Atrenta Console displays the Sequential Mode dialog, if you have
selected multiple goals.
When you select goals for analysis and place the cursor on the Run Selected
Goal(s) link, a tool-tip appears displaying the total number of selected
goals, name of goals, and the methodology/sub-methodology from which
66
Synopsys, Inc. Feedback
Using Atrenta Console Graphical User Interface
Modifying a Goal
You can modify a goal by:
Enabling or Disabling Rules of a Goal
Adding Rules in a Goal
Editing Parameter Values of a Goal
67
Feedback Synopsys, Inc.
Using Atrenta Console Graphical User Interface
68
Synopsys, Inc. Feedback
Using Atrenta Console Graphical User Interface
The following figure shows the Edit Rules dialog for the connectivity
goal:
Search section
In the above dialog, the right-most section displays rules for the selected
goal and the left-most section is the Search section used for searching rules
to be added in a goal.
To add rules in a goal, perform the following steps:
1. Search for a rule that you want to add in a goal in the Search section.
This step is similar to searching rules in the MCS window. For details,
see Searching Rules.
69
Feedback Synopsys, Inc.
Using Atrenta Console Graphical User Interface
Depending upon the specified search criteria, rules appear in the Search
section, as shown in the following figure:
70
Synopsys, Inc. Feedback
Using Atrenta Console Graphical User Interface
The above dialog displays parameters and their values for the current goal.
Viewing Different Types of Parameters List
The above dialog contains the Show drop-down list from which you can
select any of the following options:
In addition to the above options, the Show drop-down list also contains rule
names that are enabled for the selected goal. You can select the required
rule to view all parameters applicable for that rule.
Editing Parameter Values
Modify a value for a parameter in the Value column adjacent to a
parameter.
71
Feedback Synopsys, Inc.
Using Atrenta Console Graphical User Interface
If you want to assign all the parameters to their respective default values,
click the Restore Defaults option.
72
Synopsys, Inc. Feedback
Using Atrenta Console Graphical User Interface
To run the selected goals in parallel, select the Run in Parallel option and
click the Run Selected Goal(s) option.
73
Feedback Synopsys, Inc.
Using Atrenta Console Graphical User Interface
74
Synopsys, Inc. Feedback
Using Atrenta Console Graphical User Interface
75
Feedback Synopsys, Inc.
Using Atrenta Console Graphical User Interface
Argument Description
<num> Specifies the maximum number of processes to be
spawned. This is a mandatory argument.
<bsub-command> Specifies the LSF invocation command.
By default, the value of this argument is bsub.
76
Synopsys, Inc. Feedback
Using Atrenta Console Graphical User Interface
Argument Description
<num> Specifies the maximum number of processes to be
spawned. This is a mandatory argument.
<machine1-name>, Specifies machine names
<machine2-name> If you want to run goals on the current machine itself,
do not specify the MACHINES keyword and machine
names.
In this case, Atrenta Console ignores the LOGIN_TYPE
keyword.
<num-processes> Specifies the number of processes to be spawned on
the specified machine
By default, the value of this argument is 1.
NOTE: If the login type is SSH, the SSH_ID_FILE file contains login details for the SSH
login so that login does not require user name and password. Check the man
page for the ssh login on how to generate this file.
Following is an example of the SSH method:
LOGIN_TYPE: ssh
#LOGIN_TYPE: rsh
MAX_PROCESSES: 5
MACHINES:
engr1: 1
#engr2: 1
ae3: 1
condor1: 4
Using the qsub Command During Parallel Goal Run through LSF
The qsub command is not inherently supported while running goals in
parallel through LSF protocol. You can still, however, use qsub by writing a
wrapper script (say qsub_wrapper) over qsub and specifying it as an
LSF command in the parallel run configuration file. This wrapper script
would dissect the inputs sent to it by SpyGlass and create a command line
suited to qsub.
Parallel run configuration file appears as the following:
LOGIN_TYPE: lsf
MAX_PROCESSES: <num>
LSF_CMD: qsub_wrapper
77
Feedback Synopsys, Inc.
Using Atrenta Console Graphical User Interface
78
Synopsys, Inc. Feedback
Using Atrenta Console Graphical User Interface
#PBS -o output.txt
$SPYGLASS_HOME/bin/sg_shell -32bit -tcl test.tcl
79
Feedback Synopsys, Inc.
Using Atrenta Console Graphical User Interface
80
Synopsys, Inc. Feedback
Using Atrenta Console Graphical User Interface
However, in actual parallel run environment, the runtime is more than the
ideal situation because of the following factors:
Parallel goal run is limited by the number of available machines, and
also by the number of processes allowed to be run on a given machine.
If you want to reduce the parallel runtime further, increase the machine
pool available for parallel goal run, and update your parallel run
configuration file accordingly.
There may be some interdependencies among the goals specified for
parallel run, which could delay running of a goal until its dependent
goals have been run.
Parallel goal run requires some initial setup stage where goals are
checked for their synthesis view requirement and any disk write
operations, such as design precompilation and design save, are
performed. Such setup activities are critical to ensure there are no disk
read/write operations at the same time from different goals when these
are running in parallel.
In parallel goal run, each goal loads policies/design independently. The
time spent in parallel run setup (described in the last point above) plus the
time taken by policies/design load for each parallel goal, should get offset
in parallel goal run if rule-checking time is significant, because rules are
running in parallel.
81
Feedback Synopsys, Inc.
Using Atrenta Console Graphical User Interface
82
Synopsys, Inc. Feedback
Using Atrenta Console Graphical User Interface
When you click on the Central Setup tab, the initial page of the setup wizard
appears, as shown in the following figure:
In the above figure, the left pane displays an index of steps of the Central
Setup wizard, and the right pane displays the description or instructions for
that step. You can navigate through this wizard either by clicking on the
steps directly or by clicking the Back/Next buttons.
NOTE: Some steps have prerequisite steps, and the wizard warns you if you do not follow
those prerequisite steps.
Following is an overview of the steps of this setup wizard:
1. Resolve Blackboxes step
SpyGlass allows undefined modules to be left as black boxes. In many
cases, however, the analysis remains incomplete if there are any
unintentional black boxes in the design. Therefore, it is important to
confirm that all black boxes are expected. To avoid unintentional black
83
Feedback Synopsys, Inc.
Using Atrenta Console Graphical User Interface
boxes, this step finds all the black boxes through design synthesis and
provides guidance on how a real model can be provided.
Click the Next button to run SpyGlass, and find all the black boxes in the
design. If you have run SpyGlass earlier:
Click the Yes button to run SpyGlass again or
Click the Show Last Results button to view black boxes detected in the
last run.
After this, SpyGlass lists all the black boxes in a spreadsheet view, as
shown in the following figure:
84
Synopsys, Inc. Feedback
Using Atrenta Console Graphical User Interface
85
Feedback Synopsys, Inc.
Using Atrenta Console Graphical User Interface
86
Synopsys, Inc. Feedback
Using Atrenta Console Graphical User Interface
Here, Atrenta Console displays a list of the SGDC files that you have
added during the Design Setup stage. You can append more SGDC files to
this list by clicking the Add SGDC File(s) link.
When you select any SGDC file in this list, Atrenta Console displays the
contents of that SGDC file in the Edit File section. You can then make the
required modifications for that SGDC file, and save the changes. Atrenta
87
Feedback Synopsys, Inc.
Using Atrenta Console Graphical User Interface
Console provides various options (such as New File, Save, Save As, etc.)
on the left side of the Edit File section, in which you can perform various
actions.
Once you have specified the SGDC files, click the Next button. This
displays a screen in which you can analyze the clock trees, and tune the
clock definitions. You can skip this step by clicking the Skip button.
However, to proceed with this step, click the Yes button. When you click
the Yes button, Atrenta Console displays the results, as shown in the
following figure:
In the above setup page, click on a clock in the Clock Sources section to
view all its cones in the Clock Cones section. You can also click on a cone
in the Clock Cones section to view all its clock drivers in the Clock Sources
section.
NOTE: Clock cone is the net in the path that is driving clock pin of sequential ele-
ment(s).
88
Synopsys, Inc. Feedback
Using Atrenta Console Graphical User Interface
In the Instance Count field under the Clock Cones section, the following
convention is used to denote different types of objects:
F Flip-flops
B Black boxes
L Latches
C Sequential cells in the clock cone path
Ensure that you remove improper clocks, add missing clocks, put
synchronous clocks into the same domain, set the correct frequencies,
mark test clocks, and save the final clock information in the SGDC file.
You can specify missing constraints in clock path.
4. Design Resets step
This step enables you to set up asynchronous resets in the design.
You can skip this step by clicking the Skip button. However, to proceed
with this step, click the Yes button. When you click the Yes button,
Atrenta Console displays the following screen:
89
Feedback Synopsys, Inc.
Using Atrenta Console Graphical User Interface
90
Synopsys, Inc. Feedback
Using Atrenta Console Graphical User Interface
This step is similar to the previous step in which you can select the
required constraint from the Select Constraint drop-down list, and then
specify the values for various arguments of the selected constraint.
The following page appears during this step:
After specifying the required constraints for black box power, click the
Next button.
7. Blackbox Test step
This step enables you to model a black box for test analysis. Run this
setup step only if test analysis will run. Otherwise, you may skip this
step.
The following page appears during this step:
91
Feedback Synopsys, Inc.
Using Atrenta Console Graphical User Interface
Modeling a black box for test analysis involves categorizing the following
black box types:
Clock generators
Clock gating cells
Resistive cells
Other black boxes
Each of the above black box type requires different type of constraints.
Since these types are mutually exclusive, they appear in four different
screens.
You can refer to the help in the Help section to see the steps for
modeling each type of black box.
8. Setup Closure step
This step enables you to run a sanity check to check if you have
specified constraints properly. You can skip this step by clicking the No
92
Synopsys, Inc. Feedback
Using Atrenta Console Graphical User Interface
button. However, if you want to proceed with this step, click the Yes
button.
After successfully completing the setup closure step, click the Finish
button to close this wizard.
Now, the design has been setup for black boxes, and you can now
review the SGDC files and go to the Select Goal step to setup or run the
other goal(s).
93
Feedback Synopsys, Inc.
Using Atrenta Console Graphical User Interface
NOTE: You can click the Edit Settings Directly button to skip the wizard.
2. Click Run Setup Wizard button to run the wizard. The Setup Summary
page appears, as shown below.
94
Synopsys, Inc. Feedback
Using Atrenta Console Graphical User Interface
The Setup Summary page is divided into the following three sections:
The left section displays a sample SGDC file and the recommended
constraints for the selected goals appear under the Recommended
Constraints. When you left-click, the help link located next to a
constraint the help related to the constraint appears in the right
section of the Constraints page.
You can enable or disable a constraint by selecting the Enabled for Goal
or Disabled for Goal option, respectively, from the drop-down list in the
Status field. You can also toggle goal status of the SGDC file by right-
clicking the file name and selecting the Globally Enable File or Globally
Disable File option from the shortcut menu.
To add a constraints file, perform the following steps:
a. Click the Add SGDC File(s) link.
The Add File(s) dialog appears, as shown in the following figure:
95
Feedback Synopsys, Inc.
Using Atrenta Console Graphical User Interface
b. Browse to the directory that contains the SGDC files and select the
required SGDC file.
c. Click the Add button.
To add all SGDC files, click the Add All button. The selected SGDC files
are appear in the Setup Summary page.
Alternatively, right-click on the Setup Summary page and select the
Add Constraint File(s) option from the shortcut menu to add a
constraints file.
NOTE: Whenever a new constraint file is added during the goal setup stage, that file
is considered as local, that is, enabled for the current goal only. To change
the status of this file to global, right-click the file name and select the Glob-
ally Enable File option from the shortcut menu.
To delete a constraints file, select the constraints file and click Delete
File link. Alternatively, right-click on the constraints file and select the
Delete shortcut menu option or click the <Delete> key on the keyboard.
The leftmost pane also contains a sub section, Other Goal Command
Line Options. In this section, you can provide the goal specific options
that are applicable to the scope of a specific goal.
96
Synopsys, Inc. Feedback
Using Atrenta Console Graphical User Interface
The middle section displays the source of the .sgdc file. You can edit
the file and click Save to save the file.
To create a constraints file, right-click the New File link. The Open New
File dialog appears, in which you can specify the name of the file.
After specifying the required details, click the Open button. The new
file appears in the left section of the Constraints window. Next, you can
enter the code for the new constraints file and click Save to save the
file. You can also click the Save As link to save the file to a different
location.
You can also use the Cut, Copy, and Paste links to copy the text in the
Constraints to any text editor.
The right section displays the help related to the constraint displayed
under Recommended Constraints.
3. After adding the constraints file, click Finish. To move back to the
previous screen of the Setup wizard, click Back. You can also click the
Restart button to go back the first step of the Setup wizard.
When you click the Restart button, Atrenta Console displays a dialog that
prompts you to confirm whether you want to reset the settings for the
current goal. In this dialog, click the Yes button to clear the settings for
the selected goal and go back to the first step. Click the No button to go
back to the first step with the current settings.
NOTE: You can click the Close button at any step to proceed directly to the Constraints
Summary page.
When you set a goal by using the Setup Wizard (or click Edit Settings
Directly button), the Constraints Summary page appears, as shown in the
following figure.
97
Feedback Synopsys, Inc.
Using Atrenta Console Graphical User Interface
The Constraints Summary page displays the SGDC files that you have
included for analyzing your designs for the selected goal.
Like the Setup Summary page, the Constraints Summary page is divided
into three sections as follows:
The left section displays the selected constraints. If you have not used
the Setup wizard to specify the constraints, you can add the constraints
in this section by clicking the Add SGDC File(s) link or by right-clicking
anywhere on the section and selecting the Add Constraint File(s)... shortcut
menu option.
The middle section displays the parameters that you need to set for the
selected goal. By default, this section displays the recommended
parameters that you need to set for the selected goal. You can, however,
view the common parameter list by clicking the Show drop-down list and
selecting the Common Parameters option. In addition, you can view the
complete list of parameters that can be set for the selected goal by
selecting the All parameters option from the Show drop-down menu.
NOTE: The Recommended Parameters option is not available for goals that do not
require additional setup steps.
When you select a parameter, the right section displays the help related
to that parameter.
You can click the Restore Goal settings button to deselect the constraints,
98
Synopsys, Inc. Feedback
Using Atrenta Console Graphical User Interface
restore the parameters to their default values, and restore all the settings
of the current goal.
For a goal that requires additional setup, you can copy the settings
(constraints, parameters, and other settings) from another goal that has a
similar setup so that the settings can be reused. To do this, click the Import
Goal Settings button. Then the Select the goal whose setting you wish to import
dialog appears as shown in the following figure:
Select the required goal whose setting you want to import and click Import.
You can click the Return to Setup Wizard button to navigate to the first step of
the Setup Wizard.
NOTE: This button is visible only if you have set the constraints using the Setup Wizard.
During the Goal Setup closure step, you can select the SGDC files created in
the previous steps, and pass them to the current goal run, or you can
create a top-level SGDC file to be used in some other project. You can do
this by using the following screen of the setup closure step:
99
Feedback Synopsys, Inc.
Using Atrenta Console Graphical User Interface
In the above screen, the Filename section displays a list of SGDC files. If
you click the Next button, the selected SGDC files in this section are
globally enabled.
Now, to specify an SGDC file in which you can add the contents of the
selected SGDC files appearing in the Filename section, select either of the
following options:
Select an existing top-level SGDC file from other location
Select this option to load an existing top-level SGDC file.
Create a new toplevel SGDC File option.
Select this option to create a new top-level SGDC file.
Once you have specified an SGDC file, you can select the following options:
Copy content in top level SHDC File instead of including the file link
Select this option to copy the contents of the selected SGDC files,
appearing in the Filename section, in the specified SGDC file.
Overwrite existing content in the file
Select this option to overwrite the contents of the specified SGDC file
with the contents of the selected SGDC files appearing in the Filename
section.
If you do not select any of the above options, Atrenta Console adds a link
100
Synopsys, Inc. Feedback
Using Atrenta Console Graphical User Interface
101
Feedback Synopsys, Inc.
Using Atrenta Console Graphical User Interface
In the above screen, click the Run Setup Wizard button. This displays the
first screen of the setup wizard that provides a brief overview of SDC
Equivalence Dual Design. Click the Next button to proceed to the next step.
The details of the subsequent steps of this setup wizard are discussed
below:
1. Configure SpyGlass Design Constraint File step
This step enables you to configure your SGDC file correctly. During this
step, the following screen appears:
102
Synopsys, Inc. Feedback
Using Atrenta Console Graphical User Interface
If you want to specify SDC and/or SGDC file, select the Yes option
corresponding to the labels, Do you have SDC file and/or Do you have a
SGDC file, respectively. After selecting the Yes option, click the Next
button. This displays a screen containing a textbox in which you can
specify the required file. Once you have specified the required file, click
the Next button. You can also skip this step without specifying any file by
directly clicking the Next button.
103
Feedback Synopsys, Inc.
Using Atrenta Console Graphical User Interface
When you click the Next button, the following screen appears:
In the above screen, you will set the SGDC constraints. Here, a list of
SGDC files appear that were specified during the design read step. You
can add more SGDC files to this list by clicking the Add SGDC File(s) link.
By default, each SGDC file is enabled for the goal. You can disable an
SGDC file for the goal by selecting the Disable for Goal option from the
drop-down list appearing in the Status field.
When you select an SGDC file in this screen, contents of that file are
displayed in the Edit file section. In this section, you can perform the
required modifications in the SGDC file. On the left side of this section,
Atrenta Console displays various links to perform different actions.
After performing the required actions, click the Next button to proceed to
the next step.
2. Set Reference Design step
In this step, you provide the source file list of your reference design
along with all the associated SGDC files. The first screen of this step
displays an HTML help providing a brief introduction of this step. Click
the Next button to proceed to the next screen, as shown in the following
figure:
104
Synopsys, Inc. Feedback
Using Atrenta Console Graphical User Interface
Here, click the Add File(s) link to add a reference design source list.
To modify a reference design source list, click on that source list file.
This displays the content of the file in the Edit file section. In this section,
you can perform the required updates.
If the reference design was previously analyzed in Atrenta Console and
the HDL files are listed explicitly, that project file can be added instead
of the source list file. It is recommended to run the reference design
through the design read process before being used with SDC
Equivalence analysis. This will help ensure that the reference design
itself is complete and lint-clean.
After specifying the reference design, click the Next button to proceed to
the next step.
3. Set Parameters step
This step is used to generate the design equivalence file. This file maps
ports, registers, and any intermediate design object used in the SDC
files of one design to another. At the end of the run, you can review the
generated file.
The following screen appears during this step:
105
Feedback Synopsys, Inc.
Using Atrenta Console Graphical User Interface
If you already have a design equivalence file that you want to use,
select the No button in the above screen, and specify the file in the next
step. However, if you want to generate the design equivalence file, click
the Yes button.
After generating the design equivalence file, SpyGlass displays the
results in the Results section, as shown in the following figure:
106
Synopsys, Inc. Feedback
Using Atrenta Console Graphical User Interface
In the above figure, note the two extra links, Reference Modular Sch and
Reference Incremental Sch. Click on these links to display the Reference
Schematic and Reference Modular Schematic windows, respectively. These
schematic windows enable you to compare the two given designs
(implementation design and reference design). In addition, the Tools
menu is changed to display the schematic options, Implement Modular
Schematic, Implement Incremental Schematic, Reference Modular Schematic,
and Reference Incremental Schematic.
Click the Next button to display a list of equivalent objects that are
inherited from equivalence file and a list of equivalent objects that are
found based on names, as shown in the following figure:
107
Feedback Synopsys, Inc.
Using Atrenta Console Graphical User Interface
108
Synopsys, Inc. Feedback
Using Atrenta Console Graphical User Interface
109
Feedback Synopsys, Inc.
Using Atrenta Console Graphical User Interface
110
Synopsys, Inc. Feedback
Using Atrenta Console Graphical User Interface
Do not unfree the execution of prerequisite goals option if you do not want to
run prerequisite goal(s).
111
Feedback Synopsys, Inc.
Using Atrenta Console Graphical User Interface
Default
scenario
Newly created
scenarios
To work with scenarios, you must first enable scenario support by selecting
the Enable Scenario Support option in the Miscellaneous page of the Preferences
dialog.
Creating Scenarios
To create a scenario for a goal, perform the following steps:
1. Right-click on a goal displayed under the Select Goal tab.
2. Select the Create New Scenario option from the shortcut menu.
The page under the Setup Goal tab appears, as shown in the following
figure:
112
Synopsys, Inc. Feedback
Using Atrenta Console Graphical User Interface
3. Specify the required settings in the above page. For example, you can
change parameter values or add/remove certain files.
4. Click the Create Scenario button.
The Create Scenario dialog appears, as shown in the following figure:
113
Feedback Synopsys, Inc.
Using Atrenta Console Graphical User Interface
5. In the above dialog, specify the name of the new scenario to be created.
NOTE: Scenario names can contain only alphanumeric characters, underscore, minus.
6. Click the OK button to close the above dialog.
After performing the above steps, the name of the newly created
scenario appears in the Scenario drop-down list under the Setup Goal tab.
Modifying a Scenario
To modify a scenario, perform the following steps:
1. Right-click on a scenario appearing under the Select Goal tab.
2. Select the Edit Scenario option from the shortcut menu.
The page under the Setup Goal tab appears. In this page, the name of
the scenario being modified appears in the Scenarios drop-down list.
3. Change the settings for the scenario as per your requirement under the
Setup Goal tab.
After performing the above steps, the selected scenario is updated.
If you want to modify another scenario, select the scenario name from the
Scenarios drop-down list. The settings related to that scenario get loaded.
You can then modify these settings as per your requirement.
Deleting a Scenario
To delete a scenario, right-click on that scenario appearing under the Select
Goal tab and select the Delete Scenario option from the shortcut menu.
Running Scenarios
You can run scenarios in both GUI and batch.
114
Synopsys, Inc. Feedback
Using Atrenta Console Graphical User Interface
115
Feedback Synopsys, Inc.
Using Atrenta Console Graphical User Interface
116
Synopsys, Inc. Feedback
Using Atrenta Console Graphical User Interface
117
Feedback Synopsys, Inc.
Using Atrenta Console Graphical User Interface
118
Synopsys, Inc. Feedback
Using Atrenta Console Graphical User Interface
119
Feedback Synopsys, Inc.
Using Atrenta Console Graphical User Interface
120
Synopsys, Inc. Feedback
Using Atrenta Console Graphical User Interface
Design Results
When you point the mouse on the Design option, a tool-tip appears
displaying the following information:
Total number of black boxes in the design
Total number of latches in the design
Total number of flip-flops in the design
When you click the Design option, the Design Information dialog appears as
shown in the following figure:
121
Feedback Synopsys, Inc.
Using Atrenta Console Graphical User Interface
122
Synopsys, Inc. Feedback
Using Atrenta Console Graphical User Interface
a tree format. The tree format has the following parent nodes:
Node for false paths
Node for the multi-cycle paths
123
Feedback Synopsys, Inc.
Using Atrenta Console Graphical User Interface
The False Path and Multi-cycle Path nodes are further categorized into
Passed, Failed, Incomplete, and Inconclusive sub-nodes that contain the
violation messages.
124
Synopsys, Inc. Feedback
Using Atrenta Console Graphical User Interface
Power Results
When you point the mouse on the Power option, a tool-tip appears
displaying the leakage, internal, switching, and total power of the top-level
design unit.
When you click the Power option, the Power Browser option appears. Click
this option to open the SpyGlass Power Browser window that displays
results related to estimating power.
Refer to the Viewing Power Estimation Results section of SpyGlass Power
Product Family Rules Reference User Guide for more details.
125
Feedback Synopsys, Inc.
Using Atrenta Console Graphical User Interface
After selecting the required option from the list, click the Run Goal option.
This step runs SpyGlass analysis again and results are loaded under the
Analyze Results tab.
126
Synopsys, Inc. Feedback
Using Atrenta Console Graphical User Interface
NOTE: For more information, refer to the Atrenta Console Reference Guide.
NOTE: Atrenta Console does not allow you to cross-probe to the RTL of encrypted design
units. If you try to cross-probe to RTL of such design units, SpyGlass displays a
message in the RTL viewer specifying that the file is encrypted.
127
Feedback Synopsys, Inc.
Using Atrenta Console Graphical User Interface
128
Synopsys, Inc. Feedback
Working with Input
Design and Libraries
Overview
This chapter describes all aspects of reading a design in Atrenta Console.
This includes reading in design HDL and technology libraries,
understanding and debugging results, and dealing with special HDL
aspects, such as pragmas.
129
Feedback Synopsys, Inc.
Working with Input Design and Libraries
130
Synopsys, Inc. Feedback
Working with Input Design and Libraries
2. Specify the logical library name in the Logical Library Name textbox.
This step is equivalent to specifying the following command in the
project file:
set_option work <value>
131
Feedback Synopsys, Inc.
Working with Input Design and Libraries
132
Synopsys, Inc. Feedback
Working with Input Design and Libraries
133
Feedback Synopsys, Inc.
Working with Input Design and Libraries
3. Click to select the required logical library name in the Logical Library
column.
NOTE: You can only select the library name from the list of available library names.
Therefore, it is recommended to define the library mapping and then precompile
file mapping.
4. Click to select the RTL file to be included in the library.
Repeat this step to specify multiple RTL files.
You can specify wildcard and regular expressions that are automatically
expanded when the selection is changed.
5. Click the OK button.
The HDL files are now included in the library.
This task is equivalent to specifying the following command in the project
file:
set_option libhdlfiles <library-name> {space-separated file
list}
134
Synopsys, Inc. Feedback
Working with Input Design and Libraries
Enabling Elaboration
If you want to enable elaboration during the precompilation process,
specify the following command in the project file:
set_option elab_precompile yes
135
Feedback Synopsys, Inc.
Working with Input Design and Libraries
In the above dialog, click the Cancel button and go to the Precompile Map
dialog to correct the directory. See Debugging Issues in Gate Libraries.
Alternatively, you can generate a precompiled library through a project file
by specifying the following command while invoking Atrenta Console:
spyglass -project mylib.prj -batch -designread
136
Synopsys, Inc. Feedback
Working with Input Design and Libraries
137
Feedback Synopsys, Inc.
Working with Input Design and Libraries
138
Synopsys, Inc. Feedback
Working with Input Design and Libraries
139
Feedback Synopsys, Inc.
Working with Input Design and Libraries
140
Synopsys, Inc. Feedback
Working with Input Design and Libraries
141
Feedback Synopsys, Inc.
Working with Input Design and Libraries
Like all standard Verilog EDA tools, Atrenta Console requires you to specify
the file extension for files located in library directories specified by using
the v or y options. You can specify library file extension by specifying the
following command in the project file:
set_option libext {space-separated list of extensions}
142
Synopsys, Inc. Feedback
Working with Input Design and Libraries
--middle.vhd
entity middle is
end middle;
//bottom.v
module bottom;
endmodule
In this example, Verilog module top instantiates VHDL DU middle that, in
turn, instantiates Verilog module bottom.
To perform a multiple step compilation, perform the following steps:
1. Compile bottom.v.
set_option work mylib1
set_option lib mylib1 ./MYLIB1
set_option libhdlfiles mylib1 {bottom.v}
set_option elab_precompile yes
2. Compile middle.vhd.
set_option work mylib1
set_option lib mylib1 ./MYLIB1
set_option libhdlfiles mylib1 {middle.vhd}
3. Invoke SpyGlass on top.v.
set_option work mylib1
set_option lib mylib1 ./MYLIB1
143
Feedback Synopsys, Inc.
Working with Input Design and Libraries
144
Synopsys, Inc. Feedback
Working with Input Design and Libraries
also compiled and stored in the WORK library for future use.
You can also compile and store all the DUs of the above example in a
single command as follows:
set_option work mylib1
set_option lib mylib1 ./MYLIB1
set_option libhdlfiles mylib1 {top.v middle.vhd}
set_option elab_precompile yes
set_option v bottom.v
Then, all DUs are compiled and stored in the mylib1 directory.
Now, suppose you have used the precompiled module named top in
another design file named mytop.v. You can compile the complete
hierarchy as follows:
set_option work mylib2
set_option lib mylib1 ./MYLIB1
set_option lib mylib2 ./mylib2
set_option libhdlfiles mylib1 {mytop.v}
set_option elab_precompile yes
The above command would use the set_option lib mylib1 ./mylib1 part
to find and bind the instantiation of the DU named top.
It is not required to specify the lib command for various parts of the
sub-hierarchy. Instantiation information is picked from the .dep file for
each compiled DU.
Support for Foreign Attributes
SpyGlass supports foreign attributes in the following syntax:
ATTRIBUTE FOREIGN OF <architecture-name> :
ARCHITECTURE IS "VERILOG : <module-name>
-lib <library-name>";
145
Feedback Synopsys, Inc.
Working with Input Design and Libraries
146
Synopsys, Inc. Feedback
Working with Input Design and Libraries
147
Feedback Synopsys, Inc.
Working with Input Design and Libraries
If the master is still not found, the instance is considered as a black box.
However, if cell definition is present in both in sglib and HDL, SpyGlass
ignores the cell definition present in sglib. In addition, SpyGlass reports the
IgnoredLibCells warning message that points to a report containing the
source sglib name and HDL back-reference information of all the ignored
library cells.
If you want to give higher preference to technology library definition
present in .lib/.sglib over user-specified definition present in source HDL
files, precompiled libraries, and simulation models while searching for the
master of an instance, use the set_option prefer_tech_lib yes
command in the project file.
NOTE: When you specify the prefer_tech_lib option, then irrespective of whether a
functional view exists for a .lib cell definition or not, higher priority is given to
technology library definitions. If you intend to overwrite or provide functional view
of the cell from HDL and use other properties of that cell from sglib, ensure that you
pass HDL descriptions of that cell during library compilation stage, that is, during
sglib creation.
148
Synopsys, Inc. Feedback
Working with Input Design and Libraries
149
Feedback Synopsys, Inc.
Working with Input Design and Libraries
4. Select the required .sglib files from the Add File(s) dialog.
NOTE: In this step, you can also specify .plib and/or .lef files.
5. Click the Add button.
6. Click the OK button.
The selected .sglib files appear under the Tech Libraries section.
Alternatively, use the following command in the project file to use the
precompiled libraries in SpyGlass run:
read_file -type sglib <filename.sglib>
150
Synopsys, Inc. Feedback
Working with Input Design and Libraries
IP1: IP2:
library L1; library L1;
use L1.PKG.all; use L1.PKG.all;
For IP1, the PKG package For IP2, the PKG package that has
totally different contents than the
is compiled into the physical location,
PKG package of IP1 is compiled
dir1, by using logical to physical into the physical location, dir2,
mapping, as shown below: by using logical to physical
set_option lib L1 ./dir1 mapping, as shown below:
set_option lib L1 ./dir2
The top-level design, TOP, has instances of IP1 and IP2. Now if you want to
specify logical to physical mapping for the L1 library, you can specify only
one mapping (that is, either L1 to dir1 or L1 to dir2), as shown below:
set_option lib L1 ./dir1
In the above case, SpyGlass picks up only one package, that is, PKG from
IP1. However, the second PKG package is not available for IP2 in this case.
NOTE: Because the contents of both the packages are different, the design is incomplete.
151
Feedback Synopsys, Inc.
Working with Input Design and Libraries
IP1: IP2:
Library L1; Library L1;
Use L1.PKG.all; Use L1.PKG.all;
Now in the TOP design, IP1 and IP2 are picked from the T1 and T2 libraries,
as shown below:
Library T1;
Use T1.all;
Library T2;
Use T2.all;
In the above case, there is no reference to L1. Therefore, correct packages
are picked from IP1 and IP2 intermediate libraries, as shown below:
set_option libmap T1 IP1
set_option lib IP1 ../dir1
set_option libmap T2 IP2
set_option lib IP2 ../dir2
NOTE: Please note the following points for the intermediate library support:
Do not specify intermediate library name in the libhdlfiles/libhdlf option,
as shown in the following example:
set_option libmap L1 IP1
152
Synopsys, Inc. Feedback
Working with Input Design and Libraries
153
Feedback Synopsys, Inc.
Working with Input Design and Libraries
154
Synopsys, Inc. Feedback
Working with Input Design and Libraries
Automatically Sort VHDL File(s) option to yes under the Set Read
Options tab.
You may set the value of the dump_all_modes option of the set_option
command to yes in the project file when the Enable HDL Encryption option
is already set to yes. In such cases, when you create encrypted library
dump, Atrenta Console creates a precompile dump on both 32-bit and 64-
bit platforms, irrespective of the platform on which you run SpyGlass.
//Verilog
uselib lib=L1
For more information about using precompiled libraries in a design, refer
to the following bullets:
If two or more encrypted libraries have the same design unit, use the
fully qualified name or appropriate VHDL/Verilog constructs (as
mentioned above) in the instantiation to pick the design unit from a
specific library. Otherwise, Atrenta Console would consider it based on
the order specified by using the lib option of the set_option
155
Feedback Synopsys, Inc.
Working with Input Design and Libraries
command. Please note that usage of encrypted design units follows the
same paradigm as for a normal precompiled library
Rule-checking behavior for encrypted libraries
When you use the encrypted precompiled Verilog/VHDL modules with
SpyGlass, all rule-checking on these modules is enabled by default. Any
highlighting information inside such modules is shown on the module
boundary only. Please note that all the messages are reported on the
original file and line of encrypted IP.
You can disable RTL rule-checking on these modules by setting the value
of the Disable Encrypted HDL Checks option to yes under the Set Read
Options tab. If you specify this option, SpyGlass disables RTL rule-
checking on encrypted modules. In addition, SpyGlass internally
removes any messages from that point inside an encrypted IP.
SpyGlass behavior on specifying the waive -ip command on encrypted
IPs
When you specify the waive -ip <IP-name> command, SpyGlass waives
any violation coming on the file and line of an encrypted IP or any
design unit instantiated inside encrypted IP.
NOTE: The hdllibdu option of the set_option command does not have any effect on the
above rule-checking behavior for encrypted modules. In addition, SpyGlass
treats all design units instantiated under an encrypted design unit as encrypted
even if they are not encrypted.
NOTE: The LEXICAL type rules do not run on encrypted RTL files.
156
Synopsys, Inc. Feedback
Working with Input Design and Libraries
157
Feedback Synopsys, Inc.
Working with Input Design and Libraries
158
Synopsys, Inc. Feedback
Working with Input Design and Libraries
159
Feedback Synopsys, Inc.
Working with Input Design and Libraries
160
Synopsys, Inc. Feedback
Working with Input Design and Libraries
Example
Say you want to compile the following source files in the same SpyGlass
run:
161
Feedback Synopsys, Inc.
Working with Input Design and Libraries
LIBHDL_LANG_INFERENCE = YES
Now, you can compile a set of source files in the same SpyGlass run by
specifying the following commands in a project file:
set_option lib L1 PL1
set_option lib L2 PL2
set_option lib L3 PL3
set_option libhdlf L1 L1.f
set_option libhdlf L2 L2.f
set_option libhdlf L3 L3.f
Atrenta Console then automatically infers a language of files from their file
extensions during compilation process. Therefore, L1.f is compiled in the
VHDL 87 language, L2.f is compiled in the VHDL 93 language, and L3.f is
compiled in the Verilog language.
NOTE: To perform compilation process correctly, you should specify file names in a source
file (.f) in the order of their dependency.
162
Synopsys, Inc. Feedback
Working with Input Design and Libraries
163
Feedback Synopsys, Inc.
Working with Input Design and Libraries
LIBHDL_LANG_INFERENCE = YES
In this case, SpyGlass will compile the.v2k files in Verilog2000 language
and the .vhd87 files in the VHDL87 language.
Now, if you want to override the default mapping for f1.v2k and f2.v2k files
to specify the compilation language as SV instead of Verilog2000, perform
the following steps:
1. Specify such .v2k files in a separate .f file (say f4.f), as shown below:
f4.f
f1.v2k
f2.v2k
2. Specify the -disable_libhdl_lang_inference option in the f4.f file, as
shown below:
f4.f
f1.v2k
f2.v2k
-disable_libhdl_lang_inference
3. Specify the -enableSV option in the f4.f file, as shown below:
f4.f
f1.v2k
164
Synopsys, Inc. Feedback
Working with Input Design and Libraries
f2.v2k
-disable_libhdl_lang_inference
-enableSV
Alternatively, you can specify the -enableSV option on command-line
while specifying commands for compilation.
After specifying the above commands in a source file, specify that source
file by using the following command:
set_option libhdlf <logical-library-name> "<source-files>
For example, you can specify a language applicable for a set of files in the
.f file by using appropriate command-line options, as shown below:
165
Feedback Synopsys, Inc.
Working with Input Design and Libraries
166
Synopsys, Inc. Feedback
Working with Input Design and Libraries
low2.vhd
In the above example, files in L1.f are compiled by forming the following
three groups internally to maintain dependencies and language standards
to be used during compilation process:
L1.f
top1.vhd Group1
top2.vhd (to be considered as VHDL 93 source files)
mid1.v Group2
mid2.v (to be considered as Verilog2000 source files)
low1.vhd Group3
low2.vhd (to be considered as VHDL93 source files)
167
Feedback Synopsys, Inc.
Working with Input Design and Libraries
1. Divide the file list (say verilog.v, verilog1.v, system.v, and system1.v) under
the following sets:
SystemVerilog files (SystemVerilog mode list)
Let this list be sv_file_list.f containing system.v, and system1.v.
Remaining Verilog files (Verilog mode list)
Let this list be verilog_file_list.f containing verilog.v, and verilog1.v.
2. Compile the files of the SystemVerilog mode list by specifying the
following commands in a project file (say project1.prj):
read_file -type sourcelist sv_file_list.f
set_option lib sver_lib phy_path2
set_option work sver_lib
set_option enable_precompile_vlog yes
set_option enableSV yes
3. Compile the files of the Verilog mode list by specifying the following
commands in a project file (say project2.prj):
read_file -type sourcelist verilog_file_list.f
set_option lib ver_lib phy_path1
set_option work ver_lib
set_option enable_precompile_vlog yes
4. Specify the top-level module and specify the logical to physical mapping
for libraries by specifying the following commands in a project file (say
project3.prj):
set_option lib ver_lib phy_path1
set_option lib sver_lib phy_path2
set_option top top_module_name
After performing the above steps, SpyGlass compiles all the specified files.
168
Synopsys, Inc. Feedback
Working with Input Design and Libraries
For details, see Inferring Language from File Extension During Compilation.
3. Compile all the source files in a single file list by specifying the following
commands in a project file:
set_option lib ver_lib phy_path1
set_option libhdlf ver_lib verilog_file_list.f
set_option top top_module_name
169
Feedback Synopsys, Inc.
Working with Input Design and Libraries
170
Synopsys, Inc. Feedback
Working with Input Design and Libraries
RTL Design
spyencrypt
Encrypted
RTL Design
Encrypted File
SpyGlass
Once you run the spyencrypt utility to encrypt design files, SpyGlass
generates the spyencrypt_summary.rpt report containing the status of
encryption. For details on this report, see Viewing Encryption Summary in a
Report.
NOTE: Cross-probing to RTL is not supported for encrypted design files.
171
Feedback Synopsys, Inc.
Working with Input Design and Libraries
NOTE: Schematic of design units specified through encrypted files is not visible.
<RTL-Files>
This argument specifies a space-separated list of design files to be
encrypted. For example, the following command encrypts the top.v and
mid.vhdl files:
spyencrypt top.v mid.vhdl -outdir enc_dir
After running the above command, the top.v.sge and mid.vhdl.sge encrypted
files are created in the ./enc_dir directory.
By default, SpyGlass appends the .sge extension to the name of an
encrypted design file. To change this default extension, use the -encrypt_ext
"<extension-string>" argument.
NOTE: You can use wildcard characters to encrypt all files in a particular directory. For
example, you can specify dir/*.v or dir/*.vhdl specification to encrypt all
Verilog or VHDL files of the dir directory.
NOTE: Before specifying RTL files for encryption, update the `include and `uselib compiler
directives appropriately to reflect the encrypted file names. This step is not required
if you use the -no_encrypt_ext argument.
-outdir <output-directory>
This argument specifies the directory in which encrypted files should be
saved.
For example, consider the following command:
spyencrypt top.v mid.vhdl lib/bottom.v -outdir enc_dir
When you run the above command, SpyGlass generates the following
encrypted files:
enc_dir/top.v.sge
172
Synopsys, Inc. Feedback
Working with Input Design and Libraries
enc_dir/mid.vhdl.sge
enc_dir/bottom.v.sge
If you specify the name of a non-existent directory to the -outdir
argument, spyencrypt creates that directory. However, if you specify a
hierarchical path of a non-existent directory, spyencrypt creates that
directory under that path only if that path exists.
For example, consider that the enc/outdir/ path exists and you specify enc/
outdir/dir to the -outdir argument. In this case, spyencrypt creates
the dir directory under enc/outdir/. However, if the enc/outdir/ path does not
exist, spyencrypt does not create the dir directory and reports an error
message.
-encrypt_ext "<extension-string>"
(Optional) This argument specifies an extension string to be appended to
the names of the encrypted design files.
NOTE: Do not include a period (.) while specifying an extension string.
Consider the following command:
spyencrypt top.v mid.vhdl -outdir enc_dir -encrypt_ext "en"
When you run the above command, SpyGlass generates the following
encrypted RTL files with the .en extension:
enc_dir/top.v.en
enc_dir/mid.vhdl.en
-no_encrypt_ext
(Optional) This argument disables appending of any extension to the name
of encrypted design files.
Specify this argument if you do not want any extra extension to appear in
the name of an encrypted design file.
For example, consider the following command:
spyencrypt top.v mid.vhdl -outdir enc_dir -no_encrypt_ext
When you run the above command, SpyGlass generates the following
173
Feedback Synopsys, Inc.
Working with Input Design and Libraries
-help
(Optional) This argument lists the names of spyencrypt arguments and
their usage.
174
Synopsys, Inc. Feedback
Working with Input Design and Libraries
SRC
(top_A.v, top_B.v)
IP1 IP2
(mid_A.v, midB_.v) (mid_C.v)
To encrypt all design files present in the above directory structure, perform
the following steps:
1. Move to the root directory (SRC).
2. Encrypt all files present under this directory.
This is shown in the following example:
spyencrypt top_A.v top_B.v -outdir SRC_encr
NOTE: Ensure that the path of the directory created by the -outdir argument is such
that a parallel directory structure is created similar to the existing hierarchical
directory structure. This is shown in Figure 10.
3. Move to the next directory in the hierarchy.
4. Repeat Step 2 until you encrypt all design files present in the entire
hierarchy.
After performing the above steps, a directory structure (containing
encrypted design files) is created parallel to the existing hierarchical
directory structure, as shown in the following figure:
175
Feedback Synopsys, Inc.
Working with Input Design and Libraries
SRC SRC_encr
IP21_encr IP22_encr
176
Synopsys, Inc. Feedback
Working with Input Design and Libraries
177
Feedback Synopsys, Inc.
Working with Input Design and Libraries
3. In the above dialog, select the encrypted file name (in this case,
test.v.sge).
4. Click the Add button.
The selected file now appears in the right-most pane of the above
dialog, as shown in the following figure:
178
Synopsys, Inc. Feedback
Working with Input Design and Libraries
5. In the above dialog, click on the Unknown text under the Type column.
A drop-down list appears, as shown below:
179
Feedback Synopsys, Inc.
Working with Input Design and Libraries
6. Select an appropriate option (in this case Verilog) from the drop-down
list.
7. Click the OK button to close the Add File(s) dialog.
After performing the above steps, the selected encrypted file appears
under the Add File(s) tab.
NOTE: Change the incdir project file command to reflect the correct include path. In
addition, if you change the default extension by using the
-encrypt_ext
command, make changes in the libext and v/y command specifications
180
Synopsys, Inc. Feedback
Working with Input Design and Libraries
accordingly.
2. Specify the project file for SpyGlass analysis, as shown in the following
example:
spyglass -project test.prj
181
Feedback Synopsys, Inc.
Working with Input Design and Libraries
--test.vhd
entity ent is
port (entIn : in std_logic;
entOut : out std_logic);
182
Synopsys, Inc. Feedback
Working with Input Design and Libraries
end ent;
architecture Behave of ent is
component comp
port (a : in std_logic; b : out std_logic );
end component ;
begin
Inst1 : comp port map ( a => entIn, b => entOut );
...
end Behave;
Configuration Specification Based Binding
For configuration specification-based binding, the component name, port
names, and generic names can be same or different from the
corresponding Verilog identifiers for module name, port names, and
parameter names. However, the number of ports or generics and their bit-
width in the VHDL component declaration must be the same as those of
ports or parameters in the Verilog module definition.
Following is an example of instantiating a Verilog module in a VHDL design
unit as a component instance by using configuration specification based
binding:
//test.v
module comp (A1, B1);
input A1;
output B1;
...
endmodule
-- test.vhd
entity top is
port (in1 : in std_logic; out1 : out std_logic);
end top;
architecture arch_top of top is
component my_comp1
port (C1 : in std_logic; D1 : out std_logic);
end component;
for inst1 : my_comp1 use entity work.comp
183
Feedback Synopsys, Inc.
Working with Input Design and Libraries
184
Synopsys, Inc. Feedback
Working with Input Design and Libraries
//test.v
module comp (a,b);
input a;
output b;
...
endmodule
--test.vhd
entity ent is
port (entIn : in std_logic;
entOut : out std_logic);
end ent;
architecture Behave of ent is
component mod
port (a : in std_logic; b : out std_logic );
end component ;
begin
Inst1 : mod port map ( a => entIn, b => entOut );
...
end Behave;
configuration config of ent is
for Behave
for Inst1 : mod
use entity work.comp(<identifier>);
end for;
|end for;
end configuration;
NOTE: <identifier> is tool-specific. For SpyGlass, <identifier> is Verilog or module.
Searching Master of an Instance
In a given design, SpyGlass searches for the master of an instance in VHDL
architecture as per the following order:
VHDL source files
precompiled VHDL libraries
Verilog source files
Verilog libraries specified using the set_option v or set_option y
commands in the project file
185
Feedback Synopsys, Inc.
Working with Input Design and Libraries
Format Description
\myLibrary.myEntity(myArch) Architecture myArch of entity myEntity from
logical library myLibrary
\myEntity(myArch) Architecture myArch of entity myEntity from
logical library work
\myLibrary.myEntity MRA Architecture of entity myEntity from
logical library myLibrary
\myLibrary.myConfigDecl Configuration declaration myConfigDecl from
logical library myLibrary
myName Either configuration declaration or entity
myName from logical library work
186
Synopsys, Inc. Feedback
Working with Input Design and Libraries
//test.v
module mod (a,b);
input a;
output b;
\mylib.ent(Behave) inst1(a,b);
...
endmodule
187
Feedback Synopsys, Inc.
Working with Input Design and Libraries
Example 2
Instantiating Configuration Declaration myConfigDecl from logical library
myLibrary (\myLibrary.myConfigDecl)
--test.vhd
entity ent is
port (entIn : in std_logic;
entOut : out std_logic );
end ent;
architecture Behave of ent is
begin
...
end Behave;
configuration config of ent is
for Behave
end for;
end configuration;
//test.v
module mod (a,b);
input a;
output b;
\mylib.config inst1(a,b);
...
endmodule
Example 3
How to reference VHDL Records across language boundaries:
//test.v
module e1 (in1, in2, out1);
input in1, in2;
output out1;
...
endmodule
--test.vhd
188
Synopsys, Inc. Feedback
Working with Input Design and Libraries
entity top is
...
end top;
architecture top of top is
type X is record
f1 : bit;
f2 : bit;
f3 : bit;
end record;
signal sig : X ;
component e1
port (in1, in2 : bit; out1 : out bit);
end component;
begin
inst : e1 port map(
in1 => sig.f1,
in2 => sig.f2,
out1 => sig.f3);
...
end top;
189
Feedback Synopsys, Inc.
Working with Input Design and Libraries
190
Synopsys, Inc. Feedback
Working with Input Design and Libraries
191
Feedback Synopsys, Inc.
Working with Input Design and Libraries
192
Synopsys, Inc. Feedback
Working with Input Design and Libraries
193
Feedback Synopsys, Inc.
Working with Input Design and Libraries
194
Synopsys, Inc. Feedback
Working with Input Design and Libraries
195
Feedback Synopsys, Inc.
Working with Input Design and Libraries
196
Synopsys, Inc. Feedback
Working with Input Design and Libraries
The following table lists DesignWare modules that do not require the
Design Compiler license, because Verilog netlist is available for such
modules:
197
Feedback Synopsys, Inc.
Working with Input Design and Libraries
DW_lza DW02_prod_sum1
198
Synopsys, Inc. Feedback
Working with Input Design and Libraries
199
Feedback Synopsys, Inc.
Working with Input Design and Libraries
200
Synopsys, Inc. Feedback
Working with Input Design and Libraries
201
Feedback Synopsys, Inc.
Working with Input Design and Libraries
202
Synopsys, Inc. Feedback
Working with Input Design and Libraries
different from what you expected, review the sgBlackbox.v file or the
sgBlackbox.v file (created in the spyglass_sch directory in the current working
directory) that has the inferred black box wrapper module descriptions.
NOTE: You must copy the sgBlackbox.v file from the spyglass_sch directory to another
directory (to the current working directory, for example) as the spyglass_sch
directory is overwritten after each SpyGlass run.
203
Feedback Synopsys, Inc.
Working with Input Design and Libraries
204
Synopsys, Inc. Feedback
Working with Input Design and Libraries
205
Feedback Synopsys, Inc.
Working with Input Design and Libraries
Identifying Modules
The current implementation understands the following type of modules as
BBOX_MODEL type modules:
1. Black box ILM model
SpyGlass identifies a design unit (Verilog/VHDL) as a BBOX_MODEL type
module if its definition contains the following SpyGlass bbox_model
pragma:
// spyglass bbox_model (For Verilog)
-- spyglass bbox_model (For VHDL)
The BBOX_MODEL type module definition contains basic interface-level
details with some logic around the interface so that the details are
206
Synopsys, Inc. Feedback
Working with Input Design and Libraries
207
Feedback Synopsys, Inc.
Working with Input Design and Libraries
208
Synopsys, Inc. Feedback
Working with Input Design and Libraries
209
Feedback Synopsys, Inc.
Working with Input Design and Libraries
210
Synopsys, Inc. Feedback
Working with Input Design and Libraries
By default, this option is enabled. To disable this option, set the value of
the disable_hdlin_translate_off_skip_text command to yes.
For more details on disable_hdlin_translate_off_skip_text command, refer
to disable_hdlin_translate_off_skip_text section in the Atrenta Console
Reference Guide.
211
Feedback Synopsys, Inc.
Working with Input Design and Libraries
212
Synopsys, Inc. Feedback
Working with Input Design and Libraries
Alternatively, specify the name of the top-level module in the Top Level
Design Unit field under the Set Read Options tab.
NOTE: If the stop option was used on a design unit with a hierarchy, any modules that are
unused by other design units would be inferred as top design units.
It is highly recommended that you set a top-level design unit during Stage
1: Setting up the Design (Design Setup) in all SpyGlass runs, except while
precompiling HDL libraries.
If you do not set a top-level module during the Design Setup stage and
directly proceed to the next stage, Atrenta Console performs appropriate
actions as discussed below:
If you proceed to the next stage after running the design read process,
and if there are multiple top-level modules in your design but none of
the modules are set as a top-level module, the following Warning dialog
appears:
In the above dialog, click and select the required module from the
drop-down list.
If you want to set all the modules displayed in that list as top-level
modules, click the Allow Multiple Tops button.
If you proceed directly to the next stage without running the design
read process, the following Warning dialog appears:
213
Feedback Synopsys, Inc.
Working with Input Design and Libraries
214
Synopsys, Inc. Feedback
Working with Input Design and Libraries
215
Feedback Synopsys, Inc.
Working with Input Design and Libraries
NOTE: Functionality of the Stop feature is closely linked with the Top-Level feature in
guiding a design hierarchy to be checked. In contrast to the Top-Level feature,
there are no syntax/semantic errors or warning messages (except for elaboration
errors and AnalyzeBBox messages) reported on design units specified by the Stop
feature.
216
Synopsys, Inc. Feedback
Working with Input Design and Libraries
NOTE: You can specify the stop command with the stopdir and the stopfile
commands.
217
Feedback Synopsys, Inc.
Working with Input Design and Libraries
A*
FIGURE 16. Design Hierarchy for Use of Top-Level and Stop Features
218
Synopsys, Inc. Feedback
Working with Input Design and Libraries
In above figure:
A denotes the higher-level design hierarchy described by shaded area
A*, in which the design unit A is the top-level design unit.
B denotes the design unit to be excluded by specifying the following
command in the Atrenta Console project file:
set_option stop <design_unit>
C denotes the design units that were instantiated in the design unit B.
Therefore, all these design units were a part of the design hierarchy
under A if the design unit B was not stopped. However, as
implementation inside B is hidden for SpyGlass analysis, rule-checking
may or may not occur for design units under C depending on usage of
other related options. See Table: Using Top-Level and Stop Features
Together for examples that illustrate control of design hierarchy for rule-
checking by use of various options.
D denotes another design hierarchy independent from A, B, or C.
The following table describes use of above two options, when applied to the
design hierarchy illustrated in Figure :
Stop B A, C, and D
Top A A, B, and C
Top D D
As seen from the above examples, whenever you stop a design from
SpyGlass analysis, you must also specify a top-level design unit to declare
the scope correctly and unambiguously.
219
Feedback Synopsys, Inc.
Working with Input Design and Libraries
SpyGlass does not report any parsing message except for elaboration
errors on design units in C when you specify A as top and B as stopped.
Notes
Please note the following points regarding the use of any of the above
features:
The options for hierarchical inclusion/exclusion of design units are the
top-level and stop features. You cannot use these options
simultaneously with an equivalent design unit feature, which is for
immediate analysis of the specified design units.
You cannot completely control syntax errors in a design source by using
these options. The design is expected to be free from syntax and
elaboration errors. Judicious use of the Top-Level and Stop features can
help avoid design units that have known elaboration errors.
The argument value specified with these options should carefully follow
the syntax for representing design unit names in Verilog and VHDL.
220
Synopsys, Inc. Feedback
Working with Input Design and Libraries
221
Feedback Synopsys, Inc.
Working with Input Design and Libraries
Example Description
set_option ignorefile {a*} Ignores all files (in the current directory)
whose names match the wildcard a*
expression. For example, a1, aa1, and
abc.
set_option ignorefile {dir1/*} Ignores all files in the dir1 directory
set_option ignorefile {dir?/*} Ignores all files in directories that match
the wildcard expression dir?. For
example, dir1, dir2, and dir3.
222
Synopsys, Inc. Feedback
Working with Input Design and Libraries
Format Description
For VHDL
<entity-name> Ignores the specified entity and all its
architectures in all logical libraries
<entity-name>.<arch-name> Ignores the specified architecture of the
specified entity in all logical libraries
<lib-name>.<entity-name> Ignores the specified entity and all its
architectures for the specified logical library
<lib-name>.<entity- Ignores the specified architecture of the
name>.<arch.name> specified entity in the specified logical library
<lib-name> Ignores the specified logical library
223
Feedback Synopsys, Inc.
Working with Input Design and Libraries
Format Description
ALL.<arch-name> Ignores all architectures of the name <arch-
name> in all logical libraries
For Verilog
<module-udp-name> Ignores the specified module or UDP
<lib-name>.<module-udp- Ignores the specified module or UDP from
name> the specified logical library
Example Description
set_option ignoredu {lib1.*} Ignores all design units picked from the lib1
logical library
set_option ignoredu {e.*} Ignores all architectures of the e entity
set_option ignoredu {*.e} Ignores all entities named e from any library
224
Synopsys, Inc. Feedback
Working with Input Design and Libraries
225
Feedback Synopsys, Inc.
Working with Input Design and Libraries
226
Synopsys, Inc. Feedback
Working with Input Design and Libraries
227
Feedback Synopsys, Inc.
Working with Input Design and Libraries
228
Synopsys, Inc. Feedback
Working with
Methodologies
Overview
A methodology is a collection of sub-methodologies or a collection of goals.
Each sub-methodology may further contain sub-methodologies or a set of
goals where each goal is a collection of rules.
229
Feedback Synopsys, Inc.
Working with Methodologies
Overview
Methodology
NOTE: Each methodology should contain an Order File that contains entries of goal files
paths related to a methodology directory.
Goal Files
Details of each goal are present in a goal file (.spq file).
You add a goal file in a methodology by importing that goal file in the
methodology. For details, see Importing Goals.
230
Synopsys, Inc. Feedback
Working with Methodologies
Overview
=template++++++
info_data mixed //goal name and language
*
Informational data //short help
*
This goal is used to report informational data related to a
design. //detailed description
=cut+++++++++++
//------------------------------------------------
// Policy Registration
//------------------------------------------------
-policies=Audits,area,clock-reset,erc,lint
//------------------------------------------------
// General Setup commands
//------------------------------------------------
231
Feedback Synopsys, Inc.
Working with Methodologies
Overview
//------------------------------------------------
// Policy Specific Parameter Setting
//------------------------------------------------
-enable_handshake=yes
-enable_fifo=strict
-distributed_fifo=yes
//------------------------------------------------
// Rule Registration
//------------------------------------------------
-rules Audit2ID
-rules Audit2Stats
-rules Clock_info03
-rules Clock_info05
-rules W438
-rules LogicDepth
-ignorerule CMD_define_severity02
//------------------------------------------------
// End of Rule Registration
//------------------------------------------------
232
Synopsys, Inc. Feedback
Working with Methodologies
Overview
233
Feedback Synopsys, Inc.
Working with Methodologies
234
Synopsys, Inc. Feedback
Working with Methodologies
GuideWare Methodology
Stage1 Stage2 Stage3 Stage4 Stage1 Stage2 Stage1 Stage2 Stage3 Stage4
goa1 goal3
goal2
rule5
rule1
rule2 rule4
rule3
235
Feedback Synopsys, Inc.
Working with Methodologies
Component Description
GuideWare Reference Contains a set of methodologies that are aligned
Methodology with the chip development process. These
methodologies provide guidance to designers to
address design issues throughout the SoC
development flow. The guidance is provided in
the form of goals that are fine-tuned for high
quality results and low noise.
Field of Use (methodology) Refers to a phase in an SoC flow.
NOTE: Refer to SpyGlass GuideWare User Guide
for details on various fields of use and available
goals.
Stage (milestone) Refers to a sub-methodology, known as a design
stage in a particular field of use.
Task Refers to a sub-methodology that contains a set
of goals.
Goal Refers to a collection of rules.
Rule Refers to a check to detect a specific type of
design issue.
For example, the following figure illustrates the alignment of goals in the
New_RTL field of use:
236
Synopsys, Inc. Feedback
Working with Methodologies
Stages
Tasks
Goals
237
Feedback Synopsys, Inc.
Working with Methodologies
238
Synopsys, Inc. Feedback
Working with Methodologies
In the above dialog, you can select any option described in the following
table:
Option Description
New RTL block development (Default) Select this option to load GuideWare
goals for the New_RTL methodology, installed at:
<your-inst-dir>/SPYGLASS_HOME/GuideWare/
New_RTL directory
IP (RTL) Select this option to load GuideWare goals for
the IP_RTL methodology, installed at: <your-
inst-dir>/SPYGLASS_HOME/GuideWare/IP_RTL
directory
IP (Netlist) Select this option to load GuideWare goals for
the IP_Netlist methodology, installed at: <your-
inst-dir>/SPYGLASS_HOME/GuideWare/
IP_Netlist directory
Soc Integration & Select this option to load GuideWare goals for
implementation the SoC methodology, installed at: <your-inst-
dir>/SPYGLASS_HOME/GuideWare/SoC directory
Guideware 2.0 Reference Select one of the following options to use
Methodology Guideware 2.0:
• Block
• SoC
SpyGlass Sub-Methodology Select this option to load SpyGlass goals,
installed at: <your-inst-directory>/
SPYGLASS_HOME/Methodology directory
239
Feedback Synopsys, Inc.
Working with Methodologies
User Specified Methodology Select this option to specify your own custom
methodology.
After selecting this option, click the button
and select a custom methodology from the drop-
down list.
Values in this drop-down list are picked from the
methodologies specified in the
METHODOLOGY_SEARCH_PATH variable in
the .spyglass.setup file.
The advantage of using this option over the
Custom option is that you do not need to browse
to the path of a custom methodology every time
you open the Select Methodology dialog.
Custom Select this option to specify a directory
containing your own custom methodologies/
goals as an absolute path or a path relative to
the current directory.
After selecting this option, click the Browse
button to browse to the required directory.
240
Synopsys, Inc. Feedback
Working with Methodologies
241
Feedback Synopsys, Inc.
Working with Methodologies
current_methodology /GuideWare/IP_RTL
current_goal ip_exploration/lint/ip_rtl -alltop Scope of goal
Scope of
set_parameter allviol yes ip_rtl
methodology
set_parameter check_sequential yes
IP_RTL
current_goal initial_rtl/lint/simulation -alltop Scope of goal
set_parameter fast yes simulation
242
Synopsys, Inc. Feedback
Working with Methodologies
options and parameters. After saving the changes, you may select another
methodology, run another set of goals, and specify goal settings within the
scope of that methodology.
If no current_methodology is present for a current_goal
specification, Atrenta Console considers the current_methodology
specification present in the configuration file.
243
Feedback Synopsys, Inc.
Working with Methodologies
Configuring a Methodology
Configuring a Methodology
To configure an existing methodology, open the Methodology Configuration
System window by performing any of the following actions:
Click the Click here link in the Select Methodology dialog.
Select the Tools-> Methodology Configuration System menu option.
The following figure shows the Methodology Configuration System window:
NOTE: By default, the MCS window works in the mixed language mode. If you try to open
the MCS window when the language mode is other than mixed, Atrenta Console
displays a Warning dialog. In this dialog, you can change the language mode by
selecting the required language from the drop-down list.
244
Synopsys, Inc. Feedback
Working with Methodologies
Configuring a Methodology
Section Description
Menu bar section Provides various options that enable you to perform
different functions, such as adding/saving
methodologies, adding sub-methodologies, adding/
importing goals, and comparing methodologies.
For details, refer to The Methodology Configuration
System Menu Bar section of Atrenta Console Reference
Guide.
Toolbar section Add/import/delete goals, select/deselect rules, etc.
Goals section Lists sub-methodologies/goals that are available within a
methodology.
Rules section Lists the rules related to the selected goal in a
spreadsheet format. The columns display the status of
the rule (enabled/disabled), rule name, rule group, the
product to which the rule belongs and the severity of the
rule.
You can show/hide the columns based on your
requirement. To do so, right-click on the Rules List
section, and select the Configure Columns shortcut menu
option. Refer to the Configuring Columns for details on
how to show/hide a rule.
Parameter section Lists parameters associated with the selected goal
Search section Enables you to search for rules in the rule list of all
products or in the current methodology.
Help section Displays the help for a sub-methodology, goal, rule, or
parameter, based on the selection
NOTE: The MCS window enables you to modify only the currently loaded methodology.
Therefore, if you select a different methodology from the Select Methodology dialog,
the goals displayed in the MCS window are not affected.
245
Feedback Synopsys, Inc.
Working with Methodologies
Configuring a Methodology
Creating a Methodology
To create a methodology, perform the following steps:
1. Select the New Methodology option from the File menu in the Methodology
Configuration System window. Alternatively, use the <Ctrl> + <N> key
combination from the keyboard.
The Save Methodology dialog appears to enable you to save the currently
loaded methodology as shown in the following figure:
246
Synopsys, Inc. Feedback
Working with Methodologies
Configuring a Methodology
FIGURE 8.
Field Description
Methodology Name Specifies the name of the new methodology
Methodology Path Specifies the path where the new methodology should be
saved.
Short Help Specifies the short description of the new methodology
being created. This description is displayed next to the
methodology name in the Goal Selection section
Long Help Specifies a detailed description of the new methodology
being created. This description is saved in the order file.
247
Feedback Synopsys, Inc.
Working with Methodologies
Configuring a Methodology
Modifying a Methodology
To modify an existing methodology, select the Methodology Properties option
from the File menu. This displays Methodology Properties dialog, as shown in
the following figure:
248
Synopsys, Inc. Feedback
Working with Methodologies
Configuring a Methodology
appended to the methodology name in the title bar of the MCS window indicating
that the selected methodology contains unsaved changes.
Creating a Sub-Methodology
To add a sub-methodology, perform the following steps:
1. Right-click on the methodology for which you want to add a
sub-methodology, and select the Add Sub-Methodology option from the
shortcut menu.
The New Sub-Methodology dialog appears, as shown in the following
figure:
249
Feedback Synopsys, Inc.
Working with Methodologies
Configuring a Methodology
250
Synopsys, Inc. Feedback
Working with Methodologies
Configuring a Methodology
NOTE: To delete a sub-methodology, right-click on the methodology and select the Delete
Sub-Methodology option from the shortcut menu.
Modifying a Sub-Methodology
To modify a sub-methodology, perform the following steps:
1. Right-click on the sub-methodology, and select the Sub-Methodology
Properties option from the shortcut menu.
This displays the Sub-Methodology Properties dialog, as shown in the
following figure:
2. Specify the required details in the appropriate fields of the above dialog.
3. Click the OK button,
After performing the above steps, the specified changes appear in the MCS
window. For example, if you have changed the help of a sub-methodology,
the old help description is replaced with the new help description in the
Help window.
Creating Goals
To create a goal for a methodology (or a sub-methodology), perform the
following steps:
1. Open the New Goal dialog. For details, see Displaying the New Goals Dialog.
251
Feedback Synopsys, Inc.
Working with Methodologies
Configuring a Methodology
2. Specify the required details for the new goal in the appropriate fields of
the New Goal dialog. For details, see Specifying Details in the New Goal
Dialog.
3. Click the OK button.
After performing the above steps, the new goal appears under the selected
252
Synopsys, Inc. Feedback
Working with Methodologies
Configuring a Methodology
Field Description
Goal (Mandatory) Specifies the name of the goal
NOTE: The name of each goal should be unique.
Inherit Goal Specifies a goal to be inherited in the new goal being
created. For details on inherited goal, see Including and
Inheriting GuideWare Goals.
To inherit a goal, select the Select/Modify button. The Inherit
Goal dialog appears in which you can select the required
goal.
Select or deselect the corresponding check box to enable or
disable the inherited goal.
To delete the inherited goal from the goal being created, click
the Delete button.
253
Feedback Synopsys, Inc.
Working with Methodologies
Configuring a Methodology
Field Description
Include Goal(s) Specifies a goal to be included in the new goal being created.
For details on included goal, see Including and Inheriting
GuideWare Goals.
To include a goal, select the Select/Modify button. The
Include Goal(s) dialog appears in which you can select the
required goals.
Select or deselect the corresponding checkbox to enable or
disable the included goals.
To delete the included goals from the goal being created,
click the Delete button.
Prerequisite Specifies the name of the prerequisite goal(s) for the
Goals currently selected goal. You can either enter goal names in
this field, or select the goals that you want to consider as
prerequisite goals for the new goal being created. To select
goals, click the button adjacent to the Prerequisite Goals
field, and select the required goal(s) from this list.
The prerequisite goals appear in the Prereq Goals column of
the goal selection window (see Selecting a Goal).
Debug Help Type Specifies the format (text or HTML) in which the goal debug
help should be visible.
Debug Help Specifies the debug information that helps you debug issues
reported by this goal.
This help is visible during the Analyze Results stage when you
select the Goal Debug Help option in the Help section of the
Results pane.
Short Help Specifies the short description of the goal.
Long Help Specifies the detailed description of the goal.
The long help is visible in the Help window under the
Methodology Configuration System and the Select Goal tab
when modified methodology is loaded.
Other Options Specifies additional command-line options.
254
Synopsys, Inc. Feedback
Working with Methodologies
Configuring a Methodology
Option Description
Set as Dual Design Read Goal Select this option to make the goal as
DDR-specific goal.
Optional Goal Select this option to make the goal as
optional.
Importing Goals
To import goals in a methodology, perform the following steps:
1. Open the Import Goal(s) dialog by performing any of the following actions
in the MCS window:
Right-click on a methodology, and select the Import Goal(s) option from
the shortcut menu.
Select the Import Goal(s) option from the Edit menu.
Click the Import Goal(s) link.
The following figure shows the Import Goal(s) dialog:
2. In the Look In text field of the above dialog, specify the path of the
directory where goals are present.
3. Select a goal or directory containing the required goals.
255
Feedback Synopsys, Inc.
Working with Methodologies
Configuring a Methodology
Deleting Goals
To delete a goal from a methodology, right-click on that goal and select the
Delete option from the shortcut menu.
Copying Goals
You can copy a goal and paste it anywhere in the current methodology.
To copy a goal, right-click on that goal and select the Copy Goal option from
the shortcut menu.
To paste this goal, right-click at the desired location in the current
methodology and select the Paste Goal option from the shortcut menu.
Modifying Goals
You can modify a goal of a methodology by:
Modifying Goal Properties
Enabling/Disabling a Goal
Updating Rules of a Goal
Adding Rules in a Goal
Modifying Parameters of a Goal
256
Synopsys, Inc. Feedback
Working with Methodologies
Configuring a Methodology
257
Feedback Synopsys, Inc.
Working with Methodologies
Configuring a Methodology
258
Synopsys, Inc. Feedback
Working with Methodologies
Configuring a Methodology
selected goal. For example, when you modify the description of a goal in
the Long Help field, the modified help replaces the old help of that goal in
the Help window.
Enabling/Disabling a Goal
An enabled goal appears in the Goals section of the MCS window. The name
of such goals is preceded by the symbol.
If you do not want a goal to be part of your analysis run, disable that goal
by clicking the symbol adjacent to that goal. The symbol appears
preceding that goal name indicating that the goal is disabled. Such goals
do not appear in the list of goals available in the goal selection window.
To enable a disabled goal, click the symbol adjacent to the goal name.
259
Feedback Synopsys, Inc.
Working with Methodologies
Configuring a Methodology
This displays the Overload Rule dialog, as shown in the following figure:
2. In the above dialog, specify the details, such as severity and weight in
appropriate fields.
3. Click the OK button to save the changes.
After performing the above steps, the changes appear in goal files at the
time of saving the methodology.
By default, the Rules List section displays rules that are recommended for
an enabled goal. The rest of the rules are disabled. However, you can
enable such rules based on your requirements.
Enabling/Disabling a Rule
You can enable or disable a rule in the same manner as you enable or
disable a goal in the Goals section of the MCS window.
Alternatively, right-click on the rule and select the Disable Rule (if the rule is
enabled) or Enable Rule (if the rule is disabled) option from the shortcut
menu.
Deleting a Rule
To remove a rule from a goal, right-click on the rule and select the Delete
Rule option from the shortcut menu. Alternatively, select the rule and click
the Delete Rule(s) option in the MCS toolbar.
Ignoring a Rule
If you do not want a rule to run for a particular goal, you can ignore that
rule.
To ignore a rule, right-click on the rule name, and select the Ignore Rule(s)
260
Synopsys, Inc. Feedback
Working with Methodologies
Configuring a Methodology
option from the shortcut menu. You can also select multiple rules to be
ignored. This menu option is disabled for a rule that is already ignored.
An ignored rule appears as (ignored)<rule-name> in the rule list of
the selected goal.
If you want to run a rule that is ignored, right-click on the rule name and
select the Add Rule(s) option from the shortcut menu. You can also select
multiple rules. This menu option does not appear for a rule that is already
added either by using the -rule or -addrule option in a goal file.
261
Feedback Synopsys, Inc.
Working with Methodologies
Configuring a Methodology
Searching Rules
You can search rules in the Search section of the MCS window, as shown in
the following figure:
In the above section, specify the search text in the Search textbox and click
the Go link. Once you click the Go link, Atrenta Console displays all the
rules matching the specified search criteria in a spreadsheet format.
By default, Atrenta Console searches all SpyGlass rules. To confine your
search among rules of the selected methodology only, select the Current
Methodology option from the In drop-down list.
You can specify multiple search criteria by clicking the Add Search Criteria
link multiple times. Each time you click this link, Atrenta Console adds
additional fields, as shown in the following figure:
262
Synopsys, Inc. Feedback
Working with Methodologies
Configuring a Methodology
You can click the Delete link corresponding to the search criteria that you
want to remove.
For each parameter, the corresponding value appears in the Value column.
You can modify this value as per your requirement. If you want to assign all
parameters their respective default values, click the Restore Defaults link.
NOTE: Some goals do not use default parameter values. For details on such goals, see
Goals That Do Not Use Default Parameter Value.
The Parameter(s) section also contains the Show drop-down menu. The
following table describes various options of this menu:
263
Feedback Synopsys, Inc.
Working with Methodologies
Configuring a Methodology
264
Synopsys, Inc. Feedback
Working with Methodologies
Configuring a Methodology
In the above window, if you want to move the audit sub-methodology inside
the lint sub-methodology, perform the following steps:
1. Select the audit sub-methodology.
2. Drag the audit sub-methodology to the lint sub-methodology.
When you release the mouse button, the following menu appears:
3. From the above menu, select the Insert Inside lint option.
The audit sub-methodology now appears under the lint sub-methodology,
as shown in the following figure:
265
Feedback Synopsys, Inc.
Working with Methodologies
Configuring a Methodology
NOTE: The sub-methodology being moved appears as the first folder under the tree of the
destination sub-methodology.
Similarly, you can drag and drop goals across different sub-methodologies
or within the same sub-methodology.
For example, to move the synthesis goal from the lint sub-methodology to
the clock_reset_integrity sub-methodology, perform the following steps:
1. Select the synthesis goal.
2. Drag the synthesis goal to the clock_reset_integrity sub-methodology.
When you release the mouse button, the following menu appears:
266
Synopsys, Inc. Feedback
Working with Methodologies
Configuring a Methodology
3. From the above menu, select the Insert Inside clock_reset_integrity option.
The synthesis goal now appears as the first goal under the
clock_reset_integrity sub-methodology, as shown in the following figure:
You can also move goals at specific positions under a sub-methodology. For
example, if you want to move the simulation goal of the lint sub-methodology
after the power_gated_clock goal under the clock_reset_integrity sub-
methodology, perform the following steps:
1. Expand the clock_reset_integrity sub-methodology.
2. Select the simulation goal.
267
Feedback Synopsys, Inc.
Working with Methodologies
Configuring a Methodology
4. From the above menu, select the Insert After power_gated_clock option.
After performing the above steps, the simulation goal appears after the
power_gated_clock goal under the clock_reset_integrity sub-methodology.
268
Synopsys, Inc. Feedback
Working with Methodologies
Customizing Goals
You can customize a goal in the following ways:
By adding and/or removing rule(s) from a goal.
By updating parameter value of rules.
By defining your own rule severity by using the define_severity
option.
By deriving existing GuideWare goals in the goal file.
269
Feedback Synopsys, Inc.
Working with Methodologies
270
Synopsys, Inc. Feedback
Working with Methodologies
271
Feedback Synopsys, Inc.
Working with Methodologies
272
Synopsys, Inc. Feedback
Working with Methodologies
Parameter Specification
define_severity Specification
overloadrule Specification
-rule/-addrule/-ignorerule(s) Specification
SpyGlass ignores the -ignorerule specification for a particular rule in
the included/inherited goal file if you specify the -rule/-addrule
specification for the same rule in the parent, included, and/or inherited
goal file. In addition, SpyGlass reports an appropriate warning message in
such cases.
Consider a parent goal file that contains the following specifications:
-policies=lint
...
-include_goal included-mixed.spq
-addrule W18
...
Now when the parent goal runs, SpyGlass ignores the W18 and W391 rules
and reports the following warning for these rules:
WARNING [342] Rule/Group 'W18' specified at File: parent-
mixed.spq, Line: 6 has been ignored due to the following -
ignorerule(s) specifications -
-ignorerule W18(File: included-mixed.spq, Line: 6)
Parameter Specification
If you specify a rule parameter more than once in an included/inherited
goal or the parent goal, SpyGlass considers the last parameter
specification.
273
Feedback Synopsys, Inc.
Working with Methodologies
274
Synopsys, Inc. Feedback
Working with Methodologies
275
Feedback Synopsys, Inc.
Working with Methodologies
276
Synopsys, Inc. Feedback
Working with Methodologies
277
Feedback Synopsys, Inc.
Working with Methodologies
278
Synopsys, Inc. Feedback
Working with Methodologies
In the above page, you can add more options by clicking Add Option.
Hierarchical View: This is a hierarchical list that shows rules for included
and inherited goals under separate nodes. Rules of the parent node
appear at the root-level.
Select the Hierarchical View option from the drop-down list for this view.
The following figure shows a hierarchical view of rules:
279
Feedback Synopsys, Inc.
Working with Methodologies
280
Synopsys, Inc. Feedback
Working with Methodologies
281
Feedback Synopsys, Inc.
Working with Methodologies
In the above figure, goals highlighted in red indicate some error(s) in such
goals. When you open the Methodology Configuration System window, Atrenta
Console first displays the error details of all such goals in the Error dialog,
as shown in the following figure:
282
Synopsys, Inc. Feedback
Working with Methodologies
After viewing the error details in the above dialog, click the OK button to
display the Methodology Configuration System window.
In the Methodology Configuration System window, when you select a goal
containing error(s), an Error dialog appears displaying the error details of
only the selected goal.
283
Feedback Synopsys, Inc.
Working with Methodologies
Comparing Methodologies
Comparing Methodologies
You can compare two methodologies in the MCS window to view differences
between them.
To compare methodologies, perform the following steps:
1. Select the Tools -> Compare -> Methodologies menu option in the MCS
window.
The Methodology Comparison dialog appears, as shown in the following
figure:
284
Synopsys, Inc. Feedback
Working with Methodologies
Comparing Methodologies
Red entries in this dialog indicate a difference. For example, in the above
dialog, there is a difference between the clock_reset_integrity goals of the two
methodologies. You can expand these goals to view the difference.
If some information present in one methodology is missing in another
methodology, the Not available text appears in the latter methodology. For
example, in the above dialog, the structural_exception goal under the
constraint hierarchy is present in Methodology 1 but is missing in the
constraint hierarchy of Methodology 2. Therefore, the text Not available text
285
Feedback Synopsys, Inc.
Working with Methodologies
Comparing Methodologies
appears in Methodology 2.
286
Synopsys, Inc. Feedback
Working with Methodologies
In the above dialog, select the Copy Files or Inherit Files option to copy or
inherit a methodology, respectively. For details, see Copying a Methodology
and Inheriting a Methodology.
Copying a Methodology
Copying a methodology creates an exact copy of the specified methodology
in the specified output directory. All the copied goal files contain details of
rules and parameters.
To copy a methodology by using the Copy Methodology dialog, perform the
following steps:
1. Specify a methodology to be copied in the Source Methodology text box.
Alternatively, click to browse to the methodology to be copied.
2. Select the Copy Files option.
3. Specify the name of the methodology that should contain the copied
files in the Copy Methodology Name text box.
287
Feedback Synopsys, Inc.
Working with Methodologies
Inheriting a Methodology
Inheriting a methodology creates an exact structure of the specified
methodology in the specified output directory.
However, unlike copying a methodology, goal files in this case do not
contain details of rules and parameters. Instead, the goal files only contain
the -inherit_goal command, as shown in the following example:
-inherit_goal $SPYGLASS_HOME/GuideWare/New_RTL/initial_rtl/
lint/structure-verilog.spq
To inherit a methodology by using the Copy Methodology dialog, perform the
following steps:
1. Specify a methodology to be inherited in the Source Methodology text box.
Alternatively, click to browse to the methodology to be inherited.
2. Select the Inherit Files option.
3. Specify a reference environment variable in the Reference ENV Variable
text box.
For details, see Specifying a Reference Environment Variable.
4. Specify an additional path after the reference environment variable path
in the Additional Path text box.
For details, see Specifying an Additional Path.
5. Specify the name of the methodology that should contain the inherited
files in the Copy Methodology Name text box.
6. Specify the directory in which the methodology should be inherited in
the Output Directory text box.
7. Click the Copy button.
After performing the above steps, all files of the specified methodology are
inherited in the specified output directory.
288
Synopsys, Inc. Feedback
Working with Methodologies
289
Feedback Synopsys, Inc.
Working with Methodologies
-inherit_goal RELEASE/SpyGlass-<version>/SPYGLASS_HOME/
ABC//ip_audit/lint/ip_netlist-mixed.spq
290
Synopsys, Inc. Feedback
Working with Methodologies
Comparing Goals
You can compare custom goals with an existing methodology, such as
GuideWare goals and analyze differences between these goals.
For example, you can compare rules that are common in custom goals and
goals in an existing methodology. Similarly, you can compare rules that are
present in custom goals but missing in goals of the specified methodology.
To compare goals, perform the following steps:
1. Select the Tools -> Compare -> Goals with Methodology menu option.
The Compare custom goals dialog appears, as shown in the following
figure:
291
Feedback Synopsys, Inc.
Working with Methodologies
292
Synopsys, Inc. Feedback
Working with Methodologies
293
Feedback Synopsys, Inc.
Working with Methodologies
294
Synopsys, Inc. Feedback
Working with Methodologies
Category Description
Common Number of common rules between custom goals and
GuideWare.
These are GuideWare non-optional (mandatory) rules.
Common_GWOpt Number of common rules that are specified as 'optional' in
GuideWare
GW_Only Number of GuideWare rules included in the migration
result output flow.
They do not appear in custom goals.
GW_Opt_Only Number of GuideWare 'optional' rules included in the
migration result output flow.
They do not appear in custom goals.
(Note: These rules are not mandatory but can be
considered by user if interested).
Cust_Only Number of custom included only rules
(not part of GuideWare)
Total Rules Total rule count found in GuideWare and custom goals
Total GW Total GuideWare non-optional rules
Total GW Opt Total GuideWare optional rules
Total Customer Total rules in custom goals
295
Feedback Synopsys, Inc.
Working with Methodologies
296
Synopsys, Inc. Feedback
Working with Methodologies
Migrating Goals
Migrating goals is a process in which user-specified custom goals are
merged with the specified methodology. After migration, Atrenta Console
creates a new methodology that contains rules from custom goals as well
as rules from the specified methodology. You can specify the name for this
methodology in the Output Directory field of the Goal Comparison Summary
dialog.
For example, you may want to migrate some custom goals with
initial_rtl and rtl_handoff stages of the GuideWare/New_RTL
methodology. In this case, custom goals are compared with the goals of
the initial_rtl and rtl_handoff stages and a new methodology is
created that contains rules from the initial_rtl and rtl_handoff
stages as well as rules that were specified in the custom goals but were not
present in any of these stages.
Before migrating goals, you can:
Select the Separate style rules option to separate coding style-specific
rules from custom goals to a single style_checks goal.
Select the Use Parameter Values Set In Custom Goals option to overwrite
parameter values of the specified methodology with parameter values
set in custom goals.
Select the Load created methodology in MCS after migration option to load the
newly created methodology containing migration results in the MCS
window.
After selecting the required options, click the Migrate Goals button in the
Goal Comparison Summary dialog. This creates a new methodology of the
specified name that contains a combined set of rules present in custom
goals and specified methodologies.
297
Feedback Synopsys, Inc.
Working with Methodologies
Order File
Order File
An order file contains path of goal files relative to a methodology directory.
This path is used to specify the order in which goals are arranged in a
methodology.
Each methodology contains one order file that defines the order of all its
goals.
For example, consider the following sample structure:
New_RTL methodology
initial_rtl sub-methodology
Order file
For the above example, the order file under the New_RTL methodology
should contain the following entries:
initial_rtl
initial_rtl/lint/connectivity*
initial_rtl/lint/synthesis*
initial_rtl/lint/structure*
298
Synopsys, Inc. Feedback
Working with Methodologies
Order File
initial_rtl/audit/block_profile*
initial_rtl/audit/rtl_audit*
initial_rtl/audit/structure_audit*
299
Feedback Synopsys, Inc.
Working with Methodologies
Order File
Commented Section
This section provides the description of the methodology. This section is
present between =methodology and =cut, and is present at the top of
the order file.
You can view the description provided by this section under the Select Goal
tab or in the Methodology Configuration System window.
NOTE: Each order file contains only one comment.
The commented section contains the following details in the specified
order:
The first line starts with the =methodology string to indicate the
beginning of a comment.
Next line specifies the methodology name for which the order file is
present.
(Optional) Next line specifies the name of the parent methodology, if
present, for the current methodology in the following format:
OLDMETH: <methodology-name>
Next line contains * to indicate the beginning of the short help of the
methodology.
Next line specifies a one-liner short help of the methodology.
(Optional) Next line specifies the short help of the parent methodology,
if present, for the current methodology in the following format:
OLDDESC: <short-help>
Next line contains * to indicate the end of the short help of the
methodology.
Next line contains the beginning of the long help of the methodology.
If the current methodology has a parent methodology, the long help of
the parent methodology is in the following format:
OLDDESC: <long-help>
Last line contains =cut to indicate the end of commented area.
A sample order file is given in the Sample Order File section.
Goal Description and Attributes Area
This section contains name and relative-path of each goal of the
300
Synopsys, Inc. Feedback
Working with Methodologies
Order File
301
Feedback Synopsys, Inc.
Working with Methodologies
Map File
Map File
Map file is used to trace back the reference of the new goal, which is
present in a methodology, to the original goal, which is present in another
methodology.
You can specify a map file along with an order file in a methodology to
mark the mappings between the goals in different methodologies.
For example, following describes mapping between GuideWare 1.0 and
GuideWare 2.0 goals:
initial_rtl/lint/connectivity,initial_rtl/lint/
simulation,initial_rtl/lint/synthesis,initial_rtl/lint/
structure::lint/lint_rt
In the above example, the lint_rtl goal in GuideWare 2.0 represents
following four goals in GuideWare 1.0:
connectivity
simulation
synthesis
structure
302
Synopsys, Inc. Feedback
Working with SpyGlass
Design Constraints
Overview
SpyGlass Design Constraints (SGDC) are used to:
Provide additional design information that is not apparent in the RTL
description.
Restrict SpyGlass analysis to a set of objects.
Consider a scenario in which you want to specify the names of clock nets to
be checked. While SpyGlass can infer clocks in the design, you may want to
restrict the analysis to only a handful of clocks or specify other clocks that
could not be inferred. In this case, you can specify the required clock
information by using the appropriate constraint.
NOTE: The design constraint files can have any extension. However, it is recommended to
use the .sgdc extension to facilitate better recognition and handling.
NOTE: The previous method of supplying design constraints using embedded design
pragmas is still supported for backward compatibility. However, it is strongly
recommended that you use the design constraints file method that is superior. If
both the design constraints file and embedded design pragmas are specified,
SpyGlass uses the design constraints file only and ignores the embedded design
pragmas. Similarly, if you have not specified a design constraints file but have
embedded design pragmas in the source code, SpyGlass reads these pragmas and
creates a design constraints file, pragma2constraints.sgdc, located in the goal result
303
Synopsys, Inc.
Working with SpyGlass Design Constraints
Overview
304
Synopsys, Inc. Feedback
Working with SpyGlass Design Constraints
305
Feedback Synopsys, Inc.
Working with SpyGlass Design Constraints
306
Synopsys, Inc. Feedback
Working with SpyGlass Design Constraints
current_design B2
clock -testclock -name tclk2 -value rto Scope for design
testmode -name tm2 -value 0 unit B2
current_design B3
clock -testclock -name tclk3 -value rto Scope for design
unit B3
307
Feedback Synopsys, Inc.
Working with SpyGlass Design Constraints
NOTE: SpyGlass checks the design unit name in case-insensitive manner. Therefore, if
your Verilog design has two modules named FOO and foo, specifying a
current_design keyword line with FOO or any of its case variants as its
argument will result in the same set of constraints on both FOO and foo modules.
Please note that some products, such as SpyGlass DFT solution, work only
on flattened netlists. Therefore, the current_design command must
specify only top-level design units for these products. However, if there are
multiple top-level design units in a design, specify the current_design
command for each top-level design unit; and all the constraints related to
that top-level design unit must follow the corresponding
current_design line.
For a parametrized design unit, the -def_param switch of the current
design is used to define scope specific to its default parameter. The param
parameter is used for user-specified values. The -param switch of the
current design accepts list of non-default parameters in the following
format:
<param>=<value>
For example consider a design unit having instances of parametrized
design unit B4, one instantiated with default parameter value and other
with overridden parameter value '8'. Following specification defines the
scope for default and non-default parametrized design unit B4:
308
Synopsys, Inc. Feedback
Working with SpyGlass Design Constraints
In the above example, the dot separator is used for AD_IN.lo. However, in
an SGDC file, this element is specified as AD_IN[lo], as shown below:
input -name AD_IN[lo] -clock c2
current_design B2
clock -testclock -name tclk2 -value rto
testmode -name tm2 -value 0
current_design B1
clock -testclock -name tclk3 -value rto
In the above example, there are two current_design lines for design
309
Feedback Synopsys, Inc.
Working with SpyGlass Design Constraints
unit B1 that specify two clocks (tclk1 and tclk3) and one testmode
(tm1).
Consider the following example:
current_design B3
testmode -name tm1 -value 1
current_design B3 -def_param
clock -testclock -name tclk1 -value rto
testmode -name tm2 -value 0
310
Synopsys, Inc. Feedback
Working with SpyGlass Design Constraints
Method 1 Method 2
voltagedomain voltagedomain
... ...
-isosig top.isig1 top.isig2
-isoval 0 1 -isosig top.isig1 -isosig top.isig2
... -isoval 0 -isoval 1
...
Method 3
voltagedomain
...
-isosig top.isig1 -isosig top.isig2
-isoval 0 1
...
The style used in one argument can be different than the style used in the
other interdependent argument.
311
Feedback Synopsys, Inc.
Working with SpyGlass Design Constraints
NOTE: The purpose and function of each design constraint keyword is product-specific and
is described in the product rules reference document of the respective product
where the design constraint can be used. For example, the SpyGlass CDC solution
uses the clock and reset design constraint keywords (besides many other
design constraint keywords), and the SpyGlass CDC Rules Reference describes how
these design constraints are used for the product. In addition, a product can have
its own product-specific design constraint keywords.
NOTE: Application of a design constraint keyword may be different in different products.
For example, the -domain argument of the clock design constraint keyword is
important when used with the SpyGlass CDC solution but is ignored when used with
SpyGlass DFT solution. Similarly, the -testclock argument is important in the
SpyGlass DFT solution but is ignored by the SpyGlass CDC solution.
In the above case, when you specify the constraint.sgdc file during SpyGlass
analysis, SpyGlass expands the contents of this file to the following:
current_design test
test_mode -name test.w1 -value "1"
current_design and_new
test_mode -name in1 -value "1"
312
Synopsys, Inc. Feedback
Working with SpyGlass Design Constraints
313
Feedback Synopsys, Inc.
Working with SpyGlass Design Constraints
For example, signal specification clk1 means that this signal is in the
design unit identified by the current_design specification.
Module signal name
For example, signal specification top.CK1, where the prefix specified
before the period (.) hierarchy separator is same as the name of the
design unit in the current_design specification. In this case, the
description is equivalent to simple name specification as above.
Hierarchical signal name
For example, the signal specification top.U1.U2.CK1, where multiple
values specified with the dot (.) hierarchy separator identifies the
design hierarchy within the current_design specification. This
detailed specification may begin with either the name of the design unit
in the current_design specification or the instance name within the
design unit in the current_design specification.
NOTE: It is not required to specify the top-level design unit name (which is specified
with current_design) in a hierarchical name. Thus, both
top.U1.U2.CK1 and U1.U2.CK1 are acceptable (and are the same)
under
current_design top.
In all of the above cases, Atrenta Console first searches the reported signal
as PORT signal, and then as NET signal.
NOTE: You can specify escaped names by enclosing them in double quotes as in
“\myvlogsig1”, “\myvhdlsig#11\”. You only need to escape the
double quote character in an escaped name as in “\myvlogsig\”23\””,
“myvhdlsig\”5\””.
NOTE: You can also use Synopsys-style escaped names by specifying the following
command in Atrenta Console project file:
set_option support_sdc_style_escaped_name yes
By default, SpyGlass supports the dot (.) character (main; always
supported) and the forward slash (/) character (additional; set in the
default SpyGlass Configuration file) as the hierarchy separator. Use the
command named set_hsep to specify your own additional hierarchy
character. Thus, you can use any Synopsys-style hierarchy separator in
SpyGlass Design Constraints files.
314
Synopsys, Inc. Feedback
Working with SpyGlass Design Constraints
Defining Variables
To define a variable in an SGDC file, use the following command:
setvar <variable-name> <variable-value>
For example, the following command defines the variable myvar1 and
assigns the value clk to this variable:
setvar myvar1 clk
Using Variables
You can use a variable in any of the following formats:
$<variable-name>
${<variable-name>}.
For example, in the following clock constraint specification, the variable
myvar1 is used as the value of the -name argument:
clock -name $myvar1
315
Feedback Synopsys, Inc.
Working with SpyGlass Design Constraints
For the above command, SpyGlass internally assigns the value clk to the
-name argument of the clock constraint.
NOTE: Non-variable strings that start with $ should be escaped with a backslash to avoid
confusion.
Note the following points:
You can define only one variable per line.
A variable definition can span over multiple lines using the backslash
continuation character.
There is no = or := between the variable name and its value, to keep it
consistent with Tcl format.
Variable names must start with a letter and can contain letters,
numerals, and underscore characters.
Variable names are case-sensitive. Thus, xyz and XYZ are different
variables.
The variable value can be any string consisting of one or more words.
You must enclose multi-word values within double quotes.
Double quotes used in variable names are a part of the variable name
itself.
A variable remains visible within the scope of its containing SpyGlass
constraints file. Thus, it is also visible in the included SpyGlass
constraints files, if any.
A variable becomes visible immediately from the next line after its
definition and remains visible till the end of the file.
You can define a variable multiple times in a file. In such cases, every
definition overrides the previous definition and the current definition is
applicable for subsequent commands.
You can refer a variable in its definition as well. This allows you to
redefine the variable with additional values in the same SpyGlass
constraints file.
For example, following are the allowed definitions:
...
setvar var1 b/c
...
setvar var1 $var1/d
316
Synopsys, Inc. Feedback
Working with SpyGlass Design Constraints
...
Starting with the first definition, the value of variable var1 is b/c till it
is redefined again. Then, the value of the variable var1 becomes b/c/
d.
A variable definition can refer other variables that are already defined as
in the following example:
...
setvar var1 a/b/c
...
setvar var2 $var1/d
...
You can also use the operating system-level environment variables in
the SGDC files. In such cases, the name of a local variable should not be
the same as that of an existing operating system-level environment
variable.
317
Feedback Synopsys, Inc.
Working with SpyGlass Design Constraints
318
Synopsys, Inc. Feedback
Working with SpyGlass Design Constraints
In the above example, if you want to use abc, specify the following
notation in the SGDC file:
current_design TOP
319
Feedback Synopsys, Inc.
Working with SpyGlass Design Constraints
320
Synopsys, Inc. Feedback
Working with SpyGlass Design Constraints
if {$a == "abcd"} {
constraint xyz
} else {
constraint abc
}
321
Feedback Synopsys, Inc.
Working with SpyGlass Design Constraints
Example 1
This example demonstrates the precedence of SG_OPERATING_MODE
setting done inside an SGDC file over its environment variable value.
In the first if-elseif block of this example, the opmode environment
variable setting is used. In the second if-elseif block, the sysmode
local setting, as done by the setvar command, is applicable.
On shell
setenv SG_OPERATING_MODE opmode
322
Synopsys, Inc. Feedback
Working with SpyGlass Design Constraints
if {$SG_OPERATING_MODE == "sysmode"} {
clock -name c -value rto
} elseif {$SG_OPERATING_MODE =="opmode"} {
clock -name d -value rtz
}
Example 2
This example is the same as Example 1 above, except that instead of setting
the environment variable, the operating_mode option is set inside the
project file.
In this example, the first and second if-elseif blocks use the opmode
value of the operating_mode option in the project file. The local setting
made through setvar in the SGDC file is ignored because it has lower
precedence over the operating_mode option setting.
323
Feedback Synopsys, Inc.
Working with SpyGlass Design Constraints
if {$SG_OPERATING_MODE == "sysmode"} {
clock -name c -value rto
} elseif {$SG_OPERATING_MODE == "opmode"} {
clock -name d -value rtz
}
Example 3
Consider two scenarios S1 and S2 for the lint SoC goal, and a single
SGDC file, soc_lint.sgdc, capturing constraints for these two scenarios.
NOTE: For details on scenarios, see Working with Scenarios.
324
Synopsys, Inc. Feedback
Working with SpyGlass Design Constraints
Example 4
In this example, different scenarios are defined for a goal of the SpyGlass
Power family. In this case, the SGDC file has activity information defined as
per power estimation modes, such as pessimistic, standby, and
nominal.
# Activity info for Power estimation (condition modal
# analysis - pessimistic and nominal)
# goal scenarios defined in the wb_subsystem.prj file define
# the SG_OPERATION_MODEs
# the SG_OPERATING_MODE is set in the .prj file using the
# set_goal_option operating_mode {<mode_value>}
if { $SG_OPERATING_MODE == "PESSIMISTIC_POWER" } {
# pessimistic activity - result in higher average power
activity -instname "wb_subsystem" -activity 1.10 -prob
0.80 -all_primary_input -all_register_output
325
Feedback Synopsys, Inc.
Working with SpyGlass Design Constraints
} else {
# default case
activity -instname "wb_subsystem" -activity 0.56 -prob
0.45 -all_primary_input -all_register_output
}
326
Synopsys, Inc. Feedback
Working with SpyGlass Design Constraints
327
Feedback Synopsys, Inc.
Working with SpyGlass Design Constraints
328
Synopsys, Inc. Feedback
Working with SpyGlass Design Constraints
329
Feedback Synopsys, Inc.
Working with SpyGlass Design Constraints
Recognizing Clocks
Recognizing Clocks
Different Atrenta standard products process clock information based on
their specific rule-checking requirements. Refer to the respective product
rules reference document for details.
The following table summarizes how different Atrenta standard products
process clock information:
330
Synopsys, Inc. Feedback
Working with SpyGlass Design Constraints
331
Feedback Synopsys, Inc.
Working with SpyGlass Design Constraints
NOTE: By default, the sdc2sgdc generated constraint files are retained in the subsequent
SpyGlass run. Set the retain_old_sgdc parameter to no to remove the SGDC file
generated in the previous SpyGlass runs.
You must specify an SDC file name (containing SDC commands to be
translated) in an SGDC file by using the sdc_data constraint, as shown in
the following example:
current_design <design-name>
sdc_data –file <sdc-file-name>
You can specify the SGDC file containing the above command in the design
read stage.
NOTE: You can also specify a compressed SDC file generated by using the gzip utility.
The above command is converted into following SGDC clock using the
332
Synopsys, Inc. Feedback
Working with SpyGlass Design Constraints
333
Feedback Synopsys, Inc.
Working with SpyGlass Design Constraints
When the mode is set to strict, you must provide all clock relationships
in a single set_clock_groups command. SpyGlass reports a FATAL
error if domain is not inferred.
When the mode is set to pessimistic, the behavior is similar to that of
sta_compliant with the exception that if none of the set_clock_group,
set_clock_uncertainty, or set_false_path constraint is
specified for a clock pair, they are considered asynchronous.
NOTE: The values, strict and pessimistic, will be deprecated in a future release.
When the mode is set to async, then no domain inference from sdc
constraints is done and clocks are considered asynchronous to each other.
When the mode is set to sta_scg or strict_sta, only the user-
specified set_clock_group command would be considered and all the other
commands related to domain computation are ignored. Also, a spreadsheet
(.csv) file showing clock relationship is generated.
NOTE: The value, strict_sta, for the sdc_domain_mode parameter is deprecated and will be
removed in a future release.
Used by SDC2SGDCPARSE
Options yes, no
Default value no
Example
Console/Tcl-based usage set_option sdc_generate_cfp yes
Usage in goal/source -sdc_generate_cfp=yes
files
334
Synopsys, Inc. Feedback
Working with SpyGlass Design Constraints
Following corresponding SGDC commands are generated when you set the
value of the sdc_generate_cfp option to yes:
cdc_false_path -from Clk1 -to Clk2
cdc_false_path -from Clk1 -to Clk4
cdc_false_path -from Clk2 -to Clk1
cdc_false_path -from Clk2 -to Clk3
cdc_false_path -from Clk3 -to Clk2
cdc_false_path -from Clk3 -to Clk4
cdc_false_path -from Clk4 -to Clk1
cdc_false_path -from Clk4 -to Clk3
335
Feedback Synopsys, Inc.
Working with SpyGlass Design Constraints
336
Synopsys, Inc. Feedback
Working with SpyGlass Design Constraints
\
Used by sdc2sgdc flow
Options yes, no
Default value no
Example
Console/Tcl-based usage set_parameter sdc_generated_clocks yes
Usage in goal/source -sdc_generated_clocks=yes
files
337
Feedback Synopsys, Inc.
Working with SpyGlass Design Constraints
set_clock_group
Consider the following SDC commands:
set_clock_group -logically_exclusive
set_clock_group - physically_exclusive
set_clock_group - asynchronous
The following false_path constraints are generated corresponding to the
above SDC commands:
false_path -scg_logically_exclusive
false_path -scg_physically_exclusive
false_path -scg_asynchronous
338
Synopsys, Inc. Feedback
Working with SpyGlass Design Constraints
339
Feedback Synopsys, Inc.
Working with SpyGlass Design Constraints
340
Synopsys, Inc. Feedback
Working with SpyGlass Design Constraints
Consider the following example in which you specify two different modes in
an SGDC file:
sdc_data -file one.sdc -mode A
341
Feedback Synopsys, Inc.
Working with SpyGlass Design Constraints
342
Synopsys, Inc. Feedback
Working with SpyGlass Design Constraints
create_clock
The clock constraint dumped in the SGDC file has the -name option
whose value is the name of the object serving as a clock source.
However, in case of virtual clock where the source object is empty,
SpyGlass populates this field with:
A real clock found in a design that matches the virtual clock.
Actual name of the clock (that is, the field specified with the -name
option in the SDC file) if a real clock-mapping to virtual clock is not
found.
set_input_delay
If set_input_delay has a virtual clock as its clock source, Atrenta
Console stores it in an un-commented form.
If this virtual clock is mapped to some real clock, the input constraint
uses the corresponding real clock. Otherwise, it refers to the virtual clock
name only.
343
Feedback Synopsys, Inc.
Working with SpyGlass Design Constraints
set_output_delay
If set_output_delay has a virtual clock as its clock source, Atrenta
Console updates the SGDC file in following manner:
If this virtual clock is mapped to some real clock, the output constraint
uses the corresponding real clock and it is stored in an uncommented
form in the SGDC file.
Otherwise, virtual clock name itself is used and the output constraint
is stored in a commented form in the SGDC file.
Limitations
The SDC-to-SGDC functionality has the following limitations:
If you have specified more than one -corner option for a single mode,
Atrenta Console translates SDC files corresponding to only the first
-corner option.
For example, consider the following case:
sdc_data –file file1.sdc –mode func –corner Best
sdc_data –file file2.sdc –mode func –corner Worst
sdc_data –file file3.sdc –mode func –corner Best
Here, more than one -corner option is specified for the same mode
func. Therefore, the SDC files (file1.sdc and file3.sdc) corresponding to
the first -corner option (Best) are translated by the set_option
sdc2sgdc yes command.
344
Synopsys, Inc. Feedback
Working with SpyGlass Design Constraints
If multiple clocks are defined on the same source object in an SDC file
by using the -add option, SpyGlass reports an error message. However,
if you do not specify the -add option, translation occurs only for the
last clock definition and a Warning message appears.
You can change the severity from Error to Fatal by using the
overloadrules option of the set_option command in the project
file. The following is an example of using the overloadrules option:
set_option overloadrules SDC2SGDC_STX01+severity=FATAL
If you specify multiple set_input_delay parameters on the same
object for different clocks by using the -add_delay option, translation
for delays happen in the order as defined in the SDC file.
If you define the clock and set_case_analysis commands on the
same object in the SDC file, the SpyGlass DFT solution reports a FATAL
violation to indicate the conflict.
All commands specified on the port/pin objects are translated on the
connected net in the SGDC file.
345
Feedback Synopsys, Inc.
Working with SpyGlass Design Constraints
346
Synopsys, Inc. Feedback
Working with SpyGlass Design Constraints
NOTE: You should choose the same specification used in the current_design
command in the block-level SGDC file.
You can provide the above specification multiple times for different
blocks in the same chip-level SGDC file.
You can specify an absolute or a relative path for the block-level SGDC
file. If you specify a relative path, ensure that it is accessible from the
current run directory.
347
Feedback Synopsys, Inc.
Working with SpyGlass Design Constraints
348
Synopsys, Inc. Feedback
Working with SpyGlass Design Constraints
349
Feedback Synopsys, Inc.
Working with SpyGlass Design Constraints
350
Synopsys, Inc. Feedback
Working with SpyGlass Design Constraints
351
Feedback Synopsys, Inc.
Working with SpyGlass Design Constraints
352
Synopsys, Inc. Feedback
Working with SpyGlass Design Constraints
353
Feedback Synopsys, Inc.
Working with SpyGlass Design Constraints
Here, consider that the module, M, is instantiated ten times in top (i.e.,
top.mi1, top.mi2, …, top.mi10). In this case, the
set_case_analysis constraint will not allow duplicate specifications in
the -name field. Therefore, one of the ten generated commands (one for
top.mi1.in) is deleted. However, if two values, each generated by
scoping, are duplicates then SpyGlass flags a fatal violation.
However, SpyGlass will report the following two specifications as duplicate
specifications:
current_design top
set_case_analysis -name M::in -value 0
set_case_analysis -name M::in -value 1
354
Synopsys, Inc. Feedback
Working with SpyGlass Design Constraints
355
Feedback Synopsys, Inc.
Working with SpyGlass Design Constraints
356
Synopsys, Inc. Feedback
Working with SpyGlass Design Constraints
In the above example, if the z_intf or a_intf port of the top module
is to be referred in SGDC, it should be as follows:
current_design topper
test_mode -name "topper.T1.inst_z_intf" -value 1
test_mode -name "topper.T1.inst_a_intf" -value 1
357
Feedback Synopsys, Inc.
Working with SpyGlass Design Constraints
module top;
intf i1();
intf i2();
top_low T1(i1.M1,i2.M2);
endmodule
358
Synopsys, Inc. Feedback
Working with SpyGlass Design Constraints
current_design top
abstract_port -module top -ports q%\in2.rtid [1:0]% -clock
clk1 abstract_port -module top -ports q%\in2.rtid % -clock
clk1 abstract_port -module top -ports q%\in2.opcode [0]%
-clock clk1
In the above example, a struct port or a net is named as per the following
naming convention:
"\<struct-instance-name>.<struct_port_name> "
359
Feedback Synopsys, Inc.
Working with SpyGlass Design Constraints
begin
wire w1;
for(i = 0;i<2;i++)
begin
mid m1(z,a,w1);
end
end
endgenerate
endmodule
module mid(output z, input a,input w1);
assign z = ~a;
endmodule
In the above example, specify SGDC constraints for the m1 instance and
w1 wire inside for-generate, as given below:
current_design test
test_mode -name "\genblk1[0].genblk1[0].m1 .a"
-value 1
test_mode -name "\genblk1[0].genblk1[1].m1 .a"
-value 1
test_mode -name "\genblk1[1].genblk1[0].m1 .a"
-value 1
test_mode -name "\genblk1[1].genblk1[1].m1 .a"
-value 1
test_mode -name "\genblk1[0].w1 " -value 1
You can specify any SGDC constraint by using naming conventions for
objects, as shown in the above example for the testmode constraint.
Consider another example in which the set_case_analysis constraint
is used on the SystemVerilog design containing named for-generate
block:
module test(clk,enable,in1,out1);
input clk,enable;
input [3:0]in1;
360
Synopsys, Inc. Feedback
Working with SpyGlass Design Constraints
output[3:0]out1;
generate genvar i;
for (i=0; i<4; i=i+1) begin:extend
mod1
ins(.CLK(clk),.E(enable),.IN1(in1[i]),.OUT1(out1[i]));
end
endgenerate
endmodule
module mod1(CLK,E,IN1,OUT1);
input CLK,E;
input IN1;
output OUT1;
reg OUT1;
always @(posedge CLK)
if(E) OUT1 <= IN1;
endmodule
For the above example, the generated netlist contains instances with the
following names:
mod1 \extend[0].ins (.CLK(clk), .E(enable), .IN1(in1[0]),
.OUT1(out1[0]));
361
Feedback Synopsys, Inc.
Working with SpyGlass Design Constraints
Basically, you can refer an object (say <obj>) as part of the generate
block by using the following convention:
"\<generate_block1_label>[block1_index].<generate_block2_lab
el>[block2_index]...<generate_blockN_label>[blockN_index].
<obj> "
362
Synopsys, Inc. Feedback
Working with SpyGlass
Messages
Overview
Atrenta Console displays all violation messages of the currently loaded goal
in the Results pane, as shown in the following figure:
363
Synopsys, Inc.
Working with SpyGlass Messages
Overview
To view the violation messages of another goal, load that goal by selecting
it from the drop-down list in the Analyze Results tab, as shown in the
following figure:
Based on the format in which you want to view messages, click the View
drop-down list and select the required format, such as Msg Tree, Msg Summary,
Module Hierarchy, and Waiver Tree. For details on these formats, refer to Atrenta
Console Reference Guide.
When you double-click on a violation message, the following actions occur:
A source file containing the corresponding issue appears in a separate
tab in the Source section. Then name of this tab is the same as the name
of the source file.
The violating line appears in a different color in the code present in that
source file.
The corresponding violating portion is highlighted in the schematic.
Next time, when you select a different message, all existing selections and
probes are removed.
364
Synopsys, Inc. Feedback
Working with SpyGlass Messages
365
Feedback Synopsys, Inc.
Working with SpyGlass Messages
Portions of a design
loaded by double-clicking
a main message.
366
Synopsys, Inc. Feedback
Working with SpyGlass Messages
Portions of a design
loaded by double-clicking
a main message.
367
Feedback Synopsys, Inc.
Working with SpyGlass Messages
Console displays each source file in a separate tab in the Source section.
Each tab name in the Source section indicates the name of the source file.
368
Synopsys, Inc. Feedback
Working with SpyGlass Messages
369
Feedback Synopsys, Inc.
Working with SpyGlass Messages
370
Synopsys, Inc. Feedback
Working with SpyGlass Messages
Waiving Messages
Waiving Messages
If a particular message does not indicate a serious problem, you can waive
that message.
Waiving messages suppresses the display of messages based on your
requirements at different stages of design analysis. Such messages are
removed from the reported message list.
You can waive a message in any of the following ways:
Through the Waiver Editor window.
For details, see Using the Waiver Editor Window.
Through the Results pane.
For details, see Using the Results Pane to Waive Messages.
Through a project file.
For details, see Waiving Messages through a Project File.
Through the waive constraint in a Waiver File (.swl file).
For details, see Waiving Messages by Using the waive Constraint.
Through SpyGlass pragmas in source code.
For details, see Waiving Messages by Using SpyGlass Pragmas.
Using the waive constraint is the preferred method because this approach
does not affect the source files. The waivers are written in a separate file
and can be used with modified source files as long as the modifications do
not invalidate the design constraints. However, you should use embedded
SpyGlass waiver pragmas if you need to waive messages at any level below
the design unit level in the source file.
371
Feedback Synopsys, Inc.
Working with SpyGlass Messages
Waiving Messages
Waiver File
A waiver file (.swl file) is used to waive messages reported after SpyGlass
runs.
It is an SGDC-format file that contains specifications of the waive
constraint that is used to waive specific types of messages. For information
on the this constraint, see Waiving Messages by Using the waive Constraint.
You can specify waiver files to SpyGlass through GUI, project file, or batch.
This is described in the next sections.
372
Synopsys, Inc. Feedback
Working with SpyGlass Messages
Waiving Messages
current_goal G1 -alltop
waive -rule r2
set_goal_option default_waiver_file goal.swl
waive -rule r3
save_project
---------------------------------
$ cat project.swl
waive -rule { {r1} }
waive -rule { {r2} }
$ cat goal.swl
waive -rule { {r3} }
In the above example, default waive file - project.swl is created at project -
level and default waiver file - goal.swl is created at the goal level.
373
Feedback Synopsys, Inc.
Working with SpyGlass Messages
Waiving Messages
374
Synopsys, Inc. Feedback
Working with SpyGlass Messages
Waiving Messages
In the above case, when you specify the waiver.swl file during SpyGlass
analysis, SpyGlass expands the contents of this file to the following:
waive -rule "XYZ"
waive -rule "ABC"
375
Feedback Synopsys, Inc.
Working with SpyGlass Messages
Waiving Messages
Auto-Migration of Waivers
When rule messages change between SpyGlass releases, waiver files of
previous release may become incompatible for use in the current release.
To ensure compatibility, SpyGlass automatically upgrades the old message
to the new rule message in the same run.
To avoid migration of waivers, use the set_option
disable_auto_migrate_waiver command. If this option is
provided, then the waiver messages are not migrated to the current
release. You can use this option, if the waivers have been already migrated
using -gen_compat_waiver flow, and are up-to-date with respect to the
current release.
NOTE: You can also migrate the waivers separately to new version using option
-gen_compat_waiver.
376
Synopsys, Inc. Feedback
Working with SpyGlass Messages
Waiving Messages
377
Feedback Synopsys, Inc.
Working with SpyGlass Messages
Waiving Messages
In the above window, you can add new or existing waiver files for the
currently loaded goal. For details on adding new or existing waiver files,
refer to the description of the Add File and New File options in the Right-
Click Options of Tree-View Section topic of Atrenta Console Reference
Guide.
To open the above window, perform any of the following actions:
Select the Tools -> Waiver Editor menu option.
Select the Waiver option (or icon) from the Results pane.
Right-click on the rule header in the Msg Tree page, and select the
Waive All Messages of Select Rule(s) option from the shortcut
menu.
378
Synopsys, Inc. Feedback
Working with SpyGlass Messages
Waiving Messages
For details on the above window, refer to the Waiver Editor Window section
of Atrenta Console Reference Guide.
379
Feedback Synopsys, Inc.
Working with SpyGlass Messages
Waiving Messages
NOTE: This option appears only if the Enable advanced waiver creation preference option is
set in the Preferences dialog.
380
Synopsys, Inc. Feedback
Working with SpyGlass Messages
Waiving Messages
In the above dialog, specify the name of the file and select the Set as
default waiver file option.
381
Feedback Synopsys, Inc.
Working with SpyGlass Messages
Waiving Messages
<keyword> ::=
ALL | ALL_INFO | ALL_WRN | ALL_ELAB
| ALL_SYNTHERR | ALL_SYNTHWRN
For more information on the Tcl-based usage of the waive command, refer
to the waive section of the SpyGlass Tcl Shell Interface User Guide.
382
Synopsys, Inc. Feedback
Working with SpyGlass Messages
Waiving Messages
Argument Description
-file_lineblock Use this argument to waive messages for a block of lines in a
source file.
<file-sline-eline> is a space-separated tuple of source file
name, start line number, and end line number in the following
format:
<file-name> <line1> <line2>
This means that a message reported in the file <file-name>
between the line numbers <line1> and <line2> is considered
for the waive constraint. It is required that <line2> is greater
than or equal to <line1>.
Note: Use multiple -file_line/-file_lineblock arguments, each
with one argument.
This method is not recommended if the source code is
expected to change. In such cases, use either pragma-based
waivers (see Waiving Messages by Using SpyGlass Pragmas)
or other waiver arguments described later in this table.
-file_line Use this argument to waive rule messages for a particular line
of a source file.
<file-line> is a space-separated pair of source file name and
line number in the following format:
<file-name> <line-num>
Note: Use multiple -file_line/-file_lineblock arguments, each
with one argument.
This method is not recommended if the source code is
expected to change. In such cases, use either pragma-based
waivers (see Waiving Messages by Using SpyGlass Pragmas)
or other waiver arguments described later in this table.
-file Use this argument to waive all messages for the specified files.
You can specify a space-separated list of source file names
(<file-list>) in this argument.
383
Feedback Synopsys, Inc.
Working with SpyGlass Messages
Waiving Messages
Argument Description
-du and -ip Use the -du argument to waive the rule messages for the
specified design units or all design units in the specified library.
This argument is particularly useful for RTL coding style checks
where the reported message is clearly localized within a design
unit.
Use the -ip argument to waive rule messages for the specified
design units (IP blocks), including the ones that are below its
hierarchy or all design units in the specified IP library.
<du-list> refers to a space-separated list of logical library
name <logical-lib-name> of a precompiled Verilog/VHDL
library or design unit names, such as:
• Module names <module-name> for Verilog
• Entity names in the format <entity-name> for entity and all
its architectures
• <entity-name>.<arch-name> for the entity and the
specified architecture
• Package names <pkg-name>
• Configuration names <config-name> (for VHDL)
NOTE: By default, only the waived message count is reported
in the IP/Legacy Waiver Report section of the Waiver report
when the -ip argument of the waive constraint has been
specified. Use the -report_ip_waiver option to have the actual
waived messages also printed.
Note the following points:
• You are required to specify the -du or -ip arguments if no
other argument of the waive constraint is specified.
• If you want SpyGlass to consider the schematic highlight
information of a violation to waive violations on design
units, use the following command:
set_option use_du_sch_hier yes
• If a module is instantiated in multiple IPs but you do not
provide the waive -ip specification for each of these IPs,
SpyGlass does not waive violations on such module
instances when you specify the following command:
set_option use_du_sch_hier yes
By default, SpyGlass waives violations on only those module
instances that are present in the IPs specified by the waive
-ip specification.
-rule/-rules Use these arguments to waive messages of the specified rules,
rule groups, or products or by rule type keywords.
<rule-list> refers to a space-separated list of rule names, rule
group names, or product mnemonics.
This argument is case-sensitive.
384
Synopsys, Inc. Feedback
Working with SpyGlass Messages
Waiving Messages
Argument Description
-except Use this argument to exclude the specified rules, rule groups,
or products or by rule type keywords from the scope of the
waive constraint.
<rule-list> refers to a space-separated list of rule names, rule
group names, or product mnemonics.
NOTE: If you specify the same rule to the -rule/-rules and
-except arguments, preference is given to the -except
argument.
-msg Use this argument specify a message to be waived.
-severity Use this argument to waive messages of the specified severity
class or severity label.
<label> refers to the actual severity-label or a SpyGlass
severity class.
If a rule is overloaded (customized), overloaded values are
considered by this argument.
-weight Use this argument to waive the messages of the rules with the
specified weight.
<weight> refers to the actual rule weight value.
-weight_range Use this argument to waive the messages of the rules with the
weight within the specified range (both range values inclusive).
<weight-value> refers to a positive integer number.
-comment Use this argument to add waive constraint comment as a
single line text string enclosed in double quotes. This comment
appears in the Waiver report and the sign_off report.
<comment> refers to a valid string.
-import Use this argument to enable importing the waiver file (.swl)
specified at the block-level to be used at the chip-level. For
more details, see Support for Hierarchical Waivers.
<block_name> refers to the name of the block in the top-level
chip, and <block-waive-file> refers to the name of the waiver
file applied to the specified block <block_name>.
-ignore This argument causes SpyGlass to list only the waived
message count in the Adjustments Waiver Report section of
the Waiver report and not the actual waived message(s). Use
the -report_adjustment_waiver option to override the -ignore
argument so that the actual waived messages are also printed.
385
Feedback Synopsys, Inc.
Working with SpyGlass Messages
Waiving Messages
Argument Description
-regexp Use this argument to allow use of regular expressions in many
arguments. For more details, see Using Regular Expressions
and Wildcard Characters.
-disable Use this argument to disable the waive constraint.
386
Synopsys, Inc. Feedback
Working with SpyGlass Messages
Waiving Messages
If you specify the -except argument but do not specify the -rule/-rules
argument, it is assumed that the -rule/-rules argument has been
specified with the ALL keyword.
Specify the SpyGlass severity classes as uppercase names and the
severity labels as mixed-case or lowercase names with the -severity
argument.
To waive SpyGlass built-in error, warning, and info messages, use the
following keywords:
Use To waive
ALL_INFO All the analyzer (language) info messages
ALL_WRN All the analyzer (language) warning messages
ALL_ELAB All elaboration messages
ALL_SYNTHERR All synthesis error messages
ALL_SYNTHWRN All synthesis warning messages
ALL All of the above plus all rule messages
NOTE: You can waive all types of built-in rules except the built-in STX error rules
because these rules are mandatory checks.
NOTE: If you specify the ALL keyword, then all (built-in and rule) messages will be
waived for files and/or design units for which it is specified.
NOTE: You cannot waive product rules of severity class FATAL.
Please note that all keywords are case-sensitive. You can also provide a
combination of these keywords to waive messages of more than one
type.
For waive constraint, all the occurrences of multiple consecutive
spaces (spaces or tabs) between message words are reduced to just
one space. Therefore, do not adopt such messaging. In addition, Atrenta
Console does not waive messages that extend to two or more lines.
While using the waive constraint to waive messages, you must enclose
the exact message in double quotes, q/.../, or m/.../ depending
on whether you want the string to be interpreted as a wildcard, literally,
or as a regular expression respectively.
To get the exact message string for the -msg argument of the waive
constraint, run SpyGlass Analysis that will generate that message. Then,
387
Feedback Synopsys, Inc.
Working with SpyGlass Messages
Waiving Messages
open the Violation Database file in any ASCII text editor and copy the
exact message string. Specify the whole message string, including
leading and trailing spaces, in q/<message string>/ where / is the
start-end delimiter and should not be present in the message string.
If / is part of the message string, then it is suggested to use some other
delimiter as explained in the Handling Special Names section.
You can also use double quotes to specify the exact message string for
the -msg argument of the waive constraint. However, following three
characters have a special meaning inside double quotes:
\ (escape character, used in escaped name)
$ (used for variable expansion)
" (double quote character)
If any of the above characters appear in your message string, either use
q/<message string>/ or escape these characters to treat them as literal
characters inside the double quotes. In rest of the cases, it is equivalent
whether we put the exact message string in q/.../ or double quotes.
The additional difference between the usage of q/…/ and double quotes
is the handling of wildcard characters. Anything specified inside q/../ is
treated literally, including any wildcard characters such as, *, and ?. If
you want to specify a wildcard pattern for your message string in the
-msg argument of the waive constraint, then use double quotes to
specify it.
The q/…/ specification is also used when -regexp option is used in the
waive constraint. To turn off regular expression matching in fields of the
waive constraints, enclose the field values in the q/…/ specification. The
field values are then treated as a literal string. For details, see Selective
Use of Regular Expressions section.
The waive constraint is not applied, if any of the source files, HDL files,
SDC files, and library files, have syntax errors during parsing.
If the variable part of the message changes for a SpyGlass version, the
waiver applied on that message won’t be applicable for the next
SpyGlass version.
NOTE: The waive constraint with the -du argument does not work on design units in
VHDL libraries.
388
Synopsys, Inc. Feedback
Working with SpyGlass Messages
Waiving Messages
389
Feedback Synopsys, Inc.
Working with SpyGlass Messages
Waiving Messages
390
Synopsys, Inc. Feedback
Working with SpyGlass Messages
Waiving Messages
391
Feedback Synopsys, Inc.
Working with SpyGlass Messages
Waiving Messages
392
Synopsys, Inc. Feedback
Working with SpyGlass Messages
Waiving Messages
NOTE: When inside a character class (square brackets), you do not need to escape out the
*, ?, and $ characters.
393
Feedback Synopsys, Inc.
Working with SpyGlass Messages
Waiving Messages
394
Synopsys, Inc. Feedback
Working with SpyGlass Messages
Waiving Messages
395
Feedback Synopsys, Inc.
Working with SpyGlass Messages
Waiving Messages
arguments.
The following table summarizes the effect of using the m/.../ and q/
.../ formats with or without the -regexp argument:
396
Synopsys, Inc. Feedback
Working with SpyGlass Messages
Waiving Messages
For example, use the m@...@ format or q>...> format provided the
same delimiter is used as the starting delimiter and the ending delimiter
(that is, m<...> is not allowed.) and the delimiter is not present in the
397
Feedback Synopsys, Inc.
Working with SpyGlass Messages
Waiving Messages
398
Synopsys, Inc. Feedback
Working with SpyGlass Messages
Waiving Messages
different products.
However, you can use regular expressions with other arguments and also
specify the -severity argument. The most trivial case of using this argument
is to waive all non-error messages. For example, the following specification
waives all Warning and Info type messages in all files:
waive -regexp -file “.*” -severity Info
waive -regexp -file “.*” -severity Warning
Use the -severity argument with one of the -file arguments or the -du and -ip
argument to waive non-essential messages, especially in the first run of a
design through SpyGlass.
Regular Expressions with the -msg argument
Here are some examples:
The following command waives all messages containing the clk string:
waive -regexp -file “.*” -msg “.*[ ' \”]clk[ ' \”].*”
The above command waives all messages containing the clk string in
any of the following ways
clk with leading and trailing spaces
'clk'
“clk”
The following command waives all messages for the test design unit
that contain any combination of the clk1 and clk2 clocks:
waive -regexp -file ".*" -msg ".*test\.clk1.*test\.clk2.*"
waive -regexp -file ".*" -msg ".*test\.clk2.*test\.clk1.*"
The above command waives all messages containing test.clk1 and
test.clk2 in any order including the following message:
Unsynchronized crossing: destination flop test.q1, clocked by
test.clk2, source flop test.d1, clocked by test.clk1
If you specify the whole message in the -msg argument (and actual file/du
names), you do not need to specify the -regexp argument. Just supply
all actual values and place the entire message in the q/.../ format. If
you are placing a message in quotes, SpyGlass does not consider wildcard
399
Feedback Synopsys, Inc.
Working with SpyGlass Messages
Waiving Messages
characters (* and ?), double quote character, dollar, and escape characters
as literals. In such case, you must escape them.
400
Synopsys, Inc. Feedback
Working with SpyGlass Messages
Waiving Messages
Additional Information
Please note the following about the waive -import constraint:
SpyGlass also supports nested imports of waiver files, that is, one
import command can be specified inside another import command,
as shown below:
top.swl: waive -import b1 b1.swl
401
Feedback Synopsys, Inc.
Working with SpyGlass Messages
Waiving Messages
NOTE: All the waiver files to be imported (b1.swl and b2.swl, in the above example)
should be accessible from the current working directory.
The -disable argument is also supported with the waive -import
constraint, as shown below:
waive -import b1 b1.swl -disable
The above specification will disable the
waive -import command.
NOTE: Only the -disable and -comment arguments are supported with waive
-import constraint. No other argument is supported with waive -
import constraint.
File names in the imported waive -file/file_line/
file_lineblock commands are converted to file names matching
under the hierarchy of the block being imported. This is to ensure that
migration occurs for, and according to, the block being imported.
If the -ip/-du fields are regular expressions in the waive command
to be imported, then the regular expressions are converted to names
matching under the block hierarchy only. This is to ensure that the
regular expressions do not match any name outside the block hierarchy.
It may happen that a block-level waiver file is written in an older version
of SpyGlass release, and the top-level designer importing this block-
level waiver file is working in a later version of SpyGlass release in
which few rule messages have been changed with respect to the
previous release. In this case, SpyGlass automatically upgrades the old
message in the block-level waiver files to the new rule message.
However, this does not work if the old message in the waive command
is a substring of its complete message of that release.
402
Synopsys, Inc. Feedback
Working with SpyGlass Messages
Waiving Messages
checked for the source code block related to the SpyGlass Waiver pragmas
and the corresponding rule messages are written to the Violation
Database. However, these rule messages are not reported in the SpyGlass
Message Reports.
403
Feedback Synopsys, Inc.
Working with SpyGlass Messages
Waiving Messages
404
Synopsys, Inc. Feedback
Working with SpyGlass Messages
Waiving Messages
begin
if (data <= (a[1] + b[2]) ) //violation will be
//waived off
a <=17;
else
//spyglass enable_block W362
b = 8'hbb;
end
endmodule
405
Feedback Synopsys, Inc.
Working with SpyGlass Messages
Waiving Messages
for VHDL:
406
Synopsys, Inc. Feedback
Working with SpyGlass Messages
Waiving Messages
You can also write multiple pragmas with comments on a single line as
follows:
//waiver pragma1 --comment //waiver pragma --comment
Atrenta Console considers the above specification as two different
pragmas. However, if the starting directive is a comment or a non-
waiver pragma, Atrenta Console treats the whole line as a comment. For
example, the following line in the design file will not result in any valid
waiver pragma:
//non-waiver pragma //spyglass disable rulename
If there is no corresponding enable_block pragma for a
disable_block pragma, then the scope of the disable_block
pragma extends till the end of the source file in which it is specified.
The scope of SpyGlass Waiver pragmas is limited to the source file in
which they are specified. Writing a pragma in one source file and
including this source file in another source file will not imply that the
pragma is effective in the second file.
Consider the following example:
// test.v
module test (input in1, output out1);
//spyglass disable_block ALL
`include "lib.v"
complex_INPUT_WIDTH_struct_t i_data;
…
//spyglass enable_block ALL
…
endmodule
In the above example, SpyGlass does not report any violation on the
test.v file between the disable_block and enable_block
407
Feedback Synopsys, Inc.
Working with SpyGlass Messages
Waiving Messages
408
Synopsys, Inc. Feedback
Working with SpyGlass Messages
Waiving Messages
Similarly, if you have waived for a rule group, you can selectively activate
the rules in the rule group in the same manner.
NOTE: You cannot selectively activate a rule for a source code block that you have waived
by using the ALL keyword.
409
Feedback Synopsys, Inc.
Working with SpyGlass Messages
Waiving Messages
output q;
reg q;
reg [3:0] a;
reg [7:0] b;
reg [2:0]data;
always @(posedge clk)
begin
if (data <= (a[1] + b[2]) ) //spyglass disable W362
a <=17;
else
b = 8'hbb;
end
endmodule
entity top is
end top;
architecture rtl of top is
signal s1 : bit_vector( 2 downto 0);
signal s2 : bit_vector( 3 downto 0);
signal s3 : boolean;
begin
process
begin
case s1 <= s2 is --spyglass disable W116
when TRUE => s3 <= (s2 = s1);
when others => null;
end case;
end process;
end rtl;
410
Synopsys, Inc. Feedback
Working with SpyGlass Messages
Waiving Messages
411
Feedback Synopsys, Inc.
Working with SpyGlass Messages
Waiving Messages
412
Synopsys, Inc. Feedback
Working with SpyGlass Messages
Tagging Messages
Tagging Messages
Adding a tag on a violation message enables you to keep track of that
message, which you may want to fix later or which you already fixed/
verified.
Based on your requirement, you can tag messages either with certain
predefined identifiers, such as Investigate, Fixed, ToFix, and VerifiedFixed,
or with your own custom tags.
Adding a Tag
To add a tag to a message, perform the following steps:
1. Select the message.
2. Select the Add Tag option in the right-most bar in the Results pane.
Alternatively, right-click on the message and select the Tag -> Add Custom
option from the shortcut menu.
The Add Message Tag dialog appears, as shown below:
413
Feedback Synopsys, Inc.
Working with SpyGlass Messages
Tagging Messages
menu option. When you apply any of these visual tags to a message, the
corresponding graphical icon is prefixed to the message.
Modifying a Tag
To modify the tag for a rule message, perform the following steps:
1. Select the message appearing in the Results pane.
2. Select the Modify Tag option in the right-most bar in the Results pane.
Alternatively, right-click on the message and select the Tag -> Modify option
from the shortcut menu.
The Modify Message Tag dialog appears with the selected message and its
tag, as shown below:
3. In the above dialog, select the tag name in the Tag field.
A drop-down list appears containing all the available tags.
4. Select the required tag from the drop-down list or specify your own tag
in the Tag textbox.
5. Click the OK button to apply the modified tag to the selected message.
414
Synopsys, Inc. Feedback
Working with SpyGlass Messages
Tagging Messages
NOTE: The Tag -> Modify shortcut menu option is enabled only if you have added a tag to
a rule message.
NOTE: You can also add/delete/modify tags for more than one message at a time by
selecting multiple messages (either by dragging the mouse pointer across the
messages or by individually clicking the messages while holding down the <Ctrl>
key on the keyboard) and applying the tag settings as described above.
Deleting a Tag
To delete a tag from a message, perform the following steps:
1. Select the message appearing in the Results pane.
2. Select the Delete Tag option in the right-most bar in the Results pane.
Alternatively, right-click the message and select the Tag -> Delete option
from the shortcut menu.
After performing the above steps, the tag applied to the message is
deleted.
NOTE: The Tag -> Delete shortcut menu option is enabled only if you have added a tag to
a rule message.
415
Feedback Synopsys, Inc.
Working with SpyGlass Messages
416
Synopsys, Inc. Feedback
Working with SpyGlass Messages
rules.
SpyGlass reports the design units that have been skipped for this reason,
but you should be aware that analysis of those design units will necessarily
be incomplete.
417
Feedback Synopsys, Inc.
Working with SpyGlass Messages
418
Synopsys, Inc. Feedback
Working with Aggregated
Reports
Overview
This chapter describes the following reports generated in Atrenta Console:
Project Summary Report
The DataSheet Report
The DashBoard Report
Goal Summary
If the working directory of your project contains a different set of goals that
are run from different methodologies, the above reports show results only
from the goals that are run from the current active methodology, which is
saved in the project file.
If you get any unexpected results in such a scenario, clean the project
working directory and re-run the goals of the active methodology.
An active methodology is specified by the following command in the project
file:
set_option active_methodology <methodology-path>
419
Feedback Synopsys, Inc.
Working with Aggregated Reports
Overview
420
Synopsys, Inc. Feedback
Working with Aggregated Reports
Overview
421
Feedback Synopsys, Inc.
Working with Aggregated Reports
To generate aggregated project results, click the Tools > Aggregated Project
Results menu option. This displays the Aggregated Project Results dialog, as
shown in the following figure:
If a configuration file already exists, enter the name of the file in the
Configuration file text field. Alternatively, click ( ) and browse to the
location where the configuration file is saved. Then the list of projects
saved in the project file is displayed in the Project List section of the
Aggregated Project Results dialog. You can add a project in the
configuration file and save the file. In addition, you can also save the
configuration file with a different name by clicking the Save As button.
You can also specify the report output directory in the Output Directory
textbox. If the specified directory does not exist, Atrenta Console creates
422
Synopsys, Inc. Feedback
Working with Aggregated Reports
it. If you do not specify any directory, the report is saved at a default path.
For details, see Default Paths of Aggregated Reports.
If you are generating the aggregated results for the first time, follow these
steps:
1. Click ( ) and browse to the location where the project files
are located.
2. Select the project (.prj) file for which you want to generate the results.
NOTE: You can select multiple project files by pressing and holding the <Ctrl> key and
then selecting the required files. You can delete a project by clicking the Delete
Project button.
3. Click Save & Continue. The Specify the configuration file dialog appears, as
shown in the following figure:
423
Feedback Synopsys, Inc.
Working with Aggregated Reports
424
Synopsys, Inc. Feedback
Working with Aggregated Reports
Like the Project Summary Report, the HTML browser displays similar
information for Aggregated Project Reports. Additionally, the browser also
displays the configuration file name and the list of projects that were saved
in the configuration file. Refer to the Project Summary Report section for
more details on various reports.
NOTE: You can also specify the path of the configuration file in the .spyglass.setup
configuration file by using the AGG_PROJECT_RESULTS_CONFIG_FILE
environment variable as follows:
SDE_CONFIG_OPTIONS=AGG_PROJECT_RESULTS_CONFIG_FILE=<
path>
425
Feedback Synopsys, Inc.
Working with Aggregated Reports
The above dialog displays the location where the generated CSV and HTML
reports are located.
NOTE: You can right-click on a path and select the Copy shortcut menu option to copy the
path for reference.
NOTE: When you click the Project Summary option, Atrenta Console also creates a
<project-name>/user_reports_backup directory that contains a backup of the
426
Synopsys, Inc. Feedback
Working with Aggregated Reports
427
Feedback Synopsys, Inc.
Working with Aggregated Reports
The HTML browser is divided into two sections. The left section of the
browser displays information, such as the project name, the Atrenta
Console version, the date when the report was created, and the name of
the person who created the report. In addition, the following options are
provided in the left section of the browser window.
428
Synopsys, Inc. Feedback
Working with Aggregated Reports
twice on August 03, once at 11:00 AM, and then at 5:00 PM, then the
current result will display the data generated at 5:00 PM.
When you, click the Current Results for all blocks link, the right section of the
browser window displays the following:
Current unresolved violations for all blocks:
The unresolved violations chart displays the violation count (FATAL,
ERROR, WARNING, and INFO messages) for the individual blocks and
the goal run on the block in the Y axis and the block names in the X
axis.
429
Feedback Synopsys, Inc.
Working with Aggregated Reports
Summary table of all current unresolved and waived violations for all
blocks
The current result for all blocks also displays a summary table that
shows the count of all the violation messages (unresolved and waived)
as shown below:
430
Synopsys, Inc. Feedback
Working with Aggregated Reports
The Y axis displays the violation count for the block and the X axis displays
the date when the block was run.
NOTE: When you click the All blocks link, the violation count for all blocks is displayed with
the data of each block separated by a line.
Similarly, you can view the violation count of the waived violations for a
block or all blocks.
In addition, you can view the summary table displaying the violation
messages (unresolved and waived) for a block or all blocks based on time.
431
Feedback Synopsys, Inc.
Working with Aggregated Reports
432
Synopsys, Inc. Feedback
Working with Aggregated Reports
433
Feedback Synopsys, Inc.
Working with Aggregated Reports
You can view the DataSheet report to review design characteristics during
design review or as a way of communicating design characteristics during
design handoff and IP sharing.
434
Synopsys, Inc. Feedback
Working with Aggregated Reports
Licensing Requirements
DataSheet is a licensed capability and requires the license feature,
SpyGlass
datasheet. Please contact Atrenta Support
(spyglass_support@synopsys.com) if you need this license.
435
Feedback Synopsys, Inc.
Working with Aggregated Reports
436
Synopsys, Inc. Feedback
Working with Aggregated Reports
437
Feedback Synopsys, Inc.
Working with Aggregated Reports
7. Specify the required details in the Save new configuration file as dialog, and
click the Save button.
After specifying the configuration file (new or existing), click the Continue
button. This displays the following dialog:
In the above dialog, click the Yes button to view the HTML report in the
browser window.
If the manually created configuration file contains attributes, such as
REPORT_TITLE and REPORT_LABEL, without report specific extension, for
example, _DATASHEET at the end, SpyGlass batch process applies the
same values to all the required reports that are generated using the same
configuration file. However, if the configuration file contains both
attributes, such as , REPORT_TITLE and REPORT_TITLE_DATASHEET, then
the report specific value will take the precedence.
This means that following options are applied to all reports:
REPORT_TITLE <value>
REPORT_LABEL <value>
REPORT_FILE_NAME <value>
CUSTOM_LOGO <value>
Also, following options are applied to the Datasheet report only:
REPORT_TITLE_DATASHEET <value>
REPORT_LABEL_DATASHEET <value>
438
Synopsys, Inc. Feedback
Working with Aggregated Reports
REPORT_FILE_NAME_DATASHEET <value>
CUSTOM_LOGO_DATASHEET <value>
Details of a Configuration File
A configuration file contains the path of project files and/or SpyGlass batch
run dump directories whose data you want to include in the DataSheet
report.
A sample configuration file is given below:
# ---------------------------------------------------------
# Aggregated Report Configuration File
# Created By: sam using Atrenta Console version 5.0
# Last Modification On 04-05-2012 04:08:17
# ----------------------------------------------------------
Project-1.prj
Project-2.prj
Project-3.prj
../Socrates/Project-7.prj
/dev09/case9-new/Project-5.prj
./run1/
439
Feedback Synopsys, Inc.
Working with Aggregated Reports
aggregate_projects
This command specifies list of projects and work directories that you want
440
Synopsys, Inc. Feedback
Working with Aggregated Reports
set_config_option
This command supports different -<key> <values> combinations that are
required for configuring the reports. Following is the syntax of this
command:
set_config_option -<key> <value> [-report {<report_list>}]
441
Feedback Synopsys, Inc.
Working with Aggregated Reports
You can specify one of the following values to the <key> option:
report_title: Specifies the report title
report_label: Specifies the report label
custom_logo: Specifies the custom logo on the report
report_file_name: Specifies the output file name
The -report option is optional and you can set specific reports to use these
config options.
Following is the sample usage of this command:
set_config_option -report_title "My report title" -report
{dashboard}
set_config_option -report_label "My report label" -report
{dashboard}
set_config_option -custom_logo "http://myorg.com/img/
logo.gif@@75@@45@@My Custom Logo"
set_config_option -report_file_name "My_DashBoard"
442
Synopsys, Inc. Feedback
Working with Aggregated Reports
443
Feedback Synopsys, Inc.
Working with Aggregated Reports
The following example generates the DataSheet report for the project file,
CUSB2_WRAP.prj:
spyglass -gen_aggregate_report datasheet -project
CUSB2_WRAP.prj -batch
444
Synopsys, Inc. Feedback
Working with Aggregated Reports
NOTE: If you do not specify the above command for a project-specific DashBoard report,
the reports are generated in the <projectwdir>/<project>/<top>/html_reports
directory by default.
To specify a configuration file that contains a list of projects and run
directories generated by batch console or GUI, use the following command
in a project file:
set_option aggregate_report_config_file <config-file-path>
445
Feedback Synopsys, Inc.
Working with Aggregated Reports
lint/design_audit
cdc/cdc_verify
constraints/sdc_gen
constraints/sdc_audit
txv_verification/fp_verification
txv_verification/mcp_verification
power/power_est_average
dft/dft_scan_ready
dft/dft_dsm_best_practice
446
Synopsys, Inc. Feedback
Working with Aggregated Reports
rtl_handoff/txv_verification/fp_mcp_verification
rtl_handoff/txv_verification/mcp_verification
rtl_handoff/power/power_est_average
rtl_handoff/dft_readiness/dft_scan_ready
rtl_handoff/dft_readiness
/dft_dsm_transition_coverage
NOTE: If you are using the constraint/sdc_coverage goal in the GuideWare methodology,
ensure to add the SDC_DataSheet rule to the goal run to fulfill IO delays in the IO
Definitions table.
The above list of GuideWare goals is only for reference purpose. You can
use similar goal names for other design stages. Refer to the GuideWare
and advance product documentation for more information on running the
complete flow.
For timing, congestion, and more accurate design statistics, run the
SpyGlass Physical methodology. For details, refer to the SpyGlass Physical
Methodology and its rule documentation.
Generating the DataSheet Report by Using Non-GuideWare Flows
For non-GuideWare based flows, you can use the following list of SpyGlass
rules to generate the DataSheet report.
447
Feedback Synopsys, Inc.
Working with Aggregated Reports
448
Synopsys, Inc. Feedback
Working with Aggregated Reports
Do not run the above rules from a single goal or a goal; run these rules as
a part of their respective methodologies.
449
Feedback Synopsys, Inc.
Working with Aggregated Reports
The DataSheet report contains different sections that provide different types
of information in a tabular format.
To view the details of a particular section, expand that section by clicking
the Expand option adjacent to that section. The Expand option expands a
section by one level. If you want to view the entire section, click the Full
Expand option.
450
Synopsys, Inc. Feedback
Working with Aggregated Reports
You can also expand all the sections at once by clicking the Expand All >>
button.
The DataSheet report contains the following sections:
IO Definitions
A sample of the IO Definition section is shown in the following figure:
451
Feedback Synopsys, Inc.
Working with Aggregated Reports
Clock Trees
A sample of the Clock Trees section is shown in the following figure:
Atrenta Console populates this section if you run the GuideWare goals of
SpyGlass CDC solution.
The details of each field in this table are described below:
452
Synopsys, Inc. Feedback
Working with Aggregated Reports
Reset Trees
A sample of the Reset Trees section is shown in the following figure:
453
Feedback Synopsys, Inc.
Working with Aggregated Reports
Atrenta Console populates this section if you run the GuideWare goals of
SpyGlass CDC Solution.
The details of each field in this table are described below:
Power
A sample of the Power section is shown in the following figure:
454
Synopsys, Inc. Feedback
Working with Aggregated Reports
Atrenta Console populates this section if you run the GuideWare Power flow
goals of all the stages (initial_rtl, detailed_rtl, and
rtl_handoff) of the New_RTL methodology.
The details of each field in this table are described below:
Power Clocks
A sample of the Power Clocks section is shown in the following figure:
455
Feedback Synopsys, Inc.
Working with Aggregated Reports
Atrenta Console populates this section if you run the GuideWare Power flow
goals of all the stages (initial_rtl, detailed_rtl, and
rtl_handoff) of the New_RTL methodology.
The details of each field in this table are described below:
Constraints
The sample of the Constraints section is shown in the following figure:
Atrenta Console populates this section if you run the goals of SpyGlass
Constraints Solution and SpyGlass TXV Solution.
The details of each field in this table are described below:
456
Synopsys, Inc. Feedback
Working with Aggregated Reports
Testability
The sample Testability section is shown in the following figure:
Atrenta Console populates this section if you run the goals of SpyGlass DFT
solution.
The details of each field in this table is described below:
457
Feedback Synopsys, Inc.
Working with Aggregated Reports
Design Statistics
A sample Design Statistics section is shown in the following figure:
The above section displays a table showing different types of statistic data
and their counts.
In this table, the first two statistics data are populated from the SpyGlass
Physical flow, if it exists. Otherwise, the corresponding cells appear blank.
The rest of the three statistics are populated from the SpyGlass Physical
flow, if it exists. Otherwise, as a second priority, the Audit flow data is
populated and displayed, if it exists.
The details of each design statistics in this table are described below:
Statistic Description
Synthesizable Specifies the size of synthesizable RTL logic measured in terms
gates (NAND2 of the NAND2 equivalent gates. This metric does not include
equivalent) hard IPs and memories.
Total Area Specifies the total size of the design including all design
entities, such as synthesizable RTL logic, hard IPs, memories,
and black boxes.
For RTL logic, standard cell utilization specified in SpyGlass
Physical goal is used (default is 60%).
Registers Specifies the total number of flip-flop instances in the design.
458
Synopsys, Inc. Feedback
Working with Aggregated Reports
Black Boxes
This section displays the number of ports for each black box. The details of
each field of this table are described below:
Timing
This section displays the timing data populated from the SpyGlass Physical
flow.
A sample Timing section is shown in the following figure:
Field Description
Clock Specifies all primary and derived clocks defined in an
SDC file.
Period Specifies a clock period.
459
Feedback Synopsys, Inc.
Working with Aggregated Reports
Number of Failing Paths Specifies the total number of gross failing path
groups, when grouped by a common source bus and
a common destination bus for the specified clock.
It means multiple paths from different bits in a
source bus to different bits in a destination bus are
counted as 1.
The threshold for gross failing paths is based on the
PHY_ClockDetail parameter. When no valid timing
paths exist for a given clock, "-" appears in the
corresponding cell.
Maximum Logic Levels Specifies the maximum number of standard cell
instances as analyzed across all timing paths of the
specified clock.
When no valid timing paths exist for a given clock, "-
" appears in the corresponding cell.
Congestion
This section displays the congestion data populated from the SpyGlass
Physical flow.
A sample Congestion section is shown in the following figure:
Field Description
Module Name Specifies the RTL module name of a grossly
congested module instance.
460
Synopsys, Inc. Feedback
Working with Aggregated Reports
461
Feedback Synopsys, Inc.
Working with Aggregated Reports
The above report enables you to evaluate present risks involved in different
design objectives, such as clocks and power-related objectives of various
blocks and view trend variations over a period of time. For details, see
Details of the DashBoard Report.
462
Synopsys, Inc. Feedback
Working with Aggregated Reports
NOTE: While including multiple projects, you must compile data for all different top-level
design units before including such projects in the report.
This section explains the following topics:
Licensing Requirements
Browser Compatibility
Generating Dashboard Report
Viewing the DashBoard Report
Details of the DashBoard Report
463
Feedback Synopsys, Inc.
Working with Aggregated Reports
Customizing Report
Managing Reports
Switching to the Old Dashboard Report
Licensing Requirements
SpyGlass DashBoard report is a licensed capability and requires the license
feature, dashboard. Please contact Atrenta Support
(spyglass_support@synopsys.com), if you need this license.
Browser Compatibility
The Atrenta DashBoard is compatible with the following Web browsers:
Firefox 2.0.0.20 (UNIX or Windows) or higher
IE 8, 9, 10, and 11 on Windows 7
Setup Instructions for Google Chrome
1. Right-click the Google Chrome shortcut and click Properties from the
shortcut menu.
The Google Chrome Properties dialog box is displayed.
2. Specify following in the Target Box field:
C:\Users\USERNAME\AppData\Local\Google\Chrome\Application\
chrome.exe --allow-file-access-from-files
3. Press Apply/OK.
4. Run the DashBoard Report.
464
Synopsys, Inc. Feedback
Working with Aggregated Reports
465
Feedback Synopsys, Inc.
Working with Aggregated Reports
The following example generates the DashBoard report for the project file,
CUSB2_WRAP.prj:
spyglass -gen_aggregate_report dashboard -project
CUSB2_WRAP.prj -batch
466
Synopsys, Inc. Feedback
Working with Aggregated Reports
467
Feedback Synopsys, Inc.
Working with Aggregated Reports
7. In the above dialog, select the Yes button if you want to view the HTML
report in the browser window. Otherwise, click the No button.
468
Synopsys, Inc. Feedback
Working with Aggregated Reports
469
Feedback Synopsys, Inc.
Working with Aggregated Reports
When you specify the report label, the following command is generated
in the configuration file:
REPORT_LABEL_DASBHBOARD <label>
11. Click the Save & Continue button.
This step generates the DashBoard report.
Alternatively, you can create a new configuration file by clicking the
button.
Sample Configuration File
A sample configuration file is shown below:
############################################################
# Dashboard Configuration File
############################################################
470
Synopsys, Inc. Feedback
Working with Aggregated Reports
aggregate_projects
This command specifies list of projects and work directories that you want
to include in the specified report. Following is the syntax of the
aggregate_projects command:
aggregate_projects -project {<project_list>} -dir
{<directory_list>} [-report {<report_list>}]
Here, -report is an optional argument and you can set specific reports
for different projects, while aggregation. That is, if you set the -report
{dashboard} option, then the project is added for the DashBoard report
and skips if the same configuration file is used for the DataSheet report.
Now, assume that you want to include Project1.prj and Project2.prj for
both the Datasheet and Dashboard reports. Also, assume that you to
include Project3.prj only for the DashBoard report. To do so, specify the
following commands:
aggregate_projects -project {Project1.prj Project2.prj}
aggregate_projects -project {Project3.prj} -report
{dashboard}
If you set -report {dashboard}, then the project is added for the
DashBoard report and skips if the same configuration file is used for the
DataSheet report.
Following is the sample usage of this command:
471
Feedback Synopsys, Inc.
Working with Aggregated Reports
set_config_option
This command supports different -<key> <values> combinations that are
required for configuring the reports. Following is the syntax of this
command:
set_config_option -<key> <value> [-report {<report_list>}]
You can specify one of the following values to the <key> option:
report_title: Specifies the report title
report_label: Specifies the report label
custom_logo: Specifies the custom logo on the report
report_file_name: Specifies the output file name
The -report option is optional and you can set specific reports to use these
config options.
Following is the sample usage of this command:
set_config_option -report_title "My report title" -report
{dashboard}
set_config_option -report_label "My report label" -report
{dashboard}
set_config_option -custom_logo "http://myorg.com/img/
logo.gif@@75@@45@@My Custom Logo"
set_config_option -report_file_name "My_DashBoard"
472
Synopsys, Inc. Feedback
Working with Aggregated Reports
set_success_criteria_file
This command is specific to DashBoard and it sets success criteria file path
for DashBoard generation. The syntax of this command is given below:
set_success_criteria_file <file_path>
Following is the sample usage of this command:
Sample usage of this command:
set_success_criteria_file /proj/path/to/
success_criteria.cfg
473
Feedback Synopsys, Inc.
Working with Aggregated Reports
$SPYGLASS_HOME/auxi/dashboard_criteria_template
Based on your requirement, you can modify this file instead of writing it
from scratch.
You can configure the Dashboard report to track and measure design
requirements using the Success Criteria file. For example, at the beginning
of a design project, running detailed CDC, DFT, and Power checks is not
required. Therefore, you can specify only the goals required at this stage of
development, such as, lint goals in the Success Criteria File. You can also
configure the report for less strict success criteria, such as, fixing only the
FATAL and ERRORS type violations for instances. As the design progresses,
you can include additional goals and increase the success criteria,
accordingly. Figure x and Figure y illustrate sample success criteria files for
early design and advanced design scenarios.
Based on the degree to which a particular design objective meets the
success criteria, the Pass/Fail Status column is populated with appropriate
values: Pass, Fail, or Unknown.
474
Synopsys, Inc. Feedback
Working with Aggregated Reports
Following figure illustrates a sample success criteria file for an early design
stage:
#######################################################################
# Sample SpyGlass Dashboard Success criteria file
#######################################################################
#----------------------------------------
# Specify list of expected goals to report
#----------------------------------------
# This option ensures that goals which are expected, but are not run,
# will show up in the report as NOT_RUN. If a list of goals is not
# specified, then only the goals which have been run will be reported.
# NOTE: The dashboard report will only display the data from the goals
# which are included in this list of goal (if specified). If no
# set_report_option is not specified, the report data from all the goals
# found in the results directory.
475
Feedback Synopsys, Inc.
Working with Aggregated Reports
476
Synopsys, Inc. Feedback
Working with Aggregated Reports
Argument Description
-criteria Specifies the success criteria.
For example, you can specify the following criteria for the Power
design objective:
-criteria {switching_power<50uW,
total_power<80uW,leakage_powe<20nW}
For information on other supported items, see Variables Used in
the Success Criteria File.
Following operators are accepted in the mathematical
expressions:
<=, >= , >, <, !=, =
The criteria that are mentioned as coverage/Percentage are
percentage (%) numbers and the rest are product identified
numeric values.
While validating the items that are represented in units, such as,
power, frequency, and timing, unit conversion is considered, if
the user-specified criteria and the product reported are in
different units. However, if the specified unit does not match,
numeric value is considered.
Following units are supported in unit conversion:
• Power: W (watt), dW (deciwatt), cW (centiwatt), mW
(milliwatt), uW (microwatt), nW (nanowatt), pW (picowatt)
• Frequency: Hz (Hertz), kHz or KHz (kilo hertz), MHz (Mega
hertz), GHz (Giga hertz), THz (Tera hertz)
• Time: ps (pico second), ns (nano second)
If you do not want to compare the value produced by SpyGlass
analysis for certain objectives, but just want to show them in the
report, specify the success criteria value as display_only,
as shown in the following example:
set_design_objective Power -criteria
{switching_power=display_only,total_power=display_only
,leakage_power=display_only}
477
Feedback Synopsys, Inc.
Working with Aggregated Reports
Argument Description
-block Specifies a comma-separated list of blocks on which the specified
criteria is applicable.
If you do not specify this argument, Atrenta Console applies the
specified criteria on all the blocks in the design.
-goal Specifies a comma-separated list of goals or scenarios from
which data of the specified design objective criteria should be
picked. For details, see Setting Success Criteria Values to
Different Goals and Scenarios.
hide_design_objective
This command removes the specified design objective, such as CDC,
Power, DFT, and Constraints from the DashBoard report.
The following is the syntax of using this command:
hide_design_objective <objectives> [-item {<item-list>}]
[-top {<top-list>}]
Where:
<objectives> refers to a comma-separated list of design objectives
to be removed.
<item-list> refers to the items to be hidden for a design objective.
Use this argument if within a design objective, you want to hide items
that are inappropriate for all/some blocks.
<top-list> refers to a list of design unit names.
The following command hides the CDC and Power design objectives:
hide_design_objective CDC,Power
478
Synopsys, Inc. Feedback
Working with Aggregated Reports
NOTE: If you hide all the design objectives, the Design Objectives table does not appear in
the report. In this case, the report only displays the Quality Goals table.
set_quality_criteria
This command sets criteria to qualify for the Pass status. The syntax of
this command is given below:
set_quality_criteria
-severity {<criteria1>,<criteria2>,…}
[-goal {<goal1>,<goal2>,…}]
[-top {<block1>,<block2>,…}]
479
Feedback Synopsys, Inc.
Working with Aggregated Reports
Argument Description
-severity Specifies the criteria to qualify for the Pass status, as shown in
the following example:
-severity {Fatal=0,Error=0,
Warning<1000,Waived-Error=0}
Valid severities accepted in this category are based on SpyGlass
reported severity class messages that can be waived.
SpyGlass accepts following case-insensitive labels:
• Fatal, Error, Warning, Info (SpyGlass reported severity
classes)
• Waived-Error, Waived-Warning, Waived-Info (severity class
messages that can be waived)
In the mathematical expressions, following operators are
accepted:
<=, >= , >, <, !=, =
The values set in these expressions are number of SpyGlass
reported (or) waived severity message counts.
-goal (Optional) Specifies a comma-separated list of goals on which
the specified criteria should be applied.
If you do not specify this argument, Atrenta Console applies the
specified criteria on all goals.
The following example shows the usage of this argument:
set_quality_criteria -severity
{Error<5,Warning<1000,Waived-Error=0} -goal
{goal1,goal2}
-top (Optional) Specifies a comma-separated list of blocks on which
the specified criteria for specified goals should be applied.
If you do not specify this argument, Atrenta Console applies the
specified criteria on all blocks.
The following example shows the usage of this argument:
set_quality_criteria -severity
{Error<5,Warning<1000,Waived-Error=0} -goal
{goal1,goal2} -top {block1,block2}
set_report_option
The following points describe the details of this command.
This command specifies options to filter results in the DashBoard report.
The syntax of this command is given below:
set_report_option
480
Synopsys, Inc. Feedback
Working with Aggregated Reports
[ –goals {<goal1>,<goal2>,…} ]
[-top {<block_name1>,<block_name2>,…}]
Argument Description
-goals Specifies a comma-separated list of goals for which results
should be displayed in the report.
By default, the report contains result of all the goals from
respective projects.
-top (Optional) Specifies a comma-separated list of blocks.
If you do not specify this argument, all the blocks are
considered.
481
Feedback Synopsys, Inc.
Working with Aggregated Reports
482
Synopsys, Inc. Feedback
Working with Aggregated Reports
483
Feedback Synopsys, Inc.
Working with Aggregated Reports
484
Synopsys, Inc. Feedback
Working with Aggregated Reports
485
Feedback Synopsys, Inc.
Working with Aggregated Reports
If you run a technology (data available), the default items appear in the
report even if you did not set a success criteria or chose explicitly to hide
an item. However, for optional items, you must explicitly set a criterion to
make them visible.
486
Synopsys, Inc. Feedback
Working with Aggregated Reports
Handling Waivers
Data corresponding to a few design objectives may be affected by waivers.
If you apply waivers as a part of the original analysis, they are considered
during data computation.
For example, the synchronization_coverage, cdc_failed_properties, and
cdc_partial_proven_properties variables are influenced by waivers, and the
report generator computes the final statistics by considering the applied
waivers.
NOTE: Any waivers created and applied in the GUI after original analysis are not
considered until next analysis.
487
Feedback Synopsys, Inc.
Working with Aggregated Reports
{switching_power<50mW,total_power<55mW,leakage_power<50uW,in
ternal_power<10mW} -goal {Power/power_est_average} -top
mc_top
You can also set success criteria values to scenarios created for goals. For
example, the following commands set success criteria values for the cg4
and cg8 scenarios created from the power_est_average goal:
set_design_objective Power -criteria
{switching_power<25mW,total_power<35mW,leakage_power<10uW,in
ternal_power<25mW} -goal {Power/power_est_average@cg4} -top
mc_top
488
Synopsys, Inc. Feedback
Working with Aggregated Reports
Following figure illustrates a sample criteria file for an early design stage.
#######################################################################
# Sample SpyGlass Dashboard Success criteria file
#######################################################################
#----------------------------------------
# Specify list of expected goals to report
#----------------------------------------
# This option ensures that goals which are expected, but are not run,
# will show up in the report as NOT_RUN. If a list of goals is not
# specified, then only the goals which have been run will be reported.
# NOTE: The dashboard report will only display the data from the goals
# which are included in this list of goal (if specified). If no
# set_report_option is not specified, the report data from all the goals
# found in the results directory.
489
Feedback Synopsys, Inc.
Working with Aggregated Reports
As the design progresses, you can include additional goals and increase the
success criteria, accordingly. For example, after the design reaches Design
Review#1 (Feature Complete), CDC and Power Analysis begin. The CDC
and Power results are also reported, in addition to the existing lint goals.
Also, all Lint warning messages should be resolved.
Following figure illustrates a sample criteria file for an advanced design
stage:
############################################################
# Sample SpyGlass Dashboard Success criteria file
############################################################
#----------------------------------------
# Specify list of expected goals to report
#----------------------------------------
# This option ensures that goals which are expected, but are not run,
# will show up # in the report as NOT_RUN. If a list of goals is not
# specified, then only the goals which have been run will be reported.
# NOTE: The dashboard report will only display the data from the goals
# which are included in this list of goal (if specified). If no
# set_report_option is not specified, the report data from all the goals
found in the results directory.
set_report_option -goals { lint/lint_rtl,
cdc/clock_reset_integrety,
lint/design_audit,
constraints/sdc_check,
cdc/cdc_verify,
dft/dft_scan_ready,
dft/dft_dsm_best_practice,
power/power_est_average,
} -top {$top}
#----------------------------------------
# Quality Objectives
#----------------------------------------
# strict quality checks for lint and CDC analysis
set_quality_criteria -severity {Error=0, Warnings=0, Waived-Error=0}
-goal {lint/lint_rtl}
490
Synopsys, Inc. Feedback
Working with Aggregated Reports
#----------------------------------------
# Design Objectives
#----------------------------------------
# DFT objectives
set_design_objective DFT -criteria {stuck_at_fault>95,
stuck_at_test>95,
transition_fault>80,
transition_test>80,
scannable_flops>95}
# CDC objectives
set_design_objective CDC -criteria {unsync_crossings=0,
synchronization_coverage=100}
# Constraints objectives might be module specific - so they are not set
# here.
set_design_objective Constraints -criteria {ports_constrained=100,
registers_constrained>90}
# NOTE: excluding the criteria value, will display the value, but will
# not provide a pass/fail icon. In other words - display the values only
- don't judge a success pass/fail.
set_design_objective Power -criteria {switching_power=display_only,
internal_power=display_only,
leakage_power=display_only,
total_power=display_only}
491
Feedback Synopsys, Inc.
Working with Aggregated Reports
492
Synopsys, Inc. Feedback
Working with Aggregated Reports
Module Dashboard
Design objectives and respective variables
This information is listed in the same order as the success criteria set in
the success criteria file.
Goals
By default, this information is arranged as per the order in the
methodology order file. However, if you specify explicit list of goals to be
displayed in the report by using the set_report_option -goals
{<goal-list>} command, the order is as per the <goal-list>.
SoC Dashboard
The SoC DashBoard contains following views to present composite status
of SoC with respect to overall executed quality goals and different product
specific objectives:
Summary tab
Quality Goals tab
Design Objectives tab
NOTE: You can not close the above listed default tabs. However, you can close the other
dynamically added tabs.
Summary tab
The left side chart in the Summary tab illustrates the consolidated status of
quality for all goals and applicable product metrics for products such as
DFT, CDC, and Power. The status in this view is categorized into Pass, Fail
and In-process, which are displayed in green, red and yellow colors,
respectively. Following figure illustrates the left-side chart:
493
Feedback Synopsys, Inc.
Working with Aggregated Reports
Pass Design objective or quality goal was passed as per success criteria
Fail Design objective or quality goal was failed as per success criteria
In-process Design objective or quality goal execution yet to complete
To view the overall status in percentage, hover the mouse on a vertical bar.
For example, if you hover the mouse on the green portion of the Quality
section, a pop-up displays the following message:
Quality, 56%
This means that 56% of overall executed goals are passed as per the set
success criteria.
Similarly, if you hover the mouse on to the red portion of the CDC section,
a pop-up displays the following message:
CDC, 66%
494
Synopsys, Inc. Feedback
Working with Aggregated Reports
This means that 66% of overall CDC objectives failed on the consolidated
list of modules.
The right side chart, by default, shows sub-items of the Quality section,
that is, different goals. However, when you select any other item on left
side composite status chart, the right side chart is updated accordingly
displaying sub-items of the selected item. For example, if you select DFT
on left side chart, the right side chart is updated to display the individual
items from DFT as shown in the following figure:
When you click on the bars, a new tab displays the details of the selected
design objective status for all applicable modules. For example, if we select
Stuck-at fault coverage bar of the DFT category, it opens a new tab
displaying the details of Stuck-at fault coverage objective for all applicable
modules as shown in the following figure:
495
Feedback Synopsys, Inc.
Working with Aggregated Reports
You can filter the results based on Pass/Fail status using the links located
on the top-right corner of the table. Also, clicking on any module displays
the Module Dashboard for that module in a new tab.
The above table shows applicable Pass/Fail goal status for the listed
modules with respect to the success criteria set on the module. Clicking the
module name displays the respective module dashboard.
496
Synopsys, Inc. Feedback
Working with Aggregated Reports
Hovering the mouse over the table cells displays the status and the Last
updated time stamp in a pop-up.
Clicking the goal name in the header of the Quality Goals tab displays the
goal-specific information in a new tab, which displays selected goal status
and statistic details for all modules. Following figure shows a sample goal-
specific page:
497
Feedback Synopsys, Inc.
Working with Aggregated Reports
You can filter the displayed data based on the legend, that is, severity
name. You can also select a region in the trend chart to view the detailed
view of the message count for the selected dates.
To switch back to the original view, click the Reset Zoom link.
498
Synopsys, Inc. Feedback
Working with Aggregated Reports
Above table shows all applicable modules, which you can select to view the
respective Module DashBoard pages. Rest of the columns shows all
products and product-specific objectives. The headers of the table display
design objective names and are truncated to best-fit to the view. When you
hover the mouse over the design objective name, the full objective name is
displayed in a pop-up.
The rest of the table displays the Pass/Fail/Data/No Data status of the
design objective with respect to the success criteria set on the module.
Following table classifies the available status and their description:
Hovering the mouse over the table cells displays the status and the Last
updated time stamp in a pop-up.
499
Feedback Synopsys, Inc.
Working with Aggregated Reports
Selecting the design objective name in the table header displays a new tab
listing variable-specific data for all applicable modules. See Figure 32 for
details.
Clicking on the displayed status in a table cell displays the trend chart with
respect to the module and design objective that shows trend variation over
time. Following figure illustrates a sample trend chart for a module with
respect to the selected design objective:
In the above figure, the solid line represents success criteria and the thin
line with dots represents the actual data. If multiple goals or scenarios in
the above trend chart provide the same variable data, multiple line pairs
are displayed in the chart. You can turn on/off some of them from the
provided legend in the chart area.
Module Dashboard
Module Dashboard is displayed in the following scenarios:
A dashboard is created for a single module
Module-specific links is displayed in the SoC DashBoard
By default, the module dashboard page displays summary of Quality Goals
and Design Objectives as shown in the following figure:
500
Synopsys, Inc. Feedback
Working with Aggregated Reports
You can expand both the tables by selecting 'Show All' link provided on top
right corner of the module dashboard page. Alternatively, you can select
the +/- icon provided at the left side of the tables, to expand/collapse the
table view.
501
Feedback Synopsys, Inc.
Working with Aggregated Reports
502
Synopsys, Inc. Feedback
Working with Aggregated Reports
The above section shows the data for the DFT, CDC, Constraints, and
Power design objectives. Following columns are displayed when you
expand the Design Objectives table:
503
Feedback Synopsys, Inc.
Working with Aggregated Reports
Category
Specifies the name of the design objective, such as CDC, Power, DFT, or
Constraints.
Design Objectives
Specifies the values generated by individual goals or scenario runs.
SpyGlass compares these values with the Success Criteria to determine
the overall task result.
Success Criteria
Specifies the success criteria defined for a particular design objective. If
no success criterion is defined, this column reads not set. For such design
objectives, the corresponding cell in the Pass/Fail Status column reads
Unknown and that cell appears in yellow.
Status
Displays status (Pass, Fail, or No Data) based on the comparison between
the specified Success Criteria and the actual Design Objectives value
extracted by analysis.
The No Data status appears if the data was not extracted by analysis.
Click on any of the Status cell to display the variations from previous
runs in a graphical format. See Figure 37 for details of this trend graph.
Customizing Report
SpyGlass enables you to customize your Dashboard report in following
ways:
Including Product-Specific Data in the Report
Displaying Pre-Existing Product Data
Displaying Custom Product/Rule Data
Customizing the Report Header
504
Synopsys, Inc. Feedback
Working with Aggregated Reports
505
Feedback Synopsys, Inc.
Working with Aggregated Reports
506
Synopsys, Inc. Feedback
Working with Aggregated Reports
507
Feedback Synopsys, Inc.
Working with Aggregated Reports
You can specify HTML tags in the REPORT TITLE and REPORT_LABEL
variable to link to other reports or web content:
508
Synopsys, Inc. Feedback
Working with Aggregated Reports
Managing Reports
You can perform following tasks to manage the generated Dashboard
Report:
Archiving and Managing Data Generated After Running Goals
Generating the HTML Goal Summary Page
Archiving Data
To archive data files, set the ARCHIVE_RUN_SUMMARY_FILES
environment variable to an area where the data files can be archived for
future use.
While generating the DashBoard report, if this environment variable set and
if there are any archived files, the report generator considers data from the
archived files present at a path specified by this environment variable.
509
Feedback Synopsys, Inc.
Working with Aggregated Reports
This dialog displays data for each goal run based on the information
present in a configuration file.
Removing Archived Data from the Common Storage Area
You can select data from the Manage archived goal run results dialog and
remove it from the common storage area.
To remove the required data displayed in a particular row in this dialog,
perform the following steps:
510
Synopsys, Inc. Feedback
Working with Aggregated Reports
Link to Goal
Summary Pages
511
Feedback Synopsys, Inc.
Working with Aggregated Reports
When you click the power_est_average link in the above report, the
following goal summary page is displayed:
512
Synopsys, Inc. Feedback
Working with Aggregated Reports
Results Summary
This section provides the following information:
Goal Run: The name of the goal that was run
Top Module: Top module name
Report Directory: The standard reports directory that contains the
text report files.
Log File: The SpyGlass log file that is generated when a goal is run. The
path of the log file appears as a hyperlink and selecting the link opens
the log file in a separate window.
Standard Reports
This section shows all default text reports that are generated as part of the
goal run. The report names appear as hyperlinks and clicking on the link
open the reports.
Technology Reports
This section shows all the product-specific reports. You can click on a report
link to open the report in a separate window.
Following figure illustrates a user-selected technology report content when
the pe_summary report link is selected.
513
Feedback Synopsys, Inc.
Working with Aggregated Reports
Technology Summary
If the products specify to present some summary corresponding to the
goal, it will be shown here with hyper links to the appropriate reports that
514
Synopsys, Inc. Feedback
Working with Aggregated Reports
515
Feedback Synopsys, Inc.
Working with Aggregated Reports
Goal Summary
Goal Summary
Goal Summary provides information on all the executed goal summaries
for the current Project.
By default, SpyGlass prepares necessary individual goal summary data as
part of each goal run and after completing all goal execution in the project,
SpyGlass consolidates data and generates the goal summary.
The Goal Summary, by default, displays the first goal result as shown in
the following figure:
You can chose other goals using the Change Goal drop-down list available
on the top-right corner of the report to open the respective goal summary
pages in new tabs.
For more information on sections of the Goal Summary, see Generating the
HTML Goal Summary Page.
To create the Goal Summary, SpyGlass uses the dashboard license. If the
516
Synopsys, Inc. Feedback
Working with Aggregated Reports
Goal Summary
license is not available an empty report is displayed. You can also disable
goal summary generation using the following command:
set_option disable_html_report {html}
The Goal Summary is generated, by default, at the following location after
the project analysis:
<project work directory>/html_reports/goals_summary.html
You can also launch the report by selecting the Analyze Results stage and
selecting the Reports-> HTML Report option in the main menu of
SpyGlass Atrenta Console as shown in the following figure:
517
Feedback Synopsys, Inc.
Working with Aggregated Reports
518
Synopsys, Inc. Feedback
Appendix
519
Synopsys, Inc.
Appendix
520
Synopsys, Inc. Feedback
Appendix
521
Feedback Synopsys, Inc.
Appendix
project file.
For NCSim, the default is VHDL (IEEE Std 1987) while for SpyGlass it is
VHDL (IEEE Std 1993). To avoid ambiguity, set the appropriate language
standard explicitly:
set_option 87 yes
or
set_option 87 no
Translation for NCSim option exceptions:
4. DC scripts
The following commands in DC scripts (initial setup files for DC) should
be translated into an Atrenta Console project command:
define_design_lib L1 -path ./L1_path ' define_library_map
L1 ./L1_path
522
Synopsys, Inc. Feedback
Appendix
523
Feedback Synopsys, Inc.
Appendix
NOTE: For using environment variables in the project file, standard Tcl syntax is supported.
For example, use $env(DIR) to access a environment variable named DIR.
<type>
Specifies the type of source file. The type can be any of the following:
Value Description
sourcelist Specifies the source files in .spp or .f format
verilog Specifies the Verilog (.v) files
vhdl Specifies the VHDL (.vhdl/.vhd) files
def Specifies the design exchange format (.def) files
sglib Specifies the SpyGlass library (.sglib) files
gateslib Specifies the gates library (.gateslib) files
lef Specifies the library exchange format (.lef) files
plib Specifies the power library (.plib) files
sgdc Specifies the SpyGlass Design Constraints (.sgdc) files
waiver Specifies the waiver files
<file-name>
Name of the source file.
524
Synopsys, Inc. Feedback
Appendix
<logical-lib-name>
Specifies the logical name of the library.
<directory-path>
Specifies the path to the directory where the library is located.
The set_option libhdlfiles command is used to specify a mapping
between the logical library and its HDL files. This option needs to be
specified in the order of dependency of the libraries being compiled.
The set_option libhdlfiles command accepts the following
values:
<logical-lib-name>
Specifies the logical name of the library.
<file-list>
Specifies the list of HDL files.
525
Feedback Synopsys, Inc.
Appendix
Reference Guide.
Specifying a Report
You can specify reports and their formats by using various options of the
set_option command, as discussed below:
The following command specifies the name of the report to be
generated:
set_option report <name>
NOTE: This option is applicable for all goals that you specify in the Goal Setup Section. So
if any goal specified in the Goal Setup Section does not generate the report
specified by the set_option report <name> command, SpyGlass reports a fatal
violation. In such cases, use the set_goal_option report <name> command in the
Goal Setup Section to specify the name of goal-specific reports.
The following command specifies the name and location of the report
file:
set_option reportfile <file-name>
The following command specifies the maximum number of messages for
sorted reports (simple, moresimple, and waiver reports):
set_option report_max_size <value>
The following command specifies the report style:
set_option report_style <style-name>
Here, the <style-name> argument can accept any of the following
values:
Value Description
flat Displays the report in an ungrouped format.
grouped Groups the content of the report (for example, by goals).
display_msgid Enables the display of the message index column in the
reports.
hide_msgid Hides the message index column in the reports
display_rulegroup Allows grouping of rule messages in the reports by rule
group.
526
Synopsys, Inc. Feedback
Appendix
Value Description
display_sdcgroup Groups messages of the sdc_data based rules in the
SpyGlass Constraints solution based on the sdc_data
specified in the SGDC file.
hide_rulegroup Disallows grouping of rule messages by rule group in the
report.
display_taggroup Groups messages of the Ac_sync_group rules of SpyGlass
CDC solution based on instance names or user-specified
names.
527
Feedback Synopsys, Inc.
Appendix
Value Description
<language> Verilog,
Refers to the rule language, which can be
VHDL, or Mixed. The rule for which message sorting
order is being defined must be registered for the specified
language. If the rule is specified for both languages, you
can optionally specify only one of the languages if you
want to specify the message sorting order for only that
language.
<rule-name> Refers to the rule name
<sort-order> Refers to the user-defined sort order. This value is specified
in the following format:
<arg-number><arg-type><arg-sort-
order>
Details of the <sort-order> value
<arg-number> Refers to the argument number
To get the argument number, refer the rule message goal
in the product ruledeck file. For example, the LPFSM16 rule
of the SpyGlass Power Verify solution has the following
message goal:
Attribute '%1' found on
enumerated type '%2' used for
encoding FSM states
Therefore, the first argument is the attribute name and is
specified as 1. The second argument is the state variable
name and is specified as 2.
Refer to the corresponding rules reference document for
an explanation of the rule message arguments.
<arg-type> Refers to the argument type
Argument types can be string (specified as s), numerals
(specified as n), and enumerated types (specified as e).
<arg-sort-order> Refers to the argument value sorting order as ascending
(specified as a) or descending (specified as d)
528
Synopsys, Inc. Feedback
Appendix
follows:
1. First, sort the messages by 2sa, that is, sort by the value of the second
argument (2) which is a string argument (s) in ascending order (a).
2. For messages with the same second argument value, sort by 1nd, that
is, sort by the first argument (1) which is a numeral argument (n) in
descending order (d).
3. For messages with the same first argument value, sort by 3e/val1/
val2/val3, that is, sort by the third argument (3) which is an
enumerated type argument (e) based argument values val1, val2,
and val3 in that order.
In addition to the argument-based sorting orders described above, you can
specify message sorting order by file (specified as f) and by line number
(specified as l), both in either ascending order (specified as a) or
descending order (specified as d). Thus, fd means to sort the messages by
file name in descending order. And la means to sort by line number in
ascending order.
Consider the sortrule specification in the above example with addition
values as follows:
set_option sortrule Verilog+R1+2sa+1nd+3e/val1/val2/
val3+fd+la
This specification means that any sorting after the argument-based sorting
will be done first by file names in descending order and then by line
numbers in ascending order.
By default, the argument values are sorted in a case-sensitive manner.
Specify i (for ignore case) to indicate that the argument values are to be
sorted in a case-insensitive manner. Consider the following example:
set_option sortrule Verilog+R1+2sai+1nd+3e/val1/val2/
val3+fdi+la
The above specification indicates that argument-based sorting indicated by
2sa and file-based sorting indicated by fd should be performed in a case-
insensitive manner.
529
Feedback Synopsys, Inc.
Appendix
<goal_path_and_name>
(Mandatory) The relative path of the location where the goal is located.
-top <module_name>
(Optional) Name of the top-module. The <module-name> option defines
the goal settings for the given top module only.
-alltop
(Optional) Use this option to define goal settings for cases in which no top-
level design unit is specified, and goals are run for all top-level design units
found in a design.
NOTE: If you do not specify any of the -top or -alltop option in batch, goal settings
are defined for a top module specified by the set_option top command in
the project file. However, if the set_option top command is also missing in
the project file, Atrenta Console considers the behavior of -alltop option, that
is, goal settings are defined for all the top modules.
While saving a project file, the current_goal command is always written with
either -top <top> or -alltop in the project file so that the settings remain a
part of the current top, even if the user changes a top-level design unit for the
project file.
For more information on the Tcl-based usage of the current_goal
530
Synopsys, Inc. Feedback
Appendix
set_option top T1
current_goal G1 -top T1
set_parameter fa_modulelist {M1 M2}
current_goal G1 -top T2
set_parameter fa_modulelist {M3 M4}
current_goal G1 -alltop
set_parameter fa_modulelist {M1 M2 M3 M4}
current_goal G1 -top T1
531
Feedback Synopsys, Inc.
Appendix
current_goal G1 -top T2
set_parameter fa_modulelist {M3 M4}
current_goal G1 -alltop
set_parameter fa_modulelist {M1 M2 M3 M4}
Consider the following case in which both the set_option top and -
alltop commands are specified:
//Project-1.prj
set_option top T1
current_goal G1 -alltop
set_parameter fa_modulelist {M1 M2 M3 M4}
<option>
(Mandatory) Specifies the name of the option, such as report,
sdc2sgdcfile, sdc2sgdc, etc.
<value>
Specifies the value of the option.
532
Synopsys, Inc. Feedback
Appendix
Specifying a Parameter
The command to setup a parameter is as follows:
set_parameter <param-name> <value>
Where:
<param-name>
Name of the parameter
<value>
Value of the parameter
NOTE: The names of the parameter and their values are as they exist currently. Sanity
check is not performed on parameter arguments.
533
Feedback Synopsys, Inc.
Appendix
<goal_name>
(Mandatory) Specifies the name of the custom goal.
-policy <product_list>
(Optional) Specifies a list of products that should be a part of the custom
goal.
<goal_settings>
Specifies goal-specific settings or options, such as rules, parameters,
overload-rule, reports, and so on. The settings must be specified within
brackets.
The following is an example of using this command:
define_goal CUSTOM_GOAL_1 -policy { lint } {set_parameter abc
def}
534
Synopsys, Inc. Feedback
Appendix
535
Feedback Synopsys, Inc.
Appendix
536
Synopsys, Inc. Feedback
Appendix
NOTE: The three_state and x_function attributes are supported for sequential
cells.
You are expected to supply the synthesizable RTL description from other
sources (including manual creation) for these problem cells while analyzing
the design with SpyGlass.
Sequential Cells not Compiled
The following types of sequential cells are not compiled:
Sequential memory cells
Sequential black box cells
Sequential cells with the clocked_on_also attribute
Sequential cells with the enable_also attribute
Flip-flop or FlopBank cells without clocked_on and next_state
attributes
Sequential cells with bus/bundle attribute on control signals
Sequential cells with both bus and bundle attribute on a pin
Latch or LatchBank cells where data and enable pins are not specified
together
Sequential cells without at least one of clear, preset, or data pins
Sequential cells without at least one primary output
State-table Cells not Compiled
Cells with multiple clocks are not compiled. However, state-table cells
representing multiple flip-flops, multiple latches, or a combination of
flip-flops and latches driven by independent clocks are compiled.
537
Feedback Synopsys, Inc.
Appendix
538
Synopsys, Inc. Feedback
Appendix
2. Precompile L2:
read_file -type hdl {rtl_3.vhd rtl_4.v}
set_option enable_precompile_vlog yes
set_option lib L1 lib2
set_option work L2
3. Precompile L3:
read_file -type hdl rtl_dir/*
539
Feedback Synopsys, Inc.
Appendix
540
Synopsys, Inc. Feedback
Appendix
541
Feedback Synopsys, Inc.
Appendix
542
Synopsys, Inc. Feedback
Appendix
For example, consider that there are four design files, namely f1.v, f2.vhd,
f3.v and top.vhd that are being analyzed as follows:
read_file -hdl f1.v f2.vhd f3.v top.vhd
<other-options>
Further assume that f1.v has design units mid1 and mid2, where mid2 is not
part of the top-level hierarchy. In this case, any parsing-related message
will also not be reported on mid2.
Now, in single-step precompilation and use flow, if we precompile these
files in two libraries L1 and L2 as follows, then the parsing messages would
be reported on mid2 also, even if it is not part of the top-level hierarchy.
set_option libhdlfiles L1 {f1.v f2.vhd}
set_option libhdlfiles L2 {f3.v top.vhd}
set_option top top
<other-options>
NOTE: Parsing messages are reported on complete input RTL files being precompiled,
because that is the behavior when you precompile it through separate SpyGlass
precompilation run for each library, that is, not using the single-step precompilation
feature.
543
Feedback Synopsys, Inc.
Appendix
544
Synopsys, Inc. Feedback
Appendix
545
Feedback Synopsys, Inc.
Appendix
546
Synopsys, Inc. Feedback
Appendix
547
Feedback Synopsys, Inc.
Appendix
548
Synopsys, Inc. Feedback
Appendix
549
Feedback Synopsys, Inc.
Appendix
550
Synopsys, Inc. Feedback
Appendix
551
Feedback Synopsys, Inc.
Appendix
552
Synopsys, Inc. Feedback
Appendix
553
Feedback Synopsys, Inc.
Appendix
554
Synopsys, Inc. Feedback
Appendix
555
Feedback Synopsys, Inc.
Appendix
initial_rtl/lint/simulation*
initial_rtl/lint/synthesis*
initial_rtl/lint/structure*
initial_rtl/audit/block_profile*
!HIDE initial_rtl/audit/rtl_audit*
!HIDE initial_rtl/audit/structure_audit*
!HIDE initial_rtl/audit/datasheet_io_audit*
!HIDE initial_rtl/clock_reset_integrity/power_gated_clock*
initial_rtl/clock_reset_integrity/clock_reset_integrity*
initial_rtl/constraint/sdc_quick_check*
initial_rtl/constraint/sdc_coverage*
initial_rtl/constraint/clock_consis* PREREQ: initial_rtl/
constraint/sdc_quick_check
!HIDE initial_rtl/constraint/io_delay* PREREQ: initial_rtl/
constraint/clock_consis
!HIDE initial_rtl/constraint/combo_path_check* PREREQ:
initial_rtl/constraint/io_delay
!HIDE initial_rtl/constraint_generation/gen_sdc* PREREQ:
initial_rtl/constraint/sdc_quick_check
!HIDE initial_rtl/power/activity_check*
initial_rtl/power/power_pre_reduction*
556
Synopsys, Inc. Feedback
List of Topics
557
Feedback Synopsys, Inc.
Compiling HDL Files into a Library................................................................. 131
Compiling Libraries in Mixed-Language Designs .............................................. 146
Compiling the Set of Verilog and SystemVerilog Files Separately ....................... 167
Compiling Verilog Files Containing SystemVerilog Keywords ............................. 167
Conditionally Specifying SGDC Constraints ..................................................... 320
Conditions for Auto-Compilation of Gate Libraries............................................ 139
Configuring a Methodology........................................................................... 244
Configuring Columns ..................................................................................... 51
Conflict Resolution at Block-Level.................................................................. 355
Conflict Resolution at Top-Level .................................................................... 353
Congestion ................................................................................................ 460
Constraints Migrated From Block-Level to Chip-Level ....................................... 347
Constraints ................................................................................................ 456
Contents of This Book ................................................................................... 18
Controlling the RTL Synthesis Engine............................................................. 208
Converting SDC Attributes into SGDC Commands............................................ 331
Copying a Methodology ............................................................................... 287
Copying and Inheriting Methodologies ........................................................... 287
Copying Goals ............................................................................................ 256
Creating a Configuration File ........................................................................ 437
Creating a Configuration File ........................................................................ 469
Creating a Methodology ............................................................................... 246
Creating a Migration File .............................................................................. 346
Creating a Project File ................................................................................. 523
Creating a Sub-Methodology ........................................................................ 249
Creating a Waiver File ................................................................................. 372
Creating an SGDC File ................................................................................. 306
Creating and Modifying a Methodology........................................................... 246
Creating and Modifying a Sub-methodology.................................................... 249
Creating Custom Methodologies.................................................................... 269
Creating Encrypted Library Dump ................................................................. 154
Creating Goal-Based Waiver......................................................................... 372
Creating Goals ........................................................................................... 251
Creating Scenarios...................................................................................... 112
Creating the Success Criteria File .................................................................. 473
Cross-probing from the Msg Tree Page .......................................................... 126
Current Limitation with Mixed-language Designs in SpyGlass ............................ 190
Customizing Goals ...................................................................................... 269
Customizing Report..................................................................................... 504
Customizing the Report Header .................................................................... 507
Data Import Section.................................................................................... 524
558
Synopsys, Inc. Feedback
Debugging Issues in Gate Libraries ............................................................... 148
Default Paths of Aggregated Reports ............................................................. 421
Defining a Logical Library ............................................................................ 131
Defining a Scope for Constraints................................................................... 307
Defining and Using Variables........................................................................ 315
Defining Variables ...................................................................................... 315
Deleting a Tag ........................................................................................... 415
Deleting Goals ........................................................................................... 256
Design Results ........................................................................................... 121
Design Setup Stage ...................................................................................... 28
Design Statistics ........................................................................................ 458
Details of the DashBoard Report ................................................................... 493
Details of the DataSheet Report ................................................................... 449
Details of the waive Constraint ..................................................................... 386
Details Present in a Goal File........................................................................ 231
Determining Parameter Precedence ................................................................ 93
Difference between Ignored and Stopped Design Units .................................... 221
Directory Structure Created After Running a Scenario...................................... 115
Displaying the New Goals Dialog................................................................... 253
Dragging and Dropping Sub-Methodologies and Goals ..................................... 264
Editing Files ................................................................................................. 47
Editing Source Files .................................................................................... 117
Effects of Selected Messages in the Schematic ............................................... 365
Effects of Waiving Messages ........................................................................ 375
Enabling the DesignWare Flow ..................................................................... 193
Enabling the Feature................................................................................... 207
Enabling the SDC-to-SGDC Translation Feature .............................................. 331
Enabling/Disabling a Goal ............................................................................ 259
Enabling/Disabling Rules of a Parent Goal ...................................................... 280
Encrypting IPs by Using the spyencrypt Utility ................................................ 171
Encrypting IPs Spread Across a Hierarchical Directory Structure ....................... 175
Example of a Tcl-based Project File ............................................................... 534
Example of Using the SG_OPERATING_MODE Variable..................................... 322
Examples of Instantiating VHDL Design Units in Verilog Modules ....................... 187
Examples of Using the waive Constraint ........................................................ 389
Existing Waiver Support in SpyGlass ............................................................. 412
Features of Single Step Precompilation .......................................................... 540
File Generated in GUI.................................................................................... 32
Files Generated to Support Special Features..................................................... 33
Files/Directories Created in Atrenta Console ..................................................... 30
Files/Directories Generated by Default............................................................. 32
559
Feedback Synopsys, Inc.
Format of an Order File ............................................................................... 299
Generated Hierarchical SGDC File(s) ............................................................. 348
Generating a Precompiled Library ................................................................. 135
Generating Aggregated Project Results .......................................................... 422
Generating Dashboard Report in GUI............................................................. 467
Generating Dashboard Report ...................................................................... 464
Generating Hierarchical SGDC File................................................................. 348
Generating SGDC Commands as a Part of Design Read .................................... 342
Generating SGDC Commands as a Part of Goal Run......................................... 342
Generating the DashBoard Report in Batch..................................................... 465
Generating the DashBoard Report through Project File..................................... 465
Generating the DataSheet Report in Batch ..................................................... 443
Generating the DataSheet Report in GUI........................................................ 435
Generating the Datasheet Report through a Project File ................................... 444
Generating the HTML Goal Summary Page ..................................................... 511
Generating the Project Summary Report ........................................................ 426
Generating the Report through a Project File .................................................. 427
Generating the Report through GUI............................................................... 426
Goal Files .................................................................................................. 230
Goal Setup and Run Stage ............................................................................. 28
Goal Setup Section ..................................................................................... 529
Goal Summary ........................................................................................... 516
Goals That Do Not Use Default Parameter Value ............................................. 544
GUI Details .................................................................................................. 26
GuideWare Reference Methodology ............................................................... 234
Handling Directional Clocks .......................................................................... 339
Handling Duplicate Constraint Specifications................................................... 318
Handling False Paths ................................................................................... 338
Handling for-generate Constructs.................................................................. 359
Handling Interdependencies between Different Arguments ............................... 311
Handling Internal Messages ......................................................................... 417
Handling Language Warning Messages .......................................................... 416
Handling Multi-cycle Paths ........................................................................... 339
Handling Mutually Exclusive Clocks ............................................................... 339
Handling Nets Declared in a Sequential Block ................................................. 319
Handling of Generated Clocks....................................................................... 336
Handling Out of Memory Situations ............................................................... 205
Handling SpyGlass Built-In Messages ............................................................ 416
Handling SV Structure or Union .................................................................... 358
Handling Syntax Error Messages ................................................................... 416
Handling Synthesis Error Messages ............................................................... 417
560
Synopsys, Inc. Feedback
Handling Synthesis Warning Messages .......................................................... 416
Handling SystemVerilog Interface Containing a Modport .................................. 357
Handling SystemVerilog Interface Port/Terminal ............................................. 357
Handling SystemVerilog Objects in SGDC....................................................... 357
Handling Unsaved Changes in Waiver Files..................................................... 374
Identifying Common Syntax Errors and Issues ................................................. 59
Identifying Modules .................................................................................... 206
Ignoring Files and Design Units From SpyGlass Analysis .................................. 220
Ignoring Files Containing Design Units........................................................... 221
Ignoring Files from SpyGlass Analysis ............................................................. 50
Ignoring Individual Design Units ................................................................... 222
Ignoring the SpyGlass Waiver Pragmas ......................................................... 411
Impact of the addrules Option While Using Pre-compiled Dump ........................ 159
Impact of the Feature ................................................................................. 207
Impact of the ignorerules Option While Using Pre-compiled Dump ..................... 159
Implementing Scoping in SGDC Commands ................................................... 351
Implications After Stopping Design Units ....................................................... 217
Importing Block-Level SGDC Commands to Chip-Level .................................... 346
Importing Goals ......................................................................................... 255
Including a Waiver File in Another Waiver File ................................................ 375
Including an SGDC File in Another SGDC File.................................................. 312
Including and Inheriting GuideWare Goals ..................................................... 269
Including HDL Files in the Logical Library ....................................................... 133
Including Product-Specific Data in the Report ................................................. 505
Including/Inheriting Goals in a Goal File ........................................................ 270
Including/Inheriting Goals in the MCS Window................................................ 277
Incremental Mode Analysis .......................................................................... 108
Inferring Black Boxes .................................................................................. 200
Inferring cdc_false_path for Clocks in Different Domains.................................. 334
Inferring Language from File Extension During Compilation .............................. 161
Inheriting a Methodology ............................................................................. 288
Instantiating as Component Instance ............................................................ 182
Instantiating as Entity Instance .................................................................... 184
Instantiating Verilog Modules in VHDL Architectures ........................................ 182
Instantiating VHDL Design Units In Verilog Modules ........................................ 186
Interpreting Synthesis Pragmas.................................................................... 209
Interpreting Synthesis Pragmas.................................................................... 210
Introducing Goals ......................................................................................... 21
Introducing Methodologies ............................................................................. 22
Introducing the Incremental Mode Feature..................................................... 118
Introducing the Use Model for IP Encryption in SpyGlass .................................. 170
561
Feedback Synopsys, Inc.
Invoking Atrenta Console Graphical User Interface ............................................ 24
Invoking Atrenta Console on a 64-bit Machine .................................................. 25
IO Definitions............................................................................................. 451
Language-Specific Behavior While Specifying a Top-Level Module...................... 215
Library Searching Mechanism ....................................................................... 142
Licensing Requirements ............................................................................... 464
Limitations................................................................................................. 344
Limiting Analysis of Memories....................................................................... 208
Limiting the Number of Messages Generated .................................................. 369
Limiting the Number of Messages Reported for a Rule...................................... 369
List of DesignWare Modules Supported in SpyGlass ......................................... 195
Loading the Previous Session ......................................................................... 24
Makefile Based Support in Step Precompilation ............................................... 541
Managing Datasheet and Dashboard Reports .................................................. 518
Managing Reports....................................................................................... 509
Managing the Design Hierarchy .................................................................... 212
Map File .................................................................................................... 302
Mapping a File Extension with a Compilation Language .................................... 160
Mapping between VHDL Generics and Verilog Parameters................................. 189
Mapping Data Types ................................................................................... 189
Mapping File Extensions................................................................................. 45
Merging the Differences............................................................................... 286
Messages Affecting Multiple Source Lines/Files................................................ 367
Methodology Used by Atrenta Console ............................................................. 22
Migrating Custom Goals............................................................................... 291
Migrating Goals .......................................................................................... 297
Modifying a Goal........................................................................................... 67
Modifying a Methodology ............................................................................. 248
Modifying a Sub-Methodology....................................................................... 251
Modifying a Tag.......................................................................................... 414
Modifying and/or Deleting Scenarios.............................................................. 114
Modifying Goal Properties ............................................................................ 257
Modifying Goals .......................................................................................... 256
Modifying Parameters of a Goal .................................................................... 263
Module Dashboard ...................................................................................... 500
Multiple Lines Affected in Different Source Files .............................................. 368
Multiple Lines Affected in the Same Source File............................................... 368
Multiple Messages Selected .......................................................................... 368
Multiple Top-Level Design Units .................................................................... 214
Naming and Mapping Verilog Libraries ........................................................... 141
Naming Convention of a Goal File ................................................................. 230
562
Synopsys, Inc. Feedback
Order File .................................................................................................. 298
Overview................................................................................................... 129
Overview..................................................................................................... 21
Overview................................................................................................... 229
Overview................................................................................................... 303
Overview..................................................................................................... 35
Overview................................................................................................... 363
Overview................................................................................................... 419
Parsing SGDC Files ..................................................................................... 327
Performing Hierarchical Rule-Checking in 'celldefine Modules ............................ 227
Performing Rule-Checking on 'celldefine Modules ............................................ 226
Performing Sanity Checks for Parameters ...................................................... 101
Performing Syntax Checking in SGDC Files..................................................... 327
Performing Version Control ............................................................................ 46
Power Clocks ............................................................................................. 455
Power Results ............................................................................................ 125
Power ....................................................................................................... 454
Precompiling Multiple Libraries in a Single SpyGlass Run .................................. 539
Precompiling Verilog Libraries ...................................................................... 140
Prerequisites for Enabling DesignWare Flow ................................................... 192
Preserving all instances and nets in a design .................................................. 209
Processing of SGDC Files ............................................................................. 327
Processing SpyGlass Design and Waiver Pragmas ........................................... 328
Project Current Working Directory .................................................................. 31
Project File Details...................................................................................... 523
Project File .................................................................................................. 30
Project Summary Report ............................................................................. 426
Project Working Directory .............................................................................. 30
Rearranging HDL Files................................................................................... 46
Recognizing Clocks ..................................................................................... 330
Recommended Goals for Generating DataSheet Report .................................... 446
Reporting Messages at Module Boundary ....................................................... 206
Reset Trees ............................................................................................... 453
Returning Back to the Goal Setup & Run Stage ............................................... 118
Reusing Netlist of DesignWare Modules during SpyGlass Analysis ...................... 194
Re-using Simulation Scripts ......................................................................... 521
Running Custom Goals .................................................................................. 72
Running Design Read in Batch........................................................................ 58
Running Design Read in GUI .......................................................................... 55
Running Design Read .................................................................................... 55
Running Goals in Parallel ............................................................................... 72
563
Feedback Synopsys, Inc.
Running Prerequisite Goals .......................................................................... 109
Running Scenarios ...................................................................................... 114
Sample Order File ....................................................................................... 555
Saving the Generated SGDC Commands in a File ............................................ 341
Scoping When Design is at the Block-Level..................................................... 354
Scoping When Design is at Top-Level ............................................................ 352
Searching for Input Files.............................................................................. 420
Searching Instances...................................................................................... 62
Searching Master Instance in Mixed-Language Mode ....................................... 147
Selecting a Custom Methodology .................................................................. 281
Selecting a Goal ........................................................................................... 65
Selecting Auxiliary Messages without Selecting a Main Message ........................ 367
Selecting Non-Static Auxiliary Messages ........................................................ 366
Selecting Static Auxiliary Messages ............................................................... 366
Selection of Goal Files based on Language Mode ............................................. 232
Sequential Cell Support ............................................................................... 536
Setting a Top-Level Design Unit.................................................................... 213
Setting Default Waiver File........................................................................... 373
Setting Parameters and Constraints for Selected Goal........................................ 93
Setting Stop Files ......................................................................................... 50
Setting Up the Goal in Batch Mode ................................................................ 109
Setting up the Goal....................................................................................... 93
SGDC Convention for Packed Arrays.............................................................. 309
SoC Dashboard .......................................................................................... 493
Specifying a Cache Directory ........................................................................ 139
Specifying a Current Methodology ................................................................. 242
Specifying a List of .sglib Files ........................................................................ 44
Specifying a Reference Environment Variable ................................................. 289
Specifying a Top-level Design Unit ................................................................ 212
Specifying an Active Methodology ................................................................. 238
Specifying an Additional Path ....................................................................... 289
Specifying Compilation Options in a Source File .............................................. 165
Specifying Compressed Verilog Designs ........................................................... 44
Specifying Configuration Name with current_design Command ......................... 310
Specifying Details in the New Goal Dialog ...................................................... 253
Specifying Encrypted Files for SpyGlass Analysis ............................................. 177
Specifying Encrypted Files through a Project File ............................................. 180
Specifying Encrypted Files through GUI ......................................................... 177
Specifying Files in the Order of Their Dependencies ......................................... 166
Specifying Functionality Information of Gate Cells ............................................. 42
Specifying Modes in Which Libraries Should be Compiled.................................. 130
564
Synopsys, Inc. Feedback
Specifying Multiple current_design Specifications for a Design Unit.................... 309
Specifying Multiple Technology Libraries of the Same Name ............................. 150
Specifying Multiple Values for a Constraint Argument ...................................... 311
Specifying Optional Environment Variables....................................................... 23
Specifying Path of DesignCompiler Installation ............................................... 192
Specifying Pragmas in HDL Code .................................................................. 199
Specifying Precompiled Libraries for SpyGlass Analysis .................................... 149
Specifying SGDC Files to SpyGlass ................................................................ 305
Specifying Signal Names based on Design Hierarchy ....................................... 313
Specifying Signal Names based on Signal Types ............................................. 313
Specifying Signal Names ............................................................................. 313
Specifying the Mode of an SDC File ............................................................... 341
Specifying the Mode of Domain Inference ...................................................... 333
Specifying Verilog Libraries by Using the 'uselib Statement .............................. 146
SpyGlass CDC Solution Results..................................................................... 122
SpyGlass Constraints Solution Results ........................................................... 122
SpyGlass DFT Solution Results ..................................................................... 124
SpyGlass TXV Solution Results ..................................................................... 122
Stage 1: Setting up the Design (Design Setup)................................................. 36
Stage 2: Selecting a Goal (Goal Setup & Run) .................................................. 64
Stage 3: Analyzing a Design (Analyze Results) ............................................... 116
Starting a New Session ................................................................................. 24
Stopping Black Box Analysis ........................................................................ 204
Stopping Design Units ................................................................................. 216
Structure of a Project File ............................................................................ 523
Structure of Precompiled Verilog Libraries ...................................................... 142
Structure of the GuideWare Reference Methodology ........................................ 234
Support for Hierarchical Waivers................................................................... 400
Support for Virtual Clocks in sdc2sgdc Flow.................................................... 343
Supported HDL Directives ............................................................................ 519
Supported Library Cells ............................................................................... 536
Supported Pragmas for Verilog ..................................................................... 199
Supported Pragmas for VHDL ....................................................................... 199
Switching to the Old Dashboard Report ......................................................... 515
Syntax of the waive Constraint..................................................................... 382
Tagging Messages ...................................................................................... 413
Tcl Format Support in the Configuration File................................................... 440
Tcl Format Support in the Configuration File................................................... 471
Testability ................................................................................................. 457
The DashBoard Report ................................................................................ 462
The DataSheet Report................................................................................. 433
565
Feedback Synopsys, Inc.
The Methodology Configuration System ......................................................... 109
Timing ...................................................................................................... 459
Tips for Debugging Syntax Errors.................................................................... 60
Translating set_clock_sense command .......................................................... 340
Translating set_disable_timing command....................................................... 340
Translating set_mode command ................................................................... 341
Typographical Conventions ............................................................................ 19
Understanding Different Flows for Using This Feature ...................................... 342
Understanding the Black Box Inference Feature .............................................. 201
Updating Rules of a Goal ............................................................................. 259
Using DesignWare Functions ........................................................................ 198
Using Encrypted Library Dump ..................................................................... 155
Using File Extension Based Compilation Flow .................................................. 168
Using Intermediate Logical Library Name Support in VHDL ............................... 151
Using Regular Expressions and Wildcard Characters ........................................ 390
Using the active_methodology Option............................................................ 241
Using the AUTOENABLE_GATESLIB_AUTOCOMPILE Key ................................... 138
Using the Black Box Inference Feature........................................................... 202
Using the Corrected Inferred Information....................................................... 204
Using the Dual Design Read (DDR) Flow ........................................................ 101
Using the enable_gateslib_autocompile Option ............................................... 138
Using the force_gateslib_autocompile Option.................................................. 138
Using the GUI to Automatically Compile Libraries ............................................ 137
Using the Incremental Mode Feature ............................................................. 119
Using the Results Pane to Waive Messages..................................................... 379
Using the SG_OPERATING_MODE Variable ..................................................... 321
Using the Top and Stop Features Together ..................................................... 218
Using the Waiver Editor Window ................................................................... 377
Using Variables .......................................................................................... 315
Using Verilog Constructs ................................................................................ 54
Validating the Generated Hierarchical SGDC File ............................................. 349
Verilog Modules Instantiated in VHDL Design Units .......................................... 147
VHDL Library Design Units Instantiated in Verilog Modules ............................... 147
Viewing and Adding Options for an Included or Inherited Goal .......................... 278
Viewing and Changing Design Read Options ..................................................... 52
Viewing Built-In Messages for Precompiled Libraries ........................................ 156
Viewing CSV Reports................................................................................... 432
Viewing Different Type of Results.................................................................. 120
Viewing Directories Created After Goal Run ...................................................... 81
Viewing Encryption Summary in a Report....................................................... 176
Viewing Goal Summary ............................................................................... 117
566
Synopsys, Inc. Feedback
Viewing Include Files .................................................................................... 51
Viewing Messages after Running Design Read .................................................. 59
Viewing Order of Goals Defined in an Order File .............................................. 299
Viewing Reports ........................................................................................... 60
Viewing Results of Different Scenarios and Goals ............................................ 126
Viewing Rules and Parameters of Included/Inherited Goals............................... 279
Viewing Source Files ..................................................................................... 62
Viewing the DashBoard Report ..................................................................... 492
Viewing the DataSheet Report...................................................................... 446
Viewing the HTML Report for Comparison ...................................................... 296
Viewing the HTML Report............................................................................. 427
Viewing the Project Summary Report ............................................................ 427
Virtual to Real Clock Mapping ....................................................................... 344
Waiver File ................................................................................................ 372
Waiving Messages by File .............................................................................. 51
Waiving Messages by Using SpyGlass Pragmas ............................................... 402
Waiving Messages by Using the waive Constraint ............................................ 381
Waiving Messages in Waiver/SGDC Files ........................................................ 411
Waiving Messages through a Project File........................................................ 381
Waiving Messages through GUI .................................................................... 377
Waiving Messages ...................................................................................... 371
Waiving Rule Messages for a Block of Code .................................................... 404
Waiving Rule Messages for a Single Line of Code ............................................ 406
Wildcard Support at Block-Level ................................................................... 355
Wildcard Support at Top-Level ..................................................................... 353
Working with 'celldefine Modules .................................................................. 226
Working with Black Boxes............................................................................ 200
Working with Compressed Gate Library Files .................................................. 153
Working with DesignWare® Modules............................................................. 192
Working with Encrypted Compiled Libraries .................................................... 154
Working with Encrypted Design Files ............................................................. 170
Working with Mixed-Language Designs .......................................................... 182
Working with Multiple Messages ................................................................... 365
Working with Precompiled Libraries............................................................... 130
Working with Precompiled Verilog Libraries in Mixed Language Mode ................. 143
Working with Scenarios ............................................................................... 111
567
Feedback Synopsys, Inc.
568
Synopsys, Inc. Feedback