主要内容

固定点工具

将浮点模型转换为定点模型

描述

固定点工具使您能够自动将浮点模型转换为使用定点数据类型,优化模型上的现有数据类型,并使用丰富的统计信息和可视化分析模型上的范围和数据类型。

固定点工具根据您的需要提供三个工作流程:

  • 优化定点转换- 自动转换模型以使用优化的固定点数据类型。

  • 迭代定点转换- 自动提出固定点数据类型,并手动选择要应用于模型的数据类型。

  • 范围集合- 探索数据类型转换之前或之后模型的数值行为。

下表提供了这三个工作流程之间的差异的摘要。下面更详细地解释这些选项。

工作流 更改模型数据类型 便于使用 应用于模型的数据类型的控制量 需要了解系统行为公差 命令行工作流程
优化定点转换 是的 一个步骤 是的 fxpopt
迭代定点转换 是的 多次迭代 推荐 datatypeworkflow.converter.
范围集合 没有 一个步骤 N/A 推荐 datatypeworkflow.converter.

优化定点转换工作流程

优化定点转换工作流的固定点工具提供了一种完全自动化的转换Simulink的方法金宝app®模型到不动点。如果您知道系统期望的行为,并且可以指定此行为的可接受容忍范围,那么您可以使用此工作流为您的系统查找最佳数据类型。如果您额外指定任何已知范围或提供额外的模拟输入,就可以获得更好的结果。

该工具允许您指定允许的字长,并将考虑您指定的目标硬件的限制。还可以指定安全裕度,以增加按指定数量收集的范围的边界。优化的数据类型保持在指定的行为容忍范围内,并使设计成本最小化。如果发现了多个可行的解决方案,您可以对模型应用和探索不同的解决方案,以找到适合您需求的解决方案。金宝搏官方网站您可以使用丰富的可视化来探索基线模型中收集的范围和统计信息,以快速发现溢出和其他数值问题的来源。您可以在仿真数据检查器中比较不同定点实现的结果。

的数据类型优化后固定点工具,可以将工作流导出到MATLAB中®脚本。这允许您继续使用数据类型优化fxpopt在命令行中,它有额外的高级选项,可用于进一步定制优化过程。

该工作流将在优化过程完成时自动更改模型上的数据类型。如果在开始优化之前完成了准备步骤,则可以自动将模型恢复到初始状态。

迭代定点转换工作流

迭代定点转换工作流的固定点工具是一种在Simulink模型中指定定点数据类型的交互式自动方法。金宝app该工具收集模型对象的范围,然后提出可最大化精度并覆盖范围的定点数据类型。然后,您可以检查数据类型建议,并将它们选择性地应用到模型中的对象。

该工具允许您建议单词长度或分数长度,使您可以选择具有固定精度的设计,并且还将考虑指定的目标硬件的限制。还可以指定安全裕度,以增加按指定数量收集的范围的边界。丰富的可视化使您可以探索模型中的对象范围,并快速发现溢出和其他数值问题的来源,无论是在将模型转换为固定点之前还是之后。如果建议的数据类型不能满足您的需求,您可以继续在此过程中迭代。您可以在仿真数据检查器中比较不同定点实现的结果。

这个工作流可以让您完全控制将哪些提议的数据类型应用到您的模型(如果有的话)。如果完成了转换的准备步骤,就可以自动将模型恢复到原始状态。

这个工作流不需要您指定所需的系统的行为,但是建议您指定任何已知的范围,模拟输入,信号公差以达到更精确的数据类型的建议,能够评估提出了数据类型是否满足指定的需求的设计。

范围收集工作流程

范围集合工作流的固定点工具是一个分析和故障排除工具,不会更改您的模型。此工作流提供对数据类型转换工作流中发现的范围收集步骤的独立访问。

您可以选择在您的模型中指定附加的模拟输入和记录信号的公差。该工具将为所有指定的模拟输入单独收集范围,并为一个组合视图合并结果。如果希望研究系统的理想浮点行为,可以选择启用数据类型覆盖的范围。

