专利名称:用于可编程逻辑器件的专门处理块的制作方法
技术领域:
0002本发明涉及可编程逻辑器件(PLD),更具体地涉及可以被包括在这样的器件中的专门处理块。
背景技术:
0003随着使用PLD的应用在复杂性上的增加,设计包括除了通用可编程逻辑资源块之外的专门处理块的PLD已经变得更加普遍。这样的专门处理块可以包括已经被部分或全部硬连线以执行一个或多个特殊任务比如逻辑或数学运算的PLD上的电路集结。专门处理块也可以包括一个或多个专门的结构,比如可配置存储器元件阵列。通常在这样的专门处理块中实现的结构的例子包括乘法器、算术逻辑单元(ALU)、桶移位器、各种存储器元件(比如FIFO/LIFO/SIPO/RAM/ROM/CAM块以及寄存器文件)、AND/NAND/OR/NOR阵列等,或它们的组合。
0004已经提供在PLD中的一种特别有用类型的专门处理块是可以被用于处理例如音频信号的数字信号处理(DSP)块。这些块通常也被称为乘累积(“MAC”)块,因为它们包括执行乘法运算以及乘法运算的求和和/或累加的结构。
0005例如,由加利福尼亚州的San Jose的Altera公司销售的名为STRATIXII的PLD包括每个都包含DSP块,每个DSP块包括4个18×18的乘法器。每个那些DSP块还包括加法器和寄存器,以及允许各种部件以不同的方式进行配置的可编程连接器(例如乘法器)。在每一个这样的块中,乘法器不仅可以被配置为4个单独的18×18的乘法器,而且可以被配置为4个更小的乘法器,或者被配置为一个更大(36×36)的乘法器。另外,可以执行一个18×18的复数乘法(其分解成用于各实数和虚数部分的两个18×18的乘法运算)。为了支持4个18×18的乘法运算,该块具有4×(18+18)=144个输入。类似地,18×18的乘法的输出是36位宽,因此为了支持4个这样的乘法运算的输出,该块也具有36×4=144个输出。
0006这样的DSP块执行的操作通常要求舍入(rounding)。然而,包括在前述STRATIXII型PLD中提供的DSP块的已知DSP块具有有限的舍入能力。类似地,DSP块操作要求能够截取结果。为了防止大的正结果溢出成负数,或防止高的负结果溢出成正数,这样的截取或饱和(saturation)是必须的。然而,已知DSP块的饱和能力也是有限的。
0007希望能够提供PLD的DSP块的改进的舍入和饱和能力。
发明内容
0008本发明涉及用于PLD的专门处理块,其中该专门处理块具有改进的舍入和饱和能力。
0009优选地,本发明使用的专门处理块包括多个基本处理单元以代替分离的乘法器。优选地每个基本处理单元包括至少两个乘法器以及对所有这至少两个乘法器的部分积求和的逻辑的等同物。结果,在单个步骤中就计算了所有乘法的和,而不是对每个乘法器的部分积求和以形成各个积并且随后对那些积求和。这样的基本处理单元可以用比单独的乘法器和加法器的面积更小的面积构建。如果单个乘法被要求执行,则使用在基本处理单元中的其中一个乘法器,而到另一个(或另外多个)乘法器的输入被置零。然而,由于提供的基本处理单元减小了专门处理块的面积,因此提高了效率。
0010在一个优选实施例中,该基本处理单元包括两个18×18乘法器和一个加法器的等同物,因此它可以输出两个乘法运算的总和。虽然18×18乘法器中的每一个可以被配置用于更小的乘法运算(例如9×9或12×12),但基本处理单元的集成性意味着单独的乘法器输出是不可获得的。只有该总和可以由该专门处理块的剩余部分使用。因此,为了得到18位×18位或更小的单个非复数乘法的结果,必须使用整个基本处理单元。不能是空闲的第二乘法器简单地使它的输入为零。
0011优选地,和本发明一起使用的专门处理块还具有一个或多个附加的加法器,以用于基本处理单元的输出以及可选的流水线寄存器(pipelineregister)和灵活输出级的输出的附加处理。因此优选地该专门处理块可以配置成用于各种形式的滤波和其它数字信号处理操作。此外,优选地该专门处理块还能够反馈其输出的至少一个作为输入(这在自适应滤波操作中有用),并且能够将输入和输出都链接到附加专门处理块。
0012根据本发明的专门处理块优选包括灵活的舍入电路和灵活的饱和电路。优选地该舍入和饱和电路处于单个的舍入/饱和块中。然而,在某些实施例中,如下所述,该舍入和饱和电路可以是分离的。
0013根据本发明的灵活饱和电路优选允许用户在舍入到最接近的整数和舍入到最接近的偶数之间进行选择。如已知的,舍入到最接近的偶数在操作上与舍入到最接近的整数是一样的,除了当余项精确地等于二分之一时。在舍入到最接近的整数时,当余项精确地等于二分之一时,结果总是向上舍入到下一个整数。在舍入到最接近的偶数时,当余项精确地等于二分之一时,如果下一个整数是偶数则结果是向上舍入,而如果下一个整数是奇数则向下舍入。优选地灵活的舍入电路还允许用户选择发生舍入处的结果的位位置。而且优选地灵活的舍入电路在专门处理块中的位置是可选择的,所以关键的定时路径不会被舍入操作不必要地影响。
0014根据本发明的灵活饱和电路优选地允许用户在结果的对称和非对称截取(clipping)之间选择。如已知的,在某种类型的数字表示中,比如二进制反码表示中,范围向上变动到2n-1的数字变量范围向下变动到-(2n-1),因此范围变动对称。然而,在其它类型的数字表示中,比如二进制补码表示中,范围向上变动到2n-1的数字变量范围向下变动到-(2n),因此范围变动不对称。在截取运算结果时,人们可能希望对称地截取结果而不管表示的类型,并且优选地本发明允许用户选择这样的结果。灵活的饱和电路优选地还允许用户选择发生截取处的结果的位位置。而且灵活的饱和电路在专门处理块中的位置优选地是可选择的,所以关键的定时路径不会被截取操作不必要地影响。
0015因此,根据本发明,提供了一种用于可编程逻辑器件的专门处理块。该专门处理块包括用于提供输入的积及这些积的和以输出结果的运算电路。该专门处理块进一步包括以下之一或两个(1)舍入电路,其用于可选择地将结果舍入为以下之一(a)最接近的整数和(b)最接近的偶整数,以及(2)饱和电路,其用于将所述结果截取到所述运算电路操作的值范围内的值。
0016结合附图,考虑到下面的详细描述,本发明的上述和其它目的及优点将更加明显,在整个附图中,相同的标记字符表示相同的部件,并且其中0017图1是根据本发明的专门处理块的一个优选实施例的高级图;0018图2是图1的专门处理块的功能图;0019图3是根据本发明的用于专门处理块的基本处理单元的一个优选实施例的框图;0020图4是根据本发明的专门处理块的输出级的优选实施例;0021图5是根据本发明的第一个优选实施例配置为有限脉冲响应滤波器的一部分的专门处理块的功能图;0022图6是根据本发明的舍入到最接近偶数逻辑的图;0023图7是根据本发明第一实施例的显示舍入和饱和逻辑的专门处理块的一部分的示意图;0024图8是根据本发明第二个实施例的显示舍入和饱和逻辑的专门处理块的一部分的示意图;0025图9是根据本发明一个实施例的显示舍入和饱和逻辑的位置的级联模式专门处理块的一部分的示意图;0026图10是根据本发明另一个实施例的显示舍入和饱和逻辑的位置的级联模式专门处理块的一部分的示意图;0027图11是根据本发明又一个实施例的显示舍入和饱和逻辑的位置的级联模式专门处理块的一部分的示意图;以及0028图12是使用结合本发明的可编程逻辑器件的说明性系统的简化框图。
具体实施例方式
0029舍入是通过从数的表示中移除较低阶(lower-order)范围的位并可能修改数的剩余部分来减小数的精度,从而更准确地表示它的先前值的技术。例如,如果原始数具有N位精度,而舍入数可以只有M位精度(其中N>M),意味着在舍入过程中N-M位精度从数中被移除。
0030舍入到最接近的方法返回最接近原始值的数。这通常被称为“舍入到最接近整数”(round-to-nearest-integer,RNI),但是由于它对小于1的数也起作用,所以“舍入到最接近”更适合。根据约定,按照这个方法,精确地位于两个数之间一半的原始数(因此具有两个“最接近”的数)总是舍入到两个数中更大的数。例如,当舍入3位二进制补码小数0.25(二进制0.01)为最接近的2位二进制补码小数时,该方法返回0.5(二进制0.1)。原始的小数精确地位于0.5和0.0(二进制0.0)的中间,因此这个方法向上舍入。由于它总是向上舍入,这个方法也被称为“偏舍入”(biased rounding)。
0031“收敛舍入(convergent rounding)”或“舍入到最接近偶数”(RNE)方法也返回最接近于原始数的数。然而,如果原始数精确地位于两个数的中间,这个方法就返回最接近的偶数,在二进制表示中该偶数是包括最低有效位0的一个数。因此对于上述例子,该结果将会是0.0,因为那是0.5和0.0之间的偶数选择。因为它根据周围值或者上舍入或者下舍入,而不是总是向同一方向舍入,所以这个方法也被称为“无偏舍入”(unbiasedrounding)。
0032一些例子被显示在下面的表中,其中6位数被舍入为4位精度
0033当运算操作的结果超过目的存储器的范围时,重要的信息可能被丢失。饱和是用来包含目的存储器可以表示的值范围内的数量的技术。当计算的值超过目的存储器的容量时,那么写入到寄存器的值被“饱和”或“截取”到该存储器可以保存且与原始值具有相同符号的最大值。
0034因此,例如,如果一个操作会另外地引起正值溢出且变成负的,饱和就将该结果限制到正在使用的存储器的最大正值。相反地,如果一个操作会另外地引起负值溢出且变成正的,饱和就将该结果限制到存储器的最大负值。
0035例如,如果包含0×1000(十进制整数+4096)的16位寄存器被左移3位而不饱和,则它将溢出为0×8000(十进制-32,768)。然而,利用饱和,左移3位或更多位将总是产生最大的正16位数,0x7FFF(十进制+32,767)。在上述的补码例子中,最大正数是2n-1而最大负数是-(2n),如果非对称,则饱和或截取特征将截取上侧和下侧值为2n-1和-(2n),但如果对称则为2n-1和-(2n-1),即使负值-(2n)是可得到的。因此,对于16位的情况非对称饱和最大=0x7FFF,最小=0x8000对称饱和最大=0x7FFF,最小=0x8000036现在将参考图1-11对本发明进行描述。
0037图1是根据本发明的专门处理块的一个优选实施例10的高级图,而图2是同一实施例10的功能图。
0038如图1所示,专门处理块10包括可选的输入预多路复用(pre-MUX)级11、可选的输入寄存器级12、可选的输入多路复用级13、乘法级14、可选的流水线寄存器级15和加法器/输出级16。
0039如果被提供,则输入预多路复用级11的功能是将常规输入、回环输入和级联输入(见下面)格式化成适合于寄存的形式。
0040常规输入不需要任何特定的格式化。级联输入可以是先前输入的一个寄存器延迟版本,因此可能相应地需要格式化。然而,这样的格式化也可以在专门处理块10是其一部分的可编程逻辑器件的可编程逻辑中进行,因此如果级联输入的格式化是唯一需要的预多路复用功能,则可以省略输入预多路复用级11,或者如果提供了输入预多路复用级11则可以被旁路。回环输入17可以被安排使得它可以总是连接到特殊的乘法器或乘法器组。由输入预多路复用级11执行的格式化可以包括特殊输入到特殊的位位置的指示,其取决于专门处理块10执行的功能。在一个实施例中,根据标识各种可能操作(例如,各种大小的简单或复数乘法、移位操作、循环操作等)和指定相应需要的格式化的存储表,格式化可以被执行。
0041如果被提供,则输入预多路复用级11的输出可以由可选的输入寄存器级12寄存。如果不存在输入预多路复用级11,那么如果需要输入寄存器功能,则该输入寄存器功能可以在块10是其一部分的可编程逻辑器件的可编程逻辑部分中执行。因此,输入寄存器级12被认为是可选的。即使被提供,输入寄存器级12优选地可以被可选地旁路以防需要或希望未寄存的输出。
0042如果被提供,输入多路复用级13就从输入预多路复用级11取得寄存或未寄存的输入以及可能从可编程逻辑器件的其它地方取得输入,并且将数据格式化用于不同的操作模式。在那方面它类似于输入预多路复用级11,并且因此如果输入预多路复用级11和输入多路复用级13其中之一被频繁地提供,则另一个将不会被提供。
0043作为由输入预多路复用级11或输入多路复用级13执行的格式化类型的例子,考虑18×18复数乘法,其中实部结果=Re[(a+jb)×(c+jd)]=(ac-bd)虚部结果=Im[(a+jb)×(c+jd)]=(ad+bc)该复数运算需要4个18×18乘法,并且因此需要8个18位输入,但是由于只存在4个唯一的18位共享输入,因此输入多路复用级13将取得输入a、b、c和d并且执行必要的复制,使得那4个输入被正确地路由到正确的乘法器输入以用于每个实部和虚部计算。类似地,对于9-位以及12-位模式操作,输入预多路复用级11和/或输入多路复用级13确保输入位的正确排列以便获得正确结果。
0044优选地乘法级14包括多个如上所述的基本处理单元。在优选实施例中,每个专门处理块10(见图2)包括4个基本处理单元30,意味着在两个一起进行求和的乘法组中它可以执行多达8个乘法。在该实施例中,优选地在专门处理块10中的基本处理单元被分组为相同的半块,从而在它自己右侧的每个半块可以被认为是本发明内的专门处理块。
0045优选地每个基本处理单元包括用于对两个18×18乘法求和的功能。优选地这些基本处理单元都完全相同,但在一些实施例中,可能仅在一些乘法器的一些输入提供求反功能,因为可能需要用于例如可能需要减法(如上面明显的)的复数乘法。可选择地,该求反功能可以被提供在基本处理单元的加法部分,以便一个或多个加法器也可以执行减法。
0046在图3中显示了基本处理单元的一个优选实施例的结构。每个基本处理单元30优选地支持两个18×18乘法的求和并且优选地包括两个部分积发生器31、两个10矢量到2矢量压缩器32、4到2压缩器33以及两个进位传递加法器34。加法器34优选地包括由控制信号342可选择地可连接的一个30位加法器340和一个24位加法器341。对于更小的乘法比如9×9或12×12,只需要24位,因此两个加法器可以被断开以允许两个独立的乘法。对于更大的乘法比如18×18,两个加法器34应当被连接在一起作为单个的加法器。
0047每个部分积发生器31优选地产生9个20位带符号的Booth编码矢量(Booth编码是可以减少部分积数量的公知技术)和一个17位无符号进位矢量(负部分积是反码格式,带有进位矢量中的相关进位-输入(carry-in)位)。附加的19位带符号部分积可以在无符号乘法器的情况下被产生(其对于带符号乘法器优选地将总是为零)。虽然优选地可以产生多达11个矢量,但是优选地进位位可以与部分积矢量组合,只需要压缩10个矢量。
0048优选地部分积被压缩为两个39位矢量(36位加上符号扩展位)。任何符号扩展应当正确地保存越过36位18×18乘法器边界,以便任何符号扩展可以是有效的,直到72位36×36乘法器边界(在如下所述的两个基本处理单元被组合以实现36×36乘法的情况下)。压缩后,在多路复用和移位电路(mux-and-shift circuitry)35中优选地处理该结果,由于根据被执行的操作可以被需求,该多路复用和移位电路35优选地包括组合逻辑,在该组合逻辑处进行加法(因为可能需要加法,这取决于正在执行的操作)前结果的任何符号扩展、零填充或移位可以先于在4到2压缩器33和进位传递加法器34中的结果被最终组合而完成。对于每一个电路350、351,优选地输入是总共78个输入位的两个39位矢量,而优选地输出总共108个位的两个54位矢量。额外的30个位是符号扩展、零填充和或移位的结果。多路复用器352指示在符号扩展或零填充结果之间的选择。4个54位矢量被输入给输出两个54位矢量的压缩器33,这两个54位矢量在加法器34中被相加以产生54位输出。
0049如上所讨论的,由于来自两个乘法器的部分积被立刻相加,所以基本处理单元的两个乘法器不能被用于两个独立的乘法,但是通过对第二乘法器的输入置零可以执行单个乘法。
0050对于更小的乘法,独立子集乘法器(9×9或12×12的情况)可以被处理如下0051对于两个9×9乘法,第一个9×9乘法优选地使用第一个乘法器(在图3的左侧)的最高有效位(MSB)进行计算,而第二个9×9乘法优选地使用第二个乘法器(在图3的右侧)的最低有效位(LSB)进行计算。适当地,右乘法器的最高有效位用相应值的符号扩展填充。左乘法器的输出(和以及进位矢量)被左移18位。然后优选地这两个乘法器的输出一起被压缩并且随后两个结果的最后矢量由两个加法器34相加,对于这个操作这两个加法器没有连接在一起。第一个9×9结果优选地被输出在左(30位)加法器340的最高有效位上,而第二个9×9结果优选地被输出在右(24位)加法器341的最低有效位上。
0052使用该MSB/LSB方法,独立的12×12乘法可以用与9×9乘法类似的方式计算。
0053在两种情况中,优选地右乘法器输出被置零在24个位以上,以防止和独立的左乘法器结果的任何干扰。
0054在求和的乘法的情况下,不管精度如何,所有的输入优选地被移位以占领使用的乘法器的最高有效位,而输出矢量优选地不被移位。然而,输出矢量优选地被完全符号扩展,以便来自加法器34的符号扩展可以被用于累加器(如下)的全部宽度。
0055优选地,对于需要对积进行减法的复数乘法和其它操作,加法器输入可以被求反(negated)(有效地使该加法器成为加法器/减法器)。然而,可选择地,通过反转该输入(二进制反码)并且将被乘数加到该结果上,可以为一个或多个乘法器提供选择性地对它的输出矢量求反的能力。被乘数加法可以在部分积的压缩中执行,因此求反可以在加法器34之前被实现。
0056优选地可以由用户选择旁路的流水线寄存器级15优选地允许在进一步的加法或累加或其它处理之前将乘法级14的输出寄存。
0057优选地加法器/输出级16选择性地移位、加、累加或寄存它的输入或上述的任何组合。优选地它的输入是在专门处理块10中的两个基本处理单元的输出。如图4所示,那两个输入40、41被输入给可选地可以移位或符号扩展输入40、41的各自寄存器/移位器单元42、43。在一个优选实施例中,每个输入40、41是54位矢量,其被移位或符号扩展以产生各自的72位矢量。
0058单元42、43的输出优选地被输入给3∶2压缩器44,优选地,连同级16自己的输出45输入给压缩器44。这个反馈为专门处理块10提供了累加功能。优选地,该反馈输出45通过多路复用器46,当累加是不必要或不被希望时该多路复用器可选择地选择零(例如,地)输入。
0059压缩器44的输出被提供(通过如下描述的适当的多路复用器)给两个加法器47、48,加法器47、48可以在可编程控制下链接在一起,这取决于如下所述它们要被运用的用途。如由多路复用器401、402确定的,加法器47、48的输出优选地可以被寄存在寄存器49、400中或不被寄存。不管寄存与否,输出47、48优选地构成了专门处理块10的输出矢量。作为替换的路径,在基本处理单元30的输出将被输出而不需要进一步处理时,多路复用器403、404、405允许加法器47、48被旁路。
0060如上所述,在每个基本处理单元30可以执行两个18×18乘法的求和的情况下,两个基本处理单元30可以执行36×36乘法,36×36乘法公知地可以被分解成4个18×18乘法。在这种情况下,两个压缩的72位矢量优选地由压缩器44输出并且优选地由两个44位加法器47、48将它们加在一起,加法器47、48可以由AND(与)门406可编程地连接在一起用于这个模式。在这个模式中高16个位可以被忽略。
0061在具有更窄输出的其它模式中,在加法器47、48不需要被连接在一起,加法器47、48可选地可以被布置以将专门处理块10的输出与另一专门处理块10的类似输出链接起来。为了方便这样的模式,寄存器400的输出例如可以被反馈给提供两个输入到加法器47的4∶2多路复用器407。多路复用器407的其它输入可以是由压缩器44输出的两个矢量以及来自另一专门处理块10的链入(chain-in)输入408,该链入输入可以通过来自其它专门处理块10的寄存器49的链出(chain-out)输出409提供。
0062因此,在链接模式中,44位加法器48可以用来将配置为例如单个乘法器、乘法器的和或累加器的其中一个专门处理块10内的结果与先前块的结果加在一起。通过使用多路复用器407选择加法器48的输出以及另一专门处理块10的输出作为加法器47的输入,当前专门处理块10的输出可以是当前和先前专门处理块10的输出的链接和。如果使用链接模式,只可以获得44位累加器,取决于乘法器的数量,其将仍给出6位到8位的保护带。然而,显然地,链接模式不能用于36位模式,在该模式中加法器47、48都被需要以获得单个专门处理块10的结果。
0063根据操作模式输出路径可以略微不同。因此,多路复用器401、402允许选择加法器47、48的寄存或未寄存的输出。然而如所示的,可以理解的是,优选地寄存的输出用于级联或链接模式。
0064另外,如在17处,至少一个输出可以被回送到专门处理块10的输入。例如,如果专门处理块10被可编程地配置用于自适应滤波,这样的回送特征可以被使用。虽然可以提供多个回送,但在优选实施例中,提供一个到单个乘法器或乘法器组的回送17。
0065本发明的专门处理块10可以被可编程地配置为长链有限脉冲响应(FIR)滤波器。如图5所示,4个基本处理单元30被配置为这样的FIR滤波器50的一部分。如上所讨论的,这可以被认为是一个或者两个专门处理块10。如所示的,每个加法器48被用来将4个乘法的结果相加,用在上述链接或级联模式中的加法器47将加法器48的输出加在一起(可能地,连同其它专门处理块10的加法器48的输出),以形成一个长的FIR滤波器。FIR滤波器的系数是在51的输入,而将被滤波的数据通过寄存器链52被输入,寄存器链52优选地形成在输入预多路复用器级11、输入寄存器级12或输入多路复用级13之一中。为了说明由输出级联链引入的延迟,至少一个额外的延迟53(例如,以额外寄存器的形式)优选地被提供在输入级联链52中。优选地,延迟的数量对应于加法器47的数量,或更具体地,对应于延迟53补偿的输出寄存器409的数量。通常,这等于用于每对基本处理单元30的一个延迟53。如上面所讨论的,虽然在优选实施例中,两个基本处理单元30构成一个半块,但是它们也被认为是在它们自己右边的专门处理块10。
0066如上面所讨论的,优选地在专门处理块10中还提供了舍入和饱和电路。如所讨论的,舍入电路优选地允许用户在舍入到最接近模式和舍入到最接近偶数模式之间选择(舍位或截断(truncation)——即总是下舍入——也可以作为一种选择提供)。如还讨论的,饱和电路优选地允许用户在对称和非对称截取之间选择。另外,舍入电路优选地允许用户选择在哪一个位进行舍入而饱和电路优选地允许用户选择在哪一个位发生饱和。在那些选择分别确定了最低和最高有效位的位置的情况下,那些选择允许用户确定输出字的宽度。优选地,这通过提供可以被分别解码成各自的表示舍入和饱和位置的16位数的两个各自的4位变量来完成。
0067舍入到最接近的计算是不重要的,因为它简单地涉及加二分之一(即,将1加到舍入位置后的下一个最高有效位)然后截断该结果(即,用零代替舍入位置后的所有值)。
0068舍入到最接近偶数的计算更加复杂,因为它涉及确定越过舍入位置的位的值是否精确地等于二分之一。
0069用于计算各种类型的舍入的逻辑60被显示在图6中。变量ROUND确定接下来跟着的是分支61还是分支62。如果ROUND=0,将不执行舍入并且接下来的是分支61,在610设置RNDSEL=0。如果ROUND=1,将执行舍入并且接下来的是分支62,且对每一个位位置重复进行,并将结果取或(OR)在一起。因此,在优选的16位实施例中,这进行了16次并且在16位宽的或门OR中进行或运算。
0070在分支62中,RRND是从代表舍入位置的4位数解码得到的值,LSB是在舍入位置中的位,G是舍入位置后的下一个最高有效位(即,舍入位置右边的位),S是将G向右的所有位或在一起的结果。因此,对于通过分支62的特殊通路,如果在620RRND是0,则对于该位位置不存在舍入并且在621设置RNDSEL为0。如果在620RRND是1,则对该位位置执行舍入并且在622检查G的值。
0071如果G=0,则超过LSB的余数小于二分之一并且结果将被下舍入(即,不是舍入而是截断),并且在623RNDSEL被设置为0。如果G=1,则超过LSB的余数大于或等于二分之一,且进一步的舍入步骤取决于将执行的是偏舍入(BIASRND=1)还是无偏舍入(BIASRND=0),如在624确定的。
0072如果执行偏舍入(即,BIASRND=1),则结果应当被上舍入而不管余数是否精确地等于二分之一,因此在625RNDSEL被设置为1。
0073如果执行无偏舍入(即,BIASRND=0),则仅当余数大于二分之一或仅当余数精确地等于二分之一而LSB=1时结果应当被上舍入。因此,如果BIASRND=0,则在626检查S的值。如果S=1,则余数大于二分之一且结果应当舍入,因此在627设置RNDSEL为1。如果S=0,则余数精确地等于二分之一,因此在628检查LSB。如果LSB=0,则舍入到最接近的偶数表示下舍入并且在629设置RNDSEL为0。如果LSB=1,则舍入到最接近的偶数表示上舍入并且在630设置RNDSEL为1。
0074如上所述,在所有RNDSEL位进行或运算之后,该结果RNDSEL被用作控制位以在舍入和未舍入的值之间选择,例如如图7和8所示。在图7的可以在专门处理块10中可编程地实现的实施例70中,加法器71的输出被输入到舍入逻辑60和另一加法器72两者。舍入逻辑60的输出也被输入到加法器72,并控制加法器72是否将加法器71的输出加1。因为这些舍入操作以及在饱和逻辑73中的饱和操作位于寄存器74、75之间的关键路径,所以该舍入和饱和操作必须在一个时钟周期内完成。这将最大时钟速度限制到舍入和饱和操作可以被完成的时钟速度。
0075因此,在图8的可以在专门处理块10中可编程地实现的实施例80中,不在执行加法82前等待舍入逻辑60,而是加法71和加法82被同时执行并且舍入逻辑60的结果被用来控制在加法器71、82之间选择的多路复用器81。这个先行(look-ahead)舍入减少了执行舍入操作需要的时间,并因此增加了最大可允许的时钟速度。
0076当专门处理块10与另一专门处理块10一起被用在输出级联模式中时,类似的时钟控制问题会出现。如在图9的可以在专门处理块10中可编程地实现的实施例90中所示的,舍入和饱和电路91被定位在级联加法器92和寄存器93之间。又一次,这将它放置在关键路径上用于寄存器定时。因此,在图10所示的可以在专门处理块10中可编程地实现的实施例100中,舍入和饱和电路91被放置在寄存器93后面。虽然这把舍入和饱和电路91从关键路径上移走了,但它增加了完成时间(time-to-clockout,Tco),因为舍入和饱和操作稍后执行。
0077因此,图11所示的可以在专门处理块10中可编程地实现的又一实施例110可以在舍入到最接近的实现中得到,如上所述,舍入到最接近的实现仅需要在下一个最高有效位位置上加1并截断。这发生在寄存器74之前的111,并因此不在关键路径上。分离的饱和电路112位于寄存器93之后,并因此也不在关键路径上。虽然与实施例100中一样,饱和电路112的位置增加了TCO,但它没有同样多地增加TCO,因为仅执行了饱和而没有执行舍入。在另一可替换实例(未示出)中,与图8的实施例80类似的先行实现可以结合图11的分离的饱和电路112使用。
0078因此,可以看到,基于多个基本处理单元,可编程逻辑器件的专门处理块已经被提供,并且这样的专门处理块可以执行许多的例如在数字信号处理操作和类似的操作中有用的滤波操作。
0079结合根据本发明的这样的电路的PLD120可以被用在多种电子设备中。一种可能的用途是用在图12所示的数据处理系统900中。数据处理系统900可以包括下面部件中的一个或多个处理器901、存储器902、输入/输出(I/O)电路903以及外围设备904。这些部件由系统总线905连接在一起并且组装在包含在终端用户系统907中的电路板906上。
0080系统900可以被用在广泛的多种应用中,比如计算机联网、数据联网、仪器使用、视频处理、数字信号处理或任何其它希望使用可编程或可重新编程逻辑的优点的应用中。PLD 120可以用来执行各种不同的逻辑功能。例如,PLD 120可以被配置为处理器或与处理器901协同工作的控制器。PLD 120也可以被用作在系统900中裁定对共享资源进行访问的仲裁器。在另一例子中,PLD 120可以被配置为处理器901和系统900中的其它部件之一之间的接口。应当注意,系统900仅是示例性的,本发明的真正范围和精神应当由所附的权利要求指出。
0081各种技术可以被用来实现如上所述的并结合本发明的PLD120。
0082应当理解,上面仅仅是本发明原理的说明,本领域技术人员可以进行各种修改而不脱离本发明的范围和精神。例如,本发明的各种元件可以以任何希望的数量和/或布置提供在PLD中。本领域技术人员将明白本发明可以用不同于描述的实施例的实施例实现,所描述的实施例只是为了说明的目的而不是为了限制,并且本发明仅由所附的权利要求限定。
权利要求
1.一种用于可编程逻辑器件的专门处理块,所述专门处理块包括用于提供输入的积及所述积的和以输出结果的运算电路;以及用于选择性地将所述结果舍入为(a)最接近的整数以及(b)最接近的偶整数中之一的舍入电路。
2.如权利要求1所述的专门处理块,其中所述舍入电路在所述结果的可选择的位位置执行所述舍入。
3.如权利要求1所述的专门处理块,其中所述运算电路在一个范围内的值上运行,所述范围向上延伸到最高正值且向下延伸到最高负值;所述专门处理块进一步包括用于将所述结果截取为所述范围内的值的饱和电路。
4.如权利要求3所述的专门处理块,其中所述饱和电路在所述结果的可选择的位位置上执行所述截取。
5.如权利要求3所述的专门处理块,其中所述饱和电路对称地截取所述结果。
6.如权利要求3所述的专门处理块,其中所述饱和电路非对称地截取所述结果。
7.如权利要求3所述的专门处理块,其中所述饱和电路在所述舍入电路之后运行。
8.如权利要求1所述的专门处理块,其中所述舍入电路是可编程地可定位的,以优化所述专门处理块的操作。
9.如权利要求8所述的专门处理块,其中至少所述舍入电路的第一部分是并行于至少一部分所述运算电路可编程地可定位的,以便以先行模式运行。
10.如权利要求9所述的专门处理块,其中所述运算电路的所述部分计算所述结果,而不进行舍入;并行于所述运算电路的所述部分不舍入地计算所述结果,所述舍入电路的所述第一部分舍入地计算所述结果;以及所述舍入电路进一步包括在带舍入的所述结果和无舍入的所述结果之间选择的第二部分。
11.如权利要求8所述的专门处理块,其中所述运算电路包括产生关键定时路径的寄存器;以及所述舍入电路在是(a)所述寄存器之前和(b)所述寄存器之后的至少其中之一的至少一个位置是可编程地可定位的,从而可编程地可包括在所述关键定时路径内以及可排除在所述关键定时路径之外。
12.如权利要求11所述的专门处理块,其中所述关键定时路径包括从另一所述专门处理块链接的结果。
13.一种包括权利要求1的专门处理块的可编程逻辑器件。
14.一种数字处理系统,包括处理电路;连接到所述处理电路的存储器;以及连接到所述处理电路和所述存储器的如权利要求13中定义的可编程逻辑器件。
15.一种印刷电路板,在其上安装了如权利要求13中定义的可编程逻辑器件。
16.在权利要求15中定义的印刷电路板,进一步包括安装在该印刷电路板上并连接到所述可编程逻辑器件的存储器电路。
17.在权利要求16中定义的印刷电路板,进一步包括安装在该印刷电路板上并连接到所述存储器电路的处理电路。
18.一种包括权利要求1的所述专门处理块的集成电路器件。
19.一种数字处理系统,包括处理电路;连接到所述处理电路的存储器;以及连接到该处理电路和该存储器的如权利要求18中定义的集成电路器件。
20.一种印刷电路板,在其上安装了如权利要求19中定义的集成电路器件。
21.在权利要求20中定义的印刷电路板,进一步包括安装在所述印刷电路板上并连接到所述可编程逻辑器件的存储器电路。
22.在权利要求21中定义的印刷电路板,进一步包括安装在所述印刷电路板上并连接到所述存储器电路的处理电路。
23.一种用于可编程逻辑器件的专门处理块,所述专门处理块包括用于提供输入的积及所述积的和以输出结果的运算电路;以及用于选择性地将所述结果舍入为(a)最接近的整数以及(b)最接近的偶整数之一的舍入电路。
24.如权利要求23所述的专门处理块,其中所述运算电路在一个范围内的值上运行,所述范围向上延伸到最高正值且向下延伸到最高负值;所述专门处理块进一步包括用于将所述结果截取为所述范围内的值的饱和电路。
25.如权利要求24所述的专门处理块,其中所述饱和电路在所述结果的可选择的位位置上执行所述截取。
26.如权利要求24所述的专门处理块,其中所述饱和电路对称地截取所述结果。
27.如权利要求24所述的专门处理块,其中所述饱和电路非对称地截取所述结果。
28.一种包括权利要求23所述的专门处理块的可编程逻辑器件。
29.一种数字处理系统,包括处理电路;连接到所述处理电路的存储器;以及连接到所述处理电路和所述存储器的如权利要求28中定义的可编程逻辑器件。
30.一种印刷电路板,在其上安装了如权利要求28中定义的可编程逻辑器件。
31.在权利要求30中定义的印刷电路板,进一步包括安装在该印刷电路板上并连接到所述可编程逻辑器件的存储器电路。
32.在权利要求31中定义的印刷电路板,进一步包括安装在该印刷电路板上并连接到所述存储器电路的处理电路。
33.一种包括权利要求23的所述专门处理块的集成电路器件。
34.一种数字处理系统,包括处理电路;连接到所述处理电路的存储器;以及连接到所述处理电路和所述存储器的如权利要求33中定义的集成电路器件。
35.一种印刷电路板,在其上安装了如权利要求34中定义的集成电路器件。
36.在权利要求35中定义的印刷电路板,进一步包括安装在该印刷电路板上并连接到所述可编程逻辑器件的存储器电路。
37.在权利要求36中定义的印刷电路板,进一步包括安装在该印刷电路板上并连接到所述存储器电路的处理电路。
全文摘要
一种用于可编程逻辑器件的专门处理块,包括用于执行乘法并对其求和的电路,以及对该结果进行舍入的电路。该舍入电路可以选择性地执行舍入到最接近和舍入到最接近偶数操作。另外,优选地,舍入发生的位位置是可选择的。优选地该专门处理块还包括饱和电路以防止溢出和下溢,并且优选地饱和发生的位位置也是可选择的。舍入和饱和位置的选择能力提供了对输出数据字宽度的控制。根据定时需要,舍入和饱和电路可以可选择地定位于不同的位置。类似地,使用并行计算舍入和非舍入结果的预测性模式以及在那些结果间选择的舍入逻辑,可以加速舍入。
文档编号G05B19/05GK101042583SQ20071008795
公开日2007年9月26日 申请日期2007年2月8日 优先权日2006年2月9日
发明者K·Y·M·李, M·朗哈默, 林以雯, T·M·恩格界 申请人:阿尔特拉公司