主要内容

为块指定固定点属性

固定点块参数

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

笔记

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

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

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

定点数据类型参数 描述

舍入模式

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

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

在整数溢出上饱和

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

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

中间产品

指定定点块的中间乘积的数据类型和伸缩性。将乘法结果反馈给乘数输入的块使用中间乘积数据类型。

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

产品输出

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

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

累加器

指定必须按住进一步计算的求和结果的固定点块的数据类型和缩放。在执行ADD操作之前,大多数这样的块投入到累加器数据类型(求和)。

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

输出

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

使用数据类型助手

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

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

检查信号范围

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

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

指定系统级设置

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

记录

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

自动定量

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

数据类型覆盖

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

缩放双倍是一种重新数据类型,可保留定点缩放信息。使用数据类型覆盖,您可以将固定点数据类型转换为缩放双打。然后,您可以模拟以确定系统的理想浮点行为。收集该信息后,您可以将数据类型覆盖以返回到固定点数据类型,并且您的数量仍然具有其原始缩放信息,因为它被保存在缩放的双数据类型中。

通过内部规则继承

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

笔记

在以下部分中的等式中,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的矢量的所有元素和数据类型sfix10_en8。理想的全精度结果具有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..因此,内部规则使用的累加器数据类型是理想的全精度结果。

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

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..因此,内部规则使用的产品数据类型是理想的全精度结果。

计算模型中每个数组矢量乘法块的全精度字长度:

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.®命令行。

    该模型使用累积和块来将来自定点源子系统的输入和汇总。固定点源子系统输出具有不同数据类型的两个信号:

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

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

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

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

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

  3. 要调查此模型中的溢出,请使用固定点工具。您可以通过选择来打开固定点工具工具>定点>固定点工具从模型菜单中。属性打开模型中所有块的日志记录定点仪表模式参数最小、最大和溢出

  4. 既然您已打开日志记录,请单击“模拟”按钮重新运行模型。

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

    • 名称—输入信号名称,格式如下:子系统名称/块名称:信号名称

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

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

    • SimMin- 对于每个记录信号的模拟期间实现的最小可代表值。

    • Simmax.- 为每个记录信号进行仿真期间实现的最大可代表值。

    • overflowwraps.-模拟过程中包裹的溢出数。

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

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

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

    1. 右键单击签名累积总和:累加器在固定点工具窗格中的行,然后选择在模型中突出显示块

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

    3. 打开数据类型助手单击助理按钮的累加器()在累加器数据类型行中。

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

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

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

    7. 设置无符号累积和块的累加器数据类型的单词长度32位。你可以用以下两种方法之一:

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

      • 执行与设置Signed Cumulative Sum块的Accumulator数据类型的单词长度相同的步骤32位。

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

    内容固定点工具更新的窗格,您可以看到最近的模拟中没有发生溢出。但是,你也可以看到SimMinSimmax.值范围从0.0..发生这种下流是因为累加器数据类型的分数长度太小。这SpecifiedDT不能表示数据值的精度。以下部分讨论如何找到浮点基准并使用固定点工具提出分数长度。

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

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

  1. 打开定点工具并设置数据类型覆盖

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

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

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

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

现在你有你的覆盖结果保存为浮点引用,您已准备好提出分数长度。

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

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

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

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

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

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

    • 对于有符号和无符号累加和块的累加器数据类型,建议的分数长度是17位。

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

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

  2. 当自动尺度信息窗口打开时,请检查价值提出了可表示的百分比列的列模拟最小仿真最大值参数。您可以看到所提出的数据类型可以表示仿真数据范围的100%。

  3. 要接受建议的数据类型,请选中“复选框”中接受列对于您想要保留的建议缩放的每个数据类型的列。然后,点击应用可接受的分数长度按钮 ()。该工具在块对话框和块上的指定数据类型上更新SpecifiedDT内容窗格。

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

    • SimMinSimmax.价值的价值积极的运行匹配SimMinSimmax.来自浮点的价值参考跑步。

    • 不再溢出。

    • SIMDT.不匹配SpecifiedDT累加和块的累加器数据类型。出现这种差异是因为Cumulative Sum块总是继承签名从输入信号,只允许您指定一个签名汽车.因此,这是SpecifiedDT对于两个累加器数据类型都是Fixdt([],32,17).但是,由于Signed Cumulative Sum块有一个有符号的输入信号,因此SIMDT.,则该块的累加器参数也被签名(Fixdt(1,32,17))。同样,SIMDT.对于未签名累积块的累加器参数继承其签名从其输入信号,因此是无符号(Fixdt(0,32,17))。