CN102422259A - 在电路的模块之间具有可选使用、专用连接的模块化数字信号处理电路 - Google Patents

在电路的模块之间具有可选使用、专用连接的模块化数字信号处理电路 Download PDF

Info

Publication number
CN102422259A
CN102422259A CN2010800198224A CN201080019822A CN102422259A CN 102422259 A CN102422259 A CN 102422259A CN 2010800198224 A CN2010800198224 A CN 2010800198224A CN 201080019822 A CN201080019822 A CN 201080019822A CN 102422259 A CN102422259 A CN 102422259A
Authority
CN
China
Prior art keywords
circuit
dsp
multiplier
output
piece
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.)
Granted
Application number
CN2010800198224A
Other languages
English (en)
Other versions
CN102422259B (zh
Inventor
K·施特赖歇尔
M·兰哈默
林以雯
W-B·梁
D·刘易斯
V·莫尔
H·Y·吕
S·S·德米尔索伊
H·尹
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.)
Altera Corp
Original Assignee
Altera Corp
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 Altera Corp filed Critical Altera Corp
Publication of CN102422259A publication Critical patent/CN102422259A/zh
Application granted granted Critical
Publication of CN102422259B publication Critical patent/CN102422259B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K5/00Manipulating of pulses not covered by one of the other main groups of this subclass
    • H03K5/125Discriminating pulses
    • H03K5/1252Suppression or limitation of noise or interference
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
    • H03K19/17724Structural details of logic blocks
    • H03K19/17732Macroblocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/3804Details
    • G06F2207/3808Details concerning the type of numbers or the way they are handled
    • G06F2207/3812Devices capable of handling different types of numbers
    • G06F2207/382Reconfigurable for different fixed word lengths
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/52Multiplying; Dividing
    • G06F7/523Multiplying only
    • G06F7/53Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel
    • G06F7/5324Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel partitioned, i.e. using repetitively a smaller parallel parallel multiplier or using an array of such smaller multipliers

Abstract

本发明提供一种数字信号处理(“DSP”)电路块,这些电路块能够更易于一起工作,从而如果期望的话,执行更大的(例如更复杂和/或算术精度更高的)DSP运算。这些DSP块也可以包括这样的冗余电路,其有助于将多个这种该块结合在一起,尽管不能使用有些块(例如由于电路缺陷)。可以在DSP块中的不同点包括脉动寄存器,从而有助于使用这些块实现脉动形式的、有限冲击响应(“FIR”)数字滤波器。

Description

