主要内容

速度与区域权衡

速度或区域优化概述

在实现滤波器设计时,编码器提供了扩展速度与区域权衡控制的选项。要达到预期的折衷,您可以指定完全平行架构生成的HDL过滤器代码,或选择其中之一序列号架构。这些体系结构在并行和串行架构

下表总结了可用于并行和串行架构选择的筛选器类型。

建筑学 可用于过滤器类型......
完全平行(默认) 支持用于HDL代码生成的筛选器类型金宝app
全系列
  • 直接的形式

  • 直接形成对称的

  • 直接形成不对称

  • 直接形式I SOS

  • 直接表格II SOS

部分系列
  • 直接的形式

  • 直接形成对称的

  • 直接形成不对称

  • 直接形式I SOS

  • 直接表格II SOS

级联序列
  • 直接的形式

  • 直接形成对称的

  • 直接形成不对称

该编码器通过传入的属金宝app性支持全方位的并行和串行体系结构选项generatehdl函数,如通过generatehdl属性指定速度和区域的权衡

或者,您可以使用建筑学“生成HDL”对话框上的弹出菜单可选择并行和串行架构选项,如下所述在“生成HDL”对话框中选择体系结构

请注意

该编码器还支持分布式算术(DA金宝app),用于实现过滤器的另一个高效架构。看到FIR滤波器的分布式算法

并行和串行架构

完全并行体系结构

此选项是默认选项。一个完全并行体系结构为每个过滤器轻拍使用专用乘法器和加法器;抽头并行执行。这种类型的架构是速度最佳。但是,它需要更多的乘数和加法器,而不是串行架构,因此消耗更多芯片区域。

串行架构

串行架构及时重用硬件资源,节省芯片面积。编码器提供一系列串行架构选项。这些架构有一个时钟周期的延迟(参见串行架构中的延迟)。

您可以从这些串行架构选项中选择:

  • 全系列:通过顺序重用乘法器和加法器资源,通过重新定位乘法器和加法器资源来节省完全串行结构。例如,四次抽头过滤器设计将使用单个乘法器和加法器,为每个频率执行一次,为每个抽头执行一次。设计的乘法/累积部分以输入/输出采样率的四倍运行。这种类型的架构以某种速度损失和更高功耗的成本节省了区域。

    在全串行架构中,系统时钟以比滤波器的采样率高得多的速率运行。因此,对于给定的滤波器设计,全串行架构所能达到的最大速度小于并行架构的最大速度。

  • 部分系列:部分串行架构涵盖了完全平行和完全串行架构之间的全系列速度与区域权衡。

    在部分串行架构中,过滤器抽头被分组为串行分区。每个分区内的抽头串行执行,但分区并行执行。分区的输出在最终输出处求和。

    当选择部分串行架构作为筛选器时,可以通过以下方式定义串行分区:

    • 直接定义串行分区,作为一个整数向量。向量的每个元素指定了对应分区的长度。

    • 指定所需的硬件折叠因子FF.,大于的整数1.给定折叠因子,编码器计算串行分区和乘数。

    • 指定所需的乘数nmults,大于的整数1.给定乘法器的数量,编码器计算串行分区和折叠因子。

    Generate HDL对话框允许您根据这三个参数指定部分串行的体系结构。然后,您可以查看一个参数的更改如何与其他两个参数交互。编码器还提供hdlfilterserialinfo,这是一个信息函数,可以帮助您定义过滤器的最佳串行分区。

  • Cascade-serial级联-串行体系结构非常类似于部分串行体系结构。就像在部分串行架构中一样,过滤器点击被分成几个并行执行的串行分区。但是,每个分区的累积输出级联到前一个分区的累加器。分区的输出因此在第一个分区的累加器处计算。这种技术被称为累加器重复使用.您不需要保存区域的最终加法器。

    级联-串行架构需要额外的系统时钟周期来完成输出的最终总和。因此,相对于非级联部分串行架构中使用的时钟,系统时钟的频率必须稍微增加。

    要生成级联-串行体系结构,需要指定启用累加器重用的部分串行体系结构。如果不指定串行分区,编码器将自动选择最佳分区。

串行架构中的延迟

串行化滤波器使设计的总延迟增加一个时钟周期。串行体系结构使用累加器(带有寄存器的加法器)来添加顺序的产品。下载188bet金宝搏一个附加的最终寄存器用于存储每个串行分区的求和结果。这个操作需要一个额外的时钟周期。

将输入数据保持在有效状态

串行架构实现高于输入速率的内部时钟速率。在这种过滤器实现中,存在N循环(N > = 2)每个输入样本的基本时钟。您可以指定测试台中的时钟周期数在有效状态下保持输入数据值。

  • 当你选择保存样本之间的输入数据(默认值),测试台将以有效状态保存输入数据值N时钟周期。

  • 当你清楚保存样本之间的输入数据,测试台在有效状态下仅为一个时钟周期保持输入数据值。下一个n - 1周期时,测试台将数据驱动到未知状态(表示为'X'),直到输入下一个样本。将输入数据强制为未知状态将验证生成的筛选器代码仅在第一个循环中注册输入数据。

图中显示了试验台“生成HDL”对话框中的保存样本之间的输入数据设置为默认设置。

使用等价物HoldInputDataBetweenSamples属性时,调用generatehdl功能。

指定速度与区域权衡通过generatehdl特性

默认情况下,generatehdl使用完全并行架构生成筛选器代码。如果希望生成具有完全并行体系结构的筛选器代码,则不必显式指定该体系结构。

控件的两个属性指定串行架构选项generatehdl功能:

该表总结了如何设置这些属性以生成所需的体系结构。

产生这
建筑学...
设置SerialPartition…… 设置ReuseAccum……
完全平行 省略这个属性 省略这个属性
全系列 N, 在哪里N是过滤器的长度 未指定,或“关闭”
部分系列

(p1 p2 p3…pN):的向量N整数元素,N是串行分区的个数。向量的每个元素指定了对应分区的长度。向量元素的和必须等于过滤器的长度。定义部分串行体系结构的分区时,请考虑以下内容:

  • 过滤器的长度应该尽可能均匀地分割成一个长度向量,这个向量等于预期的乘数。例如,如果您的设计需要长度为9、具有2个乘数的过滤器,那么推荐的分区是(5 - 4).如果您的设计需要3个乘数,则推荐的分区是(3 3 3)而不是一些不那么统一的分裂[1 4 4]或者[3 4 2]

  • 如果您的设计受到限制,必须以精确的数字计算每个输出值(对应于每个输入值)N时钟周期,使用N作为最大的分区大小和分区其他元素尽可能一致。例如,如果过滤器的长度是9,而您的设计恰好需要4个周期来计算输出,则将分区定义为(4 3 2).此分区在4个时钟周期中执行,以3个乘法器的成本。

您还可以根据所需的硬件折叠因子或最佳乘数来指定串行架构。看到hdlfilterserialinfo有关详细信息。

“关闭”
级联串行,具有明确指定的分区 (p1 p2 p3…pN):一个整数向量N元素,N是串行分区的个数。向量的每个元素指定了对应分区的长度。向量元素的和必须等于过滤器的长度。vector元素的值必须按降序显示,但最后两个元素必须相等。例如,对于长度为9的过滤器,分区如(5 - 4)或者(4 3 2)将是合法的,但分区(3 3 3)或者(3 2 4)在代码生成时引发错误。 '在'
具有自动优化分区的级联串行 省略这个属性 '在'

您可以使用帮助函数hdlfilterserialinfo探索过滤器可能的分区。

例如,请参见为FIR滤波器生成串行分区

IIR SOS过滤器的串行架构

为IIR SOS过滤器结构指定部分或完全串行架构(df1sos.或者dsp。BiquadFilter),指定以下参数之一:

  • FoldingFactor, ff:指定所需的硬件折叠系数FF.,大于1的整数。给定折叠因子,编码器计算乘数。

  • NumMultipliers, nmults:指定所需的乘数数量nmults,大于1.给定乘法器的数量,编码器计算折叠因子。

要获得关于折叠因子选项和过滤器相应乘数的信息,调用hdlfilterserialinfo功能。

例如,请参见为IIR过滤器生成串行架构

在“生成HDL”对话框中选择体系结构

建筑学弹出菜单,在“生成HDL”对话框中,允许您选择并行和串行体系结构。以下主题描述了您必须为每个的UI选项建筑学选择。

指定完全平行的架构

默认的建筑学设置是完全平行,如图所示。

指定完全串行架构

当你选择全系列建筑学选项时,Generate HDL对话框显示有关折叠因子、乘数和串行分区的附加信息。因为这些参数依赖于过滤器的长度,所以它们以只读格式显示,如下图所示。

生成的HDL对话框也显示a查看详情关联。单击此链接时,编码器在单独的窗口中显示HTML报表。该报告显示当前滤波器的折叠因子,乘数和串行分区设置的详尽表。您可以使用该表来帮助您为您的设计选择最佳设置。

为部分串行架构指定分区

当你选择部分系列建筑学选项时,Generate HDL对话框将显示与串行分区相关的附加信息和数据输入字段。(见下图)

生成的HDL对话框也显示a查看详情关联。单击此链接时,编码器在单独的窗口中显示HTML报表。该报告显示当前滤波器的折叠因子,乘数和串行分区设置的详尽表。您可以使用该表来帮助您为您的设计选择最佳设置。

由此指定下拉菜单允许您决定如何定义部分串行架构。选择下列选项之一:

  • 折叠因子:右侧的下拉菜单折叠因子包含过滤器的折叠因子的详尽列表。当您选择一个值时,当前折叠因子、乘数和串行分区设置的显示将更新。

  • 乘数:右侧的下拉菜单乘数包含过滤器的乘数数量的穷举选项列表。当您选择一个值时,当前折叠因子、乘数和串行分区设置的显示将更新。

  • 串行分区:右侧的下拉菜单串行分区包含用于筛选器的串行分区选项的详尽列表。当您选择一个值时,当前折叠因子、乘数和串行分区设置的显示将更新。

指定级联串行架构

当你选择级联序列建筑学选项时,生成HDL对话框显示串行分区字段,如下图所示。

由此指定菜单允许您根据不同的标准定义串行分区的数量和大小,如下所述通过generatehdl属性指定速度和区域的权衡

为IIR SOS过滤器指定串行架构

要在UI中为IIR SOS过滤器结构指定部分或完全串行架构,可以设置以下选项:

  • 建筑学: 选择完全平行(默认),全系列,或部分系列.如果你选择部分系列,UI显示由此指定下拉菜单。

  • 由此指定:选择以下其中一种:

    • 折叠因子:指定所需的硬件折叠系数,FF.,大于1的整数。给定折叠因子,编码器计算乘数。

    • 乘数:指定所需的乘数数量,nmults,大于1.给定乘法器的数量,编码器计算折叠因子。

示例:直接表格I SOS过滤器。以下示例创建直接表单I SOS(df1sos.)过滤设计并打开UI。代码示例下面的图显示了为部分串行架构配置的编码器选项折叠因子18。

FS = 48E3.%采样频率Fc = 10.8 e3%截止频率N = 5%过滤器订单f_lp = fdesign.lowpass('n,f3db',n,fc,fs)filt = design(f_lp,“黄油”“FilterStructure”'df1sos''systemobject',true)fdhdltool(filt,numerictype(1,16,15)))

示例:直接表格II SOS过滤器。以下示例创建直接表单II SOS(DF2SOS.)过滤器设计使用过滤器生成器。

滤波器是低通的DF2SOS.过滤器滤波器顺序为6.滤波器算术设置为定点

代码生成标签,这生成HDL.按钮激活过滤器设计HDL Coder™UI。下图显示了为此过滤器配置的HDL编码器选项,使用部分串行架构折叠因子的9。

指定分布式算法体系结构

建筑学弹出式菜单还包括分布式算术(DA)选择。看到FIR滤波器的分布式算法)有关此架构的信息。

架构选项与其他HDL选项之间的交互

选择某些建筑学菜单选项可以更改或禁用其他选项。

  • 当。。。的时候全系列选项已选择,将以下选项设置为默认值并禁用:

    • 乘数系数

    • 添加管道寄存器

    • 冷杉加法器的风格

  • 当。。。的时候部分系列选项被选中时:

    • 乘数系数选项设置为默认值并禁用。

    • 如果过滤器是多速率,则时钟输入选项设置为单身的和残疾人士。

  • 当。。。的时候级联序列选项已选择,将以下选项设置为默认值并禁用:

    • 乘数系数

    • 添加管道寄存器

    • 冷杉加法器的风格