PrimeTime GCA User Guide 2016
PrimeTime GCA User Guide 2016
User Guide
Version L-2016.06, June 2016
Copyright Notice and Proprietary Information
©2016 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.
Destination Control Statement
All technical data contained in this publication is subject to the export control laws of the United States of America.
Disclosure to nationals of other countries contrary to United States law is prohibited. It is the reader's responsibility to
determine the applicable regulations and to comply with them.
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/Pages/Trademarks.aspx.
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
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the
following conditions are met:
1.Redistributions of source code must retain the above copyright notice, this list of conditions and the following
disclaimer.
2.Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following
disclaimer in the documentation and/or other materials provided with the distribution.
3.All advertising materials mentioning features or use of this software must display the following acknowledgement:
This product includes software developed by the University of California, Berkeley and its contributors.
4.Neither the name of the University nor the names of its contributors may be used to endorse or promote products
derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
This software is not subject to any license of the American Telephone and Telegraph Company or of the Regents of the
University of California.
Permission is granted to anyone to use this software for any purpose on any computer system, and to alter it and
redistribute it freely, subject to the following restrictions:
1.The authors are not responsible for the consequences of use of this software, no matter how awful, even if they arise
from flaws in it.
2.The origin of this software must not be misrepresented, either by explicit claim or by omission. Since few users ever
read sources, credits must appear in the documentation.
3.Altered versions must be plainly marked as such, and must not be misrepresented as being the original software.
Since few users ever read sources, credits must appear in the documentation.
4.This notice may not be removed or altered.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the
following conditions are met:
Redistributions of source code must retain the above copyright notice, this list of conditions and the following
disclaimer.
Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following
disclaimer in the documentation and/or other materials provided with the distribution.
Neither the name of Redis nor the names of its contributors may be used to endorse or promote products derived
from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
v
®
PrimeTime
PrimeTime® GCA User Guide
GCA User Guide L-2016.06
Version L-2016.06
2. Rule Checking
Rules and Violations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-2
Built-In Rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-2
Supported Constraints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-3
Reporting Constraint Acceptance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-5
Exception Order of Precedence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-5
Exception Type Priority . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-6
Path Specification Priority . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-6
Analyzing a Violation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-7
Suppressing Violations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-11
Overview of Violation Suppression Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-12
Disabling Rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-13
Waiving Specific Violations of a Rule. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-14
Using the create_waiver Command. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-16
Example 1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-16
Example 2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-16
Example 3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-16
Example 4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-17
Example 5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-17
Example 6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-18
Example 7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-19
Creating Instance-Level Waivers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-19
Usage Guidelines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-22
Modifying Waivers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-23
Reporting Waivers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-23
Removing Waivers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-24
Writing Waivers to a File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-25
Reporting Rule Violations With the report_constraint_analysis Command. . . . . . . . 2-25
Using Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-29
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-29
Setting, Listing, and Reporting Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-29
Attribute Groups. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-30
Using Arcs to Generate Custom Reports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-31
Contents vi
PrimeTime® GCA User Guide Version L-2016.06
Contents viii
PrimeTime® GCA User Guide Version L-2016.06
Appendix A. Tutorial
Overview of the PrimeTime GCA Tool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-2
Contents x
Preface
This preface includes the following sections:
• About This User Guide
• Customer Support
xi
®
PrimeTime
PrimeTime® GCA User Guide
GCA User Guide L-2016.06
Version L-2016.06
Audience
This document has been developed for designers who are
• Responsible for constraint development, analysis, or editing
• Familiar with the Synopsys tools, such as PrimeTime, that use the constraints being
debugged by PrimeTime GCA
Related Publications
For additional information about the PrimeTime GCA tool, see the documentation on the
®
Synopsys SolvNet online support site at the following address:
https://solvnet.synopsys.com/DocsOnWeb
You might also want to see the documentation for the following related Synopsys products:
®
• PrimeTime
®
• Design Compiler
• IC Compiler™
Release Notes
Information about new features, enhancements, changes, known limitations, and resolved
Synopsys Technical Action Requests (STARs) is available in the PrimeTime Suite Release
Notes on the SolvNet site.
To see the PrimeTime Suite Release Notes,
1. Go to the SolvNet Download Center located at the following address:
https://solvnet.synopsys.com/DownloadCenter
2. Select PrimeTime Suite, and then select a release in the list that appears.
Preface
About This User Guide xii
PrimeTime® GCA User Guide Version L-2016.06
Conventions
The following conventions are used in Synopsys documentation.
Convention Description
Customer Support
Customer support is available through SolvNet online customer support and through
contacting the Synopsys Technical Support Center.
Accessing SolvNet
The SolvNet site includes a knowledge base of technical articles and answers to frequently
asked questions about Synopsys tools. The SolvNet site also gives you access to a wide
range of Synopsys online services including software downloads, documentation, and
technical support.
To access the SolvNet site, go to the following address:
https://solvnet.synopsys.com
If prompted, enter your user name and password. If you do not have a Synopsys user name
and password, follow the instructions to sign up for an account.
If you need help using the SolvNet site, click HELP in the top-right menu bar.
Preface
Customer Support xiv
1
PrimeTime GCA Overview 1
The PrimeTime GCA tool is a tool for constraint analysis and debugging of full-chip or
block-level designs. Design analysis, based on rule checking, identifies many types of
potential constraint problems. This includes constraints that are missing, invalid,
unnecessary, inefficient, or conflicting. The PrimeTime GCA tool provides a very
comprehensive and intuitive graphical user interface (GUI) where further debugging can be
performed if needed. The individual violations in the design can be accessed through a
violation browser, which provides suggestions about how to identify the root cause of a
constraint problem and how to fix the problem.
This chapter describes the PrimeTime GCA startup in the following sections:
• Constraints in the Design Flow
• PrimeTime GCA Debugging Features
• Analysis and Debugging Methodology
• Starting a PrimeTime GCA Session
• Reading the Design
• Reading Designs With Incomplete or Mismatched Netlists
• Saving and Restoring Sessions
• Using the Shell Interface
• Using Threaded Multicore Analysis
1-1
®
PrimeTime
PrimeTime® GCA User Guide
GCA User Guide L-2016.06
Version L-2016.06
To get more detailed information about the source of a problem, additional commands are
available: analyze_paths, analyze_clock_networks, analyze_unclocked_pins, and
report_case_details. These commands can help you fix problems such as blocked
timing paths and missing clock definitions. The report_analysis_coverage,
report_exceptions, and compare_block_to_top commands can help you debug
multi-scenario constraints, multiple timing exceptions, and conflicting constraints in
hierarchical designs.
The steps in a typical PrimeTime GCA constraint analysis flow are as follows:
1. Start the PrimeTime GCA tool by entering gca_shell at a UNIX prompt.
See “Starting a Session” on page 1-6 for more information.
2. Read in your design using the following commands:
set_app_var search_path ...
set_app_var link_path ...
read_verilog ...
Diagnose problems:
Use detailed analysis commands to find the
source of the problems.
Modify constraints as needed.
Starting a Session
The PrimeTime GCA executable is called gca_shell. To start the tool, enter the following at
the operating system prompt:
% gca_shell
The PrimeTime GCA tool automatically checks out a license, starts the GUI, and displays
the initial message and the gca_shell prompt, similar to the following message.
PrimeTime (R) GCA
Version ... for RHEL64 -- ...
Copyright (c) 1988-2014 by Synopsys, Inc
ALL RIGHTS RESERVED
This program is proprietary and confidential ...
gca_shell>
If you need assistance, ask your system administrator or consult the installation and
licensing documentation.
To end a PrimeTime GCA session, enter the quit or exit command at the PrimeTime GCA
prompt:
gca_shell> exit
Maximum memory usage for this session: 0.72 MB
CPU usage for this session: 0 seconds
Diagnostics summary: 2 errors
Thank you for using gca_shell!
%
License
You need a PrimeTime GCA license to start gca_shell. The PrimeTime GCA tool
automatically checks out a license when you start the tool. When you exit the PrimeTime
GCA tool, the license is automatically checked in, allowing others at your site to use it. In
addition, the PrimeTime GCA tool requires that you have a PrimeTime license available on
the same server. The PrimeTime license is not checked out, but the license must be present
for the PrimeTime GCA tool to start.
Setup Files
Each time you start a PrimeTime GCA session, the tool runs the commands contained in a
set of setup files. You can put commands into a setup file to set variables, to specify the
design environment, and to select your preferred working options.
The name of each setup file is .synopsys_gca.setup. The tool checks for the presence of the
file in the following directories:
1. The Synopsys installation setup directory at admin/setup. For example, if the installation
directory is /usr/synopsys, the setup file name is
/usr/synopsys/admin/setup/.synopsys_gca.setup.
2. Your home directory.
3. The current working directory from which you started the tool.
If more than one of these directories contains a .synopsys_gca.setup file, the files are
executed in the order shown previously: first in the Synopsys setup directory, then in your
home directory, and finally in the current working directory. Typically, the file in the Synopsys
setup directory contains setup information for all users at your site; the one in your home
directory sets your personal preferred working configuration; and the one in your current
working directory sets the environment for the current project.
To suppress execution of any .synopsys_gca.setup files, use the -no_init option when you
start the tool.
You can set variables with the set_app_var command in the PrimeTime GCA tool. The
search_path variable specifies a list of directories from which to search the design and
library files so that you do not need to specify a full path each time you read in a file. The
link_path variable specifies where and in what order the PrimeTime GCA tool looks for
design files and library files for linking the design. For example:
gca_shell> set_app_var search_path ". /u/proj/design /u/proj/lib"
gca_shell> set_app_var link_path "* STDLIB.db"
The tool searches for design and library files in the current directory, then the “/u/proj/design”
directory, and lastly the “/u/proj/lib” directory. The "*" entry in the link path means to first
search through all designs loaded into memory for library elements.
To view the mismatches located while linking a design, use the report_design_mismatch
command. Example 1-1 shows a report example.
The platforms used for saving and restoring the session can be different but the version of
the tool must be the same.
You must specify a session directory name when you save or restore a session. For
example,
gca_shell> save_session my_session1A
...
gca_shell> restore_session my_session1A
Set the key bindings (default is emacs editing mode) -mode vi | emacs
If you enter the set_cle_options command without any options, the current settings are
displayed.
Examples
gca_shell> set_cle_options -mode emacs
Information: Command line editor mode is set to emacs
successfully. (CLE-01)
Key Action
Table 1-3 Result of Pressing the Tab Key Within Different Contexts (Continued)
• compare_constraints
• save_session
You control the number of cores the tool uses by setting the -max_cores option of the
set_host_options command. You can set this option to 1 if only a single core is expected
to be used. A number higher than 4 requires more then one license. For example, if the
-max_cores option is set from 5 and 8, two licenses are used.
In addition to the number of cores specified by the set_host_options command, the tool
gives a warning and limits the used cores to the physical number of cores available on the
server. For example, in a dual core server, threads are launched to use only the two
available cores.
2-1
®
PrimeTime
PrimeTime® GCA User Guide
GCA User Guide L-2016.06
Version L-2016.06
Built-In Rules
When you start the PrimeTime GCA tool, it automatically loads the set of built-in rules shown
in Table 2-1. These rules check your design for potential timing constraint and library-related
problems.
Table 2-1 Built-In Rules
HIER_xxxx – hierarchical
PRF_xxxx – performance
NTL_xxxx – netlists
See the PrimeTime GCA Online Help for detailed rule descriptions.
Supported Constraints
The PrimeTime GCA tool supports all constraints in SDC format and Tcl format.
For more detailed information about SDC, see the Using the Synopsys Design Constraints
Format Application Note.
For more detailed information about Tcl, see the Using Tcl With Synopsys Tools
documentation.
The PrimeTime GCA tool supports the source command to read in constraints in Tcl
scripting format. Example 2-1 shows a Tcl constraint script fragment. You need to use the
source command to load these constraints, as shown in Example 2-2.
Example 2-2 Using the Source Command to Load Tcl Scripted Constraints
set_app_var sh_continue_on_error true
set design_dir ./
create_scenario system
create_scenario test
current_scenario system
source constraints.tcl
...
The PrimeTime GCA tool supports the read_sdc command to read constraints in SDC
format.
The PrimeTime GCA tool supports multiple scenarios. To create constraints for each
scenario, first define the scenarios:
create_scenario system
create_scenario myscenario_1
create_scenario myscenario_2
You can use the script in Example 2-3 to apply both common and scenario-specific Tcl
constraints.
Example 2-3 Tcl Script for Loading Common and Unique Constraints
set all_scenarios “system myscenario_1 myscenario_2”
foreach scenario $all_scenarios {
create_scenario ${scenario}
source ./scripts/common.tcl
source ./scripts/${scenario}_constraints.tcl
}
Report : report_constraint_analysis
-include {statistics }
-style {full}
...
Date : ...
****************************************
Constraint Processing Statistics
The set_false_path command has priority over the set_max_delay command, so any
paths that begin at A and end at B are false paths. However, the set_max_delay command
still applies to paths that begin at A but do not end at B.
In case of conflicting exceptions for a particular path, the timing exception types have the
following order of priority, from highest to lowest:
1. set_false_path
2. set_max_delay and set_min_delay
3. set_multicycle_path
For example, if you declare a path to be false and also set its maximum delay to some value,
the false path declaration has priority. The maximum delay setting is ignored. You can list
ignored timing exceptions by using the report_exceptions -ignored command.
The first command sets the maximum delay of all paths starting from CLK1. However, the
second command is more specific, so it overrides the first command for paths starting at
CLK1 and ending at CLK2. The remaining paths starting from CLK1 are still controlled by the
first command.
The various -from and -to path specification methods have the following order of priority,
from highest to lowest:
1. -from pin, -rise_from pin, -fall_from pin
2. -to pin, -rise_to pin, -fall_to pin
3. -through, -rise_through, -fall_through
Use the preceding list to determine which of two conflicting timing exception commands has
priority (for example, two set_max_delay commands). Starting from the top of the list:
1. A command containing -from pin, -rise_from pin, or -fall_from pin has priority
over a command that does not contain -from pin, -rise_from pin, or -fall_from
pin .
2. A command containing -to pin, -rise_to pin, or -fall_to pin has priority over a
command that does not contain -to pin, -rise_to pin, or -fall_to pin . And, so on
down the list until the priority is resolved.
Here are some possible path specification combinations, listed in order of priority from
highest to lowest, according to the preceding priority rules:
1. -from pin -to pin
2. -from pin -to clock
3. -from pin
4. -from clock -to pin
5. -to pin
6. -from clock -to clock
7. -from clock
8. -to clock
Analyzing a Violation
You can debug constraint problems by using the GUI. In the violation browser window,
select the violation you want to analyze, and view the details of the violation that are shown
in the information pane. Figure 2-1 and Figure 2-2 show the violation tree and the violation
details in the information pane.
Figure 2-1 Debugging Example - Violation Browser Provides Access to Violation Details
Figure 2-2 labels the various hyperlinks that you can click to access the SDC file and the
relevant exception or command.
Figure 2-3 shows the relevant schematic area of the problem constraint. The schematic is
accessed from the schematic link in the information pane.
Figure 2-3 Schematic Viewer Shows Violation Circuit Path
To help debug constraint problems, you can view clock and case annotations in the
schematic view using the Pin annotation list, as shown in Figure 2-4. The information related
to a violation is displayed by default.
Figure 2-4 Schematic Viewer With Full Violation Context
The Pin annotation list is expanded to provide a visualization of any of the annotations in the
schematic, as shown in Figure 2-5.
Figure 2-5 Schematic Viewer With Complete Pin Annotation List
If further debugging is required, use the Debugging Help link, the Fix Suggestion link, or
investigate the constraint in the SDC file by selecting the source file link in the Violation
Details section of the information pane. In addition to those sources of help, you can consult
the rule reference for this violation in the online Help.
Suppressing Violations
The PrimeTime GCA tool allows you to suppress rule violations. You can either disable a
rule completely or suppress a specific instance of a rule violation, also known as waiving a
violation. For example, you might not want the PrimeTime GCA tool to check if your design
violates the capacitance-related rules; in this case you would disable the CAP_xxxx rules.
As another example, you might want the PrimeTime GCA tool to analyze your design for
capacitance rule violations on all but one output port; in this case you would waive violations
of the CAP_xxxx rules on the specific output port.
The PrimeTime GCA tool includes commands for creating, reporting, removing, and writing
out waivers. The GUI allows you to easily create and remove waivers.
Violation suppression is discussed in the following sections:
• Overview of Violation Suppression Flow
• Disabling Rules
• Waiving Specific Violations of a Rule
• Using the create_waiver Command
• Creating Instance-Level Waivers
• Usage Guidelines
• Modifying Waivers
• Reporting Waivers
• Removing Waivers
• Writing Waivers to a File
As shown in Figure 2-6, you can suppress violations either before or after running the
analyze_design command. If you suppress a violation after an analysis, the violation
browser shows the violation marked it with a special icon to indicate that it has been
suppressed. If you suppress a violation before analysis, a rule that has been disabled
completely is omitted entirely from the report, whereas a rule violation that has been waived
for certain instances is still reported, but shown with the special icon.
If a violation is already listed in the violation browser, its status is immediately updated when
you waive it. This allows you to see the impact of the violation suppression on the current
set of violations. The next time you run the analyze_design command, the suppressed
violations are listed with a special icon in the violation browser.
Disabling Rules
If you do not want the PrimeTime GCA tool to check for violations of a rule, you can disable
the rule by using the violation browser, the Waiver Configuration dialog box, or the
disable_rule command.
For information about disabling rules and reporting disabled rules, see “Suppressing
Violations” on page 2-11 and “Reporting Waivers” on page 2-23.
Figure 2-7 Waiver Configuration Dialog Box
To waive a specific violation of a rule with the Waiver Configuration dialog box,
1. Choose Design > Waiver Configuration.
The Waiver Configuration dialog box appears.
2. Click “Create waiver.”
The Edit Waiver dialog box appears. Figure 2-9 shows the editor window.
3. Enter the waiver specification.
To disable a specific violation of a rule using the create_waiver command, see the “Using
the create_waiver Command” on page 2-16.
Figure 2-9 Edit Waiver Dialog Box
For more information about disabling rules, see “Suppressing Violations” on page 2-11.
When you set the hide_waived_violations variable to false, the Hide Waived Violations
command is toggled on the View menu, as shown in Figure 2-10.
Figure 2-10 Hide Waived Violations
The argument to the -condition or -not_condition option must be a list consisting of two
items: the name of the rule parameter, and a collection of netlist objects or constraints. To
create the collection, you need to use a syntax such as [get_clocks CLK].
When working with multiple designs, use the -design and -scenario options to assign
waivers to specific designs. See the waivers in the following examples:
Example 1
Waiver using the -condition option
To waive violations of the CLK_0026 rule on clocks that start with CLK, use the following
command:
gca_shell> create_waiver -rule CLK_0026 -condition [list "clock" \
[get_clocks CLK*]]
Example 2
Waiver using the -not_condition option
To waive violations of the CLK_0026 rule on all clocks except CLK3, use the following
command:
gca_shell> create_waiver -rule CLK_0026 \
-not_condition [list "clock" [get_clocks CLK3]]
Example 3
Waiver using multiple parameters
The CLK_0003 rule checks multiple parameters: a clock and a pin.
Figure 2-11 Multiple Parameters
To create a waiver for this rule, you can specify conditions for both the clock and the pin. For
example, to waive CLK_0003 violations if the clock is CLK1 or CLK2 and the source pin is
not U1/A and not U1/B, use the following command:
gca_shell> create_waiver -rule CLK_0003 \
-condition [list "clock" [get_clocks {CLK1 CLK2}] \
-not_condition [list "pin" [get_pins U1/A] [get_pins U1/B]]
Example 4
Multiple waivers of the same rule
To waive violations of the CLK_0003 rule if the clock is CLK1 and the source pin is U1/A or
the clock is CLK2 and the source pin is U1/B, you need to create two separate waivers, as
shown in the following example:
gca_shell> create_waiver -rule CLK_0003 \
-condition [list "clock" [get_clocks CLK1]] \
-condition [list "pin" [get_pins U1/A]] \
gca_shell> create_waiver -rule CLK_0003 \
-condition [list "clock" [get_clocks CLK2]] \
-condition [list "pin" [get_pins U1/B]]
Example 5
Waiver using an exception parameter
To waive violations of the EXC_0001 rule with an exception specified from U1/A to U2/Z and
the rise_or_fall parameter set to rise, use the following command:
gca_shell> create_waiver -rule EXC_0001 \
-condition [list "exception" [get_exceptions -from U1/A -to U2/Z]] \
-condition [list "rise_or_fall" "rise"]
If the rule on which the waiver is applied is scenario-dependent, the waiver is added to
current scenario. If the rule is scenario-independent, the waiver applies to
scenario-independent checks.
Netlist objects are interpreted with respect to the current instance. For example, the
following two sets of commands produce equivalent waivers:
current_instance U1
gca_shell> create_waiver -name "my_waiver4" -rule CAS_0003 \
-condition [list "pin" [get_pins U2/U3/A]]
current_instance U1/U2
gca_shell> create_waiver -name "my_waiver4" -rule CAS_0003 \
-condition [list "pin" [get_pins U3/A]]
The waiver suppresses violations based on violation parameters that you specify in the
waiver conditions. Parameter names can be retrieved using the
report_rule -parameters rule_name command.
For example, to report the parameters available for the CLK_0026 rule, run the following
command:
gca_shell> report_rule -parameters CLK_0026
****************************************
Report : rule
Version: ...
Date : ...
****************************************
CLK_0026 parameters:
Name Value Types
----------------------------------------
clock clock
Example 6
Creating a waiver for a Block-to-Top (B2T) rule
When you create a waiver for a Block-to-Top rule, you work with two contexts: the TOP
design and the BLOCK design. In the condition statement, before you can retrieve an object,
you have to define from which context to retrieve. Depending on the violation you are
waiving, you might also need to define the parameters in your violation such as
“top_object_type” and “block_object_type.” The parameters are listed in the B2T rules which
are described in the online Help. The waiver needs to apply to a particular design and
scenario pair and an instance of the block.
gca_shell> create_waiver -rule B2T_CLK_0012 \
-condition [list "blk_object" [current_design BLOCK ;
get_pins zGateA]] \
-condition [list "blk_object_type" "pin"] \
-condition [list "top_object" [current_design TOP ; get_pins
gca_shell> b1/zGate/A]] \
-condition[list "top_object_type" "pin"] \
-design1 TOP \
-scenario1 default \
-design2 BLOCK \
-scenario2 default \
-inst2 b1
Example 7
Creating a waiver for an SDC-to-SDC rule
When you create a waiver for an SDC-to-SDC rule, you work with two contexts: the first SDC
definition and the second SDC definition. In the condition statement, before you can retrieve
an object, you have to define from which context to retrieve. You also need to define the
parameters in your violation. The parameters are described in the SDC-to-SDC rules which
are available in the online Help. The waiver needs to apply to a particular design and
scenario pair.
gca_shell> create_waiver -rule S2S_DIS_0001 \
-condition [list "object" [current_design S2S_CLK_0001 ; get_pins
ck2_i2/]] \
-condition [list "object_type" "pin"] \
-condition [list "scenario1" "set2"] \
-condition [list "scenario2" "set1"] \
-design1 zDesign \
-scenario1 set1 \
-design2 zDesign \
-scenario2 set2
You can waive rules for specific cells or design instances by using the GUI or the command
line. All related waiver commands, such as remove_waiver, write_waiver, and
report_waiver support this feature.
You can create an instance-level waiver from the hierarchy browser or from the Waiver
Configuration dialog box.
To create an instance-level waiver from the GUI from the Waiver Configuration dialog box,
1. Open the Waiver Configuration dialog box.
Choose Design > Waiver Configuration.
Figure 2-15 Creating an Instance Waiver From the Edit Waiver Dialog Box
To create an instance-level waiver from the command line, use the -cells option with the
create_waiver command, as shown in Example 2-5.
In Example 2-5, my_waiver_1 is applied to cell U1/U1 and my_waiver_2 is applied to cells
U1/U2 and U1/U3.
Example 2-5 Waiving Rules for Cells
gca_shell> create_waiver -name my_waiver_1 -cells [get_cell U1/U1]
gca_shell> create_waiver -name my_waiver_2 -cells [get_cell {U1/U2 U1/U3}]
gca_shell> report_waiver
****************************************
Report : report_waiver
Version: ...
Date : ...
****************************************
Name Rule Scenario Condition Comment
--------------------------------------------------------------------------------------
my_waiver_1 -cells {U1/U1} waived by Jane on ...
my_waiver_2 -cells {U1/U2 U1/U3} waived by Jane on ...
Usage Guidelines
When you create an instance-level waiver, the tool applies it to the current scenario. To
apply it across all scenarios of a design, use the -all_scenarios option.
Because an instance-level waiver is based on leaf cells or the netlist objects contained in an
instance, a violation is waived only if the objects related to the violation are entirely
contained within the specified cell or instance. Therefore, some general rules cannot be
waived with this type of waiver. Custom rules cannot be waived with instance-level waivers.
Modifying Waivers
Use the following procedure to modify an existing waiver:
1. Open the Waiver Configuration dialog box (choose Design > Waiver Configuration).
2. Double-click the waiver you want to modify.
This opens the Edit Waiver dialog box. The various fields are set to match the waiver you
have selected.
3. Make any modifications.
4. Click the Create button.
A message asks you to confirm that you want to replace the existing waiver.
5. Click OK. Your waiver is modified.
Reporting Waivers
To report violation waivers, use the report_waiver command. By default, the
report_waiver command reports all the waivers for each design in the session.
Use the -design option to report waivers for specific designs. Example 2-6 shows the
waivers reported for the TOP and HALF_ADDER designs.
Example 2-6 The report_waiver Output
gca_shell> report_waiver -design TOP HALF_ADDER
****************************************
Report : report_waiver
Version: ...
Date : ...
****************************************
Name Rule Scenario Condition Comment
------------------------------------------------------------------------------
Design: TOP
To report only the waivers for a specific rule, use the -rules option, for example
gca_shell> report_waiver -rules CAP_0001
Removing Waivers
To remove waivers, use the violation browser, the Waiver Configuration dialog box, or the
remove_waiver command. Select the waiver and click “Remove waiver” as shown in
Figure 2-16.
To remove a waiver using the violation browser,
1. Right-click the waiver you want to remove.
2. Choose Undo created waiver.
To remove a waiver using the Waiver Configuration dialog box,
1. Choose Design > Waiver Configuration.
The Waiver Configuration dialog box appears, as shown in Figure 2-16.
2. Select the waiver you want to remove.
The rule is not checked or reported the next time you run the analyze_design
command.
3. Choose Remove waiver.
See “Suppressing Violations” on page 2-11 and the create_waiver, report_waiver, and
remove_waiver man pages for more information about using waivers.
Figure 2-16 Removing a Waiver With the Waiver Configuration Dialog Box
When waivers are written to the waiver file, full paths of netlist objects are used, even if the
original waiver specified an object name relative to the current instance.
Although the output of the write_waiver command is an accurate description of the active
set of waivers, the waiver file might not be as readable as the original create_waiver
commands. Also, the waiver output file can be large, particularly if you used wildcards in
your original create_waiver commands.
You can tailor the output of the report_constraint_analysis command by using the
-rules or -rule_types options. Using these options eliminates extraneous information
from the report.
The report can be customized by using the -format option to generate the report in either
a comma-separated values (CSV) file or a plain text file. The CSV format is useful for adding
the report data to spreadsheets for data analysis.
Example 2-8 shows the report_constraint_analysis command results based on the
script in Example 2-9.
Example 2-8 Analysis Report for Multiple Designs
gca_shell> report_constraint_analysis -include violations -style full
****************************************
Report : report_constraint_analysis
-include {violations }
-style {full}
Version: ...
Date : ...
****************************************
Design: HALF_ADDER
<Global Violations> 1 0 Scenario independent violations
error 1 0
UNT_0002 1 0 Library 'library' has incomplete units defined.
1 of 1 0 Library ...
default 12 0 Default scenario violations
error 4 0
Design: TOP
<Global Violations> 1 0 Scenario independent violations
error 1 0
UNT_0002 1 0 Library 'library' has incomplete units defined.
1 of 1 0 Library...
scn1 33 0 User-defined scenario violations
error 18 0
CAP_0001 10 0 Output/inout port 'port' has zero or ...
1 of 10 0 Output/inout port 'PLUS1' has zero ...
2 of 10 0 Output/inout port 'PLUS2' has zero ...
EXD_0012 8 0 The input delay at 'object_type' 'object' has
zero window
for min and max values.
CLK_0021 1 0 Clock 'clock' is not used in this scenario.
1 of 1 0 Clock 'TOP_VCLK2' is not used in this scenario.
...
scn2/new 2 0
U1/U1/U2 2 0 Block Instance
error 2 0
B2T_CAS_0001 2 0 Pin 'top_pin' in top instance has case value
that is missing in block design
...
------------------------------------------------------------------------------
Total Error Messages 89 0
Total Warning Messages 61 0
Total Info Messages 1 0
Report : report_constraint_analysis
Example 2-9 Script for Running Basic Constraint Analysis and Block-to-Top Constraint Analysis
on Multiple Designs
link_design TOP
link_design -add HALF_ADDER
link_design -add FULL_ADDER
current_design TOP
create_scenario scn1
create_clock -period 10 -name TOP_VCLK
create_clock -period 10 -name TOP_VCLK2
set_input_delay 2 -clock TOP_VCLK [all_inputs]
set_output_delay 2 -clock TOP_VCLK [all_outputs]
create_scenario scn2
create_clock -period 20 -name TOP_VCLK
set_input_delay 3 -clock TOP_VCLK [all_inputs]
set_output_delay 3 -clock TOP_VCLK [all_outputs]
analyze_design -scenarios "scn1 scn2"
current_design HALF_ADDER
create_scenario new
create_clock -period 20 -name HA_VCLK
set_input_delay 2 -clock HA_VCLK [all_inputs]
set_output_delay 2 -clock HA_VCLK [all_outputs]
analyze_design
Using Attributes
The following sections describe attributes and how to use them:
• Overview
• Setting, Listing, and Reporting Attributes
• Attribute Groups
• Using Arcs to Generate Custom Reports
• Creating a Collection of Library Timing Arcs
Overview
An attribute is a string or value associated with an object in the design that carries some
information about that object. For example, the number_of_pins attribute attached to a cell
indicates the number of pins in the cell. You can write programs in Tcl to get attribute
information from the design database.
Commands Description
list_attributes Shows the attributes defined for each object class or a specified object class;
optionally shows application attributes.
report_attribute Displays the value of all attributes on one or more objects; optionally shows
application attributes.
Attribute Groups
The PrimeTime GCA tool supports the attribute groups listed in Table 2-3. The properties
attached to each attribute group are described in the PrimeTime GCA Online Help.
To see a list of all attributes available for a class of objects, use the
list_attributes -application command. For example, to see the attributes associated
with the net class of attributes, use the following command:
gca_shell> list_attributes -application -class net
To disable a rule, use the disable_rule command. Example 2-13 disables the DES_0001
and EXC_0002 rules.
Example 2-13 Disabling the DES_0001 and EXC_0002 Rules
gca_shell> disable_rule [list DES_0001 EXC_0002]
Some of the rules are disabled by default because they inherently conflict with the enabled
rules. For example, pre-layout rules are different from post-layout rules and can cause
conflicts. Other rules are disabled by default because they are runtime intensive.
Modifying Rules
The PrimeTime GCA tool enables you to customize any part of a rule. You can customize
the message, the description, or the severity by using the set_rule_message,
set_rule_description, and set_rule_severity commands.
For example, to change the severity of rule DES_0001 from warning level to error level, use
the set_rule_severity command, as shown in Example 2-14.
Example 2-14 Changing the Rule Severity
gca_shell> set_rule_severity error [get_rules DES_0001]
• postlayout
• prelayout
• primetime_si
• hierarchical
To determine the rules in the rule sets, use the report_rule command, as shown in
Example 2-16.
Example 2-16 Report the Rules in the primetime_si Rule Set
gca_shell> report_rules [get_rulesets primetime_si]
To analyze your design using only the built-in primetime_si rule set, use the
analyze_design command with the -rules primetime_si option, as shown in
Example 2-17.
Example 2-17 Analyze the Design Using Only the primetime_si Rule Set
gca_shell> analyze_design –rules primetime_si
In addition to built-in rule sets, the PrimeTime GCA tool supports user-created rule sets with
the create_ruleset command. This feature helps you debug issues specific to your
design. For example, if you only need to analyze your design for two rules, such as
DES_0001 and DES_0003, you would create a rule set containing only DES_0001 and
DES_0003, as shown in Example 2-18.
Example 2-18 Create a Rule Set Containing DES_0001 and DES_0003 Rules
## Create a ruleset targeting 2 rules only
gca_shell> create_ruleset –name my_ruleset [list DES_0001 DES_0003]
To analyze your design with the user-defined rule set, my_ruleset, use the analyze_design
command with the -rules my_ruleset option, as shown in Example 2-19.
Example 2-19 Analyze the Design Using a Rule Set
gca_shell> analyze_design –rules my_ruleset ...
To create a rule set containing only EXC type rules, use the create_ruleset command, as
shown in Example 2-20.
Example 2-20 Create a Rule Set for EXC Rules
gca_shell> create_ruleset –name myExcRuleset [get_rules EXC*]
To create a rule set containing all built-in rules without the EXD rules, use the
create_ruleset command, as shown in Example 2-21.
You can also report the value of the attributes associated with the violation object. In the
following example, the value of the message attribute for the first rule violation in a collection
of rule violations is reported:
gca_shell> get_attribute [index_collection [get_rule_violations \
-of_objects CLK_0020] 0] message
Generated clock 'Gen_CLK' has edge relationships with its master clock
'MCLK' that cannot be satisfied. Only paths with 'negative' sense exist
from the master clock to source pin 'buf1/Z'. A 'positive' sense is
expected.
The get_violation_info command allows you to query the value of a rule parameter for
a violation or the value of a violation details attribute (if applicable) for a rule violation.
To determine if a rule has violation_details attributes that can be queried with the
get_violation_info command, query the violation_details attribute for that rule
using the get_attribute command. For example,
gca_shell> get_attribute [get_rule B2T_CLK_0001] violation_details \
top_missing_at_pin
You can also query the object_class of the attributes associated with the violation details
of a rule. Each violation details object has all of the attributes for the object class it belongs
to. For example,
gca_shell> set top_clk_pins [get_violation_info \
-attribute top_missing_at_pins [index_collection \
[get_rule_violations -of_objects [get_rule B2T_CLK_0001]] 0]]
{"u7/ff1/CP", "u7/ff2/CP"}
gca_shell> foreach_in_collection pin $top_clk_pins { \
query_object -verbose $pin
}
{"pin:u7/ff1/CP"}
{"pin:u7/ff2/CP"}
gca_shell> get_attribute [get_pins u7/ff1/CP] clocks
{"clk2"}
gca_shell> get_attribute [get_pins u7/ff2/CP] clocks
{"clk2"}
The first rule violation for the B2T_CLK_0001 rule has two pins at the top level for which the
clk2 clock is reaching the register at the top level.
When this hyperlink is selected, the SDC browser opens the constraints.sdc file and points
to line 12.
Your Tcl code tests your design for the presence of an unwanted condition. When the
condition occurs, the Tcl code calls the create_rule_violation command, which reports
a violation to the PrimeTime GCA tool.
A single Tcl procedure can create violations for multiple rules; you do not need a separate
procedure for each rule. This allows you to create efficient Tcl code because collections of
objects can be shared between rules.
If a large collection is used multiple times in a Tcl procedure, such as [get_nets -hier *],
it is more efficient to create this collection only one time and store the result in a variable.
The Tcl procedures in Example 2-22 check that no output delay exists on a hierarchical pin.
If any hierarchical pin has an output delay, the PrimeTime GCA tool reports a violation of a
rule named UDEF_0001.
Example 2-22 Creating the Rule-Checking Procedure
proc get_details_for_output_delays {output_delays} {
set text "<b>Relative Clocks</b><ul>"
foreach_in_collection out_del $output_delays {
append text "<li>" [get_attribute $out_del clock_name]
}
append text "</ul>"
return $text
}
proc UDEF_0001 {} {
set hier_cells [get_cells * -filter "is_hierarchical==true"]
set hier_pins [get_pins -of_objects $hier_cells]
foreach_in_collection pin $hier_pins {
set output_delays [get_output_delays -of_objects $pin -quiet]
if {[sizeof_collection $output_delays] > 0} {
set pin_name [get_attribute $pin full_name]
create_rule_violation -rule UDEF_0001 -parameter_values $pin_name \
-details [get_details_for_output_delays $output_delays]
}
}
}
The create_rule_violation command reports a violation for the rule specified with the
-rule option. You can use the -parameter_values option to pass parameters to the
message that is displayed when a rule violation occurs. Parameters are passed by position.
The order of the parameters needs to match the order in which they are declared with the
create_rule command.
Extra text can be passed to any violation by using the -details option. The text appears in
the Violation Details section. The GUI can display HTML formatting; you can use HTML tags
to format the text. Example 2-25 on page 2-40 shows an example of a user-defined rule.
This command registers the new rule with the PrimeTime GCA tool, specifies parameters
such as the severity of the violation, and identifies the name of the Tcl procedure that checks
for the violation.
Each rule must have a unique name. You must start your rule name with “UDEF_” to avoid
conflict with the built-in rule names. The severity can be adjusted with the -severity option;
legal values are info, warning, error, and fatal.
A rule also needs to have a message. The message is displayed whenever a violation
occurs. The message field is composed of fields of fixed text and optional parameters that
are defined with the -parameters option. The parameters are passed to the message from
the create_rule_violation command. The parameters are inserted between the
message strings in the order they have been defined.
For example, to report the name of the clock and number of clock sources causing a
violation, you could use the following parameter definition:
gca_shell> create_rule -name UDEF_0001 -severity warning \
-message {"The clock " " has " "source(s) on inout ports."} \
-parameters {"clock" "count"} \
-description "Clock defined on an inout port" \
-checker_proc clk_inout_checker
Use the -checker_proc option to name the Tcl procedure that performs the check. The
procedure that you specify with this option needs to exist before you run the create_rule
command.
Use the following guidelines to define when to run user-defined rules:
• Global rules – This type of rule depends on the structure of the design or libraries. It is
not related to the timing constraints. This type of rule is run only one time for the whole
design. To define a global rule, use the -global switch.
• Scenario-related rules – This type of rule depends on the current set of constraints
applied to the design. It is run one time for each scenario.
A Tcl checking procedure can define several custom rules. However, all the rules in a Tcl
procedure must be the same type, either global or scenario. The first rule declared in the
checker code sets the type, global or scenario. Subsequent rules defined in the same
checker code must be the same type.
Example 2-24 Messages Produced by the analyze_design Command for a User-Defined Rule
gca_shell> analyze_design
Information: Checking scenario 'scen1': Starting rule checks (ADES-002)
Information: Checking scenario 'scen1': Starting user-defined rule checks
(ADES-002)
Information: Running user-defined checker : UDEF_Rule_6. (ADES-021)
Information: Running user-defined checker : check_UDEF_CLK_0026.
(ADES-021)
Information: Running user-defined checker : check_UDEF_SID_SOD_virtual.
(ADES-021)
Information: Checking netlist: Starting scenario-independent rule checks.
(ADES-003)
proc getHTMLExampleRule_6 {} {
proc UDEF_Rule_6 {} {
global latencyData
## I am going to reuse this variable to simplify the scripting below
set sourceLatAttrList [list \
clock_source_latency_early_fall_min \
clock_source_latency_early_fall_max \
clock_source_latency_early_rise_min \
clock_source_latency_early_rise_max \
clock_source_latency_late_fall_min \
clock_source_latency_late_fall_max \
clock_source_latency_late_rise_min \
clock_source_latency_late_rise_max \
]
## Start from all the clocks and only keep the virtual ones.
set zVirtualClocks [filter_collection [all_clocks] -regexp { undefined(sources) }]
}
}
Rule-Related Commands
The rule-related commands include:
• get_rule_property
This command returns the property of a single rule.
• get_rules
This command creates a collection of rules.
• get_rulesets
This command creates a collection of rule sets.
• remove_ruleset
This command removes specified user-defined rule sets. Built-in rule sets cannot be
removed.
• report_rules
This command reports detailed rule information.
• set_rule_property
This command enables you to set rule properties.
3-1
®
PrimeTime
PrimeTime® GCA User Guide
GCA User Guide L-2016.06
Version L-2016.06
The analyze_paths command identifies pins involved in specified paths and ranks the
information based on the number of timing paths affected by various constraints.
If the GUI is open and you use the -path_type full argument, the analyze_paths
command generates both a text report and a schematic showing the paths that satisfy the
specifications you provide as arguments to the command. An example of a schematic is
shown in Figure 3-1.
Figure 3-1 Paths Identified by the analyze_paths Command
You can use the -max_endpoints option to specify the maximum number of paths displayed
in the schematic.
If the GUI is not open or you use the -text_only option, the analyze_paths command
generates only a text report. Examples of text reports are shown in the remainder of this
section.
10 Tranx/U920/A
11 Tranx/U920/Z
12 Tranx/pay_count__reg[1]/D End
1
Exception Information:
M0 multicycle_path (run.ztcl, line 27)
F1 false_path (run.ztcl, line 28)
Exception Information:
M0 multicycle_path (run.ztcl, line 27)
F1 false_path (run.ztcl, line 28)
1
Example 3-5 Report for analyze_paths Command With the -traverse_disabled Option
gca_shell> analyze_paths -to Tranx/CRC_tranx/pay_out_reg/D -path_type full \
-traverse_disabled
****************************************
Report : analyze_paths
Design : b_top
Version: . . .
Date : . . .
****************************************
Summary of Paths:
Path Clocks
Startpoint Endpoint Constraints Count Launch/Capture
-------------------------------------------------------------------------------------
enable Tranx/CRC_tranx/pay_out_reg/D 2
sysclk/(2 clocks)
enable Tranx/CRC_tranx/pay_out_reg/D D0 2
sysclk/(2 clocks)
Tranx/CRC_tranx/crc_out_reg/CPN Tranx/CRC_tranx/pay_out_reg/D F1 2 (2 clocks)/
(2 clocks)
Tranx/CRC_tranx/pay_in2_reg/CPN Tranx/CRC_tranx/pay_out_reg/D M0 2 (2 clocks)/
(2 clocks)
Exception Information:
M0 multicycle_path (run.ztcl, line 27)
F1 false_path (run.ztcl, line 28)
Use the -verbose option to print out clock pins that are unclocked, case-disabled, and
register-disabled. This option reports detailed lists of unclocked pins. From the output report,
you can see register clock pins that do not have clock signals, and clock pins that have
sequential checks disabled for various reasons. These are helpful for further analysis.
In addition to using the analyze_unclocked_pins command to help debug clock constraint
problems, you can turn clock and case annotation on and off in the Schematic View using
the Pin annotation drop-down menu. See “Analyzing a Violation” on page 2-7 for more
information.
Summary
-----------------------------------------------------------------
Register Clock Pin Status Number of Pins
-----------------------------------------------------------------
Clocked 148
Unclocked 67
Case disabled clock pin 0
Register behavior disabled 0
-----------------------------------------------------------------
Total register clock pins 215
clk_adder/Z
- fans out to 1 unclocked pins
In fanin of clk_adder_div2/CP
clk_adder_div2/Q
- fans out to 50 unclocked pins
In fanin of u1/ain_tmp_reg[15]/CP
...
Clocks are blocked from register clock pins at the following locations:
Number
Clock Blocking Pin unclocked Reason
--------------------------------------------------------------------------------
mclk clk_8x8/Z 16 constraint forced
startpoint on interior pin
aclk clk_adder/Z 1 set_disable_timing
Design : b_top
. . .
****************************************
Key for clock sense abbreviations:
P = positive
N = negative
Potential senses detected with -traverse_disabled:
[P] = potential positive
Branch 0:
Branch
Level Info Sense Notes Port/Pin
--------------------------------------------------------------------------------
0 P source clk
1 P Tranx/U1775/A
2 P Tranx/U1775/Z
3 P Tranx/U1772/A
4 N Tranx/U1772/Z
5 N Tranx/U1771/A
6 N Tranx/U1771/Z
7 N Tranx/U1417/A
8 P Tranx/U1417/Z
9 P Tranx/U0/U1154/A
10 P Tranx/U0/U1154/Z
11 P Tranx/U0/U1139/A
12 P Tranx/U0/U1139/Z
13 P Tranx/U0/U1121/A
14 [P] DT#0 Tranx/U0/U1121/Z
15 [P] R Tranx/U0/o_lfsr1_reg[11]/CP
Example 3-8 Output Report With Generated Clock Path for the analyze_clock_networks
Command
****************************************
Report : analyze_clock_networks
-max_endpoints=1000
-style full_expanded
-end_types {register port clock_source }
-traverse_disabled
Design : b_top
Version: . . .
Date : . . .
****************************************
Key for clock sense abbreviations:
P = positive
R = rise_triggered
N,R = negative, rise_triggered
Branch 0:
Branch
Level Info Sense Notes Port/Pin
--------------------------------------------------------------------------------
0 P source clk
1 P Recx/U207/A
2 S1 P Recx/U207/Z
3 P Recx/CRC2/U69/A
4 P Recx/CRC2/U69/Z
5 P CG Recx/CRC2/clk_and/A
6 E1 N,R CS Recx/CRC2/clk_and/Z
values and logic constant values throughout your design. It can show how case values and
logic constants propagate to or from specified pins and ports.
In addition to using the report_case_details command to help debug case propagation
problems, you can turn clock and case annotation on and off in the Schematic View using
the Pin annotation drop-down menu. See “Analyzing a Violation” on page 2-7 for more
information.
If the GUI is open, the report_case_details command generates both a text report and a
schematic showing a cone of logic with propagated values annotated on the cells, as shown
in Figure 3-2.
Figure 3-2 Schematic Showing Case Propagation
The -sources option lists the ports and pins where case values or logic constants have
been set and propagated to the list of ports and pins being examined. If you run the
command with the -sources option and without a -from or -to option, a schematic is not
generated because the cone of logic related to the propagated value is not reported. You
can specify the maximum number of gates to be displayed in the schematic with the
-max_objects option; if the logic cone is larger than this value, no schematic is generated.
If the GUI is not open or you use the -text_only option, the report_case_details
command generates only a text report. An example of a text report is shown in Example 3-9.
Example 3-9 Text Report Generated by the report_case_details Command
gca_shell> report_case_details -to Tranx/my_fec_encoder/curr_state_reg[1]/D
****************************************
Report : case_details
Design : b_top
Version: . . .
Date : . . .
****************************************
Properties Value Pin/Port
------------------------------------------------------------------------------
from user case 0 Tranx/my_fec_encoder/curr_state_reg[1]/D
Path number: 2
Path Ref # Value Properties Pin/Port
------------------------------------------------------------------------------
1 Tranx/my_fec_encoder/U37/B
1 F()=A ! B ! C ! D ! + + +
Tranx/my_fec_encoder/U36/Z
0 Tranx/my_fec_encoder/U36/D
0 F()=A B C & & Tranx/my_fec_encoder/U50/Z
0 Tranx/my_fec_encoder/U50/C
0 F()=A ! Tranx/U1146/Z
1 Tranx/U1146/A
1 F()=A Tranx/U1122/Z
1 Tranx/U1122/A
1 F()=A ! B ! C ! + + Tranx/U1215/Z
0 Tranx/U1215/B
0 F()=A ! Tranx/U1213/Z
1 Tranx/U1213/A
1 F()=A ! B ! + Tranx/U1212/Z
0 Tranx/U1212/B
0 F()=A ! B ! & Tranx/U1211/Z
1 Tranx/U1211/A
1 F()=A Tranx/U151/Z
1 Tranx/U151/A
1 F()=A Tranx/U1103/Z
1 Tranx/U1103/A
1 user case rst
Path number: 3
Path Ref # Value Properties Pin/Port
------------------------------------------------------------------------------
1 Tranx/my_fec_encoder/U37/D
1 F()=A ! B ! + Tranx/my_fec_encoder/U49/Z
0 user case Tranx/my_fec_encoder/U49/B
• max_skew
• min_pulse_width
• min_period
• recovery
• removal
The PrimeTime GCA tool generates a text report with the percentage and number of checks
tested and untested.
Example 3-10 shows a PrimeTime GCA summary report. After you identify some potential
problems in the constraint coverage, the PrimeTime GCA tool can provide more detailed
information for specific checks, as shown in the next section.
Example 3-11 shows the PrimeTime GCA output, which provides a detailed list of all
untested output setup and output hold checks along with a possible reason for this state.
Example 3-11 Detailed Output for the report_analysis_coverage Command
****************************************
Report : analysis_coverage
-status_details {untested}
-check_type {out_hold out_setup}
Design : zDesign
. . .
****************************************
After the PrimeTime GCA tool points out a potential untested reason, you can use the
PrimeTime GCA debugging commands to find out more specific information about the
source of the untested check. For example, if you want to know why “zOut9” is untested, run
the following command:
gca_shell> report_case_details -to [get_ports zOut9]
In Example 3-12, you can see that the output is constant because of the TIE cell
“zDesign_top_i0/top_tieoff_i0/U42”.
The detailed reports in multi-scenario analysis show the modes where a particular check is
tested. To obtain these details, run
gca_shell> report_analysis_coverage -check_type out_hold \
-style verbose -status_details tested
In the “Untested Reasons” column, the “t” stands for tested. As a consequence, you can see
that zOut1 is tested in scan mode, whereas zOut2 and zOut3 are tested in functional mode.
After you load the various constraints for each scenario into your design, use the
report_exceptions command to analyze and report the status of your constraints. In
addition to reporting various types of exceptions, the tool can analyze your design for
redundant and dominant exceptions. This capability helps you minimize your constraints.
For example, run the report_exceptions -ignored command. The PrimeTime GCA tool
analyzes your design and returns a list of exceptions that have no effect on the design and
could be safely removed from the constraint sets. When you run the
report_exceptions -dominant command, the tool returns a list of exceptions that do
affect timing.
With the PrimeTime GCA tool, you can identify incorrect, incomplete, and unnecessary
constraints as follows:
• Most incorrect constraints are flagged with one of the many built-in rules checked by the
analyze_design command in the PrimeTime GCA tool.
• Incomplete constraints can be identified through either the built-in rules or the analysis
coverage capability provided by the report_analysis_coverage command. See
“Analysis Coverage Overview” on page 3-15 for more information.
• Unnecessary constraints are reported by the report_exceptions command.
To find exceptions that do not affect the timing of the circuit, but might have a negative
impact on tool performance, use the report_exceptions -ignored command. You can
also find these occurrences by turning on the EXC_0006 and EXC_0014 rules when you run
the analyze_design command. These rules are disabled by default because they need
extra runtime. See “Enabling and Disabling Rules” on page 2-33 for more information.
Using report_exceptions
The report_exceptions command works on the current scenario. If you have several
scenarios loaded, you can switch from one scenario to another using the
current_scenario command.
When used without any options, the report_exceptions command reports all timing
exceptions as defined in your SDC (or Tcl) files. All of the exceptions and constraint
specifications are reported in your constraint file. Example 3-15 shows an example of a
default report.
Example 3-15 Default Report for the report_exceptions Command
****************************************
Report : exceptions
Design : zDesign
Scenario: SCAN_SCENARIO
. . .
****************************************
# /remote/designs/zDesign/zDesign_scan.sdc, line 88
set_false_path -through [get_pins {jtag_wrap_inst/LVISION_JTAP_INST/
LVISION_JTAP_DR_CTRL/INT_DR_LATCH_reg_44_/q}]
# /remote/designs/zDesign/zDesign_scan.sdc, line 89
set_false_path -through [get_pins {jtag_wrap_inst/LVISION_JTAP_INST/
LVISION_JTAP_DR_CTRL/INT_DR_LATCH_reg_69_/q}]
# /remote/designs/zDesign/zDesign_scan.sdc, line 90
set_false_path -through [get_pins {jtag_wrap_inst/LVISION_JTAP_INST/
LVISION_JTAP_DR_CTRL/INT_DR_LATCH_reg_42_/q}]
. . .
Example 3-15 provides a list of all of the exceptions but, for this very reason, it can be
difficult to find specific data within the report. The next section describes how to narrow
down your reports to locate specific problems.
To help understand how the -from/through/to filters are used, consider the constraints
defined in Example 3-16.
Example 3-16 Exceptions Defined in Constraints File
set_multicycle_path 3 -from [get_clocks CLK1]
set_multicycle_path 3 -from ff1/CP
is not reported. When you use the -from/through/to options with the -ignored or
-dominate options, the set of reported exceptions is reduced based on whether the filtered
set of exceptions are ignored for all timing paths or used for at least one timing path.
Example 3-17 shows an example report. You can also use the -ignored option in
conjunction with other options, such as -from, to narrow the set of exceptions in the report.
To reduce runtime and memory usage in future sessions, remove ignored exceptions from
the SDC file.
Note:
The PrimeTime GCA tool does not modify constraints. Edit your constraints and rerun
the tool for verification.
An exception is considered dominant if it affects the constraints on at least one path and its
absence would result in a different set of constraints in the design. Example 3-18 shows
output for the report_exceptions -dominant command.
You can narrow down the set of reported exceptions by combining the -dominant option
with other options.
4-1
®
PrimeTime
PrimeTime® GCA User Guide
GCA User Guide L-2016.06
Version L-2016.06
The default behavior for starting a PrimeTime GCA session that automatically includes the
GUI is to use gca_shell. Within the shell you can use the gui_start and gui_stop
commands to start and stop the GUI.
If you want to run the PrimeTime GCA tool in shell-only mode, enter the gca_shell
-no_gui commands.
You can display or hide elements of the GUI. For example, to display or hide a toolbar or
panel, choose View > Palette/Toolbars and choose the appropriate command to display or
to hide the corresponding area of the window. A check mark is shown next to the menu item
if that element is currently being displayed in the window.
The lower area of the window contains the console. The gca_shell prompt is on the
console. Use the Log and History tabs above the gca_shell prompt to display different
types of information about the console.
To stop the GUI while still keeping the original gca_shell session going in the terminal
window, use the gui_stop command or choose File > Close GUI. To exit the PrimeTime
GCA tool, choose File > Exit.
Manipulating Windows
Each window can be minimized or maximized. A window can be moved anywhere within the
top-level window. Windows can overlap each other.
A window has a title bar with buttons to minimize, maximize, or close the window, and you
can freely move and resize the window.
To lay windows out evenly like tiles, choose the menu command Window > Tile, as shown
in Figure 4-2. To cascade the windows, choose Window > Cascade. You can arrange and
resize the windows as shown in Figure 4-3.
You can move, resize, and minimize windows at any time. To move a window, point to the
title bar and drag it to the position you want.
Window Types
Table 4-1 lists and briefly describes the types of windows that can be displayed within the
PrimeTime GCA window. You can find additional information about each type of window in
the remaining sections of this chapter.
Table 4-1 Types of Windows Within the PrimeTime GCA Window
Violation Browser Lists the violations in the current design, classified by scenario and
severity.
B2T Mismatch Browser Lists the violations between the constraints defined for the top level of
the current design and the block level, classified by severity.
S2S Mismatch Browser Lists the differences between two sets of constraints for the current
design, classified by severity.
User Message Browser Lists the user messages in the current design, classified by severity.
Console Window Lets you run gca_shell command and view the gca_shell log,
command history, or error and warning messages.
SDC View Displays the SDC constraint file and places a marker on the relevant line.
Hierarchy Browser and Lets you browse through the design hierarchy and select a cell, net, port,
Schematic View or pin in the design.
Path Schematic Displays a circuit schematic of a hierarchical cell or a path in the design.
The PrimeTime GCA window starts out with the following windows:
• Violation browser
• Information pane
By default, the violation browser, information pane, and console windows are docked and
displayed on the left side, as shown in Figure 4-4. You can undock or remove these default
windows and open additional windows such as Schematics and Query. There is an
“on-demand” hierarchy browser window that you can add to the standard appearance of the
GUI by modifying your default preferences. If the hierarchy browser window is not present,
you can open one by choosing Window > New Hierarchy Browser.
Figure 4-4 PrimeTime GCA Window on Startup
Violation Browser
Information Pane
Console
Toolbars
The toolbar buttons provide quick access to often-used menu commands. Figure 4-5 shows
an example of the toolbar buttons.
Figure 4-5 Toolbar Buttons
Buttons that cannot be used in the active view are dimmed. The current context changes
when you make a new selection. For example, after you select a path, the toolbar options
that operate on paths become enabled. When no paths are selected, those buttons
functions are dimmed.
Menu Commands
Table 4-2 briefly describes each of the menu bar menu commands.
Table 4-2 Menu Commands
Design Contains commands for analyzing the design and opening the
hierarchy browser and the waiver configuration dialog box.
Violation Browser
This section provides an overview and guidelines for navigating the violation browser, in the
following sections:
• Violation Browser Overview
• Guidelines for Navigating in the Violation Browser
During a session, the PrimeTime GCA tool stores the results of multiple analysis runs in
multiple violation browsers. You use the analysis run chooser window, shown in Figure 4-8,
to choose the specific run results to view. Access the analysis run chooser window from the
Analysis menu on the menu bar.
Figure 4-8 Analysis Run Chooser
This window displays the available results grouped by violation type. In addition to the
standard violation browser, there is the B2T violation mismatch browser, and the S2S
violation mismatch browser. For more information about these browsers, see Chapter 5,
“Comparing Block- and Top-Level Constraints” and Chapter 6, “Comparing Two Sets of
Design Constraints.”When the GUI is first opened, all of the severity nodes in the violation
browser are expanded and all of the violation identifier nodes are collapsed. When
expanded, a severity node displays all of the violations present in the design at that severity
level.
You can specify the Web browser used to display the messages by setting an environment
variable at the operating system prompt.
The browser executable needs to be in your environment variable setting.
setenv USER_HELP_BROWSER preferred_browser
The columns in the waiver configuration dialog box are described in Table 4-3.
Table 4-3 Waiver Configuration Dialog Box Columns
Column Description
Rules/ Name of the rule. You can access all built-in and user-defined rules with the
Waivers waiver configuration dialog. A plus sign next to the rule indicates that specific
violations of the rule have been waived.
Enable A check mark indicates that the rule is enabled. To disable the rule, uncheck
the box. This method of enabling and disabling a rule applies to all scenarios.
Design Specifies the design to which a waiver is applied. If no design is specified, the
waiver applies to the current design.
Scenario Lists the scenarios in which the waiver is active. If no scenario is listed, the
waiver applies to all scenarios.
Information Pane
The information pane, shown in Figure 4-4 on page 4-7, is a central feature of the
PrimeTime GCA GUI environment. Whereas the violation browser allows you to find general
information about rule violations, the information pane displays the details of these
violations.
Whenever a violation is selected in the violation browser, the information pane automatically
displays the relevant information. In this way the information pane is always synchronized
with whatever is selected in the violation browser window.
The information pane provides detailed information related to the current violation, including
the full message of the violation and hyperlinks to related objects (whenever applicable).
The information pane also provides suggestions on how to debug the violation in more detail
and provides the necessary setup details for creating some path schematics.
Console
The PrimeTime GCA tool provides a console, shown in Figure 4-4 on page 4-7, in which you
can enter interactive commands; anything that can be done in a batch PrimeTime GCA
session can also be done through the console.
Standard output and error output are displayed in the console log view.
To save the command history list into a file, click the History tab and click the Save Contents
As button.
Online Help
An online Help system is provided as part of the PrimeTime GCA tool. It contains all
documentation related to the PrimeTime GCA tool, including:
• User guides
• Man pages
• Rule documentation
You can access the online Help system from the Help menu in the GUI environment and
from the command line when entering a man topic command.
From the Help menu, choose online Help to open the PrimeTime GCA online Help system
in a Web browser.
The PrimeTime GCA online Help system is also available through the information pane of
any rule by clicking the Help hyperlink.
In the online Help system, which opens in a new Web browser window, the Rule Reference
page for any rule contains an explanation of the rule, an example of a design containing a
violation of that rule, and a suggestion on how to debug the issue.
Figure 4-10 shows the startup page of the PrimeTime GCA online Help system.
SDC View
Through the use of the SDC viewer, the PrimeTime GCA tool can identify constraints by their
definition in a file (file name and line number). This type of information, when provided, is
available through a hyperlink in the violation message in the violation browser and in the
information pane.
By clicking the hyperlink of a constraint definition, the SDC viewer opens and automatically
loads the relevant SDC constraint file and places a marker on the relevant line.
Figure 4-11 shows a typical SDC view.
The look and feel of the PrimeTime GCA GUI are designed to be similar to those of other
tools, such as the PrimeTime GUI or the Design Vision tool.
The primary function of the hierarchy browser is to display the logic hierarchy of the design.
Schematics can be created for the whole selection by right-clicking any level of hierarchy or
by clicking the toolbar buttons. Several schematics can be opened simultaneously, each in
its own window. Each schematic view window opens so that you can see the logic.
The hierarchy browser also provides the following functionality:
• Whenever a level of hierarchy is selected, the cells belonging to that level appear on the
cell list.
• The schematic view also allows you to search for a cell, net, or pin and to zoom in or
zoom out to view a selection.
The schematic view can be annotated with the:
• Cell name
• Net name
• Library cell name
Selecting objects directly in the schematic also populates the relevant selection box on the
status bar at the bottom of the PrimeTime GCA window.
The buttons available on the Schematics toolbar have the following functionality:
• The Create Instance Schematic button draws the level of logic currently selected. If
nothing is selected, the current design is drawn.
• The Create Abstract Path Schematic of Selected Objects button draws only the selected
objects and their immediate connections. If nothing is selected, the button is disabled.
• The Add Fanin/Fanout to Path Schematic button becomes active whenever a schematic
window is opened. Otherwise the button is disabled.
• The zoom, pan, and select buttons on the View Tools and View Zoom/Pan toolbars
enable you to navigate through the schematic.
The Schematic View also provides standard printing capabilities similar to other Synopsys
GUI tools.
Path Schematic
The path schematic view in the GUI provides visualization of any part of the design rather
than the full schematic view. Any path schematic you display is annotated with data, such as
constant data and clock identifiers that are relevant to analyzing the issue.
The path schematic is displayed when you request it from the information pane (debugging
commands).
There are a number of visibility features built into the path schematic view:
• You can expand or reduce the schematic.
• You can add or remove gates from the view to aid in the granularity of the view.
• You can select one or several objects to obtain more detailed information about them.
• You can display attributes in a separate attribute pane.
There is also a Create Path Schematic button on the toolbar you can use to create a
schematic of whatever logic is currently selected.
When creating a path schematic, the tool displays a warning message beforehand if
schematic generation is expected to take a long runtime. At this point, you have the option
to cancel the current command. If significant runtime is anticipated when creating a path
schematic, the tool displays a Work In Progress indicator to show that the tool is not failing.
Creating a Schematic
When a schematic view is applicable to a violation, the Schematic hyperlink appears in the
information pane. You can automatically create a schematic for this violation by selecting the
Schematic hyperlink. The schematic is annotated with information relevant to the violation.
You can also create schematics at any level of logic by using the hierarchy browser or
clicking the “Create Instance Schematic” button on the Schematics toolbar. The tool creates
a schematic for all objects in the current selection list.
To open a hierarchy browser window, choose Design > Hierarchy Browser. Select the logic
for the schematic and either right-click the selected cells and choose New Design Schematic
View or choose Schematic > New Schematic View.
The typical flow for the Select By Name toolbar involves the following steps:
1. Display the toolbar and set the keyboard focus: choose Selection > By Name Toolbar or
press Ctrl+/.
2. Select the object type: press Page Up or Page Down to cycle through the object type list.
3. Set the action to be performed: press F1 to select objects or F2 to highlight objects.
4. Specify the search string: enter the search string, and press Tab to complete the name if
necessary.
5. Choose whether to replace or add to the current selection: press Insert to toggle the Add
option.
6. Select or highlight the object: press Enter.
When you press Enter, the tool searches the design for an object that matches the specified
name or name pattern and automatically selects that object. The selected object is
highlighted if it is visible in a schematic.
You can type part of a name and let the tool complete it by pressing Tab. The tool completes
the name to its longest match. If multiple names match the text, a name completion list
appears. You can select a name by pressing Enter or close the list by pressing Esc. Use the
Up Arrow and Down Arrow keys to move up and down the list.
You can type multiple object names by separating them with blank spaces.
If an object name contains a space, enclose the name in curly braces ({}) to treat it as a
single name. If an object name is invalid because nothing matches the specified name
pattern, the name appears on a light red background.
The Select By Name toolbar in Table 4-4 provides the following interactive shortcut
operations:
Table 4-4 Select By Name Toolbar Shortcuts
Key Action
Any characters you type while the object list is open automatically appear in the object name
box. This allows you to continue typing the object name, which automatically updates the
matching names in the name completion list.
Figure 4-14 shows an example of the Select By Name toolbar with the name completion list
open.
After a successful search, the tool automatically highlights the text in the object name box
and you can start another search. You can also perform the search by clicking the Apply
button.
The selection operation replaces the current selection by default. If you want to add objects
to the current selection, select the Add option.
If you press the Tab key and the tool finds multiple objects that match the text you typed, the
name completion list appears showing the first fifteen names.
If you enable name sorting, the option remains selected for future searches.
The Properties dialog box can also be accessed by right-clicking an object in a schematic
and choosing Properties.
Figure 4-15 shows a typical attribute list in the Properties dialog box.
Figure 4-15 Properties Dialog Box
You can click the arrow buttons to scroll through the property lists for multiple selected
objects. To show the combined characteristics of all selected objects in a single pane, select
the All option.
The “meta-buffer” is drawn larger and with thicker lines to show that it is a compressed
representation of the buffer chain, not an actual cell in the design. You can restore the view
of the original buffer chain by choosing Expand > Selected Objects on the pop-up menu.
You can similarly collapse and expand the view of buffer trees, cells that belong to
hierarchical blocks, and unconnected pins of large macro cells. The design functionality is
often easier to understand with a collapsed view. Figure 4-18 shows an example of an
expanded (flat) and a collapsed (hierarchical) view of a path schematic.
The commands for collapsing and expanding objects are available on the pop-up menu and
on the menu bar. On the menu bar, choose Schematic > Collapse or Schematic > Expand
and choose the command. You can choose commands to collapse or expand the currently
selected objects or all objects of a specified type, such as All Hierarchy, All Buffers/Inverters,
Buffers/Inverters By Chain, or Buffers/Inverters By Tree.
5-1
®
PrimeTime
PrimeTime® GCA User Guide
GCA User Guide L-2016.06
Version L-2016.06
• Creating Waivers
• Creating Text Reports
For more information about analyzing the results of multiple blocks in a single session, see
“Reporting Rule Violations With the report_constraint_analysis Command” on page 2-25.
Methodology
The following sections describe the block-to-top flow:
• Keeping Multiple Linked Designs for Block-to-Top Constraint Checking
• Flow Script Example
To keep previously linked designs in memory, use the link_design command with the -add
option. When there are multiple linked designs in memory at the same time, use the
current_design command to switch between the designs.
read_verilog ${TOP_DIR}/design/ChipLevel_no2blocks.v
read_verilog ${TOP_DIR}/design/Multiply16x16.v
read_verilog ${TOP_DIR}/design/PathSegment.v
link_design ChipLevel
link_design -add Multiply16x16
current_design ChipLevel
source ${TOP_DIR}/dc_outdir/ChipLevel_propagate.sdc -echo
current_design Multiply16x16
source ${TOP_DIR}/design/Multiply16x16.sdc -echo
current_design ChipLevel
compare_block_to_top -block_design [get_designs Multiply16x16]
remove_linked_design [get_designs Multiply_16x16]
Rule Description
When appropriate, the rules that check these constraints have a tolerance rule property that
allows some difference in the values being compared before a violation is issued. The
tolerance is specified as a percentage of the smallest value compared.
By default, the tolerance is set at 1e-5 percent, which is equivalent to performing exact
matches. To change the tolerance, use the set_rule_property command.
See the rule reference pages in the online Help for detailed rule descriptions.
In addition to showing dual schematic views of the violation in Figure 5-3, the information
pane in Figure 5-4 contains links to the SDC source files associated with both the block and
top designs. When you click the source file link for either the block or top SDC file, the tool
displays both top and block SDC source files side-by-side with the violating constraint
highlighted in each file, as shown in Figure 5-5.
Figure 5-4 Information Pane When a Violation Is Selected
The PrimeTime GCA tool looks for the following categories of constraints:
• Clock constraints
• Boundary condition constraints
• Exception type constraints
• Case value constraints
• Miscellaneous constraints
Clock Checks
The clocks defined at the block level are compared to the clocks from the top-level reaching
this block. The PrimeTime GCA tool matches the clocks for period, sense, waveform, and
phase.
Tcl-based mapping is available as an alternative to the clock-check matching described
previously.
Exception Checks
When running block-to-top consistency checks, the tool compares the following timing
conditions:
• set_min_delay and set_max_delay exceptions
• set_multicycle_path exceptions
• set_false_path exceptions
If any case settings in the block design are not covered by the settings in the top design,
then those are reported as missing block constraints in the report.
In Example 5-3, the following scenarios are compared against each other:
• Top: FUNC; Block: BFUNC
• Top: SCAN; Block: BTEST
To achieve this behavior, the constraint consistency-checking feature can also work on
instances, as opposed to designs. Example 5-4 demonstrates this approach.
Example 5-4 Using the compare_block_to_top Command
compare_block_to_top -block_design Multiply16x16 \
-top_scenarios [list FUNC SCAN] \
-block_scenarios [list BFUNC BTEST] \
-cells [get_cells [list TOP/Block1 TOP/Block2]]
Creating Waivers
You can create waivers for block-to-top rules through the GUI or the command line.
For more information about creating, editing, removing, and reporting waivers, see
“Suppressing Violations” on page 2-11.
For more information, see “Reporting Rule Violations With the report_constraint_analysis
Command” on page 2-25.
6-1
®
PrimeTime
PrimeTime® GCA User Guide
GCA User Guide L-2016.06
Version L-2016.06
• External delays
set_input_delay, set_output_delay
• Timing exceptions
set_false_path, set_multicycle_path, set_min_delay, set_max_delay,
set_clock_groups
• Case analysis
set_case_analysis
• Disable timing
set_disable_timing
• Uncertainty
set_clock_uncertainty
• Transitions
set_clock_transition, set_input_transition
• Latency
set_clock_latency
• Clock gating
set_clock_gating_check
• Clock sense
set_sense
• Loading
set_load
When appropriate, the rules that check these constraints have a tolerance property that
allows some difference in the values being compared before a violation is issued. The
tolerance is specified as a percentage of the smallest value compared.
By default, the tolerance is set at 1e-5% which is equivalent to performing exact matches.
To change the tolerance, use the set_rule_property command.
Methodology
Use the following methodology to compare constraint sets:
1. Use the create_scenario command to model your original constraint set and your
modified constraint set.
Your constraints can be in SDC files or in multiple Tcl scripts.
2. Use the compare_constraints command to compare the scenarios. For example,
gca_shell> compare_constraints -constraints1 \
my_original_constraint_scenarios \
-constraints2 my_modified_constraint_scenarios
When working with SDC-to-SDC constraint violations, the tool provides schematics for both
sets of constraints and can display them side by side, as shown in Figure 6-2. Click the
Schematic link to display the schematics. The schematics are annotated with data to help
debug the constraint problem.
The tool can also display the constraints that caused the violation from each respective SDC
file, as shown in Figure 6-3.
The SDC links are located in the Violations Details section of the information pane. Select
the source file link for scenario 1 and scenario 2 to see the relevant constraints. You are not
limited to displaying only schematics or SDC information; the tool can display both
schematics and SDC file contents simultaneously.
To debug SDC-to-SDC violations, analyze the schematics and the constraint definitions in
the SDC files. Follow the guidelines in the “Debugging Help” section in the information pane
and use the fix suggestion described in the information pane. Additional resources, such as
man pages and user guides are available in the online Help.
Creating Waivers
You create waivers for SDC-to-SDC rules through the GUI or command line. For more
information about creating, editing, removing, and reporting waivers, see “Suppressing
Violations” on page 2-11.
Text Reports
Use the report_constraint_analysis command to obtain constraint comparison text
reports, as shown in Example 6-1. Use the SDC-to-SDC violation browser to view violations
interactively. You can view where the mismatch occurs in the schematics and where the
mismatch occurs in the SDC constraints file. See “Suppressing Violations” on page 2-11 for
more information.
User Messages
A-1
®
PrimeTime
PrimeTime® GCA User Guide
GCA User Guide L-2016.06
Version L-2016.06
Use tabs to switch between different views that are available in some of the GUI
components. The console displays the log view by default, but if you click the History tab,
Appendix A: Tutorial
Overview of the PrimeTime GCA Tool A-2
PrimeTime® GCA User Guide Version L-2016.06
you can see a list of the commands you used in the session. If you click a Schematic link in
the information pane, a schematic view replaces the violation browser. To revert to the
previous view, click the violation browser tab. You can use all of these items in the GUI as
you begin debugging constraint problems in the tutorial design. If you need to exit the
tutorial, see “Ending and Restarting the Tutorial Session” on page A-26.
When you run the analyze_design command, the design loaded in the tool is checked
against a set of predefined rules. These rules check clock definitions, case analysis
propagation, timing exceptions, boundary conditions, and other general checks. Table A-1
provides an overview of the different types of rule definitions.
AppendixA:A:Tutorial
Chapter Tutorial
Overview of the PrimeTime GCA Tool A-3
®
PrimeTime
PrimeTime® GCA User Guide
GCA User Guide L-2016.06
Version L-2016.06
Each rule defines a specific check that is performed on the design and its constraints. To see
a short description of each case analysis rule, enter the following command:
gca_shell> report_rule CAS_*
For more details, see the rules in the online Help. To launch the online Help, choose Help >
Online Help from the menu in the GUI.
Appendix A: Tutorial
About the Tutorial Design A-4
PrimeTime® GCA User Guide Version L-2016.06
• MuxMod
• PathSegment
This pre-layout design is in the early development phase, with the clock network and
constraints still under construction. You can use the tool to identify constraint problems early
in the design cycle.
The tool must be installed before you run the tutorial. The tutorial directories and files are
located under the doc/gca/tutorial directory of the PrimeTime installation. Copy this
directory to a working directory by entering the following UNIX command:
% cp -r $SYNOPSYS/doc/gca/tutorial .
This command creates a new directory called “tutorial” under the current directory. If you
copied the tutorial design files from the PrimeTime installation, you have the directory
structure shown in Figure A-2 in your working directory.
Figure A-2 Tutorial Directory Structure
my_directory/
tutorial/
run_tutorial.tcl
design/
chiplevel.v
chiplevel.sdc
libs/
lsi_10k.db
Run the tutorial from the tutorial directory using the run_tutorial.tcl script. The subdirectories
are:
• design.
This directory contains the Verilog netlist (chiplevel.v) and design constraints
(chiplevel.sdc).
• libs.
This directory contains the lsi_10k.db technology library.
AppendixA:A:Tutorial
Chapter Tutorial
About the Tutorial Design A-5
®
PrimeTime
PrimeTime® GCA User Guide
GCA User Guide L-2016.06
Version L-2016.06
The tool opens displaying the GUI as shown in Figure A-3. Files can be sourced and
commands can be entered at the gca_shell prompt. All commands and their output are
saved to the gca_shell_command.log file.
Figure A-3 PrimeTime GCA GUI
Appendix A: Tutorial
Starting the PrimeTime GCA Tool A-6
PrimeTime® GCA User Guide Version L-2016.06
If you need assistance, ask your system administrator or consult the installation and
licensing documentation.
The search_path variable specifies locations to search for design and library files.
2. Set the link_path variable:
gca_shell> set_app_var link_path [list * lsi_10k.db] * lsi_10k.db
Instead of the Tcl set command, the set_app_var command is recommended for
assigning values to application shell variables because it verifies that the variable is an
application variable and that it is a legal value for that variable in the application.
The link_path variable specifies a list of libraries, design files, and library files to use for
resolving references during linking. The asterisk (*) indicates that the tool should use the
designs and libraries that have already been read into memory for design linking.
3. Read in the Verilog netlist:
gca_shell> read_verilog chiplevel.v
Loading verilog file '/remote/techp5/grayc/gca/tutorial/design \
chiplevel.v'
1
The read_verilog command reads in the gate-level Verilog netlist for the design.
AppendixA:A:Tutorial
Chapter Tutorial
Analyzing the ChipLevel Design A-7
®
PrimeTime
PrimeTime® GCA User Guide
GCA User Guide L-2016.06
Version L-2016.06
The current_design command specifies the working design for the session.
5. Link the design:
gca_shell> link_design
Loading db file '/remote/techp5/grayc/gca/tutorial/libs/lsi_10k.db' \
Information: units loaded from library 'lsi_10k' (LNK-040) \
Removing previously linked designs ... \
Design 'ChipLevel' was successfully linked.
1
The link_design command resolves the references in the Verilog netlist to the library
components and builds an internal representation of the design for analysis.
6. Read the constraints file:
gca_shell> source ./design/chiplevel.sdc
Information: Setting sdc_version outside of an SDC file has no
effect (SDC-1)
Warning: set_max_delay is forcing pin 'clk_8x8/Z' to be a timing
startpoint. (UIC-011) \
Warning: Object 'u5/res_reg[0]/Q' is not a valid endpoint. The
set_multicycle_path command will not match this object. (UIC-009)
Warning: Object 'u5/res_reg[1]/Q' is not a valid endpoint. The
set_multicycle_path command will not match this object. (UIC-009)
...
Warning: Object 'u5/res_reg[31]/Q' is not a valid endpoint. The
set_multicycle_path command will not match this object. (UIC-009)
1
The source command reads in the constraint file for the design. The read_sdc
command could also be used because the file only contains SDC commands.
7. Analyze the design:
gca_shell> analyze_design
Warning: Conflicted case values driving and set at pin u7/U168/S.
Using the set logicvalue of '0'. (CASE-003)
Information: Checking scenario 'default': Starting rule
checks (ADES-002)
Information: Checking netlist: Starting scenario-independent rule
checks. (ADES-003)
1
gca_shell>
After you run the analyze_design command, the tool displays the results of the rule
checking in the violation browser, as shown in Figure A-4.
Appendix A: Tutorial
Analyzing the ChipLevel Design A-8
PrimeTime® GCA User Guide Version L-2016.06
The analyze_design command is used to run analysis on your design after the necessary
inputs have been loaded in the tool. The design and its constraints are checked against a
predefined set of rules, and the results of the analysis are summarized in the violation
browser in the GUI.
Note:
The commands used in the steps above are provided in a script file located in the tutorial
directory. The file name is run_tutorial.tcl. The content of the run_tutorial.tcl script is
shown in Example A-2.
Example A-2 ChipLevel Script to Read in Design, Link, and Load Constraints
#####################################################################
# link design
#####################################################################
set_app_var search_path [list . ./libs ./design ]
set_app_var link_path [list * lsi_10k.db]
read_verilog chiplevel.v
current_design ChipLevel
link_design
#####################################################################
# read SDC
#####################################################################
source ./design/chiplevel.sdc
#####################################################################
# run design analysis
#####################################################################
analyze_design
AppendixA:A:Tutorial
Chapter Tutorial
Analyzing the ChipLevel Design A-9
®
PrimeTime
PrimeTime® GCA User Guide
GCA User Guide L-2016.06
Version L-2016.06
The PrimeTime GCA tool checks constraints for multiple scenarios of the same design. For
example, a design can have both a functional mode and test mode, and it can have different
boundary conditions for worst-case and best-case analysis. For more information, see
“Additional Analysis Features.”
Appendix A: Tutorial
Debugging Constraint Problems A-10
PrimeTime® GCA User Guide Version L-2016.06
You can display the violations in each category and view the number of violations for each
rule by double-clicking on the row of interest in the violation browser or by clicking on the '+'
icon at the beginning of each row.
AppendixA:A:Tutorial
Chapter Tutorial
Debugging Constraint Problems A-11
®
PrimeTime
PrimeTime® GCA User Guide
GCA User Guide L-2016.06
Version L-2016.06
The Violation Message (Violation 1) in the information pane states that a propagated logic
constant or case analysis value conflicts with a user-specified case analysis value on a pin
or port. The message includes the pin name, u7/U168/S, with the conflicting values.
The User Case Value section shows that a user-specified case analysis value of 0 has been
set on this pin. The source of the conflicting case analysis value is the port named “op” as
shown in the Source Info of propagated value in the Violation Details. To view the constraints
related to the case analysis values, click the link in the Source File box. When you click the
link, the constraint browser opens in the information pane, and a marker points to the
constraint in the SDC file as shown in Figure A-7.
Appendix A: Tutorial
Debugging Constraint Problems A-12
PrimeTime® GCA User Guide Version L-2016.06
Figure A-7 Constraint Browser for the User Case Value in the Violation Details
Similarly, by clicking on the Source File link under Source Info of propagated value, the
constraint browser moves to the line in the SDC file related to the port named “op” as shown
in Figure A-8.
AppendixA:A:Tutorial
Chapter Tutorial
Debugging Constraint Problems A-13
®
PrimeTime
PrimeTime® GCA User Guide
GCA User Guide L-2016.06
Version L-2016.06
Figure A-8 Constraint Browser for Source Info of propagated value in Violation Details
To understand how the case analysis value on the port named “op” propagates to the
violating pin, scroll up to the top of the information pane and click the Schematic link. The
link opens a separate window, shown in Figure A-9 that indicates the location of the pin with
the conflicting case analysis value.
Appendix A: Tutorial
Debugging Constraint Problems A-14
PrimeTime® GCA User Guide Version L-2016.06
The schematic shows that a case value of 1 is present at the u7/op_2inv/Z pin, and a case
value of 0 is present at the u7/U168/S pin. This pin has been highlighted in the schematic
and marked as the source of the case analysis conflict.
The schematic shows the case analysis value of 1 on the op port, which propagates through
the u7/op_inv inverter to a case value of 0 on its output, and then through the u7/op_2inv
inverter, resulting in a case value of 1 on its output. The PrimeTime GCA tool highlights this
situation as a case analysis conflict.
AppendixA:A:Tutorial
Chapter Tutorial
Debugging Constraint Problems A-15
®
PrimeTime
PrimeTime® GCA User Guide
GCA User Guide L-2016.06
Version L-2016.06
You can also view the same information in report form. First, click the ViolationBrowser.1 tab
to go back to the violation browser and information pane. Then click the Debugging Help link
in the information pane.
The Debugging Help section related to the violation is displayed in the information pane as
shown in Figure A-11.
Appendix A: Tutorial
Debugging Constraint Problems A-16
PrimeTime® GCA User Guide Version L-2016.06
Figure A-11 Viewing the Debugging Help for the CAS_0003 Rule Violation
When you click the Execute link under Debugging Help, the tool runs the
report_case_details command related to the violation. A report similar to the one shown
in Example A-3 is displayed in the console log view.
Example A-3 Case Propagation Details Report
gca_shell> report_case_details -to u7/U168/S
****************************************
Report : case_details
-to
-max_objects = 1000
Design : ChipLevel
...
****************************************
Properties Value Pin/Port
-------------------------------------------------------------------------
user case 0 u7/U168/S (MUX21L)
Case fanin report:
Verbose Source Trace for pin/port u7/U168/S:
Path number: 1
Path Ref # Value Properties Pin/Port
-------------------------------------------------------------------------
0 user case u7/U168/S (MUX21L)
1 F()=A' u7/op_2inv/Z (B4I)
0 u7/op_2inv/A (B4I)
0 F()=A' u7/op_inv/Z (IV)
1 u7/op_inv/A (IV)
1 user case op (in)
AppendixA:A:Tutorial
Chapter Tutorial
Debugging Constraint Problems A-17
®
PrimeTime
PrimeTime® GCA User Guide
GCA User Guide L-2016.06
Version L-2016.06
The beginning of the report shows the user-set case analysis value set directly on the u7/
U168/S pin. The “Case fanin report” section shows the conflicting value propagated to the
same pin, along with the path of the propagated values through multiple gates, originating
from a case analysis value set on the "op" port.
The decision on how to resolve the CAS_0003 rule violation is design-dependent and based
on knowledge of the design and mode being analyzed. In some cases, removing the case
analysis on the u7/U168/S pin might be the solution, and in other cases, removing the case
analysis on the port might be the solution. The conflict between propagated and
user-specified case values should be resolved to avoid incomplete timing analysis or
analysis of false paths for the operational mode of the design.
The CLK_0003 rule highlights a problem with generated clock propagation due to the lack
of a master source as shown in the Violation 1 message. The pin or port specified as the
master source of the generated clock, clk_adder_div2/CP, does not have a clock reaching it.
You can view the definition of the generated clock in the constraint file by clicking on the
clk_adder_div2 link (the name of the generated clock) in the Violation 1 message. The
constraint browser opens and displays the generated clock definition as shown in
Figure A-13.
Appendix A: Tutorial
Debugging Constraint Problems A-18
PrimeTime® GCA User Guide Version L-2016.06
The constraint browser confirms that the pin clk_adder_div2/CP has been defined as the
master clock source for the generated clock. To view the related schematic, click the Close
button of the constraint browser and then click the Schematic link in the information pane.
The schematic opens in a separate window as shown in Figure A-14.
Figure A-14 Schematic for CLK_0003 Rule Violation
AppendixA:A:Tutorial
Chapter Tutorial
Debugging Constraint Problems A-19
®
PrimeTime
PrimeTime® GCA User Guide
GCA User Guide L-2016.06
Version L-2016.06
The schematic shows that there is a path from the aclk port to the master source for the
generated clock, clk_adder_div2/CP. To see what might be causing the problem, go back to
the violation browser and look at the Debugging Help section following the violation
message, as shown in Figure A-15.
Figure A-15 Debugging Help for the CLK_0003 Rule Violation
The Debugging Help states that there might be potential clocks that have reached the
clk_adder_div2/CP pin. To run the analyze_clock_networks command to help debug this
violation, click the “execute and show schematic” link under Debugging Help. The schematic
related to the violation is displayed again, and the report for the analyze_clock_networks
command is displayed in the GUI console as shown in Figure A-16.
Appendix A: Tutorial
Debugging Constraint Problems A-20
PrimeTime® GCA User Guide Version L-2016.06
View the report by scrolling up and down in the GUI console window, or use the echo
command link under Debugging Help and the redirect command to send the entire report to
a text file. For this violation, the following is an example of the redirect command:
gca_shell> redirect -file clk_0003_report.txt \
{ analyze_clock_networks -from [get_clocks {aclk}] \
-through [get_pins {clk_adder_div2/CP}] -max_endpoints 1 -style full \
-end_types {register port clock_source } -traverse_disabled -nosplit }
AppendixA:A:Tutorial
Chapter Tutorial
Debugging Constraint Problems A-21
®
PrimeTime
PrimeTime® GCA User Guide
GCA User Guide L-2016.06
Version L-2016.06
The report traces the clock network that begins at port aclk and identifies the point in the
clock path where the clock stops propagating and the related constraint. A detailed
examination of the report shows that the clock aclk is a positive-sense clock as shown by the
P in the Sense column of the report. It then becomes a negative-sense clock N at the output
of the inv_clk_adder inverter in the clock network. The output of the next inverter, clk_adder,
inverts the clock again to a positive-sense clock, but the report shows that the clock
propagation has stopped.
A potential clock has been detected on the output of the clk_adder inverter with a positive
sense, as shown by the [P] in the Sense column of the report. The Notes column shows a
reference, DT#0, to the Clock Blocking Constraints section of the report. This shows that a
set_disable_timing constraint has been specified on the pin clk_adder/A which is
blocking the clock propagation. Similarly, the generated clock master source,
clk_adder_div2/CP, has a potential positive clock [P] because it is downstream of the
clk_adder/A pin. The Clock Blocking Constraints section also indicates that the relevant
constraint is on line 19 of the constraint file. Because this is the same constraint file that
contains the generated clock definition, you can open the Constraint Browser again by
clicking on the clk_adder_div2 link and scrolling to line 19, as shown in Figure A-17.
Appendix A: Tutorial
Debugging Constraint Problems A-22
PrimeTime® GCA User Guide Version L-2016.06
The set_disable_timing constraint disables all timing paths through the pin clk_adder/A and
it is the root cause for the clock not reaching the master source clk_adder_div2/CP of the
generated clock.
Based on your knowledge of the design, there can be a valid reason for disabling the clock
network. If so, the generated clock definition should be reexamined. If left without a clock at
the master source, the generated clock does not propagate.
AppendixA:A:Tutorial
Chapter Tutorial
Debugging Constraint Problems A-23
®
PrimeTime
PrimeTime® GCA User Guide
GCA User Guide L-2016.06
Version L-2016.06
The EXC_0004 rule flags exceptions with invalid path endpoints in the -to option of the
constraint. The Violation Details show that the Type of exception is a multicycle path for this
violation. If you browse further down the Violation Details, you can see that many Through
and To points have been listed as part of this violation. The Reason listed for the To points
is “nonendpoint”.
To help understand the Reason provided, scroll back to the top of the information pane, and
click the Debugging Help link.
The Debugging Help suggests using the report_disable_timing -all_arcs command if
the Reason code is case disabled, check disabled, sequential disabled, or node disabled.
Because the Debugging Help does not have a command suggestion for the nonendpoint
Reason, click the online Help link at the top of the information pane for more help. The rule
reference for the EXC_0004 rule is displayed in your Web browser.
The Description section of the rule reference explains the different Reason codes for the
EXC_0004 rule. The nonendpoint reason is given when the -to pin is an internal pin instead
of a timing path endpoint. The Description section also states that the exception is ignored
during timing analysis unless a valid endpoint is provided for the constraint. The explanation
Appendix A: Tutorial
Debugging Constraint Problems A-24
PrimeTime® GCA User Guide Version L-2016.06
in the rule reference for nonendpoint indicates that the pins specified for the -to option of
the set_multicycle_path command are internal pins and are not timing path endpoints.
The -to points listed in the Violation Details are all pins with the name Q. View the
schematic related to the violation by clicking the Schematic link at the top of the information
pane. The schematic shows all the affected -to pins. Use the Zoom In button on the Toolbar
to view individual pins.
The Q pin of the register is highlighted in white, indicating it is one of the -to points related
to the violation. Double-click the pin to show more of the schematic, as shown in
Figure A-19.
Figure A-19 Expanded Schematic View of Register Q Pin
The schematic shows that the Q pin of the register is connected to an output port. The Q pin
of the register might have been incorrectly specified instead of the D pin in the constraint.
Changing the constraint to the D pin of the register might resolve the violation, but you
should verify that this is the intent of the constraint based on your knowledge of the design.
AppendixA:A:Tutorial
Chapter Tutorial
Debugging Constraint Problems A-25
®
PrimeTime
PrimeTime® GCA User Guide
GCA User Guide L-2016.06
Version L-2016.06
A message asks if you want to exit the PrimeTime GCA tool, as shown in Figure A-20.
Figure A-20 GUI Message for Exiting the PrimeTime GCA Tool
Click OK to exit the PrimeTime GCA tool. The tool closes and reports its memory and CPU
time usage:
gca_shell> exit
Maximum memory usage for this session: 24.38 MB
CPU usage for this session: 2 seconds
If you have ended the tutorial session and want to begin analysis of violations again, you
rerun the ChipLevel design. To specify your run script at the command line, use the -f
option:.
% gca_shell -f run_tutorial.tcl
In this case, the PrimeTime GCA tool loads the libraries, design, and constraints and
performs rule checking on the design. The GUI then displays the results of the
analyze_design command in the violation browser.
Appendix A: Tutorial
Ending and Restarting the Tutorial Session A-26
PrimeTime® GCA User Guide Version L-2016.06
If you want to rerun the analysis to investigate one rule, specify the -rules option for the
analyze_design command. This limits the scope of the checking to the rules specified. The
command below checks the ChipLevel design for violations of the CAS_0003 rule.
analyze_design -rules { CAS_0003 }
AppendixA:A:Tutorial
Chapter Tutorial
Ending and Restarting the Tutorial Session A-27
®
PrimeTime
PrimeTime® GCA User Guide
GCA User Guide L-2016.06
Version L-2016.06
Appendix A: Tutorial
Ending and Restarting the Tutorial Session A-28