在电路的模块之间具有可选使用、专用连接的模块化数字信号处理电路
背景技术
本发明涉及数字信号处理(“DSP”)电路,并且更特别涉及这样的DSP电路模块阵列或DSP电路块阵列,其可以可选地一起工作,从而执行更复杂和/或数学或算术精度更高的DSP操作,并且当需要一起工作时,其可以接纳电路缺陷可能使DSP块不可用的可能性。
多种情况可能要求将集成电路制造为具有DSP电路块或模块的多个实例(instances)。这种集成电路的一个例子是可编程逻辑器件(“PLD”)或现场可编程门阵列(“FPGA”)。这种器件可以具有多行多种类型的电路,例如相对通用可编程逻辑电路。其每行还可以包括DSP电路块(即至少某种程度上硬接线从而执行特定DSP功能或一组特定DSP功能的电路)。在该情况下,可以期望设计DSP块的大小,使得它们配合在该行中的其他电路的(行)边界之内。这可能意味着DSP块自身太小,以至于不能执行可能期望集成电路执行的某些DSP功能。在该情况下,将期望以各种方式帮助将多个DSP块可选地“缝合在一起”,使得可以在两个或更多DSP块中有效执行更大的DSP功能。然而,可能面临这样的负面问题,如果与需要被缝合在一起的DSP块关联的电路的任何部分不可用(例如由于集成电路中的制造缺陷),那么这会使将那些DSP块缝合在一起更难或者不可能。这会极大地增加部分有缺陷的集成电路根本不能使用的概率。
发明内容
依照本发明的某些可能方面,提供一种DSP电路块,其更易于一起工作,从而如果期望的话,执行更大(例如更复杂和/或算术精度更高)的DSP运算。例如,这种DSP块可以包括路由电路(routingcircuitry),其用于可选地或选择性地将信号路由至每个块的任一侧上的其他DSP块。
依照本发明的其他可能方面,DSP块间路由电路可以包括冗余能力,其使输出信号(outbound signal)能够去往每个DSP块的侧面上的两个其他DSP块中的任一个,并且使输入信号(inbound signal)能够来自每个DSP块的侧面上的两个DSP块中的任一个。如果一些期望与其他DSP块结合的DSP块不能使用(例如由于电路缺陷),则该冗余能力通过有效地跳过缺陷DSP块而允许DSP块结合在一起。
仍依照本发明的其他可能特征,DSP电路块可以包括两个乘法器电路(“乘法器”)。这些乘法器可以独立工作或以各种方式至少部分互相独立工作。替换地,这些乘法器可以各种方式一起工作。这些乘法器中的一个可以具有一些可选使用的延伸能力,其能够有助于一起使用两个乘法器,从而执行一个明显大于任何一个乘法器可单独执行的基本乘法的乘法。
仍依照本发明的其他可能特征,DSP块可以在电路的不同点包括脉动寄存器(systolic register),从而帮助DSP块执行脉动形式、有限冲击响应(“FIR”)、数字滤波器的功能。
根据附图和以下详细说明,本发明的进一步特征,其性质和各种优点将变得更明显。
附图说明
图1是依照本发明代表性电路的例示性实施例的简化示意方框图。
图2是依照本发明可以在图1所示类型电路中使用的电路的例示性实施例的简化示意方框图。
图3是依照本发明的图1所示类型电路的代表性部分的例示性实施例的更详细但仍经简化的示意方框图。
图4示出图3所示的电路顺时针旋转90°,从而有助于该电路的某些方面的讨论。
图5是图示说明依照本发明的执行特定DSP操作的某些方面的简化图。
图6是示出用于执行依照本发明的图5操作的DSP电路的例示性实施例的简化示意方框图。
图7是图示说明依照本发明的执行另一DSP操作的某些方面的简化图。
图8是示出用于执行依照本发明的图7操作的DSP电路的例示性实施例的简化示意方框图。
图9是图示说明依照本发明的执行又一DSP操作的某些方面的简化图。
图10是示出用于执行依照本发明的图9操作的DSP电路的例示性实施例的简化示意方框图。
图11是示出依照本公开的某些其他可能方面的DSP块电路另一例示性实施例的简化示意方框图。
图12是依照本公开的某些可能方面的类似图11所示的电路的代表性部分的例示性实施例的简化示意方框图。
图13示出依照本公开的某些可能方面的类似图11所示的电路的另一代表性部分的例示性实施例的简化示意方框图。
图14是依照本公开的某些可能方面的类似图11所示的电路的又一部分的例示性实施例的简化示意方框图。
图15是依照本公开的某些可能方面的类似图14所示的电路的例示性实施例的更详细但仍简化的示意方框图。
图16是示出依照本公开的某些可能方面的类似图11所示的电路的又一代表性部分的例示性实施例的简化示意方框图。
图17示出依照本公开的某些可能方面的类似图11所示的电路的其他部分的例示性实施例的简化示意方框图。图17示出执行类似图18所示的DSP操作的电路配置。
图18是图示说明依照本公开的某些可能方面的执行DSP操作的某些方面的简图。
图19示出依照本公开的某些其他可能方面的图17所示电路的各部分的另一例示性配置。图19示出执行类似图20所示的DSP操作的电路配置。
图20是示出依照本公开的某些可能方面的执行另一DSP操作的某些方面的简图。
图21示出依照本公开的某些可能方面的类似图11所示电路的其他部分的例示性实施例的简化示意性方框图。
图22是图示说明依照本公开的某些可能方面的又一DSP操作的某些方面的简图。
图23示出依照本公开某些可能方面的集成电路上类似图11所示的电路的两个实例的例示性实施例的简化方框图。
图24类似于图23,但其为依照本公开的集成电路上图11类型电路的三个实例。
图25示出用于已知类型的数字滤波器功能的已知公式。
图26示出用于实现行图25所示滤波器功能的已知电路。
图27示出用于实现图25所示滤波器功能的替换“脉动(systolic)”电路。
图28基本为重绘图27,从而更好地关联本文的其他图。
图29示出依照本公开的其他可能方面可以实现图28所示的功能的另一方式。
图30示出依照本公开的某些可能方面类似图21所示的电路的两个相邻实例(在集成电路上)。
图31示出依照本公开的某些可能方面的可以在图30所示电路中执行的DSP操作的例子。
图32示出依照本公开的某些可能方面的类似图11所示电路的多个相邻实例(在集成电路上)。
图33示出依照本公开的某些可能方面的例示性电路的代表性部分的简化示意性方框图。
具体实施方式
图1示出依照本发明的集成电路(“IC”或“器件”)10的例示性实施例的代表性部分。图1所示的电路包括电路的若干代表性行R4-R9的代表性部分。这些行中的任一行通常称为行RN。
每一行RN包括数字信号处理或DSP电路块100。每一行RN在该行中DSP块左侧或右侧还包括其他电路20的区域。其他电路20可以包括诸如逻辑电路和互连导体的部件,所述互连导体用于将信号传送至该行DSP块以及从该行DSP块传送信号,并且也用于向该行的逻辑电路和其他电路传送信号、从其传送信号以及在其之间传送信号,并且也在行之间传送信号。某些或所有该电路的各个方面可以是可编程,例如使通用器件10能够用于任何若干不同用途。例如,虽然DSP块100的电路通常在某种程度上硬接线从而执行某些DSP功能,但是该电路也可以在某种程度上可编程,使得器件的不同用户可以改变所执行的DSP操作的某些方面,从而满足每个用户的特定需要和需求。这种编程可以是以下技术的结果,在集成电路上的存储器单元中存储控制数据,熔断集成电路上的熔丝,对集成电路掩模编程,或者任何其他合适的编程技术或方法。
可以构造器件10,使得多个行是冗余的。这意味着,例如每行RN与所有其他行相同或基本相同。另外,可以构造器件10,使得如果任何一行RN有缺陷,与其紧接的上一行或下一行可以有效地代替该缺陷行。另外,在有效代替缺陷行的那行上面或下面的所有其他行都有效地代替其他相邻行。以此方式,许多被无意制造成带有某些缺陷电路的器件10仍然可以使用,这显著增加了制造工艺的良率。图1示出用于在DSP块区域100中实现这种冗余的代表性电路。为每行RN的其他部分提供了附加的冗余电路,但其未在图1中示出,以避免将附图过于复杂化(并且因为各行的其他部分不是本发明的主要焦点)。在随后的若干段中将以通用术语描述DSP块冗余电路。
依照本发明,DSP块100可以通过将某些信号发送至相邻的DSP块或多个DSP块和/或从后者接收某些信号来延伸其功能。这些是相邻DSP块100之间的相对直接连接。这些DSP块间的连接不依赖于器件10的其他(通常是)互连资源,例如形成电路20的一部分的互连资源。相反,这些DSP块间的连接直接从DSP块100到达另一相邻的DSP块100,其仅有这样的可能性,即使用现在将描述的冗余电路来允许这些DSP块间的信号有效地“跳过”由于其中的一个或更多缺陷而已经不能使用的行。
考虑代表性行R7作为示例,(根据本发明)需要从行R7中的DSP块100到达另一DSP块的信号可以源于行R7DSP块中的节点A。该信号被施加到该DSP块中的多路复用器电路(“mux”)110的一个可选择的输入端,并且还施加到行R7之上的行R6中的DSP块100中的类似多路复用器110的一个可选择的输入端。行R7中的多路复用器110的输出信号去往行R6中的DSP块100中的目的地。行R6中的多路复用器110的输出信号去往行R5中的DSP块100中的目的地。如果行R6没有缺陷并且因此处于使用中,则控制行R7中的多路复用器110来选择源自节点A的信号,以便施加至行R6。但是,如果R6有缺陷并且因此从器件10的电路中被有效删除,则控制行R6中的多路复用器110来选择源自节点A的信号,以便施加至行R5。该例子示出如何能够使用冗余多路复用器110来将源自任意一行中的DSP块100的信号施加至紧接上一行中的DSP块100,或者施加至源行之上两行中的DSP块100。
类似地,可以使用冗余多路复用器110将信号从任一DSP块100路由(route)到紧邻其下的DSP块100或其两行之下的DSP块100。例如,源自行R5中DSP块100中的节点B上的信号被施加至行R6和R7每一行中的多路复用器120的一个可选择的输入。如果行R6正在使用,则控制行R6中的多路复用器120来将源自节点B的信号施加至行R6的目的地。另一方面,如果R6不在使用,则控制行R7中的多路复用器120来将源自节点B的信号施加至行R7中的目的地。
图2示出如何控制代表性的冗余多路复用器110或120的例示性实施例。多路复用器110/120可以基于其选择控制输入信号K来选择其主输入H或可选择输入I为其输出信号J。例如,如果K为零,J可以为H;而如果K为1,J可以为I。K可以源自器件10上的熔丝(F)130、器件上的存储器单元(M)130或器件上的任何其他可编程部件130。在已经确定哪一行RN(如果有)有缺陷并且因此为了器件的正常使用而必须从器件10中被有效删除之后,可以针对每个这种元件130将这种熔丝、存储单元等130编程为适当的状态。
关于图1要注意一点,即每一行(相邻行之间)的宽度W对于(1)该行中的DSP块100和(2)该行中的其他电路20大致相同。这有助于在以下情形(像本示例的情形)中有效使用器件10上的区域:其中每一行与其他行基本相同,并且其中任何一行(如果有缺陷)可以彻底停用并且由另一行无缝代替。因而,当一行被停用并且由另一行代替时,原始行的所有功能优选都被自动再分配至代替行。器件的用户不需要关心或者甚至不知道哪些行在使用以及哪些行不在使用。
使每个DSP块100的高度与行中的其他电路20的高度相同的可能结果在于,趋于强制使每个DSP块的大小或功能能力与包括该DSP块的行中的相邻其他电路20的大小和能力相称。例如,DSP块100只能从包括该DSP块的行中的相邻电路20获得某一数目的输入信号。这会限制该DSP块可以执行的DSP运算(例如乘法)的数目和/或大小。然而,器件10的有些用户可能希望执行比一个该限制DSP块可以执行的更大的乘法。因此,本发明通过以下方法提供了扩展一个DSP块100的乘法和其他能力,例如通过允许大乘法和/或其他DSP运算的有些部分或方面在另一相邻的DSP块100中执行。依照本发明,这通过在相邻的DSP块之间经图1中大致以110和120示出的冗余电路基本直接发送信号完成。以该方式使用基本直接DSP块间连接,从而避免延迟和可能的其他资源耗尽,所述资源耗尽可能来源于替代尝试使用其他电路20的更多通用互连资源。在这些DSP块间连接中使用例如110和120的冗余,使得如果一行必须停止使用,需要从一个DSP块100到达另一DSP块的信号可以绕开已停止使用的行中的不工作的DSP块100。
图3示出依照本发明的DSP块100的例示性实施例。DSP块100的各种元件将首先在下文中确定。随后将提供关于如何使用这些元件的更多细节。图3以与图1所示相同朝向示出代表性DSP块100。然而,因为当开始解释DSP块的各种部件执行的算术运算时,该朝向难以谈论,所以图3的实质内容以不同的朝向在图4中精确再现。特别地,图4相对于图3顺时针转动90°。因此,图4中的“左”等与图3中的“底部”、“向下”、“下面”等相同;图4中的“右”等与图3中的“顶部”、“向上”、“上面”等相同,以此类推。图1和图3清楚地示出了上述相邻DSP块100之间的基本直接连接在器件10中从行至行。虽然类似图4的附图描述了转动90°的代表性DSP块100,但是以下类似图4的附图将仍然引用这种从一“行”到另一“行”的DSP块间信号,即使该类型的附图会使其看起来为,向左或右传播的信号正在进入电路的另一列而非电路的另一行。
现在参考图3或图4所示的代表性DSP块100的基本结构,块100包括两个18乘以18(“18×18”)的乘法器电路200a和200b。每个乘法器200可以将两个18位数据字相乘(通过来自包括所考虑中的DSP块100的行中的其他电路20的电数据信号表示),并且以冗余格式(例如一个36位和向量和一个36位进位向量(因为乘法器不包括用于产生标准最终积值的最终进位传递加法器(“CPA”)))产生两个积向量(再次以电信号表示)。可控移位器电路202可以控制来将乘法器200a输出的和信号向量以及进位信号向量(1)向左移位18个比特位置(增加的数值或算术意义),或者(2)不移位(即不向左移位,并且因此在数值或算术意义上无变化)。元件202的另一可能输出情况可以是输出全零的数据信号。如图2所示的情况,可以对类似130的一个或更多熔丝或存储单元编程,从而控制元件202是否将乘法器200a的输出向左移位,如上面所描述的(或者,作为第三种可能性,输出0数据,如上面提到的)。作为另一可能替换,可以对元件202关于其执行的功能进行掩模编程。在本说明书中的所有例子下,“移位”通常意味着将信号路由到一组去往下一个下游电路元件的不同的电导线,而不是原先用来将这些信号(如果没有移位)传送至下一个下游电路元件的那组电导线。位信号的“算术意义”、“比特位置”、“阶”等通常为信号处于若干电导线中的哪一个的结果。
代表性DSP块中的下一个元件是四-二(“4-2”)压缩器电路210。压缩器210可以将其从移位器202和乘法器200b中的每一个接收的两个和信号向量以及进位信号向量(即总共四个这种信号向量)组合成两个这种信号向量。因为来自移位器202的向量在数值意义上增加18个比特位置,所以压缩器210的“宽度”需要增加至57位。因此示出的压缩器210具有57个比特位置(即[57:1])。
压缩器电路210输出的和向量以及进位向量(每个向量可能包括多达57位)被施加至多路复用器220a和220b,并且也施加至可控移位器电路230。多路复用器220a可以选择压缩器210输出的57位信号向量中的各种38位子集中的任何一个子集,用于向左施加至相邻DSP块,如图4所示。(在整个讨论中,所有的38位数据值或子集中的比特都具有连续数值意义。例如,它们可以是来自57位源的相对低阶位;或者它们可以是来自该源的相对高阶位。但是在任何一种情况下,它们都具有连续的位意义。选择这种子集通常是以下选择的结果,即若干组电导线中的哪一组被选择为选定子集中的信号的源)。类似地,多路复用器电路220b可以选择压缩器210输出的57位向量的各种38位子集中的任何一个子集,用于向右施加至相邻DSP块,如图4所示。如果期望,多路复用器220a和220b也可以具有输出全为零的数据的能力。这个能力是在整个公开中所示和所述的多路复用器(例如220、232、242、248等)中的任何一个以及可控移位器(例如202、230等)中的任何一个都可以具有的能力。有些多路复用器(例如242、252和262)明确示出具有这个能力(例如这些多路复用器的可选择输入中的一组是到地的连接244)。虽然在描述可能包括这个电路的所有其他元件(例如202、220、230、232、248等)时不重复这个电路(从而避免附图过于复杂),在讨论所有这些其他元件时也不再次明确提及这个能力,但是应理解,所有这些通用类型的元件都可以具有该能力。
可控移位器230可以将施加到其的位向左移18位(因此增加这些位的数值意义),或者向右移18位(因此减小这些位的数值意义)。作为第三种替换,移位器230可以不对施加到其的数据进行移位。所有的元件220和230都可以由图2中类似130的可编程熔丝或存储器电路控制(或可以进行掩模可编程),从而选择执行其各种可能功能中的哪一种功能。
注意,为了离开图3和图4所示的代表性DSP块100,必须由冗余多路复用器110a和110b(其为图1和图2中更通常或一般地示出的冗余多路复用器110的具体实例)选择多路复用器220b的输出。到多路复用器110a和110b的替换输入只在图3中部分以点线示出,而在图4中完全未示出(从而避免使图3和图4过于复杂)。但是从图1明显看出,这些点线输入来自图3的DSP块之下(或图4的DSP块左侧)的DSP块100中的多路复用器220b。
多路复用器232从冗余多路复用器120a和120b接收38位和向量以及进位向量。同样,冗余多路复用器120a和120b为图1中120处更普遍和一般地示出的冗余多路复用器类型的具体实例。到多路复用器120a和120b的实线输入来自紧邻图3DSP块之上(或者紧邻图4DSP块的右侧)的DSP块100中的多路复用器220a。到冗余多路复用器120a和120b的替换点线输入(仅在图3中部分示出,而在图4中完全未示出,从而避免图3和图4过于复杂)来自图3DSP块之上两块(或者图4DSP块右侧两块)的DSP块100中的多路复用器220a。多路复用器232也从如下导线接收38位和向量以及进位向量,该导线来自紧邻图3DSP块之下(或紧邻图4DSP块的左侧)的DSP块100中的冗余多路复用器110a和110b。多路复用器232可以选择来自多路复用器120a和120b的向量或者多路复用器232接收的其他向量。多路复用器232的控制可以类似于其他可变元件如多路复用器220的控制。
图3和图4中示出的代表性DSP块100中的下一个元件为压缩器电路240。虽然大小不同,但是压缩器电路240可以类似于压缩器电路210。换句话说,压缩器电路240可以将其接收的四个38位和信号向量以及进位信号向量组合为两个进一步的38位和信号向量以及进位信号向量。在执行更大的乘法的情况下,压缩器240可能需要链式结合另一相邻DSP块100中的类似压缩器240而工作。相应地,压缩器240可以另外从多路复用器242接收低阶(即较低数值意义)信号位。在没有来自实低阶源的链输入的情况下,多路复用器242可以从地电位244源选择这些低阶位。替换地,如果存在该链输入,则多路复用器242就从冗余多路复用器120c获得其输出。多路复用器120c是多路复用器如120a和120b的另一实例。到多路复用器120c的实线输入为来自紧接图3块之上(或者紧接图4块的右侧)的DSP块100中的压缩器240的两个输出。到多路复用器120c的点线输入(仅在图3中部分示出,而在图4中完全省略,从而避免描述过于复杂)为来自紧接图3块之上两块(或者紧接图4块的右侧两块)的DSP块100中的压缩器240的两个输出。离开压缩器240的底部(图3)或左侧(图4)的两个输出为压缩器240执行的运算引起的最高有效、最高阶或溢出输出信号位。同样,如果正在执行较大的乘法,这些溢出位可以经由相邻块中的多路复用器120c和242链接到相邻DSP块的压缩器240的最低阶输入。在无DSP块链接的情况下,控制多路复用器232输出0数据信号。
将压缩器240输出的38位和向量以及进位向量施加到三-二(“3-2”)压缩器电路250。由相邻DSP块100输出的最终积也可以经由冗余多路复用器120d和120e以及多路复用器248施加到3-2压缩器250。同样,当要执行某些更复杂的DSP运算时,可以使用这个DSP块间路由特征。多路复用器120d和120e的布置和使用类似于其他多路复用器如120a和120b的布置和使用。因此,到多路复用器120d和120e的实线输入来自图3和图4所示块之上(图3)或右侧(图4)的DSP块100中的进位传递加法器(CPA)的主输出。到冗余多路复用器120d和120e的替换点线输入(同样只在图3中部分示出)来自图3和图4所示块之上两块(图3)或右侧两块(图4)的DSP块100中的CPA 260的主输出。(在无DSP块链接的情况下,控制多路复用器248输出0数据信号)。3-2压缩器250可以将来自压缩器240的和信号向量以及进位信号向量与多路复用器248输出的数据进行组合,从而产生进一步的和信号向量以及进位信号向量,其被施加至最终进位传递加法器(“CPA”)260。在代表性DSP块100涉及长于38位算术运算的情况下,更低阶信号位可以从相邻DSP块100经由多路复用器120f和252(对于压缩器250)和多路复用器120g和262(对于CPA 260)施加至压缩器250和CPA 260。类似地,如果为了更长的算术运算而需要链接多个元件250和多个元件260,则可以将更高阶信号位从元件250和260输出到相邻DSP块100中的元件120f/252/250和120g/262/260。元件120f、252和244的布置和使用可以类似于元件120c、242和244的上述布置和使用。对于元件120g、262和244同样如此。因此,不需要对元件120f/252/244和120g/262/244进行进一步解释。
除了可基本直接路由回到另一相邻DSP块100中的多路复用器248,CPA 260输出的最终高达38位信号积通常施加至包括如图1所示的代表性DSP块100的行RN中的其他电路20。
我们现在考虑一个或更多DSP块100可以支持的各种运算模式的例子。
A.18×18和18×18复数
可以在一个DSP块100内完成相对简单模式,例如18×18乘法和18×18复数乘法(例如(a+bi)×(c+di))。例如,可以使用任一乘法器200来形成来自18×18乘法的和信号向量以及进位信号向量,并且这些向量可以通过随后的部件向下传递至CPA 260,后者形成乘法的最终积。
B.四个18×18的和
可以使用两个相邻DSP块形成四个18×18乘法的积的和。(如果不存在通过冗余电路运算而已停用的插入行,则“相邻”意思是直接相邻;或者,替换地,如果没有这种停用的插入行,则为相邻。)在以下的讨论中,每个字母例如A、B、C等表示或代表18位输入,并且每个字母对例如AB、CD等为该对中的字母所标识的两个18位输入相乘的乘法结果。该字母对可以代表该乘法结果的任一中间和向量以及进位向量,或者最终积。因此,AB+CD+EF+GH是八个成对18位输入的四个积的和。
可以使用第一DSP块100中的乘法器200a来形成AB。可以使用该DSP块中的乘法器200b来形成CD。第一DSP块中的压缩器210形成AB+CD。可以使用多路复用器200b来将AB+CD路由至相邻DSP块100中的多路复用器232和压缩器240。可以使用相邻DSP块中的乘法器200a来形成EF。可以使用该相邻DSP块中的乘法器200b来形成GH。该相邻块中的压缩器210形成EF+GH。该相邻块中的压缩器240形成AB+CD+EF+GH,同一块中的CPA 260以最终积的形式输出它。注意,形成AB+CD的块可以是形成EF+GH和AB+CD+EF+GH的块的任一侧的块。
C.两个36×18的和
在以下讨论中,字母如A、B、C等具有与上文相同的意义;字母对如AC、BC等具有与上文相同的意义;字母对(A,B)表示这样的36位数据字,其中左侧字母指代18个高有效位,而右侧的字母指代18个低有效位;而字母组合例如(A,B)×C表示36位数据字(例如(A,B))与18位数据字(例如C)相乘的乘法结果。因此,在此讨论的模式的目标是产生(A,B)×C+(D,E)×F。
图5示出(算术上)如何产生上述结果。图5的部分1示出将被执行的36×18乘法中的一个(即(A,B)×C)。部分2示出将被执行的36×18乘法中的另一个(即(D,E)×F)。部分3示出如何产生各个部分积,并且接着垂直对齐,以便相加产生(A,B)×C+(D,E)×F。特别地,(A,B)×C的两个部分积产生为AC和BC,其中AC相对于BC被向左移位18个比特位置。类似地,(D,E)×F的两个部分积产生为DF和EF,其中DF相对于EF被向左移位18个比特位置。接着,如图5中的部分3所示,将所有的BC、AC、EF和DF相加。
图6示出如何配置两个相邻DSP块100来执行上述运算。图6通过以下方式简化,即省略冗余电路的描述并且假定使用两个直接相邻的DSP块100a和100b。(应理解,实际上图6的电路中存在所有以上描写和描述的冗余电路,并且可以使用该冗余电路来将被不能使用的插入DSP块互相分离的两个DSP块有效地整合)。如图6所示,DSP块100a中的乘法器200a形成AC,DSP块100a中的乘法器200b形成DF,DSP块200a中的乘法器100b形成BC,DSP块100b中的乘法器200b形成EF。块100a中的压缩器210压缩(相加)AC和DF。块100b中的压缩器210压缩(相加)BC和EF。块100a中的压缩器210的输出的18个低有效位经由元件220b(块100a)和232(块100b)路由至块100b中的压缩器240。(图6中该路由路径通过点线211突出)。这使块100b能够形成图5的部分3中的点线右侧的那部分最终和。图5的部分3中的点线左侧的数据保持在块100a中,并且由该块作为最终和的该部分输出。
更特别地,在块100a中,使用移位器230来将压缩器210的输出向右移位18个比特位置,使得压缩器210的未传递至块100b的高有效位输出被移位至块100a中的压缩器240的低有效位部分。在块100b中,移位器230将来自压缩器210的数据向左移位18个比特位置,并且将经过块100b中的多路复用器电路232的数据施加至与该多路复用器电路232关联的压缩器210的高有效位输入。因此,块100b中的压缩器240能够开始完成图5的部分3中点线右侧所示的加法。来自块100b中的压缩器240的最高有效端的任何进位输出或溢出通过块100a中的多路复用器242施加至块100a中的压缩器240的最低有效端。这使两个压缩器240能够有效地作为一个更长的压缩器一起工作。每个压缩器240输出的数据流通过各自关联的压缩器250流至各自关联的进位传递加法器(“CPA”)260,在这里产生(A,B)×C+(D,E)×F的最终和数据。同样,来自块100b中的CPA 260的最高有效端的任何进位溢出经由块100a中的多路复用器262施加(作为进位)至块100a中的CPA 260的最低有效端。这再次使两个CPA 260能够有效地作为一个更长的CPA 260一起工作。因此,块100a输出最终积(A,B)×C+(D,E)×F的18个高有效位,而块100b输出该最终积的36个低有效位。
D.使用两个DSP块的36×36模式
在以下讨论中,字母对如(A,B)再次表示这样的36位数据字,其中左侧字母指代18个高有效位,而右侧的字母指代18个低有效位。字母对如BD也具有基本如上文相同的意义(虽然现在这种字母对通常指代两个不同的36位数据字的两个18位部分的积)。因此,本部分中的讨论工作的目标是产生(A,B)和(C,D)的乘积,或(A,B)×(C,D)。
图7示出在算术上如何产生上述结果。图7的部分1表示将执行的乘法。部分2示出形成的四个部分积,以及这四个部分积从左到右相对于彼此如何定位以调整其相对算术有效性,使得可以将其垂直相加。特别地,最顶端部分积BD是被乘数(A,B)和乘数(C,D)中的每一个的18个低有效位的积。下一个部分积AD是被乘数(A,B)中的18个高有效位和乘数(C,D)中的18个低有效位的积。部分积CB是被乘数(A,B)中的18个低有效位和乘数(C,D)中的18个高有效位的积。部分积AC是被乘数和乘数中的每一个的18个高有效位的积。如上所述,图7的部分2还示出了部分积AD和CB如何相对于部分积BD向左移位18个比特位置,以及部分积AC如何相对于部分积AD和CB向左再移位18个比特位置。在这种移位之后,图7的部分2中示出的四个部分积可以垂直相加,从而产生(A,B)和(C,D)的期望最终积,即(A,B)×(C,D)。
可以使用两个相邻的DSP块100来执行图7示出的算术功能。(同样,如果不存在已经停用的插入行,“相邻”意思是直接相邻,或者是在已经停用的插入行的相对侧上相邻)。图8示出如何使用两个相邻的DSP块100a和100b完成该运算(并且再次省略冗余多路复用器和其他冗余连接的描绘,从而避免使附图过于复杂)。
如图8所示,DSP块100a中的乘法器200a形成部分积AC。DSP块100a中的乘法器200b形成部分积CB。DSP块100b中的乘法器200a和200b分别形成部分积AD和BD。DSP块100a中的移位器202将部分积AC相对于部分积CB向左移位18个比特位置,并且该DSP块中的压缩器210将相对于彼此如此移位的两个部分积相加。DSP块100b中的移位202将部分积AD相对于部分积BD向左移位18个比特位置,并且该DSP块中的压缩器210将相对于彼此如此移位的两个部分积相加。
DSP块100a中的压缩器210输出的18个最低有效位由经块100a中的元件220b和块100b中的元件232路由至块100b中压缩器240,其中这些位被路由至关联的压缩器240输入的高有效端。(点线213突出该路由)。DSP块100b中的压缩器210输出的18个最高有效位经由块100b中的元件220a和块100a中的元件232路由至块100a中的压缩器240,其中这些位被路由至关联的压缩器输入的低有效端。(点线215突出该路由)。DSP块100a中的移位器230将该块中的压缩器210输出的数据向右移位18个比特,从而防止已从块100a转移至块100b的低有效位也被施加至块100a中的压缩器240。DSP块100b中的移位器230将该块中的压缩器210输出的数据向左移位18个比特,从而防止已从块100b转移至块100a的高有效位也被施加至块100b中的压缩器240。
DSP块100a和100b中的压缩器240一起工作,从而将施加至它们的部分积信息相加(其中块100a中的元件242将来自块100b中的压缩器240中的最高阶(最高有效)比特位置的任何溢出施加至块100a中的压缩器240中的最低阶(最低有效)比特位置)。因此,块100a中的压缩器240开始形成图7的部分2中垂直点线左侧的数据相加的结果,而块100b中的压缩器240对该点线右侧的数据执行类似计算。
每个压缩器240输出的数据通过各自的压缩器250流至各自的进位传递加法器(“CPA”)260。同样,块100a中的元件262将来自块100b中的CPA 260的最高有效端的任何进位施加至块100a中的CPA260的最低有效端。这两个CPA 260的最终输出共同包含最终积(A,B)×(C,D),其中块100a中的CPA 260的输出构成该最终积的高有效位,并且块100b中的CPA 260的输出构成该最终积的低有效位。
E.使用四个DSP块的54×54模式
图9和图10示出了可以如何使用依照本发明的DSP块100的另一个例子。在本讨论中,三元字母如(A,B,C)指代54位数据字,其中字母A表示18个最高有效位,字母B表示18个中间算术有效位,而字母C表示18个最低有效位。字母对例如AF指代来自一个54位数据字的18位A乘以来自另一54位数据字的18位F的部分积。在本部分中讨论的模式的目标是产生两个54位数据字的积,即(A,B,C)乘以(E,F,G),或者(A,B,C)×(D,E,F)。然而,假定该乘积不需要108位的严格精确度。因此,没有计算或使用最低有效部分积CF来产生最终(近似)积。
图9示出在算术上如何由多个部分积产生上述积。图10示出四个DSP块100a-100d,可以使用这些DSP块来产生积,如图9所示。(同样,为了简化,图10假定可以使用四个直接相邻的DSP块100,因为在该范围内没有不能使用的DSP块。因此,图10省略了在本说明书中其他地方示出和描述的冗余电路的描绘。但是优选地存在那个冗余电路,并且如果块100a-100d之中的一个必须停用时,可以使用它来使另一相邻DSP块100能够用于帮助执行结合图10描述的功能)。图9的部分1示出将执行的乘法。图9的部分2示出在两个左侧DSP块100a和100b中形成并适当组合的部分积。图9的部分3示出在两个右侧DSP块100c和100d中形成并适当组合的部分积。来自图9的部分3的36个高有效位(即部分3的点线左边的位)被加至来自图9的部分2的36个低有效位(即部分2的点线右边的位),其主要在DSP块100b的末级进行。因此,由DSP块100a和100b输出积的72个高有效位。可以从DSP块100d获得积的另外18个低有效位。如上所述,积的低有效位仍然不计算并且不可用。因此,该情况下的“积”仅为近似值,但是其接近非常高的精确度。特别地,这是由于在图9和图10的任何地方都不计算或使用最低有效部分积CF。
现在更详细考虑图9和图10,应注意,DSP 100a和100b中完成的工作(如图9的部分2所示)最初与图7和图8所示以及结合这些附图描述的相同。特别地,该工作使用两个DSP块100a和100b来形成两个36位数据字的积(在该情况下为乘积(A,B)×(D,E))。因为已经结合图7和图8充分描述了两个DSP块的该方面功能性,所以不需要结合图9的部分2或图10中的DSP块100a和100b再次详细描述它。
现在参考图9的部分3和图10中的DSP块100c和100d,应注意,在这两个DSP块中完成的工作最初与图5和图6所示以及结合这些附图描述的有些类似。然而,图9的部分3中的点线与图5的部分3中的点线位置不同,所以图10中的DSP块100c和100d完成该工作的方式稍微与上述图6所描述的流程不同。将在下一段中描述图10中使用的该稍微不同的流程。
DSP块100c中的乘法器200a和200b分别形成部分积AF和DC。块100c中的压缩器210将这两个部分积相加在一起。DSP块100d中的乘法器200a和200b形成部分积BF和EC,并且该块中的压缩器210将这两个部分积相加在一起。块100d中的多路复用器220a和块100c中的多路复用器232将块100d中的压缩器210输出的18个高有效位施加至块100c中的压缩器240的低有效端。块100d中的转移位器230将该块中压缩器210的输出向左移位18个比特位置。块100c中的压缩器240将施加到其的四个向量压缩至两个向量,所述两个向量通过该块中的压缩器250向下流至该块中的CPA 260。(这基本上是图9的部分3中点线左侧需要的最终加法工作)。类似地,块100d中的压缩器240的输出通过该块中的压缩器250向下流至该块中的CPA 260。(这相应于图9的部分3的点线右侧部分)。块100c和100d中的CPA260一起工作,从而产生图9的部分3中所示的工作的最终和。使用块100d中的元件248来将该结果(由块100c中的CPA 260输出)的38个高有效位路由至块100b中,用于加到块100a和100b完成的工作(如图9的部分2所示)。因此,最终结果为(1)由块100a和100b中的CPA 260输出的(A,B,C)×(D,E,F)的72个高有效位,以及(2)由块100d中的CPA 260输出的该(近似)积的再18个(低有效)位。
概况上文的一些方面,并且也在一些方面延伸已经说过的,数字信号处理(“DSP”)块(例如100)可以包括第一和第二N位(例如18位)乘法器电路(例如200a和200b)。DSP块可以进一步包括第一移位器电路(例如202),用于将第一乘法器电路的输出移位以下可选之一:(1)移位零比特位置和(2)朝着更高算术有效性移位N比特位置。DSP块可以仍进一步包括第一压缩器电路(例如210),用于将第一移位器电路和第二乘法器电路的输出以加法方式组合。DSP块可以又进一步包括这样的电路(例如220a和220b),其用于选择性地将第一压缩器电路的输出路由至在该DSP电路块的各相对侧上的第一和第二其他DSP电路块。DSP块可以进一步包括第二移位器电路(例如230),用于将第一压缩器电路的输出移位以下可选之一:(1)移位零比特位置,(2)朝着更高算术有效性移位N个比特位置,以及(3)朝着较低算术有效性移位N个比特位置。DSP块可以又进一步包括第二压缩器电路(例如240),用于将从第一和第二其他DSP电路块中任一块中的第一压缩器电路接收的任何输出以加法方式组合。
在上述DSP电路块中,可以控制路由电路(例如220a和/或220b)来选择路由第一压缩器电路(例如210)的输出的多个子集中的任何一个子集。这些可选子集可以包括(1)包括第一压缩器电路的最高有效输出比特位置的子集,以及(2)包括第一压缩器电路的最低有效输出比特位置的子集。
在如上所述的DSP电路块中,第二压缩器电路(例如240)可以包括溢出输出电路(例如从压缩器240的最高有效端至相邻的DSP块的输出导线)和溢出输入电路(例如242),溢出输出电路用于将第二压缩器电路的溢出输出信号施加至第一其他DSP电路块,溢出输入电路用于选择性地接收第二其他DSP电路块中的第二压缩器电路的溢出输出信号。
如上所述的DSP电路块可以进一步包括第三压缩器电路(例如250)和进一步路由电路(例如248),第三压缩器电路用于将第二压缩器电路的输出和从第二其他DSP电路块接收的任何进一步输出以加法方式组合,进一步路由电路用于选择性地将第三压缩器电路的输出作为进一步输出路由至第一其他DSP电路块。在该DSP电路块中,第三压缩器电路(例如250)可以包含溢出输出电路(例如从压缩器250的最高有效端至相邻的DSP块的输出导线)和(例如252),溢出输出电路用于将第三压缩器电路的溢出输出信号施加至第一其他DSP电路块,溢出输入电路用于选择性地接收第二其他DSP电路块中的第三压缩器电路的溢出输出信号。
在包括上述进一步路由电路(例如248)的DSP电路中,进一步路由电路可以包括进位传递加法器(“CPA”)电路(例如260),用于对第三压缩器电路(例如250)的输出进行操作,从而产生进一步输出。CPA电路可以包括(例如从CPA 260的最高有效端至相邻DSP块的输出导线)和进位输入电路(例如262),进位输出电路用于将CPA电路的进位输出信号施加至第一其他DSP电路块,进位输入电路用于选择性地接收第二其他DSP电路块中的CPA电路的进位输出信号。
如上所述的DSP电路块可以进一步包括冗余电路(例如110和/或120),用于允许第一其他DSP电路块为以下可选之一:(1)与该DSP电路块直接相邻的另一DSP电路块,以及(2)与该DSP电路块不直接相邻的又一DSP电路块。例如,如果DSP电路块在图1中的行R7,则第一其他DSP块可以在(1)行R8中或(2)行R9中。在该布置中,又一DSP电路块(例如行R9中的一个)紧邻另一DSP电路块(例如行R8中的一个)。
如上所述的DSP电路块也可以包括进一步冗余电路(例如110和/或120),用于允许第二其他DSP电路块为以下可选之一:(1)与DSP电路块直接相邻的再一DSP电路块,以及(2)与DSP电路块不直接相邻的再一其他DSP电路块。例如,如果DSP电路块在图1中的行R7中,则第二其他DSP块可以在(1)行R6中或(2)行R5中。在该布置中,再一其他DSP电路块(例如行R5中的一个)直接相邻再一DSP电路块(例如行R6中的一个)。
依照本发明的其他可能方面,DSP电路(例如10)可以包含多个DSP电路块(例如100),其每个都能够对施加至该电路块的信号(例如A、B、C等)执行DSP运算(例如200、202、210、230、240等),每个DSP电路块可以包括这样的电路(例如220、232、242等),其用于选择性地将至少一些DSP运算的输出路由至在该DSP电路块的各相对侧上的第一和第二其他DSP电路块。在该情况下,用于选择性路由的电路可以包括冗余电路(例如110和/或120),其用于允许对于DSP电路块的第一其他DSP电路块为以下所选之一:(1)与该DSP电路块直接相邻的另一DSP电路块,以及(2)与该DSP电路块不直接相邻的又一DSP电路块。例如,如果DSP电路块在图1中的行R7中,则第一其他DSP块可以在(1)行R8中或(2)行R9中。在该布置中,又一DSP电路块(例如行R9中的一个)直接相邻另一DSP电路块(例如行R8中的一个)。
如上所述用于DSP电路中选择性路由的电路可以进一步包括进一步冗余电路(例如110和/或120),其用于允许对于DSP电路块的第二其他DSP电路块为以下可选之一:(1)与该DSP电路块直接相邻的再一DSP电路块,以及(2)与该DSP电路块不直接相邻的再一其他DSP电路块。例如,如果DSP电路块在图1中的行R7中,则第二其他DSP块可以在(1)行R6中或(2)行R5中。在该布置中,再一其他DSP电路块(例如行R5中的一个)直接相邻再一DSP电路块(例如行R6中的一个)。
在如上所述的DSP电路中,用于选择性地路由每个DSP电路块的电路可以选择性地将输出路由至第一和第二其他DSP电路块的输入,所述输入在第一和第二其他DSP电路块块能够执行的有些但非全部DSP运算的下游。例如,选择性路由电路220可以将一个DSP块中的压缩器210的输出路由至另一DSP块中的压缩器240的输入端,并且压缩器处于另一DSP块中一些(非全部)其他DSP运算的下游(例如,其在运算200、202、210和230的下游,但是在运算250和260的上游)。
依照本发明的又其他可能方面,DSP电路(例如10)可以包括多个DSP电路块(例如100),其每个能够顺序地执行多个DSP运算(例如200、202、210、230、240等)。每个DSP电路块可以进一步包括这样的电路(例如220),其用于选择性地将该DSP电路块的至少一个DSP运算(例如210)的输出路由至在该DSP电路块的各相对侧上的第一和第二其他DSP电路块。用于在每个DSP电路块中选择性路由的电路可以选择性地将至少一些输出路由至第一和第二其他DSP电路块中的DSP运算的输入,所述DSP运算处于这些其他DSP电路块中DSP运算顺序的中间。例如,路由电路220可以将DSP块的输出路由至另一DSP块中的压缩器240的输入,并且压缩器240处于DSP运算顺序的中间(即其之前为DSP运算例如200和202,并且其后为DSP运算例如250和260)。
如上所述的DSP电路中,用于选择性路由的电路从一点接收输出,该输出选择性地路由至至少一些输入,与DSP电路块中的顺序中的该点相比,至少一些输入可以为DSP块中的顺序中的不同点上的DSP运算的输入。例如,路由元件220从压缩器210获得输出从而施加至另一DSP块中的压缩器240,与压缩器240在提到的第二个DSP块中的DSP运算顺序中所处的点相比,压缩器210处于提到的第一个DSP块中的DSP运算顺序中的不同点。
在如上所述的DSP电路中,每个DSP电路块可以进一步包括第二电路(例如从压缩器240的最高有效端到相邻DSP块的导线),其用于将该DSP电路块中的DSP运算的第二输出选择性地路由至第一其他DSP电路块中的相同DSP运算的输入。例如,刚刚提及的导线和元件242允许溢出信号从一个DSP块中的压缩器210去到另一DSP块中的压缩器240。
在上述DSP电路中,每个DSP电路块可以进一步包括第三电路(例如248),其用于选择性地将该DSP电路块中的最终DSP运算(例如260)的输出路由至第一其他DSP电路中的DSP运算(例如250)的输入,该DSP运算处于该其他DSP电路块中的顺序中的中间点。
如上所述的DSP电路可以进一步包括冗余电路(例如110和/或120),其允许每个DSP电路块中的第一其他DSP电路块为以下可选之一:(1)与该DSP电路块直接相邻的另一DSP电路块,以及(2)与该DSP电路块不直接相邻的又一DSP电路块。例如,如果DSP块100处于图1中的行R7中,另一DSP块可以在行R8中,而又一DSP块可以在行R9中。另外,又一DSP块(例如行R9中的一个)可以与另一DSP块(例如行R8中的一个)直接相邻。
如上所述的DSP电路也可以包括进一步冗余电路(例如110和/或120),其用于允许每个DSP电路块中的第二其他DSP电路块为从以下可选之一:(1)与该DSP电路块直接相邻的再一DSP电路块,以及(2)与该DSP电路块不直接相邻的其他再一DSP电路块。例如,如果该DSP电路块处于图1中的行R7中,则再一DSP块可以在行R6中,其他再一DSP块可以在行R5中。其他再一DSP电路块(例如行R5中的一个)可以与再一DSP电路块(例如行R6中的一个)直接相邻。
本发明的电路允许通过DSP电路块之间的双向移位执行求和运算。例如,可以将某一值从第一DSP块移位至第一块的右侧的第二DSP块,并且与第二块中的另一信号组合(例如压缩)。然后,可以将该组合的结果向左移回(例如至第一块),并且与第一块中的其他信号组合。该移回可以通过(例如)以下发生,(1)从压缩器到压缩器(压缩器240或压缩器250)的进位向量,(2)CPA 260的进位比特,或者(3)CPA 260向3-2压缩器250的输出。
本发明的DSP电路中使用的任何乘法器可以为这样的类型,其可以选择性地(即可控地)输出零(0)数据。这也包括在此使用的任何可控移位器。
图11示出依照本公开的某些可能方面的DSP电路块500的另一例示性实施例。到DSP块500的输入可以为动态的(例如代表数字(二进制)数值的电信号,这些数值在包括该DSP块的集成电路(例如10)的普通(用户模式)运算期间是时变)。替换地,到DSP块500的某些输入可以为静态的(例如代表数字(二进制)数值的电信号,这些数值在集成电路的普通运算期间随时间为恒定的或为相对恒定的)。例如,输入ax、ay、bx和by可以为动态输入;输入c和d可以为静态输入。静态输入可以来自IC上的存储器(例如,所谓的配置随机存取存储器或CRAM),所述CRAM在IC操作的最初设置(配置或初始化)阶段(在IC随后的普通或用户模式操作之前)被编程。(静态信号源的例证为图2中的元件130。该源的另一例证为图12中的元件602)。
在图11所示的例示性实施例中,输入ax、ay、bx、by、c和d中的每一个包含一组(多个)平行提供(施加的)18位信号。虽然18当前被认为是高度期望的数字,但是应理解,如果期望的话,该数字可以更大或更小。在随后的本讨论中,该基本输入总线宽度有时称为N。因此,在图11所示的实施例和类似大小的实施例中,N为18。但是应理解,依照本公开,在其他实施例中,N可以大于或小于18。
在图11所示的例示性实施例中,动态输入具有由输入寄存器501(例如通过时钟信号计时的触发器电路)寄存的选择。也可以参考图12,其示出如何可以将典型的输入ay施加至典型的寄存器501ay,并且还施加至多路复用器(“mux”)电路601的一组可选输入。寄存器501ay响应于施加的时钟信号并与其同步地寄存施加至它的ay信号。在如此寄存后,寄存的ay信号被施加至多路复用器601的第二组可选输入。多路复用器601可以根据从电路元件602对其施加的选择控制输入信号的逻辑状态(例如二进制的1或二进制的0),选择其两组可选择输入中的任一组作为其输出信号。例如,元件602可以为CRAM元件(例如类似于图2中的如元件130的元件)。因此,图12示出多路复用器601的输出如何可以为寄存或未寄存信号ay。图12说明了如何可以通过电路扩充所有的寄存器501,该电路允许使用寄存器或者将其旁路。
如果期望,可以通过输入级联链路由某些输入。例如,可以将一组输入从类似DSP块500级联到所述DSP块的右侧。该级联输入通往多路复用器515bx的一组可选输入(也参考图13)。所述的输入bx被施加至多路复用器515bx的另一组可选输入。多路复用器515bx由选择控制输入信号(例如来自CRAM 610)控制,从而选择其任一可选输入组作为其输出(取决于选择控制输入信号的逻辑状态)。该级联链继续通过(选择性地可旁路)寄存器501bx、多路复用器515ax、(选择性地可旁路)寄存器501ax,到达级联出口导线,后者通往所述DSP块的左侧的下一个相邻DSP块500。所述级联输出导线变为左侧DSP块中的级联输入导线。因此,来自每个模块或块500的所有x输入(例如ax和bx)形成级联链。
一个可以使用以上刚描述的级联链的电路应用的例子是实现有限冲击响应(“FIR”)数字滤波器。随后在本说明中更详细描述该滤波器。然而,此处应充分注意,图26示出该滤波器的一种形式,在其中输入信号的连续采样x[n]在每个连续采样延迟元件820-1、820-2等中被连续延迟一个采样时间周期。在每个采样时间周期内,每个采样或延迟采样在各乘法器810-1、810-2等中被乘以相应的滤波器系数c1、c2等。可以使用以上刚描述的级联链来提供输入采样延迟链,沿图26中的底部线示出的。一个或更多DSP块500中的乘法器505和506可以提供各延迟输入采样的乘法(乘以系数c1、c2等),如图26中间所示的。这些DSP块中的乘法器505和506下游的电路可以提供乘积的一些或所有加法,沿图26中的顶部线所示。同样,随后将在本说明书中找到FIR滤波器的其他讨论。
电路502是预加法器电路。其可以将两个动态输入(例如ax和ay,或bx和by)相加在一起。然后,预加法器的结果去往可路由送电路503,从而变为下游乘法器(随后描述)的几组可能输入中的两组。与将上述加法在DSP块500外部完成相比,预加法器502可以是更有成本效益并且更快的选择。路由电路503的八组可能输入为ax、bx、ay、by、c、d、(ax+ay)和(bx+by)。
(例如通过来自CRAM比特620的信号)路由电路503(也参考图14)可以控制来将信号从其多组输入的任何一组路由至其输出信号组中的各个。特别地,通过施加至电路503的控制信号(例如来自CRAM比特620)的逻辑状态来选择由电路503执行的输入至输出路由。作为该可能信号路由的一个例子,电路503可以将其c输入路由至其最后去往乘法器电路505的输出的各组中的一组,并且将其by输入(其可能已由寄存器501by寄存)路由至其最后去往乘法器电路505的输出的各组中的另一组。在提供以上路由的同时,电路503可以将其d输入路由至其通往乘法器电路506的输出的各组中的一组,而将其ay输入(其可能已由寄存器501ay寄存)路由至其通往乘法器506的输出的各组中的另一组。同样,上文仅为电路503可以提供的许多可能的输入至输出信号路由模式中的一个例子。从描述乘法器505和506在本公开的随后段落中构造和使用的方式来看,其他可能的路由将显而易见。特别地,路由电路503可以将任何输入信号路由至为了完成以下描述的任何乘法功能而需要接收该输入信号的任何乘法器输入。例如,为了使乘法器505能够执行其以下所述的27“x”位乘以27“y”位的27×27乘法的一部分,电路503可以将来自36ax和bx输入的27位以及来自36ay和by的27位路由至乘法器505。同时,为了使乘法器506能够执行其该27×27乘法的一部分,电路503可以将上述27“x”位的18个高有效位以及上述“y”位的18个高有效位路由至乘法器506。
虽然图11中描述的象是单个多路复用器(“mux”),但是电路503实际上可以为若干多路复用器(“muxes”)的阵列或网络。例如,图15示出电路503包括分开的多路复用器630r,630s,630t等,用于期望能够独立选择或至少部分独立选择的每组输出。每个这种多路复用器具有作为其可选输入的所有各种输入信号组(或子组),多路复用器需要从各种输入信号组(或子组)选择要输出的信号。可以控制每个多路复用器630(例如由关联的CRAM比特620的子集(例如控制多路复用630r的子集620r)控制)来选择其期望的输入组作为其输出。如果某些输入组将始终不需要作为来自电路503的特定的输出组,那么就可以从选择并提供该输出组的多路复用器630可用的输入组中将那个输入组省略。类似地,图11所示的有些输出组实际上可以为来自两个输入组(例如,参见上一段刚提到的27位输出组)的信号的合成。通过使用两个多路复用器630最方便提供这种合成输出组(例如,一个多路复用器630提供这种合成输出组的18位部分,并且另一多路复用器630提供这种合成输出组的9位部分)。仅需要处理基本N位组的子集(例如,刚提到的9位组)的多路复用器630具有比N小的输入位和输入位组大小(例如,9位或0.5N位输入和输出组)。此外,每个这些较小的输入位组可以来自较大(N位)输入组的预定部分。例如,这种预定部分可以为18位输入组ay的9个低有效位,或者18位输入组ay的9个高有效位。因此,虽然图15示出代表性多路复用器630r和630s各自接收和输出18位信号组,但是图15也示出代表性多路复用器630t接收和输出较小的9位信号组。
从上文应看出,电路503优选为高度灵活路由电路,其可以将其各个可选输入信号组(或者这种组的子集)中的任一个连接至其各个输出信号组,输出信号组可能需要这些输入支持随后在本公开中描述的任何一个乘法器功能。
回到图11,从电路503去往乘法器电路506的输出信号组被示为直接去往该乘法器。然而,从电路503去往乘法器电路505的输出信号组被示为可选地经过脉动延迟寄存器504。如图16中更详细示出,代表性脉动延迟寄存器504p的输入也被施加至多路复用器(“mux”)电路640p的一组可选输入。脉动寄存器504p的输出被施加至多路复用器640p的另一组可选输入。选择控制输入信号(例如来自CRAM642p)控制多路复用器640p输出其哪一组可选输入。由施加的时钟信号对脉动寄存器504p提供时钟,使得经过脉动寄存器的任何信号都延迟一个时钟周期。代表性多路复用器640p允许施加至代表性脉动寄存器504p的信号或者经过这些寄存器(因而将这些信号延迟一个时钟周期),或者绕开这些寄存器(因而不延迟这些信号)。将随后在本说明书中描述使用脉动寄存器504的目的。
乘法器505和506的默认条件是作为两个18×18乘法器。通常(即在所有的运算模式下),乘法器505和506中的每一个产生两个冗余形式的积向量(例如较早前针对其他实施例更详细描述的一个和向量和一个进位向量)。因此,在18×18模式中,乘法器505和506中的每一个产生36位和向量和36位进位向量。可以使用在乘法器505和506下游的电路来以各种方式进一步处理(例如以加法方式组合)这些向量,从而产生一个或更多最终积(或者最终积的和),如将随后在说明书中全面描述的。然而,将初步开始于乘法器505的说明。
修改乘法器505(例如与乘法器506相比),使得乘法器505和506可以一起执行27×27乘法。图17和图18示出进行该乘法的例示性实施例。(注意,图17省略了脉动寄存器504,因为当DSP块500执行27×27乘法时,不使用该寄存器(例如其被旁路))。
如图17所示,乘法器505包括9×27乘法器电路部分650a和9×18乘法器电路部分650b。乘法器506具有未修改的18×18构造。假定,期望将27位被乘数(x3、x2、x1)乘以27位乘数(y3、y2、y1)。(也参考图18的开始两行)。这些27位数据字中的每一个(即x3、x2、x1、y3、y2和y1中的每一个)的每一段具有9位。这些字中的每一个中的最高算术有效9位段为x3或y3段。这些字中的每一个中的最低算术有效9位段为x1或y1段。
路由电路503将段x3和x2路由至乘法器506的一轴(例如被乘数轴或输入)。路由电路503将段y3和y2路由至乘法器506的另一轴(例如乘数轴或输入)。路由电路503将段x3、x2和x1路由至乘法器650a的被乘数轴或输入。路由电路503将段y1路由至乘法器650a的乘数轴或输入。路由电路503将段y3和y2路由至乘法器650b的被乘数轴或输入。路由电路503将段x1路由至乘法器650b的乘数轴或输入。每个乘法器电路506、650a和650b将施加至其被乘数轴的数据乘以施加至其乘数轴的数据。(当然,应理解,乘法中的被乘数和乘数是可互换的,所以无所谓哪个数据被提供为或称为被乘数,或者哪个数据被提供为或称为乘数。因此,术语被乘数和乘数在此是任意使用的并可互换。将有些数据称为被乘数或乘数并无意以任何方式进行限制,并且在其他实施例中可以使用相反的术语而不偏离本公开的范围或精神)。每个乘法器506、650a和650b产生冗余形式的和输出向量以及冗余形式的进位输出向量,其共同表示该乘法器形成的乘积。(同样,该冗余形式(即和向量以及进位向量)的乘积形成与本说明书中较早描述的相同。)
在这点上,为了考虑图18而中断图17的讨论可能是有帮助的,图18中示出由图17中的电路执行的27×27乘法。图18的头两行示出将执行的乘法(即行1中的27位被乘数x3、x2、x1,以及行2中的27位乘数y3、y2、y1)。图18中的行3示出由乘法器650a执行的9×27乘法的结果。图18中的行4示出由乘法器650b执行的9×18乘法的结果。注意,650b乘法产生的部分乘积必须向左移9位,以便该部分乘积中的位与乘法器650a部分积中的具有相同算术有效性的位对齐(垂直)。可以通过乘法器650a和650b的输出导线如何相对于彼此进入4:2压缩器652来完成这个移位。4:2压缩器652(其可以类似于本说明书中较早描述的这种压缩器)接收乘法器650a和650b输出的和向量以及进位向量,并且产生进一步冗余形式的和向量以及进位向量,其表示图18中行3和行4的和的进一步部分积。这些进一步和向量以及进位向量为乘法器505的最终输出。
正在考虑的27×27乘法所需的上一个主要部分积是图18的行5中示出的18×18乘法产生的部分积。该部分积由图17中的乘法器506形成。如图18所示,需要将该部分积相对于图18中行3所示的部分积向左移18个比特位置(算术有效性增加)。这个移位由可控移位器电路507s(用于乘法器506输出的冗余形式的和向量)和507c(用于乘法器506输出的冗余形式的进位向量)执行。CRAM比特654控制元件507是否改变经过它们的数据的算术有效性。至于贯穿本公开使用的其他类似电路元件,移位器电路如507s或507c可以通过以下方式对施加至其的数据位的算术有效性进行移位,即与在其上将那个数据位提供至移位器电路的输入导线的算术有效性相比,可控制地将那个数据位路由至具有不同(更大或更小)算术有效性的移位器输出导线(具有若干平行数据导线的总线中的相对位置)。如果不需要改变算术有效性,则控制移位器电路来将输入数据位路由至具有与提供那个数据位的移位器输入导线相同的算术有效性的移位器输出导线。在执行27×27乘法的情况下,控制移位器电路507s和507c来将乘法器506的输出向左移18位(由此,将这些输出中每一位的算术有效性增加18个比特位置)。
乘法器505和506的输出被施加至4:2压缩器电路508。该电路可以再次类似于本说明书中较早描述的其他压缩器电路。因此,电路508将施加到其的两个和向量以及两个进位向量压缩至一个进一步和向量以及一个进一步进位向量。这些进一步向量表示执行的27×27乘法的最终积。特别地,这些进一步向量(由压缩器508输出)表示图18的行6所示的结果。该实际最终结果可以由DSP块的其他元件产生并且从DSP块500输出,该DSP块的其他元件在图11中的压缩器508的下游并且随后在本说明书中进一步描述。这示出一个DSP块500如何可以执行一个完整的27×27乘法。
注意,为了图18所示的运算正确执行“带符号”的操作数(即象x和/或y的值,其可以为正数或负数),可能需要将示出的实际数据(例如行3和行4)“符号扩展”至结果的最高有效位置(例如行6)。这意味着图18中行3和行4中所示的数据左侧包括再18个的全0(例如对于任何正数)或全1(例如对于任何负数)的前导位。作为一般问题,符号扩展是本领域技术人员众所周知的常规技术。因此,在此通常假定存在任何需要的符号扩展,并且不在图18(或者在此任何其他大致类似性质的附图)中实际示出,从而避免对附图不必要的复杂化和/或使本公开不清楚。在此可以使用符号扩展而不实际示出的其他附图的例子是图5、图7、图9、图22和图31。也可以对图20中的某一区域使用符号扩展,但是图20的该方面随后在本说明书中更具体讨论。
为了完整性,图19示出当只需要乘法器505电路执行18×18乘法(例如x2和x1乘以y2和y1)时,可以如何使用图17电路的乘法器505部分。在该情况下,路由电路503中的多路复用器630u选择9位段x2和x1,用于施加至乘法器650b的18位轴。多路复用器630w也选择x2和x1,用于施加至乘法器650a的27位轴的18个低有效位输入。多路复用器630t选择9位段y2,用于施加至乘法器650b的9位轴。多路复用器630x选择段y1,用于施加至乘法器650a的9位轴。空数据施加至乘法器650a的27位轴的9个高有效位输入。(如果相关操作数(例如操作数x)是“无符号”的数,那么上述“空数据”可以全为二进制0。对于“带符号”的操作数,27位输入的9个最高有效位应为来自18个低阶(低有效)位的“符号扩展”。因此,(对于带符号的操作数),上述“空数据”可以全为1(例如对于负操作数)或全为0(例如对于正操作数)。为了此处方便,术语“空”、“空数据”等用于括号中提到的所有各种类型的数据,即或者(a)用于带符号的操作数的“符号扩展”数据,或(b)用于不带符号的操作数的前导0。)
图20示出上一段中描述的数据路由引起的运算。特别地,图20的行3示出的乘法结果由乘法器电路650a产生。(再次注意,图20的行3中的“空”可以指代来自该行中的低阶27位的“符号扩展”数据)。图20的行4示出的乘法结果由乘法器电路650b产生。压缩器652产生图20的行5所示的结果(虽然以冗余方式)。以此方式,乘法器电路505可以执行18×18乘法,而不是执行27×27乘法的一部分。
图21稍微更详细示出图11的下部部分。如已结合图17所述,电路508为4:2压缩器,其(如贯穿本公开的其他类似的4:2压缩器)组合两个施加的冗余形式和向量以及两个施加的冗余形式进位向量,从而产生一个冗余形式输出和向量以及一个冗余形式输出进位向量。如果乘法器505和506所执行的乘法的结果相互独立,则它们可以绕开块508和510。例如,来自乘法器505的向量的27个低有效位可以经由图21所示的AC和AS链接绕开块508和510。(在图21中,上部圆AC连接到下部圆AC;上部圆AS连接到下部圆AS;上部圆BC连接到下部圆BC;上部圆BS连接到下部圆BS。以该方式示出这些连接关系,从而减小附图的拥挤,并且也减小贯穿附图的可能混淆的线的数量)。类似地,来自乘法器506的向量的27个低有效位可以经由图21所示的BC和BS链接绕开块508和510。将AC链接的输出施加至多路复用器电路(“mux”)660c的一个组可选的输入。将块510输出的进位向量的27个低有效位施加至多路复用器660s的另一组可选的输入。将AS链接的输出施加至多路复用器660s的一组可选的输入。将块510输出的和向量的27个低有效位施加至多路复用器660s的另一组可选的输入。将BC链接的输出施加至多路复用器662c的一组可选的输入。将块510输出的进位向量的27个高有效位施加至多路复用器662c的另一组可选的输入。将BS链接的输出施加至多路复用器662s的一组可选的输入。将块510输出的和向量的27个高有效位施加至多路复用器662s的另一组可选的输入。CRAM 664控制多路复用器660和662中的每一个选择哪组可选的输入作为其输出(即多路复用器660和662输出其AC、AS、BC和BS输出,或者其输出其来自块510的输入)。可以控制加法器511工作为两个单独的(名义上的)27位加法器(由图21中所示的点线分隔),或者工作为一个(名义上的)54位加法器(在点线处不分隔)。将加法器511分为两部分仅仅意味着禁用从右至左穿过点线的算术进位。如果不期望该分隔,则启用穿过点线的算术进位。CRAM 666控制是否启用或禁用穿过点线的进位,并且因此控制加法器是工作为一个大加法器,还是工作为两个分开的较小加法器。因此,说明书的本部分描述了如何操作乘法器505和506来产生可以单独输出的两个乘法结果(虽然在本实施例中,每个这些单独的积限于27位)。使用AC、AS、BC和BS链接来在该运算模式中绕开块508和510。
如果不保持独立,而是乘法器505和506执行的乘法的结果需要被加在一起,则在去往更下游的最终加法器级之前,这些结果优选经过压缩器508。乘法器506产生的结果可以(可选地)在进入块508之前经过元件507向左移18个比特位置。该可控可选的左移选项提供不同乘法配置的灵活性。上述27×27乘法是这样一个例子,其中使用压缩器508来将来自乘法器505和506的结果相加在一起,其中来自乘法器506的结果首先由元件507的运算而左移18位。使用压缩器508(以及元件507)的另一个例子是在下一段开头将描述的36×18乘法。
图22的行1和行2示出将执行的36×18乘法。这是两个18位数据字x2和x1乘以18位数据字y1的乘法。x1乘以y1的部分乘法(图22中的行3)通过乘法器505工作在上述18×18乘法模式而执行。x2乘以y1的另一部分乘法(图22中的行4)在包括上述乘法器505的同一DSP块500中的乘法器506中执行。图22的行4中所示的左移18个比特位置通过可控移位元件507对乘法器506的输出进行操作而执行。压缩器508将乘法器505和元件507的输出组合,从而产生代表图22的行5所示的结果的冗余形式的和向量以及进位向量。当然,该结果为x2和x1乘以y1的36×18乘法的54位积。
如果不需要对压缩器508的输出执行进一步操作,则可以绕过/禁用进一步4:2压缩器510,并且只启用最终进位传递加法器(“CPA”)电路511,以便将最终结果发送至输出寄存器电路512。
图11-22设计的优点在于有效地组合多个DSP块或模块500,从而执行更复杂的运算。4:2压缩器510的目的是获得来自压缩器508的两个输出,以及来自另一DSP模块的一个或两个向量,并且将所有这些数据压缩为两个冗余形式的向量,其变为最终CPA 512的输入。现在将描述这样的两种情形,其中可以通过利用模块间连接和输入/和输出(sum_in/sum_out)以及进位输入入/进位输出(car_in/car_out)将DSP模块500组合在一起。
在第一种情形下,多路复用器电路516(由CRAM电路670控制)用于选择通过输出链路径的结果“输出”。(该路径从输出寄存器512延伸,通过多路复用器680(经CRAM 682控制)、多路复用器516以及多路复用器517c(由CRAM 672c控制))。以此方式,两个或更多DSP模块500可以通过这些模块500中的相邻模块之间的car_in/car_out连接而链接在一起。例如,可以使用图23左侧的模块500来将其内部产生的结果与该图右侧的另一相邻模块500产生的结果加在一起。
下文是第二种情形,其涉及在相邻的DSP块500之间使用直接、专用的DSP块间连接,如sum_in/sum_out以及car_in/car_out。在该情形下,通过相邻块500之间的sum_in/sum_out以及car_in/car_out通道连接来自一个DSP块中元件508的和向量以及进位向量(而非来自包括该块中的输出寄存器512的输出链产生的最终结果)。这再次允许DSP块500(例如,图23中的左侧块)将其内部产生的结果与来自另一DSP块(例如,图23中的右侧DSP块)的结果组合(例如加在一起)。然而,该第二种情形可以得到更好的FMAX性能(最大运算速度),因为在与下一个DSP块500(例如,图23中左侧块)的数据组合之前,数据不需要经过一个DSP块500(例如,图23中右侧块)中的块510、511和512的延迟。然而,该类型的连接可以仅限于将相对小数目(例如两个)的DSP块500链接在一起。任何只利用该小数目DSP块500(例如两个这种块)的应用都能够通过该方法实现更好的结果。可控移位元件509s和509c(如贯穿本公开的并且分别由CRAM元件674s和674c控制的其他类似移位元件)提供数据移位能力,所述能力从当前DSP块500(例如,图23中右侧)将正确的数据引导(选择)到下一个DSP块500(例如,图23中左侧)。
同样,应记住,多路复用器517s和517c(分别由CRAM比特672s和672c控制(或者可能由该CRAM比特串联控制))为所谓的冗余多路复用器。仅作为简要的提示,这些多路复用器允许数据从如下模块经由sum_in/sum_out以及car_in/car_out通道流过:(a)与接收DSP块500直接相邻的DSP块500,或(b)与接收DSP块间隔一个块的DSP块500(例如处于这样的情况,即直接相邻的DSP块有缺陷并且因此必须由稍微更远的DSP块功能代替)。在图24所示的代表性构造中,该冗余能力意味着“接收”DSP块500c可以从直接相邻DSP块500b的sum_out以及car_out信号接收其sum_in以及car_in信号,或者从稍微更远的DSP块500c的sum_out以及car_out信号接收其sum_in以及car_in信号。
为了清楚表述什么应该是显而易见的,图23和24(类似图1、6、8、10、30和32)图解这样一点,其中依照本公开的集成电路包括DSP电路块或模块(例如100、500等)的多个实例(即多个相同或基本相同的重复体)。因此,在此使用的术语如“DSP电路块”、“DSP块”、“DSP模块”等指代适合于在集成电路上相同或基本相同的重复的电路元件的集合。在这种DSP电路块中的至少一些电路优选专用(即硬接线或至少部分硬接线)于执行特定的功能,例如乘法、冗余形式的和向量以及进位向量压缩、加法等。这些DSP电路块中的相邻(或至少附近)电路块在它们之间可以具有“专用”连接。这种专用DSP块间连接的例子为相邻块之间的sum_in/sum_out以及car_in/car_out连接。这种专用DSP块间连接优选只可用于在DSP块之间传送信号。
再次回到图11或图24,可以使用多路复用器电路514(由CRAM元件676控制)来选择来自前一运行(时钟)周期的结果,并且将其与当前运行(时钟)周期的结果组合(例如相加)。(每个运行周期通常发生在时钟信号的一个相应周期期间,该时钟信号用来对电路中使用的寄存器提供时钟)。该累加路径在每个DSP模块500中是可选的。
元件504和513是脉动延迟寄存器。例如它们可以用于18位脉动有限冲击响应(“FIR”)数字滤波应用。脉动FIR滤波器的原理在以下几段中描述。
在DSP应用中广泛使用FIR滤波器。FIR滤波器的基本结构是多个平行乘法,并且将得到的积相加。FIR滤波器运算可以由图25中所示的公式表示。在图25中,公式x[n-i-1]表示输入数字数据采样(每个采样是例如并行呈现的18位二进制字)的次序(顺序),c[i]表示滤波器系数(每个系数是例如并行呈现的18位二进制字),而k-1为滤波器具有的抽头(tap)的数目。
在图26中示出用于实现(以所谓的直接形式)图25所示的FIR滤波器公式的电路800。在该图中,元件810为乘法器电路,元件820为延迟电路(每个电路将施加至其的数据采样延迟输入采样流x[n]中的任意一个采样的持续时间),元件830为加法电路。(刚提到的“持续时间”通常也是用来为整个电路使用的寄存器提供时钟的时钟信号的“周期”)。
图26示出直接形式的FIR滤波器800,其包括由链加法器830形成的大加法树。根据抽头的数目(等于乘数数目-1)和输入采样的大小(每个输入采样x[n]中的位数),经过加法器830的延迟会变得相当大。为了克服这个可能的性能问题,可以使用图27所示的滤波器的脉动形式800′。特别地,图27示出每个抽头都放置附加延迟电路元件812和822,从而增加整个电路的性能,虽然以增加时延为代价(即贯穿电路从输入x[n]到输出y[n]的全部延迟)。更特别地,图27示出采样流中每个抽头之间的附加延迟元件822;以及积-相加流中也在每个抽头之间的匹配附加延迟元件812。换句话说,附加延迟元件812-1“匹配”或“对应于”附加延迟元件822-1,附加延迟元件812-2“匹配”或“对应于”附加延迟元件822-2,以此类推。所有的延迟元件812、820和822优选具有相同的延迟(例如,用于为贯穿电路的寄存器提供时钟的时钟信号中的一个循环周期,该“周期”也优选等于输入采样流x[n]中的每个连续采样的持续时间)。
附加延迟元件812和822有时可以称为脉动寄存器。延迟元件812将加法器830的长链中断成单个加法器。因此,每个加法器830跟随有寄存器812,该寄存器将该加法器产生的和在将其传向下一个加法器前进行寄存。这避免了必须以相对慢的速度操作电路,否则数据在电路的一个运行(时钟)周期中自始至终需要以相对慢的速度传播通过的长加法器链。脉动滤波器800′允许使用较快的时钟,因为每个加法器830可以相对快地完成其加法运算,并且下一个加法器不需要或不使用该加法的结果,直到下一个时钟周期。添加延迟元件822,从而保持数据采样通过数据采样路径的传播与积-和通过积-和-累加路径的传播同步。
虽然脉动滤波器800′趋向于比具有相同抽头数目的直接形式滤波器800具有更长的时延(通过滤波器从输入x[n]到对应输出y[n]可用的全部延迟)(由于滤波器800′中的附加延迟812和822),但是其他电路(例如在具有FIR滤波器的集成电路上的其他电路)会极大地受益于(在工作速度方面)具有较快的时钟信号,滤波器800′允许电路具有这种较快的时钟信号。
为了帮助更好地将刚之前对脉动FIR滤波器(如图27中的800′)的讨论与较早对DSP块(如500)的讨论联系起来,在图28中重绘图27(具有一些小变化)。图28和图27之间仅有的不同在于:(1)图28被重取向以更好地关联其他附图,如图11;(2)通过以下方法使图28更突出要点,即省略描绘图27中乘法器810-2和810-(k-1)之间的可能附加抽头,以及仅示出四个直接相邻的抽头;以及(3)通过以下方法使图28更通用(或更模块化),即示出右下角中的另一加法器830-1。
假定,图28中的每个乘法器810都为18×18乘法器(例如,类似图11中的乘法器505或506)。然后,可以在一个DSP块500中有效地执行与图28中的每对两个相邻抽头关联的运算,如例如图11中所示构造的运算。以下讨论示出如何完成该运算。
图29示出具有与图28中的电路800′相同能力的电路800″。换句话说,图29为图28电路的替换实现,其在功能上与图28的电路等效。在图29中,脉动寄存器812-1(图28)的功能由脉动寄存器504p-1、504q-1和513-1执行(虽然在图29的例子中,不使用脉动寄存器513-1)。从根本上说,图28中加法器830-1和830-2之间的脉动寄存器812-1产生的延迟沿馈送到由加法器830-1执行的加法的所有路径向上游移动(图29)。这使由图28中加法器830-1和830-2执行的加法能够在图29中的一个组合加法器508/510/511-1中执行(即在合成加法器508/510/511-1中不需要脉动延迟,如812-1)。类似地,图28中的脉动寄存器812-3产生的延迟向上游移动至图29中的脉动寄存器504p-3、504q-3和513-3。同样,这使图28中加法器830-3和830-4执行的加法能够在图29中的一个组合加法器508/510/511-3中执行(即在合成加法器508/510/511-3中不需要脉动延迟,如812-3)。
通过上文作为出发点,现在可以解释图29中的链点线500e和500f。链点线500e围绕图29中可以由具有例如图11中所示构造的一个DSP块500的电路实现的元件。特别地,以下引用数字的等式示出线500e内的元件如何由图11中的代表性DSP块500中的元件实现:810-2=506;504p-1=504p;504q-1=504q;810-1=505;508/510/511-1=508,510和511;512-1=512;513-3=513。
链点线500f围绕图29中这样的元件,其可以由同样具有例如图11中所示构造的另(一)DSP块500的电路实现,并且能够经由其car_in输入直接接收DSP块500e中的脉动寄存器513的输出。同样,以下引用数字的等式示出线500f内的元件如何由图11DSP块电路500的第二(“另一”)实例中的元件实现:810-4=506;504p-3=504p;504q-3=504q;810-3=505;508/510/511-3=508,510和511;512-3=512;513-5=513。
图29中的元件820和822执行的延迟可以由寄存器电路执行,该寄存器电路在DSP块例如500e和500f的外部,并且可以适当地延迟将连续输入数据字x[n]施加至DSP块500e和500f的各个输入。(替换地,有些或者所有的元件820和822可以由包括在DSP块内的寄存器实现,该DSP块如块500e和500f)。
上一段示出例如图11中所示构造的DSP块500如何可以有效地用于实现脉动FIR滤波器,如果期望的话。虽然图29示出实现在两个相邻DSP块500e和500f中具有四个抽头的脉动FIR滤波器,但是应理解,可以以相同通用的方式,在适当数目的相邻DSP块500中实现具有任何期望数目的抽头的脉动FIR滤波器。例如,可以在三个相邻的DSP块500中实现6抽头的脉动FIR滤波器;可以在四个相邻的DSP块500中实现8抽头的脉动FIR滤波器,以此类推。在每种情况下,脉动FIR滤波器的两个相邻抽头(“一对相邻抽头”,或“一对的两个相邻抽头”)实现在一个DSP块500中,并且每个DSP块500实现这种互斥对抽头中相应的一对。DSP块按照抽头对排列的方式排列,抽头的配对和排序(从1至4)以及DSP块500的类似排序(从e到f)在图29示意性示出。
现在考虑DSP块500的更宽范围能力。以下为单个DSP块或模块500可以支持的主要特征的列表:
1.三个9×9乘法。
2.一个18×18乘法。
3.两个部分18×18乘法。
4.一个27×27乘法。
5.具有累加的一个18×18乘法。
6.具有一个25位预加法器的一个26×22乘法。
7.一个36×18乘法。
8.两18×18乘法的一个求和。
9.具有累加的两18×18乘法的一个求和。
10.具有预加法器的两18×18乘法的一个求和。
11.差平方的一个求和。
12.(a×b)+c,(其中a,b=18位,c=36位)
13.两个18位脉动FIR滤波器抽头的一个求和。
14.具有预加法器的两个18位脉动FIR滤波器抽头的一个求和。
在三个9×9乘法(以上第1条)的情况下,可以将两个18×18乘法器(块505和506)配置为四个9×9乘法器。然而,输出的数目(56)只足以支持三个9×9乘法结果(18位+18位+18位=54位)。对于上面的两部分18×18乘法(第3条)也有同样的限制,其中每个18位乘法的结果的(36位中)仅28位可以被路由至DSP模块的输出(out)。
在具有一个25位预加法器的一个26×22乘法应用中(以上第6条),限制来自于DSP块500的输入的数目。即使DSP块500可以支持高达27位乘法,但是动态输入的数目仅为72,其仅能支持(25+25)×22。
可以通过以下方法实现差平方的一个求和(以上第11条),即启用预加法器502,并且将预加法器的结果施加至乘法器(505和506)的输入。因此,在该情况下,可以在输出获得(ax-ay)2+(bx-by)2的结果。
以下为当将多个DSP块或模块500组合在一起时可以支持的特征的列表:
a.两个DSP模块中的三个18×18乘法。
b.四个18×18乘法的求和。
c.两个27×27乘法的求和。
d.两个36×18乘法的求和。
e.18×18复数乘法(即(a+bi)×(c+di),其中a、b、c、d均为18位)。
f.36×36乘法。
g.72×18乘法。
h.三个DSP模块中的18×25复数乘法(即(a+bi)×(c+di),其中a、b均为18位,c、d均为25位)。
i.27×27复数乘法(即类似于e条,除了a、b、c、d均为27位)。
j.54×54乘法。
k.具有输出链的两个18×18乘法的求和。
l.具有输出链的一个27×27乘法。
一个DSP模块500不足以支持两个18×18乘法的输出。然而,两个DSP模块500足以支持三个18×18乘法的输出,其中一个结果分布在两个模块之间。
对于应用,例如两个36×18乘法(上述d条)以及72×18乘法(上述g条),两个DSP块500通过专用的、直接的、模块间和以及进位通道连接。以下讨论包含关于这些连接如何工作的更多信息。
图30示出两个相邻的DSP块500h和500i。每个这些DSP块都可以是例如图11中所示的电路的各个实例。图30中所示的有些连接通过使用更重(更黑)的线绘出而进行强调。这些连接包括直接的、专用的、DSP块间连接,当使用两个所述DSP块一起来执行超过一个DSP块500的能力的某些功能时使用这些连接。一个例子为以上的36×36乘法(f条)。图31示出如何使用图30的电路执行该乘法。现在将针对图31所示的36×36乘法的例子进一步描述图30和图31。
图31的行1表示用于将执行的36×36乘法的36位被乘数。图31的行2表示用于该乘法的36位乘数。被乘数的18位低有效子字x1以及乘数的18位低有效子字y1被施加至DSP块500h中的乘法器505,用于该乘法器进行相乘产生如图31中行3所示的部分积。被乘数的18位高有效子字x2以及y1被施加至DSP块500h中的乘法器506,用于该乘法器进行相乘产生如图31中行4所示的部分积。使用DSP块500h中的元件507s和507c来将DSP块500h中的乘法器506输出的冗余形式的和向量以及进位向量向左移18位(从而相对于DSP块500h中的乘法器505输出的冗余形式的和向量以及进位向量将它们增加18个比特位置的算术有效性)。在图31的行4中图示出部分积x2×y1的18位左移。DSP块500h中的压缩器508将其接收的四个冗余形式向量压缩至两个冗余形式向量,即图31的行5所示的54位和向量,以及图31的行6所示的54位进位向量。
图31中行5和行6中的数据处于该图点垂线右侧的18位部分保留在DSP块500h中。特别地,这些18个最低有效位通过块500h中的压缩器510向下到达该块中的CPA 511。块500h中的CPA 511将该冗余形式数据转换成图31的行9中所示的非冗余形式(或普通形式)最终结果的18个最低有效位。DSP块500h可以经由其OUT导线输出这些18位最终结果。
图31中的行5和行6中的数据的36个高有效位部分(点垂线左侧)从DSP块500h中的压缩器508的输出被路由至DSP块500i。特别地,由DSP块500h中的压缩器508输出的36个高有效位和向量被传送通过DSP块500h中的可控移位器元件509s,从而将该数据向右移18个比特位置,从而当其经由从块500h到块500i的直接、专用sum_out/sum_in连接(导体或通道)进入DSP块500i时,将数据的算术有效性减小18位。(块500h中的多路复用器电路517s为该路由的一部分)。类似地,由DSP块500h中的压缩器508输出的36个高有效进位位被传送通过块500h中的可控移位器元件509c,从而将该数据向右移18位,从而当其经由从块500h到块500i的car_out/car_in连接(导体或通道)进入DSP块500i时,减小其有效性。(块500h中的多路复用器电路517c为该路由的一部分)。因此,那个DSP块500i从DSP块500h接收的冗余形式数据被路由至块500i中的压缩器电路510。(块500i中的多路复用器电路514为该路由的一部分)。
乘数的18个高有效位子字y2以及x1被施加至DSP块500i中的乘法器505,用于该乘法器进行相乘产生如图31中行7所示的部分积。类似地,y2以及x2被施加至DSP块500i中的乘法器506,用于该乘法器进行相乘产生如图31中行8所示的部分积。使用DSP块500i中的可控移位器电路元件507s和507c来将DSP块500i中的乘法器电路506输出的冗余形式的和向量以及进位向量向左移18位(从而相对于DSP块500i中的乘法器505输出的冗余形式的和向量以及进位向量将它们的算术有效性增加18个比特位置)。在图31的行8中图示出部分积x2×y2相对于部分积y2×x1的18位左移。
DSP块500i中的压缩器508将其从块500i中的元件505、506和507接收的四个冗余形式的部分积减小至表示部分积y2×x1和x2×y2的和的两个冗余形式向量。这两个来自DSP块500i中的压缩器508的冗余形式向量被施加至块500i中的压缩器510。块500i中的压缩器510将其接收的四个冗余形式向量(两个来自块500i中的压缩器508,两个经由上述从块500h至块500i的sum_out/sum_in以及car_out/car_in通道来自块500h)压缩至表示以下部分积的和的两个冗余形式向量:(1)部分积y2×x1,(2)部分积x2×y2,以及(3)以下两个部分积的和的36高有效位,即(a)部分积x1×y1以及(b)部分积x2×y1。由DSP块500i中的压缩器510输出的两个冗余形式的向量被施加至块500i中的CPA 511,其将这两个向量组合为图31的行9中点线左侧所示的非冗余形式(或普通形式)最终结果的54个高有效位。可以由DSP块500i通过其OUT导线输出这些54个高有效位最终结果。
上文示出如何可以使用两个DSP块500h和500i来执行完整的36×36乘法,其中DSP块500h输出最终积的18个低有效位,而DSP块500i输出最终积的54个高有效位。
对于例如四个18×18乘法(以上b条)的求和以及两个27×27乘法(以上c条)的求和的应用,可以通过以下方式实现该结果:通过以下两种连接组合两个DSP模块500,即和以及进位直接、专用、DSP模块间连接(即sum_out/sum_in以及car_out/car_in),如上面关于图30和图31所述和例示性示出的,或者输出链连接,如图32例示性示出并在下文描述的。
图32示出若干DSP块500-1至500-7,其在集成电路上优选彼此相邻(例如彼此处于图32所示的相对位置)。这些DSP块中的每一个可以是例如图11所示的电路的相应实例。图32中示出的有些连接通过使用较重(较黑)的线绘制而进行强调。这些连接包括相邻DSP块500之间的连接,当期望将一个DSP块500的最终输出(OUT)直接链接到另一相邻DSP块的中间电路时可以使用该连接,其用于结合第二(“另一”或“接收”)DSP块中进行的信号处理。与较早描述的sum_out/sum_in以及car_out/car_in连接类似,这些输出链连接优选为直接、专用、DSP块间连接。这意味着例如这些直接、专用连接不利用包括该DSP块的集成电路上的更多通用信号路由电路。换句话说,这些连接只专用于传送DSP电路块(例如DSP块500)的实例之间的信号。在描述的例示性实施例中,经由上述从每个DSP块500到下一个相邻DSP块500的car_out/car_in连接(部分)生成该直接、专用输出链连接。
在图32中所示的例示性实施例中,所强调的从DSP块500-1到DSP块500-2的输出链路由从块500-1中的节点延伸,该节点可以从块500-1中的输出寄存器512接收信号。(其可以称为块500-1的输出节点)。该路由通过(可选使用)的块500-1中的脉动寄存器513、块500-1中的多路复用器电路516和517c延伸到块500-1的car_out导线上,块500-1的car_out导线连接到块500-2的car_in导线。如上所述,DSP块500的car_in导线上的信号被施加(尤其)至该DSP块中的压缩器电路510。因此,从DSP块500-1到DSP块500-2的输出链路由包括将块500-2从块500-1接收的car_in信号施加至块500-2中的压缩器510。因此,块500-2中的压缩器510为块500-2中的“中间电路”,其可以接收链接到块500-2的块500-1的输出,用于与由块500-2中的压缩器510上游的元件在块500-2中执行的其他信号处理的结果结合。注意,该输出链不将来自源块500-1的输出路由至接收块500-2最上游的输入(例如ax、ay、bx、by)。相反,来自源块500-1的输出链在接收块500-2的电路的中间点进入接收块500-2。这使接收块500-2的所有最上游输入(ax、ay、bx、by)可以用于其他(非输出链的)输入。这也使接收块500-2的其他上游电路(例如,元件501、502、503、504、505、506、507和508)可以用于处理那些其他(非输出链的)输入。然后,可以将接收块500-2中的上游元件处理的其他输入的结果与块500-2中更下游元件(即始于DSP块500-2中的中间电路元件压缩器510)中的链接输出的输入(经由从块500-1到500-2的car_out/car_in连接从源块500-1的输出节点接收)结合。
图32示出(通过另外的强调(较黑)的连接线)输出链可以继续从DSP块500-2到下一个相邻DSP块500-3(未在图32中实际示出)。在块500-2中,该继续输出链(名义上)始于块500-2的OUT节点,并且经过该块的元件513、516和517c,到达块500-2的car_out输出导线(其直接连接到块500-3的car_in输入)。
图32仍进一步示出(使用DSP块500-7的例示性例子)输出链可以包括连续结果(分别在电路的连续时钟周期产生)的累加。因此,在块500-7中,OUT节点信号被路由回(经由多路复用器电路514)块500-7中的压缩器510。这允许块500-7中的元件510、511和512从每个时钟周期到下一个时钟周期对以下数据进行组合(例如,加在一起)和累加:(1)块500-7中的更上游电路(例如505和506)的输出,(2)来自其他相邻“源”DSP块500-6(未实际示出)的链输入的输出,以及(3)DSP块500-7在刚刚上一时钟周期期间产生的最终输出。图32也示出由块500-7进行的该累加器运算的结果可以经由块500-7中的元件513、516和517c“链接输出”至下一个相邻DSP块500-8(未示出)。
在此强调,虽然图32示出输出链经过每个DSP块500中的脉动寄存器513,但是这些寄存器也可以用于延迟或不延迟链接信号,如电路用户所期望的。换句话说,将寄存器513实际用于相加信号延迟是可选的(再次参考图16)。
作为如图32中示出并强调的电路布置的使用例子,可以在DSP块500-2的输出获得四个18×18乘法的和(上述b条),其中每个DSP块500-1和500-2被设置为计算两个18×18乘法的和。
通常(继续参考图32),可以经由输出链路径将任何数目的“相邻”DSP模块500连接在一起。(在上一句中引用“相邻”,因为每个DSP模块500中的冗余多路复用器517都允许跳过或绕过一个模块(例如如果其不正常工作)。该原则适用于整个本公开中的所有引用的“相邻”DSP块或模块)。可以在该链末端的最后一个DSP模块500处获得所有结果的总和。再次注意,可以启用(例如)DSP块500-7中的OUT节点和多路复用器电路514之间的路径,从而将累加特征加入输出链。
仍参考图32,可以使用两组两个18×18或27×27乘法的和(上述b条或c条)实现18×18复数乘法(上述e条)或27×27复数乘法(上述i条),其中一组做加法(即复数积的虚部adi+bci中的ad和bc),而另一组做减法(即复数积的实部中的ac-bd)。可以使用四个DSP模块500借助与27×27复数乘法相同的设置来实现18×25复数乘法(上述h条)。可以用四个DSP模块500并且利用和以及进位直接连接与输出链直接连接来实现54×54复数乘法(上述j条)。
虽然附图如图11和图21示出冗余多路复用器如517s和517c在DSP块500的输出处或其附近,但是该冗余多路复用器替代地可以在该DSP块的输入处或其附近。例如,图33示出说明该可能修改的两个相邻DSP块500a′和500b′的各部分。特别地,冗余多路复用器如517s和517c不在DSP块500a′的输出处或其附近,而是这些多路复用器已被移至DSP块500b′的输入侧。在所有其他方面中,DSP块如500a′和500b′可以类似本说明书中其他地方所示和所述的DSP块500。
另外说明在不偏离本公开的范围和精神的情况下各种元件的位置和/或顺序可以如何改变,可以将脉动寄存器电路513移动至沿(例如)图21中的输出链路径的任何其他合适的点。例如,可以将脉动寄存器电路513和关联的旁路元件680和682移动至沿输出链路径的、恰好在进入下一个下游DSP块的通路之前的点。
重述上文的一些方面以及一些延伸已述内容的方面,数字信号处理(“DSP”)电路块(例如图11中的500;图24中的500b)可以包括:第一乘法器电路(例如506),其能够执行第一N位乘以N位乘法(“N×N”)(例如18×18乘法);第二乘法器电路(例如505),其能够执行第二N×N乘法;第一移位器电路(例如507c/507s),其用于将第一乘法器电路的输出按以下可选之一进行移位,即(1)零比特位置,以及(2)朝着更高算术有效位移位N个比特位置;第一压缩器电路(例如508),其用于将第一移位器电路和第二乘法器电路的输出以加法方式组合;用于将第一压缩器电路的输出路由至与该DSP电路块相邻的第一其他DSP电路块(例如图24中的500c)的电路(例如sum_out/sum_in导线);以及第二压缩器电路,其用于将第一压缩器电路的输出和从相邻于该DSP电路块的第二其他DSP电路块(例如图24中的500a)接收的输出以加法方式组合。
上述DSP电路块可以进一步包括加法器电路(例如511),其用于将第二压缩器电路的输出以加法方式组合。该加法器电路可以包含进位传递加法器电路。
上述DSP电路块可以进一步包括第一寄存器电路(例如512),其用于寄存乘法器电路的输出。
上述DSP电路块可以进一步包括一组、第二组、第三组和第四组多个数据信号输入导线(例如ax、ay、bx、by),其用于提供输入以便乘法器电路处理;以及预加法器电路(例如502),其用于将来自多个数据信号输入导线中的至少两组的输入以加法方式组合。
上述DSP电路块可以进一步包括用于以下操作的电路(例如503),其选择预加法器电路的输出,作为来自多个数据信号输入导线的至少一组的输入的替换,以便由至少一个乘法器电路处理。
上述DSP电路块在去往至少一个乘法器电路的输入数据信号路径中可以进一步包括可选可用脉动寄存器电路(例如504p、504q)。
上述DSP电路块在用于由第二压缩器电路输出的信号的输出数据信号路径中可以进一步包括可选可用脉动寄存器电路(例如513)。
上述DSP电路块可以进一步包括用于寄存表示第二压缩器电路的输出的信号的电路(例如512);以及用于以下操作的电路(例如514),其选择性地将用于寄存的电路的输出施加至第二压缩器电路的输入,以便由第二压缩器电路将其于第一压缩器电路的输出以加法方式组合。
上述用于路由的DSP电路块可以包括第二移位器电路(例如509s/509c),其用于将第一压缩器电路的输出按以下可选之一进行移位:(1)零比特位置,以及(2)朝着低算术有效位移位N个比特位置。
上述用于路由的DSP电路块可以包括替换路由电路(例如sum_in/sum_out导线),其用于将在第二其他DSP电路块中用于路由的电路输出的信号路由至第一其他DSP电路块。
上述用于路由的DSP电路块可以包括替换路由电路(例如输出链导线),其用于将表示第二压缩器电路的输出的信号路由至第一其他DSP电路块。
上述DSP电路块中,替换路由电路可以包括脉动寄存器电路(例如513),其可选择性地用于表示第二压缩器电路的输出的信号。
上述DSP电路块中,第二乘法器电路可以替换地执行(1)0.5N位乘以M位(“0.5N×M”)乘法(例如9×27乘法),以及(2)0.5N位乘以N位(“0.5N×N”)乘法(例如9×18乘法),其中M等于1.5N(例如当N为18时M为27)。
以上刚刚重述的DSP电路块可以进一步包括用于以下操作的电路(例如503),其选择性地将M位被乘数数据字的位和M位乘数数据字的位路由至第一和第二乘法器电路,使得第一乘法器电路能够将被乘数数据字的N个最高有效位乘以乘数数据字的N个最高有效位,从而产生第一部分积数据字,并且使得第二乘法器电路能够(1)将被乘数数据字的M位乘以乘数数据字的0.5N个最低有效位,从而产生第二部分积数据字,以及(2)将乘数数据字的N个最高有效位乘以被乘数数据字的0.5N个最低有效位,从而产生第三部分积数据字。
以上刚刚重述的DSP电路块中,第二乘法器电路可以包括第三压缩器电路(例如652),其用于将第二和第三部分积数据字以加法方式组合,其中第三部分积数据字的位相对于第二部分积数据字的位在算术有效位上增加0.5N个比特位置。
上述用于路由的DSP电路块可以专用于仅传送DSP电路块之间的信号。
上述DSP电路块中,从第二其他DSP块接收的输出可以经由以下电路(例如sum_in/sum_out)接收,该电路专用于仅传送DSP电路块之间的信号。
重述上文的一些其他方面以及延伸所述的一些方面,电路(例如图17)可用于执行以下操作之一:(1)一个M位乘以M位(“M×M”)乘法(例如27×27乘法),以及(2)两个N位乘以N位(“N×N”)乘法(例如两个18×18乘法),其中M等于1.5N,该电路可以包括N×N乘法器电路(例如506);0.5N×M乘法器电路(例如650a);0.5N×N乘法器电路(例如650b);第一电路(例如652),其用于将0.5N×M乘法器电路的输出与0.5N×N乘法器电路的输出以加法方式组合;移位器电路(例如507c/507s),其用于将N×N乘法器电路的输出按以下可选之一进行移位:(1)零比特位置,以及(2)朝着较高算术有效位移位N个比特位置;以及第二电路(例如508),其用于将移位器电路的输出和第一电路的输出以加法方式组合。
上述电路中,N可等于18,而M可等于27。
上述电路可以进一步包括第一组、第二组、第三组和第四组多个数据信号输入导线(例如图11所示的d、c、ax、ay、bx、by中的任意四组);以及路由电路(例如503),其用于可控地将来自多个数据信号输入导线中的每一组的信号路由至乘法器电路的可选输入之一。多个数据信号输入导线中的每一组可以包括N个数据信号输入导线。
在以上刚刚重述的电路中,路由电路可以包括第一、第二、第三和第四N位乘法器(例如630r、630s、630u、630w),可以控制每以个来将来自多个数据信号输入导线中的任一组的N位路由至以下输入中相应的一个:即(1)N×N乘法器电路的被乘数输入,(2)N×N乘法器电路的乘数输入;(3)0.5N×M乘法器电路的N个低有效位被乘数输入,以及(4)0.5N×N乘法器电路的被乘数输入;以及第一、第二和第三0.5N位乘法器(例如630t、630v、630x),可以控制每个来将来自多个数据信号输入导线中的至少一些组的0.5N位路由至以下输入中相应的一个:即(1)0.5N×M乘法器电路的0.5N个高有效位被乘数输入,(2)0.5N×M乘法器电路的乘数输入;以及(3)0.5N×N乘法器电路的乘数输入。
仍重述上文的一些其他方面,以及已述的一些方面的延伸,数字信号处理(“DSP”)电路块(例如图11中的500;图24中的500b)可以包括:第一装置(例如506),其用于执行第一N位乘以N位(“N×N”)乘法(例如18×18乘法);第二装置(例如图11中的505;图17),其用于执行以下可选之一:(1)第二N×N乘法(例如27×27乘法),以及(2)0.5N位乘以M位(“0.5N×M”)乘法,以及0.5N位乘以N位(“0.5N×N”)乘法,其中M等于1.5N(例如当N为18时M为27);第三装置(例如507c/507s),其用于将第一装置的输出按以下可选之一进行移位:(1)零比特位置,以及(2)朝着更高算术有效位移位N个比特位置;第四装置(例如508),其用于将第二和第三装置的输出以加法方式组合;第五装置(例如sum_out/car_out),其用于将第四装置的输出路由至第一其他DSP电路块(例如图24中的500c);以及第六装置(例如510),其用于将第四装置的输出以及从第二其他DSP电路块(例如图24中的500a)接收的输出以加法方式组合。
在该DSP电路块中,第二装置可以包括第七装置(例如650a),其用于执行0.5N×M乘法;第八装置(例如650b),其用于执行0.5N×N乘法;以及第九装置(例如652),其用于将第七和第八装置的输出以加法方式组合,其中第八装置的输出位相对于第七装置的输出位在算术有效位上增加0.5N个比特位置。
在此重述的DSP电路块可以进一步包含第十装置(例如630s),其用于选择性地将M位被乘数数据字的N个最高有效位路由至第一装置的输入;第十一装置(例如630r),其用于选择性地将M位被乘数数据字的N个最高有效位路由至第一装置的乘数输入;第十二装置(例如630v和630w),其用于将M位被乘数选择性地路由至第七装置的被乘数输入;第十三装置(例如630x),其用于将乘数数据字的0.5N个最低有效位选择性地路由至第七装置的乘数输入;第十四装置(例如630u),其用于将乘数数据字的N个最高有效位选择性地路由至第八装置的被乘数输入;以及第十五装置(例如630t),其用于将被乘数数据字的0.5N个最低有效位选择性地路由至第八装置的乘数输入。
在此重述的DSP电路块可以进一步包括第十六装置(例如ax、ay、bx和by引线),其用于接收多个数据输入信号,用作第一和第二装置的输入;第十七装置(例如502),其用于选择性地预加至少一些数据输入信号;以及第十八装置(例如503),其用于将第十七装置的输出施加于第一和第二装置中至少一个的选定输入。
在此重述的DSP电路块可以进一步包括第十九装置(例如504p、504q),其用于选择性地给第二装置的输入一脉动寄存器延迟。
在此重述的DSP电路块中,第十五装置可以包括第二十装置(例如509s/509c),其用于将第四装置的输出按以下可选之一进行移位:(1)零比特位置,以及(2)朝着更低算术有效位移位N个比特位置。
在此重述的DSP电路块中,第十五装置可以包括第二十一装置(例如516),其用于选择性地替换地将表示第六装置的输出的输出信号路由至第一其他DSP电路块。
在此重述的DSP电路块中,第二十一装置可以包括第二十二装置(例如513),其用于选择性地给表示第六装置的输出的输出信号一脉动寄存器延迟。
在此重述的DSP电路块中,第五装置可以包括第二十三装置(例如sum_in/car_in导线),其用于选择性地将来自第二其他DSP电路块的信号路由至第一其他DSP电路块。
在此重述的DSP电路块中,第六装置可以包括第二十四装置(例如512),其用于寄存表示第六装置的输出的输出信号;以及第二十五装置(例如514),其用于将第二十四装置的输出施加至第六装置的输入。
应理解,上文仅说明了本发明的原理,并且在不偏离本发明的范围和精神的情况下,本领域技术人员能够作出各种修改。例如,18×18乘法器200的使用仅为说明性的,并且如果期望的话,可以使用其他大小的乘法器代替。也应理解,附图如图1-4、图6、图8和图10示出这样的电子电路,其中多数或所有电路元件(例如200、202、210、220、260等等)都为分开的元件(通常一起集成在集成电路上),其中每个元件专用于(例如至少相当程度硬接线)通过对电输入信号操作来产生其他的电输出信号,从而执行在此对其描述的功能。这些电信号有时可以称为数据、比特、向量、“1”、“0”、值、被乘数、乘数、积、部分积、和等等;但是在所有的情况下,其实际上都为代表特定信息的实际电信号。类似地,在此示出的某些电路元件有时用其执行的操作来指代(例如“乘法器200a”),但是在所有的情况下,这些元件都为执行这些操作的实际电路(例如乘法器电路)。对于提到的DSP电路、DSP运算等也是如此。所有的该运算通过电路对电信号进行操作而执行,如上所述。
在一些随附的权利要求中,可以使用例如第一、第二、第三、第四等这样的词语。这只是为了对各种主张的元件提供唯一的标识符,而非为了任何其他目的。例如,这些词无意暗示关于这些元件如何排列和使用的任何事情。同样,较高编号元件的引用(例如“第四”元件)自身不暗示所有更低编号的元件(例如第一至第三元件)也出现在特定的权利要求中。

