Certitude Reference Guide
Certitude Reference Guide
Reference Guide
Version K-2015.09, September 2015
Copyright Notice and Proprietary Information
2015 Synopsys, Inc. All rights reserved. This software and documentation contain confidential and proprietary information that is
the property of Synopsys, Inc. The software and documentation are furnished under a license agreement and may be used or copied
only in accordance with the terms of the license agreement. No part of the software and documentation may be reproduced,
transmitted, or translated, in any form or by any means, electronic, mechanical, manual, optical, or otherwise, without prior written
permission of Synopsys, Inc., or as expressly provided by the license agreement.
Third-Party Software Notices
The Certitude Functional Qualification System includes or is bundled with software licensed to Synopsys under free
or open-source licenses. For additional information regarding Synopsys’s use of free and open-source software, refer
to the third_party_notices.txt file included within the <INSTALL_PATH>/doc directory of the installed Certitude
software.
Destination Control Statement
All technical data contained in this publication is subject to the export control laws of the United States of America.
Disclosure to nationals of other countries contrary to United States law is prohibited. It is the reader's responsibility to
determine the applicable regulations and to comply with them.
Disclaimer
SYNOPSYS, INC., AND ITS LICENSORS MAKE NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
WITH REGARD TO THIS MATERIAL, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
Trademarks
Synopsys and certain Synopsys product names are trademarks of Synopsys, as set forth at
http://www.synopsys.com/Company/Pages/Trademarks.aspx.
All other product or company names may be trademarks of their respective owners.
Third-Party Links
Any links to third-party websites included in this document are for your convenience only. Synopsys does not endorse
and is not responsible for such websites and their practices, including privacy practices, availability, and content.
Synopsys, Inc.
690 E. Middlefield Road
Mountain View, CA 94043
www.synopsys.com
Contents
Configuration Options 5
BatchCommand............................................................................................ 5
BatchOperations........................................................................................... 6
BatchTimeout............................................................................................... 7
CCompiler.................................................................................................... 8
CComputeReadValue .................................................................................. 9
CerHome .................................................................................................... 10
CCerPackageFile........................................................................................ 11
CInitAtStartup............................................................................................ 12
CInterruptedSimulationReturnCode .......................................................... 13
ColoredMessages ....................................................................................... 14
CompileScript ............................................................................................ 15
ConfigurationAutoSave ............................................................................. 16
ConnectivityBitInstrumentationSignals..................................................... 17
ConnectivityInputOnNonQualifiedBlocks ................................................ 19
ConnectivityOutputOnInstantiations ......................................................... 20
ConnectivityOutputOnNonQualifiedBlocks.............................................. 21
ConnectivityTopName ............................................................................... 22
CUseMutex ................................................................................................ 23
DataBaseDirectory ..................................................................................... 24
DaysToLicenseExpirationWarning............................................................ 25
DefineSimulatorNativeMacro.................................................................... 26
DetectOnPropagation ................................................................................. 27
DetectionAutoStop..................................................................................... 28
DisableAsyncResetFaults .......................................................................... 29
DisableClockAndResetConnectivityInputFaults ....................................... 30
DisableClockedIfWithoutElseFaults.......................................................... 31
DisableSyncResetFaults............................................................................. 32
DisableTransparentLatchFaults ................................................................. 33
DiskFullThreshold ..................................................................................... 34
DisplayScriptOutput .................................................................................. 35
ExecuteScript ............................................................................................. 36
ExecuteWrapperTimeout ........................................................................... 37
i
Contents
ExecutionMaxAttempt............................................................................... 38
FaultImpact ................................................................................................ 39
FaultSet ...................................................................................................... 40
HdlFilesScript ............................................................................................ 46
HeartBeatPeriod ......................................................................................... 47
IncludePaths............................................................................................... 48
IncludeSourceIntoReport ........................................................................... 49
InstrumentationDirectory ........................................................................... 50
InstrumentInclusion ................................................................................... 51
InstrumentInterface .................................................................................... 52
InstrumentOnTop....................................................................................... 53
InstrumentSignals ...................................................................................... 54
LogDirectory.............................................................................................. 55
MaxDetectionTime .................................................................................... 56
MaxFaultsInTextReport............................................................................. 57
MaxFaultsPerStatement ............................................................................. 58
MaxInstancesForModuleInstrumentation .................................................. 59
MaxJobsInParallel...................................................................................... 60
MaxLogFileSize......................................................................................... 61
MaxNonDetected ....................................................................................... 62
MaxSimulatorLicenses .............................................................................. 63
MetricActivationTarget.............................................................................. 64
MetricDetectionTarget ............................................................................... 65
MetricPropagationTarget ........................................................................... 66
MetricReportDirectory............................................................................... 67
NfsTimeout ................................................................................................ 68
NoQuestion ................................................................................................ 69
OptimizerAnalysis ..................................................................................... 70
OptimizerBitWidth .................................................................................... 71
OptimizerBlackboxes................................................................................. 72
OptimizerDistanceToOutputAnalysis........................................................ 73
OptimizerEffortForEquivalentFaults ......................................................... 74
OptimizerEffortForIdenticalFaults ............................................................ 75
OptimizerIdenticalAnalysis ....................................................................... 76
OptimizerJobRate ...................................................................................... 77
OptimizerOperationsDuringDetection ....................................................... 78
OptimizerStuckInputs ................................................................................ 79
PersistentLifeTime..................................................................................... 80
PostExecutionScript................................................................................... 81
PropagationType ........................................................................................ 82
QualificationRunName .............................................................................. 84
ReentrantTests............................................................................................ 85
ii
Contents
ReportDirectory ......................................................................................... 86
ReportFormat ............................................................................................. 87
RestoreSourceFilesOnTop ......................................................................... 88
SanityCheck ............................................................................................... 89
ShowUserDataInReport ............................................................................. 90
ShowUserDataKeysInReport..................................................................... 91
SimulatedTimeMultiplier........................................................................... 92
SimulationCPUTimeMultiplier.................................................................. 93
SimulationHostSetup ................................................................................. 94
SimulationMode......................................................................................... 95
SimulationResultToExecuteWrapperTimeout........................................... 96
SimulationTimeout .................................................................................... 97
Simulator.................................................................................................... 98
SimulatorBitWidth................................................................................... 100
SimulatorTemplateDirectory ................................................................... 101
SimuToSimulationResultTimeout ........................................................... 102
SubmitNewJobForOptimizerTask ........................................................... 103
TclList ...................................................................................................... 104
TempDataDirectory ................................................................................. 105
TestcasesScript......................................................................................... 106
TopName.................................................................................................. 107
TopVerilogParameters ............................................................................. 108
TopVhdlGenerics..................................................................................... 110
UseStdVhdlLibraries................................................................................ 111
UVM ........................................................................................................ 112
UVMPackageFile..................................................................................... 113
ValidateHistory ........................................................................................ 114
VCSCompileDirectory............................................................................. 115
VerboseLevel ........................................................................................... 116
VerdiInitCommand .................................................................................. 117
VerdiScript............................................................................................... 118
VerdiLaunchingTimeOut......................................................................... 119
VerdiLogDir............................................................................................. 120
VhdlCerPackageLibrary .......................................................................... 121
VhdlInstrumentForGenerate .................................................................... 122
vhdlSmartOrder........................................................................................ 123
VlogCerPackageLibrary .......................................................................... 124
WaveDump .............................................................................................. 125
WaveDumpDirectory ............................................................................... 126
WaveDumpHierarchicalName ................................................................. 127
WaveDumpLevel ..................................................................................... 128
WaveDumpSVA ...................................................................................... 129
iii
Contents
Commands 137
activate ..................................................................................................... 137
addc .......................................................................................................... 140
addparameter............................................................................................ 142
addprobefilter........................................................................................... 145
addprobeonsignal ..................................................................................... 147
addscenario .............................................................................................. 149
addseed..................................................................................................... 150
addsystemverilog ..................................................................................... 152
addtestcase ............................................................................................... 154
addverilog ................................................................................................ 155
addvhdl..................................................................................................... 157
analyzeverilog .......................................................................................... 159
and............................................................................................................ 162
availablelicenses ...................................................................................... 163
cermessage ............................................................................................... 164
checkdetection.......................................................................................... 166
clearlock................................................................................................... 169
computemetric.......................................................................................... 170
configinfo................................................................................................. 172
configure .................................................................................................. 174
dbdump .................................................................................................... 175
dbload....................................................................................................... 176
dbupgrade................................................................................................. 177
detect ........................................................................................................ 178
do.............................................................................................................. 183
dumpwaves .............................................................................................. 184
endquery................................................................................................... 187
except ....................................................................................................... 188
faultdebug ................................................................................................ 189
faultdisable ............................................................................................... 190
faultenable................................................................................................ 191
faultinfo.................................................................................................... 192
faultlist ..................................................................................................... 202
iv
Contents
v
Contents
vi
Contents
vii
Contents
viii
Contents
ix
Contents
x
About This Book: Purpose
Purpose
This book is designed to describe every functional element of Certitude:
configuration options, commands, setup files, environment variables and all
aspects of the HTML report. This book does not need to be read from beginning
to end. The reader can directly refer to the section of interest.
The configuration options and commands descriptions are the same that the
descriptions available in the Certitude shell through the use of the help
command.
Audience
The audience for this manual is any engineer using Certitude that needs to look
up for details about Certitude commands or interface elements.
It is assumed that the reader is using a Unix-like operating system, and is
comfortable with command-line interfaces. It is also assumed that most of the
readers are familiar with computer programming using HDL languages or the C
language as well as functional verification of HDL design or C designs.
Book Organization
This Certitude Reference Guide is organized as follows:
• About This Book provides an introduction to this book and explains how to
use it.
• Configuration Options provides a description for all configuration options
available in Certitude.
• Commands provides a description for all commands available in Certitude.
• Environment Variables provides a description for the main environment
variables that can be used with Certitude.
• Setup Files provides detailed descriptions for each of the five Certitude
setup files.
• HTML Report provides a description of all interface elements available in
the HTML report generated by Certitude.
• Report Viewer provides a description for functional elements available in
the report only when the viewer is used.
Related Publications
• Certitude Installation Guide - provides information on installing the
Certitude system.
• Certitude User Manual - provides descriptions and explanations for all the
important concepts of Certitude and functional qualification, as well as
instructions for all the stages of Certitude usage.
• Certitude Tutorials - provides a commented step-by-step trial of Certitude
with a VHDL design, or a Verilog design, or a C design.
• Certitude Quick Reference - provides a quick reference for Certitude main
objects and commands.
• Release Notes - for current information about the latest software version,
see the Release Notes shipped with the product.
• Verdi3 User’s Guide and Tutorial - provides detailed information on using
the Verdi system.
• Verdi3 and Siloti Command Reference Manual - gives detailed information
on the Verdi and Siloti command sets.
• Language Documentation
• Hardware description (Verilog, VHDL, SystemVerilog, C, Tcl, etc.) and
verification language reference materials are not included in this manual.
For language related documents, please refer to the appropriate language
standards board or vendor websites.
Configuration Options
BatchCommand
Default value: <No default Value>
Specify the command used to start a job on the batch system
The syntax is:
setconfig -BatchCommand=[list command option|parameter1
option|parameter2 ... ]
or
setconfig {-BatchCommand=command option|parameter1
option|parameter2 ... }
For example to use the 'verif' queue on an LSF batch system, add the
following to certitude_config.cer:
setconfig -BatchCommand=[list bsub -q verif]
When using the BatchCommand option the following options should also
be configured:
MaxJobsInParallel
ReentrantTests
BatchOperations
Default value: Simulation Optimizer
Define the operations that can be launched on the batch system
This option controls whether the operation is launched on the batch
system. The option takes a list of values, and currently only the
'Simulation', 'Optimizer' and 'Compilation' values are valid.
BatchOperations values:
Simulation
Simulations are allowed to be launched on the batch system.
Optimizer
Optimizer operations are allowed to be launched on the batch
system (task to execute = Optimizer-elab/Optimizer-equiv/
Optimizer-cone/Optimizer-dist/Optimizer-ident).
Compilation
Compilations are allowed to be launched on the batch system.
BatchTimeout
Default value: 86400
Set the number of seconds that Certitude must wait before canceling a job
that was sent to the batch system and the time that Certitude waits before
the simulator obtains a license.
This option is an unsigned integer representing the number of seconds
that Certitude must wait before canceling a job that was sent to the batch
system. It is also the time that Certitude waits before the simulator
obtains a license.
In the case where jobs disappear from the batch system (e.g. they are
removed for some reason), or the simulator does not obtain a license,
Certitude will hang the job waiting to start. For example, when
BatchTimeout is set to 3600, Certitude will cancel the job if it has not
started execution within one hour. This option should be used with
extreme care since it is specific to each batch environment.
The value of this option can be changed while a qualification phase is
running.
BatchTimeout values:
- unlimited
No batch timeout.
- <positive integer>
The batch timeout in seconds. The default value is 86400 (24
hours).
CCompiler
Default value: gcc
Set the C compiler
C language only. By default, Certitude uses the gcc compiler when
qualifying a design written in C language. With this option, another C
compiler can be specified.
A new model phase is mandatory for the new setting to be effective.
CComputeReadValue
Default value: false
CerHome
Default value: [Installation Directory]/
Specify the directory where Certitude is installed
This returns where Certitude is installed, and can be called from a Tcl
script.
This value is read-only.
CCerPackageFile
Default value: <No default Value>
Define a file name for the destination of Certitude packages
C language only. When using Certitude with a design written in C
language, Certitude uses special data inserted in the last instrumented
file. In the rare cases when this causes a conflict with the original code,
this option is used for inserting the new code in a separate file.
When this option is set, the compilation script must be modified
accordingly.
A new model phase is mandatory for the new setting to be effective.
CInitAtStartup
Default value: true
CInterruptedSimulationReturnCode
Default value: 255
Set the return code when the simulation crashes or is killed
C language only. If the simulation crashes or is killed during the
detection phase, the instrumented executable exits with a return code that
is the value of this configuration option. The executed script can check
this return code and handle it by reporting the simulation as failed.
The default value is 255. Values can range from 0 to 255.
If the original program uses a return code, this option must be set to avoid
conflicts with usual return codes. For example:
setconfig -CInterruptedSimulationReturnCode=100
The value of this option can be changed while a qualification phase is
running.
ColoredMessages
Default value: true
Color the warning and error messages
When set to true (default), the warning and error messages are colored.
The value of this option can be changed while a qualification phase is
running.
CompileScript
Default value: [Current Directory]/certitude_compile
Set the path of the user script used to compile the instrumented code
If the path is defined with a relative path name (i.e. it does not begin with
'/'), then the base for the relative path is assumed to be the working
directory.
ConfigurationAutoSave
Default value: false
Save the configuration options that have been modified when the user
quits Certitude
When set to true, the configuration options that have been modified are
saved when the user quits Certitude. A new file is then created in the
database : DataBaseDirectory/config/certitude_config.cer. This file
contains all the configuration options that have been modified through
the command 'setconfig' (either in the files certitude_config.cer or on the
shell of Certitude).
ConnectivityBitInstrumentationSignals
Default value: <No default Value>
For composite ports or signals that have a globally static range (i.e. a
range that depends on a generic or a parameter), bounds of composite
objects are calculated using static elaboration. If the unit that contains the
declaration of the bitwise instrumented port is instantiated several time
ConnectivityInputOnNonQualifiedBlocks
Default value: false
Create StuckAt faults on all inputs of not-qualified blocks
This option allows the user to create the faults
InputPortConnectionBitStuckAt0, InputPortConnectionBitStuckAt1,
InputPortConnectionStuckAt0, and InputPortConnectionStuckAt1
(according to the given FaultSet) on the instances of <module> or
<entity> when <module> or <entity> has not been qualified.
A new model phase is mandatory for the new setting to be effective.
ConnectivityOutputOnInstantiations
Default value: <No default Value>
Generate instrumentation of connections to output ports in the specified
Verilog/SystemVerilog instantiations
When this option is set to true, Certitude generates instrumentation of
connections to output ports in the specified Verilog/SystemVerilog
instantiations.
An element of the list is of the form <library>.<unit>.<instantiation>.
Wildcards are supported for elements in the list.
For example:
setconfig -ConnectivityOutputOnInstantiations=[list work.top.myinst
work.mymod.*]
setconfig -ConnectivityOutputOnInstantiations=*
A new model phase is mandatory for the new setting to be effective.
ConnectivityOutputOnNonQualifiedBlocks
Default value: false
Create StuckAt faults on all outputs of not-qualified blocks
This option allows the user to create the faults
OutputPortConnectionBitStuckAt0, OutputPortConnectionBitStuckAt1,
OutputPortConnectionStuckAt0, and OutputPortConnectionStuckAt1
(according to the given FaultSet) on the instances of <module> or
<entity> when <module> or <entity> has not been qualified.
A new model phase is mandatory for the new setting to be effective.
ConnectivityTopName
Default value: <Re-use TopName value>
Specify the level at which the connectivity faults are injected
HDL languages only. When the FaultSet option list contains the
'Connectivity' value, it is necessary to specify at which component level
the connectivity faults must be injected. This connectivity top name is
taken into account only for the connectivity faults.
A new model phase is mandatory for the new setting to be effective.
CUseMutex
Default value: false
Use a mutex for preventing multiple access to activation data
C language only. In a multithreaded program, a mutex must be used to
prevent multiple accesses to activation data from the different threads
during the detection phase.
By default, this configuration option is set to true for safety. If the
instrumented program does not use threads - the executable is not linked
with pthread - then this option should be set to false because the detection
phase performance will be improved.
A new model phase is mandatory for the new setting to be effective.
DataBaseDirectory
Default value: [Current Directory]/certitudeDB
Define the path to the directory containing the database
If the path is defined with a relative path name (i.e. it does not begin with
'/'), the base for the relative path is assumed to be the working directory.
DaysToLicenseExpirationWarning
Default value: 30
DefineSimulatorNativeMacro
Default value: true
Control whether the appropriate predefined simulator macro is
automatically defined by Certitude
When this option of configuration is set to true, the following macros are
automatically defined during the parsing of (System) Verilog code:
- For simulator VCS, macro is VCS.
- For simulator IUS, macro is INCA.
- For simulator ModelSim/Questa, macro is MODEL_TECH.
DetectOnPropagation
Default value: false
Put Certitude in propagation-only mode
When this configuration option is set to true, Certitude stops running
testcases on a propagated fault.
A propagated fault is considered as detected (i.e. the result of the testcase
is always considered as 'fail' even if the certitude_execute script returns
'pass').
In this mode, non-detected faults do not exist.
DetectOnPropagation is not supported in the qualification of formal
environments.
DetectionAutoStop
Default value: true
Automatically stop the detection phase
When set to true, the detection phase will stop on one of the following
criteria:
1. When 5 new non-detected faults have been found.
2. When all the faults in the two remaining highest priority fault classes
have been qualified and at least one new non-detected or
ResetConditionTrue non-propagated fault has been found. The
"remaining fault classes" refer to fault classes that were not completely
qualified when the current detection was started.
DisableAsyncResetFaults
Default value: true
Disable all faults related to design asynchronous reset code
HDL languages only. When set to true, the faults related to asynchronous
reset code (those faults are marked as asyncreset by Certitude) are
disabled during the model phase. This means that they are excluded from
qualification and have the status DisabledByCertitude all along the
qualification. This concerns all asyncronous reset faults except one type:
the ConditionTrue faults.
Globally, the asyncreset faults can have one of three effects on the
design:
- always keep the feature in a reset state (which means that at least a part
of the feature is not used),
- never reset the feature,
- play with the initial values of the asynchronous reset.
In most cases, the second and third effects are less critical to the
verification that what the other faults may reveal. Besides, those faults, if
they are Non-Detected or Non-Propagated, usually cost a complete
regression time each, and are not very easy to analyze. Therefore, the
default behaviour of Certitude is to keep them for later. The asynchreset
faults that are not disabled by Certitude cause the first effect.
In the cases when the design style or verification methodology makes the
initial values in the asynchronous reset very important, the option should
be set to false before the model phase is run.
DisableClockAndResetConnectivityInputFa
ults
Default value: true
Disable some connectivity input faults associated to a clock or a reset
port
HDL languages only. When set to true, some connectivity input faults
associated to a clock or a reset port are disabled by Certitude during the
model phase. This means that they are excluded from qualification and
have the status DisabledByCertitude all along the qualification.
When the port is a clock, the faults InputPortNegated and
InputPortStuckAt1 are disabled.
When the port is a reset and the reset is active high, the faults
InputPortNegated and InputPortStuckAt0 are disabled. When the port is a
reset and the reset is active low, the faults InputPortNegated and
InputPortStuckAt1 are disabled.
DisableClockedIfWithoutElseFaults
Default value: true
Disable specific faults within if Statements without an else Statement in
synchronous domains
HDL languages only. When set to true, the ConditionTrue and
NegatedCondition faults on the first if Statement without an else
Statement (and without an else if Statement) are disabled by Certitude
during the model phase in synchronous domains. The faults are excluded
from qualification and have the DisabledByCertitude status all along the
qualification.
DisableSyncResetFaults
Default value: true
Disable all faults related to design synchronous reset code
HDL languages only. When set to true, the faults related to synchronous
reset code (those faults are marked as syncreset by Certitude) are
disabled during the model phase. This means that they are excluded from
qualification and have the status DisabledByCertitude all along the
qualification. This concerns all asyncronous reset faults except one type:
the ConditionTrue faults.
In some cases, this category of faults are less critical to the verification
than the other faults.
In the cases when the design style or verification methodology makes the
synchronous reset very important, the option should be set to false before
the model phase is run.
DisableTransparentLatchFaults
Default value: true
Disable specific fault types that enable a latch
HDL languages only. When set to true, the ConditionTrue and
NegatedCondition faults that enable a latch are disabled by Certitude
during the model phase. The faults are excluded from qualification and
have the DisabledByCertitude status all along the qualification.
The latches in consideration are those in the first if Statement (the
external if Statement) of the unclocked parts, and satisfying both of the
following conditions:
-only one signal is used in the condition of the if Statement. This signal
must be one bit wide.
-only a single if Statement (without the else Statement).
For example:
reg Q;
always @( E or D) begin
if (E) begin
Q <= D;
end
end
DiskFullThreshold
Default value: 2000
Set the minimum allowed disk space
When the remaining capacity on disk is less than the value of this option,
Certitude stops and prints an error. The unit is MegaBytes.
If this option is disabled by setting it to the unlimited value, there is a risk
of crash and database corruption.
The value of this option can be changed while a qualification phase is
running.
DiskFullThreshold values:
- unlimited
No test of remaining disk space.
- <positive integer>
The number of the minimum remaining MegaBytes on disk
before Certitude stops.
DisplayScriptOutput
Default value: false
Enable the display of the compilation/simulation messages in the
Certitude shell
When this option is set to true, it prints all the compiler and simulator
messages in the Certitude shell. The qualification phases need to be in
verbose mode for the messages to be displayed.
The value of this option can be changed while a qualification phase is
running.
ExecuteScript
Default value: [Current Directory]/certitude_execute
Set the path of the script used to execute testcases
If the path is defined with a relative path name (i.e. it does not begin with
'/'), then the base for the relative path is assumed to be the working
directory.
ExecuteWrapperTimeout
Default value: 604800
Set the total time (in seconds) that the execute wrapper runs without
receiving the input file
The execute wrapper stops when this time has elapsed without receiving
any input file. The default setting is 604800 seconds (seven days).
The value of this option can be changed while a qualification phase is
running.
ExecuteWrapperTimeout values:
- unlimited
No execute wrapper timeout.
- <positive integer>
The execute wrapper timeout in seconds.
ExecutionMaxAttempt
Default value: 5
Set the number of simulation execution attempts
When Certitude Job Control detects a simulation anomaly, the simulation
is attempted the specified number of times with this option. The default is
5 attempts.
The value of this option can be changed while a qualification phase is
running.
FaultImpact
Default value: true
Enable all functions related to the Fault-Impact feature
Enable all functions related to the Fault-Impact feature.
FaultSet
Default value: RTL Connectivity
Select the faults to be injected in the design
This option takes a list of values among the fault classes and fault set
values. For possible FaultSet values, refer to the FaultSet values section
later in the option description.
The Connectivity faults change the interactions between modules. The
Connectivity faults only apply to designs written in HDL languages.
The RTL faults change the design behavior inside of a module. The RTL
faults apply to all designs but the content of the set will change whether
the design is written in HDL languages or in C language.
The syntax for setting a list of values for the configuration option is:
setconfig -FaultSet=[list Connectivity RTL]
or
setconfig {-FaultSet=Connectivity RTL}
A new model phase is mandatory for the new setting to be effective.
FaultSet values:
TopOutputsConnectivity
HDL languages only. When this value is specified, faults of the
TopOutputsConnectivity class are injected in the design under
verification.
ResetConditionTrue
HDL languages only. When this value is specified, faults of the
ResetConditionTrue class are injected in the design under
verification.
SynchronousControlFlow
FunctionCall
C and C++ languages only. When this value is specified, faults of
the FunctionCall class are injected in the design under
verification.
SimpleAssign
C and C++ languages only. When this value is specified, faults of
the SimpleAssign class are injected in the design under
verification.
ArrayElement
C and C++ languages only. When this value is specified, faults of
the ArrayElement class are injected in the design under
verification.
SecondaryControlFlow
C and C++ languages only. When this value is specified, faults of
the SecondaryControlFlow class are injected in the design under
verification.
OperatorChange
FaultSet value OperatorChange description
SimpleConstantAssign
C and C++ languages only. When this value is specified, faults of
the SimpleConstantAssign class are injected in the design under
verification.
OtherConstant
C and C++ languages only. When this value is specified, faults of
the OtherConstant class are injected in the design under
verification.
SystemCall
C and C++ languages only. When this value is specified, faults of
the SystemCall class are injected in the design under verification.
ControlFlowOperator
C and C++ languages only. When this value is specified, faults of
the ControlFlowOperator class are injected in the design under
verification.
RTL
When this value is specified, RTL faults are injected in the design
under verification.
The content of the set is different whether the design is written in
HDL language or in C language.
Connectivity
HDL languages only. When this value is specified, connectivity
faults are injected for all module instance connections in the
module designed by the ConnectivityTopName option. The
ConnectivityTopName configuration option must be set to make
the value effective.
SignalStuckAt
HDL languages only. When this value is specified, the full
internal signals are instrumented. The fault types must be one of
the following:
StuckAt0
StuckAt1
StuckAtLeft
StuckAtRight
StuckAtValue
Example for the type StuckAt0:
reg A => the fault "StuckAt0 A;" is created.
reg[1:0] B; => the fault "StuckAt0 [1:0] B;" is created.
BitStuckAt
HDL languages only. When this value is specified, only the one-
bit-wide signals are instrumented. The fault types must be one of
the following:
BitStuckAt0
BitStuckAt1
Example for the types StuckAt0/BitStuckAt0:
reg A => the fault "StuckAt0 A;" is created.
reg[1:0] B; => the faults "BitStuckAt0 [0] B;" and "BitStuckAt0
[1] B;" are created.
SynchronousSignalStuckAt
Same as SignalStuckAt but only for signals that are driven from a
synchronous process.
SynchronousBitStuckAt
Same as BitStuckAt but only for signals that are driven from a
synchronous process.
ComboSignalStuckAt
Same as SignalStuckAt but only for signals that are not driven
from a synchronous process.
ComboBitStuckAt
Same as BitStuckAt but only for signals that are not driven from a
synchronous process.
LatchSignalStuckAt
HDL languages only. Same as SignalStuckAt but only for signals
that are driven from a latch.
LatchBitStuckAt
HDL languages only. Same as BitStuckAt but only for signals
that are driven from a latch.
SequentialSignalStuckAt
HdlFilesScript
Default value: [Current Directory]/certitude_hdl_files.cer
Define the name of the script containing the commands (addverilog,
addsystemverilog, addvhdl, addc) for specifying source files to be used
during the model phase
If the path is defined with a relative path name (i.e. it does not begin with
'/'), the base for the relative path is assumed to be the working directory.
A new model phase is mandatory for the new setting to be effective.
HeartBeatPeriod
Default value: 300
Set the Job Control heartbeat time in seconds
During the execution of a job, a regular signal (called heartbeat) is sent
by the Job Control process to ensure that all jobs are running correctly.
This option determines the time this periodic signal should be generated.
The default value is 300 seconds (five minutes).
The value of this option can be changed while a qualification phase is
running.
IncludePaths
Default value: [Current Directory]
Define paths for Verilog include files
This option is for Verilog only.
A new model phase is mandatory for the new setting to be effective.
IncludeSourceIntoReport
Default value: true
Specify whether to include the design source code in the Certitude
HTML report
When set to false, this option shows activation and detection results
without showing the design source code.
The value of this option can be changed while a qualification phase is
running.
InstrumentationDirectory
Default value: [Current Directory]/tmpHDLFiles
Set the path to the directory where instrumented files are copied for
compilation and execution
If the path is defined with a relative path name (i.e. it does not begin with
"/"), the base for the relative path is assumed to be the working directory.
InstrumentInclusion
Default value: true
Instrument the Verilog included files
Faults are injected in the Verilog included files and these faults are part
of the qualification run. The content of the included files is displayed in
the HTML report for results analysis.
A new model phase is mandatory for the new setting to be effective.
InstrumentInterface
Default value: false
Activate instrumentation of connectivity using SystemVerilog interface
In SystemVerilog language, this instrumentation consists of adding
connectivity faults on a module port that is of the modport type, where
the modport is declared in an interface.
All objects of the modport that are declared as input and output are
instrumented in the given module.
A new model phase is mandatory for the new setting to be effective.
InstrumentOnTop
Default value: false
Determine if the original DUV source code is instrumented (true) or if a
copy is instrumented (false).
When true, Certitude writes the instrumented source code in the same
location as the original source code. In this case, Certitude protects the
original source code by copying it in the same repository and adding the
extension .cercopy before writing the instrumented code.
When false, the instrumented source code is written into a new directory
hierarchy starting at <working_directory>/tmpHDLFiles. The
instrumented code is then automatically deleted and the original source
code copied back upon compilation of the instrumented source code.
Verilog/SystemVerilog only: the content of included files is inserted into
the code where the inclusion is specified, so the included files will not
appear in the copied hierarchy.
Note: The InstrumentOnTop option cannot be set as true when
JasperGold is specified as the simulator for the Simulator option.
InstrumentSignals
Default value: <No default Value>
Specify the list of internal signals to be instrumented
This option specifies the list of VHDL or Verilog internal signals to be
instrumented.
Signals can be specified using standard wildcard characters * and ?, such
as in the following example:
setconfig -InstrumentSignals=[list work.top.sig*]
Above example means that every signals of unit "top" whose name
begins with "sig" will be instrumented.
For bus signals, Certitude will perform a bitwise instrumentation, which
means that a fault will be created for each bit. It is also possible to select
only specific bits to be instrumented using the following syntax:
setconfig -InstrumentSignals=[list work.top.sig<7,3..0>]
The second example means that signal "sig" of unit "top" will have its bit
7, 3, 2, 1, 0 instrumented.
LogDirectory
Default value: [Current Directory]
Specify the directory in which Certitude puts the various log files
This option can be used for changing the directory where are located the
log files :
- the Certitude log file (certitude.log),
- the log file for compilation (certitude_compile.log),
- the Optimizer log file (certitude_optimizer.log),
- the log commands file where all the commands of a project are printed
(certitude_commands.log).
This option can be used for example for creating a different log file for
each run.
MaxDetectionTime
Default value: 691200
Set a maximum duration for the detection phase
This option sets a maximum duration (in seconds) for the detection
phase.
For example, when the option is set to the value 28800, and then a
detection phase is started with the detect command, the detection will run
8 hours from the first simulation. After 8 hours, detection will be
stopped.
The value of this option can be changed while a qualification phase is
running.
MaxDetectionTime values:
- unlimited
There is no maximum time for the detection run.
- <positive integer>
The maximum duration of the detection run in seconds.
MaxFaultsInTextReport
Default value: 1000
Specify the maximum number of faults printed in one netlist report file
The maximum number of faults printed in one netlist report file is
determined by the MaxFaultsInTextReport value times 1000. For
example, if this configuration option is set to 7, the maximum number of
faults can be printed in one netlist report file is 7000.
MaxFaultsPerStatement
Default value: 10
Specify a limit for faults considered (during all qualification steps) per
statement
This option can be used to control the fault count, for example in huge
automatically generated source code that describes big logic blocks.
A new model phase is mandatory for the new setting to be effective.
MaxFaultsPerStatement values:
- unlimited
There is no maximum limit to faults injected in a statement.
- <positive integer>
The maximum number of faults that Certitude can inject in a
statement.
MaxInstancesForModuleInstrumentation
Default value: 50
Prevent instrumentation on units that are instantiated more than the
MaxInstancesForModuleInstrumentation value
If the number of instances of a Verilog/SystemVerilog module or a
VHDL design unit is greater than the number stored in
MaxInstancesForModuleInstrumentation, there is a high possibility that
faults injected in this unit will be detected. As these detected faults do not
offer great value in analyzing the effectiveness of the verification
environment, instrumentation of this unit is aborted to optimize
simulation time.
A new model phase is mandatory for the new setting to be effective.
MaxInstancesForModuleInstrumentation values:
- unlimited
There is no limit for the MaxInstancesForModuleInstrumentation
value.
- <positive integer>
Specify the maximum number of instances of a Verilog/
SystemVerilog module or a VHDL design unit for which no
instrumentation will be done when the number of instances
exceeds this value.
MaxJobsInParallel
Default value: 1
Define the maximum number of jobs that can be run in parallel
For example, if Certitude must run a maximum of 10 jobs in parallel,
then:
setconfig -MaxJobsInParallel=10
This option is usually set to a number higher than 1 when Certitude is
used with a batch system (in this case, the configuration option
BatchCommand must be set to a value). However, when the testcases
have a duration less than one second, then performance can be improved
by setting this option to 5 as an example, even if the qualification is run
only on the local CPU.
The value of this option can be changed while a qualification phase is
running.
MaxLogFileSize
Default value: 1073741824
Limit the size of the log file
Default value: 1073741824 (1 GB)
This option sets a maximum size (in bytes) for the Certitude log file,
certitude.log. The minimum value is 100000.
If this option is set to a value of 99999 bytes or less, it will return an
error.
The unlimited value means that there is no limit to the size of the log file.
When the size of the certitude.log file reaches the specified value, the file
is compressed using zlib (creating a .gz file format) and the time and date
of the compression will be appended to the file name. Then a new
certitude.log file will be created. The rest of the Certitude output will be
written in the new log file.
The value of this option can be changed while a qualification phase is
running.
MaxNonDetected
Default value: 80
Set the maximum number of found Non-Detected faults before the
detection phase is stopped
For example, if this option is set as follows:
setconfig -MaxNonDetected=10
the detection will stop when Certitude has found 10 Non-Detected faults.
The value of this option can be changed while a qualification phase is
running.
MaxNonDetected values:
- unlimited
No maximum number of Non-Detected faults that can be found.
- <positive integer>
The maximum number of Non-Detected faults that Certitude can
find before stopping.
MaxSimulatorLicenses
Default value: unlimited
Set the maximum number of simulator licenses used for the qualification
run
This option sets the maximum number of simulator jobs. Unlike the
MaxSimulatorLicenses option, the MaxJobsInParallel configuration
option sets the maximum number of jobs that can be run during a
qualification run, but not all jobs necessarily use a simulator license. For
example, the Optimizer can run a job but does not use a simulator license.
When the number of MaxJobsInParallel is larger than
MaxSimulatorLicenses, the remaining jobs can be used by the Optimizer.
The value of this option can be changed while a qualification phase is
running.
MaxSimulatorLicenses values:
- unlimited
There is no limit for the number of used simulator licenses.
- <positive integer>
The maximum number of used simulator licenses.
MetricActivationTarget
Default value: 0.95
Set the activation target score for the metric
For example, if a 85% minimum activation score is required, the correct
syntax is:
setconfig -MetricActivationTarget=0.85
MetricDetectionTarget
Default value: 0.95
Set the detection target score for the metric
For example, if a 85% minimum detection score is required, the correct
syntax is:
setconfig -MetricDetectionTarget=0.85
MetricPropagationTarget
Default value: 0.8
Set the propagation target score for the metric
For example, if a 70% minimum propagation score is required, the
correct syntax is:
setconfig -MetricPropagationTarget=0.7
MetricReportDirectory
Default value: [Current Directory]/certitudeMetricReport
Define the path to the directory where the HTML metric reports are
written
If the path is defined with a relative path name (i.e. it does not begin with
"/"), the base for the relative path is assumed to be the working directory.
The value of this option can be changed while a qualification phase is
running.
NfsTimeout
Default value: 60
Set the NFS (Network File System) processes timeout in seconds
If a NFS (Network File System) operation exceeds the specified timeout
value, the current simulation is retried a number of times as defined with
the ExecutionMaxAttempt configuration option. The default value is 60
seconds (one minute).
The value of this option can be changed while a qualification phase is
running.
NoQuestion
Default value: false
Remove confirmation questions
If set to true, Certitude does not ask for user confirmation before
performing actions that may remove previously generated information. If
it is set to 'false' (default setting) then Certitude asks the user for
confirmation before performing these actions.
OptimizerAnalysis
Default value: true
Enable for structural analysis of the design (equivalent faults, ...)
HDL languages only. When this option is set to true, the Optimizer
automatically searches for equivalent faults during model phase and set
the status of these faults to DisableByCertitude.
Equivalent faults are automatically disabled because they cannot help
improve the quality of the verification: they do not cause a difference of
behavior, compared to the design without fault, and therefore come out
Non-Propagated (which makes them costly in terms of qualification
time). However, those faults may provide information about the structure
of the design.
OptimizerBitWidth
Default value: 32
Set the bit width used by Optimizer
When elaborating big design, Optimizer may need more than the
maximum 4 Gb of memory on 32 bit computers. This option allows
Optimizer to use all the capacity of 64 bit computers for elaboration and
other processings during model, activation and detection phases.
The 64 bit setting can be used only on 64 bit computers, whatever the
phase, and a design netlist elaborated with this setting during the model
phase can be used only on a 64 bit computer.
OptimizerBitWidth values:
32
Sets the bit width to 32 bits. This can be used on both 32 bits and
64 bits computers.
64
Sets the bit width to 64 bits. This can be used only on 64 bits
computers.
OptimizerBlackboxes
Default value: <No default Value>
Define the blocks (entity/modules) that should be black-boxed during
synthesis by the Optimizer
No attempt is made to synthesize black-boxed blocks. Black-boxing is
often useful for memories or probe/debug blocks.
Blocks that must be black-boxed are defined by a list of patterns
representing the names of the blocks.
A pattern must be in the format of <library>.<name>, taken as case
insensitive when VHDL names are matched.
Patterns can contain wildcards (*, ? and [...]). For example, a pattern *.*
is valid.
If a pattern starts with the '^' character, then it is processed as a regular
expression, in which case wildcards change their meaning according to
regular expression rules.
The Optimizer TopName is never matched.
All specified patterns are expected to match at least one block; otherwise,
a warning containing unused patterns is shown.
OptimizerDistanceToOutputAnalysis
Default value: true
OptimizerEffortForEquivalentFaults
Default value: Low
Set the strength of Optimizer analysis for equivalency searching
When the effort is set higher, the Optimizer proceeds to deeper and
longer structural analysis, which raises the probability of finding
equivalent faults, but also requires more time.
OptimizerEffortForEquivalentFaults values:
Low
The Optimizer proceeds to basic analysis. This takes less time but
is also providing less probability to find equivalent faults.
High
The Optimizer proceeds to deeper analysis. This takes more time
but has a higher probability to find equivalent faults.
OptimizerEffortForIdenticalFaults
Default value: Low
OptimizerEffortForIdenticalFaults values:
Low
The Optimizer proceeds to basic analysis. Only connectivity
faults are analyzed for finding identical faults during the model
phase. No other fault is analyzed.
High
Optimizer proceeds to deeper analysis. In addition to connectivity
faults, the other faults (RTL) are analyzed during the model,
activation or detection phases (depending on the
OptimizerOperationsDuringDetection configuration option
contents).
OptimizerIdenticalAnalysis
Default value: true
OptimizerJobRate
Default value: 0.3
Set the rate of batch occupation for the Optimizer background run
When the Optimizer is run in the background during the detection phase
(i.e. the OptimizerOperationsDuringDetection configuration option is
set), it shares the batch system with the detection process. This option
sets the rate of the batch system occupation between the Optimizer and
the detection process.
For instance, when the value of this option is 0.3, 70% of the batch
capacity is used by the detection phase simulations and 30% are used by
the Optimizer.
The value of this option can be changed while a qualification phase is
running.
OptimizerOperationsDuringDetection
Default value: Equivalent Identical
Define which Optimizer operations are allowed to be launched during the
detection phase
The option controls whether the Optimizer runs during the detection
phase. When this run is in parallel with the detection phase, the
Optimizer can execute several types of operations. This
OptimizerOperationsDuringDetection option defines which operations
are allowed to be launched during detection. This option takes a list of
values. Currently only 'Equivalent' and 'Identical' values are valid:
finding equivalent faults or finding identical faults in order to disable
them.
The value of this option can be changed while a qualification phase is
running.
OptimizerOperationsDuringDetection values:
Equivalent
Optimizer is allowed to launch analysis of equivalent faults
during the detection phase.
Identical
Optimizer is allowed to launch analysis of identical faults during
the detection phase.
OptimizerStuckInputs
Default value: <No default Value>
Set a value for input ports when the Optimizer is used
A value can be specified for a list of specified input ports with this
option. The Optimizer will consider only these values when tracking
down equivalent faults for instance. This will reduce the optimization
time.
The option accepts a list of pairs with the following syntax:
setconfig {-OptimizerStuckInputs = {inputport1 value1} {inputport2
value2} ... }
or (recommended)
setconfig -OptimizerStuckInputs=[ list {inputport1 value1} {inputport2
value2} ...]
PersistentLifeTime
Default value: 3600
Set the job persistence time when using a batch system in partial
persistence mode or in full persistence mode
When the SimulationMode configuration option is set to
PartiallyPersistent or FullyPersistent, a job can start as many simulations
as necessary to complete the qualification. This life time option
periodically ends the job. The default value is 3600 seconds (one hour).
If a simulation is in progress when the value is reached, the simulation
will not stop. The job ends after the simulation is finished.
The value of PersistentLifeTime can be changed while a detection phase
is running. The new value will be applied to all the jobs started after the
value change.
The value of this option can be changed while a qualification phase is
running.
PersistentLifeTime values:
- unlimited
If this value is used, Certitude will not return from the batch
system until the qualification is completed. Using this value is not
recommended when multiple users are using the batch system.
- <positive integer>
Specify the time in seconds to regularly stop a job when the
SimulationMode option is set to PartiallyPersistent or
FullyPersistent.
PostExecutionScript
Default value: <No default Value>
Set the path to the script that is executed after the execution script
This option runs a specific script to execute end-of-execution operations.
For example, the end of execution operations can be interrupting all the
ongoing processes on the batch and removing all the process files that
have been created. By default, these operations are included in the
execution script.
The value of this option can be changed while a qualification phase is
running.
PropagationType
Default value: TimeOrValue
Specify the use of time and value in the propagation analysis
HDL languages only. When checking if there is an observed difference of
behavior between with and without the fault, in other terms if the fault
has been observed at a probe, Certitude can consider traces values as well
as time. This option is for specifying if this observation must take
account of one of these two factors or both. The default type is
'TimeOrValue', which means that the fault is considered as observed if
traces values have changed or if time has changed or if both have
changed.
PropagationType values:
TimeOrValue
The fault is considered as observed if traces values have changed
or if time has changed or if both have changed.
TimeAndValue
The fault is considered as observed only if both traces values and
time have changed.
Value
The fault is considered as observed if traces values have changed,
whether time has changed or not.
Time
The fault is considered as observed if time has changed, whether
traces values have changed or not.
ValueOnly
The fault is considered as observed if only traces values have
changed (time has not changed).
TimeOnly
The fault is considered as observed if only time has changed
(traces values has not changed).
QualificationRunName
Default value: <Re-use TopName value>
Display the specified label in the HTML report
By default, the HTML report uses the TopName name as the title for the
project. This project name appears in every major page of the report.
When a label is specified with QualificationRunName, this label is used
instead of the TopName name in the HTML report.
The value of this option can be changed while a qualification phase is
running.
ReentrantTests
Default value: false
Enable testcase multiple run in parallel
The options BatchCommand (if applicable) and MaxJobsInParalel
should also be set. Note that when ReentrantTests is set to false,
Certitude can still run many different testcases in parallel.
ReportDirectory
Default value: [Current Directory]/certitudeReport
Define the path to the directory where the HTML reports are written
If the path is defined with a relative path name (i.e. it does not begin with
"/"), the base for the relative path is assumed to be the working directory.
The value of this option can be changed while a qualification phase is
running.
ReportFormat
Default value: html
Specify the report mode before using the report command
Possible values for this configuration option are 'html' or 'text'. By setting
the html option, the report command generates the report with current
Certitude status and data in HTML. By setting the text option, the report
command generates the report with fault status in a text file.
ReportFormat values:
html
The report command generates the report in HTML format.
text
The report command generates the report in text format.
RestoreSourceFilesOnTop
Default value: true
Allow a persistent instrumentation on top
When this option is set to false and the InstrumentOnTop option is true,
the original source files are not restored immediately after the
compilation.
In this case when RestoreSourceFilesOnTop=false and
InstrumentOnTop=true, the instrumented code is also not copied to the
original source locations before the compilation, except when the
compilation is needed.
SanityCheck
Default value: true
Perform a sanity check for activation and detection phases
When activation or detection phase is run, Certitude performs a sanity
check on the instrumented code. First a testcase returning fail is tested,
then a testcase returning pass is tested. This is for finding setup problems
before the qualification phase starts.
Setting the SanityCheck option to false disables the check.
ShowUserDataInReport
Default value: false
Display the user-defined information in the HTML report
When set to true, the user information linked to Certitude objects is
displayed in specific pages in the HTML report. In addition, data linked
to faults is shown in the fault detail window and data linked to testcases is
shown in the testcase detail window.
ShowUserDataKeysInReport
Default value: <No default Value>
Specify the user-defined information to be displayed in the HTML report
Possible values for this option are the userdatakeys that the user adds to
faults, testcases, or other Certitude objects, with the userdata commands.
The ShowUserDataInReport configuration option must be set to true first
to activate this option.
SimulatedTimeMultiplier
Default value: 1.2
Specify the time multiplier between the simulated time of the reference
simulation and of other detection simulations
This value is used by the watchdog. The base simulated time is collected
from the reference simulation (first simulation with a given testcase).
When the subsequent testcase simulated times exceed the (option value *
reference time) then the simulation is killed and the result is fail.
SimulatedTimeMultiplier is not used by Certitude in the qualification of
formal environments, as formal tools do not support the concept of
reference time.
There is no unlimited value.
The value of this option can be changed while a qualification phase is
running.
SimulationCPUTimeMultiplier
Default value: 30
Set the multiplication factor of the simulation time to calculate the time
allocated to the simulation
During activation, the runtime information of a testcase is recorded.
Certitude multiplies the activation testcase runtime by the factor
specified in this configuration option to calculate the simulation timeout.
When a simulation includes this testcase during the detection phase and
the total time is elapsed, the simulation is killed.
C language only. The default value of this configuration option is
adapted to most HDL language situations. When using Certitude with
designs written in the C language, the value of this option should be set to
3.
The value of this option can be changed while a qualification phase is
running.
SimulationHostSetup
Default value: <No default Value>
Define the name of the script that must be sourced on the host machine
before the execution script is started
This option is used for preprocessing before the execution. There is no
default value.
The value of this option can be changed while a qualification phase is
running.
SimulationMode
Default value: SingleExecution
Set the type of simulation mode
This option is for choosing whether each job starts only one simulation or
if it starts many simulations when working with a batch system. The
default is SingleExecution: one job starts one simulation through the
batch system.
SimulationMode values:
SingleExecution
In this mode, one job started by the Certitude execute wrapper is
responsible for only one simulation.
PartiallyPersistent
In this mode, each job started by Certitude execute wrapper can
start as many simulations as necessary for the qualification to
complete in the time interval defined by the PersistentLifeTime
configuration option. If this mode is set, it should be with a
reasonable PersistentLifetime value so that Certitude returns hand
of the batch system periodically.
FullyPersistent
In this mode, each job started by Certitude execute wrapper and
simulator can start as many simulations as necessary for the
qualification to complete in the time interval defined by the
PersistentLifeTime configuration option. If this mode is set, it
should be with a reasonable PersistentLifetime value so that
Certitude returns hand of the batch system periodically.
SimulationResultToExecuteWrapperTimeout
Default value: 3600
Set the maximum time (in seconds) between the end of the simulation
result process and the end of the execution script processes
This timeout option covers all processes that occur before the execution
end. For example, the remaining execution script operations that are
executed after the simulation result process is over and additional
operations that are completed through the post execution script.
The value of this option can be changed while a qualification phase is
running.
SimulationTimeout
Default value: 604800
Set the maximum time (in seconds) for a simulation timeout
The simulation is stopped when this time has elapsed, and is retried for
the time specified with the ExecutionMaxAttempt configuration option.
If this option value is changed, make sure to keep the timeout longer than
the longest simulation. The default setting is 604800 seconds (seven
days).
The value of this option can be changed while a qualification phase is
running.
SimulationTimeout values:
- unlimited
No simulation timeout.
- <positive integer>
Simulation timeout value in seconds.
Simulator
Default value: none
Simulator values:
nc
Use NCSim as the simulator.
ncsim
Use NCSim as the simulator.
modelsim
Use ModelSim as the simulator.
vcs
Use VCS as the simulator.
ifv
Use the formal tool, ifv, as the simulator.
jg
Use the formal tool, JasperGold, as the simulator.
generic-formal-tool
Use the formal tool that is not in the support list.
mg
Use the formal tool, Magellan, as the simulator.
onespin
Use the formal tool, OneSpin, as the simulator.
vcstatic
Use the formal tool, VC Static, as the simulator.
none
No simulator is specified. Activation, detection and metric phases
cannot be run with designs written in HDL languages.
native
Use VCS Native Certitude as the simulator.
SimulatorBitWidth
Default value: 32
Set the correct bit width for simulator compatibility
Setting this option makes all the appropriate Certitude settings so that it is
compatible with the bit width of the simulator.
SimulatorBitWidth values:
32
This value must be set if the used simulator is working in 32 bits.
64
This value must be set if the used simulator is working in 64 bits.
SimulatorTemplateDirectory
Default value: [Installation Directory]/data/SimulatorTemplate/
Specify the directory where simulator template files are found when the
faultdebug command is used
HDL languages only. When the faultdebug command is used for
waveform comparisons, Certitude uses templates to generate the 'do'
scripts for the different simulators or tools. With this option, a template
directory other than the default Certitude data/SimulatorTemplate can be
specified for generating this 'do' script.
The value of this option can be changed while a qualification phase is
running.
SimuToSimulationResultTimeout
Default value: 3600
Set the time (in seconds) between the end of a simulation and the start of
the simulation result process
When a simulation ends, Certitude expects the simulation result process
to be started before this timeout value has elapsed. If it does not, the
simulation is retried for the time specified with the
ExecutionMaxAttempt configuration option. The default value is 3600
seconds (one hour).
The value of this option can be changed while a qualification phase is
running.
SubmitNewJobForOptimizerTask
Default value: false
TclList
Default value: false
Print listed results (e.g. testcases, source files, or scenarios) as Tcl lists
By default, listed results (e.g. testcase names, source file names, or
scenario names) are printed in the Certitude shell line by line. When
these lists are to be used in a script, this option must be set to true to make
these lists Tcl compatible.
The value of this option can be changed while a qualification phase is
running.
TempDataDirectory
Default value: [Current Directory]/certitudeTmp
Specify the directory where temporary files are created by Certitude
If the path is defined with a relative path name (i.e. it does not begin with
'/'), the base for the relative path is assumed to be the working directory.
The value of this option can be changed while a qualification phase is
running.
TestcasesScript
Default value: [Current Directory]/certitude_testcases.cer
Define the path to the script where the list of all testcases used for
simulation is defined (using addtestcase commands)
If the path is defined with a relative path name (i.e. it does not begin with
"/"), the base for the relative path is assumed to be the working directory.
TopName
Default value: <No default Value>
Define the name of the top level entity or module in the RTL design
under verification
This option must be configured if the design is written in HDL
languages. It is a string that is made up of the library and top level entity/
module name.
For example:
setconfig -TopName=work.usb
A new model phase is mandatory for the new setting to be effective.
TopVerilogParameters
Default value: <No default Value>
Specify parameters to be passed to the design top
This option is used when it is necessary to pass parameters from outside a
Verilog top (which is usually done by the testbench). The option accepts
a list of pairs with the following syntax:
setconfig {-TopVerilogParameters={parameter1 value1} {parameter2
value2} ...}
or (recommended)
setconfig -TopVerilogParameters=[ list {parameter1 value1}
{parameter2 value2} ...]
where parameter1 and parameter2 are the name of the parameter as
appeared in the Verilog top. No additional path specification (e.g.
work.parameter1 or top.parameter1) is needed.
module top #(
parameter width = 0,
parameter select_width = 1
)(
input enable,
input [width-1:0] req,
output reg [select_width-1:0] select,
input clock
);
TopVhdlGenerics
Default value: <No default Value>
Specify generics to be passed to the design top
This option is used when it is necessary to pass generics from outside a
VHDL top (which is usually done by the testbench). The option accepts a
list of pairs with the following syntax:
setconfig {-TopVhdlGenerics = {generic1 value1} {generic2 value2} ...
}
or (recommended)
setconfig -TopVhdlGenerics=[ list {generic1 value1} {generic2 value2}
...]
entity top is
generic(gen : natural := 0 ;
std : std_logic := '0' ;
std2 : std_logic_vector (3 downto 0) );
port (i : in std_logic ;
o1, o2, o3 : out std_logic_vector (gen downto 0) ) ;
end entity;
UseStdVhdlLibraries
Default value: true
Tell Certitude whether to use the standard VHDL libraries or not
This option is boolean. If set, Certitude uses standard VHDL libraries
that are shipped with Certitude e.g. std and ieee; if set to 0, the user must
provide library data files for all libraries.
This option is for VHDL only.
A new model phase is mandatory for the new setting to be effective.
UVM
Default value: false
Load UVM library
When set to true, this configuration option allows Certitude to take UVM
packages into account.
UVMPackageFile
Default value: <No default Value>
Specify the path of UVM library packages
When the UVM configuration option is set to true, the path of UVM
packages should be specified with the UVMPackageFile configuration
option. For VCS simulator and UVM 1.1 users, this option can remain
blank.
A new model phase is mandatory for the new setting to be effective.
ValidateHistory
Default value: false
Provide a mode to ensure that previously-detected faults are still detected
by the same testcases
When this configuration option is set to true, potential regressions are
quickly identified. If a previously-detected fault is no longer detected
after a new model, the testcase that is no longer efficient can be quickly
identified.
This mode is available from the following commands:
- activate: if a fault is no longer activated by the previous killing testcase,
this fault is set to Non-Activated.
- detect: the fault-testcase pairs that have previously detected the faults
are executed.
- report: the report is generated only for the previous detected faults
(idem "report -faultlist").
VCSCompileDirectory
Default value: <No default Value>
Return the VCS working directory
In the Native mode, this configuration option returns the VCS working
directory (i.e. the directory where VCS was invoked) when the model
phase is executed by the VCS compile script. The value of this
configuration option is empty for the rest of the time.
This value is read-only.
VerboseLevel
Default value: 0
VerdiInitCommand
Default value: <No default Value>
Specify the Tcl command for loading a design in the Verdi platform
After shell commands and Certitude interface commands start the Verdi
platform for code navigation or waveform comparison, the
VerdiInitCommand option is needed to load the appropriate design in the
Verdi platform at startup.
In addition to the mandatory debImport command, the
VerdiInitCommand option can contain any Verdi Tcl command.
where -top is the module top for the design imported into the Verdi
platform and -path is the path to the design.
VerdiScript
Default value: {verdi -serverPort 0}
Customized script to launch the Verdi platform
After this option is set and the verdistart command is executed, if a
running Verdi platform does not exist to connect to, Certitude will use
the script specified by the VerdiScript option to launch a new Verdi
platform.
Note that Certitude uses the specified script to launch the Verdi platform
and append Verdi '-serverPort 0' command option. Users must pass this
command option to Verdi in their customized Verdi script. For the '-
serverPort' option, refer to the Verdi documentation for more details.
The value of this option can be changed while a qualification phase is
running.
VerdiLaunchingTimeOut
Default value: 60
Set the maximum time (in seconds) for launching Verdi to time out
The novasrun command will be stopped when this time is elapsed.
The value of this option can be changed while a qualification phase is
running.
VerdiLogDir
Default value: <No default Value>
Connect Certitude to the running Verdi platform
After this option is set and the novasrun command is executed, Certitude
will connect to the running Verdi platform by searching for the Verdi
configuration file located under the directory specified by the
VerdiLogDir option.
The value of this option can be changed while a qualification phase is
running.
VhdlCerPackageFile
VhdlCerPackageLibrary
Default value: certess_lib
Define a library name for the compilation of Certitude packages
When in VHDL the compilation is made in a library that shares the same
name with an entity, it causes an ambiguity problem in Certitude. To
solve this, the VhdlCerPackageFile configuration option can be used.
When (and only when) that option is used, a custom name can also be set
for the library where the Certitude package must be compiled, such as
certess_lib (the default name), with this configuration option
VhdlCerPackageLibrary.
When this option is set, the compilation script must be modified
accordingly.
A new model phase is mandatory for the new setting to be effective.
VhdlInstrumentForGenerate
Default value: false
Enable the injection of connectivity faults on entity instantiation located
in VHDL for-generate statements
This option is applicable for VHDL designs only. If set to true,
connectivity faults are injected on entity instantiation in VHDL for-
generate statements.
A new model phase is mandatory for the new setting to be effective.
vhdlSmartOrder
Default value: false
Set this option to true to order VHDL files automatically when parsing
with Certitude
When this option is set to true, VHDL files are ordered automatically
when parsing with Certitude. When this option is set to false, VHDL files
are parsed in the order specified by the certitude_hdl_file.cer file. The
default is false.
After this option is set to true, Verilog or SystemVerilog files are parsed
first and VHDL files later. VHDL files are automatically sorted to
support parsing. The internal Certitude file list will be modified to reflect
the new file order.
A new model phase is mandatory for the new setting to be effective.
VlogCerPackageLibrary
Default value: work
Set the VHDL library where Certitude compiles Verilog modules (e.g.
cer_iof used to instrument Inout VHDL ports)
This configuration option defines the VHDL library where Certitude
compiles Verilog modules. Currently it is used only when performing
connectivity instrumentation of Inout VHDL ports to compile the cer_iof
module.
If the library is not specified, the default library is "work".
WaveDump
Default value: false
Generate waveforms with and without fault when the fault is Non-
Detected
HDL languages only. When set to true, during the detection phase
Certitude automatically generates waveform dumps when the fault is
Non-Detected, if the simulation is configured correctly.
The value of this option can be changed while a qualification phase is
running.
WaveDumpDirectory
Default value: [Current Directory]/certitudeWaveDumps
Specify the directory where the waveform dumps are stored
HDL languages only. When the WaveDump configuration option is set
to true, Non-Detected fault waveforms are dumped for later comparison.
By default, the waveform dumps are put in the directory <project>/
certitudeWaveDumps. This option is used to specify a new directory
location for waveform dumps.
The value of this option can be changed while a qualification phase is
running.
WaveDumpHierarchicalName
Default value: <No default Value>
Specify a list of instances for waveform dumping
This options dumps the waveforms for the specified list of instance
names including the hierarchical path. This option is used when it is not
necessary to dump everything when a Non-Detected fault is found or
when the dumpwaves command is used.
This option is active only when the WaveUseEmbeddedDumper
configuration option is set to true.
The value of this option can be changed while a qualification phase is
running.
WaveDumpLevel
Default value: 0
Set the depth of the generated waveforms
HDL languages only. This option is set to 0 by default. It controls the
number of hierarchy levels for which the signals are dumped, starting
from the instance specified by WaveDumpHierarchicalName. When set
as 0, Certitude dumps all signals below the instance specified in
WaveDumpHierarchicalName. A dump level of 1 dumps the signals in
the top/module entity.
The value of this option can be changed while a qualification phase is
running.
WaveDumpSVA
Default value: true
Dump SVA instances in the generated waveforms
HDL languages only. When set to true, the embedded FSDB dumper
dumps the SVA instances in the hierarchy levels specified by
WaveDumpLevel below the scopes specified in
WaveDumpHierarchicalName. This option is active only when the
WaveUseEmbeddedDumper configuration option is set to true.
The value of this option can be changed while a qualification phase is
running.
WaveEmbeddedDumperOptions
Default value: +struct
The syntax for setting a list of values for the configuration option is:
For example:
setconfig -WaveEmbeddedDumperOptions=[list +IO_Only,+Reg_Only]
WaveUseEmbeddedDumper
Default value: true
WaveUseNovasDebug
Default value: false
XLIKillScript
Default value: <No default Value>
Define the path to the user simulation-kill scrip
As killing a simulation can be complex, a specific script can be used.
This option calls the specified script for the XLI to kill the simulation.
The value of this option can be changed while a qualification phase is
running.
XLIVerboseLevel
Default value: 0
Set the verbose level of XLI
HDL languages only. The value of this option must be a positive integer.
When the value 0 is set, there is no verbosity. Other possible values are 1
and 2.
The value of this option can be changed while a qualification phase is
running.
XLIWatchdogTimeout
Default value: 120
Define the maximum accepted time (in seconds) for the simulation
inactivity before the simulation is killed
This option defines the maximum CPU time that the Certitude watchdog
will wait for the simulation to report an advance in simulation time. If the
simulation time has not advanced within this time, then the watchdog
will kill the simulation.
The default setting is 120 seconds. If simulation time has not advanced
for 121 seconds, the simulation will be killed. A simulation killed by the
watchdog leads to a detected fault only if the execution script reports a
failed simulation. However, the watchdog only kills a Detection
simulation with an active fault. The watchdog never kills activation,
reference and non-instrumented simulation.
The value of this option can be changed while a qualification phase is
running.
Commands
activate
Perform the fault activation phase
Certitude checks if the injected faults are exercised by the verification
environment during a normal testcase execution. If a testcase fails during
the activation phase, the testcase will not be used during the detection
phase.
The 'activate' command is not allowed in query mode.
Usage:
activate [-propertyidlist=<property id list>] [-
verbose] [-nocompile] [-retryfailedtests] [-
skipknownproperties] [-nosanitycheck]
activate -testcaselist=<testcases list> [-
verbose] [-nocompile] [-nosanitycheck]
activate -compile [-verbose]
activate -instrument [-verbose]
activate -hdlrestore [-verbose]
activate -updateresults [-
testcaselist=<testcases list>] [-verbose]
activate [-propertyidlist=<property id
list>] [-verbose] [-nocompile] [-
retryfailedtests] [-skipknownproperties] [-
nosanitycheck]
addc
Read C files into Certitude
This command is only available in the file containing the list of source
files (certitude_hdl_files.cer by default).
Usage:
addc -file=<file> [-ignore=<line range>] [-
qualify] [-directivelist=<directive list>]
The recommended use is to put the list in a variable and then set -
directivelist with this variable.
Example:
set DIRECTIVES {-m32 -ansi -DMY_DEFINE -
Imy_include_dir}
addc -file=myfile1 -qualify -directivelist=$DIRECTIVES
addparameter
Add a parameter into Certitude
This command is only available in the file containing the list of testcases
(certitude_testcases.cer by default). Certitude internally creates the new
testcase names from the scenario names, parameter values (the separator
is ":< parameter name >=") and seed values (the separator is ":seed=").
For scenario creation, refer to the addscenario command.
The following shows the results when executing the testcaselist and
scenarioinfo commands.
cer> testcaselist
s1:p1=foo:seed=1608445150
s1:p1=bar:seed=1608445150
s1:p1=foo:seed=2085189979
s1:p1=bar:seed=2085189979
s1:p1=foo:seed=413401561
s1:p1=bar:seed=413401561
s2:p2=1
s2:p2=3
s2:p2=4
s3:CTE="toto=4" "truc=5" -tata {}:p1=foo:p2=1
s3:CTE="toto=4" "truc=5" -tata {}:p1=foo:p2=3
s3:CTE="toto=4" "truc=5" -tata {}:p1=foo:p2=4
s3:CTE="toto=4" "truc=5" -tata {}:p1=bar:p2=1
s3:CTE="toto=4" "truc=5" -tata {}:p1=bar:p2=3
s3:CTE="toto=4" "truc=5" -tata {}:p1=bar:p2=4
parameter for a given testcase. From the given example, for the s2:p2=1
testcase, an environment variable p2 will be created, but neither p1 nor
CTE.
The 'addparameter' command is always allowed in query mode.
Usage:
addparameter -scenariolist=<scenario list> -
name=<parameter name> -valueList=<parameter
value>
addprobefilter
Filter input and output probes of design modules
HDL languages only. This command supports module-based faults, but
does not support instance-based faults.
This command is only available in the file containing the list of source
files (certitude_hdl_files.cer by default).
where
the -probelist option specifies the probe list to filter. The syntax of a
probe is expressed as the following : work.MyModule.ThePort.
- work is the library.
- MyModule is the module.
- ThePort is the port name.
Usage:
addprobefilter -probelist=<probe list names> -
filteringexpression=<filtering expression>
addprobeonsignal
Add probes on the specified design signals
Verilog/SystemVerilog only. This command allows adding probes on
any design signals specified in the certitude_hdl_files.cer file.
The 'addprobeonsignal' command is allowed in query mode during the
model phase.
Usage:
addprobeonsignal -signallist=<signal list names>
addscenario
Add a scenario into Certitude
This command is only available in the file containing the list of testcases
(certitude_testcases.cer by default). As the purpose of this command is to
create new testcase names, Certitude internally creates the new generic
testcase names from the scenario names. The addscenario command can
be used alone or be used with the addseed command.
The addtestcase and addscenario commands cannot be used in the same
certitude_testcases.cer file.
Note that spaces are allowed in scenario names.
Suppose that three scenarios, s1, s2 and s3, need to be added, the
following commands must be added to the certitude_testcases.cer file:
addscenario -scenario=s1
addscenario -scenario=s2
addscenario -scenario=s3
When the testcaselist command is run, the following results will be
obtained:
s1
s2
s3
Usage:
addscenario -scenario=<scenario name>
addseed
Add a seed into Certitude
This command is only available in the file containing the list of testcases
(certitude_testcases.cer by default). Certitude internally creates the new
testcase names from the scenario names (refer to the addscenario
command for scenario creation) and seed values (the separator is
":seed=").
s2:seed=d5
Usage:
addseed -scenariolist=<scenario list> [-
seedlist=<seed list>]
addseed -scenariolist=<scenario list> [-
count=<max count seed number>]
addsystemverilog
Read SystemVerilog files into Certitude
This command is only available in the file containing the list of source
files (certitude_hdl_files.cer by default).
Usage:
addsystemverilog -file=<file> [-
library=<library>] [-ignore=<line range>] [-
noparse=<line range>] [-noweakness=<line range>]
[-qualify] [-includepaths=<include path>] [-
probelist=<probe list>] [-
ignoreprobelist=<ignore probe list>] [-
slang=<System Verilog language version>]
addsystemverilog -file=<file> [-
library=<library>] [-ignore=<line range>] [-
noparse=<line range>] [-noweakness=<line
range>] [-qualify] [-includepaths=<include
path>] [-probelist=<probe list>] [-
ignoreprobelist=<ignore probe list>] [-
slang=<System Verilog language version>]
This command requires the file name to be specified.
When the -
option is used, the file is instrumented by Certitude and all the
output ports in the file will be considered as probes.
This command is also used for:
- The specification of a library with the -library= option.
- The specification of HDL lines that must be ignored by
Certitude when faults are injected. For example, when -
addtestcase
Add a testcase into Certitude
This command is only available inside the file containing the list of
testcases (certitude_testcases.cer by default).
Usage:
addtestcase -testcase=<testcase name> [-
testcasegroup=<testcases group name>]
addverilog
Read Verilog files into Certitude
This command is only available in the file containing the list of source
files (certitude_hdl_files.cer by default).
Usage:
addverilog -file=<file> [-library=<library>] [-
ignore=<line range>] [-noparse=<line range>] [-
noweakness=<line range>] [-qualify] [-
includepaths=<include path>] [-probelist=<probe
list>] [-ignoreprobelist=<ignore probe list>] [-
slang=<Verilog language version>]
addvhdl
Read VHDL files into Certitude
This command is only available in the file containing the list of source
files (certitude_hdl_files.cer by default).
Usage:
addvhdl -file=<file> -library=<library> [-
ignore=<line range>] [-noparse=<line range>] [-
noweakness=<line range>] [-qualify] [-slang=<Vhdl
language version>] [-probelist=<probe list>] [-
ignoreprobelist=<ignore probe list>]
analyzeverilog
Read Verilog/SystemVerilog files into Certitude
This command is only available in the file containing the list of source
files (certitude_hdl_files.cer by default), and accepts a list of files. In
SystemVerilog, the list of files is compiled into the same Compilation
Unit (CU). This command cannot be used with the addverilog or
addsystemverilog commands; it can be used with the addvhdl command.
Usage:
analyzeverilog -filelist=<list of verilog files>
[-f=<list of file list files>] [-FF=<list of file
list files (path prepended)>] [OPTIONS]
| -f=<list of file list files> [-
filelist=<list of verilog files>] [-FF=<list of
file list files (path prepended)>] [OPTIONS]
| -FF=<list of file list files
(path prepended)> [-filelist=<list of verilog
files>] [-f=<list of file list files>] [OPTIONS]
OPTIONS
Multiple options can be selected for
OPTIONS.
and
Perform an AND operation with two lists
This command returns the elements that are present both in the two
specified lists. The two lists can be any list of Certitude elements, such as
a list returned by the faultlist or the testcaselist commands.
The 'and' command is always allowed in query mode.
Usage:
and -list1=<list of IDs> -list2=<list of IDs>
availablelicenses
Return the number of available Certitude licenses
Usage:
availablelicenses -feature=<feature>
availablelicenses -feature=<feature>
A specific Certitude feature must be specified.
cermessage
Define a Certitude message to be printed in the log file and the terminal
The appearance of the message is defined by the severity level option.
When the -InfoAlwaysDisplayed option is used, the message is printed in
the terminal even if Certitude is in query mode.
The 'cermessage' command is always allowed in query mode.
Usage:
cermessage -text=<message text> -level=<message
level>
In addition,
cermessage -level=Warning "-text=this is my warning"
returns the following:
CER-Warning : this is my warning
Error
The message text is displayed in red with the 'CER-Error :' tag.
Warning
The message text is displayed in orange with the 'CER-Warning :'
tag.
Info
The message text is displayed in black with the 'CER-Info :' tag.
The message appears in verbose and in non-verbose mode. The
message appears in query mode except when specific Tcl
commands as 'after' are used through a script.
Verbose
The message text is displayed in black with the 'CER-Info :' tag.
The message appears only in verbose mode.
InfoAlwaysDisplayed
The message text is displayed in black with the 'CER-Info :' tag.
The message always appears: in verbose, non-verbose and query
mode.
checkdetection
Check if the specified faults are detected by the specified testcases
This command runs detection for the specified fault-testcase pair(s).
According to currently-processed operations, detections are run
simultaneously using the batch system. The command can quickly verify
if a change of testcase or testbench detects a specific fault. This
command does not rerun activation and does not modify the report or the
results in the database. If the checked testcase change must be considered
in the results saved in the database, the testcase must be reset with the
resettestcase command first, and then the activation and detection phases
must be rerun.
When the testcase passes or fails, the simulation data is compared to the
data stored in the database:
In the activation phase:
- The testcase and the current waveform dumping simulation must pass.
- The list of the faults activated by the testcase during activation
reference and current waveform dumping simulations are compared.
In the detection phase:
- If no faults are enabled, the testcase in activation and the current
waveform dumping simulation must pass.
- Detection and current waveform dumping simulations must have the
same testcase status whether it is pass or fail.
- If no faults are enabled, the signature of the detection reference
simulation and the signature of the current waveform dumping
simulation are compared.
- If a fault is enabled, the propagation information of the detection
simulation and the propagation information of the current waveform
dumping simulation are compared.
The current simulation data and the data stored in the database are
supposed to be identical. If a result differs, an error indicates that an
Usage:
checkdetection -faulttestcasepairlist=<list of {
fault ID { list of testcase names } }> [-verbose]
checkdetection -testcase=<testcase name>
[EXCLUSIVE OPTIONS]
| -testcaseid=<testcase id>
[EXCLUSIVE OPTIONS]
checkdetection -faulttestcasepairlist=<list
of { fault ID { list of testcase names } }>
[-verbose]
This option runs multiple detections simultaneously for a list of
fault-testcase pairs.
Here are possible syntaxes for those lists:
checkdetection -faulttestcasepairlist=[list [list 8 [list testcase1
testcase2]]]
or
checkdetection {-faulttestcasepairlist={8 {testcase1 testcase2}}}
EXCLUSIVE OPTIONS
Only one option can be specified for
EXCLUSIVE OPTIONS.
clearlock
Unlock Certitude database
Unlocks Certitude files.
The 'clearlock' command is not allowed in query mode.
Usage:
clearlock [-noquestion]
clearlock [-noquestion]
The -noquestion option removes the prompt for user
confirmation.
computemetric
Compute the quality metric for this verification environment
The quality metric can be computed only after the model and the
activation phases have been executed. The computation stops
automatically when a stable result is reached.
If a metric computation is run after a detection has been run, results of all
fault-testcase pairs obtained during the detection are used and those
simulations will not be run again.
The 'computemetric' command is not allowed in query mode.
Usage:
computemetric [-marginoferror=<margin of error>]
[-verbose] [-algorithm=<algorithm>] [-nocompile]
[-noquestion] [-nosanitycheck]
computemetric [-marginoferror=<margin of
error>] [-verbose] [-algorithm=<algorithm>]
[-nocompile] [-noquestion] [-nosanitycheck]
Metric computation can be set in verbose mode (-verbose).
The metric algorithm can be selected (-algorithm=). There are
three values to this option: TestSampling, Detection and
AutoSelect. The default value is AutoSelect. It is the automatic
selection of the algorithm according to the context (it is calculated
mainly on the basis of the number of faults, the number of
testcases, and the activation profile of the verification
environment). TestSampling and Detection are two different
statistical approaches that lead to different performance profiles.
They both give the same results, but in some circumstances the
Detection algorithm is faster. For statistical reasons, a metric
configinfo
Display configuration information
This command displays in the shell the actual value, the default value or
the value used by Certitude of configuration options.
When used without options, configinfo returns the list of all
configuration options along with their current values.
When used with the name of a configuration option, configinfo returns
the current value of the specified configuration option.
When the -defaultvalue is used, the command returns the default value of
the specified configuration option when there is one. Specifying an
option name is mandatory with the -defaultvalue option.
When the -valueusedbycertitude is used, the command returns the value
used by Certitude for the specified configuration option. For example, it
returns the value used by the model phase for options that require a new
model to be effective. Specifying an option name is mandatory with the -
valueusedbymodel option.
When used with the -configfilelist option, this command returns the list
of configuration files that have been loaded for the configuration of
Certitude, in the order of load. The last loaded configuration file is by
default <working_directory>/certitude_config.cer.
configinfo
Returns the current value of all the configuration options.
configinfo -MaxJobsInParallel
Returns the current value of the MaxJobsInParallel configuration option.
configinfo -configfilelist
Returns the list of the configuration files that have been loaded.
The 'configinfo' command is always allowed in query mode.
configure
Source a Certitude configuration file
This does the same as the Tcl source command but is used specifically
for configuration files. It must only be used to source a certitude
configuration file.
The 'configure' command is not allowed in query mode.
Usage:
configure [-file=<config file name>]
dbdump
Copy Certitude database
This command creates a compressed copy of the Certitude database for
backup purposes. This copy can then be restored only with the 'dbload'
command.
The 'dbdump' command is allowed in query mode during the activation
phase, the lite model phase, the detection phase, the metric computation
and the regression phase.
Usage:
dbdump -directory=<Directory name> [-noquestion]
dbload
Load a previously dumped Certitude DataBase
This command loads a Certitude DataBase when it has been copied with
the command 'dbdump'. It cannot be used with a DataBase copied in any
other way.
The 'dbload' command is not allowed in query mode.
Usage:
dbload -directory=<Directory name>
dbupgrade
Dump and reload Cetitude DataBase
This command is used when Certitude is upgraded between a version
before 2.4 and version 2.4 or after. It is also used when Certitude is
upgraded between a version before 2.5 and version 2.5 or after. The
present DataBase is first copied in a temporary directory and then loaded
again with the new DataBase formats (which has changed in Certitude
2.4, and changed again in Certitude 2.5).
The 'dbupgrade' command is not allowed in query mode.
Usage:
dbupgrade -conversiontempdirectory=<Directory
name> [-noquestion]
dbupgrade -
conversiontempdirectory=<Directory name>
[-noquestion]
A destination directory must be specified. It will receive the old
database and the translation. The user can erase this directory
when the operation proved completely successfull.
The -noquestion option asks confirmation to the user when
dumping the old database in an already existing directory that
contains a database dump. This option is optional.
detect
Perform the fault detection phase
The fault detection phase can only be started after the fault activation
phase is completed. If a testcase fails during the activation phase, the
testcase will not be used during the detection phase.
If the detection phase is run after a metric computation, all results of the
fault-testcase pairs obtained during the metric computation will be used.
The simulations will not be run again.
The 'detect' command is not allowed in query mode.
Usage:
detect [-verbose] [-nocompile] [-nosanitycheck]
detect -compile [-verbose]
detect -faultlist=<list of fault IDs> [-
propertyidlist=<property id list>] [-verbose] [-
nocompile] [-nosanitycheck]
detect -faulttestcasepairlist=<list of { fault ID
{ list of testcase names } }> [-verbose] [-
nocompile] [-nosanitycheck]
detect -instrument [-verbose]
detect -hdlrestore [-verbose]
detect -updateresults [-verbose]
detect -strategy=<strategy> [-faultlist=<list of
fault IDs>] [-nocompile] [-nosanitycheck] [-
verbose]
detect -mustfix [-nocompile] [-nosanitycheck] [-
verbose]
detect -faultpropertyidpairlist=<list of { fault
ID { list of property ids } }> [-verbose] [-
nocompile] [-nosanitycheck]
Can optionally run the detection with the specified property IDs (-
propertyidlist).
detect -faulttestcasepairlist=<list of {
fault ID { list of testcase names } }> [-
detect -strategy=Connectivity
HDL languages only. The detection is run only on connectivity
faults. This requires that the configuration option FaultSet should
include the value Connectivity, so that the connectivity faults are
injected during the model phase.
detect -strategy=Reset
HDL languages only. The detection is run only on the faults that
have the ConditionTrue type and are marked as asyncreset
(asynchronous reset). This requires that the configuration option
FaultSet should include the value RTL, so that the RTL faults are
injected during the model phase.
detect -strategy=TopDown
HDL languages only. The detection is run on all the faults, both
connectivity and RTL, in a specific order as follows - inout
connectivity faults, output connectivity faults, reset
ConditionTrue faults, control flow faults in synchronous
processes, input connectivity faults, control flow faults in
asynchronous processes and other remaining faults. This requires
that the configuration option FaultSet should include both the
values Connectivity and RTL, so that both the Connectivity and
the RTL faults are injected during the model phase.
do
Source a file or a set of instructions
Usage:
do -file=<file name>
do -tcl=<TCL commands>
do -file=<file name>
Sources the specified file.
do -tcl=<TCL commands>
Sources the specified set of Tcl instructions or Certitude
commands.
dumpwaves
Dump waveforms with or without injecting a fault in the design
HDL languages only. This command dumps waveforms with or without
injecting a fault in the design. The command uses the instrumented code
for activation or detection. According to currently-processed operations,
waveforms are simultaneously dumped using the batch system.
This command can be used on faults in any status.
When the testcase passes or fails, the simulation data is compared to the
data stored in the database:
In the activation phase:
- The testcase and the current waveform dumping simulation must pass.
- The list of the faults activated by the testcase during the activation
reference and current waveform dumping simulations are compared.
In the detection phase:
- If no faults are enabled, the testcase in activation and the current
waveform dumping simulation must pass.
- Detection and current waveform dumping simulations must have the
same testcase status whether it is pass or fail.
- If no faults are enabled, the signature of the detection reference
simulation and the signature of the current waveform dumping
simulation are compared.
- If a fault is enabled, the propagation information of the detection
simulation and the propagation information of the current waveform
dumping simulation are compared.
The current simulation data and the data stored in the database are
supposed to be identical. If a result differs, an error indicates that an
inconsistent simulation status or behavior exists.
The 'dumpwaves' command is allowed in query mode during the
activation phase and the detection phase.
Usage:
dumpwaves -faulttestcasepairlist=<list of { fault
ID { list of testcase names } }> [-verbose] [-
force]
dumpwaves -testcaselist=<testcase names>
[EXCLUSIVE OPTIONS]
| -testcaseidlist=<testcase ids>
[EXCLUSIVE OPTIONS]
dumpwaves -faulttestcasepairlist=<list of {
fault ID { list of testcase names } }> [-
verbose] [-force]
Dumps the waveforms simultaneously for a list of fault-testcase
pairs.
Here are possible syntaxes for those lists:
dumpwaves -faulttestcasepairlist=[list [list 8 [list testcase1
testcase2]]]
or
dumpwaves {-faulttestcasepairlist={8 {testcase1 testcase2}}}
EXCLUSIVE OPTIONS
Only one option can be specified for
EXCLUSIVE OPTIONS.
endquery
Toggle verbose mode on and off when a qualification is running
The command is available only when in query mode. It exits the query
mode and activates the verbose mode (when -verbose option is used) or
de-activate verbose mode (with no option).
The 'endquery' command is always allowed in query mode.
Usage:
endquery [-verbose]
endquery [-verbose]
When the -verbose option is used, it sets the verbosity on during
for the current phase.
except
Perform a EXCEPT operation with two lists
This command returns the elements that are both present in one list and
not present in another list. The two lists can be any Certitude elements'
list such as a list returned by the faultlist or the testcaselist commands.
The 'except' command is always allowed in query mode.
Usage:
except -list1=<list of IDs> -list2=<list of IDs>
faultdebug
Generate a run script to launch a waveform analysis tool
HDL languages only. This command creates a run script that can be used
for comparing the waveform with the fault and the waveform without the
fault. This command can be used for Non-Detected and Non-Propagated
faults. If the fault is Non-Propagated or if the WaveDump configuration
option is set to false, it is recommended to first use the dumpwaves
command to generate the faulty waveform.
The 'faultdebug' command is allowed in query mode during the
activation phase, the lite model phase, the detection phase, the metric
computation and the regression phase.
Usage:
faultdebug -fault=<fault ID> [-testcase=<testcase
name>]
faultdisable
Exclude faults from the qualification
Excludes faults from the qualification, for iterative use. Faults can be re-
enabled using the faultenable command.
The 'faultdisable' command is allowed in query mode during the
detection phase.
Usage:
faultdisable -faultlist=<faults ID>
faultdisable -all
faultenable
Re-include disabled faults in the qualification
This makes previously excluded faults included in the qualification
again.
The 'faultenable' command is allowed in query mode during Fault
Detection Phase.
Usage:
faultenable -faultlist=<faults ID>
faultenable -all
faultinfo
Return information about a fault
Return the activation and/or detection information for the specified fault.
The 'faultinfo' command is allowed in query mode during the activation
phase, the detection phase, the metric computation and the regression
phase.
Usage:
faultinfo -fault=<fault ID>
faultinfo -fault=<fault ID> [OPTIONS]
faultinfo -fault=<fault ID> [EXCLUSIVE OPTIONS]
OPTIONS
Multiple options can be selected for
OPTIONS.
bitwise fault.
ex: a[4:5] => fault 1 on the two bits, fault 2 on bit 4 and fault 3 on
bit 5.
This query returns 4 for fault 2 and 5 for fault 3.
-file returns the name of the source file containing the specified
fault.
-line returns the line number of the specified fault in the specified
source file.
specified fault.
-unitname returns the name of the unit where the specified fault is
located.
-unittype returns the type of the unit where the specified fault is
located.
-userdatakeylist returns the list of existing user data keys for the
specified fault.
-weakfor returns the list of testcases for which the fault is Non-
Propagated Weak.
EXCLUSIVE OPTIONS
Only one option can be specified for
EXCLUSIVE OPTIONS.
Time: The fault has caused a time shift at the specified probe,
whether there has been a change of value or not.
Value: The fault has caused a change of value at the specified
probe, whether there has been a time shift or not.
TimeOnly: The fault has caused a time shift at the specified probe
but no change of value.
ValueOnly: The fault has caused a change of value at the
specified probe but no time shift.
TimeOrValue: The fault has caused a change of value, or a time
shift, or both, at the specified probe.
TimeAndValue: The fault has caused both a change of value and
a time shift at the specified probe.
faultlist
Return a list of faults
Usage:
faultlist [-filelist=<list of file names> [-
line=<line number>]] [OPTIONS]
OPTIONS
Multiple options can be selected for
OPTIONS.
-status= returns the faults that have the specified status. Possible
status values are Non-Activated, Non-Propagated, Non-Detected,
Detected, Dropped, NotYetQualified, DisabledByUser, and
DisabledByCertitude.
-type= returns the faults that have the specified fault type.
-faultset= returns the faults that belong to the specified fault set.
Possible faultset values are RTL, Connectivity, and the fault
classes.
-blockid= returns the faults located in the block with the specified
block ID.
-unitname= returns the faults located in the unit with the specified
name.
-mustfix= returns the list of faults that must be fixed first (i.e. the
list of faults in classes listed in the configuration option
MustFixFaultClasses: TopOutputsConnectivity and
ResetConditionTrue classes by default).
faultpropertydisable
Disable fault-property ID pairs that are not used in the detection phase
and the metric computation
When the FormalFlowAssertionBased configuration option is set to true,
this command can be used to disable specific fault-property ID pairs used
in the detection phase and the metric computation.
The 'faultpropertydisable' command is always allowed in query mode.
Usage:
faultpropertydisable -faultlist=<list of fault
IDs> [-propertyidlist=<property ID list>]
faultpropertydisable -
faultpropertyidpairlist=<list of { fault ID {
list of property ids } }>
faultpropertydisable -faultlist=<list of
fault IDs> [-propertyidlist=<property ID
list>]
Disable the specified properties (-propertyidlist) for the given
faults (-faultlist) in the detection phase and the metric
computation.
faultpropertydisable -
faultpropertyidpairlist=<list of { fault ID
{ list of property ids } }>
Disable the specified fault-property ID pairs (-
faultpropertyidpairlist) in the detection phase and the metric
computation.
faultpropertyenable
Enable fault-property ID pairs that are not used in the detection phase and
the metric computation
When the FormalFlowAssertionBased configuration option is set to true,
this command can be used to enable specific fault-property ID pairs used
in the detection phase and the metric computation.
The 'faultpropertyenable' command is always allowed in query mode.
Usage:
faultpropertyenable -faultlist=<list of fault
IDs> [-propertyidlist=<property ID list>]
faultpropertyenable -
faultpropertyidpairlist=<list of { fault ID {
list of property ids } }>
faultpropertyenable -faultlist=<list of
fault IDs> [-propertyidlist=<property ID
list>]
Enable the specified properties (-propertyidlist) for the given
faults (-faultlist) in the detection phase and the metric
computation.
faultpropertyenable -
faultpropertyidpairlist=<list of { fault ID
{ list of property ids } }>
Enable the specified fault-property ID pairs (-
faultpropertyidpairlist) in the detection phase and the metric
computation.
faulttestdisable
Disable a list of faults with a list of testcases
Usage:
faulttestdisable -faultlist=<list of fault IDs>
[-testcaselist=<list of testcase names>]
faulttestenable
Enable a list of faults with a list of testcases
Usage:
faulttestenable -faultlist=<list of fault IDs> [-
testcaselist=<list of testcase names>]
fileinfo
Return the information about source files
This command returns the information about any source file listed in the
certitude_hdl_files.cer file.
The 'fileinfo' command is always allowed in query mode.
Usage:
fileinfo -file=<file name>
fileinfo -fileid=<file id>
fileinfo -file=<file name> [EXCLUSIVE OPTIONS]
| -fileid=<file id> [EXCLUSIVE OPTIONS]
EXCLUSIVE OPTIONS
Only one option can be specified for
EXCLUSIVE OPTIONS.
-noparse returns the list of not parsed lines in the specified file, as
defined when the -noparse option is used in the
certitude_hdl_files.cer file.
filelist
List all source files added into the database
This list includes the files without the -qualify option by default.
The 'filelist' command is always allowed in query mode.
Usage:
filelist [OPTIONS]
OPTIONS
Multiple options can be selected for
OPTIONS.
-idlist returns the list of file ids instead of the list of file names.
generatesetuptemplates
Generate setup files containing access rights
This command generates four setup files with the default names
certitude_hdl_files.cer, certitude_testcases.cer, certitude_compile and
certitude_execute. Those are empty files that the user must fill in with the
appropriate content, except for access rights (which are generated as
well). This is for running the model phase without causing Certitude
errors.
The 'generatesetuptemplates' command is always allowed in query mode.
getconfig
Display configuration information
This command displays in the shell the actual value, the default value or
the value used by Certitude of configuration options.
When used without options, getconfig returns the list of all configuration
options along with their current values.
When used with the name of a configuration option, getconfig returns the
current value of the specified configuration option.
When the -defaultvalue is used, the command returns the default value of
the specified configuration option when there is one. Specifying an
option name is mandatory with the -defaultvalue option.
When the -valueusedbycertitude is used, the command returns the value
used by Certitude for the specified configuration option. For example, it
returns the value used by the model phase for options that require a new
model to be effective. Specifying an option name is mandatory with the -
valueusedbymodel option.
When used with the -configfilelist option, this command returns the list
of configuration files that have been loaded for the configuration of
Certitude, in the order of load. The last loaded configuration file is by
default <working_directory>/certitude_config.cer.
getconfig
Returns the current value of all the configuration options.
getconfig -MaxJobsInParallel
Returns the current value of the MaxJobsInParallel configuration option.
getconfig -configfilelist
Returns the list of the configuration files that have been loaded.
The 'getconfig' command is always allowed in query mode.
help
Display command and configuration option help
Displays the list of all commands and configuration options with a short
description. When the command is used with the name of a command or
a configuration option, it returns detailed explanations for every aspect of
the specified element.
For example:
help
Returns the list of all configuration options followed by the list of all
commands, each with a short description.
help -activate
Returns all documentation of the activate command and of each activate
command options.
help -MaxJobsInParallel
Returns all documentation of the MaxJobsInParallel configuration option
and of each possible values.
The 'help' command is always allowed in query mode.
instanceinfo
Return information about the specified instance
Returns information about the specified instance. <instance> is the path
of the instance in the hierarchy.
The 'instanceinfo' command is allowed in query mode during the
activation phase, the detection phase, the metric computation and the
regression phase.
Usage:
instanceinfo -instancename=<instance>
instanceinfo -instancename=<instance> [EXCLUSIVE
OPTIONS]
instanceinfo -instancename=<instance>
Returns all available information about the specified instance.
EXCLUSIVE OPTIONS
Only one option can be specified for
EXCLUSIVE OPTIONS.
jobinfo
Return information about a job
This command returns the available information about the specified job.
The 'jobinfo' command is allowed in query mode during the activation
phase, the lite model phase, the detection phase, the metric computation
and the regression phase.
Usage:
jobinfo -job=<job ID>
jobinfo -job=<job ID> -status
jobinfo -job=<job ID> -simulations
joblist
Return a list of jobs
This command returns the list of jobs ID for all current and past jobs
from the Certitude database.
The 'joblist' command is allowed in query mode during the activation
phase, the detection phase, the metric computation and the regression
phase.
Usage:
joblist [OPTIONS]
OPTIONS
Multiple options can be selected for
OPTIONS.
Returns the list of job IDs that have the specified status.
killjob
Kill one or more jobs
Usage:
killjob -joblist=<jobs list>
killsimulation
Kill one or more simulations
Usage:
killsimulation -simulationlist=<simulations
list>
killsimulation -simulationlist=<simulations
list>
The list of simulation IDs must be specified.
messagedetails
Provide a description for a tagged Certitude message
Whenever a Certitude message is preceded by a number between
brackets (a 'tag'), an information about the message is available in the
tool documentation. In the case of error messages, this information
provides directions for solving the error situation and resume
qualification. The access key for the message information is its tag. A tag
must be specified in all cases.
For example:
messagedetails -1025
returns the error message that match the 1025 tag with explanations and
suggestions of things to do when the message 1025 happens.
The 'messagedetails' command is always allowed in query mode.
metricreport
Generate an HTML report with metric results
This report is in a single HTML file and contains only metric results.
Generating a report overwrites the previous one.
The 'metricreport' command is allowed in query mode during the
activation phase, the lite model phase, the detection phase, the metric
computation and the regression phase.
metricstatus
Print the quality metric results
This command prints the available metric results: the number of faults,
activated faults, the estimated number of propagated and detected faults,
the global metric, and the three detailed scores with the error margin for
each score.
The 'metricstatus' command is allowed in query mode during the
activation phase, the detection phase, the metric computation and the
regression phase.
Usage:
metricstatus
metricstatus -globalscore
metricstatus -globalscoreerrormargin
metricstatus -activationscore
metricstatus -propagationscore
metricstatus -propagationscoreerrormargin
metricstatus -detectionscore
metricstatus -detectionscoreerrormargin
metricstatus -signoff
metricstatus -globalscore
Returns the global metric score of an instance in percentage.
metricstatus -globalscoreerrormargin
Provides a percentage representing the global metric score margin
of error of an instance.
metricstatus -activationscore
Returns the activation score of an instance in percentage.
metricstatus -propagationscore
Returns the propagation score of an instance in percentage.
metricstatus -propagationscoreerrormargin
Provides a percentage representing the propagation score margin
of error of an instance.
metricstatus -detectionscore
Returns the detection score of an instance in percentage.
metricstatus -detectionscoreerrormargin
Provides a percentage representing the detection score margin of
error of an instance.
metricstatus -signoff
Provides the metric results in the design hierarchy, starting from
the instance as top instance. Only display instances selected by
the sign-off algorithm if the corresponding option is set to true.
modeinfo
Display information about the used mode
This command displays the preset mode. Each preset mode includes
specific configuration option settings.
The 'modeinfo' command is always allowed in query mode.
Usage:
modeinfo
modeinfo -mode
modeinfo
Displays information about the used mode.
modeinfo -mode
Returns the used mode name.
The SOC mode presets "setconfig -ElaborateFullDesign=false",
"setconfig -FaultSet=Connectivity", "setconfig -
OptimizerDistanceToOutputAnalysis=false", "setconfig -
OptimizerExtendedConesAnalysis=false", "setconfig -
OptimizerOperationsDuringDetection=", "setconfig -
ProbesOnInternalConnections=true" and "setconfig -
SingleInstrumentation=true".
The IP mode presets "setconfig -FaultSet=[list RTL
Connectivity]". This is the default mode.
The RTLSafety mode presets "setconfig -FaultSet=[list
BitStuckAt StuckAtLeft StuckAtRight StuckAtValue]",
"setconfig -InstrumentSignals=*" and "setconfig -
InstanceBasedFaults=true".
The Netlist mode presets "setconfig -FaultSet=[list
InputPortConnectionStuckAt0 InputPortConnectionStuckAt1
InputPortConnectionBitStuckAt0
InputPortConnectionBitStuckAt1
OutputPortConnectionStuckAt0 OutputPortConnectionStuckAt1
OutputPortConnectionBitStuckAt0
OutputPortConnectionBitStuckAt1]", "setconfig -
ConnectivityBitInstrumentationSignals=*", "setconfig -
NetlistQualification=true", "setconfig -
ConnectivityInputOnNonQualifiedBlocks=true", "setconfig -
IdentifyLatch=false", "setconfig -
IdentifyClockAndResetPort=false", "setconfig -
ReportPreGenerationInModel=false", "setconfig -
OptimizerExtendedConesAnalysis=false", "setconfig -
OptimizerOperationsDuringDetection=", "setconfig -
ReportFormat=text", and "setconfig -
NativeRuntimeOptimizedStuckAtFaults=true".
model
Perform the fault model phase
Performs the model phase. Running the model phase automatically resets
the results database, but maintains user data information and
DisableByUser status whenever it is possible.
The 'model' command is not allowed in query mode.
Usage:
model [-verbose] [-noquestion]
noqualify
Specify files that are not qualified
This command is used to specify Verilog/SystemVerilog source files that
are not instrumented but must be parsed. This command is only available
in the file containing the list of source files (certitude_hdl_files.cer by
default).
This command can be used multiple times for the same file. All specified
options are effective.
This command cannot be used with the addverilog or addsystemverilog
commands.
Usage:
noqualify -verilog -file=<file> [-noparse=<line
range>] [-probelist=<probe list>]
noqualify -verilog -filelist=<list of file names>
[-noparse=<line range>] [-probelist=<probe list>]
noqualify -verilog -f=<list of file list files>
[-FF=<list of file list files (path prepended)>]
[-probelist=<probe list>]
noqualify -verilog -FF=<list of file list files
(path prepended)> [-f=<list of file list files>]
[-probelist=<probe list>]
Specify the HDL lines that will be discarded by the parser with
the -noparse option.
When the -probelist option is used, only the probes specified in
the list will be considered.
noqualify -verilog -filelist=<list of file
names> [-noparse=<line range>] [-
probelist=<probe list>]
Excludes the specified list of Verilog/SystemVerilog files from
qualification. Specified options will be applied to all files in the
list.
Specify the HDL lines that will be discarded by the parser with
the -noparse option.
When the -probelist option is used, only the probes specified in
the list will be considered.
noqualify -verilog -f=<list of file list
files> [-FF=<list of file list files (path
prepended)>] [-probelist=<probe list>]
Exclude source files listed inside the specified list of files for
qualification. Compile-time options specified inside the list of
files have no effect.
noqualify -verilog -FF=<list of file list
files (path prepended)> [-f=<list of file
list files>] [-probelist=<probe list>]
Exclude source files listed inside the specified list of files for
qualification, where the path names of source files do not need to
be absolute path names. Compile-time options specified inside the
list of files have no effect.
optimize
Use the Optimizer on demand
Usage:
optimize -searchequivalent [-noupdate]
optimize -searchidentical
optimize -analyzefaults
or
Perform a OR operation with two lists
This command returns the elements that are present in at least one of two
specified lists. The two lists can be any Certitude elements' list such as a
list returned by the faultlist or the testcaselist commands.
The 'or' command is always allowed in query mode.
Usage:
or -list1=<list of IDs> -list2=<list of IDs>
probedisable
Disable a probe for fault observation
HDL languages only. Disabling a probe means making it unavailable for
fault observation. It is no longer possible to detect if a fault has caused a
change at this probe and the probe can no longer be set for deciding if the
fault is propagated.
The 'probedisable' command is not allowed in query mode.
Usage:
probedisable -probelist=<probe names>
probedisable -all
probedisable -all
Disables all probes.
probeenable
Enable a probe for fault observation
HDL languages only. This command is used for enabling probes so that a
fault can be observed at the specified probe(s). A probe need to be
enabled before it can be set for propagation with the setprobe command.
By default the TopName output ports are probes, enabled and set for
propagation. By default, considering any other output port as probes with
the addvhdl, addverilog and addsystemverilog command options does not
enable those probes: they must be enabled after model phase has been
run.
The 'probeenable' command is not allowed in query mode.
Usage:
probeenable -probelist=<probe names>
probeenable -all
or
probeenable {-probelist= Unit_1.Port_1 Unit_1.Port_3
Unit_5.Port_8 Unit_5.Port_9}
probeenable -all
Enables all probes.
probeinfo
Return information about a probe
HDL languages only. Information can be accessed for any probe
identified by Certitude, whether it is enabled or not. A probe can be any
output port of the design.
The 'probeinfo' command is allowed in query mode during the activation
phase, the detection phase, the metric computation and the regression
phase.
Usage:
probeinfo -probe=<probe name>
probeinfo -probe=<probe name> [EXCLUSIVE OPTIONS]
EXCLUSIVE OPTIONS
Only one option can be specified for
EXCLUSIVE OPTIONS.
-unitname returns the name of the unit where the specified probe
is located.
probelist
Return a list of probes
Returns the list of probes that meet the specified criteria. If no option is
used with this command, all identified probes are printed, whether they
are enabled or not, or whether they are set or not. HDL languages only.
The 'probelist' command is allowed in query mode during the activation
phase, the detection phase, the metric computation and the regression
phase.
Usage:
probelist [OPTIONS]
OPTIONS
Multiple options can be selected for
OPTIONS.
-name= returns the list of probes that have the specified name.
Regular expressions are allowed.
propertydisable
Disable properties for the detection phase and the metric computation
When the FormalFlowAssertionBased configuration option is set to true,
Certitude uses testcases even if some of the properties did not pass. This
command disables the properties that did not pass, so that Certitude will
not use them during the detection phase and the metric computation.
The 'propertydisable' command is always allowed in query mode.
Usage:
propertydisable -propertyidlist=<property ID
list>
propertydisable -all
propertydisable -propertyidlist=<property ID
list>
Disable properties by the specified property IDs.
propertydisable -all
Disable all properties collected in the activation phase or the
regression phase.
propertyenable
Enable properties for the detection phase and the metric computation
When the FormalFlowAssertionBased configuration option is set to true,
Certitude will not use the properties with the 'enable' field as false. This
command enables the properties. Furthermore, properties with the
'activationstatus' field as 'Passed' will be used for the detection phase and
the metric computation.
The 'propertyenable' command is always allowed in query mode.
Usage:
propertyenable -propertyidlist=<property ID list>
propertyenable -all
propertyenable -propertyidlist=<property ID
list>
Enable properties by the specified property IDs.
propertyenable -all
Enable all properties collected in the activation phase or the
regression phase.
propertyinfo
Return information about a property
Returns the available information about the specified property.
The 'propertyinfo' command is always allowed in query mode.
Usage:
propertyinfo -propertyid=<property ID> [-name] [-
testcasename] [-type] [-enable] [-
activationstatus] [-regressionstatus] [-runtime]
[-activatedfaults]
propertyinfo -propertyname=<property name> -
testcase=<testcase name> [-id] [-type] [-enable]
[-activationstatus] [-regressionstatus] [-
runtime] [-activatedfaults]
propertylist
Return a list of property IDs
Returns the list of property IDs that meet the specified criteria. If no
option is used with this command, all property IDs are printed.
The 'propertylist' command is always allowed in query mode.
Usage:
propertylist
propertylist [OPTIONS]
OPTIONS
Multiple options can be selected for
OPTIONS.
-type= returns the list of property IDs with the specified property
type (assertion | assumption | cover).
qualify
Specify files to be qualified
This command specifies how Verilog/SystemVerilog source files are
instrumented. It is only available in the file containing the list of source
files (certitude_hdl_files.cer by default).
The qualify command does not affect files found through the
analyzeverilog -v/-y options as these files are never qualified.
This command can be used multiple times to specify different options for
the same file. All specified options are effective. If a conflict exists,
options specified last have priority over preceding options.
Each qualify command affects all analyzeverilog commands specified
and the relative order is irrelevant.
This command cannot be used with the addverilog or addsystemverilog
commands.
Usage:
qualify -file=<file> -verilog [-ignore=<line
range>] [-noparse=<line range>] [-
noweakness=<line range>] [-
ignoreprobelist=<ignore probe list>] [-FF=<list
of file list files (path prepended)>] [-f=<list
of file list files>]
qualify -filelist=<list of file names> -verilog
[-ignore=<line range>] [-noparse=<line range>] [-
noweakness=<line range>] [-
ignoreprobelist=<ignore probe list>]
qualify -dir=<list of directory names> -verilog
[-ignore=<line range>] [-noparse=<line range>] [-
noweakness=<line range>] [-
ignoreprobelist=<ignore probe list>]
Wildcards are supported for the name of units, with '?' to match
any character one time and '*' to match any character multiple
times. For example, the following command will qualify
work.top, tech_lib.mCntrl, and all units matching 'tech_lib.mA*'.
qualify -verilog -unitlist=[list work.top tech_lib.mCntrl
tech_lib.mA*]
If the -ignoreprobelist option is used, all the probes in the file will
be considered, except the probes specified in the list.
referencesimulations
Run reference simulations on detection instrumented code
Usage:
referencesimulations [-verbose] [-nocompile]
referencesimulations -testcaselist=<testcases
list> [-verbose] [-nocompile]
referencesimulations -compile [-verbose]
regression
Run testcases on non instrumented code
This command is used in order to run a normal regression (on non
instrumented design code) with Certitude. It can be used at any moment
during the qualification, including before the model phase. When no
testcase list is specified, this command runs all the testcases included in
the certitude_testcases.cer file with the addtestcase command.
This command can be used with the traditional (non Certitude)
compilation and execution scripts. For this, two configuration options
must be set: RegressionCompileScript and RegressionExecuteScript.
The 'regression' command is not allowed in query mode.
Usage:
regression [-propertyidlist=<property id list>]
[-verbose] [-nocompile]
regression -testcaselist=<testcases list> [-
verbose] [-nocompile]
regression -compile [-verbose]
regression [-propertyidlist=<property id
list>] [-verbose] [-nocompile]
Runs the regression for the specified property IDs, in verbose
mode and without prompting for user confirmation.
regression -testcaselist=<testcases list> [-
verbose] [-nocompile]
Runs the regression for the specified testcases, in verbose mode
and without prompting for user confirmation.
regression -compile [-verbose]
repeatsimulation
Run the same simulation for a number of times
This command checks the stability of the qualification. A simulation,
with a random testcase or with a specified testcase, is run for a specified
number of times. When the testcase passes or fails, each simulation is
compared to the others and to the data stored in the database:
- When running on activation code, the list of faults activated by the
testcase is compared.
- When running on detection code, either the signature (if no faults are
enabled through -fault=) or the propagation information (if a fault is
enabled through -fault=) is compared - HDL languages only.
If the list of the activated faults or the propagation information is not the
same for all the simulations with the testcase passing or failing, then a
message indicates that there is an unstability that can make qualification
results unreliable.
The command also returns the number of simulations that return a fail
result, and the number of simulations that return an error.
The 'repeatsimulation' command is not allowed in query mode.
Usage:
repeatsimulation -activation -count=<number of
times to run the simulation> [-testcase=<testcase
name>] [-verbose] [-nocompile]
repeatsimulation -detection -count=<number of
times to run the simulation> [-testcase=<testcase
name>] [-fault=<fault ID>] [-verbose] [-
nocompile]
repeatsimulation -noinstrumentation -
count=<number of times to run the simulation> [-
report
Generates an HTML report or a text report according to the value of the
ReportFormat configuration option
Generates a report overwrites the previous one.
The 'report' command is allowed in query mode during the activation
phase, the detection phase, the metric computation and the regression
phase.
Usage:
report [-dir=<directory>] [-verbose] [-nosource]
[-faultlist=<faults ID>] [-sameconfig] [-
forcemodeldata]
reset
Reset Certitude database
Resets Certitude database. All results are reset except information that
point to previously Non-Detected faults: the detection will be run on
previously Non-Detected faults first.
The 'reset' command is not allowed in query mode.
Usage:
reset -model [-noquestion]
reset -activation [-noquestion]
reset -detection [-noquestion]
reset -metric [-noquestion]
resetconfig
Reset the configuration option to default value
This command is used for resetting the specified configuration option to
the default value. A configuration option must be specified with this
command. Default values of every configuration option can be found in
the configuration options documentation.
For example:
resetconfig -MaxJobsInParallel
Sets the MaxJobsInParallel configuration option to 1, which is the default
value for this option.
The 'resetconfig' command is always allowed in query mode.
resetfault
Reset the detection results for a list of faults
The detection results for the specified list of faults are reset, which means
that those faults will receive the status: NotYetQualified.
The 'resetfault' command is not allowed in query mode.
Usage:
resetfault -faultlist=<faults list>
resetfaultpropertyidpair
Reset the detection results for the specified list of fault-property ID pairs
When the FormalFlowAssertionBased configuration option is set to true,
this command can be used to reset the detection results for the specified
list of fault-property ID pairs.
The 'resetfaultpropertyidpair' command is always allowed in query mode.
Usage:
resetfaultpropertyidpair -faultlist=<list of
fault IDs> [-propertyidlist=<property ID list>]
resetfaultpropertyidpair -
faultpropertyidpairlist=<list of { fault ID {
list of property ids } }>
resetfaultpropertyidpair -faultlist=<list of
fault IDs> [-propertyidlist=<property ID
list>]
Resets the detection results of the specified properties (-
propertyidlist) for the given faults (-faultlist).
resetfaultpropertyidpair -
faultpropertyidpairlist=<list of { fault ID
{ list of property ids } }>
Resets the detection results for the specified list of fault-property
ID pairs. Possible syntaxes for the lists are as follows:
1) resetfaultpropertyidpair - faultpropertyidpairlist=[list [list 8
[list property_id1 propertyid_2]]]
2) resetfaultpropertyidpair {-faultpropertyidpairlist={8 {
property_id1 propertyid_2}}}
resetfaulttestcasepair
Reset the detection results for a list of fault-testcase pairs
The detection results for the specified list of fault-testcase pairs are reset.
This can change the fault status in several possible ways.
The 'resetfaulttestcasepair' command is not allowed in query mode.
Usage:
resetfaulttestcasepair -
faulttestcasepairlist=<list of { fault ID { list
of testcase names } }>
resetfaulttestcasepair -simulationlist=<list of
simulations>
resetfaulttestcasepair -
faulttestcasepairlist=<list of { fault ID {
list of testcase names } }>
A list of the fault-testcase pairs can be specified. Here are
possible syntax for those lists:
resetfaulttestcasepair -faulttestcasepairlist=[list [list 8 [list
testcase1 testcase2]]]
or
resetfaulttestcasepair {-faulttestcasepairlist={8 {testcase1
testcase2}}}
resetfaulttestcasepair -
simulationlist=<list of simulations>
A list of the fault-testcase pairs can be specified. The parameters
of the simulationlist command can be used.
Examples:
resetproperty
Reset data for the specified property
When the FormalFlowAssertionBased configuration option is set to true,
this command can be used to reset data for these specified properties. To
retrieve the properties that have been reset, execute the 'activation -
skipknownproperties' command.
The 'resetproperty' command is always allowed in query mode.
Usage:
resetproperty -propertyidlist=<property ID list>
resetproperty -propertyidlist=<property ID
list>
Resets the specified list of properties. Legal syntaxes are:
1) resetproperty - propertyidlist=[list property_id1 property_id2]
2) resetproperty {-propertyidlist=property_id1 propertyid_2}
resettestcase
Reset data for the specified testcase
Resets data for the specified testcase (this command is used when the
testcase has changed). This data is not actually reset until the next fault
activation analysis. The effect is to mark this testcase as having to be
rerun for activation.
The 'resettestcase' command is not allowed in query mode.
Usage:
resettestcase -testcaselist=<testcases list>
resultsmerge
Merge results of several databases
Merges qualification results of the specified Certitude databases and
stores the merged view into a Certitude database. The resulting database
can be queried and used to generate a report. The merged database cannot
be used to start or resume a qualification. After merging, Certitude
modifies the value of the -DataBaseDirectory configuration option to
point to the resulting database.
This command can be launched from an empty directory that does not
contain any Certitude databases.
The merging operation is internally divided into phases, each phase being
the merge of two databases: the result of the previous merging phase (or
the first database of the -dblist list) and the next database from the -dblist
list.
Usage:
resultsmerge -dblist=<Directory name> [-
mergetodb=<Directory name>] [-verbose] [-
noquestion]
noquestion]
-dblist=<list of DB> specifies a list of directory names. Each
name points to an existing Certitude database or Certitude
database dump. The list can contain the database currently used
by Certitude. The first specified database appears first in the
hierarchy view of Certitude report. When the resultsmerge
command is used in the context of SoC or sub-system with
different blocks in different hierarchy levels, it is recommended to
specify the highest hierarchy level as the first in the list of
databases.
retrysimulation
Rerun one or more simulations
The specified simulations are run again and they receive a new
simulation ID. If the simulation fails, Certitude tries to restart it a number
of times specified in the 'ExecutionMaxAttempt' configuration option.
The result of a retried simulation is NOT included in Certitude results
DataBase.
The 'retrysimulation' command is not allowed in query mode.
Usage:
retrysimulation -simulationlist=<simulations
list> [-verbose]
retrysimulation -
simulationlist=<simulations list> [-verbose]
The -simulationlist= option is mandatory, for specifying the list of
ID of the simulations that must be rerun. The verbose mode can
be set on with the -verbose option.
saveconfig
Save the configuration options that have been modified
Save the configuration options that have been modified by the setconfig
command, where the setconfig command was specified in the
certitude_config.cer file or on the Certitude shell.
The 'saveconfig' command is always allowed in query mode.
Usage:
saveconfig [-file=<config file name>]
setconfig
Set configuration options
The specified configuration option is set to the specified value. A
configuration option name must be specified with this command. The
syntax for this command is:
setconfig -ConfigurationOptionName=<configuration_option_value>.
For example:
setconfig -MaxJobsInParallel=5
This sets the MaxJobsInParallel configuration option to the value 5.
setconfig -MaxNonDetected=10
This sets the MaxNonDetected configuration option to the value 10.
The 'setconfig' command is always allowed in query mode.
setmode
Set a mode to preset configuration options
Specify the mode to preset specified configuration options. Users can
change those configuration options later.
The 'setmode' command is not allowed in query mode.
Usage:
setmode -mode=<mode> [-verbose]
OutputPortConnectionBitStuckAt0
OutputPortConnectionBitStuckAt1]", "setconfig -
ConnectivityBitInstrumentationSignals=*", "setconfig -
NetlistQualification=true", "setconfig -
ConnectivityInputOnNonQualifiedBlocks=true", "setconfig -
IdentifyLatch=false", "setconfig -
IdentifyClockAndResetPort=false", "setconfig -
ReportPreGenerationInModel=false", "setconfig -
OptimizerExtendedConesAnalysis=false", "setconfig -
OptimizerOperationsDuringDetection=", "setconfig -
ReportFormat=text", and "setconfig -
NativeRuntimeOptimizedStuckAtFaults=true".
setprobe
Set or unset a probe for fault propagation
HDL languages only. When a probe is set for propagation, Certitude
considers that the fault is propagated when a difference is observed at this
probe. A probe setting is therefore necessary for fault propagation. By
default, all TopName output ports are set for propagation, and the
setprobe command can then be used for setting additional probes.
When the propagation settings are changed with this command, it is
necessary to use the command 'detect -updateresults' in order to update
the faults status.
The setprobe command is also used for un-setting previously set probes.
The 'setprobe' command is not allowed in query mode.
Usage:
setprobe -probelist=<probe names> -
setforpropagation=<true|false>
signoff
Check whether the design is well verified according to accurate
objectives
The signoff command executes the following two commands
automatically:
- detect -mustfix
- computemetric -signoff
For details about these two commands, refer to the -help descriptions.
The 'signoff' command is not allowed in query mode.
Usage:
signoff [-marginoferror=<margin of error>] [-
verbose] [-algorithm=<algorithm>] [-nocompile] [-
noquestion] [-nosanitycheck]
simulationinfo
Return information about a simulation
Usage:
simulationinfo -simulation=<simulation ID>
simulationinfo -simulation=<simulation ID>
[EXCLUSIVE OPTIONS]
EXCLUSIVE OPTIONS
Only one option can be specified for
EXCLUSIVE OPTIONS.
simulationlist
Return a list of simulations
This command returns the list of simulation IDs for all current and past
simulations from the Certitude database. Information about the last 5000
simulations is stored in the database.
The 'simulationlist' command is allowed in query mode during the
activation phase, the detection phase, the metric computation and the
regression phase.
Usage:
simulationlist -lastsimulationid
simulationlist [OPTIONS]
simulationlist -lastsimulationid
Prints the ID of the last simulation.
OPTIONS
Multiple options can be selected for
OPTIONS.
status
Give information about the current status of the qualification run
Usage:
status
status -phase=<phase>
status -phase=<phase> [-starttime] [-endtime] [-
completed]
status -runningsimulation
status -faultlist=<list of fault IDs>
status -optimizer [-blackboxes]
status -dumpedwaves
status
Returns information about the current status of the qualification
run.
status -phase=<phase>
Returns all the available status information about the specified
phase.
status -phase=<phase> [-starttime] [-
endtime] [-completed]
Returns information about the specified qualification phase. This
command can return only the phase start time (-starttime), the end
time (-endtime), or whether the phase has completed (-
completed).
status -runningsimulation
Returns information about the currently running simulations
(used after a stop or in query mode when the detection phase is
running). The command (i.e. activate, computemetric, detect,
testscript, dumpwaves, optimize, checkdetection,
referencesimulations, regression, repeatsimulation or
retrysimulation) launching the simulation is shown in the first
column. 'waves' indicates that the simulation is dumping
waveforms.
status -faultlist=<list of fault IDs>
Prints the status of the specified list of faults.
status -optimizer [-blackboxes]
Returns information about the design structure and elaboration.
stop
Stop the currently running phase or simulation.
Makes Certitude kill all the running simulations.
The 'stop' command is always allowed in query mode.
subunitinfo
Return subunit information
By default this command returns all available information about the
specified unit. Certitude hierarchically structures the design into units,
subunits, blocks, statements and faults.
The 'subunitinfo' command is always allowed in query mode.
Usage:
subunitinfo -subunitname=<subunit name>
subunitinfo -subunitname=<subunit name>
[EXCLUSIVE OPTIONS]
EXCLUSIVE OPTIONS
Only one option can be specified for
EXCLUSIVE OPTIONS.
-file returns the name of the file that contains the specified
subunit.
subunitlist
Return the list of subunit
By default this command returns the list of all subunits. Certitude
hierarchically structures the design into units, subunits, blocks,
statements and faults.
The 'subunitlist' command is always allowed in query mode.
Usage:
subunitlist [-type=<subunit type>] [-file=<file>] [-parent=<parent
name>]
testcasedisable
Disable a list of testcases
Usage:
testcasedisable -testcaselist=<list of testcase
names>
testcasedisable -all
testcasedisable -all
Disables all testcases.
testcaseenable
Enable a list of testcases
Usage:
testcaseenable -testcaselist=<list of testcase
names>
testcaseenable -all
testcaseenable -all
Enables all testcases.
testcasegroupinfo
Return information about testcase groups
The testcase groups are created by the user with the option -
testcasegroup= of the addtestcase command, used in the
certitude_testcases.cer file.
The 'testcasegroupinfo' command is always allowed in query mode.
Usage:
testcasegroupinfo -testcasegroup=<group name of
the testcase>
testcasegroupinfo -testcasegroup=<group name of
the testcase> -testcaselist
testcasegrouplist
List all testcase group names
The testcase groups are created by the user with the option -
testcasegroup= of the addtestcase command, used in the
certitude_testcases.cer file.
The 'testcasegrouplist' command is always allowed in query mode.
testcaseinfo
Return the testcase information
Returns information about the specified testcase. This command can be
used for all the testcases listed in the certitude_tescases.cer file.
The 'testcaseinfo' command is always allowed in query mode.
Usage:
testcaseinfo -testcase=<testcase name>
testcaseinfo -testcaseid=<testcase id>
testcaseinfo -testcase=<testcase name> [EXCLUSIVE
OPTIONS]
| -testcaseid=<testcase id>
[EXCLUSIVE OPTIONS]
EXCLUSIVE OPTIONS
Only one option can be specified for
EXCLUSIVE OPTIONS.
-base returns true or false, whether this testcase is the first testcase
in a group or not.
testcaselist
Return the list of testcases
Usage:
testcaselist [OPTIONS]
OPTIONS
Multiple options can be selected for
OPTIONS.
-idlist returns the list of testcase ids instead of the list of testcase
names.
-base= returns the list of testcases that are the first testcase in each
group (-base=true) or the list of testcases that are not the first
testcase in each group (-base=false).
-name= returns the list of testcases that have the specified name.
Regular expressions are allowed.
testscript
Test whether a test can pass/fail in the activation or detection phase
This command checks the environment.
When the testcase passes or fails, the simulation data is compared to the
data stored in the database:
In the activation phase:
- The testcase and the current waveform dumping simulation must pass.
- The list of the faults activated by the testcase during activation
reference and current waveform dumping simulations are compared.
In the detection phase:
- If no faults are enabled, the testcase in activation and the current
waveform dumping simulation must pass.
- Detection and current waveform dumping simulations must have the
same testcase status whether it is pass or fail.
- If no faults are enabled, the signature of the detection reference
simulation and the signature of the current waveform dumping
simulation are compared.
- If a fault is enabled, the propagation information of the detection
simulation and the propagation information of the current waveform
dumping simulation are compared.
The current simulation data and the data stored in the database are
supposed to be identical. If a result differs, an error indicates that an
inconsistent simulation status or behavior exists.
The 'testscript' command is allowed in query mode during the activation
phase and the detection phase.
Usage:
testscript [-testcaselist=<testcase names>]
[EXCLUSIVE OPTIONS]
| [-propertyidlist=<property id list>]
[EXCLUSIVE OPTIONS]
| [-testcaseidlist=<testcase ids>]
[EXCLUSIVE OPTIONS]
EXCLUSIVE OPTIONS
Only one option can be specified for
EXCLUSIVE OPTIONS.
unitinfo
Return information about a unit
Return all available information for the specified unit. Certitude
hierarchically structures the design into units, subunits, blocks,
statements and faults.
The 'unitinfo' command is always allowed in query mode.
Usage:
unitinfo -unitname=<unit name>
unitinfo -unitname=<unit name> [EXCLUSIVE
OPTIONS]
EXCLUSIVE OPTIONS
Only one option can be specified for
EXCLUSIVE OPTIONS.
-file returns the name of the file that contains the specified unit.
-line returns the line of the file that contains the specified unit.
unitlist
Return a list of units
Returns a list of all units in the design.
The 'unitlist' command is always allowed in query mode.
Usage:
unitlist [OPTIONS]
OPTIONS
Multiple options can be selected for
OPTIONS.
userdataadd
Add user data to a testcase, a fault, a file, a probe or Certitude DB
This is used to keep user information linked to a specified Certitude
object, for instance as a reminder about interpretations and/or related user
actions. This user information can be then removed via the
userdataremove command and accessed via the faultinfo, testcaseinfo,
fileinfo, probeinfo or userdatainfo commands.
The 'userdataadd' command is always allowed in query mode.
Usage:
userdataadd -userdatakey=<key> -
userdatavalue=<value>
userdataadd -faultlist=<list of fault IDs> -
userdatakey=<key> -userdatavalue=<value>
userdataadd -testcaselist=<list of testcase
names> -userdatakey=<key> -userdatavalue=<value>
userdataadd -filelist=<list of file names> -
userdatakey=<key> -userdatavalue=<value>
userdataadd -probelist=<list of probe names> -
userdatakey=<key> -userdatavalue=<value>
userdataadd -userdatakey=<key> -
userdatavalue=<value>
If no object is specified, the user data are added to Certitude
DataBase.
Two correct syntax for using -userdatavalue option with the string
'to be analysed' are:
1) -userdatavalue=[list to be analysed]
2) {-userdatavalue='to be analysed'}
userdataadd -faultlist=<list of fault IDs> -
userdatakey=<key> -userdatavalue=<value>
Link to the specified fault(s) ID two character strings. The -
userdatakey is a keyword that is used for creating categories of
user information. The key can be any string of characters but it is
recommended to keep it a single word. The userdatavalue can be
any string of characters describing the characteristics of the fault.
If information already exist for the specified fault with the
specified key, the added information overwrites the previous one.
Two correct syntax for using -userdatavalue option with the string
'to be analysed' are:
1) -userdatavalue=[list to be analysed]
2) {-userdatavalue='to be analysed'}
userdataadd -testcaselist=<list of testcase
names> -userdatakey=<key> -
userdatavalue=<value>
Link to the specified testcase(s) two character strings. The -
userdatakey is a keyword that is used for creating categories of
user information. The key can be any string of characters but it is
recommended to keep it a single word. The userdatavalue can be
any string of characters describing the characteristics of the fault.
If information already exist for the specified fault with the
specified key, the added information overwrites the previous one.
Two correct syntax for using -userdatavalue option with the string
'to be analysed' are:
1) -userdatavalue=[list to be analysed]
2) {-userdatavalue='to be analysed'}
userdataadd -filelist=<list of file names> -
userdatakey=<key> -userdatavalue=<value>
userdatainfo
Return specified user data
This command returns the list of all existing user data keys for Certitude
database, faults, testcases, files or probes. It can also return the value of
specified user data key only for user data linked to Certitude database (-
userdatakey=). For retrieving the value of a specific datakey for another
object, like a testcase for instance, the command testcaseinfo -
testcase=<testcase name> -userdatakey=<key> must be used.
The 'userdatainfo' command is always allowed in query mode.
Usage:
userdatainfo
userdatainfo -faultkeylist
userdatainfo -testcasekeylist
userdatainfo -filekeylist
userdatainfo -probekeylist
userdatainfo -keylist
userdatainfo -userdatakey=<key>
userdatainfo
Returns specified user data.
userdatainfo -faultkeylist
Returns the list of existing user data keys linked to faults.
userdatainfo -testcasekeylist
Returns the list of existing user data keys linked to testcases.
userdatainfo -filekeylist
userdataremove
Remove user data on faults, testcases, probes, files or Certitude database
Usage:
userdataremove -userdatakey=<key>
userdataremove -faultlist=<list of fault IDs> [-
userdatakey=<key>]
userdataremove -testcaselist=<list of testcase
names> [-userdatakey=<key>]
userdataremove -filelist=<list of file names> [-
userdatakey=<key>]
userdataremove -probelist=<list of probe names>
[-userdatakey=<key>]
userdataremove -userdatakey=<key>
Removes user data linked to Certitude database: both the
specified key and the value associated with the specified key.
userdataremove -faultlist=<list of fault
IDs> [-userdatakey=<key>]
Removes user data linked to the specified list of faults: both the
specified key and the value associated with the specified key.
userdataremove -testcaselist=<list of
testcase names> [-userdatakey=<key>]
Removes user data linked to the specified list of testcases: both
the specified key and the value associated with the specified key.
vdefine
Define Verilog macros in the file containing the list of source files
Verilog only. This command is only available in the file containing the
list of source files (certitude_hdl_files.cer by default). The vdefine
commands is cumulative.
Usage:
vdefine -name=<macro name> [-value=<macro value>]
[-optimizeronly] [-simulationonly]
verdiabort
Abort current attempt in building connection to Verdi
If connection between Certitude and Verdi is established, this command
will not have any effects on the connection. This command will not close
or kill an opened Verdi.
The 'verdiabort' command is always allowed in query mode.
verdicommand
Run a Verdi Tcl command from the Certitude shell
Before using the verdi* commands, the VerdiInitCommand configuration
option should be set with the appropriate command, otherwise the Verdi
platform will be started up without a design loaded.
The appropriate command could also be found in a specific script named
certitude_novas.cmd if the setupCer utility has been used with the Verdi
platform version 2010.01, or if it has been previously created by hand.
The command contained in the VerdiInitCommand configuration option
or in the script must contain at least the following settings:
where -top is the module top for the design imported into the Verdi
platform and -path is the path to the design.
The 'verdicommand' command is always allowed in query mode.
Usage:
verdicommand -command=<command>
verdicommand -command=<command>
A valid Verdi Tcl command must be specified.
verdidumpridb
Dump a ridb file with the original source code
SystemC language only. This command dumps a ridb file with the non-
instrumented code. This command should be used after the model phase.
The 'verdidumpridb' command is not allowed in query mode.
Usage:
verdidumpridb [-testcase=<testcase name>] [-
verbose] [-force]
verdidumpridb [-testcaseid=<testcase id>] [-
verbose] [-force]
verdisourcedebug
Highlight a fault in the Verdi source code pane from the Certitude shell
This command makes the Verdi platform display the source code where
the specified fault is located, and highlight it.
Before using the verdi* commands, the VerdiInitCommand configuration
option should be set with the appropriate command, otherwise the Verdi
platform will be started up without a loaded design.
The appropriate command can also be found in a specific script named
certitude_novas.cmd if the setupCer utility has been used with the Verdi
platform, or if it has been manually created previously.
The command contained in the VerdiInitCommand configuration option
or in the script must contain at least the following settings:
where -top is the module top for the design imported into the Verdi
platform and -path is the path to the design.
The 'verdisourcedebug' command is allowed in query mode during the
activation phase, the detection phase, the metric computation and the
regression phase.
Usage:
verdisourcedebug -fault=<fault ID> [-
testcase=<testcase name>]
verdistart
Start the Verdi platform from the Certitude shell
The verdistart command connects to the running Verdi platform by
searching for the default log directory located under the current working
directory. If a running Verdi platform does not exist under the current
working directory, Certitude starts a new Verdi platform from a random
free port on a local machine.
Before using the verdi* commands, the VerdiScript option can be set to
specify the user customized Verdi script. When the VerdiScript option is
set, Certitude launches the Verdi platform per the specified script with
Verdi's command option -serverPort 0.
Before using the verdi* commands, the VerdiLogDir option can be set to
specify the log directory path for the running Verdi platform. When the
VerdiLogDir option is set, the verdi* commands will search for the
specified Verdi log directory and connect to the running Verdi platform.
If a running Verdi platform does not exist, Certitude will launch and
connect a new Verdi platform.
Before using the verdi* commands, the VerdiInitCommand configuration
option can be set with the appropriate command, otherwise the Verdi
platform will be started up without a design loaded.
The appropriate command can also be found in a specific script named
certitude_novas.cmd if the setupCer utility has been used with the Verdi
platform, or if it has been previously created by hand.
The command contained in the VerdiInitCommand configuration option
or in the script must contain at least the following settings:
where -top is the module top for the design imported into the Verdi
platform and -path is the path to the design.
Usage:
verdistart
verdistart -port=<port number> [-host=<host
name>]
verdistart -status
verdistart -verdilogdir=<verdi log directory
path>
verdistart
Starts the Verdi platform from the Certitude shell.
verdistart -port=<port number> [-host=<host
name>]
If the port number is available, specify the port number with the -
port= option to run the Verdi platform on the batch system. The
host computer name can also be specified with the -host= option.
verdistart -status
The -status option returns 1 if a Verdi session is running, and 0 if
no Verdi session is found.
verdistart -verdilogdir=<verdi log directory
path>
Specify the location of the Verdi log directory to connect a
running Verdi platform on the batch system.
verdiwavedebug
Make the Verdi platform display waveforms for comparison
Launch the Verdi platform to display waveforms for comparison and
optionally show the related design source code
This command launches the Verdi platform and displays two waveform
windows, one with results from the specified testcase run with the
specified fault, and one with results from the specified testcase run with
no fault. For detected (D) and non-detected (ND) faults, the inputs to the
Certitude design top and probe signals set for propagation are displayed
and differences between the faulty and reference simulations are
highlighted. For non-propagated (NP) faults, all of these signals in one of
the instances containing the fault are displayed and differences between
the faulty and reference simulations are highlighted.
If the VerdiInitCommand configuration option is set, the Verdi platform
will also load and display the related design source code. If the setupCer
utility is used to create the Certitude setup files, then the configuration
setting can be found in the file called certitude_novas.cmd.
The command contained in the VerdiInitCommand configuration option
or in the script must contain at least the following settings:
where <top> is the module top for the design imported into the Verdi
platform and <path> is the path to the compiled design files.
The 'verdiwavedebug' command is allowed in query mode during the
activation phase, the detection phase, the metric computation and the
regression phase.
Usage:
EXCLUSIVE OPTIONS
Only one option can be specified for
EXCLUSIVE OPTIONS.
version
Return version information for Certitude
Returns the version and the revision number of Certitude
The 'version' command is always allowed in query mode.
Usage:
version [-revision]
version -patchlevel
version -bitwidth
version [-revision]
Returns only the revision number of Certitude.
version -patchlevel
Return the patch number of Certitude if any.
version -bitwidth
Returns 32 or 64, depending on the bitwidth version of Certitude
(whatever the bitwidth of the host computer).
viewreport
Open the interactive version of the HTML report
In the interactive version of the HTML report, faults can be disabled or
enabled directly from the fault detail window of the report. It is also
possible to add comments to faults directly from the fault detail window.
Before using the viewreport command, an HTML report must be
generated with the report command.
The interactive viewing can be used only when Certitude is running with
a result database that matches the HTML report information. It is better
not to use the report viewer with an out-of-date HTML report.
The 'viewreport' command is allowed in query mode during the
activation phase, the lite model phase, the detection phase, the metric
computation and the regression phase.
Usage:
viewreport
viewreport
Opens the interactive version of the HTML report.
vinclude
Name in the source files list include files to be instrumented or not
Usage:
vinclude -includelist=<include name> [-
instrument=<instrument value>] [-ignore=<not
instrumented lines range>] [-noparse=<not parsed
lines range>] [-noweakness=<not computed for
weakness lines range>]
vundefine
Delete Verilog macro definitions (including those in Verilog source files)
Verilog only. This command is only available in the file containing the
list of source files (certitude_hdl_files.cer by default).
Usage:
vundefine -all
vundefine -name=<macro name> [-optimizeronly] [-
simulationonly]
vundefine -all
Deletes all the Verilog macro definitions.
vundefine -name=<macro name> [-
optimizeronly] [-simulationonly]
Deletes the specified Verilog macro definitions.
-optimizeronly specifies that the macro is only deleted for the
Verilog parser of the optimizer.
-simulationonly specifies that the macro is only deleted for the
Verilog parser of the simulation.
Environment Variables
Here are four examples for environment variable syntax, one for each of the
following script languages: Csh, Sh, Tcl, and Perl.
Each example shows how to define the variable. However, when the variable is
defined by Certitude, this step is usually not necessary.
The second part of the example is a test to check whether the variable has been
defined or not. This test is commonly used when writing execution scripts that
should be usable outside of Certitude.
• Csh syntax
#!/bin/csh
exit 0
• Sh syntax
#!/bin/sh
exit 0
• Tcl syntax
#!/usr/bin/tclsh
• Perl syntax
#!/usr/bin/perl
exit 0
CER_BATCH_TASK
This variable specifies the tasks that are allowed to be performed by the current
job.
The value includes Optimizer-cone, Optimizer-dist, Optimizer-elab,
Optimizer-equiv, Optimizer-ident, Compilation, and Simulation.
• Optimizer-cone: Extraction of the fault cones performed by the optimizer.
• Optimizer-dist: Computation of the fault to output distance performed by
the optimizer.
• Optimizer-elab: Elaboration performed by the optimizer.
• Optimizer-equiv: Search of the equivalent faults performed by the
optimizer.
• Optimizer-ident: Search of the identical faults performed by the optimizer.
• Compilation: Execute compilation.
• Simulation: Execute simulation.
CER_C_CER_PACKAGE_FILE
This variable defines the full filename (i.e. path/filename) of the package file (i.e.
the C file where Certitude packages are added) to be compiled.
• path is the value of the InstrumentationDirectory configuration
option
• filename is the value of the CCerPackageFile configuration option
When the package file (i.e. the CCerPackageFile option) is not specified, the
Certitude packages will be added to the last compiled user file that is the last file
in the certitude_hdl_files.cer file with the -qualify option, such as:
addc -file=<first compiled user file> -qualify
addc -file=<second compiled user file> -qualify
CER_COMMAND
This variable contains the current command. Available values include
activate, computemetric, detect, testscript, dumpwaves, optimize,
referencesimulations, regression, checkdetection,
repeatsimulation, and retrysimulation.
CER_CPP_CER_PACKAGE_FILE
This variable defines the full filename (i.e. path/filename) of the package file (i.e.
the C++ file where Certitude packages are added) to be compiled.
• path is the value of the InstrumentationDirectory configuration
option
• filename is the value of the CppCerPackageFile configuration option
When the package file (i.e. the CppCerPackageFile option) is not specified,
the Certitude packages will be added to the last compiled user file that is the last
file in the certitude_hdl_files.cer file with the -qualify option, such as:
addcpp -file=<first compiled user file> -qualify
addcpp -file=<second compiled user file> -qualify
CER_EMBEDDED_WAVE_DUMP
This variable is set only when a waveform is being dumped using the embedded
dumper.
CER_FAULT_ID
This variable contains the current unique fault identification number. In
Certitude, each fault has an ID that is used as a name for the fault for all Certitude
operations and database queries on faults. Operations on faults can be carried out
from scripts using this variable, and it can also help check that faults are
executed. When no fault has been executed, the value of this variable is 0.
CER_IFV_SCRIPT
This variable points to the path of an IFV Tcl script file in the Certitude package.
This Tcl script helps Certitude execute fault-setting related actions in the IFV
Example of Use
Use it with the +tcl+ option in the ifv command:
ifv +tcl+${CER_IFV_SCRIPT} +ifv+org_ifv.tcl
CER_INSTRUMENT_DIR
This variable specifies the path to the directory where instrumented files are
copied for compilation and execution.
This directory is defined by the configuration option
-InstrumentationDirectory. By default it contains the path to
tmpHDLFiles e.g.
/home/johannl/test/certitude/tmpHDLFiles
if certitude project is in directory
/home/johannl/test/certitude/
This variable can be utilized in the user's own compilation script to obtain the
path of the instrumented code easily.
CER_INSTRUMENTED_FILES
This variable defines the file name which is filled at the compilation stage with
the list of the instrumented files.
Example of Use
Use this variable in certitude_compile for example:
ncverilog -c tb.v -f ${CER_INSTRUMENTED_FILES}
CER_JG_SCRIPT
This variable points to the path of the JasperGold Tcl script file in the Certitude
package. This Tcl script helps Certitude execute fault-setting related actions in
the JasperGold environment. The CER_JG_SCRIPT variable is to be used in the
execution script.
Example of Use
Source the variable in the first line of JasperGold running script:
source $::env(CER_JG_SCRIPT)
CER_JOB_ID
This variable contains the current unique job identification number. In Certitude,
each job has a unique identifier. It is not to be confused with the unique
simulation identifier. In Certitude single execution mode, the simulation ID and
the job ID are identical, because there is one simulation for each job. However,
in Certitude partially persistent mode, the two identifiers can be different because
one job can control several simulations. If uniqueness has to be checked, it is
safer to use CER_SIMULATION_ID.
CER_MSIM_PLI
This variable contains all the appropriate simulator options, along with the paths
to the appropriate PLI that are necessary for the elaboration with ModelSim
simulators. This variable is to be used in the compilation script.
Example of Use
vsim $CER_MSIM_PLI ...
CER_NC_PLI
This variable contains all the appropriate simulator options, along with the paths
to the appropriate PLI that are necessary for the elaboration with NC simulators.
This variable is to be used in the compilation script.
Example of Use
ncelab $CER_NC_PLI...
CER_NC_VPI
This variable contains all the appropriate simulator options, along with the paths
to the appropriate VPI that are necessary for the elaboration with NC simulators.
It is recommended to use CER_NC_VPI over CER_NC_PLI when the design
includes SystemVerilog files. This variable is to be used in the compilation script.
Example of Use
ncVerilog $CER_NC_VPI...
CER_PACKAGE_FILE
This variable defines the full filename (i.e. path/filename) of the package file (i.e.
the VHDL file where Certitude packages are added) to be compiled.
• path is the value of the InstrumentationDirectory configuration
option
• filename is the value of the VhdlCerPackageFile configuration option
When the package file (i.e. the VhdlCerPackageFile option) is not specified,
the Certitude packages will be added to the first compiled user file that is the first
file in the certitude_hdl_files.cer file with the -qualify option, such as:
addvhdl -file=<first compiled user file> -qualify
addvhdl -file=<second compiled user file> -qualify
CER_PHASE
This variable contains the current phase. Available values include Activation,
Detection, Metric, Regression, and Optimizer. This variable is available
during compilations and simulations.
CER_SCENARIO_NAME
This variable defines the current scenario name. The name is the one provided by
the addscenario command in the certitude_testcases.cer setup file.
CER_SEED_VALUE
This variable defines the seed value. The value is the one provided by the
addseed command in the certitude_testcases.cer setup file.
CER_SIMULATION_ID
This variable contains the current unique simulation identification number. In
Certitude, each simulation has a unique identifier. It can be used, for example, to
check the reentrance of the tests. The variable provides insurance that each log is
unique.
CER_SIMULATION_RESULT
This variable contains a call to the script that starts the simulation results process
(CER_SIMU_RESULT can also be used). This variable is essential to Certitude use
because the simulation result process analyzes the simulation result and sets the
Certitude outcome from it. CER_SIMULATION_RESULT must be used in all
certitude_execute scripts.
This variable must be used with the -result= option that can receive Pass,
Fail, Abort, Retry, or UserDefine as values. As for the other two options, -
resultvalue= and -userdetectionreason=, they are optional. The -
resultvalue= option can be used for more elaborate processing and this
option can take a string. The -userdetectionreason= option takes a string
and can be used to add the reason indicating why a specific fault is detected. This
reason string can be obtained when querying from the jobinfo and faultinfo
commands.
Example of Use
if (pass)
$CER_SIMULATION_RESULT -result=Pass ;
else
$CER_SIMULATION_RESULT -result=Fail ;
CER_TESTCASE_GROUP
This variable contains the group name of the current testcase. The name is
provided by the user in the certitude_testcases.cer setup file with the
-testcasegroup option.
CER_TESTCASE_ID
This variable contains the current identification number of the testcase. This
number is actually the rank of the testcase in the certitude_testcases.cer list.
CER_TESTCASE_NAME
This variable contains the current testcase name. The name is the one provided
in the certitude_testcases.cer setup file. It is also the first parameter passed to
the execution script for the simulations. Sometimes, using the environment
variable is easier to catch this information.
When setting scenarios with the addscenario command, the value format of this
variable will contain the scenario name and a seed value if the running testcase
is derived from a scenario.
CER_THREAD_ID
This variable contains a unique thread ID for each used thread in a batch system.
When Certitude starts several simulations in parallel, each uses a thread. The
sanity check always has a thread ID 0. This variable can be used for identifying
threads in a script.
CER_VCS_PLI
This variable contains all the appropriate simulator options, along with the paths
to the appropriate PLI that are necessary for the elaboration with VCS simulators.
This variable is to be used in the compilation script.
Example of Use
vcs $CER_VCS_PLI ...
CER_VCS_VLOG_PLI
This variable contains all the appropriate simulator options, along with the paths
to the appropriate PLI that are necessary for the elaboration with VCS simulators.
Use this variable with designs that do not contain VHDL files.
This variable is to be used in the compilation script.
Example of Use
vcs $CER_VCS_VLOG_PLI ...
CER_WAVE_DUMP
This variable contains the current value of the wave dumping. When Certitude is
configured to automatically generate wave dumps for Non-Detected faults, this
variable has the value 0 for all faults except Non-Detected faults. When the status
of the fault is set to Non-Detected, the value is set to 1 and appropriate waves are
dumped.
This variable is set only when a waveform is being dumped without using the
embedded dumper.
CER_WAVE_DUMP_FILE_NAME
This variable contains the name of the current dump file. When waves are
dumped by Certitude, each dump file has a name that contains the testcase name
and the fault ID. The current file name can be checked with this variable.
CER_WAVE_DUMP_LEVEL
This variable contains the current value of the WaveDumpLevel configuration
option.
The value 0 means that all levels are dumped. The value 1 means that only the
top level (or the level defined as top for the qualification) is dumped. Values
starting from 2 and up mean that 2 (or more) levels are dumped, including the top
level.
CER_WAVE_USE_NOVAS_DEBUG
This variable contains the current value of the WaveUseNovasDebug
configuration option: 0 for false and 1 for true.
LD_LIBRARY_PATH
This environment variable is a resource for Unix and some Linux systems. It
contains paths of libraries that can be accessed dynamically. Every time
Certitude runs a compilation and runs a simulation, this variable is updated for
the Certitude specific libraries.
It usually does not have to be used in a script, except for example, when using
the Verdi system for dumping and viewing waveforms.
Example of Use
With VCS for example:
% setenv LD_LIBRARY_PATH \
$NOVAS_HOME/share/PLI/vcsd<version>_mhpi/<platform>
NOVAS_HOME
This variable points to the Verdi system installation directory. It is used whenever
the Verdi system is invoked from Certitude with the novas* commands or with
the interface commands in the HTML report viewer.
CER_C_VERBOSE
This variable is used for setting the level of verbosity when Certitude is used with
the C language. It is used for debug purposes. The existing levels are 0, 1, and 2,
from no verbose to maximum verbose. The usual setting in normal situations is
0, and 2 in debug situations.
CER_XLI_VERBOSE
This variable is used for setting the level of verbosity of the XLI. It is used for
debug purposes. The existing levels are 0, 1, 2, 3, and 4, from no verbose to
maximum verbose. The usual setting in normal situations is 0, and 2 in debug
situations.
CER_XLI_WATCHDOG_TIMEOUT
This variable defines the maximum CPU time that the Certitude watchdog will
wait for the simulation to report an advance in simulation time. If the simulation
time has not advanced within this time, then the watchdog will kill the
simulation.
The CPU time is monitored right after the simulated model is elaborated by the
simulator. The time to load the simulator into memory and launch the Unix
process is not included in this timeout.
The watchdog monitors whether the simulation time (the virtual time of the
simulated model) is advancing when the CPU time of the simulator is advancing.
This check is done by the XLI inside the simulator process.
The default setting is 120 seconds. If the simulation time has not advanced for
121 seconds, the simulation will be killed. A simulation killed by the watchdog
leads to a detected fault only if the execution script reports a failed simulation.
However, the watchdog only kills a Detection simulation with an active fault.
The watchdog never kills activation, reference, and non-instrumented
simulation.
CERTITUDE_CONFIG_CER
This variable is used for pointing to a configuration file that will be loaded after
the configuration file is located in the user's home directory, and before the
configuration file is located in the working directory. The existence of this file is
not mandatory.
CERTITUDE_LD_LIBRARY_PATH
CERTITUDE_LD_LIBRARY_PATH is used instead of LD_LIBRARY_PATH at
Certitude startup.
The user-specified LD_LIBRARY_PATH often points to low level C libraries
provided by third-party tools. Starting Certitude with C libraries that do not
correspond to the current operating system can lead it to a crash.
The user can specify appropriate paths in CERTITUDE_LD_LIBRARY_PATH. If
CERTITUDE_LD_LIBRARY_PATH is not specified, default system resources
will be used.
Setup Files
The name of the simulator must be configured. For example, when NCSim is to
be used:
setconfig -Simulator=ncsim
For C language
Certitude Optimizer must be turned off when the qualification is run with a
design written in the C language:
setconfig -OptimizerAnalysis=false
If lines 10, 12, 13, 14, 15, and 101 in the file engine_core.vhd must be removed
from consideration, the content of certitude_hdl_files.cer must be changed as
follows:
# HDL files list
addvhdl -file=/home/proj/vhdl/engine/engine_top.vhd \
-library=engine
addvhdl -file=/home/proj/vhdl/engine/engine_core.vhd \
-library=engine -qualify -ignore=(10,12..15,101)
addvhdl -file=/home/user/proj/engine/engine_conf.vhd \
-library=engine -qualify
Output ports can be selected or discarded as probes with the -probelist and -
ignoreprobelist options. By default, whether the -qualify option is used or
not with the TopName HDL file, only the top module (as defined is the TopName
configuration option) output ports are considered as probes, enabled for
observation and set for propagation calculation. Therefore, when a fault causes a
difference at the TopName output ports, the fault is propagated (with the default
settings). Moreover, when -qualify is used with an HDL file, all the output
ports in the file are considered as probes and can later be enabled (with the
probeenable command).
For Verilog/SystemVerilog files, a probe name is made from a unit name and a
port name: <unit name>.<port name>. A unit is a Verilog module. Here is an
example of the probe option syntax for Verilog:
# HDL files list
addverilog -file=/home/proj/verilog/engine/engine_top.v \
-probelist=[list module_1.port_1 module_1.port_3]
addverilog -file=/home/proj/verilog/engine/engine_core.v -qualify
addverilog -file=/home/user/proj/engine/engine_conf.v \
-qualify -ignoreprobelist= module_4.port_21
different type than by a testcase of the same type. This is for improving the
detection performance.
Another advantage of using groups is that the testcaselist command in
Certitude has a -testcasegroup option that helps use subsets of testcases.
NOTE: Some characters cannot be used in the testcase names with Certitude. If
these characters are detected in certitude_testcases.cer, Certitude
prints an error message, asking for the testcase names to be changed.
The characters are: '$', '"', '&', '?', '<', '>', '}', '{', '|', '\', '^', '~', and '`'.
The user-defined script certitude_compile must compile and elaborate upon the
instrumented design so that it is ready for simulation. When the compilation
succeeds, the script should return 0; otherwise it should return 1.
For VHDL designs, Certitude instrumentation is simulator dependent. It uses the
simulator libraries to proceed to copies of signals. This means that Certitude must
have access to the simulator libraries through the compilation script:
• The NCUTILS libraries for NCSim
• The modelsim_lib for Modelsim
• The Synopsys libraries for VCS
If the InstrumentOnTop configuration option is set to 1, Certitude changes its
behavior to write the instrumented source code to the same location as the
original source code. The sequence followed by Certitude is:
1. Move the original source file (by adding the extension .cercopy).
2. Write the instrumented source code into the original source file.
3. Complete the compilation step.
4. Move the backup copy (with the extension .cercopy) back to the original
source file.
If the InstrumentOnTop option is set to true, the paths in the original compile
script do not need to be modified.
For the NCSIM simulator, the elaboration command must be changed so that
Certitude can connect to the simulator via the simulator's C interface. For
example, if the elaboration step in NCSim is performed by the following
command:
ncelab -messages TB:beh
then to enable the simulator’s C interface, the -access c option must be added
to the ncelab command. For example:
ncelab -access c -messages TB:beh
HTML Report
Overview
The HTML report is generated with the report command, and can be viewed
with a web browser, or with its dedicated viewer with the viewreport command.
It contains all the qualification results, and is used for analysis of the results. The
HTML report displayed results are the same in both viewing modes (with a web
browser or with the report viewer). A few additional functional elements are
available when the viewer is used. Those elements are described in the Report
Viewer chapter. The following chapter describes the interface elements and
information found in both viewing modes, that is, when the report is used with a
web browser.
When the report is opened, it displays the status page.
Each fault class name in the table leads to a specific fault class page.
At the top of the page, there is a list of links for each fault status table, with the
number of faults contained in each fault status table.
These tables list each fault of the specified fault class and the specified status,
with the fault ID of the fault, distance to ouput for the fault, the type of fault,
severity rank for each Non-Detected fault (1 represents the most recommended
fault for debugging), the number of testcases usable for detection for this fault
(when relevant), the number of executed testcases for this fault (when relevant),
the source file name, and the line number where the fault is located.
Clicking on a fault ID displays the source code of the fault location.
When the cursor stays on a colored part, a tool tip appears with characteristics of
the fault(s) that have been injected at this location. This tool tip provides the fault
ID, the distance to output for the fault, the fault type, the fault status, the reason
for dropping if the fault is Dropped, the reason for disabling if the fault is
Disabled by Certitude, the number of executed testcases if the fault is Detected,
Non-Propagated (non Weak), or Non-Detected.
Clicking on the fault shows the corresponding instrumented source code and
additional details about the fault in the fault detail window.
Colors
A color convention guides the user towards the areas of interest. Every fault
injected in the design is shown in one of the following colors:
• Yellow - Non-Activated: the testbench has not activated the fault.
• Orange - Non-Propagated: the fault has been activated but no testcase has
propagated it.
• Green - Detected: at least one testcase has activated, propagated, and
detected the fault.
• Red - Non-Detected: the fault has been activated but no testcase has
detected it. This fault is propagated to the boundary of the DUV (or to a
probe set for propagation).
• Cyan - Disabled by User: the fault has been disabled by the user with the
faultdisable command.
• Blue - Disabled by Certitude: following configuration options settings, the
fault has been marked and disabled by Certitude.
• Light Grey - Dropped: the fault is discarded by Certitude because another
fault is Non-Detected in the same area of code, the same statement, or the
same functional block.
• Grey - Not Yet Qualified: the fault has not been fully processed yet. There
are two reasons why a fault may appear in grey: 1) The activation phase has
not been executed yet, or 2) The detection phase has not been executed yet
or has been interrupted before detection analysis has been completed for
this fault.
Figure: Example of Displaying the Bus Indices for Bit Instrumented Connectivity Faults
This window contains the following information for all injected faults:
• The fault ID
• The fault type
• The status of the fault, associated with a color
• The reason why a fault has been disabled by Certitude (blue) or dropped
(light grey)
• The test that detected the fault when the fault is Detected – green color
• The original source code
• The instrumented source code
• The user data linked to that fault if any (when the configuration is set
accordingly)
• The reason why a simulation is ended when it is not a normal termination
• The distance to output for the fault
There can be several different faults injected in the same portion of code. In this
case, a table appears in the fault detail window. Clicking on a line in this table
displays information for the selected injected fault.
According to the status of the selected fault, Detected, Non-Detected, or Non-
Propagated, the fault detail window shows additional information accordingly:
• The testcase(s) that activate and propagate the selected injected fault
• The probes which the injected fault propagated to - for Non-Detected faults
• The testcases which activate the injected fault - for Non-Detected faults
• The reference simulation time without a fault injected
• The severity rank for fault-test pairs, starting from 1 to N (1 represents the
most recommended fault-test pair for debugging)
When a Non-Propagated fault is selected, the fault detail window shows the list
of executed testcases.
When a fault has been partially qualified (only a part of the executable testcases
for this fault have been run), the fault detail window provides information on the
testcases that have been run and the ones that have not.
Testcases Page
Menu Bar: Testcases
This page contains complete statistics for the testcases, a table with a list of the
testcases, and specific information for each testcase.
The way the results are sorted and displayed can be changed by clicking the
column headings.
The information for each testcase contains:
• The testcase group name.
• The testcase name.
• The testcase run time to the nearest millisecond.
• The number of injected faults activated by the testcase.
• The number of times this testcase has been run during detection.
• The number of faults this testcase has propagated.
• The total number of faults this testcase has detected.
Clicking on a testcase name displays the testcase details window for this testcase.
A SHIFT-click or CTRL-click on a testcase name opens a new window or a new
tab containing the testcase details window for this testcase. The testcase details
page does not provide additional information to date.
The way the results are sorted and displayed can be changed by clicking the
column headings.
The information for each probe contains:
• The status of the probe (off, enabled for observation, set for propagation).
• The name of the probe.
• The direction of the probe (out, in, or inout, depending on the type of port
the probe has been created on).
• The number of injected faults that are observed at the probe.
• The number of injected faults that are observed at the probe but are not
marked as propagated (this is for probes that are not set for propagation).
• The number of Non-Detected faults that are observed at the probe.
Clicking on a data key opens a table containing the list of faults linked to that key.
Menu Bar: User Data -> Fault User Data -> <name of a user data key>
This table contains the following information:
• The fault ID.
• The fault type.
• The fault status.
• The value of the user data linked to this fault for the selected key.
• The source file where the fault is located.
• The code line where the fault is located.
Clicking on a fault ID in the table displays the code where the fault is located,
centered on the fault. A SHIFT-click or CTRL-click on a fault ID opens a new
window or a new tab containing the source code.
Clicking on a data key opens a table containing the list of files linked to that key.
Menu Bar: User Data -> File User Data -> <name of a user data key>
This table contains the following information:
• The name of the source file.
• The value of the user data linked to this file for the selected key.
Clicking on a data key opens a table containing the list of testcases linked to that
key.
Menu Bar: User Data -> Testcase User Data -> <name of a user data key>
This table contains the following information:
• The name of the testcase.
• The value of the user data linked to this testcase for the selected key.
Clicking on a data key opens a table containing the list of probes linked to that
key.
Menu Bar: User Data -> Probe User Data -> <name of a user data key>
The way the results are sorted and displayed can be changed by clicking the
column headings.
Each entry in the table represents a waveform created during a simulation
involving a fault and a testcase. The information for each wave contains:
• The ID of the fault used in the simulation.
• The class of the fault used in the simulation.
• The type of the fault used in the simulation.
• The status of the fault used in the simulation.
• The button used for opening the waveforms with and without the fault with
the Verdi system. This button is present only when there is a reference
waveform with the testcase without the fault.
• The file where the fault is located.
• The line number in the file where the fault is located.
• The name of the testcase used in the simulation.
Help Commands
About
Menu Bar: Help -> About
Choosing this option displays Certitude version and copyright information.
Report Viewer
Overview
The HTML report is generated with the report command, and can be viewed
with a web browser, or with its dedicated viewer with the viewreport command.
It contains all the qualification results, and is used for analysis of the results. This
chapter focuses on the functional elements that are available in the report only
when the viewer is used. For the general structure and content of the HTML
report, refer to the HTML Report chapter.
The report viewer can be used only when Certitude is running. It is directly
linked with the results database, making report - database interaction features
available.
Back
Toolbar Icon:
Go to the previous page in the navigation history.
Forward
Toolbar Icon:
Go to the next page in the navigation history.
Reload
Toolbar Icon:
Update the viewer information with the current HTML report content in the
Certitude working directory.
When qualification results have changed, the report must be generated again in
Certitude, with the report command, before any change can be seen in the report
viewer with the Reload button. On the right-side of the toolbar, two buttons both
run a report command and reload the report viewer content.
Find
Toolbar Icon:
Bind key: Ctrl+F
Activate the search bar at the bottom of the window.
Close
Toolbar Icon:
Remove the search bar.
Edit box
Any character string can be typed in the edit box.
Previous
Toolbar Icon:
Go to the previous occurrence of the character string in the source code.
Next
Toolbar Icon:
Go to the next occurrence of the character string in the source code.
Case Sensitive
Toolbar checkbox:
Set whether the character string search must be case sensitive or not.When this
checkbox is checked, the case in the character string will be matched (e.g. clk_im
= clk_im and clk_IM = clk_IM). When this checkbox is empty, the case in the
character string will not be matched (e.g. clk_im = clk_Im = clk_iM = clk_IM).
NOTE: When the report viewer is used through an X server, the Ctrl+F bind key
can be caught by the X server program, interpreting it as a server
command and creating errors. When using an X server, the Ctrl+F bind
key must not be used.
Go to Fault
Toolbar Icon:
Bind key: Ctrl+G
Display the Go to Fault search form to locate the fault ID in the report window.
A fault ID number must be typed into the text field. When the OK button is
clicked, the report centers on the source code where the fault is located.
NOTE: When the report viewer is used through an X server, the Ctrl+G bind key
can be caught by the X server program, interpreting it as a server
command and creating errors. When using an X server, the Ctrl+G bind
key must not be used.
NOTE: Page-only report generation can make the entire report inconsistent. It is
strongly recommended to alternate with complete report generation.
Generate a new report and update the content according to the newly generated
report.
Right-clicking in any report page except the code pages displays a contextual
menu with navigation commands as well as two search commands.
Go Back
This command performs the same action as the Back button in the toolbar.
Reload
Bind key: F5
This command performs the same action as the Reload button in the toolbar.
Find
Bind key: Ctrl+F
Activate the search bar at the bottom of the window.
Go to Fault
Bind key: Ctrl+G
Display the Go to Fault form.
Right-clicking in the code pages of the report (the pages where the source code
is displayed) displays a menu with the same commands as in the global right-
click menu plus several commands that act on selected faults.
All the commands on selected faults are also available in the fault detail window.
A fault is considered selected either when it has been highlighted or when the
right-click menu is invoked when the cursor is located on the fault.
1. There is an additional column in the main table at the left side of the fault
ID column. This column contains a Disable or Enable command.
2. Next to the code description of the fault is a button marked Analyze with
Verdi.
3. An editable text area is displayed between the fault table and the testcase
table.
4. In the testcase table buttons marked Dump Waveforms are displayed.
NOTE: Before the Analyze Waveforms with Verdi feature can be used, the
waveforms must be generated with the appropriate format in .fsdb files.
For details on how to generate .fsdb waveform files with Certitude, refer
to the Waveforms with the Verdi System section of the Dump and
Compare Waves with Certitude chapter of the User Manual.
Disable/Enable Fault
Command Button:
This button disables the fault described in the same line of the table. When the
fault is already disabled, the Enable button replaces the Disable one. This sends
a faultdisable or faultenable command to the Certitude database.
NOTE: Before the Analyze with Verdi feature can be used, the Verdi system
must be set accordingly. This means that the design must be compiled
with the Verdi system first. If this feature is used when the design has
not been compiled with the Verdi system first, it will generate an error
message in the Certitude shell.
Dump Waveforms
Command Button:
This button is for running the dumpwaves command with the selected fault and
the selected testcase. After the report has been regenerated, a new entry will
appear on the table in the Waveforms page of the report. There a command can
be used to open the waveforms in the Verdi system for analysis.
For each probe, selecting buttons sends commands to the Certitude database.
Choosing off sends a probedisable command for the specific probe. Choosing
efo sends a setprobe -setforpropagation=false command if the probe was
set for propagation, or a probeenable command if the probe was off. Choosing
sfp sends a setprobe -setforpropagation=true, along with a probeenable
command if the probe was off.