專利名稱:邏輯電路的自動(dòng)設(shè)計(jì)方法、系統(tǒng)、裝置和乘法器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及邏輯電路的自動(dòng)設(shè)計(jì)方法,特別是乘法器的或包含乘法器的邏輯電路的自動(dòng)設(shè)計(jì)方法、系統(tǒng)及其裝置和乘法器。
以往,將數(shù)字?jǐn)?shù)據(jù)進(jìn)行乘法運(yùn)算的乘法器,除作為單一的LSI使用外,多數(shù)還以將數(shù)字信號(hào)處理器(DSPdigital signal processor)等包含在LSI內(nèi)的形式進(jìn)行使用。在這種乘法器中,隨著乘法位的增大以及用途的多樣化等,要求進(jìn)一步高速化和減小電路規(guī)模及芯片面積,于是人們提出了適用各種乘法運(yùn)算方法的電路方式。
例如,《日經(jīng)エレクトロニクス》雜志(1978年5月29日號(hào)76頁-89頁)發(fā)表了最高速乘法運(yùn)算方法之一的采用2位通道記錄方式的乘法運(yùn)算方法。該乘法運(yùn)算方法試圖利用如下算法實(shí)現(xiàn)乘法運(yùn)算的高速比等。
例如,將m位的乘數(shù)Y和n位的被乘數(shù)X進(jìn)行乘法運(yùn)算時(shí),利用2的補(bǔ)碼,乘數(shù)Y可以表示為如下(1)式,
Y=-ys·2m-1+Σi=1m-1(yi·2i-1)]]>=Σi=0q-1{(y2i+y2i+1-2y2i+2)·22i}---(1)]]>其中,Ym=Y(jié)s,q的值當(dāng)m為偶數(shù)時(shí)為q=m/2,m為奇數(shù)時(shí)為q=(m-1)/2。另外,為方便而取y0=0。
因此,X與Y之積P為P=X·Y=Σi=0q-1{(y2i+y2i+1-2y2i+2)·X·22i}---(2)]]>其中,Y2i+Y2i+1和Y2i+2的值分別取0或1,所以,如表1所示,為(Y2i+Y2i+1-2y2i+2)為0、±1或±2,各部分乘積等于0、±X或±2X乘以22i。
因此,生成各部分積的電路可以主要由用于使被乘數(shù)±X擴(kuò)大2倍的移位1的移位器和用于使假數(shù)(0、±X或±2X)擴(kuò)大22i倍(加權(quán))的每次移2倍的移位器構(gòu)成。
另外,由于部分積的個(gè)數(shù)為q=m/2個(gè)(m為偶數(shù)時(shí))或q=(m-1)/2個(gè)(m為奇數(shù)時(shí)),所以,求部分積之總和的電路的邏輯級(jí)數(shù)在將雙輸入加法器連接成二分樹狀時(shí)大約為log2m-1級(jí)(m為偶數(shù)時(shí))或log2(m-1)-1級(jí)(m為奇數(shù)時(shí))。
還有,作為2位通道記錄方式以外的高速乘法器,有特許公開平03-017737號(hào)公報(bào)提案的利用冗余二進(jìn)制數(shù)的乘法器。
在上述乘法器中,例如,乘數(shù)為24位時(shí),部分積數(shù)為12個(gè),邏輯級(jí)數(shù)為4級(jí)。
另一方面,乘法運(yùn)算速度的高速化及電路規(guī)模的減小不限于依靠上述乘法算法的性能來提高,還可以依靠邏輯元件級(jí)的電路最優(yōu)化等方法而實(shí)現(xiàn)。
即,近年來,乘法器以及包含乘法器的邏輯電路多數(shù)情況是利用自動(dòng)設(shè)計(jì)裝置進(jìn)行設(shè)計(jì)的。在這種裝置中,將邏輯元件級(jí)的電路信息展開成實(shí)裝在芯片內(nèi)的實(shí)裝元件級(jí)的電路信息時(shí),把一部分電路置換為邏輯元件及邏輯級(jí)數(shù)很少的等效電路,從而消除掉冗余的電路部分。
這種自動(dòng)設(shè)計(jì)裝置,一旦輸入利用硬件記述語言特等表示電路所要求功能的功能記述信息,就把它主要地變換為內(nèi)部表現(xiàn)形式的功能電路信息,該信息表示由只定義功能的假想功能元件構(gòu)成的電路,進(jìn)而變換為表示由實(shí)際存在的邏輯元件構(gòu)成的電路的邏輯電路信息之后,生成表示被分配了按特定工藝實(shí)裝的實(shí)裝元件電路的實(shí)裝電路信息。
另外,在由上述功能記述信息所表示的功能中包括乘法功能時(shí),例如,如果能適用于作為硬件宏元件預(yù)先在程序庫中登錄了指定位長(zhǎng)(4、8、16、32位等)的通用乘法器,就進(jìn)行分配,當(dāng)需要未在程序庫中登錄的乘法器時(shí),就重新生成構(gòu)成加法移位型乘法器等的邏輯電路。當(dāng)乘數(shù)或被乘數(shù)的任何一方為常數(shù),并且其值是2的冪時(shí),通常,生成使用移位器的電路。
然而,當(dāng)乘數(shù)不是2的冪的常數(shù)時(shí),由于對(duì)應(yīng)乘數(shù)中值為0的位的部分積全部數(shù)值為0,所以,生成該部分積的電路加法電路總是處于一定的信號(hào)狀態(tài)。
因此,在以往的自動(dòng)設(shè)計(jì)裝置中,一旦生成乘數(shù)及被乘量為變數(shù)的乘法電路和常數(shù)發(fā)生電路之后,如前所述,通過邏輯元件級(jí)的電路最優(yōu)化,就能夠進(jìn)行例如削除信號(hào)電平總不變化的邏輯元件等項(xiàng)工作。
然而,在先有的自動(dòng)設(shè)計(jì)裝置中,邏輯元件級(jí)的電路的最優(yōu)化是通過諸如只將與預(yù)先設(shè)定的指定圖案符合的電路部分置換為邏輯元件及邏輯級(jí)數(shù)很少的等效電路而進(jìn)行的,所以,當(dāng)乘數(shù)或被乘數(shù)為常數(shù)時(shí),即使進(jìn)行這種最優(yōu)化,也不一定能生成電路總體的邏輯元件數(shù)為最少的電路。特別是,當(dāng)為了將部分積進(jìn)行加法運(yùn)算而將進(jìn)行保留加法器連接成樹狀時(shí),如果省略與全位數(shù)值為0的部分積加法電路有關(guān)的部分,則通常由于樹的平衡被破壞,所以,利用部分電路的置換難于使邏輯元件數(shù)及邏輯級(jí)數(shù)減到最少。而且,也沒有考慮增加全位數(shù)值為0的部分積。
本發(fā)明就是鑒于上述問題而提出的,目的旨在當(dāng)生成進(jìn)行乘數(shù)或被乘數(shù)為常數(shù)的乘法運(yùn)算的乘法器及包含這種乘法器的邏輯電路時(shí),提供可以生成邏輯元件數(shù)及邏輯級(jí)數(shù)很少的邏輯電路的自動(dòng)設(shè)計(jì)方法及其系統(tǒng)和裝置以及進(jìn)行乘數(shù)或被乘數(shù)為常數(shù)的乘法運(yùn)算并且邏輯元件數(shù)和邏輯級(jí)數(shù)很少的適合于LSI化的高速乘法器。
為了達(dá)到上述目的,生成表示求乘數(shù)與被乘數(shù)之積的邏輯電路的信息的邏輯電路的自動(dòng)設(shè)計(jì)方法,對(duì)應(yīng)于乘數(shù)的各位進(jìn)行如下處理(a)判斷乘數(shù)為變量還是常數(shù);(b)乘數(shù)為變量時(shí)根據(jù)乘數(shù)的位值,選擇表示被乘數(shù)的信號(hào)及表示0的信號(hào)兩者之中的一種信號(hào)并且生成表示將所選擇的信號(hào)作為部分積而輸出的電路的信息;(c)乘數(shù)為常數(shù)時(shí)判斷乘數(shù)的位值是否為1;(d)乘數(shù)位值為1時(shí)生成表示把代表被乘數(shù)的信號(hào)作為部分積而輸出的電路的信息;(e)在進(jìn)行(a)-(d)的處理之后,生成表示把代表被乘數(shù)的信號(hào)移1位的移位電路的信息并將該移位電路的輸出信號(hào)重新設(shè)定為表示在(a)-(d)的處理中使用的被乘數(shù)的信號(hào),并且與乘數(shù)的所有位相對(duì)應(yīng)反復(fù)進(jìn)行(a)-(e)的處理。
利用上述結(jié)構(gòu),在具有乘法運(yùn)算功能的邏輯電路的設(shè)計(jì)階段,乘數(shù)為常數(shù)時(shí),只生成把乘數(shù)中值為1的位與被數(shù)之積作為部分積的求解電路時(shí),而不生成有關(guān)乘數(shù)中值為0的位的部分積的求解電路。這樣,在生成的邏輯電路中,就可以減少求部分積的電路的個(gè)數(shù),進(jìn)而可以縮小對(duì)部分積進(jìn)行加法運(yùn)算的電路的面積。因此,能夠縮小邏輯電路的面積并很容易地實(shí)現(xiàn)乘法運(yùn)算速度的高速化。
為了達(dá)到上述目的,生成表示求乘數(shù)與被乘數(shù)之積的邏輯電路信息的邏輯電路的自動(dòng)設(shè)計(jì)方法,對(duì)應(yīng)于各個(gè)積群進(jìn)行如下的處理,而這些符號(hào)群是把作為乘數(shù)的各位和被乘數(shù)之積的多個(gè)部分積每n個(gè)分割為1群而構(gòu)成的(a)輸入屬于該部分積群的n個(gè)部分積并且生成表示將該n個(gè)部分積之間的和作為m(<n)個(gè)部分積而輸出的加法電路的信號(hào);(b)對(duì)應(yīng)于上述多個(gè)部分積的所有部分反復(fù)進(jìn)行(a)的處理后,將在(a)的處理中生成的加法電路的輸出(即所有的部分積)和上述多個(gè)部分積中未成為在(a)的處理中生成的加法電路的輸入信號(hào)的部分積重新設(shè)定為實(shí)施(a)處理的多個(gè)部分積,并且反復(fù)進(jìn)行(a)和(b)的處理。
利用上述結(jié)構(gòu),在具有乘法運(yùn)算功能的邏輯電路的設(shè)計(jì)階段,通過將無進(jìn)位傳送的加法器構(gòu)成為樹狀,就能夠生成用于將部分積進(jìn)行加法運(yùn)算的電路。因此,在生成的邏輯電路中能夠減少部分積的加法級(jí)數(shù),而不傳送各個(gè)加法中的進(jìn)位。因此,可以進(jìn)一步使乘法運(yùn)算速度提高。
為了達(dá)到上述目的,生成表示乘數(shù)與被乘數(shù)之積的求解邏輯電路信息的邏輯電路的自動(dòng)設(shè)計(jì)方法具有如下處理(a)確定兩個(gè)常數(shù)A1、A2,以使常數(shù)A1與常數(shù)A2之差A(yù)1-A2等于常數(shù)的乘數(shù)A;(b)輸入常數(shù)A1和被乘數(shù)X,生成表示將它們的部分積輸出的第1部分積生成電路的信息;(c)輸入常數(shù)A2和被乘數(shù)X,生成表示將它們的部分積輸出的第2部分積生成電路的信息;(d)輸入上述第2部分積生成電路的輸出信號(hào)并生成表示輸出該邏輯非信號(hào)的邏輯非電路的信息;(e)輸入上述第2部分積生成電路的輸出信號(hào)和上述邏輯非電路的輸出信號(hào)以及修正信號(hào),求出它們和,生成表示輸出乘數(shù)A與被數(shù)X之積的電路的信息。
另外,生成表示求乘數(shù)與被乘數(shù)之積的邏輯電路的信息的邏輯電路的自動(dòng)設(shè)計(jì)方法具有如下處理(a)確定三個(gè)常數(shù)A1、A2,A3,以使常數(shù)A1與常數(shù)A2、A3之和的差A(yù)1-(A2+A3)等于常數(shù)的乘數(shù)A;(b)判斷常數(shù)A1是否等于乘數(shù)A及常數(shù)A2、A3是否都為0;(c)常數(shù)A1等于乘數(shù)A時(shí),(c-1)輸入常數(shù)A1和被乘數(shù)X并生成表示輸出它們的部分積的第1部分積生成電路的信息,(c-2)輸入上述第1部分積生成電路的全部輸出信號(hào),求出它們的和,生成表示把這個(gè)和作為乘數(shù)A與被乘數(shù)X之積而輸出的第1部分積和電路的信息;(d)常數(shù)A1不等于乘數(shù)A并且常數(shù)A2和A3中至少一方不為0時(shí),(d-1)輸入常數(shù)A1和被乘數(shù)X并生成表示輸出它們的部分積的第2部分積生成電路的信息,(d-2)輸入常數(shù)A2、A3和被乘數(shù)X并生成表示輸出它們的部分積的第3部分積生成電路的信息,(d-3)輸入上述第3部分積生成電路的輸出信號(hào)并生成表示輸出其邏輯非信號(hào)的第1邏輯非電路的信息,(d-4)輸入上述第2部分積生成電路的輸出信號(hào)和上述第1邏輯非電路的輸出信號(hào)以及第1修正信號(hào),并生成表示將它們求和之后作為乘數(shù)A與被乘數(shù)X之積而輸出的第2部分積和電路的信息。
利用上述結(jié)構(gòu),在具有乘法運(yùn)算功能的邏輯電路的設(shè)計(jì)階段,當(dāng)常數(shù)的乘數(shù)A中值為1的位較多時(shí),通過將乘數(shù)A分割為滿足A=A1-A2的常數(shù)A1和A2(或者將常數(shù)A分割為滿足A=A1-(A2+A3)的常數(shù)A1、A2、A3),可以使常數(shù)A1和A2(或常數(shù)A1,A2,A3)中值為1的位的總數(shù)少于乘數(shù)A中的值為1的位數(shù)。因此,能夠減少上述邏輯電路中部分積的個(gè)數(shù)。
為了達(dá)到上述目的,生成表示求乘數(shù)與被乘數(shù)之積的邏輯電路的信息的邏輯電路的自動(dòng)設(shè)計(jì)方法具有如下處理(a)根據(jù)為常數(shù)的乘數(shù)A生成乘數(shù)A的邏輯非信號(hào);(b)與上述乘數(shù)A的邏輯非信號(hào)的各位對(duì)應(yīng)地,(b-1)判斷上述乘數(shù)A的邏輯非信號(hào)的該位值是否為1,(b-2)當(dāng)上述乘數(shù)A的邏輯非信號(hào)的該位值為1時(shí),生成表示把代表被乘數(shù)X的信號(hào)作為部分積而輸出的電路的信息,(b-3)在進(jìn)行(b-1)和(b-2)的處理后生成表示把代表被乘數(shù)X的信號(hào)移1位的移位電路的信息并將該移位電路的輸出信號(hào)重新設(shè)定為表示在(b-1)和(b-2)的處理中所使用的被乘數(shù)X的信號(hào),并且與上述乘數(shù)A的邏輯非信號(hào)的所有位相對(duì)應(yīng),通過反復(fù)進(jìn)行(b-1)-(b-3)的處理而生成表示部分積生成電路的信息;(c)輸入上述部分積生成電路的全部輸出信號(hào)和表示被乘數(shù)X的信號(hào)并生成表示將它們的相加結(jié)果作為指定個(gè)數(shù)的部分積而輸出的部分積加法電路的信息;(d)輸入上述部分積加法電路的輸出信號(hào)并生成表示輸出其邏輯非信號(hào)的邏輯非電路的信息;(e)根據(jù)被乘數(shù)X生成修正信號(hào);(f)輸入上述修正信號(hào)和上述邏輯非電路的輸出信號(hào)并生成表示把它們求和后作為乘數(shù)A與被乘數(shù)X之積而輸出的最終和電路的信息。
根據(jù)上述結(jié)構(gòu),在具有乘法運(yùn)算功能的邏輯電路的設(shè)計(jì)階段,當(dāng)常數(shù)的乘數(shù)A中值為1的位較多時(shí),生成乘數(shù)A的邏輯非信號(hào),從而能夠生成只對(duì)該乘數(shù)A的邏輯非信號(hào)中值為1的位求部分積的電路。這樣,便可將上述邏輯電路中求部分積的電路的個(gè)數(shù)減少到乘數(shù)A的位數(shù)的半數(shù)以下。
為了達(dá)到上述目的,邏輯電路的自動(dòng)設(shè)計(jì)系統(tǒng)具有輸入各種信息的輸入裝置、存儲(chǔ)處理中的各種信息的存儲(chǔ)裝置、生成表示求從上述輸入裝置輸入的乘數(shù)與被乘數(shù)之積的邏輯電路的信息的運(yùn)算處理裝置和輸出表示根據(jù)該運(yùn)算處理裝置而作成的邏輯電路的信息的輸出裝置。
上述運(yùn)算處理裝置進(jìn)行如下處理(a)確定兩個(gè)常數(shù)A1、A2,以使常數(shù)A1與常數(shù)A2之差A(yù)1-A2等于常數(shù)的乘數(shù)A;(b)判斷乘數(shù)或值為1的位與常數(shù)A1中值為1的位和常數(shù)A2中值為1的位數(shù)之和中哪個(gè)最小;(c)當(dāng)乘數(shù)A中值為1的位數(shù)為最小時(shí),(c-1)輸入乘數(shù)A和被乘數(shù)X并且生成表示將乘數(shù)A的各位與被乘數(shù)X之積作為部分積而輸出的第1部分積生成電路的信息,(c-2)輸入上述第1部分積生成電路的全部輸出信號(hào)并生成表示將它們求和之后作為乘數(shù)A與被乘數(shù)X之積而輸出的第1部分積和電路的信息;(d)當(dāng)常數(shù)A1中值為1的位數(shù)與A2中值為1的位數(shù)之和為最小時(shí),(d-1)輸入常數(shù)A1和被乘數(shù)X并生成表示輸出它們的部分積的第2部分積生成電路的信息,(d-2)輸入常數(shù)A2和被乘數(shù)X并生成表示輸出它們的部分積的第3部分積生成電路的信息,(d-3)輸入上述第3部分積生成電路的輸出信息并生成輸出其邏輯非信號(hào)的邏輯非電路的信息,(d-4)輸入上述第2部分積生成電路的輸出信號(hào)和上述邏輯非電路的輸出信號(hào)以及修正信號(hào)并生成表示將它們求和之后作為乘數(shù)A與被乘數(shù)X之積而輸出的第2部分積和電路的信息。
另外,具有求乘數(shù)與被乘數(shù)之積的乘法運(yùn)算功能的邏輯電路的自動(dòng)設(shè)計(jì)裝置具有輸入裝置、乘數(shù)分割裝置、第1部分積生成電路生成裝置、第2部分積生成電路生成裝置、邏輯非電路生成裝置、部分積總數(shù)判斷裝置、部分積加法電路生成裝置、修正信號(hào)生成裝置和最終和電路生成裝置。輸入裝置用于從外部輸入表示乘數(shù)A的信息、表示被乘數(shù)X的信息和表示積P的信息等各種信息;乘數(shù)分割裝置用于輸入表示乘數(shù)A的信息并確定表示常數(shù)A1的信息和表示常數(shù)A2的信息以使常數(shù)A1與常數(shù)A2之差A(yù)1-A2等于乘數(shù)A;第1部分積生成電路生成裝置用于輸入表示常數(shù)A1的信息和表示被乘數(shù)X的信息,生成表示第1部分積生成電路的信息,該第1部分積生成電路,輸入常數(shù)A1和被乘數(shù)X,并將常數(shù)A1中的值不為0的各位與被乘數(shù)X之積作為部分積而輸出;第2部分積生成電路生成裝置用于輸入表示乘數(shù)A2的信息和表示被乘數(shù)X的信息,生成表示第2部分積生成電路的信息,該第2部分積生成電路輸入常數(shù)A2和被乘數(shù)X,并將常數(shù)A2中的值不為0的各位與被乘數(shù)X之積作為部分積而輸出;邏輯非電路生成裝置用于輸入表示上述第2部分積生成電路的輸出信號(hào)的信息,生成表示邏輯非電路的信息,該邏輯非電路輸入上述第2部分積生成電路的輸出信號(hào),并輸出其邏輯非信號(hào);部分積總數(shù)判斷裝置用于判斷上述第1部分積生成電路和邏輯非電路的輸出信號(hào)的個(gè)數(shù)的總和;部分積加法電路生成裝置用于輸入表示上述第1部分積生成電路的輸出信號(hào)的信息和表示邏輯非電路的輸出信號(hào)的信息,生成表示部分積加法電路的信息,該部分積加法電路輸入上述第1部分積生成電路和邏輯非電路的全部輸出信號(hào),并將它們的加法結(jié)果作為部分積而輸出;修正信號(hào)生成裝置用于輸入表示上述邏輯非電路的輸出信號(hào)的信息或表示第2部分積生成電路的輸出信號(hào)的信息,并根據(jù)該信息表示的輸出信號(hào)的個(gè)數(shù)生成修正信號(hào);最終和電路生成裝置用于輸入表示上述部分積加法電路的輸出信號(hào)的信息和表示上述修正信號(hào)的信息以及表示積P的信息,生成表示部分積和電路的信息,該部分積和電路求上述部分積加法電路的輸出信號(hào)與上述修正信號(hào)之和,將該和作為乘數(shù)A與被乘數(shù)X之積并設(shè)定為積P,輸出該積P。
根據(jù)上述結(jié)構(gòu),通過自動(dòng)設(shè)計(jì)系統(tǒng)的運(yùn)算處理裝置進(jìn)行各種處理或者通過自動(dòng)設(shè)計(jì)裝置的各個(gè)裝置分別進(jìn)行各自的處理,可以很容易地生成能減少部分積的個(gè)數(shù)及加法運(yùn)算的邏輯級(jí)數(shù)的邏輯電路。
為了達(dá)到上述目的,對(duì)于常數(shù)A1、A2輸出滿足A=A1-A2的乘數(shù)A與被乘數(shù)X之積的乘法器具有第1部分積生成單元、第2部分積生成單元、邏輯非單元和部分積和單元。第1部分積生成單元用于輸入常數(shù)A1和被乘數(shù)X并輸出只與常數(shù)A1中值為1的各位對(duì)應(yīng)的部分積;第2部分積生成單元用于輸入常數(shù)A2和被乘數(shù)X并輸出只與常數(shù)A2中值為1的各位對(duì)應(yīng)的部分積;邏輯非單元用于輸入該第2部分積生成單元的輸出信號(hào)并輸出其邏輯非信號(hào);部分積和單元用于輸入上述第1部分積生成單元的輸出信號(hào)和上述邏輯非單元的輸出信號(hào)以及修正信號(hào)并將它們求和后作為乘數(shù)A與被乘數(shù)X之積而輸出。
另外,輸出乘數(shù)A與被乘數(shù)X之積的乘法器具有部分積生成單元、部分積加法單元、邏輯非單元和部分積和單元。部分積生成單元用于輸入乘數(shù)A的邏輯非信號(hào)和被乘數(shù)X并輸出只與上述乘數(shù)A的邏輯非信號(hào)中值為1的各位對(duì)應(yīng)的部分積;部分積加法單元用于輸入該部分積生成單元的輸出信號(hào)和被乘數(shù)X并利用1級(jí)或多級(jí)加法單元將上述部分積生成單元的輸出信號(hào)與被乘數(shù)X進(jìn)行加法運(yùn)算,然后將其加法結(jié)果作為部分積而輸出;邏輯非單元用于輸入該部分積加法單元的輸出信號(hào)并輸出其邏輯非信號(hào);部分積和單元用于輸入該邏輯非單元信號(hào)和根據(jù)被乘數(shù)X生成的可能的修正信號(hào)并將上述邏輯非單元的輸出信號(hào)與上述修正信號(hào)求和后作為乘數(shù)A與被乘數(shù)X之積而輸出。
利用上述結(jié)構(gòu),由于各部分積生成單元輸出只與滿足乘數(shù)A=A1-A2的常數(shù)A1、A2(或乘數(shù)A的邏輯非信號(hào))中值為1的各位對(duì)應(yīng)的部分積,所以,能夠減少部分積的個(gè)數(shù)。另外,部分積的加法運(yùn)算在部分積加法單元中是利用進(jìn)位保留加法器的加法樹進(jìn)行的,所以,可以提供減少邏輯元件數(shù)和邏輯級(jí)數(shù)并適合LSI化的高速乘法器。
圖1是本發(fā)明實(shí)施例的邏輯電路的自動(dòng)設(shè)計(jì)系統(tǒng)的結(jié)構(gòu)框圖。
圖2是上述自動(dòng)設(shè)計(jì)系統(tǒng)的存儲(chǔ)裝置的構(gòu)成圖。
圖3是利用上述自動(dòng)設(shè)計(jì)系統(tǒng)進(jìn)行設(shè)計(jì)處理的流程圖。
圖4是圖3中在S43進(jìn)行功能元件變換處理的詳細(xì)情況的流程圖。
圖5是圖4中在S85進(jìn)行乘法器生成處理的詳細(xì)情況的流程圖。
圖6是圖5中在S1012進(jìn)行功能元件變換處理的詳細(xì)情況的流程圖。
圖7是圖5中在S1013進(jìn)行乘法器生成處理的詳細(xì)情況的流程圖。
圖8是圖7中在S142生成使用了加法樹的乘法器的生成處理的詳細(xì)情況流程圖。
圖9是圖8中在S151進(jìn)行部分積生成電路生成處理的詳細(xì)情況的流程圖。
圖10是圖8中在S153進(jìn)行部分積加法樹生成處理的詳細(xì)情況流程圖。
圖11是圖7中在S146生成基于符號(hào)反轉(zhuǎn)的乘法器的生成處理的詳細(xì)情況流程圖。
圖12是圖7中在S148生成基于分割的乘法器的生成處理的詳細(xì)情況流程圖。
圖13是圖7中在S143進(jìn)行乘數(shù)分割處理的詳細(xì)情況流程圖。
圖14是利用本發(fā)明實(shí)施例2的邏輯電路的自動(dòng)設(shè)計(jì)系統(tǒng)進(jìn)行乘法器生成處理的流程圖。
圖15是本發(fā)明實(shí)施例3的邏輯電路的自動(dòng)設(shè)計(jì)裝置的結(jié)構(gòu)框圖。
圖16(a)-圖16(c)是上述實(shí)施例1的自動(dòng)設(shè)計(jì)系統(tǒng)的存儲(chǔ)裝置中存儲(chǔ)的電路數(shù)據(jù)的一個(gè)例子,圖16(a)是表示電路的模式圖,圖16(b)是功能記述信息的表示圖,圖16(c)是功能電路信息的表示圖。
圖17(a)-圖17(c)是上述實(shí)施例1的自動(dòng)設(shè)計(jì)系統(tǒng)的存儲(chǔ)裝置中存儲(chǔ)的電路數(shù)據(jù)的其它例子,圖17(a)是表示電路的模式圖,圖17(b)是功能記述信息的表示圖,圖17(c)是功能電路信息的表示圖。
圖18(a)-圖18(d)是表示在利用上述實(shí)施例1的自動(dòng)設(shè)計(jì)系統(tǒng)進(jìn)行的設(shè)計(jì)處理中作為功能元件的乘法器的模式圖。
圖19(a)-圖19(d)是表示在圖5的乘法器生成處理中生成的電路的電路圖。
圖20(a)是表示變換規(guī)則1的模式圖。
圖20(b)是表示變換規(guī)則1的實(shí)際表現(xiàn)形式的圖。
圖21是表示變換規(guī)則2的模式圖。
圖22是表示變換規(guī)則3的模式圖。
圖23是表示變換規(guī)則4的模式圖。
圖24是表示變換規(guī)則5的模式圖。
圖25是表示變換規(guī)則6的模式圖。
圖26是表示變換規(guī)則7的模式圖。
圖27是表示變換規(guī)則8的模式圖。
實(shí)施例1下面,參照
本發(fā)明實(shí)施例1的邏輯電路的自動(dòng)設(shè)計(jì)系統(tǒng)。
首先,先參照?qǐng)D1和圖2說明實(shí)施例1的自動(dòng)設(shè)計(jì)系統(tǒng)的硬件結(jié)構(gòu)。
圖1是實(shí)施例1的自動(dòng)設(shè)計(jì)系統(tǒng)硬件結(jié)構(gòu)一例的框圖。在圖1中,輸入裝置11用于輸入關(guān)于欲使自動(dòng)設(shè)計(jì)系統(tǒng)進(jìn)行設(shè)計(jì)的電路的功能說明信息等。作為該輸入裝置,可以使用鍵盤、鼠標(biāo)器、光筆、卡片輸入機(jī)、圖解入口系統(tǒng)等。另外,不限于由操作者直接操作來輸入,還可以使用預(yù)先把利用上述裝置輸入了的信息作為元件存儲(chǔ)起來的磁盤裝置或接收從其他裝置傳送來的信息的網(wǎng)絡(luò)裝置等。
中央處理裝置12通過進(jìn)行后面所述的各種處理,進(jìn)行邏輯合成及電路最優(yōu)選化等的電路設(shè)計(jì)處理。
輸出裝置13用于輸出作為中央處理裝置12的設(shè)計(jì)處理結(jié)果的電路信息及有關(guān)處理的各種信息等。作為輸出裝置13,可以使用圖形顯示器、字符顯示器、打印機(jī)、繪圖儀等,另外,和輸入裝置11一樣,還可以使用磁盤裝置及網(wǎng)絡(luò)裝置等。
存儲(chǔ)裝置14,例如圖2所示,具有設(shè)計(jì)處理存儲(chǔ)器21、元件庫存儲(chǔ)器22和電路數(shù)據(jù)存儲(chǔ)器23,用于存儲(chǔ)從輸入裝置11輸入的信息以及關(guān)于電路設(shè)計(jì)處理的程序和數(shù)據(jù)等。
更詳細(xì)地說來,例如,設(shè)計(jì)處理存儲(chǔ)器21中存儲(chǔ)中央處理裝置12進(jìn)行設(shè)計(jì)所需要的各種處理程序以及在這些處理中適用的變換規(guī)則信息等。
另外,在元件庫存儲(chǔ)器22中,作為元件庫存儲(chǔ)著表示功能元件、邏輯元件和實(shí)裝元件等的功能、面積、延遲時(shí)間及驅(qū)動(dòng)力等的信息。
電路數(shù)據(jù)存儲(chǔ)器23中存儲(chǔ)著從輸入裝置11輸入的功能記述信息以及通過電路設(shè)計(jì)處理生成的功能電路信息、邏輯電路信息和實(shí)裝電路信息等。
這里,上述功能記述信息主要是利用硬件記述語言等表示電路所要求功能的信息。另外,功能電路信息主要是用內(nèi)部表現(xiàn)形式表示由只定義了功能的假想功能元件構(gòu)成的電路的信息。邏輯電路信息是指表示由幾乎不依賴于制造過程及設(shè)計(jì)手法等的邏輯級(jí)的實(shí)際存在的邏輯元件構(gòu)成的電路的信息。另外,實(shí)裝電路信息是指與制造過程及設(shè)計(jì)手法等密切相關(guān)、表示分配了按特定的工藝實(shí)裝的實(shí)裝元件(例如CMOS型晶體管的標(biāo)準(zhǔn)元件、門電路陣列庫中的元件或者TTL、ECL等與制造過程有關(guān)的元件)的電路的信息。
上述功能元件的一個(gè)例子示于表2。例如,多位加法器表示將多位的2個(gè)數(shù)進(jìn)行加法運(yùn)算的功能元件。比較器表示將多位的2個(gè)數(shù)進(jìn)行比較的功能元件。多位and表示求多位的兩個(gè)信號(hào)各位邏輯積的功能元件。另外,多位inv表示求多位的信號(hào)各位邏輯非的功能元件。
另外,分割器和混合器是表示在變換處理的過程中為了簡(jiǎn)便而將多位信號(hào)進(jìn)行歸納處理及分割處理的功能元件,是在最后變換為實(shí)裝元件構(gòu)成的電路,并在所有的信號(hào)按每1位的信號(hào)進(jìn)行處理時(shí)去除的功能元件。
通常,不存在與這些功能元件直接對(duì)應(yīng)的由實(shí)裝元件構(gòu)成的電路,一旦展開成由實(shí)現(xiàn)這些功能的邏輯元件構(gòu)成的電路后,就置換為由實(shí)裝元件構(gòu)成的電路。
表2多位加法器多位減法器多位乘法器多位除法器比較器編碼器譯碼器選擇器多路轉(zhuǎn)換器計(jì)數(shù)器鎖存器觸發(fā)器緩沖器寄存器移位器混合器分割器多位and多位nand多位or多位nor多位xor多位inu另外,邏輯元件的一個(gè)例子示于表3。在表3中,例如,1位加法器表示將1位的兩個(gè)信號(hào)進(jìn)行加法運(yùn)算的元件。另外,1位and表示求兩個(gè)以上的1位信號(hào)的邏輯積的元件。
與這些邏輯元件對(duì)應(yīng)的由實(shí)裝元件構(gòu)成的電路,是預(yù)先確定的,在設(shè)計(jì)處理的最后階段進(jìn)行置換。
表31位加法器1位and1位or1位nor
1位xor1位inu下面,參照?qǐng)D16和圖17說明在電路數(shù)據(jù)存儲(chǔ)器23中存儲(chǔ)的功能說明信息及功能電路信息的具體例子。這些信息,例如作為文本數(shù)據(jù)進(jìn)行存儲(chǔ)。
例如,由圖16(a)所示的1位二輸入“與門”和1位三輸入加法器構(gòu)成的電路記述圖16(b)所示的功能說明信息。另外,該功能記述信息通過設(shè)計(jì)處理,被變換為例如圖16(c)所示的功能電路信息或邏輯電路信息。還有,當(dāng)功能記述信息與邏輯元件構(gòu)成的電路直接對(duì)應(yīng)時(shí),有時(shí)功能電路信息和邏輯電路信息沒有特別區(qū)別。
在本例中,圖16(c)的功能電路信息包括用于識(shí)別各個(gè)元件的識(shí)別名31和多對(duì)屬性代碼32與屬性值33。各對(duì)的屬性代碼32與屬性值用“”表示對(duì)應(yīng),各對(duì)用“;”進(jìn)行區(qū)別,識(shí)別名31利用“”與其它數(shù)據(jù)進(jìn)行區(qū)別。作為屬性代碼32,有“a_kind_of”、“input”、“output”等,與它們對(duì)應(yīng)的屬性值33分別表示與元件的種類、輸入信號(hào)、輸出信號(hào)有關(guān)的值。
即,gate 01元件表示是adder(加法器),它的輸入信號(hào)為sig1、sig2、sig3,輸出信號(hào)為sig4、sig5。另一方面,gate 02元件表示是and(與門),它的輸入信號(hào)為sig6、sig7,輸入信號(hào)為sig3。另外,gate 01和gate 02由信號(hào)sig3相連接。
另外,同樣,由圖17(a)所示的功能元件即乘法器51、輸入數(shù)值為130(用16進(jìn)制表示為82h)的8位常數(shù)乘數(shù)的信號(hào)線52、輸入8位的被乘數(shù)a的信號(hào)線53和輸出16位乘法結(jié)果的信號(hào)線54構(gòu)成的電路記述圖17(b)所示的功能記述信息,變換為圖17(c)所示的功能電路信息。還有,這里乘數(shù)和被乘數(shù)的區(qū)別是為了變換處理中方便而定的。
在圖17(b)的功能說明信息中,被乘數(shù)a是從0位到7位的8位信號(hào),變量b是從0位到15位的16位信號(hào),該變量b的值表示被乘數(shù)a與用8位信號(hào)表示的值為13a的乘數(shù)的積。
另外,在圖17(c)的功能電路信息中,在第1行,功能元件的識(shí)別名為gate1,該功能元件表示是multiplier(乘法器),在第2、4行的記述中,用符號(hào)i1表示的信號(hào)表示是輸入信號(hào)a,位長(zhǎng)為8位,在第3、5行的說明中,用符號(hào)i2表示的信號(hào)表示是輸入信號(hào),是位長(zhǎng)為8位、數(shù)值為130的常數(shù),在第6行的說明中,用符號(hào)0表示的信號(hào)表示是輸出信號(hào)b,位長(zhǎng)為16位。
下面,參照
用上述構(gòu)成的自動(dòng)設(shè)計(jì)系統(tǒng)進(jìn)行的電路設(shè)計(jì)處理。還有,在以下的說明中,為了簡(jiǎn)單起見,與信息種類中功能記述信息、功能電路信息或邏輯電路信息的區(qū)別無關(guān),利用圖16(a)及圖17(a)那樣的模式圖表示信息的內(nèi)容。另外,在不混同的范圍內(nèi),根據(jù)需要,乘數(shù)和被乘數(shù)的術(shù)語,也用來表示它們的數(shù)值或者分別表示乘數(shù)的信號(hào)及被乘數(shù)的信號(hào),電路的術(shù)語也用來表示電路的信息。
另外,在以下的說明中,使用如下表記。將從數(shù)X的最末位開始計(jì)數(shù)由第a位到第b位(a>b)間的位構(gòu)成的(a-b+1)位的數(shù)表記為X(a∶b)。數(shù)X的第a位的值表為X(a)。
并且,將函數(shù)按如下定義。對(duì)于用k位長(zhǎng)表示的信號(hào)Y,將值為1的位數(shù)定義為posibits(Y),將值為0的位數(shù)定義為negabits(Y)。另外,從最末位開始計(jì)數(shù),將數(shù)值為1的位數(shù)在P位(P<K)之前的位數(shù)定義為effbiwidth(Y,P),由于求這些函數(shù)值的處理很容易實(shí)現(xiàn),故省略詳細(xì)的說明。
圖3是表示利用實(shí)施例1的自動(dòng)設(shè)計(jì)系統(tǒng)進(jìn)行的電路設(shè)計(jì)處理的主程序的流程圖。
如圖3所示,S41是從輸入裝置11輸入電路中功能設(shè)計(jì)者根據(jù)功能規(guī)格作成的功能記述信息并將其存儲(chǔ)到電路數(shù)據(jù)存儲(chǔ)器23內(nèi)的處理。另外,不限于功能記述信息,例如,也可以接收比較簡(jiǎn)單的電路部分的功能電路信息及邏輯電路信息等的輸入。
S42解釋在S41輸入的功能記述信息、生成用內(nèi)部表現(xiàn)形式表示由功能元件構(gòu)成的具有功能記述信息表示功能的電路的功能電路信息,并將其存儲(chǔ)到電路數(shù)據(jù)存儲(chǔ)器23內(nèi)。
S43將在功能電路信息中包含的全部功能元件變換為邏輯元件,并作為邏輯電路信息存儲(chǔ)到電路數(shù)據(jù)存儲(chǔ)器23內(nèi)。另外,關(guān)于包含乘法器的電路,也可以在功能元件級(jí)進(jìn)行電路的最優(yōu)化。關(guān)于該S43的詳細(xì)的處理內(nèi)容后面進(jìn)行介紹。
S44將邏輯電路信息中包含的全部邏輯元件利用基于指定的變換規(guī)則信息的元件變換處理分配實(shí)裝元件并作為實(shí)裝電路信息存儲(chǔ)到電路數(shù)據(jù)存儲(chǔ)器23內(nèi)。另外,S44是將邏輯元件分配為實(shí)裝元件的過程,在邏輯元件級(jí)也可以進(jìn)行電路的最優(yōu)化。
S45根據(jù)實(shí)裝電路信息等生成電路圖及網(wǎng)絡(luò)表格并輸出到輸出裝置13。這里,上述網(wǎng)絡(luò)表格例如是表示由實(shí)裝元件構(gòu)成的電路中實(shí)裝元件連接關(guān)系的信息。
還有關(guān)于在S42、44進(jìn)行的處理,分別與特開平3-15984號(hào)公報(bào)及美國(guó)專利USP5043914號(hào)公報(bào)登載的一樣,所以,省略詳細(xì)的說明。
下面,參照?qǐng)D4說明在圖3的S43進(jìn)行的功能元件變換處理的詳細(xì)情況。
圖4是表示S43的功能元件變換處理的詳細(xì)情況的流程圖。如圖4所示,在S81,選擇1個(gè)包含在功能電路信息中的功能元件。
在S82、83,分別判斷所選擇的功能元件是加法器還是乘法器,如果是加法器,就轉(zhuǎn)入S84,如果是乘法器,就轉(zhuǎn)入S85,另外,如果既不是加法器也不是乘法器,就進(jìn)入S86。
在S84-86,分別將所選擇的功能元件變換為具有至少由其它功能元件和邏輯元件中的一方構(gòu)成的相同功能的電路,生成該電路信息,然后轉(zhuǎn)入S87。
在S87,判斷電路中是否包含功能元件,如果包含功能元件,就返回到S81,反復(fù)進(jìn)行S81-86的處理;如果未包含功能元件,即,如果變換為僅由邏輯元件構(gòu)成的功能元件,即,如果變換為僅由邏輯元件構(gòu)成的電路,則結(jié)束S43的功能元件變換處理,返回主程序中。
這里,在S84-86,有時(shí)不一定通過一次處理就變換為僅由邏輯元件構(gòu)成的電路,而是暫時(shí)變換為含有其它功能元件的電路。這時(shí),在S87判斷為含有功能元件,通過遞歸反復(fù)進(jìn)行同樣的變換處理,最終變換為僅由邏輯元件構(gòu)成的電路。具體說來,例如,多位加法器按照S84的處理,通過反復(fù)向由位數(shù)更少的加法器(功能元件)和1位加法器(邏輯元件)構(gòu)成的電路進(jìn)行變換,最后變換為僅由1位加法器構(gòu)成的電路。另外,減法器和除法器等在S86變換為由加法器等功能元件和邏輯元件構(gòu)成的電路,然后,加法器在S84變換為1位加法器。這樣,通過進(jìn)行遞歸變換處理,可以很容易地使各個(gè)處理簡(jiǎn)單化。
在S83判定為“是”時(shí),在S85進(jìn)行變換的乘法器例如具有圖18(a)-(d)所示的功能。圖18(a)-(d)的乘法器都具有把用m位長(zhǎng)的信號(hào)表示的乘數(shù)與用n位長(zhǎng)的信號(hào)表示的被乘數(shù)進(jìn)行乘法運(yùn)算,并輸出用n+m位長(zhǎng)的信號(hào)表示的積P的功能。但是,輸入的乘數(shù)和被乘數(shù)有常數(shù)或變數(shù)之區(qū)別,圖18(a)的乘法器,乘數(shù)和被乘數(shù)都是常數(shù);圖18(c)的乘法器,乘數(shù)是常數(shù)而被乘數(shù)是變數(shù);圖18(d)的乘法器,乘數(shù)和被乘數(shù)都是變數(shù)。
另外,在以下說明中,為了簡(jiǎn)單起見,以常數(shù)A為正數(shù)進(jìn)行說明。通過生成使常數(shù)A的符號(hào)反轉(zhuǎn)的A′的乘法電路和將其乘法結(jié)果的符號(hào)反轉(zhuǎn)的電路的電路信息,很容易與常數(shù)A為負(fù)數(shù)的情況進(jìn)行對(duì)應(yīng)。另外,對(duì)變數(shù)X能取正或負(fù)的值作說明,而限于正數(shù)時(shí),在后面所述的用于位長(zhǎng)組合的符號(hào)擴(kuò)展中,可以進(jìn)行0擴(kuò)展。
下面,參照?qǐng)D5、圖18和圖19說明在圖4的S85進(jìn)行的乘法器生成處理的詳細(xì)情況。該乘法器生成處理,是將乘法器變換為由其它功能元件(乘法器、加法器等)及邏輯元件構(gòu)成的電路。
圖5是表示S85的乘法器生成處理的詳細(xì)情況的流程圖,如圖5所示,在S1001,判斷乘數(shù)和被乘數(shù)是否均為常數(shù),如圖18(a)所示,如果都為常數(shù),則轉(zhuǎn)入S1002,在S1002計(jì)算乘積,并變換為發(fā)生用2進(jìn)制數(shù)表示該值的信號(hào)的電路。具體說來,對(duì)于被乘數(shù)A=4,乘數(shù)B=5的情況,如圖19(a)所示,變換為將表示數(shù)值4×5=20(用2進(jìn)制表示為“10100”)的信號(hào)作為P(4∶0)輸出,將表示數(shù)值0的信號(hào)作為P(n+m-1∶5)輸出的電路。
另外,在S1001判定乘數(shù)和被乘數(shù)中至少一方為變數(shù)時(shí),則轉(zhuǎn)入S1003,在S1003判斷被乘數(shù)是否為常數(shù),如果被乘數(shù)為常數(shù),則轉(zhuǎn)入S1004,在S1004將乘數(shù)與被乘數(shù)調(diào)換后,轉(zhuǎn)入S1005。另外,如果被乘數(shù)不為常數(shù),則直接轉(zhuǎn)入S1005。即,對(duì)于圖18(b)所示的乘法器的情況,變換為圖18(c)所示的乘法器,至少使被乘數(shù)總是變數(shù)。
在S1005、1007、1009,判斷乘數(shù)是否為特定的常數(shù)即0、1或2的冪。如果乘數(shù)為0,如圖19(b)所示,變換為輸出表示所有位的值均為0的信號(hào)的電路(S1006),如果乘數(shù)為1,則如圖19(c)所示,變換為將表示被乘數(shù)的值的信號(hào)直接作為P(n-1∶0)而輸出、同時(shí)將數(shù)值為X(n-1)的信號(hào)作為P(n+m-1∶n)(符號(hào)擴(kuò)展后)而輸出的電路(S1008)。另外,乘數(shù)為2的冪例如8(=23)時(shí),如圖19(d)所示,變換為將表示被乘數(shù)的值的信號(hào)作為P(n+2∶3)而輸出、同時(shí)將數(shù)值為0的信號(hào)作為P(2∶0)、將各位的值為X(n-1)的信號(hào)作為P(n+m-1∶n+3)(符號(hào)擴(kuò)展后)而輸出的電路(S1010)。另外,變數(shù)X限于正數(shù)時(shí),如前所述,可以不將上位的位進(jìn)行符號(hào)擴(kuò)展,而只進(jìn)行0擴(kuò)展。
在S1011,判斷乘數(shù)是否為1位或2位以上,如果乘數(shù)為1位,則轉(zhuǎn)入S1012,在S1012,例如,如圖20所示,進(jìn)行將乘法器131變換為由與門電路132-135構(gòu)成的電路的處理。另一方面,如果乘數(shù)為2位以上,則轉(zhuǎn)入S1013,在S1013,進(jìn)行變換為由其它功能元件(位長(zhǎng)更小的乘法器及加法器等)和邏輯元件中至少一方構(gòu)成的多位乘法器的處理。在S1011判定乘數(shù)為1位的限于乘數(shù)為變數(shù)的一種情況。因?yàn)?,如果乘?shù)為1位的常數(shù),則在S1005、1007將判斷為“YES”。另外,判定乘數(shù)為2位以上的包含乘數(shù)為變數(shù)和常數(shù)的兩種情況。
這里,在S1000、1008、1010、1012進(jìn)行的電路的變換,是根據(jù)預(yù)先存儲(chǔ)在設(shè)計(jì)處理存儲(chǔ)器21內(nèi)的變換規(guī)則信息進(jìn)行的。
下面,參照?qǐng)D6和圖20說明在圖5的S1012進(jìn)行的功能元件變換處理的詳細(xì)情況。在該功能元件變換處理中,使用圖20(b)所示的變換規(guī)則1,利用圖6所示的處理進(jìn)行變換。
圖6是表示S1012的功能元件變換處理的詳細(xì)情況的流程圖,如圖6所示,首先,在S71,將在圖20(b)的變換規(guī)則信息中“==>”之前所示的條件節(jié)與原來的電路信息進(jìn)行比較,如果滿足變換適用條件,就使信號(hào)線的名稱等對(duì)應(yīng)配合。
在S72,從電路數(shù)據(jù)存儲(chǔ)器23中消去表示原來的功能元件即乘法器的電路信息。
在S73,根據(jù)表示圖20(b)的變換規(guī)則信息中“==>”之后所示的結(jié)果節(jié)中的功能元件或邏輯元件的電路信息和上述對(duì)應(yīng)配合,生成表示進(jìn)行變換的電路的信息并存儲(chǔ)到電路數(shù)據(jù)存儲(chǔ)器23內(nèi)。
在S74,判斷在上述結(jié)果節(jié)中的是否遺留著未處理的功能元件及邏輯元件,如果遺留著,就返回到S73;如果未遺留,S1012的功能元件變換處理就結(jié)束。
關(guān)于利用變換規(guī)則1能變換為與原來的乘法器等效的電路的證明,將與其它變換規(guī)則的證明一起在后文示出。但是,關(guān)于根據(jù)這種變換規(guī)則進(jìn)行的具體的元件變換處理,已在美國(guó)專利USP5043914號(hào)公報(bào)上予以登載,故省略詳細(xì)的說明。另外,變換規(guī)則信息雖然實(shí)際上是用圖20(b)所示的內(nèi)部表現(xiàn)形式表示的,但是,在以下的說明中,為了簡(jiǎn)單起見,原則上利用圖20(a)所示的模式圖進(jìn)行說明。
下面,參照?qǐng)D7說明在圖5的S1013進(jìn)行的乘法器生成處理的詳細(xì)情況。在該乘法器生成處理中,大致地講,是如下面那樣把求部分積與部分積和電路的邏輯級(jí)數(shù)減少。即,乘數(shù)為常數(shù)時(shí),為了減少部分積數(shù),在乘數(shù)或取乘數(shù)所有位的邏輯非的數(shù)或其差等于乘數(shù)的兩個(gè)數(shù)中,變換為只對(duì)數(shù)值為1的位求部分積的電路。另外,不論乘數(shù)為常數(shù)或變數(shù),為了減少求部分積和電路的邏輯級(jí)數(shù),變換為使用減少了進(jìn)位傳遞的加法樹的電路。
圖7是表示S1013的乘法器生成處理的詳細(xì)情況的流程圖,如圖7所示,首先,在S141,判斷乘數(shù)是否為變數(shù),如果乘數(shù)為變數(shù),因是變數(shù)之間的乘法運(yùn)算,所以,轉(zhuǎn)入S142,在S142,進(jìn)行生成利用加法樹的乘法器處理。另外,當(dāng)判定乘數(shù)為常數(shù)A時(shí),則轉(zhuǎn)入S143,在S143將乘數(shù)A分割為差值等于A的兩個(gè)常數(shù)A1和A2。
S142是應(yīng)用圖21所示的變換規(guī)則2,將變數(shù)的乘數(shù)Y或常數(shù)的乘數(shù)A與被乘數(shù)X的乘法變換為至少由部分積加法樹、加法器及部分積生成電路三者中之一構(gòu)成的電路的乘法器生成處理。
S143是確定A1和A2,以使其滿足A=A1-A2并且使posibits(A1)+posibits(A2)的值為最小的處理。具體說來,在本實(shí)施例中,就是按圖13所示的流程圖進(jìn)行處理。后面再作詳細(xì)的說明。
在S144,判斷乘數(shù)A中的值為1的位數(shù)是否大于A1中的值為1的位數(shù)與A2中的值為1的位數(shù)之和,即,判斷posibits(A)>posibits(A1)+posibits(A2)的關(guān)系是否成立。在該判斷中,當(dāng)posibits(A)>posibits(A1)+posibits(A2)的關(guān)系成立時(shí),轉(zhuǎn)入S147,在S147進(jìn)一步進(jìn)行判斷處理。當(dāng)posibits(A)>posibits(A1)+posibits(A2)的關(guān)系不成立,轉(zhuǎn)入S145,在S145進(jìn)行其它的判斷處理。
在S145,判斷乘數(shù)A中值為1的位數(shù)是否大于數(shù)值為0的位數(shù)與2之和,即判斷posibits(A)>m/2+1的關(guān)系是否成立。當(dāng)posibits(A)>m/2+1的關(guān)系成立時(shí),轉(zhuǎn)入S146,在S146,進(jìn)行基于符號(hào)反轉(zhuǎn)的乘法器生成處理。當(dāng)posibits(A)>m/2+1的關(guān)系不成立時(shí),轉(zhuǎn)入S142,在S142,進(jìn)行基于加法樹的乘法器生成處理。
S146是應(yīng)用圖26所示的變換規(guī)則7,將取乘數(shù)A的全位邏輯非的值作為乘數(shù)A0,并進(jìn)行變換為由求該乘數(shù)A0與被乘數(shù)X之積的部分積生成電路、部分積加法樹、它們的輸出的邏輯非電路和最終和電路構(gòu)成的電路的處理。這里,通過取乘數(shù)A的邏輯非,可使posibits(A0)的值小于posibits(A)的值,所以,可使數(shù)值為1的位數(shù)小于原來的乘數(shù)A,同時(shí)生成只對(duì)數(shù)值為1的位求部分積的電路,從而可以減少求部分積電路的個(gè)數(shù)和求部分積和電路的邏輯級(jí)數(shù)。
在S147,判斷A1中值為1的位數(shù)與A2中值為1的位數(shù)之和是否大于乘數(shù)A中值為0的位數(shù)與2之和,即,判斷posibits(A1)+posibits(A2)>m-posibits(A)+2的關(guān)系是否成立。在該判斷中,當(dāng)posibits(A1)+posibits(A2)>m-posibits(A)+2的關(guān)系成立時(shí),轉(zhuǎn)入S146,在S146,進(jìn)行基于符號(hào)反轉(zhuǎn)的乘法器生成處理。當(dāng)posibits(A1)+posibits(A2)>m-posibits(A)+2的關(guān)系不成立時(shí),轉(zhuǎn)入S148,在S148進(jìn)行基于分割的乘法器生成處理。
S148是應(yīng)用圖27所示的變換規(guī)則8,變換為由求上述常數(shù)A1與被乘數(shù)X之積的部分積生成電路、求上述常數(shù)A2與被乘數(shù)X之積的部分積生成電路、其輸出的邏輯非電路、部分積加法樹及最終和電路構(gòu)成的電路的處理。這時(shí),由于posibits(A1)的值與posibits(A2)的值之和小于posibits(A)的值,所以,數(shù)值為1的位數(shù)小于原來的乘數(shù)A,同時(shí)生成只對(duì)數(shù)值為1的位求部分積的電路,從而可以減少求部分積的電路的個(gè)數(shù)和求部分積和的電路的邏輯級(jí)數(shù)。
圖7的S144、145、147的判斷處理,在本實(shí)施例中是三個(gè)判斷處理,但是,也可以代之進(jìn)行posibits(A)、posibits(A1)+posibits(A2)及posibits(A)+2(即m+2-posibits(A))之間大小關(guān)系的判斷處理。這時(shí),根據(jù)判斷結(jié)果,當(dāng)posibits(A)最小(并且也包括與其它相等的情況)時(shí),轉(zhuǎn)入S142;當(dāng)posibits(A1)+posibits(A2)為最小(并且也包括與negabits(A)+2相等的情況)時(shí),轉(zhuǎn)入S148;當(dāng)negabits(A)+2為最小(只單獨(dú)為最小時(shí)),轉(zhuǎn)入S146。
下面,參照?qǐng)D8和圖21說明在圖7的S142進(jìn)行的使用了加法樹的乘法器生成處理的詳細(xì)情況。
圖21是表示在S142的乘法器生成處理中使用的變換規(guī)則2的模式圖,如圖21所示,變換規(guī)則2是表示將使位長(zhǎng)為m的變數(shù)的乘數(shù)Y或位長(zhǎng)為m的常數(shù)的乘數(shù)A與位長(zhǎng)為n的被乘數(shù)X進(jìn)行乘法運(yùn)算而輸出位長(zhǎng)為L(zhǎng)的積P的乘法器191變換為由使乘數(shù)Y或A與被乘數(shù)X進(jìn)行乘法運(yùn)算而求部分積P1、…、Pk的部分積生成電路192、將這些部分積P1、…、Pk進(jìn)行加法運(yùn)算的部分積加法樹193及最終和電路構(gòu)成的電路。但是,上述最終和電路可以只對(duì)部分積加法樹193的輸出Q1、Q2重復(fù)位以下的位進(jìn)行加法運(yùn)算,所以,可以由使部分積Q2的下位L-1位移1位(即2倍)了的信號(hào)R與部分積Q1進(jìn)行加法運(yùn)算的加法器194構(gòu)成。
另外,變換規(guī)則2特別是部分積的個(gè)數(shù)為2個(gè)(即,K=2或-posibits(A)=2)時(shí),是表示將乘法器191變換為由使乘數(shù)A與被乘數(shù)X進(jìn)行乘法運(yùn)算求部分積P1、P2的部分積生成電路195和將這些部分積P1、P2進(jìn)行加法運(yùn)算的最終和電路196構(gòu)成的電路。
變換規(guī)則2在部分積的個(gè)數(shù)為1個(gè)(即,K=1或posibits(A)=1)時(shí)表示將乘法器191變換為使乘數(shù)A與被乘數(shù)X進(jìn)行乘法運(yùn)算求部分積P的部分積生成電路197。
更詳細(xì)地說,部分積生成電路192、195、197就是將乘數(shù)Y(m-1∶0)或A(m-1∶0)與被乘數(shù)X(n-1∶0)進(jìn)行乘法運(yùn)算,作為部分積輸出K個(gè)L位長(zhǎng)的信號(hào)P1(L-1∶0)、……、Pk(L-1∶0)的電路。其中,部分積生成電路197是輸出L位長(zhǎng)的信號(hào)P(L-1∶0)的電路。
另外,部分積加法樹193是輸入K個(gè)部分積P1(L-1∶0)、…、Pk(L-1∶0)并對(duì)它們進(jìn)行加法運(yùn)算,最后將該加法運(yùn)算結(jié)果作為部分和輸出L位長(zhǎng)的信號(hào)Q1(L-1∶0)和作為部分進(jìn)位輸出L位長(zhǎng)的信號(hào)Q2(L-1∶0)的電路。
加法器194是將信號(hào)Q1(L-1∶0)與上位n-1位為信號(hào)Q(L-2∶0)、最下位的位為0的信號(hào)Q2(L-1∶0)(即R(L-1∶1)=Q2(L-2∶0),R(0)=0)進(jìn)行加法運(yùn)算并輸出其和即L位長(zhǎng)的信號(hào)P(L-1∶0)的電路。
加法器196是將信號(hào)P1(L-1∶0)與P2(L-1∶0)進(jìn)行加法運(yùn)算并輸出其和即L位長(zhǎng)的信號(hào)P(L-1∶0)的電路。
在圖21中,加法器194、196都是先行進(jìn)位加法器(CLA),但是,也可以是其它加法器。
圖8是表示在S142使用了加法樹的乘法器生成處理的詳細(xì)情況的流程圖,如圖8所示,S151應(yīng)用圖22所示的變換規(guī)則3,進(jìn)行生成根據(jù)被乘數(shù)X與變數(shù)的乘數(shù)Y或常數(shù)的乘數(shù)A求部分積的電路的處理。
S152判斷在S151求出的部分積的個(gè)數(shù)是1個(gè)還是2個(gè)或者更多,即,是判斷乘數(shù)是常數(shù)并且posibits(A)=1還是乘數(shù)為常數(shù)并且posibits(A)=2或這兩者以外的三種情況中的哪一種的判斷處理。根據(jù)該判斷,如果部分積的個(gè)數(shù)為1(即,乘數(shù)為常數(shù)并且posibits(A)=1),就轉(zhuǎn)入S155,在S155將在上述處理中生成了電路的乘法器從電路數(shù)據(jù)消除。另外,如果部分積的個(gè)數(shù)為2個(gè)(即,乘數(shù)為常數(shù)并且posibits(A)=2)就轉(zhuǎn)入S154,在S154生成將這2個(gè)部分積進(jìn)行加法運(yùn)算求最終和的電路。進(jìn)而如果部分積的個(gè)數(shù)大于3個(gè)(即,乘數(shù)為變數(shù)或乘數(shù)為常數(shù)并且posibits(A)>2),就轉(zhuǎn)入S153,在S153生成將這些部分積進(jìn)行加法運(yùn)算的部分積加法樹。
S153進(jìn)行生成圖21所示的部分積加法樹193的處理,該加法樹使用圖23所示的變換規(guī)則4,減少了由多級(jí)加法器產(chǎn)生的進(jìn)位傳遞。
S154進(jìn)行生成表示圖21所示的加法器194及196的電路信息并將其存儲(chǔ)到電路數(shù)據(jù)存儲(chǔ)器23內(nèi)的處理。具體地說,就是生成將部分積加法樹193的兩個(gè)輸出Q1、Q2的位對(duì)齊進(jìn)行加法運(yùn)算的加法器194(即,將Q2向上位移1位使最下位成為0后與Q1進(jìn)行加法運(yùn)算的加法器)或者將部分積生成電路195的兩個(gè)輸出P1、P2進(jìn)行加法運(yùn)算的加法器196的處理。另外,在本實(shí)施例中,加法器194和196都是先行進(jìn)位加法器,但是,也可以是其它加法器。
S155是將表示與圖21的乘法器191對(duì)應(yīng)的乘法器的電路信息從電路數(shù)據(jù)存儲(chǔ)器23中消除的處理。
下面,參照?qǐng)D9和圖22說明在圖8的S151進(jìn)行的部分積生成電路生成處理的詳細(xì)情況。
圖22是表示在S151的部分積生成電路生成處理中使用的變換規(guī)則3的模式圖,如圖22所示,變換規(guī)則3在乘數(shù)為變數(shù)時(shí),表示將使位長(zhǎng)為m-k的變數(shù)的乘數(shù)Y(m-1∶k)與位長(zhǎng)為n的被乘數(shù)X(n-1∶0)進(jìn)行乘法運(yùn)算并輸出位長(zhǎng)為L(zhǎng)的部分積P1、P2、……的部分積生成電路161,變換為由輸入乘數(shù)的1位Y(K)和被乘數(shù)X并在Y(K)=1時(shí)輸出X(n-1∶0)在Y(K)=0時(shí)輸出n位值為0的信號(hào)的選擇電路162、在該輸出信號(hào)R的上位合成各位的值為0的信號(hào)(即,進(jìn)行0擴(kuò)展)使從下位把L位的信號(hào)作為P1(L-1∶0)的電路和使位長(zhǎng)為m-k-1的乘數(shù)Y(m-1∶k+1)與位長(zhǎng)為n+1的被乘數(shù)X(n-1∶0)×2(即,將X(m-1∶0)的下位的1位合成數(shù)值為0的信號(hào)的n+1位的信號(hào))進(jìn)行乘法運(yùn)算并輸出位長(zhǎng)為L(zhǎng)的部分積P2、……的部分積生成電路163構(gòu)成的電路。(其中,k是滿足0≤k≤m的整數(shù))。但是,當(dāng)k=m-1時(shí)不生成部分積生成電路163,這時(shí)的電路由選擇電路162和在其輸出信號(hào)R的上位合成各位的值為0的信號(hào),從下位把L位的信號(hào)為P1(L-1∶0)的電路構(gòu)成。另外,在圖22中,作為選擇電路162,是變換為1位信號(hào)Y(K)與n位被乘數(shù)X(n-1∶0)的邏輯積電路,然而,也可以是利用1位信號(hào)Y(K)選擇n位被乘數(shù)X(n-1∶0)或0信號(hào)的選擇器。
另外,變換規(guī)則3在乘數(shù)為常數(shù)時(shí),表示將使位長(zhǎng)為m-k的常數(shù)的乘數(shù)A(m-1∶k)與位長(zhǎng)為n的被乘數(shù)X(n-1∶0)進(jìn)行乘法運(yùn)算并輸出位長(zhǎng)為L(zhǎng)的部分積P1、P2、……的部分積生成電路161變換為由在乘數(shù)的1位A(K)為1時(shí)將n位的信號(hào)X(n-1∶0)的上位合成為各位值為0的信號(hào)(即,進(jìn)行0擴(kuò)展),從下位把L位信號(hào)為P1(L-1∶0)的電路和使位長(zhǎng)為m-k-1的乘數(shù)A(m-1∶k+1)與位長(zhǎng)為n+1的被乘數(shù)X(n-1∶0)×2(即,將X(n-1∶0)的下位的1位合成為值為0的信號(hào)的n+1位的信號(hào))進(jìn)行乘法運(yùn)算并輸出位長(zhǎng)為L(zhǎng)的部分積P2……的部分積生成電路164構(gòu)成的電路,如果乘數(shù)的1位A(K)為0時(shí),則表示變換為僅由部分積生成電路164構(gòu)成的電路。(其中,k是滿足0≤k≤m)的整數(shù))。但是,當(dāng)k=m-1時(shí)不生成部分積生成電路164,這時(shí)的電路由選擇電路162和將其輸出信號(hào)R的上位合成為各位的值為0的信號(hào)、并從下位把L位信號(hào)作為P1(L-1∶0)的電路構(gòu)成。
利用變換規(guī)則3生成的部分積生成電路163及164,通過反復(fù)應(yīng)用相同的變換規(guī)則3進(jìn)行遞歸變換直到k=m-1。
圖9是表示S151的部分積生成電路生成處理詳細(xì)情況的流程圖,如圖9所示,S121是將表示乘數(shù)Y或A的比特位置的變數(shù)K設(shè)定為初始值等于0的處理。即,設(shè)定K=0。
S122是判斷乘數(shù)是否為變數(shù)Y的判斷處理。如果乘數(shù)為變數(shù)Y,則轉(zhuǎn)入S124,在S124進(jìn)行選擇電路生成處理,如果乘數(shù)為常數(shù)A,則轉(zhuǎn)入S123,在S123進(jìn)行其它的判斷處理。
S123是判斷乘數(shù)A的1位A(K)的值是否為1的判斷處理。如果A(K)=1,就轉(zhuǎn)入S125,在S125進(jìn)行信號(hào)的0擴(kuò)展處理,如果A(K)=0,就轉(zhuǎn)入S126,在S126進(jìn)行比特位置變數(shù)K的計(jì)數(shù)升值處理。
S124是生成表示圖22所示的1位信號(hào)Y(K)與n位的被乘數(shù)X(n-1∶0)的邏輯積電路162的電路信息并存儲(chǔ)到電路數(shù)據(jù)存儲(chǔ)器23內(nèi)的選擇電路生成處理。
S125如圖22所示,進(jìn)行生成表示進(jìn)行與乘數(shù)的1位Y(K)或A(K)對(duì)應(yīng)的部分積X(n-1∶0)×Y(K)(即R)或X(n-1∶0)的0位擴(kuò)展、從下位把L位信號(hào)作為P1(L-1∶0)的電路的電路信息,并存儲(chǔ)到電路數(shù)據(jù)存儲(chǔ)器23內(nèi)的處理。
S126是使比特位置變數(shù)K的值增加1即進(jìn)行計(jì)數(shù)升值的處理。
S127是為了進(jìn)行遞歸變換處理而進(jìn)行與圖22所示的下一個(gè)部分積生成電路163或164的設(shè)定相當(dāng)?shù)奶幚?。具體地說,就是將具有2倍的n位的被乘數(shù)X的值X×2的n+1位的信號(hào)重新設(shè)定為被乘數(shù)X,并使其位長(zhǎng)n的值增加1的處理。
S128是判斷比特位置變數(shù)K是否小于乘數(shù)的位長(zhǎng)m的判斷處理。如果K小于m(即,如果K<m),就轉(zhuǎn)入S122,對(duì)在S126及127更新的被乘數(shù)X及其位長(zhǎng)n和比特位置變數(shù)K反復(fù)進(jìn)行S122-127的處理。如果K等于m,就結(jié)束S151的部分積生成電路生成處理。
下面,參照?qǐng)D10、圖23、圖24和圖25說明在圖8的S153進(jìn)行的部分積加法樹生成處理的詳細(xì)情況。
圖23是表示在S153的部分積加法樹生成處理中使用的變換規(guī)則4的模式圖,如圖23所示,在部分積的個(gè)數(shù)大于3(即K>3)時(shí),變換規(guī)則4表示將對(duì)K個(gè)部分積P0、……、Pk-1進(jìn)行加法運(yùn)算并輸出部分和Q0及部分進(jìn)位Q1的部分積加法樹181變換為由對(duì)K個(gè)部分積P0、……、Pk-1進(jìn)行加法運(yùn)算的單級(jí)加法器182和將加法器182的輸出作為輸入的部分積加法樹183構(gòu)成的電路。
另外,當(dāng)部分積的個(gè)數(shù)等于3(即K=3)時(shí),變換規(guī)則4表示將部分積加法樹181變換為對(duì)三個(gè)部分積P0、P1、P3進(jìn)行加法運(yùn)算并輸出部分和Q0和部分進(jìn)位Q1的保留進(jìn)位加法器(CSA)184。
還有利用變換規(guī)則4生成的部分積加法樹183,表示通過反復(fù)應(yīng)用相同的變換規(guī)則4進(jìn)行遞歸變換直到K=3。
圖24是表示為生成圖23的單級(jí)加法器182的變換規(guī)則5的模式圖,在圖24中,K表示初始的部分積的個(gè)數(shù),其中,I表示在此之前處理過的部分積的個(gè)數(shù),J表示在此之前的處理中生成的作為下一級(jí)輸入的部分積的個(gè)數(shù)(這里,I、J、K為滿足0≤J≤I<K的整數(shù))。
當(dāng)I小于K-3(即I<K-3)時(shí),變換規(guī)則5表示變換為對(duì)三個(gè)部分積P1、P1+1、P1+2進(jìn)行加法運(yùn)算并輸出部分和QJ及部分進(jìn)位QJ+1的保留進(jìn)位加法器(CSA)192和對(duì)部分積PI+3、…、PK-1進(jìn)行加法運(yùn)算的單級(jí)加法器193。
另外,當(dāng)I等于K-3(即,I=K-3)時(shí),變換規(guī)則5表示變換為對(duì)三個(gè)部分積P1、P1+1、P1+2進(jìn)行加法運(yùn)算并輸出部分和QJ及部分進(jìn)位QJ+1的保留進(jìn)位加法器(CSA)194。
當(dāng)I等于K-2(即I=K-2)時(shí),變換規(guī)則5表示變換為將PK-2、PK-1分別作為n位的信號(hào)QJ、QJ+1而輸出的電路;當(dāng)I等于K-1(即,I=K-1)時(shí),變換規(guī)則5表示變換為將PK-1作為n位信號(hào)QJ+1而輸出的電路。
但是,由于保留進(jìn)位加法器(CSA)192或194的輸出的位一致,所以,部分進(jìn)位QJ+1是在保留進(jìn)位加法器(CSA)192或194的輸出R的下位合成數(shù)值為0的1位信號(hào)后從下位開始的n位信號(hào)。
圖10是表示S153的部分積加法樹生成處理的詳細(xì)情況的流程圖,如圖10所示,S170是將部分積的個(gè)數(shù)設(shè)定為K的處理。具體地說,在圖21的例子中,當(dāng)乘數(shù)為變量Y時(shí),設(shè)定K為等于乘數(shù)的位長(zhǎng)m的值;當(dāng)乘數(shù)為常數(shù)A時(shí),設(shè)定K為等于posibits(A)的值。
S171是設(shè)定變數(shù)I及J的初始值為0(即令I(lǐng)=0,J=0)的處理。
S172-177是進(jìn)行生成圖23所示的單級(jí)加法器182的處理。
S172生成電路信息并將其存儲(chǔ)到電路數(shù)據(jù)存儲(chǔ)器23中,該電路信息表示包含對(duì)圖24所示的三個(gè)部分積PI、PI+1、PI+2進(jìn)行加法運(yùn)算并輸出部分和QJ和部分進(jìn)位QJ+1的保留進(jìn)位加法器(CSA)192或194的電路。
保留進(jìn)位加法器(CSA)192或194利用圖25所示的變換規(guī)則6逐位展開成全加器(full adder)202或204,可以生成由n個(gè)全加器構(gòu)成的電路,這是很容易理解的。
S173是將I及J的值分別更新的處理。具體地說,就是分別將I的值更新為I+3、將J的值更新為J+2的處理。
S174是判斷I是否小于K-3的判斷處理。如果I小于K-3,就轉(zhuǎn)入S172,對(duì)在S173更新了的I、J反復(fù)進(jìn)行S172、173的處理;如果I大于K-3(即I>K-3),就轉(zhuǎn)入S175,進(jìn)行下一個(gè)判斷。
S175是判斷I是否等于K的判斷處理。如果I等于K(即,I=K),變轉(zhuǎn)入S178,在S178進(jìn)行其它的判斷處理;而如果I不等于K,就轉(zhuǎn)入S176,在S176進(jìn)行將P1與QJ連接的處理。
S176是生成表示P1與QJ連接的電路信息并存儲(chǔ)到電路數(shù)據(jù)存儲(chǔ)器23內(nèi)的處理(其中,I=K-1或I=K-2)。
S177是分別使I及J的值計(jì)數(shù)升值的處理。具體地說,就是分別將I的值更新為I+1、將J的值更新為J+1的處理。一旦本處理結(jié)束,則返回到S175對(duì)更新了的I、J進(jìn)行判斷處理。
S178是判斷J是否等于2的判斷處理。如果J等于2(即J=2),則S153的部分積加法樹生成處理即告結(jié)束;如果J不等2,則轉(zhuǎn)入S179,以后,進(jìn)行部分積加法樹的遞歸處理。
S179是為了進(jìn)行遞歸處理而與圖23所示的下一個(gè)部分積加法樹183的設(shè)定相當(dāng)?shù)奶幚?。具體地說,就是將圖23的單級(jí)加法器182的輸出Q0、……、QJ-1設(shè)定為成為部分積加法樹183的輸入的部分積P0、……、PJ-1。
S180是更新K的處理。即,是將成為圖23所示的部分積加法樹183的輸入的部分積的個(gè)數(shù)J設(shè)定為K的處理。
對(duì)在S179和180更新了的K及部分積P0、……、PK-1反復(fù)進(jìn)行S171-177的處理。
這樣,通過生成加法樹,可以將無進(jìn)位傳遞的加法器連接成平衡良好的分層結(jié)構(gòu),從而構(gòu)成求部分積和的電路,所以,能夠減少邏輯級(jí)數(shù)。
下面,參照?qǐng)D11和圖26說明在圖7的S146進(jìn)行的基于符合反轉(zhuǎn)的乘法器生成處理的詳細(xì)情況。在該乘法器生成處理中,為求乘數(shù)A與被乘數(shù)X之積,需要修正乘數(shù)A的邏輯非常數(shù)A0與被乘數(shù)X之積。
圖26是表示變換規(guī)則7的模式圖,該變換規(guī)則7用于變換為包含在S146的乘法器生成處理中進(jìn)行上述修正的電路在內(nèi)的電路,如圖26所示,變換規(guī)則7表示把乘法器221變換為由部分積生成電路222、部分積加法樹223、邏輯非電路224、225以及最終和電路構(gòu)成的電路,其中,乘法器221使位長(zhǎng)為m的常數(shù)的乘數(shù)A與位長(zhǎng)為n的被乘數(shù)X進(jìn)行乘法運(yùn)算并輸出位長(zhǎng)為L(zhǎng)的積P,部分積生成電路222使乘數(shù)A的邏輯非A0與被乘數(shù)X進(jìn)行乘法運(yùn)算以求部分積P0、……、PK-1、部分積加法樹223將這些部分積P0、……、PK-1與被乘數(shù)X進(jìn)行加法運(yùn)算,邏輯非電路224及225分別取部分積加法樹223輸出的部分和Q0及部分進(jìn)位Q1的L位邏輯非,最終和電路將邏輯非電路224、225的輸出R1及R2與數(shù)值X×2m+2的信號(hào)低位L位信號(hào)R3進(jìn)行加法運(yùn)算。但是,為了使與部分和Q0的位一致,部分進(jìn)位Q1是將部分積加法樹223的部分進(jìn)位輸出的低位L-1位移1位(即2倍)后的信號(hào)。另外,上述最終和電路在圖26的例子中由保留進(jìn)位加法器(CSA)226和先行進(jìn)位加法器(CLA)227構(gòu)成。在圖26中,為了求乘數(shù)A的邏輯非A0,插入了邏輯非電路220,但是,也可以預(yù)先通過計(jì)算求A0。
圖11是表示在圖7的S146基于符號(hào)反轉(zhuǎn)的乘法器生成處理的詳細(xì)情況的流程圖。如圖11所示,S211是通過計(jì)算求乘數(shù)A的邏輯非并令其值為m位的常數(shù)A0的邏輯非信號(hào)作成處理。具體地說,就是將對(duì)乘數(shù)A的各位進(jìn)行邏輯非運(yùn)算后的結(jié)果作為A0。即,對(duì)于i=0~m-1的各i,進(jìn)行A0(i)=*A(i)的運(yùn)算。其中,*A(i)表示1位A(i)的邏輯非運(yùn)算。
S212是和在圖8的S151進(jìn)行的部分積生成電路生成處理一樣的處理,是生成圖26所示的部分積生成電路222的處理。即,是應(yīng)用圖22所示的變換規(guī)則3,生成根據(jù)被乘數(shù)X與乘數(shù)A的邏輯非常數(shù)A0求部分積的電路的處理。
S213是和在圖8的S153進(jìn)行的部分積加法樹生成處理一樣的處理,是生成圖26所示的部分積加法樹223的處理。即,是應(yīng)用圖23所示的變換規(guī)則4,以由數(shù)級(jí)加法器構(gòu)成的、進(jìn)位傳遞少的加法樹生成圖26所示的部分積加法樹223的處理。
S214是生成表示以圖26所示的部分積加法樹223的輸出作為輸入的邏輯非和224及225的電路信息并存儲(chǔ)到電路數(shù)據(jù)存儲(chǔ)器23內(nèi)的處理。在本實(shí)施例中,邏輯非電路224及225分別是L位的反相器。
S215是從被乘數(shù)X作成圖26所示的修正信號(hào)R3的處理,具體地說,L位修正信號(hào)R3可以作為根據(jù)計(jì)算式X×2m+2求出的信號(hào)的低位L位信號(hào)而作成。
S216是生成表示將圖26所示的邏輯非電路224及225的輸出R1、R2與修正信號(hào)R3進(jìn)行加法運(yùn)算的最終和電路的電路信息并存儲(chǔ)到電路數(shù)據(jù)存儲(chǔ)器23內(nèi)的處理。具體地說,在圖26的例子中,就是生成將R1、R2與修正信號(hào)R3進(jìn)行加法運(yùn)算的保留進(jìn)位加法器(CSA)226和將其輸出的部分和與部分進(jìn)位進(jìn)行加法運(yùn)算的先行進(jìn)位加法器(CLA)227的處理。其中,在先行進(jìn)位加法器(CLA)227中,將保留進(jìn)位加法器(CSA)226的輸出即部分和與部分進(jìn)位進(jìn)行加法運(yùn)算時(shí),使這兩個(gè)輸出的位對(duì)準(zhǔn)后再進(jìn)行加法運(yùn)算(即,使部分進(jìn)位信號(hào)向高位移1位,而最低位的位補(bǔ)0后再與部分和進(jìn)行加法運(yùn)算)。
另外,在本實(shí)施例中,使用保留進(jìn)位加法器(CSA)226和先行進(jìn)位加法器(CLA)227構(gòu)成最終和電路,而用其它的結(jié)構(gòu)也不會(huì)有什么障礙。在S215中,取L位修正信號(hào)為R3=X×2m+2,但是,也可以取為R3=X×2m+1或R3=X×2m,而在先行進(jìn)位加法器(CLA)227中分別再加進(jìn)1或2。其中,作為1的加進(jìn)方法,是使先行進(jìn)位加法器(CLA)227的進(jìn)位輸入為1,或者使保留進(jìn)位加法器(CSA)226的部分進(jìn)位信號(hào)向高位移1位而使最低位的位為1后與部分和利用先行進(jìn)位加法器(CLA)227進(jìn)行加法運(yùn)算。另外,作為2的加進(jìn)方法,是使保留進(jìn)位加法器(CSA)226的部分進(jìn)位信號(hào)向高位移1位而使最低位的位成為1后與部分和利用使進(jìn)位輸入為1的先行進(jìn)位加法器(CLA)進(jìn)行加法運(yùn)算。
S217是從電路數(shù)據(jù)存儲(chǔ)器23內(nèi)消除表示與圖26的乘法器221對(duì)應(yīng)的乘法器的電路信息的處理。
下面,參照?qǐng)D12和圖27說明在圖7的S148進(jìn)行的基于分割的乘法器生成處理的詳細(xì)情況。
圖27是表示在S148的利用分割進(jìn)行的乘法器生成處理中所使用的變換規(guī)則8的模式圖。如圖27所示,變換規(guī)則8表示把乘法器241變換為由部分積生成電路242、部分積生成電路243、邏輯非電路244、245、部分積加法樹246及最終和電路構(gòu)成的電路。其中,乘法器241將使位長(zhǎng)為m的常數(shù)乘數(shù)A與位長(zhǎng)為n的被乘數(shù)X進(jìn)行乘法運(yùn)算并輸出位長(zhǎng)為L(zhǎng)的積P,部分積生成電路242在posibits(A1)+posibits(A2)>2時(shí)使在圖7的S143中確定的A1與被乘數(shù)X進(jìn)行乘法運(yùn)算,求部分積P0、……、Pk-1;部分積生成電路243使在S143中確定的A2與被乘數(shù)X進(jìn)行乘法運(yùn)算,求部分積Q0、……、QH-1;L位的邏輯非電路244、……、245分別取上述部分積Q0、……、QH-1的邏輯非;部分積加法樹246將上述邏輯非電路244、……、245的輸出R0、……、RH-1與部分積P0、……、PK-1進(jìn)行加法運(yùn)算;最終和電路將上述部分積加法樹246的輸出即部分和Q0及部分進(jìn)位Q1與修正數(shù)H進(jìn)行加法運(yùn)算。
但是,這里示出了H=2的情況,由于修正數(shù)H為2,所以,上述最終和電路表示變換為由把部分積加法樹246的輸出即部分和Q0與對(duì)于部分進(jìn)位Q1數(shù)值為計(jì)算式Q1×2+1的信號(hào)的低位L位信號(hào)進(jìn)位為1后進(jìn)行加法運(yùn)算的先行進(jìn)位加法器(CLA)247構(gòu)成的電路。這里,與輸入到先行進(jìn)位加法器(CLA)247的部分進(jìn)位Q1對(duì)應(yīng)的信號(hào)是為了與部分和Q0的位對(duì)準(zhǔn)而使部分積加法樹246的部分進(jìn)位輸出Q1的低位L-1位移1位(即2倍)后并使最低位的值為1的信號(hào)。特別是,當(dāng)修正數(shù)H為1時(shí),上述最終和電路更簡(jiǎn)單地變換為由先行進(jìn)位加法器(CLA)構(gòu)成的電路(即,與圖27的先行進(jìn)位加法器(CLA)240一樣的電路),這里,先行進(jìn)位加法器使進(jìn)位輸入為1后對(duì)部分積加法樹246的輸出即部分和Q0及部分進(jìn)位Q1進(jìn)行加法運(yùn)算。
對(duì)于包括修正數(shù)H大于3的情況在內(nèi)的更一般的情況,將修正數(shù)H追加進(jìn)部分積加法樹246的輸入中進(jìn)行加法運(yùn)算,最終和電路就可以變換為由部分積加法樹的輸出即部分和Q0與部分進(jìn)Q1進(jìn)行加法運(yùn)算的先行進(jìn)位加法器(CLA)構(gòu)成的電路。
另外,當(dāng)posibits(A1)+posibits(A2)=2時(shí),變換規(guī)則8表示變換為由使在S143確定的A1與被乘數(shù)X進(jìn)行乘法運(yùn)算而求部分積P0的部分積生成電路248、使在S143確定的A2與被乘數(shù)X進(jìn)行乘法運(yùn)算而求部分積Q0的部分積生成電路249、取該部分積Q0的邏輯非的L位邏輯非電路250以及使邏輯非電路250的輸出R0與部分積積P0在進(jìn)位輸入為1后進(jìn)行加法運(yùn)算的先行進(jìn)位加法器(CLA)240構(gòu)成的電路。
在圖27的例子中,最終和電路是先行進(jìn)位加法器(CLA)247、240,但是,也可以是其它加法器。
圖12是表示在S148進(jìn)行的基于分割的乘法器生成處理的詳細(xì)情況的流程圖。如圖12所示,S231是與在圖8的S151進(jìn)行的部分積生成電路生成處理一樣的處理,是進(jìn)行生成使在S143確定的常數(shù)A1取代乘數(shù)A與被乘數(shù)X進(jìn)行乘法運(yùn)算的如圖27所示的部分積生成電路242的處理。即,是應(yīng)用圖22所示的變換規(guī)則3生成根據(jù)被乘數(shù)X與上述常數(shù)A1求部分積的電路的處理。
S232是與S231一樣的處理,是生成把在S143確定的常數(shù)A1取代乘數(shù)A與被乘數(shù)X進(jìn)行乘法運(yùn)算的如圖27所示的部分積生成電路243的處理。即,是應(yīng)用圖22所示的變換規(guī)則3生成根據(jù)被乘數(shù)X與上述常數(shù)A2求部分積的電路的處理。
S233是生成表示將圖27所示的部分積生成電路243的輸出Q0、……、QH-1作為輸入的邏輯非電路244、……、245的電路信息并存儲(chǔ)到電路數(shù)據(jù)存儲(chǔ)器23內(nèi)的處理。在本實(shí)施例中,邏輯非電路244、……、245分別是L位的反相器。
S234是判斷posibits(A1)+posibits(A2)是否等于2(即,是否posibits(A1)+posibits(A2)=2)的判斷處理。如果posibits(A1)+posibits(A2)等于2,就轉(zhuǎn)入S236,在S236進(jìn)行最終和電路的生成;而如果posibits(A1)+posibits(A2)不等于2,就轉(zhuǎn)入S235,在S235進(jìn)行部分積加法樹的生成。
S235是與在圖8的S153進(jìn)行的部分積加法樹生成處理一樣的處理,是對(duì)于在S231、233中生成的電路的輸出生成圖27所示的部分積加法樹246的處理。即,是應(yīng)用圖23所示的變換規(guī)則4,作為由數(shù)級(jí)加法器構(gòu)成的進(jìn)位傳遞少的加法樹而生成將圖27所示的部分積P0、……、PK-1與R0、……、RH-1進(jìn)行加法運(yùn)算的部分積加法樹246的處理。
S236是生成表示圖27所示的使部分積加法樹246輸出的部分和Q0及部分進(jìn)位Q1與修正數(shù)H進(jìn)行加法運(yùn)算或者使部分積生成電路248的輸出P0和邏輯非電路250的輸出R0以及修正數(shù)1進(jìn)行加法運(yùn)算的最終和電路的電路信息,并存儲(chǔ)到電路數(shù)據(jù)存儲(chǔ)器23內(nèi)的處理。
具體地說,在圖27的例子(即,H=2的情況)中,就是對(duì)部分積加法樹246輸出的部分和Q0及部分進(jìn)位Q1生成使數(shù)值為計(jì)算式Q1×2+1的信號(hào)的低位L位信號(hào)在進(jìn)位輸入為1后進(jìn)行加法運(yùn)算的先行進(jìn)位加法器(CLA)247的處理。其中,作為先行進(jìn)位加法器(CLA)247中修正數(shù)1的加進(jìn)方法,是使先行進(jìn)位加法器(CLA)的進(jìn)位輸入為1或者使部分進(jìn)位信號(hào)Q1向高位移1位而使最低位成為1后部分利用先行進(jìn)位加法器(CLA)進(jìn)行加法運(yùn)算。作為修正數(shù)2的加進(jìn)方法,是將部分進(jìn)位信號(hào)Q1向高位移1位而使最低位為1后與部分和利用先行進(jìn)位加法器(CLA)247使進(jìn)位輸入為1后進(jìn)行加法運(yùn)算。另外,當(dāng)posibits(A1)+posibits(A2)=2時(shí),進(jìn)行生成將部分積生成電路248的輸出P0與邏輯非電路250的輸出R0在把進(jìn)位輸入取1后進(jìn)行加法運(yùn)算的先行進(jìn)位加法器(CLA)240的處理。
另外,在本實(shí)施例中,在最終和電路中利用先行進(jìn)位加法器(CLA)247、240對(duì)修正數(shù)H進(jìn)行加法運(yùn)算,如果是這一結(jié)構(gòu)就只能與H小于2的情況對(duì)應(yīng)。然而,只要能夠?qū)⑸鲜霾糠趾蚎0與部分進(jìn)位Q1以及修正數(shù)H進(jìn)行加法運(yùn)算,最終和電路就可以是其它結(jié)構(gòu)。進(jìn)而,如圖27中所說明的那樣,也可以不在最終和電路中對(duì)修正數(shù)H進(jìn)行加法運(yùn)算,而在S235生成對(duì)修正數(shù)H也進(jìn)行加法運(yùn)算的部分積加法樹。
S237是從電路數(shù)據(jù)存儲(chǔ)器23內(nèi)消去表示與圖27的乘法器241對(duì)應(yīng)的乘法器的電路信息的處理。
下面,參照?qǐng)D13說明在圖7的S143進(jìn)行的乘數(shù)A的分割處理即確定A1、A2的處理的詳細(xì)情況。
圖13是表示在S143中確定A1、A2的處理的詳細(xì)情況的流程圖,如圖13所示,在S251,對(duì)比特位置變數(shù)i和候選比特位置集合U設(shè)定初始值。即,將i設(shè)定為0,將U設(shè)定為空集合(即設(shè)定為φ)。
S252是判斷乘數(shù)A的各4位A(i+3∶i)是否等于二進(jìn)制數(shù)“1101”的判斷處理。如果相等,就轉(zhuǎn)入S253,在S253對(duì)候選比特位置集合U進(jìn)行設(shè)定;如果不相等,就轉(zhuǎn)入S254,在S254進(jìn)行下一個(gè)判斷處理。
S253是將元素i+1和i+2向候選比特位置集合U內(nèi)進(jìn)行追加的處理。即,將U和{i+1,i+2}的和集合UU{i+1,i+2}重新設(shè)定為U。
S254是判斷乘數(shù)A的各4位A(i+3∶i)是否等于二進(jìn)制數(shù)“1101”的判斷處理。如果相等,就轉(zhuǎn)入S255,在S255進(jìn)行對(duì)候選比特位置集合U的設(shè)定;如果不相等,就轉(zhuǎn)入S256,在S256進(jìn)行下一個(gè)判斷處理。
S255是將元素i+2向候選比特位置集合U內(nèi)追加的處理。即,將U與{i+2}的和集合UU{i+2}重新設(shè)定為U。
S256是對(duì)乘數(shù)A的所有位進(jìn)行判斷的處理,即判斷比特位置變數(shù)i是否小于m-3的判斷處理。如果i小于m-3,就轉(zhuǎn)入S257,在S257使比特位置變數(shù)i進(jìn)行計(jì)數(shù)升值;如果i大于m-3,就轉(zhuǎn)入S258,在S258進(jìn)行其它的初始值設(shè)定處理。
S257是為了處理乘數(shù)A的下一位而將比特位置變數(shù)i更新為i+1的值的處理。在本處理結(jié)束之后,返回到S252,對(duì)更新了的i反復(fù)進(jìn)行S252-255的處理。
S258是對(duì)A1、A2及計(jì)數(shù)j設(shè)定初始值的處理。即,分別設(shè)定A1為乘數(shù)A,A2為0,j為1。
S259是確定從候選比特位置集合U中選擇的j個(gè)元素構(gòu)成的集合V以使posibits(A+Σ2α)為最小的處理。這里,α表示集合V的任意元素,Σ2α表示對(duì)所有的元素α求總和,是將對(duì)于集合V中每個(gè)元素α而求得的2α進(jìn)行相加的運(yùn)算。
S260是對(duì)在S259確定的集合V進(jìn)行posibits(A+Σ2α)+j+δ與posibits(A1)+posibits(A2)的大小關(guān)系的判斷的判斷處理。其中,δ在posibits(A2)=2時(shí)為1,在其他情況下為0。當(dāng)posibits(A2)=2時(shí),在圖12的說明中所述的修正數(shù)H大于3,所以,在圖27的部分積加法樹246中,應(yīng)將該δ加到修正數(shù)中。在S260的判斷中,如果posibits(A+Σ2α)+j+δ小于posibits(A1)+posibits(A2),就轉(zhuǎn)入S261,在S261進(jìn)行A1、A2的更新處理;如果posibits(A+Σ2α)+j+δ大于posibits(A1)+posibits(A2),就轉(zhuǎn)入S262,在S262進(jìn)行終止判斷。
S261是對(duì)A1重新設(shè)定為A+Σ2α的值、對(duì)A2設(shè)定為Σ2α的值的更新處理。
S262是判斷集合V是否等于候選比特位置集合U(即V=U)的判斷處理。如果相等,S143的確定A1、A2的處理即告結(jié)束;如果不相等,就轉(zhuǎn)入S263,在S263使計(jì)數(shù)值j進(jìn)行計(jì)數(shù)升值。
S263是將計(jì)數(shù)值j更新為j+1的值的處理。本處理結(jié)束之后,返回到S259,對(duì)更新的j反復(fù)進(jìn)行S259-S261的處理。
另外,在本實(shí)施例的圖13的例子中,在達(dá)到V=U之前,對(duì)所有的j進(jìn)行處理,但是,為了簡(jiǎn)單起見,在S260的判斷處理中,如果posibits(A+Σ2α)+j+δ大于posibits(A1)+posibits(A2),也可以不轉(zhuǎn)入S262而告結(jié)束。并且,即使將S262的判斷處理代之以判斷是否j=2的處理,由于posibits(A1)+posibits(A2)小于posibits(A),所以,也有減少部分積的個(gè)數(shù)的效果。
下面,用數(shù)學(xué)式證明能夠根據(jù)上述變換規(guī)則1-8變換為與原來的乘法器等效的電路,而由于變換規(guī)則2-6是不言自明的,所以此處割愛不予討論。另外,不失一般性,按L=m+n進(jìn)行說明。
變換規(guī)則1(圖20)在圖20中,132是求1位被乘數(shù)X(n-1)與1位變數(shù)的乘數(shù)Y(0)的邏輯積P(n-1)的與門電路,133是求1位被乘數(shù)X(n-2)與1位變數(shù)的乘數(shù)Y(0)邏輯積P(n-2)的與門電路,……、134是求1位被乘數(shù)X(1)與1位變數(shù)的乘數(shù)Y(0)的邏輯積P(1)的與門電路,135是求1位被乘數(shù)X(0)與1位變數(shù)的乘數(shù)Y(0)的邏輯積P(0)的與門電路。
因Y(0)=0或1,所以,有P= {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是變換規(guī)則7。
以下,對(duì)多位數(shù)Z的所有位的邏輯非數(shù)用*Z表示。
對(duì)于常數(shù)A,下式成立,-A=*A+1-2m( )/() *A+1=2m-A另外,對(duì)于n位的數(shù)X,〔X的2的補(bǔ)數(shù)〕=*X+1=-X于是,有P=X·A=X·(2m-*A-1)=X·2m-X·(*A+1)=X·2m+〔X·(*A+)的2的補(bǔ)數(shù)〕(3)另外,因Q0+Q1=X·(*A+)(4)所以,-X·(*A+1)=-(Q0+Q1)=-Q0-Q1即,〔X·(*A+1)的2的補(bǔ)數(shù)〕=〔Q0的2的補(bǔ)數(shù)〕+〔Q1的2的補(bǔ)數(shù)〕于是,(3)式成為P=X·A=X·2m+〔Q0的2的補(bǔ)數(shù)〕+〔Q1的2的補(bǔ)數(shù)〕
=X·2m+*Q0+1+*Q1+1=*Q0+*Q1+X·2m+2=*Q0+*Q1+(X·2m+2) …(5)利用表示數(shù)值2的m位信號(hào)與表示被乘數(shù)X的信號(hào)的合成,求出(5)式的第3項(xiàng)X·2m+2以作為信號(hào)R3。
(5)式的第1項(xiàng)*Q0和第2項(xiàng)*Q1分別是部分積加法樹223的輸出即部分和Q0及部分進(jìn)位Q1的邏輯非、而Q0和Q1如圖26所示的那樣進(jìn)行位對(duì)準(zhǔn)。因此,利用由保留進(jìn)位法器(CSA)226和先行進(jìn)位加法器(CLA)227構(gòu)成的最終和電路對(duì)(5)式的第1項(xiàng)到第3項(xiàng)進(jìn)行加法運(yùn)算,可以求出積P。
另外,根據(jù)(4)式,因Q0+Q1=X·*A+X (6)所以,(6)式右邊第1項(xiàng)中的*A是圖16的A0,右邊第1項(xiàng)X·*A可以利用部分積生成電路222求出作為部分積P0、……、PK-1。另外,(6)式左邊的Q0、Q1,通過利用部分積加法樹223對(duì)部分積P0、……、PK-1與右邊第2項(xiàng)的X進(jìn)行加法運(yùn)算而求出以作為部分和Q0和部分進(jìn)位Q1。但是,在部分積加法樹223中對(duì)(6)式右邊第2項(xiàng)的X進(jìn)行加法運(yùn)算時(shí),輸入X的0擴(kuò)展信號(hào)。
圖27是變換規(guī)則8。
以下,用*Z表示對(duì)多位數(shù)Z的所有位的邏輯非數(shù)。
對(duì)于常數(shù)A,A=A1-A2另外,通常,對(duì)于n位的數(shù)X,〔X的2的補(bǔ)數(shù)〕=*X+1=-X于是,有P=X·A=X·(A1-A2)=X·A1-X·A2 (7)另外,X·A1= 因X·A2= 所以,(7)式成為P=X·A=Σi=0K-1Pi-Σi=0H-1Oi]]>=Σi=0K-1Pi+Σi=0H-1(-0i)]]>
(8)式的第1項(xiàng)的各Pi是m位信號(hào)A1與被乘數(shù)X的部分積,用部分積生成電路242求出。另外,第2項(xiàng)的各*Qi是m位信號(hào)A2與被乘數(shù)X的部分積,用部分積生成電路243和邏輯非電路244、……、245求出。通常,通過利用部分積加法樹246和最終和電路247對(duì)這些部分積Pi(其中,i=0,……,K-1)和*Qi(其中,i=0,……,H-1)以及第3項(xiàng)的H進(jìn)行加法運(yùn)算,可以求出積P。
其次,如圖27的例子所示,當(dāng)H小于2(H>0)時(shí),因Q0+Q1·2=Σi=0K-1Pi+Σi=0H-1(Oik)]]>所以,P=X·A=Q0+Q1·2+H
=Q0+(Q1·2+1)+(H-1) (9)(9)式中的第1項(xiàng)Q0和第2項(xiàng)的Q1·2,可以作為對(duì)部分積Pi(其中,i=0,……,K-1)和*Qi(其中,i=0,……,H-1)進(jìn)行加法運(yùn)算的部分積加法樹246的部分積Q0與部分進(jìn)位Q1而求出。另外,第2項(xiàng)Q1·2+1,如圖27所示,是在部分進(jìn)位Q1的低位合成數(shù)值為1的1位信號(hào)后的信號(hào)。其中,未考慮最高位(即,第m+n位)Q1(m+n-1)。此外,在最終和電路247中對(duì)第1項(xiàng)Q0、第2項(xiàng)Q1·2+1和第3項(xiàng)H-1進(jìn)行加法運(yùn)算,可以求出積P。
還有,變換規(guī)則7可以捕捉變換規(guī)則8的特別情況。即,對(duì)于常數(shù),下式成立-A=*A+1-2m←→*A=2m-(*A+1)在變換規(guī)則8中,相當(dāng)于A1=2m,并且A2=(*A+1)的情況。
因此,有P=X·A=X·(2m-*A-1)=X·2m-X·(*A+1)=X·2m+〔X·(*A+)的2的補(bǔ)數(shù)〕
而對(duì)于n位的數(shù)X,則為〔X的2的補(bǔ)數(shù)〕=*X+1=-X另外,因K·A*=Σi=0K-1Pi]]>所以,有P=X·A=X·(2m-*A-1)=X·2m-X·*A-X
(10)式的第1項(xiàng)、第2項(xiàng)、第3項(xiàng)是部分積加法樹的輸入。因此,利用最終和電路對(duì)上述部分積加法樹的輸出與第4項(xiàng)K+1進(jìn)行加法運(yùn)算可以求出積P。
另外,(10)式的第1項(xiàng)是將被乘數(shù)X移m位后的結(jié)果,第2項(xiàng)是將乘數(shù)A的邏輯非*A和被乘數(shù)X作為輸入的部分積生成電路的輸出,第3項(xiàng)是將被乘數(shù)X作為輸入的邏輯非電路的輸出。
進(jìn)而,變換規(guī)則2也可以捕捉變換規(guī)則8的特別情況。即,通過使A1=A,A2=0,利用變換規(guī)則8可以很容易導(dǎo)出變換規(guī)則2。
如上所述,在實(shí)施例1的邏輯電路的自動(dòng)設(shè)計(jì)系統(tǒng)中,輸入乘法器的乘數(shù)為常數(shù)A時(shí),如果乘數(shù)A中值為1的位的總數(shù)大于3時(shí),就生成求與乘數(shù)A中值為1的位對(duì)應(yīng)的部分積的電路,并用保留進(jìn)位加法器的加法樹構(gòu)成求部分積和的電路。這樣,便可減少加法運(yùn)算的邏輯級(jí)數(shù),同時(shí),還可以使乘法運(yùn)算速度提高。
另外,如果乘數(shù)A中值為1的位的總數(shù)小于2,則構(gòu)成只對(duì)值為1的位求部分積的電路。這樣,便可減少部分積數(shù),從而可以削減電路面積。
還有,如果乘數(shù)A中的值為1的位的總數(shù)較大,則構(gòu)成根據(jù)乘數(shù)A的邏輯非數(shù)和被乘數(shù)求部分積的電路、將該部分積與修正信號(hào)進(jìn)行加法運(yùn)算的保留進(jìn)位加法器的加法樹以及對(duì)它們進(jìn)行修正的電路。這樣,便可減少部分積數(shù)的削減電路面積。
或者當(dāng)乘數(shù)A中的值為1的位的總數(shù)較大時(shí),則對(duì)于其差值等于乘數(shù)A并且數(shù)值為1的位的總數(shù)為最小的常數(shù)A1、A2(其中,A=A1-A2),構(gòu)成根據(jù)常數(shù)A1和被乘數(shù)求部分積的電路及根據(jù)常數(shù)A2和被乘數(shù)求部分積的電路、求對(duì)常數(shù)A2的部分積的邏輯非的電路、將對(duì)A1的部分積與對(duì)A2的部分積的邏輯非進(jìn)行加法運(yùn)算的保留進(jìn)位加法器的加法樹和對(duì)它們進(jìn)行修正的電路。這樣,便可減少部分積數(shù)和削減電路面積。
實(shí)施例2下面,說明本發(fā)明實(shí)施例2的邏輯電路的自動(dòng)設(shè)計(jì)系統(tǒng)。
實(shí)施例2的自動(dòng)設(shè)計(jì)系統(tǒng),具有和實(shí)施例1相同的硬件結(jié)構(gòu),在其電路設(shè)計(jì)處理中,進(jìn)行圖14所示的乘法器生成處理,取代實(shí)施例1中圖7的乘法器生成處理。
圖14是表示在圖5的S1013進(jìn)行的乘法器生成處理的詳細(xì)情況的流程圖,該乘法器生成處理,是擴(kuò)展了將實(shí)施例1中圖12的基于分割的乘法器生成處理的處理。在該乘法器生成處理中,總的講,如下所述,減少了求部分積數(shù)及部分積和的電路的邏輯級(jí)數(shù)。即,當(dāng)乘數(shù)為常數(shù)時(shí),為了減少部分積數(shù),對(duì)于差值等于乘數(shù)的兩個(gè)常數(shù),變換為只對(duì)數(shù)值為1的位求部分積的電路。另外,對(duì)于不論乘數(shù)為常數(shù)還是變數(shù)的情況,為了減少求部分積和的電路的邏輯級(jí)數(shù),變換為使用了減少進(jìn)位傳遞的加法樹的電路。
如圖14所示,首先,S270是和圖7的S141一樣的判斷處理,如果乘數(shù)為變數(shù),由于是變數(shù)之間的乘數(shù)運(yùn)算,所以,轉(zhuǎn)入S271,在S271進(jìn)行兩個(gè)常數(shù)A1、A2的設(shè)定。如果乘數(shù)為常數(shù)A,就轉(zhuǎn)入S272,在S272將乘數(shù)A分割為其差值等于A的兩個(gè)常數(shù)A1、A2。
S271是設(shè)定兩個(gè)常數(shù)A1、A2的處理,具體地說,就是分別設(shè)定A1為常數(shù)A,A2為0(即,A1=A,A2=0)的處理。本處理結(jié)束之后,轉(zhuǎn)入S273。
S272是和圖7中S143一樣的處理,是按照?qǐng)D13所示的流程圖確定A1和A2以使其滿足A=A1-A2并且posibits(A1)+posibits(A2)的值為最小的處理。作為特別情況,也包括與變換規(guī)則2對(duì)應(yīng)的A1=A,A2=0以及與變換規(guī)則7對(duì)應(yīng)的A1=2m、A2=(*A+1)。
S273是和圖12的S231一樣的處理,取代乘數(shù)A,對(duì)在S271或S272確定的A1進(jìn)行用圖9說明過的部分積生成電路生成處理。即,是應(yīng)用圖22所示的變換規(guī)則3生成從上述A1和被乘數(shù)X求部分積的電路的處理。
S274進(jìn)行常數(shù)A2是否等于0的判斷。如果A2等于0(即,A2=0),就省去S275和S276對(duì)A2的處理,轉(zhuǎn)入S277;如果A2不等于0,就轉(zhuǎn)入S275,在S275進(jìn)行生成對(duì)A2的部分積生成電路的處理。
S275是與圖12的S232一樣的處理,取代乘數(shù)A,對(duì)在S271或272確定的常數(shù)A2進(jìn)行用圖9說明過的部分積生成電路的生成處理。即,是應(yīng)用圖22所示的變換規(guī)則3生成從被乘數(shù)X與上述常數(shù)A2求部分積的電路的處理。
S276是與圖12的S233一樣的處理,是生成表示將在S275生成的部分積生成電路的輸出作為輸入的邏輯非電路的電路信息并將其存儲(chǔ)到電路數(shù)據(jù)存儲(chǔ)器23內(nèi)的處理。在本例中,邏輯非電路是反相器。
S277是判斷對(duì)A1的部分積的個(gè)數(shù)與對(duì)于A2的部分積的個(gè)數(shù)之和即posibits(A1)+posibits(A2)等于1還是等于2或大于2的判斷處理。如果部分積總數(shù)等于1(即,posibits(A1)+posibits(A2)=1),就轉(zhuǎn)入S280,在S280進(jìn)行最終的乘法器的消除處理;如果部分積總數(shù)等于2(即,posibits(A1)+posibits(A2)=2),就轉(zhuǎn)入S279,在S279進(jìn)行最終和電路的生成;如果部分積總數(shù)大于2,就轉(zhuǎn)入S278,在S278進(jìn)行部分積加法樹的生成。其中,當(dāng)A1為變數(shù)(即,乘數(shù)為變數(shù))時(shí),對(duì)A1的部分積的個(gè)數(shù)等于其位長(zhǎng)m。
S278是與圖12的S235一樣的處理,是對(duì)在S273、276生成的電路的輸出進(jìn)行用圖10說明過的部分積加法樹生成處理,以及生成部分積加法樹的處理。即,是應(yīng)用圖23所示的變換規(guī)則4生成由數(shù)級(jí)加法器構(gòu)成的進(jìn)位傳遞少的加法樹的處理。
S279是與圖8的S154或圖12的S236一樣的處理,該處理生成表示將由部分積加法樹輸出的部分和Q0與部分進(jìn)位Q1及修正數(shù)H進(jìn)行加法運(yùn)算、或者將部分積生成電路的輸出與邏輯非電路的輸出及修正數(shù)1進(jìn)行加法運(yùn)算、或者將部分積加法樹的輸出進(jìn)行加法運(yùn)算、或者將部分積生成電路的輸出進(jìn)行加法運(yùn)算的最終和電路的電路信息并存儲(chǔ)到電路數(shù)據(jù)存儲(chǔ)器23內(nèi)。
S280是與圖8的S155、圖11的S171或圖12的S237一樣的處理,該處理從電路數(shù)據(jù)存儲(chǔ)器23內(nèi)消去表示乘法器的電路信息。
實(shí)施例3下面,根據(jù)
本發(fā)明實(shí)施例3的邏輯電路的自動(dòng)設(shè)計(jì)裝置。
實(shí)施例3的自動(dòng)設(shè)計(jì)裝置進(jìn)行與實(shí)施例1中圖5的S1013即圖7的S141-148一樣的處理。
圖15是實(shí)施例3的自動(dòng)設(shè)計(jì)裝置的結(jié)構(gòu)框圖,在圖15中,2600是輸入裝置,2601-2604是判斷裝置,2611是將乘數(shù)分割為A1、A2的乘數(shù)分割器,2612是邏輯非信號(hào)生成器,2613是修正數(shù)生成器,2614是修正信號(hào)生成器,2621-2624是部分積生成電路生成器,2651、2652是邏輯非電路生成器,2661-2663是部分積加法樹生成器,2671是信號(hào)接續(xù)電路生成器,2681-2685是最終和電路生成器,2690是乘法器消除器(電路消除器)。
輸入裝置2600從圖2的電路數(shù)據(jù)存儲(chǔ)器23讀取分別示于圖24、圖26及圖27的表示原功能元件即乘法器191、221或241的電路信息,將表示乘法器191、221或241的輸入為m位乘數(shù)Y或A的信息輸出給判斷裝置2601及乘法器消除器(電路消除器)2690,并且將表示另一個(gè)輸入為n位被乘數(shù)X的信息輸出給部分積生成電路生成器2621-2624、修正信號(hào)生成器2614及乘法器消除器(電路消除器)2690。另外,將表示乘法器191、221或241的輸出為L(zhǎng)位的積P的信息輸出給最終和電路生成器2681-2685、信號(hào)接續(xù)電路生成器2671及乘法器消除器(電路消除器)2690。
判斷裝置2601是判斷乘法器191、221或241的乘數(shù)為變數(shù)Y還是常數(shù)A的裝置,如果乘數(shù)為變數(shù)Y,就將表示乘數(shù)Y的信息輸出給部分積生成電路生成器2621;如果乘數(shù)為常數(shù)A,就將表示乘數(shù)A的信息輸出給乘數(shù)分割器2611。
為了將乘數(shù)A分割為常數(shù)A1和常數(shù)A2,乘數(shù)分割器2611先按圖13所示的方法確定滿足A=A1-A2并且posibits(A1)+posibits(A2)為最小的常數(shù)A1、A2。然后將表示常數(shù)A1、A2及原乘數(shù)A的信息輸出給判斷裝置2602。
判斷裝置2602是判斷posibits(A)、posibits(A1)+posibits(A2)及negabits(A)+2(即,m-posibits(A)+2)中哪1個(gè)為最小的裝置,如果posibits(A)為最小(也包括與其他量相等的情況),就將表示乘法器191的乘數(shù)A的信息輸出給部分積生成電路生成器2621。如果posibits(A1)+posibits(A2)為最小(也包括與negabits(A)+2相等的情況),就將表示對(duì)乘法器241的乘數(shù)A用乘數(shù)分割器2611確定的A1的信息輸出給部分積生成電路生成器2622,將表示A2的信息輸給部分積生成電路2623及修正數(shù)生成器2613;如果negabits(A)+2單獨(dú)為最小,就將表示乘法器221的乘數(shù)A的信息輸出給邏輯非信號(hào)生成器2612。
邏輯非信號(hào)生成器2612是求取乘法器221的乘數(shù)A邏輯非的常數(shù)A0的裝置,它將表示該常數(shù)A0的信息輸出給部分積生成電路生成器2624。
部分積生成電路生成器2621-2624輸入表示乘法器191、221或241的被乘數(shù)X和乘數(shù)Y、A、A1、A2或A0的任何1個(gè)量的信息,生成表示把它們的乘積作為部分積而輸出的部分積生成電路的電路信息,并存儲(chǔ)到電路數(shù)據(jù)存儲(chǔ)器23內(nèi)。
詳細(xì)地說,就是部分積生成電路生成器2621輸入表示乘法器191的被乘數(shù)X和乘數(shù)Y或A的信息,生成輸出它們的部分積P1、……、PK的部分積生成電路,并存儲(chǔ)到電路數(shù)據(jù)存儲(chǔ)器23內(nèi),將表示上述部分積P1、……、PK的信息輸出給判斷裝置2603。
部分積生成電路生成器2622輸入表示乘法器241的被乘數(shù)X和上述常數(shù)A1的信息,生成輸出它們的部分積P0、……、PK-1部分積生成電路,并存儲(chǔ)到電路數(shù)據(jù)存儲(chǔ)器23內(nèi),同時(shí)將表示上述部分積P0、……、PK-1的信息輸出給判斷裝置2604。
部分積生成電路生成器2623輸入表示乘法器241的被乘數(shù)X和上述常數(shù)A2的信息,生成輸出它們的部分積Q0、……、QH-1的部分積生成電路,并存儲(chǔ)到電路數(shù)據(jù)存儲(chǔ)器23內(nèi),同時(shí)將上述部分積Q0、……、QH-1輸出給邏輯非電路生成器2651。
部分積生成電路生成器2624輸入表示乘法器221的被乘數(shù)X和乘數(shù)A的邏輯非常數(shù)A0的信息,生成輸出它們的部分積P0、……、PK-1的部分積生成電路,并存儲(chǔ)到電路數(shù)據(jù)存儲(chǔ)器23內(nèi),同時(shí)將表示上述部分積P0、……、PK-1的信息輸出到部分積加法樹生成器2663。
邏輯非電路生成器2651輸入表示上述部分積Q0、……、QH-1的信息,生成輸出它們的邏輯非信號(hào)R0、……、RH-1的邏輯非電路,并存儲(chǔ)到電路數(shù)據(jù)存儲(chǔ)器23內(nèi),同時(shí)將表示上述部分積R0、……、RH-1的信息輸出給判斷裝置2604。
判斷裝置2603是判斷上述部分積P0、……、PK-1的個(gè)數(shù)K是1還是2或3的裝置,如果上述部分積的個(gè)數(shù)K為1,就將表示該部分積P1信息輸出給信號(hào)連接電路生成器2671;如果上述部分積的個(gè)數(shù)K為2,就將表示該部分積P1、P2的信息輸出給最終和電路生成器2681;如果上述部分積的個(gè)數(shù)K大于3,就將表示這些部分積P1、……、PK的信息輸出給部分積加法樹生成器2661。
判斷裝置2604是判斷上述部分積P0、……、PK-1的個(gè)數(shù)之和K+H為2(即,K=1并且H=1)還是大于3的裝置,如果它們的個(gè)數(shù)之和K+H為2(即,K=1和H=1),就將表示部分積P0、R0的信息輸出給最終和電路生成器2684;如果上述部分積的個(gè)數(shù)之和K+H大于3,就將表示這些部分積P0、……、PK-1、R0、……、RH-1的信息輸給部分積加法樹生成器2662。
部分積加法樹生成器2661-2663輸入表示部分積P1、……、PK、部分積P0、……、PK-1、R0、……、RH-1或部分積P0、……、PK-1的信息,對(duì)這些部分積之間進(jìn)行加法運(yùn)算,生成表示輸出部分和及部分進(jìn)位數(shù)(Q1、Q2或Q0、Q1)的部分積加法樹的電路信息,并存儲(chǔ)到電路數(shù)據(jù)存儲(chǔ)器23內(nèi)。
詳細(xì)地說,就是部分積加法樹生成器2661輸入表示部分積P1、……、PK-1的信息,生成輸出它們的部分和Q1及部分進(jìn)位數(shù)Q2的部分積加法樹,并存儲(chǔ)到電路數(shù)據(jù)存儲(chǔ)器23內(nèi),同時(shí)將表示上述部分和Q1及部分進(jìn)位數(shù)Q2的信息輸出給最終和電路生成器2682。
部分積加法樹生成器2662輸入表示部分積P0、……、PK、R0、……、RH-1的信息,生成輸出它們的部分和Q0及部分進(jìn)位數(shù)Q1的部分積加法樹,并存儲(chǔ)到電路數(shù)據(jù)存儲(chǔ)器23內(nèi),同時(shí)將表示上述部分和Q0及部分進(jìn)位數(shù)Q1的信息輸出給最終和電路生成器2683。
部分積加法樹生成器2663輸入表示部分積P0、……、PK-1的信息,生成輸出它們的部分和Q0及部分進(jìn)位數(shù)Q1的部分積加法樹,并存儲(chǔ)到電路數(shù)據(jù)存儲(chǔ)器23內(nèi),同時(shí)將表示上述部分和Q1及部分進(jìn)位數(shù)Q2的信息輸出給最終和電路生成器2652。
邏輯非電路生成器2652輸入表示上述部分和Q0及部分進(jìn)位數(shù)Q1的信息,生成輸出它們的邏輯非信號(hào)R1、R2的邏輯非電路,并存儲(chǔ)到電路數(shù)據(jù)存儲(chǔ)器23內(nèi),同時(shí)將表示該邏輯非信號(hào)R1、R2的信息輸出給最終和電路生成器2685。
修正數(shù)生成器2613輸入表示上述常數(shù)A2的信息,作為最終和的修正數(shù)求H=posibits(A2),并將表示該修正數(shù)H的信息輸出給最終和電路生成器2683。
修正信號(hào)生成器2614輸入表示被乘數(shù)X的信息及數(shù)值2,如圖26所示,作為根據(jù)計(jì)算式X×2m+2求得的信號(hào)的低位L位信號(hào)生成最終和的修正信號(hào)R3,并將表示該修正信號(hào)R3的信息輸出給最終和電路生成器2685。
最終和電路生成器2681-2685輸入表示部分積P1、P2或部分和Q1及部分進(jìn)位Q2或部分和Q0、部分進(jìn)位數(shù)Q1及修正數(shù)H或部分積P0、R0或信號(hào)R1、R2、R3的信息,將它們進(jìn)行加法運(yùn)算,生成表示將其最終和作為乘法器191、221或241的輸出即L位的積P而輸出的最終和電路的電路信息,并存儲(chǔ)到電路數(shù)據(jù)存儲(chǔ)器23內(nèi)。
詳細(xì)地說,就是最終和電路生成器2681輸入表示上述部分積P1、P2的信息和表示乘法器191的輸出為L(zhǎng)位的積P的信息,將這些部分積P1、P2進(jìn)行加法運(yùn)算,生成表示將它們的最終和作為乘法器191的積P而輸出的最終和電路的電路信息,并存儲(chǔ)到電路數(shù)據(jù)存儲(chǔ)器23內(nèi)。
最終和電路生成器2682輸入表示上述部分和Q1及部分進(jìn)位數(shù)Q2的信息和表示乘法器191的輸出為L(zhǎng)位的積P的信息,將這些部分和Q1、部分進(jìn)位數(shù)Q2進(jìn)行加法運(yùn)算,生成表示將它們的最終和作為乘法器191的積P而輸出的最終和電路的電路信息,并存儲(chǔ)到電路數(shù)據(jù)存儲(chǔ)器23內(nèi)。
最終和電路生成器2683輸入表示上述部分和Q0、部分進(jìn)位數(shù)Q1及修正數(shù)H的信息和表示乘法器241的輸出為L(zhǎng)位的積P的信息,將這些部分和Q0、部分進(jìn)位數(shù)Q1及修正數(shù)H進(jìn)行加法運(yùn)算,生成表示將它們的最終和作為乘法器241的積P而輸出的最終和電路的電路信息,并存儲(chǔ)到電路數(shù)據(jù)存儲(chǔ)器23內(nèi)。
最終和電路生成器2684輸入表示上述部分積P0、R0的信息和表示乘法器241的輸出為L(zhǎng)位的積P的信息,將這些部分積P0、R0進(jìn)行加法運(yùn)算,生成表示將它們的最終和作為乘法器241的積P而輸出的最終和電路的信息,并存儲(chǔ)到電路數(shù)據(jù)存儲(chǔ)器23內(nèi)。
最終和電路生成器2685輸入表示上述邏輯非信號(hào)R1、R2修正信號(hào)R3的信息和表示乘法器221的輸出為L(zhǎng)位的積P的信息,將這些邏輯非信號(hào)R1、R2修正信號(hào)R3進(jìn)行加法運(yùn)算生成表示將它們的最終和作為乘法器221的積P而輸出的最終和電路的電路信息,并存儲(chǔ)到電路數(shù)據(jù)存儲(chǔ)器23內(nèi)。
信號(hào)接續(xù)電路生成器2671輸入表示上述部分積P1的信息和表示乘法器191的輸出為L(zhǎng)位的積P的信息,生成表示將這些信號(hào)P1與P接續(xù)的信號(hào)接續(xù)電路的電路信息,并存儲(chǔ)到電路數(shù)據(jù)存儲(chǔ)器23內(nèi)。
乘法器消除器(電路消除器)2690輸入表示乘法器191、221或241的輸入為m位的乘數(shù)Y或A及n位的被乘數(shù)X的信息以及表示其輸出為L(zhǎng)位的積P的信息,將表示乘法器191、221或241的電路信息從電路數(shù)據(jù)存儲(chǔ)器23內(nèi)消除掉。
在圖15的例子中,為了簡(jiǎn)便,將部分積生成電路生成器2621-2624、部分積加法樹生成器2661-2663、邏輯非電路生成器2651、2652、最終和電路生成器2681-2685分別作為同一功能的各個(gè)裝置進(jìn)行了說明,但是,也可以作為同一裝置分別實(shí)現(xiàn)部分積生成電路生成器2621-2624、部分積加法樹生成器2661-2663、邏輯非電路生成器2651、2652、最終和電路生成器2681-2685的全部或一部分。
另外,在圖15的例子中,將修正數(shù)生成器2613的輸出H作為最終和電路生成器2683的輸入,而特別是對(duì)于H大于3的情況,也可以將修正數(shù)生成器2613的輸出H追加到部分積加法樹生成器2662的輸入中,在部分積加法樹中加進(jìn)該修正數(shù)H。
另外,對(duì)于將變數(shù)之間進(jìn)行乘法運(yùn)算的乘法器(即,乘數(shù)為變數(shù)Y時(shí)),在部分積生成電路的生成中,不限于上述那樣的部分積生成電路生成器2621的電路,也可以生成應(yīng)用了2位通道的記錄方式的電路。
實(shí)施例4下面,說明本發(fā)明實(shí)施例4的乘法器。
實(shí)施例4的乘法器是按照?qǐng)D26的變換規(guī)則7和圖27的變換規(guī)則8生成的。這里,為了說明的簡(jiǎn)單方便,給出了變數(shù)X為正數(shù)的情況,而在能取正負(fù)兩種值的情況時(shí),可以在將符號(hào)擴(kuò)展后取邏輯非或者在取邏輯非后再將符號(hào)進(jìn)行擴(kuò)展。
在圖26和圖27中,部分積生成電路222、242、243、248、249由僅與常數(shù)A1、A2中值為1的位對(duì)應(yīng)部分的被乘數(shù)X的移位電路構(gòu)成。另外,門電路220、224、225、244、245、250是反相器。部分積加法器223、246是將保留進(jìn)位加法器排列成樹狀而構(gòu)成的。加法器226是進(jìn)行修正項(xiàng)的加法運(yùn)算的保留進(jìn)位加法器。最終和電路227、247、240是先行進(jìn)位加法器,它們利用進(jìn)位輸入進(jìn)行修正項(xiàng)的加法運(yùn)算。如前所述,修正后求積P的運(yùn)算可以是各種變形。
在上述任何乘法器中,都是求出取乘數(shù)A的全位邏輯非的常數(shù)A0或滿足A=A1-A2的常數(shù)A1、A2之后,將該常數(shù)與被乘數(shù)X進(jìn)行乘法運(yùn)算的,所以,即使乘數(shù)A的位數(shù)大于m/2,也可以使部分積數(shù)小于m/2。這樣,便可減小電路面積和提高乘法運(yùn)算速度。
還有,在實(shí)施例1-4中,作為存儲(chǔ)在電路數(shù)據(jù)存儲(chǔ)器23的電路信息,以功能元件、邏輯元件、實(shí)裝元件等元件為中心,著眼于元件間的輸入輸出關(guān)系說明了使用表示電路的數(shù)據(jù)表述的例子,但是,不限于此,使用元件間的聯(lián)系即以信號(hào)為中心的數(shù)據(jù)表述時(shí)也可以實(shí)現(xiàn)基于相同變換規(guī)則的電路的變換處理。
另外,變換處理不限于基于上述變換規(guī)則的電路的變換處理,也可以將電路數(shù)據(jù)的各部分按特定的順序逐次進(jìn)行生成及存儲(chǔ)的處理。
上面只是一般性地對(duì)m位長(zhǎng)的乘數(shù)與n位長(zhǎng)的被乘數(shù)之積P為L(zhǎng)位長(zhǎng)的情況進(jìn)行了說明。即,積P的位長(zhǎng)L小于n+m時(shí),可以從乘法運(yùn)算結(jié)果的低位取L位;當(dāng)L大于n+m時(shí),可以將n+m位的乘法運(yùn)算結(jié)果作為低位的比特,而將高位的比特進(jìn)行符號(hào)擴(kuò)展或0擴(kuò)展。
權(quán)利要求
1.用于生成表示求乘數(shù)與被乘數(shù)之積的邏輯電路的信息的邏輯電路自動(dòng)設(shè)計(jì)方法,對(duì)應(yīng)于乘數(shù)的各位,具有如下處理(a)判斷乘數(shù)為變量還是常數(shù);(b)當(dāng)乘數(shù)為變量時(shí),根據(jù)該乘數(shù)位的值從表示被乘數(shù)的信號(hào)和表示0的信號(hào)中選擇一種信號(hào),并且生成表示將選擇的信號(hào)作為部分積而輸出的電路的信息;(c)當(dāng)乘數(shù)為常數(shù)時(shí),判斷乘數(shù)的該位值是否為1;(d)當(dāng)乘數(shù)的該位值為1時(shí),生成表示把代表被乘數(shù)的信號(hào)作為部分積而輸出的電路的信息;(e)進(jìn)行完(a)-(d)的處理之后,生成表示把代表被乘數(shù)的信號(hào)移1位的移位電路的信息,并且將該移位電路的輸出信號(hào)重新設(shè)定為表示在(a)-(d)的處理中使用的被乘數(shù)的信號(hào);與乘數(shù)的所有的位對(duì)應(yīng)地反復(fù)進(jìn)行(a)-(e)的處理。
2.用于生成表示求乘數(shù)與被乘數(shù)之積的邏輯電路的信息的邏輯電路的自動(dòng)設(shè)計(jì)方法,對(duì)應(yīng)于把乘數(shù)的各位與被乘數(shù)之積的多個(gè)部分積按每n個(gè)分割為1組而構(gòu)成的各個(gè)部分積群,具有如下處理(a)生成表示輸入屬于該部分積群的n個(gè)部分積并且將該n個(gè)部分積之間的和作為m(<n)個(gè)部分積而輸出的加法電路的信息;對(duì)應(yīng)于上述多個(gè)部分積的總體,(b)在反復(fù)進(jìn)行(a)的處理之后,將在(a)的處理中生成的加法電路的輸出的所有部分積與上述多個(gè)部分積中未成為在(a)的處理中生成的加法電路的輸入信號(hào)的部分積重新設(shè)定為實(shí)施(a)的處理的多個(gè)部分積;反復(fù)進(jìn)行(a)及(b)的處理。
3.用于生成表示求乘數(shù)與被乘數(shù)之積的邏輯電路的信息的邏輯電路的自動(dòng)設(shè)計(jì)方法,對(duì)應(yīng)于把作為乘數(shù)的各位與被乘數(shù)之積的多個(gè)部分積按每3個(gè)為1組分割而成的各個(gè)部分積群,具有如下處理(a)生成表示輸入屬于該部分積群的3個(gè)部分積、并且將該3個(gè)部分積之間的和作為2個(gè)部分積而輸出的保留進(jìn)位加法器的信息;(b)在反復(fù)進(jìn)行過(a)的處理之后,將在(a)的處理中生成的保留進(jìn)位加法器的輸出的所有部分積與上述多個(gè)部分積中未成為在(a)的處理中生成的保留進(jìn)位加法器的輸入信號(hào)的部分積重新設(shè)定為實(shí)施(a)的處理的多個(gè)部分積。反復(fù)進(jìn)行(a)及(b)的處理,直至在(b)的處理中設(shè)定的新的部分積的個(gè)數(shù)成為2。
4.用于生成表示求乘數(shù)與被乘數(shù)之積的邏輯電路的信息的邏輯電路的自動(dòng)設(shè)計(jì)方法,具有如下處理(a)判斷作為乘數(shù)的各位與被乘數(shù)之積的部分積的個(gè)數(shù)為多少;(b)當(dāng)部分積的個(gè)數(shù)大于n時(shí),對(duì)應(yīng)于把多個(gè)部分積按每n個(gè)為1組分割而成的各個(gè)部分積群,(b-1)生成表示輸入屬于該部分積群的n個(gè)部分積并且將該n個(gè)部分積之間的和作為m(<n)個(gè)部分積而輸出的加法電路的信息;與上述多個(gè)部分積的所有部分相對(duì)應(yīng),(b-2)在反復(fù)進(jìn)行過(b-1)的處理后,將作為在(b-1)的處理中生成的加法電路的輸出的所有部分積與上述多個(gè)部分積中未成為在(b-1)的處理中生成的加法電路的輸入信號(hào)的部分積重新設(shè)定為進(jìn)行(b-1)處理的多個(gè)部分積;反復(fù)進(jìn)行(b-1)及(b-2)的處理,直至在(b-2)的處理中設(shè)定的新的部分積的個(gè)數(shù)成為m個(gè)為止;(c)當(dāng)部分積的個(gè)數(shù)小于m并且大于2時(shí),生成表示輸入該個(gè)數(shù)的部分積并且通過對(duì)該部分積之間進(jìn)行加法運(yùn)算而求乘數(shù)與被乘數(shù)之積的最終和電路的信息。
5.用于生成表示求乘數(shù)與被乘數(shù)之積的邏輯電路的信息的邏輯電路的自動(dòng)設(shè)計(jì)方法,具有如下處理(a)對(duì)應(yīng)于乘數(shù)的各位,(a-1)判斷乘數(shù)為變量還是常數(shù);(a-2)當(dāng)乘數(shù)為變量時(shí),根據(jù)該乘數(shù)的位值,從表示被乘數(shù)的信號(hào)和表示0的信號(hào)中選擇一種信號(hào),并且生成表示將選擇的信號(hào)作為部分積而輸出的電路的信息;(a-3)當(dāng)乘數(shù)為常數(shù)時(shí),判斷乘數(shù)的該位值是否為1;(a-4)當(dāng)乘數(shù)的該位值為1時(shí),生成表示把代表被乘數(shù)的信號(hào)作為部分積而輸出的電路的信息;(a-5)在進(jìn)行過(a-1)-(a-4)的處理之后,生成表示把代表被乘數(shù)的信號(hào)移1位的移位電路的信息,并將該移位電路的輸出信號(hào)重新設(shè)定為表示在(a-1)-(a-4)的處理使用的被乘數(shù)的信號(hào);與乘數(shù)的所有位相對(duì)應(yīng),通過反復(fù)進(jìn)行(a-1)-(a-4)的處理,生成作為乘數(shù)的各位與被乘數(shù)之積的部分積;(b)判斷該部分積的個(gè)數(shù)為多少;(c)當(dāng)部分積的個(gè)數(shù)大于n時(shí),對(duì)應(yīng)于把多個(gè)部分積按每n個(gè)為1組分割而成的各個(gè)部分積群,(c-1)生成表示輸入屬于該部分積群的n個(gè)部分積并且將該n個(gè)部分積之間的和作為m(<n)個(gè)部分積而輸出的加法電路的信息;與上述多個(gè)部分積的所有部分相對(duì)應(yīng),(c-2)在反復(fù)進(jìn)行過(c-1)的處理之后,將作為在(c-1)的處理中生成的加法電路的輸出的所有的部分積與上述多個(gè)部分積中未成為在(c-1)的處理中生成的加法電路的輸入信號(hào)的部分積重新設(shè)定為進(jìn)行(c-1)處理的多個(gè)部分積;反復(fù)進(jìn)行(c-1)及(c-2)的處理,直至在(c-2)的處理中設(shè)定的新的部分積的個(gè)數(shù)成為m個(gè)為止;(d)當(dāng)部分積的個(gè)數(shù)小于m并且大于2時(shí),生成表示輸入該個(gè)數(shù)的部分積并且通過將該部分積之間進(jìn)行加法運(yùn)算而求乘數(shù)與被乘數(shù)之積的最終和電路的信息。
6.用于生成表示求乘數(shù)與被乘數(shù)之積的邏輯電路的信息的邏輯電路的自動(dòng)設(shè)計(jì)方法,具有如下處理(a)確定兩個(gè)常數(shù)A1、A2,以使常數(shù)A1與A2之差A(yù)1-A2等于常數(shù)的乘數(shù)A;(b)生成表示輸入常數(shù)A1和被乘數(shù)X而輸出它們的部分積的第1部分積生成電路的信息;(c)生成表示輸入常數(shù)A2和被乘數(shù)X而輸出它們的部分積的第2部分積生成電路的信息;(d)生成表示輸入上述第2部分積生成電路的輸出信號(hào)而輸出其邏輯非信號(hào)的邏輯非電路的信息;(e)生成表示輸入上述第1部分積生成電路的輸出信號(hào)和上述邏輯非電路的輸出信號(hào)以及修正信號(hào)、并求出它們的和作為乘數(shù)A與被乘數(shù)X之積而輸出的電路的信息。
7.如權(quán)利要求6所述的邏輯電路的自動(dòng)設(shè)計(jì)方法,其中,(e)的處理中包括如下處理(e-1)生成表示輸入上述第1部分積生成電路的輸出信號(hào)和上述邏輯非電路的輸出信號(hào)、將它們的加法運(yùn)算結(jié)果作為指定個(gè)數(shù)的部分積而輸出的部分積加法電路的信息;(e-2)生成表示輸入上述部分積加法電路的輸出信號(hào)和修正信號(hào)并求出它們的和之后作為乘數(shù)A與被乘數(shù)X之積而輸出的最終和電路的信息。
8.如權(quán)利要求6所述的邏輯電路的自動(dòng)設(shè)計(jì)方法,其中(e)的處理中包括如下處理(e-1)對(duì)應(yīng)于把多個(gè)部分積按每n個(gè)為1組劃分成的各個(gè)部分積群,(e-1-1)生成表示輸入屬于該部分積群的n個(gè)部分積并且將該n個(gè)部分積之間的和作為m(<n)個(gè)部分積而輸出的加法電路的信息;對(duì)應(yīng)于上述多個(gè)部分積的所有部分,(e-1-2)在反復(fù)進(jìn)行過(e-1-1)的處理后,將作為在(e-1-1)的處理中生成的加法電路的輸出的所有部分積與上述多個(gè)部分積中未成為在(e-1-1)的處理中生成的加法電路的輸入信息的部分積重新設(shè)定為進(jìn)行(e-1-1)的處理的多個(gè)部分積;通過反復(fù)進(jìn)行(e-1-1)及(e-1-2)的處理,進(jìn)行生成表示輸出m個(gè)部分積的部分積加法電路的信息的處理;(e-2)生成表示輸入上述部分積加法電路的輸出信號(hào)和修正信號(hào)并求出它們的和作為乘數(shù)A與被乘數(shù)X之積而輸出的最終和電路的信息。
9.如權(quán)利要求6所述的邏輯電路的自動(dòng)設(shè)計(jì)方法,其中,(e)的處理中包括如下處理(e-1)判斷常數(shù)A1中值為1的位數(shù)與常數(shù)A2中值為1的位數(shù)之和是等于指定的個(gè)數(shù)還是大于該指定的個(gè)數(shù);(e-2)當(dāng)常數(shù)A1中值為1的位數(shù)與常數(shù)A2中值為1的位數(shù)之和等于上述指定的個(gè)數(shù)時(shí),生成表示輸入上述第1部分積生成電路的輸出信息和上述邏輯非電路的輸出信號(hào)及修正信號(hào)并求出它們的和之后作為乘數(shù)A與被乘數(shù)X之積而輸出的最終和電路的信息。(e-3)當(dāng)常數(shù)A1中值為1的位數(shù)與常數(shù)A2中值為1的位數(shù)之和大于上述指定的個(gè)數(shù)時(shí);(e-3-1)生成表示輸入上述第1部分積生成電路的輸出信號(hào)和上述邏輯非電路的輸出信號(hào),將它們的加法運(yùn)算結(jié)果作為上述指定個(gè)數(shù)的部分積而輸出的部分積加法電路的信息;(e-3-2)生成表示輸入上述部分積加法電路的輸出信號(hào)和修正信號(hào)并求出它們的和作為乘數(shù)A與被乘數(shù)X之積而輸出的最終和電路的信息。
10.如權(quán)利要求6所述的邏輯電路的自動(dòng)設(shè)計(jì)方法,其中,(e)的處理中包括如下處理(e-1)判斷常數(shù)A1中值為1的位數(shù)與常數(shù)A2中值為1的位數(shù)之和是1還是2或者大于2;(e-2)當(dāng)常數(shù)A1值為1的位數(shù)與常數(shù)A2中值為1的位數(shù)之和為1時(shí),生成表示將上述第1部分積生成電路的輸出信號(hào)作為乘數(shù)A與被乘數(shù)X之積而輸出的電路的信息;(e-3)當(dāng)常數(shù)A1中值為1的位數(shù)與常數(shù)A2中值為1的位數(shù)之和為2時(shí),生成輸入上述第1部分積生成電路的輸出信號(hào)和上述邏輯非電路的輸出信號(hào)及修正信號(hào)并求出它們的和之后作為乘數(shù)A與被乘數(shù)X之積而輸出的最終和電路的信息;(e-4)當(dāng)常數(shù)A1中值為1的位數(shù)與常數(shù)A2中值為1的位數(shù)之和大于2時(shí),(e-4-1)生成表示由構(gòu)成為樹狀的保留進(jìn)位加法器構(gòu)成的、輸入上述第1部分積生成電路的輸出信號(hào)和上述邏輯非電路的輸出信號(hào)并將它們的加法運(yùn)算結(jié)果作為2個(gè)部分積而輸出的部分積加法電路的信息;(e-4-2)生成表示輸入上述部分積加法電路的輸出信號(hào)和修正信號(hào)并求出它們的和之后作為乘數(shù)A與被乘數(shù)X之積而輸出的最終和電路的信息。
11.用于生成表示求乘數(shù)與被乘數(shù)之積的邏輯電路的信息的邏輯電路的自動(dòng)設(shè)計(jì)方法,具有如下處理(a)確定兩個(gè)常數(shù)A1、A2,以使常數(shù)A1與常數(shù)A2之差A(yù)1-A2等于常數(shù)的乘數(shù)A并且常數(shù)A1中值為1的位數(shù)與常數(shù)A2中值為1的位數(shù)之和為最小;(b)生成表示輸入常數(shù)A1和被乘數(shù)X而輸出它們的部分積的第1部分積生成電路的信息;(c)生成表示輸入常數(shù)A2和被乘數(shù)X而輸出它們的部分積的第2部分積生成電路的信息;(d)生成表示輸入上述第2部分積生成電路的輸出信號(hào)而輸出其邏輯非信號(hào)的邏輯非電路的信息;(e)生成表示輸入上述第1部分積生成電路的輸出信號(hào)和上述邏輯非電路的輸出信號(hào)及修正信號(hào)并求出它們的和作為乘數(shù)A與被乘數(shù)X之積而輸出的部分積和電路的信息。
12.用于生成表示求乘數(shù)與被乘數(shù)之積的邏輯電路的信息的邏輯電路的自動(dòng)設(shè)計(jì)方法,具有如下處理(a)確定兩個(gè)常數(shù)A1、A2,以使常數(shù)A1與常數(shù)A2之差A(yù)1-A2等于常數(shù)的乘數(shù)A;(b)相應(yīng)于常數(shù)A1的各位,(b-1)判斷常數(shù)A1的該位值是否為1;(b-2)當(dāng)常數(shù)A1的該位值為1時(shí),生成表示把代表被乘數(shù)X的信號(hào)作為部分積而輸出的電路的信息;(b-3)進(jìn)行過(b-1)及(b-2)的處理之后,生成表示把代表被乘數(shù)X的信號(hào)移1位的第1移位電路的信息,并將該第1移位電路的輸出信號(hào)重新設(shè)定為表示在(b-1)及(b-2)的處理中使用的被乘數(shù)X的信號(hào);與常數(shù)A1的所有位相對(duì)應(yīng),通過反復(fù)進(jìn)行(b-1)-(b-3)的處理,生成第1部分積生成電路;(c)與常數(shù)A2的各位相對(duì)應(yīng),(c-1)判斷常數(shù)A2的該位值是否為1;(c-2)當(dāng)常數(shù)A2的該位值為1時(shí),生成表示把代表被乘數(shù)X的信號(hào)作為部分積而輸出的電路的信息;(c-3)進(jìn)行過(c-1)及(c-2)的處理之后,生成表示把代表被乘數(shù)X的信號(hào)移1位的第2移位電路的信息,并將該第2移位電路的輸出信號(hào)重新設(shè)定為表示在(c-1)及(c-2)的處理中使用的被乘數(shù)X的信號(hào);通過對(duì)應(yīng)于常數(shù)A2的所有位反復(fù)進(jìn)行(c-1)-(c-3)的處理,生成第2部分積生成電路;(d)生成表示輸入上述第2部分積生成電路的輸出信號(hào)而輸出其邏輯非信號(hào)的邏輯非電路的信息;(e)生成表示輸入上述第1部分積生成電路的輸出信號(hào)和上述邏輯非電路的輸出信號(hào)及修正信號(hào)并求出它們的和作為乘數(shù)A與被乘數(shù)X之積而輸出的電路的信息。
13.用于生成表示求乘數(shù)與被乘數(shù)之積的邏輯電路的信息的邏輯電路的自動(dòng)設(shè)計(jì)方法,具有如下處理(a)根據(jù)常數(shù)的乘數(shù)A生成乘數(shù)A的邏輯非信號(hào);(b)與上述乘數(shù)A的邏輯非信號(hào)的各位相對(duì)應(yīng),(b-1)判斷上述乘數(shù)A的邏輯非信號(hào)的該位值是否為1;(b-2)當(dāng)上述乘數(shù)A的邏輯非信號(hào)的該位值為1時(shí),生成表示把代表被乘數(shù)X的信號(hào)作為部分積而輸出的電路的信息;(b-3)進(jìn)行過(b-1)及(b-2)的處理之后,生成表示把代表被乘數(shù)X的信號(hào)移1位的移位電路的信息,并將該移位電路的輸出信號(hào)重新設(shè)定為表示在(b-1)及(b-2)的處理中使用的被乘數(shù)X的信號(hào);通過相應(yīng)于上述乘數(shù)A的邏輯非信號(hào)的所有位反復(fù)進(jìn)行(b-1)-(b-3)的處理,生成表示部分積生成電路的信息;(c)生成表示輸入上述部分積生成電路的全部輸出信號(hào)和表示被乘數(shù)X的信號(hào)并將它們的加法運(yùn)算結(jié)果作為指定個(gè)數(shù)的部分積而輸出的部分積加法電路的信息;(d)生成表示輸入上述部分積加法電路的輸出信號(hào)并輸出其邏輯非信號(hào)的邏輯非電路的信息;(e)根據(jù)被乘數(shù)X生成修正信號(hào);(f)生成表示輸入上述修正信號(hào)和上述邏輯非電路的輸出信號(hào)并求出它們的和作為乘數(shù)A與被乘數(shù)X之積而輸出的最終和電路的信息。
14.用于生成表示求乘數(shù)與被乘數(shù)之積的邏輯電路的信息的邏輯電路的自動(dòng)設(shè)計(jì)方法,具有如下處理(a)根據(jù)常數(shù)的乘數(shù)A生成乘數(shù)A的邏輯非信號(hào);(b)與上述乘數(shù)A的邏輯非信號(hào)的各位相對(duì)應(yīng),(b-1)判斷上述乘數(shù)的邏輯非信號(hào)的該位值是否為1;(b-2)當(dāng)上述乘數(shù)的邏輯非信號(hào)的該位值為1時(shí),生成表示把代表被乘數(shù)X的信號(hào)作為部分積而輸出的電路的信息;(b-3)在進(jìn)行過(b-1)及(b-2)的處理之后,生成表示把代表被乘數(shù)X的信號(hào)移1位的移位電路的信息,并將該移位電路的輸出信號(hào)重新設(shè)定為表示在(b-1)及(b-2)的處理中使用的被乘數(shù)X的信號(hào);與上述乘數(shù)A的邏輯非信號(hào)的所有位相對(duì)應(yīng),通過反復(fù)進(jìn)行(b-1)-(b-3)的處理,生成表示部分積生成電路的信息;(c)對(duì)應(yīng)于把根據(jù)上述部分積生成電路的全部輸出信號(hào)和表示被乘數(shù)X的信號(hào)構(gòu)成的多個(gè)輸入信號(hào)按每n個(gè)為1組分割而成的各個(gè)輸入信號(hào)群,(c-1)生成表示輸入屬于該輸入信號(hào)群的n個(gè)輸入信號(hào)并且將該n個(gè)輸入信號(hào)之間的和作為m(<n)個(gè)信號(hào)而輸出的加法電路的信息;相應(yīng)于上述多個(gè)輸入信號(hào)的所有信號(hào),(c-2)反復(fù)進(jìn)行(c-1)的處理之后,將在(c-1)的處理中生成的加法電路的所有輸出信號(hào)和上述多個(gè)輸入信號(hào)中未成為在(c-1)的處理中生成的加法電路的輸入信號(hào)的輸入信號(hào)重新設(shè)定為進(jìn)行(c-1)的處理的多個(gè)輸入信號(hào);通過反復(fù)進(jìn)行(c-1)及(c-2)的處理,生成表示部分積加法電路的信息;(d)生成表示輸入上述部分積加法電路的輸出信號(hào)而輸出其邏輯非信號(hào)的邏輯非電路的信息;(e)從被乘數(shù)X生成修正信號(hào);(f)生成表示輸入上述修正信號(hào)和上述邏輯非電路的輸出信號(hào)并求出它們的和作為乘數(shù)A與被乘數(shù)X之積而輸出的最終和電路的信號(hào)。
15.用于生成表示求乘數(shù)與被乘數(shù)之積的邏輯電路的信息的邏輯電路的自動(dòng)設(shè)計(jì)方法,具有如下處理(a)確定兩個(gè)常數(shù)A1、A2,以使常數(shù)A1與常數(shù)A2之差A(yù)1-A2等于常數(shù)的乘數(shù)A;(b)判斷常數(shù)A2是否為0;(c)當(dāng)常數(shù)A2為0時(shí),(c-1)生成表示輸入常數(shù)A1和被乘數(shù)X而輸出它們的部分積的第1部分積生成電路的信息;(c-2)生成表示輸入上述第1部分積生成電路的所有輸出信號(hào)并求出它們的和作為乘數(shù)A與被乘數(shù)X之積而輸出的第1部分積和電路的信息;(d)當(dāng)常數(shù)A2不為0時(shí),(d-1)生成表示輸入常數(shù)A1和被乘數(shù)X而輸出它們的部分積的第2部分積生成電路的信息;(d-2)生成表示輸入常數(shù)A2和被乘數(shù)X而輸出它們的部分積的第3部分積生成電路的信息;(d-3)生成表示輸入上述第3部分積生成電路的輸出信號(hào)而輸出其邏輯非信號(hào)的邏輯非電路的信息;(d-4)生成表示輸入上述第2部分積生成電路的輸出信號(hào)和上述邏輯非電路的輸出信號(hào)及修正信號(hào)并求出它們的和作為乘數(shù)A與被乘數(shù)X之積而輸出的第2部分積和電路的信息。
16.用于生成表示求乘數(shù)與被乘數(shù)之積的邏輯電路的信息的邏輯電路的自動(dòng)設(shè)計(jì)方法,具有如下處理(a)確定三個(gè)常數(shù)A1、A2、A3,以使常數(shù)A1與常數(shù)A2、A3之和的差值A(chǔ)1-(A2+A3)等于常數(shù)的乘數(shù)A;(b)判斷常數(shù)A1是否等于乘數(shù)A或者常數(shù)A2、A3都等于0;(c)當(dāng)常數(shù)A1等于乘數(shù)A時(shí),(c-1)生成表示輸入常數(shù)A1和被乘數(shù)X而輸出它們的部分積的第1部分積生成電路的信息;(c-2)生成表示輸入上述第1部分積生成電路的全部輸出信號(hào)并求出它們的和作為乘數(shù)A與被乘數(shù)X之積而輸出的第1部分積和電路的信息;(d)當(dāng)常數(shù)A1不等于乘數(shù)A并且常數(shù)A2及A3中至少有1個(gè)不為0時(shí),(d-1)生成表示輸入常數(shù)A1和被乘數(shù)X而輸出它們的部分積的第2部分積生成電路的信息;(d-2)生成表示輸入常數(shù)A2、A3與被乘數(shù)X而輸出它們的部分積的第3部分積生成電路的信息;(d-3)生成表示輸入上述第3部分積生成電路的輸出信號(hào)而輸出其邏輯非信號(hào)的第1邏輯非電路的信息;(d-4)生成表示輸入上述第2部分積生成電路的輸出信號(hào)和上述第1邏輯非電路的輸出信號(hào)及第1修正信號(hào)并求出它們的和作為乘數(shù)A與被乘數(shù)X之積而輸出的第2部分積和電路的信息。
17.如權(quán)利要求16所述的邏輯電路的自動(dòng)設(shè)計(jì)方法,其中,(c-1)的處理包括如下處理相應(yīng)于常數(shù)A1的各位,(C-1-1)判斷常數(shù)A1的該位值是否為1;(C-1-2)當(dāng)常數(shù)A1的該位值為1時(shí),生成表示把代表被乘數(shù)X的信號(hào)作為部分積而輸出的電路的信息;(c-1-3)進(jìn)行過(c-1-1)及(c-1-2)的處理之后,生成表示把代表被乘數(shù)X的信號(hào)移1位的第1移位電路的信息并將該第1移位電路的輸出信號(hào)重新設(shè)定為表示在(c-1-1)及(c-1-2)的處理中使用的被乘數(shù)X的信號(hào);與常數(shù)A1的所有位相對(duì)應(yīng),通過反復(fù)進(jìn)行(c-1-1)-(C-1-3)的處理,生成第1部分積生成電路;(d-1)的處理包括相應(yīng)于常數(shù)A1的各位,(d-1-1)判斷常數(shù)A1的該位值是否為1;(d-1-2)當(dāng)常數(shù)A1的該位值為1時(shí),生成表示把代表被乘數(shù)X的信號(hào)作為部分積而輸出的電路的信息;(d-1-3)進(jìn)行過(d-1-1)及(d-1-2)的處理之后,生成表示把代表被乘數(shù)X的信號(hào)移1位的第2移位電路的信息并將該第2移位電路的輸出信號(hào)重新設(shè)定為表示在(d-1-1)及(d-1-2)的處理中使用的被乘數(shù)X的信號(hào);與常數(shù)A1的所有位相對(duì)應(yīng),通過反復(fù)進(jìn)行(d-1-1)-(d-1-3)的處理,生成第2部分積生成電路;(d-2)的處理包括相應(yīng)于常數(shù)A2、A3的各位;(d-2-1)判斷常數(shù)A2、A3的該位值是否為1;(d-2-2)當(dāng)常數(shù)A2、A3的該位值為1時(shí),生成表示把代表被乘數(shù)X的信號(hào)作為部分積而輸出的電路的信息;(d-2-3)進(jìn)行過(d-2-1)及(d-2-2)的處理之后,生成表示把代表被乘數(shù)X的信號(hào)移1位的第3移位電路的信息并將該第3移位電路的輸出信號(hào)重新設(shè)定為表示在(d-2-1)及(d-2-2)的處理中使用的被乘數(shù)X的信號(hào);通過相應(yīng)于常數(shù)A2、A3的所有位反復(fù)進(jìn)行(d-2-1)-(d-2-3)的處理,生成第2部分積生成電路。
18.如權(quán)利要求16所述的邏輯電路的自動(dòng)設(shè)計(jì)方法,其中,(c-2)的處理包括對(duì)應(yīng)于把上述第1部分積生成電路的輸出信號(hào)構(gòu)成的第1多個(gè)部分積按每n個(gè)為1組分割而成的各個(gè)部分積群,(c-2-1)生成表示輸入屬于該部分積群的n個(gè)部分積并且將該n個(gè)部分積之間的和作為m(<n)個(gè)部分積而輸出的加法電路的信號(hào);與上述第1多個(gè)部分積的所有部分相對(duì)應(yīng),(c-2-2)反復(fù)進(jìn)行過(c-2-1)的處理之后,將作為在(c-2-1)的處理中生成的加法電路的輸出的所有部分積與上述第1多個(gè)部分積中未成為在(c-2-1)的處理中生成的加法電路的輸入信號(hào)的部分積重新設(shè)定為進(jìn)行(c-2-1)處理的第1多個(gè)部分積;通過反復(fù)進(jìn)行(c-2-1)及(c-2-2)的處理,生成表示第1部分積和電路的信息;(d-4)的處理包括對(duì)應(yīng)于把上述第2部分積生成電路的輸出信號(hào)和上述第1邏輯非電路的輸出信號(hào)及第1修正信號(hào)構(gòu)成的第2多個(gè)部分積按每n個(gè)為1組分割而成的各個(gè)部分積群,(d-4-1)生成表示輸入屬于該部分積群的n個(gè)部分積并且將該n個(gè)部分積之間的和作為m(<n)個(gè)部分積而輸出的加法電路的信息;與上述第2多個(gè)部分積的所有部分相對(duì)應(yīng),(d-4-2)反復(fù)進(jìn)行過(d-4-1)的處理之后,將作為在(d-4-1)的處理中生成的加法電路的輸出的所有部分積與上述第2多個(gè)部分積中未成為在(d-4-1)的處理中生成的加法電路的輸入信號(hào)的部分積重新設(shè)定為進(jìn)行(d-4-1)的處理的第2多個(gè)部分積;通過反復(fù)進(jìn)行(d-4-1)及(d-4-2)的處理,生成表示第2部分積和電路的信息。
19.如權(quán)利要求16所述的邏輯電路的自動(dòng)設(shè)計(jì)方法,其中,包括如下處理(e)判斷常數(shù)A2是否等于乘數(shù)A的邏輯非以及常數(shù)A3是否為1;(f)當(dāng)常數(shù)A2等于乘數(shù)A的邏輯非并且常數(shù)A3為1時(shí),(f-1)生成表示輸入常數(shù)A2和被乘數(shù)X而輸出它們的部分積的第4部分積生成電路的信息;(f-2)生成表示輸入上述第4部分積生成電路的所有輸出信號(hào)和表示被乘數(shù)X的信號(hào)并將它們的加法運(yùn)算結(jié)果作為部分積而輸出的部分積加法電路的信息;(f-3)生成表示輸入上述部分積加法電路的輸出信號(hào)而輸出其邏輯非信號(hào)的第2邏輯非電路的信息;(f-4)從被乘數(shù)X生成第2修正信號(hào);(f-5)生成表示輸入上述第2修正信號(hào)和上述第2邏輯非電路的輸出信號(hào)并求出它們的和作為乘數(shù)A與被乘數(shù)X之積而輸出的最終和電路的信息。
20.如權(quán)利要求19所述的邏輯電路的自動(dòng)設(shè)計(jì)方法,其中,(c-1)的處理包括相應(yīng)于常數(shù)A1的各位,(c-1-1)判斷常數(shù)A1的該位值是否為1;(c-1-2)當(dāng)常數(shù)A1的該位值為1時(shí),生成表示把代表被乘數(shù)X的信號(hào)作為部分積而輸出的電路的信息;(c-1-3)進(jìn)行過(c-1-1)及(c-1-2)的處理之后,生成表示把代表被乘數(shù)X的信號(hào)移1位的第1移位電路的信息,并將該第1移位電路的輸出信號(hào)重新設(shè)定為在(c-1-1)及(c-1-2)的處理中使用的表示被乘數(shù)X的信號(hào);通過對(duì)應(yīng)于常數(shù)A1的所有位反復(fù)進(jìn)行(c-1-1)-(c-1-3)的處理,生成第1部分積生成電路;(d-1)的處理包括相應(yīng)于常數(shù)A1的各位,(d-1-1)判斷常數(shù)A1的該位值是否為1;(d-1-2)當(dāng)常數(shù)A1的該位值為1時(shí),生成表示把代表被乘數(shù)X的信號(hào)作為部分積而輸出的電路的信息;(d-1-3)進(jìn)行過(d-1-1)及(d-1-2)的處理之后,生成表示把代表被乘數(shù)X的信號(hào)移1位的第2移位電路的信息并將該第2移位電路的輸出信號(hào)重新設(shè)定為在(d-1-1)及(d-1-2)的處理中使用的表示被乘數(shù)X的信號(hào);通過相對(duì)于常數(shù)A1的所有位反復(fù)進(jìn)行(d-1-1)-(d-1-3)的處理,生成第2部分積生成電路;(d-2)的處理包括相應(yīng)于常數(shù)A2、A3的各位,(d-2-1)判斷常數(shù)A2、A3的該位值是否為1;(d-2-2)當(dāng)常數(shù)A2、A3的該位值為1時(shí),生成表示把代表被乘數(shù)X的信號(hào)作為部分積而輸出的電路的信息;(d-2-3)進(jìn)行過(d-2-1)及(d-2-2)的處理之后,生成表示把代表被乘數(shù)X的信號(hào)移1位的第3移位電路的信息并將該第3移位電路的輸出信號(hào)重新設(shè)定為在(d-2-1)及(d-2-2)的處理中使用的表示被乘數(shù)X的信號(hào);通過相應(yīng)于常數(shù)A2、A3的所有位反復(fù)進(jìn)行(d-2-1)-(d-2-3)的處理,生成第3部分積生成電路;(f-1)的處理包括相應(yīng)于常數(shù)A2的各位,(f-1-1)判斷常數(shù)A2的該位值是否為1;(f-1-2)當(dāng)常數(shù)A2的該位值為1時(shí),生成表示把代表被乘數(shù)X的信號(hào)作為部分積而輸出的電路的信息;(f-1-3)進(jìn)行過(f-1-1)及(f-1-2)的處理之后,生成表示把代表被乘數(shù)X的信號(hào)移1位的第4移位電路的信息并將該第4移位電路的輸出信號(hào)重新設(shè)定為在(f-1-1)及(f-1-2)的處理中使用的表示被乘數(shù)X的信號(hào);通過相應(yīng)于常數(shù)A2的所有位反復(fù)進(jìn)行(f-1-1)-(f-1-3)的處理,生成第4部分積生成電路。
21.如權(quán)利要求19所述的邏輯電路的自動(dòng)設(shè)計(jì)方法,其中,(c-2)的處理包括對(duì)應(yīng)于把上述第1部分積生成電路的輸出信號(hào)構(gòu)成的第1多個(gè)部分積按每n個(gè)為1組劃分成的各個(gè)部分積群,(c-2-1)生成表示輸入屬于該部分積群的n個(gè)部分積并且將該n個(gè)部分積之間的和作為m(<n)個(gè)部分積而輸出的加法電路的信息;與上述第1多個(gè)部分積的所有部分相對(duì)應(yīng),(C-2-2)反復(fù)進(jìn)行過(c-2-1)的處理之后,將作為在(c-2-1)的處理中生成的加法電路的輸出的所有部分積與上述第1多個(gè)部分積中未成為在(c-2-1)的處理中生成的加法電路的輸入信號(hào)的部分積重新設(shè)定為進(jìn)行(c-2-1)的處理的第1多個(gè)部分積;通過反復(fù)進(jìn)行(c-2-1)及(c-2-2)的處理,生成表示第1部分積和電路的信息;(d-4)的處理包括對(duì)應(yīng)于把上述第2部分積生成電路的輸出信號(hào)和上述第1邏輯非電路的輸出信號(hào)及第1修正信號(hào)構(gòu)成的第2多個(gè)部分積按每n個(gè)為1組劃分成的各個(gè)部分積群,(d-4-1)生成表示輸入屬于該部分積群的n個(gè)部分積并且將該n個(gè)部分積之間的和作為m(<n)個(gè)部分積而輸出的加法電路的信息;與上述第2多個(gè)部分積的所有部分相對(duì)應(yīng),(d-4-2)反復(fù)進(jìn)行過(d-4-1)的處理之后,將作為在(d-4-1)的處理中生成的加法電路的輸出的所有部分積與上述第2多個(gè)部分積中未成為在(d-4-1)的處理中生成的加法電路的輸入信號(hào)的部分積重新設(shè)定為進(jìn)行(d-4-1)的處理的第2多個(gè)部分積;通過反復(fù)進(jìn)行(d-4-1)及(d-4-2)的處理,生成表示第2部分積和電路的信息;(f-2)的處理包括對(duì)應(yīng)于把上述第4部分積生成電路的輸出信號(hào)和表示被乘數(shù)X的信號(hào)構(gòu)成的第3多個(gè)部分積按每n個(gè)為1組劃分成的各個(gè)部分積群,(f-2-1)生成表示輸入屬于該部分積群的n個(gè)部分積并且將該n個(gè)部分積之間的和作為m(<n)個(gè)部分積而輸出的加法電路的信息;與上述第3多個(gè)部分積的所有部分相對(duì)應(yīng),(f-2-2)反復(fù)進(jìn)行(f-2-1)的處理之后,將作為在(f-2-1)的處理中生成的加法電路的輸出的所有部分積與上述第3多個(gè)部分積中未成為在(f-2-1)的處理中生成的加法電路的輸入信號(hào)的部分積重新設(shè)定為進(jìn)行(f-2-1)的處理的第3多個(gè)部分積;通過反復(fù)進(jìn)行(f-2-1)及(f-2-2)的處理,生成表示部分積加法電路的信息。
22.用于生成表示求乘數(shù)與被乘數(shù)之積的邏輯電路信息的邏輯電路的自動(dòng)設(shè)計(jì)方法,具有如下處理(a)確定三個(gè)常數(shù)A1、A2、A3,以使常數(shù)A1常數(shù)A2、A3之和的差值A(chǔ)1-(A2+A3)等于常數(shù)的乘數(shù)A并且常數(shù)A1中值為1的位數(shù)和常數(shù)A2中值為1的位數(shù)以及常數(shù)A3中值為1的位數(shù)總和為最小;(b)判斷常數(shù)A1是否等于乘數(shù)A或者常數(shù)A2、A3是否均為0;(c)當(dāng)常數(shù)A1等于乘數(shù)A時(shí),(c-1)生成表示輸入常數(shù)A1和被乘數(shù)X并輸出它們的部分積的第1部分積生成電路的信號(hào);(c-2)生成表示輸入上述第1部分積生成電路的所有輸出信號(hào)并求出它們的和作為乘數(shù)A與被乘數(shù)X之積而輸出的第1部分積和電路的信息;(d)當(dāng)常數(shù)A1不等于乘數(shù)A并且常數(shù)A2及A3中至少1個(gè)不為0時(shí),(d-1)生成表示輸入常數(shù)A1和被乘數(shù)X并輸出它們的部分積的第2部分積生成電路的信息;(d-2)生成表示輸入常數(shù)A2、A3和被乘數(shù)X并輸出它們的部分積的第3部分積生成電路的信息;(d-3)生成表示輸入上述第3部分積生成電路的輸出信號(hào)并輸出其邏輯非信號(hào)的第1邏輯非電路的信息;(d-4)生成表示輸入上述第2部分積生成電路的輸出信息和上述第1邏輯非電路的輸出信號(hào)及第1修正信號(hào)并求出它們的和作為乘數(shù)A與被乘數(shù)X之積而輸出的第2部分積和電路的信息。
23.如權(quán)利要求22所述的邏輯電路的自動(dòng)設(shè)計(jì)方法,其中,(c-1)的處理包括相應(yīng)于常數(shù)A1的各位,(c-1-1)判斷常數(shù)A1的該位值是否為1;(c-1-2)當(dāng)常數(shù)A1的該位值為1時(shí),生成表示把代表被乘數(shù)X的信號(hào)作為部分積而輸出的電路的信息;(c-1-3)進(jìn)行過(c-1-1)及(c-1-2)的處理之后,生成表示把代表被乘數(shù)X的信號(hào)移1位的第1移位電路的信息并將該第1移位電路的輸出信號(hào)重新設(shè)定為在(c-1-1)及(c-1-2)的處理中使用的表示被乘數(shù)X的信號(hào);通過相應(yīng)于常數(shù)A1的所有位反復(fù)進(jìn)行(c-1-1)-(c-1-3)的處理,生成第1部分積生成電路;(d-1)的處理包括與常數(shù)A1的各位相對(duì)應(yīng),(d-1-1)判斷常數(shù)A1的該位值是否為1;(d-1-2)當(dāng)常數(shù)A1的該位值為1時(shí),生成表示把代表被乘數(shù)X的信號(hào)作為部分積而輸出的電路的信息;(d-1-3)進(jìn)行過(d-1-1)及(d-1-2)的處理之后,生成表示把代表被乘數(shù)X的信號(hào)移1位的第2移位電路的信息并將該第2移位電路的輸出信號(hào)重新設(shè)定為在(d-1-1)及(d-1-2)的處理中使用的表示被乘數(shù)X的信號(hào);與常數(shù)A1的所有位相對(duì)應(yīng),通過反復(fù)進(jìn)行(d-1-1)-(d-1-3)的處理,生成第2部分積生成電路;(d-2)的處理包括相應(yīng)于常數(shù)A2、A3的各位,(d-2-1)判斷常數(shù)A2、A3的該位值是否為1;(d-2-2)當(dāng)常數(shù)A2、A3的該位值為1時(shí),生成表示把代表被乘數(shù)X的信號(hào)作為部分積而輸出的電路的信息;(d-2-3)進(jìn)行過(d-2-1)及(d-2-2)的處理之后,生成表示把代表被乘數(shù)X的信號(hào)移1位的第3移位電路的信息并將該第3移位電路的輸出信號(hào)重新設(shè)定為在(d-2-1)及(d-2-2)的處理中使用的表示被乘數(shù)X的信號(hào);通過相應(yīng)于常數(shù)A2、A3的所有位反復(fù)進(jìn)行(d-2-1)-(d-2-3)的處理,生成第3部分積生成電路。
24.如權(quán)利要求22所述的邏輯電路的自動(dòng)設(shè)計(jì)方法,其中,(c-2)的處理包括對(duì)應(yīng)于把上述第1部分積生成電路的輸出信號(hào)構(gòu)成的第1多個(gè)部分積按每n個(gè)為1組劃分成的各個(gè)部分積群,(c-2-1)生成表示輸入屬于該部分積群的n個(gè)部分積并將該n個(gè)部分積之間的和作為m(<n)個(gè)部分積而輸出的加法電路的信息;對(duì)應(yīng)于上述第1多個(gè)部分積的所有部分,(c-2-2)反復(fù)進(jìn)行過(c-2-1)的處理之后,將作為(c-2-1)的處理中生成的加法電路的輸出的所有部分積與上述第1多個(gè)部分積中未成為在(c-2-1)的處理中生成的加法電路的輸入信號(hào)的部分積重新設(shè)定為進(jìn)行(c-2-1)的處理的第1多個(gè)部分積;通過反復(fù)進(jìn)行(c-2-1)及(c-2-2)的處理,生成表示第1部分積和電路的信息;(d-4)的處理包括對(duì)應(yīng)于把上述第2部分積生成電路的輸出信號(hào)和上述第1邏輯非電路的輸出信號(hào)及第1修正信號(hào)構(gòu)成的第2多個(gè)部分積按第n個(gè)為1組劃分成的各個(gè)部分積群,(d-4-1)生成表示輸入屬于該部分積群的n個(gè)部分積并將該n個(gè)部分積之間的和作為m(<n)個(gè)部分積而輸出的加法電路的信息;相應(yīng)于上述第2多個(gè)部分積的所有部分,(d-4-2)反復(fù)進(jìn)行(d-4-1)的處理之后,將作為在(d-4-1)的處理中生成的加法電路的輸出的所有部分積與上述第2多個(gè)部分積中未成為在(d-4-1)的處理中生成的加法電路的輸入信號(hào)的部分積重新設(shè)定為進(jìn)行(d-4-1)的處理的第2多個(gè)部分積;通過反復(fù)進(jìn)行(d-4-1)及(d-4-2)的處理,生成表示第2部分積和電路的信息。
25.如權(quán)利要求22所述的邏輯電路的自動(dòng)設(shè)計(jì)方法,其中,還包括如下處理(e)判斷常數(shù)A2是否等于乘數(shù)A的邏輯非,以及常數(shù)A3是否為1;(f)當(dāng)常數(shù)A2等于乘數(shù)A的邏輯非并且常數(shù)A3為1時(shí),(f-1)生成表示輸入常數(shù)A2和被乘數(shù)X并輸出它們的部分積的第4部分積生成電路的信息;(f-2)生成表示輸入上述第4部分積生成電路的所有輸出信號(hào)和表示被乘數(shù)X的信號(hào)并將它們的加法運(yùn)算結(jié)果作為部分積而輸出的部分積加法電路的信息;(f-3)生成表示輸入上述部分積加法電路的輸出信號(hào)并輸出其邏輯非信號(hào)的第2邏輯非電路的信息;(f-4)從被乘數(shù)X生成第2修正信號(hào);(f-5)生成表示輸入上述第2修正信號(hào)和上述第2邏輯非電路的輸出信號(hào)并求出它們的和作為乘數(shù)A與被乘數(shù)X之積而輸出的最終和電路的信息。
26.如權(quán)利要求25所述的邏輯電路的自動(dòng)設(shè)計(jì)方法,其中,(c-1)的處理包括相應(yīng)于常數(shù)A1的各位,(c-1-1)判斷常數(shù)A1的該位值是否為1;(c-1-2)當(dāng)常數(shù)A1的該位值為1時(shí),生成表示把代表被乘數(shù)X的信號(hào)作為部分積而輸出的電路的信息;(c-1-3)進(jìn)行過(c-1-1)及(c-1-2)的處理之后,生成表示把代表被乘數(shù)X的信號(hào)移1位的第1移位電路的信息并將該第1移位電路的輸出信號(hào)重新設(shè)定為在(c-1-1)及(c-1-2)的處理中使用的表示被乘數(shù)X的信號(hào);通過相應(yīng)于常數(shù)A1的所有位反復(fù)進(jìn)行(c-1-1)-(c-1-3)的處理,生成第1部分積生成電路;(d-1)的處理包括相應(yīng)于常數(shù)A1的各位,(d-1-1)判斷常數(shù)A1的該位值是否為1;(d-1-2)當(dāng)常數(shù)A1的該位值為1時(shí),生成表示把代表被乘數(shù)X的信號(hào)作為部分積而輸出的電路的信息;(d-1-3)進(jìn)行過(d-1-1)及(d-1-2)的處理之后,生成表示把代表被乘數(shù)X的信號(hào)移1位的第2移位電路的信息并將該第2移位電路的輸出信號(hào)重新設(shè)定為在(d-1-1)及(d-1-2)的處理中使用的表示被乘數(shù)X的信號(hào);與常數(shù)A1的所有位相對(duì)應(yīng),通過反復(fù)進(jìn)行(d-1-1)-(d-1-3)的處理,生成第2部分積生成電路;(d-2)的處理包括相應(yīng)于常數(shù)A2、A3的各位,(d-2-1)判斷常數(shù)A2、A3的該位值是否為1;(d-2-2)當(dāng)常數(shù)A2、A3的該位值為1時(shí),生成表示把代表被乘數(shù)X的信號(hào)作為部分積而輸出的電路的信息;(d-2-3)進(jìn)行過(d-2-1)及(d-2-2)的處理之后,生成表示把代表被乘數(shù)X的信號(hào)移1位的第3移位電路的信息并將該第3移位電路的輸出信號(hào)重新設(shè)定為在(d-2-1)及(d-2-2)的處理中使用的表示被乘數(shù)X的信號(hào);與常數(shù)A2、A3的所有位相對(duì)應(yīng),通過反復(fù)進(jìn)行(d-2-1)-(d-2-2)的處理,生成第3部分積生成電路;(f-1)的處理包括與常數(shù)A2的各位相對(duì)應(yīng),(f-1-1)判斷常數(shù)A2的該位值是否為1;(f-1-2)為常數(shù)A2的該位值為1時(shí),生成表示把代表被乘數(shù)X的信號(hào)作為部分積而輸出的電路的信息;(f-1-3)進(jìn)行過(f-1-1)及(f-1-2)的處理之后,生成表示把代表被乘數(shù)X的信號(hào)移1位的第4移位電路的信息并將該第4移位電路輸出信號(hào)重新設(shè)定為在(f-1-1)及(f-1-2)的處理中使用的表示被乘數(shù)X的信號(hào);通過相應(yīng)于常數(shù)A2的所有位反復(fù)進(jìn)行(f-1-1)-(f-1-3)的處理,生成第4部分積生成電路。
27.如權(quán)利要求25所述的邏輯電路的自動(dòng)設(shè)計(jì)方法,其中,(c-2)的處理包括對(duì)應(yīng)于把上述第1部分積生成電路的輸出信號(hào)構(gòu)成的第1多個(gè)部分積按每n個(gè)為1組劃分成的各個(gè)部分積群,(c-2-1)生成表示輸入屬于該部分積群的n個(gè)部分積并將該n個(gè)部分積之間的和作m(<n)個(gè)部分積而輸出的加法電路的信息;相應(yīng)于上述第1多個(gè)部分積的所有部分,(c-2-2)反復(fù)進(jìn)行過(c-2-1)的處理之后,將作為在(c-2-1)的處理中生成的加法電路的輸出的所有部分積與上述第1多個(gè)部分積中未成為在(c-2-1)的處理中生成的加法電路的輸入信號(hào)的部分積重新設(shè)定為進(jìn)行(c-2-1)的處理的第1多個(gè)部分積;通過反復(fù)進(jìn)行(c-2-1)及(c-2-2)的處理,生成表示第1部分積和電路的信息;(d-4)的處理包括對(duì)應(yīng)于把上述第2部分積生成電路的輸出信號(hào)和上述第1邏輯非電路的輸出信號(hào)及第1修正信號(hào)構(gòu)成的第2多個(gè)部分積按每n個(gè)為1組劃分成的各個(gè)部分積群,(d-4-1)生成表示輸入屬于該部分積群的n個(gè)部分積并將該n個(gè)部分積之間的和作為m(<n)個(gè)部分積而輸出的加法電路的信息;相應(yīng)于上述第2多個(gè)部分積的所有部分,(d-4-2)反復(fù)進(jìn)行過(d-4-1)的處理之后,將作為在(d-4-1)的處理中生成的加法電路的輸出的所有部分積與上述第2多個(gè)部分積中未成為在(d-4-1)的處理中生成的加法電路的輸入信號(hào)的部分積重新設(shè)定為進(jìn)行(d-4-1)的處理的第2多個(gè)部分積;通過反復(fù)進(jìn)行(d-4-1)及(d-4-2)的處理,生成表示第2部分積和電路的信息;(f-20的處理包括對(duì)應(yīng)于把上述第4部分積生成電路的輸出信號(hào)和表示被乘數(shù)X的信號(hào)構(gòu)成的第3多個(gè)部分積按每n個(gè)為1組劃分成的各個(gè)部分積群,(f-2-1)生成表示輸入屬于該部分積群的n個(gè)部分積并將該n個(gè)部分積之間的和作為m(<n)個(gè)部分積而輸出的加法電路的信息;相應(yīng)于上述第3多個(gè)部分積的所有部分,(f-2-2)反復(fù)進(jìn)行過(f-2-1)的處理之后,將作為在(f-2-1)的處理中生成的加法電路的輸出的所有部分積與上述第3多個(gè)部分積中未成為在(f-2-1)的處理中生成的加法電路的輸入信號(hào)的部分積重新設(shè)定為進(jìn)行(f-2-1)的處理的第3多個(gè)部分積;通過反復(fù)進(jìn)行(f-2-1)及(f-2-2)的處理,生成表示部分積加法電路的信息。
28.用于生成表示求乘數(shù)與被乘數(shù)之積的邏輯電路信息的邏輯電路的自動(dòng)設(shè)計(jì)方法,具有如下處理(a)確定兩個(gè)常數(shù)A1、A2,以使常數(shù)A1與常數(shù)A2之差A(yù)1-A2等于常數(shù)的乘數(shù)A;(b)判斷乘數(shù)A中值為1的位數(shù)和常數(shù)A1中值為1的位數(shù)與常數(shù)A2中值為1的位數(shù)之和兩者之中哪一個(gè)為最小;(c)當(dāng)乘數(shù)A中值為1的位數(shù)為最小時(shí),(c-1)生成表示輸入乘數(shù)A和被乘數(shù)X,并將乘數(shù)A的各位與被乘數(shù)X之積作為部分積而輸出的第1部分積生成電路的信息;(c-2)生成表示輸入上述第1部分積生成電路的所有輸出信號(hào)并求出它們的和作為乘數(shù)A與被乘數(shù)X之積而輸出的第1部分積和電路的信息;(d)當(dāng)常數(shù)A1中值為1的位數(shù)與A2中值為1的位數(shù)之和為最小時(shí),(d-1)生成表示輸入常數(shù)A1和被乘數(shù)X并輸出它們的部分積的第2部分積生成電路的信息;(d-2)生成表示輸入常數(shù)A2和被乘數(shù)X并輸出它們的部分積的第3部分積生成電路的信息;(d-3)生成表示輸入上述第3部分積生成電路的輸出信號(hào)并輸出其邏輯非信號(hào)的邏輯非電路的信息;(d-4)生成表示輸入上述第2部分積生成電路的輸出信號(hào)和上述邏輯非電路的輸出信號(hào)以及修正信號(hào)并求出它們的和作為乘數(shù)A與被乘數(shù)X之積而輸出的第2部分積和電路的信息。
29.邏輯電路的自動(dòng)設(shè)計(jì)系統(tǒng),具有輸入各種信息的輸入裝置、存儲(chǔ)處理中的各種信息的存儲(chǔ)裝置、生成表示求從上述輸入裝置輸入的乘數(shù)與被乘數(shù)之積的邏輯電路的信息的運(yùn)算處理裝置和輸出利用該運(yùn)算處理裝置生成的表示邏輯電路的信息的輸出裝置,上述運(yùn)算處理裝置進(jìn)行如下處理(a)確定兩個(gè)常數(shù)A1、A2,以使常數(shù)A1與常數(shù)A2之差A(yù)1-A2等于常數(shù)的乘數(shù)A;(b)判斷乘數(shù)A中值為1的位數(shù)和常數(shù)A1中值為1的位數(shù)與常數(shù)A2中值為1的位數(shù)之和兩者之中哪一個(gè)為最小;(c)當(dāng)乘數(shù)A中值為1的位數(shù)為最小時(shí),(c-1)生成表示輸入乘數(shù)A和被乘數(shù)X并將乘數(shù)A的各位與被乘數(shù)X之積作為部分積而輸出的第1部分積生成電路的信息;(c-2)生成表示輸入上述第1部分積生成電路的所有輸出信號(hào)并求出它們的和作為乘數(shù)A與被乘數(shù)X之積而輸出的第1部分積和電路的信息;(d)當(dāng)常數(shù)A1中值為1的位數(shù)與常數(shù)A2中值為1的位數(shù)之和為最小時(shí),(d-1)生成表示輸入常數(shù)A1和被乘數(shù)X并輸出它們的部分積的第2部分積生成電路的信息;(d-2)生成表示輸入常數(shù)A2和被乘數(shù)X并輸出它們的部分積的第3部分積生成電路的信息;(d-3)生成表示輸入上述第3部分積生成電路的輸出信號(hào)并輸出其邏輯非信號(hào)的邏輯非電路的信息;(d-4)生成表示輸入上述第2部分積生成電路的輸出信號(hào)和上述邏輯非電路的輸出信號(hào)以及修正信號(hào)并求出它們的和作為乘數(shù)A與被乘數(shù)X之積而輸出的第2部分積和電路的信息。
30.如權(quán)利要求29所述的邏輯電路的自動(dòng)設(shè)計(jì)系統(tǒng),其中,在上述運(yùn)算處理裝置進(jìn)行的(c-2)的處理中生成的第1部分積和電路具有第1部分積加法電路和第1最終和電路,第1部分積加法電路對(duì)輸入的信號(hào)進(jìn)行加法運(yùn)算,并將該加法運(yùn)算結(jié)果作為部分積而輸出;第1最終和電路至少輸入上述第1部分積加法電路的輸出信號(hào),并求出它們的和作為乘數(shù)A與被乘數(shù)X之積而輸出;在上述運(yùn)算處理裝置進(jìn)行的(d-4)的處理中生成的第2部分積和電路具有第2部分積加法電路和第2最終和電路,第2部分積加法電路對(duì)輸入的信號(hào)進(jìn)行加法運(yùn)算,并將該加法運(yùn)算結(jié)果作為部分積而輸出;第2最終和電路至少輸入上述第2部分積加法電路的輸出信號(hào),并求出它們的和作為乘數(shù)A與被乘數(shù)X之積而輸出。
31.邏輯電路的自動(dòng)設(shè)計(jì)系統(tǒng),具有輸入各種信息的輸入裝置、存儲(chǔ)處理中的各種信息的存儲(chǔ)裝置、生成表示求從上述輸入裝置輸入的乘數(shù)與被乘數(shù)之積的邏輯電路的信息的運(yùn)算處理裝置和輸出由該運(yùn)算處理裝置生成的表示邏輯電路的信息的輸出裝置,上述運(yùn)算處理裝置進(jìn)行如下處理(a)確定兩個(gè)常數(shù)A1、A2,以使常數(shù)A1與常數(shù)A2之差A(yù)1-A2等于常數(shù)的乘數(shù)A;(b)判斷乘數(shù)A中值為1的位數(shù)和常數(shù)A2中值為1的位數(shù)與常數(shù)A2中值為1的位數(shù)之和以及乘數(shù)A中值為0的位數(shù)與2之和或者為最小;(c)當(dāng)乘數(shù)A中值為1的位數(shù)為最小時(shí),(c-1)生成表示輸入乘數(shù)A和被乘數(shù)X并且將乘數(shù)A的各位與被乘數(shù)X之積作為部分積而輸出的第1部分積生成電路的信息;(c-2)生成表示輸入上述第1部分積生成電路的所有輸出信號(hào)并求出它們的和作為乘數(shù)A與被乘數(shù)X之積而輸出的第1部分積和電路的信息;(d)當(dāng)常數(shù)A1中值為1的位數(shù)與常數(shù)A2中值為1的位數(shù)之和為最小時(shí),(d-1)生成表示輸入常數(shù)A1和被乘數(shù)X并輸出它們的部分積的第2部分積生成電路的信息;(d-2)生成表示輸入常數(shù)A2和被乘數(shù)X并輸出它們的部分積的第3部分積生成電路的信息;(d-3)生成表示輸入上述第3部分積生成電路的輸出信號(hào)并輸出其邏輯非信號(hào)的第1邏輯非電路的信息;(d-4)生成表示輸入上述第2部分積生成電路的輸出信號(hào)和上述第1邏輯非電路的輸出信號(hào)以及第1修正信號(hào)并求出它們的和作為乘數(shù)A與被乘數(shù)X之積而輸出的第2部分積和電路的信息;(e)當(dāng)乘數(shù)A中值為0的位數(shù)與2之和為最小時(shí),(e-1)從乘數(shù)A生成乘數(shù)A的邏輯非信號(hào);(e-2)生成表示輸入上述乘數(shù)A的邏輯非信號(hào)和被乘數(shù)X并將上述乘數(shù)A的邏輯非信號(hào)的各位與被乘數(shù)X之積作為部分積而輸出的第4部分積生成電路的信息;(e-3)生成表示輸入上述第4部分積生成電路的所有輸出信號(hào)和表示被乘數(shù)X的信號(hào)并將它們的加法運(yùn)算結(jié)果作為部分積而輸出的部分積加法電路的信息;(e-4)生成表示輸入上述部分積加法電路的輸出信號(hào)并輸出其邏輯非信號(hào)的第2邏輯非電路的信息;(e-5)從被乘數(shù)X生成第2修正信號(hào);(e-6)生成表示輸入上述第2修正信號(hào)和上述第2邏輯非電路的輸出信號(hào)并求出它們的和作為乘數(shù)A與被乘數(shù)X之積而輸出的最終和電路的信息。
32.具有求乘數(shù)與被乘數(shù)之積的乘法運(yùn)算功能的邏輯電路的自動(dòng)設(shè)計(jì)裝置,具有輸入裝置、乘數(shù)分割器、第1部分積生成電路生成器、第2部分積生成電路生成器、邏輯非電路生成器、部分積總數(shù)判斷器、部分積加法電路生成器、修正信號(hào)生成器和最終和電路生成器,其中,輸入裝置用于從外部輸入表示乘數(shù)A的信息、表示被乘數(shù)X的信息和表示積P的信息等各種信息;乘數(shù)分割器用于輸入表示乘數(shù)A的信息,并確定表示常數(shù)A1的信息和表示常數(shù)A2的信息以使常數(shù)A1與常數(shù)A2之差A(yù)1-A2等于乘數(shù)A;第1部分積生成電路生成器用于輸入表示常數(shù)A1的信息和表示被乘數(shù)X的信息并生成表示第1部分積生成電路的信息,該第1部分積生成電路輸入常數(shù)A1和被乘數(shù)X,并將常數(shù)A1中值不為0的各位與被乘數(shù)X之積作為部分積而輸出;第2部分積生成電路生成器用于輸入表示常數(shù)A2的信息和表示被乘數(shù)X的信息,并生成表示第2部分積生成電路的信息,該第2部分積生成電路輸入常數(shù)A2和被乘數(shù)X,并將常數(shù)A2中值不為0的各位與被乘數(shù)X之積作為部分積而輸出;邏輯非電路生成器用于輸入表示上述第2部分積生成電路的輸出信號(hào)的信息,并生成表示邏輯非電路的信息,該邏輯非電路輸入上述第2部分積生成電路的輸出信號(hào),輸出其邏輯非信號(hào);部分積總數(shù)判斷器用于判斷上述第1部分積生成電路及邏輯非電路的輸出信號(hào)個(gè)數(shù)的總數(shù);部分積加法電路生成器用于輸入表示上述第1部分積生成電路的輸出信號(hào)的信息和表示上述邏輯非電路的輸出信號(hào)的信息,并生成表示部分積加法電路的信息,該部分積加法電路輸入上述第1部分積生成電路及邏輯非電路的所有輸出信號(hào),并將它們的加法運(yùn)算結(jié)果作為部分積而輸出;修正信號(hào)生成電路用于輸入表示上述邏輯非電路的輸出信號(hào)的信息或表示上述第2部分積生成電路的輸出信號(hào)的信息中的任一個(gè),并根據(jù)表示該信息的輸出信號(hào)的個(gè)數(shù)生成修正信號(hào);最終和電路生成器用于輸入表示上述部分積加法電路的輸出信號(hào)的信息和表示上述修正信號(hào)的信息以及表示積P的信息,并生成表示部分積和電路的信息,該分積和電路用于求上述部分積加法電路的輸出信號(hào)與上述修正信號(hào)之和,將該和作為乘數(shù)A與被乘數(shù)X之積設(shè)定為積P并輸出該積P。
33.如權(quán)利要求32所述的邏輯電路的自動(dòng)設(shè)計(jì)裝置,其中,上述部分積加法電路生成器用于生成表示由排列成樹狀加法器構(gòu)成的部分積加法電路的信息。
34.具有求乘數(shù)與被乘數(shù)之積的乘法運(yùn)算功能的邏輯電路的自動(dòng)設(shè)計(jì)裝置,具有輸入裝置、乘數(shù)分割器、第1部分積生成電路生成器、第2部分積生成電路生成器、邏輯非電路生成器、部分積總數(shù)判斷器、修正信號(hào)生成器、部分積加法電路生成器和最終和電路生成器,其中,輸入裝置用于從外部輸入表示乘數(shù)A的信息、表示被乘數(shù)X的信息和表示積P的信息等各種信息;乘數(shù)分割器輸入表示乘數(shù)A的信息,并確定表示常數(shù)A1的信息和表示常數(shù)A2的信息以使常數(shù)A1與常數(shù)A2之差A(yù)1-A2等于乘數(shù)A;第1部分積生成電路生成器用于輸入表示常數(shù)A1的信息和表示被乘數(shù)X的信息,并生成表示第1部分積生成電路的信息,該第1部分積生成電路輸入常數(shù)A1和被乘數(shù)X,并將常數(shù)A1中值不為0的各位與被乘數(shù)X之積作為部分積而輸出;第2部分積生成電路生成器用于輸入表示常數(shù)A2的信息和表示被乘數(shù)X的信息,并生成表示第2部分積生成電路的信息,該第2部分積生成電路輸入常數(shù)A2和被乘數(shù)X,并將常數(shù)A2中值不為0的各位與被乘數(shù)X之積作為部分積而輸出;邏輯非電路生成器用于輸入表示上述第2部分積生成電路的輸出信號(hào)的信息,并生成表示邏輯非電路的信息,該邏輯非電路輸出上述第2部分積生成電路的輸出信號(hào),并輸出其邏輯非信號(hào);部分積總數(shù)判斷器用于判斷上述第1部分積生成電路和邏輯非電路的輸出信號(hào)個(gè)數(shù)的總數(shù);修正信號(hào)生成器用于輸入表示上述邏輯非電路的輸出信號(hào)的信息或表示上述第2部分積生成電路的輸出信號(hào)的信息中的任一個(gè),并根據(jù)表示該信息的輸出信號(hào)的個(gè)數(shù)生成修正信號(hào);部分積加法電路生成器用于輸入表示上述第1部分積生成電路的輸出信號(hào)的信息和表示上述邏輯非電路的輸出信號(hào)的信息以及表示上述修正信號(hào)的信息,并生成表示部分積加法電路的信息,該部分積加法電路輸入上述第1部分積生成電路和邏輯非電路的全部輸出信號(hào)和上述修正信號(hào),并將它們的加法運(yùn)算結(jié)果作為部分積而輸出;最終和電路生成器用于輸入表示上述部分積加法電路的輸出信號(hào)的信息和表示積P的信息,并生成表示最終和電路的信息,該最終和電路用于求上述部分積加法電路的輸出信號(hào)的總和,將該總和作為乘數(shù)A與被乘數(shù)X之積設(shè)定為各積P并輸出該積P。
35.如權(quán)利要求34所述的邏輯電路的自動(dòng)設(shè)計(jì)方法,其中,上述部分積加法電路生成器生成表示由排列成樹狀的加法器構(gòu)成的部分積加法電路的信息。
36.具有求乘數(shù)與被乘數(shù)之積的乘法運(yùn)算功能的邏輯電路的自動(dòng)設(shè)計(jì)裝置,具有輸入裝置、邏輯非信號(hào)生成器、部分積生成電路生成器、部分積加法電路生成器、邏輯非電路生成器、修正信號(hào)生成器和最終和電路生成器,其中,輸入裝置用于輸入表示乘數(shù)A的信息、表示被乘數(shù)X的信息和表示積P的信息等各種信息;邏輯非信號(hào)生成器用于輸入表示乘數(shù)A的信息并生成乘數(shù)A的邏輯非信號(hào);部分積生成電路生成器用于輸入表示上述乘數(shù)A的邏輯非信號(hào)的信息和表示被乘數(shù)X的信息,并生成表示部分積生成電路的信息,該部分積生成電路輸入上述乘數(shù)A的邏輯非信號(hào)和被乘數(shù)X,并將上述乘數(shù)A的邏輯非信號(hào)中值不為0的各位與被乘數(shù)X之積作為部分積而輸出;部分積加法電路生成器用于輸入表示作為上述部分積生成電路輸出的部分積的信息和表示被乘數(shù)X的信息,并生成表示部分積加法電路的信息,該部分積加法電路輸入作為上述部分積生成電路輸出的所有部分積和被乘數(shù)X,并將它們的加法運(yùn)算結(jié)果作為部分積而輸出;邏輯非電路生成器用于輸入表示上述部分積加法電路的輸出信號(hào)的信息,并生成表示邏輯非電路的信息,該邏輯非電路輸入上述部分積加法電路的輸出信號(hào),并輸出其邏輯非信號(hào);修正信號(hào)生成器用于輸入表示被乘數(shù)X的信息,并根據(jù)被乘數(shù)X生成修正信號(hào);最終和電路生成器用于輸入表示上述修正信號(hào)的信息和表示上述部分積加法電路的輸出信號(hào)的信息以及表示積P的信息,并生成表示部分積和電路的信息,該部分積和電路用于求上述修正信號(hào)與上述部分積加法電路的輸出信號(hào)之和,將該和作為乘數(shù)A與被乘數(shù)X之積設(shè)定為積P并輸出該積P。
37.如權(quán)利要求36所述的邏輯電路的自動(dòng)設(shè)計(jì)裝置,其中,上述部分積加法電路生成器生成表示由排列成樹狀的加法器構(gòu)成的部分積加法電路的信息。
38.具有求乘數(shù)與被乘數(shù)之積的乘法運(yùn)算功能的邏輯電路的自動(dòng)設(shè)計(jì)裝置,具有輸入裝置、部分積生成電路生成器、部分積數(shù)判斷器、部分積加法電路生成器和最終和電路生成器,其中,輸入裝置用于輸入表示乘數(shù)A的信息和表示被乘數(shù)X的信息以及表示積P的信息等各種信息;部分積生成電路生成器用于輸入表示乘數(shù)A的信息和表示被乘數(shù)X的信息,并生成表示部分積生成電路的信息,該部分積生成電路輸入乘數(shù)A和被乘數(shù)X,并將乘數(shù)A中值不為0的各位與被乘數(shù)X之積作為部分積而輸出;部分積數(shù)判斷器用于判斷上述部分積生成電路的輸出信號(hào)的個(gè)數(shù);部分積加法電路生成器用于輸入表示上述部分積生成電路的輸出信號(hào)的信息,并生成表示部分積加法電路的信息,該部分積加法電路輸入上述部分積生成電路的所有輸出信號(hào),并將它們的加法運(yùn)算結(jié)果作為部分積而輸出;最終和電路生成器用于輸入表示上述部分積加法電路的輸出信號(hào)的信息和表示積P的信息,并生成表示部分積和電路的信息,該部分積和電路輸入上述部分積加法電路的所有輸出信號(hào),求出它們的和,將該和作為乘數(shù)A與被乘數(shù)X之積設(shè)定為積P并輸出該積P。
39.如權(quán)利要求38所述的邏輯電路的自動(dòng)設(shè)計(jì)裝置,其中,上述部分積加法電路生成器生成表示由排列成樹狀的加法器構(gòu)成的部分積加法電路的信息。
40.對(duì)于常數(shù)A1、A2輸出滿足A=A1-A2的乘數(shù)A與被乘數(shù)X之積的乘法器,具有第1部分積生成單元、第2部分積生成單元、邏輯非單元和部分積單元,其中,第1部分積生成單元輸入常數(shù)A1和被乘數(shù)X,輸出只與常數(shù)A1中值為1的各位對(duì)應(yīng)的部分積;第2部分積生成單元輸入常數(shù)A2和被乘數(shù)X,輸出只與常數(shù)A2中值為1的各位對(duì)應(yīng)的部分積;邏輯非單元輸入該第2部分積生成單元的輸出信號(hào),輸出其邏輯非信號(hào);部分積和單元輸入上述第1部分積生成單元的輸出信號(hào)和上述邏輯非單元的輸出信號(hào)以及修正信號(hào),求出它們的和作為乘數(shù)A與被乘數(shù)X之積而輸出。
41.如權(quán)利要求40所述的乘法器,其中,上述部分積和單元包括部分積加法單元和最終和單元,上述部分積加法單元輸入上述第1部分積生成單元的輸出信號(hào)和上述邏輯非單元的輸出信號(hào),利用單級(jí)或多級(jí)加法器對(duì)上述第1部分積生成單元的輸出信號(hào)和上述邏輯非單元的輸出信號(hào)進(jìn)行加法運(yùn)算,并將該加法運(yùn)算結(jié)果作為部分積而輸出;最終和單元輸入該部分積加法單元的輸出信號(hào)和修正信號(hào),并求出它們的和作為乘數(shù)A與被乘數(shù)X之積而輸出。
42.如權(quán)利要求41所述的乘法器,基中,上述部分積加法單元包含保留進(jìn)位加法器。
43.輸出乘數(shù)A與被乘數(shù)X之積的乘法器,具有部分積生成單元、部分積加法單元、邏輯非單元和部分積和單元,其中,部分積加法單元輸入乘數(shù)A的邏輯非信號(hào)和被乘數(shù)X,輸出只與上述乘數(shù)A的邏輯非信號(hào)中值為1的各位對(duì)應(yīng)的部分積;部分積加法單元輸入該部分積生成單元的輸出信號(hào)和被乘數(shù)X,利用單級(jí)或多級(jí)加法器對(duì)上述部分積生成單元的輸出信號(hào)與被乘數(shù)X進(jìn)行加法運(yùn)算,并將該加法運(yùn)算結(jié)果作為部分積而輸出;邏輯非單元輸入該部分積加法單元的輸出信號(hào),并輸出其邏輯非信號(hào);部分積和單元輸入該邏輯非單元的輸出信號(hào)和根據(jù)被乘數(shù)X可能生成的修正信號(hào),并求出上述邏輯非單元的輸出信號(hào)與上述修正信號(hào)之和作為乘數(shù)A與被乘數(shù)X之積而輸出。
44.如權(quán)利要求43所述的乘法器,其中,上述部分積加法單元包含保留進(jìn)位加法器。
全文摘要
用于生成表示求乘數(shù)與被乘數(shù)之積的邏輯電路的信息的邏輯電路自動(dòng)設(shè)計(jì)方法,相應(yīng)于乘數(shù)的各位判斷乘數(shù)是變數(shù)還是常數(shù),當(dāng)乘數(shù)為常數(shù)時(shí),判斷乘數(shù)的該位值是否為1,限于乘數(shù)的該位值為1的情況生成將表示被乘數(shù)的信號(hào)作為部分積而輸出的電路,將表示被乘數(shù)的信號(hào)移1位后重新將其設(shè)定為表示被乘數(shù)的信號(hào)。通過相應(yīng)于乘數(shù)的所有位反復(fù)進(jìn)行上述處理,生成求與乘數(shù)的各位對(duì)應(yīng)的部分積的電路。
文檔編號(hào)G06F7/533GK1106941SQ9411559
公開日1995年8月16日 申請(qǐng)日期1994年8月30日 優(yōu)先權(quán)日1993年9月2日
發(fā)明者西山保, 津幡真太郎 申請(qǐng)人:松下電器產(chǎn)業(yè)株式會(huì)社