Claims (33)

1.一种数字信号处理电路块,即DSP电路块,其包含:
第一乘法器电路,其能够执行第一N位乘以N位乘法,即N×N乘法;
第二乘法器电路,其能够执行第二N×N乘法;
第一移位器电路,其用于将所述第一乘法器电路的输出按以下可选方式之一进行移位:(1)移位零比特位置,和(2)朝着更高算术意义移位N个比特位置;
第一压缩器电路,其用于将所述第一移位器电路和所述第二乘法器电路的输出以加法方式组合;
用于将所述第一压缩器电路的输出路由至与所述DSP电路块相邻的第一其他DSP电路块的电路;以及
第二压缩器电路,其用于将所述第一压缩器电路的输出与从相邻于所述DSP电路块的第二其他DSP电路块接收的输出以加法方式组合。
2.根据权利要求1所述的DSP电路块,其进一步包含:
加法器电路,其用于将所述第二压缩器电路的输出以加法方式组合。
3.根据权利要求2所述的DSP电路块,其中所述加法器电路包含进位传递加法器电路。
4.根据权利要求2所述的DSP电路块,其进一步包含:
第一寄存器电路,其用于寄存所述加法器电路的输出。
5.根据权利要求1所述的DSP电路块,其进一步包含:
第一组、第二组、第三组和第四组多个数据信号输入导线,其用于提供输入以便由所述乘法器电路处理;以及
预加法器电路,其用于将来自所述多个数据信号输入导线中的至少二组的输入以加法方式组合。
6.根据权利要求5所述的DSP电路块,其进一步包含:
用于以下操作的电路,其选择所述预加法器电路的输出作为来自所述多个数据信号输入导线中的至少一组的输入的替换,以便由所述乘法器电路中的至少一个处理。
7.根据权利要求1所述的DSP电路块,其进一步包含:
在去往所述乘法器电路之一的输入数据信号路径中的选择性可用的脉动寄存器电路。
8.根据权利要求1所述的DSP电路块,其进一步包含:
在用于由所述第二压缩器电路进行数据输出的输出数据信号路径中的选择性可用的脉动寄存器电路。
9.根据权利要求1所述的DSP电路块,其进一步包含:
用于寄存表示所述第二压缩器电路的输出的信号的电路;以及
用于以下操作的电路,其选择性地将用于寄存的电路的输出施加至所述第二压缩器电路的输入,以便由所述第二压缩器电路将其与所述第一压缩器电路的输出以加法方式组合。
10.根据权利要求1所述的DSP电路块,其中用于路由的电路包含:
第二移位器电路,其用于将所述第一压缩器电路的输出按以下可选方式之一进行移位:(1)移位零比特位置;和(2)朝着低算术有效位移位N个比特位置。
11.根据权利要求1所述的DSP电路块,其中用于路由的电路包含:
替换路由电路,其用于将由所述第二其他DSP电路块中的用于选择性路由的电路输出的信号路由至所述第一其他DSP电路块。
12.根据权利要求1所述的DSP电路块,其中用于路由的电路包含:
替换路由电路,其用于将表示所述第二压缩器电路的输出的信号路由至所述第一其他DSP电路块。
13.根据权利要求12所述的DSP电路块,其中所述替换路由电路包含:
脉动寄存器电路,其对于表示所述第二压缩器电路的输出的信号是选择性可用的。
14.根据权利要求1所述的DSP电路块,其中所述第二乘法器电路能够替换地执行以下操作:(1)0.5N位乘以M位乘法,即0.5N×M乘法,以及(2)0.5N位乘以N位乘法,即0.5N×N乘法,其中M等于1.5N。
15.根据权利要求14所述的DSP电路块,其进一步包含:
用于以下操作的电路,其选择性地将M位被乘数数据字和M位乘数数据字的比特路由至所述第一乘法器电路和所述第二乘法器电路,使得所述第一乘法器电路能够将所述被乘数数据字的N个最高有效位与所述乘数数据字的N个最高有效位相乘,从而产生第一部分积数据字,并且使得所述第二乘法器电路能够(1)将所述被乘数数据字的M位与所述乘数数据字的0.5N个最低有效位相乘,从而产生第二部分积数据字,以及(2)将所述乘数数据字的N个最高有效位与所述被乘数数据字的0.5N个最低有效位相乘,从而产生第三部分积数据字。
16.根据权利要求15所述的DSP电路块,其中所述第二乘法器电路包含:
第三压缩器电路,其用于将所述第二部分积数据字和所述第三部分积数据字以加法方式组合,其中所述第三部分积数据字的比特相对于所述第二部分积数据字的比特在算术有效位上增加0.5N个比特位置。
17.根据权利要求1所述的DSP电路块,其中用于路由的电路专用于仅传送所述DSP电路块实例之间的信号。
18.根据权利要求1所述的DSP电路块,其中从第二其他DSP块接收的输出经由如下电路接收,该电路专用于仅传送所述DSP电路块实例之间的信号。
19.一种可用于执行以下可选之一的电路:(1)一个M位乘以M位乘法,即M×M乘法,以及(2)两个N位乘以N位乘法,即N×N乘法,其中M等于1.5N,其包含:
N×N乘法器电路;
0.5N×M乘法器电路;
0.5N×N乘法器电路;
第一电路,其用于将所述0.5N×M乘法器电路的输出与所述0.5N×N乘法器电路的输出以加法方式组合;
移位器电路,其用于将所述N×N乘法器电路的输出按以下可选方式之一进行移位:(1)移位零比特位置,和(2)朝着更高算术有效位移位N个比特位置;以及
第二电路,其用于将所述移位器电路的输出与所述第一电路的输出以加法方式组合。
20.根据权利要求19所述的电路,其中N等于18,M等于27。
21.根据权利要求19所述的电路,其进一步包含:
第一组、第二组、第三组和第四组多个数据信号输入导线;以及
路由电路,其用于可控地将来自所述多个数据信号输入导线中的每一组的信号路由至所述乘法器电路的可选输入之一。
22.根据权利要求21所述的电路,其中所述多个数据信号输入导线中的每一组包括N个数据信号输入导线。
23.根据权利要求22所述的电路,其中所述路由电路包含:
第一、第二、第三和第四N位多路复用器,每个多路复用器可以控制来将来自所述多个数据信号输入导线中的任何一组的N个比特路由至以下输入中相应的一个:(1)所述N×N乘法器电路的被乘数输入,(2)所述N×N乘法器电路的乘数输入,(3)所述0.5N×M乘法器电路的N个低有效位被乘数输入,以及(4)所述0.5N×N乘法器电路的被乘数输入;以及
第一、第二和第三0.5N位多路复用器,每个多路复用器可以控制来将来自所述多个数据信号输入导线中的至少一些中的任何一组的0.5N个比特路由至以下输入中相应的一个:(1)所述0.5N×M乘法器电路的0.5N个高有效位被乘数输入,(2)所述0.5N×M乘法器电路的乘数输入,以及(3)所述0.5N×N乘法器电路的乘数输入。
24.一种数字信号处理电路块,即DSP电路块,其包含:
第一装置,其用于执行第一N位乘以N位乘法,即N×N乘法;
第二装置,其用于执行以下可选之一:(1)第二N×N乘法,以及(2)0.5N位乘以M位乘法,即0.5N×M乘法,以及0.5N位乘以N位乘法,即0.5N×N乘法,其中M等于1.5N;
第三装置,其用于将所述第一装置的输出按以下可选方式之一进行移位:(1)移位零比特位置,和(2)朝着更高算术有效位移位N个比特位置;
第四装置,其用于将所述第二装置和所述第三装置的输出以加法方式组合;
第五装置,其用于将所述第四装置的输出路由至第一其他DSP电路块;以及
第六装置,其用于将所述第四装置的输出与从第二其他DSP电路块接收的输出以加法方式组合。
25.根据权利要求24所述的DSP电路块,其中所述第二装置包含:
第七装置,其用于执行所述0.5N×M乘法;
第八装置,其用于执行所述0.5N×N乘法;以及
第九装置,其用于将所述第七装置和所述第八装置的输出以加法方式组合,其中所述第八装置的输出的比特相对于所述第七装置输出的比特在算术有效位上增加0.5N个比特位置。
26.根据权利要求25所述的DSP电路块,其进一步包含:
第十装置,其用于选择性地将M位被乘数数据字的N个最高有效位路由至所述第一装置的被乘数输入;
第十一装置,其用于选择性地将M位乘数数据字的N个最高有效位路由至所述第一装置的乘数输入;
第十二装置,其用于选择性地将所述M位被乘数路由至所述第七装置的被乘数输入;
第十三装置,其用于选择性地将所述乘数数据字的0.5N个最低有效位路由至所述第七装置的乘数输入;
第十四装置,其用于选择性地将所述乘数数据字的N个最高有效位路由至所述第八装置的被乘数输入;以及
第十五装置,其用于选择性地将所述被乘数数据字的0.5N个最低有效位路由至所述第八装置的乘数输入。
27.根据权利要求24所述的DSP电路块,其进一步包含:
第十六装置,其用于接收多组多个数据输入信号,以便用作所述第一装置和所述第二装置的输入;
第十七装置,其用于将所述数据输入信号中的至少一些选择性地预相加;以及
第十八装置,其用于将所述第十七装置的输出选择性地施加至所述第一装置和所述第二装置中的至少一个的选定输入。
28.根据权利要求24所述的DSP电路块,其进一步包含:
第十九装置,其用于选择性地给予所述第二装置的输入一脉动寄存器延迟。
29.根据权利要求24所述的DSP电路块,其中所述第五装置包含:
第二十装置,其用于将所述第四装置的输出按以下可选方式之一进行移位:(1)移位零比特位置,和(2)朝着更低算术有效位移位N个比特位置。
30.根据权利要求24所述的DSP电路块,其中所述第五装置包含:
第二十一装置,其用于选择性地替换地将表示所述第六装置的输出的输出信号路由至所述第一其他DSP电路块。
31.根据权利要求30所述的DSP电路块,其中所述第二十一装置包含:
第二十二装置,其用于选择性地给予表示所述第六装置的输出的输出信号一脉动寄存器延迟。
32.根据权利要求24所述的DSP电路块,其中所述第五装置包含:
第二十三装置,其用于替换地将来自所述第二其他DSP电路块的信号路由至所述第一其他DSP电路块。
33.根据权利要求24所述的DSP电路块,其中所述第六装置包含:
第二十四装置,其用于寄存表示所述第六装置的输出的输出信号;以及
第二十五装置,其用于将所述第二十四装置的输出施加至所述第六装置的输入。
CN201080019822.4A 2009-03-03 2010-03-03 在电路的模块之间具有可选使用、专用连接的模块化数字信号处理电路 Active CN102422259B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/380,841 US8805916B2 (en) 2009-03-03 2009-03-03 Digital signal processing circuitry with redundancy and bidirectional data paths
US12/380,841 2009-03-03
PCT/US2010/026056 WO2010102007A2 (en) 2009-03-03 2010-03-03 Modular digital signal processing circuitry with optionally usable, dedicated connections between modules of the circuitry