丰富的可视化使您可以在转换为固定点之前或之后,探索模型中的对象范围,并快速发现溢出、下流和其他数值问题的来源。不满足指定公差的信号将在结果中突出显示。您可以使用仿真数据检查器比较模拟运行的结果。

打开定点工具

  • 金宝appSimulink Toolstrip:在应用程序标签,下面代码生成,单击应用程序图标。

  • MATLAB命令提示符:输入FXPTDLG.(“system_name”),在那里“system_name”是要转换为字符串的模型或系统的名称。

例子

全部展开

这个例子展示了如何使用优化定点转换工作流的固定点工具.本例中使用的模型是一个使用浮点数据类型建模的简单FIR滤波器。在本例中,您为过滤器的输出指定了已知的行为约束,并优化了嵌入式高效过滤器子系统。

打开mSimpleFIR模型。

open_system (“mSimpleFIR”);

检查嵌入式高效过滤器子系统。

open_system ('msimplefir /嵌入式高效过滤器');

已知的设计最小值和最大值在模型中的块上明确指定,包括在输入和输出上嵌入式高效过滤器子系统。

打开定点工具。在仿真软件上®金宝app应用程序标签,下面代码生成,单击应用程序图标。

要启动优化的定点转换工作流,请选择优化定点转换

选择要分析的子系统。下设计下的系统(sud),选择嵌入式高效过滤器子系统。

选择要使用的范围收集方法。下范围收集模式中,选择导出范围的模拟.在优化的范围分析步骤期间,该工具将从模拟最小值和最大值的范围组合,设计在模型中的块中明确指定的最小值和最大值,以及通过派生分析来计算的最小值和最大值来实现派生的范围模型中的对象。

指定模拟输入.对于本例,使用默认的模型输入进行模拟。

为记录的信号指定信号公差。设置绝对的宽容相对宽容output_signal: 10.01

要为定点转换准备模型,请单击准备.定点工具创建模型的备份版本,并检查模型是否与转换过程兼容。有关准备检查的更多信息,请参见使用定点工具为转换准备一个系统

接下来,扩展设置按钮箭头以配置要用于数据类型优化的设置。对于此示例,请使用默认设置。

要优化模型中的数据类型,请单击优化数据类型

在优化过程中,该软件分析系统中正在设计的对象的范围。优化将考虑所有指定的行为约束,包括设计最小值和最大值以及信号公差,以便在最小化目标函数的同时将异构数据类型应用到系统中。对于本例,目标函数被设置为默认值位宽度总和,这指示优化以最小化设计下系统中的单词长度的总和。

在优化过程中,软件更改了多个设置和模型配置参数。这些变化的这些目的包括抑制诊断,使使用模拟数据检查器进行记录,从而减少结果所消耗的内存,确保模型的有效性,加速优化过程,并关闭数据类型覆盖。有关更多信息,请参阅数据类型优化期间的模型配置更改.您可以在优化完成后恢复这些诊断。

关于优化过程的细节被打印到优化的细节窗格中的定点工具。通过单击,可以在优化搜索完成之前暂停或停止优化求解器停止

当优化完成时,定点工具将显示一个表,其中包含在优化过程中找到的所有解决方案。金宝搏官方网站解决方案1表中对应的是找到的最佳解决方案。

金宝搏官方网站解决方案基于表格中的订购成本,它由指定的目标函数定义设置菜单。满足定义的行为约束金宝搏官方网站的可行解在解表中标记为通过状态。金宝搏官方网站不满足行为约束的解决方案被标记为失败状态。这个例子使用过滤器子系统的输出公差来定义系统的期望行为。有关定义其他类型的行为约束的更多信息,请参见指定行为的约束

在优化过程中,该工具收集模型中对象的范围和统计信息。为了探索这些范围,在工作流的浏览器窗格中,选择BaselineRun

