Main Content

本页采用了机器翻译。点击此处可查看英文原文。

getCoverageInfo

cvdata 对象检索 Simulink Design Verifier 模块的覆盖率信息

说明

[covInfo,description] = getCoverageInfo(cvdo,modelObject) 根据 cvdo 中的覆盖率结果,收集 objectSimulink® Design Verifier™ 覆盖率。object 是模块、子系统或 Stateflow® 图的句柄。getCoverageData 仅返回 object 层次结构中 Simulink Design Verifier 库模块的覆盖率数据。

[covInfo,description] = getCoverageInfo(cvdo,modelObject,metric) 返回 metric 中指定的模块类型的覆盖率数据。如果 object 与模块类型不匹配,则 getCoverageInfo 不会返回数据。

[covInfo,description] = getCoverageInfo(cvdo,modelObject,metric,ignoreDescendants) 返回有关 object 的覆盖率数据,如果 ignoreDescendants 等于 1,则省略其后代对象的覆盖率数据。

示例

全部折叠

获取 Verification Subsystem1 中所有 Proof Objective 模块的覆盖率

mdl = 'sldvdemo_powerwindow_vs';
openExample(mdl);
open_system(mdl);
set_param(mdl, 'StopTime', '10')
testObj = cvtest(mdl);
testObj.settings.designverifier = 1;
data = cvsim(testObj);
verifSubsys = [mdl '/Verification Subsystem1'];
covProof = getCoverageInfo(data, verifSubsys, cvmetric.Sldv.proof)

covProof 是一个形式为 [covered_outcomestotal_outcomes] 的二元素向量,显示 1 个总体证明目标结果中的 1 个覆盖率结果。

获取 Verification Subsystem1 中特定 Test Objective 模块的覆盖率

mdl = 'sldvdemo_powerwindow_vs';
open_system(mdl)
set_param(mdl, 'StopTime', '10')
testObj = cvtest(mdl);
testObj.settings.designverifier = 1;
data = cvsim(testObj);
verifSubsys = [mdl '/Verification Subsystem1'];
testObjBlock = [verifSubsys '/Test Objective2'];
covTest = getCoverageInfo(data, testObjBlock)

covTest[covered_outcomes total_outcomes] 形式二元素向量,显示 1 个总测试目标结果中的 0 个覆盖率结果。

获取 Verification Subsystem1 中记录的所有可用度量的覆盖率数据和描述

mdl = 'sldvdemo_powerwindow_vs';
open_system(mdl)
set_param(mdl, 'StopTime', '10')
testObj = cvtest(mdl);
testObj.settings.designverifier = 1;
data = cvsim(testObj);
verifSubsys = [mdl '/Verification Subsystem1'];
[covAll, descrAll] = getCoverageInfo(data, verifSubsys, ...
{cvmetric.Sldv.proof, cvmetric.Sldv.test})

covAll 是一个元胞数组,其中的单元格与每个度量的目标结果相对应。descrAll 是一个元胞数组,其中的单元格与每个度量的描述相对应。

covAll{1} 
covAll{2} 

covAll{1} 是一个二元素向量,形式为 [covered_outcomes total_outcomes],显示 1 个总证明目标结果中的 1 个覆盖率结果。covAll{2} 是一个二元素向量,形式为 [covered_outcomes total_outcomes],显示 1 个总测试目标结果中的 0 个覆盖率结果。

descrAll{1}
descrAll{2}

descrAll{1} 是一个结构体数组,包含每个证明目标的描述,以及每个结果的描述和执行计数。descrAll{2} 是一个结构体数组,包含每个测试目标的描述,以及每个结果的描述和执行计数。

输入参数

全部折叠

覆盖率数据,指定为 cvdata 对象。

数据类型: cvdata

模型对象,指定为字符数组、字符串数组、Simulink 句柄、Stateflow ID 或元胞数组。

要指定模型对象(例如模块或 Stateflow 图),请使用以下格式之一:

对象设定描述

BlockPath

模型或模块的完整路径

BlockHandle

模型或模块

slObj

Simulink API 对象的句柄

sfID

Stateflow ID

sfObj

