Configuration Parameter Constraints

Solver

ParameterConstraintFATAL / NonfatalCompatibility Check
Type (SolverType)Must be set to Fixed-step.NonfatalCheck solver settings > Verify 'Type' setting
Solver (Solver)Must be set to discrete (no continuous states) (equivalent to FixedStepDiscrete specified at the command line).NonfatalCheck solver settings > Verify 'Solver' setting
Periodic sample time constraint (SampleTimeConstraint)Must be set to Unconstrained or Ensure sample time independent.NonfatalCheck solver settings > Verify 'Periodic sample time constraint’ setting
Treat each discrete rate as a separate task (EnableMultiTasking)Must be selected (set to on) for model with multiple discrete rates.NonfatalCheck Treat each discrete rate as a separate task setting > Verify ‘Treat each discrete rate as a separate task’ setting
Automatically handle rate transition for data transfer (AutoInsertRateTranBlk)Must be cleared.NonfatalCheck solver settings > Verify 'Automatically handle rate transition for data transfer’ setting
Allow tasks to execute concurrently on target (ConcurrentTasks)Must be cleared. This parameter check box is visible only if you convert an existing configuration set to one for concurrent execution.NonfatalCheck solver settings > Verify ‘Allow tasks to execute concurrently on target’ setting

Data Import/Export

ParameterConstraintFATAL / NonfatalCompatibility Check
Initial state (LoadInitialState)Must be cleared (set to off).NonfatalCheck data import/export settings > Verify 'Initial state' setting

Math and Data Types

ParameterConstraintFATAL / NonfatalCompatibility Check
Implement logic signals as Boolean data (vs. double) (BooleanDataType)Must be selected (set to on).NonfatalCheck math and data type settings > Verify 'Implement logic signals as Boolean data (vs. double)' setting

Diagnostics

ParameterConstraintFATAL / NonfatalCompatibility Check
Allow symbolic dimension specification (AllowSymbolicDim)Must be cleared (set to off).NonfatalCheck diagnostic settings > Verify 'Allow symbolic dimension specification' setting

Diagnostics: Sample Time

ParameterConstraintFATAL / NonfatalCompatibility Check
Multitask rate transition (MultiTaskRateTransMsg)Must be set to error.NonfatalCheck diagnostic settings > Verify 'Multitask rate transition' setting
Multitask conditionally executed subsystem (MultiTaskCondExecSysMsg)Must be set to error.NonfatalCheck diagnostic settings > Verify 'Multitask conditionally executed subsystem' setting

Diagnostics: Data Validity

ParameterConstraintFATAL / NonfatalCompatibility Check
Detect downcast (ParameterDowncastMsg)Must be set to error.NonfatalCheck diagnostic settings > Verify 'Detect downcast' setting
Parameters > Detect overflow (ParameterOverflowMsg)Must be set to error.NonfatalCheck diagnostic settings > Verify 'Detect overflow' setting
Signals > Wrap on overflow (IntegerOverflowMsg)Must be set to error.NonfatalCheck diagnostic settings > Verify 'Detect overflow' setting
Saturate on overflow (IntegerSaturationMsg)Must be set to error.NonfatalCheck diagnostic settings > Verify 'Saturate on overflow‘ setting
Detect underflow (ParameterUnderflowMsg)Must be set to error.NonfatalCheck diagnostic settings > Verify 'Detect underflow' setting
Detect loss of tunability (ParameterTunabilityLossMsg)Must be set to error.NonfatalCheck diagnostic settings > Verify 'Detect loss of tunability' setting
Underspecified initialization detection (UnderspecifiedInitializationDetection)Must be set to Simplified. Configuring the model to initialize block initial conditions using simplified behavior can improve the consistency of model results.NonfatalCheck diagnostic settings > Verify 'Underspecified initialization detection' setting
Multitask data store (MultiTaskDSMMsg)Must be set to error.NonfatalCheck diagnostic settings > Verify 'Multitask data store’ setting

Diagnostics: Connectivity

ParameterConstraintFATAL / NonfatalCompatibility Check
Bus signal treated as vector (StrictBusMsg)Must be set to error (equivalent to ErrorOnBusTreatedAsVector specified at the command line).FATALCheck diagnostic settings > Verify Bus signal treated as vector setting
Non-bus signals treated as bus signals (NonBusSignalsTreatedAsBus)Must be set to error.FATALCheck diagnostic settings > Verify 'Non-bus signals treated as bus signals' setting

Diagnostics: Stateflow

