主要内容

为块指定固定点属性

定点块参数

具有定点支持的工具箱块通常允许您通过块参数指定定点特征。通过为这些定点参数金宝app指定数据类型和缩放信息,您可以更接近地模拟目标硬件。

笔记

浮点继承优先于本节讨论的设置。当块有浮点输入时,所有块数据类型都匹配输入。

你可以找到大多数定点参数数据类型工具箱块的窗格。下图显示了一个典型的数据类型窗格。

所有具有固定点功能的工具箱块共享一组公共参数,但每个块可以具有不同的这些固定点参数的子集。下表提供了最常见的固定点块参数概述。

定点数据类型参数 描述

舍入模式

指定当指定的数据类型和缩放无法精确表示固定点计算的结果时要使用块的舍入模式。

舍入模式有关可用选项的详细信息。

整数溢出饱和

选择此参数时,块会使其定点操作的结果饱和。清除此参数时,块会将其定点操作的结果包装。

有关饱和和包裹的详细信息,请参见溢出处理对于定点操作。

中间产品

指定定点块的中间乘积的数据类型和比例。将乘法结果反馈到乘法器输入的块使用中间乘积数据类型。

请参阅特定块的参考页,了解该块的中间产品数据类型。

产品产量

指定必须计算乘法结果的固定点块的产品输出的数据类型和缩放。

请参阅特定块的参考页,了解该块的产品输出数据类型。对于或复杂-复杂乘法,乘法结果在累加器数据类型中。看乘法数据类型有关工具箱软件中复杂定点乘法的更多信息。

累加器

指定必须保存进一步计算的求和结果的定点块的累加器(sum)的数据类型和比例。大多数这样的块在执行添加操作(求和)之前强制转换为累加器数据类型。

有关该块的累加器数据类型的详细信息,请参阅特定块的参考页。

输出

指定块的输出数据类型和缩放。

使用数据类型助手

数据类型助手是一个可提供的交互式图形工具数据类型某些定点工具箱块的窗格。

了解更多关于使用的更多信息数据类型助手要帮助您指定块数据类型参数,请参见使用数据类型助手指定数据类型(金宝appSimulink)

检查信号范围

某些定点工具箱块具有最低限度最大上的参数数据类型窗格。当定点数据类型具有这些参数时,您可以使用它们来指定用于范围检查的适当的最小值和最大值。

要了解如何指定信号范围和启用信号范围检查,请参阅指定信号范围(金宝appSimulink)

指定系统级设置

您可以使用“固定点”工具在系统或子系统级别监控和控制工具箱块的固定点设置。有关更多信息,请参阅固定点工具(定点设计师)

记录

固定点工具日志溢出,饱和度和模拟最小值,并为固定点工具箱块的最大值。固定点工具不会在时溢出和饱和数据溢出线路诊断>数据完整性“配置参数”对话框的窗格设置为没有一个

自动缩放

可以使用定点工具自动缩放功能设置工具箱定点数据类型的缩放。

数据类型覆盖

工具箱块遵循使用本地设置双重的离开模式数据类型覆盖在固定点工具中的参数。这双刻度工具箱源和Byte-Shu金宝appffling块也支持模式,以及一些算术块,例如差异和归一化。

Scaled double是一种保留定点缩放信息的双精度数据类型。使用数据类型替代,可以将定点数据类型转换为缩放双精度。然后可以进行模拟以确定系统的理想浮点行为。收集该信息后,可以禁用“数据类型替代”以返回定点数据类型,并且数量仍保留其原始缩放信息,因为它保存在缩放双精度数据类型中。

通过内部规则继承