Publications (2)

Publication Number Publication Date
CN102422259A true CN102422259A (zh) 2012-04-18
CN102422259B CN102422259B (zh) 2015-08-12

Family

ID=42224482

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201080019823.9A Active CN102422260B (zh) 2009-03-03 2010-03-03 具有冗余和双向数据通道的数字信号处理电路
CN201080019822.4A Active CN102422259B (zh) 2009-03-03 2010-03-03 在电路的模块之间具有可选使用、专用连接的模块化数字信号处理电路

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201080019823.9A Active CN102422260B (zh) 2009-03-03 2010-03-03 具有冗余和双向数据通道的数字信号处理电路

Country Status (5)

Country Link
US (1) US8805916B2 (zh)
EP (3) EP2404235B1 (zh)
JP (2) JP5657580B2 (zh)
CN (2) CN102422260B (zh)
WO (2) WO2010101985A1 (zh)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8959137B1 (en) 2008-02-20 2015-02-17 Altera Corporation Implementing large multipliers in a programmable integrated circuit device
US20110153995A1 (en) * 2009-12-18 2011-06-23 Electronics And Telecommunications Research Institute Arithmetic apparatus including multiplication and accumulation, and dsp structure and filtering method using the same
US8645451B2 (en) * 2011-03-10 2014-02-04 Altera Corporation Double-clocked specialized processing block in an integrated circuit device
US9053045B1 (en) 2011-09-16 2015-06-09 Altera Corporation Computing floating-point polynomials in an integrated circuit device
US8949298B1 (en) 2011-09-16 2015-02-03 Altera Corporation Computing floating-point polynomials in an integrated circuit device
DE112013002793T5 (de) * 2012-06-05 2015-04-09 Powerwave Technologies S.A.R.L. Rekonfigurierbare FIR-Filter varibler Länge zur Optimierung der Leistung von Digital-Repeatern
US8996600B1 (en) 2012-08-03 2015-03-31 Altera Corporation Specialized processing block for implementing floating-point multiplier with subnormal operation support
US8860460B1 (en) * 2012-11-05 2014-10-14 Altera Corporation Programmable integrated circuits with redundant circuitry
US9207909B1 (en) 2012-11-26 2015-12-08 Altera Corporation Polynomial calculations optimized for programmable integrated circuit device structures
US9189200B1 (en) 2013-03-14 2015-11-17 Altera Corporation Multiple-precision processing block in a programmable integrated circuit device
US9348795B1 (en) 2013-07-03 2016-05-24 Altera Corporation Programmable device using fixed and configurable logic to implement floating-point rounding
US9438203B1 (en) * 2014-01-10 2016-09-06 Altera Corporation Dynamically programmable digital signal processing blocks for finite-impulse-response filters
US9684488B2 (en) 2015-03-26 2017-06-20 Altera Corporation Combined adder and pre-adder for high-radix multiplier circuit
US9787290B2 (en) * 2015-05-20 2017-10-10 Altera Corporation Resource-saving circuit structures for deeply pipelined systolic finite impulse response filters
US11397635B2 (en) * 2019-12-09 2022-07-26 Sandisk Technologies Llc Block quality classification at testing for non-volatile memory, and multiple bad block flags for product diversity

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4972356A (en) * 1989-05-01 1990-11-20 Motorola, Inc. Systolic IIR decimation filter
WO1992000561A1 (en) * 1990-06-27 1992-01-09 Luminis Pty Ltd. A generalized systolic ring serial floating point multiplier
WO1997014090A1 (en) * 1995-10-10 1997-04-17 Chromatic Research, Inc. Structure and method for signed multiplication using large multiplier having two embedded signed multiplers
US6298366B1 (en) * 1998-02-04 2001-10-02 Texas Instruments Incorporated Reconfigurable multiply-accumulate hardware co-processor unit
US20060158219A1 (en) * 2005-01-14 2006-07-20 Flexlogics, Inc. Programmable logic and routing blocks with dedicated lines
US7119576B1 (en) * 2000-09-18 2006-10-10 Altera Corporation Devices and methods with programmable logic and digital signal processing regions
CN1973283A (zh) * 2000-03-31 2007-05-30 英特尔公司 用于有效交替操作方式的dsp执行单元
CN101042583A (zh) * 2006-02-09 2007-09-26 阿尔特拉公司 用于可编程逻辑器件的专门处理块
US7287051B1 (en) * 2003-10-03 2007-10-23 Altera Corporation Multi-functional digital signal processing circuitry
CN101196806A (zh) * 2006-12-05 2008-06-11 阿尔特拉公司 用于可编程逻辑器件的大型乘法器

