CN1106941A - 逻辑电路的自动设计方法、***、装置和乘法器 - Google Patents

逻辑电路的自动设计方法、***、装置和乘法器 Download PDF

Info

Publication number
CN1106941A
CN1106941A CN94115596A CN94115596A CN1106941A CN 1106941 A CN1106941 A CN 1106941A CN 94115596 A CN94115596 A CN 94115596A CN 94115596 A CN94115596 A CN 94115596A CN 1106941 A CN1106941 A CN 1106941A
Authority
CN
China
Prior art keywords
circuit
partial product
information
multiplicand
constant
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
CN94115596A
Other languages
English (en)
Other versions
CN1102260C (zh
Inventor
西山保
津幡真太郎
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Publication of CN1106941A publication Critical patent/CN1106941A/zh
Application granted granted Critical
Publication of CN1102260C publication Critical patent/CN1102260C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • 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
    • 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/533Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even
    • 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/4824Methods 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 using signed-digit representation

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Computational Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Geometry (AREA)
  • Evolutionary Computation (AREA)
  • Complex Calculations (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Image Generation (AREA)

Abstract

用于生成表示求乘数与被乘数之积的逻辑电路 的信息的逻辑电路自动设计方法,相应于乘数的各位 判断乘数是变数还是常数,当乘数为常数时,判断乘 数的该位值是否为1,限于乘数的该位值为1的情况 生成将表示被乘数的信号作为部分积而输出的电路, 将表示被乘数的信号移1位后重新将其设定为表示 被乘数的信号。通过相应于乘数的所有位反复进行 上述处理,生成求与乘数的各位对应的部分积的电 路。

Description

本发明涉及逻辑电路的自动设计方法,特别是乘法器的或包含乘法器的逻辑电路的自动设计方法、***及其装置和乘法器。
以往,将数字数据进行乘法运算的乘法器,除作为单一的LSI使用外,多数还以将数字信号处理器(DSP:digital signal processor)等包含在LSI内的形式进行使用。在这种乘法器中,随着乘法位的增大以及用途的多样化等,要求进一步高速化和减小电路规模及芯片面积,于是人们提出了适用各种乘法运算方法的电路方式。
例如,《日经エレクトロニクス》杂志(1978年5月29日号76页-89页)发表了最高速乘法运算方法之一的采用2位通道记录方式的乘法运算方法。该乘法运算方法试图利用如下算法实现乘法运算的高速比等。
例如,将m位的乘数Y和n位的被乘数X进行乘法运算时,利用2的补码,乘数Y可以表示为如下(1)式,
Y = - ys · 2 m - 1 + Σ i = 1 m - 1 ( y i · 2 i - 1 ) = Σ i = 0 q - 1 { ( y 2 i + y 2 i + 1 - 2 y 2 i + 2 ) · 2 2 i } - - - ( 1 )
其中,Ym=Ys,q的值当m为偶数时为q=m/2,m为奇数时为q=(m-1)/2。另外,为方便而取y0=0。
因此,X与Y之积P为
P=X·Y
= Σ i = 0 q - 1 { ( y 2 i + y 2 i + 1 - 2 y 2 i + 2 ) · X · 2 2 i } - - - ( 2 )
其中,Y2i+Y2i+1和Y2i+2的值分别取0或1,所以,如表1所示,为(Y2i+Y2i+1-2y2i+2)为0、±1或±2,各部分乘积等于0、±X或±2X乘以22i
Figure 94115596X_IMG2
因此,生成各部分积的电路可以主要由用于使被乘数±X扩大2倍的移位1的移位器和用于使假数(0、±X或±2X)扩大22i倍(加权)的每次移2倍的移位器构成。
另外,由于部分积的个数为q=m/2个(m为偶数时)或q=(m-1)/2个(m为奇数时),所以,求部分积之总和的电路的逻辑级数在将双输入加法器连接成二分树状时大约为log2m-1级(m为偶数时)或log2(m-1)-1级(m为奇数时)。
还有,作为2位通道记录方式以外的高速乘法器,有特许公开平03-017737号公报提案的利用冗余二进制数的乘法器。
在上述乘法器中,例如,乘数为24位时,部分积数为12个,逻辑级数为4级。
另一方面,乘法运算速度的高速化及电路规模的减小不限于依靠上述乘法算法的性能来提高,还可以依靠逻辑元件级的电路最优化等方法而实现。
即,近年来,乘法器以及包含乘法器的逻辑电路多数情况是利用自动设计装置进行设计的。在这种装置中,将逻辑元件级的电路信息展开成实装在芯片内的实装元件级的电路信息时,把一部分电路置换为逻辑元件及逻辑级数很少的等效电路,从而消除掉冗余的电路部分。
这种自动设计装置,一旦输入利用硬件记述语言特等表示电路所要求功能的功能记述信息,就把它主要地变换为内部表现形式的功能电路信息,该信息表示由只定义功能的假想功能元件构成的电路,进而变换为表示由实际存在的逻辑元件构成的电路的逻辑电路信息之后,生成表示被分配了按特定工艺实装的实装元件电路的实装电路信息。
另外,在由上述功能记述信息所表示的功能中包括乘法功能时,例如,如果能适用于作为硬件宏元件预先在程序库中登录了指定位长(4、8、16、32位等)的通用乘法器,就进行分配,当需要未在程序库中登录的乘法器时,就重新生成构成加法移位型乘法器等的逻辑电路。当乘数或被乘数的任何一方为常数,并且其值是2的幂时,通常,生成使用移位器的电路。
然而,当乘数不是2的幂的常数时,由于对应乘数中值为0的位的部分积全部数值为0,所以,生成该部分积的电路加法电路总是处于一定的信号状态。
因此,在以往的自动设计装置中,一旦生成乘数及被乘量为变数的乘法电路和常数发生电路之后,如前所述,通过逻辑元件级的电路最优化,就能够进行例如削除信号电平总不变化的逻辑元件等项工作。
然而,在先有的自动设计装置中,逻辑元件级的电路的最优化是通过诸如只将与预先设定的指定图案符合的电路部分置换为逻辑元件及逻辑级数很少的等效电路而进行的,所以,当乘数或被乘数为常数时,即使进行这种最优化,也不一定能生成电路总体的逻辑元件数为最少的电路。特别是,当为了将部分积进行加法运算而将进行保留加法器连接成树状时,如果省略与全位数值为0的部分积加法电路有关的部分,则通常由于树的平衡被破坏,所以,利用部分电路的置换难于使逻辑元件数及逻辑级数减到最少。而且,也没有考虑增加全位数值为0的部分积。
本发明就是鉴于上述问题而提出的,目的旨在当生成进行乘数或被乘数为常数的乘法运算的乘法器及包含这种乘法器的逻辑电路时,提供可以生成逻辑元件数及逻辑级数很少的逻辑电路的自动设计方法及其***和装置以及进行乘数或被乘数为常数的乘法运算并且逻辑元件数和逻辑级数很少的适合于LSI化的高速乘法器。
为了达到上述目的,生成表示求乘数与被乘数之积的逻辑电路的信息的逻辑电路的自动设计方法,对应于乘数的各位进行如下处理:(a)判断乘数为变量还是常数;(b)乘数为变量时根据乘数的位值,选择表示被乘数的信号及表示0的信号两者之中的一种信号并且生成表示将所选择的信号作为部分积而输出的电路的信息;(c)乘数为常数时判断乘数的位值是否为1;(d)乘数位值为1时生成表示把代表被乘数的信号作为部分积而输出的电路的信息;(e)在进行(a)-(d)的处理之后,生成表示把代表被乘数的信号移1位的移位电路的信息并将该移位电路的输出信号重新设定为表示在(a)-(d)的处理中使用的被乘数的信号,并且与乘数的所有位相对应反复进行(a)-(e)的处理。
利用上述结构,在具有乘法运算功能的逻辑电路的设计阶段,乘数为常数时,只生成把乘数中值为1的位与被数之积作为部分积的求解电路时,而不生成有关乘数中值为0的位的部分积的求解电路。这样,在生成的逻辑电路中,就可以减少求部分积的电路的个数,进而可以缩小对部分积进行加法运算的电路的面积。因此,能够缩小逻辑电路的面积并很容易地实现乘法运算速度的高速化。
为了达到上述目的,生成表示求乘数与被乘数之积的逻辑电路信息的逻辑电路的自动设计方法,对应于各个积群进行如下的处理,而这些符号群是把作为乘数的各位和被乘数之积的多个部分积每n个分割为1群而构成的:(a)输入属于该部分积群的n个部分积并且生成表示将该n个部分积之间的和作为m(<n)个部分积而输出的加法电路的信号;(b)对应于上述多个部分积的所有部分反复进行(a)的处理后,将在(a)的处理中生成的加法电路的输出(即所有的部分积)和上述多个部分积中未成为在(a)的处理中生成的加法电路的输入信号的部分积重新设定为实施(a)处理的多个部分积,并且反复进行(a)和(b)的处理。
利用上述结构,在具有乘法运算功能的逻辑电路的设计阶段,通过将无进位传送的加法器构成为树状,就能够生成用于将部分积进行加法运算的电路。因此,在生成的逻辑电路中能够减少部分积的加法级数,而不传送各个加法中的进位。因此,可以进一步使乘法运算速度提高。
为了达到上述目的,生成表示乘数与被乘数之积的求解逻辑电路信息的逻辑电路的自动设计方法具有如下处理:(a)确定两个常数A1、A2,以使常数A1与常数A2之差A1-A2等于常数的乘数A;(b)输入常数A1和被乘数X,生成表示将它们的部分积输出的第1部分积生成电路的信息;(c)输入常数A2和被乘数X,生成表示将它们的部分积输出的第2部分积生成电路的信息;(d)输入上述第2部分积生成电路的输出信号并生成表示输出该逻辑非信号的逻辑非电路的信息;(e)输入上述第2部分积生成电路的输出信号和上述逻辑非电路的输出信号以及修正信号,求出它们和,生成表示输出乘数A与被数X之积的电路的信息。
另外,生成表示求乘数与被乘数之积的逻辑电路的信息的逻辑电路的自动设计方法具有如下处理:(a)确定三个常数A1、A2,A3,以使常数A1与常数A2、A3之和的差A1-(A2+A3)等于常数的乘数A;(b)判断常数A1是否等于乘数A及常数A2、A3是否都为0;(c)常数A1等于乘数A时,(c-1)输入常数A1和被乘数X并生成表示输出它们的部分积的第1部分积生成电路的信息,(c-2)输入上述第1部分积生成电路的全部输出信号,求出它们的和,生成表示把这个和作为乘数A与被乘数X之积而输出的第1部分积和电路的信息;(d)常数A1不等于乘数A并且常数A2和A3中至少一方不为0时,(d-1)输入常数A1和被乘数X并生成表示输出它们的部分积的第2部分积生成电路的信息,(d-2)输入常数A2、A3和被乘数X并生成表示输出它们的部分积的第3部分积生成电路的信息,(d-3)输入上述第3部分积生成电路的输出信号并生成表示输出其逻辑非信号的第1逻辑非电路的信息,(d-4)输入上述第2部分积生成电路的输出信号和上述第1逻辑非电路的输出信号以及第1修正信号,并生成表示将它们求和之后作为乘数A与被乘数X之积而输出的第2部分积和电路的信息。
利用上述结构,在具有乘法运算功能的逻辑电路的设计阶段,当常数的乘数A中值为1的位较多时,通过将乘数A分割为满足A=A1-A2的常数A1和A2(或者将常数A分割为满足A=A1-(A2+A3)的常数A1、A2、A3),可以使常数A1和A2(或常数A1,A2,A3)中值为1的位的总数少于乘数A中的值为1的位数。因此,能够减少上述逻辑电路中部分积的个数。
为了达到上述目的,生成表示求乘数与被乘数之积的逻辑电路的信息的逻辑电路的自动设计方法具有如下处理:(a)根据为常数的乘数A生成乘数A的逻辑非信号;(b)与上述乘数A的逻辑非信号的各位对应地,(b-1)判断上述乘数A的逻辑非信号的该位值是否为1,(b-2)当上述乘数A的逻辑非信号的该位值为1时,生成表示把代表被乘数X的信号作为部分积而输出的电路的信息,(b-3)在进行(b-1)和(b-2)的处理后生成表示把代表被乘数X的信号移1位的移位电路的信息并将该移位电路的输出信号重新设定为表示在(b-1)和(b-2)的处理中所使用的被乘数X的信号,并且与上述乘数A的逻辑非信号的所有位相对应,通过反复进行(b-1)-(b-3)的处理而生成表示部分积生成电路的信息;(c)输入上述部分积生成电路的全部输出信号和表示被乘数X的信号并生成表示将它们的相加结果作为指定个数的部分积而输出的部分积加法电路的信息;(d)输入上述部分积加法电路的输出信号并生成表示输出其逻辑非信号的逻辑非电路的信息;(e)根据被乘数X生成修正信号;(f)输入上述修正信号和上述逻辑非电路的输出信号并生成表示把它们求和后作为乘数A与被乘数X之积而输出的最终和电路的信息。
根据上述结构,在具有乘法运算功能的逻辑电路的设计阶段,当常数的乘数A中值为1的位较多时,生成乘数A的逻辑非信号,从而能够生成只对该乘数A的逻辑非信号中值为1的位求部分积的电路。这样,便可将上述逻辑电路中求部分积的电路的个数减少到乘数A的位数的半数以下。
为了达到上述目的,逻辑电路的自动设计***具有输入各种信息的输入装置、存储处理中的各种信息的存储装置、生成表示求从上述输入装置输入的乘数与被乘数之积的逻辑电路的信息的运算处理装置和输出表示根据该运算处理装置而作成的逻辑电路的信息的输出装置。
上述运算处理装置进行如下处理:(a)确定两个常数A1、A2,以使常数A1与常数A2之差A1-A2等于常数的乘数A;(b)判断乘数或值为1的位与常数A1中值为1的位和常数A2中值为1的位数之和中哪个最小;(c)当乘数A中值为1的位数为最小时,(c-1)输入乘数A和被乘数X并且生成表示将乘数A的各位与被乘数X之积作为部分积而输出的第1部分积生成电路的信息,(c-2)输入上述第1部分积生成电路的全部输出信号并生成表示将它们求和之后作为乘数A与被乘数X之积而输出的第1部分积和电路的信息;(d)当常数A1中值为1的位数与A2中值为1的位数之和为最小时,(d-1)输入常数A1和被乘数X并生成表示输出它们的部分积的第2部分积生成电路的信息,(d-2)输入常数A2和被乘数X并生成表示输出它们的部分积的第3部分积生成电路的信息,(d-3)输入上述第3部分积生成电路的输出信息并生成输出其逻辑非信号的逻辑非电路的信息,(d-4)输入上述第2部分积生成电路的输出信号和上述逻辑非电路的输出信号以及修正信号并生成表示将它们求和之后作为乘数A与被乘数X之积而输出的第2部分积和电路的信息。
另外,具有求乘数与被乘数之积的乘法运算功能的逻辑电路的自动设计装置具有输入装置、乘数分割装置、第1部分积生成电路生成装置、第2部分积生成电路生成装置、逻辑非电路生成装置、部分积总数判断装置、部分积加法电路生成装置、修正信号生成装置和最终和电路生成装置。输入装置用于从外部输入表示乘数A的信息、表示被乘数X的信息和表示积P的信息等各种信息;乘数分割装置用于输入表示乘数A的信息并确定表示常数A1的信息和表示常数A2的信息以使常数A1与常数A2之差A1-A2等于乘数A;第1部分积生成电路生成装置用于输入表示常数A1的信息和表示被乘数X的信息,生成表示第1部分积生成电路的信息,该第1部分积生成电路,输入常数A1和被乘数X,并将常数A1中的值不为0的各位与被乘数X之积作为部分积而输出;第2部分积生成电路生成装置用于输入表示乘数A2的信息和表示被乘数X的信息,生成表示第2部分积生成电路的信息,该第2部分积生成电路输入常数A2和被乘数X,并将常数A2中的值不为0的各位与被乘数X之积作为部分积而输出;逻辑非电路生成装置用于输入表示上述第2部分积生成电路的输出信号的信息,生成表示逻辑非电路的信息,该逻辑非电路输入上述第2部分积生成电路的输出信号,并输出其逻辑非信号;部分积总数判断装置用于判断上述第1部分积生成电路和逻辑非电路的输出信号的个数的总和;部分积加法电路生成装置用于输入表示上述第1部分积生成电路的输出信号的信息和表示逻辑非电路的输出信号的信息,生成表示部分积加法电路的信息,该部分积加法电路输入上述第1部分积生成电路和逻辑非电路的全部输出信号,并将它们的加法结果作为部分积而输出;修正信号生成装置用于输入表示上述逻辑非电路的输出信号的信息或表示第2部分积生成电路的输出信号的信息,并根据该信息表示的输出信号的个数生成修正信号;最终和电路生成装置用于输入表示上述部分积加法电路的输出信号的信息和表示上述修正信号的信息以及表示积P的信息,生成表示部分积和电路的信息,该部分积和电路求上述部分积加法电路的输出信号与上述修正信号之和,将该和作为乘数A与被乘数X之积并设定为积P,输出该积P。
根据上述结构,通过自动设计***的运算处理装置进行各种处理或者通过自动设计装置的各个装置分别进行各自的处理,可以很容易地生成能减少部分积的个数及加法运算的逻辑级数的逻辑电路。
为了达到上述目的,对于常数A1、A2输出满足A=A1-A2的乘数A与被乘数X之积的乘法器具有第1部分积生成单元、第2部分积生成单元、逻辑非单元和部分积和单元。第1部分积生成单元用于输入常数A1和被乘数X并输出只与常数A1中值为1的各位对应的部分积;第2部分积生成单元用于输入常数A2和被乘数X并输出只与常数A2中值为1的各位对应的部分积;逻辑非单元用于输入该第2部分积生成单元的输出信号并输出其逻辑非信号;部分积和单元用于输入上述第1部分积生成单元的输出信号和上述逻辑非单元的输出信号以及修正信号并将它们求和后作为乘数A与被乘数X之积而输出。
另外,输出乘数A与被乘数X之积的乘法器具有部分积生成单元、部分积加法单元、逻辑非单元和部分积和单元。部分积生成单元用于输入乘数A的逻辑非信号和被乘数X并输出只与上述乘数A的逻辑非信号中值为1的各位对应的部分积;部分积加法单元用于输入该部分积生成单元的输出信号和被乘数X并利用1级或多级加法单元将上述部分积生成单元的输出信号与被乘数X进行加法运算,然后将其加法结果作为部分积而输出;逻辑非单元用于输入该部分积加法单元的输出信号并输出其逻辑非信号;部分积和单元用于输入该逻辑非单元信号和根据被乘数X生成的可能的修正信号并将上述逻辑非单元的输出信号与上述修正信号求和后作为乘数A与被乘数X之积而输出。
利用上述结构,由于各部分积生成单元输出只与满足乘数A=A1-A2的常数A1、A2(或乘数A的逻辑非信号)中值为1的各位对应的部分积,所以,能够减少部分积的个数。另外,部分积的加法运算在部分积加法单元中是利用进位保留加法器的加法树进行的,所以,可以提供减少逻辑元件数和逻辑级数并适合LSI化的高速乘法器。
图1是本发明实施例的逻辑电路的自动设计***的结构框图。
图2是上述自动设计***的存储装置的构成图。
图3是利用上述自动设计***进行设计处理的流程图。
图4是图3中在S43进行功能元件变换处理的详细情况的流程图。
图5是图4中在S85进行乘法器生成处理的详细情况的流程图。
图6是图5中在S1012进行功能元件变换处理的详细情况的流程图。
图7是图5中在S1013进行乘法器生成处理的详细情况的流程图。
图8是图7中在S142生成使用了加法树的乘法器的生成处理的详细情况流程图。
图9是图8中在S151进行部分积生成电路生成处理的详细情况的流程图。
图10是图8中在S153进行部分积加法树生成处理的详细情况流程图。
图11是图7中在S146生成基于符号反转的乘法器的生成处理的详细情况流程图。
图12是图7中在S148生成基于分割的乘法器的生成处理的详细情况流程图。
图13是图7中在S143进行乘数分割处理的详细情况流程图。
图14是利用本发明实施例2的逻辑电路的自动设计***进行乘法器生成处理的流程图。
图15是本发明实施例3的逻辑电路的自动设计装置的结构框图。
图16(a)-图16(c)是上述实施例1的自动设计***的存储装置中存储的电路数据的一个例子,图16(a)是表示电路的模式图,图16(b)是功能记述信息的表示图,图16(c)是功能电路信息的表示图。
图17(a)-图17(c)是上述实施例1的自动设计***的存储装置中存储的电路数据的其它例子,图17(a)是表示电路的模式图,图17(b)是功能记述信息的表示图,图17(c)是功能电路信息的表示图。
图18(a)-图18(d)是表示在利用上述实施例1的自动设计***进行的设计处理中作为功能元件的乘法器的模式图。
图19(a)-图19(d)是表示在图5的乘法器生成处理中生成的电路的电路图。
图20(a)是表示变换规则1的模式图。
图20(b)是表示变换规则1的实际表现形式的图。
图21是表示变换规则2的模式图。
图22是表示变换规则3的模式图。
图23是表示变换规则4的模式图。
图24是表示变换规则5的模式图。
图25是表示变换规则6的模式图。
图26是表示变换规则7的模式图。
图27是表示变换规则8的模式图。
实施例1
下面,参照附图说明本发明实施例1的逻辑电路的自动设计***。
首先,先参照图1和图2说明实施例1的自动设计***的硬件结构。
图1是实施例1的自动设计***硬件结构一例的框图。在图1中,输入装置11用于输入关于欲使自动设计***进行设计的电路的功能说明信息等。作为该输入装置,可以使用键盘、鼠标器、光笔、卡片输入机、图解入口***等。另外,不限于由操作者直接操作来输入,还可以使用预先把利用上述装置输入了的信息作为元件存储起来的磁盘装置或接收从其他装置传送来的信息的网络装置等。
中央处理装置12通过进行后面所述的各种处理,进行逻辑合成及电路最优选化等的电路设计处理。
输出装置13用于输出作为中央处理装置12的设计处理结果的电路信息及有关处理的各种信息等。作为输出装置13,可以使用图形显示器、字符显示器、打印机、绘图仪等,另外,和输入装置11一样,还可以使用磁盘装置及网络装置等。
存储装置14,例如图2所示,具有设计处理存储器21、元件库存储器22和电路数据存储器23,用于存储从输入装置11输入的信息以及关于电路设计处理的程序和数据等。
更详细地说来,例如,设计处理存储器21中存储中央处理装置12进行设计所需要的各种处理程序以及在这些处理中适用的变换规则信息等。
另外,在元件库存储器22中,作为元件库存储着表示功能元件、逻辑元件和实装元件等的功能、面积、延迟时间及驱动力等的信息。
电路数据存储器23中存储着从输入装置11输入的功能记述信息以及通过电路设计处理生成的功能电路信息、逻辑电路信息和实装电路信息等。
这里,上述功能记述信息主要是利用硬件记述语言等表示电路所要求功能的信息。另外,功能电路信息主要是用内部表现形式表示由只定义了功能的假想功能元件构成的电路的信息。逻辑电路信息是指表示由几乎不依赖于制造过程及设计手法等的逻辑级的实际存在的逻辑元件构成的电路的信息。另外,实装电路信息是指与制造过程及设计手法等密切相关、表示分配了按特定的工艺实装的实装元件(例如CMOS型晶体管的标准元件、门电路阵列库中的元件或者TTL、ECL等与制造过程有关的元件)的电路的信息。
上述功能元件的一个例子示于表2。例如,多位加法器表示将多位的2个数进行加法运算的功能元件。比较器表示将多位的2个数进行比较的功能元件。多位and表示求多位的两个信号各位逻辑积的功能元件。另外,多位inv表示求多位的信号各位逻辑非的功能元件。
另外,分割器和混合器是表示在变换处理的过程中为了简便而将多位信号进行归纳处理及分割处理的功能元件,是在最后变换为实装元件构成的电路,并在所有的信号按每1位的信号进行处理时去除的功能元件。
通常,不存在与这些功能元件直接对应的由实装元件构成的电路,一旦展开成由实现这些功能的逻辑元件构成的电路后,就置换为由实装元件构成的电路。
表2
多位加法器
多位减法器
多位乘法器
多位除法器
比较器
编码器
译码器
选择器
多路转换器
计数器
锁存器
触发器
 缓冲器
寄存器
移位器
混合器
分割器
多位and
多位nand
多位or
多位nor
多位xor
多位inu
另外,逻辑元件的一个例子示于表3。在表3中,例如,1位加法器表示将1位的两个信号进行加法运算的元件。另外,1位and表示求两个以上的1位信号的逻辑积的元件。
与这些逻辑元件对应的由实装元件构成的电路,是预先确定的,在设计处理的最后阶段进行置换。
表3
1位加法器
1位and
1位or
1位nor
1位xor
1位inu
下面,参照图16和图17说明在电路数据存储器23中存储的功能说明信息及功能电路信息的具体例子。这些信息,例如作为文本数据进行存储。
例如,由图16(a)所示的1位二输入“与门”和1位三输入加法器构成的电路记述图16(b)所示的功能说明信息。另外,该功能记述信息通过设计处理,被变换为例如图16(c)所示的功能电路信息或逻辑电路信息。还有,当功能记述信息与逻辑元件构成的电路直接对应时,有时功能电路信息和逻辑电路信息没有特别区别。
在本例中,图16(c)的功能电路信息包括用于识别各个元件的识别名31和多对属性代码32与属性值33。各对的属性代码32与属性值用“::”表示对应,各对用“;”进行区别,识别名31利用“:::”与其它数据进行区别。作为属性代码32,有“a_kind_of”、“input”、“output”等,与它们对应的属性值33分别表示与元件的种类、输入信号、输出信号有关的值。
即,gate  01元件表示是adder(加法器),它的输入信号为sig1、sig2、sig3,输出信号为sig4、sig5。另一方面,gate  02元件表示是and(与门),它的输入信号为sig6、sig7,输入信号为sig3。另外,gate  01和gate  02由信号sig3相连接。
另外,同样,由图17(a)所示的功能元件即乘法器51、输入数值为130(用16进制表示为82h)的8位常数乘数的信号线52、输入8位的被乘数a的信号线53和输出16位乘法结果的信号线54构成的电路记述图17(b)所示的功能记述信息,变换为图17(c)所示的功能电路信息。还有,这里乘数和被乘数的区别是为了变换处理中方便而定的。
在图17(b)的功能说明信息中,被乘数a是从0位到7位的8位信号,变量b是从0位到15位的16位信号,该变量b的值表示被乘数a与用8位信号表示的值为13a的乘数的积。
另外,在图17(c)的功能电路信息中,在第1行,功能元件的识别名为gate1,该功能元件表示是multiplier(乘法器),在第2、4行的记述中,用符号i1表示的信号表示是输入信号a,位长为8位,在第3、5行的说明中,用符号i2表示的信号表示是输入信号,是位长为8位、数值为130的常数,在第6行的说明中,用符号0表示的信号表示是输出信号b,位长为16位。
下面,参照附图说明用上述构成的自动设计***进行的电路设计处理。还有,在以下的说明中,为了简单起见,与信息种类中功能记述信息、功能电路信息或逻辑电路信息的区别无关,利用图16(a)及图17(a)那样的模式图表示信息的内容。另外,在不混同的范围内,根据需要,乘数和被乘数的术语,也用来表示它们的数值或者分别表示乘数的信号及被乘数的信号,电路的术语也用来表示电路的信息。
另外,在以下的说明中,使用如下表记。将从数X的最末位开始计数由第a位到第b位(a>b)间的位构成的(a-b+1)位的数表记为X(a∶b)。数X的第a位的值表为X(a)。
并且,将函数按如下定义。对于用k位长表示的信号Y,将值为1的位数定义为posibits(Y),将值为0的位数定义为negabits(Y)。另外,从最末位开始计数,将数值为1的位数在P位(P<K)之前的位数定义为effbiwidth(Y,P),由于求这些函数值的处理很容易实现,故省略详细的说明。
图3是表示利用实施例1的自动设计***进行的电路设计处理的主程序的流程图。
如图3所示,S41是从输入装置11输入电路中功能设计者根据功能规格作成的功能记述信息并将其存储到电路数据存储器23内的处理。另外,不限于功能记述信息,例如,也可以接收比较简单的电路部分的功能电路信息及逻辑电路信息等的输入。
S42解释在S41输入的功能记述信息、生成用内部表现形式表示由功能元件构成的具有功能记述信息表示功能的电路的功能电路信息,并将其存储到电路数据存储器23内。
S43将在功能电路信息中包含的全部功能元件变换为逻辑元件,并作为逻辑电路信息存储到电路数据存储器23内。另外,关于包含乘法器的电路,也可以在功能元件级进行电路的最优化。关于该S43的详细的处理内容后面进行介绍。
S44将逻辑电路信息中包含的全部逻辑元件利用基于指定的变换规则信息的元件变换处理分配实装元件并作为实装电路信息存储到电路数据存储器23内。另外,S44是将逻辑元件分配为实装元件的过程,在逻辑元件级也可以进行电路的最优化。
S45根据实装电路信息等生成电路图及网络表格并输出到输出装置13。这里,上述网络表格例如是表示由实装元件构成的电路中实装元件连接关系的信息。
还有关于在S42、44进行的处理,分别与特开平3-15984号公报及美国专利USP5043914号公报登载的一样,所以,省略详细的说明。
下面,参照图4说明在图3的S43进行的功能元件变换处理的详细情况。
图4是表示S43的功能元件变换处理的详细情况的流程图。如图4所示,在S81,选择1个包含在功能电路信息中的功能元件。
在S82、83,分别判断所选择的功能元件是加法器还是乘法器,如果是加法器,就转入S84,如果是乘法器,就转入S85,另外,如果既不是加法器也不是乘法器,就进入S86。
在S84-86,分别将所选择的功能元件变换为具有至少由其它功能元件和逻辑元件中的一方构成的相同功能的电路,生成该电路信息,然后转入S87。
在S87,判断电路中是否包含功能元件,如果包含功能元件,就返回到S81,反复进行S81-86的处理;如果未包含功能元件,即,如果变换为仅由逻辑元件构成的功能元件,即,如果变换为仅由逻辑元件构成的电路,则结束S43的功能元件变换处理,返回主程序中。
这里,在S84-86,有时不一定通过一次处理就变换为仅由逻辑元件构成的电路,而是暂时变换为含有其它功能元件的电路。这时,在S87判断为含有功能元件,通过递归反复进行同样的变换处理,最终变换为仅由逻辑元件构成的电路。具体说来,例如,多位加法器按照S84的处理,通过反复向由位数更少的加法器(功能元件)和1位加法器(逻辑元件)构成的电路进行变换,最后变换为仅由1位加法器构成的电路。另外,减法器和除法器等在S86变换为由加法器等功能元件和逻辑元件构成的电路,然后,加法器在S84变换为1位加法器。这样,通过进行递归变换处理,可以很容易地使各个处理简单化。
在S83判定为“是”时,在S85进行变换的乘法器例如具有图18(a)-(d)所示的功能。图18(a)-(d)的乘法器都具有把用m位长的信号表示的乘数与用n位长的信号表示的被乘数进行乘法运算,并输出用n+m位长的信号表示的积P的功能。但是,输入的乘数和被乘数有常数或变数之区别,图18(a)的乘法器,乘数和被乘数都是常数;图18(c)的乘法器,乘数是常数而被乘数是变数;图18(d)的乘法器,乘数和被乘数都是变数。
另外,在以下说明中,为了简单起见,以常数A为正数进行说明。通过生成使常数A的符号反转的A′的乘法电路和将其乘法结果的符号反转的电路的电路信息,很容易与常数A为负数的情况进行对应。另外,对变数X能取正或负的值作说明,而限于正数时,在后面所述的用于位长组合的符号扩展中,可以进行0扩展。
下面,参照图5、图18和图19说明在图4的S85进行的乘法器生成处理的详细情况。该乘法器生成处理,是将乘法器变换为由其它功能元件(乘法器、加法器等)及逻辑元件构成的电路。
图5是表示S85的乘法器生成处理的详细情况的流程图,如图5所示,在S1001,判断乘数和被乘数是否均为常数,如图18(a)所示,如果都为常数,则转入S1002,在S1002计算乘积,并变换为发生用2进制数表示该值的信号的电路。具体说来,对于被乘数A=4,乘数B=5的情况,如图19(a)所示,变换为将表示数值4×5=20(用2进制表示为“10100”)的信号作为P(4∶0)输出,将表示数值0的信号作为P(n+m-1∶5)输出的电路。
另外,在S1001判定乘数和被乘数中至少一方为变数时,则转入S1003,在S1003判断被乘数是否为常数,如果被乘数为常数,则转入S1004,在S1004将乘数与被乘数调换后,转入S1005。另外,如果被乘数不为常数,则直接转入S1005。即,对于图18(b)所示的乘法器的情况,变换为图18(c)所示的乘法器,至少使被乘数总是变数。
在S1005、1007、1009,判断乘数是否为特定的常数即0、1或2的幂。如果乘数为0,如图19(b)所示,变换为输出表示所有位的值均为0的信号的电路(S1006),如果乘数为1,则如图19(c)所示,变换为将表示被乘数的值的信号直接作为P(n-1∶0)而输出、同时将数值为X(n-1)的信号作为P(n+m-1∶n)(符号扩展后)而输出的电路(S1008)。另外,乘数为2的幂例如8(=23)时,如图19(d)所示,变换为将表示被乘数的值的信号作为P(n+2∶3)而输出、同时将数值为0的信号作为P(2∶0)、将各位的值为X(n-1)的信号作为P(n+m-1∶n+3)(符号扩展后)而输出的电路(S1010)。另外,变数X限于正数时,如前所述,可以不将上位的位进行符号扩展,而只进行0扩展。
在S1011,判断乘数是否为1位或2位以上,如果乘数为1位,则转入S1012,在S1012,例如,如图20所示,进行将乘法器131变换为由与门电路132-135构成的电路的处理。另一方面,如果乘数为2位以上,则转入S1013,在S1013,进行变换为由其它功能元件(位长更小的乘法器及加法器等)和逻辑元件中至少一方构成的多位乘法器的处理。在S1011判定乘数为1位的限于乘数为变数的一种情况。因为,如果乘数为1位的常数,则在S1005、1007将判断为“YES”。另外,判定乘数为2位以上的包含乘数为变数和常数的两种情况。
这里,在S1000、1008、1010、1012进行的电路的变换,是根据预先存储在设计处理存储器21内的变换规则信息进行的。
下面,参照图6和图20说明在图5的S1012进行的功能元件变换处理的详细情况。在该功能元件变换处理中,使用图20(b)所示的变换规则1,利用图6所示的处理进行变换。
图6是表示S1012的功能元件变换处理的详细情况的流程图,如图6所示,首先,在S71,将在图20(b)的变换规则信息中“==>”之前所示的条件节与原来的电路信息进行比较,如果满足变换适用条件,就使信号线的名称等对应配合。
在S72,从电路数据存储器23中消去表示原来的功能元件即乘法器的电路信息。
在S73,根据表示图20(b)的变换规则信息中“==>”之后所示的结果节中的功能元件或逻辑元件的电路信息和上述对应配合,生成表示进行变换的电路的信息并存储到电路数据存储器23内。
在S74,判断在上述结果节中的是否遗留着未处理的功能元件及逻辑元件,如果遗留着,就返回到S73;如果未遗留,S1012的功能元件变换处理就结束。
关于利用变换规则1能变换为与原来的乘法器等效的电路的证明,将与其它变换规则的证明一起在后文示出。但是,关于根据这种变换规则进行的具体的元件变换处理,已在美国专利USP5043914号公报上予以登载,故省略详细的说明。另外,变换规则信息虽然实际上是用图20(b)所示的内部表现形式表示的,但是,在以下的说明中,为了简单起见,原则上利用图20(a)所示的模式图进行说明。
下面,参照图7说明在图5的S1013进行的乘法器生成处理的详细情况。在该乘法器生成处理中,大致地讲,是如下面那样把求部分积与部分积和电路的逻辑级数减少。即,乘数为常数时,为了减少部分积数,在乘数或取乘数所有位的逻辑非的数或其差等于乘数的两个数中,变换为只对数值为1的位求部分积的电路。另外,不论乘数为常数或变数,为了减少求部分积和电路的逻辑级数,变换为使用减少了进位传递的加法树的电路。
图7是表示S1013的乘法器生成处理的详细情况的流程图,如图7所示,首先,在S141,判断乘数是否为变数,如果乘数为变数,因是变数之间的乘法运算,所以,转入S142,在S142,进行生成利用加法树的乘法器处理。另外,当判定乘数为常数A时,则转入S143,在S143将乘数A分割为差值等于A的两个常数A1和A2。
S142是应用图21所示的变换规则2,将变数的乘数Y或常数的乘数A与被乘数X的乘法变换为至少由部分积加法树、加法器及部分积生成电路三者中之一构成的电路的乘法器生成处理。
S143是确定A1和A2,以使其满足A=A1-A2并且使posibits(A1)+posibits(A2)的值为最小的处理。具体说来,在本实施例中,就是按图13所示的流程图进行处理。后面再作详细的说明。
在S144,判断乘数A中的值为1的位数是否大于A1中的值为1的位数与A2中的值为1的位数之和,即,判断posibits(A)>posibits(A1)+posibits(A2)的关系是否成立。在该判断中,当posibits(A)>posibits(A1)+posibits(A2)的关系成立时,转入S147,在S147进一步进行判断处理。当posibits(A)>posibits(A1)+posibits(A2)的关系不成立,转入S145,在S145进行其它的判断处理。
在S145,判断乘数A中值为1的位数是否大于数值为0的位数与2之和,即判断posibits(A)>m/2+1的关系是否成立。当posibits(A)>m/2+1的关系成立时,转入S146,在S146,进行基于符号反转的乘法器生成处理。当posibits(A)>m/2+1的关系不成立时,转入S142,在S142,进行基于加法树的乘法器生成处理。
S146是应用图26所示的变换规则7,将取乘数A的全位逻辑非的值作为乘数A0,并进行变换为由求该乘数A0与被乘数X之积的部分积生成电路、部分积加法树、它们的输出的逻辑非电路和最终和电路构成的电路的处理。这里,通过取乘数A的逻辑非,可使posibits(A0)的值小于posibits(A)的值,所以,可使数值为1的位数小于原来的乘数A,同时生成只对数值为1的位求部分积的电路,从而可以减少求部分积电路的个数和求部分积和电路的逻辑级数。
在S147,判断A1中值为1的位数与A2中值为1的位数之和是否大于乘数A中值为0的位数与2之和,即,判断posibits(A1)+posibits(A2)>m-posibits(A)+2的关系是否成立。在该判断中,当posibits(A1)+posibits(A2)>m-posibits(A)+2的关系成立时,转入S146,在S146,进行基于符号反转的乘法器生成处理。当posibits(A1)+posibits(A2)>m-posibits(A)+2的关系不成立时,转入S148,在S148进行基于分割的乘法器生成处理。
S148是应用图27所示的变换规则8,变换为由求上述常数A1与被乘数X之积的部分积生成电路、求上述常数A2与被乘数X之积的部分积生成电路、其输出的逻辑非电路、部分积加法树及最终和电路构成的电路的处理。这时,由于posibits(A1)的值与posibits(A2)的值之和小于posibits(A)的值,所以,数值为1的位数小于原来的乘数A,同时生成只对数值为1的位求部分积的电路,从而可以减少求部分积的电路的个数和求部分积和的电路的逻辑级数。
图7的S144、145、147的判断处理,在本实施例中是三个判断处理,但是,也可以代之进行posibits(A)、posibits(A1)+posibits(A2)及posibits(A)+2(即m+2-posibits(A))之间大小关系的判断处理。这时,根据判断结果,当posibits(A)最小(并且也包括与其它相等的情况)时,转入S142;当posibits(A1)+posibits(A2)为最小(并且也包括与negabits(A)+2相等的情况)时,转入S148;当negabits(A)+2为最小(只单独为最小时),转入S146。
下面,参照图8和图21说明在图7的S142进行的使用了加法树的乘法器生成处理的详细情况。
图21是表示在S142的乘法器生成处理中使用的变换规则2的模式图,如图21所示,变换规则2是表示将使位长为m的变数的乘数Y或位长为m的常数的乘数A与位长为n的被乘数X进行乘法运算而输出位长为L的积P的乘法器191变换为由使乘数Y或A与被乘数X进行乘法运算而求部分积P1、…、Pk的部分积生成电路192、将这些部分积P1、…、Pk进行加法运算的部分积加法树193及最终和电路构成的电路。但是,上述最终和电路可以只对部分积加法树193的输出Q1、Q2重复位以下的位进行加法运算,所以,可以由使部分积Q2的下位L-1位移1位(即2倍)了的信号R与部分积Q1进行加法运算的加法器194构成。
另外,变换规则2特别是部分积的个数为2个(即,K=2或-posibits(A)=2)时,是表示将乘法器191变换为由使乘数A与被乘数X进行乘法运算求部分积P1、P2的部分积生成电路195和将这些部分积P1、P2进行加法运算的最终和电路196构成的电路。
变换规则2在部分积的个数为1个(即,K=1或posibits(A)=1)时表示将乘法器191变换为使乘数A与被乘数X进行乘法运算求部分积P的部分积生成电路197。
更详细地说,部分积生成电路192、195、197就是将乘数Y(m-1∶0)或A(m-1∶0)与被乘数X(n-1∶0)进行乘法运算,作为部分积输出K个L位长的信号P1(L-1∶0)、……、Pk(L-1∶0)的电路。其中,部分积生成电路197是输出L位长的信号P(L-1∶0)的电路。
另外,部分积加法树193是输入K个部分积P1(L-1∶0)、…、Pk(L-1∶0)并对它们进行加法运算,最后将该加法运算结果作为部分和输出L位长的信号Q1(L-1∶0)和作为部分进位输出L位长的信号Q2(L-1∶0)的电路。
加法器194是将信号Q1(L-1∶0)与上位n-1位为信号Q(L-2∶0)、最下位的位为0的信号Q2(L-1∶0)(即R(L-1∶1)=Q2(L-2∶0),R(0)=0)进行加法运算并输出其和即L位长的信号P(L-1∶0)的电路。
加法器196是将信号P1(L-1∶0)与P2(L-1∶0)进行加法运算并输出其和即L位长的信号P(L-1∶0)的电路。
在图21中,加法器194、196都是先行进位加法器(CLA),但是,也可以是其它加法器。
图8是表示在S142使用了加法树的乘法器生成处理的详细情况的流程图,如图8所示,S151应用图22所示的变换规则3,进行生成根据被乘数X与变数的乘数Y或常数的乘数A求部分积的电路的处理。
S152判断在S151求出的部分积的个数是1个还是2个或者更多,即,是判断乘数是常数并且posibits(A)=1还是乘数为常数并且posibits(A)=2或这两者以外的三种情况中的哪一种的判断处理。根据该判断,如果部分积的个数为1(即,乘数为常数并且posibits(A)=1),就转入S155,在S155将在上述处理中生成了电路的乘法器从电路数据消除。另外,如果部分积的个数为2个(即,乘数为常数并且posibits(A)=2)就转入S154,在S154生成将这2个部分积进行加法运算求最终和的电路。进而如果部分积的个数大于3个(即,乘数为变数或乘数为常数并且posibits(A)>2),就转入S153,在S153生成将这些部分积进行加法运算的部分积加法树。
S153进行生成图21所示的部分积加法树193的处理,该加法树使用图23所示的变换规则4,减少了由多级加法器产生的进位传递。
S154进行生成表示图21所示的加法器194及196的电路信息并将其存储到电路数据存储器23内的处理。具体地说,就是生成将部分积加法树193的两个输出Q1、Q2的位对齐进行加法运算的加法器194(即,将Q2向上位移1位使最下位成为0后与Q1进行加法运算的加法器)或者将部分积生成电路195的两个输出P1、P2进行加法运算的加法器196的处理。另外,在本实施例中,加法器194和196都是先行进位加法器,但是,也可以是其它加法器。
S155是将表示与图21的乘法器191对应的乘法器的电路信息从电路数据存储器23中消除的处理。
下面,参照图9和图22说明在图8的S151进行的部分积生成电路生成处理的详细情况。
图22是表示在S151的部分积生成电路生成处理中使用的变换规则3的模式图,如图22所示,变换规则3在乘数为变数时,表示将使位长为m-k的变数的乘数Y(m-1∶k)与位长为n的被乘数X(n-1∶0)进行乘法运算并输出位长为L的部分积P1、P2、……的部分积生成电路161,变换为由输入乘数的1位Y(K)和被乘数X并在Y(K)=1时输出X(n-1∶0)在Y(K)=0时输出n位值为0的信号的选择电路162、在该输出信号R的上位合成各位的值为0的信号(即,进行0扩展)使从下位把L位的信号作为P1(L-1∶0)的电路和使位长为m-k-1的乘数Y(m-1∶k+1)与位长为n+1的被乘数X(n-1∶0)×2(即,将X(m-1∶0)的下位的1位合成数值为0的信号的n+1位的信号)进行乘法运算并输出位长为L的部分积P2、……的部分积生成电路163构成的电路。(其中,k是满足0≤k≤m的整数)。但是,当k=m-1时不生成部分积生成电路163,这时的电路由选择电路162和在其输出信号R的上位合成各位的值为0的信号,从下位把L位的信号为P1(L-1∶0)的电路构成。另外,在图22中,作为选择电路162,是变换为1位信号Y(K)与n位被乘数X(n-1∶0)的逻辑积电路,然而,也可以是利用1位信号Y(K)选择n位被乘数X(n-1∶0)或0信号的选择器。
另外,变换规则3在乘数为常数时,表示将使位长为m-k的常数的乘数A(m-1∶k)与位长为n的被乘数X(n-1∶0)进行乘法运算并输出位长为L的部分积P1、P2、……的部分积生成电路161变换为由在乘数的1位A(K)为1时将n位的信号X(n-1∶0)的上位合成为各位值为0的信号(即,进行0扩展),从下位把L位信号为P1(L-1∶0)的电路和使位长为m-k-1的乘数A(m-1∶k+1)与位长为n+1的被乘数X(n-1∶0)×2(即,将X(n-1∶0)的下位的1位合成为值为0的信号的n+1位的信号)进行乘法运算并输出位长为L的部分积P2……的部分积生成电路164构成的电路,如果乘数的1位A(K)为0时,则表示变换为仅由部分积生成电路164构成的电路。(其中,k是满足0≤k≤m)的整数)。但是,当k=m-1时不生成部分积生成电路164,这时的电路由选择电路162和将其输出信号R的上位合成为各位的值为0的信号、并从下位把L位信号作为P1(L-1∶0)的电路构成。
利用变换规则3生成的部分积生成电路163及164,通过反复应用相同的变换规则3进行递归变换直到k=m-1。
图9是表示S151的部分积生成电路生成处理详细情况的流程图,如图9所示,S121是将表示乘数Y或A的比特位置的变数K设定为初始值等于0的处理。即,设定K=0。
S122是判断乘数是否为变数Y的判断处理。如果乘数为变数Y,则转入S124,在S124进行选择电路生成处理,如果乘数为常数A,则转入S123,在S123进行其它的判断处理。
S123是判断乘数A的1位A(K)的值是否为1的判断处理。如果A(K)=1,就转入S125,在S125进行信号的0扩展处理,如果A(K)=0,就转入S126,在S126进行比特位置变数K的计数升值处理。
S124是生成表示图22所示的1位信号Y(K)与n位的被乘数X(n-1∶0)的逻辑积电路162的电路信息并存储到电路数据存储器23内的选择电路生成处理。
S125如图22所示,进行生成表示进行与乘数的1位Y(K)或A(K)对应的部分积X(n-1∶0)×Y(K)(即R)或X(n-1∶0)的0位扩展、从下位把L位信号作为P1(L-1∶0)的电路的电路信息,并存储到电路数据存储器23内的处理。
S126是使比特位置变数K的值增加1即进行计数升值的处理。
S127是为了进行递归变换处理而进行与图22所示的下一个部分积生成电路163或164的设定相当的处理。具体地说,就是将具有2倍的n位的被乘数X的值X×2的n+1位的信号重新设定为被乘数X,并使其位长n的值增加1的处理。
S128是判断比特位置变数K是否小于乘数的位长m的判断处理。如果K小于m(即,如果K<m),就转入S122,对在S126及127更新的被乘数X及其位长n和比特位置变数K反复进行S122-127的处理。如果K等于m,就结束S151的部分积生成电路生成处理。
下面,参照图10、图23、图24和图25说明在图8的S153进行的部分积加法树生成处理的详细情况。
图23是表示在S153的部分积加法树生成处理中使用的变换规则4的模式图,如图23所示,在部分积的个数大于3(即K>3)时,变换规则4表示将对K个部分积P0、……、Pk-1进行加法运算并输出部分和Q0及部分进位Q1的部分积加法树181变换为由对K个部分积P0、……、Pk-1进行加法运算的单级加法器182和将加法器182的输出作为输入的部分积加法树183构成的电路。
另外,当部分积的个数等于3(即K=3)时,变换规则4表示将部分积加法树181变换为对三个部分积P0、P1、P3进行加法运算并输出部分和Q0和部分进位Q1的保留进位加法器(CSA)184。
还有利用变换规则4生成的部分积加法树183,表示通过反复应用相同的变换规则4进行递归变换直到K=3。
图24是表示为生成图23的单级加法器182的变换规则5的模式图,在图24中,K表示初始的部分积的个数,其中,I表示在此之前处理过的部分积的个数,J表示在此之前的处理中生成的作为下一级输入的部分积的个数(这里,I、J、K为满足0≤J≤I<K的整数)。
当I小于K-3(即I<K-3)时,变换规则5表示变换为对三个部分积P1、P1+1、P1+2进行加法运算并输出部分和QJ及部分进位QJ+1的保留进位加法器(CSA)192和对部分积PI+3、…、PK-1进行加法运算的单级加法器193。
另外,当I等于K-3(即,I=K-3)时,变换规则5表示变换为对三个部分积P1、P1+1、P1+2进行加法运算并输出部分和QJ及部分进位QJ+1的保留进位加法器(CSA)194。
当I等于K-2(即I=K-2)时,变换规则5表示变换为将PK-2、PK-1分别作为n位的信号QJ、QJ+1而输出的电路;当I等于K-1(即,I=K-1)时,变换规则5表示变换为将PK-1作为n位信号QJ+1而输出的电路。
但是,由于保留进位加法器(CSA)192或194的输出的位一致,所以,部分进位QJ+1是在保留进位加法器(CSA)192或194的输出R的下位合成数值为0的1位信号后从下位开始的n位信号。
图10是表示S153的部分积加法树生成处理的详细情况的流程图,如图10所示,S170是将部分积的个数设定为K的处理。具体地说,在图21的例子中,当乘数为变量Y时,设定K为等于乘数的位长m的值;当乘数为常数A时,设定K为等于posibits(A)的值。
S171是设定变数I及J的初始值为0(即令I=0,J=0)的处理。
S172-177是进行生成图23所示的单级加法器182的处理。
S172生成电路信息并将其存储到电路数据存储器23中,该电路信息表示包含对图24所示的三个部分积PI、PI+1、PI+2进行加法运算并输出部分和QJ和部分进位QJ+1的保留进位加法器(CSA)192或194的电路。
保留进位加法器(CSA)192或194利用图25所示的变换规则6逐位展开成全加器(full adder)202或204,可以生成由n个全加器构成的电路,这是很容易理解的。
S173是将I及J的值分别更新的处理。具体地说,就是分别将I的值更新为I+3、将J的值更新为J+2的处理。
S174是判断I是否小于K-3的判断处理。如果I小于K-3,就转入S172,对在S173更新了的I、J反复进行S172、173的处理;如果I大于K-3(即I>K-3),就转入S175,进行下一个判断。
S175是判断I是否等于K的判断处理。如果I等于K(即,I=K),变转入S178,在S178进行其它的判断处理;而如果I不等于K,就转入S176,在S176进行将P1与QJ连接的处理。
S176是生成表示P1与QJ连接的电路信息并存储到电路数据存储器23内的处理(其中,I=K-1或I=K-2)。
S177是分别使I及J的值计数升值的处理。具体地说,就是分别将I的值更新为I+1、将J的值更新为J+1的处理。一旦本处理结束,则返回到S175对更新了的I、J进行判断处理。
S178是判断J是否等于2的判断处理。如果J等于2(即J=2),则S153的部分积加法树生成处理即告结束;如果J不等2,则转入S179,以后,进行部分积加法树的递归处理。
S179是为了进行递归处理而与图23所示的下一个部分积加法树183的设定相当的处理。具体地说,就是将图23的单级加法器182的输出Q0、……、QJ-1设定为成为部分积加法树183的输入的部分积P0、……、PJ-1
S180是更新K的处理。即,是将成为图23所示的部分积加法树183的输入的部分积的个数J设定为K的处理。
对在S179和180更新了的K及部分积P0、……、PK-1反复进行S171-177的处理。
这样,通过生成加法树,可以将无进位传递的加法器连接成平衡良好的分层结构,从而构成求部分积和的电路,所以,能够减少逻辑级数。
下面,参照图11和图26说明在图7的S146进行的基于符合反转的乘法器生成处理的详细情况。在该乘法器生成处理中,为求乘数A与被乘数X之积,需要修正乘数A的逻辑非常数A0与被乘数X之积。
图26是表示变换规则7的模式图,该变换规则7用于变换为包含在S146的乘法器生成处理中进行上述修正的电路在内的电路,如图26所示,变换规则7表示把乘法器221变换为由部分积生成电路222、部分积加法树223、逻辑非电路224、225以及最终和电路构成的电路,其中,乘法器221使位长为m的常数的乘数A与位长为n的被乘数X进行乘法运算并输出位长为L的积P,部分积生成电路222使乘数A的逻辑非A0与被乘数X进行乘法运算以求部分积P0、……、PK-1、部分积加法树223将这些部分积P0、……、PK-1与被乘数X进行加法运算,逻辑非电路224及225分别取部分积加法树223输出的部分和Q0及部分进位Q1的L位逻辑非,最终和电路将逻辑非电路224、225的输出R1及R2与数值X×2m+2的信号低位L位信号R3进行加法运算。但是,为了使与部分和Q0的位一致,部分进位Q1是将部分积加法树223的部分进位输出的低位L-1位移1位(即2倍)后的信号。另外,上述最终和电路在图26的例子中由保留进位加法器(CSA)226和先行进位加法器(CLA)227构成。在图26中,为了求乘数A的逻辑非A0,***了逻辑非电路220,但是,也可以预先通过计算求A0。
图11是表示在图7的S146基于符号反转的乘法器生成处理的详细情况的流程图。如图11所示,S211是通过计算求乘数A的逻辑非并令其值为m位的常数A0的逻辑非信号作成处理。具体地说,就是将对乘数A的各位进行逻辑非运算后的结果作为A0。即,对于i=0~m-1的各i,进行A0(i)=*A(i)的运算。其中,*A(i)表示1位A(i)的逻辑非运算。
S212是和在图8的S151进行的部分积生成电路生成处理一样的处理,是生成图26所示的部分积生成电路222的处理。即,是应用图22所示的变换规则3,生成根据被乘数X与乘数A的逻辑非常数A0求部分积的电路的处理。
S213是和在图8的S153进行的部分积加法树生成处理一样的处理,是生成图26所示的部分积加法树223的处理。即,是应用图23所示的变换规则4,以由数级加法器构成的、进位传递少的加法树生成图26所示的部分积加法树223的处理。
S214是生成表示以图26所示的部分积加法树223的输出作为输入的逻辑非和224及225的电路信息并存储到电路数据存储器23内的处理。在本实施例中,逻辑非电路224及225分别是L位的反相器。
S215是从被乘数X作成图26所示的修正信号R3的处理,具体地说,L位修正信号R3可以作为根据计算式X×2m+2求出的信号的低位L位信号而作成。
S216是生成表示将图26所示的逻辑非电路224及225的输出R1、R2与修正信号R3进行加法运算的最终和电路的电路信息并存储到电路数据存储器23内的处理。具体地说,在图26的例子中,就是生成将R1、R2与修正信号R3进行加法运算的保留进位加法器(CSA)226和将其输出的部分和与部分进位进行加法运算的先行进位加法器(CLA)227的处理。其中,在先行进位加法器(CLA)227中,将保留进位加法器(CSA)226的输出即部分和与部分进位进行加法运算时,使这两个输出的位对准后再进行加法运算(即,使部分进位信号向高位移1位,而最低位的位补0后再与部分和进行加法运算)。
另外,在本实施例中,使用保留进位加法器(CSA)226和先行进位加法器(CLA)227构成最终和电路,而用其它的结构也不会有什么障碍。在S215中,取L位修正信号为R3=X×2m+2,但是,也可以取为R3=X×2m+1或R3=X×2m,而在先行进位加法器(CLA)227中分别再加进1或2。其中,作为1的加进方法,是使先行进位加法器(CLA)227的进位输入为1,或者使保留进位加法器(CSA)226的部分进位信号向高位移1位而使最低位的位为1后与部分和利用先行进位加法器(CLA)227进行加法运算。另外,作为2的加进方法,是使保留进位加法器(CSA)226的部分进位信号向高位移1位而使最低位的位成为1后与部分和利用使进位输入为1的先行进位加法器(CLA)进行加法运算。
S217是从电路数据存储器23内消除表示与图26的乘法器221对应的乘法器的电路信息的处理。
下面,参照图12和图27说明在图7的S148进行的基于分割的乘法器生成处理的详细情况。
图27是表示在S148的利用分割进行的乘法器生成处理中所使用的变换规则8的模式图。如图27所示,变换规则8表示把乘法器241变换为由部分积生成电路242、部分积生成电路243、逻辑非电路244、245、部分积加法树246及最终和电路构成的电路。其中,乘法器241将使位长为m的常数乘数A与位长为n的被乘数X进行乘法运算并输出位长为L的积P,部分积生成电路242在posibits(A1)+posibits(A2)>2时使在图7的S143中确定的A1与被乘数X进行乘法运算,求部分积P0、……、Pk-1;部分积生成电路243使在S143中确定的A2与被乘数X进行乘法运算,求部分积Q0、……、QH-1;L位的逻辑非电路244、……、245分别取上述部分积Q0、……、QH-1的逻辑非;部分积加法树246将上述逻辑非电路244、……、245的输出R0、……、RH-1与部分积P0、……、PK-1进行加法运算;最终和电路将上述部分积加法树246的输出即部分和Q0及部分进位Q1与修正数H进行加法运算。
但是,这里示出了H=2的情况,由于修正数H为2,所以,上述最终和电路表示变换为由把部分积加法树246的输出即部分和Q0与对于部分进位Q1数值为计算式Q1×2+1的信号的低位L位信号进位为1后进行加法运算的先行进位加法器(CLA)247构成的电路。这里,与输入到先行进位加法器(CLA)247的部分进位Q1对应的信号是为了与部分和Q0的位对准而使部分积加法树246的部分进位输出Q1的低位L-1位移1位(即2倍)后并使最低位的值为1的信号。特别是,当修正数H为1时,上述最终和电路更简单地变换为由先行进位加法器(CLA)构成的电路(即,与图27的先行进位加法器(CLA)240一样的电路),这里,先行进位加法器使进位输入为1后对部分积加法树246的输出即部分和Q0及部分进位Q1进行加法运算。
对于包括修正数H大于3的情况在内的更一般的情况,将修正数H追加进部分积加法树246的输入中进行加法运算,最终和电路就可以变换为由部分积加法树的输出即部分和Q0与部分进Q1进行加法运算的先行进位加法器(CLA)构成的电路。
另外,当posibits(A1)+posibits(A2)=2时,变换规则8表示变换为由使在S143确定的A1与被乘数X进行乘法运算而求部分积P0的部分积生成电路248、使在S143确定的A2与被乘数X进行乘法运算而求部分积Q0的部分积生成电路249、取该部分积Q0的逻辑非的L位逻辑非电路250以及使逻辑非电路250的输出R0与部分积积P0在进位输入为1后进行加法运算的先行进位加法器(CLA)240构成的电路。
在图27的例子中,最终和电路是先行进位加法器(CLA)247、240,但是,也可以是其它加法器。
图12是表示在S148进行的基于分割的乘法器生成处理的详细情况的流程图。如图12所示,S231是与在图8的S151进行的部分积生成电路生成处理一样的处理,是进行生成使在S143确定的常数A1取代乘数A与被乘数X进行乘法运算的如图27所示的部分积生成电路242的处理。即,是应用图22所示的变换规则3生成根据被乘数X与上述常数A1求部分积的电路的处理。
S232是与S231一样的处理,是生成把在S143确定的常数A1取代乘数A与被乘数X进行乘法运算的如图27所示的部分积生成电路243的处理。即,是应用图22所示的变换规则3生成根据被乘数X与上述常数A2求部分积的电路的处理。
S233是生成表示将图27所示的部分积生成电路243的输出Q0、……、QH-1作为输入的逻辑非电路244、……、245的电路信息并存储到电路数据存储器23内的处理。在本实施例中,逻辑非电路244、……、245分别是L位的反相器。
S234是判断posibits(A1)+posibits(A2)是否等于2(即,是否posibits(A1)+posibits(A2)=2)的判断处理。如果posibits(A1)+posibits(A2)等于2,就转入S236,在S236进行最终和电路的生成;而如果posibits(A1)+posibits(A2)不等于2,就转入S235,在S235进行部分积加法树的生成。
S235是与在图8的S153进行的部分积加法树生成处理一样的处理,是对于在S231、233中生成的电路的输出生成图27所示的部分积加法树246的处理。即,是应用图23所示的变换规则4,作为由数级加法器构成的进位传递少的加法树而生成将图27所示的部分积P0、……、PK-1与R0、……、RH-1进行加法运算的部分积加法树246的处理。
S236是生成表示图27所示的使部分积加法树246输出的部分和Q0及部分进位Q1与修正数H进行加法运算或者使部分积生成电路248的输出P0和逻辑非电路250的输出R0以及修正数1进行加法运算的最终和电路的电路信息,并存储到电路数据存储器23内的处理。
具体地说,在图27的例子(即,H=2的情况)中,就是对部分积加法树246输出的部分和Q0及部分进位Q1生成使数值为计算式Q1×2+1的信号的低位L位信号在进位输入为1后进行加法运算的先行进位加法器(CLA)247的处理。其中,作为先行进位加法器(CLA)247中修正数1的加进方法,是使先行进位加法器(CLA)的进位输入为1或者使部分进位信号Q1向高位移1位而使最低位成为1后部分利用先行进位加法器(CLA)进行加法运算。作为修正数2的加进方法,是将部分进位信号Q1向高位移1位而使最低位为1后与部分和利用先行进位加法器(CLA)247使进位输入为1后进行加法运算。另外,当posibits(A1)+posibits(A2)=2时,进行生成将部分积生成电路248的输出P0与逻辑非电路250的输出R0在把进位输入取1后进行加法运算的先行进位加法器(CLA)240的处理。
另外,在本实施例中,在最终和电路中利用先行进位加法器(CLA)247、240对修正数H进行加法运算,如果是这一结构就只能与H小于2的情况对应。然而,只要能够将上述部分和Q0与部分进位Q1以及修正数H进行加法运算,最终和电路就可以是其它结构。进而,如图27中所说明的那样,也可以不在最终和电路中对修正数H进行加法运算,而在S235生成对修正数H也进行加法运算的部分积加法树。
S237是从电路数据存储器23内消去表示与图27的乘法器241对应的乘法器的电路信息的处理。
下面,参照图13说明在图7的S143进行的乘数A的分割处理即确定A1、A2的处理的详细情况。
图13是表示在S143中确定A1、A2的处理的详细情况的流程图,如图13所示,在S251,对比特位置变数i和候选比特位置集合U设定初始值。即,将i设定为0,将U设定为空集合(即设定为φ)。
S252是判断乘数A的各4位A(i+3∶i)是否等于二进制数“1101”的判断处理。如果相等,就转入S253,在S253对候选比特位置集合U进行设定;如果不相等,就转入S254,在S254进行下一个判断处理。
S253是将元素i+1和i+2向候选比特位置集合U内进行追加的处理。即,将U和{i+1,i+2}的和集合UU{i+1,i+2}重新设定为U。
S254是判断乘数A的各4位A(i+3∶i)是否等于二进制数“1101”的判断处理。如果相等,就转入S255,在S255进行对候选比特位置集合U的设定;如果不相等,就转入S256,在S256进行下一个判断处理。
S255是将元素i+2向候选比特位置集合U内追加的处理。即,将U与{i+2}的和集合UU{i+2}重新设定为U。
S256是对乘数A的所有位进行判断的处理,即判断比特位置变数i是否小于m-3的判断处理。如果i小于m-3,就转入S257,在S257使比特位置变数i进行计数升值;如果i大于m-3,就转入S258,在S258进行其它的初始值设定处理。
S257是为了处理乘数A的下一位而将比特位置变数i更新为i+1的值的处理。在本处理结束之后,返回到S252,对更新了的i反复进行S252-255的处理。
S258是对A1、A2及计数j设定初始值的处理。即,分别设定A1为乘数A,A2为0,j为1。
S259是确定从候选比特位置集合U中选择的j个元素构成的集合V以使posibits(A+Σ2α)为最小的处理。这里,α表示集合V的任意元素,Σ2α表示对所有的元素α求总和,是将对于集合V中每个元素α而求得的2α进行相加的运算。
S260是对在S259确定的集合V进行posibits(A+Σ2α)+j+δ与posibits(A1)+posibits(A2)的大小关系的判断的判断处理。其中,δ在posibits(A2)=2时为1,在其他情况下为0。当posibits(A2)=2时,在图12的说明中所述的修正数H大于3,所以,在图27的部分积加法树246中,应将该δ加到修正数中。在S260的判断中,如果posibits(A+Σ2α)+j+δ小于posibits(A1)+posibits(A2),就转入S261,在S261进行A1、A2的更新处理;如果posibits(A+Σ2α)+j+δ大于posibits(A1)+posibits(A2),就转入S262,在S262进行终止判断。
S261是对A1重新设定为A+Σ2α的值、对A2设定为Σ2α的值的更新处理。
S262是判断集合V是否等于候选比特位置集合U(即V=U)的判断处理。如果相等,S143的确定A1、A2的处理即告结束;如果不相等,就转入S263,在S263使计数值j进行计数升值。
S263是将计数值j更新为j+1的值的处理。本处理结束之后,返回到S259,对更新的j反复进行S259-S261的处理。
另外,在本实施例的图13的例子中,在达到V=U之前,对所有的j进行处理,但是,为了简单起见,在S260的判断处理中,如果posibits(A+Σ2α)+j+δ大于posibits(A1)+posibits(A2),也可以不转入S262而告结束。并且,即使将S262的判断处理代之以判断是否j=2的处理,由于posibits(A1)+posibits(A2)小于posibits(A),所以,也有减少部分积的个数的效果。
下面,用数学式证明能够根据上述变换规则1-8变换为与原来的乘法器等效的电路,而由于变换规则2-6是不言自明的,所以此处割爱不予讨论。另外,不失一般性,按L=m+n进行说明。
变换规则1(图20)
在图20中,132是求1位被乘数X(n-1)与1位变数的乘数Y(0)的逻辑积P(n-1)的与门电路,133是求1位被乘数X(n-2)与1位变数的乘数Y(0)逻辑积P(n-2)的与门电路,……、134是求1位被乘数X(1)与1位变数的乘数Y(0)的逻辑积P(1)的与门电路,135是求1位被乘数X(0)与1位变数的乘数Y(0)的逻辑积P(0)的与门电路。
因Y(0)=0或1,所以,有
P=
Figure 94115596X_IMG6
{X(i)·Y(0)·2i}
另外,因Y(0)和P(i)都是1位,所以,
X(i)·Y(0)=X(i)andY(0)
于是,有
P(i)=X(i)andY(0)    (0≤i≤n-1)
P(n)=0
图26是变换规则7。
以下,对多位数Z的所有位的逻辑非数用*Z表示。
对于常数A,下式成立,
-A=*A+1-2m( )/() *A+1=2m-A
另外,对于n位的数X,
〔X的2的补数〕=*X+1=-X
于是,有
P=X·A
=X·(2m-*A-1)
=X·2m-X·(*A+1)
=X·2m+〔X·(*A+)的2的补数〕(3)
另外,因
Q0+Q1=X·(*A+)(4)
所以,
-X·(*A+1)=-(Q0+Q1
=-Q0-Q1
即,
〔X·(*A+1)的2的补数〕=〔Q0的2的补数〕+〔Q1的2的补数〕
于是,(3)式成为
P=X·A
=X·2m+〔Q0的2的补数〕+〔Q1的2的补数〕
=X·2m+Q0+1+Q1+1
Q0+Q1+X·2m+2
Q0+Q1+(X·2m+2) …(5)
利用表示数值2的m位信号与表示被乘数X的信号的合成,求出(5)式的第3项X·2m+2以作为信号R3。
(5)式的第1项*Q0和第2项*Q1分别是部分积加法树223的输出即部分和Q0及部分进位Q1的逻辑非、而Q0和Q1如图26所示的那样进行位对准。因此,利用由保留进位法器(CSA)226和先行进位加法器(CLA)227构成的最终和电路对(5)式的第1项到第3项进行加法运算,可以求出积P。
另外,根据(4)式,因
Q0+Q1=X·*A+X (6)
所以,(6)式右边第1项中的*A是图16的A0,右边第1项X·*A可以利用部分积生成电路222求出作为部分积P0、……、PK-1。另外,(6)式左边的Q0、Q1,通过利用部分积加法树223对部分积P0、……、PK-1与右边第2项的X进行加法运算而求出以作为部分和Q0和部分进位Q1。但是,在部分积加法树223中对(6)式右边第2项的X进行加法运算时,输入X的0扩展信号。
图27是变换规则8。
以下,用*Z表示对多位数Z的所有位的逻辑非数。
对于常数A,
A=A1-A2
另外,通常,对于n位的数X,
〔X的2的补数〕=*X+1=-X
于是,有
P=X·A
=X·(A1-A2)
=X·A1-X·A2  (7)
另外,
X·A1=
X·A2=
Figure 94115596X_IMG8
所以,(7)式成为
P=X·A
= Σ i = 0 K - 1 P i - Σ i = 0 H - 1 O i = Σ i = 0 K - 1 P i + Σ i = 0 H - 1 ( - 0 i )
Figure 94115596X_IMG10
(8)式的第1项的各Pi是m位信号A1与被乘数X的部分积,用部分积生成电路242求出。另外,第2项的各*Qi是m位信号A2与被乘数X的部分积,用部分积生成电路243和逻辑非电路244、……、245求出。通常,通过利用部分积加法树246和最终和电路247对这些部分积Pi(其中,i=0,……,K-1)和*Qi(其中,i=0,……,H-1)以及第3项的H进行加法运算,可以求出积P。
其次,如图27的例子所示,当H小于2(H>0)时,因
Q 0 + Q 1 · 2 = Σ i = 0 K - 1 P i + Σ i = 0 H - 1 ( O i k )
所以,
P=X·A
=Q0+Q1·2+H
=Q0+(Q1·2+1)+(H-1) (9)
(9)式中的第1项Q0和第2项的Q1·2,可以作为对部分积Pi(其中,i=0,……,K-1)和*Qi(其中,i=0,……,H-1)进行加法运算的部分积加法树246的部分积Q0与部分进位Q1而求出。另外,第2项Q1·2+1,如图27所示,是在部分进位Q1的低位合成数值为1的1位信号后的信号。其中,未考虑最高位(即,第m+n位)Q1(m+n-1)。此外,在最终和电路247中对第1项Q0、第2项Q1·2+1和第3项H-1进行加法运算,可以求出积P。
还有,变换规则7可以捕捉变换规则8的特别情况。即,对于常数,下式成立:
-A=*A+1-2m←→*A=2m-(*A+1)
在变换规则8中,相当于
A1=2m
并且
A2=(*A+1)
的情况。
因此,有
P=X·A
=X·(2m-*A-1)
=X·2m-X·(*A+1)
=X·2m+〔X·(*A+)的2的补数〕
而对于n位的数X,则为
〔X的2的补数〕=*X+1=-X
另外,因
K · A * = Σ i = 0 K - 1 P i
所以,有
P=X·A
=X·(2m-*A-1)
=X·2m-X·*A-X
(10)式的第1项、第2项、第3项是部分积加法树的输入。因此,利用最终和电路对上述部分积加法树的输出与第4项K+1进行加法运算可以求出积P。
另外,(10)式的第1项是将被乘数X移m位后的结果,第2项是将乘数A的逻辑非*A和被乘数X作为输入的部分积生成电路的输出,第3项是将被乘数X作为输入的逻辑非电路的输出。
进而,变换规则2也可以捕捉变换规则8的特别情况。即,通过使A1=A,A2=0,利用变换规则8可以很容易导出变换规则2。
如上所述,在实施例1的逻辑电路的自动设计***中,输入乘法器的乘数为常数A时,如果乘数A中值为1的位的总数大于3时,就生成求与乘数A中值为1的位对应的部分积的电路,并用保留进位加法器的加法树构成求部分积和的电路。这样,便可减少加法运算的逻辑级数,同时,还可以使乘法运算速度提高。
另外,如果乘数A中值为1的位的总数小于2,则构成只对值为1的位求部分积的电路。这样,便可减少部分积数,从而可以削减电路面积。
还有,如果乘数A中的值为1的位的总数较大,则构成根据乘数A的逻辑非数和被乘数求部分积的电路、将该部分积与修正信号进行加法运算的保留进位加法器的加法树以及对它们进行修正的电路。这样,便可减少部分积数的削减电路面积。
或者当乘数A中的值为1的位的总数较大时,则对于其差值等于乘数A并且数值为1的位的总数为最小的常数A1、A2(其中,A=A1-A2),构成根据常数A1和被乘数求部分积的电路及根据常数A2和被乘数求部分积的电路、求对常数A2的部分积的逻辑非的电路、将对A1的部分积与对A2的部分积的逻辑非进行加法运算的保留进位加法器的加法树和对它们进行修正的电路。这样,便可减少部分积数和削减电路面积。
实施例2
下面,说明本发明实施例2的逻辑电路的自动设计***。
实施例2的自动设计***,具有和实施例1相同的硬件结构,在其电路设计处理中,进行图14所示的乘法器生成处理,取代实施例1中图7的乘法器生成处理。
图14是表示在图5的S1013进行的乘法器生成处理的详细情况的流程图,该乘法器生成处理,是扩展了将实施例1中图12的基于分割的乘法器生成处理的处理。在该乘法器生成处理中,总的讲,如下所述,减少了求部分积数及部分积和的电路的逻辑级数。即,当乘数为常数时,为了减少部分积数,对于差值等于乘数的两个常数,变换为只对数值为1的位求部分积的电路。另外,对于不论乘数为常数还是变数的情况,为了减少求部分积和的电路的逻辑级数,变换为使用了减少进位传递的加法树的电路。
如图14所示,首先,S270是和图7的S141一样的判断处理,如果乘数为变数,由于是变数之间的乘数运算,所以,转入S271,在S271进行两个常数A1、A2的设定。如果乘数为常数A,就转入S272,在S272将乘数A分割为其差值等于A的两个常数A1、A2。
S271是设定两个常数A1、A2的处理,具体地说,就是分别设定A1为常数A,A2为0(即,A1=A,A2=0)的处理。本处理结束之后,转入S273。
S272是和图7中S143一样的处理,是按照图13所示的流程图确定A1和A2以使其满足A=A1-A2并且posibits(A1)+posibits(A2)的值为最小的处理。作为特别情况,也包括与变换规则2对应的A1=A,A2=0以及与变换规则7对应的A1=2m、A2=(*A+1)。
S273是和图12的S231一样的处理,取代乘数A,对在S271或S272确定的A1进行用图9说明过的部分积生成电路生成处理。即,是应用图22所示的变换规则3生成从上述A1和被乘数X求部分积的电路的处理。
S274进行常数A2是否等于0的判断。如果A2等于0(即,A2=0),就省去S275和S276对A2的处理,转入S277;如果A2不等于0,就转入S275,在S275进行生成对A2的部分积生成电路的处理。
S275是与图12的S232一样的处理,取代乘数A,对在S271或272确定的常数A2进行用图9说明过的部分积生成电路的生成处理。即,是应用图22所示的变换规则3生成从被乘数X与上述常数A2求部分积的电路的处理。
S276是与图12的S233一样的处理,是生成表示将在S275生成的部分积生成电路的输出作为输入的逻辑非电路的电路信息并将其存储到电路数据存储器23内的处理。在本例中,逻辑非电路是反相器。
S277是判断对A1的部分积的个数与对于A2的部分积的个数之和即posibits(A1)+posibits(A2)等于1还是等于2或大于2的判断处理。如果部分积总数等于1(即,posibits(A1)+posibits(A2)=1),就转入S280,在S280进行最终的乘法器的消除处理;如果部分积总数等于2(即,posibits(A1)+posibits(A2)=2),就转入S279,在S279进行最终和电路的生成;如果部分积总数大于2,就转入S278,在S278进行部分积加法树的生成。其中,当A1为变数(即,乘数为变数)时,对A1的部分积的个数等于其位长m。
S278是与图12的S235一样的处理,是对在S273、276生成的电路的输出进行用图10说明过的部分积加法树生成处理,以及生成部分积加法树的处理。即,是应用图23所示的变换规则4生成由数级加法器构成的进位传递少的加法树的处理。
S279是与图8的S154或图12的S236一样的处理,该处理生成表示将由部分积加法树输出的部分和Q0与部分进位Q1及修正数H进行加法运算、或者将部分积生成电路的输出与逻辑非电路的输出及修正数1进行加法运算、或者将部分积加法树的输出进行加法运算、或者将部分积生成电路的输出进行加法运算的最终和电路的电路信息并存储到电路数据存储器23内。
S280是与图8的S155、图11的S171或图12的S237一样的处理,该处理从电路数据存储器23内消去表示乘法器的电路信息。
实施例3
下面,根据附图说明本发明实施例3的逻辑电路的自动设计装置。
实施例3的自动设计装置进行与实施例1中图5的S1013即图7的S141-148一样的处理。
图15是实施例3的自动设计装置的结构框图,在图15中,2600是输入装置,2601-2604是判断装置,2611是将乘数分割为A1、A2的乘数分割器,2612是逻辑非信号生成器,2613是修正数生成器,2614是修正信号生成器,2621-2624是部分积生成电路生成器,2651、2652是逻辑非电路生成器,2661-2663是部分积加法树生成器,2671是信号接续电路生成器,2681-2685是最终和电路生成器,2690是乘法器消除器(电路消除器)。
输入装置2600从图2的电路数据存储器23读取分别示于图24、图26及图27的表示原功能元件即乘法器191、221或241的电路信息,将表示乘法器191、221或241的输入为m位乘数Y或A的信息输出给判断装置2601及乘法器消除器(电路消除器)2690,并且将表示另一个输入为n位被乘数X的信息输出给部分积生成电路生成器2621-2624、修正信号生成器2614及乘法器消除器(电路消除器)2690。另外,将表示乘法器191、221或241的输出为L位的积P的信息输出给最终和电路生成器2681-2685、信号接续电路生成器2671及乘法器消除器(电路消除器)2690。
判断装置2601是判断乘法器191、221或241的乘数为变数Y还是常数A的装置,如果乘数为变数Y,就将表示乘数Y的信息输出给部分积生成电路生成器2621;如果乘数为常数A,就将表示乘数A的信息输出给乘数分割器2611。
为了将乘数A分割为常数A1和常数A2,乘数分割器2611先按图13所示的方法确定满足A=A1-A2并且posibits(A1)+posibits(A2)为最小的常数A1、A2。然后将表示常数A1、A2及原乘数A的信息输出给判断装置2602。
判断装置2602是判断posibits(A)、posibits(A1)+posibits(A2)及negabits(A)+2(即,m-posibits(A)+2)中哪1个为最小的装置,如果posibits(A)为最小(也包括与其他量相等的情况),就将表示乘法器191的乘数A的信息输出给部分积生成电路生成器2621。如果posibits(A1)+posibits(A2)为最小(也包括与negabits(A)+2相等的情况),就将表示对乘法器241的乘数A用乘数分割器2611确定的A1的信息输出给部分积生成电路生成器2622,将表示A2的信息输给部分积生成电路2623及修正数生成器2613;如果negabits(A)+2单独为最小,就将表示乘法器221的乘数A的信息输出给逻辑非信号生成器2612。
逻辑非信号生成器2612是求取乘法器221的乘数A逻辑非的常数A0的装置,它将表示该常数A0的信息输出给部分积生成电路生成器2624。
部分积生成电路生成器2621-2624输入表示乘法器191、221或241的被乘数X和乘数Y、A、A1、A2或A0的任何1个量的信息,生成表示把它们的乘积作为部分积而输出的部分积生成电路的电路信息,并存储到电路数据存储器23内。
详细地说,就是部分积生成电路生成器2621输入表示乘法器191的被乘数X和乘数Y或A的信息,生成输出它们的部分积P1、……、PK的部分积生成电路,并存储到电路数据存储器23内,将表示上述部分积P1、……、PK的信息输出给判断装置2603。
部分积生成电路生成器2622输入表示乘法器241的被乘数X和上述常数A1的信息,生成输出它们的部分积P0、……、PK-1部分积生成电路,并存储到电路数据存储器23内,同时将表示上述部分积P0、……、PK-1的信息输出给判断装置2604。
部分积生成电路生成器2623输入表示乘法器241的被乘数X和上述常数A2的信息,生成输出它们的部分积Q0、……、QH-1的部分积生成电路,并存储到电路数据存储器23内,同时将上述部分积Q0、……、QH-1输出给逻辑非电路生成器2651。
部分积生成电路生成器2624输入表示乘法器221的被乘数X和乘数A的逻辑非常数A0的信息,生成输出它们的部分积P0、……、PK-1的部分积生成电路,并存储到电路数据存储器23内,同时将表示上述部分积P0、……、PK-1的信息输出到部分积加法树生成器2663。
逻辑非电路生成器2651输入表示上述部分积Q0、……、QH-1的信息,生成输出它们的逻辑非信号R0、……、RH-1的逻辑非电路,并存储到电路数据存储器23内,同时将表示上述部分积R0、……、RH-1的信息输出给判断装置2604。
判断装置2603是判断上述部分积P0、……、PK-1的个数K是1还是2或3的装置,如果上述部分积的个数K为1,就将表示该部分积P1信息输出给信号连接电路生成器2671;如果上述部分积的个数K为2,就将表示该部分积P1、P2的信息输出给最终和电路生成器2681;如果上述部分积的个数K大于3,就将表示这些部分积P1、……、PK的信息输出给部分积加法树生成器2661。
判断装置2604是判断上述部分积P0、……、PK-1的个数之和K+H为2(即,K=1并且H=1)还是大于3的装置,如果它们的个数之和K+H为2(即,K=1和H=1),就将表示部分积P0、R0的信息输出给最终和电路生成器2684;如果上述部分积的个数之和K+H大于3,就将表示这些部分积P0、……、PK-1、R0、……、RH-1的信息输给部分积加法树生成器2662。
部分积加法树生成器2661-2663输入表示部分积P1、……、PK、部分积P0、……、PK-1、R0、……、RH-1或部分积P0、……、PK-1的信息,对这些部分积之间进行加法运算,生成表示输出部分和及部分进位数(Q1、Q2或Q0、Q1)的部分积加法树的电路信息,并存储到电路数据存储器23内。
详细地说,就是部分积加法树生成器2661输入表示部分积P1、……、PK-1的信息,生成输出它们的部分和Q1及部分进位数Q2的部分积加法树,并存储到电路数据存储器23内,同时将表示上述部分和Q1及部分进位数Q2的信息输出给最终和电路生成器2682。
部分积加法树生成器2662输入表示部分积P0、……、PK、R0、……、RH-1的信息,生成输出它们的部分和Q0及部分进位数Q1的部分积加法树,并存储到电路数据存储器23内,同时将表示上述部分和Q0及部分进位数Q1的信息输出给最终和电路生成器2683。
部分积加法树生成器2663输入表示部分积P0、……、PK-1的信息,生成输出它们的部分和Q0及部分进位数Q1的部分积加法树,并存储到电路数据存储器23内,同时将表示上述部分和Q1及部分进位数Q2的信息输出给最终和电路生成器2652。
逻辑非电路生成器2652输入表示上述部分和Q0及部分进位数Q1的信息,生成输出它们的逻辑非信号R1、R2的逻辑非电路,并存储到电路数据存储器23内,同时将表示该逻辑非信号R1、R2的信息输出给最终和电路生成器2685。
修正数生成器2613输入表示上述常数A2的信息,作为最终和的修正数求H=posibits(A2),并将表示该修正数H的信息输出给最终和电路生成器2683。
修正信号生成器2614输入表示被乘数X的信息及数值2,如图26所示,作为根据计算式X×2m+2求得的信号的低位L位信号生成最终和的修正信号R3,并将表示该修正信号R3的信息输出给最终和电路生成器2685。
最终和电路生成器2681-2685输入表示部分积P1、P2或部分和Q1及部分进位Q2或部分和Q0、部分进位数Q1及修正数H或部分积P0、R0或信号R1、R2、R3的信息,将它们进行加法运算,生成表示将其最终和作为乘法器191、221或241的输出即L位的积P而输出的最终和电路的电路信息,并存储到电路数据存储器23内。
详细地说,就是最终和电路生成器2681输入表示上述部分积P1、P2的信息和表示乘法器191的输出为L位的积P的信息,将这些部分积P1、P2进行加法运算,生成表示将它们的最终和作为乘法器191的积P而输出的最终和电路的电路信息,并存储到电路数据存储器23内。
最终和电路生成器2682输入表示上述部分和Q1及部分进位数Q2的信息和表示乘法器191的输出为L位的积P的信息,将这些部分和Q1、部分进位数Q2进行加法运算,生成表示将它们的最终和作为乘法器191的积P而输出的最终和电路的电路信息,并存储到电路数据存储器23内。
最终和电路生成器2683输入表示上述部分和Q0、部分进位数Q1及修正数H的信息和表示乘法器241的输出为L位的积P的信息,将这些部分和Q0、部分进位数Q1及修正数H进行加法运算,生成表示将它们的最终和作为乘法器241的积P而输出的最终和电路的电路信息,并存储到电路数据存储器23内。
最终和电路生成器2684输入表示上述部分积P0、R0的信息和表示乘法器241的输出为L位的积P的信息,将这些部分积P0、R0进行加法运算,生成表示将它们的最终和作为乘法器241的积P而输出的最终和电路的信息,并存储到电路数据存储器23内。
最终和电路生成器2685输入表示上述逻辑非信号R1、R2修正信号R3的信息和表示乘法器221的输出为L位的积P的信息,将这些逻辑非信号R1、R2修正信号R3进行加法运算生成表示将它们的最终和作为乘法器221的积P而输出的最终和电路的电路信息,并存储到电路数据存储器23内。
信号接续电路生成器2671输入表示上述部分积P1的信息和表示乘法器191的输出为L位的积P的信息,生成表示将这些信号P1与P接续的信号接续电路的电路信息,并存储到电路数据存储器23内。
乘法器消除器(电路消除器)2690输入表示乘法器191、221或241的输入为m位的乘数Y或A及n位的被乘数X的信息以及表示其输出为L位的积P的信息,将表示乘法器191、221或241的电路信息从电路数据存储器23内消除掉。
在图15的例子中,为了简便,将部分积生成电路生成器2621-2624、部分积加法树生成器2661-2663、逻辑非电路生成器2651、2652、最终和电路生成器2681-2685分别作为同一功能的各个装置进行了说明,但是,也可以作为同一装置分别实现部分积生成电路生成器2621-2624、部分积加法树生成器2661-2663、逻辑非电路生成器2651、2652、最终和电路生成器2681-2685的全部或一部分。
另外,在图15的例子中,将修正数生成器2613的输出H作为最终和电路生成器2683的输入,而特别是对于H大于3的情况,也可以将修正数生成器2613的输出H追加到部分积加法树生成器2662的输入中,在部分积加法树中加进该修正数H。
另外,对于将变数之间进行乘法运算的乘法器(即,乘数为变数Y时),在部分积生成电路的生成中,不限于上述那样的部分积生成电路生成器2621的电路,也可以生成应用了2位通道的记录方式的电路。
实施例4
下面,说明本发明实施例4的乘法器。
实施例4的乘法器是按照图26的变换规则7和图27的变换规则8生成的。这里,为了说明的简单方便,给出了变数X为正数的情况,而在能取正负两种值的情况时,可以在将符号扩展后取逻辑非或者在取逻辑非后再将符号进行扩展。
在图26和图27中,部分积生成电路222、242、243、248、249由仅与常数A1、A2中值为1的位对应部分的被乘数X的移位电路构成。另外,门电路220、224、225、244、245、250是反相器。部分积加法器223、246是将保留进位加法器排列成树状而构成的。加法器226是进行修正项的加法运算的保留进位加法器。最终和电路227、247、240是先行进位加法器,它们利用进位输入进行修正项的加法运算。如前所述,修正后求积P的运算可以是各种变形。
在上述任何乘法器中,都是求出取乘数A的全位逻辑非的常数A0或满足A=A1-A2的常数A1、A2之后,将该常数与被乘数X进行乘法运算的,所以,即使乘数A的位数大于m/2,也可以使部分积数小于m/2。这样,便可减小电路面积和提高乘法运算速度。
还有,在实施例1-4中,作为存储在电路数据存储器23的电路信息,以功能元件、逻辑元件、实装元件等元件为中心,着眼于元件间的输入输出关系说明了使用表示电路的数据表述的例子,但是,不限于此,使用元件间的联系即以信号为中心的数据表述时也可以实现基于相同变换规则的电路的变换处理。
另外,变换处理不限于基于上述变换规则的电路的变换处理,也可以将电路数据的各部分按特定的顺序逐次进行生成及存储的处理。
上面只是一般性地对m位长的乘数与n位长的被乘数之积P为L位长的情况进行了说明。即,积P的位长L小于n+m时,可以从乘法运算结果的低位取L位;当L大于n+m时,可以将n+m位的乘法运算结果作为低位的比特,而将高位的比特进行符号扩展或0扩展。

Claims (44)

1、用于生成表示求乘数与被乘数之积的逻辑电路的信息的逻辑电路自动设计方法,对应于乘数的各位,具有如下处理:
(a)判断乘数为变量还是常数;
(b)当乘数为变量时,根据该乘数位的值从表示被乘数的信号和表示0的信号中选择一种信号,并且生成表示将选择的信号作为部分积而输出的电路的信息;
(c)当乘数为常数时,判断乘数的该位值是否为1;
(d)当乘数的该位值为1时,生成表示把代表被乘数的信号作为部分积而输出的电路的信息;
(e)进行完(a)-(d)的处理之后,生成表示把代表被乘数的信号移1位的移位电路的信息,并且将该移位电路的输出信号重新设定为表示在(a)-(d)的处理中使用的被乘数的信号;
与乘数的所有的位对应地反复进行(a)-(e)的处理。
2、用于生成表示求乘数与被乘数之积的逻辑电路的信息的逻辑电路的自动设计方法,对应于把乘数的各位与被乘数之积的多个部分积按每n个分割为1组而构成的各个部分积群,具有如下处理:
(a)生成表示输入属于该部分积群的n个部分积并且将该n个部分积之间的和作为m(<n)个部分积而输出的加法电路的信息;
对应于上述多个部分积的总体,
(b)在反复进行(a)的处理之后,将在(a)的处理中生成的加法电路的输出的所有部分积与上述多个部分积中未成为在(a)的处理中生成的加法电路的输入信号的部分积重新设定为实施(a)的处理的多个部分积;
反复进行(a)及(b)的处理。
3、用于生成表示求乘数与被乘数之积的逻辑电路的信息的逻辑电路的自动设计方法,对应于把作为乘数的各位与被乘数之积的多个部分积按每3个为1组分割而成的各个部分积群,具有如下处理:
(a)生成表示输入属于该部分积群的3个部分积、并且将该3个部分积之间的和作为2个部分积而输出的保留进位加法器的信息;
(b)在反复进行过(a)的处理之后,将在(a)的处理中生成的保留进位加法器的输出的所有部分积与上述多个部分积中未成为在(a)的处理中生成的保留进位加法器的输入信号的部分积重新设定为实施(a)的处理的多个部分积。
反复进行(a)及(b)的处理,直至在(b)的处理中设定的新的部分积的个数成为2。
4、用于生成表示求乘数与被乘数之积的逻辑电路的信息的逻辑电路的自动设计方法,具有如下处理:
(a)判断作为乘数的各位与被乘数之积的部分积的个数为多少;
(b)当部分积的个数大于n时,对应于把多个部分积按每n个为1组分割而成的各个部分积群,
(b-1)生成表示输入属于该部分积群的n个部分积并且将该n个部分积之间的和作为m(<n)个部分积而输出的加法电路的信息;
与上述多个部分积的所有部分相对应,
(b-2)在反复进行过(b-1)的处理后,将作为在(b-1)的处理中生成的加法电路的输出的所有部分积与上述多个部分积中未成为在(b-1)的处理中生成的加法电路的输入信号的部分积重新设定为进行(b-1)处理的多个部分积;
反复进行(b-1)及(b-2)的处理,直至在(b-2)的处理中设定的新的部分积的个数成为m个为止;
(c)当部分积的个数小于m并且大于2时,生成表示输入该个数的部分积并且通过对该部分积之间进行加法运算而求乘数与被乘数之积的最终和电路的信息。
5、用于生成表示求乘数与被乘数之积的逻辑电路的信息的逻辑电路的自动设计方法,具有如下处理:
(a)对应于乘数的各位,
(a-1)判断乘数为变量还是常数;
(a-2)当乘数为变量时,根据该乘数的位值,从表示被乘数的信号和表示0的信号中选择一种信号,并且生成表示将选择的信号作为部分积而输出的电路的信息;
(a-3)当乘数为常数时,判断乘数的该位值是否为1;
(a-4)当乘数的该位值为1时,生成表示把代表被乘数的信号作为部分积而输出的电路的信息;
(a-5)在进行过(a-1)-(a-4)的处理之后,生成表示把代表被乘数的信号移1位的移位电路的信息,并将该移位电路的输出信号重新设定为表示在(a-1)-(a-4)的处理使用的被乘数的信号;
与乘数的所有位相对应,通过反复进行(a-1)-(a-4)的处理,生成作为乘数的各位与被乘数之积的部分积;
(b)判断该部分积的个数为多少;
(c)当部分积的个数大于n时,对应于把多个部分积按每n个为1组分割而成的各个部分积群,
(c-1)生成表示输入属于该部分积群的n个部分积并且将该n个部分积之间的和作为m(<n)个部分积而输出的加法电路的信息;
与上述多个部分积的所有部分相对应,
(c-2)在反复进行过(c-1)的处理之后,将作为在(c-1)的处理中生成的加法电路的输出的所有的部分积与上述多个部分积中未成为在(c-1)的处理中生成的加法电路的输入信号的部分积重新设定为进行(c-1)处理的多个部分积;
反复进行(c-1)及(c-2)的处理,直至在(c-2)的处理中设定的新的部分积的个数成为m个为止;
(d)当部分积的个数小于m并且大于2时,生成表示输入该个数的部分积并且通过将该部分积之间进行加法运算而求乘数与被乘数之积的最终和电路的信息。
6、用于生成表示求乘数与被乘数之积的逻辑电路的信息的逻辑电路的自动设计方法,具有如下处理:
(a)确定两个常数A1、A2,以使常数A1与A2之差A1-A2等于常数的乘数A;
(b)生成表示输入常数A1和被乘数X而输出它们的部分积的第1部分积生成电路的信息;
(c)生成表示输入常数A2和被乘数X而输出它们的部分积的第2部分积生成电路的信息;
(d)生成表示输入上述第2部分积生成电路的输出信号而输出其逻辑非信号的逻辑非电路的信息;
(e)生成表示输入上述第1部分积生成电路的输出信号和上述逻辑非电路的输出信号以及修正信号、并求出它们的和作为乘数A与被乘数X之积而输出的电路的信息。
7、如权利要求6所述的逻辑电路的自动设计方法,其中,(e)的处理中包括如下处理:
(e-1)生成表示输入上述第1部分积生成电路的输出信号和上述逻辑非电路的输出信号、将它们的加法运算结果作为指定个数的部分积而输出的部分积加法电路的信息;
(e-2)生成表示输入上述部分积加法电路的输出信号和修正信号并求出它们的和之后作为乘数A与被乘数X之积而输出的最终和电路的信息。
8、如权利要求6所述的逻辑电路的自动设计方法,其中(e)的处理中包括如下处理:
(e-1)对应于把多个部分积按每n个为1组划分成的各个部分积群,
(e-1-1)生成表示输入属于该部分积群的n个部分积并且将该n个部分积之间的和作为m(<n)个部分积而输出的加法电路的信息;
对应于上述多个部分积的所有部分,
(e-1-2)在反复进行过(e-1-1)的处理后,将作为在(e-1-1)的处理中生成的加法电路的输出的所有部分积与上述多个部分积中未成为在(e-1-1)的处理中生成的加法电路的输入信息的部分积重新设定为进行(e-1-1)的处理的多个部分积;
通过反复进行(e-1-1)及(e-1-2)的处理,进行生成表示输出m个部分积的部分积加法电路的信息的处理;
(e-2)生成表示输入上述部分积加法电路的输出信号和修正信号并求出它们的和作为乘数A与被乘数X之积而输出的最终和电路的信息。
9、如权利要求6所述的逻辑电路的自动设计方法,其中,(e)的处理中包括如下处理:
(e-1)判断常数A1中值为1的位数与常数A2中值为1的位数之和是等于指定的个数还是大于该指定的个数;
(e-2)当常数A1中值为1的位数与常数A2中值为1的位数之和等于上述指定的个数时,生成表示输入上述第1部分积生成电路的输出信息和上述逻辑非电路的输出信号及修正信号并求出它们的和之后作为乘数A与被乘数X之积而输出的最终和电路的信息。
(e-3)当常数A1中值为1的位数与常数A2中值为1的位数之和大于上述指定的个数时;
(e-3-1)生成表示输入上述第1部分积生成电路的输出信号和上述逻辑非电路的输出信号,将它们的加法运算结果作为上述指定个数的部分积而输出的部分积加法电路的信息;
(e-3-2)生成表示输入上述部分积加法电路的输出信号和修正信号并求出它们的和作为乘数A与被乘数X之积而输出的最终和电路的信息。
10、如权利要求6所述的逻辑电路的自动设计方法,其中,(e)的处理中包括如下处理:
(e-1)判断常数A1中值为1的位数与常数A2中值为1的位数之和是1还是2或者大于2;
(e-2)当常数A1值为1的位数与常数A2中值为1的位数之和为1时,生成表示将上述第1部分积生成电路的输出信号作为乘数A与被乘数X之积而输出的电路的信息;
(e-3)当常数A1中值为1的位数与常数A2中值为1的位数之和为2时,生成输入上述第1部分积生成电路的输出信号和上述逻辑非电路的输出信号及修正信号并求出它们的和之后作为乘数A与被乘数X之积而输出的最终和电路的信息;
(e-4)当常数A1中值为1的位数与常数A2中值为1的位数之和大于2时,
(e-4-1)生成表示由构成为树状的保留进位加法器构成的、输入上述第1部分积生成电路的输出信号和上述逻辑非电路的输出信号并将它们的加法运算结果作为2个部分积而输出的部分积加法电路的信息;
(e-4-2)生成表示输入上述部分积加法电路的输出信号和修正信号并求出它们的和之后作为乘数A与被乘数X之积而输出的最终和电路的信息。
11、用于生成表示求乘数与被乘数之积的逻辑电路的信息的逻辑电路的自动设计方法,具有如下处理:
(a)确定两个常数A1、A2,以使常数A1与常数A2之差A1-A2等于常数的乘数A并且常数A1中值为1的位数与常数A2中值为1的位数之和为最小;
(b)生成表示输入常数A1和被乘数X而输出它们的部分积的第1部分积生成电路的信息;
(c)生成表示输入常数A2和被乘数X而输出它们的部分积的第2部分积生成电路的信息;
(d)生成表示输入上述第2部分积生成电路的输出信号而输出其逻辑非信号的逻辑非电路的信息;
(e)生成表示输入上述第1部分积生成电路的输出信号和上述逻辑非电路的输出信号及修正信号并求出它们的和作为乘数A与被乘数X之积而输出的部分积和电路的信息。
12、用于生成表示求乘数与被乘数之积的逻辑电路的信息的逻辑电路的自动设计方法,具有如下处理:
(a)确定两个常数A1、A2,以使常数A1与常数A2之差A1-A2等于常数的乘数A;
(b)相应于常数A1的各位,
(b-1)判断常数A1的该位值是否为1;
(b-2)当常数A1的该位值为1时,生成表示把代表被乘数X的信号作为部分积而输出的电路的信息;
(b-3)进行过(b-1)及(b-2)的处理之后,生成表示把代表被乘数X的信号移1位的第1移位电路的信息,并将该第1移位电路的输出信号重新设定为表示在(b-1)及(b-2)的处理中使用的被乘数X的信号;
与常数A1的所有位相对应,通过反复进行(b-1)-(b-3)的处理,生成第1部分积生成电路;
(c)与常数A2的各位相对应,
(c-1)判断常数A2的该位值是否为1;
(c-2)当常数A2的该位值为1时,生成表示把代表被乘数X的信号作为部分积而输出的电路的信息;
(c-3)进行过(c-1)及(c-2)的处理之后,生成表示把代表被乘数X的信号移1位的第2移位电路的信息,并将该第2移位电路的输出信号重新设定为表示在(c-1)及(c-2)的处理中使用的被乘数X的信号;
通过对应于常数A2的所有位反复进行(c-1)-(c-3)的处理,生成第2部分积生成电路;
(d)生成表示输入上述第2部分积生成电路的输出信号而输出其逻辑非信号的逻辑非电路的信息;
(e)生成表示输入上述第1部分积生成电路的输出信号和上述逻辑非电路的输出信号及修正信号并求出它们的和作为乘数A与被乘数X之积而输出的电路的信息。
13、用于生成表示求乘数与被乘数之积的逻辑电路的信息的逻辑电路的自动设计方法,具有如下处理:
(a)根据常数的乘数A生成乘数A的逻辑非信号;
(b)与上述乘数A的逻辑非信号的各位相对应,
(b-1)判断上述乘数A的逻辑非信号的该位值是否为1;
(b-2)当上述乘数A的逻辑非信号的该位值为1时,生成表示把代表被乘数X的信号作为部分积而输出的电路的信息;
(b-3)进行过(b-1)及(b-2)的处理之后,生成表示把代表被乘数X的信号移1位的移位电路的信息,并将该移位电路的输出信号重新设定为表示在(b-1)及(b-2)的处理中使用的被乘数X的信号;
通过相应于上述乘数A的逻辑非信号的所有位反复进行(b-1)-(b-3)的处理,生成表示部分积生成电路的信息;
(c)生成表示输入上述部分积生成电路的全部输出信号和表示被乘数X的信号并将它们的加法运算结果作为指定个数的部分积而输出的部分积加法电路的信息;
(d)生成表示输入上述部分积加法电路的输出信号并输出其逻辑非信号的逻辑非电路的信息;
(e)根据被乘数X生成修正信号;
(f)生成表示输入上述修正信号和上述逻辑非电路的输出信号并求出它们的和作为乘数A与被乘数X之积而输出的最终和电路的信息。
14、用于生成表示求乘数与被乘数之积的逻辑电路的信息的逻辑电路的自动设计方法,具有如下处理:
(a)根据常数的乘数A生成乘数A的逻辑非信号;
(b)与上述乘数A的逻辑非信号的各位相对应,
(b-1)判断上述乘数的逻辑非信号的该位值是否为1;
(b-2)当上述乘数的逻辑非信号的该位值为1时,生成表示把代表被乘数X的信号作为部分积而输出的电路的信息;
(b-3)在进行过(b-1)及(b-2)的处理之后,生成表示把代表被乘数X的信号移1位的移位电路的信息,并将该移位电路的输出信号重新设定为表示在(b-1)及(b-2)的处理中使用的被乘数X的信号;
与上述乘数A的逻辑非信号的所有位相对应,通过反复进行(b-1)-(b-3)的处理,生成表示部分积生成电路的信息;
(c)对应于把根据上述部分积生成电路的全部输出信号和表示被乘数X的信号构成的多个输入信号按每n个为1组分割而成的各个输入信号群,
(c-1)生成表示输入属于该输入信号群的n个输入信号并且将该n个输入信号之间的和作为m(<n)个信号而输出的加法电路的信息;
相应于上述多个输入信号的所有信号,
(c-2)反复进行(c-1)的处理之后,将在(c-1)的处理中生成的加法电路的所有输出信号和上述多个输入信号中未成为在(c-1)的处理中生成的加法电路的输入信号的输入信号重新设定为进行(c-1)的处理的多个输入信号;
通过反复进行(c-1)及(c-2)的处理,生成表示部分积加法电路的信息;
(d)生成表示输入上述部分积加法电路的输出信号而输出其逻辑非信号的逻辑非电路的信息;
(e)从被乘数X生成修正信号;
(f)生成表示输入上述修正信号和上述逻辑非电路的输出信号并求出它们的和作为乘数A与被乘数X之积而输出的最终和电路的信号。
15、用于生成表示求乘数与被乘数之积的逻辑电路的信息的逻辑电路的自动设计方法,具有如下处理:
(a)确定两个常数A1、A2,以使常数A1与常数A2之差A1-A2等于常数的乘数A;
(b)判断常数A2是否为0;
(c)当常数A2为0时,
(c-1)生成表示输入常数A1和被乘数X而输出它们的部分积的第1部分积生成电路的信息;
(c-2)生成表示输入上述第1部分积生成电路的所有输出信号并求出它们的和作为乘数A与被乘数X之积而输出的第1部分积和电路的信息;
(d)当常数A2不为0时,
(d-1)生成表示输入常数A1和被乘数X而输出它们的部分积的第2部分积生成电路的信息;
(d-2)生成表示输入常数A2和被乘数X而输出它们的部分积的第3部分积生成电路的信息;
(d-3)生成表示输入上述第3部分积生成电路的输出信号而输出其逻辑非信号的逻辑非电路的信息;
(d-4)生成表示输入上述第2部分积生成电路的输出信号和上述逻辑非电路的输出信号及修正信号并求出它们的和作为乘数A与被乘数X之积而输出的第2部分积和电路的信息。
16、用于生成表示求乘数与被乘数之积的逻辑电路的信息的逻辑电路的自动设计方法,具有如下处理:
(a)确定三个常数A1、A2、A3,以使常数A1与常数A2、A3之和的差值A1-(A2+A3)等于常数的乘数A;
(b)判断常数A1是否等于乘数A或者常数A2、A3都等于0;
(c)当常数A1等于乘数A时,
(c-1)生成表示输入常数A1和被乘数X而输出它们的部分积的第1部分积生成电路的信息;
(c-2)生成表示输入上述第1部分积生成电路的全部输出信号并求出它们的和作为乘数A与被乘数X之积而输出的第1部分积和电路的信息;
(d)当常数A1不等于乘数A并且常数A2及A3中至少有1个不为0时,
(d-1)生成表示输入常数A1和被乘数X而输出它们的部分积的第2部分积生成电路的信息;
(d-2)生成表示输入常数A2、A3与被乘数X而输出它们的部分积的第3部分积生成电路的信息;
(d-3)生成表示输入上述第3部分积生成电路的输出信号而输出其逻辑非信号的第1逻辑非电路的信息;
(d-4)生成表示输入上述第2部分积生成电路的输出信号和上述第1逻辑非电路的输出信号及第1修正信号并求出它们的和作为乘数A与被乘数X之积而输出的第2部分积和电路的信息。
17、如权利要求16所述的逻辑电路的自动设计方法,其中,(c-1)的处理包括如下处理:相应于常数A1的各位,
(C-1-1)判断常数A1的该位值是否为1;
(C-1-2)当常数A1的该位值为1时,生成表示把代表被乘数X的信号作为部分积而输出的电路的信息;
(c-1-3)进行过(c-1-1)及(c-1-2)的处理之后,生成表示把代表被乘数X的信号移1位的第1移位电路的信息并将该第1移位电路的输出信号重新设定为表示在(c-1-1)及(c-1-2)的处理中使用的被乘数X的信号;
与常数A1的所有位相对应,通过反复进行(c-1-1)-(C-1-3)的处理,生成第1部分积生成电路;
(d-1)的处理包括:
相应于常数A1的各位,
(d-1-1)判断常数A1的该位值是否为1;
(d-1-2)当常数A1的该位值为1时,生成表示把代表被乘数X的信号作为部分积而输出的电路的信息;
(d-1-3)进行过(d-1-1)及(d-1-2)的处理之后,生成表示把代表被乘数X的信号移1位的第2移位电路的信息并将该第2移位电路的输出信号重新设定为表示在(d-1-1)及(d-1-2)的处理中使用的被乘数X的信号;
与常数A1的所有位相对应,通过反复进行(d-1-1)-(d-1-3)的处理,生成第2部分积生成电路;
(d-2)的处理包括:相应于常数A2、A3的各位;
(d-2-1)判断常数A2、A3的该位值是否为1;
(d-2-2)当常数A2、A3的该位值为1时,生成表示把代表被乘数X的信号作为部分积而输出的电路的信息;
(d-2-3)进行过(d-2-1)及(d-2-2)的处理之后,生成表示把代表被乘数X的信号移1位的第3移位电路的信息并将该第3移位电路的输出信号重新设定为表示在(d-2-1)及(d-2-2)的处理中使用的被乘数X的信号;
通过相应于常数A2、A3的所有位反复进行(d-2-1)-(d-2-3)的处理,生成第2部分积生成电路。
18、如权利要求16所述的逻辑电路的自动设计方法,其中,
(c-2)的处理包括:对应于把上述第1部分积生成电路的输出信号构成的第1多个部分积按每n个为1组分割而成的各个部分积群,
(c-2-1)生成表示输入属于该部分积群的n个部分积并且将该n个部分积之间的和作为m(<n)个部分积而输出的加法电路的信号;
与上述第1多个部分积的所有部分相对应,
(c-2-2)反复进行过(c-2-1)的处理之后,将作为在(c-2-1)的处理中生成的加法电路的输出的所有部分积与上述第1多个部分积中未成为在(c-2-1)的处理中生成的加法电路的输入信号的部分积重新设定为进行(c-2-1)处理的第1多个部分积;
通过反复进行(c-2-1)及(c-2-2)的处理,生成表示第1部分积和电路的信息;
(d-4)的处理包括:对应于把上述第2部分积生成电路的输出信号和上述第1逻辑非电路的输出信号及第1修正信号构成的第2多个部分积按每n个为1组分割而成的各个部分积群,
(d-4-1)生成表示输入属于该部分积群的n个部分积并且将该n个部分积之间的和作为m(<n)个部分积而输出的加法电路的信息;
与上述第2多个部分积的所有部分相对应,
(d-4-2)反复进行过(d-4-1)的处理之后,将作为在(d-4-1)的处理中生成的加法电路的输出的所有部分积与上述第2多个部分积中未成为在(d-4-1)的处理中生成的加法电路的输入信号的部分积重新设定为进行(d-4-1)的处理的第2多个部分积;
通过反复进行(d-4-1)及(d-4-2)的处理,生成表示第2部分积和电路的信息。
19、如权利要求16所述的逻辑电路的自动设计方法,其中,包括如下处理:
(e)判断常数A2是否等于乘数A的逻辑非以及常数A3是否为1;
(f)当常数A2等于乘数A的逻辑非并且常数A3为1时,
(f-1)生成表示输入常数A2和被乘数X而输出它们的部分积的第4部分积生成电路的信息;
(f-2)生成表示输入上述第4部分积生成电路的所有输出信号和表示被乘数X的信号并将它们的加法运算结果作为部分积而输出的部分积加法电路的信息;
(f-3)生成表示输入上述部分积加法电路的输出信号而输出其逻辑非信号的第2逻辑非电路的信息;
(f-4)从被乘数X生成第2修正信号;
(f-5)生成表示输入上述第2修正信号和上述第2逻辑非电路的输出信号并求出它们的和作为乘数A与被乘数X之积而输出的最终和电路的信息。
20、如权利要求19所述的逻辑电路的自动设计方法,其中,
(c-1)的处理包括:相应于常数A1的各位,
(c-1-1)判断常数A1的该位值是否为1;
(c-1-2)当常数A1的该位值为1时,生成表示把代表被乘数X的信号作为部分积而输出的电路的信息;
(c-1-3)进行过(c-1-1)及(c-1-2)的处理之后,生成表示把代表被乘数X的信号移1位的第1移位电路的信息,并将该第1移位电路的输出信号重新设定为在(c-1-1)及(c-1-2)的处理中使用的表示被乘数X的信号;
通过对应于常数A1的所有位反复进行(c-1-1)-(c-1-3)的处理,生成第1部分积生成电路;
(d-1)的处理包括:相应于常数A1的各位,
(d-1-1)判断常数A1的该位值是否为1;
(d-1-2)当常数A1的该位值为1时,生成表示把代表被乘数X的信号作为部分积而输出的电路的信息;
(d-1-3)进行过(d-1-1)及(d-1-2)的处理之后,生成表示把代表被乘数X的信号移1位的第2移位电路的信息并将该第2移位电路的输出信号重新设定为在(d-1-1)及(d-1-2)的处理中使用的表示被乘数X的信号;
通过相对于常数A1的所有位反复进行(d-1-1)-(d-1-3)的处理,生成第2部分积生成电路;
(d-2)的处理包括:相应于常数A2、A3的各位,
(d-2-1)判断常数A2、A3的该位值是否为1;
(d-2-2)当常数A2、A3的该位值为1时,生成表示把代表被乘数X的信号作为部分积而输出的电路的信息;
(d-2-3)进行过(d-2-1)及(d-2-2)的处理之后,生成表示把代表被乘数X的信号移1位的第3移位电路的信息并将该第3移位电路的输出信号重新设定为在(d-2-1)及(d-2-2)的处理中使用的表示被乘数X的信号;
通过相应于常数A2、A3的所有位反复进行(d-2-1)-(d-2-3)的处理,生成第3部分积生成电路;
(f-1)的处理包括:相应于常数A2的各位,
(f-1-1)判断常数A2的该位值是否为1;
(f-1-2)当常数A2的该位值为1时,生成表示把代表被乘数X的信号作为部分积而输出的电路的信息;
(f-1-3)进行过(f-1-1)及(f-1-2)的处理之后,生成表示把代表被乘数X的信号移1位的第4移位电路的信息并将该第4移位电路的输出信号重新设定为在(f-1-1)及(f-1-2)的处理中使用的表示被乘数X的信号;
通过相应于常数A2的所有位反复进行(f-1-1)-(f-1-3)的处理,生成第4部分积生成电路。
21、如权利要求19所述的逻辑电路的自动设计方法,其中,
(c-2)的处理包括:对应于把上述第1部分积生成电路的输出信号构成的第1多个部分积按每n个为1组划分成的各个部分积群,
(c-2-1)生成表示输入属于该部分积群的n个部分积并且将该n个部分积之间的和作为m(<n)个部分积而输出的加法电路的信息;
与上述第1多个部分积的所有部分相对应,
(C-2-2)反复进行过(c-2-1)的处理之后,将作为在(c-2-1)的处理中生成的加法电路的输出的所有部分积与上述第1多个部分积中未成为在(c-2-1)的处理中生成的加法电路的输入信号的部分积重新设定为进行(c-2-1)的处理的第1多个部分积;
通过反复进行(c-2-1)及(c-2-2)的处理,生成表示第1部分积和电路的信息;
(d-4)的处理包括:对应于把上述第2部分积生成电路的输出信号和上述第1逻辑非电路的输出信号及第1修正信号构成的第2多个部分积按每n个为1组划分成的各个部分积群,
(d-4-1)生成表示输入属于该部分积群的n个部分积并且将该n个部分积之间的和作为m(<n)个部分积而输出的加法电路的信息;
与上述第2多个部分积的所有部分相对应,
(d-4-2)反复进行过(d-4-1)的处理之后,将作为在(d-4-1)的处理中生成的加法电路的输出的所有部分积与上述第2多个部分积中未成为在(d-4-1)的处理中生成的加法电路的输入信号的部分积重新设定为进行(d-4-1)的处理的第2多个部分积;
通过反复进行(d-4-1)及(d-4-2)的处理,生成表示第2部分积和电路的信息;
(f-2)的处理包括:对应于把上述第4部分积生成电路的输出信号和表示被乘数X的信号构成的第3多个部分积按每n个为1组划分成的各个部分积群,
(f-2-1)生成表示输入属于该部分积群的n个部分积并且将该n个部分积之间的和作为m(<n)个部分积而输出的加法电路的信息;
与上述第3多个部分积的所有部分相对应,
(f-2-2)反复进行(f-2-1)的处理之后,将作为在(f-2-1)的处理中生成的加法电路的输出的所有部分积与上述第3多个部分积中未成为在(f-2-1)的处理中生成的加法电路的输入信号的部分积重新设定为进行(f-2-1)的处理的第3多个部分积;
通过反复进行(f-2-1)及(f-2-2)的处理,生成表示部分积加法电路的信息。
22、用于生成表示求乘数与被乘数之积的逻辑电路信息的逻辑电路的自动设计方法,具有如下处理:
(a)确定三个常数A1、A2、A3,以使常数A1常数A2、A3之和的差值A1-(A2+A3)等于常数的乘数A并且常数A1中值为1的位数和常数A2中值为1的位数以及常数A3中值为1的位数总和为最小;
(b)判断常数A1是否等于乘数A或者常数A2、A3是否均为0;
(c)当常数A1等于乘数A时,
(c-1)生成表示输入常数A1和被乘数X并输出它们的部分积的第1部分积生成电路的信号;
(c-2)生成表示输入上述第1部分积生成电路的所有输出信号并求出它们的和作为乘数A与被乘数X之积而输出的第1部分积和电路的信息;
(d)当常数A1不等于乘数A并且常数A2及A3中至少1个不为0时,
(d-1)生成表示输入常数A1和被乘数X并输出它们的部分积的第2部分积生成电路的信息;
(d-2)生成表示输入常数A2、A3和被乘数X并输出它们的部分积的第3部分积生成电路的信息;
(d-3)生成表示输入上述第3部分积生成电路的输出信号并输出其逻辑非信号的第1逻辑非电路的信息;
(d-4)生成表示输入上述第2部分积生成电路的输出信息和上述第1逻辑非电路的输出信号及第1修正信号并求出它们的和作为乘数A与被乘数X之积而输出的第2部分积和电路的信息。
23、如权利要求22所述的逻辑电路的自动设计方法,其中,
(c-1)的处理包括:相应于常数A1的各位,
(c-1-1)判断常数A1的该位值是否为1;
(c-1-2)当常数A1的该位值为1时,生成表示把代表被乘数X的信号作为部分积而输出的电路的信息;
(c-1-3)进行过(c-1-1)及(c-1-2)的处理之后,生成表示把代表被乘数X的信号移1位的第1移位电路的信息并将该第1移位电路的输出信号重新设定为在(c-1-1)及(c-1-2)的处理中使用的表示被乘数X的信号;
通过相应于常数A1的所有位反复进行(c-1-1)-(c-1-3)的处理,生成第1部分积生成电路;
(d-1)的处理包括:与常数A1的各位相对应,
(d-1-1)判断常数A1的该位值是否为1;
(d-1-2)当常数A1的该位值为1时,生成表示把代表被乘数X的信号作为部分积而输出的电路的信息;
(d-1-3)进行过(d-1-1)及(d-1-2)的处理之后,生成表示把代表被乘数X的信号移1位的第2移位电路的信息并将该第2移位电路的输出信号重新设定为在(d-1-1)及(d-1-2)的处理中使用的表示被乘数X的信号;
与常数A1的所有位相对应,通过反复进行(d-1-1)-(d-1-3)的处理,生成第2部分积生成电路;
(d-2)的处理包括:相应于常数A2、A3的各位,
(d-2-1)判断常数A2、A3的该位值是否为1;
(d-2-2)当常数A2、A3的该位值为1时,生成表示把代表被乘数X的信号作为部分积而输出的电路的信息;
(d-2-3)进行过(d-2-1)及(d-2-2)的处理之后,生成表示把代表被乘数X的信号移1位的第3移位电路的信息并将该第3移位电路的输出信号重新设定为在(d-2-1)及(d-2-2)的处理中使用的表示被乘数X的信号;
通过相应于常数A2、A3的所有位反复进行(d-2-1)-(d-2-3)的处理,生成第3部分积生成电路。
24、如权利要求22所述的逻辑电路的自动设计方法,其中,
(c-2)的处理包括:对应于把上述第1部分积生成电路的输出信号构成的第1多个部分积按每n个为1组划分成的各个部分积群,
(c-2-1)生成表示输入属于该部分积群的n个部分积并将该n个部分积之间的和作为m(<n)个部分积而输出的加法电路的信息;
对应于上述第1多个部分积的所有部分,
(c-2-2)反复进行过(c-2-1)的处理之后,将作为(c-2-1)的处理中生成的加法电路的输出的所有部分积与上述第1多个部分积中未成为在(c-2-1)的处理中生成的加法电路的输入信号的部分积重新设定为进行(c-2-1)的处理的第1多个部分积;
通过反复进行(c-2-1)及(c-2-2)的处理,生成表示第1部分积和电路的信息;
(d-4)的处理包括:对应于把上述第2部分积生成电路的输出信号和上述第1逻辑非电路的输出信号及第1修正信号构成的第2多个部分积按第n个为1组划分成的各个部分积群,
(d-4-1)生成表示输入属于该部分积群的n个部分积并将该n个部分积之间的和作为m(<n)个部分积而输出的加法电路的信息;
相应于上述第2多个部分积的所有部分,
(d-4-2)反复进行(d-4-1)的处理之后,将作为在(d-4-1)的处理中生成的加法电路的输出的所有部分积与上述第2多个部分积中未成为在(d-4-1)的处理中生成的加法电路的输入信号的部分积重新设定为进行(d-4-1)的处理的第2多个部分积;
通过反复进行(d-4-1)及(d-4-2)的处理,生成表示第2部分积和电路的信息。
25、如权利要求22所述的逻辑电路的自动设计方法,其中,还包括如下处理:
(e)判断常数A2是否等于乘数A的逻辑非,以及常数A3是否为1;
(f)当常数A2等于乘数A的逻辑非并且常数A3为1时,
(f-1)生成表示输入常数A2和被乘数X并输出它们的部分积的第4部分积生成电路的信息;
(f-2)生成表示输入上述第4部分积生成电路的所有输出信号和表示被乘数X的信号并将它们的加法运算结果作为部分积而输出的部分积加法电路的信息;
(f-3)生成表示输入上述部分积加法电路的输出信号并输出其逻辑非信号的第2逻辑非电路的信息;
(f-4)从被乘数X生成第2修正信号;
(f-5)生成表示输入上述第2修正信号和上述第2逻辑非电路的输出信号并求出它们的和作为乘数A与被乘数X之积而输出的最终和电路的信息。
26、如权利要求25所述的逻辑电路的自动设计方法,其中,
(c-1)的处理包括:相应于常数A1的各位,
(c-1-1)判断常数A1的该位值是否为1;
(c-1-2)当常数A1的该位值为1时,生成表示把代表被乘数X的信号作为部分积而输出的电路的信息;
(c-1-3)进行过(c-1-1)及(c-1-2)的处理之后,生成表示把代表被乘数X的信号移1位的第1移位电路的信息并将该第1移位电路的输出信号重新设定为在(c-1-1)及(c-1-2)的处理中使用的表示被乘数X的信号;
通过相应于常数A1的所有位反复进行(c-1-1)-(c-1-3)的处理,生成第1部分积生成电路;
(d-1)的处理包括:相应于常数A1的各位,
(d-1-1)判断常数A1的该位值是否为1;
(d-1-2)当常数A1的该位值为1时,生成表示把代表被乘数X的信号作为部分积而输出的电路的信息;
(d-1-3)进行过(d-1-1)及(d-1-2)的处理之后,生成表示把代表被乘数X的信号移1位的第2移位电路的信息并将该第2移位电路的输出信号重新设定为在(d-1-1)及(d-1-2)的处理中使用的表示被乘数X的信号;
与常数A1的所有位相对应,通过反复进行(d-1-1)-(d-1-3)的处理,生成第2部分积生成电路;
(d-2)的处理包括:相应于常数A2、A3的各位,
(d-2-1)判断常数A2、A3的该位值是否为1;
(d-2-2)当常数A2、A3的该位值为1时,生成表示把代表被乘数X的信号作为部分积而输出的电路的信息;
(d-2-3)进行过(d-2-1)及(d-2-2)的处理之后,生成表示把代表被乘数X的信号移1位的第3移位电路的信息并将该第3移位电路的输出信号重新设定为在(d-2-1)及(d-2-2)的处理中使用的表示被乘数X的信号;
与常数A2、A3的所有位相对应,通过反复进行(d-2-1)-(d-2-2)的处理,生成第3部分积生成电路;
(f-1)的处理包括:与常数A2的各位相对应,
(f-1-1)判断常数A2的该位值是否为1;
(f-1-2)为常数A2的该位值为1时,生成表示把代表被乘数X的信号作为部分积而输出的电路的信息;
(f-1-3)进行过(f-1-1)及(f-1-2)的处理之后,生成表示把代表被乘数X的信号移1位的第4移位电路的信息并将该第4移位电路输出信号重新设定为在(f-1-1)及(f-1-2)的处理中使用的表示被乘数X的信号;
通过相应于常数A2的所有位反复进行(f-1-1)-(f-1-3)的处理,生成第4部分积生成电路。
27、如权利要求25所述的逻辑电路的自动设计方法,其中,
(c-2)的处理包括:对应于把上述第1部分积生成电路的输出信号构成的第1多个部分积按每n个为1组划分成的各个部分积群,
(c-2-1)生成表示输入属于该部分积群的n个部分积并将该n个部分积之间的和作m(<n)个部分积而输出的加法电路的信息;
相应于上述第1多个部分积的所有部分,
(c-2-2)反复进行过(c-2-1)的处理之后,将作为在(c-2-1)的处理中生成的加法电路的输出的所有部分积与上述第1多个部分积中未成为在(c-2-1)的处理中生成的加法电路的输入信号的部分积重新设定为进行(c-2-1)的处理的第1多个部分积;
通过反复进行(c-2-1)及(c-2-2)的处理,生成表示第1部分积和电路的信息;
(d-4)的处理包括:对应于把上述第2部分积生成电路的输出信号和上述第1逻辑非电路的输出信号及第1修正信号构成的第2多个部分积按每n个为1组划分成的各个部分积群,
(d-4-1)生成表示输入属于该部分积群的n个部分积并将该n个部分积之间的和作为m(<n)个部分积而输出的加法电路的信息;
相应于上述第2多个部分积的所有部分,
(d-4-2)反复进行过(d-4-1)的处理之后,将作为在(d-4-1)的处理中生成的加法电路的输出的所有部分积与上述第2多个部分积中未成为在(d-4-1)的处理中生成的加法电路的输入信号的部分积重新设定为进行(d-4-1)的处理的第2多个部分积;
通过反复进行(d-4-1)及(d-4-2)的处理,生成表示第2部分积和电路的信息;
(f-20的处理包括:对应于把上述第4部分积生成电路的输出信号和表示被乘数X的信号构成的第3多个部分积按每n个为1组划分成的各个部分积群,
(f-2-1)生成表示输入属于该部分积群的n个部分积并将该n个部分积之间的和作为m(<n)个部分积而输出的加法电路的信息;
相应于上述第3多个部分积的所有部分,
(f-2-2)反复进行过(f-2-1)的处理之后,将作为在(f-2-1)的处理中生成的加法电路的输出的所有部分积与上述第3多个部分积中未成为在(f-2-1)的处理中生成的加法电路的输入信号的部分积重新设定为进行(f-2-1)的处理的第3多个部分积;
通过反复进行(f-2-1)及(f-2-2)的处理,生成表示部分积加法电路的信息。
28、用于生成表示求乘数与被乘数之积的逻辑电路信息的逻辑电路的自动设计方法,具有如下处理:
(a)确定两个常数A1、A2,以使常数A1与常数A2之差A1-A2等于常数的乘数A;
(b)判断乘数A中值为1的位数和常数A1中值为1的位数与常数A2中值为1的位数之和两者之中哪一个为最小;
(c)当乘数A中值为1的位数为最小时,
(c-1)生成表示输入乘数A和被乘数X,并将乘数A的各位与被乘数X之积作为部分积而输出的第1部分积生成电路的信息;
(c-2)生成表示输入上述第1部分积生成电路的所有输出信号并求出它们的和作为乘数A与被乘数X之积而输出的第1部分积和电路的信息;
(d)当常数A1中值为1的位数与A2中值为1的位数之和为最小时,
(d-1)生成表示输入常数A1和被乘数X并输出它们的部分积的第2部分积生成电路的信息;
(d-2)生成表示输入常数A2和被乘数X并输出它们的部分积的第3部分积生成电路的信息;
(d-3)生成表示输入上述第3部分积生成电路的输出信号并输出其逻辑非信号的逻辑非电路的信息;
(d-4)生成表示输入上述第2部分积生成电路的输出信号和上述逻辑非电路的输出信号以及修正信号并求出它们的和作为乘数A与被乘数X之积而输出的第2部分积和电路的信息。
29、逻辑电路的自动设计***,具有输入各种信息的输入装置、存储处理中的各种信息的存储装置、生成表示求从上述输入装置输入的乘数与被乘数之积的逻辑电路的信息的运算处理装置和输出利用该运算处理装置生成的表示逻辑电路的信息的输出装置,
上述运算处理装置进行如下处理:
(a)确定两个常数A1、A2,以使常数A1与常数A2之差A1-A2等于常数的乘数A;
(b)判断乘数A中值为1的位数和常数A1中值为1的位数与常数A2中值为1的位数之和两者之中哪一个为最小;
(c)当乘数A中值为1的位数为最小时,
(c-1)生成表示输入乘数A和被乘数X并将乘数A的各位与被乘数X之积作为部分积而输出的第1部分积生成电路的信息;
(c-2)生成表示输入上述第1部分积生成电路的所有输出信号并求出它们的和作为乘数A与被乘数X之积而输出的第1部分积和电路的信息;
(d)当常数A1中值为1的位数与常数A2中值为1的位数之和为最小时,
(d-1)生成表示输入常数A1和被乘数X并输出它们的部分积的第2部分积生成电路的信息;
(d-2)生成表示输入常数A2和被乘数X并输出它们的部分积的第3部分积生成电路的信息;
(d-3)生成表示输入上述第3部分积生成电路的输出信号并输出其逻辑非信号的逻辑非电路的信息;
(d-4)生成表示输入上述第2部分积生成电路的输出信号和上述逻辑非电路的输出信号以及修正信号并求出它们的和作为乘数A与被乘数X之积而输出的第2部分积和电路的信息。
30、如权利要求29所述的逻辑电路的自动设计***,其中,在上述运算处理装置进行的(c-2)的处理中生成的第1部分积和电路具有第1部分积加法电路和第1最终和电路,第1部分积加法电路对输入的信号进行加法运算,并将该加法运算结果作为部分积而输出;第1最终和电路至少输入上述第1部分积加法电路的输出信号,并求出它们的和作为乘数A与被乘数X之积而输出;
在上述运算处理装置进行的(d-4)的处理中生成的第2部分积和电路具有第2部分积加法电路和第2最终和电路,第2部分积加法电路对输入的信号进行加法运算,并将该加法运算结果作为部分积而输出;第2最终和电路至少输入上述第2部分积加法电路的输出信号,并求出它们的和作为乘数A与被乘数X之积而输出。
31、逻辑电路的自动设计***,具有输入各种信息的输入装置、存储处理中的各种信息的存储装置、生成表示求从上述输入装置输入的乘数与被乘数之积的逻辑电路的信息的运算处理装置和输出由该运算处理装置生成的表示逻辑电路的信息的输出装置,
上述运算处理装置进行如下处理:
(a)确定两个常数A1、A2,以使常数A1与常数A2之差A1-A2等于常数的乘数A;
(b)判断乘数A中值为1的位数和常数A2中值为1的位数与常数A2中值为1的位数之和以及乘数A中值为0的位数与2之和或者为最小;
(c)当乘数A中值为1的位数为最小时,
(c-1)生成表示输入乘数A和被乘数X并且将乘数A的各位与被乘数X之积作为部分积而输出的第1部分积生成电路的信息;
(c-2)生成表示输入上述第1部分积生成电路的所有输出信号并求出它们的和作为乘数A与被乘数X之积而输出的第1部分积和电路的信息;
(d)当常数A1中值为1的位数与常数A2中值为1的位数之和为最小时,
(d-1)生成表示输入常数A1和被乘数X并输出它们的部分积的第2部分积生成电路的信息;
(d-2)生成表示输入常数A2和被乘数X并输出它们的部分积的第3部分积生成电路的信息;
(d-3)生成表示输入上述第3部分积生成电路的输出信号并输出其逻辑非信号的第1逻辑非电路的信息;
(d-4)生成表示输入上述第2部分积生成电路的输出信号和上述第1逻辑非电路的输出信号以及第1修正信号并求出它们的和作为乘数A与被乘数X之积而输出的第2部分积和电路的信息;
(e)当乘数A中值为0的位数与2之和为最小时,
(e-1)从乘数A生成乘数A的逻辑非信号;
(e-2)生成表示输入上述乘数A的逻辑非信号和被乘数X并将上述乘数A的逻辑非信号的各位与被乘数X之积作为部分积而输出的第4部分积生成电路的信息;
(e-3)生成表示输入上述第4部分积生成电路的所有输出信号和表示被乘数X的信号并将它们的加法运算结果作为部分积而输出的部分积加法电路的信息;
(e-4)生成表示输入上述部分积加法电路的输出信号并输出其逻辑非信号的第2逻辑非电路的信息;
(e-5)从被乘数X生成第2修正信号;
(e-6)生成表示输入上述第2修正信号和上述第2逻辑非电路的输出信号并求出它们的和作为乘数A与被乘数X之积而输出的最终和电路的信息。
32、具有求乘数与被乘数之积的乘法运算功能的逻辑电路的自动设计装置,具有输入装置、乘数分割器、第1部分积生成电路生成器、第2部分积生成电路生成器、逻辑非电路生成器、部分积总数判断器、部分积加法电路生成器、修正信号生成器和最终和电路生成器,其中,
输入装置用于从外部输入表示乘数A的信息、表示被乘数X的信息和表示积P的信息等各种信息;
乘数分割器用于输入表示乘数A的信息,并确定表示常数A1的信息和表示常数A2的信息以使常数A1与常数A2之差A1-A2等于乘数A;
第1部分积生成电路生成器用于输入表示常数A1的信息和表示被乘数X的信息并生成表示第1部分积生成电路的信息,该第1部分积生成电路输入常数A1和被乘数X,并将常数A1中值不为0的各位与被乘数X之积作为部分积而输出;
第2部分积生成电路生成器用于输入表示常数A2的信息和表示被乘数X的信息,并生成表示第2部分积生成电路的信息,该第2部分积生成电路输入常数A2和被乘数X,并将常数A2中值不为0的各位与被乘数X之积作为部分积而输出;
逻辑非电路生成器用于输入表示上述第2部分积生成电路的输出信号的信息,并生成表示逻辑非电路的信息,该逻辑非电路输入上述第2部分积生成电路的输出信号,输出其逻辑非信号;
部分积总数判断器用于判断上述第1部分积生成电路及逻辑非电路的输出信号个数的总数;
部分积加法电路生成器用于输入表示上述第1部分积生成电路的输出信号的信息和表示上述逻辑非电路的输出信号的信息,并生成表示部分积加法电路的信息,该部分积加法电路输入上述第1部分积生成电路及逻辑非电路的所有输出信号,并将它们的加法运算结果作为部分积而输出;
修正信号生成电路用于输入表示上述逻辑非电路的输出信号的信息或表示上述第2部分积生成电路的输出信号的信息中的任一个,并根据表示该信息的输出信号的个数生成修正信号;
最终和电路生成器用于输入表示上述部分积加法电路的输出信号的信息和表示上述修正信号的信息以及表示积P的信息,并生成表示部分积和电路的信息,该分积和电路用于求上述部分积加法电路的输出信号与上述修正信号之和,将该和作为乘数A与被乘数X之积设定为积P并输出该积P。
33、如权利要求32所述的逻辑电路的自动设计装置,其中,上述部分积加法电路生成器用于生成表示由排列成树状加法器构成的部分积加法电路的信息。
34、具有求乘数与被乘数之积的乘法运算功能的逻辑电路的自动设计装置,具有输入装置、乘数分割器、第1部分积生成电路生成器、第2部分积生成电路生成器、逻辑非电路生成器、部分积总数判断器、修正信号生成器、部分积加法电路生成器和最终和电路生成器,其中,
输入装置用于从外部输入表示乘数A的信息、表示被乘数X的信息和表示积P的信息等各种信息;
乘数分割器输入表示乘数A的信息,并确定表示常数A1的信息和表示常数A2的信息以使常数A1与常数A2之差A1-A2等于乘数A;
第1部分积生成电路生成器用于输入表示常数A1的信息和表示被乘数X的信息,并生成表示第1部分积生成电路的信息,该第1部分积生成电路输入常数A1和被乘数X,并将常数A1中值不为0的各位与被乘数X之积作为部分积而输出;
第2部分积生成电路生成器用于输入表示常数A2的信息和表示被乘数X的信息,并生成表示第2部分积生成电路的信息,该第2部分积生成电路输入常数A2和被乘数X,并将常数A2中值不为0的各位与被乘数X之积作为部分积而输出;
逻辑非电路生成器用于输入表示上述第2部分积生成电路的输出信号的信息,并生成表示逻辑非电路的信息,该逻辑非电路输出上述第2部分积生成电路的输出信号,并输出其逻辑非信号;
部分积总数判断器用于判断上述第1部分积生成电路和逻辑非电路的输出信号个数的总数;
修正信号生成器用于输入表示上述逻辑非电路的输出信号的信息或表示上述第2部分积生成电路的输出信号的信息中的任一个,并根据表示该信息的输出信号的个数生成修正信号;
部分积加法电路生成器用于输入表示上述第1部分积生成电路的输出信号的信息和表示上述逻辑非电路的输出信号的信息以及表示上述修正信号的信息,并生成表示部分积加法电路的信息,该部分积加法电路输入上述第1部分积生成电路和逻辑非电路的全部输出信号和上述修正信号,并将它们的加法运算结果作为部分积而输出;
最终和电路生成器用于输入表示上述部分积加法电路的输出信号的信息和表示积P的信息,并生成表示最终和电路的信息,该最终和电路用于求上述部分积加法电路的输出信号的总和,将该总和作为乘数A与被乘数X之积设定为各积P并输出该积P。
35、如权利要求34所述的逻辑电路的自动设计方法,其中,上述部分积加法电路生成器生成表示由排列成树状的加法器构成的部分积加法电路的信息。
36、具有求乘数与被乘数之积的乘法运算功能的逻辑电路的自动设计装置,具有输入装置、逻辑非信号生成器、部分积生成电路生成器、部分积加法电路生成器、逻辑非电路生成器、修正信号生成器和最终和电路生成器,其中,
输入装置用于输入表示乘数A的信息、表示被乘数X的信息和表示积P的信息等各种信息;
逻辑非信号生成器用于输入表示乘数A的信息并生成乘数A的逻辑非信号;
部分积生成电路生成器用于输入表示上述乘数A的逻辑非信号的信息和表示被乘数X的信息,并生成表示部分积生成电路的信息,该部分积生成电路输入上述乘数A的逻辑非信号和被乘数X,并将上述乘数A的逻辑非信号中值不为0的各位与被乘数X之积作为部分积而输出;
部分积加法电路生成器用于输入表示作为上述部分积生成电路输出的部分积的信息和表示被乘数X的信息,并生成表示部分积加法电路的信息,该部分积加法电路输入作为上述部分积生成电路输出的所有部分积和被乘数X,并将它们的加法运算结果作为部分积而输出;
逻辑非电路生成器用于输入表示上述部分积加法电路的输出信号的信息,并生成表示逻辑非电路的信息,该逻辑非电路输入上述部分积加法电路的输出信号,并输出其逻辑非信号;
修正信号生成器用于输入表示被乘数X的信息,并根据被乘数X生成修正信号;
最终和电路生成器用于输入表示上述修正信号的信息和表示上述部分积加法电路的输出信号的信息以及表示积P的信息,并生成表示部分积和电路的信息,该部分积和电路用于求上述修正信号与上述部分积加法电路的输出信号之和,将该和作为乘数A与被乘数X之积设定为积P并输出该积P。
37、如权利要求36所述的逻辑电路的自动设计装置,其中,上述部分积加法电路生成器生成表示由排列成树状的加法器构成的部分积加法电路的信息。
38、具有求乘数与被乘数之积的乘法运算功能的逻辑电路的自动设计装置,具有输入装置、部分积生成电路生成器、部分积数判断器、部分积加法电路生成器和最终和电路生成器,其中,
输入装置用于输入表示乘数A的信息和表示被乘数X的信息以及表示积P的信息等各种信息;
部分积生成电路生成器用于输入表示乘数A的信息和表示被乘数X的信息,并生成表示部分积生成电路的信息,该部分积生成电路输入乘数A和被乘数X,并将乘数A中值不为0的各位与被乘数X之积作为部分积而输出;
部分积数判断器用于判断上述部分积生成电路的输出信号的个数;
部分积加法电路生成器用于输入表示上述部分积生成电路的输出信号的信息,并生成表示部分积加法电路的信息,该部分积加法电路输入上述部分积生成电路的所有输出信号,并将它们的加法运算结果作为部分积而输出;
最终和电路生成器用于输入表示上述部分积加法电路的输出信号的信息和表示积P的信息,并生成表示部分积和电路的信息,该部分积和电路输入上述部分积加法电路的所有输出信号,求出它们的和,将该和作为乘数A与被乘数X之积设定为积P并输出该积P。
39、如权利要求38所述的逻辑电路的自动设计装置,其中,上述部分积加法电路生成器生成表示由排列成树状的加法器构成的部分积加法电路的信息。
40、对于常数A1、A2输出满足A=A1-A2的乘数A与被乘数X之积的乘法器,具有第1部分积生成单元、第2部分积生成单元、逻辑非单元和部分积单元,其中,
第1部分积生成单元输入常数A1和被乘数X,输出只与常数A1中值为1的各位对应的部分积;
第2部分积生成单元输入常数A2和被乘数X,输出只与常数A2中值为1的各位对应的部分积;
逻辑非单元输入该第2部分积生成单元的输出信号,输出其逻辑非信号;
部分积和单元输入上述第1部分积生成单元的输出信号和上述逻辑非单元的输出信号以及修正信号,求出它们的和作为乘数A与被乘数X之积而输出。
41、如权利要求40所述的乘法器,其中,上述部分积和单元包括部分积加法单元和最终和单元,
上述部分积加法单元输入上述第1部分积生成单元的输出信号和上述逻辑非单元的输出信号,利用单级或多级加法器对上述第1部分积生成单元的输出信号和上述逻辑非单元的输出信号进行加法运算,并将该加法运算结果作为部分积而输出;
最终和单元输入该部分积加法单元的输出信号和修正信号,并求出它们的和作为乘数A与被乘数X之积而输出。
42、如权利要求41所述的乘法器,基中,上述部分积加法单元包含保留进位加法器。
43、输出乘数A与被乘数X之积的乘法器,具有部分积生成单元、部分积加法单元、逻辑非单元和部分积和单元,其中,
部分积加法单元输入乘数A的逻辑非信号和被乘数X,输出只与上述乘数A的逻辑非信号中值为1的各位对应的部分积;
部分积加法单元输入该部分积生成单元的输出信号和被乘数X,利用单级或多级加法器对上述部分积生成单元的输出信号与被乘数X进行加法运算,并将该加法运算结果作为部分积而输出;
逻辑非单元输入该部分积加法单元的输出信号,并输出其逻辑非信号;
部分积和单元输入该逻辑非单元的输出信号和根据被乘数X可能生成的修正信号,并求出上述逻辑非单元的输出信号与上述修正信号之和作为乘数A与被乘数X之积而输出。
44、如权利要求43所述的乘法器,其中,上述部分积加法单元包含保留进位加法器。
CN94115596A 1993-09-02 1994-08-30 求乘数和被乘数之积的方法、***、装置和乘法器 Expired - Fee Related CN1102260C (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP5218780A JP2972498B2 (ja) 1993-09-02 1993-09-02 論理回路の自動設計方法、そのシステム及びその装置並びに乗算器
JP218780/93 1993-09-02
JP218780/1993 1993-09-02

Publications (2)

Publication Number Publication Date
CN1106941A true CN1106941A (zh) 1995-08-16
CN1102260C CN1102260C (zh) 2003-02-26

Family

ID=16725265

Family Applications (1)

Application Number Title Priority Date Filing Date
CN94115596A Expired - Fee Related CN1102260C (zh) 1993-09-02 1994-08-30 求乘数和被乘数之积的方法、***、装置和乘法器

Country Status (7)

Country Link
US (1) US5600569A (zh)
EP (3) EP1475699B8 (zh)
JP (1) JP2972498B2 (zh)
KR (1) KR0126626B1 (zh)
CN (1) CN1102260C (zh)
DE (3) DE69435179D1 (zh)
TW (1) TW401557B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103605494A (zh) * 2013-10-17 2014-02-26 陕西万达信息工程有限公司 一种平方运算电路
CN112068802A (zh) * 2020-08-14 2020-12-11 清华大学 计数器的设计方法、装置及计数器

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10124298A (ja) * 1996-08-26 1998-05-15 Fujitsu Ltd 定数乗算器並びに定数乗算器自動生成方法および装置並びに定数乗算器自動生成プログラムを格納した記憶媒体
US6091892A (en) * 1996-11-13 2000-07-18 Xilinx, Inc. Method for mapping product terms in a complex programmable logic device
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
US5815422A (en) * 1997-01-24 1998-09-29 Vlsi Technology, Inc. Computer-implemented multiplication with shifting of pattern-product partials
JP3701781B2 (ja) 1997-11-28 2005-10-05 株式会社ルネサステクノロジ 論理回路とその作成方法
US6850631B1 (en) 1998-02-20 2005-02-01 Oki Electric Industry Co., Ltd. Photographing device, iris input device and iris image input method
CA2319888A1 (en) * 2000-09-18 2002-03-18 Ibm Canada Limited-Ibm Canada Limitee Method for generating instruction sequences for integer multiplication
US20030061252A1 (en) * 2001-09-27 2003-03-27 Murphy Charles D. Non-constant reduced-complexity multiplication in signal processing transforms
US20030074383A1 (en) * 2001-10-15 2003-04-17 Murphy Charles Douglas Shared multiplication in signal processing transforms
US20030182342A1 (en) * 2002-03-25 2003-09-25 Murphy Charles Douglas Low-cost multiplication in small DFT butterflies
TW200538919A (en) * 2004-05-21 2005-12-01 Hon Hai Prec Ind Co Ltd System and method for checking split plane of motherboard layout
US8386543B1 (en) * 2006-09-28 2013-02-26 L-3 Communications Corp Reduced memory usage for digital signal processing system and method
KR101590141B1 (ko) 2014-04-09 2016-02-01 주식회사 세양 원단 표면 코팅용 액상 조성물
US9519459B2 (en) * 2014-06-20 2016-12-13 Wisconsin Alumni Research Foundation High efficiency computer floating point multiplier unit
US9841945B2 (en) * 2014-06-26 2017-12-12 Lattice Semiconductor Corporation Efficient constant multiplier implementation for programmable logic devices
RU185670U1 (ru) * 2018-05-24 2018-12-13 Федеральное государственное бюджетное образовательное учреждение высшего образования "МИРЭА - Российский технологический университет" Цифровой умножитель импульсных потоков на константу

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5164844A (zh) * 1974-12-03 1976-06-04 Fujitsu Ltd
US4792909A (en) * 1986-04-07 1988-12-20 Xerox Corporation Boolean logic layout generator
DE3619425A1 (de) * 1986-06-10 1987-12-17 Philips Patentverwaltung Digitales filter
US5146583A (en) * 1987-09-25 1992-09-08 Matsushita Electric Industrial Co., Ltd. Logic design system for creating circuit configuration by generating parse tree from hardware description language and optimizing text level redundancy thereof
JPH0315984A (ja) * 1987-09-25 1991-01-24 Matsushita Electric Ind Co Ltd 機能記述変換方法と論理設計システム
JP2506991B2 (ja) * 1987-09-25 1996-06-12 松下電器産業株式会社 回路変換システムと回路変換方法と反転論理生成方法および論理設計システム
JP2682142B2 (ja) * 1989-06-14 1997-11-26 松下電器産業株式会社 乗算装置
FR2656124A1 (fr) * 1989-12-15 1991-06-21 Philips Laboratoires Electro Multiplieur serie programmable.
JPH0540608A (ja) * 1990-03-16 1993-02-19 Internatl Business Mach Corp <Ibm> テーブルルツクアツプ乗算器及びその乗算方法
US5200907A (en) * 1990-04-16 1993-04-06 Tran Dzung J Transmission gate logic design method
US5412591A (en) * 1990-08-09 1995-05-02 Vlsi Technology, Inc. Schematic compiler for a multi-format high speed multiplier
US5313414A (en) * 1992-11-12 1994-05-17 Vlsi Technology, Inc. Canonical signed two's complement constant multiplier compiler
JP2840169B2 (ja) * 1992-12-28 1998-12-24 松下電器産業株式会社 論理回路の自動設計方法およびその装置
JPH06223097A (ja) * 1993-01-22 1994-08-12 Sony Corp 乗算器、積和演算器の回路記述の発生方法
JPH06243194A (ja) * 1993-02-17 1994-09-02 Matsushita Electric Ind Co Ltd 論理回路の自動設計方法およびその装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103605494A (zh) * 2013-10-17 2014-02-26 陕西万达信息工程有限公司 一种平方运算电路
CN112068802A (zh) * 2020-08-14 2020-12-11 清华大学 计数器的设计方法、装置及计数器
CN112068802B (zh) * 2020-08-14 2022-11-11 清华大学 计数器的设计方法、装置及计数器

Also Published As

Publication number Publication date
EP0642093A3 (en) 1996-03-13
EP1752870A3 (en) 2007-05-16
EP1475699A2 (en) 2004-11-10
US5600569A (en) 1997-02-04
JP2972498B2 (ja) 1999-11-08
EP1475699B1 (en) 2008-11-12
DE69435179D1 (de) 2009-02-12
DE69434806T2 (de) 2006-12-21
DE69435167D1 (de) 2008-12-24
TW401557B (en) 2000-08-11
EP1752870B1 (en) 2008-12-31
EP1752870A2 (en) 2007-02-14
KR950009485A (ko) 1995-04-24
EP1475699B8 (en) 2009-02-18
EP0642093A2 (en) 1995-03-08
CN1102260C (zh) 2003-02-26
EP1475699A3 (en) 2004-11-17
JPH0773227A (ja) 1995-03-17
KR0126626B1 (ko) 1998-04-04
EP0642093B1 (en) 2006-08-02
DE69434806D1 (de) 2006-09-14

Similar Documents

Publication Publication Date Title
CN1102260C (zh) 求乘数和被乘数之积的方法、***、装置和乘法器
CN1148643C (zh) 模幂运算装置
CN1144145C (zh) 用于数据仓库的选择聚集层和交叉产品层的方法和装置
CN1186714C (zh) 高基除法器及方法
CN1129066C (zh) 处理器及其运算方法以及数据处理器
CN1205538C (zh) 用于多精度整数算术运算的装置
CN1910601A (zh) 限制条件解决方法、限制条件解决装置、以及限制条件解决***
CN101076798A (zh) 字符串对照装置及字符串对照程序
CN1862490A (zh) 信号处理装置
CN101080897A (zh) 鉴别***、鉴别方法、证明器件、验证器件及其程序和记录介质
CN101042682A (zh) 访问控制装置、***和方法,处理器
CN1647082A (zh) 集成电路的开发方法和存储了集成电路的开发方法的程序存储媒体、以及asic和可编程逻辑器件同时开发***、开发程序和开发方法
CN1783075A (zh) 用于显示网络数据的方法、设备、处理器配置
CN1750003A (zh) 信息处理装置,信息处理方法,和程序
CN1558348A (zh) 将基于模式的分级数据结构转换成平面数据结构的方法以及***
CN1059225A (zh) 用于结构运算的运算单元
CN1520565A (zh) 布线方法和装置
CN1763743A (zh) 图表上的自动标签放置***和方法
CN101044450A (zh) 处理器
CN1498367A (zh) 信息处理装置、存储器管理装置、存储器管理方法及信息处理方法
CN1319210A (zh) 可配置的硬件块的配置方法
CN1726669A (zh) 数据分割方法和使用异或运算的装置
CN1469241A (zh) 处理器、程序变换装置和变换方法以及计算机程序
CN101038560A (zh) 并行处理方法中的作业分配方法及并行处理方法
CN1318836A (zh) 可抑制电路规模能进行高速纠错的纠错装置和解码装置

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
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20030226

Termination date: 20110830