Sie sind auf Seite 1von 106

Using DesignChecker with HDL Designer

Series™

Release v2018.2

© 2013-2018 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.

Note - Viewing PDF files within a web browser causes some links not to function (see MG595892).
Use HTML for full navigation.
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 third-
party 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: mentor.com/trademarks.

The registered trademark Linux® is used pursuant to a sublicense from LMI, the exclusive licensee of
Linus Torvalds, owner of the mark on a world-wide basis.

End-User License Agreement: You can print a copy of the End-User License Agreement from:
mentor.com/eula.

Mentor Graphics Corporation


8005 S.W. Boeckman Road, Wilsonville, Oregon 97070-7777
Telephone: 503.685.7000
Toll-Free Telephone: 800.592.2210
Website: mentor.com
Support Center: support.mentor.com

Send Feedback on Documentation: support.mentor.com/doc_feedback_form


Table of Contents

Chapter 1
Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
DesignChecker Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
DesignChecker Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

Chapter 2
Invoking DesignChecker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Managing RuleSets and Policies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Files Pane . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Tools Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Running an Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

Chapter 3
DesignChecker Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Determining Your Policy. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Selecting Files and Design Units for Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
File Level and Design Unit Level Checking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Running the Analysis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Main Shortcut Bar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Main Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Tasks Pane . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Design Manager Toolbar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Investigating Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
Cross-Referencing Results With DesignPad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Cross-Referencing Results With Graphics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
Investigating the Results Summary Pane . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

Chapter 4
DesignChecker Exclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Setting Exclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Setting Code/Rule Exclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Add Code/Rule Exclusions Dialog Box . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
DesignChecker Constraints File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
dc_exclude API. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
Setting Code/Rule Exclusions Visually . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Setting Code/Rule Exclusions Manually . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
Enabling Pragma Exclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
DesignChecker Predefined Exclusion Pragmas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
Exclusion Settings Batch Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
Setting Black Box Exclusions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
Setting Don’t Touch Exclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
Adding Justifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

Using DesignChecker with HDL Designer Series™, v2018.2 3


Table of Contents

Adding Justifications for Black Boxed Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50


Adding Justifications for Don’t Touch Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
Adding Justifications for Disabled Rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
Reviewing and Editing Exclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
Reviewing and Editing Code/Rule Exclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
Code/Rule Exclusions Pane . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
Reviewing and Editing Example Code/Rule Exclusions . . . . . . . . . . . . . . . . . . . . . . . . . 58
Reviewing Black Box Exclusions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
Reviewing Don’t Touch Exclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
Reviewing Exclusion Pragmas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
Reviewing Pragma Code Excluded . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
Reviewing Unbound Component/Instances . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
Changing the Behavior of Exclusion Synthesis Pragmas . . . . . . . . . . . . . . . . . . . . . . . . . . 61
Exclusions Summary Pane. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
Reporting Exclusions in the Results Summary Pane. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
Showing/Hiding Excluded Violations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

Appendix A
Batch Process. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
Running in Batch Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

Appendix B
DesignChecker for Teams . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
Default RuleSet and Policy Location. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
Sharing RuleSets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
Linking Shared RuleSets to Your Own Policies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
Sharing Policies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
Read-Only Policies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
Environment Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
Search Order of RuleSet and Policy Directory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87

Appendix C
Design Checking Levels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
File-Level Checking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
Design Unit-Level Checking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93

Appendix D
DesignChecker Features Available in HDL Designer Series . . . . . . . . . . . . . . . . . . . . . . . 99
DesignChecker-Related Features. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
Index
End-User License Agreement

4 Using DesignChecker with HDL Designer Series™, v2018.2


List of Figures

Figure 1-1. DesignChecker Flow. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10


Figure 3-1. Setting Default Policy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Figure 3-2. DesignChecker Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
Figure 4-1. Add Code/Rule Exclusion Dialog Box . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
Figure 4-2. DesignChecker Code/Rule Exclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
Figure 4-3. DesignChecker Results Tab — Excluded Violations . . . . . . . . . . . . . . . . . . . . . 68
Figure 4-4. DesignChecker Results Tab — Excluded Column . . . . . . . . . . . . . . . . . . . . . . . 69

Using DesignChecker with HDL Designer Series™, v2018.2 5


List of Figures

6 Using DesignChecker with HDL Designer Series™, v2018.2


List of Tables

Table 4-1. Exclusion Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32


Table 4-2. Add Code/Rule Exclusion Dialog Box Controls . . . . . . . . . . . . . . . . . . . . . . . . . 35
Table 4-3. Supported Exclusion Pragma Pairs (Synthesis-Specific) . . . . . . . . . . . . . . . . . . 46
Table 4-4. Supported Exclusion Pragma Pairs (DesignChecker-Specific) . . . . . . . . . . . . . . 46
Table 4-5. Tcl Commands for Configuring Exclusion Settings . . . . . . . . . . . . . . . . . . . . . . 46
Table 4-6. Code/Rule Exclusions Pane Font Meaning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
Table 4-7. Code/Rule Exclusions Pane Options - Exclusion Selected . . . . . . . . . . . . . . . . . 57
Table 4-8. Code/Rule Exclusion Pane Options - No Exclusion Selected . . . . . . . . . . . . . . . 58
Table A-1. Tool Setting Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

Using DesignChecker with HDL Designer Series™, v2018.2 7


List of Tables

8 Using DesignChecker with HDL Designer Series™, v2018.2


Chapter 1
Introduction

DesignChecker is a design checking tool that ensures interoperability and consistency across
design styles and coding practices. This chapter provides an overview of the key features of the
DesignChecker.
DesignChecker Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
DesignChecker Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

DesignChecker Overview
HDL Designer Series integrates with DesignChecker, which is a design checking tool that
ensures interoperability and consistency across design styles and coding practices, for
developers and development teams creating complex designs. It is a powerful solution for
individual engineers, and can be used in situations where a number of individuals or teams are
involved in the design and development processes.
DesignChecker can operate in batch mode, or with a full featured Graphical User Interface
(GUI). The user interface supports quick and easy rule configuration, with powerful results
cross-referencing between DesignChecker, the DesignPad text editor and any of the HDL
Designer graphical editing tools.

DesignChecker Flow
The basic flow of DesignChecker involves configuring and running checks on your design
code.
The flow starts by ensuring that you have access to the appropriate ruleset(s) and policies that
have been previously configured by the project manager to match your coding standards. Refer
to Figure 1-1.

To run an analysis, you have to specify the policy you intend to use, and then select the files and
design units to be analyzed. After running the analysis and viewing the results, you can
cross-reference your results to the source code to view the exact lines of code where violations
occur, or you can cross-reference your results to the source graphical views.

Before running an analysis, you have the option to set exclusions on specific files or design
units if needed.

Using DesignChecker with HDL Designer Series™, v2018.2 9

Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Introduction
DesignChecker Flow

Figure 1-1. DesignChecker Flow

In the following sections, it is assumed that you are familiar with the basic operation of
DesignChecker and HDL Designer Series. For information, refer to DesignChecker User Guide
and HDL Designer Series User Manual.

10 Using DesignChecker with HDL Designer Series™, v2018.2

Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Chapter 2
Invoking DesignChecker

DesignChecker can be invoked in several ways from the Design Manager of HDL Designer
Series.
DesignChecker can be invoked for two reasons:

1. To Manage Rules and Policies: DesignChecker enables the user to create the desired
rulesets and policies that are to be applied to files/ design units before running an
analysis. It is possible to manage rules and polices by invoking DesignChecker directly
from HDL Designer Series Design Manager.
2. To Run an Analysis: DesignChecker integrates with HDL Designer Series, such that it
is possible to run an analysis using DesignChecker directly through HDL Designer
Series Design Manager.
Managing RuleSets and Policies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Running an Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

Using DesignChecker with HDL Designer Series™, v2018.2 11

Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Invoking DesignChecker
Managing RuleSets and Policies

Managing RuleSets and Policies


You can invoke DesignChecker through HDL Designer Series for the purpose of configuring
rulesets and policies.
Note
The above is applicable to Windows users. Unix and Linux users should first choose the
appropriate script from the bin directory of their HDL Designer Series installation to invoke
the HDL Designer Series tool, that is, the script titled hdl_designer. Subsequently,
DesignChecker can be run from the HDL Designer Series tool in exactly the same way as
Windows users (that is through the Files pane or Tools menu).

Files Pane . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Tools Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

Files Pane
In the Files pane, you can use the + sign to expand the DesignChecker tree. You can right-click
on the Policies or RuleSets nodes and select Manage Policies/RuleSets from the popup menu
so that DesignChecker is invoked.

12 Using DesignChecker with HDL Designer Series™, v2018.2

Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Invoking DesignChecker
Tools Menu

Note that you can also perform a number of DesignChecker operations through the Files pane.
For example, you can set a shared location for policies or rulesets (refer to “DesignChecker for
Teams” on page 79), enable/disable pragma exclusions and manually edit the constraints file if
needed (refer to “DesignChecker Exclusions” on page 31).

Tools Menu
You can invoke DesignChecker by selecting Tools > Manage Policies/RuleSets.

Using DesignChecker with HDL Designer Series™, v2018.2 13

Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Invoking DesignChecker
Running an Analysis

Running an Analysis
To run an analysis through HDL Designer Series, you must first set the default policy and select
the desired file/design unit for analysis.
For more information on how to run the analysis directly through HDL Designer Series, refer to
“Running the Analysis” on page 19.

14 Using DesignChecker with HDL Designer Series™, v2018.2

Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Chapter 3
DesignChecker Flow

This chapter describes how you can validate the correctness of the designs available in HDL
Designer Series by using DesignChecker.
Before using DesignChecker to validate your code, make sure you have a design in HDL
Designer Series, whether an already existing design that you have imported in HDL Designer
Series or a new design that you have created. Refer to HDL Designer Series User Manual for
more information.

The basic DesignChecker flow is as follows:

1. Determining Your Policy


2. Selecting Files and Design Units for Analysis
3. Running the Analysis
4. Investigating Results
Before selecting files and design units and running an analysis, you have the ability to set
exclusions. The exclusions feature allows you to exclude specific code blocks or entire files
from analysis, to exclude certain rules/rulesets from being applied to specific design units or
files, and so on.

There are various types of DesignChecker exclusions that you can use with HDL Designer
Series. For more information on exclusions, refer to “DesignChecker Exclusions” on page 31.

Determining Your Policy. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16


Selecting Files and Design Units for Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
File Level and Design Unit Level Checking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Running the Analysis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Main Shortcut Bar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Main Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Tasks Pane . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Design Manager Toolbar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Investigating Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
Cross-Referencing Results With DesignPad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Cross-Referencing Results With Graphics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
Investigating the Results Summary Pane . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

Using DesignChecker with HDL Designer Series™, v2018.2 15

Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
DesignChecker Flow
Determining Your Policy

Determining Your Policy


To run an analysis using Design checker, you must first set a default policy. You may have
multiple policies defined in DesignChecker each referencing a different ruleset, so you have to
set a default policy to use in the analysis.
Prerequisites
To set a default policy, you must first configure your desired rulesets and policies.

Refer to “Working With RuleSets” and “Working With Policies” in the DesignChecker User
Guide for information.

Procedure
You can set a default policy either through HDL Designer Series or through DesignChecker:

Through HDL Designer Series:


a. In the Files pane, click on the sign to expand the DesignChecker tree.

b. Expand the Policies folder. All policies predefined through DesignChecker are
displayed.
c. Right-click on the required policy and select Set Default Policy. See Figure 3-1.
Through DesignChecker:
Refer to the DesignChecker User Guide for information on setting a default policy
through DesignChecker.

16 Using DesignChecker with HDL Designer Series™, v2018.2

Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
DesignChecker Flow
Determining Your Policy

Figure 3-1. Setting Default Policy

Results
The selected policy is set as the default policy; it will be indicated in both HDL Designer Series
and DesignChecker by the marker.

Using DesignChecker with HDL Designer Series™, v2018.2 17

Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
DesignChecker Flow
Selecting Files and Design Units for Analysis

Selecting Files and Design Units for Analysis


Before running an analysis, use the design explorer in HDL Designer Series to select files,
design units, or an entire library for analysis.
File Level and Design Unit Level Checking. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

File Level and Design Unit Level Checking


When running a DesignChecker analysis, you have the ability to do that on one of two levels:
file level and design unit level.
Determining which level to use in your analysis depends on the level of depth you are targeting,
which is reflected in the analysis results.

