- Model Advisor
- 检查项说明
- Code Generation Efficiency
- Data Transfer Efficiency
- Frequency Response Estimation
- Managing Data Store Memory Blocks
- Managing Library Links And Variants
- Migrating to Simplified Initialization mode
- Model Metrics
- Model ReferencingCheck for model reference configuration mismatch(Model reference)
- Modeling Guidelines for MISRA C:2012
- Modeling Physical System
- Modeling Signals and Parameters using Buses
- Modeling Single-Precision Systems
- Modeling Standards for D0-178C/D0-331
- Modeling Standards for EN 50128
- Modeling Standards for IEC 61508
- Modeling Standards for IEC 62304
- Modeling Standards for ISO 26262
- Modeling Standards for MAAB
- Requirements Consistency Checking
- Simulation Accuracy
- Simulation Runtime Accuracy Diagnostics
- Simulink Code Inspector compatibility checks
- Simulink Design Verifier Compatibility checks
- Simulink Design Verfier Design Error Check
- Simulink Model File Integrity
- Units Inconsistencies
- Upgrading to the Current Simulink Version
Model Advisor
运行模型顾问检查并查看结果
-
打开模型
-
在Simulink Editor中,点击Modeling 选项卡,选择Model Advisor ,将打开System Selector - Model Advisor 对话框。然后进行选择:
- Show by Product Folder:显示每种产品可用检查
- Show By Task Folder:显示与具体任务相关的检查
-
点击包含检查的文件夹,并在模型顾问的右侧窗格中进行选择:
- Show report after run: 用于自动生成报告并以HTML格式显示
- Run Selected Checks:用于执行分析
-
在模型顾问用户界面上查看结果,常见的检查状态为:
- Pass:检查未发现问题
- D-Pass:取决于配置参数或另一项检查的成功执行
- Warn:检查发现了问题
- Fail:检查无法执行
-
根据需要修复警告或故障,
-
使用Exclusions选项卡查看标记未从分析中排除的检查。在模型顾问的右侧窗格中显示Exclusions选项卡,请打开Settings > Preferences之后选择Show Exclusion tab
-
查看并保存报告。
-
如果需要,可以将检查状态重置为Not Run,在左侧窗格中,点击Model Advisor,之后选择“Reset”,该操作不会从模型顾问中删除分析结果。
通过运行先前分析中使用的检查来节省分析时间
可以使用模型顾问控制板对模型始终运行同一组检查来节省时间。当使用控制板时,模型顾问不用在执行检查之前重新加载这些检查,从而节省分析时间。
-
打开模型
-
选择Model Advisor > Model Advisor DashBoard。将打开System Selector - Model Advisor对话框。选择要查看的模型或系统,点击OK。
-
打开Model Advisor Dashboard窗口。通过该控制板,可以选择:
- 点击Run checks按钮,执行与先前分析相同的检查
- 点击Switch to standard view按钮,打开模型顾问并选择不同检查
- 点击Enable Highlighting按钮,在Simulink Editor中查看突出显示的结果。 使用该选项,将打开Model Advisor Highlighting信息窗口,其中包含只想模型顾问窗口的链接,在模型顾问窗口中,可以找到有关检查结果以及如何修复警告条件的详细信息。
-
点击Run checks按钮,对模型运行前分析中所用的相同检查,如果需要,点击Enable Highlighting按钮。
检查项说明
Code Generation Efficiency
- check optimization settings
该项用于检查是否可能导致非最佳代码生成和仿真的优化。
常见的warning:
- Inline invariant signals(InlineInvariantSignals)
-
含义:该项含义为是否内联不变信号来优化生成的代码。在内联后生成的代码使用不变信号的数值而非其符号名称。
-
优化优势:
- 减少ROM和RAM的消耗
- 提高执行速度
-
推荐选项:不推荐修复该选项,会直接将类似版本号这类不变信号进行优化。
-
不变信号与不变常数
- 不变信号:simulink中使用常值的模块,例如gain模块和constant模块
- 不变信号:连接不变模块的线(信号)
-
Identify blocks using one-based indexing
- 该项用来查看所使用的模块是否是采用one-based index,如果是,需要将相关模块修改为zero-based index。
- 或者是是否有基于one-based index的非simulink基础模块,查看这些模块是否可以使用simulink基础模块进行替换。
-
Identify questionable software environment specifications
该项用来检查“参数应用程序生命周期”的值,当其为的默认值为“自动”,应明确指定此参数的值以生成生产代码。若该软件不用于量产,可以忽略。
-
identify lookup table blocks that generate expensive out-of-range checking code
该项用来判断输入值是否在查找表的断点范围内。
选项 | 结果 | 使用范围 |
---|---|---|
off | 生成的代码包含用来检查超出范围的输入的条件语句。 | 适用于安全性至关重要的应用领域 |
on | 生成的代码中未包含用来检查超出范围的断点输入的条件语句。 | 提高代码效率 |
默认值为off,一般推荐不进行修改
-
check output types of logic blocks
针对于输出数据类型为布尔值的模块进行检查,来识别出其中输出为非布尔数据类型的逻辑块,进行修改后可以提高代码的运行效率
-
Identify bolcks that generate expensive rounding code
该项主要对模块运算中进行的舍入、取整方式进行检查。某些舍入方式会产生大量的运算量,需要针对硬件配置进行设置。系统推荐为Zero或simple;某些取整方式会产生大量的运算量,需要针对硬件配置进行设置。系统推荐为Simplest或Floor。
-
Identify questionable fixed-point operations
- 该项针对定点多字操作进行检查。包括多字运算主要针对大于处理器最大字长的数据类型在具有多字操作的软件中进行处理,可以参考生成代码中的定点多字操作进行处理。
- 同时还针对查找表优化进行检查:如果“断点”数据不可调整,请将“断点”数据调整为具有2个间隔的偶数幂,并使用“等距点”索引搜索方法,会更有效的实施查找。
- 要生成更有效的代码,需要设置整数舍入模式参数更改为最简单,或将配置参数>所有参数>硬件实现>有符号整数除法舍入更改为设置。
-
Identify blocks that generate expensive fixed-point and saturation code
- 该项会针对输入输出不同偏差进行检查,当输入值于输出值的偏差(bias)不同时,会增加额外的计算,降低代码运行效率。
- 会对计算模块输出结果溢出进行检查。
- 会针对Max/Min模块的输出输出数据类型进行检查。因为每次都会进行数据转换操作,会导致程序运行效率低下。或者是在进行数据转换时会产生数据精度的丢失。
- 会针对数据类型转换Convert模块进行检查:有一些Convert模块会调用净斜率计算进行转换。而净斜率计算可以通过以下方式实现:乘法和移位或整数乘法和/或除法。将“配置参数”>“优化”>“将除法用于定点净斜率计算设置”设置为“开”可能会生成更有效的代码。要使用此选项,请将整数舍入模式参数更改为“最简单”,或将“配置参数”>“硬件实现”>“生产硬件”>“有符号整数除法舍入”更改为设置。
- “与常数比较模块”产生数据溢出,需要修改。
- 离散积分器含有复杂的初始化条件模式,需要修改。
Data Transfer Efficiency
-
check Delay, Unit Delay and Zero-Order Hold blocks for rate transition
该项用来识别执行速率转换模型中的延迟,单位延迟和零阶保持模块。可以将它们替换为Rate Transition模块。
Frequency Response Estimation
1.Identify time-varying source block interfering with frequency response estimation
查找模块中的时变模块,检查这类模块是否设置标记的线性化输出点,进行输出点设置的模块在输出参数中对输入的选项为指定为保持恒定。该种设置的时变模块会干扰频率相应估计过程并导致结果不准确。
Managing Data Store Memory Blocks
-
**Check Data Store Memory blocks for multitasking, strong typing, and shadowing issues **
该项检查建模问题种有关数据存储模块,例如多任务数据完整性,存储类型以及shadowing of data stores of higher scope.
-
Check Data Store block sample times for modeling errors
检查数据存储模块的采样时间没有连续或小固定步长的采样时间(fixed-in-minor-step)
-
Check for potential ordering issues involing data store access
检查与数据存储有关的模块是否存在写前读、读后写、写后写等场景。(read before write/write after read/write after write)
Managing Library Links And Variants
-
Identify disabled library links
检查模块种禁用的库链接,意外禁用的库链接可能会导致意外的仿真结果,通常不应在禁用库链接的情况下保存模型。
请注意,此检查的结果可能与已知升级问题的检查结果重叠。 -
Identify parameterized library links
在模型种查找参数化的库链接,意外参数化的库链接可能会导致意外的仿真结果。
-
Identify unresolved library links
在模型种查找未解析的库链接,即找不到库块的链接。具有未解析的库链接的模型无法仿真。
-
Identify variant block that override variant choice
使用“override option”而非“active variant control”来标识变量模块。
-
Identify configurable subsystem blocks for converting to variant subsystem blocks
在模型或子系统种识别可以配置的子系统模块,可以将这些模块转变为变体子系统。
Migrating to Simplified Initialization mode
-
check usage of Merge blocks
-
Check usage of output blocks
-
check model settings for migration to simplified initializaCtion mode
Model Metrics
Count Metrics
-
Simlink block metric
显示模型或子系统种的块数
-
Subsystem metric
显示模型或子系统种子系统的数量
-
Library link metric
显示模型或子系统种的库链接数量
-
Effective lines fo MATLAB code metric
显示MATLAB代码有效行数
-
Stateflow chart object metric
显示每个chart种stateflow对象数量
-
Lines of code for Stateflow blocks metric
显示stateflow块的代码行数
-
Subsystem depth metric
显示模型或子系统中子系统的深度
Complexity Metrics
-
Cyclomatic complexity metric
显示Simulink和Stateflow对象的圈复杂度(控制流语句)
Readability Metrics
-
Nondecriptve block name metric
显示“输入”“输出”和“子系统”块的非描述性名称
-
Data and structure layer separation metric
显示数据和数据层分离,由MAAB建模指南db_0143定义
Model ReferencingCheck for model reference configuration mismatch(Model reference)
-
Check for model reference configuration mismatch
识别子模块中配置设置与顶级模块不匹配的模型块。
-
Check diagnositic settings ignored during accelerated model reference simulation
识别加速器仿真不支持的模型诊断设置。
-
Check code generation identifier formats used for model reference
识别代码生成不支持的模型标识符格式设置
-
Check for parameter tunability information ignored for referenced models
检查其“模型参数配置”对话框指定参数可调性信息的模型。
-
Check for implicit signal resolution
检查配置用于隐式信号解析的模型,即尝试将所有命名的信号和状态解析为Simulink.Signal对象。
这会导致仿真、代码效率低下,并且会减慢增量代码的生成和模型引用的速度。 -
Check bus usage
mux模块是否被误用为bus creator
-
Check root model Inport block specifications
检查根模型未完全定义其属性的根Inport块(例如尺寸,采样时间或数据类型),可能会导致不良结果
Modeling Guidelines for MISRA C:2012
-
Check configuration parameters for MISRA C:2012
检查有可能影响符合MISRA C:2012的代码生成的配置参数。
- 模型配置参数中未设置为数据文件总指定的建议值。
-
Check for blocks not recommended for MISRA C:2012
识别不符合MISRA C:2012规范的代码生成的块或不建议使用的块。
-
Check for unsupported block names
确定包含“ /”的块名称。
-
Check usage of Assignment blocks
如果Assignment模块的输出元素没有指定Error或Warning选项,需要对该模块进行仿真运行时间诊断设置。
-
Check for bitwise operations on signed integers
标识有符号整数的按位运算。
-
Check for recursive function calls
确定递归函数的调用关系。
-
Check for equality and inequality operations on floating-point values
对浮点值的相等、不相等运算进行检查
建议使用非浮点值进行相等、不相等运算。
-
Check for switch case expressions without a default case
检查switch模块,对于该模块,推荐使用show default case来显式指定一个默认case
Modeling Physical System
-
Check consistency of block parameter units
检查块参数单位的一致性:检查用模糊的参数单位设置识别Simscape块,例如一个以‘Hz'标识的块参数可以在对话框中以’rads‘为单位指定,这种设置可能导致应用于数值的意外转换因子。
-
Check for dry hydraulic nodes
检查液压节点???
Modeling Signals and Parameters using Buses
-
Check for optimal bus virtuality
检查可以变为非虚拟的虚拟总线,以提高生成代码的效率。
-
Check structure parameter usage with bus signals
识别引用结构参数的块或Simulink.Signal对象,检查这些参数的数据类型于关联的总线信号是否一致
-
Check bus usage
检查并识别Mux或视作矢量的任何总线信号的使用是否正确
Modeling Single-Precision Systems
-
Identifu questionable operations for strict single-precision design
检查双精度操作和非最佳模型设置设置是否满足涉及要求,分为如下几个方面:
- 检查模型设置是否严格执行的单精度设计
- 检查设计双精度运算的模块,确保其中的端口数据类型及中间量数据类型是一致的。
Modeling Standards for D0-178C/D0-331
-
Check model object names
检查如下类型的模块名称是否符合要求:
- Blocks
- Signals
- Parameters
- Busses
- Stateflow elements
-
Display model version information
在报告中显示模型版本信息(包括模型配置和校验和信息,该设置是基于根级别的设置,在子系统上进行执行)
-
Check safety-related optimization settings
检查模型配置中可能影响安全性的优化设置,该检查项会对相关的系统设置提供建议选项
-
Check safety-related code generation settings
检查模型配置中可能会影响安全性的代码生成设置
-
Check for variant blocks with 'Generate preprocessor conditionals' active
检查可能导致代码无法追溯到需求的变体块设置
-
Check sample times and tasking mode
检查是否进行了错误的仿真时间以及任务模式设置,导致可能出现的代码执行效率低下情况
-
Check solver for code generation
检查用于生成代码的解算器,不正确的解算器设置可能会导致代码无法生成,同样的,采样时间不足也会导致该情况发生
-
Check the hardware implementation
检查“字节排序”以及“有符号整数除法舍入”、“生产硬件”和“测试硬件”设置是否匹配。不正确的设置会导致生成错误代码或者是运行效率低下的代码。或者产生于硬件属性不一致或规格不匹配的代码。
Requirements Traceability
-
Check for blocks that do not link to requirements
检查模型中直接接地的信号。
-
Identify requirement links that spcify invalid locations within documents
检查模型中信号链接是否有效
-
Identify requirement links with missing documents
确保需求链接到现有文档。
-
Identify requirement links with path type inconsistnet with prefereences
检查需求路径是否是在首选项中选择的类型(绝对,相对于模型,相对于路径)
-
Identify selection-based links having description fields that do not match their requirements document text
确保基于选择的链接的描述字段使用在其需求文档中找到的相同文本(需求文本??)
Model Diagnostic Settings
-
Check safety-related diagnostic settings for solvers
检查模型配置中适用于求解器的可能影响安全性的诊断设置。
-
Check safety-related diagnostic settings for sample time
检查模型配置中适用于采样时间的可能会影响安全性的诊断设置。
-
Check safety-related diagnostic settings for signal data
检查模型配置中适用于信号数据并可能影响安全性的诊断设置。
-
Check safety-related diagnostic settings for parameters
检查模型配置中适用于参数并可能影响安全性的诊断设置。
-
Check safety-related diagnostic settings for data used for debugging
检查模型配置中的诊断设置,这些诊断设置适用于用于调试的数据,并且可能会影响安全性。
-
Check safety-related diagnostic settings for data store memory
检查模型配置中适用于数据存储内存并可能影响安全性的诊断设置。
-
Check safety-related diagnostic settings for type conversions
检查模型配置中适用于类型转换并可能影响安全性的诊断设置。
-
Check safety-related diagnostic settings for signal connectivity
检查模型配置中适用于信号连接性并可能影响安全性的诊断设置。
-
Check safety-related diagnostic settings for bus connectivity
检查模型配置中适用于总线连接并可能影响安全性的诊断设置。
-
Check safety-related diagnostic settings for apply to functioon-call connectivity
检查模型配置中的诊断设置,这些设置适用于功能调用连接并可能影响安全性
-
Check safety-related diagnostic settings for compatibility
检查模型配置中影响兼容性并可能影响安全性的诊断设置
-
Check safety-related diagnostic settings for model initialization
检查模型配置中可能影响模型初始化并可能影响安全性的诊断设置。
-
Check safety-related diagnostic settings for model referencing
检查模型配置中适用于模型参考的诊断设置,这可能会影响安全性。
-
Check safety-related diagnostic settings for saving
检查模型配置中适用于保存模型文件的诊断设置。
Simulink
-
Check usage of lookup table blocks
检查查找表块,预查找块和插值块,它们不会生成超出范围的检查代码。
-
Check for blocks that have constraints on tunable parameters
检查具有可调参数的查找表是否具有严格的约束,该约束主要针对于单调性。若再仿真过程中调整该参数或运行时生成的代码,每个表的断点值没有严格执行单调增加,会导致代码错误。
-
Check for Discrete-Time Integrator blocks with initial condition uncertainty
该检查项主要针对既不由IC也不由常量模块馈送的带有状态端口和初始条件端口的离散时间积分器模块,可能无法正确初始化。
-
Check for potentially delayed function-call block return values
识别由于Simulin插入隐式信号转换块而可能导致延迟的函数调用块返回值
-
Check model for block upgrade issues
分析模型以解决块升级问题,该问题主要根据前后simulink版本,对升级后可能产生的前后不匹配问题问题进行先行检查。
-
Check root model Inport block specifications
根模型未完全定义其属性的Input块可能会导致不良结果。
-
Check usage of Merge blocks
检查Merge模块的使用情况,Merge模块的基础使用要求是驱动同一Merge模块的块应该在每个时间步中互斥执行。
具体包含如下几项检查:
-
检查具有未指定“初始输出”的merge模块
-
检查合并块的运行时诊断设置
在“配置参数”对话框的“所有参数”选项卡上,确保将“合并”块的“检测多个同时执行的驱动块”选项设置为“错误”。
-
-
Check for blocks not recommended for C/C++ production code deployment
识别代码生成中不支持的块或建议将其用于C/C++生产代码部署的块
-
Identify questionable subsystem settings
检查子系统设置是否会导致非最佳结果。
(将子系统设置为原子模块将强制生成的代码使用全局内存来存储子系统的I/O,所以为了减少生成代码使用的全局变量,不建议设置原子模块)
-
Check usage of tunable parameters in blocks
检查模块中是否具有用于指定表达式、数据类型转换或索引操作的模块使用了可变参数
-
Check usage of Math Operations blocks
确定Simulink中数学运算模块的使用可能会影响安全性,具体包含如下的具体检查项:
-
检查Abs块的使用情况,确定可能产生无法访问的代码或溢出的绝对值块。当Abs块对一个无符号值进行操作,这可能会导致无法访问的代码:
-
检查增益块的使用,识别值等于1的增益块
-
检查数学函数的使用-自然对数块,识别数学功能-可能导致非有限输出信号的自然对数块。
-
检查数学函数的用法-常用(以10为底)对数块,识别数学函数-通用(以10为底)的对数模块,可能会导致输出信号不确定。
-
检查数学功能的使用-除法运算块后的余数,识别数学函数-除法除法运算块之后的余数,可能会导致输出信号不确定。
-
检查数学功能的使用-倒数模块,识别数学功能-可能在输出端产生非限定信号的倒数块。
-
检查分配块的使用,标识可能具有不完整的数组初始化的分配块,这些分配块没有模拟运行时诊断如果未将任何输出元素分配给以下对象,则将采取以下措施:
-
警告,如果分配块在迭代器子系统中
-
错误,如果工作分配块不在迭代器子系统中
-
-
-
Check usage of Signal Routing blocks
确定Simulink中信号路由模块的使用可能会影响安全性。常见的路由模块为Switch模块,该项会对switch进行如下的检查:检查开关块,标识可能在表达式的至少一侧为浮点变量或常量的表达式中使用不等号运算符(〜=)生成代码的Switch块。Switch块可能会在生成的代码中引起浮点不等式比较。
-
Check usage of Logic and Bit Operations blocks
确定Simulink中逻辑和位运算模块的使用可能会影响安全性。该项主要进行如下检查:
- 计算关系运算符的块:标识计算关系运算符的块,该关系运算符对不同的数据类型进行操作或将浮点类型等同。当关系运算符在两种不同的数据类型上进行操作,这可能导致所生成的代码产生不可预测的结果
- 计算关系运算符的块未输出布尔数据类型,这可能会导致生成的代码中出现不可预测的结果。
- 计算关系运算符的块试图将两个浮点数等价,这可能会导致生成的代码中出现不可预测的结果。
- 检查逻辑块,标识具有非布尔输入或输出的逻辑运算符块。这些块可能会导致生成的代码中出现浮点相等或不相等比较。
-
Check usage of Ports and Subsystems blocks
确定Simulink中端口和子系统模块的使用可能会影响安全性。将进行如下的检查:
- while迭代模块是否会进无限循环、
- For迭代模块是否会进行无限循环
- 检查if模块:用If表达式或Elseif表达式标识If块,这些表达式可能会在生成的代码中引起浮点相等或不相等比较。在没有Else条件的情况下使用Elseif表达式识别If块。确定输出端口未连接到If Action Subsystem块的If块。
- 检查switch块:识别没有默认输出的Switch Case块。标识带有未连接到Switch Case Action Subsystem模块的输出端口的Switch Case模块。
- 检查与时间有关的样本块,识别While和For Iterator子系统中与时间有关的样本块。
-
Check bus usage
标识用作总线创建器的任何Mux块以及视为矢量的任何总线信号。
-
Identify unconnected lines, input ports, and output ports
检查模型中是否存在未链接的模块
-
Check for Strong Data Typing with Simulink I/O
检查标记的输入和输出信号是否为强类型。确定Stateflow图表是否已清除Simulink I / O的“使用强数据键入”。
-
Check for inconsistent vector indexing methods
检查整个模型或子系统中向量索引方法的一致性用法。
检查整个模型或子系统中向量索引方法的一致性用法。(索引从0开始与索引从1开始)
-
Check for MATALB Function interfaces with inherited properties
确定具有输入,输出或参数的MATLAB函数,这些输入,输出或参数具有继承的复杂性或数据类型属性。
-
Check MATLAB Function metrics
显示MATLAB函数的复杂度和代码指标,并识别违反指标的情况。
对于模型或子系统中包含的MATLAB函数,确定了以下度量标准:
- LoC:总代码行
- ELoC:有效的代码行
- CLoC:代码注释行
- DC:注释的密度
- CYC:循环复杂度
-
Check MATLAB Code Analyzer messages
检查MATLAB函数中的%#codegen指令,MATLAB Code Analyzer消息和对齐消息ID
-
Check MATLAB code for global variables
避免在MATLAB代码中使用全局变量。
Stateflow
-
Check Stateflow data objects with local scope
检查stateflow内部信号和局部辅助变量的范围
-
Check usage of exclusive and default states in state machines
检查状态机的状态,包含如下子检查项:
- 检查Stateflow图表以获取排他状态:标识具有奇异(OR)状态的Stateflow图表。
- 检查Stateflow图表以获取未定义的默认状态:识别未定义默认状态的Stateflow图表。
- 检查分配为默认状态的多个状态:在Stateflow层次结构的根级别,仅应将一个状态分配为默认状态。
- 检查具有奇异OR状态的子状态:配置为OR的状态应始终是一组状态的一部分。
- 检查未定义默认状态的子状态:在Stateflow层次结构的每个级别上,都应分配一个默认状态。
- 检查定义了多个默认状态的子状态:在Stateflow层次结构的每个级别上,只应将一个状态分配为默认状态。
-
Check state machine type of Stateflow charts
检查状态机的状态流图类型,包含如下的检查项目:
- 对于使用经典流程图的状态机,需要将“状态机类型”指定为Mealy或Moore。
- 使用Mealy状态机类型识别Stateflow图。
- 检查使用Moore状态机类型识别Stateflow图。
-
Check Stateflow charts for ordering of states and transitions
标识不使用并行状态和转换的显式排序的Stateflow图表。确定已清除用户指定状态/转换执行顺序的状态流程图。在“图表属性”对话框中,为指定的图表选择“用户指定的状态/转换执行顺序”。
-
Check Stateflow debugging options
确定是否清除了以下Stateflow调试选项:检测溢出包装,检测周期和模拟范围检查
-
Check Stateflow charts for uniquely defined data objects
查找具有重复标识符的Stateflow本地数据,标识在图表内的多个作用域中定义的本地数据标识符。
Library Links
-
Identify disabled library links
搜索在模型中搜索禁用的库链接。意外禁用的库链接可能会导致意外的仿真结果,通常不应在禁用库链接的情况下保存模型。
-
Identify parameterized library links
在模型中搜索参数化的库链接。意外地对参数化的库链接进行设置可能会导致意外的仿真结果。
-
Identify unresolved library links
在模型中搜索未解析的库链接:找不到库块的链接。具有未解析的链接的模型无法仿真。
Model Referencing
-
Check safety-related model referencing settings
检查模型配置中可能影响安全性的模型引用设置。
-
Check for model reference configuration mismatch
识别其配置设置与顶级模型不匹配的模型块。
-
Check for parameter tunability information ignored for referenced models
检查其“模型参数配置”对话框指定参数可调性信息的模型。 Simulink忽略以这种方式为参考模型指定的可调性信息。
Bug Reports
-
Display bug reports for DO Qualification Kit显示DO资格认证工具包(R2016b)的错误报告
-
Display bug reports for Embedded Coder
显示嵌入式编码器(R2016b)的错误报告
-
Display bug reports for Polyspace Code Prover
显示Polyspace Code Prover(R2016b)的错误报告
-
Display bug reports for Polyspace Bug Finder
显示Polyspace Bug Finder(R2016b)的错误报告
-
Display bug reports for Simulink Code inspector
显示Simulink Code Inspector(R2016b)的错误报告
-
Display bug reports for Simulink Report Generator
显示Simulink报告生成器(R2016b)的错误报告
-
Display bug reports for Simulink Vertification and Validation
显示Simulink Verification and Validation(R2016b)的错误报告
-
Display bug reports for Simulink Test
显示Simulink Test(R2016b)的错误报告
Modeling Standards for EN 50128
-
Check model object names
识别无效的模型对象名称,该检查包括如下的几个名称:
- blocks
- signals
- Parameters
- Busses
- Stateflow elements
-
Display configuration management data
显示模型配置和校验信息
-
Display model metrics and complecity report
显示元素数量以及模型或子系统的子系统名称、级别和深度。
-
Check for unconnected objects
识别模型中未连接的线路,输入端口和输出端口
-
Check for root Inports with missing properties
在模型的顶层中标识缺少或继承的采样时间、数据类型或端口尺寸的Inport块,指定了入口块的属性
-
Check for root Inports with missing range definitions
识别具有最小或最大值缺失或错误的根级Inport块。
输入模块的最小值和最大值由模块参数或Simulink信号对象指定,这些参数明确解析为连接的信号线。
-
Check for root Outpots with missing range definitions
标识具有丢失或错误的最小值或最大值的根级输出块。
输出模块的最小值和最大值由模块参数或Simulink信号对象指定,这些参数明确解析为连接的信号线。
-
Check for blocks not recommended for C/C++ production code deployment
识别代码生成不支持的块或不建议将其用于C、C++代码编译部署的块。
-
Check usage of Stateflow constructs
确定使用State flow构造可能会影响安全性的部分。该项主要进行如下几方面的检查:
- 使用Simulink I / O检查强数据键入:验证配置设置以确保在Simulink和Stateflow结构之间的边界上进行强数据键入
- 检查Stateflow端口命名:识别Stateflow端口名称和相关信号之间的不匹配
- 检查Stateflow数据对象作用域:标识未在图表级别或以下级别范围内的具有本地范围的Stateflow数据对象
- 检查Stateflow状态操作的格式:确定状态中进入动作(en),动作(du)和退出动作(ex)条目之间缺少的换行符。确定语句中分号(;)后缺少的换行符。
- 检查Stateflow图以了解状态和转换的顺序:确定已清除用户指定状态/转换执行顺序的状态流程图。
- 检查Stateflow调试选项:确定是否清除了以下Stateflow调试选项:检测溢出,检测周期和模拟范围检查
- 检查Stateflow图以获取唯一定义的数据对象:标识在图表内的多个作用域中定义的本地数据标识符。
-
Check state machine type of Stateflow charts
检查状态机的状态流图类型,包含如下检查项:
-
检查经典状态机
-
检查使用Mealy状态机类型构造的Stateflow图。
-
检查摩尔状态机:使用Moore状态机类型构造的Stateflow图。
-
-
Check usage of Math Operation blocks
确定Simulink中数学运算模块的使用可能会影响安全性,包含如下检查项:
- 检查Abs块的使用情况:确定可能产生无法访问的代码或溢出的绝对值块
- 检查增益块的使用:识别值等于1的增益块
- 检查分配块的使用:标识可能具有不完整的数组初始化的分配块.
-
Check usage of Signal Routine blocks
确定Simulink中信号路由模块的使用可能会影响安全性,主要包含如下检查项:
- 检查开关块:标识可能会在表达式的至少一侧为浮点变量或常量的表达式中使用不等号运算符(〜=)生成代码的Switch块。
-
Check usage of Logic and Bit operations blocks
确定Simulink中逻辑和位运算模块的使用可能会影响安全性。主要进行如下的检查:
- 检查计算关系运算符的块:识别计算在不同数据类型或浮点类型上进行关系运算符的块
- 检查逻辑块:标识具有非布尔输入或输出的逻辑运算符块。
-
**Check usage of Ports and Subsystems blocks **
确定Simulink中端口和子系统模块的使用可能会影响安全性。主要包含如下检查:
-
在While Iterator块中检查:确定可能导致无限循环的While Iterator块
-
检查迭代器块:识别导致变量循环的Iterator块
-
检查开关盒块:识别没有默认大小写的Switch Case块,标识带有未连接到Switch Case Action Subsystem模块的输出端口的Switch Case模块。
-
检查if块:
- 用If表达式或Elseif表达式标识If块,这些表达式可能会在生成的代码中引起浮点相等或不相等比较。
- 确定输出端口未连接到If Action Subsystem块的If块。
-
-
Check for inconsistent vector indexing methods
检查整个模型或子系统中向量索引方法的一致性用法。
-
Check for model objects that do not link to requirement
检查未链接到需求文档的Simulink块和Stateflow对象
-
Check for MATLAB Function interfaces with inherited properities
确定具有输入,输出或参数的MATLAB函数,这些输入,输出或参数具有继承的复杂性或数据类型属性。
-
Check MATLAB Function metrics
显示MATLAB函数的复杂度和代码指标,并识别违反指标的情况,评价方向如下:
- LoC:总代码行
- ELoC:有效的代码行
- CLoC:代码注释行
- DC:代码的密度
- CYC:循环复杂度
-
Check MATLAB Code Analyzer messages
检查MATLAB函数中的%#codegen指令,MATLAB Code Analyzer消息和对齐消息ID
-
Check MATLAB code for golabal variables
检查在MATLAB代码中使用全局变量。
-
Display bug reports for Embedded Coder
显示嵌入式编码器(R2016b)的错误报告
-
Display bug reports for IEC Certification Kit
显示IEC认证工具包(R2016b)的错误报告
-
Display bug reports for Polyspace Code Prover
显示Polyspace Code Prover(R2016b)的错误报告
-
**Display bug report for Polysapce Bug Finder **
显示Polyspace Bug Finder(R2016b)的错误报告
-
Display bug reports for Simulink Design Verifier
显示Simulink Design Verifier(R2016b)的错误报告
-
Display bug reports for Simulink Verification and Validation
显示Simulink验证和确认(R2016b)的错误报告
-
Display bug reports for Simulink Test
显示Simulink Test(R2016b)的错误报告
Modeling Standards for IEC 61508
-
Check model object names
识别无效的模型对象名称,该检查包括如下的几个名称:
- blocks
- signals
- Parameters
- Busses
- Stateflow elements
-
Display configuration management data
显示模型配置和校验信息
-
Display model metrics and complexity report
显示元素数量以及模型或子系统的子系统名称、级别和深度。
-
Check for unconnected objects
识别模型中未连接的线路,输入端口和输出端口
-
Check for root Inports with missing properties
在模型的顶层中标识缺少或继承的采样时间、数据类型或端口尺寸的Inport块,指定了入口块的属性
-
Check for root Inports with missing range definitions
识别具有最小或最大值缺失或错误的根级Inport块。
输入模块的最小值和最大值由模块参数或Simulink信号对象指定,这些参数明确解析为连接的信号线。
-
Check for root Outputs with missing range definitions
标识具有丢失或错误的最小值或最大值的根级输出块。
输出模块的最小值和最大值由模块参数或Simulink信号对象指定,这些参数明确解析为连接的信号线。
-
Check for blocks not recommended for C/C++ production code deployment
识别代码生成不支持的块或不建议将其用于C、C++代码编译部署的块。
-
Check usage of Stateflow constructs
确定使用State flow构造可能会影响安全性的部分。该项主要进行如下几方面的检查:
- 使用Simulink I / O检查强数据键入:验证配置设置以确保在Simulink和Stateflow结构之间的边界上进行强数据键入
- 检查Stateflow端口命名:识别Stateflow端口名称和相关信号之间的不匹配
- 检查Stateflow数据对象作用域:标识未在图表级别或以下级别范围内的具有本地范围的Stateflow数据对象
- 检查Stateflow状态操作的格式:确定状态中进入动作(en),动作(du)和退出动作(ex)条目之间缺少的换行符。确定语句中分号(;)后缺少的换行符。
- 检查Stateflow图以了解状态和转换的顺序:确定已清除用户指定状态/转换执行顺序的状态流程图。
- 检查Stateflow调试选项:确定是否清除了以下Stateflow调试选项:检测溢出,检测周期和模拟范围检查
- 检查Stateflow图以获取唯一定义的数据对象:标识在图表内的多个作用域中定义的本地数据标识符。
-
Check state machine type of Stateflow charts
检查状态机的状态流图类型,包含如下检查项:
- 检查经典状态机
- 检查使用Mealy状态机类型构造的Stateflow图。
- 检查摩尔状态机:使用Moore状态机类型构造的Stateflow图。
-
Check usage of Math Operations blocks
确定Simulink中数学运算模块的使用可能会影响安全性,包含如下检查项:
- 检查Abs块的使用情况:确定可能产生无法访问的代码或溢出的绝对值块
- 检查增益块的使用:识别值等于1的增益块
- 检查分配块的使用:标识可能具有不完整的数组初始化的分配块.
-
Check usage of Signal Routing blocks
确定Simulink中信号路由模块的使用可能会影响安全性,主要包含如下检查项:
- 检查开关块:标识可能会在表达式的至少一侧为浮点变量或常量的表达式中使用不等号运算符(〜=)生成代码的Switch块。
-
Check usage of Logic and Bit Operations blocks
确定Simulink中逻辑和位运算模块的使用可能会影响安全性。主要进行如下的检查:
- 检查计算关系运算符的块:识别计算在不同数据类型或浮点类型上进行关系运算符的块
- 检查逻辑块:标识具有非布尔输入或输出的逻辑运算符块。
-
Check usage of Ports and Subsystems blocks
确定Simulink中端口和子系统模块的使用可能会影响安全性。主要包含如下检查:
-
在While Iterator块中检查:确定可能导致无限循环的While Iterator块
-
检查迭代器块:识别导致变量循环的Iterator块
-
检查开关盒块:识别没有默认大小写的Switch Case块,标识带有未连接到Switch Case Action Subsystem模块的输出端口的Switch Case模块。
-
检查if块:
- 用If表达式或Elseif表达式标识If块,这些表达式可能会在生成的代码中引起浮点相等或不相等比较。
- 确定输出端口未连接到If Action Subsystem块的If块。
-
-
Check for inconsisitent vector indexing methods
检查整个模型或子系统中向量索引方法的一致性用法。
-
Check for model objects that do not link to requirements
检查未链接到需求文档的Simulink块和Stateflow对象
-
Check for MATLAB Function interfaces with inherited properties
确定具有输入,输出或参数的MATLAB函数,这些输入,输出或参数具有继承的复杂性或数据类型属性。
-
Check MATLAB Function metrics
显示MATLAB函数的复杂度和代码指标,并识别违反指标的情况,评价方向如下:
- LoC:总代码行
- ELoC:有效的代码行
- CLoC:代码注释行
- DC:代码的密度
- CYC:循环复杂度
-
Check MATLAB Code Analyzer messages
检查MATLAB函数中的%#codegen指令,MATLAB Code Analyzer消息和对齐消息ID
-
Check MATLAB code for global variables
检查在MATLAB代码中使用全局变量。
-
Display bug reports for Embedded Coder
显示嵌入式编码器(R2016b)的错误报告
-
Display bug reports for IEC Certification Kit
显示IEC认证工具包(R2016b)的错误报告
-
Display bug reports for Polyspace Code Prover
显示Polyspace Code Prover(R2016b)的错误报告
-
Display bug reports for Polyspace Bug Finder
显示Polyspace Bug Finder(R2016b)的错误报告
-
Display bug reports for Simulink Design Verifier
显示Simulink Design Verifier(R2016b)的错误报告
-
Display bug reports for Simulink PLC Coder
显示Simulink PLC Coder(R2016b)的错误报告
-
Display bug reports for Simulink Verification and Validation
显示Simulink验证和确认(R2016b)的错误报告
-
Display bug reports for Simulink Test
显示Simulink Test(R2016b)的错误报告
Modeling Standards for IEC 62304
-
Check model object names
识别无效的模型对象名称,该检查包括如下的几个名称:
- blocks
- signals
- Parameters
- Busses
- Stateflow elements
-
Display configuration management data
显示模型配置和校验信息
-
Display model metrics and complexity report
显示元素数量以及模型或子系统的子系统名称、级别和深度。
-
Check for unconnected objects
识别模型中未连接的线路,输入端口和输出端口
-
Check for root Inports with missing properties
在模型的顶层中标识缺少或继承的采样时间、数据类型或端口尺寸的Inport块,指定了入口块的属性
-
Check for root Inports with missing range definitions
识别具有最小或最大值缺失或错误的根级Inport块。
输入模块的最小值和最大值由模块参数或Simulink信号对象指定,这些参数明确解析为连接的信号线。
-
Check for root Outputs with missing range definitions
标识具有丢失或错误的最小值或最大值的根级输出块。
输出模块的最小值和最大值由模块参数或Simulink信号对象指定,这些参数明确解析为连接的信号线。
-
Check for blocks not recommended for C/C++ production code deployment
识别代码生成不支持的块或不建议将其用于C、C++代码编译部署的块。
-
Check usage of Stateflow constructs
确定使用State flow构造可能会影响安全性的部分。该项主要进行如下几方面的检查:
- 使用Simulink I / O检查强数据键入:验证配置设置以确保在Simulink和Stateflow结构之间的边界上进行强数据键入
- 检查Stateflow端口命名:识别Stateflow端口名称和相关信号之间的不匹配
- 检查Stateflow数据对象作用域:标识未在图表级别或以下级别范围内的具有本地范围的Stateflow数据对象
- 检查Stateflow状态操作的格式:确定状态中进入动作(en),动作(du)和退出动作(ex)条目之间缺少的换行符。确定语句中分号(;)后缺少的换行符。
- 检查Stateflow图以了解状态和转换的顺序:确定已清除用户指定状态/转换执行顺序的状态流程图。
- 检查Stateflow调试选项:确定是否清除了以下Stateflow调试选项:检测溢出,检测周期和模拟范围检查
- 检查Stateflow图以获取唯一定义的数据对象:标识在图表内的多个作用域中定义的本地数据标识符。
-
Check state machine type of Stateflow charts
检查状态机的状态流图类型,包含如下检查项:
-
检查经典状态机
-
检查使用Mealy状态机类型构造的Stateflow图。
-
检查摩尔状态机:使用Moore状态机类型构造的Stateflow图。
-
-
Check usage of Math Operations blocks
确定Simulink中数学运算模块的使用可能会影响安全性,包含如下检查项:
- 检查Abs块的使用情况:确定可能产生无法访问的代码或溢出的绝对值块
- 检查增益块的使用:识别值等于1的增益块
- 检查分配块的使用:标识可能具有不完整的数组初始化的分配块.
-
Check usage of Signal Routing blocks
确定Simulink中信号路由模块的使用可能会影响安全性,主要包含如下检查项:
- 检查开关块:标识可能会在表达式的至少一侧为浮点变量或常量的表达式中使用不等号运算符(〜=)生成代码的Switch块。
-
Check usage of Logic and Bit Operations blocks
确定Simulink中逻辑和位运算模块的使用可能会影响安全性。主要进行如下的检查:
- 检查计算关系运算符的块:识别计算在不同数据类型或浮点类型上进行关系运算符的块
- 检查逻辑块:标识具有非布尔输入或输出的逻辑运算符块。
-
Check usage of Ports and Subsystems blocks
确定Simulink中端口和子系统模块的使用可能会影响安全性。主要包含如下检查:
-
在While Iterator块中检查:确定可能导致无限循环的While Iterator块
-
检查迭代器块:识别导致变量循环的Iterator块
-
检查开关盒块:识别没有默认大小写的Switch Case块,标识带有未连接到Switch Case Action Subsystem模块的输出端口的Switch Case模块。
-
检查if块:
- 用If表达式或Elseif表达式标识If块,这些表达式可能会在生成的代码中引起浮点相等或不相等比较。
- 确定输出端口未连接到If Action Subsystem块的If块。
-
-
Check for inconsistent vector indexing methods
检查整个模型或子系统中向量索引方法的一致性用法。
-
Check for model objects that do not link to requirements
检查未链接到需求文档的Simulink块和Stateflow对象
-
Check for MATLAB Function interfaces with inherited properties
确定具有输入,输出或参数的MATLAB函数,这些输入,输出或参数具有继承的复杂性或数据类型属性。
-
Check MATLAB Function metrics
显示MATLAB函数的复杂度和代码指标,并识别违反指标的情况,评价方向如下:
- LoC:总代码行
- ELoC:有效的代码行
- CLoC:代码注释行
- DC:代码的密度
- CYC:循环复杂度
-
Check MATLAB Code Analyzer messages
检查MATLAB函数中的%#codegen指令,MATLAB Code Analyzer消息和对齐消息ID
-
Check MATLAB code for global variables
检查在MATLAB代码中使用全局变量。
-
Display bug reports for Embedded Coder
显示嵌入式编码器(R2016b)的错误报告
-
Display bug reports for IEC Certification Kit
显示IEC认证工具包(R2016b)的错误报告
-
Display bug reports for Polyspace Code Prover
显示Polyspace Code Prover(R2016b)的错误报告
-
Display bug reports for Polyspace Bug Finder
显示Polyspace Bug Finder(R2016b)的错误报告
-
Display bug reports for Simulink Design Verifier
显示Simulink Design Verifier(R2016b)的错误报告
-
Display bug reports for Simulink PLC Coder
显示Simulink PLC Coder(R2016b)的错误报告
-
Display bug reports for Simulink Verfication and Validation
显示Simulink验证和确认(R2016b)的错误报告
-
Display bug reports for Simulink Test
显示Simulink Test(R2016b)的错误报告
Modeling Standards for ISO 26262
-
Check model object names
识别无效的模型对象名称,该检查包括如下的几个名称:
- blocks
- signals
- Parameters
- Busses
- Stateflow elements
-
Display configuration management data
显示模型配置和校验信息
-
Display model metrics and complexity report
显示元素数量以及模型或子系统的子系统名称、级别和深度。
-
Check for unconnected objects
识别模型中未连接的线路,输入端口和输出端口
-
Check for root Inports with missing properties
在模型的顶层中标识缺少或继承的采样时间、数据类型或端口尺寸的Inport块,指定了入口块的属性
-
Check for root Inports with missing range definitions
识别具有最小或最大值缺失或错误的根级Inport块。
输入模块的最小值和最大值由模块参数或Simulink信号对象指定,这些参数明确解析为连接的信号线。
-
Check for root Outports with missing range definitions
标识具有丢失或错误的最小值或最大值的根级输出块。
输出模块的最小值和最大值由模块参数或Simulink信号对象指定,这些参数明确解析为连接的信号线。
-
Check for blocks not recommended for C/C++ production code deployment
识别代码生成不支持的块或不建议将其用于C、C++代码编译部署的块。
-
Check usage of Stateflow constructs
确定使用State flow构造可能会影响安全性的部分。该项主要进行如下几方面的检查:
- 使用Simulink I / O检查强数据键入:验证配置设置以确保在Simulink和Stateflow结构之间的边界上进行强数据键入
- 检查Stateflow端口命名:识别Stateflow端口名称和相关信号之间的不匹配
- 检查Stateflow数据对象作用域:标识未在图表级别或以下级别范围内的具有本地范围的Stateflow数据对象
- 检查Stateflow状态操作的格式:确定状态中进入动作(en),动作(du)和退出动作(ex)条目之间缺少的换行符。确定语句中分号(;)后缺少的换行符。
- 检查Stateflow图以了解状态和转换的顺序:确定已清除用户指定状态/转换执行顺序的状态流程图。
- 检查Stateflow调试选项:确定是否清除了以下Stateflow调试选项:检测溢出,检测周期和模拟范围检查
- 检查Stateflow图以获取唯一定义的数据对象:标识在图表内的多个作用域中定义的本地数据标识符。
-
Check state machine type of Stateflow charts
检查状态机的状态流图类型,包含如下检查项:
- 检查经典状态机
- 检查使用Mealy状态机类型构造的Stateflow图。
- 检查摩尔状态机:使用Moore状态机类型构造的Stateflow图。
-
Check usage of Math Operations blocks
确定Simulink中数学运算模块的使用可能会影响安全性,包含如下检查项:
- 检查Abs块的使用情况:确定可能产生无法访问的代码或溢出的绝对值块
- 检查增益块的使用:识别值等于1的增益块
- 检查分配块的使用:标识可能具有不完整的数组初始化的分配块.
-
Check usage of Signal Routing blocks
确定Simulink中信号路由模块的使用可能会影响安全性,主要包含如下检查项:
- 检查开关块:标识可能会在表达式的至少一侧为浮点变量或常量的表达式中使用不等号运算符(〜=)生成代码的Switch块。
-
Check usage of Logic and Bit Operations blocks
确定Simulink中逻辑和位运算模块的使用可能会影响安全性。主要进行如下的检查:
- 检查计算关系运算符的块:识别计算在不同数据类型或浮点类型上进行关系运算符的块
- 检查逻辑块:标识具有非布尔输入或输出的逻辑运算符块。
-
Check usage of Ports and Subsystems blocks
确定Simulink中端口和子系统模块的使用可能会影响安全性。主要包含如下检查:
-
在While Iterator块中检查:确定可能导致无限循环的While Iterator块
-
检查迭代器块:识别导致变量循环的Iterator块
-
检查开关盒块:识别没有默认大小写的Switch Case块,标识带有未连接到Switch Case Action Subsystem模块的输出端口的Switch Case模块。
-
检查if块:
- 用If表达式或Elseif表达式标识If块,这些表达式可能会在生成的代码中引起浮点相等或不相等比较。
- 确定输出端口未连接到If Action Subsystem块的If块。
-
-
Check for inconsistent vector indexing methods
检查整个模型或子系统中向量索引方法的一致性用法。
-
Check for model objects that do not link to requirements
检查未链接到需求文档的Simulink块和Stateflow对象
-
Check for MATLAB Function interfaces with inherited properties
确定具有输入,输出或参数的MATLAB函数,这些输入,输出或参数具有继承的复杂性或数据类型属性。
-
Check for MATLAB Function metrics
显示MATLAB函数的复杂度和代码指标,并识别违反指标的情况,评价方向如下:
- LoC:总代码行
- ELoC:有效的代码行
- CLoC:代码注释行
- DC:代码的密度
- CYC:循环复杂度
-
Check MATLAB Code Analyzer messages
检查MATLAB函数中的%#codegen指令,MATLAB Code Analyzer消息和对齐消息ID
-
Check MATLAB code for global variables
检查在MATLAB代码中使用全局变量。
-
Display bug reports for Embedded Coder
显示嵌入式编码器(R2016b)的错误报告
-
Display bug reports for IEC Certification Kit
显示IEC认证工具包(R2016b)的错误报告
-
Display bug reports for Polyspace Code Prover
显示Polyspace Code Prover(R2016b)的错误报告
-
Display bug reports for Polyspace Bug Finder
显示Polyspace Bug Finder(R2016b)的错误报告
-
Display bug reports for Simulink Design Verifier
显示Simulink Design Verifier(R2016b)的错误报告
-
Display bug reports for Simulink Verification and Validation
显示Simulink验证和确认(R2016b)的错误报告
-
Display bug reports for Simulink Test
显示Simulink Test(R2016b)的错误报告
Modeling Standards for MAAB
Naming Conventions
-
Check file names
检查是否以不正确的字符或格式标识文件名(正确的字符是a-z,A-Z,0-9和下划线(_))
-
Check folder names
检查是否使用不正确的字符和格式识别文件夹。
-
Check subsystem names
标识使用在C代码中不正确的字符的子系统名称。
-
Check port block names
标识使用在C代码中不正确的字符的Inport或Outport块的名称。
-
Check character usage in signal labels
标识对于C变量名称不正确的信号标签。
-
Check character usage in block names
识别使用在C代码中不正确的字符的块名称。
Model Architecture
-
Check for mixing basic blocks and subsystems
确定模型中包括基本块和子系统的级别。模型的每个级别必须设计为具有相同级别的块(例如,仅子系统或仅基本块)。
Model Configuration Options
-
Check Implement logic signals as Boolean data
标识是否选择将逻辑信号实现为布尔数据(相对于双精度)。
-
Check model diagnostic parameters
标识是否对诊断结果进行设置
Simulink
-
Check for Simulink diagrams using nonstandard display attributes
识别Simulink图中的非标准显示属性,包含如下检查项:
- 检查格式设置,确定不正确的模型级格式选项。
- 检查模块颜色:使用非标准颜色识别块。
- 检查画布颜色:识别未使用白色的画布
- 检查图形放大:识别没有将缩放系数设置未100%的图表
-
Check font formatting
标识文本格式不一致。
-
Check positioning and configuration of ports
识别输入和输出端口的位置和配置不正确。
-
Check visibility of block port names
标识未统一显示的端口块名称。(块名称必须全部显示或不显示,库块是该规则的例外,此检查将忽略屏蔽块和子系统块)
-
Check display for port blocks
标识未显示端口号的输入输出模块
-
Check whether block names appear blow blocks
识别名称未显示在块下方的块。
-
Check the display attributes of block names
该项主要用于检查模块的名称是否缺失或者是是否需要隐藏,具体如下:
- 检查具有隐藏名称和明显功能的块:识别显示的块名称,但由于明显的行为可以将其隐藏。
- 检查缺少的块名称:识别隐藏的块名称,但应显示这些块名称以显示描述性名称。
-
Check position of Trigger and Enable blocks
标识不在子系统图顶部的触发器和启用块。
-
Check for nondefault block attributes
识别使用但无法显示非默认值的块。
-
Check for matching port and signal names
识别端口名称和相应信号之间的不匹配。
-
Check Trigger and Enable block names
将Trigger与Enable块的名称与触发子系统的信号名称进行匹配,若未命名信号,则为该块使用任何名称。
-
Check signal line labels
识别信号线标签不匹配的模块
-
Check for propagated signal labels
识别信号线上的传播标签。检查子系统块输入标签,标识子系统块的输入以验证信号是否带有标签。
-
Check for unconnected ports and signal lines
识别未连接的块输入端口,输出端口和信号线。
-
Check prohibited blocks in discrete controllers
识别离散控制器中不允许的块。
(禁止的块包括所有连续块以及一些source块和sink块) -
Check for blocks not recommended for C/C++ production code deployment
识别代码生成不支持的块或不建议将其用于C / C ++生产代码部署的块。
-
Check for prohibited sink blocks
确定在生成代码之前必须删除的sink块。
-
Check scope of From and Goto blcok
识别From和Goto块的错误范围。对于信号流,From和Goto块必须使用本地范围。控制流可以使用全局范围。
-
Check usage of Switch blocks
- 标识不将布尔输入用于开关条件(2输入)并且不将u2〜= 0用作传递第一个输入块参数的条件的开关块。
- 检查布尔开关条件:标识不使用布尔信号切换条件的块(输入2)。
-
Check usage of Relational Operator blocks
识别关系运算符块,该块用第一个(上)输入值连接到常量。
-
Check for indexing in blocks
标识索引不一致的块。
要提高代码效率,请使用基于零的索引。 -
Check usage of buses and Mux blocks
检查总线和多路复用器块的使用情况。是否正确使用总线模块,以及Mux模块是否按照矢量进行使用。
-
Check usage of tunable parameters in blocks
标识用于指定表达式,数据类型转换或索引操作的可调参数。
-
Check orientation of Subsystem blocks
检查方向不正确的子系统。方向正确的块在左侧具有输入,在右侧具有输出。
Stateflow
-
Check usage of exclusive and default states in state machines
标识不正确使用或定义排他和默认状态的Stateflow图表和子状态。主要包含如下的检查项:
- 检查Stateflow图表以获取排他状态:标识具有奇异(OR)状态的Stateflow图表。
- 检查Stateflow图表以获取未定义的默认状态:识别未定义默认状态的Stateflow图表。
- 检查分配为默认状态的多个状态:在Stateflow层次结构的根级别,仅应将一个状态分配为默认状态。
- 检查具有奇异OR状态的子状态:配置为OR的状态应始终是一组状态的一部分。
- 检查未定义默认状态的子状态:在Stateflow层次结构的每个级别上,都应分配一个默认状态。
- 检查定义了多个默认状态的子状态:在Stateflow层次结构的每个级别上,只应将一个状态分配为默认状态。
-
Check transition orientations in flow charts
确定Stateflow流程图中绘制线条方向不正确的部分,主要包含如下的检查项:
- 检查垂直绘制的条件:条件表达式应绘制在流程图的水平段上。
- 检查结点是否为默认过渡:流程图中的所有结点都应具有默认的退出。
- 检查结合了条件和动作的转换:流程图不应在单个转换中结合条件评估和动作表达式。
-
Check entry formatting in State blocks in Stateflow charts
确定状态中进入动作(en),动作(du)和退出动作(ex)条目之间缺少的换行符。确定语句中分号(;)后缺少的换行符。
-
Check return value assignments of graphical functions in Stateflow charts
在Stateflow图表中标识具有多个返回值分配的图形函数。
-
Check default transition placement in Stateflow charts
该条目包含如下检查项:
- 标识没有默认过渡或没有默认状态作为最顶层状态的所有状态分组,应当将默认过渡添加到状态分组。将默认转换连接到该状态的顶部。
- 标识默认过渡不是最高状态的状态,即重新排列状态,使默认状态为最上面的状态。将默认过渡的目标状态放在状态层次结构中的所有其他状态之上。
- 确定未连接到状态顶部的默认过渡:移动过渡,使其连接到状态的顶部。
- 识别具有多个默认过渡的状态
-
Check for Storage Data Typing with Simulink I/O
确定Stateflow图表是否已清除Simulink I / O的“使用强数据键入”。
-
Check Stateflow data objects with local scope
标识未在图表级别或以下级别范围内的具有本地范围的Stateflow数据对象。(数据使用范围local)
-
Check usage of return values from a graphical function in Stateflow charts
标识对条件表达式中使用的图形函数的调用。
-
Check for MATLAB expressions in Stateflow charts
识别使用不适合代码生成的MATLAB表达式的Stateflow对象。
注意:此检查仅适用于使用C作为操作语言的Stateflow图表。
-
Check for pointers in Stateflow charts
确定对自定义代码变量的指针操作。
注意:此检查仅适用于使用C作为操作语言的Stateflow图表。
-
Check for events broadcasts in Stateflow charts
识别可能在模拟过程中导致递归并生成效率低下的代码的无向事件广播。
-
Check transition actions in Stateflow charts
确定过渡动作之间缺少的换行符。
-
Check for bitwise operations in Stateflow charts
确定Stateflow图表中的按位运算符(&,|和^)。
如果为图表选择了“启用C位运算”,则仅报告包含布尔数据类型的表达式中的按位运算符。
否则,将报告该图表的所有按位运算符。注意:此检查仅适用于使用C作为操作语言的Stateflow图表。
P.S.在C语言中,&&与||表示正常的布尔关系,而&与|表示位操作
-
Check for unary minus operations on unsigned integers in Stateflow charts
标识应用于Stateflow对象中无符号整数的一元减号运算。
不确定的情况:Model Advisor无法确定包含一元运算符的表达式中的数据类型。为了允许Model Advisor确定数据类型,请考虑显式键入表达式。
-
Check for comparison operations in Stateflow charts
在Stateflow对象中标识具有不同数据类型的比较操作。
-
Check for equlity operation between floating-point expressions in Stateflow charts
在表达式的至少一侧为浮点变量或常量的表达式中,标识等于运算符(==)。
-
Check for mismatches between names of Stateflow ports and associated signals
识别Stateflow端口名称与关联信号之间的不匹配。
MATLAB Function
-
Check input and output settings of MATLAB Functions
确定具有输入,输出或参数的MATLAB函数,这些输入,输出或参数具有继承的复杂性,数据类型或大小属性。
-
Check MATLAB Function metrics
确定违反复杂性限制的MATLAB函数。分别以如下维度进行评价
LoC:总代码行
ELoC:有效的代码行
CLoC:代码注释行
DC:评论的密度
CYC:循环复杂度
-
Check MATLAB code for global variables
检查MATLAB代码中的全局变量,具体包括如下的检查项:
- 在MATLAB Function模块中使用的MATLAB代码中检查全局变量
- 检查Stateflow图中定义的MATLAB函数中的全局变量
- 检查被调用的MATLAB函数中的全局变量
Requirements Consistency Checking
-
Identify requirement links with missing documents
确保需求链接到现有文档
-
Identify requirement links that specify invalid locations within documents
确保要求链接到文档中的有效位置(例如书签,行号,锚点)
-
Identify selection-based links having desctiption fields that do not match their requirements document text
确保基于选择的链接的描述字段使用在其需求文档中找到的相同文本
-
Identify requirement links with path type inconsistent with preferences
检查需求路径是否为首选项中选择的类型(绝对路径,相对于模型,相对路径)
Simulation Accuracy
-
Check for non-continuous signals driving derivative ports
将驱动微分端口信号标记为非连续信号会导致大量求解器重置的建模问题
Simulation Runtime Accuracy Diagnostics
-
Runtime diagnositics for S-functions
检查数组范围和求解器一致性,是否存在S函数
-
Check if Read/Write diagnostics are enable for Data Store blocks
如果存在数据存储块,请验证是否已执行读/写顺序诊断检查。
Simulink Code Inspector compatibility checks
-
Check code generation settings
主要进行代码生成验证设置的检查:
- 检查“代码生成”>“接口”>“代码接口打包”是否设置为“不可重用”功能或“可重用”功能。
- 验证“将动态内存分配用于模型初始化”设置:检查是否清除了“所有参数”>“将动态内存分配用于模型初始化”
- 验证“共享代码放置”设置:检查“代码生成>接口>共享代码位置”是否设置为“共享位置”
- 验证“源文件”设置:检查代码生成>自定义代码>源文件是否设置为“”(即未指定)
- 验证“头文件”设置:检查代码生成>自定义代码>头文件是否设置为“”(即未指定)
- 验证“初始化功能”设置:检查代码生成>自定义代码>初始化功能是否设置为“”(即未指定)
- 验证“终止功能”设置:检查代码生成>自定义代码>终止功能是否设置为“”(即未指定)
- 验证“组合信号/状态结构”设置:检查是否已清除“所有参数”>“组合信号/状态结构”
- 验证“删除重置功能”设置:检查是否选择了“所有参数”>“删除重置功能”
- 验证“删除禁用功能”设置:检查是否清除了“所有参数”>“删除禁用”功能
- 验证“包含评论”设置:检查是否选择了“代码生成”>“注释”>“包含注释”
- 验证“在if语句中保留条件表达式”设置:检查是否在if语句中选择了“代码生成”>“代码样式”>“保留条件表达式”
- 验证“代码替换库”设置:检查“代码生成>接口>代码替换库”是否设置为“无”
- 验证“标准数学库”设置:检查“所有参数”>“标准数学库”是否设置为C89 / C90(ANSI)或C99(ISO)
- 验证“Classic call interface”设置:检查是否清除“All Parameters > Classic call interface”界面
- 验证“需要终止功能”设置:检查是否清除了“所有参数>终止功能”
- 验证“ MAT文件记录”设置:检查是否清除了“所有参数”>“ MAT文件记录”
- 验证“非限定数字”设置:检查是否清除“代码生成>接口>非限定数”
- 验证“绝对时间”设置:检查是否清除“代码生成>接口>绝对时间”
- 验证“删除实时模型数据结构中的错误状态字段”设置:检查是否选择了实时模型数据结构中的代码生成>接口>除去错误状态字段
- 验证“创建图块”设置:检查是否将“所有参数”>“创建块”设置为“无”
- 验证“测量功能执行时间”设置:检查是否清除“代码生成>验证>测量功能执行时间”
- 验证“信号命名”设置:检查“代码生成>符号>信号命名”是否设置为“无”
- 验证“参数命名”设置:检查“代码生成>符号>参数命名”是否设置为“无”
- 验证“ TLC选项”设置:检查是否将“所有参数”>“ TLC选项”设置为“”(即未指定)
- 验证“可变大小信号”设置:检查是否清除“代码生成>接口>大小可变”信号
- 验证“单一输出/更新功能”设置:检查是否选择了“所有参数”>“单个输出/更新功能”
- 验证“生成示例主程序”设置:检查是否选择了代码生成>模板>生成示例主程序
- 验证“铸造模式”设置:检查“代码生成”>“代码样式”>“强制转换”模式是否设置为“名义”
- 验证“如果无法访问,则禁止生成Stateflow切换语句的默认情况”:检查是否清除了“代码生成”>“代码样式”>“抑制Stateflow开关语句的默认情况下的生成”
- 验证“ SharedCodeRepository”设置:检查SharedCodeRepository是否设置为“”(即未指定)
- 验证“参数”设置:检查是否清除“代码生成>接口>参数”
- 验证“信号”设置:检查是否清除“代码生成>接口>信号”
- 验证“状态”设置:检查是否清除“代码生成>接口>状态”
- 验证“根级别的I / O”设置:检查是否清除“代码生成>接口>根级I / O”
- 验证“外部模式”设置:检查是否清除“代码生成>接口>外部模式”
- 验证“ ASAP2接口”设置:检查是否清除“代码生成>接口> ASAP2接口”
-
Check data import and export settings
验证“初始状态”设置
检查是否清除“数据导入/导出>初始状态”。
-
Check diagnostic settings
进行诊断设置检查,包含如下选项:
- 验证“多任务数据存储”设置:检查“诊断”>“数据有效性”>“多任务数据存储”是否设置为错误
- 验证“多任务速率转换”设置:检查“诊断”>“采样时间”>“多任务速率转换”是否设置为错误
- 验证“多任务有条件执行的子系统”设置:检查“诊断”>“采样时间”>“有条件执行的多任务”子系统是否设置为错误
- 验证“写后检测写”设置:检查“诊断”>“数据有效性”>“写后检测写”是否设置为EnableAllAsError
- 验证“未指定初始化检测”设置:检查是否将“所有参数”>“指定不足的初始化检测”设置为“简化”
- 验证“将非总线信号视为总线信号”设置:检查是否将“诊断”>“连接性”>“被视为总线信号的非总线信号”设置为错误
- 验证“检测向下转换”设置:检查“诊断”>“数据有效性”>“检测下行”是否设置为错误
- 验证“检测溢出”设置:检查“诊断”>“数据有效性”>“检测溢出”是否设置为错误
- 验证“溢出包装”设置:检查“诊断”>“数据有效性”>“溢出时换行”是否设置为错误
- 验证“溢出时饱和”设置:检查“诊断”>“数据有效性”>“溢出时饱和”是否设置为错误
- 验证“检测下溢”设置:检查“诊断”>“数据有效性”>“检测下溢”是否设置为错误
- 验证“检测可调性损失”设置:检查“诊断”>“数据有效性”>“检测可调性损失”是否设置为错误
- 验证“允许符号尺寸规格”设置:检查是否清除了“所有参数”>“允许符号尺寸规格”
- 验证“意外回溯”设置:检查“诊断”>“状态流”>“意外回溯”是否设置为错误
- 验证“图表初始化中无效的输入数据访问”设置:检查图表初始化中的“诊断”>“状态流”>“无效的输入数据访问”是否设置为“错误”
- 验证“无条件的默认过渡”设置:检查是否将“诊断”>“状态流”>“无条件的默认转换”设置为“错误”
- 验证“自然父母以外的过渡”设置:检查“诊断”>“状态流”>“自然父外部转换”是否设置为错误
- 验证“无法访问的执行路径”设置:检查“诊断>状态流>无法访问的执行路径”是否设置为“错误”
- 验证“非定向事件广播”设置:检查“诊断”>“状态流”>“非定向事件广播”是否设置为错误
- 验证“条件操作之前指定的转换操作”设置:检查在条件操作设置为错误之前是否已指定“诊断”>“状态流”>“转换操作”
- 验证总线信号是否被视为矢量设置:检查是否将“诊断”>“连接性”>“被视为矢量的总线信号”设置为“错误”
-
Check hardware implementation settings
进行硬件设置的检查,包含如下项:
- 验证“chart”设置:检查是否将Hardware Implementation> char设置为8
- 验证“short”设置:检查是否将Hardware Implementation> short设置为16
- 验证“int”设置:检查是否将Hardware Implementation> int设置为32
- 验证“long”设置:检查是否将Hardware Implementation> long设置为32
- 验证“float”设置:检查是否将Hardware Implementation> float设置为32
- 验证“double”设置:检查是否将Hardware Implementation> doouble设置为64
- 验证“pointer”设置:检查是否将Hardware Implementation> pointer设置为32
- 验证“size_t”设置:检查是否将Hardware Implementation> size_t设置为32
- 验证“ptrdiff_t”设置:检查是否将Hardware Implementation> ptrdiff_t设置为32
- 验证“native”设置:检查是否将Hardware Implementation> native设置为32
- 验证“有符号整数除法舍入为”设置:检查“硬件实现>有符号整数除法舍入为”是否设置为零
- 验证“在有符号整数上向右移位作为算术移位”设置:检查是否已选择“硬件实现>在有符号整数上右移作为算术移位”
- 验证“长期支持”设置:检查是否清除了“硬件实施>支持长久支持”
- 验证“测试硬件与生产硬件相同”设置:检查是否已选择“所有参数”>“测试硬件”与生产硬件相同
- 验证“设备供应商”设置:确定是否未将“硬件实施>设备供应商”设置为ASIC / FPGA-> ASIC / FPGA
-
Check optimization settings
- 验证“ AdvancedOptControl”设置:检查是否将所有参数> AdvancedOptControl设置为-SLCI
- 验证“将逻辑信号作为布尔数据实现(与双精度相比)”设置:检查是否已选中“所有参数”>“将逻辑信号实现为布尔数据(vs. double)”
- 验证“将代码从浮点数转换为整数值范围内的整数转换中删除”设置:检查是否选择了“优化”>“将代码从浮点数转换为整数,并转换为超出范围的值”
- 验证“将代码从饱和度转换为NaN到零的饱和度从浮点转换为整数转换”设置:检查是否已清除“所有参数”>“从饱和度将NaN映射为零的浮点到整数转换的代码删除”
- 验证“删除防止除法算术异常的代码”设置:检查是否清除了“优化”>“删除”代码以防止除法算术异常
- 验证“最大堆栈大小(字节)”设置:检查是否将“优化”>“信号和参数”>“最大堆栈大小(字节)”设置为inf
- 验证“将布尔数据打包到位字段中”设置:检查是否清除了“优化”>“信号和参数”>“将布尔数据打包到位字段中”
- 验证“使用位集存储状态配置”设置:检查是否清除了“优化”>“状态流”>“使用位集存储状态配置”
- 验证“简化数组索引”设置:检查是否清除了“所有参数”>“简化数组索引”
- 验证“默认参数行为”设置:此检查仅适用于参考模型。顶级型号与“内联参数”的所有可能值兼容
- 验证“使用位集存储布尔数据”设置检查是否清除了“优化”>“状态流”>“使用位集来存储布尔数据”
-
Check solver settings
主要进行解算器设置,包含如下检查项:
- 验证“类型”设置:检查“求解器>类型”是否设置为“固定步长”。
- 验证“ Solver”设置:检查“求解器”>“求解器”是否设置为“ FixedStepDiscrete”
- 验证“定期采样时间限制”设置:检查“求解器”>“定期采样时间”约束是否设置为“无约束”
- 验证“自动处理数据传输的速率转换”设置:检查是否已清除“求解器”>“自动处理数据传输的速率转换”
- 验证“允许任务在目标上并发执行”设置:如果未扩展配置以进行并发执行,则将忽略“ ConcurrentTasks”
-
Check for unconnected objects in the model
检查未连接的对象:识别模型或子系统中未连接的线路,输入端口和输出端口
-
Check system target file setting
验证系统目标文件设置:检查代码生成>系统目标文件是ert.tlc还是从ERT派生的系统目标文件
-
Check function specificcation setting
检查模型界面设置检查“模型接口”对话框中的“功能说明”是否设置为“默认模型初始化和步进功能”
-
Check for usage of fixed-point instrumentation
验证定点仪器的使用同时使用定点仪器和减少块可能会导致代码检查期间的不兼容性
-
Check for unsupported blocks
检查Simulink Code Inspector不支持的块识别Simulink Code Inspector不支持的块
-
Check storage class for workspace variables
检查存储类以查找模型引用的工作空间变量:使用模型中不受支持的存储类来识别工作空间变量
-
Check GetSet storage class for workspace variable
检查存储类以查找模型引用的工作空间变量:识别模型中使用不受支持的规范的GetSet存储类工作空间变量
-
Check for sample times in the model
检查采样时间:识别连续,异步,多个,联合或可变的采样时间
-
Check usage of Sources blocks
- 检查入口块:识别可能影响与Simulink Code Inspector兼容性的Inport块
- 检查Inport Shadow块:识别可能会影响与Simulink Code Inspector兼容性的Inport Shadow块
- 检查常量块:识别可能影响与Simulink Code Inspector兼容性的常量块(数据类型、采样时间)
- 检查接地块:识别可能会影响与Simulink Code Inspector兼容性的接地块
-
Check usage of Signal Rounting blocks
- 检查Bus Creator块:识别可能会影响与Simulink Code Inspector兼容性的Bus Creator块
- 检查总线选择器块:识别可能影响与Simulink Code Inspector兼容性的总线选择器模块
- 检查总线分配块:识别可能影响与Simulink Code Inspector兼容性的总线分配块
- 检查数据存储内存块:识别可能影响与Simulink Code Inspector兼容性的数据存储内存块
- 检查数据存储读取块:识别可能影响与Simulink Code Inspector兼容性的数据存储读取块
- 检查数据存储写块:识别可能会影响与Simulink Code Inspector兼容性的Data Store Write块
- From块检查:确定可能影响与Simulink Code Inspector兼容性的From块
- 检查goto块:确定可能影响与Simulink Code Inspector兼容性的Goto块
- 检查合并块:识别可能影响与Simulink Code Inspector兼容性的合并块
- 检查开关块:识别可能会影响与Simulink Code Inspector兼容性的Switch模块(非恒定值、数据类型)
- 检查多端口switch块识别可能影响与Simulink Code Inspector兼容性的多端口switch模块(将结果中列出的块的参数DataPortForDefault设置为Last data port,数据类型)
- 检查Mux块:识别可能影响与Simulink Code Inspector兼容性的Mux块
- 检查Demux块:识别可能会影响与Simulink Code Inspector兼容性的Demux块
- 检查选择器块:确定可能影响与Simulink Code Inspector兼容性的Selector块
- 检查向量连接块:识别可能影响与Simulink Code Inspector兼容性的Vector Concatenate块
-
Check usage of Math Operations blocks
-
检查绝对值块:确定可能影响与Simulink Code Inspector兼容性的绝对值块(数据类型)
-
检查Bias块:识别可能会影响与Simulink Code Inspector兼容性的偏差块
-
检查增益块:确定可能影响与Simulink Code Inspector兼容性的增益块(数据类型)
-
检查数学块:识别可能会影响与Simulink Code Inspector兼容性的Math块
-
检查Product块:确定可能影响与Simulink Code Inspector兼容性的Product块(数据类型)
-
检查Sum块:确定可能影响与Simulink Code Inspector兼容性的Sum块
-
检查三角块:识别可能影响与Simulink Code Inspector兼容性的三角函数块
-
检查Minmax块:确定可能影响与Simulink Code Inspector兼容性的Minmax块
-
检查舍入功能块:确定可能影响与Simulink Code Inspector兼容性的舍入功能块
-
检查Reshape块:识别可能影响Simulink Code Inspector兼容性的Reshape块
-
检查Sign块:识别可能会影响与Simulink Code Inspector兼容性的Sign块
-
检查Sqrt块:确定可能影响与Simulink Code Inspector兼容性的Sqrt块
-
检查Assignment块:识别可能影响与Simulink Code Inspector兼容性的Assignment块
-
检查多项式块:确定可能影响与Simulink Code Inspector兼容性的多项式块
-
检查DotProduct块:确定可能影响与Simulink Code Inspector兼容性的DotProduct块
-
检查UnaryMinus块
识别可能影响与Simulink Code Inspector兼容性的UnaryMinus块
-
-
Check usage of Signal Attributes blocks
- 检查数据类型转换块:识别可能影响与Simulink Code Inspector兼容性的数据类型转换块(采样时间、属性设置)
- 检查Data Type Duplicate块:识别可能影响与Simulink Code Inspector兼容性的Data Type Duplicate块
- 检查Data Type Propagation播块:识别可能影响与Simulink Code Inspector兼容性的Data Type Propagation块
- 检查Signal Specification块:识别可能影响与Simulink Code Inspector兼容性的Signal Specification模块
- 检查Signal Conversion块:识别可能影响与Simulink Code Inspector兼容性的Signal Conversion模块
- 检查Probe块:识别可能影响与Simulink Code Inspector兼容性的Probe块
- 检查RateTransition块:识别可能影响与Simulink Code Inspector兼容性的RateTransition块
- 检查Width块:确定可能影响与Simulink Code Inspector兼容性的Width块
-
Check usage of Logical and Bit Operations blocks
- 检查关系运算符块:识别可能影响与Simulink Code Inspector兼容性的关系运算符块(数据类型)
- 检查逻辑块:识别可能影响与Simulink Code Inspector兼容性的逻辑块(数据类型)
- 检查按位运算符块:确定可能影响与Simulink Code Inspector兼容性的按位运算符块
- 检查ArithShift块识别可能影响与Simulink Code Inspector兼容性的ArithShift块
-
Check usage of Lookup Tables blocks
- 检查查找表(n-D)块:识别可能影响Simulink Code Inspector兼容性的查找表(n-D)块(采样时间、属性设置)
- 检查PreLookup块:识别可能影响与Simulink Code Inspector兼容性的PreLookup块
-
Check usage of User-Defined Function blocks
- 检查S功能块:识别可能影响与Simulink Code Inspector兼容性的S功能块(编写工具、
-
Check usage of Ports and Subsystems blocks
- 检查Enable Port块:识别可能会影响与Simulink Code Inspector兼容性的Enable Port块(数据类型)
- 检查模型参考块:识别可能会影响与Simulink Code Inspector兼容性的Model Reference模块
- 检查子系统块识别可能影响与Simulink Code Inspector兼容性的子系统块(属性设置、数据类型)
- 检查操作子系统块:识别可能影响与Simulink Code Inspector兼容性的Action Subsystem模块(Code Inspector不支持包含模型参考块或条件子系统的动作子系统。重新配置模型以将其从动作子系统中删除。)
- 检查触发端口块:识别可能会影响与Simulink Code Inspector兼容性的触发端口块
- 检查操作端口块:识别可能会影响与Simulink Code Inspector兼容性的操作端口块
- 检查if块:识别是否可能影响Simulink Code Inspector兼容性的if模块
- 检查函数调用生成器块确定可能会影响与Simulink Code Inspector兼容性的Function-Call Generator模块
- 检查SwitchCase块:识别可能影响与Simulink Code Inspector兼容性的SwitchCase块
- 检查迭代器块:确定可能影响与Simulink Code Inspector兼容性的For Iterator块
- 检查Each块:确定可能影响与Simulink Code Inspector兼容性的Each模块
- 检查状态控制块:识别可能会影响与Simulink Code Inspector兼容性的状态控制块
-
Check usage of Discontimuities blocks
- 检查饱和块:识别可能影响与Simulink Code Inspector兼容性的饱和块
- 检查继电器块识别可能影响与Simulink Code Inspector兼容性的中继块
-
Check usage of Sinks blocks
-
检查输出块:确定可能影响与Simulink Code Inspector兼容性的输出块
-
检查Terminator块
识别可能影响与Simulink Code Inspector兼容性的Terminator块
-
-
Check usage of Discrete blocks
- 检查单位延迟块:确定可能影响与Simulink Code Inspector兼容性的Unit Delay模块(数据类型)
- 检查离散积分器块:识别可能影响与Simulink Code Inspector兼容性的离散Integrator模块
-
Check usage of root Output blocks
-
验证采样时间:确定指定恒定采样时间的根输出块。
-
验证根出将总线作为结构传递给父模型
根出模块必须将总线作为结构传递给父模型,这样Simulink才不会在父模型中引入隐藏的总线转换模块。
-
-
Check for unsupport Signal Conversion blocks automatically inserted at signals entering block input ports
- 确认没有不支持的信号转换模块自动插入到输入模块入口的信号中:不支持验证已自动插入的信号转换模块
-
Check usage of buses
- 检查虚拟总线与非虚拟总线之间的自动转换。验证没有从虚拟总线到非虚拟总线的自动转换。
- 验证模型中没有任何块在总线上执行不受支持的操作,验证模型中没有非虚拟块在虚拟总线上运行
-
Check for usage of synthesized local data stores
验证综合本地数据存储使用情况
标识模型工作空间中的信号对象,这些对象被“数据存储读取”或“数据存储写入”块引用为合成本地数据存储。
如果Simulink软件找到了这样的信号对象,它将在模型的根级别创建一个隐藏的数据存储内存块。
该模型与Simulink Code Inspector不兼容。 -
Check usage of global data stores
验证全局数据存储使用情况
除非内联参数,并且它们的InitialValue不是可调参数,否则不能使用全局数据存储内存块
-
Check global data stores' name shadow
验证全局数据存储的名称shadow(阴影??)
如果全局数据存储内存块被本地数据存储内存块遮盖,则可能无法使用
-
Check for root Output blocks being conditionally assigned
验证没有有条件分配根输出端口
由条件执行的子系统为其分配根输出的子模型不支持代码验证。
-
Check conditional input branch execution setting
验证条件输入分支执行设置
设置条件输入分支执行后,检查是否设置了“信号存储重用”和“启用本地块输出”
-
Check usage of Stateflow blocks
检查Stateflow块
确定可能会影响与Simulink Code Inspector兼容性的Stateflow块
-
Check for Stateflow machine data
所有Stateflow数据都必须以Stateflow图表为父项
Simulink Code Inspector不支持机器范围的Stateflow数据
-
Check for Stateflow machine events
所有Stateflow事件都必须以Stateflow图表为父
Simulink Code Inspector不支持机器范围的Stateflow事件
-
Check usage of Stateflow charts
- 检查控制流没有周期,不支持循环控制流。
- 检查Stateflow对象选项板的用法,Stateflow图表不支持原子子图,原子盒和MATLAB函数。
- 检查所有图表是否都将“ C”指定为其动作语言Simulink Code Inspector不支持将MATLAB指定为其动作语言的图表
- 检查所有图表是否取消选择“创建用于监视子活动的数据”选项:Simulink Code Inspector不支持指定“创建用于监视子活动的数据”选项的图表
- 检查所有图表是否都将“继承”指定为其更新方法:Simulink Code Inspector不支持指定“离散”或“连续”更新方法的图表
- 检查状态或子状态是否具有默认转换:Simulink Code Inspector不支持没有默认过渡的状态或子状态
- 检查所有图表是否取消选择“启用超级步语义”选项:Simulink Code Inspector不支持指定“启用超级步骤语义”选项的图表
- 检查初始化时没有图表执行:Simulink Code Inspector不支持在初始化时执行的图表
- 检查是否没有图表导出图表级别的功能:Simulink Code Inspector不支持导出图表级功能的图表
- 检查所有图表是否取消选择“每次图表唤醒时初始化输出”选项:Simulink Code Inspector不支持指定“每次图表唤醒时初始化输出”选项的图表
- 检查是否没有图表为整数运算指定溢出时的饱和度:Simulink Code Inspector不支持整数操作溢出时饱和的图表(计算溢出)
- 检查Stateflow机器类型的使用:Simulink Code Inspector不支持将“ Stateflow Machine Type”指定为“ Moore”的Stateflow图表。
- 检查是否没有图表支持可变大小的数组:Simulink Code Inspector不支持支持可变大小数组的图表
- 检查控制流的结构,不支持非结构化的控制流。
- 检查所有控制流是否具有唯一的默认过渡:Simulink Code Inspector不支持非唯一的默认过渡
-
Check usage of Stateflow data
- 检查图表是否未使用常量范围定义Stateflow数据:Simulink Code Inspector不支持使用Constant范围定义Stateflow数据的图表
- 检查Stateflow数据的使用初始化方法:Simulink Code Inspector不支持为本地或输出范围Stateflow数据指定“ InitializeMethod”的Stateflow图表为“ Parameter”。
- 检查状态和框是否未定义Stateflow数据:Simulink Code Inspector不支持定义Stateflow数据的状态和框
- 检查Stateflow数据是否受支持的数据类型:Simulink Code Inspector仅支持内置的Stateflow数据,从'Simulink.IntEnumType'继承的枚举类型(默认值为0)和标量总线数据类型
- 检查图表是否未为范围为Output的图表数据指定初始值:Simulink Code Inspector不支持Stateflow图表中具有初始值的输出数据
- 检查Stateflow数据的“第一索引”为空还是0。:Simulink Code Inspector不支持指定非空或非零“第一索引”的Stateflow数据
- 检查Stateflow中的Stateflow参数数据大小与基本工作区是否匹配:Simulink Code Inspector不支持Stateflow和基础工作区中具有不同大小的Stateflow参数数据
- 检查图表仅使用非复杂数据:Simulink Code Inspector不支持Stateflow图表中的复杂数据
-
Check usage of Stateflow events
- 检查图表是否仅使用范围输出的事件:Simulink Code Inspector不支持Stateflow图表中的本地或输入事件
- 检查图表是否仅使用函数调用事件:Simulink Code Inspector不支持Stateflow图表中的边沿触发事件
-
Check usage of Stateflow states
-
检查控制流没有周期:不支持循环控制流。
-
检查操作没有不支持的操作,支持C动作语言的子集。
-
检查一维以上数组中的索引:Simulink Code Inspector不支持在一维以上的数组中建立索引
-
检查所有数组是否都使用“ int32”类型的索引:Simulink Code Inspector不支持索引类型不是'int32'的数组
-
检查是否没有操作访问上下文相关的常量:Simulink Code Inspector不支持访问上下文相关的常量的操作(即以'c'或'C'作为后缀)
-
检查是否没有操作可访问自定义数据Simulink Code Inspector不支持访问自定义数据的操作
-
检查状态或子状态是否具有默认转换:Simulink Code Inspector不支持没有默认过渡的状态或子状态
-
检查操作是否对枚举类型操作数没有不支持的操作:Simulink Code Inspector不支持对枚举类型操作数进行操作的子集
-
检查图形函数参数的数据类型:Simulink Code Inspector不支持使用图形函数调用使用不同实际和预期参数数据类型的Stateflow图表。
-
检查图形函数参数的尺寸:Simulink Code Inspector不支持具有图形函数调用的Stateflow图表,这些函数具有不同的实际和预期参数大小。
-
检查是否没有动作包含参数为无效数据类型的函数:Simulink Code Inspector不支持包含其参数为无效数据类型的函数的操作
-
检查是否没有动作包含其操作数为混合数据类型的二进制运算符:Simulink Code Inspector不支持包含二进制运算符的操作,该运算符的操作数为混合数据类型
-
检查没有Stateflow函数具有超过2个参数:Simulink Code Inspector不支持具有两个以上参数的Stateflow函数
-
检查图表是否没有并行分解的状态:Simulink Code Inspector不支持并行分解的状态
-
检查Simulink Function参数的数据类型:Simulink Code Inspector不支持具有Simulink函数调用的Stateflow图表,这些函数具有不同的实际和预期参数数据类型。
-
检查Simulink Function参数的尺寸:Simulink Code Inspector不支持带有Simulink函数调用且实际参数大小和预期参数大小不同的Stateflow图表。
-
检查Stateflow状态InlineOption的使用:Simulink Code Inspector不支持将“ InlineOption”指定为“ Auto”或“ Function”的Stateflow状态。
-
检查所有状态是否取消选择“创建要监视的数据”选项:Simulink Code Inspector不支持指定“创建用于监视的数据”选项的状态
-
检查没有动作的访问时间(t):Simulink Code Inspector不支持访问时间(t)的操作
-
检查真值表参数的数据类型:Simulink Code Inspector不支持Stateflow图表,这些图表的真值表具有不同的实际和预期参数数据类型。
-
检查真值表参数的维:Simulink Code Inspector不支持Stateflow图表,其中的真值表具有不同的实际和预期参数大小。
-
检查控制流的结构:不支持非结构化的控制流。
-
检查所有控制流是否具有唯一的默认过渡:Simulink Code Inspector不支持非唯一的默
-
检查所有转换路径是到子状态的内部转换,还是到同级,直接父项或直接子状态的外部转换:Simulink Code Inspector不支持任意转换路径
-
-
Check usage of Stateflow junctions
- 检查非终止联结是否恰好具有一个无条件的退出过渡,Stateflow联结具有多个传出的无条件转换或无无条件转换,将阻止执行代码检查器
- 检查图表是否未使用历史结点:Simulink Code Inspector不支持历史结点
- 检查终止Stateflow联结的用法:Simulink Code Inspector不支持终止追溯到Stateflow状态的Stateflow结点。
- 检查无条件转换是否按执行顺序最后执行
-
Check usage of Stateflow transitions
- 检查操作没有不支持的操作(支持C动作语言的子集)
- 检查一维以上数组中的索引:Simulink Code Inspector不支持在一维以上的数组中建立索
- 检查所有数组是否都使用“ int32”类型的索引:Simulink Code Inspector不支持索引类型不是'int32'的数组
- 检查所有转换条件是否均为布尔数据类型:Simulink Code Inspector仅支持布尔数据类型的转换条件
- 检查是否没有操作访问上下文相关的常量:Simulink Code Inspector不支持访问上下文相关的常量的操作(即以'c'或'C'作为后缀)
- 检查是否没有操作可访问自定义数据Simulink Code Inspector不支持访问自定义数据的操作
- 检查操作是否对枚举类型操作数没有不支持的操作Simulink Code Inspector不支持对枚举类型操作数进行操作的子集
- 检查是否没有转换具有事件触发器:Simulink Code Inspector不支持转换事件触发器
- 检查图形函数参数的数据类型Simulink Code Inspector不支持使用图形函数调用使用不同实际和预期参数数据类型的Stateflow图表。
- 检查图形函数参数的尺寸:Simulink Code Inspector不支持具有图形函数调用的Stateflow图表,这些函数具有不同的实际和预期参数大小。
- 检查Stateflow转换都与Simulink Code Inspector兼容。
- 检查是否没有动作包含参数为无效数据类型的函数Simulink Code Inspector不支持包含其参数为无效数据类型的函数的操作
- 检查是否没有动作包含其操作数为混合数据类型的二进制运算符:Simulink Code Inspector不支持包含二进制运算符的操作,该运算符的操作数为混合数据类型
- 检查没有Stateflow函数具有超过2个参数:Simulink Code Inspector不支持具有两个以上参数的Stateflow函数
- 检查Simulink Function参数的数据类型:Simulink Code Inspector不支持具有Simulink函数调用的Stateflow图表,这些函数具有不同的实际和预期参数数据类型。
- 检查Simulink Function参数的尺寸:Simulink Code Inspector不支持带有Simulink函数调用且实际参数大小和预期参数大小不同的Stateflow图表。
- 检查没有动作的访问时间(t):Simulink Code Inspector不支持访问时间(t)的操作
- 检查真值表参数的数据类型:Simulink Code Inspector不支持Stateflow图表,这些图表的真值表具有不同的实际和预期参数数据类型。
- 检查真值表参数的维:Simulink Code Inspector不支持Stateflow图表,其中的真值表具有不同的实际和预期参数大小。
-
Check usage of Stateflow gtaphical functions
确定Stateflow图形功能的使用可能会影响与Simulink Code Inspector的兼容性
-
Check usage of Stateflow truth tables
确定Stateflow真值表的使用可能会影响与Simulink Code Inspector的兼容性
-
Check Loop unrolling threshold setting
验证循环展开阈值设置:检查“循环展开阈值”是否设置为一个值,这样就不会生成部分展开的循环。(将“优化”>“信号和参数”>“循环展开阈值”设置为小于或等于2,以生成所有展开的循环,或将其设置为大于8,以生成所有展开的循环。)
-
Check destinations of If and Switchcase blocks
检查If和Switchcase块的目标Action子系统:检查连接到相同的If或Switch Case块的Action子系统是否统一组合或分离其输出和更新代码
-
Check for root Output blocks that have non-auto storage class
验证是否支持根输出的存储类:如果将参数“将可重用子系统输出为”设置为“单个参数”,则对于非自动存储类的根输出具有子端口的子模型不支持代码验证。
-
Check for Terminator blocks connected to Model Reference block outports
检查模型参考块的连通性:识别连接到Terminator模块的模型参考模块。
-
Check for unsupported propagation of initial condition values
检查初始条件值的不受支持的传播:在首次初始化期间检查是否有任何块传播初始条件
-
Check for usage of data dictionary
检查数据字典的使用不支持在数据字典中定义了数据的模型
-
Check data type replacement names
标识不是Simulink名称或Simulink.AliasType的替换名称
-
Check usage of MATLAB Function Blocks
- 检查包含“ / *”,“ * /”或以字符“ *”开头或结尾的块名称
- 检查是否不支持使用存储类:识别具有恒定采样时间的块以及非自动存储类的输出
- 检查不支持的测试点识别具有恒定(Inf)采样时间和测试点输出的模块
- 检查块出口的存储类别使用不受支持的自定义存储类类型,数据初始化或InitialValue识别块的输出
- 检查具有大于二维输入或输出的块:识别输入或输出大于二维的块
- 识别带有框架输入或输出的块
- 检查所有MATLAB函数是否将“更新方法”设置为“继承”:Simulink Code Inspector不支持将'Update method'设置为'Inherited'以外的值的MATLAB函数
- 检查MATLAB函数不包含输入触发信号:Simulink Code Inspector不支持包含输入触发信号的MATLAB函数
- 检查MATLAB函数是否不包含函数调用输出信号:Simulink Code Inspector不支持包含函数调用输出信号的MATLAB函数
- 检查是否使用了固定的或可调整参数的块,在不使用显式速率转换块的情况下不要驱动两个或多个多速率块。标识恒定的块或可以调整其参数的块,这些块正在驱动两个或多个多速率块,而无需使用显式的速率转换块。
- 检查所有MATLAB函数是否将'Saturate on integer溢出'设置为'Off'Simulink Code Inspector不支持将“在整数溢出时饱和”设置为“关”以外的值的MATLAB函数
- 识别具有非内联配置的不受支持的子系统
- 检查所有MATLAB函数是否将“将这些继承的Simulink信号类型视为fi对象”设置为“固定点和整数”以外的值:Simulink Code Inspector不支持将“将这些继承的Simulink信号类型作为fi对象处理”设置为“ Fixed-point&Integer”的MATLAB函数。
- 检查所有MATLAB函数是否将“支持可变大小的数组”设置为“关”:Simulink Code Inspector不支持将“支持可变大小的数组”设置为“关”以外的值的MATLAB函数
-
Check usage of Data in MATLAB Function
- 检查在MATLAB函数中定义的数据是否受支持的数据类型:Simulink Code Inspector仅在MATLAB函数中支持内置和标量总线数据类型的数据
- 检查在MATLAB函数中定义的数据是否支持维度:检查在MATLAB函数中定义的仅支持标量,向量或矩阵维的数据
- 检查MATLAB函数中定义的数据是否为非复杂数据:Simulink Code Inspector不支持MATLAB函数中的复杂数据
-
Check usage of Code in MATLAB Function
- 检查MATLAB代码中的冒号运算符是否具有不超过3个操作数:Simulink Code Inspector不支持具有3个以上操作数的冒号运算符。
- 检查MATLAB代码中的冒号运算符仅使用整数和双精度数据:Simulink Code Inspector仅在使用整数或双精度数据的MATLAB代码中支持冒号运算符
- 检查MATLAB函数中使用的数据是否受支持的数据类型Simulink Code Inspector仅在MATLAB函数中支持内置和标量总线数据类型的数据
- 检查MATLAB函数中的代码是否受支持:在MATLAB函数中检查仅支持标量,向量或矩阵维的代码
- 检查MATLAB函数中的代码是否受支持在MATLAB函数中检查仅支持标量维的代码
- 检查MATLAB代码中的非空括号:Simulink Code Inspector不支持Matlab代码中没有操作数的方括号
- 检查在MATLAB函数中定义的数据是双数据类型还是单数据类型Simulink Code Inspector在MATLAB函数中仅支持双重或单一类型的数据
- 检查MATLAB代码中的if语句是否使用标量条件如果条件不是标量,则Simulink Code Inspector不支持MATLAB代码中的if语句
- 用户定义的MATLAB函数必须将coder.inline指令设置为“始终”如果Simulink Code Inspector未指定coder.inline指令,或者coder.inline指令设置为“ always”以外的值,则它不支持用户定义的MATLAB函数。
- 检查MATLAB代码中的数学函数仅使用整数和浮点数据Simulink Code Inspector仅支持使用整数或浮点数据的MATLAB代码中的数学函数
- 检查MATLAB函数中是否没有代码缺少数据类型信息:Simulink Code Inspector不支持包含缺少数据类型信息的代码的MATLAB函数
- 检查MATLAB函数中是否没有代码缺少尺寸信息Simulink Code Inspector不支持包含缺少尺寸信息的代码的MATLAB函数
- 检查MATLAB代码中的所有函数调用都解析为已知的函数定义:Simulink Code Inspector不支持无法解析为已知函数定义的函数调用
- 检查MATLAB函数中使用的运算符是否没有混合数据类型的操作数Simulink Code Inspector不支持混合数据类型的运算符的MATLAB函数
- 在MATLAB代码中使用矩阵运算时,请检查“循环展开阈值”是否不会在生成的代码中导致部分展开的循环,如果“循环展开阈值”导致所生成代码中的部分展开循环,则Simulink Code Inspector不支持MATLAB代码中的矩阵运算
- 检查MATLAB代码中的运算符和函数是否支持操作数维。仅支持标量,检查运算符和函数的非标量操作数
- 检查MATLAB函数中不受支持的MATLAB代码
-
Check MATLAB Code Analyzer messages
检查MATLAB代码分析信息:
- 检查MATLAB功能块中使用的MATLAB代码
- 检查Stateflow图表中定义的MATLAB函数
- 检查调用的MATLAB函数
-
Check for multiple sample times in model used as a model reference target
检查用作模型参考目标的模型中的采样时间:确定用作具有多个采样时间的模型参考目标的模型
-
Check Treat each discrete rate as a separate task setting
验证将每个离散速率视为单独的任务设置检查是否为具有多个离散率的模型选择了“将每个离散率作为一个单独的任务处理”。
-
Check model for commented-out blocks
检查模型中注释掉的块
-
Check model for instrumented signals
检查模型中已检测的正弦信号
Simulink Design Verifier Compatibility checks
-
Check compatibility with Simulink Design Verfier
确定Simulink Design Verifier分析不支持的项目。(Simulink Design Verfier Design Error Check检查项与本项强相关)
Simulink Design Verfier Design Error Check
-
Detect Dead Logic
确定在执行期间保持不活动状态的逻辑。(无效逻辑)
('ADU_TC297B_Core2_TJP'与Simulink Design Verifier不兼容。)
-
Detect Integer Overflow
确定整数溢出的运行时实例。
-
Detect Division By Zero
确定运行时实例除以零。
-
Detect Out Of Bound Array Access
标识超出范围的数组访问的运行时实例。
-
Detect Violation of Specified Intermediate Minimum and Maximum Values
确定违反指定的中间最小值和最大值的运行时实例。
Simulink Model File Integrity
-
Check model for foreign characters
检查模型中的字符是否可以用当前编码表示。
-
Check Model History properties
检查模型历史记录属性:
检查模型以获取已编辑的“模型历史记录”属性值
检查“模型属性”对话框的“历史记录”窗格中的参数是否使用默认标签。在MDL文件格式中,配置一些模型属性以使用源代码管理工具关键字替换。
如果以SLX格式保存模型,则源代码管理工具无法执行关键字替换。
首次将MDL文件保存为SLX时,将缓存来自此类关键字替换的模型文件中的所有信息,并且以后将不再对其进行更新。
从那时起,“模型属性历史记录”窗格和模型中的任何“模型信息”块都会显示过时的信息。
Units Inconsistencies
-
Identify unit mismatches in the model
识别模型中单位不匹配的模块。
-
Identify automatic unit conversions in the modele
识别在模型中插入自动单位转换模块
-
Identify disallowed unit systems in the model
确定模型中不允许使用的单位系统的用法(???)
-
Identify undefined units in the model
确定未定义单位的用法
Upgrading to the Current Simulink Version
-
Open the Upgrade Advisor
与检查升级相关,需要运行升级顾问,之后再修改相关问题