结果电子表格显示在优化范围收集阶段收集的统计信息的摘要,包括模拟最小值和模拟最大值。中的任何结果都可以查看更多详细信息结果细节窗格。这仿真数据可视化窗格显示模型中每个对象使用的位的直方图摘要。

中显示的信息可以自定义结果电子表格,或使用探索选项卡以根据附加条件对这些结果进行排序和过滤。有关更多信息,请参阅定点工具中的控制视图

在优化过程中找到的最佳解决方案,解决方案1,则自动应用于模型。要将此优化的解决方案与基线运行进行比较,请单击比较.在嵌入式高效过滤器子系统,您可以看到应用的优化定点数据类型。当你点击比较对于已记录信号的模型,工具将打开仿真数据检查.在仿真数据检查器中,选择output_signal.作为比较的信号。图的工厂输出信号解决方案1在指定的公差范围内。

您可以通过从解决方案表中选择解决方案并单击来继续探索其他解决方案金宝搏官方网站应用和比较

在定点工具中优化数据类型后,您可以选择将优化工作流步骤导出到MATLAB®脚本。这允许您保存当前优化工作流步骤,并继续使用数据类型优化fxpopt在命令行。

点击导出脚本导出名为的脚本fxpOptimizationOptions转到当前工作目录。

在转换过程之后,如果要在转换过程开始时将模型恢复为其状态,请单击恢复原始模型.在转换的准备阶段之后对模型所做的任何更改都将被删除。

这个例子展示了如何使用迭代定点转换工作流的固定点工具.本例中使用的模型是一个简单的FIR滤波器,使用对定点数据类型的初始猜测建模。在本例中,您为过滤器的输出指定了已知的行为约束,并改进了嵌入式高效过滤器子系统。

打开mSimpleFIR_fxp模型。

open_system (“mSimpleFIR_fxp”);

检查嵌入式高效过滤器子系统。

open_system (“mSimpleFIR_fxp /嵌入式高效过滤器”);

已知的设计最小值和最大值在模型中的块上明确指定,包括在输入和输出上嵌入式高效过滤器子系统。

打开定点工具。在仿真软件上®金宝app应用程序标签,下面代码生成,单击应用程序图标。

要启动优化的定点转换工作流,请选择迭代定点转换

选择要分析的子系统。下设计下的系统(sud),选择嵌入式高效过滤器子系统。

选择要使用的范围收集方法。下范围收集模式中,选择导出范围的模拟.在优化的范围分析步骤期间,该工具将从模拟最小值和最大值的范围组合,设计在模型中的块中明确指定的最小值和最大值,以及通过派生分析来计算的最小值和最大值来实现派生的范围模型中的对象。

指定模拟输入.对于本例,使用默认的模型输入进行模拟。

为记录的信号指定信号公差。设置绝对的宽容相对宽容output_signal: 10.01

要为定点转换准备模型,请单击准备.定点工具创建模型的备份版本,并检查模型是否与转换过程兼容。有关准备检查的更多信息,请参见使用定点工具为转换准备一个系统

接下来,收集范围。扩大收集范围按钮箭头并选择双精度.点击收集范围启动Range Collection运行。

当您选择双精度作为范围收集模式,该工具在启用数据类型覆盖的情况下模拟设计中的系统。数据类型覆盖对模型中的定点数据类型执行全局覆盖,从而避免量化效果。这使您能够为模型的行为建立一个理想的浮点基线。

范围收集的结果存储在BaselineRun.这结果电子表格显示范围收集模拟期间收集的统计信息的摘要,包括模型上当前指定的数据类型(SpecifiedDT)、仿真最小值和仿真最大值。已编译数据类型(CompiledDT)列显示所有对象的双倍嵌入式高效过滤器,这表明在距离收集模拟期间应用了数据类型覆盖。