If you run DesignChecker on the level of a source file, the tool analyzes the selected file along
with all the design units that pertain to that file. If you run DesignChecker on the level of a
design unit, the tool analyzes the specified design unit individually. Refer to “Design Checking
Levels” on page 89 for details on file level and design unit level analysis.

You can select design units through the Design Units pane of the Design Explorer, and you can
select files through the Files pane.

18 Using DesignChecker with HDL Designer Series™, v2018.2

Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
DesignChecker Flow
Running the Analysis

Running the Analysis


When running an analysis using DesignChecker, you need to first determine the desired files
and design units for analysis. You also have to determine the hierarchical depth of the analysis
by selecting the desired run options.
Main Shortcut Bar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Main Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Tasks Pane . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Design Manager Toolbar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

Main Shortcut Bar


HDL Designer Series has a Main Shortcut bar in the Design Manager, from which many tasks
can be performed.
You can run a DesignChecker analysis on the selected file/design unit from the Main Shortcut
bar by clicking the Check button.

Using DesignChecker with HDL Designer Series™, v2018.2 19

Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
DesignChecker Flow
Main Menu

You can right-click on the Check button and select whether you want to Run Single, Run
Through Blocks, Run Through Components, or Run Through Design Root.

Main Menu
You can run a DesignChecker analysis on the selected file/design unit from the Main menu.
Choose Edit > DesignChecker > Run Analysis.

20 Using DesignChecker with HDL Designer Series™, v2018.2

Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
DesignChecker Flow
Main Menu

You can run an analysis by selecting Tasks > DesignChecker Flow and then selecting Run
Single, Run Through Blocks, Run Through Components, or Run Through Components
from Design Root.

Using DesignChecker with HDL Designer Series™, v2018.2 21

Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
DesignChecker Flow
Tasks Pane

This can also be achieved through “Tasks Pane” on


page 22.

Tip
You can also run DesignChecker as a task from within DesignPad or an appropriate
graphical editor.

Tasks Pane
The DesignChecker tasks in the Tasks pane allow you to run an analysis on a selected file/
design unit.

22 Using DesignChecker with HDL Designer Series™, v2018.2

Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
DesignChecker Flow
Design Manager Toolbar

The DesignChecker tool and flow tasks are available in the HDL Designer Series design
manager. The “DesignChecker Flow” automatically generates any graphical views (also
available from the toolbar or menu). The “DesignChecker” tool task is available in the Tasks
pane if you want to run an analysis without generating HDL.

You can optionally incorporate the DesignChecker task as a step in a new or existing design
flow. Refer to the “Tasks, Tools and Flows” chapter in the HDL Designer Series User Manual
for more information.

Design Manager Toolbar


The DesignChecker dropdown palette in the Design Manager toolbar allows you to run an
analysis on a selected file/design unit.

Using DesignChecker with HDL Designer Series™, v2018.2 23

Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
DesignChecker Flow
Design Manager Toolbar

You can choose to generate and run DesignChecker either on a single level, through blocks,
through components, or through design root.

Note
If there is an instantiated entity with multiple architectures defined in the files passed to
DesignChecker (or to any downstream tool in general such as ModelSim Simulate and
Precision Synthesis), and at the same time there is neither an inline configuration specification
nor a separate configuration file provided to specify which architecture to use for the
instantiated entity, then in this case the HDS default architecture information will not be
communicated to the DesignChecker tool and hence the following warning is raised:

Warning: Entity 'leaf' has multiple architectures so specified default architecture'rtl_2' may not
be picked by the external tool.
Hint: A configuration file can be generated from “HDL” > “Generate VHDL
Configurations...” menu to make external tools use the specified default architecture.
As mentioned in the warning, you can overcome this by generating a configuration file by
opening HDL > Generate VHDL Configurations in the Design Manager of HDL Designer
Series in order to force external tools to use the specified default architecture. Refer to “VHDL
Configurations Dialog Box” in the HDL Designer Series User Manual for information.

24 Using DesignChecker with HDL Designer Series™, v2018.2

Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
DesignChecker Flow
Investigating Results

Investigating Results
After you run an analysis through HDL Designer Series, DesignChecker is invoked with the
Results tab open and all the detected violations display.
Refer to DesignChecker User Guide for more information on the Results tab.

The Results tab is divided into a central results pane in which all the violations are listed, and a
summary pane in which you will find high level information about the analysis.

By default, the Results tab shows the results grouped by severity, and then within each severity,
the results are grouped by the violated rule (you can control the display of results by changing
viewpoints; refer to the DesignChecker User Guide for more information).

You can use the plus sign (+) to keep traversing down from the severity group until you reach
the violation message and the code snippet highlighting the exact line of code having that
violation.

Using DesignChecker with HDL Designer Series™, v2018.2 25

Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
DesignChecker Flow
Investigating Results

Figure 3-2. DesignChecker Results

As shown in the Figure 3-2, each violation is given a certain severity level depending on the
prior configurations of the ruleset. For example, if the ruleset is using the severity set titled
Default SeveritySet, the violations will have the severity levels Error, Note or Warning, and if
the ruleset is using the severity set titled RMM_SeveritySet, the violations will have the severity
levels Rule or Guideline. Refer to “Configuring Rule SeveritySets” in the DesignChecker User
Guide for further information.

In addition to the current severity set used in your analysis, you may find some violations
having different titles such as Syntax Error, Synthesis Error or Elaboration Error. These types
of violations can occur when running certain rules on a design that is not complete or
synthesizable. For more information, refer to “Supporting Synthesizable Designs” and “Further
Understanding Design Checking Rule Behavior” in the DesignChecker User Guide.

26 Using DesignChecker with HDL Designer Series™, v2018.2

Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
DesignChecker Flow
Cross-Referencing Results With DesignPad

Cross-Referencing Results With DesignPad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27


Cross-Referencing Results With Graphics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
Investigating the Results Summary Pane . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

Cross-Referencing Results With DesignPad


HDL Designer Series includes the DesignPad text editor. You can directly cross-reference
between your DesignChecker results and the DesignPad text editor.
DesignPad is a fully featured text editor. It supports normal text editing procedures including
file creation, read-only or edit modes, print and HTML export. Advanced features include, for
example, multiple undo or redo operations, indenting, case changing and automatic keyword
completion.

Language support includes automatic syntax highlighting, checking and comment insertion for
several languages such as C, C++, Tcl, Verilog, VHDL and XML. In addition, language
templates are provided for fast insertion and expansion of Verilog or VHDL code constructs.

You can find detailed information about using the DesignPad text editor in the DesignPad Text
Editor User Guide, which you can access from the InfoHub of HDL Designer Series by
selecting Help and Manuals from the Help menu.

Procedure
1. Right-click on a code snippet in the Results tab and select Open HDL from the popup
menu.

Using DesignChecker with HDL Designer Series™, v2018.2 27

Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
DesignChecker Flow
Cross-Referencing Results With DesignPad

The DesignPad text editor is launched.

The DesignPad window is split into three areas:


• Code browser — Displays a hierarchical view of the code structure in the active file.
Refer to the DesignPad Text Editor User Guide for further information.
• Code Editing pane — Displays the source code, with the lines containing violations
highlighted.
• Report pane — Displays the violations DesignChecker has detected.
2. Move around the code by clicking on the different violations highlighted in the Report
pane. The Code Editing pane automatically changes to display the appropriate line of
code, and the Code Browser updates itself to display the correct location in your file
structure.

28 Using DesignChecker with HDL Designer Series™, v2018.2

Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
DesignChecker Flow
Cross-Referencing Results With DesignPad

DesignPad contains a DesignCheckermenu.

• Display Hint — Displays the correction hint message corresponding to a


highlighted line of code.
• Show Rule — Displays the configured rule corresponding to a highlighted line of
code in the DesignChecker Setup tab.
• Show Policy — Displays the configured policy corresponding to a highlighted line
of code in the DesignChecker Setup tab.
• Show Results — Displays the expanded results row corresponding to a highlighted
line of code in the DesignChecker Results tab.
• Show Summary — Displays a message including summary information on the
analysis.
• Disable Rule — Disable the rule applied to a highlighted line of code in the
DesignChecker Setup tab.
• Disable RuleSet — Disable the ruleset applied to a highlighted line of code in the
DesignChecker Setup tab.

3. Move to the next rule violation message in DesignPad by using the button or by
choosing Go To Next Message from the DesignChecker menu.
Similarly you can move to the previous rule violation message in DesignPad by using
the button or by choosing Go To Previous Message from the DesignChecker or
the Search menu.

Note
You will also have the DesignChecker task available within the Tasks menu.

4. Investigate the other DesignChecker menu options. When you have finished, you can
shut down DesignPad by choosing Exit from the File menu.

Using DesignChecker with HDL Designer Series™, v2018.2 29

Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
DesignChecker Flow
Cross-Referencing Results With Graphics

Cross-Referencing Results With Graphics


You can cross-reference from a rule violation in DesignChecker to a graphical source view
created in any of the HDL Designer Series graphical editors.
Procedure
1. Right-click on a code snippet in the Results tab of DesignChecker and then choose
Open Source from the popup menu.
This invokes the graphical editor from which the code was generated.

2. Investigate the graphical view and then select File > Exit.

Investigating the Results Summary Pane


The Summary pane provides high level information on the results of the analysis.
For more information on the results summary pane, refer to DesignChecker User Guide.

30 Using DesignChecker with HDL Designer Series™, v2018.2

Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Chapter 4
DesignChecker Exclusions

This chapter describes how you can use the exclusions feature. Before running an analysis, you
can set the exclusions feature, which enables you to exclude certain areas of your code from
being analyzed or more specifically exclude certain rules or rulesets from being run on specific
design units or files within your code.
Excluding certain areas of your code from being generally checked, or more specifically from
being checked by certain rules, saves you the hassle of having to go through the violations that
may be generated by this code, which could be in fact behaving as designed or could be third-
party code which does not comply with your coding standards.

When running an analysis, an Exclusions tab displays showing all the exclusion settings
applied in the analysis.

Setting Exclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Setting Code/Rule Exclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Add Code/Rule Exclusions Dialog Box . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
DesignChecker Constraints File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
dc_exclude API. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
Setting Code/Rule Exclusions Visually . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Setting Code/Rule Exclusions Manually . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
Enabling Pragma Exclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
DesignChecker Predefined Exclusion Pragmas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
Exclusion Settings Batch Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
Setting Black Box Exclusions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
Setting Don’t Touch Exclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
Adding Justifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
Reviewing and Editing Exclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
Reviewing and Editing Code/Rule Exclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
Reviewing Black Box Exclusions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
Reviewing Don’t Touch Exclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
Reviewing Exclusion Pragmas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
Reviewing Pragma Code Excluded . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
Reviewing Unbound Component/Instances . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
Changing the Behavior of Exclusion Synthesis Pragmas . . . . . . . . . . . . . . . . . . . . . . . . . . 61
Exclusions Summary Pane . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
Reporting Exclusions in the Results Summary Pane . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
Showing/Hiding Excluded Violations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

Using DesignChecker with HDL Designer Series™, v2018.2 31

Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
DesignChecker Exclusions
Setting Exclusions

Setting Exclusions
DesignChecker has the following types of exclusions that can be used with HDL Designer
Series:

Table 4-1. Exclusion Types


Exclusion Type Description
Code/Rule Exclusion Excludes specific checks from being performed on specific
parts of the design.
Pragma Exclusion Allows you to skip specific RTL code blocks.
Black Box Exclusion Ensures that DesignChecker recognizes that a component is
present, but does not apply any checks to it.
Don’t Touch exclusion Ensures that a file is not loaded or analyzed by
DesignChecker.

Setting Code/Rule Exclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32


Add Code/Rule Exclusions Dialog Box . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
DesignChecker Constraints File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
dc_exclude API. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
Setting Code/Rule Exclusions Visually . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Setting Code/Rule Exclusions Manually . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
Enabling Pragma Exclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
DesignChecker Predefined Exclusion Pragmas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
Exclusion Settings Batch Commands. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
Setting Black Box Exclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
Setting Don’t Touch Exclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
Adding Justifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

Setting Code/Rule Exclusions


Exclusion via Code/Rule exclusions enables you to force DesignChecker to skip selected design
units or files when running a specific rule or ruleset. You can set your Code/Rule exclusions
visually through the DesignChecker Add Code/Rule Exclusions dialog box or you can set them
manually by editing the dc_constraints file. The dc_constraints file can be opened from the
HDS Design Explorer Files’ pane.