为模型中的定点参数选择适当的字长和比例是很有挑战性的。为了帮助你,安通过内部规则继承定点块数据类型参数(例如累加器产品输出信号。以下部分描述了您选择的时候为您选择单词和分数长度通过内部规则继承对于工具箱软件中的定点块数据类型参数:

笔记

在以下部分中的等式中,WL=字长和fl=分数长度。

累加器数据类型的内部规则

累加器数据类型的内部规则首先计算理想的全精度结果。其中N.是加数的个数:

W. L. 一世 D. E. 一种 L. 一种 C C m L. 一种 T. O. R. = W. L. 一世 N P. T. T. O. 一种 C C m L. 一种 T. O. R. + 地板 日志 2 N. 1 + 1

F L. 一世 D. E. 一种 L. 一种 C C m L. 一种 T. O. R. = F L. 一世 N P. T. T. O. 一种 C C m L. 一种 T. O. R.

例如,考虑求一个长度为6的向量和数据类型sFix10jEn8的所有元素。理想的全精度结果的字长为13,分数长度为8。

累加器可以是真实的,也可以是复杂的。上述方程式用于累加器的实部和虚部。对于任何计算,在计算全精度结果后,内部规则设置的最终单词和分数长度都会受到特定硬件的影响。看见硬件实现窗格对内部规则的影响了解更多信息。

产品数据类型的内部规则

产品数据类型的内部规则首先计算理想的全精度结果:

W. L. 一世 D. E. 一种 L. P. R. O. D. C T. = W. L. 一世 N P. T. 1 + W. L. 一世 N P. T. 2

F L. 一世 D. E. 一种 L. P. R. O. D. C T. = F L. 一世 N P. T. 1 + F L. 一世 N P. T. 2

例如,将长度为2的实向量的元素与数据类型sfix10_En8相乘。理想的全精度结果是字长为20,分数长度为16。

对于实复数乘法,理想字长和分数长度用于结果的复数部分和实部分。对于复数乘法,理想字长和分数长度用于部分乘积,上述累加器数据类型的内部规则用于最终和。对于任何计算,在计算全精度结果后,内部规则设置的最终单词和分数长度都会受到特定硬件的影响。看见下载188bet金宝搏硬件实现窗格对内部规则的影响了解更多信息。

输出数据类型的内部规则

一些工具箱块有一个通过内部规则继承选择可用于块输出。在这些情况下使用的内部规则是特定于块的,并且在块参考页面中列出了方程。

与累加器和产品数据类型一样,内部规则设置的最终输出字和分数长度受您的特定硬件的影响,如上所述硬件实现窗格对内部规则的影响

硬件实现窗格对内部规则的影响

内部规则选择适合您的硬件的字长和分数长度。要使用内部规则获得最佳结果,您必须指定在计算机上使用的硬件类型硬件实现“配置参数”对话框的窗格。要打开此对话框,请单击建模>模型设置在Simuli金宝appnk.®工具条。

ASIC/FPGA。在ASIC / FPGA目标上,使用由内部规则计算的理想,全精度字长度和分数长度。如果计算出的理想字长度大于最大允许的字长度,则会收到错误。

其他目标。对于除ASIC / FPGA以外的所有目标,由内部规则计算的理想全精度字长度舍入到目标的下一个可用字长度上。使用计算的理想分数长度,保持最小的比特。

如果产品数据类型的计算理想字长度大于目标上的最大字长度,则会收到错误。如果计算出的累加器或输出数据类型的理想字长度大于目标上的最大字长度,则使用最大的目标字长度。

Simulink和toolbox软件在任何目标上允许的最大字长为128位金宝app。

内部规则示例

以下部分显示内部规则如何与之交互的示例硬件实现要计算的窗格累加器数据类型产品数据类型

累加器数据类型。考虑以下模型ex_internalrule_accumexp.

区别块,累加器参数设置为继承:通过内部规则继承,以及输出参数设置为继承:与累加器相同。因此,您可以在模型中看到由输出信号的内部规则计算的累加器数据类型。

在前面的模型中设备类型中的参数硬件实现“配置参数”对话框的窗格设置为ASIC / FPGA.。因此一种CC你m你L.一种T.O.R.D.一种T.一种 type used by the internal rule is the ideal, full-precision result.

计算模型中每个差分块的全精度字长度:

W. L. 一世 D. E. 一种 L. 一种 C C m L. 一种 T. O. R. = W. L. 一世 N P. T. T. O. 一种 C C m L. 一种 T. O. R. + 地板 日志 2 N m B. E. R. O. F 一种 C C m L. 一种 T. 一世 O. N S. + 1 W. L. 一世 D. E. 一种 L. 一种 C C m L. 一种 T. O. R. = 9. + 地板 日志 2 1 + 1 W. L. 一世 D. E. 一种 L. 一种 C C m L. 一种 T. O. R. = 9. + 0. + 1 = 10 W. L. 一世 D. E. 一种 L. 一种 C C m L. 一种 T. O. R. 1 = W. L. 一世 N P. T. T. O. 一种 C C m L. 一种 T. O. R. 1 + 地板 日志 2 N m B. E. R. O. F 一种 C C m L. 一种 T. 一世 O. N S. + 1 W. L. 一世 D. E. 一种 L. 一种 C C m L. 一种 T. O. R. 1 = 16 + 地板 日志 2 1 + 1 W. L. 一世 D. E. 一种 L. 一种 C C m L. 一种 T. O. R. 1 = 16 + 0. + 1 = 17 W. L. 一世 D. E. 一种 L. 一种 C C m L. 一种 T. O. R. 2 = W. L. 一世 N P. T. T. O. 一种 C C m L. 一种 T. O. R. 2 + 地板 日志 2 N m B. E. R. O. F 一种 C C m L. 一种 T. 一世 O. N S. + 1 W. L. 一世 D. E. 一种 L. 一种 C C m L. 一种 T. O. R. 2 = 127 + 地板 日志 2 1 + 1 W. L. 一世 D. E. 一种 L. 一种 C C m L. 一种 T. O. R. 2 = 127 + 0. + 1 = 128

计算全精度分数长度,该长度与本例中每个矩阵和块的长度相同:

F L. 一世 D. E. 一种 L. 一种 C C m L. 一种 T. O. R. = F L. 一世 N P. T. T. O. 一种 C C m L. 一种 T. O. R. F L. 一世 D. E. 一种 L. 一种 C C m L. 一种 T. O. R. = 4.

现在换个颜色设备类型中的参数硬件实现窗格中的32位嵌入式处理器,修改参数如下图所示。

您可以在对话框中看到,此设备具有可用的8个,16-和32位字长度。因此,不能使用由内部规则计算的10,17和128位的理想字长度。相反,内部规则在每种情况下使用下一个最大可用字长度,如果您重新运行该模型,则可以看到此功能,如下图所示。

产品数据类型。考虑以下模型ex_internalRule_prodExp

阵列矢量乘法块,产品产量参数设置为继承:通过内部规则继承,以及输出参数设置为继承:与产品输出相同。因此,您可以看到模型中输出信号上的内部规则计算的产品输出数据类型。设置的累加器参数无关紧要,因为此示例使用真实值。

对于前面的模型设备类型中的参数硬件实现“配置参数”对话框的窗格设置为ASIC / FPGA.。因此P.R.O.D.你CT.D.一种T.一种T.ype used by the internal rule is the ideal, full-precision result.

计算模型中每个阵列向量乘法块的全精度字长:

W. L. 一世 D. E. 一种 L. P. R. O. D. C T. = W. L. 一世 N P. T. 一种 + W. L. 一世 N P. T. B. W. L. 一世 D. E. 一种 L. P. R. O. D. C T. = 7. + 5. = 12 W. L. 一世 D. E. 一种 L. P. R. O. D. C T. 1 = W. L. 一世 N P. T. 一种 + W. L. 一世 N P. T. B. W. L. 一世 D. E. 一种 L. P. R. O. D. C T. 1 = 16 + 15 = 31

计算全精度分数长度,该长度与本例中每个阵列向量乘法块相同:

F L. 一世 D. E. 一种 L. 一种 C C m L. 一种 T. O. R. = F L. 一世 N P. T. T. O. 一种 C C m L. 一种 T. O. R. F L. 一世 D. E. 一种 L. 一种 C C m L. 一种 T. O. R. = 4.

现在换个颜色设备类型中的参数硬件实现窗格中的32位嵌入式处理器,如下图所示。

正如您在对话框中看到的,此设备有8位、16位和32位的可用字长。因此,无法使用由内部规则计算的12位和31位的理想字长。相反,内部规则在每种情况下都使用下一个最大的可用字长。如果重新运行模型,您可以看到这一点,如下图所示乌尔。

指定定点块的数据类型

以下部分向您展示如何使用固定点工具选择固定点块的适当数据类型ex_fixedpoint_tut型号:

准备模型

  1. 通过键入打开模型ex_fixedpoint_tut在Matlab.®命令行。

    该模型使用Cumulative Sum块对来自定点源子系统的输入进行求和。定点源子系统输出两种不同数据类型的信号:

    • 有符号源的字长为16位,分数长度为15位。

    • 无符号源的字长为16位,分数长度为16位。

  2. 运行模型以检查溢出。MATLAB在命令行显示以下警告:

    警告:发生溢出。这源自'ex_fixedpoint_tut /签名累积总和'。警告:发生溢出。这源自'ex_fixedpoint_tut / unsigned累积uk'。

    根据这些警告,两个累积和块中都会发生溢出。

  3. 要调查此模型中的溢出,请使用定点工具。可以通过选择打开“定点”工具工具>定点>固定点工具从“模型”菜单中。通过设置定点仪器模式参数到最小值、最大值和溢流

  4. 现在已经打开了日志记录,请单击“模拟”按钮重新运行模型。

  5. 模拟结果显示在中央数据库的表格中内容固定点工具的窗格。查看以下列:

    • 名称-以以下格式提供每个信号的名称:子系统名称/块名称:信号名称

    • 辛特- 每个记录信号的模拟数据类型。

    • 指定滴滴涕- 每个信号的块对话框上指定的数据类型。

    • 辛敏-在模拟每个记录的信号时可表示的最小值。

    • 辛马克斯-在模拟每个记录的信号时所获得的最大可表示值。

    • overflowwraps.-模拟期间包裹的溢出数。

    你也可以看到辛敏辛马克斯累加器数据类型的值范围为0..9997。记录结果表明8,192溢出在符号累积和块的累加器数据类型的仿真期间包裹。类似地,在仿真期间,无符号累积和块的累加器数据类型具有16,383溢出的包装。

    要获取有关这些数据类型中的每种类型的更多信息,请突出显示它们内容窗格,然后单击显示所选结果的详细信息钮扣(

  6. 假设支持32位整数的目标硬件,并在累积和块中设置累加器字长度金宝app32。为此,请执行以下步骤:

    1. 右键单击有符号累积和:累加器行,然后选择突出显示模型中的块

    2. 双击模型中的块,然后选择数据类型对话框的窗格。

    3. 打开数据类型助手通过单击“助手”按钮查看累加器(),在累加器数据类型行。

    4. 设定模式固定点. 要查看当前指定数据类型的可表示范围,请单击固定点详细信息链接。该工具显示当前数据类型的可表示最大值和可表示最小值。

    5. 改变字长32,然后单击刷新的细节按钮固定点详细信息节查看更新的可表示范围。当您更改字长参数,数据类型编辑框自动更新。

    6. 点击好啊在“块”对话框中保存更改并关闭窗口。

    7. 设置无符号累积和块的累加器数据类型的单词长度32bits。您可以通过以下两种方式之一执行此操作:

      • 键入数据类型fixdt([],32,0)直接进入数据类型编辑累计数据类型参数的框。

      • 执行与将有符号累积和块的累加器数据类型的字长设置为相同的步骤32位。

  7. 要验证文字长度的更改并检查溢出,请重新运行您的模型。为此,请单击模拟在固定点工具中的按钮。

    内容固定点工具更新的窗格,您可以看到最近的模拟中没有发生溢出。但是,你也可以看到辛敏辛马克斯值的范围为0.0.。发生此下溢是因为累加器数据类型的分数长度太小指定滴滴涕无法表示数据值的精度。以下各节讨论如何找到浮点基准,并使用定点工具提出分数长度。

使用数据类型覆盖查找浮点基准

数据类型覆盖固定点工具的功能允许您使用浮点类型覆盖模型中指定的数据类型。运行模型双重的覆盖模式为您提供了参考范围,以帮助您为固定点数据类型选择适当的分数长度。为此,请执行以下步骤:

  1. 打开“定点”工具并设置数据类型覆盖双重的

  2. 点击运行模型运行模拟并存储活动结果按钮。

  3. 检查表格中的结果内容固定点工具的窗格。因为你跑了模型双重的覆盖模式,您可以获得准确,理想化的模拟最小值和最大值。这些值出现在辛敏辛马克斯参数。

  4. 既然您有准确的仿真最小值和最大值的参考表示,您可以更轻松地选择适当的分数长度。在进行这些选择之前,将活动结果保存参考,以便您可以将它们用作浮点基准。为此,请选择结果>将主动结果移动到参考从固定点工具菜单。显示在列变化活跃的参考用于模型中的所有信号。

使用固定点工具提出分数长度

现在你有了你的双重的如果覆盖保存为浮点引用的结果,则可以建议分数长度。

  1. 要为数据类型建议分数长度,必须有一组活跃的结果可在定点工具。要生成一组活动的结果,只需重新运行您的模型。该工具现在显示两个活跃的结果和建议参考每个信号的结果。

  2. 选择如果设计Min / Max不可用,则使用仿真Min / MAX复选框。您没有为此模型中的数据类型指定任何设计最小值或最大值。因此,该工具使用记录信息来计算和提出分数长度。有关指定设计最小值和最大值的信息,请参阅指定信号范围(金宝appSimulink)

  3. 单击建议分数长度钮扣()。该工具填充了所提出的数据类型提议的内容窗格。相应的提出的最小值和最大值显示在提议建议最大列。

检查结果并接受建议的缩放

在接受定点工具提出的分数长度之前,重要的是要查看该数据类型的细节。这样做允许您查看建议的数据类型可以表示多少数据。要检查建议的数据类型并接受建议的缩放,请执行以下步骤:

  1. 内容固定点工具的窗格,您可以看到模型中数据类型的提议分数长度。

    • 有符号和无符号累积和块的累加器数据类型的建议分数长度为17位。

    • 要获取有关特定数据类型所提出的缩放的更多详细信息,请突出显示数据类型内容固定点工具的窗格。

    • 单击“自动缩放”按钮,打开高亮显示数据类型的“自动缩放信息”窗口显示所选结果的自动缩放信息钮扣()。

  2. 当“自动缩放信息”窗口打开时,请检查价值可代表性百分比用于模拟最小值模拟最大值您可以看到,建议的数据类型可以表示100%的模拟数据范围。

  3. 要接受建议的数据类型,请选中接受列,用于要保留其建议缩放比例的每种数据类型。然后,单击应用可接受的分数长度钮扣()。该工具将更新块对话框和指定滴滴涕中的列内容窗格。

  4. 要验证新接受的缩放,请设置数据类型覆盖参数返回到使用本地设置,并运行模型。看着内容固定点工具的窗格,您可以查看以下详细信息:

    • 辛敏辛马克斯价值观活跃的跑比赛辛敏辛马克斯来自浮点的价值参考

    • 不再有溢流。

    • 辛特不匹配指定滴滴涕对于累积和块的累加器数据类型。出现这种差异是因为累积和块始终始终继承其Signedness从输入信号,只允许您指定一个Signedness属于汽车。因此指定滴滴涕对于两个累加器数据类型都是Fixdt([],32,17)。但是,由于有符号累积和块具有有符号输入信号,因此辛特对于累加器,该块的参数也有符号(Fixdt(1,32,17)).同样辛特对于累加器,无符号累积和块的参数继承其Signedness从其输入信号,因此是无符号(fixdt(0,32,17))。