中的任何结果都可以查看更多详细信息结果细节窗格。这仿真数据可视化窗格显示模型中每个对象使用的位的直方图摘要。模拟结果表明,模型中有若干物体存在潜在的潜流。

中显示的信息可以自定义结果电子表格,或使用探索选项卡以根据附加条件对这些结果进行排序和过滤。有关更多信息,请参阅定点工具中的控制视图

接下来,扩展设置按钮箭头,以配置用于数据类型建议的设置。集提出字长

根据收集的范围和指定的数据类型建议设置建议数据类型,单击提出数据类型.该工具使用所有可用的范围数据来计算数据类型建议,包括设计最小值或最大值,模拟最小值或最大值,以及导出的最小值或最大值。为系统中所有的对象提出了数据类型根据定点工具的更改锁定输出数据类型设置参数被清除。

要将建议的数据类型写入模型,请单击应用数据类型.工具更新SpecifiedDT列,以显示数据类型已应用于模型。

使用应用的定点数据类型模拟模型。扩大使用嵌入式类型进行模拟按钮箭头并选择指定数据类型.然后点击使用嵌入式类型进行模拟

固定点工具使用新的定点数据类型模拟模型,并为设计下系统中的所有对象记录最小和最大值和溢出数据。此信息存储在名为的新运行中EmbeddedRun.旁边的图标EmbeddedRun显示通过状态,表明设计中的系统中的所有信号满足指定的公差。这仿真数据可视化窗格更新以显示新的EmbeddedRun数据。

来比较储存在BaselineRun对于新应用的定点数据类型,请选择EmbeddedRun在SDI跑步比较下拉式菜单。然后点击比较结果打开仿真数据检查

在仿真数据检查器中,选择output_signal.作为比较的信号。

图中的滤波器输出信号为EmbeddedRun在指定的公差范围内。

如果转换后的系统的行为不满足您的需求,或者您希望研究其他数据类型选择的效果,您可以在应用新的建议设置之后提出新的数据类型。继续迭代,直到找到可以接受系统定点行为的设置。

在转换过程之后,如果要在转换过程开始时将模型恢复为其状态,请单击恢复原始模型.在转换的准备阶段之后对模型所做的任何更改都将被删除。

这个例子展示了如何使用范围集合工作流的固定点工具.本例中使用的模型是一个使用定点数据类型建模的简单FIR滤波器。在这个例子中,你分析模型的数值行为来确定溢出的来源嵌入式高效过滤器子系统。

打开mSimpleFIR_fxp_ovf模型。

open_system ('msimplefir_fxp_ovf');

检查嵌入式高效过滤器子系统。

open_system (“mSimpleFIR_fxp_ovf /嵌入式高效过滤器”);

已知的设计最小值和最大值在模型中的块上明确指定,包括在输入和输出上嵌入式高效过滤器子系统。

打开定点工具。在仿真软件上®金宝app应用程序标签,下面代码生成,单击应用程序图标。

要启动范围收集工作流,请选择范围集合

选择要分析的子系统。下设计下的系统(sud),选择嵌入式高效过滤器子系统。

选择要使用的范围收集方法。下范围收集模式中,选择导出范围的模拟.在范围收集过程中,该工具将从模拟最小值和最大值、在模型块上明确指定的设计最小值和最大值,以及通过静态分析计算得出的最小值和最大值,这些静态分析派生出模型中对象的范围。

指定模拟输入.对于本例,使用默认的模型输入进行模拟。

为记录的信号指定信号公差。设置绝对的宽容相对宽容output_signal: 10.01

接下来,扩展收集范围按钮箭头,以配置用于范围收集的设置。选择双精度在基线范围收集运行期间,使用双精度浮点数临时覆盖模型中的数据类型。点击收集范围

范围收集运行的结果存储在BaselineRun.这结果电子表格显示范围收集期间收集的统计信息的摘要,包括模型上当前指定的数据类型(SpecifiedDT)、仿真最小值和仿真最大值。已编译数据类型(CompiledDT)列显示所有对象的双倍嵌入式高效过滤器,这表明在距离收集模拟期间应用了数据类型覆盖。

