使用模型切片器调试整数溢出设计错误检测
此示例展示如何使用模型切片器在Simulink®模型中调试整数溢出设计错误。金宝app
先决条件
本示例使用以下产品演示调试设计错误检测违规:下载188bet金宝搏
金宝appSimulink设计验证器™
金宝appSimulink Check™(模型切片机)
例子
1.开放模式sldvdemo_design_error_detection
.
open_system (“sldvdemo_design_error_detection”);
2.开放金宝appSimulink设计验证器点击应用程序>设计验证器.
3.在“设计验证器”页签中,单击检测设计错误.金宝appSimulink Design Verifier对模型进行分析,并将结果显示在结果总结窗口。
该模型突出显示了失败目标所在的子系统。
4.开放控制器
子系统,并选择其中一个以红色突出显示的块。
5.在“结果”窗口中,单击调试使用Model切片器调试违例。或者,在“设计验证器”选项卡中单击审查结果>使用切片器进行调试使用Model切片器调试违例。
在单击任意一个入口点进行调试时,在模型上进行以下设置:
目标失败的选定块被添加为Model Slicer的起始点。
模型突出显示了负责失败目标的部分。
设计模型被模拟并在违反时暂停。
6.通过检查端口标签对模型进行调试和分析。
提示:单击Sum块的输出信号线,启用该块的端口值标签。
您可以观察到,输入变量的和应该得到一个非零数。
7.研究和块的输入和输出数据类型。
这里,数据类型转换导致整数溢出。输入的数据类型为ufix16_En8
,其最大值为255.9961,而输出块的数据类型为sfix16_En8
,最大值为127.9961。在反例中,值介于这两个值之间。当和块(没有饱和)首先将输入值转换为其输出类型,然后执行算术操作时,就会发生溢出。
验证
要确认已解决整数溢出错误,请执行设计验证器选项卡上,单击检测设计错误.分析完成后,软件报告所有目标都是有效的。
额外的功能
您可以使用本例中演示的工作流使用Model切片器调试其他Design Error Detection违规。以下是支持的设计错误:金宝app
除以0
整数溢出
非finate和NaN(非数字)浮点值
指定的最小值和最大值违反
数据存储访问违规
指定块输入范围违规