检测溢出

属性显示如何检测溢出定点转换器在转换过程的数值测试阶段,选择使用缩放加倍模拟定点代码。然后,应用程序会报告生成的代码中哪个表达式会产生溢出定点数据类型的值。

先决条件

本示例需要以下产品:s manbetx 845

创建一个新的文件夹并复制相关文件

  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工具栏上应用程序选项卡,在代码生成,点击app图标。

选择源文件

  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. 该应用程序为您的入口点MATLAB函数生成一个仪表化的MEX函数。该应用程序显示编译后的信息——类型、大小和复杂度——用于代码中的变量。有关更多信息,请参见查看和修改变量信息

    函数替换选项卡显示定点转换不支持的功能。万博1manbetx看到运行一个仿真

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

  3. 点击分析

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

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

    该软件验证了建议的类型,并生成了一个不动点的入口点函数。

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

测试数值并检查溢出

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

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

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

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

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

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