ParameterConstraintFATAL / NonfatalCompatibility Check
Unexpected backtracking (SFUnexpectedBacktrackingDiag)Must be set to error.NonfatalCheck diagnostic settings > Verify 'Unexpected backtracking' setting
Invalid input data access in chart initialization (SFInvalidInputDataAccessInChartInitDiag)Must be set to error.NonfatalCheck diagnostic settings > Verify 'Invalid input data access in chart initialization' setting
No unconditional default transitions (SFNoUnconditionalDefaultTransitionDiag)Must be set to error.NonfatalCheck diagnostic settings > Verify 'No unconditional default transitions' setting
Transition outside natural parent (SFTransitionOutsideNaturalParentDiag)Must be set to error.NonfatalCheck diagnostic settings > Verify 'Transition outside natural parent' setting
Unreachable execution path (SFUnreachableExecutionPathDiag)Must be set to error.NonfatalCheck diagnostic settings > Verify 'Unreachable execution path' setting
Undirected event broadcasts (SFUndirectedBroadcastEventsDiag)Must be set to error.NonfatalCheck diagnostic settings > Verify 'Undirected event broadcasts' setting
Transition action specified before condition action (SFTransitionActionBeforeConditionDiag)Must be set to error.NonfatalCheck diagnostic settings > Verify 'Transition action specified before condition action' setting

Hardware Implementation

ParameterConstraintFATAL / NonfatalCompatibility Check
Number of bits: char (ProdBitPerChar)Must be set to 8.NonfatalCheck hardware implementation settings > Verify 'char' setting
Number of bits: short (ProdBitPerShort)Must be set to 16.NonfatalCheck hardware implementation settings > Verify 'short' setting
Number of bits: int (ProdBitPerInt)Must be set to 32.NonfatalCheck hardware implementation settings > Verify 'int' setting
Number of bits: long (ProdBitPerLong)Must be set to 32.NonfatalCheck hardware implementation settings > Verify 'long' setting
Number of bits: float (ProdBitPerFloat)Must be set to 32.NonfatalCheck hardware implementation settings > Verify 'float' setting
Number of bits: double (ProdBitPerDouble)Must be set to 64.NonfatalCheck hardware implementation settings > Verify 'double' setting
Number of bits: native (ProdWordSize)Must be set to 32.NonfatalCheck hardware implementation settings > Verify 'native' setting
Number of bits: pointer (ProdBitPerPointer)Must be set to 32.NonfatalCheck hardware implementation settings > Verify 'pointer' setting
Signed integer division rounds to (ProdIntDivRoundTo)Must be set to Zero.NonfatalCheck hardware implementation settings > Verify 'Signed integer division rounds to' setting
Shift right on a signed integer as arithmetic shift (ProdShiftRightIntArith)Must be selected (set to on).NonfatalCheck hardware implementation settings > Verify 'Shift right on a signed integer as arithmetic shift' setting
Test hardware is the same as production hardware (ProdEqTarget)Must be selected (set to on).NonfatalCheck hardware implementation settings > Verify 'Test hardware is the same as production hardware' setting
  • Device vendor

  • Device type (ProdHWDeviceType)

Must not be set to ASIC/FPGA.NonfatalCheck hardware implementation settings>Verify 'Device vendor->Device type‘ setting
Support long long (ProdLongLongMode)Must not be selected (set to off).NonfatalCheck hardware implementation settings>Verify 'Support long long‘ setting

Code Generation: General

ParameterConstraintFATAL / NonfatalCompatibility Check
System target file (Simulink Coder) (SystemTargetFile)Must be set to ert.tlc or the system target file for an ERT-derived target.FATALCheck system target file setting
Language (Simulink Coder) (TargetLang)Must be set to C or C++.FATALCheck code generation settings > Verify 'Language' setting
TLCOptionsMust be set to '' (unspecified) or -aMaxStackVariableSize=inf.NonfatalCheck code generation settings > Verify 'TLC options' setting

Code Generation: Optimization