32 Using DesignChecker with HDL Designer Series™, v2018.2

Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
DesignChecker Exclusions
Setting Code/Rule Exclusions

Caution
It is strongly recommended not to edit the dc_constraints file when running DesignChecker.
Also, attempting to edit the dc_constraints file while in the process of adding code/rule
exclusions visually may lead to the loss of your manual edits.

Using DesignChecker with HDL Designer Series™, v2018.2 33

Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
DesignChecker Exclusions
Add Code/Rule Exclusions Dialog Box

Add Code/Rule Exclusions Dialog Box


To access:
• From the DesignChecker menu, choose Exclusions > Add Code/Rule Exclusion.
• In the Code/Rule Exclusions pane of the Exclusions tab, right-click and choose Add
Code/Rule Exclusion.
• Select Exclusions in the shortcut bar on the left and click AddCode/Rule Exclusion.
The Add Code/Rule Exclusions dialog box enables you to define code/rule exclusions for
libraries on which an analysis was previously run. That is, you can exclude specific checks from
being performed on specific parts of the design on the next DesignChecker run.

34 Using DesignChecker with HDL Designer Series™, v2018.2

Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
DesignChecker Exclusions
Add Code/Rule Exclusions Dialog Box

Figure 4-1. Add Code/Rule Exclusion Dialog Box

Objects
Table 4-2. Add Code/Rule Exclusion Dialog Box Controls
Control Description
Justification Field Lets you enter a justification for your defined exclusion.

Using DesignChecker with HDL Designer Series™, v2018.2 35

Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
DesignChecker Exclusions
DesignChecker Constraints File

Table 4-2. Add Code/Rule Exclusion Dialog Box Controls (cont.)


Control Description
Object Group Box Allows you to define whether you want to exclude a file or a design
unit.
Object Library Dropdown Allows you to specify the library you wish to exclude a file/design
list unit from.The list displays the libraries on which you had run your
last analysis.
File Path Field Lets you enter or browse for the file you wish to exclude from
checking. Note that this field accepts relative paths as well as full
paths.
Unit Name Dropdown list Allows you to select a design unit from the specified library to
exclude from checking.
Line Range Group Box Allows you to define line-level exclusions. You can enter a specific
range of code lines to be excluded from the analysis of the source
file or design unit which is specified in the Object Group Box.
Enter the Start Line number and the End Line number.
If you wish to exclude a single line, then enter the same line
number as the Start Line and End Line.
Rule Box Allows you to browse for rules or rulesets you wish to disable for
the objects defined in the Object Group box.
Location field Displays the path to the chosen rules/rulesets.

DesignChecker Constraints File


The DesignChecker constraints file is a Tcl file in which code/rule exclusions set for a given
library are saved. The file is located under the library’s HDS mapping by default and is given
the name ‘dc_constraints.tcl’.
Note
You have the ability to specify a different location for the constraints file for each library
using the setLibraryDCConstraintsFile <library> <path> API. Refer to the HDL Designer
Series Tcl Reference Manual.

It can be opened for viewing or editing by selecting the Edit Code/Rule Exclusions File from
the popup menu of the Exclusions node in the HDS Files’ browser. Consequently, the file will
be opened in DesignPad.

The content of the file is derived from the code/rule exclusions set visually through
DesignChecker or set manually by directly editing the file using the dc_exclude command.
Refer to “dc_exclude API” on page 38.

36 Using DesignChecker with HDL Designer Series™, v2018.2

Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
DesignChecker Exclusions
DesignChecker Constraints File

You have the ability to specify a global constraints file that applies to all libraries collectively.
The path of the global constraints file is set through the DesignChecker task through the
parameter GlobalExclusionFile. Refer to “Running in Batch Mode” on page 71. The global
constraints file supersedes constraint files set on the level of libraries.

Note
Do not attempt to edit the dc_constraints file when running DesignChecker to avoid losing
your manual edits.

Using DesignChecker with HDL Designer Series™, v2018.2 37

Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
DesignChecker Exclusions
dc_exclude API

dc_exclude API
Exclude selected library design unit or file from being checked by the specified rule or ruleset.
Exclusion settings are associated to the library under which the dc_constraints file holding the
dc_exclude command resides.
Syntax
dc_exclude -library <library name | * | all > -design_unit <design unit name | * | all> | -
source_file <file path | * | all > -start_line <line number> -end_line <line number> -check
<hierarchical check path> [comment<comment text>]
Arguments
• -library <library name>
Specifies the library to which exclusions will be applied.
• -design_unit <design unit name>
Specifies the design unit name to be excluded from the check. You must specify either -
design_unit or -source_file. Check examples below.
• -source_file <file path | * | all >
Specifies the path to the file to be excluded from the check. Note that this argument accepts
both relative and full file paths. For relative paths, the path is relative to your current
directory, or to the TCL script where it is written in. Also, you must specify either -
design_unit or -source_file. Check examples below.
• -start_line <line number>
Specifies the start line of the excluded range. Note that it only accepts integers. (Optional)
• -end_line <line number>
Specifies the end line of the excluded range. Note that it only accepts a positive integer
greater than or equal the start_line. (Optional)
• -check <check path>
Specifies the path to the rule or ruleset name to be disabled for a specific design unit or file.
• -comment <comment text>
Specifies comment text that you can associate with the defined exclusion. (optional)
Examples
• Exclude the design unit serial_interface from being checked by the Unused
Declarations configured rule.
dc_exclude -design_unit {serial_interface) -check {RuleSets\
Essentials\Coding Practices\Unused Declarations}

38 Using DesignChecker with HDL Designer Series™, v2018.2

Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
DesignChecker Exclusions
Setting Code/Rule Exclusions Visually

• Exclude the file control_operation_fsm.vhd from being checked by the Downstream


Checks ruleset.
dc_exclude -source_file {R:\HDS_2008.1\Examples\uart_txt\hdl\
control_operation_fsm.vhd} -check {RuleSets\Essentials\Downstream
Checks}

• Exclude the design unit address_decode from being checked by the Allowed
Constructs base rule and all its configured rules.
dc_exclude -design_unit {address_decode) -check {Base Rules\Allow\
Allowed Constructs}

Setting Code/Rule Exclusions Visually


You can set code/rule exclusions visually through the Add Code/Rule Exclusions dialog box or
through working directly with the analysis results in the Results tab.
Procedure
1. Setting exclusions using the Add Code/Rule Exclusions dialog box:
a. Open the Add Code/Rule Exclusions dialog box. Refer to “Add Code/Rule
Exclusions Dialog Box” on page 34.
a. In the Object Group Box, define the design object to be excluded by selecting one of
the following:
o Exclude Source File: This excludes a design file from being checked.
• From the Object library dropdown list specify the source file library.
• Enter or browse to the design file path.
o Exclude Design Unit: This excludes a design unit from being checked.
• Specify the design unit library from the Object library dropdown list.
• Specify the design unit name from the Design unit dropdown list.
b. In the Line Range Group Box, enter a specific range of code lines to be excluded
from the analysis of the source file or design unit which is specified in the Object
Group Box. Enter the Start Line number and the End Line number. If you wish to
exclude a single line, then enter the same line number as the Start Line and End Line.
c. In the Rule Box, select the rulesets or rules you wish to disable for the design objects
specified in step two. The path to the selected rule/ruleset is displayed in the
Location field.
d. Click OK to close the Add Code/Rule Exclusions dialog and run your analysis.

Using DesignChecker with HDL Designer Series™, v2018.2 39

Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
DesignChecker Exclusions
Setting Code/Rule Exclusions Visually

2. Setting exclusions using the Results tab:


a. In the Results tab, expand the Warning or Error tree.
b. Select a violation for a rule/ruleset and design unit/file you wish to disable. For
example, in the figure we have chosen a violation for Non-synthesizable Constructs
rule and tester architecture.

c. Right-click and choose Disable Rule For to display a cascade menu from which you
can select one of the following:
o Policy < policy used in last run>
o Design Unit <violating design unit name>
o Source File <violating source file name>
o Source File <violating source file name> <code line number>

Note
If the option “Prompt for justification” is selected in the Edit Justification
dialog box, then the Edit Justification dialog box pops up automatically for
you to enter a justification for the exclusion. Refer to “Adding Justification for
Disabled Rules” in the DesignChecker User Guide for information on this
option.

40 Using DesignChecker with HDL Designer Series™, v2018.2

Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
DesignChecker Exclusions
Setting Code/Rule Exclusions Visually

d. Select the required design unit or file and run your analysis.

Note
You can turn on or off certain checks through the Results tab. You can right-click on
a violation message in the Results tab and select Disable Rule/RuleSet For from
the popup menu; from the cascade menu, you can choose whether to disable the rule/
ruleset on the level of the policy, design unit, source file, or on the level of the code line
number in the source file. Any rules/rulesets you disable for design units or source files
are displayed in the Exclusions tab; refer to “Reviewing and Editing Exclusions” on
page 54.
You can re-enable checks in the same way by right-clicking on the violation message
and selecting Enable Rule/RuleSet For from the popup menu; from the cascade menu,

Using DesignChecker with HDL Designer Series™, v2018.2 41

Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
DesignChecker Exclusions
Setting Code/Rule Exclusions Manually

you can choose whether to enable the rule/ruleset on the level of the policy, design unit,
source file, or on the level of the code line number in the source file.

Related Topics
Add Code/Rule Exclusions Dialog Box
Reviewing and Editing Exclusions

Setting Code/Rule Exclusions Manually


You can set code and rule exclusions manually.
Procedure
1. In the Files pane of the HDS Design Manager, use the plus sign to expand the
DesignChecker tree.
2. Right-click on the Exclusion node and click Edit Code/Rule Exclusions File.
DesignPad is invoked displaying the dc_constraints file for the active library.
3. Add your exclusions using the dc_exclude command.
4. Save your file and then run your analysis.

Related Topics
DesignChecker Constraints File

42 Using DesignChecker with HDL Designer Series™, v2018.2

Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
DesignChecker Exclusions
Enabling Pragma Exclusion

Enabling Pragma Exclusion


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. In this case, you can enable the Exclusion via
Pragma Pairs feature, and then apply the pragmas to your code. This feature relies basically on
embedding the pragmas in your HDL code in such a way to enclose the sections that shall be
excluded by DesignChecker.

Procedure
1. In the Files pane of the HDS Design Manager, use the plus sign to expand the
DesignChecker tree.
2. Right-click on the Exclusions node and click on Enable Pragma Exclusion.

Using DesignChecker with HDL Designer Series™, v2018.2 43

Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
DesignChecker Exclusions
Enabling Pragma Exclusion

By doing this step, the pragma checking_off/on is enabled.

Note
Synthesis pragmas are always enabled (translate_off/on, synthesis_off/on,
dc_script_begin/end). You can only enable or disable the DesignChecker-specific
pragma checking_off/on by selecting Enable/Disable Pragma Exclusion from the
popup menu of the Exclusions node. The pragma checking_off/on cannot exclude syntax
errors.

3. Within your source code, use the exclusion pragma pair checking_off/on to encase the
excluded code.
The pragma pair constitutes of a start pragma and an end pragma. 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

44 Using DesignChecker with HDL Designer Series™, v2018.2

Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
DesignChecker Exclusions
Enabling Pragma Exclusion

comment after the end of the code block as an indication to resume analysis. Excluded
code is highlighted in gray, by default, in DesignPad.
For example, you can exclude RTL code sections (such as processes and concurrent
assignments), or you can exclude a whole design unit (such as entity and architecture). If
an entire VHDL entity is excluded, all the relevant architectures will not be checked,
even if they were not explicitly excluded. According to the used scope, the Results tab is
affected.
As an example of pragma pairs used in different scopes, the following Verilog example
shows the exclusion of an entire module:
// pragma checking_off
module pragma_exclusion_du1 (i1, o1);
input i1;
output o1;
assign o1 = i1;
endmodule
// pragma checking_on

The following Verilog example excludes only an always block:


module pragma_exclusion_du1 (i1, o1);
input i1;
output o1;
// pragma checking_off
always @(i1) begin
o1 <= i1;
end
// pragma checking_on
endmodule

Caution
Double-commenting a pragma disables the pragma. Write the pragma in a separate
line to ensure that it works properly.

4. Run the analysis. For details on running an analysis, refer to “Running the Analysis” on
page 19.
The Results tab opens displaying the outcome of the analysis; the details of the
exclusion settings are displayed in the Summary pane. For more details on how
exclusion affects your results, refer to “Reporting Exclusions in the Results Summary
Pane” on page 64.
Related Topics
Running the Analysis
Reporting Exclusions in the Results Summary Pane

