CN1658152A - 乘法器-累加器块模式划分 - Google Patents
乘法器-累加器块模式划分 Download PDFInfo
- Publication number
- CN1658152A CN1658152A CN 200410005849 CN200410005849A CN1658152A CN 1658152 A CN1658152 A CN 1658152A CN 200410005849 CN200410005849 CN 200410005849 CN 200410005849 A CN200410005849 A CN 200410005849A CN 1658152 A CN1658152 A CN 1658152A
- Authority
- CN
- China
- Prior art keywords
- multiplier
- circuit
- multiplication
- multipliers
- mac 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
Links
Images
Landscapes
- Mobile Radio Communication Systems (AREA)
- Complex Calculations (AREA)
Abstract
提供了一种可编程逻辑器件,其包括一种具有模式划分能力的MAC块。可以同时地执行不同的操作模式,借此,所述MAC块中的乘法器及其他DSP电路可以被指定为不同的操作模式。举例来说,一个乘法器可被用于执行一种乘法模式,而同时另外两个乘法器可被用于执行对两个乘法器求和的模式。
Description
技术领域
本发明涉及乘法器-累加器(“MAC”)块,更具体来讲,本发明涉及一种在MAC块中使用乘法器的更有效的方式。
背景技术
往往被称为数字信号处理(“DSP”)块的MAC块是实现一组诸如算术组件之类的乘法器及其他组件的DSP电路。MAC块可以被用于许多不同类型应用的处理中,包括绘图应用、网络应用、通信应用以及视频应用。由于MAC块以及乘法器一般说来具有多用性,故而可编程逻辑器件的制造商,例如加利福尼亚州圣约瑟(San Jose,California)的Altera公司,最近已经开始制造除可编程序逻辑电路之外还包含以MAC块形式的硬件DSP电路的可编程逻辑器件。可编程逻辑器件的MAC块提供这样一种方式:可以使用可编程逻辑器件上更少的空间来实现用户设计中的某一功能性,并且由于DSP电路相对于可编程序逻辑电路的特质,而产生了更快速的执行时间。
MAC块是由若干乘法器和加法器组成的。每当需要使用一特定MAC块中的一个或多个乘法器时,基于为特定实现方式使用了多少个乘法器,来将整个MAC配置为一种操作模式。例如,如果MAC块总共包含四个18位×18位乘法器,并且如果特定设计要求使用单个18位×18位乘法器,那么使MAC块进入这样一种操作模式:只能以18位×18位乘法模式来单独地使用每一个18位×18位乘法器。因此,剩余的三个乘法器被限制为仅仅以18位×18位乘法模式来使用。这导致对MAC块中剩余乘法器的潜在使用的低效率限制。
因此,合乎需要的是实现一种MAC块,以便可以同时以不同操作模式使用MAC块中的乘法器。
发明内容
因此,本发明的目的之一是提供一种MAC块,其中可以在MAC块中的乘法器之中实现模式划分。
本发明的这一及其他目的还通过提供一种具有一个或多个MAC块的可编程逻辑器件来实现,其中可以同时地执行不同模式。组成MAC块的乘法器及其他DSP电路(例如,诸如加法器之类的算术电路)可以在任何特定时间点被指定为不同的操作模式。例如,在一个具有四个18位×18位乘法器的MAC块的优选结构中,一个18位×18位乘法器可被用于执行18位×18位乘法模式,而同时其他两个乘法器可被用于执行两个18位×18位乘法模式的求和。可以基于可用资源同时地执行任何这样的适当模式。
可使用任何适当的控制信号和控制电路来控制在MAC块中执行哪一模式。例如,控制信号可以基于正被执行的模式是否要求此类电路,来指示是否将一特定乘法器的输出输入到加法器/减法器里。因为可以根据本发明执行任何适当的模式,所以很清楚的是,可以使用任何适当的控制信号和控制电路。还可理解的是,可以使用不同的控制信号和不同的控制电路来执行相同的模式。
附图说明
根据详细说明、并结合附图,本发明的上述及其他目的将变得明显,其中同样的附图标记始终适用于同样的部分,并且其中:
图1是一例示性的MAC块的略图;
图2是一例示性的MAC块的框图,其中四个n位×n位乘法器是作为四个n位×n位乘法器来执行的;
图3是一例示性的MAC块的框图,其中四个n位×n位乘法器是作为八个n/2位×n/2位乘法器来执行的;
图4是一个例示性的根据本发明的18位×18位乘法模式执行过程的示意图;
图5是一个例示性的根据本发明的52位累加模式执行过程的示意图;
图6是一个例示性的根据本发明的两个18位×18位乘法模式求和执行过程的示意图;
图7是一个例示性的根据本发明的四个18位×18位乘法模式求和执行过程的示意图;
图8是一个例示性的根据本发明的9位×9位乘法模式执行过程的示意图;
图9是一个例示性的根据本发明的9位×9位乘法模式求和执行过程的示意图;
图10是一个例示性的根据本发明的四个9位×9位乘法模式求和执行过程的示意图;
图11是一个例示性的根据本发明的36位×36位乘法模式执行过程的示意图;
图12是具有例示性的根据本发明的控制信号的MAC块的框图;
图13是一个例示性的具有至少一个根据本发明的MAC块的可编程逻辑器件的框图;以及
图14是一个例示性的采用根据本发明的可编程逻辑器件的系统的框图。
具体实施方式
本发明提供一种MAC块,它允许它的乘法器、其他电路、或者两者可同时在一个或多个操作模式中被划分。所述MAC块的一个或多个乘法器可以被指定以一种模式(例如乘法模式)工作,而所述MAC块的其他一个或多个乘法器可以被指定以另一种模式(例如乘法模式的求和)工作。本发明允许单一MAC块支持要求不同数目乘法器的不同模式。例如,可以将两个乘法器用于一种模式,反之也可仅仅将一个乘法器用于第二种模式。
本发明特别适用于包括集成DSP电路的可编程逻辑器件。由于需要此类设备的灵活性,所以允许MAC块同时以超过一种的模式工作使得可以对特定可编程逻辑器件内可用的DSP资源进行更有效地利用。
可以通过使用任何适当的电路和任何适当的控制信号来实现允许对MAC块以超过一种的不同模式进行操作。
根据本发明的MAC块可以以任何适当的模式工作。例如,在MAC块具有四个18位×18位乘法器的情况下,这意味着两个18位二进制被乘数输入的乘积、或者两对9位二进制被乘数输入(被串接为一对18位数字)的两个乘积(串接为一个36位数字),均可以确定为一个36位二进制输出,适当的模式例如包括、但不局限于:18位×18位乘法器,52位累加器,累加器初始化,两个18位×18位乘法器的求和,四个18位×18位乘法器的求和,9位×9位乘法器,两个9位×9位乘法器的求和,四个9位×9位乘法器的求和,36位×36位乘法器,或者任何其他适当的模式。有时,所列举的模式在此分别被引用为模式1-8,其中累加器初始化是模式2A。很清楚的是,这些仅仅是可以被根据本发明的MAC块支持的例示性模式。可以支持任何其他适当的模式。可以基于任何适当的系数确定这样的模式支持,举例来说,包括应用需要,可用乘法器尺寸,乘法器数目,或者任何其他适当的系数。举例来说,显然如果MAC块包括八个9位×9位乘法器的话,可以使用不同的模式(例如,八个9位×9位乘法的求和)。
可以同时以不同的模式使用一个MAC块中的不同乘法器,以避免这样的情况:一个特定的模式使用MAC块中的相对很少的乘法器,而令其他乘法器空闲。
在本发明的某些实施例中,一个MAC块可以被划分为两个或更多乘法器部分。可以根据所述部分来指定模式,借此在乘法器的一个部分中的所有乘法器以相同的模式工作。该配置可以提供控制信号的更简单的体系结构,并且提供灵活性和简单性之间的平衡。可以基于希望使用的模式定义部分。举例来说,如果以特定模式使用MAC块中的所有乘法器,那么将不进行划分。如果乘法器中的一半需要用于一具体的模式,那么所述MAC块可以被划分为两个部分,每一部分具有一半乘法器。然后,如果期望的话,所述两个部分中每个部分可以在不同的模式下进行工作。在一个适当的处理办法中,可以将一个部分进一步地划分。举例来说,一个MAC块可以被划分为三个模式,其中,所述模式之一使用一半乘法器,第二模式使用四分之一的乘法器,而第三模式使用四分之一的乘法器。一个MAC块可以被划分为四个模式,其中每一个模式使用四分之一的可用乘法器。可以根据本发明实现任何这样的适当模式。如果需要MAC块中的所有乘法器,那么所述MAC块将在单一模式下工作。
为了简洁和清晰而不是为了限制,并且不失一般性,在此主要依据由四个18位×18位规格的乘法器构成的MAC块说明本发明。这一配置的例示性的本质将被理解,并且很清楚的是,本发明的教导可以被应用于具有任何适当构件电路配置的任何其他适当类型的MAC块。
图1示出上述类型的MAC块10的一个例示性的实施例中的电路。具有输入101-108的MAC块10包括四个乘法器11、12、13和14。乘法器11-14中的每一个可以是18位×18位乘法器。每一个MAC块10最好还包括若干加法器/减法器15、16、17和18,这些加法器/减法器提供各乘法器11-14的输出的加减性能以及累加器功能。
多工器119允许各乘法器11-14共享一个输入101。类似地,多工器109和寄存器110允许每一乘法器输入111、112、121、122、131、132、141、142被寄存或者不被寄存。此外,当与多工器190一起使用的时候,寄存器110能够形成允许串联输入数据的输入移位寄存器链。这样的输入移位寄存器链甚至可以扩展为其他不同的专门化乘法器。各功能可以在160、165、170、175、180、185、195输出。
根据本发明,如果用户设计包括乘法以及其他算术电路元件,那么这些可以被称为“MAC元件”的元件最好被自动地集合成一个MAC块,例如MAC块10。被集合在一起的MAC元件可以在MAC块内执行专门化的乘法、跟随有加法的乘法、跟随有减法的乘法以及跟随有累加的乘法的功能。
在图2中,示出一个基于纵向排列的四个乘法器组织方式的MAC块。四个乘法器电路136可以被纵向堆叠,以便潜在地并行操作。每一个乘法器电路136可以包括一个n位×n位乘法器(例如,18位×18位乘法器),来提供n位×n位乘积。每一个乘法器电路的输入可以被提供为用于被乘数的n位信息,并被提供给用于乘法操作的乘法器。每一个乘法器电路136可以具有一个输出,所述输出可以是2n位的宽度。每一个乘法器电路136可以提供一个输出下行流,所述输出下行流是乘法操作的结果。每一个n位×n位乘法器电路136可以支持两个互补的有符号的或者无符号的乘法。动态有符号/无符号控制输入156可以接收输入信号,所述输入信号控制用于乘法器电路136的乘法操作的乘法器和被乘数的符号。
MAC块192可以包括三组寄存器电路。MAC块192可以包括输入寄存器电路134,流水线寄存器电路和输出寄存器电路154。如果期望的话,可以在乘法器电路136里面、在加减累加电路144里面、和/或在加减电路140里面包括附加的流水线寄存器电路,以便增加速度。输出寄存器电路154可以包括大致与输入寄存器电路134中的寄存器数目相同的寄存器。输出寄存器电路154中包括的寄存器的数目足以寄存MAC块192的输出(例如,为MAC块192支持的全部模式寄存MAC块192的输出)。根据正在将什么执行过程或者结构用于MAC块192或者根据由MAC块192提供的功能性范围,输出寄存器的数目可以小于、等于或者大于输入寄存器的数目。
为了清晰和简洁,图2中没有示出流水线寄存器电路,在此处所述的其他一些附图中也没有示出。如上所述,如果要求的话,可以在MAC块192中包括输入寄存器电路134、流水线寄存器电路或者输出寄存器电路154。可以为输入寄存器电路134、流水线寄存器电路或者输出寄存器电路154提供独立的时钟和清除信号组158。可以为输入寄存器电路134和流水线寄存器电路提供两组时钟和清除信号158,并为输出寄存器电路154提供两组。输入寄存器电路134可以包括扫描链,并且可以包括与所述扫描链一起使用的附加电路,以便允许所述扫描链在某些数字信号处理功能中、例如在提供FIR滤波器时被用作逻辑线路。输入寄存器电路134可以包括8n个寄存器(例如,144个寄存器),用于8n个数据输入和q个寄存器(例如,4个寄存器),所述数据输入和寄存器用于乘法器电路136的有符号/无符号控制,并用于加减累加电路144的加减控制。每一个寄存器可以具有可编程的反向能力,用于当期望的时候提供逻辑反向,或者当乘法器的输入小于n位时,将寄存器输入的未用位反向。
输出寄存器电路154可以具有对于加减累加电路144的反馈路径161,用于累加操作。可以通过在可由随机存取存储器控制所控制的那些电路中使用可编程序逻辑连接器(“PLC”)而省略三组寄存器——输入寄存器电路134、流水线寄存器电路和输出寄存器电路154中的任何一个。所述流水线寄存器电路可以包括大致与输入寄存器电路134中的寄存器数目相同的寄存器。
在MAC块192的左方示出的接口电路133可以供给MAC块192的输入,这些输入可以作为输入寄存器电路134的输入。输入寄存器电路134可以包括八个输入寄存器,每一个都具有n位输入,并且都供给四个n位×n位乘法器电路136的输入。
加减累加电路144可以具有连接,用于从乘法器电路136以及从返回路径161接收输入。如果期望的话,加减累加电路144可以被配置为将输出从乘法器电路136送往加法器电路140。乘法器电路136的输出可以被路由到输出选择电路152或者输出寄存器电路154,而不经过加减累加电路144和/或加减电路140。为了清晰和简洁而不是为了限制,并且不失一般性,在此主要在加法器电路的环境中说明了加减电路140。加减累加电路144均可以被配置为执行两个2n位输入的两个互补加法,以产生(2n+1)位输出。加减累加电路144均可以被配置为执行两个2n位输入的两个互补减法,以产生(2n+1)位输出。加减累加电路144均可以被配置为一个2n位输入的累加,并具有n+y位输出。动态加法/减法控制输入162和164可以被输入给加减电路144,所述加减电路144用于在加减法操作之间切换,并用于处理复数乘法。对于复数乘法,可能需要动态加法/减法输入162和164,所述复数乘法包含涉及复数的乘法。两个复数的复数乘法往往可能涉及加法运算和减法运算两者。
加减累加电路144的输出可以被路由至输出选择电路152或者输出寄存器154,而不经过加法器电路140。如果期望的话,加法器电路140可以被配置为传送来自加减累加电路144的输入(例如,两个互补加法的(n+1)位输出,累加的(n+y)位输出等等)。加法器电路140可以具有这样一个输出,该输出是对来自加减累加电路144的输出的相加结果。输出选择电路152可以具有这样的输入,该输入来自加法器电路140。输出选择电路152可以选择输出选择电路152的这些输入中的哪些个被传送到输出寄存器电路154。输出寄存器电路154可以供给在MAC块192右边示出的接口电路133的输入。被分配用于连接MAC块192中的电路的局部互连资源的百分比,随着从MAC块192的左边至右边在数字信号处理功能性方面的复杂性和变化的增加而增加。
参照图2,在其他组件中,MAC块192的“上半部分”可以包括MAC块192的顶部示出的两个乘法器36和加法器/减法器144。参照图2,在其他组件中,MAC块192的“下半部分”可以包括MAC块192的底部示出的两个乘法器136和加法器/减法器。
MAC块192可以被配置为具有一个基于组织方式的n/2位×n/2位的乘法器。举例来说,现在参考图3,MAC块192可以包括被配置为包括八个n/2位×n/2位乘法器的乘法器电路136。可以基于图2中的乘法器电路136的四个n位×n位乘法器来配置所述八个n/2位×n/2位乘法器。
如果期望的话,可以实施MAC块192,以致能够被配置为具有一个基于p位×p位乘法器的组织方式,以及被配置为具有一个或多个基于p/m位×p/m位乘法器的组织方式,其中p,m和p/m是整数。如上所述,这一结构至少部分地基于局部互连资源的限制。可以选择不同的组织方式,并且MAC块192可以被配置为某些或者全部的基于p/m位×p/m位乘法器的组织方式。
MAC块192可以包括被配置为提供四个加法或者减法单元的加减累加电路144。每一个加法或者减法单元可以对两个n位输入执行基于加法的操作,并且具有(n+1)位输出。如果期望的话,加减累加电路144可以被配置为传送n/2位×n/2位乘法操作的输出。乘法器电路136的输出可以被路由到输出选择电路152或者输出寄存器电路154,而不经过加减累加电路144或者加法器电路140。加减累加电路144可以产生所述n/2位×n/2位乘法操作的特定输出对的加法(或者减法)结果。
MAC块192可以包括被配置为提供两个加法器的加法器电路140。如果期望的话,加法器电路140可以传送被从加减累加电路144供给给加法器电路140的输入。加减累加电路144的输出可以被路由到输出选择电路152或者输出寄存器电路154,而不经过加法器电路140。加法器电路140可以产生这样两个输出,所述两个输出是对来自加减累加电路144的一对特定输出的相加结果。
MAC块192的局部互连资源可以被配置为:使用与基于n位×n位乘法器的组织方式相同的输入-输出接口电路133和支持电路(例如,乘法器电路136,加法器电路140,等等)来实施基于n/2位×n/2位乘法器的组织方式。MAC块192的局部互连资源可以被配置为包括某些蝶形交叉连接模式,用于在基于n/2位×n/2位乘法器的组织方式中形成适当的互连。
可以实施所述蝶形交叉连接模式,以在输入寄存器电路134和乘法器电路136之间选择互连。所述蝶形交叉连接模式可用于让一对n位输入的n/2个高阶位彼此相乘,并让一对n位输入中的n/2个低阶位彼此相乘。可以实施蝶形交叉连接模式,以在乘法器电路136和加减累加电路144之间选择互连。如上所述,加减累加电路144可以被配置为包括四个加法(或者减法)单元。每一个加法(或者减法)单元可以具有来自乘法器电路136的两个n位输入。所述蝶形交叉连接模式可被用于让每一个加法(或者减法)单元的两个输入或者是由乘法器电路136的乘法器执行的高阶位乘法的结果,或者是由乘法器电路136的乘法器执行的低阶位乘法的结果。蝶形交叉连接模式还可以用于加减累加电路144和加法器电路140之间的互连。加法器电路140可以被划分为两个加法器(例如,两个独立的加法器)。所述蝶形交叉连接模式可被用于将对高阶位运算的结果馈送到加法器电路140的上半部分,而将对低阶位运算的结果馈送到加法器电路140的下半部分。在基于n/2位×n/2位乘法器的组织方式中,累加器功能性可能不生效。累加器功能性可能不生效是因为:MAC块192的资源可能基本上被消耗在允许实现基于n/2位×n/2位乘法器的组织方式方面。
所述蝶形交叉连接模式是用于将单一乘法器电路分解为多个更小的乘法器电路的示例性技术,是用于管理数据以便使多个更小乘法器电路的输出被适当地加在一起(例如,将低阶位与低阶位相加)的示例性技术,或者是用于管理数据以便补偿MAC块的资源方面限制的示例性技术。由于MAC块的电路被铺设的方式,或者由于被选择用于电路的布局,而使用这样的交叉连接模式处理连接。所述蝶形交叉连接模式是作为例示性的实例提供的。也可以使用其他技术。举例来说,可以以消除对蝶形交叉连接模式的需要的方式、或者以可以要求不同类型的交叉连接模式的方式来分解n位×n位乘法器。因此,可以使用其他交叉连接或者连接模式实现MAC块192。
MAC块192的灵活性和可配置性可以支持一组操作模式的体系结构。如果期望的话,图2中的MAC块192和图3中的MAC块192均可以是一个MAC块的独立实施例,所述MAC块均具有其自己的操作模式组。在一些实施例中,可以在具有基于n位×n位乘法器的组织方式或者基于n/2位×n/2位乘法器的组织方式、和具有与各自相关的操作模式之间配置MAC块192。可以使用存储器位来配置MAC块192的模式,令所述模式能由用户使用。
图4-11是根据本发明的MAC块可以支持的不同操作模式的例示性执行过程的框图。更具体来讲,图4-11中的模式执行过程示出了可以被要求用来实现每一个分别的模式的主MAC块组件。举例来说,如果一个特定的模式执行过程要求单一18位×18位乘法器,那么剩余的乘法器可根据本发明的模式划分特征而被用于实现其他模式。
图4是MAC块中的一个18位×18位乘法模式的例示性执行过程的框图。正如所示出的,单一18位×18位乘法执行过程使用一个18位×18位乘法器404,所述乘法器具有被乘数和乘法器输入400和402,以及乘积输出406。在典型的MAC块中,所示出的执行过程将允许在单一MAC块中同时地执行四个此类乘法模式,每一个使用四个可用乘法器中的一个。根据本发明的模式划分特征,在乘法器404正被用于执行所述18位×18位乘法模式的同时,剩余的三个乘法器可被用于执行任何其他适当的模式。
图5是MAC块中的一个52位累加模式的例示性执行过程的框图。正如所示出的,单一52位累加模式执行过程使用一个18位×18位乘法器504,所述乘法器504具有输入500和502,以及输出506。加法器/减法器508被用来执行加法运算,以便更新寄存器510中存储的运算总和。寄存器510的输出512被反馈到加法器/减法器508里,以便与乘法器504的下一输出506相加。在典型的MAC块中,当使用诸如图2中的MAC块192之类的MAC块的时候,所示出的执行过程将允许在单一MAC块中同时地执行两个这样的累加模式,每一个使用四个可用乘法器中的一个(即,损耗乘法器中的两个)。这是由于图2中的MAC块192中的可用算术电路受限投入工作。然而,根据本发明的模式划分特征,在已经使用了不依赖于所投入工作的电路的累加模式(例如18位×18位乘法模式)的同时,剩余的乘法器可被用于执行任何其他适当的模式。这允许更有效地利用MAC块资源。
图6是在MAC块中的对两个18位×18位乘法器(例如或者上半部分或者下半部分的两个乘法器)的乘积求和的模式的例示性执行过程的框图。正如所示出的,单独一个用于对两个乘法器的乘积求和的模式的执行过程使用两个乘法器608和610,所述乘法器具有输入600,602,604,和606。乘积612和614被输入到加法器/减法器616里,所述加法器/减法器616提供输出618。在典型的MAC块中,所示出的执行过程将允许在单一MAC块中同时地执行两个这样的对两个乘法器的乘积求和的模式,每一个使用四个可用乘法器中的两个。根据本发明的模式划分特征,在乘法器608和610正被用于执行对所述两个乘法器的乘积求和的模式的同时,剩余的两个乘法器可被用于执行任何其他适当的模式。
图7是在MAC块中对四个18位×18位乘法器的乘积求和的模式的例示性执行过程的框图。正如所示出的,单独一个对四个乘法器的乘积求和的模式的执行过程使用四个乘法器716,718,720和722,所述乘法器具有输入700,702,704,706,708,710,712和714。乘法器716和718可以是上半部分乘法器,而乘法器720和722可以是下半部分乘法器。乘积724和726被输入到第一级加法器/减法器732里。乘积728和730被输入到第一级加法器/减法器734里。来自加法器/减法器732和736的输出736和738被输入到第二级加法器/减法器740里,所述第二级加法器/减法器740产生输出742。因为MAC块中的全部乘法器正在用于图7中所示的执行过程,所以根据本发明没有别的模式可以同时地执行。
图8是MAC块中的一个9位×9位乘法模式的例示性执行过程的框图。正如所示出的,单个乘法模式使用单个18位×18位乘法器804,所述18位×18位乘法器804具有输入800和802,以及输出乘积806。在典型的MAC块(例如,在图3中的MAC块192)中,所示出的执行过程将允许在单一MAC块中同时地执行八个这样的9位×9位乘法模式(即,每一个18位×18位乘法器可被用于实现两个9位×9位乘法器)。根据本发明的模式划分特征,在乘法器804正被用于执行所述9位×9位乘法模式的同时,剩余的三个18位×18位乘法器以及一个9位×9位乘法器可被用于执行任何其他适当的模式。很清楚的是,其他模式不必涉及9位×9位乘法器(即,他们可能涉及18位×18位乘法)。
图9是在MAC块中对两个9位×9位乘法器的乘积求和的模式的例示性执行过程的框图。正如所示出的,单独的一个对两个9位×9位乘法器的乘积求和的模式的执行过程使用两个乘法器908和910(例如,或者是两个上半部分的18位×18位乘法器,或者是两个下半部分的18位×18位乘法器),所述乘法器908和910具有输入900,902,904和906。乘积912和914被输入到加法器/减法器916里,所述加法器/减法器916提供输出918。在典型的MAC块(例如,在图3中的MAC块192)中,所示出的执行过程将允许在单一MAC块中同时地执行四个这样的对9位×9位乘法器的乘积求和的模式(即,因为每一个18位×18位乘法器可以实现两个9位×9位乘法器)。根据本发明的模式划分特征,在乘法器908和910正被用于执行对所述两个9位×9位乘法器的乘积求和的模式的同时,剩余的两个18位×18位乘法器和两个9位×9位乘法器可被用于执行任何其他适当的模式。
图10是在MAC块中对四个9位×9位乘法器的乘积求和的模式的例示性执行过程的框图。正如所示出的,单独一个对四个9位×9位乘法器的乘积求和的模式的执行过程使用四个18位×18位乘法器1016,1018,1020,和1022,所述18位×18位乘法器具有输入1000,1002,1004,1006,1008,1010,1012和1014。举例来说,乘法器1016和1018可以是上半部分的乘法器,而乘法器1020和1022可以是下半部分的乘法器。乘积1024和1026被输入到第一级加法器/减法器1032里。乘积1028和1030被输入到第一级加法器/减法器1034里。来自加法器/减法器1032和1036的输出1036和1038被输入到第二级加法器/减法器1040里,所述第二级加法器/减法器1040产生输出1042。在典型的MAC块(例如,在图3中的MAC块192)中,所示出的执行过程将允许在单一MAC块中同时地执行两个这样的对四个9位×9位乘法器的乘积求和的模式(即,因为每一个18位×18位乘法器可以实现两个9位×9位乘法器)。根据本发明的模式划分特征,在乘法器1016、1018、1020和1022正被用于执行对四个9位×9位乘法器的乘积求和的模式的同时,剩余的四个9位×9位乘法器可被用于执行任何其他适当的模式。很清楚的是,如果缺少资源(例如,加法器),那么某些模式可能不与图10中的那些模式同时地执行。
图11是MAC块中的36位×36位乘法模式的例示性执行过程的框图。基于四个18位×18位乘法器和加法器构造乘法器1104,所述乘法器1104具有输入1100和1102,以及输出乘积906。因为MAC块中的全部乘法器正被用于图11中所示的执行过程,所以没有别的模式可以根据本发明同时地执行。
很清楚的是,可以根据本发明在MAC块中执行任何其他适当的模式。举例来说,可以执行某些不需要乘法器的模式,例如36位宽的异或门,与门,或门,或者任何其他适当的、使用例如MAC块的算术电路的逻辑门。这些模式在例如支持用于微处理器的逐位操作方面可能有用。还将被理解的是,尽管某些模式涉及“求和”,但是可以使用MAC块的加法器/减法器电路来使用任何其他适当的算术运算(例如,求差)。
举例来说,其他模式可以包括高带宽的16位和32位循环冗余码(“CRC”)计算。CRC用于许多通信协议,用于确保接收数据与发送数据相同。为一次对1位编码而执行的CRC编码/解码相对地简单,但是同时地为多位编码则增加了复杂性。
因为12位×12位乘法要求执行一个完整的18位×18位乘法器,所以结果导致资源浪费(例如,如果使用了输入/输出,则仅仅96位)。根据本发明,通过允许以独立的同时模式来使用未用资源,每一个MAC块的四个18位×18位乘法器均支持六个12位×12位乘法,而不是仅仅四个。这与基于18位×18位乘法器实现9位×9位乘法器形成对比,因为将一个18位×18位乘法器划分为两个9位×9位乘法器被包含在所述18位×18位乘法器内。而将两个18位×18位乘法器划分为三个12位×12位乘法器涉及在乘法器之间共享资源。这要求复杂的路由和输入映射。
为了类似的理由,根据本发明,一个24位×24位乘法可以被更有效的执行,以致允许单个MAC块支持两个同时的24位×24位乘法,所述24位×24位乘法通常可能要求一个完整的MAC块在一个36位×36位乘法中来执行。
可以以任何适当的方式执行本发明的模式划分特征。举例来说,在一个适当的处理方法中,MAC块可以被配置为使用适当的电路(例如,包括多工器,寄存器等等)来允许在相同的MAC块内同时地执行不同的模式。任何适当的控制信号可以被用于指示怎样相对于待被同时执行的模式配置MAC块。任一或者全部这些控制信号可以被用户控制。
图12是一个根据本发明的MAC块1200的简化框图,所述MAC块1200具有控制信号1201-1211。控制信号1201-1211可以指示MAC块1200同时以哪一种或者哪些模式工作。控制信号1201-1211仅仅是例示性的。很清楚的是,任何其他适当的控制信号可被用于执行本发明的模式划分特征。为了简洁和清晰而不是为了限制,并且不失一般性,在此主要依据控制信号1201-1211说明本发明。
控制信号1201-1204是“SPLIT”信号,它为MAC块1200的四个分别的18位×18位乘法器中的每一个指示该乘法器是否待被用作一个18位×18位乘法器,或者该乘法器是否待被用作两个9位×9位乘法器。可以使用任何适当数目的SPLIT信号来执行任何要求使用特定规格乘法器的适当模式。举例来说,如果特定模式要求使用4位×4位乘法器,那么可以使用额外的SPLIT信号。在另一种适当的处理方法中,SPLIT信号可被用于指示:一个特定的乘法器被用作两个或更多更小的乘法器(即,与仅仅被划分为两个更小的乘法器相对比)。
控制信号1205和1208表示“SMODE”信号,所述信号可被用于指示是否启用了MAC块1200的累加器功能性。从而,控制信号1205和1208可被用于执行52位累加模式。控制信号1205可以与MAC块1200的上半部分相关联,而控制信号1208可以与MAC块1200的下半部分相关联。
控制信号1206和1209表示“ZERO”信号,它们可被用于与SMODE信号一起指示是否执行模式2A。模式2A被用来初始化(例如,通过清零)在模式2(即上文参考图5进行说明的52位累加器模式)中使用的累加器构件。参照图2,举例来说,控制信号1206和1209可以令上半部分加法器/减法器144、或者下半部分加法器/减法器144中的适当位分别接地,以便累加器清零。在一个特定的结构中,控制信号1206和1209还可以同时被用来指示36位×36位乘法。也就是说,在优选的36位×36位乘法模式的执行过程中,可能需要对加法器/减法器清零。
控制信号1207和1210表示“MODE3”信号,它可用于指示何时将两个乘法器的输出(即,或者MAC块的上半部分中的两个或者下半部分中的两个)加在一起。因此,控制信号1207和1210用于指示何时执行对两个18位×18位乘法求和的模式,或者何时执行对9位×9位乘法求和的模式。控制信号1207和1210分别与MAC块的上半部分和下半部分相关联。
控制信号1211表示“MODE4”信号,用于指示何时将四个乘法器的输出加在一起。因此,控制信号1211被用于指示何时执行对四个18位×18位乘法求和的模式,或者何时执行对四个9位×9位乘法求和的模式。因为在这些模式中使用了MAC块的所有四个乘法器,所以为整个MAC块使用了单独一个MODE4信号。
下面的表1概括了上述用于执行每一个所说明的各模式的控制信号。A,B,C和D表示MAC块中的四个18位×18位乘法器中的每一个,A和B是上半部分的乘法器而C和D是下半部分的乘法器。R和S表示MAC块的上半部分和下半部分。
表1
模式 | 说明 | SPLIT<A|B|C|D> | SMODE<R|S> | ZERO<R|S> | MODE3<R|S> | MODE4 |
1 | 18位×18位乘法 | 0 | 0 | 0 | 0 | 0 |
2 | 52位累加 | 0 | 1 | 0 | 0 | 0 |
2A | 初始化/清零累加器 | 0 | 1 | 1 | 0 | 0 |
3 | 2个18位×18位乘法的求和 | 0 | 0 | 0 | 1 | 0 |
4 | 4个18位×18位乘法的求和 | 0 | 0 | 0 | 0 | 1 |
5 | 9位×9位乘法 | 1 | 0 | 0 | 0 | 0 |
6 | 2个9位×9位乘法求和 | 1 | 0 | 0 | 1 | 0 |
7 | 4个9位×9位乘法的求和 | 1 | 0. | 0 | 0 | 1 |
8 | 36位×36位乘法 | 0 | 0 | 1 | 0 | 0 |
可以以MAC块中半部分(即,或者上半部分或者下半部分)中的单个18位乘法器,或者以整个MAC块来执行表1中的模式1-8中的每一个。下面,表2概括了这种灵活性。
表2
模式 | 说明 | 每一乘法器 | 每一半部分的MAC块 | 每一MAC块 |
1 | 18位×18位乘法 | X | ||
2 | 52位累加 | X | ||
2A | 初始化/清零累加器 | X | ||
3 | 2个18位×18位乘法的求和 | X | ||
4 | 4个18位×18位乘法的求和 | X | ||
5 | 9位×9位乘法 | X | ||
6 | 2个9位×9位乘法的求和 | X | ||
7 | 4个9位×9位乘法的求和 | X | ||
8 | 36位×36位乘法 | X |
如果特定模式要求MAC块中的一半,那么另外一半可以被半块模式或者被单个乘法模式(或者两个这样的模式)使用。如果特定模式要求单个乘法器,那么剩余的乘法器可以被半块模式,被单个乘法模式,或者被两者使用。
很清楚的是,根据本发明的MAC块的某些结构可能涉及某些间接的和实践的限制。举例来说,在一个适当的结构中,模式4、7和8要求控制信号1201-1204被设定为相同的值。可能要求为模式4、7和8、将控制信号1205和1208设置为相同值。可能要求为模式4、7和8将控制信号1206和1209设置为相同值。模式3和6可能要求控制信号1201和1202被设置为相同的值,并且控制信号1203和1204被设置为相同的值。很清楚的是,这样的限制仅仅是例示性的,并且至少在某种程度上依赖于所使用的特定结构,MAC块将被用于何种应用,或者两者。
很清楚的是,可以根据本发明表示和实现任何其他适当的模式。可进一步理解的是,除了所说明的那些控制信号之外、或者代替那些控制信号,可以使用任何其他控制信号。
图13是一个可编程逻辑器件1300的简化框图,所述可编程逻辑器件1300具有一个或多个根据本发明配置的MAC块1302。PLD1300可以具有任何适当的互连电路、存储器电路和可编程序逻辑电路,以便允许PLD 1300实现用户设计,并在实现用户设计时使用MAC块1302。
图14示出在根据本发明的一个实施例的数据处理系统1400中的本发明的(即,至少具有一个被配置为具有本发明的模式划分特征的乘法器)PLD 1300(图13)。数据处理系统1400可以包括一个或多个以下构件:处理器1402;存储器1404;I/O电路1406;和外围设备1408。这些构件通过系统总线1410连接在一起,并且被组装在一个电路板1412上,所述电路板1412被包含在一个终端用户系统1414中。
系统1400可以被用于多种应用,例如计算机联网,数据联网,仪表设备,视频处理,DSP,或者任何其他应用,在这些应用中,使用可编程的或者可重编程的逻辑线路的优点是合乎需要的。PLD1300可被用于执行各种不同的逻辑功能。举例来说,PLD 1300可以被配置为与处理器1402协同工作的处理器或者控制器。PLD 1300还可以被用作仲裁电路,用于仲裁对系统1400中的共享资源的访问。在又一个实例中,PLD 1300可以被配置为处理器1402和系统1400中的其他构件之间的接口。
由此,提供了一种具有模式划分能力的MAC块。本领域中的普通技术人员将理解,能够通过除了所说明的实施例之外的方式来实践本发明,所说明的实施例是为了例证说明给出的而不是为了限制,并且本发明仅仅由随后的权利要求书限制。
Claims (20)
1.一种乘法器-累加器块,包括:
第一乘法器,用于实施第一操作模式;以及
第二乘法器,用于同时地实施第二操作模式。
2.如权利要求1所述的乘法器-累加器块,进一步包括用于执行所述第一操作模式的额外的一个或多个乘法器。
3.如权利要求1所述的乘法器-累加器块, 进一步包括用于执行所述第二操作模式的附加的一个或多个乘法器。
4.如权利要求1所述的乘法器-累加器块,其中所述第一乘法器是一个18位×18位乘法器,所述第二乘法器是一个18位×18位乘法器,所述乘法器-累加器块进一步包括两个附加的18位×18位乘法器。
5.如权利要求4所述的乘法器-累加器块,其中,所述第一模式是从以下组中选出来的,所述组包括:18位×18位乘法,52位累加,初始化/清零累加器,对2个18位×18位乘法求和,对4个18位×18位乘法求和,9位×9位乘法,对2个9位×9位乘法求和,对4个9位×9位乘法求和,以及36位×36位乘法。
6.如权利要求1所述的乘法器-累加器块,进一步包括若干控制信号,用于指示所述第一模式和所述第二模式。
7.如权利要求1所述的乘法器-累加器块,进一步包括用于加法、减法和累加输入的电路。
8.如权利要求1所述的乘法器-累加器块,进一步包括第三乘法器,用于同时地执行第三操作模式。
9.一种可编程逻辑器件,包括如权利要求1所述的乘法器-累加器块。
10.一种乘法器-累加器块,包括:
被配置为两对的四个18位×18位乘法器;
与这些对中的一个相连接的第一算术电路;
与这些对中的另一个相连接的第二算术电路;以及
与所述乘法器和算术电路连接的控制电路,所述控制电路控制所述乘法器-累加器以哪些操作模式工作,其中所述乘法器-累加器能够同时以超过一种的操作模式工作。
11.如权利要求10所述的乘法器-累加器块,其中,所述第一算术电路包括加法器,减法器和累加器电路,并且所述第二算术电路包括加法器,减法器,和累加器电路。
12.如权利要求10所述的乘法器-累加器块,进一步包括与所述第一算术电路和所述第二算术电路连接的第二级算术电路。
13.如权利要求10所述的乘法器-累加器块,其中所述控制电路包括控制信号。
14.如权利要求13所述的乘法器-累加器块,其中所述控制信号包括用于指示乘法器中的特定的一个被配置为作为两个或更多更小的乘法器来使用的控制信号。
15.如权利要求13所述的乘法器-累加器块,其中所述控制信号包括用于指示将两对乘法器中特定的一对的输出彼此求和的控制信号。
16.如权利要求13所述的乘法器-累加器块,其中所述控制信号包括用于指示将四个乘法器的输出彼此求和的控制信号。
17.如权利要求10所述的乘法器-累加器块,其中所述操作模式是从以下组中选出来的,所述组包括:18位×18位乘法,52位累加,初始化/清零累加器,对2个18位×18位乘法求和,对4个18位×18位乘法求和,9位×9位乘法,对2个9位×9位乘法求和,对4个9位×9位乘法求和,以及36位×36位乘法。
18.一种印刷电路板,其上装配有如权利要求9中所定义的可编程逻辑器件。
19.如权利要求18中所定义的印刷电路板,进一步包括:
装配在所述印刷电路板上并且与存储器电路连接的存储器。
20.如权利要求19中所定义的印刷电路板,进一步包括:
装配在所述印刷电路板上并且与所述存储器电路连接的处理电路。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200410005849 CN1658152B (zh) | 2004-02-20 | 2004-02-20 | 乘法器-累加器块模式划分 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200410005849 CN1658152B (zh) | 2004-02-20 | 2004-02-20 | 乘法器-累加器块模式划分 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1658152A true CN1658152A (zh) | 2005-08-24 |
CN1658152B CN1658152B (zh) | 2012-06-13 |
Family
ID=35007663
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200410005849 Expired - Fee Related CN1658152B (zh) | 2004-02-20 | 2004-02-20 | 乘法器-累加器块模式划分 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1658152B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102053817A (zh) * | 2009-10-30 | 2011-05-11 | Arm有限公司 | 用于执行乘法累加运算的设备和方法 |
CN101196806B (zh) * | 2006-12-05 | 2012-07-04 | 阿尔特拉公司 | 用于可编程逻辑器件的大型乘法器及其方法 |
CN103365822A (zh) * | 2012-04-02 | 2013-10-23 | 联发科技(新加坡)私人有限公司 | 数字信号处理器及数字信号处理方法 |
CN106610813A (zh) * | 2015-10-21 | 2017-05-03 | 阿尔特拉公司 | 用于在乘法器累加器块中执行乘积级数运算的方法和装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6446195B1 (en) * | 2000-01-31 | 2002-09-03 | Intel Corporation | Dyadic operations instruction processor with configurable functional blocks |
US6606700B1 (en) * | 2000-02-26 | 2003-08-12 | Qualcomm, Incorporated | DSP with dual-mac processor and dual-mac coprocessor |
-
2004
- 2004-02-20 CN CN 200410005849 patent/CN1658152B/zh not_active Expired - Fee Related
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101196806B (zh) * | 2006-12-05 | 2012-07-04 | 阿尔特拉公司 | 用于可编程逻辑器件的大型乘法器及其方法 |
CN102053817A (zh) * | 2009-10-30 | 2011-05-11 | Arm有限公司 | 用于执行乘法累加运算的设备和方法 |
CN102053817B (zh) * | 2009-10-30 | 2015-09-09 | Arm有限公司 | 用于执行乘法累加运算的设备和方法 |
CN103365822A (zh) * | 2012-04-02 | 2013-10-23 | 联发科技(新加坡)私人有限公司 | 数字信号处理器及数字信号处理方法 |
CN106610813A (zh) * | 2015-10-21 | 2017-05-03 | 阿尔特拉公司 | 用于在乘法器累加器块中执行乘积级数运算的方法和装置 |
CN106610813B (zh) * | 2015-10-21 | 2019-06-28 | 阿尔特拉公司 | 用于在乘法器累加器块中执行乘积级数运算的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN1658152B (zh) | 2012-06-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7437401B2 (en) | Multiplier-accumulator block mode splitting | |
CN1735881A (zh) | 用于执行计算操作的方法和系统以及一种设备 | |
Ma et al. | Multiplier policies for digital signal processing | |
Ding et al. | High-speed ECC processor over NIST prime fields applied with Toom–Cook multiplication | |
US9098332B1 (en) | Specialized processing block with fixed- and floating-point structures | |
US5504915A (en) | Modified Wallace-Tree adder for high-speed binary multiplier, structure and method | |
CN101042583A (zh) | 用于可编程逻辑器件的专门处理块 | |
US20090100122A1 (en) | Saturation and rounding in multiply-accumulate blocks | |
CN1750460A (zh) | 用于执行模幂运算的方法 | |
US10853034B2 (en) | Common factor mass multiplication circuitry | |
Haghi et al. | Reconfigurable switches for high performance and flexible MPI collectives | |
Jaberipur et al. | Efficient realisation of arithmetic algorithms with weighted collection of posibits and negabits | |
CN1658152A (zh) | 乘法器-累加器块模式划分 | |
US20190303748A1 (en) | Common factor mass multiplication circuitry | |
CN1801079A (zh) | 优化的标准带符号数字的系数乘法器 | |
WO2007029166A2 (en) | Full-adder modules and multiplier devices using the same | |
CN1729464A (zh) | 在阵列处理器上的划分 | |
RU2589361C1 (ru) | Умножитель по модулю | |
CN103699729B (zh) | 模乘法器 | |
EP1566730B1 (en) | Multiplier-accumulator block mode splitting | |
JP4502662B2 (ja) | 乗算器−累算器ブロックモード分割 | |
Lin | A reconfigurable low-power high-performance matrix multiplier design | |
CN1731344A (zh) | 快速多周期二进制及十进制加法器单元的高度并行结构 | |
Gustafsson et al. | Low-complexity and high-speed constant multiplications for digital filters using carry-save arithmetic | |
Jaberipur et al. | Posibits, negabits, and their mixed use in efficient realization of arithmetic algorithms |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20120613 Termination date: 20180220 |
|
CF01 | Termination of patent right due to non-payment of annual fee |