ParameterConstraintFATAL / NonfatalCompatibility Check
Simplify array indexing (Embedded Coder) (StrengthReduction)Must be cleared (set to off).NonfatalCheck code generation settings > Verify 'Simplify array indexing' setting
Pack Boolean data into bitfields (Embedded Coder) (BooleansAsBitfields)Must be cleared (set to off).NonfatalCheck code generation settings > Verify 'Pack Boolean data into bitfields' setting
Default parameter behavior (Simulink Coder) (DefaultParameterBehavior)For referenced models, must be set to Inlined.NonfatalCheck code generation settings > Verify 'Default parameter behavior' setting
Loop unrolling threshold (Simulink Coder) (RollThreshold)Must be set to a value that does not result in partially unrolled loops in the generated code.NonfatalCheck loop unrolling threshold setting > Verify loop unrolling threshold setting
Pass reusable subsystem outputs as: (Embedded Coder) (PassReuseOutputArgsAs)Must be set to Structure reference if referenced model has root outports with non-auto storage class.NonfatalCheck for root Outport blocks that have non-auto storage class > Verify that the storage class of root outports is supported
Use bitsets for storing state configuration (Simulink Coder) (StateBitsets)Must be cleared (set to off).NonfatalCheck code generation settings > Verify ‘Use bitsets for storing state configuration’ setting
Use bitsets for storing Boolean data (Simulink Coder) (DataBitsets)Must be cleared (set to off).NonfatalCheck code generation settings > Verify ‘Use bitsets for storing Boolean data’ setting
Optimize using the specified minimum and maximum values (Embedded Coder) (UseSpecifiedMinMax)Must be cleared (set to off).NonfatalCheck code generation settings > Verify ‘Optimize using the specified minimum and maximum values’ setting
Remove code from floating-point to integer conversions that wraps out-of-range values (Simulink Coder) (EfficientFloat2IntCast)Must be selected (set to on).NonfatalCheck code generation settings > Verify 'Remove code from floating-point to integer conversions that wraps out-of-range values' setting
Remove code from floating-point to integer conversions with saturation that maps NaN to zero (Simulink Coder) (EfficientMapNaN2IntZero)Must be cleared (set to off).NonfatalCheck code generation settings > Verify 'Remove code from floating-point to integer conversions with saturation that maps NaN to zero' setting
Remove code that protects against division arithmetic exceptions (Embedded Coder)(NoFixptDivByZeroProtection)Must be cleared (set to off).NonfatalCheck code generation settings > Verify 'Remove code that protects against division arithmetic exceptions' setting
AdvancedOptControlMust be set to -SLCI. This setting disables optimizations that are incompatible with Simulink® Code Inspector™. When you use this setting, the generated code can differ from code generated without the '-SLCI' setting. However, the differences do not affect the behavior of the generated code.NonfatalCheck code generation settings > Verify 'Disable incompatible optimizations' setting
Operator to represent Bitwise and Logical Operator blocks (Embedded Coder) (BitwiseOrLogicalOp)Must be set to Same as modeled or Bitwise operator.NonfatalCheck code generation settings > Verify 'Operator to represent Bitwise and Logical Operator' setting

Code Generation: Comments

ParameterConstraintFATAL / NonfatalCompatibility Check
Include comments (Simulink Coder) (GenerateComments)Must be selected (set to on). The Simulink Code Inspector parses autogenerated comments to obtain traceability information about model data.FATALCheck code generation settings > Verify 'Include comments' setting

Code Generation: Identifiers

ParameterConstraintFATAL / NonfatalCompatibility Check
Generate scalar inlined parameter as (Embedded Coder) (InlinedPrmAccess)Must be set to Literals.NonfatalCheck code generation settings > Verify 'Generate scalar inlined parameter as' setting
Signal naming (Embedded Coder) (SignalNamingRule)Must be set to None.NonfatalCheck code generation settings>Verify 'Signal naming' setting
Parameter naming (Embedded Coder) (ParamNamingRule)Must be set to None.NonfatalCheck code generation settings>Verify 'Parameter naming' setting

Code Generation: Custom Code

ParameterConstraintFATAL / NonfatalCompatibility Check
Source file (Simulink Coder) (CustomSourceCode)Must be unspecified (set to '').NonfatalCheck code generation settings > Verify 'Source file' setting
Header file (Simulink Coder) (CustomHeaderCode)Must be unspecified (set to '').NonfatalCheck code generation settings>Verify ‘Header file’ setting
Initialize function (Simulink Coder) (CustomInitializer)Must be unspecified (set to '').NonfatalCheck code generation settings > Verify 'Initialize function' setting
Terminate function (Simulink Coder) (CustomTerminator)Must be unspecified (set to '').NonfatalCheck code generation settings > Verify 'Terminate function' setting

Code Generation: Interface