Using DesignChecker with HDL Designer Series™, v2018.2 45

Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
DesignChecker Exclusions
DesignChecker Predefined Exclusion Pragmas

DesignChecker Predefined Exclusion Pragmas


In addition to the DesignChecker-specific pragma checking_off/on, DesignChecker provides a
predefined set of synthesis-specific pragmas you can use for code exclusion.
Each pragma pair is defined by a start pragma name and an end pragma name. While the
DesignChecker checking_off/on pragma can be optionally enabled or disabled through HDS
Design Manager, all the synthesis pragmas (listed in Table 4-3) are always enabled by default.

The supported pragma pairs are as follows:


Table 4-3. Supported Exclusion Pragma Pairs (Synthesis-Specific)
Short Name Start Pragma End Pragma
dc_script_begin/end dc_script_begin dc_script_end
synthesis_off/on synthesis_off synthesis_on
translate_off/on translate_off translate_on

Table 4-4. Supported Exclusion Pragma Pairs (DesignChecker-Specific)


Short Name Start Pragma End Pragma
checking_off/on checking_off checking_on

You insert the start pragma before the excluded code, and then insert the end pragma after.
Thus, this pragma-enclosed section, which is highlighted in gray, by default, in DesignPad is
skipped during the DesignChecker analysis.

Exclusion Settings Batch Commands


Exclusions can be enabled through Tcl commands before invoking DesignChecker.

Table 4-5. Tcl Commands for Configuring Exclusion Settings


Command Arguments
enablePragmaExc “1” to enable, or “0” to disable
lusions

The following example enables pragma exclusion, and runs the DesignChecker on uart_txt
library.

enablePragmaExclusions 1
runTask {DesignChecker\ Flow DesignChecker} UART_TXT uart_tb

For more details, refer to “Batch Process” on page 71.

46 Using DesignChecker with HDL Designer Series™, v2018.2

Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
DesignChecker Exclusions
Setting Black Box Exclusions

Setting Black Box Exclusions


Marking a design component as a “Black Box” ensures that DesignChecker recognizes that the
component is present, but does not apply any checks to it.
For example, you may want to mark third-party components used in your designs as “black
boxes” because they may not comply with your coding standards.

Procedure
To set black box exclusions, do one of the following:

• You can set the source view corresponding to the selected result row as a black box
for DesignChecker by choosing Set Black Box File from the popup menu of the
message in the Results tab.
• Select a design view and choose DesignChecker > Edit Black-Box Settings from
the Edit or popup menu in the HDL Designer Series Design Manager. The Black-
Box dialog box opens. Set the Black-Box option and enter a justification in the text
box.

When a file has been set as a black box for DesignChecker, the file is parsed but no
checks are performed. Files that have been marked as black boxes can be identified in
the Design Manager window by the presence of the icon.

Setting Don’t Touch Exclusions


The Don’t Touch setting ensures that a file is not loaded or analyzed by DesignChecker.

Using DesignChecker with HDL Designer Series™, v2018.2 47

Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
DesignChecker Exclusions
Setting Don’t Touch Exclusions

Procedure
1. Disable checking for a design view by using the Don’t Touch Settings command from
the Edit or popup menu in the HDL Designer Series Design Manager.
The Don’t Touch Settings dialog box opens.

2. Choose the DesignChecker option.


3. Enter a justification for setting a view as Don’t Touch.
This justification displays later in the DesignChecker Exclusion tab in the Don’t Touch
Files pane.

48 Using DesignChecker with HDL Designer Series™, v2018.2

Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
DesignChecker Exclusions
Setting Don’t Touch Exclusions

Note
When you set a Don’t Touch property, the view is ignored for subsequent analysis
until the property is unset. For example, you may want to disable checking for the
non-synthesizable views in a test bench but keep the synthesis checks enabled for all
other views.
When set, the icon appears against the file in the design manager. You may also want
to refer to the “Disabling Downstream Operations” section in the HDL Designer Series
User Manual for more information.

Using DesignChecker with HDL Designer Series™, v2018.2 49

Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
DesignChecker Exclusions
Adding Justifications

Adding Justifications
You can keep record of your justifications for files marked as black box, Don’t Touch, and
disabled rules. It is useful to have this information stored for reference.
Adding Justifications for Black Boxed Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
Adding Justifications for Don’t Touch Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
Adding Justifications for Disabled Rules. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

Adding Justifications for Black Boxed Files


You can mark a file as black box either through HDL Designer Series or through
DesignChecker.
Procedure
1. Adding (or editing) justifications through HDL Designer Series using the Black Box
Settings dialog box:
a. Select a design unit in the Design Manager, and then select DesignChecker > Edit
Black-Box Settings from the Edit or popup menu.
b. In the Justification text box, type the justification and click OK.
2. Adding (or editing) justifications through DesignChecker:
a. Open the Exclusions tab in DesignChecker.
b. Right-click on an entry in the Black Boxed Files pane, and select Edit Justification
from the popup menu.
The Black-Box Justification dialog box opens.

c. In the Justification text box, type the justification and click OK.

50 Using DesignChecker with HDL Designer Series™, v2018.2

Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
DesignChecker Exclusions
Adding Justifications

Note
Note the following:
• If you edit a justification through HDL Designer Series, then DesignChecker is
updated (and vice-versa).
• The Black Boxed Files pane in the Exclusions tab shows the justification related to
each file in a separate column.

Related Topics
Setting Black Box Exclusions

Adding Justifications for Don’t Touch Files


You can set a file as Don’t Touch through HDL Designer Series and specify a justification. This
justification is displayed in the Exclusions tab in the Don’t Touch Files pane.
Procedure
1. Disable checking for a design view by using the Don’t Touch Settings command from
the Edit or popup menu in the HDL Designer Series Design Manager.

Using DesignChecker with HDL Designer Series™, v2018.2 51

Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
DesignChecker Exclusions
Adding Justifications

The Don’t Touch Settings dialog box opens.

2. Enter a justification for setting a view as Don’t Touch.


This justification displays later in the DesignChecker Exclusion tab in the Don’t Touch
Files pane.
Related Topics
Setting Don’t Touch Exclusions

Adding Justifications for Disabled Rules


You can add justifications for disabling rules on policy level through DesignChecker.
You can disable a rule within a policy through the Setup tab of DesignChecker by expanding
the policy, selecting the required rule in the Content pane, and unsetting the check box

52 Using DesignChecker with HDL Designer Series™, v2018.2

Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
DesignChecker Exclusions
Adding Justifications

corresponding to that rule (or by right-clicking on the rule and selecting Disable from the popup
menu).

If you disable a rule for a policy through the Results tab by right-clicking on a violation and
selecting Disable Rule For > Policy <policy_name> from the popup menu, you can also add a
justification for disabling that rule.

Procedure
1. In the Setup tab, expand the policy and select the disabled rule in the Content pane.
2. Right-click on the disabled rule and choose Edit Justification from the popup menu.
The Edit Justification dialog box opens.
3. Use the text box to type the justification. Note that you can write a multi-line
justification, and that this justification is retained by the tool even if you enable the rule
and disable it again.
4. Click OK.
You can edit an existing justification using the same steps above.
The Edit Justification dialog box includes the Prompt for justification option that
allows automatic popup of the dialog box on disabling a rule or a ruleset. Refer to
“Adding Justification for Disabled Rules” in the DesignChecker User Guide for
information.

Using DesignChecker with HDL Designer Series™, v2018.2 53

Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
DesignChecker Exclusions
Reviewing and Editing Exclusions

Reviewing and Editing Exclusions


After you run DesignChecker, the Exclusions tab is available from which you can review the
exclusions related to the last run. The tab contains facilities to add or edit code and rule
exclusions, remove exclusions, or link to excluded files or rules.
The Exclusions tab is divided into an exclusions viewpoint and a summary pane, as shown in
Figure 4-2.

Figure 4-2. DesignChecker Code/Rule Exclusions

The summary pane (shown on the right) contains high-level information about the policy
disabled rules, code/rule exclusions, black boxed files, don’t touch files, exclusion pragmas and
unbound component/instances.

The viewpoint (shown on the left) displays code/rule exclusions, black-boxed files, don’t touch
files, exclusion pragmas, pragma excluded code and unbound component/instances each in a
separate pane.

54 Using DesignChecker with HDL Designer Series™, v2018.2

Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
DesignChecker Exclusions
Reviewing and Editing Exclusions

Reviewing and Editing Code/Rule Exclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56


Reviewing Black Box Exclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
Reviewing Don’t Touch Exclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
Reviewing Exclusion Pragmas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
Reviewing Pragma Code Excluded . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
Reviewing Unbound Component/Instances. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
Changing the Behavior of Exclusion Synthesis Pragmas. . . . . . . . . . . . . . . . . . . . . . . . . 61

Using DesignChecker with HDL Designer Series™, v2018.2 55

Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
DesignChecker Exclusions
Reviewing and Editing Code/Rule Exclusions

Reviewing and Editing Code/Rule Exclusions


If you have set code/rule exclusions, whether in the Add/CodeRule Exclusions dialog box, in
the DesignChecker Results tab or in the constraints file, these exclusions are shown in the
Code/Rule Exclusions pane of the Exclusions tab after running analysis. You can use the Code/
Rule Exclusions pane to examine and edit your exclusions.
Code/Rule Exclusions Pane. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
Reviewing and Editing Example Code/Rule Exclusions . . . . . . . . . . . . . . . . . . . . . . . . . 58

Code/Rule Exclusions Pane


The Code/Rule Exclusions pane displays a list of all the library code/rule exclusions set for the
libraries on which DesignChecker was last run.
Refer to “Reviewing and Editing Example Code/Rule Exclusions” on page 58.

Columns Available in Code/Rule Exclusions Pane


The Code/Rule Exclusions pane contains columns showing information on each exclusion in
the Code/Rule Exclusions pane. There are some columns that are available by default. If you
want to add columns, right-click on the header row and choose Select Columns > “column
name”.

• Object Name — The design unit or source file that is being excluded in conjunction
with a rule.

• Start Line — If you have excluded a Line Range, this column shows the number of the
start line.

• Library — The library to which the excluded object belongs.

• Rule Name — The check that is not applied to the object.

• Object Type — Specifies whether the object is a Design Unit or Source File.

• Justification — Shows the justification you previously defined for the exclusion in the
Add Code/Rule Exclusions Dialog Box.

• Affects Results — The value of this column is “Yes” or “No” depending on whether the
exclusion affected the last analysis in the current session or not.

• End Line — If you have excluded a Line Range, this column shows the number of the
end line.

• Object Full — The full name of the excluded object if it is a design unit or the physical
path if it is a source file.

56 Using DesignChecker with HDL Designer Series™, v2018.2

Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
DesignChecker Exclusions
Reviewing and Editing Code/Rule Exclusions

• Rule Path — The path of the rule within the RuleSet. For example: RuleSets\Essentials\
Downstream Checks\Non synthesizable Constructs
Exclusion Font Meaning
DesignChecker shows exclusions in the Code/Rule Exclusions pane in different font weight and
color depending on whether the exclusion affects results or not.
Table 4-6. Code/Rule Exclusions Pane Font Meaning
Font Meaning
Bold Black The exclusion affects the results of the last analysis run by DesignChecker.
Also, the Affects Results column shows the value “Yes”.
Regular Black The exclusion does not affect the results of the last analysis run by
DesignChecker. Also, the Affects Results column shows the value “No”.
Regular Red The exclusion is invalid due to a problem in one of the following: rule
name, file name or design unit name. A tooltip provides more information
on reason the exclusion is invalid. Also, the Affects Results column shows
the value “No”.

Refer to “Reviewing and Editing Example Code/Rule Exclusions” on page 58.

Operations Available in Popup Menu


You can perform several operations directly in the Code/Rule Exclusions pane from the popup
menu.

If you select one of the listed exclusions and right-click, a popup menu displays with the
following options:
Table 4-7. Code/Rule Exclusions Pane Options - Exclusion Selected
Menu Item Description
Edit Code/Rule Exclusions Displays the Edit Code/Rule Exclusions dialog box to enable
you to change the information related to the selected
exclusion. Refer to “Add Code/Rule Exclusions Dialog
Box” on page 34.
Show Disabled Rule Displays the Setup tab with the disabled rule highlighted.
Open Source File(s) Opens DesignPad showing the excluded file. Notice that this
option is disabled if a rule was disabled for a design unit.
Remove Exclusion Deletes the selected exclusion.