Family Cites Families (269)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3473160A (en) 1966-10-10 1969-10-14 Stanford Research Inst Electronically controlled microelectronic cellular logic array
US4215407A (en) 1972-08-22 1980-07-29 Westinghouse Electric Corp. Combined file and directory system for a process control digital computer system
US4215406A (en) 1972-08-22 1980-07-29 Westinghouse Electric Corp. Digital computer monitored and/or operated system or process which is structured for operation with an improved automatic programming process and system
US6556044B2 (en) * 2001-09-18 2003-04-29 Altera Corporation Programmable logic device including multipliers and configurations thereof to reduce resource utilization
US4179746A (en) 1976-07-19 1979-12-18 Texas Instruments Incorporated Digital processor system with conditional carry and status function in arithmetic unit
US4156927A (en) * 1976-08-11 1979-05-29 Texas Instruments Incorporated Digital processor system with direct access memory
US4212076A (en) 1976-09-24 1980-07-08 Giddings & Lewis, Inc. Digital computer structure providing arithmetic and boolean logic operations, the latter controlling the former
US4484259A (en) 1980-02-13 1984-11-20 Intel Corporation Fraction bus for use in a numeric data processor
US4422155A (en) 1981-04-01 1983-12-20 American Microsystems, Inc. Multiplier/adder circuit
US4521907A (en) * 1982-05-25 1985-06-04 American Microsystems, Incorporated Multiplier/adder circuit
US4597053A (en) * 1983-07-01 1986-06-24 Codex Corporation Two-pass multiplier/accumulator circuit
US4736333A (en) * 1983-08-15 1988-04-05 California Institute Of Technology Electronic musical instrument
US4623961A (en) 1984-03-07 1986-11-18 Westinghouse Electric Corp. Programmable controller having automatic contact line solving
USRE34363E (en) 1984-03-12 1993-08-31 Xilinx, Inc. Configurable electrical circuit having configurable logic elements and configurable interconnects
US4727508A (en) * 1984-12-14 1988-02-23 Motorola, Inc. Circuit for adding and/or subtracting numbers in logarithmic representation
US4682302A (en) 1984-12-14 1987-07-21 Motorola, Inc. Logarithmic arithmetic logic unit
US4718057A (en) * 1985-08-30 1988-01-05 Advanced Micro Devices, Inc. Streamlined digital signal processor
US4791590A (en) 1985-11-19 1988-12-13 Cornell Research Foundation, Inc. High performance signal processor
US4823295A (en) * 1986-11-10 1989-04-18 Harris Corp. High speed signal processor
JPS63182585A (ja) * 1987-01-26 1988-07-27 Toshiba Corp テスト容易化機能を備えた論理回路
US4839847A (en) * 1987-04-14 1989-06-13 Harris Corp. N-clock, n-bit-serial multiplier
US4982354A (en) * 1987-05-28 1991-01-01 Mitsubishi Denki Kabushiki Kaisha Digital finite impulse response filter and method
US5142677A (en) 1989-05-04 1992-08-25 Texas Instruments Incorporated Context switching devices, systems and methods
FR2621144B1 (fr) * 1987-09-25 1989-12-29 Labo Electronique Physique Multiplieur pipeline serie
US4871930A (en) 1988-05-05 1989-10-03 Altera Corporation Programmable logic device with array blocks connected via programmable interconnect
FR2633467B1 (fr) 1988-06-24 1990-08-24 Thomson Csf Multiplicateur de frequence a rang de multiplication programmable
US5452231A (en) 1988-10-05 1995-09-19 Quickturn Design Systems, Inc. Hierarchically connected reconfigurable logic assembly
CA1311063C (en) * 1988-12-16 1992-12-01 Tokumichi Murakami Digital signal processor
US4912345A (en) * 1988-12-29 1990-03-27 Sgs-Thomson Microelectronics, Inc. Programmable summing functions for programmable logic devices
IT1235679B (it) 1989-01-25 1992-09-21 Sgs Thomson Microelectronics Dispositivo programmabile integrato di tipo misto, logico ed analogico.
US5046038A (en) 1989-07-07 1991-09-03 Cyrix Corporation Method and apparatus for performing division using a rectangular aspect ratio multiplier
US5255203A (en) 1989-08-15 1993-10-19 Advanced Micro Devices, Inc. Interconnect structure for programmable logic device
US5128559A (en) 1989-09-29 1992-07-07 Sgs-Thomson Microelectronics, Inc. Logic block for programmable logic devices
DE69130652T2 (de) 1990-03-20 1999-05-06 Fujitsu Ltd Digitaler paralleler Hochgeschwindigkeitsmultiplizierer
US5267187A (en) 1990-05-10 1993-11-30 Xilinx Inc Logic structure and circuit for fast carry
US5768613A (en) * 1990-07-06 1998-06-16 Advanced Micro Devices, Inc. Computing apparatus configured for partitioned processing
EP0466997A1 (en) 1990-07-18 1992-01-22 International Business Machines Corporation Improved digital signal processor architecture
JPH04256103A (ja) 1991-02-08 1992-09-10 Hitachi Ltd プログラマブルコントローラ
US5122685A (en) * 1991-03-06 1992-06-16 Quicklogic Corporation Programmable application specific integrated circuit and logic cell therefor
US5317209A (en) * 1991-08-29 1994-05-31 National Semiconductor Corporation Dynamic three-state bussing capability in a configurable logic array
US5550782A (en) 1991-09-03 1996-08-27 Altera Corporation Programmable logic array integrated circuits
US5371422A (en) 1991-09-03 1994-12-06 Altera Corporation Programmable logic device having multiplexers and demultiplexers randomly connected to global conductors for interconnections between logic elements
JPH05252025A (ja) 1991-10-28 1993-09-28 Texas Instr Inc <Ti> 論理モジュールおよび集積回路
US5208491A (en) * 1992-01-07 1993-05-04 Washington Research Foundation Field programmable gate array
FR2686175B1 (fr) 1992-01-14 1996-12-20 Andre Thepaut Systeme de traitement de donnees multiprocesseur.
GB9202613D0 (en) 1992-02-07 1992-03-25 Questech Ltd Improvements in and relating to digital filters
US5258668A (en) * 1992-05-08 1993-11-02 Altera Corporation Programmable logic array integrated circuits with cascade connections between logic modules
US5636150A (en) * 1992-08-06 1997-06-03 Sharp Kabushiki Kaisha Data driven type digital filter unit and data driven type information processor including the same
US5497498A (en) * 1992-11-05 1996-03-05 Giga Operations Corporation Video processing module using a second programmable logic device which reconfigures a first programmable logic device for data transformation
US5357152A (en) 1992-11-10 1994-10-18 Infinite Technology Corporation Logic system of logic networks with programmable selected functions and programmable operational controls
US5498975A (en) 1992-11-19 1996-03-12 Altera Corporation Implementation of redundancy on a programmable logic device
EP0606653A1 (en) 1993-01-04 1994-07-20 Texas Instruments Incorporated Field programmable distributed processing memory
US5424589A (en) * 1993-02-12 1995-06-13 The Board Of Trustees Of The Leland Stanford Junior University Electrically programmable inter-chip interconnect architecture
US5483178A (en) * 1993-03-29 1996-01-09 Altera Corporation Programmable logic device with logic block outputs coupled to adjacent logic block output multiplexers
EP0626661A1 (en) 1993-05-24 1994-11-30 Societe D'applications Generales D'electricite Et De Mecanique Sagem Digital image processing circuitry
US5528549A (en) * 1993-05-28 1996-06-18 Texas Instruments Incorporated Apparatus, systems and methods for distributed signal processing
US5381357A (en) * 1993-05-28 1995-01-10 Grumman Corporation Complex adaptive fir filter
US5528550A (en) * 1993-05-28 1996-06-18 Texas Instruments Incorporated Apparatus, systems and methods for implementing memory embedded search arithmetic logic unit
JPH0736858A (ja) 1993-07-21 1995-02-07 Hitachi Ltd 信号処理プロセッサ
DE59408784D1 (de) * 1993-08-09 1999-11-04 Siemens Ag Signalverarbeitungseinrichtung
US5457644A (en) 1993-08-20 1995-10-10 Actel Corporation Field programmable digital signal processing array integrated circuit
US5349250A (en) 1993-09-02 1994-09-20 Xilinx, Inc. Logic structure and circuit for fast carry
US5481206A (en) * 1993-09-02 1996-01-02 Xilinx, Inc. Circuit for fast carry and logic
US5546018A (en) 1993-09-02 1996-08-13 Xilinx, Inc. Fast carry structure with synchronous input
US5740404A (en) * 1993-09-27 1998-04-14 Hitachi America Limited Digital signal processor with on-chip select decoder and wait state generator
US5404324A (en) * 1993-11-01 1995-04-04 Hewlett-Packard Company Methods and apparatus for performing division and square root computations in a computer
US5961635A (en) 1993-11-30 1999-10-05 Texas Instruments Incorporated Three input arithmetic logic unit with barrel rotator and mask generator
US5590350A (en) 1993-11-30 1996-12-31 Texas Instruments Incorporated Three input arithmetic logic unit with mask generator
US5805913A (en) 1993-11-30 1998-09-08 Texas Instruments Incorporated Arithmetic logic unit with conditional register source selection
US5465224A (en) 1993-11-30 1995-11-07 Texas Instruments Incorporated Three input arithmetic logic unit forming the sum of a first Boolean combination of first, second and third inputs plus a second Boolean combination of first, second and third inputs
US5596763A (en) * 1993-11-30 1997-01-21 Texas Instruments Incorporated Three input arithmetic logic unit forming mixed arithmetic and boolean combinations
US6098163A (en) 1993-11-30 2000-08-01 Texas Instruments Incorporated Three input arithmetic logic unit with shifter
US5640578A (en) * 1993-11-30 1997-06-17 Texas Instruments Incorporated Arithmetic logic unit having plural independent sections and register storing resultant indicator bit from every section
US5485411A (en) 1993-11-30 1996-01-16 Texas Instruments Incorporated Three input arithmetic logic unit forming the sum of a first input anded with a first boolean combination of a second input and a third input plus a second boolean combination of the second and third inputs
US5644522A (en) 1993-11-30 1997-07-01 Texas Instruments Incorporated Method, apparatus and system for multiply rounding using redundant coded multiply result
US5446651A (en) 1993-11-30 1995-08-29 Texas Instruments Incorporated Split multiply operation
US6116768A (en) 1993-11-30 2000-09-12 Texas Instruments Incorporated Three input arithmetic logic unit with barrel rotator
US6219688B1 (en) 1993-11-30 2001-04-17 Texas Instruments Incorporated Method, apparatus and system for sum of plural absolute differences
US5959871A (en) 1993-12-23 1999-09-28 Analogix/Portland State University Programmable analog array circuit
US5563526A (en) 1994-01-03 1996-10-08 Texas Instruments Incorporated Programmable mixed-mode integrated circuit architecture
JP3097434B2 (ja) 1994-01-25 2000-10-10 ヤマハ株式会社 効果付加用ディジタル信号処理装置
GB9403030D0 (en) 1994-02-17 1994-04-06 Austin Kenneth Re-configurable application specific device
US5451948A (en) 1994-02-28 1995-09-19 Cubic Communications, Inc. Apparatus and method for combining analog and digital automatic gain control in receivers with digital signal processing
US5590305A (en) * 1994-03-28 1996-12-31 Altera Corporation Programming circuits and techniques for programming logic
US5563819A (en) 1994-03-31 1996-10-08 Cirrus Logic, Inc. Fast high precision discrete-time analog finite impulse response filter
US5682107A (en) * 1994-04-01 1997-10-28 Xilinx, Inc. FPGA architecture with repeatable tiles including routing matrices and logic matrices
CN1086815C (zh) * 1994-05-04 2002-06-26 爱特梅尔股份有限公司 带有区域和通用信号线路的可编程逻辑装置
US5689195A (en) 1995-05-17 1997-11-18 Altera Corporation Programmable logic array integrated circuit devices
US5442576A (en) * 1994-05-26 1995-08-15 Motorola, Inc. Multibit shifting apparatus, data processor using same, and method therefor
US5517436A (en) * 1994-06-07 1996-05-14 Andreas; David C. Digital signal processor for audio applications
JP3365581B2 (ja) 1994-07-29 2003-01-14 富士通株式会社 自己修復機能付き情報処理装置
JPH08106375A (ja) 1994-10-03 1996-04-23 Ricoh Co Ltd 信号処理演算器
US5652903A (en) 1994-11-01 1997-07-29 Motorola, Inc. DSP co-processor for use on an integrated circuit that performs multiple communication tasks
US5872380A (en) * 1994-11-02 1999-02-16 Lsi Logic Corporation Hexagonal sense cell architecture
US5761099A (en) * 1994-11-04 1998-06-02 Altera Corporation Programmable logic array integrated circuits with enhanced carry routing
US5664192A (en) 1994-12-14 1997-09-02 Motorola, Inc. Method and system for accumulating values in a computing device
US5636368A (en) * 1994-12-23 1997-06-03 Xilinx, Inc. Method for programming complex PLD having more than one function block type
US5581199A (en) 1995-01-04 1996-12-03 Xilinx, Inc. Interconnect architecture for field programmable gate array using variable length conductors
US5633601A (en) * 1995-03-10 1997-05-27 Texas Instruments Incorporated Field programmable gate array logic module configurable as combinational or sequential circuits
US5572148A (en) 1995-03-22 1996-11-05 Altera Corporation Programmable logic array integrated circuit with general-purpose memory configurable as a random access or FIFO memory
US5570040A (en) 1995-03-22 1996-10-29 Altera Corporation Programmable logic array integrated circuit incorporating a first-in first-out memory
US5696708A (en) 1995-03-30 1997-12-09 Crystal Semiconductor Digital filter with decimated frequency response
US5900743A (en) * 1995-05-17 1999-05-04 Altera Corporation Programmable logic array devices with interconnect lines of various lengths
US5790446A (en) 1995-07-05 1998-08-04 Sun Microsystems, Inc. Floating point multiplier with reduced critical paths using delay matching techniques
US5559450A (en) 1995-07-27 1996-09-24 Lucent Technologies Inc. Field programmable gate array with multi-port RAM
US5570039A (en) 1995-07-27 1996-10-29 Lucent Technologies Inc. Programmable function unit as parallel multiplier cell
US5581501A (en) 1995-08-17 1996-12-03 Altera Corporation Nonvolatile SRAM cells and cell arrays
US5646545A (en) 1995-08-18 1997-07-08 Xilinx, Inc. Time multiplexed programmable logic device
US5761483A (en) * 1995-08-18 1998-06-02 Xilinx, Inc. Optimizing and operating a time multiplexed programmable logic device
US5784313A (en) 1995-08-18 1998-07-21 Xilinx, Inc. Programmable logic device including configuration data or user data memory slices
US5859878A (en) * 1995-08-31 1999-01-12 Northrop Grumman Corporation Common receive module for a programmable digital radio
US6072994A (en) 1995-08-31 2000-06-06 Northrop Grumman Corporation Digitally programmable multifunction radio system architecture
US5729495A (en) * 1995-09-29 1998-03-17 Altera Corporation Dynamic nonvolatile memory cell
US5648732A (en) 1995-10-04 1997-07-15 Xilinx, Inc. Field programmable pipeline array
US5744991A (en) * 1995-10-16 1998-04-28 Altera Corporation System for distributing clocks using a delay lock loop in a programmable logic circuit
US5617058A (en) * 1995-11-13 1997-04-01 Apogee Technology, Inc. Digital signal processing for linearization of small input signals to a tri-state power switch
US5894228A (en) * 1996-01-10 1999-04-13 Altera Corporation Tristate structures for programmable logic devices
US5898602A (en) * 1996-01-25 1999-04-27 Xilinx, Inc. Carry chain circuit with flexible carry function for implementing arithmetic and logical functions
US5754459A (en) * 1996-02-08 1998-05-19 Xilinx, Inc. Multiplier circuit design for a programmable logic device
US5744980A (en) * 1996-02-16 1998-04-28 Actel Corporation Flexible, high-performance static RAM architecture for field-programmable gate arrays
US5764555A (en) * 1996-03-13 1998-06-09 International Business Machines Corporation Method and system of rounding for division or square root: eliminating remainder calculation
US6005806A (en) 1996-03-14 1999-12-21 Altera Corporation Nonvolatile configuration cells and cell arrays
US5777912A (en) 1996-03-28 1998-07-07 Crystal Semiconductor Corporation Linear phase finite impulse response filter with pre-addition
US5869979A (en) * 1996-04-05 1999-02-09 Altera Corporation Technique for preconditioning I/Os during reconfiguration
US6154049A (en) 1998-03-27 2000-11-28 Xilinx, Inc. Multiplier fabric for use in field programmable gate arrays
US5986465A (en) 1996-04-09 1999-11-16 Altera Corporation Programmable logic integrated circuit architecture incorporating a global shareable expander
US5949710A (en) 1996-04-10 1999-09-07 Altera Corporation Programmable interconnect junction
US5784636A (en) 1996-05-28 1998-07-21 National Semiconductor Corporation Reconfigurable computer architecture for use in signal processing applications
US5956265A (en) 1996-06-07 1999-09-21 Lewis; James M. Boolean digital multiplier
US5825201A (en) 1996-06-21 1998-10-20 Quicklogic Corporation Programming architecture for a programmable integrated circuit employing antifuses
US5765013A (en) * 1996-07-03 1998-06-09 Samsung Electronics Co., Ltd. Digital signal processor
US5880981A (en) * 1996-08-12 1999-03-09 Hitachi America, Ltd. Method and apparatus for reducing the power consumption in a programmable digital signal processor
US5959891A (en) * 1996-08-16 1999-09-28 Altera Corporation Evaluation of memory cell characteristics
US5838165A (en) 1996-08-21 1998-11-17 Chatter; Mukesh High performance self modifying on-the-fly alterable logic FPGA, architecture and method
US6624658B2 (en) 1999-02-04 2003-09-23 Advantage Logic, Inc. Method and apparatus for universal program controlled bus architecture
GB2317468B (en) 1996-09-23 2001-01-24 Advanced Risc Mach Ltd Digital signal processing integrated circuit architecture
US5805477A (en) 1996-09-26 1998-09-08 Hewlett-Packard Company Arithmetic cell for field programmable devices
US5825202A (en) 1996-09-26 1998-10-20 Xilinx, Inc. Integrated circuit with field programmable and application specific logic areas
US5999016A (en) 1996-10-10 1999-12-07 Altera Corporation Architectures for programmable logic devices
US5942914A (en) 1996-10-25 1999-08-24 Altera Corporation PLD with split multiplexed inputs from global conductors
US5892962A (en) * 1996-11-12 1999-04-06 Lucent Technologies Inc. FPGA-based processor
US5812562A (en) 1996-11-15 1998-09-22 Samsung Electronics Company, Ltd. Low cost emulation scheme implemented via clock control using JTAG controller in a scan environment
US6009451A (en) 1996-11-22 1999-12-28 Lucent Technologies Inc. Method for generating barrel shifter result flags directly from input data
US5815422A (en) 1997-01-24 1998-09-29 Vlsi Technology, Inc. Computer-implemented multiplication with shifting of pattern-product partials
US5841684A (en) 1997-01-24 1998-11-24 Vlsi Technology, Inc. Method and apparatus for computer implemented constant multiplication with multipliers having repeated patterns including shifting of replicas and patterns having at least two digit positions with non-zero values
US5821776A (en) 1997-01-31 1998-10-13 Actel Corporation Field programmable gate array with mask programmed analog function circuits
US5982195A (en) 1997-02-20 1999-11-09 Altera Corporation Programmable logic device architectures
US5999015A (en) 1997-02-20 1999-12-07 Altera Corporation Logic region resources for programmable logic devices
US5931898A (en) * 1997-02-25 1999-08-03 Lucent Technologies Inc Finite impulse response filter
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
US5874834A (en) * 1997-03-04 1999-02-23 Xilinx, Inc. Field programmable gate array with distributed gate-array functionality
US5991898A (en) 1997-03-10 1999-11-23 Mentor Graphics Corporation Arithmetic built-in self test of multiple scan-based integrated circuits
US5991788A (en) 1997-03-14 1999-11-23 Xilinx, Inc. Method for configuring an FPGA for large FFTs and other vector rotation computations
US5847579A (en) 1997-03-20 1998-12-08 Xilinx, Inc. Programmable logic array with improved interconnect structure
US6020759A (en) * 1997-03-21 2000-02-01 Altera Corporation Programmable logic array device with random access memory configurable as product terms
US6085317A (en) 1997-08-15 2000-07-04 Altera Corporation Reconfigurable computer architecture using programmable logic devices
US5878250A (en) * 1997-04-07 1999-03-02 Altera Corporation Circuitry for emulating asynchronous register loading functions
EP0983549B1 (en) 1997-05-23 2001-12-12 Altera Corporation (a Delaware Corporation) Redundancy circuitry for programmable logic devices with interleaved input circuits
US6006321A (en) * 1997-06-13 1999-12-21 Malleable Technologies, Inc. Programmable logic datapath that may be used in a field programmable device
US5970254A (en) 1997-06-27 1999-10-19 Cooke; Laurence H. Integrated processor and programmable data path chip for reconfigurable computing
US5910908A (en) 1997-09-16 1999-06-08 Tektronix, Inc. Fir filter for programmable decimation
JP3479438B2 (ja) 1997-09-18 2003-12-15 株式会社東芝 乗算回路
US6020755A (en) 1997-09-26 2000-02-01 Lucent Technologies Inc. Hybrid programmable gate arrays
US5944774A (en) 1997-09-26 1999-08-31 Ericsson Inc. Methods apparatus and computer program products for accumulating logarithmic values
US6021423A (en) * 1997-09-26 2000-02-01 Xilinx, Inc. Method for parallel-efficient configuring an FPGA for large FFTS and other vector rotation computations
US6069487A (en) * 1997-10-14 2000-05-30 Altera Corporation Programmable logic device circuitry for improving multiplier speed and/or efficiency
US6052327A (en) * 1997-10-14 2000-04-18 Altera Corporation Dual-port programmable logic device variable depth and width memory array
US6157210A (en) 1997-10-16 2000-12-05 Altera Corporation Programmable logic device with circuitry for observing programmable logic circuit signals and for preloading programmable logic circuits
US6107824A (en) 1997-10-16 2000-08-22 Altera Corporation Circuitry and methods for internal interconnection of programmable logic devices
US6029187A (en) * 1997-10-28 2000-02-22 Atmel Corporation Fast regular multiplier architecture
DE69835529T2 (de) 1997-11-03 2007-01-18 Harris Corp., Melbourne Rekonfigurierbarer funksystemaufbau
US6065131A (en) * 1997-11-26 2000-05-16 International Business Machines Corporation Multi-speed DSP kernel and clock mechanism
US6075381A (en) 1998-01-21 2000-06-13 Micron Electronics, Inc. Programmable logic block in an integrated circuit
JP3291461B2 (ja) 1998-01-30 2002-06-10 三洋電機株式会社 デジタルフィルタ
US6094726A (en) 1998-02-05 2000-07-25 George S. Sheng Digital signal processor using a reconfigurable array of macrocells
US6167415A (en) 1998-02-10 2000-12-26 Lucent Technologies, Inc. Recursive digital filter with reset
US6175849B1 (en) * 1998-02-10 2001-01-16 Lucent Technologies, Inc. System for digital filtering in a fixed number of clock cycles
US6097988A (en) 1998-02-10 2000-08-01 Advanced Micro Devices, Inc. Logic system and method employing multiple configurable logic blocks and capable of implementing a state machine using a minimum amount of configurable logic
US6367003B1 (en) * 1998-03-04 2002-04-02 Micron Technology, Inc. Digital signal processor having enhanced utilization of multiply accumulate (MAC) stage and method
JP3611714B2 (ja) * 1998-04-08 2005-01-19 株式会社ルネサステクノロジ プロセッサ
US5968196A (en) 1998-04-21 1999-10-19 Atmel Corporation Configuration control in a programmable logic device using non-volatile elements
US6084429A (en) 1998-04-24 2000-07-04 Xilinx, Inc. PLD having a window pane architecture with segmented and staggered interconnect wiring between logic block arrays
US6226735B1 (en) * 1998-05-08 2001-05-01 Broadcom Method and apparatus for configuring arbitrary sized data paths comprising multiple context processing elements
US6140839A (en) 1998-05-13 2000-10-31 Kaviani; Alireza S. Computational field programmable architecture
US5999990A (en) 1998-05-18 1999-12-07 Motorola, Inc. Communicator having reconfigurable resources
US6066960A (en) * 1998-05-21 2000-05-23 Altera Corporation Programmable logic device having combinational logic at inputs to logic elements within logic array blocks
JP2000010762A (ja) 1998-06-19 2000-01-14 Mitsubishi Electric Corp 浮動小数点演算装置
US6314551B1 (en) 1998-06-22 2001-11-06 Morgan Stanley & Co. Incorporated System processing unit extended with programmable logic for plurality of functions
US6467017B1 (en) 1998-06-23 2002-10-15 Altera Corporation Programmable logic device having embedded dual-port random access memory configurable as single-port memory
US6163788A (en) 1998-06-25 2000-12-19 Industrial Technology Research Institute Programmable finite impulse response processor with scalable dynamic data range
US6073154A (en) 1998-06-26 2000-06-06 Xilinx, Inc. Computing multidimensional DFTs in FPGA
US6201404B1 (en) * 1998-07-14 2001-03-13 Altera Corporation Programmable logic device with redundant circuitry
US6321246B1 (en) 1998-09-16 2001-11-20 Cirrus Logic, Inc. Linear phase FIR sinc filter with multiplexing
US6571268B1 (en) * 1998-10-06 2003-05-27 Texas Instruments Incorporated Multiplier accumulator circuits
EP0992885B1 (en) 1998-10-06 2005-12-28 Texas Instruments Incorporated Multiplier accumulator circuits
US6453382B1 (en) 1998-11-05 2002-09-17 Altera Corporation Content addressable memory encoded outputs
US6091261A (en) 1998-11-12 2000-07-18 Sun Microsystems, Inc. Apparatus and method for programmable delays using a boundary-scan chain
US6215326B1 (en) * 1998-11-18 2001-04-10 Altera Corporation Programmable logic device architecture with super-regions having logic regions and a memory region
US6591283B1 (en) 1998-12-24 2003-07-08 Stmicroelectronics N.V. Efficient interpolator for high speed timing recovery
US6243729B1 (en) 1998-12-31 2001-06-05 Texas Instruments Incorporated Digital finite-impulse-response (FIR) filter with a modified architecture based on high order Radix-N numbering
US6366944B1 (en) * 1999-01-15 2002-04-02 Razak Hossain Method and apparatus for performing signed/unsigned multiplication
US6107821A (en) 1999-02-08 2000-08-22 Xilinx, Inc. On-chip logic analysis and method for using the same
US6823000B1 (en) 1999-02-26 2004-11-23 Texas Instruments Incorporated Method and apparatus for optimal dot product calculation
US6323680B1 (en) 1999-03-04 2001-11-27 Altera Corporation Programmable logic device configured to accommodate multiplication
US6407576B1 (en) 1999-03-04 2002-06-18 Altera Corporation Interconnection and input/output resources for programmable logic integrated circuit devices
JP2002538562A (ja) * 1999-03-04 2002-11-12 アルテラ・コーポレーション 桁上げ選択加算付プログラマブルロジックデバイス
US6480980B2 (en) 1999-03-10 2002-11-12 Nec Electronics, Inc. Combinational test pattern generation method and apparatus
US6557092B1 (en) * 1999-03-29 2003-04-29 Greg S. Callen Programmable ALU
WO2000058857A2 (en) 1999-03-30 2000-10-05 Siemens Energy & Automation, Inc. Programmable logic controller method, system and apparatus
EP1058185A1 (en) 1999-05-31 2000-12-06 Motorola, Inc. A multiply and accumulate apparatus and a method thereof
JP2000347834A (ja) * 1999-06-08 2000-12-15 Japan Science & Technology Corp Sw数系による演算回路
US6246258B1 (en) 1999-06-21 2001-06-12 Xilinx, Inc. Realizing analog-to-digital converter on a digital programmable integrated circuit
US6438570B1 (en) 1999-07-21 2002-08-20 Xilinx, Inc. FPGA implemented bit-serial multiplier and infinite impulse response
US6542000B1 (en) * 1999-07-30 2003-04-01 Iowa State University Research Foundation, Inc. Nonvolatile programmable logic devices
US6600788B1 (en) 1999-09-10 2003-07-29 Xilinx, Inc. Narrow-band filter including sigma-delta modulator implemented in a programmable logic device
US6557096B1 (en) * 1999-10-25 2003-04-29 Intel Corporation Processors with data typer and aligner selectively coupling data bits of data buses to adder and multiplier functional blocks to execute instructions with flexible data types
US6725441B1 (en) * 2000-03-22 2004-04-20 Xilinx, Inc. Method and apparatus for defining and modifying connections between logic cores implemented on programmable logic devices
US6574762B1 (en) 2000-03-31 2003-06-03 Lsi Logic Corporation Use of a scan chain for configuration of BIST unit operation
US6362650B1 (en) 2000-05-18 2002-03-26 Xilinx, Inc. Method and apparatus for incorporating a multiplier into an FPGA
US6407694B1 (en) 2000-06-14 2002-06-18 Raytheon Company General purpose filter
US6476636B1 (en) * 2000-09-02 2002-11-05 Actel Corporation Tileable field-programmable gate array architecture
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
US7346644B1 (en) * 2000-09-18 2008-03-18 Altera Corporation Devices and methods with programmable logic and digital signal processing regions
JP2004512716A (ja) 2000-10-02 2004-04-22 アルテラ・コーポレイション 専用プロセッサ装置を含むプログラマブルロジック集積回路装置
EP1220108A3 (en) 2000-10-26 2005-01-12 Cypress Semiconductor Corporation Programmable circuit
JP2002157114A (ja) * 2000-11-20 2002-05-31 Hitachi Ltd 乗算器及びそれを搭載した集積回路装置
US6483343B1 (en) 2000-12-29 2002-11-19 Quicklogic Corporation Configurable computational unit embedded in a programmable device
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
US20030088757A1 (en) * 2001-05-02 2003-05-08 Joshua Lindner Efficient high performance data operation element for use in a reconfigurable logic environment
EP1271782B1 (en) 2001-06-29 2005-05-18 STMicroelectronics Pvt. Ltd FPGA with at least two different and independently configurable memory structures
US6874079B2 (en) * 2001-07-25 2005-03-29 Quicksilver Technology Adaptive computing engine with dataflow graph based sequencing in reconfigurable mini-matrices of composite functional blocks
US6904446B2 (en) * 2001-08-24 2005-06-07 Freescale Semiconductor, Inc. Floating point multiplier/accumulator with reduced latency and method thereof
US6965249B2 (en) * 2001-10-15 2005-11-15 Altera Corporation Programmable logic device with redundant circuitry
US6924663B2 (en) 2001-12-28 2005-08-02 Fujitsu Limited Programmable logic device with ferroelectric configuration memories
US6700581B2 (en) * 2002-03-01 2004-03-02 3D Labs Inc., Ltd. In-circuit test using scan chains
US7200735B2 (en) 2002-04-10 2007-04-03 Tensilica, Inc. High-performance hybrid processor with configurable execution units
US6781408B1 (en) * 2002-04-24 2004-08-24 Altera Corporation Programmable logic device with routing channels
US6970012B2 (en) 2002-06-10 2005-11-29 Xilinx, Inc. Programmable logic device having heterogeneous programmable logic blocks
US7471643B2 (en) * 2002-07-01 2008-12-30 Panasonic Corporation Loosely-biased heterogeneous reconfigurable arrays
US7464310B2 (en) * 2002-09-30 2008-12-09 Broadcom Corporation Programmable state machine of an integrated circuit
US7571303B2 (en) * 2002-10-16 2009-08-04 Akya (Holdings) Limited Reconfigurable integrated circuit
US7103814B2 (en) * 2002-10-25 2006-09-05 International Business Machines Corporation Testing logic and embedded memory in parallel
US6971083B1 (en) 2002-11-13 2005-11-29 Altera Corporation Method for programming programmable logic device with blocks that perform multiplication and other arithmetic functions
US6774669B1 (en) 2002-12-30 2004-08-10 Actel Corporation Field programmable gate array freeway architecture
US7975197B2 (en) 2003-03-31 2011-07-05 Lsi Corporation On-chip scan clock generator for ASIC testing
US7269617B1 (en) * 2003-11-12 2007-09-11 Altera Corporation Hybrid multipliers implemented using DSP circuitry and programmable logic circuitry
US7698358B1 (en) * 2003-12-24 2010-04-13 Altera Corporation Programmable logic device with specialized functional block
US7467177B2 (en) * 2003-12-29 2008-12-16 Xilinx, Inc. Mathematical circuit with dynamic rounding
EP1700231B1 (en) * 2003-12-29 2012-10-17 Xilinx, Inc. Integrated circuit with cascading dsp slices
US7567997B2 (en) * 2003-12-29 2009-07-28 Xilinx, Inc. Applications of cascading DSP slices
US7467176B2 (en) 2004-02-20 2008-12-16 Altera Corporation Saturation and rounding in multiply-accumulate blocks
US7061268B1 (en) 2004-03-15 2006-06-13 Altera Corporation Initializing a carry chain in a programmable logic device
US7180324B2 (en) * 2004-05-28 2007-02-20 Altera Corporation Redundancy structures and methods in a programmable logic device
US8112466B2 (en) * 2004-09-28 2012-02-07 Sicronic Remote Kg, Llc Field programmable gate array
US7755387B2 (en) * 2004-11-01 2010-07-13 Sicronic Remote Kg, Llc FPGA having a direct routing structure
WO2006076276A2 (en) * 2005-01-14 2006-07-20 Velogix, Inc. Configurable dedicated logic cells in programmable logic and routing blocks with dedicated lines and local connections
US7230451B1 (en) * 2005-08-22 2007-06-12 Altera Corporation Programmable logic device with routing channels
WO2007052499A1 (ja) 2005-11-07 2007-05-10 Matsushita Electric Industrial Co., Ltd. 多入力符号化加算器、デジタルフィルタ、信号処理装置、合成装置、合成プログラム、および合成プログラム記録媒体
US7542846B2 (en) 2006-02-07 2009-06-02 Alpine Electronics, Inc. Navigation system utilizing XML/SVG map data converted from geographic map data and layered structure of XML/SVG map data based on administrative regions
US8266199B2 (en) 2006-02-09 2012-09-11 Altera Corporation Specialized processing block for programmable logic device
US7368942B1 (en) * 2006-02-09 2008-05-06 Altera Corporation Dedicated resource interconnects
US7836117B1 (en) * 2006-04-07 2010-11-16 Altera Corporation Specialized processing block for programmable logic device
US7746112B1 (en) * 2009-04-02 2010-06-29 Xilinx, Inc. Output structure with cascaded control signals for logic blocks in integrated circuits, and methods of using the same
US8495125B2 (en) 2009-05-27 2013-07-23 Microchip Technology Incorporated DSP engine with implicit mixed sign operands
EP2534583A1 (en) * 2009-12-01 2012-12-19 Queen's University At Kingston Method and system for a run-time reconfigurable computer architecture
US8458243B1 (en) * 2010-03-03 2013-06-04 Altera Corporation Digital signal processing circuit blocks with support for systolic finite-impulse-response digital filtering
US20120290819A1 (en) * 2011-05-09 2012-11-15 Altera Corporation Dsp block with embedded floating point structures

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4972356A (en) * 1989-05-01 1990-11-20 Motorola, Inc. Systolic IIR decimation filter
WO1992000561A1 (en) * 1990-06-27 1992-01-09 Luminis Pty Ltd. A generalized systolic ring serial floating point multiplier
WO1997014090A1 (en) * 1995-10-10 1997-04-17 Chromatic Research, Inc. Structure and method for signed multiplication using large multiplier having two embedded signed multiplers
US6298366B1 (en) * 1998-02-04 2001-10-02 Texas Instruments Incorporated Reconfigurable multiply-accumulate hardware co-processor unit
CN1973283A (zh) * 2000-03-31 2007-05-30 英特尔公司 用于有效交替操作方式的dsp执行单元
US7119576B1 (en) * 2000-09-18 2006-10-10 Altera Corporation Devices and methods with programmable logic and digital signal processing regions
US7287051B1 (en) * 2003-10-03 2007-10-23 Altera Corporation Multi-functional digital signal processing circuitry
US20060158219A1 (en) * 2005-01-14 2006-07-20 Flexlogics, Inc. Programmable logic and routing blocks with dedicated lines
CN101042583A (zh) * 2006-02-09 2007-09-26 阿尔特拉公司 用于可编程逻辑器件的专门处理块
CN101196806A (zh) * 2006-12-05 2008-06-11 阿尔特拉公司 用于可编程逻辑器件的大型乘法器