ParameterConstraintFATAL / NonfatalCompatibility Check
Code interface packaging (Simulink Coder) (CodeInterfacePackaging)Must be set to Nonreusable function or Reusable function.FATALCheck code generation settings > Verify 'Code interface packaging’ setting
Use dynamic memory allocation for model initialization (Embedded Coder) (GenerateAllocFcn)Must be cleared (set to off).NonfatalCheck code generation settings > Verify 'Use dynamic memory allocation for model initialization' setting
Code replacement library (Simulink Coder) (CodeReplacementLibrary)Must be set to None. You can also use Supported Functions and Operations in Code Replacement Libraries.NonfatalCheck code generation settings > Verify 'Code replacement library' setting
Standard math library (Simulink Coder) (TargetLangStandard)Must be set to C89/C90 (ANSI) or C99 (ISO). NonfatalCheck code generation settings > Verify 'Standard math library' setting
Shared code placement (Simulink Coder) (UtilityFuncGeneration)Must be set to Shared location. Using a shared location for utility functions, macros, and user-defined data types promotes debugging and traceability of generated code.NonfatalCheck code generation settings>Verify 'Shared code placement' setting
Support: non-finite numbers (Simulink Coder) (SupportNonFinite)Must be cleared (set to off).NonfatalCheck code generation settings > Verify 'non-finite numbers' setting
Support: absolute time (Embedded Coder) (SupportAbsoluteTime)Must be cleared (set to off).NonfatalCheck code generation settings > Verify 'absolute time' setting
Classic call interface (Simulink Coder) (GRTInterface)Must be cleared (set to off).NonfatalCheck code generation settings > Verify 'Classic call interface' setting
Single output/update function (Simulink Coder) (CombineOutputUpdateFcns)Must be selected (set to on).NonfatalCheck code generation settings>Verify 'Single output/update function' setting
Terminate function required (Embedded Coder) (IncludeMdlTerminateFcn)Must be cleared (set to off).NonfatalCheck code generation settings > Verify 'Terminate function required' setting
Remove error status field in real-time model data structure (Embedded Coder) (SuppressErrorStatus)Must be selected (set to on). This helps prevent generation of the rtModel data structure, which is not supported for code inspection.NonfatalCheck code generation settings > Verify 'Remove error status field in real-time model data structure' setting
Combine signal/state structures (Embedded Coder) (CombineSignalStateStructs)Must be cleared (set to off).NonfatalCheck code generation settings > Verify 'Combine signal/state structures' setting
Array layout (Simulink Coder) (ArrayLayout)Must be set to column-major.NonfatalCheck code generation settings > Verify 'Array layout' setting
MAT-file logging (Simulink Coder) (MatFileLogging)Must be cleared (set to off).NonfatalCheck code generation settings > Verify 'MAT-file logging' setting
Support: variable-size signals (Embedded Coder) (SupportVariableSizeSignals)Must be cleared (set to off).FATALCheck code generation settings > Verify 'variable-size signals' setting
Generate C API for: parameters (Simulink Coder) (RTWCAPIParams)Must be cleared (set to off).NonfatalCheck code generation settings > Verify ‘parameters’ setting
Generate C API for: signals (Simulink Coder) (RTWCAPISignals)Must be cleared (set to off).NonfatalCheck code generation settings > Verify ‘signals’ setting
Generate C API for: states (Simulink Coder) (RTWCAPIStates)Must be cleared (set to off).NonfatalCheck code generation settings > Verify ‘states’ setting
Generate C API for: root-level I/O (Simulink Coder) (RTWCAPIRootIO)Must be cleared (set to off).NonfatalCheck code generation settings > Verify ‘root-level I/O’ setting
External mode (Simulink Coder) (ExtMode)Must be cleared (set to off).NonfatalCheck code generation settings > Verify ‘External mode’ setting
ASAP2 interface (Simulink Coder) (GenerateASAP2)Must be cleared (set to off).NonfatalCheck code generation settings > Verify ‘ASAP2 interface’ setting

Code Generation: Verification

ParameterConstraintFATAL / NonfatalCompatibility Check
Create block (Embedded Coder) (CreateSILPILBlock)Must be set to None.NonfatalCheck code generation settings > Verify 'Create block' setting
Measure function execution times (Embedded Coder) (CodeProfilingInstrumentation)Must be cleared (set to off).NonfatalCheck code generation settings > Verify 'Measure function execution times' setting

Code Generation: Code Style

ParameterConstraintFATAL / NonfatalCompatibility Check
Preserve condition expression in if statement (Embedded Coder) (PreserveIfCondition)Must be selected (set to on).NonfatalCheck code generation settings > Verify 'Preserve condition expression in if statement' setting
Suppress generation of default cases for Stateflow switch statements if unreachable (Embedded Coder) (SuppressUnreachableDefaultCases)Must be cleared (set to off).NonfatalCheck code generation settings > Verify 'Suppress generation of default cases for Stateflow switch statements if unreachable' setting
Casting Modes (Embedded Coder)(CastingMode).Must be set to Nominal or Standards.NonfatalCheck code generation settings > Verify 'Casting Modes' setting

Code Generation: Templates

ParameterConstraintFATAL / NonfatalCompatibility Check
Generate an example main program (Embedded Coder) (GenerateSampleERTMain)Must be selected (set to on).NonfatalCheck code generation settings > Verify 'Generate an example main program' setting

Code Generation: Code Placement

ParameterConstraintFATAL / NonfatalCompatibility Check
Rate Transition block code (Embedded Coder) (RateTransitionBlockCode)Must be set to Inline.NonfatalCheck code generation settings > Verify 'Rate Transition block code' setting

Related Topics