CN101351791A - 共享存储器和共享乘法器的可编程数字滤波器的实现 - Google Patents
共享存储器和共享乘法器的可编程数字滤波器的实现 Download PDFInfo
- Publication number
- CN101351791A CN101351791A CNA2006800320412A CN200680032041A CN101351791A CN 101351791 A CN101351791 A CN 101351791A CN A2006800320412 A CNA2006800320412 A CN A2006800320412A CN 200680032041 A CN200680032041 A CN 200680032041A CN 101351791 A CN101351791 A CN 101351791A
- Authority
- CN
- China
- Prior art keywords
- address
- data
- coefficient
- carrier store
- controll block
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/544—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
- G06F7/5443—Sum of products
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
Abstract
一种用于实现数字滤波器的集成电路,包括数据存储器(100)和系数存储器(105),所述数据存储器(100)具有两个端口(210,220)以允许同时对两个数据采样进行访问,所述系数存储器(105)用于存储滤波器系数。第一加法器(110)将来自第一和第二数据存储器端口(210、220)的数据采样相加;乘法器(115)将来自第一加法器(110)的值与来自系数存储器(105)的值相乘;第二加法器累加来自乘法器(115)的值。提供主控制器(190)以选择性地将所累加的值存储在所述数据存储器(100)中以做进一步的处理或输出所累加的值。地址和控制块(125)与数据存储器(100)和系数存储器(105)进行通信,所述地址和控制块(125)用于保存适于所述滤波器执行的值。地址和控制块(125)具有两组寄存器,第一组寄存器用于保存第一预定数字滤波器的值,而第二组寄存器用于保存级联的第二预定数字滤波器的值。一种方法将数据的当前写地址以循环链表的形式保存在地址和控制块(125)中,其中所述循环链表的大小等于滤波器抽头的预定数量。所述方法保存数据的第一读地址,以便将所述数据从第一端口以先进先出队列形式读取,所述方法保存数据的第二读地址,以便将所述数据从第二端口以后进先出堆栈形式读取,所述方法还将系数读取地址保存为循环链表。
Description
相关申请的交叉引用
本申请涉及2004年7月6日提交的、标题为“System and methodfor design and implementation of integrated-circuit digital filters”的美国专利申请No.10/884,200,将该申请以引用方式并入本申请中。
技术领域
本发明涉及电子电路在功率、性能和物理尺寸方面的高效实现方案,以在较宽的可选择的频率范围内对电子信号执行数字滤波。该实现方案可用于快速地编程和执行特定的有限脉冲响应(FIR)滤波器、级联FIR滤波器或多速率FIR滤波器,以符合应用的频率选择规范。
背景技术
用于计算数字FIR滤波器的数学算法是公知的,近年来随着高计算速率数字硬件的出现,该数学算法得到了广泛的应用。但是,由于计算需要较高的乘法和累加速率,并且乘法器难以实现(较大的面积或时间延迟),因此大部分实现都非常特定于固定的频带。通常经由软件在数字信号处理器中进行低频带的实现,而较高的频带典型地实现在高度优化的特定硬件中,并可应用于一组特定的频率,而且有时可应用于失去期望的可编程属性的特定滤波器(特定数量的抽头)。
以下为实现FIR滤波器的采样数据等式的常见形式:
其中:y(n)=采样时间n的滤波器输出;
b(i)=N-1阶滤波器的滤波器系数;
x(n)=采样时间n的滤波器输入;
N=滤波器抽头的数量。
由于线性相位FIR滤波器具有围绕中心系数的“镜像”系数,因此,折叠系数方法可以将相乘的次数减少到原来的1/2。对于具有固定数量抽头(固定阶)的特定滤波器,可以通过保存长度为N-1的位移寄存器中的采样并提供足够的加法器和乘法器以在下一个输入采样到达前完成每一输出采样的计算,从而容易地实现该等式。但是,如果抽头的数量是可编程的,则实现最小至最大数量抽头的位移寄存器的寻址就需要更复杂的硬件。并且,如果该实现方案必须容许可编程的采样频率速率,则加法器、乘法器和和累加器的处理速率必须容许最差吞吐量速率(抽头数量乘以输入采样速率)。如果我们还希望将其用于级联滤波器(通常使用抽取以减少过采样输入速率与期望的输出采样速率之比)和多速率滤波器(在第一滤波器中使用抽取并在第二滤波器中使用内插以有效实现极高数量的抽头滤波器并相当程度地减少乘法器的数量),则就需要增加更多的逻辑和寄存器,且所需的功率并不随采样频率线性地变化。
发明内容
本文披露了用于实现数字滤波器的集成电路和方法。集成电路具有:数据存储器,所述数据存储器具有第一和第二端口,以允许同时对两个数据采样进行访问;系数存储器,用于存储滤波器系数。还有第一加法器,用于对来自所述第一和第二端口的在数据存储器中寻址的数据采样进行加法运算;乘法器,用于将来自所述第一加法器的值与从所述系数存储器中读取的值进行乘法运算;第二加法器,用于累加来自所述乘法器的值。
提供主控制器用于选择性地将所累加的值存储在所述数据存储器中以做进一步的处理或输出所累加的值。
集成电路还包括地址和控制块,用于保存适于所述滤波器执行的值;所述地址和控制块与下列存储器进行通信:所述数据存储器和所述系数存储器。
所述地址和控制块还包括:第一组寄存器,用于保存第一预定数字滤波器的值;第二组寄存器,用于保存第二预定数字滤波器的对应值。所述第一组寄存器包括至少下列各项:写地址寄存器,将下一个输入数据的地址选择性地保存到数据存储器或系数存储器中;第一读地址寄存器,保存要从所述第一端口读取的下一个数据存储器地址的地址;第二读地址寄存器,保存要从第二端口读取的下一个数据的存储器地址的地址;系数地址寄存器,保存要读取的下一个系数的地址。
在优选实施例中,实现滤波器的方法包括:将数据的当前写地址作为循环链表保存在所述地址和控制块中,其中所述循环链表的大小等于滤波器抽头的预定数量。所述方法以先进先出队列形式保存数据的第一读地址,以便从第一端口读取所述数据;以后进先出堆栈形式保存数据的第二读地址,以便从第二端口读取所述数据;将系数读地址保存为循环链表。所述系数地址的大小等于所述滤波器抽头预定数量除以2,如果所述滤波器抽头的数量为奇数,则向上取整。所述方法还包括:将输入数字采样存储在所述数据存储器中,其存储位置由所述地址和控制块中的当前写地址确定;根据所述数据存储器中存储的采样和所述系数存储器中存储的系数计算所述第一数字滤波器的输出采样;将所述地址和控制块中的所述第一组参数与所述地址和控制块中的所述第二组参数进行交换;根据所述数据存储器中存储的采样和所述系数存储器中存储的系数计算所述级联数字滤波器的输出采样。在计算后,将所述地址和控制块中的所述第一组参数与所述地址和控制块中的所述第二组参数进行交换,其中将要计算第二滤波器。
附图说明
图1示出了优选实施例的总体框图;
图2的流程图示出了优选实施例的主控制器功能的执行流程;
图3的流程图示出了主控制器的地址控制功能的执行流程。
具体实施方式
本文描述了宽频范围内可编程的硬件集的实现,所述范围仅受乘法器性能或存储器的访问时间或用于存储数据和系数的寄存器的限制。该设计还容许从3到N个抽头的线性滤波器,其中N仅受当前实际的IC技术约束的存储器大小和计算速率的限制。相同的硬件资源可用于执行具有很少附加控制硬件的级联或多速率滤波器。
图1示出了优选实施例的总体块图。数据存储器(100)用于存储输入采样,所述输入采样通常来自已经进行过防混叠过滤并已经进行过模数转换器数字化的模拟输入。数据存储器(100)还用于存储来自第一滤波器操作的计算出的输出采样,当针对级联或多速率过滤对系统进行编程时,所述计算出的输出采样由第二滤波器操作使用。将存储器(100)优选组织为两端口存储器以允许同时访问两个采样,其中一个端口为只读端口,而另一个为读或写端口。
系数存储器(105)为一个或多个滤波器保存系数或抽头权重。系数存储器(105)的大小适于保存一个或多个待执行的滤波器的多个唯一的系数。系数的数量是折叠滤波器设计的抽头数量的一半。
数据存储器(100)和系数存储器(105)优选均为随机存取存储器(RAM)。
加法、乘法和累加(AMAC)功能部件用于执行FIR操作的基本计算功能。AMAC功能部件包括第一加法器(110)、乘法器(115)以及累加功能部件(120)。需要注意的是,在优选实施例中,累加的结果被存储在了数据存储器(100)中或被输出以做进一步的处理。AMAC功能部件由存储在地址和控制块(125)中的值控制。主控制器(190)从输入到系数存储器(105)中的程序加载系数,并存储执行期望的滤波器功能所必需的其他控制参数。这些参数包括每一滤波器的抽头的数量、每一滤波器采样和系数的初始开始和结束地址、以及每一滤波器的抽取值和内插值。
图1示出了一组下一个滤波器地址和控制寄存器(150)和一组有源滤波器地址和控制寄存器(155),它们共同组成地址和控制块寄存器(125)。主控制器(190)是具有与其关联的计算机可读介质(195)的处理器。计算机可读介质可以是之前已经加载了主控制器(190)的程序的只读存储器(ROM)、闪速存储器或RAM。(图1中所分配的)ROM(195)保存执行实现本文所述数字滤波器所需指令的存储的程序。
对于折叠FIR的操作,AMAC功能部件从数据存储器(100)接收两个操作数,将这些操作数在第一加法器(110)中求和,在乘法器(115)中将该结果与从系数存储器(105)中所选择的系数相乘,并将此结果在累加器(120)中累加。如果所累加的值是单一FIR滤波器或级联滤波器的第二滤波器的操作的结果,则将结果输出到后处理器(未示出);如果该值是级联滤波器的第一滤波器的结果,则将结果存储在为第二滤波器操作的输入保留的数据存储器空间中。
地址和控制块寄存器(125)和系数存储器(105)由主控制器(190)预加载适于执行滤波器的值。在优选实施例中,所加载的值由主控制器(190)例如通过与外部处理器相连接的串行端口从滤波器硬件外部的信源进行预加载。举一个这种预加载滤波器参数的方法和装置的例子,请参见所引用的共同待决的申请No.10/884,200。但本发明并不限于共同待决申请中所披露的系统和方法。
通过生成捕获输入采样所需的所有地址、选通功能和时机,主控制器(190)开始执行滤波器操作;执行一般化的FIR等式以生成输出采样;在适当的时间输出采样(或在数据存储器(100)中存储第二滤波器使用的采样;并将控制从第一滤波器操作切换到第二滤波器操作(如果实现了级联滤波器的话))。需要注意的是,如果启用抽取的话,则仅计算n个输出采样中的一个,其中n是抽取值。
优选实施例的FIR设计是基于折叠方法进行的,以减少乘法器的数量。由于抽头的数量可以非常大,则位移计算器的实现并不现实,因此我们必须在存储器中保存数据点,并以正确的顺序将数据元素和系数提供给AMAC硬件。这是通过在规定数量的滤波器抽头上以循环位移方式对元素进行寻址、并在新的数据元素进入数据阵列时重复该过程来实现的(当使用最新的数据点重写最旧的数据点时开始地址适当地位移),如图2和图3所示,下面将对此进行描述。
本设计使用单一组AMAC功能部件和双端口16位数据存储器(100)。图1示出了两个数据端口,将第一端口(210)标记为data_0,并将第二端口(220)标记为data_1。在优选实施例中,将系数存储在20位宽的分开的存储器(105)中。读者可以看出,在其他实现中,数据或系数可使用更长或更短的字。
主控制器(190)或相似的计算机模块可以控制将新数据写入分配的存储器空间中,并开始计算新的数据点。该控制器还将适当的开始地址交换到地址寄存器中,以允许级联滤波器中的每一滤波器具有或不具有抽取功能。
存储器分配
给每一滤波器的数据存储器(100)分配虚拟地址空间0至N-1,其中N是抽头的数量。双端口存储器具有第一(210)和第二(220)端口;一个读写端口以及一个只读端口。为了容许多个滤波器,实际的地址空间将从0偏移。在优选实施例中,分配的系数存储器(105)是N/2个20位的字,如果N无法被2整除则对其进行向上取整。在数据存储器(100)中存储新数据的开始地址是N-1加上适当的偏移,而写地址寄存器将递减计数直到其到达虚拟地址0为止,随后再对其重新加载虚拟地址N-1。第一滤波器数据空间的范围是从地址0到N1-1,而第二滤波器空间开始于N1并结束于N1+N2-1。系数以下面的方式存储:系数0存储在上地址空间中,而下降的系数地址存储较高阶的系数。高阶系数将存储在系数虚拟地址0中。
存储器寻址
写地址寄存器(130)(write_addr)包含用于存储下一个输入到虚拟存储器空间中的操作数的地址。在数据输出计算完成时将对其进行更新。
系数地址寄存器(145)(coef_addr)包含从系数存储器(105)的数据端口(230)访问的下一个系数的地址。在每一时钟周期对其进行更新。针对系数存储器(105)数据端口(230)的标记有coef和coef_1的框表示第二缓冲区优选用于该端口(230)以保存流向乘法器(115)的操作数数据流的时机。
操作数地址寄存器,read_addr0(135)和read_addr1(140),包含每一周期从相应的第一数据端口(210)和第二数据端口(220)访问的两个操作数的地址,read_addr0是从第一数据端口(210)读取数据的地址,而read_addr1是从第二数据端口(220)读取数据的地址。
常量寄存器包括配对的数据操作数和系数的最大和最小地址:分布为add_max(165)和addr_min(170),以及coef_max(175)和coef_min(180)。这些值用于与地址寄存器进行比较,以在操作数地址范围上“包裹”地址值并在数据点计算完成时提供初始的地址。
欠采样由预加载为0的递减计数器(185)(decm_ctr)和常量寄存器(160)(decm)来控制。仅对递减计数器(185)等于0的输入进行数据点的计算。其他输入仅进行存储而不进行计算(即不存在输出数据点),并对地址计数器进行更新。例如,抽取值为4的滤波器将计算每4个输入采样的仅一个输出采样。
每一数据点计算的地址控制本质上将输入数据视为堆栈,其中,read_addr0寄存器(135)作为开始于从第一端口(210)读取的最新数据字的FIFO队列而运行,而read_addr1寄存器(140)作为开始于从第二端口读取的最旧数据字的LIFO队列而运行。在执行周期结束后,下一个数据输入替代存储器中的最旧数据点,堆栈地址适当位移,下一个输出的执行开始。
控制操作
图2和3的简化流程图示出了地址寄存器的控制。图2示出了主控制器(190)中运行的程序,而图3示出了主控制器(190)的地址控制器功能部件的操作。
主控制器(190)分别保存每一滤波器的状态控制。该控制包括用以存储下一个输入采样的地址的指针、系数的数量和系数集的开始地址。在接收到输入时,主控制器(190)在采样指针地址存储输入,并对将在加法、乘法和累加逻辑中使用的系数和采样进行寻址,并输出计算出的采样。如果使用抽取,则主控制器(190)将存储输入,但仅计算并输出n个输入之一,其中n是抽取值。主控制器(190)随后递增输入指针地址,并将上下文切换到第二滤波器操作的状态,并随后对第二滤波器执行相同的功能。(需要注意的是,如果启用内插,则主控制器(190)对从多速率滤波器的第一到第二滤波器通过的M+1个输出中的M个输出插入0。)在第二滤波器的操作完成时,主控制器(190)更新第二滤波器的指针,并将状态切换回第一滤波器,处理继续进行,如下面以及图2和图3的流程图所描述的那样。
地址和控制块(125)中的寄存器预加载了适用于一个滤波器或一对滤波器的值。在步骤240,程序查看是否设置了运行模式。如果设置了运行模式的话,则在步骤245,程序从模数转换器选择输入。在步骤250,程序检查新的数据(数据输入采样)。主控制器(190)保持空闲状态,直到按新数据信号所示将接收到的采样输入到write_data寄存器(200)中为止。随后在步骤255,主控制器(190)为地址控制器功能部件设置Go信号,以初始化第一滤波器输出采样的处理,并将第一采样写入数据存储器(100)。在步骤260,程序随后进入执行-F1状态,以等待输出采样处理的完成(其中“F1”表示两个级联的滤波器中的第一个滤波器)。通过在步骤315或步骤325重置Go信号,地址控制器发送采样处理完成的信号。需要注意的是,如果程序处于此状态中,则不计算任何采样,(递加计数器(180)非0),主控制器(190)在步骤275返回到空闲状态,如在仅启用了一个滤波器的情况下其所做的那样。在步骤245,地址控制器功能部件设置None信号以标识没有计算采样。如果存在第二滤波器,则在步骤280,第二滤波器的控制寄存器移动到有源寄存器。
如果要计算第二滤波器采样,则程序在步骤285进入等待状态,以等待指示采样结果在AMAC流水线中已经完成处理的Delay_Last信号。随后在步骤290,将采样结果值写入到数据存储器(100)中_,并设置Go以在步骤300在控制器进入执行-F2状态(其中“F2”表示两个级联的滤波器中的第二个滤波器)时开始采样处理,将F2值移动到控制寄存器并将None设置为0。地址控制器功能部件指示通过重置Go而完成的F2输出采样。
如图3中所示,地址控制器功能部件为存储器寻址执行所有的地址计算,并转向提供AMAC功能部件的操作数寄存器。如果在步骤305出现Go信号,则在步骤310,地址控制器功能部件检查抽取计数器值(185)。
在步骤310,如果抽取值非0,则在步骤315,程序递减抽取计数器,将Go设置为0,并将None设置为真;否则,在步骤320,程序接下来检查系数地址以判断其是否在最大地址。如果不是,则在步骤325,抽取计数器加载抽取恒量(160),将Go设置为0,将Last标志设置为真,并将系数地址值(145)设置为恒量寄存器(175)中的最大值。如果系数地址为其最大值,则在步骤330,程序递减系数地址,并将数据存储器(100)内的read_addr寄存器(135,140)中的读地址值数据移动到第一加法器的数据寄存器,并将当前系数地址的系数值移动到与乘法器(115)相关的系数寄存器(coef_1)。
如果系数地址是其最小值,则在步骤325之后,在步骤335,程序检查奇数抽头滤波器。如果不存在,则在步骤340,在当前的读地址从数据存储器(100)加载数据和系数数据。如果存在奇数抽头滤波器,则在步骤345,将与第一端口(210)(data_0)相关的数据寄存器设置为read_addr0(135)的值所指向的值,将与第二端口(220)(data_1)相关的寄存器设置为0,并从当前的系数地址加载与系数存储器端口(230)(coef)相关的寄存器。在步骤345进行执行以继续步骤365,在步骤365中检查写地址的最小值。如果值为最小值,则将写地址寄存器(130)设置为addr_max恒量寄存器(165)的最大地址,将read_addr0寄存器(135)设置为写地址,并将read_addr1(140)设置为最大地址。如果写地址不是其最小值,则在步骤370,递减写地址寄存器(130),将写地址移动到read_addr0寄存器(135),并将经递减的写地址移动到read_addr1寄存器(140)。执行随后返回到步骤300。
从步骤330继续,在步骤350,程序进行检查以判断read_addr0中的值是否处于其最大值。如果不是,则在步骤360,读地址递减,执行继续到步骤380。否则,将add_min寄存器(170)中的恒量加载到read_add0寄存器(135)中,并且执行继续到步骤380。
步骤380检查以判断read_addr1寄存器(140)中的值是否为恒量寄存器addr_min(170)中的最小地址。如果不是,则递减读地址;否则,将read_addr1寄存器(140)设置为addr_max恒量寄存器(165)中的值,并且执行继续到步骤300。
如上所述,随后,地址控制器功能部件还处理针对折叠的FIR操作的FIFO和LIFO寻址的环绕(wrap-around)。其通过重置Go来指示计算的完成。
还需注意的是,操作数地址寄存器是9位以对512×16位的数据存储器进行寻址,而系数地址寄存器是8位以对256×20位的系数存储器进行寻址。再一次地读者应注意的是,这些值仅是示例性的,其他的实现方式可以在存储器中使用不同大小的字。
对应于为所示实施例所列的值,在长度上,操作数相加寄存器是17位的,被乘数寄存器是37位的,而累加器是45位的。将输出截短到16位。
例如,考虑两个级联的低通滤波器,其对输入采样速率的抽取因数为4,并为后面的操作提供干净、防混叠的输出。
第一滤波器是27抽头的低通滤波器,其抽取因数为2,第二滤波器是63抽头的低通滤波器,其抽取因数也为2。输入采样速率是每秒200000个采样,输出是每秒50000个采样。需要注意的是,滤波器块以能够在输入采样之间的时间中计算每一输出采样的任何采样速率运行。对于极高的采样速率,可以添加附加的加法、乘法和累加功能,存储器可由附加的因数进行交织,以改善存储器的带宽。
例如,为27抽头的滤波器分配的存储器地址为从0到26,为63个抽头的滤波器分配的地址为从28到90。第一滤波器的系数被加载到系数存储器(105)的地址0到13中,而第二滤波器抽头重量被存储到位置14至45中。主控制器(190)为每一滤波器保持当前状态,交换控制从而执行一个接着一个滤波器的适当抽取。抽取因数为2表示对于每一输入采样,仅计算每两个输出采样中的一个输出采样并将其输出。
Claims (22)
1、一种用于实现数字滤波器的集成电路,所述集成电路包括:
数据存储器,所述数据存储器具有第一和第二端口,以允许同时对两个数据采样进行访问;
系数存储器,存储滤波器系数;
第一加法器,对从所述第一和第二端口读取的数据采样进行相加;
乘法器,将来自所述第一加法器的值与从所述系数存储器中读取的值进行相乘;
第二加法器,累加来自所述乘法器的值;
主控制器,所述主控制器用于选择性地将所累加的值存储在所述数据存储器中以便做进一步的处理或输出所累加的值。
2、如权利要求1所述的集成电路,其中,所述数据存储器和所述系数存储器是随机存取存储器。
3、如权利要求1所述的集成电路,还包括:
地址和控制块,用于保存适于所述滤波器执行的值;
所述地址和控制块与所述数据存储器和所述系数存储器进行通信。
4、如权利要求3所述的集成电路,其中,所述地址和控制块还包括:
第一组寄存器,保存第一预定数字滤波器的值;
第二组寄存器,保存第二预定数字滤波器的对应值。
5、如权利要求4所述的集成电路,其中,所述第一组寄存器包括至少下列各项:
写地址寄存器,将下一个输入数据的地址选择性地保存到数据存储器或系数存储器中;
第一读地址寄存器,保存要从所述数据存储器的第一端口读取的下一个数据的地址;
第二读地址寄存器,保存要从所述数据存储器的第二端口读取的下一个数据的地址;
系数地址寄存器,保存要读取的下一个系数的地址。
6、如权利要求1所述的集成电路,还包括:
主控制器,所述主控制器具有计算机可读介质,所述计算机可读介质包含用以实现预定数字滤波器的指令。
7、一种实现数字滤波器的方法,所述方法包括:
提供数据存储器和系数存储器,所述数据存储器包括第一和第二端口;
还提供地址和控制块,所述地址和控制块保存用于控制所述数字滤波器操作的第一组参数;
将数据的当前写地址以循环链表的形式保存在所述地址控制块中,所述循环链表的大小等于滤波器抽头的预定数量;
把要从所述第一数据存储器端口读取数据的第一读地址以先进先出队列的形式进行保存;
把要从所述第二数据存储器端口读取数据的第二读地址以后进先出堆栈的形式进行保存;
将系数读地址以循环链表的形式进行保存,所述系数地址的大小等于滤波器抽头的预定数量除以2,如果所述滤波器抽头数量为奇数,则向上取整;
将输入数字采样存储在所述数据存储器中,其存储位置由所述地址控制块中的当前写地址确定;
根据所述数据存储器中存储的采样和所述系数存储器中存储的系数计算输出采样。
8、如权利要求7所述的方法,还包括下列步骤:
将所计算出的输出采样存储在所述数据存储器中。
9、如权利要求7所述的方法,还包括:
在所述地址控制块中保存抽取计数值;
对于每一输入采样,在计算所述输出采样之前,递减所述抽取计数值,直到所述抽取计数值变成0为止。
10、如权利要求7所述的方法,其中,将所述第一和第二读地址、所述写地址以及所述系数地址作为虚拟存储器地址保存在相应的存储器中。
11、一种实现级联数字滤波器的方法,所述方法包括:
提供数据存储器和系数存储器,所述数据存储器包括第一和第二存储器端口;
还提供地址和控制块,所述地址和控制块保存用于控制第一数字滤波器操作的第一组参数;还在所述地址控制块中提供第二组控制参数,所述第二组参数保存用于控制第二数字滤波器操作的值;
将数据的当前写地址以循环链表的形式保存在所述地址控制块中,所述循环链表的大小等于滤波器抽头的预定数量;
把要从所述第一数据存储器端口读取数据的第一读地址以先进先出队列的形式进行保存;
把要从所述第二数据存储器端口读取数据的第二读地址以后进先出堆栈的形式进行保存;
将系数读地址保存为循环链表,所述系数地址的大小等于滤波器抽头的预定数量除以2,如果所述滤波器抽头的数量为奇数,则向上取整;
将输入数字采样存储在所述数据存储器中,其存储位置由所述地址控制块中的当前写地址确定;
根据所述数据存储器中存储的采样和所述系数存储器中存储的系数计算所述第一数字滤波器的输出采样;
将所述地址控制块中的所述第一组参数与所述地址控制块中的所述第二组参数进行交换;
根据所述数据存储器中存储的采样和所述系数存储器中存储的系数计算所述级联数字滤波器的输出采样;
将所述地址控制块中的所述第一组参数与所述地址控制块中的所述第二组参数进行交换。
12、如权利要求10所述的方法,还包括下列步骤:
将所计算出的输出采样存储在所述数据存储器中。
13、如权利要求10所述的方法,还包括:
在所述地址控制块中保存抽取计数值;
对于每一输入采样,在计算所述输出采样之前,递减所述抽取计数值,直到所述抽取计数值变成0为止。
14、如权利要求10所述的方法,其中,将所述第一和第二读地址、所述写地址以及所述系数地址作为虚拟存储器地址保存在相应的存储器中。
15、一种具有计算机可执行指令的计算机可读介质,所述指令用于执行在装置中实现数字滤波器的方法,所述装置包括:数据存储器和系数存储器,所述数据存储器包括第一和第二存储器端口;地址和控制块,所述地址和控制块保存用于控制所述数字滤波器操作的第一组参数;所述方法包括:
将数据的当前写地址以循环链表的形式保存在所述地址控制块中,所述循环链表的大小等于滤波器抽头的预定数量;
把要从所述第一数据存储器端口读取数据的第一读地址以先进先出队列的形式进行保存;
把要从所述第二数据存储器端口读取数据的第二读地址以后进先出堆栈的形式进行保存;
将系数读地址保存为循环链表,所述系数地址的大小等于滤波器抽头的预定数量除以2,如果所述滤波器抽头的数量为奇数,则向上取整;
将输入数字采样存储在所述数据存储器中,其存储位置由所述地址控制块中的当前写地址确定;
根据所述数据存储器中存储的采样和所述系数存储器中存储的系数计算输出采样。
16、如权利要求15所述的计算机可读介质,其中,所述方法还包括下列步骤:
将所计算出的输出采样存储在所述数据存储器中。
17、如权利要求15所述的计算机可读介质,其中,所述方法还包括:
在所述地址控制块中保存抽取计数值;
对于每一输入采样,在计算所述输出采样之前,递减所述抽取计数值,直到所述抽取计数值变成0为止。
18、如权利要求15所述的计算机可读介质,其中,将所述第一和第二读地址、所述写地址以及所述系数地址作为虚拟存储器地址保存在相应的存储器中。
19、一种具有计算机可执行指令的计算机可读介质,所述指令用于执行在装置中实现级联数字滤波器的方法,所述装置包括:
数据存储器和系数存储器,所述数据存储器包括第一和第二存储器端口;
地址和控制块,所述地址和控制块保存用于控制第一数字滤波器操作的第一组参数;
所述地址控制块中的第二组控制参数,所述第二组参数保存用于控制第二数字滤波器操作的值;
所述方法包括:
将数据的当前写地址以循环链表的形式保存在所述地址控制块中,所述循环链表的大小等于滤波器抽头的预定数量;
把要从所述第一数据存储器端口读取数据的第一读地址以先进先出队列的形式进行保存;
把要从所述第二数据存储器端口读取数据的第二读地址以后进先出堆栈的形式进行保存;
将系数读地址保存为循环链表,所述系数地址的大小等于所述滤波器抽头预定数量除以2,如果所述滤波器抽头的数量为奇数,则向上取整;
将输入数字采样存储在所述数据存储器中,其存储位置由所述地址控制块中的当前写地址确定;
根据所述数据存储器中存储的采样和所述系数存储器中存储的系数计算所述第一数字滤波器的输出采样;
将所述地址控制块中的所述第一组参数与所述地址控制块中的所述第二组参数进行交换;
根据所述数据存储器中存储的采样和所述系数存储器中存储的系数计算所述级联数字滤波器的输出采样;
将所述地址控制块中的所述第一组参数与所述地址控制块中的所述第二组参数进行交换。
20、如权利要求19所述的计算机可读介质,其中,所述方法还包括下列步骤:
将所计算出的输出采样存储在所述数据存储器中。
21、如权利要求19所述的计算机可读介质,其中,所述方法还包括:
在所述地址控制块中保存抽取计数值;
对于每一输入采样,在计算所述输出采样之前,递减所述抽取计数值,直到所述抽取计数值变成0为止。
22、如权利要求19所述的计算机可读介质,其中,将所述第一和第二读地址、所述写地址以及所述系数地址作为虚拟存储器地址保存在相应的存储器中。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/219,376 US20070052557A1 (en) | 2005-09-02 | 2005-09-02 | Shared memory and shared multiplier programmable digital-filter implementation |
US11/219,376 | 2005-09-02 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101351791A true CN101351791A (zh) | 2009-01-21 |
Family
ID=37809434
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2006800320412A Pending CN101351791A (zh) | 2005-09-02 | 2006-08-29 | 共享存储器和共享乘法器的可编程数字滤波器的实现 |
Country Status (6)
Country | Link |
---|---|
US (1) | US20070052557A1 (zh) |
EP (1) | EP1932238A2 (zh) |
JP (1) | JP2009507423A (zh) |
KR (1) | KR20080053327A (zh) |
CN (1) | CN101351791A (zh) |
WO (1) | WO2007027692A2 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102412808A (zh) * | 2011-11-25 | 2012-04-11 | 南京中兴特种软件有限责任公司 | 一种基于fpga的高性能多路fir数字抽取滤波器及其读写方法 |
CN102539864A (zh) * | 2010-12-31 | 2012-07-04 | 北京普源精电科技有限公司 | 数字示波器及信号测量方法 |
CN106533392A (zh) * | 2016-10-31 | 2017-03-22 | 杭州士兰微电子股份有限公司 | 用于脉宽调制信号的数字滤波器及方法 |
CN108140017A (zh) * | 2015-07-10 | 2018-06-08 | 节奏半导体有限责任公司 | 用于线性相位有限脉冲响应抽取滤波器中的地址排序的方法和装置 |
WO2019127918A1 (zh) * | 2017-12-29 | 2019-07-04 | 京信通信系统(中国)有限公司 | 一种数字滤波器及数据处理方法 |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100835173B1 (ko) * | 2006-09-20 | 2008-06-05 | 한국전자통신연구원 | 곱셈 누적 연산을 위한 디지털 신호처리 장치 및 방법 |
US8751554B2 (en) * | 2010-04-26 | 2014-06-10 | Aptina Imaging Corporation | Systems and methods for an adjustable filter engine |
US9823928B2 (en) * | 2011-09-30 | 2017-11-21 | Qualcomm Incorporated | FIFO load instruction |
KR102192991B1 (ko) | 2014-04-23 | 2020-12-18 | 삼성전자주식회사 | 가변적인 디지털 필터를 포함하는 아날로그-디지털 컨버터 및 이를 포함하는 이미지 센서 |
CN111865311B (zh) * | 2020-07-27 | 2024-04-09 | 中国电子科技集团公司第三十六研究所 | 一种可变模小数变频并行信号处理装置及方法 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5206821A (en) * | 1991-07-01 | 1993-04-27 | Harris Corporation | Decimation circuit employing multiple memory data shifting section and multiple arithmetic logic unit section |
US5475628A (en) * | 1992-09-30 | 1995-12-12 | Analog Devices, Inc. | Asynchronous digital sample rate converter |
US5450083A (en) * | 1994-03-09 | 1995-09-12 | Analog Devices, Inc. | Two-stage decimation filter |
US6038191A (en) * | 1997-10-22 | 2000-03-14 | Texas Instruments Incorporated | Circuit for reducing stand-by current induced by defects in memory array |
FR2776093A1 (fr) * | 1998-03-10 | 1999-09-17 | Philips Electronics Nv | Circuit processeur programmable muni d'une memoire reconfigurable, pour realiser un filtre numerique |
US6470365B1 (en) * | 1999-08-23 | 2002-10-22 | Motorola, Inc. | Method and architecture for complex datapath decimation and channel filtering |
US6427158B1 (en) * | 2000-12-14 | 2002-07-30 | Texas Instruments Incorporated | FIR decimation filter and method |
US6864812B1 (en) * | 2004-02-05 | 2005-03-08 | Broadcom Corporation | Hardware efficient implementation of finite impulse response filters with limited range input signals |
US7418467B2 (en) * | 2004-06-18 | 2008-08-26 | Analog Devices, Inc. | Micro-programmable digital filter |
-
2005
- 2005-09-02 US US11/219,376 patent/US20070052557A1/en not_active Abandoned
-
2006
- 2006-08-29 EP EP06790081A patent/EP1932238A2/en not_active Withdrawn
- 2006-08-29 WO PCT/US2006/033725 patent/WO2007027692A2/en active Search and Examination
- 2006-08-29 CN CNA2006800320412A patent/CN101351791A/zh active Pending
- 2006-08-29 KR KR1020087007928A patent/KR20080053327A/ko not_active Application Discontinuation
- 2006-08-29 JP JP2008529195A patent/JP2009507423A/ja not_active Withdrawn
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102539864A (zh) * | 2010-12-31 | 2012-07-04 | 北京普源精电科技有限公司 | 数字示波器及信号测量方法 |
CN102539864B (zh) * | 2010-12-31 | 2016-01-20 | 北京普源精电科技有限公司 | 数字示波器及信号测量方法 |
CN102412808A (zh) * | 2011-11-25 | 2012-04-11 | 南京中兴特种软件有限责任公司 | 一种基于fpga的高性能多路fir数字抽取滤波器及其读写方法 |
CN102412808B (zh) * | 2011-11-25 | 2015-01-21 | 南京中新赛克科技有限责任公司 | 一种基于fpga的高性能多路fir数字抽取滤波器及其读写方法 |
CN108140017A (zh) * | 2015-07-10 | 2018-06-08 | 节奏半导体有限责任公司 | 用于线性相位有限脉冲响应抽取滤波器中的地址排序的方法和装置 |
CN108140017B (zh) * | 2015-07-10 | 2021-06-01 | 节奏半导体有限责任公司 | 用于线性相位有限脉冲响应抽取滤波器的方法和装置 |
CN106533392A (zh) * | 2016-10-31 | 2017-03-22 | 杭州士兰微电子股份有限公司 | 用于脉宽调制信号的数字滤波器及方法 |
CN106533392B (zh) * | 2016-10-31 | 2023-09-08 | 杭州士兰微电子股份有限公司 | 用于脉宽调制信号的数字滤波器及方法 |
WO2019127918A1 (zh) * | 2017-12-29 | 2019-07-04 | 京信通信系统(中国)有限公司 | 一种数字滤波器及数据处理方法 |
Also Published As
Publication number | Publication date |
---|---|
US20070052557A1 (en) | 2007-03-08 |
KR20080053327A (ko) | 2008-06-12 |
WO2007027692A3 (en) | 2008-09-18 |
JP2009507423A (ja) | 2009-02-19 |
WO2007027692A2 (en) | 2007-03-08 |
EP1932238A2 (en) | 2008-06-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101351791A (zh) | 共享存储器和共享乘法器的可编程数字滤波器的实现 | |
EP1400016B1 (en) | Reconfigurable digital filter having multiple filtering modes | |
EP2541431A1 (en) | Data input for systolic array processors | |
US20040078403A1 (en) | Reconfigurable filter node for an adaptive computing machine | |
US5274469A (en) | Sample rate converter circuit for image data | |
US4939684A (en) | Simplified processor for digital filter applications | |
US6940897B2 (en) | System and method for a highly-programmable FIR filter | |
CN103378820A (zh) | 可编程数字滤波实现方法、装置、基带芯片及其终端 | |
US6658440B1 (en) | Multi channel filtering device and method | |
CN210466088U (zh) | 微控制器和硬件模块 | |
JPH0767063B2 (ja) | デジタル信号処理回路 | |
CN101253475A (zh) | 可编程的数字滤波器 | |
JP6311601B2 (ja) | 多段フィルタ処理装置及び方法 | |
US7447722B2 (en) | Low latency computation in real time utilizing a DSP processor | |
Pristach et al. | Enhanced architecture of FIR filters using block memories | |
JP2001160736A (ja) | デジタルフィルタ回路 | |
JP3125672B2 (ja) | ディジタルフィルタ | |
CN101594122A (zh) | 有限脉冲响应滤波器及其实施方法 | |
Khalil | Designing a dual core processor system to act as multi rate filter using embedded design techniques | |
US10169040B2 (en) | System and method for sample rate conversion | |
JP4586114B1 (ja) | 積和演算装置 | |
GB2611751A (en) | Neural network processing | |
Prasad et al. | FPGA based hardware as a coprocessor | |
JPH0364111A (ja) | メモリ装置及びそれを用いたディジタル信号処理装置 | |
Chance | 18.1 THREE SIGNAL PROCESSORS" TYPICAL DIGITAL SIGNAL |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 1126875 Country of ref document: HK |
|
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Open date: 20090121 |
|
REG | Reference to a national code |
Ref country code: HK Ref legal event code: WD Ref document number: 1126875 Country of ref document: HK |