Using DesignChecker with HDL Designer Series™, v2018.2 57

Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
DesignChecker Exclusions
Reviewing and Editing Code/Rule Exclusions

If you right-click in the Code/Rule Exclusions pane without selecting an exclusion, a popup
menu with the following options displays:
Table 4-8. Code/Rule Exclusion Pane Options - No Exclusion Selected
Menu Item Description
Add Code/Rule Exclusion Displays the Add Code/Rule Exclusions dialog box to
enable you to add a new exclusion.
Remove all Exclusions Deletes all the exclusions listed in the Code/Rule Exclusions
pane.

Reviewing and Editing Example Code/Rule Exclusions


The Code/Rule Exclusions pane displays the code/rule exclusions related to design units/files
that are part of the library on which DesignChecker was last run.
This section explains, through an existing example, how exclusions related to the last
DesignChecker analysis results are highlighted.
Prerequisites
• UART.TXT library of the Examples Project should be opened.
• DesignChecker should be configured to use My_Essentials_Policy.
Procedure
1. In the Design Explorer of HDL Designer Series, select the tester design unit. In the Main
shortcut bar on the left hand side, right-click the Check button and choose Run Single.
DesignChecker opens the Results tab showing the violations found through analysis.
2. In the DesignChecker Results tab, select a violation for “Non Synthesizable Constructs”
rule and tester design unit. Choose Disable Rule For > Design unit ‘tester’ from the
popup menu.

Note
If the option “Prompt for justification” is selected in the Edit Justification dialog
box, then the Edit Justification dialog box pops up automatically for you to enter a
justification for the exclusion. Refer to “Adding Justification for Disabled Rules” in the
DesignChecker User Guide for information on this option.

DesignChecker re-runs the analysis.


3. Open the Exclusions tab and examine the content of the Code/Rule Exclusions pane.
A row is added in the Code/Rule Exclusions pane showing the new exclusion in bold
font. The bold font indicates that the new exclusion affects the results of the last analysis

58 Using DesignChecker with HDL Designer Series™, v2018.2

Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
DesignChecker Exclusions
Reviewing Black Box Exclusions

run by DesignChecker. Also, the Affects Results column shows the value “Yes” further
indicating that this exclusion setting affects the analysis results.

Note
If the Affects Results column is not shown, right-click on the header row and choose
Select Columns > Affects Results.

4. Open the Design Explorer again and select the clock_divider design unit. Right-click the
Check button in the Main shortcut bar and choose Run Single.
DesignChecker opens the Results tab showing the violations.
5. In the DesignChecker Results tab, select a violation for “Coding Practices” rule and
clock_divider.v file. Choose Disable Rule For > Source File ‘clock_divider.v’ from
the popup menu.
DesignChecker re-runs the analysis.
6. Open the Exclusions tab and examine the content of the Code/Rule Exclusions pane.
A new clock_divider/Coding Practices exclusion is added in bold and the Affects
Results column indicates “Yes”.
The Tester/Non-synthesizable Constructs exclusion set in step 2 is now shown in red
font.On placing the cursor on this exclusion, a tooltip explains that this exclusion setting
is invalid because the relevant design unit is not included in the last checked design
units. Also, the Affects Results column indicates “No”.
Related Topics
Code/Rule Exclusions Pane

Reviewing Black Box Exclusions


The Black Boxed Files pane displays the black box exclusions set for the code on which
DesignChecker was last run.
Refer to “Setting Black Box Exclusions” on page 47.

You will be able to view the name of the black boxed file, the library to which it belongs, the
dialect of the file, the location of the file on the hard disk, whether or not the file affects results,
and the justification for being marked as a black box.

You can right-click on any black box exclusion and select Open Source File(s) from the popup
menu to open the source file whether in a graphical editor or in DesignPad. You can also select
Edit Justification which opens the Black-Box Justification dialog box in which you can edit or
add an explanation for reference.

Using DesignChecker with HDL Designer Series™, v2018.2 59

Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
DesignChecker Exclusions
Reviewing Don’t Touch Exclusions

You can cancel the black box by right-clicking on the required black box exclusion and
selecting Remove Exclusion from the popup menu.

Reviewing Don’t Touch Exclusions


The Don’t Touch Files pane displays the “don’t touch” exclusions applied in the latest
DesignChecker analysis.
Refer to “Setting Don’t Touch Exclusions” on page 47.

You will be able to view the name of the file, the library to which it belongs, the dialect of the
file, the location of the file on the hard disk, and the justification for being set as “don’t touch”.

You can right-click on any don’t touch exclusion and select Open Source File(s) from the
popup menu to open the source file whether in a graphical editor or in DesignPad.

Reviewing Exclusion Pragmas


The Exclusion Pragmas pane displays the pragmas set for the project that includes the design
units/files on which DesignChecker was last run.
Exclusions related to design files that were part of the last analysis are shown in bold while
those related to files that were not are listed in normal font.

Reviewing Pragma Code Excluded


The Pragma Code Excluded pane shows all the code blocks that have been excluded from the
latest DesignChecker analysis due to using exclusion pragmas.
The pane shows the Start Pragma and End Pragma used in the exclusion, the name of the file in
which the pragma pair was used, the number of the Start Line and End Line of the excluded
code block, and the location of the file on the hard disk.

Note that double-clicking on an entry in this pane opens the corresponding file in DesignPad.

Reviewing Unbound Component/Instances


The Unbound Component/Instances pane displays a list of the instances that are not bound to
masters as found in the latest DesignChecker analysis.
You will be able to view the name of the unbound instance, the name of its missing master, the
name of the relevant file, the line number of the instance, and location of the file on the hard
disk.

60 Using DesignChecker with HDL Designer Series™, v2018.2

Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
DesignChecker Exclusions
Changing the Behavior of Exclusion Synthesis Pragmas

Changing the Behavior of Exclusion Synthesis


Pragmas
DesignChecker enables you to control the behavior of synthesis pragmas to operate at synthesis
level or at parsing level.
The exclusion pragmas supported by DesignChecker allow you to exclude blocks of code from
analysis. In addition to the DesignChecker-specific pragma checking_off/on, DesignChecker
provides a predefined set of synthesis-specific pragmas that you can also make use of in
DesignChecker analysis exclusion.

Synthesis pragmas are primarily used to communicate with synthesis tools to switch off/on
synthesis for the enclosed code. The synthesis-specific pragmas supported by DesignChecker
are: dc_script_begin/end, synthesis_off/on and translate_off/on. By default, these pragmas
operate at synthesis level, that is, code enclosed between synthesis pragmas is ignored by the
synthesis engine. You have the ability to switch synthesis pragmas to operate at parsing level,
that is, code enclosed between synthesis pragmas is ignored by the parsing engine. This ability
to change the behavior of synthesis pragmas applies only to synthesis_off/on and translate_off/
on.

Prerequisites
• Set up your DesignChecker-specific pragma exclusions (refer to “Enabling Pragma
Exclusion” on page 43), use synthesis-specific pragmas (synthesis_off/on or
translate_off/on) and DesignChecker-specific pragmas (checking_off/on) to enclose
code blocks as needed, and then run DesignChecker analysis on your design.
Procedure
1. In DesignChecker, open the Exclusions tab, and then go to the Exclusion Pragmas pane.
2. Check the Level column.
This column displays the current level of the exclusion pragma. The level of the
checking_off/on pragma is “checking”, and that of the synthesis_off/on and
translate_off/on pragmas is “synthesis” by default.
3. Right-click on the synthesis_off/on or translate_off/on pragmas and choose Switch
Level to Parsing.

Using DesignChecker with HDL Designer Series™, v2018.2 61

Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
DesignChecker Exclusions
Exclusions Summary Pane

The value in the Level column for synthesis_off/on and translate_off/on pragmas
changes from “synthesis” to “parsing”. Hence, in any future operations that involve
parsing, any code block enclosed in these synthesis pragmas is excluded from parsing.
4. (Optional) Right-click on the synthesis_off/on or translate_off/on pragmas and choose
Switch Level to Synthesis to toggle back to synthesis level.

Related Topics
Enabling Pragma Exclusion
DesignChecker Predefined Exclusion Pragmas

Exclusions Summary Pane


The Exclusions summary pane displays an overview of the set exclusions in tabular form under
the following headings.

62 Using DesignChecker with HDL Designer Series™, v2018.2

Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
DesignChecker Exclusions
Exclusions Summary Pane

• Policy Disabled Rules: This displays information about the rules that have been
disabled from a specific policy. For example:

• Code/Rule Exclusions: This displays the names of the libraries that were part of the last
DesignChecker analysis, the number of the set code/rule exclusions, and the number of
exclusions that were actually used in the last run.

• Black Boxed Files: This displays the number of black box exclusions. For example:

• Don’t Touch Files: This shows the number of excluded files that are set as “don’t
touch”. Refer to “Setting Don’t Touch Exclusions” on page 47.

• Exclusion Pragmas: This shows the number of excluded code blocks and the number of
exclusion pragmas. Refer to “Enabling Pragma Exclusion” on page 43 for information.

Note that the number of exclusion pragmas reflects the actual number of pragma types
encountered during the analysis (for example: checking_off/on, dc_script_begin/end,
and so on).
• Unbound Component/Instances: This displays the number of unbound component/
instances and the number of missing masters in the latest run.

Using DesignChecker with HDL Designer Series™, v2018.2 63

Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
DesignChecker Exclusions
Reporting Exclusions in the Results Summary Pane

Reporting Exclusions in the Results Summary


Pane
The Summary pane of the Results tab contains a section titled Exclusions, in which data on the
exclusion settings is displayed.
Refer to “Setting Exclusions” on page 32 for more information on how to set exclusions.

It is important to note that the data shown in the Exclusions section includes data on the
exclusion settings that affected the last performed analysis only. For example, you may have set
four files as black boxed files, whereas only two are reported in the Exclusions pane of the
Results Summary pane; this means that only two black boxed files of the four were involved in
the scope of analysis.

The following data is displayed in the Exclusions summary section:

• Policy Disabled Rules — shows the number of rules that have been disabled in the
policy and hence were not applied to the analyzed code. If you right-click on this entry
and select Show Exclusions from popup menu, the Rule Details tab is opened
displaying the policy. Refer to “Rule Details Tab” in the DesignChecker User Guide for
information on the tab’s content.
• Code/Rule Exclusions — shows the number of code/rule exclusions that have affected
the analysis results. If you right-click on this entry and select Show Exclusions from the
popup menu, the Exclusions tab is opened displaying the Code/Rule Exclusions pane.

64 Using DesignChecker with HDL Designer Series™, v2018.2

Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
DesignChecker Exclusions
Reporting Exclusions in the Results Summary Pane

• Black Boxed Files — shows the number of black boxed files that have been excluded
from the analyzed code. If you right-click on this entry and select Show Exclusions
from the popup menu, the Exclusions tab is opened displaying the Black Boxed Files
pane.
• Don’t Touch Files — shows the number of “don’t touch” files that have been excluded
from the analyzed code. If you right-click on this entry and select Show Exclusions
from the popup menu, the Exclusions tab is opened displaying the Don’t Touch Files
pane.
• Exclusion Pragmas — shows the number of exclusion pragma types that have affected
the analyzed code. On running a DesignChecker analysis while having enabled
exclusion pragmas, DesignChecker will skip the HDL blocks wrapped by the pragma
pairs. If you right-click on this entry and select Show Exclusions from popup menu, the
Exclusions tab is opened displaying the Exclusion Pragmas pane.
Enabling exclusion pragmas is reflected on your results as follows:
o If an entire design unit is excluded, it will not be counted in the total number of
analyzed design units which is shown in the Design Units section of the Results
Summary pane.
o In the DesignPad, all the excluded blocks are highlighted in gray in addition to the
corresponding objects in the Code Browser.

Using DesignChecker with HDL Designer Series™, v2018.2 65

Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
DesignChecker Exclusions
Reporting Exclusions in the Results Summary Pane

The default highlighting color for the excluded code is gray; however, you can
change the color through DesignPad by selecting Message Display Settings from
the DesignChecker menu. In the Exclusion Display Settings section, select the
required highlighting color.

66 Using DesignChecker with HDL Designer Series™, v2018.2

Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
DesignChecker Exclusions
Showing/Hiding Excluded Violations