中的任何结果都可以查看更多详细信息结果细节窗格。这仿真数据可视化窗格显示模型中每个对象使用的位的直方图摘要。

中显示的信息可以自定义结果电子表格,或使用探索选项卡以根据附加条件对这些结果进行排序和过滤。有关更多信息,请参阅定点工具中的控制视图

接下来,使用当前在模型上指定的定点数据类型模拟模型。扩大设置按钮箭头并选择指定数据类型,然后单击使用嵌入式类型进行模拟

定点工具将仿真结果存储在EmbeddedRun

旁边的图标EmbeddedRun显示失败状态,指示一个或多个信号不符合指定的公差。结果产品块表示此结果有问题。这结果细节窗格显示块溢出了1670次,表明选择的单词长度很差。

来比较储存在BaselineRun对于定点结果,选择EmbeddedRun在SDI跑步比较下拉式菜单。然后点击比较结果打开仿真数据检查.在仿真数据检查器中,选择output_signal.作为比较的信号。

相关例子

参数

分析或转换为定点的系统或子系统。您可以一次选择模型中的单个子系统,通过隔离数值问题的来源来方便调试,或者您可以选择顶级模型。

有关转换包含特定建模构造的系统的更多信息,请参见:

该工具如何在你的系统中收集对象的范围,指定为以下之一:

  • 模拟范围-通过模拟采集范围。若要收集和合并多个模拟运行的范围,请指定模拟输入.数据类型建议与提供的测试平台一样好。

  • 派生的范围-通过静态分析收集范围,导出范围,也称为范围分析派生的范围分析.使用此选项收集的范围仅基于模型上指定的设计范围。此选项通常提供更保守的数据类型建议。有关更多信息,请参阅距离分析是如何工作的

  • 导出范围的模拟-通过模拟和推导的量程分析收集量程,并结合结果。建议的数据类型是基于模拟范围和派生范围的联合。这个选项提供了最全面的范围信息。

有关更多信息,请参阅选择范围收集方法

模拟输入,指定为金宝app仿真软件。SimulationInput对象。

如果你选择范围收集模式模拟范围导出范围的模拟,您可以选择指定额外的模拟输入,以提高收集范围和数据类型建议的准确性。在距离采集模拟过程中固定点工具从每个指定的模拟场景获取最小值和最大值。如果金宝app仿真软件。SimulationInput对象包含多个模拟场景,则固定点工具基于所有模拟场景的合并范围提出数据类型。

一组全面的输入信号将会为您的系统带来更精确的数据类型建议。例如,请参见合并模拟范围的建议数据类型

要确定新的固定点实现的数值行为是否是可接受的,您可以为具有已启用日志记录的模型中的各个信号定义公差。您可以指定以下任何类型的公差:

  • 绝对的宽容- 原始信号与转换设计中的信号之间最大可接受差异的绝对值。

  • 相对宽容-原始输出和新设计输出之间的最大相对差,以百分比指定。例如,值为1)依照表示原始值与转换后的设计信号值之间的最大差值为1%。

  • 宽容时间(秒)- 时间间隔,其中最大值和最小值定义上部和较低值以比较。

优化定点转换工作流中,您必须指定至少一个行为约束以优化数据类型。信号容限是你可以指定的一种行为约束。

迭代定点转换在工作流中,提出数据类型时不需要信号公差,但工具需要信号公差来确定嵌入式运行是否在公差范围内。

范围集合在工作流程中,采集量程不需要信号公差,但工具需要信号公差来确定采集的量程是否在公差范围内。

有关更多信息,请参阅指定行为的约束公差计算

