CN102301325B - 具有预加法器级的数字信号处理块 - Google Patents
具有预加法器级的数字信号处理块 Download PDFInfo
- Publication number
- CN102301325B CN102301325B CN201080005739.1A CN201080005739A CN102301325B CN 102301325 B CN102301325 B CN 102301325B CN 201080005739 A CN201080005739 A CN 201080005739A CN 102301325 B CN102301325 B CN 102301325B
- Authority
- CN
- China
- Prior art keywords
- register
- input
- digital signal
- circuit
- signal processing
- 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.)
- Active
Links
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/57—Arithmetic logic units [ALU], i.e. arrangements or devices for performing two or more of the operations covered by groups G06F7/483 – G06F7/556 or for performing logical operations
- G06F7/575—Basic arithmetic logic units, i.e. devices selectable to perform either addition, subtraction or one of several logical operations, using, at least partially, the same circuitry
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03H—IMPEDANCE NETWORKS, e.g. RESONANT CIRCUITS; RESONATORS
- H03H17/00—Networks using digital techniques
- H03H17/02—Frequency selective networks
- H03H17/06—Non-recursive filters
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/02—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
- H03K19/173—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03H—IMPEDANCE NETWORKS, e.g. RESONANT CIRCUITS; RESONATORS
- H03H17/00—Networks using digital techniques
- H03H17/02—Frequency selective networks
- H03H17/06—Non-recursive filters
- H03H2017/0692—Transposed
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Logic Circuits (AREA)
- Complex Calculations (AREA)
Abstract
本发明描述一种用于集成电路的具有预加法器级(204)的数字信号处理块(200)。所述数字信号处理块包括预加法器级(204)和控制总线(202)。所述控制总线耦合到所述预加法器级(204),以用于动态地控制所述预加法器级的操作。所述预加法器级包括:耦合到所述控制总线的第一多路复用器(306)的第一输入端口;耦合到所述控制总线的第一逻辑门(322)的第二输入端口;耦合到所述控制总线的第二逻辑门(321)的第三输入端口;以及耦合到所述控制总线的加法器/减法器(331)的第四输入端口。
Description
技术领域
本发明涉及集成电路装置(“IC”)。更明确地说,本发明涉及用于IC的具有预加法器级的数字信号处理块。
背景技术
可编程逻辑装置(“PLD”)是一类众所周知的集成电路,其可经编程以执行指定逻辑功能。一种类型的PLD(即,现场可编程门阵列(“FPGA”))通常包括可编程瓦片阵列。举例来说,这些可编程瓦片可包括输入/输出块(“IOB”)、可配置逻辑块(“CLB”)、专用随机存取存储器块(“BRAM”)、乘法器、数字信号处理块(“DSP”)、处理器、时钟管理器、延迟锁定环路(“DLL”)等等。如本文中所使用,“包括”意味着不受限制地包括。
每一可编程瓦片通常包括可编程互连和可编程逻辑两者。可编程互连通常包括大量具有不同长度的互连线,其通过可编程互连点(“PIP”)互连。可编程逻辑使用可编程元件来实施用户设计的逻辑,所述可编程元件可包括(例如)函数发生器、寄存器、算术逻辑等等。
通常通过将配置数据流加载到内部配置存储器单元中来编程可编程互连和可编程逻辑,所述内部配置存储器单元定义如何配置可编程元件。配置数据可从存储器(例如,从外部PROM)读取或由外部装置写入到FPGA中。个别存储器单元的集体状态于是决定FPGA的功能。
另一类型的PLD是复杂可编程逻辑装置或CPLD。CPLD包括两个或两个以上“功能块”,其通过互连开关矩阵连接在一起,并连接到输入/输出(“I/O”)资源。CPLD的每一功能块包括二级AND/OR结构,其类似于可编程逻辑阵列(“PLA”)和可编程阵列逻辑(“PAL”)装置中所使用的那些结构。在CPLD中,配置数据通常以芯片上形式存储于非易失性存储器中。在一些CPLD中,配置数据以芯片上形式存储于非易失性存储器中,接着下载到易失性存储器,作为初始配置(编程)序列的一部分。
对于所有这些可编程逻辑装置(“PLD”),装置的功能性由出于所述目的而提供给装置的数据位控制。所述数据位可存储在易失性存储器(例如,静态存储器单元,如在FPGA和一些CPLD中)中,存储在非易失性存储器(例如,快闪存储器,如在一些CPLD中)中,或存储在任何其它类型的存储器单元中。
其它PLD是通过应用处理层(例如金属层)来编程的,所述处理层可编程地互连装置上的各种元件。这些PLD称为掩模可编程装置。还可以其它方式来实施PLD,例如使用熔丝或反熔丝技术。术语“PLD”和“可编程逻辑装置”包括(但不限于)这些示范性装置,同样涵盖仅部分可编程的装置。举例来说,一种类型的PLD包括硬编码晶体管逻辑与可编程开关结构的组合,所述可编程开关结构可编程地互连所述硬编码晶体管逻辑。
FPGA(“FPGA结构”)的可编程逻辑中所例示的设计的性能受FPGA结构的速度所限制。然而,专用电路资源(例如FPGA中的DSP)能够比FPGA结构中所实施的等效电路更快速地执行操作。因此,提供用于扩展DSP的有用性的构件将是合乎需要且有用的。
集成电路包含多种用以实施电路设计的电路元件。电路设计必须根据集成电路的电路元件的类型和可用位置来布局或“放置”。也就是说,电路设计的组件必须被指派或放置在集成电路的位点中。在放置电路设计的组件中,考虑各种因素来决定所述放置。放置组件的效率和改进实施所述组件的效率可导致集成电路装置使用的显著改进。
尽管常规的集成电路在实施数字信号处理(DSP)应用特有的算术运算时是低效的,但一些集成电路可采用专用于实施DSP功能的电路块。然而,常规装置中的DSP块可导致固有低效的布局,或可导致实施DSP应用所需要的电路的低效使用。也就是说,具有提供有限功能的DSP块的集成电路可造成电路资源的低效使用。可改进电路布局的效率的DSP块可引起集成电路使用的显著改进。
发明内容
一个或一个以上实施例大体上涉及集成电路装置(“IC”),且更明确地说,涉及用于IC的具有预加法器级的数字信号处理块。
本发明的一个实施例大体上涉及一种具有数字信号处理块的集成电路。所述数字信号处理块包括预加法器级和控制总线。所述控制总线耦合到所述预加法器级以用于动态地控制所述预加法器级的操作。所述预加法器级包括:耦合到所述控制总线的第一多路复用器的第一输入端口;耦合到所述控制总线的第一逻辑门的第二输入端口;耦合到所述控制总线的第二逻辑门的第三输入端口;以及耦合到所述控制总线的加法器/减法器的第四输入端口。
在此实施例中,所述预加法器级可经配置以用于响应于对所述第二输入端口的输入而动态地设置所述加法器/减法器的第一数据输入,以经由所述第一逻辑门的输出接收零值。所述预加法器级可经配置以用于响应于对所述第三输入端口的输入而动态地设置所述加法器/减法器的第二数据输入,以经由所述第二逻辑门的输出接收零值。所述预加法器级可经配置以用于响应于对所述第一输入端口的输入而动态地选择具有0、1或2寄存器延迟的输入数据。所述预加法器级可经配置以用于响应于对所述第四输入端口的输入而动态地设置所述加法器/减法器以进行相加或相减。所述集成电路的此实施例进一步包含现场可编程逻辑门,所述现场可编程逻辑门可响应于配置位流而配置,以提供用于将输入数据提供到所述数字信号处理块的例示电路功能。
在此实施例中,所述预加法器级可经由由第一输入端口、第二输入端口、第三输入端口和第四输入端口组成的群组中的至少一个端口来动态地重新配置,而不必重新配置所述现场可编程逻辑门以提供所述输入数据;且所述预加法器级可动态地重新配置以提供绝对值功能、顺序复数共轭功能、顺序乘法功能、顺序复数乘法、多路复用功能、寄存器堆功能、移位寄存器逻辑功能和管线重新平衡功能。
本发明的另一实施例大体上涉及一种脉动有限脉冲响应滤波器,其包括耦合到数字信号处理块链的移位寄存器。所述移位寄存器可经配置以将广播输入广播到所述链的数字信号处理块中的除结尾块之外的所有处理块的每一第一寄存器。所述数字信号处理块中的每一者可具有第二寄存器。所述数字信号处理块中的每一者可具有第三寄存器。第二寄存器的输出可耦合到第三寄存器的输入,以使数字信号处理块中的每一者提供其双寄存器。所述双寄存器可串联耦合,以用于从所述链的数字信号处理块中的开头块向数字信号处理块中的结尾块传播滤波器输入系列。数字信号处理块中的每一者可具有第一加法器,其经耦合以用于接收来自第一寄存器和第三寄存器中的每一者的输出以提供其第一总和。数字信号处理块中的每一者可具有第四寄存器,其经耦合以用于接收相应的滤波器系数。数字信号处理块中的每一者可具有乘法器,其经耦合以用于分别接收其第一总和以及滤波器系数,且经配置以用于提供其部分结果。数字信号处理块中的每一者可具有第二加法器,其经耦合以用于接收其部分结果。数字信号处理块的第二加法器可经耦合以用于累加数字信号处理块中的每一者的部分结果,以从所述链的数字信号处理块中的结尾块提供滤波器输出系列。
在此实施例中,数字信号处理块中的每一者可包括第五寄存器,其经耦合以用于接收其第一总和,之后将所述第一总和提供到其乘法器。数字信号处理块的第二加法器可串联耦合;且数字信号处理块中的开头块的第二加法器可从其传递部分结果作为其第二总和,以用于输入到数字信号处理块中的邻近块的第二加法器,以与数字信号处理块中的所述邻近块的部分结果相加以提供其第二总和。数字信号处理块中的每一者可包括经耦合以用于接收其部分结果的第六寄存器,以及经耦合以用于接收其第二总和的第七寄存器。
滤波器的此实施例可进一步包含耦合到门控逻辑的控制总线,所述门控逻辑用于门控从第一寄存器和第三寄存器中的每一者到第一加法器的输出,其中第一加法器输入可动态地配置以用于接收零值,以动态地调整链的有效长度,且第一加法器并不是在现场可编程门阵列结构中实施。所述门控逻辑可经耦合以用于动态地将数字信号处理块中的结尾块置零,以将脉动有限脉冲响应滤波器操作为具有偶数数目个分接头,但在链中存在奇数数目个数字信号处理块。门控逻辑可经耦合以用于动态地将数字信号处理块中的结尾块置零,以将脉动有限脉冲响应滤波器操作为具有奇数数目个分接头,但在链中存在偶数数目个数字信号处理块。
本发明的又一实施例大体上涉及一种用于滤波的方法。获得滤波器输入系列,并将其提供到数字信号处理块链作为其第一输入。动态改变数字信号处理块的有效长度以有效地调整滤波器分接头的数目。所述方法的此实施例进一步包含将数字信号处理块中的初始块设置为具有第一操作模式;且将数字信号处理块中除初始块之外的所有处理块设置为具有与第一操作模式不同的第二操作模式。此方法进一步包含在现场可编程逻辑门中例示移位寄存器;将滤波器输入系列提供到移位寄存器;以及将来自移位寄存器的输出广播到至少所述链的数字信号处理块中除最终块之外的所有处理块作为其第二输入。
此方法进一步包含:分别将滤波器系数提供到数字信号处理块中的每一者;依序将第一输入从所述链的数字信号处理块中的初始块移位到数字信号处理块中的最终块;使用数字信号处理块来确定相应的部分总和;以及累加所述部分总和以提供滤波器输出系列。数字信号处理块可动态地从作为奇数分接头对称脉动有限脉冲响应滤波器而操作改变为作为偶数分接头对称脉动有限脉冲响应滤波器而操作。数字信号处理块可动态地从作为偶数分接头对称脉动有限脉冲响应滤波器而操作改变为作为奇数分接头对称脉动有限脉冲响应滤波器而操作。
根据本发明的实施例,揭示一种在电路中配置滤波器以在集成电路中实施的方法。所述方法包含:接收所述电路的高级设计;识别所述高级设计中的滤波器;分析所述滤波器的系数;以及将所述高级设计的滤波器转变为使用所述电路的经配置以适应共同系数的处理块的滤波器,其中所述处理块经耦合以接收与所述共同系数相关联的分接头。将所述高级设计的滤波器转变为使用经配置以适应共同系数的处理块的滤波器可包含将所述滤波器配置为对称转置卷积滤波器。分析所述系数可包含识别滤波器的对称系数。所述方法可进一步包含提供所述共同系数作为对所述处理块的乘法器的第一输入。所述方法可进一步包含提供与所述共同系数相关联的分接头的总和,作为对所述乘法器的第二输入。耦合与共同系数相关联的分接头的总和作为对所述乘法器的第二输入可包含使用DSP块的预加法器电路来产生总和。所述方法可进一步包含提供与所述共同系数相关联的分接头的差值作为对所述乘法器的第二输入。
根据替代实施例还揭示一种计算机程序产品。计算机程序代码可包含包括将电路设计转变为布局配置的计算机可读程序代码的计算机可读媒体,其中所述计算机可读媒体包含:识别高级设计中的滤波器的计算机可读程序代码;分析滤波器的系数的计算机可读程序代码;以及使用所述电路的经配置以适应共同系数的处理块来配置滤波器的计算机可读程序代码,其中所述处理块经耦合以接收与共同系数相关联的分接头。
使用经配置以适应共同系数的处理块来配置滤波器的计算机可读程序代码可包含将滤波器配置为对称转置卷积滤波器的计算机可读程序代码。分析滤波器的系数的计算机可读程序代码可包含识别滤波器的对称系数的计算机可读程序代码。计算机程序产品可进一步包含提供所述共同系数作为对处理块的乘法器的第一输入的计算机可读程序代码。计算机程序产品可进一步包含提供与共同系数相关联的分接头的总和或差值作为对乘法器的第二输入的计算机可读程序代码。提供与共同系数相关联的分接头的总和或差值作为对乘法器的第二输入的计算机可读程序代码可包含使用DSP块的预加法器电路来产生总和的计算机可读程序代码。计算机程序产品可进一步包含使用集成电路的电路元件来实施滤波器的计算机可读程序代码。
根据另一实施例,在集成电路中实施滤波器的电路可包含:多个延迟元件;预加法器电路,其经耦合以借助于所述多个延迟元件中的第一延迟元件接收滤波器的第一分接头,且借助于所述多个延迟元件中的第二延迟元件接收所述滤波器的第二分接头,其中所述第一分接头和所述第二分接头具有共同系数;乘法器,其经耦合以在第一输入处接收所述预加法器电路的包含所述第一分接头与所述第二分接头的总和的输出,且在第二输入处接收所述共同系数;以及加法器,其经耦合以接收所述乘法器的输出。所述滤波器可包含转置卷积滤波器。所述共同系数可与滤波器的对称系数相关联。所述滤波器的分接头数目可包含偶数分接头数目。所述滤波器的分接头数目可包含奇数分接头数目,且奇数数目个分接头中的子集可耦合到预加法器电路。所述多个延迟元件、所述预加法器电路和所述乘法器可为集成电路的数字信号处理块的一部分。
附图说明
附图展示根据本发明的一个或一个以上方面的示范性实施例;然而,不应将附图看作将本发明限于所展示的实施例,而是仅用于阐释和理解的目的。
图1为描绘其中可实施本发明的一个或一个以上方面的柱状现场可编程门阵列(“FPGA”)架构的示范性实施例的简化框图。
图2为描绘DSP切片的示范性实施例的框图/电路图。
图3为描绘图2的DSP切片的预加法器的示范性实施例的电路图。
图4为描绘图2的DSP切片的双B寄存器的示范性实施例的电路图。
图5为描绘inmode功能表的示范性实施例的表图。
图6为描绘现有技术的8分接头偶数对称脉动有限脉冲响应(“FIR”)滤波器的示范性实施例的框图/电路图。
图7为描绘8分接头偶数对称脉动FIR滤波器的示范性实施例的框图/电路图。
图8为描绘用于实施对称脉动相加-相乘-相加处理模块的具有OPMODE 0,0,1,0,1,0,1的图7的DSP切片的示范性实施例的框图/电路图。
图9为描绘9分接头奇数对称脉动FIR滤波器的示范性实施例的框图/电路图。
图10为描绘9分接头奇数对称脉动FIR滤波器的替代示范性实施例的框图/电路图。
图11为描绘FIR使用流程的示范性实施例的流程图。
图12为根据本发明实施例的实施对称转置卷积有限脉冲响应滤波器的电路的框图。
图13为根据本发明替代实施例的实施对称转置卷积有限脉冲响应滤波器的电路的框图。
图14为根据本发明替代实施例的实施对称转置卷积有限脉冲响应滤波器的电路的框图。
图15为展示根据本发明实施例的在集成电路中实施滤波器的方法的流程图。
图16为根据本发明实施例的用于实施具有可编程逻辑的装置的系统的框图。
图17为根据本发明实施例的具有可编程逻辑的装置的框图。
图18为根据本发明实施例的可配置逻辑块的可配置逻辑元件的框图。
具体实施方式
在以下描述中,陈述许多具体细节以提供对本发明具体实施例的较透彻描述。然而,所属领域的技术人员应明白,可在没有以下给出的所有具体细节的情况下实践本发明。在其它例子中,尚未详细描述众所周知的特征以免混淆本发明。为了易于说明,在不同图式中使用相同数字标签来指代相同项目;然而,在替代实施例中,项目可为不同的。
如上文所提及,高级FPGA可在阵列中包括若干不同类型的可编程逻辑块。举例来说,图1说明FPGA架构100,其包括大量不同可编程瓦片,其中包括多千兆位收发器(“MGT”)101、可配置逻辑块(“CLB”)102、随机存取存储器块(“BRAM”)103、输入/输出块(“IOB”)104、配置与计时逻辑(“CONFIG/CLOCK”)105、数字信号处理块(“DSP”)106、专门输入/输出块(“I/O”)107(例如,配置端口和时钟端口)以及其它可编程逻辑108,例如数字时钟管理器、模/数转换器、系统监视逻辑等等。一些FPGA还包括专用处理器块(“PROC”)110。
在一些FPGA中,每一可编程瓦片包括可编程互连元件(“INT”)111,其具有去往和来自每一邻近瓦片中的对应互连元件的标准化连接。因此,所采用的可编程互连元件共同实施用于所说明FPGA的可编程互连结构。可编程互连元件111还包括去往和来自同一瓦片内的可编程逻辑元件的连接,如图1顶部所包括的实例所展示。
举例来说,CLB 102可包括可经编程以实施用户逻辑的可配置逻辑元件(“CLE”)112加上单个可编程互连元件(“INT”)111。除了一个或一个以上可编程互连元件之外,BRAM 103还可包括BRAM逻辑元件(“BRL”)113。通常,瓦片中所包括的互连元件的数目取决于瓦片的高度。在所图示的实施例中,BRAM瓦片具有与五个CLB相同的高度,但还可使用其它数目(例如,四个)。除了适当数目的可编程互连元件之外,DSP瓦片106还可包括DSP逻辑元件(“DSPL”)114。举例来说,除了可编程互连元件111的一个实例之外,IOB 104还可包括输入/输出逻辑元件(“IOL”)115的两个实例。如所属领域的技术人员将明白,举例来说,连接到I/O逻辑元件115的实际I/O焊盘通常不局限于输入/输出逻辑元件115的区域。
在所图示的实施例中,在裸片(图1中所示)中心附近的柱状区域用于配置、时钟和其它控制逻辑。从此列延伸的水平区域109用以跨越FPGA的宽度分布时钟和配置信号。
利用图1中所说明的架构的一些FPGA包括中断组成FPGA的大部分的规则柱状结构的额外逻辑块。额外逻辑块可为可编程块和/或专用逻辑。举例来说,处理器块110横越若干CLB和BRAM列。
请注意,图1意在仅说明示范性FPGA架构。举例来说,一列中的逻辑块的数目、列的相对宽度、列的数目和次序、列中所包括的逻辑块的类型、逻辑块的相对大小以及图1顶部所包括的互连/逻辑实施方案纯粹是示范性的。举例来说,在实际FPGA中,在CLB出现的任何地方通常包括一个以上邻近的CLB列,以促进用户逻辑的高效实施,但邻近CLB列的数目随FPGA的整体大小而变化。
詹姆斯·M·西姆金斯(James M.Simkins)等人的标题为“具有级联DSP切片的集成电路(Integrated Circuit with Cascading DSP Slices)”的第7,472,155号美国专利中以额外细节描述了DSP 106,所述美国专利以全文引用的方式并入本文中。DSP 106的实例实施方案可在可从加利福尼亚州圣何塞市赛灵思公司(Xilinx,Inc.,of San Jose,Califomia)获得的VirtexTM和SpartanTM FPGA中找到。
图2为描绘DSP切片200的示范性实施例的框图/电路图。DSP切片200可为(但不需要为)图1的FPGA 100的DSP 106的示范性实施例。将D输入信号(“input”)201、A输入211、AC输入(“ACIN”)341和输入模式信号(“inmode”)202提供到具有预加法器(“preadder”)的双A、D寄存器204,其中将inmode 202提供到用于预加法器204的inmode寄存器203。将B输入212和BC输入(“BCIN”)441提供到双B寄存器242。DSP切片200的乘法器251和M寄存器253以及C寄存器和在其右侧的其它电路是常规的,且可在Virtex-5TM FPGA中找到。因此,出于清楚的目的而避免对此类先前已知电路的描述。此外,术语“输入”和“输出”用以指示信号和端口中的任一者或两者,包括(但不限于)其复数形式。
图3为描绘预加法器204的示范性实施例的电路图。如下文以额外细节描述,预加法器204可经动态配置以操作为深度为0、1、2或3个寄存器。
预加法器204包括多路复用器301到306、寄存器311到314、逻辑门321和322以及加法器/减法器331。应了解,虽然在图3中以及在图2和图4中根据Virtex-5TM FPGA的DSP切片的位宽度来说明性地展示位宽度,但可使用除本文中说明性地展示的位宽度以外或与本文中说明性地展示的位宽度相同的位宽度或其组合。
尽管出于清楚且不限制的目的而未展示,但在此实施例中,去往多路复用器301到305的控制选择输入是从FPGA结构的配置存储器单元提供的。此类配置存储器单元是根据配置位流来配置的。因此,在FPGA的上下文中,当作为上电周期的一部分此FPGA正获得状态信息时,那些存储器单元的编程状态决定多路复用器301到305的选定输出,且此类存储器单元不能够在不复位FPGA的情况下改变状态。换句话说,多路复用器301到305在操作期间的状态为静态的。与多路复用器301到305在FPGA操作期间的静态状态相反,多路复用器306为可动态操作的;换句话说,多路复用器306可在不必复位FPGA的情况下使其控制选择在此FPGA的操作期间改变。在此示范性实施例中,此控制选择由inmode 202的一部分(即,inmode 202-0)提供,其中“-0”用以指示inmode总线的位位置零。
此外,除了多路复用器306的动态操作之外,可动态地操作逻辑门321和322以及减法器331。因此,此类可动态操作的组件可在用户设计的操作期间改变。在此实施例中,图3的inmode 202-0到202-3以及图4的inmode202-4可随时钟信号的每一周期而改变。出于借助于实例而非限制以实现清楚性的目的,未展示例如此处可使用的时钟信令。
将inmode 202-0作为动态控制选择信号提供给多路复用器306以用于门控提供由A1寄存器311或A2寄存器312中的任一者延迟、由A1寄存器311和A2寄存器312两者延迟或既不由A1寄存器311也不由A2寄存器312延迟的A输入211或AC输入341。同样,一旦由存储器单元状态选定,来自多路复用器301到305的选定输出在操作期间为静态的而不复位FPGA。
A输入211或AC输入341可从多路复用器301输出。来自多路复用器301的输出被提供作为对A1寄存器311的数据输入以及作为对多路复用器302的数据输入。A1寄存器311的输出被提供作为对多路复用器302、304和306的数据输入。多路复用器302的输出被提供作为对A2寄存器312的数据输入以及作为对多路复用器303的数据输入。多路复用器303的输出被提供作为对多路复用器304和306的数据输入,以及被提供作为X MUX输出342。参看图2,预加法器204的X MUX输出342可与图2的双B寄存器242的输出442组合以获得AB串联信号250。
返回到图3,出于借助于实例而非限制以实现清楚性的目的,假设用户已将多路复用器302和303设置为选择其底部输入作为输出,且假设用户已选择AC输入341(即,来自另一DSP切片的A级联输入)作为多路复用器301的输出,于是作为对多路复用器306的数据输入而提供的AC输入341由A1寄存器311和A2寄存器312两者记录于多路复用器306的上部数据输入上以及多路复用器306的下部输入上,AC输入341仅由A1寄存器311记录。因此,应了解,用户可将寄存器深度选择到多路复用器306的上部端口,而对多路复用器306的下部端口的输入的寄存器深度总是深度仅为A1。
如先前所提及,预加法器204包括双A寄存器和双D寄存器。这意味着(例如)A1寄存器311和A2寄存器312为双寄存器可配置的,即使A1和A2寄存器两者、A1和A2寄存器中的仅一者或A1和A2寄存器中没有一者可用于经由多路复用器306的输出提供对逻辑门322的输入也是如此。此外,双D寄存器是关于D寄存器313和AD寄存器314。
同样,应了解,源自多路复用器301的输出的对多路复用器306的上部输入以及对多路复用器304的下部输入可深度为无寄存器、深度为A1或A2或深度为A1和A2。此外,同样,多路复用器306的下部输入以及多路复用器304的上部输入深度总是为A1。多路复用器304的输出为图2的AC输出(“ACOUT”)信号(“AC output”)343,其可提供到另一DSP切片,类似于AC输入341被提供到图2的DSP切片200。
选择多路复用器306的上部输入还是下部输入用于输出是受inmode202-0的状态所控制,且来自多路复用器306的输出被提供作为对逻辑门322的数据输入。虽然针对逻辑门321和322说明性地描绘AND门,但应了解,可根据本文的描述使用其它逻辑门。AND门322的其它输入(其为反转输入)经耦合以接收inmode 202-1。对于此实施例来说,inmode 202-1表示inmode 202的总线的位位置一。AND门322的输出被提供作为对加法器/减法器331的输入,即如下文以额外细节描述的A路径输入261,且提供到多路复用器305的上部输入。
D输入201被提供作为对D寄存器313的数据输入。D寄存器313的数据输出被提供到AND门321的上部输入。AND门321的下部输入经耦合以接收inmode 202-2,其对于此实施例来说为inmode 202的总线的位位置二。AND门321的输出被提供作为对加法器/减法器331的另一输入,即如下文以额外细节描述的D路径输入262。加法器/减法器331经配置以用于相加还是相减是受inmode 202-3所控制,inmode 202-3对于此实施例来说为inmode 202的总线的位位置三。加法器/减法器331的输出被提供到AD寄存器314的数据输入端口。AD寄存器314的输出被提供作为对多路复用器305的另一输入。多路复用器305的输出为乘法器操作数信号,即A乘法器(“A MULT”)信号344(图2中说明性地展示)。
同样,应了解,多路复用器306、AND门322、AND门321、加法器/减法器331分别出于动态操作的目的受inmode 202-0到202-3所控制,inmode202-0到202-3分别表示inmode 202的总线的位位置零到三。inmode 202-0和202-3用作控制选择信号来选择输出或函数,而inmode 202-1和202-2通过其状态来操作以分别影响或不影响AND门322和321的输出。
除了能够动态地控制AND门321和322之外,AND门321和322中的任一者的输出可用以产生对加法器/减法器331的零输入。因此,应了解,如果AND门322向加法器/减法器311提供零操作数输入,那么可被提供作为多路复用器305的输出的D输入201的输入可穿过寄存器313和314,即二深寄存器路径。或者,如果从AND门321的输出产生零,且使用加法器/减法器331,那么有可能针对A输入211或AC输入341中的任一者具有三深寄存器路径,即穿过A1寄存器311、A2寄存器312和AD寄存器314。
图4为描绘图2的DSP切片200的双B寄存器242的示范性实施例的电路图。B输入信号(“B input”)212和BC输入(“BCIN”)信号(“BC input”)441被提供作为对多路复用器401的输入。如同多路复用器301到304,双B寄存器242的多路复用器401到404在操作期间为静态的,即其输出在FPGA的配置期间确立且在操作期间无法动态重配置。如同多路复用器306,多路复用器405可响应于inmode 202-4而动态地操作,inmode 204对于此实施例来说表示inmode 202的总线的位位置四。B1寄存器411和B2寄存器412对应于A1寄存器311和A2寄存器312。同样,多路复用器401到404分别对应于多路复用器301到304。此外,多路复用器405对应于多路复用器306。来自多路复用器404的BC输出(“BCOUT”)信号(“BC output”)443(图2中说明性地展示)对应于AC输出343,但对于此实施例来说具有较小的位宽度。
同样,X多路复用器(“X MUX”)信号442对应于X多路复用器信号342,但再次对于此实施例来说具有较小的位宽度。应了解,X多路复用器信号342和442为AB串联的,如大体上指示为用于对X多路复用器252的输入的图2的AB信号250。
多路复用器405的输出为另一乘法器操作数信号,即B乘法器(“BMULT”)信号444(图2中说明性地展示),其对应于A乘法器信号344。B乘法器信号444和A乘法器信号344对于此实施例来说具有不同的位宽度;然而,两个输出均可提供作为对图2的乘法器251的输入操作数。因为双B寄存器242与预加法器204的双A寄存器部分相同或相似,所以出于清楚的目的而避免重复描述。
同时参看图2到图4,进一步描述DSP切片200。可将inmode 202视为动态控制总线。除了inmode 202之外,可存在时钟信号、时钟启用信号、设置信号或复位信号,以及其它寄存器控制信号。这些信号出于清楚而非限制的目的而未展示为进入寄存器中。
AB串联信号250在其路径中没有M寄存器253。因此,A与B之间的乘法运算具有三个管线寄存器级,且加法运算(例如,串联的AB(“A:B”)与C的相加)具有两个寄存器级。然而,通过使用A2寄存器312和B2寄存器412,寄存器A2 312和B2 412可用以提供寄存器管线级,其将以其它方式与M寄存器253相关联。换句话说,用于对X多路复用器252的输入的管线级的数目可经配置为在DSP切片200中为相同的,这可用以避免寄存器未中,即“磁泡”。因此,通过设置操作模式,如下文以额外细节描述,A:B+C运算(例如)和A*B+C运算(例如)两者均可在三个时钟周期中执行,例如,对于A:B+C运算来说,图2的A1寄存器311到A2寄存器312到P寄存器,且对于A*B+C运算中的A来说,图2的A1寄存器311到M寄存器253到P寄存器(例如,同样,图2的B1寄存器411到M寄存器253到P寄存器)。图2的C寄存器在以上两个实例中比A和B少一个寄存器,但此差异对于所有操作模式来说为可预测的,且因此可在FPGA结构中解决以针对C添加另一寄存器级。应理解,这允许在无磁泡的情况下随交替时钟周期在相乘与相加运算之间动态地交替。
A1寄存器311和A2寄存器312以及B1寄存器411和B2寄存器412可用以提供寄存器堆功能。由于inmode 202的动态控制总线功能,此寄存器堆可操作作为随机存取寄存器堆。或者,A1寄存器311和A2寄存器312以及B1寄存器411和B2寄存器412可经配置以提供移位寄存器逻辑(“SRL”)。因此,随机存取寄存器堆和SRL两者的双功能性在DSP切片200内经由inmode总线202使用动态控制来提供。例如,总线可表示信号群组或信号迹线群组或两者。
其它功能性包括使预加法器204用作二到一多路复用器,即通过经由使操作数中的一者为零来使加法器/减法器331在对其的输入之间进行选择以获得对AD寄存器314的输出。换句话说,可分别响应于inmode 202-1和202-2来分别迫使AND门322和321的输出中的一者为零。另外,如果A输入路径的输出为负,那么可从沿去往加法器/减法器331的D路径的操作数输入产生零,使得加法器/减法器331可用以产生提供到加法器/减法器331的A或AC操作数的绝对值。此外,通过使用A1和A2寄存器来使位移位,可执行二的补码反转。
因此,概括地说,inmode 202-0用作无/A1/A2选择信号。inmode 202-1可用以使沿A寄存器路径(即,寄存器A1和A2(“A寄存器”))的输出归零。换句话说,使输出归零的能力促进在不使用复位的情况下且在不破坏寄存器内容的情况下在A寄存器与D寄存器之间进行多路复用。当inmode202-1等于逻辑1时,对加法器/减法器331的A路径输入261被迫为零,且因此可有效地选择对预加法器331的D路径输入262以用于输出。另外,当inmode 202-1等于逻辑1时,对多路复用器305的A路径输入261可用以迫使A乘法器信号344为零。然而,为了迫使A乘法器信号344为零,设置D端口设置(即,用于向多路复用器305提供控制选择信号的配置存储器单元设置)以停用D端口,即“如果使用D端口=假”。
inmode 202-2可用以使沿先前相对于inmode 202-1而描述的线路的D寄存器313的输出和A寄存器选定路径的输出归零。因此,对加法器/减法器331的D路径输入262将为逻辑0,其可用于促进在A路径输入261与D路径输入262之间进行多路复用。此外,inmode 202-1和inmode 202-2可用于动态功率门控以实现功率节省。如果inmode 202-1处于逻辑1状态,那么迫使对加法器/减法器331的A路径输入261为0,且如果inmode 202-2处于逻辑0状态,那么迫使对加法器/减法器331的D路径输入262为0。如果对加法器/减法器331的两个输入均为逻辑0,那么加法器/减法器331的操作消耗较少功率,因为在此条件下,在加法器/减法器331内不存在晶体管切换。因此,通过“动态功率门控”,意味着当未选择加法器/减法器331功能性时,可将对加法器/减法器331的两个输入设置为逻辑零。通过使固定逻辑值提供作为对加法器/减法器331的操作数输入,加法器/减法器331不切换,且这可用于动态功率节省。换句话说,因为可动态设置inmode以用于动态地固定对加法器/减法器331的操作数输入,所以可动态地选择或撤消选择加法器/减法器功能性,且相对于后者,可实施动态功率节省。
inmode 202-3可用以通过加法器/减法器331使A输入路径261的A操作数与D输入路径262的D操作数相加或从其减去。同样,A输入路径261上的A操作数的动态反转可用作绝对值函数。换句话说,举例来说,可通过使D操作数输入262被迫为零来动态反转保持于A1或A2中的寄存器值,如先前所描述。
inmode 202-4可以与inmode 202-0可用作A1/A2寄存器选择信号相同的方式用作B1/B2寄存器选择信号。因此,应了解,DSP切片200的功能性很好地延伸超出简单地将预加法器添加到DPS,如在可从加利福尼亚州圣何塞市赛灵思公司(Xilinx,Inc.,of San Jose,California)获得的SpartanTM FPGADSP 48A中所做那样。
此外,应了解,可执行复数乘法运算,例如(A+ai)*(B+bi)=(AB-ab)+(Ab+aB)i。A和a可为分别通过使用提供给A2寄存器312和A1寄存器311的单独时钟启用信号且响应于inmode 202-0从多路复用器306选择性地输出所述两个操作数中的一者而输入到A2寄存器312和A1寄存器311的单独操作数。同样,B和b可为分别通过使用提供给B2寄存器412和B1寄存器411的单独时钟启用信号且响应于inmode 202-4从多路复用器405选择性地输出所述两个操作数中的一者而输入到B2寄存器412和B1寄存器411的单独操作数。操作数A、B、a和b可本地存储于BRAM中。由于操作数重用,BRAM仅在每隔两个时钟周期的突发中由DPS切片200存取,可针对实例复数乘法运算仅读取一次,因为A1、A2、B1和B2寄存器可用以在本地存储此类操作数的实数和虚数部分。尽管使用复数乘法的实例,但应理解,执行顺序乘法也可为相同的,例如(A:a)*(B:b)。出于借助于实例而非限制以实现清楚性的目的,假定42位*34位用于(A:a)*(B:b),那么可通过A*B+sh17(A*0b+B*00000000a+sh17(0b*00000000a)来获得结果,其中“sh17”指示17位位移。
图5为描绘inmode功能表500的示范性实施例的表图。表500的前五列分别展示分别对应于inmode 202-4到202-0的inmode位四到零的可能逻辑状态。inmode 202-4为B2/B1寄存器选择信号,且因此如果逻辑0为inmode202-4的状态,那么寄存器B2的内容可提供作为乘法器B端口444的输入,且如果inmode 202-4为逻辑状态1,那么乘法器B端口444的输入为B1寄存器411的内容。因此,表500的第一列的逻辑0和1分别对应于表500的最后一列的B2和B1。
表500的第六列指示用以提供对图3的多路复用器305的控制选择控制的存储器单元的编程状态,其大体上指示为控制选择信号501(图3中说明性地展示)。因此,控制选择信号501指示D端口(即,D输入201)是否在使用中。如表500的前四行中所指示,假值指示预加法器204的D端口不在使用中。列501中的剩余行指示用于控制信号501的真值,其意味着预加法器204的D端口在使用中。
表500的第七列指示乘法器A的端口344上的操作数输入。说明性地展示的可能操作数输入为针对D寄存器保持于A1或A2中的值。另外,如先前所描述,逻辑0可提供作为A乘法器输出344。此外,通过对存储于AD寄存器314中的操作数值D+A2、D+A1、D-A2或D-A1进行相加而获得的值可提供作为A乘法器输出344。符号A1/A2和B1/B2分别用以描述一或二深寄存器。如果对加法器/减法器331的A输入操作数被门控断开,那么寄存器D 313和AD 314以组合方式呈现为用于D端口201的二深记录。因此,符号D1/D2分别指代分别用于一深和二深记录的D/AD寄存器。
在SpartanTM FPGA中,预加法器位于输入寄存器与输出寄存器之间,其中输出寄存器对乘法器进行馈入。然而,此配置无法用于实施脉动滤波器。在以下描述中,将DSP切片200描述为用于实施脉动滤波器。
应理解,添加有预加法器204和双B寄存器242的DSP切片200能够支持顺序复数乘法、顺序乘法和顺序复数共扼运算。另外,通过使A2和B2寄存器本质上相对于M寄存器253来说为虚拟寄存器来平衡AB串联路径与AB相乘路径的能力允许在三级管线的情况下在相乘与相加运算之间进行动态切换。此外,动态存取A1、A2、B1、B2寄存器以写入到二深输入寄存器中的任一者或从二深输入寄存器中的任一者读取的能力由inmode 202促进,如先前所描述。此外,使零输入到任一预加法器输入端口的灵活性促进多通道滤波器。
可例如使用A1寄存器311、A2寄存器312和D寄存器312在本地存储三组滤波器系数,且能够动态地(即,在每一时钟周期)从对称操作切换到非对称操作。另外,应了解,在不需要相加和相减功能性时,支持使用加法器/减法器331的AD多路复用能力以实现动态操作。当在本地存储三组滤波器系数时,那么不使用预加法器对称性。经由B输入端口212和/或B级联输入端口441来代替A输入端口211和/或A级联输入端口341来施加原始数据,且可通过使用加法器/减法器331提供多路复用功能来选择滤波器系数。因此,非对称滤波器有可能具有三组滤波器系数。
图6为描绘现有技术的8分接头偶数对称脉动有限脉冲响应(“FIR”)滤波器600的示范性实施例的框图/电路图。FIR滤波器600由DSP块106组成,所述DSP块106已被编程有操作模式(“OPMODE”)。因此,DSP块106-1到106-4表示具有级联输出以提供所得级联输出(即,“P”级联603)的现有技术的DSP。至此,移位寄存器逻辑(“SRL”)604由FPGA结构602中的寄存器形成,且因此抑制了性能。另外,预加法器级605和输入寄存器级606先前形成于FPGA结构602中。
图7为描绘具有DSP切片200-1到200-4的8分接头偶数对称脉动FIR滤波器700的示范性实施例的框图/电路图。DSP切片200-1到200-4中的每一者可为图2的DSP切片200。重新参看图2到图4且继续参看图7,进一步描述FIR滤波器700。尽管说明性地展示8分接头滤波器,但应了解,可实施少于或多于8个分接头,且因此可实施少于或多于四个DSP切片200。DSP切片200-1针对OPMODE设置为0,0,0,0,1,0,1,且DSP切片200-2到200-4各自设置为具有OPMODE 0,0,1,0,1,0,1。这些OPMODE对于图6的FIR滤波器600来说为相同的,且因为其是先前已知的,所以本文中不再以多余细节对其进行描述。
尽管FIR滤波器700具有与图6的FIR滤波器600不同的设计,但如果FIR滤波器600的寄存器606被推送到预加法器605的输入,那么对预加法器331的A输入(例如图2的A输入端口211或FIR滤波器700的滤波器输入x(n)701)具有两个管线式延迟级,其与两个分接延迟线值匹配。因此,与使寄存器延迟线(例如SRL 604)分出并连接到A端口寄存器606以实现重新平衡相反,可避免此类分接,如对于FIR滤波器700说明性地展示。可避免寄存器606镜射于预加法器605的A输入上。换句话说,不使用此类镜射,因为二深A寄存器输出(即,A寄存器311和312)可用以提供(例如)与先前经由镜射路径所提供的数据相同的原始数据,且因此可消除此镜射路径。因此,预加法器605的D输入侧上的相对于寄存器606的镜射寄存器在FIR滤波器700中有效地用D寄存器313代替。106-1中的第一寄存器因此为预加法器输出寄存器,即DSP切片200-1中的AD寄存器314。除了消除FIR滤波器600的预加法器A输入上的额外寄存器之外,在FIR滤波器700中,不必同时分出A1和A2寄存器输入两者,这与FIR滤波器600相反。
然而,与FIR滤波器600相反,对于FIR滤波器700来说,输入寄存器级606移动到预加法器级605的输入,可在DSP中实施预加法器级605连同输入寄存器606,且在FPGA结构602中仅实施SRL 604。SRL 604为(例如)SRL 16,其具有八个寄存器级。对SRL 604的输入为滤波器输入x(n)701,且来自SRL 604的输出被并行地提供(即,广播)到DSP切片200-1到200-4的每一D寄存器313。
滤波器输入x(n)701还提供到DSP切片200-1到200-4的链的初始寄存器。对FIR滤波器700的输入可相对于其中实施此FIR滤波器700的FPGA以芯片上或芯片外形式获得。滤波器输入701被提供到DSP切片200-1的A1和A2寄存器311和312,且接着提供到其它DSP切片中的每一者的呈移位寄存器形式的A1和A2寄存器,即用于顺序输入。在此实施例中,DSP切片200-1到200-4的A1寄存器311和A2寄存器312组合地具有与SRL 604相同的延迟或寄存器级数目。
对SRL 604的滤波器输入701在广播到DSP切片200-1到200-4之前为D输入201。在此实施例中,因为D输入201被广播到DSP切片200-1到200-4中的每一者,所以其在FPGA结构中实施。滤波器输入701还被提供作为对DSP切片200-1(即,第一级DSP切片)的输入A 211。然而,对于对DSP切片200-2到200-4的输入来说,此输入为提供作为对级联中的下一级的AC输入341的AC输出343。
四个系数h0到h3分别被提供到B输入端口,即DSP切片200-1到200-4的B输入212。在此实施例中,系数h0到h3(即,系数703)被提供到DSP切片200-1到200-4中的每一者的相应B输入端口212,因为此类系数不是级联的。换句话说,在此实施例中不使用BC输入441和BC输出443。系数703可输入到B1寄存器411或B2寄存器412。出于借助于实例而非限制以实现清楚性的目的,应假设使用B1寄存器411;然而,应了解,可使用B2寄存器412来代替B1寄存器411,或可使用B1与B2寄存器的组合。
PC输出802与PC输入801在DSP切片中的每一者之间级联。DSP切片200-4的PC输出提供合成滤波器输出y(n-8)710。将复制分接头延迟711输入到SRL 604以便提供时序调整。
应了解,可使用VHDL作为模块化组件来为DSP切片200建模。图8为描绘DSP切片200-2的示范性实施例的框图/电路图。DSP切片200-2可具有如先前针对此实施例所描述的OPMODE 0,0,1,0,1,0,1,以用于实施对称脉动相加-相乘-相加处理模块。
同样,将AC输入341依序提供到A1和A2寄存器311和312。将每一D输入201提供到D寄存器313,且将那些寄存器的输出提供到处于相加模式的加法器/减法器331。
同样,将寄存器312的输出作为AC输出343依序提供到下游DSP切片200-3,即作为此下游DSP切片200-3的AC输入341。同样,从上游DSP切片200-1的AC输出343获得AC输入341。
每一B输入212接收对例如B1寄存器411等B寄存器的系数。将加法器/减法器331的输出提供到AD寄存器314,且将寄存器411和314的输出提供到乘法器251。
将乘法器251的输出提供到M寄存器253,且将M寄存器253的输出提供到加法器,且接着提供到后续输出寄存器级,如现有技术中所进行且因此出于清楚的目的而不再以多余细节进行描述。此外,如在现有技术中所进行且因此出于清楚的目的而不再以多余细节进行描述,将可从上游DSP切片200-1的PC输出802获得的PC输出801输入到此加法器以用于与寄存器253的输出求和,且可将此相加的结果提供到输出寄存器以用于将PC输出802提供到下游DSP切片200-3。
图9为描绘9分接头奇数对称脉动FIR滤波器900的示范性实施例的框图/电路图。因为FIR滤波器900类似于图7的FIR滤波器700,所以出于清楚的目的而仅描述不同之处。SRL 904为用于如先前所描述那样广播D输入201的九深移位寄存器。添加额外DSP切片(即,DSP切片200-5)作为用于产生输出y(n-9)910的最终级。另外,将系数903中的额外系数h4提供作为对DSP切片200-5的B寄存器411的输入。DSP切片200-5具有与DSP切片200-2到200-4相同的OPMODE。
尽管D输入201可移位到DSP切片200-5的寄存器313,但DSP切片200-5经配置以停用D端口的使用,或在去往DSP切片200-5的处于相加模式的加法器/减法器331的D输入路径262上输入零。因此,应了解,使用动态配置,FIR滤波器(例如FIR滤波器900)的最终级处的奇数切片(例如DSP切片200-5)可出于作为奇数数目的分接头滤波器而操作的目的而动态地改变。同样,A输入路径261可动态地改变,使得寄存器311和312中的内容不在DSP切片200-5的加法器/减法器311处显现,而是将逻辑0提供到加法器/减法器331的两个输入端口。
换句话说,通过适当地设置inmode 202-1和202-2,对加法器/减法器331的两个输入均可为零。另外,对于偶数数目的滤波器分接头来说,将不会存在奇数系数,例如h4903,且因此用于任何未用分接头的系数输入可为逻辑1或逻辑0。因此,来自寄存器253的输出可为提供到最终级加法器以提供输出的逻辑0,所述输出实际上为具有额外管线延迟的图7的y(n-8)710。所得滤波器为具有图9的y(n-9)910的输出等待时间的8分接头滤波器。因此,应了解,如先前所描述那样使用inmode 202-1和202-2且具有奇数数目的DSP切片,此DSP滤波器可为可动态调整的,以提供奇数或偶数对称脉动FIR滤波。SRL 16可经动态调整以适应不同滤波器长度。所以,对于将9分接头滤波器转换为输出为y(n-9)910的8分接头滤波器的先前实例来说,SRL 16为z-8。
另外,在此实施例中,在操作或将数据移位到FIR滤波器中存在时滞,且因此动态调整以及从一个FIR操作序列到另一FIR操作序列的数据可被隐蔽。换句话说,在不必等待一个FIR操作(例如奇数FIR操作)完成的情况下,用于后续FIR操作的数据和参数可隐蔽到FIR滤波器中,同时仍操作所述FIR滤波器以完成先前FIR操作序列。对于从奇数FIR操作序列到达偶数FIR操作序列来说也是这样。
图10为描绘9分接头奇数对称脉动FIR滤波器1000的示范性实施例的框图/电路图,所述FIR滤波器1000为图9的FIR滤波器900的替代形式。在此实施例中,对于奇数操作来说,加法器/减法器331实际上不具有来自D输入路径262的零输入。因此,实际上,最终DSP切片(其在此实施例中为DSP切片200-5)将数字相加到其自身,从而实际上使数字加倍。因此,系数1003为0.5h4。这意味着实际上在DSP切片200-5中2x(n)乘以0.5h4以便否定此切片的加法器/减法器331的相加效应。在此实施例中,系数1003中可能存在某种精度损失;然而,此实施例允许在不必经由inmode 202-2动态调整D输入201的情况下铺砌DSP切片。
在图9和图10的实施例中的任一者中,最后一个DSP切片有效地绕过预加法器操作以实现奇数对称脉动FIR滤波。最后一个分接头使用不同处理或迫使逻辑0为操作数输入。
因此,在此实施例中,可实施多级FIR滤波器。此FIR滤波器可经实施以实现取决于应用的最长可能FIR使用。此FIR滤波器可(例如)用于时分多路复用应用,其中在不重新配置可编程逻辑的情况下动态地设置具有不同长度的FIR滤波器。换句话说,用于广播D输入201的移位滤波器可经设定以获得用户应用的最长FIR滤波器;但动态地修改SRL延迟以与滤波器中的分接头数目匹配。
尽管针对使用inmode进行动态设置仅描述了奇数FIR滤波器的最后一个DSP切片,但应了解,可如此动态地设置在FIR末尾处的任何数目的DSP切片。因此,在上述9分接头FIR滤波器中,此FIR滤波器可在不必重新配置用以实施移位寄存器的可编程逻辑的情况下,动态地从九个分接头向下调整到一个分接头,或甚至有效地在旁路模式中调整到没有分接头。更一般来说,滤波器输入系列x(n)可经耦合以用于输入到形成FIR滤波器的DSP链,以提供滤波器输出系列y(n-p),其中p为有效分接头数目的整数数目且可动态调整。
应了解,尽管描述了大体上固定的系数,但此类系数可在应用之间改变。同样,因为使用二深寄存器缓冲,所以可使用从一个FIR深度到下一个FIR深度的信息隐蔽,其中传送针对每一级而交错。
图11为描绘FIR使用流程1100的示范性实施例的流程图。在1101处,实施FIR滤波器,其在待使用的所有应用中具有最长数目的级。在1102处,获得待针对当前应用使用的级数目。在1103处,如果还不是正确长度的话,动态地调整FIR滤波器,以适应在1102处找到的待使用的级数目。在1104处,确定是否将执行另一FIR序列。如果没有其它FIR序列要执行,那么流程1100可在1199处结束。如果在1104处确定另一FIR序列要执行,那么可在1105处获得并隐蔽用于所述其它FIR序列的输入,且可在1102处再次确定待使用的级数目,以用于在1103处动态地调整(如果需要的话)FIR滤波器。
因此,应了解,可通过门控逻辑来对此滤波器进行门控,所述门控逻辑用于动态地将结尾的一个或一个以上DPS块置零,以将此滤波器操作为具有偶数数目的分接头,但链中存在奇数数目的DSP块。此外,此门控逻辑可用于动态地将结尾的一个或一个以上DSP块置零,以将此滤波器操作为具有奇数数目的分接头,但链中存在偶数数目的DSP块。
现转向图12,展示根据本发明实施例的实施对称转置卷积有限脉冲响应(FIR)滤波器的电路的框图。图12的实施例展示DSP块的布置(其可组成DSP切片200),其经配置以使用DSP块的预加法器来启用对称转置卷积FIR滤波器,且具有寄存器以提供具有共同系数的分接头所必需的延迟,以在单个DSP块中与所述共同系数相乘。选择包含寄存器的延迟将取决于正被实施的滤波器的功能,其中图12到图14的DSP块中的恰当延迟可使用上文陈述的图3的电路或某种其它合适电路来实施。虽然DSP块优选包含相同元件,但其可不同地配置。举例来说,可编程互连(例如上文参看图1所描述的可编程互连)可用以连接所述延迟,如所展示,或配置位可用以选择多路复用器,如参看图3所描述。
因为图12到图14的实施例涉及具有奇数数目的分接头的对称转置卷积FIR滤波器,所以DSP级中的一者将仅接收单个分接头,而其它DSP级将接收具有共同系数的多个分接头。如图12到图14中所配置,DSP块的布置和配置使得能够根据等式y(n-4)=k0*x(n-4)+k1*x(n-5)+k2*x(n-6)+k1*x(n-7)+k0*x(n-8)实施对称转置卷积FIR滤波器,所述等式当在对乘法器的输入的时间帧中表达时,以因式分解形式书写为k0{x(n-4)+x(n-8)}+k1{x(n-5)+x(n-7)}+k2*x(n-6)或以因式分解形式书写为y(n-2)=k0{x(n-2)+x(n-6)}+k1{x(n-3)+x(n-5)}+k2*x(n-4),如图12和图13中所展示。针对y(n-4)结果的内积计算展示每一滤波器分接头的原始数据索引。因此,只有对乘法器1210的最右边分接头x(n-2)输入与x(n)对准,而其它滤波器分接头在不同时间快照处展示原始数据。可根据上文在图3中描述的A级联管线延迟(311和312)来实施延迟,其中z-1表示一个延迟,且z-2表示两个延迟。举例来说,加法器1206可由图6的加法器/减法器331实施,其中对加法器/减法器331的输入信号的选定延迟值是基于如上文陈述的对图3的多路复用器的选择输入。
在图12的展示配置1200的实施例中,第一级200-1接收包含x(n)信号的输入1201,其耦合到第一寄存器1202。如下文将参看图13更详细描述,可使用第二寄存器1204。虽然DSP级200-1中的加法器1206展示为经耦合以接收寄存器1202的输出和零,但加法器1206可经耦合以接收寄存器1202和1204的输出,如DSP级200-2和200-3以及图13的配置1300中的DSP级200-1中所示。应注意,加法器1206可实施为减法器以处理具有反转正负号的系数。寄存器1208耦合到加法器1206的输出,且具有耦合到乘法器1210的输出。乘法器1210还接收包含来自寄存器1212的系数的因数。乘法器1210的输出处的寄存器1214也耦合到加法器1216,所述加法器1216的输出存储在寄存器1218中。虽然对加法器916的输入在第一级200-1中为零,但加法器1216可接收前一级的输出,如参看DSP块200-2和200-3所展示。在DSP级200-3的寄存器1218处产生包含信号y(n-4)的输出1220。
应注意,第一级包含奇数数目的分接头中的中间分接头,且因此仅将单个分接头耦合到加法器1206。然而,第二和第三级中的每一者接收具有共同系数的两个分接头。根据图12的实施例,第二DSP级200-2将(x(n-5)+x(n-3))耦合到乘法器1210的接收共同系数k1的一个输入,而第三DSP级200-3将(x(n-6)+x(n-2))耦合到乘法器1210的接收共同系数k0的一个输入。选择与加法器1206或乘法器1210相关联的若干延迟以确保在加法器1206或乘法器1210处接收到正确的输入。举例来说,可通过将恰当的多路复用器选择信号提供到图3的多路复用器来选择正确数目的延迟。如图13中所展示,DSP级200-1可经配置以实施寄存器1204,其中将2x(n-4)提供到乘法器1210的一个输入,而将k2/2提供到另一输入。尽管图12到图12的实施例展示对称转置卷积FIR滤波器的一个实例,但应理解,可实施由其它等式表示的滤波器。此外,图12到图13的实施例可用以实施任何功能,其中输入可具有共同系数,且可实施具有共同系数的任何数目的因数。
应注意,不管初始分接头数目是偶数还是奇数,本发明的一个或一个以上电路都起作用。如图14的配置1400中所展示,实施具有奇数数目的分接头的滤波器功能。明确地说,实施对称转置卷积有限脉冲响应滤波器的电路的框图展示在3个DSP块中根据等式y(n-4)=k0*x(n-4)+k1*(n-5)+k2*x(n-6)+k2*x(n-7)+k1*x(n-8)+k0*x(n-9)来实施6个分接头,所述等式当在对乘法器的输入的时间帧中表达时,以因子分解形式书写为y(n-4)=k0{x(n-4)+x(n-9)}+k1{x(n-5)+x(n-8)}+k2{(x-6)+x(n-7)}或以因子分解形式书写为y(n-2)=k0{x(n-2)+x(n-7)}+k1{x(n-3)+x(n-6)}+k2{x(n-4)+x(n-5)},如图14中所展示。如图14中可见,每一级接收具有共同系数的两个输入,其中级200-1的DSP接收与系数k2相关联的分接头,级200-2的DSP接收与系数k1相关联的分接头,级200-3的DSP接收与系数k0相关联的分接头。
通过采用预加法器,其中数据样本在所要时钟周期中到达预加法器是通过ACOUT/ACIN传播路径来控制,可实施消耗较少装置资源且消耗较少功率的滤波器。也就是说,并非在五个DSP块中实施图12到图13的滤波器或在六个DSP块中实施图14的滤波器,所述滤波器中的每一者可在三个DSP块中实施。另外,如下文将参看图15更详细描述,一种方法使得能够从对滤波器的一般、非优化、高级描述转变到优化形式。此方法不仅可由试图以最优方式手动描述此滤波器的任何人员使用,而且还可在任何合成工具中自动化为新的高级推断能力。也就是说,并非用户提供对(例如)图12到图14中所实施的DSP块的描述,合成工具将自动检测对称系数且配置DSP块以利用预加法器,例如加法器1206,进而减少实施滤波器所需要的DSP块的数目。因此,本发明的一个或一个以上电路和方法通过使用DSP的预加法器执行对称组合来利用系数对称性以使级联DSP块的数目减到最少。
应注意,与其它实施方案(例如脉动滤波器实施方案)相比,本发明的一个或一个以上电路和方法不会在电路性能方面产生任何不利结果。DSP块链在两种情况下通过使用DSP块之间的包括P级联(PCOUT/PCIN)和A级联(ACOUT/ACIN)的快速级联来得到优化。另外,应注意,本发明的一个或一个以上电路和方法确保链中的每一DSP块通过使用那些块中的可用管线级(包括寄存器1202、1204、1208、1214和1218)而完全管线化以实现最佳性能。另外,在两种情况下暗示等于DSP级数目的扇出。对于脉动实施方案来说,所述扇出在移位寄存器的输出处找到,而对于上文陈述的转置卷积实施方案来说,所述扇出在传入数据节点自身上找到。
最后,应注意,转变原理是通用的,且当在对称系数(例如具有正负号的系数-k2、-k1、-k0、k0、k1、k2)之间存在正负号反转时,或当不存在正负号反转时起作用。虽然当今可能不必处理已知或常见滤波器应用,但本发明的一个或一个以上电路和方法可甚至在混合情形中应用,其中一些系数为正负号反转的,而其它系数不是,例如具有正负号的系数-k2、k1、k0、k0、k1、k2。
现转向图15,流程图展示根据本发明实施例的在集成电路中实施滤波器的方法。图15的方法可在如上文所述的图1到图14中的任一者或某些其它合适电路中实施。在步骤1502处接收电路的高级设计。举例来说,高级设计可为对具有滤波器的电路的HDL描述或某种其它高级语言描述。如上文所陈述,对滤波器的描述可简单地为基于系数和相关联分接头的对滤波器的描述。在步骤1504中识别高级设计中的滤波器。在步骤1506处分析滤波器的系数。在步骤1508处,使用处理块的配置来配置滤波器以适应共同系数,其中耦合单个处理块以接收与共同系数相关联的分接头。举例来说,可如参看图12到图14所展示和描述那样实施处理块的配置。在步骤1510处确立对处理块的预加法器的输入的必要延迟。在步骤1512处基于表示滤波器的等式中的系数的正负号来选择预加法器的功能以进行相加或相减。在步骤1514处将预加法器的输出提供到乘法器的第一输入。在步骤1516处将共同系数提供作为对单个处理块的乘法器的第二输入。最后,在步骤1518处使用集成电路的电路元件根据所述配置来实施滤波器。
根据一个实施例,可在控制电路(例如控制电路1602)中实施计算机程序代码,如下文将参看图16更详细描述。计算机程序代码可包含具有将电路设计转变为布局配置的计算机可读程序代码的计算机可读媒体,其中所述计算机可读媒体包含:识别高级设计中的滤波器的计算机可读程序代码;分析滤波器的系数的计算机可读程序代码;以及使用所述电路的经配置以适应共同系数的处理块来配置滤波器的计算机可读程序代码,其中所述处理块经耦合以接收与共同系数相关联的分接头。
使用经配置以适应共同系数的处理块来配置滤波器的计算机可读程序代码可包含将滤波器配置为对称转置卷积滤波器的计算机可读程序代码。分析滤波器的系数的计算机可读程序代码可包含识别滤波器的对称系数的计算机可读程序代码。计算机程序产品可进一步包含提供所述共同系数作为对处理块的乘法器的第一输入的计算机可读程序代码。计算机程序产品可进一步包含提供与共同系数相关联的分接头的总和或差值作为对乘法器的第二输入的计算机可读程序代码。提供与共同系数相关联的分接头的总和或差值作为对乘法器的第二输入的计算机可读程序代码可包含使用DSP块的预加法器电路来产生总和的计算机可读程序代码。计算机程序产品可进一步包含使用集成电路的电路元件来实施滤波器的计算机可读程序代码。计算机程序产品可具有其它特征或为用于在集成电路中实施电路的较大程序的一部分。
图16展示根据本发明实施例的用于实施具有可编程资源的装置的系统1600的框图。明确地说,控制电路1602经耦合以从存储器1604接收输入数据,且产生存储于存储器1606中的配置位流。如下文将更详细描述,输入数据可包含描述为高级设计的电路设计,例如以(例如)VHDL等硬件描述语言(HDL)定义的电路设计。控制电路可包含计算机运行软件,其产生存储于存储器1606中的配置位流。配置位流包含布局配置,其提供与组件(例如将在装置中实施的电路设计的DSP电路的组件)的布局有关的信息。存储器1606包含非易失性存储器,其用于存储配置位流以将其加载到具有可编程资源的集成电路装置1608中。可编程资源可为如下文更详细描述的可编程逻辑,或集成电路的其它可编程元件。尽管本发明的一个或一个以上方法可应用于任何类型的集成电路中的DSP电路的布局,但所述方法特别适用于具有可编程逻辑的装置,且在下文中参看具有可编程逻辑的装置来详细描述。如下文将更详细描述,控制电路102产生具有DSP电路的优化布局的配置位流。
用于具有可编程资源的装置的设计的软件流程包含合成、打包、放置和路由,如此项技术中众所周知。合成包含将呈高级设计的电路设计转换为在具有可编程逻辑的装置中找到的元件的配置的步骤。举例来说,由控制电路1602操作的合成工具可实施电路设计中的实施可配置逻辑块(CLB)或DSP块中的特定功能的若干部分,如下文将更详细描述。可实施本发明的一个或一个以上方法的合成工具的实例为可从加利福尼亚州圣何塞市赛灵思公司获得的ISETM工具,其中实施本发明的一个或一个以上方法的合成工具的输出包含具有DSP块的优化配置的配置位流。打包包含将电路设计的若干部分分组为装置的已定义块(例如可配置逻辑块)的步骤。如下文将更详细描述,将DSP电路打包为DSP块可根据本发明的各种方法来有效地实施。放置包含确定在打包步骤期间定义的装置的快的位置的步骤,其中设计中的块放置在与装置的位点相关联的二维栅格上。放置由放置器执行,所述放置器可包含在计算机上运行的放置软件或在计算机上运行以在装置中实施电路设计的较大软件封装的一部分。最后,路由包含在具有可编程逻辑的装置中选择互连元件(例如可编程互连)的路径。
本发明的一个或一个以上电路和方法使得能够实施最佳使用预加法器能力的对称转置卷积滤波器,同时去除对DSP块外部的任何逻辑的需要。因而,与例如对称脉动FIR滤波器等其它滤波器实施方案或其它实施对称转置卷积滤波器的电路相比,降低了资源要求和功率消耗。另外,下文陈述的电路和方法通过引入将允许合成工具获得对滤波器的一般高级设计描述且经由用以推断滤波器设计的增强能力自动执行微调和优化工作的方法来解决设计者手动微调对其电路中所使用的滤波器的描述的需要。
本发明的一个或一个以上电路和方法实现对称转置卷积滤波器实施方案,其不仅在所需DSP级方面为最小的,而且去除了对DSP块外部的任何逻辑的需要。所述电路和方法因此进一步减小装置利用率以及静态和动态功率消耗。对于缺乏对DSP块的特性的深刻理解或正寻找将不会使其依赖于特定装置或装置制造商的便携式解决方案的设计者来说,合成工具的获得某些一般描述的滤波器代码(例如HDL代码)且执行向优化实施方案的转变的能力是有益的。因此,描述可在合成工具中自动进行的推断和优化方法。如下文将更详细描述,所述方法使得利用具有此能力的工具的设计者能够以一般方式描述对称转置卷积滤波器。举例来说,设计者可仅仅描述乘积的总和,以及待应用于给定滤波器的每一分接头以实现合成工具所产生的最佳实施方案的系数的表格。
现转向图17,展示根据本发明实施例的具有可编程逻辑的装置的框图。装置1702并入有可编程逻辑1704,其中可编程逻辑可包含CLB电路1706、DSP电路1707和易失性存储器1708,且可耦合到其它电路,例如非易失性存储器1710和/或易失性存储器1712。非易失性存储器1710可耦合到装置的I/O端口1713,从而使得控制电路1714能够将配置位流从I/O端口1713加载到装置的非易失性存储器1710中。
可将配置位流加载到装置1702的非易失性存储器1710中,且接着加载到易失性存储器1708和易失性存储器1712中。或者,可通过控制电路1714或配置控制器1718将配置位流直接加载到易失性存储器1708和易失性存储器1712中。举例来说,易失性存储器1708可与可配置逻辑块相关联,而易失性存储器1712可与随机存取存储器块(BRAM)或与配置存储器单元相关联。如下文将更详细描述,将产生配置位流以实施可编程逻辑1704的DSP电路1707。
现转向图18,展示根据本发明实施例的图1的装置的可配置逻辑元件的框图。明确地说,图18以简化形式说明图1的配置逻辑块102的可配置逻辑元件。在图18的实施例中,切片M 1801包括四个查找表(LUTM)1801A到1801D,其每一者由六个LUT数据输入端子A1到A6、B1到B6、C1到C6和D1到D6驱动,且每一者提供两个LUT输出信O5和O6。来自LUT1801A到1801D的O6输出端子分别驱动切片输出端子A到D。LUT数据输入信号由FPGA互连结构经由输入多路复用器供应,所述输入多路复用器可由可编程互连元件1811实施,且LUT输出信号也供应到互连结构。切片M还包括:输出选择多路复用器1811A到1811D,其驱动输出端子AMUX到DMUX;多路复用器1812A到1812D,其驱动存储器元件1802A到1802D的数据输入端子;组合多路复用器1816、1818和1819;跳动多路复用器电路1822到1823;由反转器1805和多路复用器1806(其共同在输入时钟路径上提供任选反转)表示的电路;以及进位逻辑,其包含多路复用器1814A到1814D、1815A到1815D、1820到1821以及异或门1813A到1813D。所有这些元件耦合在一起,如图18中所示。在未针对图18中所说明的多路复用器展示选择输入的情况下,选择输入由配置存储器单元控制。也就是说,存储于配置存储器单元中的配置位流的配置位耦合到多路复用器的选择输入,以选择对多路复用器的正确输入。这些配置存储器单元(其是众所周知的)为了清楚起见而从图18中省略,并且在本文中从其它选定图式中省略。
在所图示的实施例中,每一存储器元件1802A到1802D可经编程以充当同步或异步触发器或锁存器。通过编程同步/异步选择电路1803来针对切片中的所有四个存储器元件进行同步与异步功能性之间的选择。当存储器元件经编程以使得S/R(设置/复位)输入信号提供设置功能时,REV输入端子提供复位功能。当存储器元件经编程以使得S/R输入信号提供复位功能时,REV输入端子提供设置功能。存储器元件1802A到1802D由时钟信号Ck计时,举例来说,所述时钟信号CK可由全局时钟网络或由互连结构提供。此类可编程存储器元件在FPGA设计的技术中是众所周知的。每一存储器元件1802A到1802D将所记录的输出信号AQ到DQ提供到互连结构。因为每一LUT 1801A到1801D提供两个输出信号O5和O6,所以LUT可经配置以充当具有五个共享输入信号(IN1到IN5)的两个5输入LUT,或充当具有输入信号IN1到IN6的一个6输入LUT。
在图18的实施例中,每一LUTM 1801A到1801D可以若干模式中的任一者起作用。当处于查找表模式时,每一LUT具有六个数据输入信号IN1到IN6,其由FPGA互连结构经由输入多路复用器供应。64个数据值中的一者以可编程方式基于信号IN1到IN6的值从配置存储器单元中选择。当处于RAM模式时,每一LUT充当单个64位RAM或两个具有共享寻址的32位RAM。RAM写入数据经由输入端子DI1(经由用于LUT 1801A到1801C的多路复用器1817A到1817C)供应到64位RAM,或经由输入端子DI1和DI2供应到两个32位RAM。LUT RAM中的RAM写入操作由来自多路复用器1806的时钟信号CK以及由来自多路复用器1807的写入启用信号WEN控制,所述写入启用信号WEN可选择性地传递时钟启用信号CE或写入启用信号WE。在移位寄存器模式中,每一LUT充当两个16位移位寄存器,或其中所述两个16位移位寄存器串联耦合以形成单个32位移位寄存器。移入信号经由输入端子DI1和DI2中的一者或两者提供。16位或32位移出信号可通过LUT输出端子来提供,且32位移出信号还可经由LUT输出端子MC31更直接地提供。LUT 1801A的32位移出信号MC31也可经由输出选择多路复用器1811D和CLE输出端子DMUX提供到一般互连结构以用于移位寄存器成链。
尽管前述内容根据本发明的一个或一个以上方面描述了示范性实施例,但可在不脱离其范围的情况下构想出根据本发明的所述一个或一个以上方面的其它和另外实施例,其范围由所附权利要求书及其等效物决定。列举步骤的权利要求并不暗示所述步骤的任何次序。商标为其相应拥有者的财产。
Claims (13)
1.一种滤波器,其包含:
第一数字信号处理(DSP)级,用以接收输入信号、第一系数、以及所述输入信号的经移位寄存版本,其中所述第一数字信号处理级包含:
第一寄存器,用以存储所述第一数字信号处理级的输出;以及
第二数字信号处理级,用以接收所述输入信号、第二系数、以及所述输入信号的所述经移位寄存版本,其中所述第二数字信号处理级包含:
第二寄存器,用以存储所述第二数字信号处理级的输出;以及第一加法器/减法器,耦合到所述第二寄存器,用以将第一乘法器的输出相加到所述第一数字信号处理级的输出;
其中,所述第一数字信号处理级包含预加法器电路,所述预加法器电路包含第三寄存器;
其中,所述第三寄存器用来接收所述输入信号的所述经移位寄存版本,用以提供给所述预加法器电路的第二加法器/减法器对所述输入信号相加;
其中,所述预加法器电路具有第一双寄存器电路和第二双寄存器电路,其中,所述第三寄存器包含在所述第二双寄存器电路中;且
其中,所述第一双寄存器电路的输出或所述第二双寄存器电路的输出或所述第一双寄存器电路的所述输出和所述第二双寄存器电路的所述输出的组合是用来提供输入给所述第一数字信号处理级的第二乘法器。
2.根据权利要求1所述的滤波器,其中所述预加法器电路耦合到所述第三寄存器且耦合到控制总线,所述预加法器电路包含:
耦合到所述控制总线的第一多路复用器的第一输入端口;
耦合到所述控制总线的第一逻辑门的第二输入端口;
耦合到所述控制总线的第二逻辑门的第三输入端口;以及
耦合到所述控制总线的所述第二加法器/减法器的第四输入端口。
3.根据权利要求2所述的滤波器,其中所述第一数字信号处理级包含:
耦合到所述预加法器电路的第四寄存器,用以存储所述预加法器电路的结果;
第五寄存器,用以接收所述第一系数;以及
所述第二乘法器,耦合到所述第四寄存器及所述第五寄存器,用以将所述第四寄存器的输出及所述第五寄存器的输出相乘。
4.根据权利要求2或3所述的滤波器,其中:
所述预加法器电路经配置以用于响应于来自所述第二输入端口的输入而动态地设置所述第二加法器/减法器的第五数据输入端口以经由所述第一逻辑门的输出接收第一零值。
5.根据权利要求4所述的滤波器,其中所述预加法器电路经配置以用于响应于对所述第三输入端口的输入而动态地设置所述第二加法器/减法器的第六数据输入端口以经由所述第二逻辑门的输出接收第二零值。
6.根据权利要求2或3所述的滤波器,其中所述预加法器电路经配置以用于响应于对所述第一输入端口的输入而动态地选择具有0、1或2个寄存器延迟的输入数据。
7.根据权利要求2或3所述的滤波器,其中所述预加法器电路经配置以用于响应于对所述第四输入端口的输入而动态地设置所述第二加法器/减法器以进行相加或相减。
8.一种配置电路中的滤波器的方法,其中所述电路实施在集成电路装置中,所述方法包含:
接收所述电路的高级设计;
识别所述高级设计中的所述滤波器;
分析所述滤波器的每一级的系数;
使用所述电路的经配置以适应所述系数的处理块来转变所述高级设计的所述滤波器;
其中所述处理块经耦合以接收与所述系数相关联的分接头;
其中所述处理块包含数字信号处理(DSP)级;
耦合输入信号及所述输入信号的经移位寄存版本到所述数字信号处理级的每一个;
将所述输入信号的所述经移位寄存版本预加到所述数字信号处理级的每一个中的输入信号;
其中所述预加是透过所述数字信号处理级的每一个中的预加法器电路的加法器/减法器而执行;
其中所述数字信号处理级的每一个中所述预加法器电路包含第一双寄存器电路和第二双寄存器电路;
其中所述预加包含选择是否使用所述第一双寄存器电路的输出或所述第二双寄存器电路的输出或所述第一双寄存器电路的输出和所述第二双寄存器电路的输出的组合来提供输入给所述数字信号处理级的每一个中的乘法器;存储所述数字信号处理级的每一个的输出于所述数字信号处理级的个别寄存器中;以及
对于所述数字信号处理级中的初始级后的每一个数字信号处理级,将所述数字信号处理级中的当前数字信号处理级的乘法器的输出相加到所述数字信号处理级中的前一数字信号处理级的输出。
9.根据权利要求8所述的方法,其中所述使用经配置以适应所述系数的处理块来转变所述高级设计的所述滤波器包含将所述滤波器配置为对称转置卷积滤波器。
10.根据权利要求8所述的方法,其中所述分析所述系数包含识别所述高级设计中的所述滤波器的对称系数。
11.根据权利要求8所述的方法,其进一步包含提供所述系数的其中一系数作为对所述处理块的所述数字信号处理级中的所述初始级的乘法器的第一输入。
12.根据权利要求11所述的方法,其进一步包含提供所述输入信号及所述输入信号的所述经移位寄存版本的总和作为对所述处理块的所述数字信号处理级中的所述初始级的所述乘法器的第二输入。
13.根据权利要求12所述的方法,其中所述提供所述总和作为对所述乘法器的第二输入包含使用所述数字信号处理级中的所述初始级的预加法器电路来产生所述总和。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/360,836 | 2009-01-27 | ||
US12/360,836 US8543635B2 (en) | 2009-01-27 | 2009-01-27 | Digital signal processing block with preadder stage |
US12/418,979 | 2009-04-06 | ||
US12/418,979 US8479133B2 (en) | 2009-01-27 | 2009-04-06 | Method of and circuit for implementing a filter in an integrated circuit |
PCT/US2010/020565 WO2010088017A1 (en) | 2009-01-27 | 2010-01-08 | Digital signal processing block with preadder stage |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102301325A CN102301325A (zh) | 2011-12-28 |
CN102301325B true CN102301325B (zh) | 2015-04-01 |
Family
ID=41668341
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201080005739.1A Active CN102301325B (zh) | 2009-01-27 | 2010-01-08 | 具有预加法器级的数字信号处理块 |
Country Status (6)
Country | Link |
---|---|
US (1) | US8479133B2 (zh) |
EP (1) | EP2382535B1 (zh) |
JP (1) | JP5356537B2 (zh) |
KR (1) | KR101333477B1 (zh) |
CN (1) | CN102301325B (zh) |
WO (1) | WO2010088017A1 (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10003341B1 (en) | 2009-06-30 | 2018-06-19 | Altera Corporation | Flexible input structure for arithmetic processing block |
CN102611429B (zh) * | 2012-01-05 | 2015-05-06 | 福州大学 | 基于阈值逻辑的set/mos混合结构的加法器 |
US9787290B2 (en) * | 2015-05-20 | 2017-10-10 | Altera Corporation | Resource-saving circuit structures for deeply pipelined systolic finite impulse response filters |
US10019234B2 (en) * | 2015-10-05 | 2018-07-10 | Altera Corporation | Methods and apparatus for sequencing multiply-accumulate operations |
RU2625609C1 (ru) * | 2016-02-25 | 2017-07-17 | Федеральное государственное бюджетное образовательное учреждение высшего образования "Кубанский государственный технологический университет" (ФГБОУ ВО "КубГТУ") | Синусно-косинусный цифровой преобразователь |
US10083007B2 (en) | 2016-09-15 | 2018-09-25 | Altera Corporation | Fast filtering |
US10430539B1 (en) * | 2016-12-16 | 2019-10-01 | Xilinx, Inc. | Method and apparatus for enhancing performance by moving or adding a pipelined register stage in a cascaded chain |
CN108804974B (zh) * | 2017-04-27 | 2021-07-02 | 深圳鲲云信息科技有限公司 | 目标检测算法的硬件架构的资源估算、配置方法及系统 |
CN107301032A (zh) * | 2017-07-02 | 2017-10-27 | 郑州云海信息技术有限公司 | 一种数字信号处理方法和装置 |
US11061674B2 (en) * | 2017-10-05 | 2021-07-13 | Micron Technology, Inc. | DSP slice configured to forward operands to associated DSP slices |
US10922098B2 (en) * | 2017-10-05 | 2021-02-16 | Micron Technology, Inc. | DSP execution slice array to provide operands to multiple logic units |
KR102487535B1 (ko) * | 2018-02-20 | 2023-01-12 | 삼성전자주식회사 | 시스톨릭 배열(Systolic Array)을 이용하여 딥 러닝(Deep Learning) 연산을 수행하는 방법 및 장치 |
CN111047034B (zh) * | 2019-11-26 | 2023-09-15 | 中山大学 | 一种基于乘加器单元的现场可编程神经网络阵列 |
US11356101B1 (en) * | 2021-03-30 | 2022-06-07 | Efinix, Inc. | Digital signal processing block with reduced pin count for fine-grained programmable gate architecture |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5258939A (en) * | 1991-10-10 | 1993-11-02 | Harris Corporation | Fold and decimate filter architecture |
US6065034A (en) * | 1998-04-08 | 2000-05-16 | Advanced Micro Devices, Inc. | Circuit and method employing an adder for sign extending operands |
CN1525642A (zh) * | 2003-03-02 | 2004-09-01 | ӡ�����Ƽ��ɷ�����˾ | 可重新配置的有限脉冲响应滤波器 |
CN101106363A (zh) * | 2006-07-13 | 2008-01-16 | 三洋电机株式会社 | 滤波处理集成电路 |
Family Cites Families (184)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6556044B2 (en) * | 2001-09-18 | 2003-04-29 | Altera Corporation | Programmable logic device including multipliers and configurations thereof to reduce resource utilization |
US4025771A (en) * | 1974-03-25 | 1977-05-24 | Hughes Aircraft Company | Pipe line high speed signal processor |
US4041461A (en) | 1975-07-25 | 1977-08-09 | International Business Machines Corporation | Signal analyzer system |
US4541048A (en) | 1978-10-06 | 1985-09-10 | Hughes Aircraft Company | Modular programmable signal processor |
DE3346241A1 (de) * | 1983-03-31 | 1984-10-04 | Siemens AG, 1000 Berlin und 8000 München | Parallelverknuepfungsschaltung mit verkuerztem uebertragsdurchlauf |
US4638450A (en) * | 1983-09-30 | 1987-01-20 | Honeywell Information Systems Inc. | Equal nine apparatus for supporting absolute value subtracts on decimal operands of unequal length |
US4680628A (en) * | 1984-01-04 | 1987-07-14 | Itek Corporation | Realtime digital diagnostic image processing system |
US4665500A (en) * | 1984-04-11 | 1987-05-12 | Texas Instruments Incorporated | Multiply and divide unit for a high speed processor |
US4755962A (en) * | 1984-10-30 | 1988-07-05 | Fairchild Camera And Instrument | Microprocessor having multiplication circuitry implementing a modified Booth algorithm |
JPH07113884B2 (ja) | 1985-12-28 | 1995-12-06 | 株式会社東芝 | 論理回路 |
US4780842A (en) | 1986-03-26 | 1988-10-25 | Alcatel Usa, Corp. | Cellular processor apparatus capable of performing floating point arithmetic operations |
JPH0644225B2 (ja) | 1986-03-27 | 1994-06-08 | 日本電気株式会社 | 浮動小数点丸め正規化回路 |
US5367208A (en) * | 1986-09-19 | 1994-11-22 | Actel Corporation | Reconfigurable programmable interconnect architecture |
US5319451A (en) * | 1988-05-31 | 1994-06-07 | Canon Kabushiki Kaisha | Color signal processing apparatus using a common low pass filter for the luminance signal and the color signals |
US5287511A (en) * | 1988-07-11 | 1994-02-15 | Star Semiconductor Corporation | Architectures and methods for dividing processing tasks into tasks for a programmable real time signal processor and tasks for a decision making microprocessor interfacing therewith |
JP2879070B2 (ja) * | 1989-02-15 | 1999-04-05 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | プログラム可能論理ユニット及び信号プロセッサ |
US5212652A (en) | 1989-08-15 | 1993-05-18 | Advanced Micro Devices, Inc. | Programmable gate array with improved interconnect structure |
DE68928980T2 (de) * | 1989-11-17 | 1999-08-19 | Texas Instruments Inc | Multiprozessor mit Koordinatenschalter zwischen Prozessoren und Speichern |
USRE35311E (en) | 1990-04-04 | 1996-08-06 | International Business Machines Corporation | Data dependency collapsing hardware apparatus |
US5809292A (en) | 1990-11-13 | 1998-09-15 | International Business Machines Corporation | Floating point for simid array machine |
US5162666A (en) | 1991-03-15 | 1992-11-10 | Tran Dzung J | Transmission gate series multiplexer |
US5241492A (en) | 1991-05-06 | 1993-08-31 | Motorola, Inc. | Apparatus for performing multiply and accumulate instructions with reduced power and a method therefor |
US5633830A (en) | 1995-11-08 | 1997-05-27 | Altera Corporation | Random access memory block circuitry for programmable logic array integrated circuit devices |
US5450339A (en) | 1991-10-10 | 1995-09-12 | Harris Corp | Noncanonic fully systolic LMS adaptive architecture |
JPH05265709A (ja) * | 1992-03-23 | 1993-10-15 | Nec Corp | 丸め演算回路 |
EP1304797A3 (en) | 1992-07-07 | 2007-11-28 | Dolby Laboratories Licensing Corporation | Digital filter having high accuracy and efficiency |
US5339264A (en) * | 1992-07-27 | 1994-08-16 | Tektronix, Inc. | Symmetric transposed FIR digital filter |
US5388062A (en) * | 1993-05-06 | 1995-02-07 | Thomson Consumer Electronics, Inc. | Reconfigurable programmable digital filter architecture useful in communication receiver |
JPH0713742A (ja) * | 1993-06-25 | 1995-01-17 | Mitsubishi Electric Corp | 乗算装置 |
US5349250A (en) | 1993-09-02 | 1994-09-20 | Xilinx, Inc. | Logic structure and circuit for fast carry |
US5509129A (en) * | 1993-11-30 | 1996-04-16 | Guttag; Karl M. | Long instruction word controlling plural independent processor operations |
US5805913A (en) | 1993-11-30 | 1998-09-08 | Texas Instruments Incorporated | Arithmetic logic unit with conditional register source selection |
US6016538A (en) * | 1993-11-30 | 2000-01-18 | Texas Instruments Incorporated | Method, apparatus and system forming the sum of data in plural equal sections of a single data word |
US5455525A (en) | 1993-12-06 | 1995-10-03 | Intelligent Logic Systems, Inc. | Hierarchically-structured programmable logic array and system for interconnecting logic elements in the logic array |
FI97002C (fi) | 1993-12-17 | 1996-09-25 | Eero Juhani Pajarre | Suora FIR-suodatin, menetelmä pistetulon laskemiseksi FIR-suodattimessa ja menetelmä suoran FIR-suodattimen suunnittelemiseksi |
US5450056A (en) | 1993-12-27 | 1995-09-12 | Intel Corporation | Method and apparatus for comparing two numbers |
US5394351A (en) | 1994-03-11 | 1995-02-28 | Nexgen, Inc. | Optimized binary adder and comparator having an implicit constant for an input |
US5682107A (en) * | 1994-04-01 | 1997-10-28 | Xilinx, Inc. | FPGA architecture with repeatable tiles including routing matrices and logic matrices |
JPH0865107A (ja) * | 1994-08-25 | 1996-03-08 | Hitachi Denshi Ltd | ディジタル補間フィルタ回路 |
US5572207A (en) | 1994-09-23 | 1996-11-05 | International Business Machines Corporation | Method and apparatus for numeric-to-string conversion |
US5570306A (en) | 1994-11-01 | 1996-10-29 | Intel Corporation | Method and apparatus for recognizing a bit pattern in a string of bits, altering the string of bits, and removing the alteration from the string of bits |
US5642382A (en) * | 1995-03-01 | 1997-06-24 | Hitachi America, Ltd. | Fir filters with multiplexed inputs suitable for use in reconfigurable adaptive equalizers |
US5630160A (en) * | 1995-03-08 | 1997-05-13 | Texas Instruments Incorporated | Floating point exponent compare using repeated two bit compare cell |
US6112019A (en) | 1995-06-12 | 2000-08-29 | Georgia Tech Research Corp. | Distributed instruction queue |
WO1997008614A1 (en) | 1995-08-28 | 1997-03-06 | Motorola Inc. | Method and system for performing an l1 norm operation |
JP3655403B2 (ja) * | 1995-10-09 | 2005-06-02 | 株式会社ルネサステクノロジ | データ処理装置 |
US5732004A (en) * | 1995-11-14 | 1998-03-24 | Advanced Micro Devices, Inc. | DSP architecture for a FIR-type filter and method |
US5847580A (en) | 1996-10-10 | 1998-12-08 | Xilinx, Inc. | High speed bidirectional bus with multiplexers |
US5754459A (en) * | 1996-02-08 | 1998-05-19 | Xilinx, Inc. | Multiplier circuit design for a programmable logic device |
US6154049A (en) | 1998-03-27 | 2000-11-28 | Xilinx, Inc. | Multiplier fabric for use in field programmable gate arrays |
US5956518A (en) | 1996-04-11 | 1999-09-21 | Massachusetts Institute Of Technology | Intermediate-grain reconfigurable processing device |
GB9611994D0 (en) | 1996-06-07 | 1996-08-07 | Systolix Ltd | A field programmable processor |
US5724276A (en) * | 1996-06-17 | 1998-03-03 | Xilinx, Inc. | Logic block structure optimized for sum generation |
US5838165A (en) | 1996-08-21 | 1998-11-17 | Chatter; Mukesh | High performance self modifying on-the-fly alterable logic FPGA, architecture and method |
US5948053A (en) | 1996-09-02 | 1999-09-07 | Yamaha Corporation | Digital signal processor architecture using signal paths to carry out arithmetic operations |
US5933023A (en) | 1996-09-03 | 1999-08-03 | Xilinx, Inc. | FPGA architecture having RAM blocks with programmable word length and width and dedicated address and data lines |
US5943250A (en) | 1996-10-21 | 1999-08-24 | Samsung Electronics Co., Ltd. | Parallel multiplier that supports multiple numbers with different bit lengths |
US5880671A (en) * | 1996-10-31 | 1999-03-09 | Hewlett-Packard Company | Flexible circuitry and method for detecting signal patterns on a bus |
US5835393A (en) | 1996-11-19 | 1998-11-10 | Audiologic Hearing Systems, L.P. | Integrated pre-adder for a multiplier |
US6205459B1 (en) * | 1996-12-18 | 2001-03-20 | Yamaha Corporation | Digital signal processor and digital signal processing system incorporating same |
DE19653565A1 (de) | 1996-12-20 | 1997-05-15 | Bernd Paysan | Rekursiv aufgeteilter Addierer mit Übertrag-Auswahl |
US6204689B1 (en) * | 1997-02-26 | 2001-03-20 | Xilinx, Inc. | Input/output interconnect circuit for FPGAs |
US5963050A (en) | 1997-02-26 | 1999-10-05 | Xilinx, Inc. | Configurable logic element with fast feedback paths |
US5914616A (en) * | 1997-02-26 | 1999-06-22 | Xilinx, Inc. | FPGA repeatable interconnect structure with hierarchical interconnect lines |
US6014684A (en) * | 1997-03-24 | 2000-01-11 | Intel Corporation | Method and apparatus for performing N bit by 2*N-1 bit signed multiplication |
US5896307A (en) * | 1997-06-23 | 1999-04-20 | Sun Microsystems, Inc. | Method for handling an underflow condition in a processor |
US5905661A (en) * | 1997-06-23 | 1999-05-18 | Sun Microsystems, Inc. | Method for handling an overflow condition in a processor |
US6044392A (en) * | 1997-08-04 | 2000-03-28 | Motorola, Inc. | Method and apparatus for performing rounding in a data processor |
US6100715A (en) | 1998-12-15 | 2000-08-08 | Vantis Corporation | Methods for configuring FPGA's having variable grain blocks and logic for providing time-shared access to interconnect resources |
US6097212A (en) * | 1997-10-09 | 2000-08-01 | Lattice Semiconductor Corporation | Variable grain architecture for FPGA integrated circuits |
US6269384B1 (en) | 1998-03-27 | 2001-07-31 | Advanced Micro Devices, Inc. | Method and apparatus for rounding and normalizing results within a multiplier |
US6134574A (en) | 1998-05-08 | 2000-10-17 | Advanced Micro Devices, Inc. | Method and apparatus for achieving higher frequencies of exactly rounded results |
US6038583A (en) * | 1997-10-23 | 2000-03-14 | Advanced Micro Devices, Inc. | Method and apparatus for simultaneously multiplying two or more independent pairs of operands and calculating a rounded products |
US6223198B1 (en) * | 1998-08-14 | 2001-04-24 | Advanced Micro Devices, Inc. | Method and apparatus for multi-function arithmetic |
US5915123A (en) | 1997-10-31 | 1999-06-22 | Silicon Spice | Method and apparatus for controlling configuration memory contexts of processing elements in a network of multiple context processing elements |
US6038381A (en) * | 1997-11-25 | 2000-03-14 | Synopsys, Inc. | Method and system for determining a signal that controls the application of operands to a circuit-implemented function for power savings |
US6069490A (en) * | 1997-12-02 | 2000-05-30 | Xilinx, Inc. | Routing architecture using a direct connect routing mesh |
US6108343A (en) | 1997-12-19 | 2000-08-22 | Nortel Networks Corporation | Dynamically reconfigurable DSP architecture for multi-channel telephony |
US6389579B1 (en) * | 1998-01-26 | 2002-05-14 | Chameleon Systems | Reconfigurable logic for table lookup |
DE69927075T2 (de) | 1998-02-04 | 2006-06-14 | Texas Instruments Inc | Rekonfigurierbarer Koprozessor mit mehreren Multiplizier-Akkumulier-Einheiten |
US6434584B1 (en) | 1998-06-04 | 2002-08-13 | Texas Instruments Incorporated | Flexible accumulator register file for use in high performance microprocessors |
US6282627B1 (en) | 1998-06-29 | 2001-08-28 | Chameleon Systems, Inc. | Integrated processor and programmable data path chip for reconfigurable computing |
US6374312B1 (en) * | 1998-09-25 | 2002-04-16 | Intel Corporation | System for dedicating a host processor to running one of a plurality of modem programs and dedicating a DSP to running another one of the modem programs |
US6421698B1 (en) | 1998-11-04 | 2002-07-16 | Teleman Multimedia, Inc. | Multipurpose processor for motion estimation, pixel processing, and general processing |
US6260053B1 (en) | 1998-12-09 | 2001-07-10 | Cirrus Logic, Inc. | Efficient and scalable FIR filter architecture for decimation |
US6282631B1 (en) | 1998-12-23 | 2001-08-28 | National Semiconductor Corporation | Programmable RISC-DSP architecture |
US6385751B1 (en) * | 1998-12-30 | 2002-05-07 | Texas Instruments Incorporated | Programmable, reconfigurable DSP implementation of a Reed-Solomon encoder/decoder |
US6323680B1 (en) | 1999-03-04 | 2001-11-27 | Altera Corporation | Programmable logic device configured to accommodate multiplication |
US6243808B1 (en) * | 1999-03-08 | 2001-06-05 | Chameleon Systems, Inc. | Digital data bit order conversion using universal switch matrix comprising rows of bit swapping selector groups |
US6366943B1 (en) * | 1999-03-31 | 2002-04-02 | Brian Martin Clinton | Adder circuit with the ability to detect zero when rounding |
US6298472B1 (en) | 1999-05-07 | 2001-10-02 | Chameleon Systems, Inc. | Behavioral silicon construct architecture and mapping |
US6347346B1 (en) * | 1999-06-30 | 2002-02-12 | Chameleon Systems, Inc. | Local memory unit system with global access for use on reconfigurable chips |
US6438570B1 (en) | 1999-07-21 | 2002-08-20 | Xilinx, Inc. | FPGA implemented bit-serial multiplier and infinite impulse response |
US6370596B1 (en) * | 1999-08-03 | 2002-04-09 | Chameleon Systems, Inc. | Logic flag registers for monitoring processing system events |
US6341318B1 (en) * | 1999-08-10 | 2002-01-22 | Chameleon Systems, Inc. | DMA data streaming |
US6567835B1 (en) * | 1999-08-17 | 2003-05-20 | Intrinsity, Inc. | Method and apparatus for a 5:2 carry-save-adder (CSA) |
US6349346B1 (en) * | 1999-09-23 | 2002-02-19 | Chameleon Systems, Inc. | Control fabric unit including associated configuration memory and PSOP state machine adapted to provide configuration address to reconfigurable functional unit |
US6288566B1 (en) | 1999-09-23 | 2001-09-11 | Chameleon Systems, Inc. | Configuration state memory for functional blocks on a reconfigurable chip |
US6311200B1 (en) | 1999-09-23 | 2001-10-30 | Chameleon Systems, Inc. | Reconfigurable program sum of products generator |
US6526430B1 (en) * | 1999-10-04 | 2003-02-25 | Texas Instruments Incorporated | Reconfigurable SIMD coprocessor architecture for sum of absolute differences and symmetric filtering (scalable MAC engine for image processing) |
US6499045B1 (en) * | 1999-10-21 | 2002-12-24 | Xilinx, Inc. | Implementation of a two-dimensional wavelet transform |
US6731706B1 (en) * | 1999-10-29 | 2004-05-04 | Intel Corporation | Square root raised cosine symmetric filter for mobile telecommunications |
US6754689B2 (en) * | 1999-12-23 | 2004-06-22 | Intel Corporation | Method and apparatus for performing subtraction in redundant form arithmetic |
CA2294554A1 (en) * | 1999-12-30 | 2001-06-30 | Mosaid Technologies Incorporated | Method and circuit for multiplication using booth encoding and iterative addition techniques |
US6745319B1 (en) * | 2000-02-18 | 2004-06-01 | Texas Instruments Incorporated | Microprocessor with instructions for shuffling and dealing data |
US6519674B1 (en) * | 2000-02-18 | 2003-02-11 | Chameleon Systems, Inc. | Configuration bits layout |
US6405298B1 (en) * | 2000-02-21 | 2002-06-11 | Hewlett-Packard Company | Linear address generator and method for generating a linear address using parallel computations and a single cycle algorithm |
US6539477B1 (en) * | 2000-03-03 | 2003-03-25 | Chameleon Systems, Inc. | System and method for control synthesis using a reachable states look-up table |
US7124160B2 (en) | 2000-03-08 | 2006-10-17 | Sun Microsystems, Inc. | Processing architecture having parallel arithmetic capability |
US6601077B1 (en) | 2000-03-31 | 2003-07-29 | Intel Corporation | DSP unit for multi-level global accumulation |
CN1265280C (zh) | 2000-05-15 | 2006-07-19 | 艾蒙系统股份有限公司 | 扩展整数的计算域的范围 |
US6362650B1 (en) * | 2000-05-18 | 2002-03-26 | Xilinx, Inc. | Method and apparatus for incorporating a multiplier into an FPGA |
US6631508B1 (en) | 2000-06-07 | 2003-10-07 | Xilinx, Inc. | Method and apparatus for developing and placing a circuit design |
US6526557B1 (en) * | 2000-07-25 | 2003-02-25 | Xilinx, Inc. | Architecture and method for partially reconfiguring an FPGA |
GB2365636B (en) | 2000-08-04 | 2005-01-05 | Automatic Parallel Designs Ltd | A parallel counter and a multiplication logic circuit |
US6538470B1 (en) * | 2000-09-18 | 2003-03-25 | Altera Corporation | Devices and methods with programmable logic and digital signal processing regions |
US6628140B2 (en) | 2000-09-18 | 2003-09-30 | Altera Corporation | Programmable logic devices with function-specific blocks |
FR2819073B1 (fr) | 2000-12-28 | 2003-02-28 | St Microelectronics Sa | Microarchitecture d'unite arithmetique |
US6483343B1 (en) | 2000-12-29 | 2002-11-19 | Quicklogic Corporation | Configurable computational unit embedded in a programmable device |
US6392912B1 (en) * | 2001-01-10 | 2002-05-21 | Chameleon Systems, Inc. | Loading data plane on reconfigurable chip |
US7599981B2 (en) | 2001-02-21 | 2009-10-06 | Mips Technologies, Inc. | Binary polynomial multiplier |
US7433909B2 (en) | 2002-06-25 | 2008-10-07 | Nvidia Corporation | Processing architecture for a reconfigurable arithmetic node |
US7325123B2 (en) | 2001-03-22 | 2008-01-29 | Qst Holdings, Llc | Hierarchical interconnect for configuring separate interconnects for each group of fixed and diverse computational elements |
US7225279B2 (en) * | 2002-06-25 | 2007-05-29 | Nvidia Corporation | Data distributor in a computation unit forwarding network data to select components in respective communication method type |
US6836839B2 (en) | 2001-03-22 | 2004-12-28 | Quicksilver Technology, Inc. | Adaptive integrated circuitry with heterogeneous and reconfigurable matrices of diverse and adaptive computational units having fixed, application specific computational elements |
US7249242B2 (en) | 2002-10-28 | 2007-07-24 | Nvidia Corporation | Input pipeline registers for a node in an adaptive computing engine |
GB2373602B (en) | 2001-03-22 | 2004-11-17 | Automatic Parallel Designs Ltd | A multiplication logic circuit |
US7624204B2 (en) | 2001-03-22 | 2009-11-24 | Nvidia Corporation | Input/output controller node in an adaptable computing environment |
GB2373883A (en) | 2001-03-27 | 2002-10-02 | Automatic Parallel Designs Ltd | Logic circuit for performing binary addition or subtraction |
US6742013B2 (en) * | 2001-05-03 | 2004-05-25 | Sun Microsystems, Inc. | Apparatus and method for uniformly performing comparison operations on long word operands |
US7116663B2 (en) | 2001-07-20 | 2006-10-03 | Pmc-Sierra Ltd. | Multi-field classification using enhanced masked matching |
US6904446B2 (en) * | 2001-08-24 | 2005-06-07 | Freescale Semiconductor, Inc. | Floating point multiplier/accumulator with reduced latency and method thereof |
JP3548142B2 (ja) * | 2001-08-29 | 2004-07-28 | 株式会社 エヌティーアイ | 演算装置及び演算システム |
US20030055861A1 (en) * | 2001-09-18 | 2003-03-20 | Lai Gary N. | Multipler unit in reconfigurable chip |
US6986021B2 (en) * | 2001-11-30 | 2006-01-10 | Quick Silver Technology, Inc. | Apparatus, method, system and executable module for configuration and operation of adaptive integrated circuitry having fixed, application specific computational elements |
GB2383435A (en) | 2001-12-18 | 2003-06-25 | Automatic Parallel Designs Ltd | Logic circuit for performing modular multiplication and exponentiation |
US6947916B2 (en) | 2001-12-21 | 2005-09-20 | Quicksilver Technology, Inc. | IC for universal computing with near zero programming complexity |
US6864714B2 (en) * | 2002-06-10 | 2005-03-08 | Stmicroelectronics Pvt. Ltd. | PLDs providing reduced delays in cascade chain circuits |
US6873182B2 (en) * | 2002-06-27 | 2005-03-29 | Stmicroelectronics Pvt. Ltd. | Programmable logic devices having enhanced cascade functions to provide increased flexibility |
US7502915B2 (en) * | 2002-09-30 | 2009-03-10 | Nvidia Corporation | System and method using embedded microprocessor as a node in an adaptable computing machine |
US7197686B2 (en) * | 2002-10-11 | 2007-03-27 | Nvidia Corporation | Reconfigurable bit-manipulation node |
US7353243B2 (en) * | 2002-10-22 | 2008-04-01 | Nvidia Corporation | Reconfigurable filter node for an adaptive computing machine |
US8949576B2 (en) * | 2002-11-01 | 2015-02-03 | Nvidia Corporation | Arithmetic node including general digital signal processing functions for an adaptive computing machine |
US6920627B2 (en) | 2002-12-13 | 2005-07-19 | Xilinx, Inc. | Reconfiguration of a programmable logic device using internal control |
US7124156B2 (en) | 2003-01-10 | 2006-10-17 | Nec America, Inc. | Apparatus and method for immediate non-sequential state transition in a PN code generator |
US7178130B2 (en) * | 2003-01-14 | 2007-02-13 | Nvidia Corporation | Digital processing architecture using compiled dataflow definition |
US7155471B2 (en) | 2003-02-12 | 2006-12-26 | Hewlett-Packard Development Company, L.P. | Method and system for determining the correct rounding of a function |
US8296764B2 (en) * | 2003-08-14 | 2012-10-23 | Nvidia Corporation | Internal synchronization control for adaptive integrated circuitry |
US7353516B2 (en) * | 2003-08-14 | 2008-04-01 | Nvidia Corporation | Data flow control for adaptive integrated circuitry |
US7725681B2 (en) | 2003-08-15 | 2010-05-25 | Nxp B.V. | Parallel processing array |
US7174432B2 (en) * | 2003-08-19 | 2007-02-06 | Nvidia Corporation | Asynchronous, independent and multiple process shared memory system in an adaptive computing architecture |
US7467177B2 (en) * | 2003-12-29 | 2008-12-16 | Xilinx, Inc. | Mathematical circuit with dynamic rounding |
US7480690B2 (en) * | 2003-12-29 | 2009-01-20 | Xilinx, Inc. | Arithmetic circuit with multiplexed addend inputs |
US7849119B2 (en) | 2003-12-29 | 2010-12-07 | Xilinx, Inc. | Digital signal processing circuit having a pattern detector circuit |
US7467175B2 (en) | 2003-12-29 | 2008-12-16 | Xilinx, Inc. | Programmable logic device with pipelined DSP slices |
EP2306331B1 (en) * | 2003-12-29 | 2018-05-02 | Xilinx, Inc. | Integrated circuit with cascading DSP slices |
US7844653B2 (en) | 2003-12-29 | 2010-11-30 | Xilinx, Inc. | Digital signal processing circuit having a pre-adder circuit |
US7882165B2 (en) * | 2003-12-29 | 2011-02-01 | Xilinx, Inc. | Digital signal processing element having an arithmetic logic unit |
US7567997B2 (en) | 2003-12-29 | 2009-07-28 | Xilinx, Inc. | Applications of cascading DSP slices |
US7840630B2 (en) | 2003-12-29 | 2010-11-23 | Xilinx, Inc. | Arithmetic logic unit circuit |
US8495122B2 (en) * | 2003-12-29 | 2013-07-23 | Xilinx, Inc. | Programmable device with dynamic DSP architecture |
US7865542B2 (en) * | 2003-12-29 | 2011-01-04 | Xilinx, Inc. | Digital signal processing block having a wide multiplexer |
US7853632B2 (en) | 2003-12-29 | 2010-12-14 | Xilinx, Inc. | Architectural floorplan for a digital signal processing circuit |
US7853634B2 (en) | 2003-12-29 | 2010-12-14 | Xilinx, Inc. | Digital signal processing circuit having a SIMD circuit |
US7860915B2 (en) | 2003-12-29 | 2010-12-28 | Xilinx, Inc. | Digital signal processing circuit having a pattern circuit for determining termination conditions |
US7853636B2 (en) | 2003-12-29 | 2010-12-14 | Xilinx, Inc. | Digital signal processing circuit having a pattern detector circuit for convergent rounding |
US7870182B2 (en) * | 2003-12-29 | 2011-01-11 | Xilinx Inc. | Digital signal processing circuit having an adder circuit with carry-outs |
US7472155B2 (en) | 2003-12-29 | 2008-12-30 | Xilinx, Inc. | Programmable logic device with cascading DSP slices |
US7840627B2 (en) | 2003-12-29 | 2010-11-23 | Xilinx, Inc. | Digital signal processing circuit having input register blocks |
US7194598B2 (en) * | 2004-01-26 | 2007-03-20 | Nvidia Corporation | System and method using embedded microprocessor as a node in an adaptable computing machine |
US7437401B2 (en) | 2004-02-20 | 2008-10-14 | Altera Corporation | Multiplier-accumulator block mode splitting |
US7483420B1 (en) * | 2004-03-08 | 2009-01-27 | Altera Corporation | DSP circuitry for supporting multi-channel applications by selectively shifting data through registers |
US8018463B2 (en) | 2004-05-10 | 2011-09-13 | Nvidia Corporation | Processor for video data |
JP4485272B2 (ja) | 2004-06-30 | 2010-06-16 | 富士通マイクロエレクトロニクス株式会社 | 半導体装置 |
US20060004902A1 (en) * | 2004-06-30 | 2006-01-05 | Siva Simanapalli | Reconfigurable circuit with programmable split adder |
US7702710B2 (en) * | 2004-09-10 | 2010-04-20 | Analog Devices, Inc. | Digital signal processor optimized for interpolation and decimation |
US7129762B1 (en) | 2005-02-17 | 2006-10-31 | Xilinx, Inc. | Efficient implementation of a bypassable flip-flop with a clock enable |
US7689640B2 (en) * | 2005-06-06 | 2010-03-30 | Atmel Corporation | Method and apparatus for formatting numbers in microprocessors |
US7218139B1 (en) * | 2005-06-14 | 2007-05-15 | Xilinx, Inc. | Programmable integrated circuit providing efficient implementations of arithmetic functions |
US7193433B1 (en) * | 2005-06-14 | 2007-03-20 | Xilinx, Inc. | Programmable logic block having lookup table with partial output signal driving carry multiplexer |
US7584233B2 (en) | 2005-06-28 | 2009-09-01 | Qualcomm Incorporated | System and method of counting leading zeros and counting leading ones in a digital signal processor |
US7230451B1 (en) * | 2005-08-22 | 2007-06-12 | Altera Corporation | Programmable logic device with routing channels |
US7900168B2 (en) * | 2007-07-12 | 2011-03-01 | The Mathworks, Inc. | Customizable synthesis of tunable parameters for code generation |
US7949699B1 (en) * | 2007-08-30 | 2011-05-24 | Altera Corporation | Implementation of decimation filter in integrated circuit device using ram-based data storage |
-
2009
- 2009-04-06 US US12/418,979 patent/US8479133B2/en active Active
-
2010
- 2010-01-08 WO PCT/US2010/020565 patent/WO2010088017A1/en active Application Filing
- 2010-01-08 EP EP10701268.4A patent/EP2382535B1/en active Active
- 2010-01-08 KR KR1020117016156A patent/KR101333477B1/ko active IP Right Grant
- 2010-01-08 CN CN201080005739.1A patent/CN102301325B/zh active Active
- 2010-01-08 JP JP2011544689A patent/JP5356537B2/ja active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5258939A (en) * | 1991-10-10 | 1993-11-02 | Harris Corporation | Fold and decimate filter architecture |
US6065034A (en) * | 1998-04-08 | 2000-05-16 | Advanced Micro Devices, Inc. | Circuit and method employing an adder for sign extending operands |
CN1525642A (zh) * | 2003-03-02 | 2004-09-01 | ӡ�����Ƽ��ɷ�����˾ | 可重新配置的有限脉冲响应滤波器 |
CN101106363A (zh) * | 2006-07-13 | 2008-01-16 | 三洋电机株式会社 | 滤波处理集成电路 |
Also Published As
Publication number | Publication date |
---|---|
EP2382535B1 (en) | 2017-03-29 |
US8479133B2 (en) | 2013-07-02 |
WO2010088017A1 (en) | 2010-08-05 |
CN102301325A (zh) | 2011-12-28 |
JP2012514909A (ja) | 2012-06-28 |
EP2382535A1 (en) | 2011-11-02 |
US20100192118A1 (en) | 2010-07-29 |
JP5356537B2 (ja) | 2013-12-04 |
KR101333477B1 (ko) | 2013-11-26 |
KR20110098817A (ko) | 2011-09-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102301325B (zh) | 具有预加法器级的数字信号处理块 | |
US10101966B1 (en) | Digital signal processing blocks with embedded arithmetic circuits | |
CN106610813B (zh) | 用于在乘法器累加器块中执行乘积级数运算的方法和装置 | |
EP3261001A1 (en) | Methods for specifying processor architectures for programmable integrated circuits | |
US8543635B2 (en) | Digital signal processing block with preadder stage | |
US7142010B2 (en) | Programmable logic device including multipliers and configurations thereof to reduce resource utilization | |
CN102819520B (zh) | 具有嵌入式浮点结构的数字信号处理模块 | |
US8788985B1 (en) | Method and apparatus for implementing a processor interface block with an electronic design automation tool | |
US8499262B1 (en) | Method and apparatus for implementing a parameterizable filter block with an electronic design automation tool | |
US9026967B1 (en) | Method and apparatus for designing a system on multiple field programmable gate array device types | |
JP5071707B2 (ja) | データ処理装置およびその制御方法 | |
US8793629B1 (en) | Method and apparatus for implementing carry chains on FPGA devices | |
US8543634B1 (en) | Specialized processing block for programmable integrated circuit device | |
US7228531B1 (en) | Methods and apparatus for optimizing a processor core on a programmable chip | |
Irturk et al. | Simulate and eliminate: A top-to-bottom design methodology for automatic generation of application specific architectures | |
US7729898B1 (en) | Methods and apparatus for implementing logic functions on a heterogeneous programmable device | |
US20230239136A1 (en) | Pipelined Galois Counter Mode Hash Circuit | |
Warrier et al. | Reconfigurable DSP block design for dynamically reconfigurable architecture | |
Davis et al. | Finite State Machine With Datapath Design | |
Kamranfar et al. | Configurable systolic matrix multiplication | |
CN113050919A (zh) | 用于乘法器密集映射的高效逻辑块架构 | |
Saranya et al. | FPGA synthesis of area efficient data path for reconfigurable FIR filter | |
Lach et al. | Application-Specific Product Generics | |
JPH0451321A (ja) | 倍数器の部分積加算方法 | |
JP2010086041A (ja) | 乗算方法、処理装置および演算器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |