CN112425075A - 数字信号处理器及操作方法 - Google Patents

数字信号处理器及操作方法 Download PDF

Info

Publication number
CN112425075A
CN112425075A CN201980041552.8A CN201980041552A CN112425075A CN 112425075 A CN112425075 A CN 112425075A CN 201980041552 A CN201980041552 A CN 201980041552A CN 112425075 A CN112425075 A CN 112425075A
Authority
CN
China
Prior art keywords
filter
shift register
lookup table
signal processor
digital signal
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
Application number
CN201980041552.8A
Other languages
English (en)
Inventor
S·彼得莫姆
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
MENTA
Original Assignee
MENTA
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by MENTA filed Critical MENTA
Publication of CN112425075A publication Critical patent/CN112425075A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/003Modifications for increasing the reliability for protection
    • H03K19/00323Delay compensation

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Algebra (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Complex Calculations (AREA)
  • Image Processing (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Electrophonic Musical Instruments (AREA)
  • Communication Control (AREA)

Abstract

一种灵活的数字信号处理器模块包括滤波器单元,其包括乘法器和加法器,其中乘法器从存储器和移位寄存器查找表接收输入。数字信号处理器模块可以通过提供来自存储器的合适的滤波器系数和来自移位寄存器查找表的数据值来实现数字滤波器,例如FIR或IIR滤波器。可选状态机可以确保存储器移位寄存器查找表的寻址以及数字信号处理器模块的多个实例之间的同步,其中这些实例是特定的滤波器实现所需要的。提出的架构提供了额外操作模式,其中支持滤波器实现以外的操作。

Description

数字信号处理器及操作方法
技术领域
本发明涉及数字信号处理器架构。
背景技术
数字信号处理器是为数字信号处理操作(例如数字滤波器、压缩等)提供专用支持的数字电子模块。
可以以很多形式来提供数字信号处理器功能,包括独立的微处理器,作为“封装中的系统”单元的一部分,或者作为FPGA架构中的专用块。
FPGA是一种可编程逻辑器件。它们通常基于标准的可编程逻辑块,大量的可编程逻辑块布置在一起以实现各种功能。
图1示意性地示出了目前技术中已知的FPGA系统的示例。
如图1所示,FPGA芯片10包括多个逻辑块11。芯片还包括多个输入/输出端口12。连接这些逻辑块11和输入/输出端口12的是多个轨道14。在这些轨道的交接点处提供了许多可编程的布线区域13,它们也可以被称为开关盒。在这些可编程布线区域中,提供了开关,这些开关可以在存储在与每个开关相连接的位单元存储器中的逻辑值的控制下,选择性地连接任何一对相交的轨道。在系统启动时从非易失性存储器中设置位单元存储器值。因此,通过根据需要设置开关存储器中的值,可以将任何逻辑块的任何连接耦合至任何其它逻辑块的连接或者任何输入/输出端口12。类似地,任何一个输入/输出端口可以连接到任何其它输入/输出端口。因此,通过适当地配置存储器单元以定义每个逻辑块的操作,以及定义开关存储器13以在逻辑块之间建立适当的连接,可以实现任何所需的功能。
虽然FPGA的基本原理是基于通过标准逻辑块的适当连接和适当逻辑值实现任何数字运算的可能性,但在某些情况下,这种通用方法在用于实现给定功能的芯片表面积以及在应用所需的功能进行操作时消耗的能量方面效率极低。因此,许多现代FPGA架构包括专用块15,其包括专门设计为支持某些特定功能的电路。
某些FPGA架构提供了这样的专用块15以支持数字信号处理操作。
图2示出了现有技术中已知的数字信号处理块。
如图2所示,提供了一个包含两个输入211和212的块200,每个输入由中继器213和214缓存。输入211和212通过另一个中继器221将值提供给乘法器220,乘法器220将其输出提供给加法器230。加法器通过另一个中继器216接收第二输入215,并通过又一个中继器231发射块输出217。取决于实施方式的细节,可以使用或不使用各种中继器。
作为如上所述的FPGA架构中的块,DSP块可以连接到由FPGA的其它块提供的任何合适的逻辑单元。具体而言,这些其它块通常将是如上所述的标准逻辑块,可以被配置为提供所需的操作可能需要的任何逻辑输入。通过向一个输入211或212提供合适的系数值,以及向另一输入提供适当定时的一系列数据值,并配置其它逻辑块以累加输出值,可以实现过滤器和其它功能。
例如,可以在Xilinx Virtex 5或Xilinx Virtex 4FPGA架构的用户指南中找到这些方法的示例。
特别应了解,尽管如上所述的现有技术方法在某种程度上提高了DSP架构的效率,但它们依赖于外部逻辑单元来支持特定DSP操作的实现意味着在所需的空间、消耗的能量、时钟分配等方面,所得的电路仍处于次优状态。期望提供一种DSP架构,其在保持高度通用性的同时提供更多集成功能。
发明内容
根据本发明,在第一方面提供了一种可编程数字信号处理器,其包括数字滤波器、移位寄存器查找表和滤波器存储器,其中,所述移位寄存器查找表被耦合以在第一操作模式下向所述数字滤波器提供输入数据,并且所述滤波器存储器被耦合以在所述第一操作模式下向所述数字滤波器提供滤波器系数,其中,所述滤波器存储器的所述输出和所述移位寄存器查找表的所述输出被同步,以产生相应滤波器系数和输入数据,共同实现期望的滤波器配置。
在所述第一方面的发展中,所述移位寄存器查找表包括移位寄存器,其中,所述移位寄存器被配置以便可操作为单个连续移位寄存器或多个可独立操作的移位寄存器。
在所述第一方面的发展中,所述可编程数字信号处理器还包括状态机,所述状态机向所述移位寄存器查找表和所述滤波器存储器提供寻址值。
在所述第一方面的发展中,所述可编程寻址值包括用于所述移位寄存器查找表和所述滤波器存储器的单个地址,由此,构造被存储在所述移位寄存器查找表和所述滤波器存储器中的值以使得在所述第一操作模式下,所述单个地址参考所述数字滤波器的所述相应系数和输入数据。
在所述第一方面的发展中,在第二操作模式下,存储在所述移位寄存器查找表中的所述值被输出以进行所述数字滤波器以外的处理。
在所述第一方面的发展中,在所述第二操作模式下,所述移位寄存器查找表用作乘法器输入寄存器。
在所述第一方面的发展中,所述数字滤波器构成了有限冲激响应滤波器的组件。
在所述第一方面的发展中,所述数字滤波器构成无限冲激响应滤波器的组件,所述无限冲激响应滤波器包括第一有限冲激响应滤波器和处于反馈配置的第二有限冲激响应滤波器,其中,所述状态机提供使能信号来协调所述第一有限冲激响应和所述第二有限冲激响应的输出的组合,以实现所述无限冲激响应滤波器。
在所述第一方面的发展中,所述数字信号处理器在包括多个查找表的FPGA架构中实现,每个查找表的配置由在系统启动时利用配置比特流编程的一个或多个相应存储器单元定义,其中,所述滤波器存储器中的所述值也由所述配置比特流编程。
根据本发明,在第二方面提供了一种执行数字信号处理器操作的方法,所述方法包括:对移位寄存器查找表进行寻址以在第一操作模式下将数据输出到所述数字信号处理器,以及对滤波器存储器进行寻址以在所述第一操作模式下向所述数字滤波器提供系数,以及使用所述系数对所述输入数据执行数字滤波器操作。
在所述第二方面的发展中,所述方法还包括以下步骤:构造所述移位寄存器查找表和所述滤波器存储器,使得在所述第一操作模式下,单个地址值参考所述数字滤波器的相应系数和输入数据,从而使得以下步骤是使用所述单个地址值执行的:在第一操作模式下对移位寄存器查找表进行寻址以将系数输出到所述数字信号处理器,以及在所述第一操作模式下对滤波器存储器进行寻址以将输入数据提供给所述数字滤波器。
在所述第二方面的发展中,所述数字滤波器操作是有限冲激响应滤波器操作。
在所述第二方面的发展中,所述数字滤波器操作是无限冲激响应滤波器操作,其包括第一有限冲激响应操作和基于反馈值的第二有限冲激响应操作,所述方法还包括以下步骤:提供使能信号用于协调所述第一有限冲激响应操作和所述第二有限冲激响应操作的结果的组合以获得无限冲激响应滤波器结果。
根据本发明,在第三方面提供了一种用于计算机的程序,所述程序包括适于实现所述第二方面的步骤的指令。
附图说明
现在将参考附图描述本发明的上述和其它优点,在附图之中:
图1示意性地示出了目前技术中已知的FPGA系统的示例;
图2示出了现有技术中已知的数字信号处理块;
图3示出了根据第一实施例的可编程数字信号处理器;
图4示出了根据第二实施例的可编程数字信号处理器;
图5呈现了根据实施例的有限冲激响应滤波器的并行实现;
图6呈现了根据实施例的无限冲激响应滤波器的并行实现;
图7示出了根据实施例的使用滤波器实现的有符号乘法器;以及
图8呈现了根据实施例的执行数字信号处理器操作的方法。
具体实施方式
图3示出了根据第一实施例的可编程数字信号处理器。
如所示的,可编程数字信号处理器300包括数字滤波器310、移位寄存器查找表320和存储器330。存储器可以包括随机存取存储器(例如RAM或ROM设备)、级联寄存器或其它。移位寄存器查找表320被耦合以在第一操作模式下向数字滤波器310提供输入数据,并且滤波器存储器330被耦合以在该第一操作模式下向数字滤波器310提供滤波器系数。滤波器存储器的输出和移位寄存器查找表的输出被同步,以产生相应的滤波器系数和输入数据,共同实现期望的滤波器配置。
数字滤波器包括:乘法器,其被配置为将数据值和系数值相乘;以及加法器,其用于对连续值进行累加(可能与附加寄存器一起使用),基本上如上文针对图2所描述的。可以对额外的延迟、求和、复用或其它组件进行合并以扩展功能。
如所示的,移位寄存器查找表320包括移位寄存器,该移位寄存器包括四个触发器321、322、323、324。应当理解,虽然仅示出了四个触发器,但是可以提供任意数量的触发器。由于移位寄存器的长度对应于可以由图3的DSP的单个实现来处理的系数的最大数量,因此可以基于滤波器能够处理的系数的数量(即滤波器抽头的数量)来选择触发器的数量,这又是滤波器的基本设计约束,反映了可以执行的滤波器操作的复杂性。在某些实施例中,方便的触发器数量可以是32。
类似地,存储器330中的地址的数量可以等于滤波器能够处理的系数的数量,即滤波器抽头的数量。在其它实施例中,存储器330中的地址数量可以小于滤波器能够处理的系数的数量,即滤波器抽头的数量。在其它实施例中,存储器330中的地址数量可以大于滤波器能够处理的系数的数量,即滤波器抽头的数量。
存储在每个存储器地址中的数据字的长度可以等于输入数据总线的宽度。24比特输入总线建议24比特系数,而移位寄存器查找表则包括24个并行的移位寄存器和复用器。然后,滤波器将在滤波操作中执行两个24比特值的乘法运算。
在操作中,用于滤波的二进制数据值的连续流到达输入301,随着如下所述的处理的进行,其逐渐通过移位寄存器321、322、323、324被进行时钟控制。对于加载到移位寄存器321、322、323、324的触发器中的值的给定集合,对移位寄存器321、322、323、324的每个触发器依次寻址直至被寻址的触发器的数量达到滤波器中的抽头数量,并且将该值作为数据值传送到滤波器310。
同时,当移位寄存器321、322、323、324的每个触发器被寻址直至被寻址的触发器的数量达到滤波器中的抽头数量时,存储器330被同时寻址,由此被寻址的存储器位置包含与被寻址的触发器相对应的滤波器系数,并且结果输出作为系数值集合被传送到滤波器310。
因此,来自移位寄存器的被寻址值由滤波器310使用存储器330提供的相应系数来进行处理。滤波器的输出被累加,然后系统继续处理移位寄存器321、322、323、324的下一个触发器以及存储器330中的相应位置。
以此为基础,根据移位寄存器各自的系数集合,对移位寄存器中的每个数据值进行处理直至所处理的数据值的数量达到滤波器中抽头的数量,并将结果在滤波器的输出处进行累加。一旦移位寄存器中达到滤波器中的抽头数量的每个触发器已被寻址,就对移位寄存器进行时钟控制(例如,通过激活时钟总线302),以便将移位寄存器中每个触发器的值传递给其邻居,将新的数据值从数据输入301经时钟控制进入到移位寄存器的第一触发器321中,并将丢弃移位寄存器中最后一个触发器上的值。
依次开始对移位寄存器321、322、323、324的每个触发器进行寻址的过程直到被寻址的触发器的数量达到滤波器中的抽头数量,然后,对于新的值集合,重新开始由滤波器310使用存储器330所提供的相应系数进行的处理。
该过程将无限继续,直至输入通道301上的每个输入值都已经被处理。
图4示出了根据第二实施例的可编程数字信号处理器。
如针对图3所描述的,存储器330中的系数值和移位寄存器查找表420中的数据值的寻址以同步方式执行,使得当从移位寄存器查找表420获得与滤波器的特定抽头位置相对应的数据时,从存储器330获得用于该抽头位置的正确系数。应当认识到的是,可以用多种方式来实现该同步,例如,一方面参考为存储器330提供相应地址值的映射表等,另一方面参考移位寄存器查找表420。
还将认识到的是,存储器330、移位寄存器查找表420可以被构造为使得同一地址值指向存储器330中的相应值以及移位寄存器查找表420中的数据值。
因此,提供了一种可编程数字信号处理器400,其包括数字滤波器310、移位寄存器查找表420和存储器330,其中,移位寄存器查找表420被耦合以在第一操作模式下向数字滤波器310提供输入数据,并且滤波器存储器330被耦合以在第一操作模式下向数字滤波器310提供滤波器系数,其中,滤波器存储器330的输出和移位寄存器查找表420的输出被同步,以产生相应滤波器系数和输入数据,共同实现期望的滤波器配置。
图4呈现了一种实现同步的方法,其中提供了计数器440,其接收时钟输入302和抽头数量输入441。计数器440还设有输出当前计数值的输出。可以将计数器440更一般地看作构成同步状态机的一部分或全部。计数值作为地址值被馈送到存储器330和移位寄存器查找表420。在此基础上,将系数值以顺序的位置加载到存储器330中,使得随着计数值的增加,选择与连续抽头位置相对应的连续系数值。同样,随着计数值的增加,复用器425选择移位寄存器中与连续抽头位置相对应的连续触发器。因此,计数值用于以同步方式寻址存储器330和移位寄存器查找表420。计数器被配置为在其达到抽头数计数时重新开始其计数(取决于实现细节,该数可以是最大为移位寄存器查找表420中的触发器数的任何数)。在某些变型中,计数器可以设有溢出输出,当计数值达到抽头数量输入时,其输出预定值。该输出可以用于协调多个可编程数字信号处理器的操作,例如,如下文进一步详细描述的。
如所示的,在图4的布置中,复用器425被实现为两个子复用器425a和425b,每个子复用器接收移位寄存器321-324的输出的一部分。每个子复用器425a和425b可以接收移位寄存器321-324的一半输出,或者可以用某些其它方式在两个子复用器之间划分移位寄存器321-324的输出。两个子复用器425a和425b的输出本身由第三子复用器435c选择,使得三个子复用器425a、425b、425c在逻辑上等效于图3的复用器325。在移位寄存器321-324中的与将移位寄存器输出发送到一个子复用器或另一个子复用器的点相对应的点处,提供了另一个复用器426,如在触发器322和触发器323之间所示。利用一个选择值,复用器426将触发器323的输入耦合到触发器322的输出,以便在操作中维持单个移位寄存器。利用另一个选择值,复用器426将触发器323的输入与触发器322的输出解耦以支持替代输入,从而提供两个分离的移位寄存器,例如,如下文参考图7所描述的。
如所示的,图4的滤波器310还包括如上所讨论的累加器405,可以提供该累加器405以便对来自滤波器310的连续输出进行累加。通过这种方式,例如,可以通过对由滤波器310针对每个抽头位置输出的值进行累加来实现完整的有限冲激响应滤波器,如使用如上所指示的各个数据值和系数值所获得的。
因此,可编程数字信号处理器还可以包括状态机440,该状态机440向移位寄存器查找表和存储器提供寻址值,其中在第一操作模式下,单个地址参考数字滤波器的相应系数和输入数据。
在某些实施例中,DSP模块(例如针对图3或图4所描述的那些)可以被实现为FPGA架构中的DSP块。每个DSP块可包括一个或多个DSP模块,例如针对图3或图4描述的那些。每个FPGA可以包括任意数量的DSP块,以及标准逻辑块和适合FPGA架构一般用途的其它类型的块。因此,可以在包括多个查找表的FPGA架构中实现数字信号处理器,每个查找表的配置由在系统启动时利用配置比特流编程的一个或多个相应存储器单元定义,其中滤波器存储器中的值也由配置比特流编程。
图5呈现了根据实施例的有限冲激响应滤波器的并行实现。
例如,如参考图3或图4所描述的,可以在其中抽头的数量大于由单个DSP模块提供的抽头的数量,或者通过被配置用于在每个采样周期计算若干抽头的多个DSP模块可以更好地满足频率要求的上下文中使用基于半并行实现的FIR滤波器。
举例来说,在使用带有3个DSP的12抽头滤波器的情况下,以下分解可能适用:
Figure BDA0002847768090000081
其中,n是每个抽头的索引,
Cn是每个抽头n的系数,
Xn是每个抽头n处的数据值
可以注意到,每个子项呈现相同的结构,并且可以使用3个级联DSP的序列来实现(子项是4个乘积的加法)。
在此基础上,如图5所示,提供了第一DSP模块510(其对应于例如上文参考图3或图4所描述的DSP模块)、第二DSP模块520(其对应于例如上文参考图3或图4所描述的DSP模块)以及第三DSP模块530(其对应于例如上文参考图3或图4所描述的DSP模块)。示意性地示出了每个DSP模块510、520、530,其包括同步元件、移位寄存器查找表元件和存储器元件,以及滤波器元件的乘法器和加法器。
例如,如参考图4的元件400所描述的,这三个DSP模块中的每个DSP模块均被配置为FIR滤波器。三个DSP模块中的每个模块均被配置为处理要由系统整体实现的滤波器总抽头的顺序子集,因此,在所有三个DSP模块上实现的抽头总数为最终滤波器的抽头数量。
第一DSP模块510接收数据输入513。该相同的数据从第一DSP模块的移位寄存器查找表的输出馈送到第二DSP模块520的输入523处,并从第二DSP模块的移位寄存器查找表的输出馈送到第三DSP模块530的输入533处,以使得各个DSP模块的移位寄存器查找表构成了一条延迟线,从而第二DSP模块520在第一DSP模块510之后n个周期接收数据,第三DSP模块520在第一DSP模块510之后2n个周期接收数据。
类似地,第一DSP模块510接收同步信号515。通过触发器516和526所表示的延迟线,相应的同步信号525被馈送到第二DSP模块520,并且相应的同步信号535被馈送到第三DSP模块530,从而在第一DSP模块510之后一个周期启用第二DSP模块520,在第一DSP模块510之后两个周期启用第三DSP模块520。
第一DSP模块510和第二DSP模块520的输出在第二DSP模块的加法器521处相加,并且加法器521的输出和第三DSP模块531的输出在第三DSP模块的加法器531处相加。加法器531的输出由模块540在整个滤波器处理周期上累加,如上所讨论的,这可以使用另外的DSP模块的累加单元来实现,例如参考图4描述的元件405。
通过这种方式,可以通过连接如上所述的适当数量的DSP模块并提供适当的系数和同步信号来实现任意大小的FIR。应当认识到的是,可以用这种方式连接任何期望数量的DSP模块。
图6呈现了根据实施例的无限冲激响应滤波器的并行实现。
描述IIR滤波器的通用公式为:
Figure BDA0002847768090000101
可使用A0=1来简化公式。
第一个和定义了Nb个抽头的FIR滤波器。该FIR滤波器适用于采样输入。
第二个和定义了Na个抽头的FIR滤波器。该FIR滤波器适用于IIR滤波器输出。这是滤波器的反馈回路。
在此基础上,如图6所示,提供了第一DSP模块610(其对应于例如上文参考图3或图4所描述的DSP模块)、第二DSP模块620(其对应于例如上文参考图3或图4所描述的DSP模块)以及第三DSP模块630(其对应于例如上文参考图3或图4所描述的DSP模块)。
例如,如参考图4的元件400所描述的,这三个DSP模块中的两个DSP模块610和630被配置为FIR滤波器。
具体而言,第一DSP模块610定义了Nb个抽头的FIR滤波器。该FIR滤波器适用于采样输入601。
第三DSP模块630定义了Na个抽头的FIR滤波器。该FIR滤波器适用于IIR滤波器输出。这是滤波器的反馈回路。
FIR滤波器的运行速度足够快,以在每个采样周期产生一个结果,因此以同步的方式对这两个结果进行累加是可能的。这两个滤波器均已完全注册,但它们的工作频率远高于采样频率,因此可以在1个采样周期内获得最终结果。滤波器越大,IIR滤波器的效率越低,因为时钟比与最大滤波器中的抽头数量直接相关。
为了简单地解决滤波器同步问题,在本实施例中应用以下限制:
由第一DSP模块610实现的直接FIR子滤波器被限制为可以使用例如参考图4描述的单个DSP方法在单个DSP模块中实现的抽头的数量,以便在所有配置中授予相同的流水线延迟。
由第三DSP模块630实现的环回FIR子滤波器被限制为第一DSP模块610的抽头数量的一半,并且还使用例如参考图4描述的单个DSP方法来实现。为了使第三DSP模块630足够快地运行以在第一DSP模块610的单个采样周期期间产生其结果,需要使第三DSP模块630以第一DSP模块610的速率的4倍运行。这可以通过利用具有0常数的交织系数实现此滤波器来实现。交织方法解释了16个抽头的限制。
使用移位寄存器查找表和ALU在第二DSP模块620中执行子滤波器求和以及同步。
第二DSP模块620从寄存器651和652接收时序信息,寄存器651和652分别从第一DSP模块和第三DSP模块接收系数溢出指示442,作为对信号进行同步的基础。
来自DSP模块610和630的结果的同步要求在模块610的输出上提供一条延迟线,以获得与DSP模块610相同的深度(校正抽头数量N与N/2的差)。这可以在第二操作模式下使用DSP模块620的移位寄存器查找表来完成,在第二操作模式下DSP配置中没有足够的专用寄存器。寄存器的具体数量将取决于实现细节,但是举例来说,如果需要3级流水线,由于其它信号具有2*3=6个触发器,而DSP电路仅提供2个,则另外一级可以由另一DSP模块的移位寄存器查找表提供。
因此,数字滤波器可以是无限冲激响应滤波器,其包括第一有限冲激响应和处于反馈配置中的第二有限冲激响应,其中状态机提供同步信号用于协调第一有限冲激响应和第二有限冲激响应的输出的组合,以实现无限冲激响应滤波器。
在前面的示例中,已经呈现了基于DSP模块的多个不同配置,例如针对图3或图4所描述的。在这些配置的一些中,单个DSP模块已用于实现模块本身中的滤波器操作以外的目的,而是为所提出的系统中的其它DSP模块提供其它处理、存储或同步功能。应当认识到的是,例如针对图3或图4描述的DSP模块的组件和配置,尤其是可自由访问的移位寄存器查找表320和存储器单元330的可用性,使得每个此类滤波器单元高度灵活,除了实现滤波器操作以外,还适用于许多应用。例如,如针对图3或图4描述的DSP模块可以例如用于实现能够处理大的、复数的或带符号的值的乘法器、复用器、移位寄存器等。
图7示出了根据实施例的使用滤波器实现的有符号乘法器。
可以使用参考图3或图4描述的一系列串联的DSP模块来实现任意期望大小的乘法器。
可以基于以下分解来定义47x47比特乘法器:
考虑:
A[46:0]×B[46:0]=
A={A[46:23],A[22:0]}={A2,A1}
B={B[46:23],B[22:0]}={B2,B1}
A×B={A2,A1}×{B2,B1}={A2×B2,A1×B2+A2×B1,A1×B1}=
={P3+(A1×B2+A2×B1+(A1×B1)[46,23])[46,23],(A1×B2+A2×B1+
(A1×B1)[46,23])[22,0],(A1×B1)[22,0]}
如前所述,乘法器将数据分成一方面是23个最低有效位的集合(其基础在于:本示例中的乘法器处理24个有符号比特,其中,一个比特被丢弃,保留23个有符号比特),另一方面是24个最高有效位的集合。在对应的最高有效位和最低有效位的集合的处理之间操作进行移位,从而可以在下一个相应的DSP模块上组合对应的结果。
如所示的,该系统包括四个DSP模块710、720、730、740,每个DSP模块基本上与针对图3或图4描述的布置相对应。具体而言,DSP模块710包括移位寄存器查找表711、同步状态机713(其例如对应于图4的相应部分),以及乘法器712和加法器714(一起对应于图3或图4的滤波器单元)。如所示的,移位寄存器查找表711的移位寄存器具有如上文参考图4所述的两部分配置,其中,输入A1被馈送到移位寄存器711a的第一部分,第二输入B1被馈送到移位寄存器711b的第一部分。每个移位寄存器711a、711b将数据馈送到乘法器712的相应输入。乘法器712的输出通过加法器714馈送到输出715。应当认识到的是,由于在第一DSP模块的情况下,加法器714将零添加到乘法器的输出,因此该分量可能被同等地旁路—在本示例中将其保留以展示所提出的架构的灵活性。
类似地,DSP模块720包括移位寄存器查找表721、同步状态机723(其例如对应于图4的相应部分),以及乘法器722和加法器724(一起对应于图3或图4的滤波器单元)。如所示的,移位寄存器查找表721的移位寄存器具有如上文参考图4所述的两部分配置(例如,通过复用器426的操作),其中,输入A1被馈送到移位寄存器721a的第一部分,第二输入B2被馈送到移位寄存器721b的第一部分。每个移位寄存器721a、721b将数据馈送到乘法器722的相应输入。加法器724根据上述分解,将乘法器722的输出与遭受了最高有效位和最低有效位之间的移位的在前DSP模块710的输出715相加。乘法器722的输出通过加法器724被馈送到输出725。
类似地,DSP模块730包括移位寄存器查找表731、同步状态机733(其例如对应于图4的相应部分),以及乘法器732和加法器734(一起对应于图3或图4的滤波器单元)。如所示的,移位寄存器查找表731的移位寄存器具有如上文参考图4所述的两部分配置,其中,输入A2被馈送到移位寄存器731a的第一部分,第二输入B1被馈送到移位寄存器731b的第一部分。每个移位寄存器731a、731b将数据馈送到乘法器732的相应输入。加法器734将乘法器732的输出与在前DSP模块720的输出725相加。乘法器732的输出通过加法器734被馈送到输出735。
类似地,DSP模块740包括移位寄存器查找表741、同步状态机743(其例如对应于图4的相应部分),以及乘法器742和加法器744(一起对应于图3或图4的滤波器单元)。如所示的,移位寄存器查找表741的移位寄存器具有如上文参考图4所述的两部分配置,其中,输入A2被馈送到移位寄存器741a的第一部分,第二输入B2被馈送到移位寄存器741b的第一部分。每个移位寄存器741a、741b将数据馈送到乘法器742的相应输入。加法器744根据上述分解,将乘法器742的输出与遭受了最高有效位和最低有效位之间的移位的在前DSP模块730的输出735相加。乘法器742的输出通过加法器744被馈送到输出745。
在输出715处,经过适当的时序校正,输出分量P[22:0]可用。在输出735处,经过适当的时序校正,输出分量P[45:23]可用。在输出745处,经过适当的时序校正,输出分量P[93:46]可用。
如上所述,各个移位寄存器711a、711b、721a、721b、731a、731b、741a、741b在所述配置中用于在乘法器上提供信号的同步,从而在任何给定的时钟周期内,每个输出上的值对应于同一组输入值A1、B1、A2和B2。举例来说,移位寄存器711a、711b可以分别向其各自的信号提供一个触发器的延迟值,移位寄存器721a、721b可以分别向其各自的信号提供两个触发器的延迟值,移位寄存器731a、731b可以分别向其各自的信号提供三个触发器的延迟值,并且移位寄存器741a、741b可以分别向其各自的信号提供四个触发器的延迟值。在一些实施例中,DSP单元可以为此目的专门提供大量输入寄存器,这些输入寄存器可以代替移位寄存器查找表中的移位寄存器使用,也可以用作这些移位寄存器。例如,在特定的DSP单元实现提供两个输入寄存器的情况下,第一和第二DSP单元可能仅依靠这些专用输入寄存器进行同步,而第三和第四寄存器可能会使用专用输入寄存器进行两级延迟,然后使用移位寄存器查找表中的移位寄存器来提供第三DSP模块所需的一个额外级别的延迟,以及第四DSP模块所需的两级别的延迟。此外,根据可用的专用输入中继器,针对每个DSP模块的A输入和B输入,可能对延迟操作在此基础上进行不同的处理。
如所示的,每个DSP模块在乘法器712、722、732、742与加法器714、724、734、744之间,以及在加法器714、724、734、744与输出715、725、735、745之间提供额外的中继器用于同步目的。根据某些实施例的实现细节,可以省略这些中继器中的一些或全部,或者可以根据给定实现的应用要求来提供额外的中继器。
使用DSP单元的SRL来模拟用于乘法计算的时序额外所需的寄存器构成了在第二操作模式下使用DSP模块的示例,如参考图3或图4所描述的。
在针对图7所示的这个第二操作模式下,DSP模块的移位寄存器查找表用作乘法器输入寄存器。
因此,公开了一种灵活的数字信号处理器模块,其包括滤波器单元,该滤波器单元包括乘法器和加法器,其中乘法器从存储器和移位寄存器查找表接收输入。数字信号处理器模块可以通过提供来自存储器的合适的滤波器系数和来自移位寄存器查找表的数据值来实现数字滤波器,例如FIR或IIR滤波器。可选状态机可以确保存储器移位寄存器查找表的寻址以及数字信号处理器模块的多个实例之间的同步,其中这些实例是特定的滤波器实现所需要的。提出的架构提供了额外的操作模式,其中支持滤波器实现以外的操作。
在此基础上,在第二操作模式下,存储在移位寄存器查找表中的值将被输出以进行数字滤波器以外的处理。
图8呈现了根据实施例的执行数字信号处理器操作的方法。
如所示的,在进行到步骤810之前,该方法开始于步骤800,在该步骤810中对移位寄存器查找表进行寻址以在第一操作模式下将数据输出到数字信号处理器。然后,该方法进行到步骤820,在该步骤中,对滤波器存储器进行寻址以在第一操作模式下向数字滤波器提供系数。然后,在步骤840处终止之前,该方法进行到步骤830,该步骤830使用系数对输入数据执行数字滤波器操作。
针对定义数字滤波器的多个系数中的每个系数,可以迭代地执行图8的方法。
步骤810和820可以以相反的顺序执行,即步骤820在步骤810之前,或者两者可以并行执行。
该方法还包括以下步骤:构造移位寄存器查找表和滤波器存储器,使得在第一操作模式下,单个地址值参考数字滤波器的相应系数和输入数据,使得以下步骤是使用该单个地址值执行的:在第一操作模式下对移位寄存器查找表进行寻址以将数据输出到数字信号处理器,以及在第一操作模式下对滤波器存储器进行寻址以将系数提供给数字滤波器。
在图8的方法的某些实例中,数字滤波器操作可以是有限冲激响应滤波器操作。
在图8的方法的某些实例中,数字滤波器操作可以是无限冲激响应滤波器操作,其包括第一有限冲激响应操作和基于反馈值的第二有限冲激响应操作,该方法还包括以下步骤:提供使能信号用于协调第一有限冲激响应操作和第二有限冲激响应操作的结果的组合以获得无限冲激响应滤波器结果。
在一些实施例中,本文描述的方法和过程可以全部或部分地由计算设备来实现。这些方法和过程可以通过计算机应用程序或服务、应用编程接口(API)、库和/或其它计算机程序产品或这些实体的任意组合来实现。具体而言,可以提供一种用于计算机的程序,该程序包括适于实现图8的方法的步骤或其上述任何变体的指令。
将理解的是:本文中描述的配置和/或方法在性质上是示例性的,并且这些具体实施例或示例不应该在限制性的意义上考虑,因为许多变体是可能的。本文中描述的具体例程或方法可以表示任意数量的处理策略中的一种或多种。因此,说明和/或描述的各个动作可以用说明和/或描述的顺序、用其它顺序、平行地来执行或被省略。同样地,上述过程的顺序可以改变。
本公开内容的主题包括各个过程、系统和配置的所有新颖和非显而易见的组合和子组合,以及本文中公开的其它特征、功能、动作和/或属性及它们的任何和所有等价物。

Claims (14)

1.一种可编程数字信号处理器,其包括数字滤波器、移位寄存器查找表和滤波器存储器,其中,所述移位寄存器查找表被耦合以在第一操作模式下向所述数字滤波器提供输入数据,并且所述滤波器存储器被耦合以在所述第一操作模式下向所述数字滤波器提供滤波器系数,其中,所述滤波器存储器的输出和所述移位寄存器查找表的输出被同步,以产生对应的滤波器系数和输入数据,共同实现期望的滤波器配置。
2.根据权利要求1所述的可编程数字信号处理器,其中,所述移位寄存器查找表包括移位寄存器,其中,所述移位寄存器被配置以便可操作为单个连续移位寄存器或多个可独立操作的移位寄存器。
3.根据权利要求1或2所述的可编程数字信号处理器,还包括状态机,所述状态机向所述移位寄存器查找表和所述滤波器存储器提供寻址值。
4.根据权利要求2所述的可编程数字信号处理器,其中,所述寻址值包括用于所述移位寄存器查找表和所述滤波器存储器的单个地址,由此,构造被存储在所述移位寄存器查找表和所述滤波器存储器中的值,使得在所述第一操作模式下,所述单个地址参考所述数字滤波器的所述对应的系数和输入数据。
5.根据前述任一项权利要求所述的可编程数字信号处理器,其中,在第二操作模式下,存储在所述移位寄存器查找表中的值被输出以用于所述数字滤波器以外的处理。
6.根据权利要求5所述的可编程数字信号处理器,其中,在所述第二操作模式下,所述移位寄存器查找表用作乘法器输入寄存器。
7.根据前述任一项权利要求所述的可编程数字信号处理器,其中,所述数字滤波器构成有限冲激响应滤波器的组件。
8.根据权利要求3至6中任一项权利要求所述的可编程数字信号处理器,其中,所述数字滤波器构成无限冲激响应滤波器的组件,所述无限冲激响应滤波器包括第一有限冲激响应滤波器和处于反馈配置的第二有限冲激响应滤波器,其中,所述状态机提供使能信号来协调所述第一有限冲激响应滤波器和所述第二有限冲激响应滤波器的输出的组合,以实现所述无限冲激响应滤波器。
9.根据前述任一项权利要求所述的可编程数字信号处理器,其中,所述数字信号处理器在包括多个查找表的FPGA架构中实现,每个所述查找表的配置由在系统启动时利用配置比特流编程的一个或多个相应存储器单元定义,其中,所述滤波器存储器中的值也由所述配置比特流编程。
10.一种执行数字信号处理器操作的方法,所述方法包括:
对移位寄存器查找表进行寻址以在第一操作模式下将数据输出到所述数字信号处理器,并对滤波器存储器进行寻址以在所述第一操作模式下向所述数字滤波器提供系数,使用所述系数对所述输入数据执行数字滤波器操作。
11.根据权利要求10所述的方法,包括以下进一步的步骤:构造所述移位寄存器查找表和所述滤波器存储器,使得在所述第一操作模式下,单个地址值参考所述数字滤波器的对应的系数和输入数据,使得以下所述步骤是使用所述单个地址值执行的:在第一操作模式下对移位寄存器查找表进行寻址以将系数输出到所述数字信号处理器,以及在所述第一操作模式下对滤波器存储器进行寻址以将输入数据提供给所述数字滤波器。
12.根据权利要求10或11所述的方法,其中,所述数字滤波器操作是有限冲激响应滤波器操作。
13.根据权利要求11或12所述的方法,其中,所述数字滤波器操作是无限冲激响应滤波器操作,其包括第一有限冲激响应操作和基于反馈值的第二有限冲激响应操作,所述方法包括以下进一步的步骤:提供使能信号,所述使能信号协调所述第一有限冲激响应操作和所述第二有限冲激响应操作的结果的组合以获得无限冲激响应滤波器结果。
14.一种用于计算机的程序,其包括适于实现根据权利要求10至13中的任一权利要求所述的步骤的指令。
CN201980041552.8A 2018-06-22 2019-06-19 数字信号处理器及操作方法 Pending CN112425075A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP18305800.7A EP3588779B1 (en) 2018-06-22 2018-06-22 Digital signal processor and method of operation
EP18305800.7 2018-06-22
PCT/EP2019/066249 WO2019243443A1 (en) 2018-06-22 2019-06-19 Digital signal processor and method of operation

Publications (1)

Publication Number Publication Date
CN112425075A true CN112425075A (zh) 2021-02-26

Family

ID=62874820

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980041552.8A Pending CN112425075A (zh) 2018-06-22 2019-06-19 数字信号处理器及操作方法

Country Status (11)

Country Link
US (1) US11354382B2 (zh)
EP (1) EP3588779B1 (zh)
JP (1) JP7486439B2 (zh)
KR (1) KR102663975B1 (zh)
CN (1) CN112425075A (zh)
CA (1) CA3104207A1 (zh)
IL (1) IL279283A (zh)
RU (1) RU2769964C1 (zh)
SG (1) SG11202012294QA (zh)
TW (1) TWI798455B (zh)
WO (1) WO2019243443A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN118074671A (zh) * 2024-01-30 2024-05-24 深圳市中承科技有限公司 一种几何级数量化数字滤波方法及数字滤波器

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1311921A (zh) * 1998-08-07 2001-09-05 艾利森电话股份有限公司 无乘法器的数字滤波
US6888372B1 (en) * 2002-12-20 2005-05-03 Altera Corporation Programmable logic device with soft multiplier
US7248646B1 (en) * 2002-04-19 2007-07-24 Analog Devices Inc. Digital reconfigurable core for multi-mode base-band transmitter
CN101312346A (zh) * 2007-05-24 2008-11-26 阿尔特拉公司 具有带改进的寄存器性能的逻辑模块的可编程逻辑器件

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2066540C (en) * 1991-06-13 1998-01-20 Edwin A. Kelley Multiple user digital receiving apparatus and method with time division multiplexing
US5654909A (en) * 1993-04-15 1997-08-05 Icom Incorporated 90-degree digital phase shift network and linearizer using all-pass digital filters
KR100260747B1 (ko) * 1997-12-29 2000-07-01 윤종용 유한장 임펄스응답 필터 및 그 필터링 방법
US6337878B1 (en) * 1999-03-03 2002-01-08 Nxt Wave Communications Adaptive equalizer with decision directed constant modulus algorithm
DE10003006A1 (de) 2000-01-25 2001-07-26 Bosch Gmbh Robert Anordnung und Verfahren zur Signalverarbeitung und Speicherung
JP2001339279A (ja) 2000-05-29 2001-12-07 Canon Inc フィルタ回路
US6407694B1 (en) * 2000-06-14 2002-06-18 Raytheon Company General purpose filter
KR100378592B1 (ko) * 2000-07-31 2003-03-31 한국전자통신연구원 디지털 이동 통신용 108 탭 1대4 인터폴레이션유한임펄스응답 필터장치
US7120656B1 (en) * 2000-10-04 2006-10-10 Marvell International Ltd. Movable tap finite impulse response filter
US6820103B2 (en) * 2000-11-03 2004-11-16 Qualcomm Inc. Digital filter with state storage
US7007052B2 (en) * 2001-10-30 2006-02-28 Texas Instruments Incorporated Efficient real-time computation
US7183847B2 (en) * 2004-01-28 2007-02-27 Ntt Docomo, Inc. Multi-band look-up table type predistorter
US7466782B1 (en) * 2004-02-05 2008-12-16 Maxtor Corporation Methods, apparatus and computer program products for determining the timing of bits based on frequency error
US7548941B2 (en) * 2004-06-18 2009-06-16 Analog Devices, Inc. Digital filter using memory to emulate variable shift register
RU2316807C2 (ru) * 2005-06-14 2008-02-10 Открытое акционерное общество "Научно-конструкторское бюро вычислительных систем" ОАО НКБ ВС Управляющая эвм
US7265576B1 (en) * 2005-06-14 2007-09-04 Xilinx, Inc. Programmable lookup table with dual input and output terminals in RAM mode
US7482951B1 (en) * 2006-05-08 2009-01-27 The United States Of America As Represented By The Secretary Of The Air Force Auditory attitude indicator with pilot-selected audio signals
US8242759B2 (en) * 2008-06-26 2012-08-14 International Rectifier Corporation Power supply circuit and multi-phase control based on peak and average current
RU2399093C2 (ru) * 2008-08-05 2010-09-10 Виктор Анатольевич Кущенко Процессор образов кущенко в.а.
JP5365369B2 (ja) * 2009-06-26 2013-12-11 富士通株式会社 送信装置、歪み補償装置及び歪み補償方法
US8509721B2 (en) * 2009-11-09 2013-08-13 Research In Motion Limited Hysteresis nonlinear state machine with overlapping thresholds for automatic frequency control
US8874633B2 (en) * 2011-08-23 2014-10-28 Lsi Corporation Determining coefficients for digital low pass filter given cutoff and boost values for corresponding analog version
KR101704662B1 (ko) * 2012-02-29 2017-02-08 고쿠리츠켄큐카이하츠호진 카가쿠기쥬츠신코키코 화상처리용 디지털 필터 및 문자열 경사 착시 생성 장치
US9848793B2 (en) * 2013-02-15 2017-12-26 Masdar Institute Of Science And Technology Machine-based patient-specific seizure classification system
TWI536731B (zh) * 2013-08-20 2016-06-01 瑞昱半導體股份有限公司 預失真方法、預失真裝置以及機器可讀媒體

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1311921A (zh) * 1998-08-07 2001-09-05 艾利森电话股份有限公司 无乘法器的数字滤波
US7248646B1 (en) * 2002-04-19 2007-07-24 Analog Devices Inc. Digital reconfigurable core for multi-mode base-band transmitter
US6888372B1 (en) * 2002-12-20 2005-05-03 Altera Corporation Programmable logic device with soft multiplier
CN101312346A (zh) * 2007-05-24 2008-11-26 阿尔特拉公司 具有带改进的寄存器性能的逻辑模块的可编程逻辑器件

Also Published As

Publication number Publication date
WO2019243443A1 (en) 2019-12-26
KR102663975B1 (ko) 2024-05-07
TWI798455B (zh) 2023-04-11
RU2769964C1 (ru) 2022-04-11
US20210117497A1 (en) 2021-04-22
TW202032373A (zh) 2020-09-01
JP2021530138A (ja) 2021-11-04
EP3588779B1 (en) 2021-02-24
KR20210043495A (ko) 2021-04-21
US11354382B2 (en) 2022-06-07
JP7486439B2 (ja) 2024-05-17
EP3588779A1 (en) 2020-01-01
SG11202012294QA (en) 2021-01-28
IL279283A (en) 2021-01-31
CA3104207A1 (en) 2019-12-26

Similar Documents

Publication Publication Date Title
US7353243B2 (en) Reconfigurable filter node for an adaptive computing machine
JP5356537B2 (ja) 前置加算器段を備えたデジタル信号処理ブロック
US7590676B1 (en) Programmable logic device with specialized multiplier blocks
US6538470B1 (en) Devices and methods with programmable logic and digital signal processing regions
JP2007166535A (ja) デジタルフィルタ
WO2008034027A2 (en) Processor architecture for programmable digital filters in a multi-standard integrated circuit
CN106656103B (zh) 一种fir滤波器组及滤波方法
US8612503B2 (en) Methods and apparatuses for flexible and high performance digital signal processing
CN112425075A (zh) 数字信号处理器及操作方法
JP2003264451A (ja) デジタルフィルタ
Ye et al. A low cost and high speed CSD-based symmetric transpose block FIR implementation
US8620980B1 (en) Programmable device with specialized multiplier blocks
Erdogan et al. High throughput FIR filter design for low power SoC applications
KR100249040B1 (ko) 비대칭 주파수 응답 특성을 갖는 fir 필터
JPS58162120A (ja) トランスバ−サルフイルタ
US8645442B2 (en) Method and apparatus for a finite impulse response filter
JP2004128858A (ja) Firデジタルフィルタ
Mohanty Novel block-formulation and area-delay-efficient reconfigurable interpolation filter architecture for multi-standard sdr applications
KR100451193B1 (ko) 필터회로
Romdhane et al. LMSGEN: A prototyping environment for programmable adaptive digital filters in VLSI
JP2004165945A (ja) Firディジタルフィルタ
JP2000315937A (ja) ディジタルフィルタ
KR20040037472A (ko) 디지탈 필터
JP2004297735A (ja) ディジタルフィルタ回路
JPH0993084A (ja) 入力加重型トランスバーサルフィルタ

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination