Main Content

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

逻辑运算短路

短路由包含 && (AND)|| (OR) 运算符的逻辑表达式表现出来。

在涉及 && 运算符的逻辑表达式中,如果左侧表达式的计算结果为 false ,则整个表达式的计算结果也为 false 。在这种情况下,不会评估右侧表达式,因为结果已经由左侧表达式确定。

类似地,对于涉及 || 运算符的逻辑表达式,如果左侧表达式的计算结果为 true,则不会计算右侧表达式,因为结果由左侧表达式决定。这种逻辑表达式的短路评估可以帮助您避免在结果已经确定时进行不必要的评估,从而优化执行。

ConditionMCDC 目标的短路行为

当您分析死逻辑或生成测试时,ConditionMCDC 目标的逻辑运算符和逻辑表达式可以被视为短路或不短路。下表总结了不同的考虑因素:

ConditionMCDC 目标的短路考虑:

建模元素ConditionMCDC 目标的短路考虑

逻辑模块(独立/级联)

仅当 CovLogicBlockShortCircuit 处于开启状态时,ConditionMCDC 目标才会短路

使能、触发子系统

Condition 目标是短路的。MCDC 目标是非短路的。

MATLAB®、Stateflow®(C 或 MATLAB 作为动作语言)和其他 Simulink® 模块(Fcn、If)

ConditionMCDC 目标始终短路

Condition 目标的短路行为

下表总结了依赖于 CovLogicBlockShortCircuit 参数的 Condition 目标之间的差异:

基于 CovLogicBlockShortCircuit 参数的 Condition 目标的短路考虑

模块Condition 目标 CovLogicBlockShortCircuit 为 ON 时的条件表达式CovLogicBlockShortCircuit 为 OFF 时的条件表达式

具有 3 个端口的逻辑 AND模块

Condition ‘F’,端口 2

(输入 1 && ~输入 2)

(~in2)

具有 3 个端口的逻辑 OR模块

Condition ‘F’,端口 2

(〜in1 &&〜in2)

(~in2)

MATLAB 包含表达式的函数或图表 (u1 && u2 && u3)

‘u2’ False

(u1 && ~u2)

(u1 && ~u2)

MCDC 目标的短路行为

下表总结了根据 CovLogicBlockShortCircuit 参数而变化的目标差异,如下所示:

基于CovLogicBlockShortCircuit参数的MCDC目标的短路考虑:

模块MCDC 目标MCDCCovLogicBlockShortCircuit 为 ON 时的表达式MCDC CovLogicBlockShortCircuit 为 OFF 时的表达式

具有 3 个端口的逻辑 AND模块

输入端口 2 的输出表达式 false

(输入 1 && ~输入 2)

(在 1 && ~在 2 && 在 3)

输入端口 2 的输出表达式 true

(在 1 && 在 2 && 在 3)

(在 1 && 在 2 && 在 3)

MATLAB 包含表达式的函数或图表 (u1 && u2 && u3)

输入端口 2 的输出表达式 false

(输入 1 && ~输入 2)

(输入 1 && ~输入 2)

输入端口 2 的输出表达式 true

(在 1 && 在 2 && 在 3)

(输入 1 && 输入 2 && 输入 2)

注意

MCDC 表达式源自级联逻辑时,它遵循与逻辑模块类似的定义。

有关更多信息,请参阅 分析级联逻辑模块的 MCDC (Simulink Coverage) 中的“MCDC 的布尔表达式的短路”。

CovLogicBlockShortCircuit 参数对 ConditionMCDC 结果的影响

在某些情况下,MCDC 目标的覆盖率结果可能根据 CovLogicBlockShortCircuit 参数而变化,如下所示:

CovLogicBlockShortCircuit 参数为 OFF 时,所有输入都会被考虑。

基于CovLogicBlockShortCircuit参数的Condition目标的短路考虑:

模块Condition 目标Condition CovLogicBlockShortCircuit 为 ON 时的表达式Condition CovLogicBlockShortCircuit 为 OFF 时的表达式

具有 3 个端口的逻辑 AND模块

Condition ‘F’,端口 3

(in1 && in2 && ~in2)(死逻辑)

(~in2)(有源逻辑)

基于CovLogicBlockShortCircuit参数的MCDC目标的短路考虑:

模块MCDC 目标MCDCCovLogicBlockShortCircuit 为 ON 时的表达式MCDC CovLogicBlockShortCircuit 为 OFF 时的表达式

具有 3 个端口的逻辑 AND模块

输入端口 2 的输出表达式 false

(in1 && ~in2)(有源逻辑)

(in1 && ~in2 && in2)(死逻辑)