• Pragma Code Excluded — shows the number of code blocks that have been discarded
from analysis using exclusion pragmas. If you right-click on this entry and select Show
Exclusions from the popup menu, the Exclusions tab is opened displaying the Pragma
Code Excluded pane.
• Missing Masters — shows the number of missing masters in the analyzed design. If
you right-click on this entry and select Show Exclusions from the popup menu, the
Exclusions tab is opened displaying the Unbound Component/Instances pane.
• Unbound Instances — shows the number of instances that are not bound to masters. If
you right-click on this entry and select Show Exclusions from the popup menu, the
Exclusions tab is opened displaying the Unbound Component/Instances pane.

Showing/Hiding Excluded Violations


DesignChecker provides a waivers feature which allows you to control whether to show or hide
excluded violations in the Results tab. This feature enables you to adjust the degree of visibility
over analysis violations according to your needs.
Procedure
1. Specify the policy which you want to use for DesignChecker analysis. Refer to
“Determining Your Policy” on page 16.
2. Specify the code/rule exclusions you need to apply to your DesignChecker analysis.
Refer to “Setting Exclusions” on page 32.
3. Select the design unit/file and then run the DesignChecker analysis. Refer to “Running
the Analysis” on page 19.

Using DesignChecker with HDL Designer Series™, v2018.2 67

Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
DesignChecker Exclusions
Showing/Hiding Excluded Violations

4. After the analysis is run, open the Results tab to examine the violations.
Note how the violations related to the set exclusions are highlighted in the Results tab.
Figure 4-3. DesignChecker Results Tab — Excluded Violations

You can show the “Excluded” column, which helps you identify whether the violation is
excluded or not. You can group results by the “Excluded” column for better visibility by
right-clicking on the column name and selecting Group by this column from the popup
menu.

68 Using DesignChecker with HDL Designer Series™, v2018.2

Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
DesignChecker Exclusions
Showing/Hiding Excluded Violations

Figure 4-4. DesignChecker Results Tab — Excluded Column

5. Hide excluded violations by doing one of the following:


• From the DesignChecker menu bar, select Results > Show/Hide Excluded
Violations.
• Click Exclude Highlighted Violations on the Results shortcuts bar on the left hand
side.
You can show excluded violations again using the same method. Note the name of the
button in the Results shortcut bar changes to Show Highlighted Violations.

Using DesignChecker with HDL Designer Series™, v2018.2 69

Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
DesignChecker Exclusions
Showing/Hiding Excluded Violations

Note how the excluded violations are reported in the Violations section of the Summary
pane.

Note
On exporting results reports, you have the option to display excluded violations in
the report. Refer to “Exporting Results” in the DesignChecker User Guide.

70 Using DesignChecker with HDL Designer Series™, v2018.2

Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Appendix A
Batch Process

You can run DesignChecker in batch mode from a command line without any need for
interaction with the user interface. This is achieved using a Tcl script.
Your Tcl scripts can consist solely of DesignChecker commands, or can be more complex and
include commands defining arguments to be passed into the script, checking arguments,
verifying pathnames or checking for existing filenames.

Running in Batch Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

Running in Batch Mode


You can run DesignChecker in batch mode using the DesignChecker task. A task is a method of
integrating scripts, tools, and flows.
Tasks accept setup commands and then use a run command to launch the task itself; this is
achieved using the setupTask and runTask commands respectively. You can use these
commands in a script file, or embed them within a Tcl script to perform a variety of operations.
You invoke the DesignChecker task using the -tcl switch to load a Tcl script containing API
commands. For example:

hdldesigner -tcl my_analysis_script.tcl

You can run DesignChecker and output the results to your screen and a file using the following
command:

hdldesigner -tcl my_analysis_script.tcl 2>&1 | tee log.txt

DesignChecker batch mode is driven using the normal HDS task mechanism, with the standard
HDS task commands and switches.

The following tool setting parameters are supported by the DesignChecker task:
Table A-1. Tool Setting Parameters
Description Parameter Name Values Default
Output file OutputFile filename of your none
choice

Using DesignChecker with HDL Designer Series™, v2018.2 71

Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Batch Process
Running in Batch Mode

Table A-1. Tool Setting Parameters (cont.)


Description Parameter Name Values Default
Output format OutputFormat CSV TSV
TSV
HTML
Summary file SummaryFile filename of your none
choice
Summary format SummaryFormat CSV TSV
TSV
HTML
Summary Report SummaryReportContent Settings All
Content Design Units
Quality
Rules
Violations

72 Using DesignChecker with HDL Designer Series™, v2018.2

Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Batch Process
Running in Batch Mode

Table A-1. Tool Setting Parameters (cont.)


Description Parameter Name Values Default
Output Report OutputReportContent Library Rule Severity
Content Filename Severity, RuleSet and Rule
Leaf Filename Library, Design Unit and Scope
Line Number Message
Rule Name Line Number
RuleSet
Rule Category
Rule Severity
Hint
Message
Scope
Design Unit Name
Severity, RuleSet and
Rule
File and Line
Library, Design Unit
and Scope
Type
Rule Path
Full Message
Full Message with
Rule Path
Severity and Rule
Path
Combined Report CombinedReportFile filename of your none
File choice
Combined Report CombinedReportFormat CSV TSV
Format TSV
HTML

Using DesignChecker with HDL Designer Series™, v2018.2 73

Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Batch Process
Running in Batch Mode

Table A-1. Tool Setting Parameters (cont.)


Description Parameter Name Values Default
Combined Report CombinedReportContent Analysis Results All
Content Results Summary
Excluded Violations
Exclusions
Checked Files and
Design Units
Rule Details
Run Quality RunQualityAnalysis On | Off On
Analysis
Include Disabled IncludeDisabledRules On | Off Off
Rules
Enable Pragma enablePragmaExclusion 1|0 0
Exclusions
Global GlobalExclusionFile Absolute path of none
Constraints File Note: The global constraints file your choice
for Libraries supersedes constraint files set on the
level of libraries.
Results Report ConfigFile Absolute path of none
Configuration your choice
File
Run Level RunLevel FILE_LEVEL FILE_LEVEL
UNIT_LEVEL
Run Mode RunMode INTERACTIVE INTERACTIVE
BATCH
DesignChecker task settings related to handling missing declarations:
Report missing ReportMissingDeclarations 1|0 0
declarations
Location of ReportMissingDeclarationsLocation Location of report %(library_downstream_HdsLint
missing file Plugin)/
declarations %(library)_missingDeclarations.
report csv
Generate missing AllowHandlingMissingDeclarations 1|0 0
declarations

74 Using DesignChecker with HDL Designer Series™, v2018.2

Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Batch Process
Running in Batch Mode

Table A-1. Tool Setting Parameters (cont.)


Description Parameter Name Values Default
Generate missing GeneratingMissingDeclarationsOption 2| 1 | 0 2
declarations Note: “2” indicates
option the option “Generate
new only, reuse
existing”, “1”
indicates the option
“Generate, overwrite
existing”, and “0”
indicates the option
“Do not generate,
just reuse existing”.
Location of GeneratedMissingDeclarationsLocation Location of %(library_downstream_HdsLint
generated generated missing Plugin)/generatedMissingDecls
missing declaration files
declarations
Copy before CopyBeforeOverwriteGeneratedFiles 1|0 1
overwriting
generated files
Prefix for copied CopyBeforeOverwritePrefix Prefix for copied .bak
files files
Generate Don’t TreatDonttouchAsMissingDeclarations 1|0 1
Touch
Declarations
For example, the following script runs the DesignChecker tool task on the Ethernet example
design through components and the results are saved as HTML files:

setupTask {DesignChecker} -throughCpt


setupTask {DesignChecker} -setting SummaryFile c:/batch_results/
results_summary.htm
setupTask {DesignChecker} -setting OutputFile c:/batch_results/
results_output.htm
setupTask {DesignChecker} -setting OutputFormat HTML
setupTask {DesignChecker} -setting SummaryFormat HTML
runTask {DesignChecker} Ethernet tb_cop

For more information about running tasks from a command file, refer to Log Window in HDL
Designer Series User Manual, and then navigate to the Batch Command Language subsection.

You can use the ConfigFile option as shown below to call a Tcl script containing the API
commands required to configure results reports. The API commands produce outcome
equivalent to that of the Export Results dialog box in DesignChecker (refer to “Exporting
Results” in the DesignChecker User Guide).

Using DesignChecker with HDL Designer Series™, v2018.2 75

Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Batch Process
Running in Batch Mode

setupTask {DesignChecker} –setting ConfigFile {/home/username/config.tcl}

Note
HDS tool runs and executes the setupTask command options. However, if you use the
ConfigFile option to pass a Tcl script, DesignChecker tool executes and runs the API
commands in this Tcl script.

Below is an example of a Tcl file with API commands configuring the reports required to be
generated. Refer to DesignChecker API Reference Manual for information about the API
commands you can use in the report configuration Tcl file.