使用以下方法收集模型中对象的范围:

  • 使用当前设置-在模型上使用当前数据类型覆盖设置。

  • 双精度-使用double覆盖模型中的数据类型。

  • 单精度-使用single覆盖模型中的数据类型。

  • 按比例缩小的双精度-使用双精度缩放覆盖模型中的数据类型。

收集的范围取决于范围收集模式和任何模拟输入指定的。

有关更多信息,请参阅定点检测和数据类型覆盖使用范围收集的自定义数据类型覆盖设置

的数据类型选项设置菜单取决于所选的工作流。

优化的定点转换工作流选项

选项 描述
允许的字

(2:128)(默认)

可以在您的优化系统设计中使用的字长。优化的最终结果使用单词长度的交集允许的字和单词长度兼容在中指定的硬件约束硬件实现窗格的模型。

最大迭代

50(默认)

要执行的最大迭代次数,指定为标量整数。优化过程遍历不同的解,直到找到一个理想解,达到最大迭代次数,或达到另一个停止条件。金宝搏官方网站

最大时间(秒)

600(默认)

优化运行的最大时间量,以秒为标量数指定。优化将运行到指定的时间、理想的解决方案或另一个停止条件。

耐心(迭代)

10(默认)

未找到新的最佳解的最大迭代次数,指定为标量整数。只要算法继续寻找新的最佳解,优化就会继续进行。金宝搏官方网站

安全裕度(%)

0.(默认)

安全裕度,指定为一个正标量值,指示收集范围的边界增加的百分比。安全裕度适用于所有收集范围的并集。

目标函数

在优化搜索过程中使用的目标函数。优化算法力求在满足指定行为约束的前提下最小化目标函数。

  • 位宽度总和(默认值)-最小化位宽总和。

  • 操作员计数-最小化生成的C代码中操作符的估计数量。

    对于由Simulink模型生成的C代码,这个选项可能会导致更小的程序内存大小。金宝app这“OperatorCount”目标函数不适用于FPGA或ASIC目标。

笔记

使用操作员计数作为优化过程中的目标函数,模型必须为代码生成做好准备。有关确定代码生成准备情况的更多信息,请参见检查代码生成的模型和配置(嵌入式编码)

执行邻居搜索

(默认)

是否对优化解进行邻域搜索。

禁用此选项可以提高优化过程的速度,但也增加了找到不太理想的解决方案的机会。

使用并行

(默认)

是否并行运行优化迭代。

并行运行迭代需要并行计算工具箱™许可证。如果您没有并行计算工具箱许可证,或者如果无法启用此选项,则迭代在串行中运行。

迭代定点转换工作流选项

选项 描述
提出

是否为设计中的系统中的对象提出分数长度或字长度。

  • 分数长度(默认)固定点工具使用范围信息和指定的默认字长值以建议模型中对象的最佳精度分数长度。

  • 字长- - -固定点工具使用范围信息和指定的违约部分长度值为模型中对象的单词长度提出单词长度。

提出signedness

是的(默认)

是否使用收集的范围信息建议签名。

模拟安全裕度最小/最大(%)

2(默认)

指定适用于收集的模拟范围的安全裕度。这固定点工具将指定的数量添加到收集范围和在这个更大的范围上的基本建议。

将双/单/类型的一半

是的(默认)

是否为当前指定双精度、单精度或半精度数据类型的对象生成数据类型建议。

继承类型转换

是的(默认)

是否为当前指定继承数据类型的结果生成数据类型建议。

默认字长

16(默认)

用于数据类型建议的默认字长,指定为标量整数。该设置仅在提出设置为分数长度

违约部分长度

4.(默认)

用于数据类型建议的默认分数长度,指定为标量整数。该设置仅在提出设置为字长

范围收集工作流选项

选项 描述
验证使用

用于嵌入式模拟的数据类型覆盖设置。

  • 指定数据类型-使用模型中指定的数据类型

  • 按比例缩小的双精度- 覆盖数据类型,具有缩放双打。

限制

提示

之前介绍过的R2006a