来自单独实例化的 Stateflow 图的 Stateflow API 对象的句柄

{BlockPath, sfID}

包含 Stateflow 图或原子子图的路径以及该图或子图中包含的对象的 ID 的元胞数组

{BlockPath, sfObj}

包含 Stateflow 图或子图的路径以及该图或子图中包含的 Stateflow 对象 API 句柄的元胞数组

{BlockHandle, sfID}

带有 Stateflow 图或原子子图句柄的元胞数组以及该图或子图中包含的对象的 ID

要指定 S-Function 模块或其内容,请使用以下格式之一:

对象设定描述

{BlockPath, fName}

包含 S-Function 模块路径和源文件名称的元胞数组

{BlockHandle, fName}

具有 S-Function 模块句柄和源文件名称的元胞数组

{BlockPath, fName, funName}

包含 S-Function 模块的路径、源文件的名称和函数名称的元胞数组

{BlockHandle, fName, funName}

带有 S-Function 模块句柄、源文件的名称和函数名称的元胞数组

要指定代码覆盖率结果,例如在软件在环(SIL) 或处理器在环(PIL) 分析期间收集的覆盖率数据,请使用以下格式之一:

对象设定描述

{fileName, funName}

包含源文件名称和函数名称的元胞数组

{Model, fileName}

具有模型名称或模型句柄和源文件名称的元胞数组

{Model, fileName, funName}

具有模型名称或模型句柄、源文件的名称和函数名称的元胞数组

数据类型: char | string | cell | Stateflow.State | Stateflow.Transition

要检索的覆盖率度量,指定为 cvmetric.Sldv 枚举或元胞数组,其值对应于 Simulink Design Verifier 库模块。如果您未指定度量,getCoverageInfo 将返回指定 modelObject 的所有可用度量的覆盖率信息。

test

Test Objective (Simulink Design Verifier) 模块

proof

Proof Objective (Simulink Design Verifier) 模块

condition

Test Condition (Simulink Design Verifier) 模块

assumption

Proof Assumption (Simulink Design Verifier) 模块

数据类型: cvmetric.Sldv

是否忽略覆盖率结果中的后代,指定为数字或逻辑 1 (true)0 (false),其中:

  • 0 (false) 包括后代对象的覆盖率结果。

  • 1 (true) 忽略后代对象的覆盖率结果。

数据类型: single | double | logical

输出参量

全部折叠

覆盖率信息,如果 cvdo 包含决策覆盖率数据,则返回为 [covered_outcomes,total_outcomes] 形式的双元素数组,如果不包含,则返回空数组。如果 modelObject 接收到多个度量的覆盖率,则 covInfo 返回一个由两元素数组组成的元胞数组,其中每个单元格对应一个度量。

covered_outcomesmodelObject 满足的决策结果数量
total_outcomesmodelObject 的决策结果总数

数据类型: double

覆盖率描述,以包含以下字段的结构体数组形式返回:

注意

如果 modelObject 接收到多个度量的覆盖率,则 description 返回一个结构元胞数组,其中每个单元格包含一个针对一个度量的 description 结构体。

模块排除标志,如果模块被排除则返回为 1,如果没有被排除则返回为 0

数据类型: double

模块覆盖率过滤器原理,以字符数组形式返回。

数据类型: char

已申述覆盖率目标结果的数量,以双精度标量形式返回。

数据类型: double

模块申述标志,如果模块对齐则返回 1,否则返回 0

数据类型: double

测试目标信息,以具有以下字段的结构体返回:

文本,以字符数组 'T' 形式返回。

数据类型: char

目标为 true 的时间步数,以双精度标量形式返回。

数据类型: double

数据类型: struct

数据类型: struct

备选方法

使用覆盖率设置来收集并显示 Simulink Design Verifier 库模块的覆盖率结果:

  1. 打开模型。

  2. 在模型编辑器中,选择建模选项卡上的模型设置

  3. 在配置参数对话框的覆盖率窗格中,选择启用覆盖率分析

  4. 覆盖率度量下,选择目标和约束

  5. 点击确定关闭配置参数对话框并保存更改。

  6. 仿真模型并检查结果。

版本历史记录

在 R2009b 中推出