enableDumpCodeSnippet
setSnippetLinesBefore 2
setSnippetLinesAfter 1
enableFilterAssocViolation
setExclusionReport {"/home/<user_name>/DC_Reports_2/
Formal_Exclusion_report.csv" "/home/<user_name>/DC_Reports_2/
Formal_Exclusion_report.htm"} {"CSV" "HTML"}
setExclusionReportContents {{Black Boxed Files} {Don't Touch Files}}
setRulesCheckedReport {"/home/<user_name>/DC_Reports_2/
Formal_RulesChecked_report.csv" "/home/<user_name>/DC_Reports_2/
Formal_RulesChecked_report.htm"} {"CSV" "HTML"}
setCheckedFileDUsReport {"/home/<user_name>/DC_Reports_2/
Formal_CheckedFileDUs_report.csv" "/home/<user_name>/DC_Reports_2/
Formal_CheckedFileDUs_report.htm"} {"CSV" "HTML"}

The parameter RunLevel allows you to run either a design unit level check or a file level check.
The parameter RunMode configures DesignChecker to run either interactively or in batch mode.
It should be noted that this parameter gives the ability to run DesignChecker in batch mode even
if invoked from an interactive HDL Designer Series session.

Also, you can store your rulesets and policies on a central server, so that every team member
would have access to them. The following commands enable team members to set the shared
ruleset and policy location:

setRulesetLocation <ruleset path>


setPolicyLocation <policy path>

Refer to “Sharing RuleSets” on page 80 and “Sharing Policies” on page 83 for more
information on these two commands.

Note
Batch mode does not support the configuration of rulesets or user policies. To configure
these for use in batch mode you must run DesignChecker interactively, configure your
rulesets and policies, and set this as your default DesignChecker configuration before running
any batch process.

76 Using DesignChecker with HDL Designer Series™, v2018.2

Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Batch Process
Running in Batch Mode

General Notes:

• In case you are using more than one value within the same command, you have to
enclose the values between curly braces { } or double quotation marks “ ” as follows:
setupTask {DesignChecker} -setting SummaryReportContent {Settings
Quality Rules}
setupTask {DesignChecker} -setting SummaryReportContent “Settings
Quality Rules”

• In case you are using a value that constitutes of more than one word separated by spaces,
enclose this value within secondary curly braces as follows:
setupTask {DesignChecker} -setting SummaryReportContent {Settings
Quality Rules {Design Units}}
setupTask {DesignChecker} -setting SummaryReportContent “Settings
Quality Rules {Design Units}”
setupTask {DesignChecker} -setting SummaryReportContent {{Design
Units}}
setupTask {DesignChecker} -setting SummaryReportContent “{Design
Units}”

Using DesignChecker with HDL Designer Series™, v2018.2 77

Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Batch Process
Running in Batch Mode

78 Using DesignChecker with HDL Designer Series™, v2018.2

Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Appendix B
DesignChecker for Teams

It is often necessary to ensure that all members of a specific design team or all teams within the
company are checking designs against the same set of rules. This can easily be achieved by
sharing the rulesets and optionally sharing policies.
Refer to “Sharing RuleSets” on page 80 and “Sharing Policies” on page 83 for details.

Default RuleSet and Policy Location . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79


Sharing RuleSets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
Linking Shared RuleSets to Your Own Policies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
Sharing Policies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
Read-Only Policies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
Environment Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
Search Order of RuleSet and Policy Directory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87

Default RuleSet and Policy Location


By default, DesignChecker uses the policies, rulesets and preferences in the dc_user folder
within the directory structure of the HDL Designer Series preferences.

Using DesignChecker with HDL Designer Series™, v2018.2 79

Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
DesignChecker for Teams
Sharing RuleSets

The default location for the dc_user folder on each platform is as follows:

Windows: Users\<user_or_login_name>\AppData\Roaming\
HDL Designer Series\dc_user

UNIX and Linux: $HOME/hdl_designer_series/dc_user

The default locations of rulesets and policies within the HDL Designer Preferences directory are
stored automatically in the environment variables $HDS_RULESET_DIR and
$HDS_POLICY_DIR respectively. For example, the location of policies within the HDL
Designer Preferences directory can be equivalent to $HDS_USER_HOME/../dc_user/rulesets
and HDS_USER_HOME/../dc_user/policies.

You can optionally change the values of the $HDS_RULESET_DIR and/or


$HDS_POLICY_DIR environment variables if you wish to specify your own location for the
rulesets or policies respectively. The paths specified using $HDS_RULESET_DIR and
$HDS_POLICY_DIR override the default location of rulesets and policies within the HDL
Designer Preferences directory.

Also, you can optionally use the DC_USER_HOME environment variable to specify your own
location for DesignChecker preferences to be separate from HDL Designer preferences; that is
to say, a separate location for loading and saving DesignChecker preferences, policies and
rulesets. The path specified using DC_USER_HOME takes higher priority over
$HDS_RULESET_DIR and $HDS_POLICY_DIR.

Note
The location of the HDS user preferences (hds_user) can be changed using the
HDS_USER_HOME environment variable or the -user_home <path> command line
option. The location of the DesignPad preferences (dp_user) and DesignChecker preferences
(dc_user) are relative to this location, unless otherwise specified.

Sharing RuleSets
To share rules within a team, the project manager needs to create the required ruleset(s) in a
default location and then copy the rulesets directory to a central server. It is a good practice to
change the access rights to these files to read-only to avoid accidental changes.
All members of the design team can then point to the shared rulesets directory instead of the
default. The ruleset location can be set in two ways: through the Design Manager of HDL
Designer Series and through Tcl commands.

Procedure
1. To set the ruleset location directly through the Design Manager of HDL Designer Series:
a. In the Files view, click the plus sign (+) to expand the DesignChecker tree.

80 Using DesignChecker with HDL Designer Series™, v2018.2

Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
DesignChecker for Teams
Sharing RuleSets

b. Right-click on the RuleSets folder and select Edit RuleSet Location.

c. Enter the path to the shared ruleset directory (you can use environment variables in
the pathname, for example, $SHARED/rulesets).
Alternatively, specify the path as $HDS_RULESET_DIR. Each team member can
reference the shared ruleset directory by setting the $HDS_RULESET_DIR
environment variable; refer to “Environment Variables” on page 86 for information.

Using DesignChecker with HDL Designer Series™, v2018.2 81

Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
DesignChecker for Teams
Sharing RuleSets

Note
If you set the DC_USER_HOME environment variable (which defines a specific
path for loading and saving DesignChecker preferences, rulesets and policies),
then it overrides $HDS_RULESET_DIR. For more information on
DC_USER_HOME, refer to “Environment Variables” on page 86.
Each team member can use DC_USER_HOME to reference a shared preferences
directory.

Instead of steps b and c, you can right-click on the RuleSets folder and select Browse
to RuleSet Location.
2. To set the ruleset location directly using Tcl commands:
a. Set the ruleset location directly using Tcl commands within a tcl script referenced by
the “-do” or “-tcl” command line arguments:
setRulesetLocation <ruleset path>

When you invoke HDS with a Tcl script using “-tcl” batch mode, no preferences are
saved; using “-do”, the preferences are saved since the script is run before opening in
full interactive mode.
Results
Having created and shared rulesets, you can reference them using user-specific or shared
policies as follows:
• User Specific Policies — Each member in the team can have their own policies which
reference the shared rulesets. This allows individual control in terms of enabling or
disabling certain rules referenced by the policies. In this case, each member will have to
set their own default policy and link it to the shared rulesets; for information, refer to
“Linking Shared RuleSets to Your Own Policies” on page 83.
• Shared Policies — All the members within the team have the ability to share the same
policies in a similar way to rulesets. For further information, refer to “Sharing Policies”
on page 83. In this case, shared policies will be made read-only; hence, members in the
team will be prevented from enabling or disabling rules referenced by the policies.
Related Topics
Environment Variables
Sharing Policies
Linking Shared RuleSets to Your Own Policies

82 Using DesignChecker with HDL Designer Series™, v2018.2

Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
DesignChecker for Teams
Linking Shared RuleSets to Your Own Policies

Linking Shared RuleSets to Your Own Policies


You can reference shared rulesets from your own policies. This allows you to refer to a common
set of rules, but still be able to enable/disable specific rules within your policy. You can create
references to shared rulesets in your own policy in the same way as you would for your own
rulesets.
Each team member can take these simple steps to link their own policy to shared rulesets.

Procedure
1. Set the ruleset path through HDL Designer Series (refer to “Sharing RuleSets” on
page 80) and then invoke DesignChecker.
2. In the Setup tab, select the Policies folder in the Folders pane.
3. Choose New Policy from the popup menu.
4. Provide a name for the policy.
5. Click on the top level of the team ruleset hierarchy and then drag and drop it into your
new policy.
6. Select the new policy and choose Set as Default from the popup menu. This makes your
new policy the active policy.
Policies simply contain links to the rulesets. Thus, if anything changes in the rulesets,
those changes will be automatically reflected in the policy. For more information on
policies, refer to “Working with Policies” in the DesignChecker User Guide.
Related Topics
Sharing RuleSets

Sharing Policies
In addition to sharing rulesets, you can also share policies among team members. Like rulesets,
the project manager can create policies, set them as read-only, and then copy the policies
directory to a central server so that each individual in the team has access to these shared
policies.
Subsequently, the team members can reference the policies by setting the appropriate path.

All members of the design team can then point to the shared policies directory instead of the
default. The policy location can be set in two ways: through the Design Manager of HDL
Designer or through Tcl commands.

Using DesignChecker with HDL Designer Series™, v2018.2 83

Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
DesignChecker for Teams
Sharing Policies

Procedure
1. Setting the policy location directly through the Design Manager:
a. In the Files view, click on the plus sign (+) to expand the DesignChecker tree.
b. Right-click on the Policies folder and select Edit Policy Location.

c. Enter the path to the shared policy directory (you can use environment variables in
the pathname, for example, $SHARED/policies).
Alternatively, specify the path as $HDS_POLICY_DIR. Each team member can
reference the shared policy directory by setting the $HDS_POLICY_DIR
environment variable; refer to “Environment Variables” on page 86 for information.

84 Using DesignChecker with HDL Designer Series™, v2018.2

Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
DesignChecker for Teams
Sharing Policies

Note
If you set the DC_USER_HOME environment variable (which defines a specific
path for loading and saving DesignChecker preferences, rulesets and policies),
then it overrides $HDS_POLICY_DIR. For more information on
DC_USER_HOME, refer to “Environment Variables” on page 86.
Each team member can use DC_USER_HOME to reference a shared preferences
directory.

Having set the path of the Policies folder, all the policies on that path are loaded and
displayed in the DesignChecker tree.
Instead of steps b and c, you can right-click on the Policies folder and select Browse
to Policy Location.
2. To set the ruleset location directly using Tcl commands:
• Set the new location using Tcl commands within a tcl script referenced by the “-do”
or “-tcl” command line arguments:
setPolicyLocation <policy path>

When you invoke HDS with a Tcl script using “-tcl” batch mode, no preferences are
saved; on the other hand, on using “-do”, the preferences are saved since the script is run
before opening in full interactive mode.

Note
It is important to note that to be able to share policies, the team has to keep the
locations of both the ruleset and policy in-sync. This is because policies refer to
rulesets by name only and expect to find the ruleset within the rulesets’ directory.
If a policy refers to a ruleset which is not available in the current ruleset directory, the
ruleset is flagged with a warning sign in DesignChecker as illustrated below.

Using DesignChecker with HDL Designer Series™, v2018.2 85

Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
DesignChecker for Teams
Read-Only Policies

Read-Only Policies
DesignChecker supports read-only policies as follows:
• If a policy is read-only, it is marked with the read-only overlay as shown in the below
picture; this indicates that no modifications can be applied to this policy. For instance,
you cannot change the name of the policy, the names of the rulesets referenced by the
policy, or the rulesets referenced by the policy, and so forth.

• If the directory of policies is read-only, a team member becomes unable to create a new
policy since it would not be possible to save the new policy.
If the directory of the policy is writable, each team member has the ability to apply their
own modifications to the shared policies.

Environment Variables
HDL Designer Series provides a number of built-in environment variables for several purposes.
Refer to the “Environment Variables” chapter in the HDL Designer Series User Manual for
more information.

• DC_USER_HOME: This environment variable allows you to specify your own location
for loading and saving DesignChecker preferences, policies and rulesets. Hence, this
environment variable allows you to specify a location separate from the default HDL
Designer Preferences location. If defined, DC_USER_HOME takes higher priority over
the HDS_RULESET_DIR and HDS_POLICY_DIR environment variables.
• HDS_RULESET_DIR: This environment variable specifies the location of the
DesignChecker ruleset directory. This variable can either be explicitly set to force the
use of a specific ruleset directory, or it can be used to reference the default ruleset
directory which is located in the HDS preferences directory.

86 Using DesignChecker with HDL Designer Series™, v2018.2

Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
DesignChecker for Teams
Search Order of RuleSet and Policy Directory

o If you explicitly set this variable, then its value for the new ruleset directory will
override the one specified in the preferences. Subsequently, if you unset this
variable, the ruleset location will revert to the value stored in the preferences.
o If you do not explicitly set this variable, then its value will automatically default to
the ruleset directory within the HDS preferences directory upon invoking HDL
Designer Series.
• HDS_POLICY_DIR: This environment variable specifies the location of the
DesignChecker policy directory. This variable can either be explicitly set to force the
use of a specific policy directory, or it can be used to reference the default policy
directory which is located in the HDS preferences directory.
o If you explicitly set this variable, then its value for the new policy directory will
override the one specified in the preferences. Subsequently, if you unset this
variable, the policy location will revert to the value stored in the preferences.
o If you do not explicitly set this variable, then its value will automatically default to
the policy directory within the HDS preferences directory upon invoking HDL
Designer Series.
• HDS_USER_HOME: This environment variable specifies the location of the hds_user
directory which contains the user resource files. The default location is in the
Application Data folder (Windows) or user directory (UNIX/LINUX) or the location in
which user preferences have been stored for the previous release. This variable is
ignored if an existing location is specified using the -user_home command line switch.
The dc_user and dp_user directories are both relative to the location of the hds_user
directory. They both follow the hds_user directory and are automatically created in the
same directory.
Related Topics
Search Order of RuleSet and Policy Directory

Search Order of RuleSet and Policy Directory


DesignChecker goes through a specific search sequence in order to locate rulesets and policies.
RuleSets are located using the following search order:

1. The location specified by the command setRulesetLocation<ruleset path>.


2. The value of the DC_USER_HOME environment variable.
3. The value of the $HDS_RULESET_DIR environment variable, if set.
4. The location in the user preferences, in case it is different from the default. You can use
the $HDS_RULESET_DIR environment variable to reference defaults.

Using DesignChecker with HDL Designer Series™, v2018.2 87

Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
DesignChecker for Teams
Search Order of RuleSet and Policy Directory

5. The default location which is the subdirectory within the HDS user preferences directory
($HDS_USER_HOME/../dc_user/rulesets).
Policies are located using the following search order:

1. The location specified by the command setPolicyLocation<policy path>.


2. The value of the DC_USER_HOME environment variable.
3. The value of the $HDS_POLICY_DIR environment variable, if set.
4. The location in the user preferences, in case it is different from the default. You can use
the $HDS_POLICY_DIR environment variable to reference defaults.
5. The default location which is the subdirectory within the HDS user preferences directory
($HDS_USER_HOME/../dc_user/policies).

88 Using DesignChecker with HDL Designer Series™, v2018.2

Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Appendix C
Design Checking Levels

When running a DesignChecker analysis, you have the ability to do that on one of two levels:
File level or Design Unit level. Determining which level to use in your analysis depends on the
level of depth you are targeting which is consequently reflected on the analysis results.
If you run DesignChecker on the level of a source file, the tool analyzes the selected file along
with all the design units that pertain to that file. On the other hand, if you run DesignChecker on
the level of a design unit, the tool analyzes the specified design unit individually.

File-Level Checking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
Design Unit-Level Checking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93

File-Level Checking
File-level checking is performed on a specified file and all the design units included in that file.
Follow this procedure to run a file level check.

Procedure
1. In the HDL Designer Series Design Manager, select the file you need to analyze in the
Files pane under the Design Files node.

Using DesignChecker with HDL Designer Series™, v2018.2 89

Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Design Checking Levels
File-Level Checking

For example, you can select tb_eth_behcomp.v in the Ethernet library.

2. In the Main shortcut bar, right-click on the Check button and select Run Single from
the popup menu.

90 Using DesignChecker with HDL Designer Series™, v2018.2

Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Design Checking Levels
File-Level Checking

The DesignChecker runs the analysis on the specified file and the results are displayed
as shown in the following figure.

The following figure displays the results grouped by the design units analyzed.

3. Open the Checked Files/Design Units tab.

Using DesignChecker with HDL Designer Series™, v2018.2 91

Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Design Checking Levels
File-Level Checking

The Checked Files pane displays information on the file that has undergone the
DesignChecker analysis. You will find the file you previously selected in the Design
Manager.

In the Checked Design Units pane, you will find all the design units related to the file as
shown in the above figure; these design units have undergone the DesignChecker
analysis along with the file.
As shown in the figure, all the design units belonging to the file tb_eth_behcomp.v have
been checked: eth_host, eth_memory, eth_phy, tb_cop, tb_ethernet_with_cop,
WB_BUS_MON, WB_MASTER32, WB_MASTER_BEHAVIORAL and
WB_SLAVE_BEHAVIORAL.
4. You can identify the type of check level you performed through the Results tab. In the
Settings section of the Summary pane, you will find that the Check Level of the analysis
is “File Level” as shown in the below figure.

92 Using DesignChecker with HDL Designer Series™, v2018.2

Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Design Checking Levels
Design Unit-Level Checking

Design Unit-Level Checking


Design unit-level checking grants you a deeper level of granularity as it allows you to perform
the DesignChecker analysis on an individual design unit.
Follow this procedure to run a design unit level check.

Procedure
1. In the HDL Designer Series design manager, select the design unit you need to analyze
in the Design Units pane. For example, you can select tb_cop in the Ethernet library.

Using DesignChecker with HDL Designer Series™, v2018.2 93

Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Design Checking Levels
Design Unit-Level Checking

2. In the Main shortcut bar, right-click on the Check button and select Run Single from
the popup menu.

94 Using DesignChecker with HDL Designer Series™, v2018.2

Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Design Checking Levels
Design Unit-Level Checking

The following figure displays the results grouped by the design units analyzed.

Note
The violations that resulted from analyzing the design unit tb_cop are much less than
the violations that resulted from analyzing the file tb_eth_behcomp.v (refer to “File-
Level Checking” on page 89). This is because the design unit tb_cop is part of the file
tb_eth_behcomp.v; hence, design level checking allows you to obtain more specific and
minimal results. This can be very useful in case of large designs.

3. Open the Checked Files/Design Units tab.

Using DesignChecker with HDL Designer Series™, v2018.2 95

Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Design Checking Levels
Design Unit-Level Checking

The Checked Design Units pane displays information on the design unit which has
undergone the DesignChecker analysis. You will find the design unit you previously
selected in the Design Manager.

The Checked Files pane displays the file to which the analyzed design unit belongs.
Note that none of the other design units that belong to that file is analyzed.
4. You can identify the type of check level you performed through the Results tab. In the
Settings section of the Summary pane, you will find that the Check Level of the analysis
is “Design Unit Level” as shown in the below figure.

It is important to note that if you run design unit level checking through hierarchy, only
the selected design unit in addition to the design units in the underlying hierarchy will be
included in the analysis.

96 Using DesignChecker with HDL Designer Series™, v2018.2

Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Design Checking Levels
Design Unit-Level Checking

For example, if you analyze tb_cop through components, only the designs that come
below tb_cop in the design hierarchy are checked, which is eth_cop in that case as
shown in the Checked Files/Design Units tab.

Also, by checking the design hierarchy of tb_cop in the design manager, you will find
that it only includes the design unit eth_cop in its underlying hierarchy.

Using DesignChecker with HDL Designer Series™, v2018.2 97

Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Design Checking Levels
Design Unit-Level Checking

98 Using DesignChecker with HDL Designer Series™, v2018.2

Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Appendix D
DesignChecker Features Available in HDL
Designer Series

This appendix provides DesignChecker-related features performed directly through HDL


Designer Series.
DesignChecker-Related Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99

DesignChecker-Related Features
You can perform the following DesignChecker-related features directly through HDL Designer
Series.
• Invoking DesignChecker
• Setting the Default Policy
• Selecting Files for Analysis (File Level/Design Unit Level)
• Running DesignChecker
• Accessing the DC_constraints file
• Setting Pragma Exclusions
• Setting Black Box Exclusions
• Setting Don’t Touch Exclusions
• Sharing RuleSets and Policies

Using DesignChecker with HDL Designer Series™, v2018.2 99

Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
DesignChecker Features Available in HDL Designer Series
DesignChecker-Related Features

100 Using DesignChecker with HDL Designer Series™, v2018.2

Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Index

Black-Box Justification, 51, 60


Index

—A— Black-Box Settings, 48, 50


Analysis Don’t Touch Settings, 48, 52
running Edit Justification, 54
single level, 20, 22, 24 Disabling rule for policy/design unit/source
through blocks, 20, 22, 24 file, 40, 42, 53, 56
through components, 20, 22, 24 Disabling ruleset for policy/design unit/source
through design root, 20, 22, 24 file, 42
running in batch mode, 71 Don’t touch
selecting files/design units, 18 justification, 51
design unit level, 93 setting, 48, 52
file level, 89
—E—
—B— Environment Variables, 86
Batch Mode, 71 Errors
Black box Elaboration, 27
justification, 50 Syntax, 27
setting, 47 Synthesis, 27
—C— Exclusions
Check level batch commands, 46
design unit level, 93 black box, 47, 59
file level, 90 code/rule, 33, 39, 42, 56
Checked Files/Design Units tab, 92, 96 DC constraints file, 14, 33, 36
Cross-Reference results editing, 42
with DesignPad, 27 dc_exclude API, 38
with graphics, 30 don’t touch, 48, 60
editing, 54
—D— pragma, 14, 43, 46, 60
dc_user folder, 79 setting, 32
DesignChecker Exclusions tab, 54
flow, 23 black boxed files, 59
invoking, 11 code/rule exclusions, 56
task, 23 don’t touch files, 60
DesignPad, 27, 36, 46, 57, 60, 66 exclusion pragmas, 60
code browser, 28 pragma code excluded, 60
code editing pane, 28 unbound component/instances, 60
DesignChecker menu, 29 Exclusions tab summary pane, 62
report pane, 29
Dialog box —J—
Add Code/Rule Exclusions, 34 Justification

Using DesignChecker with HDL Designer Series™, v2018.2 101


adding/editing results, 25, 40, 93, 96
for black boxed files, 50, 60
for don’t touch exclusions, 50, 52 —V—
Viewpoints, 25
—M—
Manage Policies/RuleSets, 13, 14
—O—
Open HDL
from results tab, 28
Open Source
from exclusions tab, 57, 60
from results tab, 30
—P—
Policies
default, 14, 16, 17
set through DesignChecker, 17
set through HDL Designer Series, 16
linking to shared rulesets, 83
location, 80, 84
editing, 84
read-only, 86
sharing locations, 14, 83
Preferences
user, 79
—R—
Results
cross-referencing wit h DesignPad, 27
cross-referencing with graphics, 30
investigating, 25
Results tab, 25, 40, 93, 96
summary pane, 30
Results tab summary pane, 64
RuleSets
location, 79, 81
editing, 81
sharing locations, 14, 80
—S—
SeveritySets, 26
—T—
Tab
checked files/design units, 92, 96
exclusions, 54

102 Using DesignChecker with HDL Designer Series™, v2018.2


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 (each an “Order”), 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 those documents are referenced on the Order. Any
additional or conflicting terms and conditions appearing on an Order or presented in any electronic portal or automated order
management system, whether or not required to be electronically accepted, will not be effective unless agreed in writing and
physically signed 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. 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, setup files 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. Except for Software that is embeddable (“Embedded Software”), which is licensed pursuant to
separate embedded software terms or an embedded software supplement, 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 4.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. BETA CODE.

3.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. Mentor Graphics may
choose, at its sole discretion, not to release Beta Code commercially in any form.

3.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.

3.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 3.3 shall survive termination of this Agreement.

4. RESTRICTIONS ON USE.

4.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. Except for Embedded Software that has been embedded in executable
code form in Customer’s product(s), 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. Customer acknowledges that Software provided hereunder may contain source code which is proprietary and
its confidentiality is of the highest importance and value to Mentor Graphics. Customer acknowledges that Mentor Graphics
may be seriously harmed if such source code is disclosed in violation of this Agreement. Except as otherwise permitted for
purposes of interoperability as specified by applicable and mandatory local law, Customer shall not reverse-assemble,
disassemble, reverse-compile, or reverse-engineer any Product, or in any way derive any source code from Software that is not
provided to Customer in source code form. 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’ trade secret and 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
Products or Files or allow their use for the purpose of developing, enhancing or marketing any product that is in any way
competitive with Products, or disclose to any third party the results of, or information pertaining to, any benchmark.

4.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, or as permitted for Embedded Software under separate
embedded software terms or an embedded software supplement. 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.

4.3. Customer agrees that it will not subject any Product to any open source software (“OSS”) license that conflicts with this
Agreement or that does not otherwise apply to such Product.

4.4. 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.

4.5. The provisions of this Section 4 shall survive the termination of this Agreement.

5. 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/supportterms.

6. OPEN SOURCE SOFTWARE. Products may contain OSS or code distributed under a proprietary third party license agreement, to
which additional rights or obligations (“Third Party Terms”) may apply. Please see the applicable Product documentation (including
license files, header files, read-me files or source code) for details. In the event of conflict between the terms of this Agreement
(including any addenda) and the Third Party Terms, the Third Party Terms will control solely with respect to the OSS or third party
code. The provisions of this Section 6 shall survive the termination of this Agreement.

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. TO THE EXTENT PERMITTED 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. THIRD PARTY CLAIMS.

9.1. Customer acknowledges that Mentor Graphics has no control over the testing of Customer’s products, or the specific
applications and use of Products. Mentor Graphics and its licensors shall not be liable for any claim or demand made against
Customer by any third party, except to the extent such claim is covered under Section 10.

9.2. In the event that a third party makes a claim against Mentor Graphics arising out of the use of Customer’s products, Mentor
Graphics will give Customer prompt notice of such claim. At Customer’s option and expense, Customer may take sole control
of the defense and any settlement of such claim. Customer WILL reimburse and hold harmless Mentor Graphics for any
LIABILITY, damages, settlement amounts, costs and expenses, including reasonable attorney’s fees, incurred by or awarded
against Mentor Graphics or its licensors in connection with such claims.

9.3. The provisions of this Section 9 shall survive any expiration or termination of this Agreement.

10. INFRINGEMENT.

10.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.

10.2. If a claim is made under Subsection 10.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.

10.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; (h) OSS, except to the extent that
the infringement is directly caused by Mentor Graphics’ modifications to such OSS; or (i) infringement by Customer that is
deemed willful. In the case of (i), Customer shall reimburse Mentor Graphics for its reasonable attorney fees and other costs
related to the action.

10.4. THIS SECTION 10 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.

11. TERMINATION AND EFFECT OF TERMINATION.

11.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.

11.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 of this Agreement and/or any license granted under this Agreement, 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.

12. EXPORT. The Products provided hereunder are subject to regulation by local laws and European Union (“E.U.”) 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, E.U. and U.S. government agencies. If Customer
wishes to disclose any information to Mentor Graphics that is subject to any E.U., 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.

13. 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.

14. 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.

15. 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 15 shall survive the termination of this Agreement.

16. 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 or Japan, and the laws of Japan if Customer is located in Japan. 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, or the Tokyo District Court when the laws of Japan apply. Notwithstanding the foregoing, all
disputes in Asia (excluding Japan) 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.

17. 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.

18. MISCELLANEOUS. This Agreement contains the parties’ entire understanding relating to its subject matter and supersedes all prior
or contemporaneous agreements. Any translation of this Agreement is provided to comply with local legal requirements only. In the
event of a dispute between the English and any non-English versions, the English version of this Agreement shall govern to the extent
not prohibited by local law in the applicable jurisdiction. 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. 170330, Part No. 270941

Das könnte Ihnen auch gefallen