DesignChecker Tutorial - Mentor Graphics Support

DesignChecker Tutorial
Software Version 2013.1
December 2013
© 2005-2013 Mentor Graphics Corporation
All rights reserved.
This document contains information that is proprietary to Mentor Graphics Corporation. The original recipient of this
document may duplicate this document in whole or in part for internal business purposes only, provided that this entire
notice appears in all copies. In duplicating any part of this document, the recipient agrees to make every reasonable
effort to prevent the unauthorized use and distribution of the proprietary information.
This document is for information and instruction purposes. Mentor Graphics reserves the right to make
changes in specifications and other information contained in this publication without prior notice, and the
reader should, in all cases, consult Mentor Graphics to determine whether any changes have been
made.
The terms and conditions governing the sale and licensing of Mentor Graphics products are set forth in
written agreements between Mentor Graphics and its customers. No representation or other affirmation
of fact contained in this publication shall be deemed to be a warranty or give rise to any liability of Mentor
Graphics whatsoever.
MENTOR GRAPHICS MAKES NO WARRANTY OF ANY KIND WITH REGARD TO THIS MATERIAL
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
FITNESS FOR A PARTICULAR PURPOSE.
MENTOR GRAPHICS SHALL NOT BE LIABLE FOR ANY INCIDENTAL, INDIRECT, SPECIAL, OR
CONSEQUENTIAL DAMAGES WHATSOEVER (INCLUDING BUT NOT LIMITED TO LOST PROFITS)
ARISING OUT OF OR RELATED TO THIS PUBLICATION OR THE INFORMATION CONTAINED IN IT,
EVEN IF MENTOR GRAPHICS HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
U.S. GOVERNMENT LICENSE RIGHTS: The software and documentation were developed entirely at
private expense and are commercial computer software and commercial computer software
documentation within the meaning of the applicable acquisition regulations. Accordingly, pursuant to
FAR 48 CFR 12.212 and DFARS 48 CFR 227.7202, use, duplication and disclosure by or for the U.S.
Government or a U.S. Government subcontractor is subject solely to the terms and conditions set forth
in the license agreement provided with the software, except for provisions which are contrary to
applicable mandatory federal laws.
TRADEMARKS: The trademarks, logos and service marks ("Marks") used herein are the property of
Mentor Graphics Corporation or other parties. No one is permitted to use these Marks without the prior
written consent of Mentor Graphics or the owner of the Mark, as applicable. The use herein of a thirdparty Mark is not an attempt to indicate Mentor Graphics as a source of a product, but is intended to
indicate a product from, or associated with, a particular third party. A current list of Mentor Graphics’
trademarks may be viewed at: www.mentor.com/trademarks.
Mentor Graphics Corporation
8005 S.W. Boeckman Road, Wilsonville, Oregon 97070-7777
Telephone: 503.685.7000
Toll-Free Telephone: 800.592.2210
Website: www.mentor.com
SupportNet: supportnet.mentor.com/
Send Feedback on Documentation: supportnet.mentor.com/doc_feedback_form
Table of Contents
Chapter 1
Configuring DesignChecker. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
The DesignChecker Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Creating a Ruleset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Copying a Base Rule. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Configuring a Rule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Copying a Ruleset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Creating a Policy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Running an Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Selecting Files or Design Units for Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
5
6
7
8
11
13
15
18
21
21
Chapter 2
Working with Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Analyzing Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Checking Rule Details . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Examining Checked Files/Design Units . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Summarized Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Using Viewpoints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Excluding Files from Analysis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Setting a Black Box . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Using the Black Box Setting. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
The Don’t Touch Setting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Enabling Pragma Exclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Using the Exclusion Pragmas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Excluding Rules from Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Cross-Referencing Results in DesignPad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Cross-Referencing to Graphics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Exporting Results. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
25
25
26
27
28
29
29
33
38
38
39
39
40
42
45
47
49
52
Index
End-User License Agreement
DesignChecker Tutorial, V2013.1
December 2013
3
Table of Contents
4
DesignChecker Tutorial, V2013.1
December 2013
Chapter 1
Configuring DesignChecker
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
The DesignChecker Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Creating a Ruleset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Copying a Base Rule. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Configuring a Rule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Copying a Ruleset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Creating a Policy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Running an Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Selecting Files or Design Units for Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
6
7
8
11
13
15
18
21
21
Overview
This chapter shows you how to configure rulesets and policies in DesignChecker. These are
important setup activities. Typically a senior member of a development team will be tasked with
creating rulesets. These are intended to be used by all members of a development team, and
contain the full set of checks that DesignChecker will apply. These should only be adjusted
when coding standards are updated.
During normal development activities, you will use DesignChecker to validate different aspects
of your code and ensure that your design conforms to your coding standards. Frequently you
will not want to use the full range of checks applied by a comprehensive ruleset. You can create
as many policies as you need. You can use these policies to apply different sub-sets of your
ruleset. This enables you to channel the powerful static checking features of DesignChecker
towards specific sets of development issues, enabling you to focus your attention on varying
aspects of development as your development project progresses.
In this chapter of the tutorial you will learn how to:
•
•
•
•
Identify and select appropriate rules from the base rules.
Configure the parameters of individual rules.
Create a ruleset.
Run an analysis.
DesignChecker Tutorial, V2013.1
December 2013
5
Configuring DesignChecker
Introduction
Introduction
DesignChecker is a powerful and configurable design analysis and static checking tool. This
chapter is a self-paced tutorial with step-by-step procedures for configuring rulesets and
policies, running an analysis based on these and interpreting the results.
This tutorial is divided into sections containing numbered procedures which must be performed
for each section of the tutorial to be completed successfully.
If you are working from a printed copy of the tutorial, you are recommended to tick off each
numbered procedure as you complete it to ensure no steps are omitted.
Unnumbered paragraphs provide additional information or give advice on other ways to
perform an operation. The procedure numbers are continuous through each major section and its
subsections but restart for each major section.
6
DesignChecker Tutorial, V2013.1
December 2013
Configuring DesignChecker
The DesignChecker Flow
The DesignChecker Flow
The high level flow for using DesignChecker is shown below:
DesignChecker Tutorial, V2013.1
December 2013
7
Configuring DesignChecker
Creating a Ruleset
Creating a Ruleset
You can think of a ruleset as a folder that contains one or more configured rules. Typically, you
create a ruleset folder and place one or more configured rules in the folder. For example, you
might create a ruleset called Allowed Options and then place rules about allowed constructs,
libraries and types within that ruleset.
DesignChecker comes with a built-in set of parameterized, optimized base rules. Each of these
base rules has a set of configurable parameters. This means that the tool can implement
hundreds of common rules from a set of approximately 100 parameterized base rules.
The rulesets are typically defined by a project administrator and shared by all the team members
working on a project. This ensures that all designs in the project meet the same common project
standards.
1. Invoke DesignChecker through HDL Designer Series by choosing Manage Policies/
Rulesets from the Tools menu in the main HDL Designer Series design manager
window.
8
DesignChecker Tutorial, V2013.1
December 2013
Configuring DesignChecker
Creating a Ruleset
2. The Setup window contains three default folders for Policies, RuleSets and Base Rules.
3. Expand the RuleSets folder by clicking on the
symbol.
The preconfigured Reuse Methodology Manual (RMM) is available in the RuleSets
folder, in addition to the preconfigured Altera, Checklist, DO-254, Essentials, SafetyCritical and Xilinx rulesets.
DesignChecker Tutorial, V2013.1
December 2013
9
Configuring DesignChecker
Creating a Ruleset
4. Create a new ruleset by selecting the RuleSets folder and using the right mouse button to
choose New RuleSet from the popup menu:
5. Change the name of your new ruleset to Basic. Notice the
that your new ruleset has not yet been saved.
10
overlay which indicates
DesignChecker Tutorial, V2013.1
December 2013
Configuring DesignChecker
Creating a Ruleset
Copying a Base Rule
You can copy individual base rules into your ruleset.
1. Expand the Base Rules folder using the
DesignChecker Tutorial, V2013.1
December 2013
symbol and select the Style category:
11
Configuring DesignChecker
Creating a Ruleset
You will see a set of base rules for this category displayed in the Content pane:
2. Select the Length base rule and make a copy in your Basic ruleset folder by dragging and
dropping with your left mouse button. (Alternatively, you can use the Copy and Paste
commands from the popup menu or use the Ctrl + C and the Ctrl + V keyboard
shortcuts.)
Your ruleset should now contain a copy of the Length rule which appears in the Content
pane when the Basic ruleset is selected.
12
DesignChecker Tutorial, V2013.1
December 2013
Configuring DesignChecker
Creating a Ruleset
Configuring a Rule
1. Select your copy of the Length rule in the Content pane for your Basic ruleset. The
parameters for your freshly configured rule are shown in the Parameters pane:
2. Investigate the Length rule by selecting the Base Rule Reference Guide from the Help
menu. This opens a new browser window containing the HTML Base Rule Reference
Guide. Scroll down until you reach the entry for the Length Rule, under the Style Base
Rules Heading.
The Name, Severity, Language, Hint, Short Description and Keywords parameters are
common to all rules. These are displayed in the Parameters pane.
Note
You can access information about these parameters by choosing Common Base Rule
Parameters from the Help menu.
Many rules have additional parameters which are specific to that rule. In this example,
you will change a number of the parameters.
Note
You can resize any column in the parameters pane by dragging the symbol in the
column heading.
DesignChecker Tutorial, V2013.1
December 2013
13
Configuring DesignChecker
Creating a Ruleset
3. Configure the copy of the Length base rule to warn against the use of lines longer than
45 characters by double-clicking on the default value for the Severity parameter and
choosing Warning from the drop-down list.
4. Double-click on the default value for the Hint parameter and enter the new text: “Line
exceeds 45 characters.”
5. Place your cursor in the Max. Length field and change the value from 72 to 45.
6. Double-click on the default value for the Language parameter to display the Parameters
for Language dialog box. Ensure that the VHDL Any and Verilog Any check boxes are
selected.
Note
You can access the full description of a base rule by using the
menu button or by
choosing Base Rule Details from the popup menu in the Content pane when the required
rule is selected; this displays the corresponding page of the Base Rule Reference Guide in
your HTML browser. Alternatively, you can choose Base Rule Reference Guide from
the Help menu to display the contents page of the Base Rule Reference Guide in your
HTML browser.
7. Click the OK button to complete your selection and close the Parameters for Language
dialog box.
14
DesignChecker Tutorial, V2013.1
December 2013
Configuring DesignChecker
Creating a Ruleset
Copying a Ruleset
You can also copy an existing ruleset or base rule folder into your own ruleset folder. Typically,
you might copy several rulesets, delete rules that are not required and then configure the
remaining rules. This provides a rapid way to create a new ruleset.
1. Select the Declarations folder from the Base Rules in the Folders pane and drag it into
your Basic ruleset.
DesignChecker Tutorial, V2013.1
December 2013
15
Configuring DesignChecker
Creating a Ruleset
2. Open the Declarations folder by double-clicking on it in the Content pane. Select the
Hard Coded Numeric Values rule and change its severity value to Note.
3. Now you will add a rule to check the naming conventions used. Use the Search button
to open the find field on the menu bar, enter the text “name” and press the Find Now
button.
Your search identifies all the rules containing the text “name”.
4. Select the Mixed Case Naming rule from the Search results pane. Use drag and drop to
add it to your Basic ruleset.
5. Close the search pane by clicking on the Close button.
6. Open the RMM folder in your Rulesets folder and examine the range of rules available.
These have been preconfigured to meet the specifications of the Reuse Methodology
Manual. Choose the 4 - Clocks & Resets sub-folder and use Copy from the popup menu.
16
DesignChecker Tutorial, V2013.1
December 2013
Configuring DesignChecker
Creating a Ruleset
Select your Basic ruleset folder and choose Paste from the popup menu to create a copy
in your ruleset.
7. Return to the Base Rules and investigate the Allow folder. Use drag and drop to create a
copy of the Allowed Constructs rule in your ruleset.
8. Save your configured rules and ruleset by using the Save All button or choosing Save
All from the File menu.
Notice that the
overlay is cleared to indicate that your rules and ruleset have been
saved since they were last changed.
DesignChecker Tutorial, V2013.1
December 2013
17
Configuring DesignChecker
Creating a Policy
Creating a Policy
A policy is a high level folder that references your rulesets. You use your policies to enable and
disable sub-sets of checks defined in a ruleset. This enables you to configure policies that can be
applied at different stages of the development process. DesignChecker applies policies to
provide only results that are pertinent to your current work, rather than flooding you with too
much information.
For example, early in the design process, you may want to run your Basic ruleset to check
language issues. Later, as the design moves forward, you may want to apply a more rigorous set
of checks. You can also disable rulesets or individual rules using your policies.
Perform the following steps to create your own policy:
1. Select the Policies folder in the Folders window and use the right mouse button to
choose New Policy from the popup menu.
2. Change the name of the new policy to Tutorial. Notice the
that the new policy has not yet been saved.
18
overlay which indicates
DesignChecker Tutorial, V2013.1
December 2013
Configuring DesignChecker
Creating a Policy
3. Select your Basic ruleset from the RuleSets folder and drag it into the Tutorial policy.
This creates a reference to your Basic ruleset.
You can quickly build up multiple policies by referencing rulesets in this way.
4. Set your Tutorial policy as your default policy by selecting it and using the right mouse
button to choose Set as Default from the popup menu. Notice that the indicator
moves to the Tutorial policy and the policy name is emboldened.
You can enable or disable the rulesets and individual rules in a policy before any
analysis takes place by setting or unsetting check marks in the Folders and/or Content
panes.
All rulesets and rules in the Tutorial policy should be enabled for this tutorial.
5. Save your policy by using the Save All button or choosing Save All from the File menu.
DesignChecker Tutorial, V2013.1
December 2013
19
Configuring DesignChecker
Creating a Policy
Notice that the
overlay is cleared to indicate that your policy has been saved since it
was last changed.
20
DesignChecker Tutorial, V2013.1
December 2013
Configuring DesignChecker
Running an Analysis
Running an Analysis
You can run an analysis on single or multiple levels of hierarchy from within the HDL Designer
Series design explorer, within the DesignPad text editor or by running in batch mode from the
command line. This part of the tutorial uses the policy and rules you created earlier to run an
analysis.
Selecting Files or Design Units for Analysis
This section shows you how to select files/design units and run an analysis from the design
explorer of your HDL Designer Series tool.
Note
You can run the DesignChecker analysis either on a file in the Files pane or on a design
unit in the Design Units pane. If you run on a file, the file and all its pertinent design units
are checked; alternatively, if you run on a design unit, only this design unit is checked
(and its underlying design units if you run hierarchically). In this tutorial, you will be
analyzing a design unit hierarchically through components.
1. Open the Examples project in the main HDL Designer Series design manager window
(if it is not already active) by using the Open Project shortcut or by choosing Open>
Project from the File menu to display the Open Project dialog box:
DesignChecker Tutorial, V2013.1
December 2013
21
Configuring DesignChecker
Running an Analysis
2. Open the UART library in the design explorer and select the uart_tb design unit. Set this
as your design root by choosing Set Design Root from the popup menu.
3. Select and run the flow through components from the drop down palette on the
DesignChecker toolbar (or by choosing Run Through Components from the
DesignChecker Flow cascade in the Tasks menu):
22
DesignChecker Tutorial, V2013.1
December 2013
Configuring DesignChecker
Running an Analysis
A list of all objects analyzed and a completion message is issued in the HDL Designer
log window and the results window is displayed in DesignChecker:
This concludes this part of the DesignChecker tutorial. You have learnt how to:
•
•
•
•
•
•
Select and configure individual rules.
Create a ruleset.
Create a policy.
Select files/design units for analysis.
Set the design root.
Run an analysis.
In the next chapter you will look at the results from your analysis in detail and learn how to use
DesignChecker’s powerful filtering and cross-referencing features. You will also be introduced
to the DesignPad text editor.
DesignChecker Tutorial, V2013.1
December 2013
23
Configuring DesignChecker
Running an Analysis
24
DesignChecker Tutorial, V2013.1
December 2013
Chapter 2
Working with Results
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Analyzing Results. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Summarized Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Using Viewpoints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Checking Rule Details . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Examining Checked Files/Design Units . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Excluding Files from Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Setting a Black Box . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Using the Black Box Setting. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
The Don’t Touch Setting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Excluding Rules from Analysis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Cross-Referencing Results in DesignPad. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
25
26
27
29
33
28
29
38
38
39
39
45
47
Cross-Referencing to Graphics. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Exporting Results. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
49
52
Overview
This chapter provides an introduction to understanding and working with DesignChecker
results. Using the example UART library you will learn how to:
•
•
•
•
Interpret the summary information.
Use viewpoints and filter results.
Use DesignChecker’s powerful cross-referencing capabilities with DesignPad.
Export results.
DesignChecker Tutorial, V2013.1
December 2013
25
Working with Results
Introduction
Introduction
In the previous chapter you learnt how to configure DesignChecker rulesets and policies. You
also learnt how to select design units for analysis and set your design root. The last chapter
concluded by running an analysis.
In this chapter you will look in detail at the results from that analysis. You will be introduced to
viewpoints and learn how to use filters to tailor the available information to meet your needs.
You will also investigate DesignChecker’s powerful cross-referencing capabilities and use the
DesignPad editor. Finally you will learn how to export your DesignChecker results in a variety
of formats.
Ensure that the Results window is open. You may have to navigate to the Results window by
clicking on the Results tab. You will see the results from running the Tutorial policy you
created in the last chapter.
Note
Your results may vary from those shown if you have selected a different set of files for
analysis or if your ruleset does not match the Basic ruleset or the Tutorial policy
described in Chapter 1. If this happens you should repeat the setup steps in Chapter 1 as
they are necessary for the successful completion of this part of the tutorial.
26
DesignChecker Tutorial, V2013.1
December 2013
Working with Results
Analyzing Results
Analyzing Results
You can examine your results in DesignChecker by selecting the Rule Details, the Checked
Files/Design Units and the Results tabs.
The Rule Details window displays the policy applied to your latest DesignChecker analysis. It
also shows the list of the rulesets in your selected policy. See Checking Rule Details
The Checked Files/Design Units window shows the files and design units that have been
analyzed in the latest DesignChecker analysis. See Examining Checked Files/Design Units
The Results window displays the details of rule violations encountered during an analysis. It
also displays a range of summary tables giving information about the analysis run. You can use
the results window to drill down to specific issues, and cross-reference between DesignChecker
and your source code with DesignPad. Additionally, you can cross-reference results using the
available graphical editors. See Summarized Results and Using Viewpoints
DesignChecker Tutorial, V2013.1
December 2013
27
Working with Results
Analyzing Results
Checking Rule Details
The Rule Details window displays the names of the policy, ruleset and configured rules. It also
shows information about these rules as shown below.
Tip: Double-clicking on any rule will open the Setup tab with the same rule highlighted,
or you can right-click on any rule and select Show Rule/RuleSet from the popup menu.
28
DesignChecker Tutorial, V2013.1
December 2013
Working with Results
Analyzing Results
Examining Checked Files/Design Units
The Checked Files/Design Units displays the names of the files/design units and shows
information about these files/design units as shown below.
Summarized Results
The results summary displays six panes containing information. These can be expanded or
collapsed to show or hide the contents of each pane.
1. Use the
icon to expand and examine each pane of the Summary window.
DesignChecker Tutorial, V2013.1
December 2013
29
Working with Results
Analyzing Results
The Settings pane displays information about the design being analyzed:
Note
The master clock and master reset are required if your policy includes clock and reset
checks. These are specified in the HDL Designer Series design explorer.
The Exclusions pane shows information on only the exclusion settings that affected the
latest analysis results. It states the number of Policy Disabled Rules, Code/Rule
Exclusions, Black Box Files, and Exclusion Pragmas that have been involved in the
latest run. Since no exclusions have been applied in the previous steps of the tutorial, all
entries will have the value “0”.
The Design Quality pane displays the results of the design quality analysis if the Design
Quality Metric feature is activated. However, if this feature is not activated, then this
pane does not display any information and only indicates that “Analysis is turned off”.
Refer to the DesignChecker User Guide for information about measuring your design
quality.
30
DesignChecker Tutorial, V2013.1
December 2013
Working with Results
Analyzing Results
The Violations pane summarizes the number of error, warning, and note rule violations
for each type of design object:
Your results may vary depending on the contents of the Basic ruleset that you created
earlier.
Note
You can view the details of the violations for each scope by double-clicking on its row in
the table.
2. Double-click on the Entity row in the violations table.
DesignChecker Tutorial, V2013.1
December 2013
31
Working with Results
Analyzing Results
This creates the viewpoint Violations for Scope Entity in the main results window that
shows details of rule violations within entities.
3. Use the Revert Viewpoint button to revert to the default viewpoint.
32
DesignChecker Tutorial, V2013.1
December 2013
Working with Results
Analyzing Results
The Rules pane summarizes violations within the context of your policy.
There should be three failures out of ten rules for the Declarations ruleset. Additional
rows may be shown depending on the contents of the Basic ruleset that you created
earlier with the totals shown on the ALL row.
The Design Units pane shows the rule violations for each design unit:
You can optionally close the summary window by using the Close button. The window
can also be shown or hidden by setting the Summary Window option in the View
menu.
Using Viewpoints
Viewpoints allow you to control how the detailed results are displayed. You created the
viewpoint Violations for Scope Entity in an earlier procedure when you double-clicked on the
Entity row in the Violations summary table.
DesignChecker Tutorial, V2013.1
December 2013
33
Working with Results
Analyzing Results
1. Use the Viewpoint Manager button to open the viewpoint manager.
Notice that a default viewpoint in addition to other example viewpoints are available.
You can use the Columns, Groups or Filters options in the viewpoint manager to
control how your results are displayed. Refer to the DesignChecker User Guide for
information about using these features.
2. Select the Severity & Ruleset viewpoint and make it active by clicking on the Set Active
button:
This viewpoint displays the results hierarchically by severity (Error, Warning or Note),
then by ruleset, design unit and violation.
3. Expand the Error for the Declarations ruleset using the icons or by selecting the
Declarations error and choosing Expand From Here in the popup menu.
34
DesignChecker Tutorial, V2013.1
December 2013
Working with Results
Analyzing Results
A series of error violation messages prefixed by the red
shown below:
icon should be displayed as
4. Move the mouse cursor over one of the violation messages and notice that an object tip
is displayed showing the rule that has been violated, the line number containing the
violation and the full message text.
5. Use your mouse to select Base Rule Details from the popup menu. This opens a
browser window containing the appropriate entry in the Base Rule Reference Guide.
6. Expand one of the violation messages to reveal the code snippet which contains the rule
violation and a hint message suggesting corrective action.
DesignChecker Tutorial, V2013.1
December 2013
35
Working with Results
Analyzing Results
Notice that the line containing the rule violation is shown with red text and the actual
violation is highlighted in yellow:
Note
You can expand the code snippet to display additional lines by placing your cursor over
the bounding line between the code snippet and the hint message. The bounding line is
highlighted in red and mouse cursor changes to a vertical double arrow which can be
dragged to show a broader or narrower context for your code snippet.
7. Select the rule violation (which is shown with a blue background when selected) and
choose Show Rule from the Results menu or popup menu.
This action displays the setup window with the Declarations ruleset folder and the
Unused Declarations rule selected. Tracing to the rule in this way, allows you to easily
check the rule parameters in order to determine why the rule was violated.
8. Click the Results tab to return to the Results window.
You can cross-reference to the policy or ruleset in a similar way. Alternatively, you can
use the Base Rule Details button or choose Base Rule Details from the popup menu to
36
DesignChecker Tutorial, V2013.1
December 2013
Working with Results
Analyzing Results
display the rule description on the relevant page of the Base Rule Reference Guide in
your HTML browser.
DesignChecker Tutorial, V2013.1
December 2013
37
Working with Results
Excluding Files from Analysis
Excluding Files from Analysis
You can tell DesignChecker to exclude certain files from analysis using the Black Box and
Don’t Touch settings. Any component can be set as a black box. If a black box is set,
DesignChecker will not examine it for errors, but will include it within the overall analysis so
that a complete design can be checked. The Don’t Touch setting excludes a component from the
entire analysis. You can also exclude certain code blocks from analysis using the Exclusion
Pragmas settings.
Setting a Black Box
1. Open the UART example library in the design explorer.
2. Ensure you are using the Design Units mode.
3. Use your mouse to select the xmit_rcv_control block, right-click and then choose Edit
Black-Box Settings from the DesignChecker cascade.
The Black-Box Settings dialog box is displayed. Check the Black-Box selected file(s)
check box then click OK.
38
DesignChecker Tutorial, V2013.1
December 2013
Working with Results
Excluding Files from Analysis
An icon appears, indicating that a black box has been set. If this is not visible, rightclick on the header of the Design Unit view and select Black Box Indicator from the
popup menu.
Using the Black Box Setting
You have now set part of the UART library as a black box. You can now re-run your analysis to
see the impact this has on your results.
1. Choose Re-run last Analysis from the Run menu.
2. Examine the results and notice that the number of violations reported in the summary
window has been reduced.
On opening the Exclusions pane in the summary window, you will find it reporting the
existence of one Black Box File as shown in the following figure.
Note
The added Black Box file is displayed in the DesignChecker Exclusions tab, namely in
the Black Boxed Files pane. Note that the Exclusions tab shows all the available
exclusion settings whether they affect the analysis results or not, whereas the Results
Summary window shows information on only the exclusions that have affected the
analysis results.
To remove the black box setting, select the xmit_rcv_control block in the HDL Designer
Series design explorer, right-click and choose Edit Black-Box Settings from the
DesignChecker cascade. The Black-Box Settings dialog box is displayed. Uncheck the
Black-Box selected file(s) check box then click OK.
The Don’t Touch Setting
The Don’t Touch setting excludes files completely from analysis. HDL Designer Series users
may wish to use the Don’t Touch feature within the design manager to exclude specific files.
DesignChecker Tutorial, V2013.1
December 2013
39
Working with Results
Excluding Files from Analysis
Files can be marked Don’t Touch by selecting Don’t Touch Settings from the popup menu or
the Edit menu and completing the Don’t Touch Settings Dialog box. Files marked Don’t Touch
have a icon next to them in the design manager.
Enabling Pragma Exclusion
You have the ability to exclude certain parts of your code from analysis. Exclusion via Pragma
Pairs enables you to force DesignChecker to skip specific RTL code blocks while running an
analysis. For example, parts of your code may be used only for debugging purposes, and hence,
it may not be necessary to have these parts checked.
To enable pragma exclusion, do the following:
1. Ensure you have removed any Don’t Touch markers from your files.
2. In the Files pane of the HDS Design Manager, use the plus
DesignChecker tree.
40
sign to expand the
DesignChecker Tutorial, V2013.1
December 2013
Working with Results
Excluding Files from Analysis
3. Right-click on the Exclusions: Pragmas node and click on Enable Pragma Exclusion.
Note
Note that synthesis pragmas are always enabled. You can disable pragma exclusion by
selecting Disable Pragma Exclusion from the pop up menu of the Exclusion: Pragmas
node.
4. Within your source code, use the exclusion pragmas to encase the excluded code.
For example, you can do the following:
a. Open the Design Files node in the Files pane.
b. Expand the UART library and then double-click on the file status_registers_spec.vhd
to open it.
DesignChecker Tutorial, V2013.1
December 2013
41
Working with Results
Excluding Files from Analysis
c. Insert the start pragma -- pragma checking_off at the beginning of the file, and
likewise insert the end pragma -- pragma checking_on at the end of the file.
The start pragma is placed as a comment before the beginning of the code block as
an indication for DesignChecker to stop analysis at this point; similarly, the end
pragma is placed as a comment after the end of the code block as an indication to
resume analysis.
Using the Exclusion Pragmas
You have now excluded part of your code from design checking. You can re-run your analysis
to see the impact this has on your results.
1. Choose Re-run last Analysis from the Run menu.
2. Examine the results and notice that the number of violations reported in the summary
window has been reduced.
On opening the Exclusions pane in the summary window, you will find it reporting the
existence of two Exclusion Pragmas as shown in the following figure.
3. Open the Exclusions tab; in the Exclusion Pragmas section you will find the
checking_off/on pragma pair you enabled.
Note
The Exclusions tab shows all the available exclusion settings whether they affect the
analysis results or not, whereas the Results Summary window shows information on only
the exclusions that have affected the analysis results.
4. Right-click on the pragma and select Open Source File(s) from the popup menu.
42
DesignChecker Tutorial, V2013.1
December 2013
Working with Results
Excluding Files from Analysis
The source file status_registers_spec.vhd is opened in the DesignPad; note that
excluded code is highlighted in gray by default.
DesignChecker Tutorial, V2013.1
December 2013
43
Working with Results
Excluding Files from Analysis
You can remove the exclusion pragma by doing one of the following:
44
•
In the DesignChecker Exclusions tab, you can right-click on the pragma and select
Remove Exclusion from the popup menu.
•
In the Files pane of the HDL Designer Series, expand the DesignChecker node and
right-click on Exclusion: Pragmas node and click on Disable Pragma Exclusion.
DesignChecker Tutorial, V2013.1
December 2013
Working with Results
Excluding Rules from Analysis
Excluding Rules from Analysis
At times you may want to turn off one or more of the checks. For example, you may wish to
check that just one set of issues has been resolved. One solution is to create a new policy
containing only the rules you wish to apply. However, this can quickly become cumbersome, so
DesignChecker enables you to selectively disable rules from the Results window.
1. Ensure you have removed any black box markers from your files.
2. Open the Results window, and drill down into the Warning messages (identified by a
blue
symbol).
These should all relate to the Length rule you customized earlier.
3. Pick any violation, and expand it so that you can see the relevant code snippet. Choose
Disable Rule For > Policy ‘Tutorial’ from the Results or the popup menu.
Notice that the background color of all violations relating to the Length rule has
changed.
4. Re-run your analysis. Your results should not contain any warning messages.
DesignChecker Tutorial, V2013.1
December 2013
45
Working with Results
Excluding Rules from Analysis
5. Navigate to the Setup window by clicking on the Setup tab. Expand your Tutorial
policy. Notice that the policy icon now has a symbol indicating that the policy has
been changed, and that the Length rule in the Content pane is unchecked.
6. Re-check the Length rule in the Content pane, then save your policy by using the Save
All button or choosing Save All from the File menu.
46
DesignChecker Tutorial, V2013.1
December 2013
Working with Results
Cross-Referencing Results in DesignPad
Cross-Referencing Results in DesignPad
You can automatically open the DesignPad text editor at the line of code corresponding to any
rule violation selected in the DesignChecker results window.
1. Navigate to the Results window by selecting the Results tab. Select a rule violation and
use the Open HDL shortcut or choose Open HDL from the Results menu or popup
menu.
DesignPad is invoked with the line containing the violation shown in dark blue in its
Report pane. Lines with a single error are highlighted in red. The violation messages are
shown in a separate split screen view below the HDL text.
Any lines or elements in a line that contain multiple violations (overlapping messages)
are highlighted in yellow. Warnings are highlighted in blue and notes in green. You can
change the syntax highlighting colors by setting preferences in DesignPad. Refer to the
DesignPad Text Editor User Guide for information about setting DesignPad
preferences.
DesignChecker Tutorial, V2013.1
December 2013
47
Working with Results
Cross-Referencing Results in DesignPad
2. Use the Go To Next Message and Go To Previous Message buttons in the DesignPad
Search toolbar to step through the messages in DesignPad.
You can also view the rule violations in the DesignPad code browser as accumulated
totals after each object name.
For example: spec[2,0,0] indicates that there are 2 error violations (red), no warning
(blue) and no note (green) violations for the spec module. There are no error, warning or
note violations for ports or parameters but there are two error violations for the
declarations.
Many of the analysis commands are available from additional DesignChecker pulldown
and popup menus which are added to DesignPad when it has been invoked from within
DesignChecker. For example, you can display the hint message for the violation under
the cursor, show the corresponding rule or disable the rule.
HDL Designer Series users can run the analysis task from within DesignPad using the
Run Analysis Single button. The DesignChecker task will select the most appropriate
design unit as the top unit. This is normally the design unit in closest proximity to the
selected code block.
3. Choose Exit from the File menu to close DesignPad.
Note
For more detailed information about using the DesignPad text editor, consult the
DesignPad Text Editor User Guide.
48
DesignChecker Tutorial, V2013.1
December 2013
Working with Results
Cross-Referencing to Graphics
Cross-Referencing to Graphics
HDL Designer Series users also have the ability to cross-reference between a rule violation in
DesignChecker to a graphical source view in one of the HDL Designer Series graphical editors.
1. Open the UART library.
2. Select the address_decode design unit in your HDL Designer Series product design
explorer and use the
button to run the DesignChecker flow.
DesignChecker launches with the Results window active.
3. Use the Viewpoint Manager button to open the viewpoint manager in DesignChecker
and choose the Filters option.
DesignChecker Tutorial, V2013.1
December 2013
49
Working with Results
Cross-Referencing to Graphics
4. Choose Full Message from the pulldown list of the Show objects if field. Enter the text
“used” in the field contains entry box and click on the Apply button:
There should be two errors displayed when you expand the results window:
5. Click on either of the violations and trace to the block diagram by using the Open
Source button or by choosing Open Source from the Results or popup menu.
50
DesignChecker Tutorial, V2013.1
December 2013
Working with Results
Cross-Referencing to Graphics
The block diagram opens centered on the address_decode component.
Note
Tracing either violation selects the same component.
DesignChecker can be used to cross reference between all the HDL Designer Series
graphical editors in this way. It will always launch the editor with the appropriate design
component selected.
You can practise building your own rulesets and policies, and test them against the
UART example library to explore this feature in greater depth.
6. When you are ready, close the block diagram.
DesignChecker Tutorial, V2013.1
December 2013
51
Working with Results
Exporting Results
Exporting Results
You can export various information on your latest DesignChecker analysis through the Export
Results dialog box. You can generate reports on the latest results, the summary, the exclusion
settings applied to the analysis, details on the rules used in the analysis, in addition to
information on the files/design units that have been analyzed.
1. Choose Export Results from the File menu in DesignChecker to display the Export
Results dialog box.
2. Select the Summary tab to generate a report summarizing DesignChecker results.
3. Check the Enable Export check box and specify the location and the type of the file.
CSV format is written with the file extension .csv, TSV format with the file extension
.txt and HTML format with the extension .htm.
These file extensions are normally registered on a Windows system to open CSV files in
Microsoft Excel, TSV files in your default text editor and HTML files in your default
HTML browser.
Note
TSV files can also be imported (or dragged and dropped) into a Microsoft Excel
spreadsheet.
52
DesignChecker Tutorial, V2013.1
December 2013
Working with Results
Exporting Results
4. Optionally, specify the sections to be displayed in the Summary report by checking them
in the Selectivity Enable Export of Summary Pane Sub Section field then click OK.
5. Navigate to the location specified in step 3 and examine your file.
DesignChecker Tutorial, V2013.1
December 2013
53
Working with Results
Exporting Results
6. You can also generate a report summarizing the details of the rules used in the analysis
by selecting the Rule Details tab and performing steps 3 and 5.
7. Try exporting other reports — results, exclusions and checked files/design units — to a
location of your choice and view the results.
This concludes the DesignChecker tutorial. In this tutorial you have learnt how to:
•
•
•
•
•
•
54
Create and configure rulesets and policies.
Run an analysis.
Exclude files from analysis.
Exclude rules from analysis.
Examine and understand results.
Cross-reference your results to the source using DesignPad.
DesignChecker Tutorial, V2013.1
December 2013
Working with Results
Exporting Results
•
•
Cross-reference your results to other Graphical editors.
Export results.
DesignChecker Tutorial, V2013.1
December 2013
55
Working with Results
Exporting Results
56
DesignChecker Tutorial, V2013.1
December 2013
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
Index
Index
—A—
Analysis
excluding files, 38
Results, 27
running, 21, 39, 42
selecting files, 21
setting Design Root, 22
—B—
Base Rule, 9
Common Parameters, 13
copying, 11
Details, 14, 35
Reference Guide, 13, 14, 35
—D—
Design Explorer, 21, 38
Design Manager, 8, 21, 39
DesignChecker
Flow, 7
invoke, 8
Results window, 23, 26
Summary window, 29
toolbar, 22
DesignPad, 21, 47
Dialog box
Export Results, 52
Open Project, 21
Parameters for Language, 14
Don’t Touch, 39
—E—
Edit Balck-Box Settings, 39
Edit Black-Box Settings, 38
Master Reset, 30
—P—
Policies, 9, 18
Policy, 36
creating, 18
setting as default, 19
Project
opening, 21
—R—
Results
analyzing, 27
Cross-Referencing in DesignPad, 47
Cross-Referencing to Graphics, 49
Exporting, 52
summarized, 29
Design Quality, 30
design units, 33
exclusions, 30
rules, 33
settings, 30
violations, 31
Reuse Methodology Manual, 9, 16
Rule
configuring, 13
disabling, 45
enabling and disabling, 19
Ruleset, 9, 19, 36
copying, 15
creating, 8
enabling and disabling, 19
—S—
—H—
Search, 16
finding a rule, 16
HDL Designer Series, 8, 21
—V—
—M—
Viewpoint, 49
reverting to the default, 32
using, 33
Manage Policies/ Rulesets, 8
Master Clock, 30
DesignChecker Tutorial, V2013.1
December 2013
57
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
Violations for Scope Entity, 32
58
DesignChecker Tutorial, V2013.1
December 2013
End-User License Agreement
The latest version of the End-User License Agreement is available on-line at:
www.mentor.com/eula
IMPORTANT INFORMATION
USE OF ALL SOFTWARE IS SUBJECT TO LICENSE RESTRICTIONS. CAREFULLY READ THIS LICENSE
AGREEMENT BEFORE USING THE PRODUCTS. USE OF SOFTWARE INDICATES CUSTOMER’S
COMPLETE AND UNCONDITIONAL ACCEPTANCE OF THE TERMS AND CONDITIONS SET FORTH IN
THIS AGREEMENT. ANY ADDITIONAL OR DIFFERENT PURCHASE ORDER TERMS AND CONDITIONS
SHALL NOT APPLY.
END-USER LICENSE AGREEMENT (“Agreement”)
This is a legal agreement concerning the use of Software (as defined in Section 2) and hardware (collectively “Products”)
between the company acquiring the Products (“Customer”), and the Mentor Graphics entity that issued the
corresponding quotation or, if no quotation was issued, the applicable local Mentor Graphics entity (“Mentor
Graphics”). Except for license agreements related to the subject matter of this license agreement which are physically
signed by Customer and an authorized representative of Mentor Graphics, this Agreement and the applicable quotation
contain the parties’ entire understanding relating to the subject matter and supersede all prior or contemporaneous
agreements. If Customer does not agree to these terms and conditions, promptly return or, in the case of Software
received electronically, certify destruction of Software and all accompanying items within five days after receipt of
Software and receive a full refund of any license fee paid.
1.
ORDERS, FEES AND PAYMENT.
1.1. To the extent Customer (or if agreed by Mentor Graphics, Customer’s appointed third party buying agent) places and
Mentor Graphics accepts purchase orders pursuant to this Agreement (“Order(s)”), each Order will constitute a contract
between Customer and Mentor Graphics, which shall be governed solely and exclusively by the terms and conditions of
this Agreement, any applicable addenda and the applicable quotation, whether or not these documents are referenced on the
Order. Any additional or conflicting terms and conditions appearing on an Order or presented via any electronic portal or
other automated order management system will not be effective unless agreed in writing by an authorized representative of
Customer and Mentor Graphics.
1.2. Amounts invoiced will be paid, in the currency specified on the applicable invoice, within 30 days from the date of such
invoice. Any past due invoices will be subject to the imposition of interest charges in the amount of one and one-half
percent per month or the applicable legal rate currently in effect, whichever is lower. Prices do not include freight,
insurance, customs duties, taxes or other similar charges, which Mentor Graphics will state separately in the applicable
invoice(s). Unless timely provided with a valid certificate of exemption or other evidence that items are not taxable, Mentor
Graphics will invoice Customer for all applicable taxes including, but not limited to, VAT, GST, sales tax, consumption tax
and service tax. Customer will make all payments free and clear of, and without reduction for, any withholding or other
taxes; any such taxes imposed on payments by Customer hereunder will be Customer’s sole responsibility. If Customer
appoints a third party to place purchase orders and/or make payments on Customer’s behalf, Customer shall be liable for
payment under Orders placed by such third party in the event of default.
1.3. All Products are delivered FCA factory (Incoterms 2010), freight prepaid and invoiced to Customer, except Software
delivered electronically, which shall be deemed delivered when made available to Customer for download. Mentor
Graphics retains a security interest in all Products delivered under this Agreement, to secure payment of the purchase price
of such Products, and Customer agrees to sign any documents that Mentor Graphics determines to be necessary or
convenient for use in filing or perfecting such security interest. Mentor Graphics’ delivery of Software by electronic means
is subject to Customer’s provision of both a primary and an alternate e-mail address.
2.
GRANT OF LICENSE. The software installed, downloaded, or otherwise acquired by Customer under this Agreement,
including any updates, modifications, revisions, copies, documentation and design data (“Software”) are copyrighted, trade
secret and confidential information of Mentor Graphics or its licensors, who maintain exclusive title to all Software and retain
all rights not expressly granted by this Agreement. Mentor Graphics grants to Customer, subject to payment of applicable
license fees, a nontransferable, nonexclusive license to use Software solely: (a) in machine-readable, object-code form (except
as provided in Subsection 5.2); (b) for Customer’s internal business purposes; (c) for the term of the license; and (d) on the
computer hardware and at the site authorized by Mentor Graphics. A site is restricted to a one-half mile (800 meter) radius.
Customer may have Software temporarily used by an employee for telecommuting purposes from locations other than a
Customer office, such as the employee’s residence, an airport or hotel, provided that such employee’s primary place of
employment is the site where the Software is authorized for use. Mentor Graphics’ standard policies and programs, which vary
depending on Software, license fees paid or services purchased, apply to the following: (a) relocation of Software; (b) use of
Software, which may be limited, for example, to execution of a single session by a single user on the authorized hardware or for
a restricted period of time (such limitations may be technically implemented through the use of authorization codes or similar
devices); and (c) support services provided, including eligibility to receive telephone support, updates, modifications, and
revisions. For the avoidance of doubt, if Customer provides any feedback or requests any change or enhancement to Products,
whether in the course of receiving support or consulting services, evaluating Products, performing beta testing or otherwise, any
inventions, product improvements, modifications or developments made by Mentor Graphics (at Mentor Graphics’ sole
discretion) will be the exclusive property of Mentor Graphics.
3.
ESC SOFTWARE. If Customer purchases a license to use development or prototyping tools of Mentor Graphics’ Embedded
Software Channel (“ESC”), Mentor Graphics grants to Customer a nontransferable, nonexclusive license to reproduce and
distribute executable files created using ESC compilers, including the ESC run-time libraries distributed with ESC C and C++
compiler Software that are linked into a composite program as an integral part of Customer’s compiled computer program,
provided that Customer distributes these files only in conjunction with Customer’s compiled computer program. Mentor
Graphics does NOT grant Customer any right to duplicate, incorporate or embed copies of Mentor Graphics’ real-time operating
systems or other embedded software products into Customer’s products or applications without first signing or otherwise
agreeing to a separate agreement with Mentor Graphics for such purpose.
4.
BETA CODE.
4.1. Portions or all of certain Software may contain code for experimental testing and evaluation (which may be either alpha or
beta, collectively “Beta Code”), which may not be used without Mentor Graphics’ explicit authorization. Upon Mentor
Graphics’ authorization, Mentor Graphics grants to Customer a temporary, nontransferable, nonexclusive license for
experimental use to test and evaluate the Beta Code without charge for a limited period of time specified by Mentor
Graphics. This grant and Customer’s use of the Beta Code shall not be construed as marketing or offering to sell a license
to the Beta Code, which Mentor Graphics may choose not to release commercially in any form.
4.2. If Mentor Graphics authorizes Customer to use the Beta Code, Customer agrees to evaluate and test the Beta Code under
normal conditions as directed by Mentor Graphics. Customer will contact Mentor Graphics periodically during Customer’s
use of the Beta Code to discuss any malfunctions or suggested improvements. Upon completion of Customer’s evaluation
and testing, Customer will send to Mentor Graphics a written evaluation of the Beta Code, including its strengths,
weaknesses and recommended improvements.
4.3. Customer agrees to maintain Beta Code in confidence and shall restrict access to the Beta Code, including the methods and
concepts utilized therein, solely to those employees and Customer location(s) authorized by Mentor Graphics to perform
beta testing. Customer agrees that any written evaluations and all inventions, product improvements, modifications or
developments that Mentor Graphics conceived or made during or subsequent to this Agreement, including those based
partly or wholly on Customer’s feedback, will be the exclusive property of Mentor Graphics. Mentor Graphics will have
exclusive rights, title and interest in all such property. The provisions of this Subsection 4.3 shall survive termination of
this Agreement.
5.
RESTRICTIONS ON USE.
5.1. Customer may copy Software only as reasonably necessary to support the authorized use. Each copy must include all
notices and legends embedded in Software and affixed to its medium and container as received from Mentor Graphics. All
copies shall remain the property of Mentor Graphics or its licensors. Customer shall maintain a record of the number and
primary location of all copies of Software, including copies merged with other software, and shall make those records
available to Mentor Graphics upon request. Customer shall not make Products available in any form to any person other
than Customer’s employees and on-site contractors, excluding Mentor Graphics competitors, whose job performance
requires access and who are under obligations of confidentiality. Customer shall take appropriate action to protect the
confidentiality of Products and ensure that any person permitted access does not disclose or use Products except as
permitted by this Agreement. Customer shall give Mentor Graphics written notice of any unauthorized disclosure or use of
the Products as soon as Customer becomes aware of such unauthorized disclosure or use. Except as otherwise permitted for
purposes of interoperability as specified by applicable and mandatory local law, Customer shall not reverse-assemble,
reverse-compile, reverse-engineer or in any way derive any source code from Software. Log files, data files, rule files and
script files generated by or for the Software (collectively “Files”), including without limitation files containing Standard
Verification Rule Format (“SVRF”) and Tcl Verification Format (“TVF”) which are Mentor Graphics’ proprietary
syntaxes for expressing process rules, constitute or include confidential information of Mentor Graphics. Customer may
share Files with third parties, excluding Mentor Graphics competitors, provided that the confidentiality of such Files is
protected by written agreement at least as well as Customer protects other information of a similar nature or importance,
but in any case with at least reasonable care. Customer may use Files containing SVRF or TVF only with Mentor Graphics
products. Under no circumstances shall Customer use Software or Files or allow their use for the purpose of developing,
enhancing or marketing any product that is in any way competitive with Software, or disclose to any third party the results
of, or information pertaining to, any benchmark.
5.2. If any Software or portions thereof are provided in source code form, Customer will use the source code only to correct
software errors and enhance or modify the Software for the authorized use. Customer shall not disclose or permit disclosure
of source code, in whole or in part, including any of its methods or concepts, to anyone except Customer’s employees or
on-site contractors, excluding Mentor Graphics competitors, with a need to know. Customer shall not copy or compile
source code in any manner except to support this authorized use.
5.3. Customer may not assign this Agreement or the rights and duties under it, or relocate, sublicense or otherwise transfer the
Products, whether by operation of law or otherwise (“Attempted Transfer”), without Mentor Graphics’ prior written
consent and payment of Mentor Graphics’ then-current applicable relocation and/or transfer fees. Any Attempted Transfer
without Mentor Graphics’ prior written consent shall be a material breach of this Agreement and may, at Mentor Graphics’
option, result in the immediate termination of the Agreement and/or the licenses granted under this Agreement. The terms
of this Agreement, including without limitation the licensing and assignment provisions, shall be binding upon Customer’s
permitted successors in interest and assigns.
5.4. The provisions of this Section 5 shall survive the termination of this Agreement.
6.
SUPPORT SERVICES. To the extent Customer purchases support services, Mentor Graphics will provide Customer with
updates and technical support for the Products, at the Customer site(s) for which support is purchased, in accordance with
Mentor Graphics’ then current End-User Support Terms located at http://supportnet.mentor.com/about/legal/.
7.
LIMITED WARRANTY.
7.1. Mentor Graphics warrants that during the warranty period its standard, generally supported Products, when properly
installed, will substantially conform to the functional specifications set forth in the applicable user manual. Mentor
Graphics does not warrant that Products will meet Customer’s requirements or that operation of Products will be
uninterrupted or error free. The warranty period is 90 days starting on the 15th day after delivery or upon installation,
whichever first occurs. Customer must notify Mentor Graphics in writing of any nonconformity within the warranty period.
For the avoidance of doubt, this warranty applies only to the initial shipment of Software under an Order and does not
renew or reset, for example, with the delivery of (a) Software updates or (b) authorization codes or alternate Software under
a transaction involving Software re-mix. This warranty shall not be valid if Products have been subject to misuse,
unauthorized modification, improper installation or Customer is not in compliance with this Agreement. MENTOR
GRAPHICS’ ENTIRE LIABILITY AND CUSTOMER’S EXCLUSIVE REMEDY SHALL BE, AT MENTOR
GRAPHICS’ OPTION, EITHER (A) REFUND OF THE PRICE PAID UPON RETURN OF THE PRODUCTS TO
MENTOR GRAPHICS OR (B) MODIFICATION OR REPLACEMENT OF THE PRODUCTS THAT DO NOT MEET
THIS LIMITED WARRANTY. MENTOR GRAPHICS MAKES NO WARRANTIES WITH RESPECT TO:
(A) SERVICES; (B) PRODUCTS PROVIDED AT NO CHARGE; OR (C) BETA CODE; ALL OF WHICH ARE
PROVIDED “AS IS.”
7.2. THE WARRANTIES SET FORTH IN THIS SECTION 7 ARE EXCLUSIVE. NEITHER MENTOR GRAPHICS NOR
ITS LICENSORS MAKE ANY OTHER WARRANTIES EXPRESS, IMPLIED OR STATUTORY, WITH RESPECT TO
PRODUCTS PROVIDED UNDER THIS AGREEMENT. MENTOR GRAPHICS AND ITS LICENSORS
SPECIFICALLY DISCLAIM ALL IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
PARTICULAR PURPOSE AND NON-INFRINGEMENT OF INTELLECTUAL PROPERTY.
8.
LIMITATION OF LIABILITY. EXCEPT WHERE THIS EXCLUSION OR RESTRICTION OF LIABILITY WOULD BE
VOID OR INEFFECTIVE UNDER APPLICABLE LAW, IN NO EVENT SHALL MENTOR GRAPHICS OR ITS
LICENSORS BE LIABLE FOR INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES (INCLUDING
LOST PROFITS OR SAVINGS) WHETHER BASED ON CONTRACT, TORT OR ANY OTHER LEGAL THEORY, EVEN
IF MENTOR GRAPHICS OR ITS LICENSORS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. IN
NO EVENT SHALL MENTOR GRAPHICS’ OR ITS LICENSORS’ LIABILITY UNDER THIS AGREEMENT EXCEED
THE AMOUNT RECEIVED FROM CUSTOMER FOR THE HARDWARE, SOFTWARE LICENSE OR SERVICE GIVING
RISE TO THE CLAIM. IN THE CASE WHERE NO AMOUNT WAS PAID, MENTOR GRAPHICS AND ITS LICENSORS
SHALL HAVE NO LIABILITY FOR ANY DAMAGES WHATSOEVER. THE PROVISIONS OF THIS SECTION 8 SHALL
SURVIVE THE TERMINATION OF THIS AGREEMENT.
9.
HAZARDOUS APPLICATIONS. CUSTOMER ACKNOWLEDGES IT IS SOLELY RESPONSIBLE FOR TESTING ITS
PRODUCTS USED IN APPLICATIONS WHERE THE FAILURE OR INACCURACY OF ITS PRODUCTS MIGHT
RESULT IN DEATH OR PERSONAL INJURY (“HAZARDOUS APPLICATIONS”). EXCEPT TO THE EXTENT THIS
EXCLUSION OR RESTRICTION OF LIABILITY WOULD BE VOID OR INEFFECTIVE UNDER APPLICABLE LAW, IN
NO EVENT SHALL MENTOR GRAPHICS OR ITS LICENSORS BE LIABLE FOR ANY DAMAGES RESULTING FROM
OR IN CONNECTION WITH THE USE OF MENTOR GRAPHICS PRODUCTS IN OR FOR HAZARDOUS
APPLICATIONS. THE PROVISIONS OF THIS SECTION 9 SHALL SURVIVE THE TERMINATION OF THIS
AGREEMENT.
10. INDEMNIFICATION. CUSTOMER AGREES TO INDEMNIFY AND HOLD HARMLESS MENTOR GRAPHICS AND
ITS LICENSORS FROM ANY CLAIMS, LOSS, COST, DAMAGE, EXPENSE OR LIABILITY, INCLUDING
ATTORNEYS’ FEES, ARISING OUT OF OR IN CONNECTION WITH THE USE OF MENTOR GRAPHICS PRODUCTS
IN OR FOR HAZARDOUS APPLICATIONS. THE PROVISIONS OF THIS SECTION 10 SHALL SURVIVE THE
TERMINATION OF THIS AGREEMENT.
11. INFRINGEMENT.
11.1. Mentor Graphics will defend or settle, at its option and expense, any action brought against Customer in the United States,
Canada, Japan, or member state of the European Union which alleges that any standard, generally supported Product
acquired by Customer hereunder infringes a patent or copyright or misappropriates a trade secret in such jurisdiction.
Mentor Graphics will pay costs and damages finally awarded against Customer that are attributable to such action.
Customer understands and agrees that as conditions to Mentor Graphics’ obligations under this section Customer must:
(a) notify Mentor Graphics promptly in writing of the action; (b) provide Mentor Graphics all reasonable information and
assistance to settle or defend the action; and (c) grant Mentor Graphics sole authority and control of the defense or
settlement of the action.
11.2. If a claim is made under Subsection 11.1 Mentor Graphics may, at its option and expense: (a) replace or modify the Product
so that it becomes noninfringing; (b) procure for Customer the right to continue using the Product; or (c) require the return
of the Product and refund to Customer any purchase price or license fee paid, less a reasonable allowance for use.
11.3. Mentor Graphics has no liability to Customer if the action is based upon: (a) the combination of Software or hardware with
any product not furnished by Mentor Graphics; (b) the modification of the Product other than by Mentor Graphics; (c) the
use of other than a current unaltered release of Software; (d) the use of the Product as part of an infringing process; (e) a
product that Customer makes, uses, or sells; (f) any Beta Code or Product provided at no charge; (g) any software provided
by Mentor Graphics’ licensors who do not provide such indemnification to Mentor Graphics’ customers; or
(h) infringement by Customer that is deemed willful. In the case of (h), Customer shall reimburse Mentor Graphics for its
reasonable attorney fees and other costs related to the action.
11.4. THIS SECTION 11 IS SUBJECT TO SECTION 8 ABOVE AND STATES THE ENTIRE LIABILITY OF MENTOR
GRAPHICS AND ITS LICENSORS, AND CUSTOMER’S SOLE AND EXCLUSIVE REMEDY, FOR DEFENSE,
SETTLEMENT AND DAMAGES, WITH RESPECT TO ANY ALLEGED PATENT OR COPYRIGHT
INFRINGEMENT OR TRADE SECRET MISAPPROPRIATION BY ANY PRODUCT PROVIDED UNDER THIS
AGREEMENT.
12. TERMINATION AND EFFECT OF TERMINATION.
12.1. If a Software license was provided for limited term use, such license will automatically terminate at the end of the
authorized term. Mentor Graphics may terminate this Agreement and/or any license granted under this Agreement
immediately upon written notice if Customer: (a) exceeds the scope of the license or otherwise fails to comply with the
licensing or confidentiality provisions of this Agreement, or (b) becomes insolvent, files a bankruptcy petition, institutes
proceedings for liquidation or winding up or enters into an agreement to assign its assets for the benefit of creditors. For
any other material breach of any provision of this Agreement, Mentor Graphics may terminate this Agreement and/or any
license granted under this Agreement upon 30 days written notice if Customer fails to cure the breach within the 30 day
notice period. Termination of this Agreement or any license granted hereunder will not affect Customer’s obligation to pay
for Products shipped or licenses granted prior to the termination, which amounts shall be payable immediately upon the
date of termination.
12.2. Upon termination of this Agreement, the rights and obligations of the parties shall cease except as expressly set forth in this
Agreement. Upon termination, Customer shall ensure that all use of the affected Products ceases, and shall return hardware
and either return to Mentor Graphics or destroy Software in Customer’s possession, including all copies and
documentation, and certify in writing to Mentor Graphics within ten business days of the termination date that Customer no
longer possesses any of the affected Products or copies of Software in any form.
13. EXPORT. The Products provided hereunder are subject to regulation by local laws and United States (“U.S.”) government
agencies, which prohibit export, re-export or diversion of certain products, information about the products, and direct or indirect
products thereof, to certain countries and certain persons. Customer agrees that it will not export or re-export Products in any
manner without first obtaining all necessary approval from appropriate local and U.S. government agencies. If Customer wishes
to disclose any information to Mentor Graphics that is subject to any U.S. or other applicable export restrictions, including
without limitation the U.S. International Traffic in Arms Regulations (ITAR) or special controls under the Export
Administration Regulations (EAR), Customer will notify Mentor Graphics personnel, in advance of each instance of disclosure,
that such information is subject to such export restrictions.
14. U.S. GOVERNMENT LICENSE RIGHTS. Software was developed entirely at private expense. The parties agree that all
Software is commercial computer software within the meaning of the applicable acquisition regulations. Accordingly, pursuant
to U.S. FAR 48 CFR 12.212 and DFAR 48 CFR 227.7202, use, duplication and disclosure of the Software by or for the U.S.
government or a U.S. government subcontractor is subject solely to the terms and conditions set forth in this Agreement, which
shall supersede any conflicting terms or conditions in any government order document, except for provisions which are contrary
to applicable mandatory federal laws.
15. THIRD PARTY BENEFICIARY. Mentor Graphics Corporation, Mentor Graphics (Ireland) Limited, Microsoft Corporation
and other licensors may be third party beneficiaries of this Agreement with the right to enforce the obligations set forth herein.
16. REVIEW OF LICENSE USAGE. Customer will monitor the access to and use of Software. With prior written notice and
during Customer’s normal business hours, Mentor Graphics may engage an internationally recognized accounting firm to
review Customer’s software monitoring system and records deemed relevant by the internationally recognized accounting firm
to confirm Customer’s compliance with the terms of this Agreement or U.S. or other local export laws. Such review may include
FlexNet (or successor product) report log files that Customer shall capture and provide at Mentor Graphics’ request. Customer
shall make records available in electronic format and shall fully cooperate with data gathering to support the license review.
Mentor Graphics shall bear the expense of any such review unless a material non-compliance is revealed. Mentor Graphics shall
treat as confidential information all information gained as a result of any request or review and shall only use or disclose such
information as required by law or to enforce its rights under this Agreement. The provisions of this Section 16 shall survive the
termination of this Agreement.
17. CONTROLLING LAW, JURISDICTION AND DISPUTE RESOLUTION. The owners of certain Mentor Graphics
intellectual property licensed under this Agreement are located in Ireland and the U.S. To promote consistency around the
world, disputes shall be resolved as follows: excluding conflict of laws rules, this Agreement shall be governed by and construed
under the laws of the State of Oregon, U.S., if Customer is located in North or South America, and the laws of Ireland if
Customer is located outside of North or South America. All disputes arising out of or in relation to this Agreement shall be
submitted to the exclusive jurisdiction of the courts of Portland, Oregon when the laws of Oregon apply, or Dublin, Ireland when
the laws of Ireland apply. Notwithstanding the foregoing, all disputes in Asia arising out of or in relation to this Agreement shall
be resolved by arbitration in Singapore before a single arbitrator to be appointed by the chairman of the Singapore International
Arbitration Centre (“SIAC”) to be conducted in the English language, in accordance with the Arbitration Rules of the SIAC in
effect at the time of the dispute, which rules are deemed to be incorporated by reference in this section. Nothing in this section
shall restrict Mentor Graphics’ right to bring an action (including for example a motion for injunctive relief) against Customer in
the jurisdiction where Customer’s place of business is located. The United Nations Convention on Contracts for the
International Sale of Goods does not apply to this Agreement.
18. SEVERABILITY. If any provision of this Agreement is held by a court of competent jurisdiction to be void, invalid,
unenforceable or illegal, such provision shall be severed from this Agreement and the remaining provisions will remain in full
force and effect.
19. MISCELLANEOUS. This Agreement contains the parties’ entire understanding relating to its subject matter and supersedes all
prior or contemporaneous agreements. Some Software may contain code distributed under a third party license agreement that
may provide additional rights to Customer. Please see the applicable Software documentation for details. This Agreement may
only be modified in writing, signed by an authorized representative of each party. Waiver of terms or excuse of breach must be
in writing and shall not constitute subsequent consent, waiver or excuse.
Rev. 130502, Part No. 255853