主要内容

检测溢出

方法检测溢出定点转换器在转换过程的数值测试阶段,你选择使用比例加倍来模拟定点代码。然后,应用程序报告生成的代码中哪些表达式产生了溢出定点数据类型的值。

先决条件

本示例需要以下产品:下载188bet金宝搏

创建新文件夹并复制相关文件

  1. 创建一个本地工作文件夹,例如:c: \溢出

  2. 改变docroot \工具箱\ fixpoint \例子文件夹中。在MATLAB命令行中,输入:

    Cd (fullfile(docroot, 'toolbox', 'fixpoint', 'examples'))

  3. 复制overflow.moverflow_test.m文件到您的本地工作文件夹。

    最佳实践是创建一个单独的测试脚本来进行预处理和后处理,例如:

    • 加载输入。

    • 设置输入值。

    • 输出测试结果。

    有关更多信息,请参见创建测试文件

    类型 的名字 描述
    函数代码 overflow.m MATLAB函数入口点
    测试文件 overflow_test.m 测试的MATLAB脚本overflow.m

溢流功能

overflow_test函数

打开定点转换器应用程序

  1. 导航到包含此示例文件的工作文件夹。

  2. 基于MATLAB的Toolstrip应用程序选项卡,在代码生成,单击应用程序图标。

选择源文件

  1. 添加入口点函数溢出到项目,浏览到文件overflow.m,然后单击开放.默认情况下,应用程序将该项目的信息和设置保存在当前文件夹中名为overflow.prj

  2. 点击下一个去…定义输入类型的一步。

    应用程序屏幕overflow.m代码违规和定点转换准备就绪问题。该应用程序没有发现问题overflow.m

定义输入类型

  1. 定义输入类型页面,添加overflow_test作为一个测试文件,浏览到overflow_test.m,然后单击开放

  2. 点击Autodefine输入类型

    测试文件运行。应用程序从测试文件中确定输入类型b双(1 x12)x双(256 x1),重置逻辑(1 x1)

  3. 点击下一个去…转换为定点的一步。

转换为定点

  1. 该应用程序生成一个仪表MEX函数为您的入口点MATLAB函数。该应用程序显示编译的信息-类型,大小和复杂性-变量在你的代码。有关更多信息,请参见查看和修改变量信息

    函数替换标签应用程序显示不支持定点转换的功能。金宝app看到运行一个仿真

  2. 要查看fimath设置,请单击设置箭头.设置fimath产品模式和模式KeepLSB.这些设置为C语言中整数操作的行为建模。

  3. 点击分析

    测试文件,overflow_test,运行。该应用程序显示模拟最小和最大范围变量选项卡。使用模拟范围数据,软件根据默认类型建议设置为每个变量提出定点类型,并将它们显示在建议类型列。

  4. 单击,将浮点算法转换为定点算法转换

    该软件验证了提出的类型,并生成入口点函数的定点版本。

    如果在验证过程中出现错误和警告,应用程序将它们显示在输出选项卡。看到验证类型

测试数字和检查溢出

  1. 单击测试箭头.验证测试文件是overflow_test.m.选择使用缩放双精度来检测溢出,然后单击测试

    该应用程序运行用于定义输入类型的测试文件,以测试定点MATLAB代码。因为您选择了检测溢出,所以它还使用建议的定点类型的缩放双版本运行模拟。按比例缩放的双精度存储它们的数据为双精度浮点数,因此它们执行全范围的算术运算。因为它们保留了固定点设置,所以当计算超出固定点类型的范围时,它们可以进行报告。

    模拟运行。该应用程序检测到溢出。应用程序报告溢位溢出选项卡。若要突出显示溢出的表达式,请单击溢出。

  2. 确定溢出的是累加还是乘法。

    fimath设置,设置产品模式FullPrecision,然后重复转换并再次测试定点代码。

    溢出仍然会发生,这表明是表达式中的加法溢出。