Also Published As

Publication number Publication date
EP2404234B1 (en) 2013-05-01
JP5657580B2 (ja) 2015-01-21
CN102422260B (zh) 2015-04-01
US20100228807A1 (en) 2010-09-09
WO2010102007A2 (en) 2010-09-10
EP2624125A1 (en) 2013-08-07
WO2010101985A1 (en) 2010-09-10
EP2404234A1 (en) 2012-01-11
JP2012519914A (ja) 2012-08-30
JP5564520B2 (ja) 2014-07-30
EP2404235A2 (en) 2012-01-11
US8805916B2 (en) 2014-08-12
JP2012519913A (ja) 2012-08-30
WO2010102007A3 (en) 2010-11-25
CN102422259B (zh) 2015-08-12
CN102422260A (zh) 2012-04-18
EP2404235B1 (en) 2013-07-10

Similar Documents

Publication Publication Date Title
CN102422259A (zh) 在电路的模块之间具有可选使用、专用连接的模块化数字信号处理电路
US10613831B2 (en) Methods and apparatus for performing product series operations in multiplier accumulator blocks
US8751551B2 (en) Modular digital signal processing circuitry with optionally usable, dedicated connections between modules of the circuitry
US7346644B1 (en) Devices and methods with programmable logic and digital signal processing regions
US6771094B1 (en) Devices and methods with programmable logic and digital signal processing regions
US10417004B2 (en) Pipelined cascaded digital signal processing structures and methods
JP5956820B2 (ja) 埋込み浮動小数点構造を有するdspブロック
US7437401B2 (en) Multiplier-accumulator block mode splitting
US7119576B1 (en) Devices and methods with programmable logic and digital signal processing regions
CN109792246A (zh) 具有用于执行浮点快速傅立叶变换和复数乘法的专用处理块的集成电路
EP0137386B1 (en) Digital multiplying circuit
US4142242A (en) Multiplier accumulator
EP3104524A2 (en) Resource-saving circuit structures for deeply pipelined systolic finite impulse response filters
CN107045434B (zh) 一种fpga中多功能硬件专用乘法器及fpga芯片
CN1658152B (zh) 乘法器-累加器块模式划分
US6992502B2 (en) Configurable electronic circuit, in particular one dedicated to arithmetic calculations
US7565387B1 (en) Systems and methods for configuring a programmable logic device to perform a computation using carry chains
CN114756201A (zh) 用于实现基4 Booth乘法器的多位选择器及其实现方法、运算电路及芯片
Calderon et al. Reconfigurable multiple operation array
JPH06214759A (ja) 多入力加算器およびそれを用いた配列型桁上げ保存加算器
JPH0327436A (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