JPWO2005050494A1 - グラフ幅削減装置及びグラフ幅削減方法、並びに論理回路合成装置及び論理回路合成方法 - Google Patents
グラフ幅削減装置及びグラフ幅削減方法、並びに論理回路合成装置及び論理回路合成方法 Download PDFInfo
- Publication number
- JPWO2005050494A1 JPWO2005050494A1 JP2005515662A JP2005515662A JPWO2005050494A1 JP WO2005050494 A1 JPWO2005050494 A1 JP WO2005050494A1 JP 2005515662 A JP2005515662 A JP 2005515662A JP 2005515662 A JP2005515662 A JP 2005515662A JP WO2005050494 A1 JPWO2005050494 A1 JP WO2005050494A1
- Authority
- JP
- Japan
- Prior art keywords
- function
- node
- graph
- variable
- binary decision
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/34—Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
Abstract
Description
(1)多端子二分決定グラフ(Multi−Terminal Binary Decision Diagram:MTBDD)を用いる方法(非特許文献7,8参照)
(2)出力を幾つかのグループに分割して構成する方法(非特許文献7参照)
(3)分割理論を用いる方法(非特許文献9,10参照)
(4)代入による方法(非特許文献11参照)
(5)Hyper Functionを用いる方法(非特許文献12参照)
(6)非零出力符号化特性関数(Encoded Characteristic Function for Non−zero:ECFN)を用いた時分割実現による方法(非特許文献4,5参照)
(7)以上のうちいくつかの方法の組み合わせによる方法(非特許文献11参照)
S.Brown,R.J.Francis,J.Rose,and Z.G.Vranesic,″Field−Programmable Gate Arrays″,Kluwer Academic Publishers,1992. P.Chow,S.O.Seo,J.Rose,K.Chung,G.Paez−Monzon,and I.Rahardja,″The design of an SRAM−based field−programmable gate array−−−Part I:Architecture,″IEEE Transactions on VLSI Systems,vol.7,pp.191−197,June 1999. Chow,P.,S.Seo,J.Rose,K.Chung,G.Pez−Monzn and I.Rahardja.″The Design of an SRAM−Based Field−Programmable Gate Array,Part II:Circuit Design and Layout″,IEEE Transactions on Very Large Scale Integration(VLSI)Systems,Vol.7 No.3,Sept.1999,pp.321−330. 笹尾勤,松浦宗寛,井口幸洋,"多出力関数のカスケード実現と再構成可能ハードウェアによる実現",電子情報通信学会FTS研究会,FTS2001−8,pp.57−64,三重大学(2001−04). T.Sasao,M.Matsuura,and Y.Iguchi,″A cascade realization of multiple−output fulnction for reconfigurable hardware,″International Workshop on Logic and Synthesis(IWLS01),Lake Tahoe,CA,June 12−15,2001.pp.225−230. T.Sasao and M.Matsuura,″DECOMPOS:An integrated system for functional decomposition″,1998 International Workshop on Logic Synthesis,Lake Tahoe,June 1998. Y−T.Lai,M.Pedram and S.B.K.Vrudhula,″BDD based decomposition of logic functions with application to FPGA synthesis″,30th ACM/IEEE Design Automation Conference,June 1993. T.Sasao,″FPGA design by generalized functional decomposition″,In Logic Synthesis and Optimization,Sasao ed.,Kluwer Academic Publisher,pp.233−258,1993. C.Scholl and P.Molitor,″Communication based FPGA synthesis for multi−output Boolean functions″,Asia and South Pacific Design Automation Conference,pp.279−287,Aug.1995. B.Wurth,K.Eckl,and K.Anterich,″Functional multiple−output decomposition:Theory and implicit algorithm″,Design Automation Conf.,pp.54−59,June 1995. H.Sawada,T.Suyama,and A.Nagoya,″Logic synthesis for look−up table based FPGAs using functional decomposition and support minimization″,ICCAD,pp.353−359,Nov.1995. J.−H.R.Jian,J.−Y.Jou,and J.−D.Huang,″Compatible class encoding in hyper−function decomposition for FPGA synthesis″,Design Automation Conference,pp.712−717,June 1998. P.Ashar and S.Malik,″Fast functional simulation using branching programs″,Proc.International Conference on Computer Aided Design,pp.408−412,Nov.1995. C.Scholl,R.Drechsler,and B.Becker,″Functional simulation using binary decision diagram″,ICCAD’97,pp.8−12,Nov.1997. A.Mishchenko and T.Sasao,″Logic Synthesis of LUT Cascades with Limited Rails″,電子情報通信学会VLSI設計技術研究会,VLD2002−9,琵琶湖(2002−11) M.R.Garey,D.S.Johnson,″Computers and Intractability:A Guide to the Theory of NP−Completeness″,W.H.Freeman & Co.,New York,1979.
〔定義1〕(サポート変数)
関数Fが変数xに依存するとき、xをFの「サポート変数(support variable)」という。関数Fのサポート変数の集合をsupp(F)と記す。
〔定義終わり〕
ブール変数をxと記し、x全体の集合をB={0,1}と記す。論理変数X(∈Bn,nは任意の自然数)の関数F(X):Bn→Bm(mは任意の自然数)を「完全定義関数(completely specified function)」という。特に、mが2以上の自然数の場合を「完全定義多出力関数(completely specified multiple−output function)」といい、m=1の場合を「完全定義単一出力関数(completely specified single−output function)」という。
〔定義終わり〕
ある関数f(X)の関数値が0でも1でもよいことを「ドント・ケア(don’t care)」といい、dと記す。論理変数X(∈Bn,nは任意の自然数)の関数F(X):Bn→{0,1,d}m(mは任意の自然数)を「不完全定義関数(incompletely specified function)」という。特に、mが2以上の自然数の場合を「不完全定義多出力関数(incompletely specified multiple−output function)」といい、m=1の場合を「不完全定義単一出力関数(incompletely specified single−output function)」という。
〔定義終わり〕
論理関数の入力変数をX=(x1,x2,…,xn)とする。Xの変数の集合を{X}で表す。{X1}∪{X2}={X}かつ{X1}∩{X2}=φのとき、X=(X1,X2)を「Xの分割(partition)」という。また、Xの変数の個数を|X|で表す。
〔定義終わり〕
論理関数F(X)に対して、Xの分割をX=(X1,X2)とする。また、|X1|=n1,|X2|=n2とする。このとき、2n1列2n2行の表で、各行、各列に2進符号のラベルを持ち、その要素がFの真理値であるような表を、Fの「分解表(decomposition chart)」という。このとき、X1を「束縛変数(bound variable)」、X2を「自由変数(free variable)」という。ここで、分解表の列、行は、それぞれn1,n2ビットのすべてのパターンを有する。
〔定義終わり〕
分解表の異なる列パターンの数を「列複雑度(column multiplicity)」といい、μと記す。列パターンが表す関数を「列関数(column function)」という。
〔定義終わり〕
(表1)に4入力1出力不完全定義関数の分解表を示す。すべての列パターンが異なるので、列複雑度μは4となる。
f(X)=0,1,dを満たすすべてのXの集合を、それぞれ、「OFF集合(OFF−set)」、「ON集合(ON−set)」、「DC集合(DC−set)」といい、f−1(0),f−1(1),f−1(d)と記す。論理変数X(∈Bn)の不完全定義関数をf(X)とする。OFF集合f−1(0)に属するすべてのXに1を対応づけ、それ以外のXに0を対応づける関数を「OFF関数(OFF−function)」といい、f_0と記す。
入力変数をX=(x1,x2,…,xn)(∈Bn)とし、完全定義多出力関数をF(X)=(f0(X),f1(X),…,fm−1(X))(mは自然数)とする。このとき、以下の式(5)ように定義される関数x(X,Y)を多出力論理関数Fの「特性関数(characteristic function)」という(非特許文献14参照)。ここで、Y=(y0,…,ym−1)は出力を表す変数である。
入力変数X=(x1,x2,…,xn)(∈Bn)の不完全定義多出力関数をF(X)=(f0(X),f1(X),…,fm−1(X))とする。このとき、以下の式(10)により定義される関数x(X,Y)を不完全定義多出力関数Fの特性関数という。ここで、Y=(y0,…,ym−1)は出力を表す変数である。
(表2)に示した4入力2出力の不完全定義関数を考える。
多出力論理関数F(X)=(f0(X),f1(X),…,fm−1(X))の「特性関数二分決定グラフ(Binary Decision Diagram for Characteristic Function:BDD for CF)」とは、多出力論理関数F(X)の特性関数x(X,Y)を表現する二分決定グラフ(Binary Decision Diagram:BDD)をいう。但し、二分決定グラフの変数は、根節点を最上位としたとき、変数yjはfjに依存する入力変数xi∈supp(fj)よりも下位に置く。ここに、supp(fj)はfjの依存変数の集合を表す。(非特許文献13,14参照)
〔定義終わり〕
図1(a)の真理値表によって表現される多出力論理関数の特性関数二分決定グラフは、図1(b)により表される。ここで、○は変数節点を表し、□は特性関数値の節点を表す。
〔例終わり〕
特性関数二分決定グラフにおいて、出力を表す節点yj(∈Y)から出る枝(edge)のうち、定数0に接続する枝を取り除き、節点yjの親節点(parent node)から節点yjの定数0以外の子節点(child node)へ直接枝を繋ぐ。この作業を、yjを表現する総ての節点に対して実行する操作を、「出力変数yjの短絡除去(removal of the output variabley_i by shorting)」という。
〔定義終わり〕
(zn+m,zn+m−1,…,z1)を特性関数二分決定グラフの変数順序とする。ここで、zn+mは、根節点に対応する。特性関数二分決定グラフの高さkでの「幅」とは、変数zkと変数zk+1との間の枝の本数をいう。ここで、同じ節点に接続している枝は一つと数え、定数0に向かう枝は無視する。また、特性関数二分決定グラフの高さ0での幅を1と定義する。
〔定義終わり〕
図1(b)の特性関数二分決定グラフにおいては、終端節点(特性関数値がラベル付けられた節点)の高さが0、変数y2の高さが1、変数y1の高さが2、変数x4の高さが3、…、変数x1の高さが7となる。また、高さ1での幅は、変数y1の節点から変数y2の節点へ向かう枝の本数(但し、終端節点0へ向かう枝は無視するものとする。)で2である。また、高さ2での幅は、変数x4の節点から変数y1の節点へ向かう枝の本数で4である。
〔例終わり〕
2つの不完全定義列関数をF(1)=(f0 (1),f1 (1)…,fm−1 (1)),F(2)=(f0 (2),f1 (2),…,fm−1 (2))とする。このとき、fi (1)=d又はfi (2)=dであるF(1),F(2)の各要素に対して、次のような論理積演算fi (1)・fi (2)を行うことを「ドント・ケアへの定数の割り当て(don’t care assignment)」という。
二つの不完全定義関数faとfbにドント・ケアへの定数の割り当てを行うことで、同じ関数にできる場合、faとfbは「両立する(compatible)」といい、fa〜fbと記す。
〔定義終わり〕
三つの不完全定義関数の特性関数をxa,xbとする。xa〜xb且つxc=xaxbのとき、xc〜xa且っxc〜xbが成立する。
〔補題終わり〕
(表1)の分解表で、列関数の対{Φ1,Φ2},{Φ1,Φ3},{Φ3,Φ4}は両立する。列Φ1とΦ2の論理積をとり、Φ1 *とΦ2 *と置き換え、列Φ3とΦ4の論理積をとり、Φ3 *とΦ4 *と置き換えると(表3)のようになり、μ=2となる。
関数を節点とし、両立する関数同士を枝で接続したグラフを「両立グラフ(compatible graph)」という。
〔定義終わり〕
(1)不完全定義多出力論理関数の特性関数二分決定グラフの幅の削減
最初に、不完全定義多出力論理関数を表現する特性関数二分決定グラフの幅を削減する方法について説明する。一つの方法としては、特性関数二分決定グラフの1つの節点に着目し、その節点の2つの子節点が両立する場合、2つの子節点を併合して一つにすることを繰り返し、節点数を削減する方法が考えられる。この方法のアルゴリズムは、以下のアルゴリズム1のようになる。
特性関数二分決定グラフの根節点から、再帰的に以下の処理を行う。
(1)節点vがドント・ケアを含まなければ終了;
(2)節点vの2つの子節点v0,v1が両立するか調べる;
・両立しなければ、v0,v1に対して再帰する;
・両立すれば、v0,v1をvnewに置き換える。vnewに対して再帰する。但し、v0,v1,vnewを表す特性関数をx0,x1,xnewとすれば、xnew=x0・x1。
(表4)に4入力2出力不完全定義関数の真理値表を示す。
〔例終わり〕
与えられた両立グラフのすべての節点の集合をSaとする。Cを節点集合の集合とする。枝を持たない節点をSaから除去し、要素が1つの節点集合(クリーク)としてCの要素とする。
Sa≠φの間、以下の(1)〜(3)の操作を繰り返す:
(1)Saの中で枝数最小の節点を調べ、これをviとする。Si←{vi}とする。Saの中でviに接続している節点の集合をSbとする;
(2)Sb≠φの間、以下の(a),(b)の操作を繰り返す;
(a)Sbの中で枝数最小の節点vjを調べ、Si←Si∪{vj},Sb←Sb−{vj}とする;
(b)vjに接続していない節点をSbから除去する;
(3)C←C∪{Si},Sa←Sa−Si。
与えられた特性関数二分決定グラフの高さをtとし、定数節点の高さを0とする。高さt−1から1までの間、以下の操作を繰り返す:
(1)各高さにおけるすべての列関数の集合を作る;
(2)列関数の集合から両立グラフを作成する;
(3)クリーク集合による節点被覆(例えば、アルゴリズム2)を行う;
(4)各クリークに被覆されているすべての節点に対応する列関数に対して、ドント・ケアへの定数の割り当てを行い、一つの列関数(割当列関数)にする;
(5)各列関数を(4)で作成した割当列関数に置換して、特性関数二分決定グラフを再構成する。
次に、特性関数二分決定グラフからLUT論理回路を合成する手法について、その原理を説明する。本発明におけるLUT論理回路の合成は、特性関数二分決定グラフの分割と短絡除去とを利用して行う。特性関数二分決定グラフを分割して2つの回路を構成した場合、両回路を接続する接続線数は、次の〔定理1〕により算出することができる。
X1,X2を入力変数の集合、Y1,Y2を出力変数の集合とする。特性関数二分決定グラフの変数順序を(X1,Y1,X2,Y2)とするとき、特性関数二分決定グラフの高さ|X2|+|Y2|における幅をWとする。ここで、Wを数える際、出力を表現する変数から、定数0へ向かう枝は無視する。多出力論理関数を図3の回路で実現する場合、二つの回路HとGの間の必要かつ十分な接続線数uは、式(15)により表される。
特性関数二分決定グラフの構成法から、出力関数Y1とY2が、図3の回路で表現できることは明らかである。特性関数二分決定グラフにおいて、Y1の出力を表現する節点を短絡除去すると、Y1以外の関数を表現する特性関数二分決定グラフが得られる。また、この操作によって、特性関数二分決定グラフの幅が増えることはない。高さ|X2|+|Y2|におけるBDDの幅をWとする。いま、関数分解g(h(X1),X2)の分解表を考えると、その列複雑度はWに等しい。従って、回路Hと回路Gの間の配線数は、
本例では、2つの2ビットの2進数を加算する回路(ADR2)を、中間出力を有する関数分解を用いて実現する場合について説明する。ADR2の入出力の関係は式(17)のように定義できる。これより、s0,s1,s2は、それぞれ式(18)により表される。また、真理値表は図6(a)により表される。
〔例終わり〕
本発明に係るグラフ幅削減装置の第1の構成は、入力変数をX=(x1,…,xn)(n∈自然数)とし出力にドント・ケアを含む不完全定義関数である多出力論理関数F(X)=(f0(X),…,fm−1(X))に対して式(19)により定義される特性関数x(X,Y)(但し、Y=(y0,…,ym−1)(m≧2,m∈自然数)はF(X)の出力を表す変数。)を表現する特性関数二分決定グラフの幅を削減するグラフ幅削減装置であって、以下の構成を備えていることを特徴とする:
多出力論理関数F(X)の特性関数二分決定グラフのそれぞれの非終端節点viについて、当該非終端節点に関わる変数zi(zi∈(X∪Y))に付与される変数ラベル並びに当該変数zi(zi∈(X∪Y))の値が0のとき及び1のときに遷移する先の子節点を特定する一対の枝e0(vi),e1(vi)からなる節点データのテーブルである節点テーブルを記憶する節点テーブル記憶手段;
前記節点テーブル記憶手段に記憶された前記節点テーブルにより表現される特性関数二分決定グラフを分割する高さ(以下「分割の高さ」という。)levの設定を行う分割線設定手段;
前記節点データ記憶手段に記憶された前記節点テーブルから、前記特性関数二分決定グラフを前記分割線設定手段により設定された前記分割の高さlevで分割し関数分解することによって得られる分解表の列を表す関数である列関数を生成する列関数生成手段;
及び、前記列関数生成手段が生成する各列関数のうち、両立する列関数に対してドント・ケアに定数を割り当てることによって同一の列関数(以下「割当列関数(assigned column function)」という。)とするとともに、これらの新たな割当列関数を用いて前記特性関数二分決定グラフ再構成し前記節点テーブル記憶手段の節点テーブルを更新する割当BDD再構成手段。
前記列関数を節点(以下「関数節点」という。)とするグラフであって、互いに両立する複数の列関数に対応する関数節点同士が枝(以下「両立枝」という。)により連結されたグラフである両立グラフを、前記各関数節点の列関数ラベル及び当該関数節点に連結する両立枝のデータ(以下「関数節点データ」という。)のテーブルとして記憶するための両立グラフ記憶手段;
前記両立グラフ記憶手段に記憶された前記各関数節点データに対する列関数から、両立する列関数の組を選出し、それら両立する列関数に対する関数節点データにそれらの関数節点同士を連結する両立枝を追加して前記両立グラフ記憶手段に記憶された関数節点データの更新を行う両立枝生成手段;
及び、前記両立グラフのすべての節点について、完全部分グラフ(以下「クリーク」という。)による節点被覆を行うことにより、クリークに含まれる関数節点集合であるクリーク・データを生成するクリーク生成手段;
を備え、
前記列関数生成手段は、前記節点データ記憶手段に記憶された前記節点テーブルから、前記分割線設定手段により設定された前記分割の高さlevの節点の各枝に対応する列関数を生成し、それら各列関数に対応した列関数ラベルを有する前記関数節点データを生成して前記両立グラフ記憶手段に保存するものであり、
前記割当BDD再構成手段は、前記クリーク生成手段が生成する前記各クリーク・データに対して、当該クリーク・データに含まれる各関数節点に対応する列関数のドント・ケアに定数を割り当てて同一の割当列関数とすることにより、前記特性関数二分決定グラフを再構成し前記節点テーブル記憶手段の前記節点テーブルを更新するものであることを特徴とする。
完全定義関数である前記多出力論理関数F(X)=(f0(X),…,fm−1(X))に対して式(21)により定義される特性関数x(X,Y)(但し、Y=(y0,…,ym−1)(m≧2,m∈自然数)はF(X)の出力を表す変数。)を表現する特性関数二分決定グラフが、当該特性関数二分決定グラフのそれぞれの非終端節点viについて、当該非終端節点に関わる変数zi(zi∈(X∪Y))に付与される変数ラベル並びに当該変数zi(zi∈(X∪Y))の値が0のとき及び1のときに遷移する先の子節点を特定する一対の枝e0(vi),e1(vi)からなる節点データのテーブルである節点テーブルとして記憶された節点テーブル記憶手段;
前記ルックアップ・テーブルを記憶するLUT記憶手段;
前記節点テーブル記憶手段に記憶された前記節点テーブルにより表現される特性関数二分決定グラフを分割する高さ(以下「分割の高さ」という。)levの設定を行う分割線設定手段;
前記節点テーブル記憶手段に格納された非終端節点の節点データのうち、前記特性関数二分決定グラフを前記分割の高さlevの分割線において2つの部分グラフB0,B1に分割したときに根節点を含む側の部分グラフB0に属するものであって、出力を表す変数yr(∈Y)に関わる節点vj及びその親節点vkの節点データについて、当該節点vjの枝e0(vj),e1(vj)の一方ea(vj)がx(X,Y)=0に関わる終端節点を特定する場合、当該節点vjの親節点vkの枝e0(vk),e1(vk)のうち当該節点vjを特定する枝ec(vk)を、当該節点vjの前記枝ea(vj)以外の枝eb(vj)に置き換える短絡除去処理を行う短絡除去手段;
前記短絡除去手段により短絡除去処理がされた特性関数二分決定グラフの各非終端節点であって前記分割の高さlevより高い高さにある非終端節点に属する枝のうち、前記分割の高さlevより低い高さの非終端節点の子節点を特定するものの個数を計数し(但し、同じ節点を特定するものは1つと数え、定数0に向かう枝は無視する。)、その個数を前記分割の高さlevの分割線における幅Wとして出力するBDD幅計測手段;
前記BDD幅計測手段が出力する幅Wに基づき、式(22)の演算により中間変数の個数uを算出する中間変数算出手段;
前記節点テーブル記憶手段に格納された非終端節点の節点データのうち、前記特性関数二分決定グラフを前記分割の高さlevの分割線において2つの部分グラフB0,B1に分割したときに根節点を含む側の部分グラフB0に属するものについて、ルックアップ・テーブルを生成しそれをLUT記憶手段に格納するLUT生成手段;
及び、前記中間変数算出手段が算出する前記中間変数の個数uと等しい制御入力数を有する二分木(binary tree)を生成するとともに、前記節点テーブル記憶手段に格納されている特性関数二分決定グラフの部分グラフB0に属する非終端節点の節点データを、前記二分木を表す節点データで置き換えることにより、特性関数二分決定グラフを再構成し、この再構成された特性関数二分決定グラフの各非終端節点の節点データにより前記節点テーブル記憶手段に格納された節点テーブルを更新するBDD再構成手段。
(a)まず、論理回路合成を行う目的論理関数の特性関数二分決定グラフの節点データを節点テーブル記憶手段に格納しておく。短絡除去手段は、節点テーブル記憶手段に格納された節点データで構成される特性関数二分決定グラフについて、所定の高さlevの分割線に対して根節点を含む側の部分グラフB0について短絡除去処理を行う。短絡除去処理については、上記「〔2〕本発明の基本的原理」の欄において説明した通りである。BDD幅計測手段は、上記短絡除去処理が行われた結果得られる特性関数二分決定グラフについて、上記分割線における幅Wを計測する。そして、中間変数算出手段は、式(22)によって中間変数の個数uを算出する。
前記多出力論理関数F(X)の要素をなす論理関数f0(X),…,fm−1(X)の順序をπ=(π[0],…,π[m−1])(但し、π[i]=jは、fjがi番目であることを表す。)とし、論理関数fj(∈F(X))が依存する入力変数の集合をsupp(fj)としたとき、式(23)で表されるTの値が最小となるように前記多出力論理関数F(X)の要素の順序πを決定する出力変数順序決定手段;
前記各入力変数xi(∈X)及び出力を表す変数yj(∈Y)の順序を、式(24)を満たす順序Pに決定する全変数順序決定手段;
及び、前記全変数順序決定手段で決定された順序Pに従って、特性関数二分決定グラフの節点データを生成し前記節点テーブル記憶手段に格納するBDD生成手段;
を備えていることを特徴とする。
前記節点テーブルによって表現される特性関数二分決定グラフを分割する高さ(以下「分割の高さ」という。)levの設定を行う分割線設定ステップ;
前記節点データ記憶手段に記憶された前記節点テーブルから、前記特性関数二分決定グラフを前記分割線設定ステップで設定された前記分割の高さlevで分割し関数分解することによって得られる分解表の列を表す関数である列関数を生成する列関数生成ステップ;
及び、前記列関数生成ステップにおいて生成される各列関数のうち、両立する列関数に対してドント・ケアに定数を割り当てることによって同一の列関数(以下「割当列関数」という。)にするとともに、これらの新たな割当列関数を用いて前記特性関数二分決定グラフ再構成し前記節点テーブル記憶手段の節点テーブルを更新する割当BDD再構成ステップ。
前記列関数生成ステップにおいては、前記節点データ記憶手段に記憶された前記節点テーブルから、前記分割線設定ステップで設定された前記分割の高さlevの節点の各枝に対応する列関数を生成し、それら各列関数に対応した列関数ラベルを有する前記関数節点データを生成して前記両立グラフ記憶手段に保存するとともに、
前記両立グラフ記憶手段に記憶された前記各関数節点データに対する列関数から、両立する列関数の組を選出し、それら両立する列関数に対する関数節点データにそれらの関数節点同士を連結する両立枝を追加して前記両立グラフ記憶手段に記憶された関数節点データの更新を行う両立枝生成ステップ;
及び、前記両立グラフのすべての節点について、完全部分グラフ(以下「クリーク」という。)による節点被覆を行うことにより、クリークに含まれる関数節点集合であるクリーク・データを生成するクリーク生成ステップ;
を有し、
前記割当BDD再構成ステップにおいては、前記クリーク生成ステップにおいて生成される前記各クリーク・データに対して、当該クリーク・データに含まれる各関数節点に対応する列関数のドント・ケアに定数を割り当てて同一の割当列関数とすることにより、前記特性関数二分決定グラフを再構成し前記節点テーブル記憶手段の前記節点テーブルを更新することを特徴とする。
及び、ルックアップ・テーブルを記憶するためのLUT記憶手段;
を備えたシステムにおいて、前記特性関数二分決定グラフから、前記多出力論理関数F(X)に対応する論理回路を構成するためのデータであるルックアップ・テーブルを合成する論理回路合成方法であって、以下のステップを有することを特徴とする:
前記節点テーブルにより表現される特性関数二分決定グラフを分割する高さ(以下「分割の高さ」という。)levの設定を行う分割線設定ステップ;
前記節点テーブル記憶手段に格納された非終端節点の節点データのうち、前記特性関数二分決定グラフを前記分割の高さlevの分割線において2つの部分グラフB0,B1に分割したときに根節点を含む側の部分グラフB0に属するものであって、出力を表す変数yr(∈Y)に関わる節点vj及びその親節点vkの節点データについて、当該節点vjの枝e0(vj),e1(vj)の一方ea(vj)がx(X,Y)=0に関わる終端節点を特定する場合、当該節点vjの親節点vkの枝e0(vk),e1(vk)のうち当該節点vjを特定する枝ec(vk)を、当該節点vjの前記枝ea(vj)以外の枝eb(vj)に置き換える短絡除去処理を実行する短絡除去ステップ;
前記短絡除去処理がされた特性関数二分決定グラフの各非終端節点であって前記分割の高さlevより高い高さにある非終端節点に属する枝のうち、前記分割の高さlevより低い高さの非終端節点の子節点を特定するものの個数を計数し(但し、同じ節点を特定するものは1つと数え、定数0に向かう枝は無視する。)、その個数を前記分割の高さlevの分割線における幅Wとして出力するBDD幅計測ステップ;
前記幅Wに基づき、式(22)の演算により中間変数の個数uを算出する中間変数算出ステップ;
前記節点テーブル記憶手段に格納された非終端節点の節点データのうち、前記特性関数二分決定グラフを前記分割の高さlevの分割線において2つの部分グラフB0,B1に分割したときに根節点を含む側の部分グラフB0に属するものについて、ルックアップ・テーブルを生成しそれをLUT記憶手段に格納するLUT生成ステップ;
及び、前記中間変数算出ステップにおいて算出された前記中間変数の個数uと等しい制御入力数を有する二分木を生成するとともに、前記節点テーブル記憶手段に格納されている特性関数二分決定グラフの部分グラフB0に属する非終端節点の節点データを、前記二分木を表す節点データで置き換えることにより、特性関数二分決定グラフを再構成し、この再構成された特性関数二分決定グラフの各非終端節点の節点データにより前記節点テーブル記憶手段に格納された節点テーブルを更新するBDD再構成ステップ。
前記各入力変数xi(∈X)及び出力を表す変数yj(∈Y)の順序を、式(24)を満たす順序Pに決定する全変数順序決定ステップ;
及び、前記順序Pに従って、特性関数二分決定グラフの節点データを生成し前記節点テーブル記憶手段に格納するBDD生成ステップ;
を実行した後に、前記分割線設定ステップ乃至前記BDD再構成ステップを実行することを特徴とする。
また、本発明に係る論理回路合成装置及び論理回路合成方法によれば、特性関数二分決定グラフを分割する分割線の位置を、部分グラフB0の大きさが過度に大きくならないように適度な高さに決めることで、部分グラフB0に関する変数を束縛変数とする分解表の列複雑度が極度に増大するのを防止することが可能となる。その結果、比較的小容量のメモリを用いて論理回路合成を実現でき、また、論理関数分解処理の演算処理速度を高速化することができる。従って、現在まで有効な論理回路合成手段が知られていなかった、多出力論理関数の分解によるLUT論理回路の生成を、現実的なハードウェアを使用して短時間で実行することが可能となる。また、本発明は、任意の多出力論理関数のLUT論理回路生成に対して汎用的に適用可能である。
2 論理仕様記憶手段
3 入力装置
4 出力装置
5 出力変数順序決定手段
6 全変数順序決定手段
7 BDD生成手段
8 節点テーブル記憶手段
9 変数順序最適化手段
10 分割線設定手段
11 短絡除去手段
12 BDD幅計測手段
13 中間変数算出手段
14 LUT生成手段
15 BDD再構成手段
16 LUT記憶手段
20 グラフ幅削減装置
21 BDD高さ計測手段
22 分割線設定手段
23 列関数生成手段
24 列関数記憶手段
25 両立枝生成手段
26 両立グラフ記憶手段
27 クリーク生成手段
28 クリーク・データ記憶手段
29 割当BDD再構成手段
図12は変数順序の決定処理の流れを表すフローチャートである。まず、出力変数順序決定手段5は、内部変数i,j,renewを0に初期化する(S10)。i,jは置換する変数のインデックスを表す内部変数であり、renewは順序の置換が行われたことを検出するための更新フラグである。また、出力変数順序決定手段5は、出力変数Yの変数順序を表すm個の要素を持つ順序π0=(π0[0],π0[1],…,π0[m−1])を(0,1,…,m−1)に初期化する(S2)。順序π0は、出力変数Yの変数順序を表す配列である。出力変数の順序は、順序π0により、式(25)のように順序づけされる。
変数X,Yの初期順序Pの決定がされた後、BDD生成手段7は、決定された初期順序Pに従って、論理仕様記憶手段2に記憶された論理仕様に従って、特性関数二分決定グラフの節点テーブルを生成する。この節点テーブルは、節点テーブル記憶手段8に格納される。尚、論理仕様から特性関数二分決定グラフを生成するアルゴリズムに関しては、すでに種々のアルゴリズムが公知であるため、ここでは説明を省略する。
入力変数X=(x1,x2,x3)に対して式(31)により表される多出力論理関数f(X)について、変数順序Pは、上記アルゴリズムによってP=(x1,x2,y0,x3,y1)となる。
〔例終わり〕
次に、変数X,Yが初期順序により順序づけられた特性関数二分決定グラフの節点テーブルが節点テーブル記憶手段8に格納されると、変数順序最適化手段9は、変数X,Yの間の順序の入れ替えを実行し、変数X,Y間の順序の最適化を行う。このとき、変数Xの順序の入れ替えには式(32)の条件(すなわち、「集合supp(fj)に属するすべての入力変数xiはyjよりも高位である。」という条件)が課される。
式(31)の多出力論理関数F(X)で表現される論理仕様に対して、上記の変数順序P=(x1,x2,y0,x3,y1)による特性関数二分決定グラフの節点テーブルが、図14のように生成され、節点テーブル記憶手段8に格納されているとする。変数順序最適化手段9は、この節点テーブルに対して、上記条件のもとでの変数順序Pの入れ替えを行う。そして、入れ替え後の変数順序P’により、特性関数二分決定グラフの再構築を行い、その結果、特性関数二分決定グラフの幅の総和が小さくなった場合にのみ、変数順序P’の節点テーブルで節点テーブル記憶手段8の内容を更新する。
〔例終わり〕
以上のように、最適化された特性関数二分決定グラフの節点テーブルが節点テーブル記憶手段8に格納されると、続いてLUTカスケード論理回路の合成処理が行われる。そこで、次に、LUTカスケード論理回路の合成処理について説明する。
最後に、本発明の効果を示すため、実際に幾つかのベンチマーク関数を用いてLUTカスケード論理回路の合成を行った結果を図17に示す。実験は上記実施例1のアルゴリズムをC言語で実装し、MCNC89ベンチマーク関数に適用した。図17は、LUTの入力数kを10に設定した場合の結果である。
真理値が例6の(表4)により表される4入力2出力不完全定義関数について、特性関数二分決定グラフの幅を削減する。(表4)により表される4入力2出力不完全定義関数の特性関数二分決定グラフは、図4(a)で表される。特性関数二分決定グラフの高さtは6である。これを、本実施例のグラフ幅削減装置20によって特性関数二分決定グラフの幅の削減処理を行う。
〔例終わり〕
・5−7−11−13RNS(14−input 13−output,DC 69.5%:4−digit RNS number,where the moduli are 5,7,11,and 13)
・7−11−13−17 RNS(16−input 15−output,DC 74.0%)
・11−13−15−17 RNS(17−input 16−output,DC 72.2%)
・4−digit 11−nary to binary(16−input 14−output,DC 77.7%)
・4−digit 13−nary to binary(16−input 15−output,DC 56.4%)
・5−digit decimal to binary(20−input 17−output,DC 90.5%)
・6−digit 5−nary to binary(18−input 14−output,DC 94.0%)
・6−digit 6−nary to binary(18−input 16−output,DC 82.2%)
・6−digit 7−nary to binary(18−input 17−output,DC 55.1%)
・10−digit ternary to binary(20−input 16−output,DC 94.4%)
・3−digit decimal adder(24−input 16−output,DC 94.0%)
・4−digit decimal adder(32−input 20−output,DC 97.7%)
・2−digit decimal multiplier(16−input 16−output,DC 84.7%)
Claims (17)
- 入力変数をX=(x1,…,xn)(n∈自然数)とし出力にドント・ケアを含む不完全定義関数である多出力論理関数F(X)=(f0(X),…,fm−1(X))に対して式(1)により定義される特性関数x(X,Y)(但し、Y=(y0,…,ym−1)(m≧2,m∈自然数)はF(X)の出力を表す変数。)を表現する特性関数二分決定グラフ(Binary Decision Diagram for Characteristic Function:BDD for CF)の幅を削減するグラフ幅削減装置であって、以下の構成を備えているグラフ幅削減装置:
多出力論理関数F(X)の特性関数二分決定グラフのそれぞれの非終端節点viについて、当該非終端節点に関わる変数zi(zi∈(X∪Y))に付与される変数ラベル並びに当該変数zi(zi∈(X∪Y))の値が0のとき及び1のときに遷移する先の子節点を特定する一対の枝e0(vi),e1(vi)からなる節点データのテーブルである節点テーブルを記憶する節点テーブル記憶手段;
前記節点テーブル記憶手段に記憶された前記節点テーブルにより表現される特性関数二分決定グラフを分割する高さ(以下「分割の高さ」という。)levの設定を行う分割線設定手段;
前記節点データ記憶手段に記憶された前記節点テーブルから、前記特性関数二分決定グラフを前記分割線設定手段により設定された前記分割の高さlevで分割し関数分解することによって得られる分解表の列を表す関数である列関数を生成する列関数生成手段;
及び、前記列関数生成手段が生成する各列関数のうち、両立する列関数に対してドント・ケアに定数を割り当てることによって同一の列関数(以下「割当列関数」という。)とするとともに、これらの新たな割当列関数を用いて前記特性関数二分決定グラフ再構成し前記節点テーブル記憶手段の節点テーブルを更新する割当BDD再構成手段。
- 前記列関数を節点(以下「関数節点」という。)とするグラフであって、互いに両立する複数の列関数に対応する関数節点同士が枝(以下「両立枝」という。)により連結されたグラフである両立グラフを、前記各関数節点の列関数ラベル及び当該関数節点に連結する両立枝のデータ(以下「関数節点データ」という。)のテーブルとして記憶するための両立グラフ記憶手段;
前記両立グラフ記憶手段に記憶された前記各関数節点データに対する列関数から、両立する列関数の組を選出し、それら両立する列関数に対する関数節点データにそれらの関数節点同士を連結する両立枝を追加して前記両立グラフ記憶手段に記憶された関数節点データの更新を行う両立枝生成手段;
及び、前記両立グラフのすべての節点について、完全部分グラフ(以下「クリーク」という。)による節点被覆を行うことにより、クリークに含まれる関数節点集合であるクリーク・データを生成するクリーク生成手段;
を備え、
前記列関数生成手段は、前記節点データ記憶手段に記憶された前記節点テーブルから、前記分割線設定手段により設定された前記分割の高さlevの節点の各枝に対応する列関数を生成し、それら各列関数に対応した列関数ラベルを有する前記関数節点データを生成して前記両立グラフ記憶手段に保存するものであり、
前記割当BDD再構成手段は、前記クリーク生成手段が生成する前記各クリーク・データに対して、当該クリーク・データに含まれる各関数節点に対応する列関数のドント・ケアに定数を割り当てて同一の割当列関数とすることにより、前記特性関数二分決定グラフを再構成し前記節点テーブル記憶手段の前記節点テーブルを更新するものであること
を特徴とする請求項1記載のグラフ幅削減装置。 - 前記分割線設定手段は、前記節点テーブル記憶手段に記憶された前記節点テーブルにより表現される特性関数二分決定グラフの根節点の子の節点の高さから下位に向かって順次分割の高さlevの設定を行うものであり、
前記割当BDD再構成手段は、前記分割線設定手段が設定する前記各分割の高さlevにおいて逐次前記特性関数二分決定グラフ再構成を行うこと
を特徴とする請求項1又は2記載のグラフ幅削減装置。 - 入力変数をX=(x1,…,xn)(n∈自然数)とする多出力論理関数F(X)=(f0(X),…,fm−1(X))の特性関数二分決定グラフから、前記多出力論理関数F(X)に対応する論理回路を構成するためのデータであるルックアップ・テーブル(Look−Up Table:LUT)を生成する論理回路合成装置であって、以下の構成を備えている論理回路合成装置:
完全定義関数である前記多出力論理関数F(X)=(f0(X),…,fm−1(X))に対して式(3)により定義される特性関数x(X,Y)(但し、Y=(y0,…,ym−1)(m≧2,m∈自然数)はF(X)の出力を表す変数。)を表現する特性関数二分決定グラフが、当該特性関数二分決定グラフのそれぞれの非終端節点viについて、当該非終端節点に関わる変数zi(zi∈(X∪Y))に付与される変数ラベル並びに当該変数zi(zi∈(X∪Y))の値が0のとき及び1のときに遷移する先の子節点を特定する一対の枝e0(vi),e1(vi)からなる節点データのテーブルである節点テーブルとして記憶された節点テーブル記憶手段;
前記ルックアップ・テーブルを記憶するLUT記憶手段;
前記節点テーブル記憶手段に記憶された前記節点テーブルにより表現される特性関数二分決定グラフを分割する高さ(以下「分割の高さ」という。)levの設定を行う分割線設定手段;
前記節点テーブル記憶手段に格納された非終端節点の節点データのうち、前記特性関数二分決定グラフを前記分割の高さlevの分割線において2つの部分グラフB0,B1に分割したときに根節点を含む側の部分グラフB0に属するものであって、出力を表す変数yr(∈Y)に関わる節点vj及びその親節点vkの節点データについて、当該節点vjの枝e0(vj),e1(vj)の一方ea(vj)がx(X,Y)=0に関わる終端節点を特定する場合、当該節点vjの親節点vkの枝e0(vk),e1(vk)のうち当該節点vjを特定する枝ec(vk)を、当該節点vjの前記枝ea(vj)以外の枝eb(vj)に置き換える短絡除去処理を行う短絡除去手段;
前記短絡除去手段により短絡除去処理がされた特性関数二分決定グラフの各非終端節点であって前記分割の高さlevより高い高さにある非終端節点に属する枝のうち、前記分割の高さlevより低い高さの非終端節点の子節点を特定するものの個数を計数し(但し、同じ節点を特定するものは1つと数え、定数0に向かう枝は無視する。)、その個数を前記分割の高さlevの分割線における幅Wとして出力するBDD幅計測手段;
前記BDD幅計測手段が出力する幅Wに基づき、式(4)の演算により中間変数の個数uを算出する中間変数算出手段;
前記節点テーブル記憶手段に格納された非終端節点の節点データのうち、前記特性関数二分決定グラフを前記分割の高さlevの分割線において2つの部分グラフB0,B1に分割したときに根節点を含む側の部分グラフB0に属するものについて、ルックアップ・テーブルを生成しそれをLUT記憶手段に格納するLUT生成手段;
及び、前記中間変数算出手段が算出する前記中間変数の個数uと等しい制御入力数を有する二分木(binary tree)を生成するとともに、前記節点テーブル記憶手段に格納されている特性関数二分決定グラフの部分グラフB0に属する非終端節点の節点データを、前記二分木を表す節点データで置き換えることにより、特性関数二分決定グラフを再構成し、この再構成された特性関数二分決定グラフの各非終端節点の節点データにより前記節点テーブル記憶手段に格納された節点テーブルを更新するBDD再構成手段。
- 前記節点テーブル記憶手段には、出力にドント・ケアを含む不完全定義関数である前記多出力論理関数F(X)=(f0(X),…,fm−1(X))に対して式(5)により定義される特性関数x(X,Y)(但し、Y=(y0,…,ym−1)(m≧2,m∈自然数)はF(X)の出力を表す変数。)を表現する特性関数二分決定グラフが、当該特性関数二分決定グラフのそれぞれの非終端節点viについて、当該非終端節点に関わる変数zi(zi∈(X∪Y))に付与される変数ラベル並びに当該変数zi(zi∈(X∪Y))の値が0のとき及び1のときに遷移する先の子節点を特定する一対の枝e0(vi),e1(vi)からなる節点データのテーブルである節点テーブルとして記憶されていること
を特徴とする請求項4記載の論理回路合成装置。
- 請求項1乃至3の何れか一記載のグラフ幅削減装置を備え、
前記短絡除去手段は、前記グラフ幅削減装置によって前記節点テーブル記憶手段に記憶された前記節点テーブルにより表される特性関数二分決定グラフの幅を削減し更新された前記節点テーブルについて短絡除去処理を行うものであることを特徴とする請求項5記載の論理関数合成装置。 - 前記多出力論理関数F(X)の要素をなす論理関数f0(X),…,fm−1(X)の順序をπ=(π[0],…,π[m−1])(但し、π[i]=jは、fjがi番目であることを表す。)とし、論理関数fj(∈F(X))が依存する入力変数の集合をsupp(fj)としたとき、式(7)で表されるTの値が最小となるように前記多出力論理関数F(X)の要素の順序πを決定する出力変数順序決定手段;
前記各入力変数xi(∈X)及び出力を表す変数yj(∈Y)の順序を、式(8)を満たす順序Pに決定する全変数順序決定手段;
及び、前記全変数順序決定手段で決定された順序Pに従って、特性関数二分決定グラフの節点データを生成し前記節点テーブル記憶手段に格納するBDD生成手段;
を備えていることを特徴とする請求項4乃至6の何れか一記載の論理回路合成装置。
- 入力変数をX=(x1,…,xn)(n∈自然数)とし出力にドント・ケアを含む不完全定義関数である多出力論理関数F(X)=(f0(X),…,fm−1(X))に対して式(9)により定義される特性関数x(X,Y)(但し、Y=(y0,…,ym−1)(m≧2,m∈自然数)はF(X)の出力を表す変数。)を表現する特性関数二分決定グラフが、当該特性関数二分決定グラフのそれぞれの非終端節点viについて、当該非終端節点に関わる変数zi(zi∈(X∪Y))に付与される変数ラベル並びに当該変数zi(zi∈(X∪Y))の値が0のとき及び1のときに遷移する先の子節点を特定する一対の枝e0(vi),e1(vi)からなる節点データのテーブルである節点テーブルとして記憶された節点テーブル記憶手段を備えたシステムにおいて、当該特性関数二分決定グラフの幅を削減するグラフ幅削減方法であって、以下の各ステップを有するグラフ幅削減方法:
前記節点テーブルによって表現される特性関数二分決定グラフを分割する高さ(以下「分割の高さ」という。)levの設定を行う分割線設定ステップ;
前記節点データ記憶手段に記憶された前記節点テーブルから、前記特性関数二分決定グラフを前記分割線設定ステップで設定された前記分割の高さlevで分割し関数分解することによって得られる分解表の列を表す関数である列関数を生成する列関数生成ステップ;
及び、前記列関数生成ステップにおいて生成される各列関数のうち、両立する列関数に対してドント・ケアに定数を割り当てることによって同一の列関数(以下「割当列関数」という。)にするとともに、これらの新たな割当列関数を用いて前記特性関数二分決定グラフ再構成し前記節点テーブル記憶手段の節点テーブルを更新する割当BDD再構成ステップ。
- 前記システムは、前記列関数を節点(以下「関数節点」という。)とするグラフであって、互いに両立する複数の列関数に対応する関数節点同士が枝(以下「両立枝」という。)により連結されたグラフである両立グラフを、前記各関数節点の列関数ラベル及び当該関数節点に連結する両立枝のデータ(以下「関数節点データ」という。)のテーブルとして記憶するための両立グラフ記憶手段を備えており、
前記列関数生成ステップにおいては、前記節点データ記憶手段に記憶された前記節点テーブルから、前記分割線設定ステップで設定された前記分割の高さlevの節点の各枝に対応する列関数を生成し、それら各列関数に対応した列関数ラベルを有する前記関数節点データを生成して前記両立グラフ記憶手段に保存するとともに、
前記両立グラフ記憶手段に記憶された前記各関数節点データに対する列関数から、両立する列関数の組を選出し、それら両立する列関数に対する関数節点データにそれらの関数節点同士を連結する両立枝を追加して前記両立グラフ記憶手段に記憶された関数節点データの更新を行う両立枝生成ステップ;
及び、前記両立グラフのすべての節点について、完全部分グラフ(以下「クリーク」という。)による節点被覆を行うことにより、クリークに含まれる関数節点集合であるクリーク・データを生成するクリーク生成ステップ;
を有し、
前記割当BDD再構成ステップにおいては、前記クリーク生成ステップにおいて生成される前記各クリーク・データに対して、当該クリーク・データに含まれる各関数節点に対応する列関数のドント・ケアに定数を割り当てて同一の割当列関数とすることにより、前記特性関数二分決定グラフを再構成し前記節点テーブル記憶手段の前記節点テーブルを更新すること
を特徴とする請求項8記載のグラフ幅削減方法。 - 前記分割線設定ステップにおける前記分割の高さlevを、前記節点テーブル記憶手段に記憶された前記節点テーブルにより表現される特性関数二分決定グラフの根節点の子の節点の高さから最下位の高さまで順次変更しながら、前記分割線設定ステップ乃至前記割当BDD再構成ステップを実行すること
を特徴とする請求項8又は9記載のグラフ幅削減方法。 - 入力変数をX=(x1,…,xn)(n∈自然数)とする完全定義関数である多出力論理関数F(X)=(f0(X),…,fm−1(X))に対して式(11)により定義される特性関数x(X,Y)(但し、Y=(y0,…,ym−1)(m≧2,m∈自然数)はF(X)の出力を表す変数。)を表現する特性関数二分決定グラフが、当該特性関数二分決定グラフのそれぞれの非終端節点viについて、当該非終端節点に関わる変数zi(zi∈(X∪Y))に付与される変数ラベル並びに当該変数zi(zi∈(X∪Y))の値が0のとき及び1のときに遷移する先の子節点を特定する一対の枝e0(vi),e1(vi)からなる節点データのテーブルである節点テーブルとして記憶された節点テーブル記憶手段;
及び、ルックアップ・テーブル(Look−Up Table:LUT)を記憶するためのLUT記憶手段;
を備えたシステムにおいて、
前記特性関数二分決定グラフから、前記多出力論理関数F(X)に対応する論理回路を構成するためのデータであるルックアップ・テーブルを合成する論理回路合成方法であって、以下のステップを有する論理回路合成方法:
前記節点テーブルにより表現される特性関数二分決定グラフを分割する高さ(以下「分割の高さ」という。)levの設定を行う分割線設定ステップ;
前記節点テーブル記憶手段に格納された非終端節点の節点データのうち、前記特性関数二分決定グラフを前記分割の高さlevの分割線において2つの部分グラフB0,B1に分割したときに根節点を含む側の部分グラフB0に属するものであって、出力を表す変数yr(∈Y)に関わる節点vj及びその親節点vkの節点データについて、当該節点vjの枝e0(vj),e1(vj)の一方ea(vj)がx(X,Y)=0に関わる終端節点を特定する場合、当該節点vjの親節点vkの枝e0(vk),e1(vk)のうち当該節点vjを特定する枝ec(vk)を、当該節点vjの前記枝ea(vj)以外の枝eb(vj)に置き換える短絡除去処理を実行する短絡除去ステップ;
前記短絡除去処理がされた特性関数二分決定グラフの各非終端節点であって前記分割の高さlevより高い高さにある非終端節点に属する枝のうち、前記分割の高さlevより低い高さの非終端節点の子節点を特定するものの個数を計数し(但し、同じ節点を特定するものは1つと数え、定数0に向かう枝は無視する。)、その個数を前記分割の高さlevの分割線における幅Wとして出力するBDD幅計測ステップ;
前記幅Wに基づき、式(12)の演算により中間変数の個数uを算出する中間変数算出ステップ;
前記節点テーブル記憶手段に格納された非終端節点の節点データのうち、前記特性関数二分決定グラフを前記分割の高さlevの分割線において2つの部分グラフB0,B1に分割したときに根節点を含む側の部分グラフB0に属するものについて、ルックアップ・テーブルを生成しそれをLUT記憶手段に格納するLUT生成ステップ;
及び、前記中間変数算出ステップにおいて算出された前記中間変数の個数uと等しい制御入力数を有する二分木(binary tree)を生成するとともに、前記節点テーブル記憶手段に格納されている特性関数二分決定グラフの部分グラフB0に属する非終端節点の節点データを、前記二分木を表す節点データで置き換えることにより、特性関数二分決定グラフを再構成し、この再構成された特性関数二分決定グラフの各非終端節点の節点データにより前記節点テーブル記憶手段に格納された節点テーブルを更新するBDD再構成ステップ。
- 前記節点テーブル記憶手段には、入力変数をX=(x1,…,xn)(n∈自然数)とし出力にドント・ケアを含む不完全定義関数である多出力論理関数F(X)=(f0(X),…,fm−1(X))に対して式(13)により定義される特性関数x(X,Y)(但し、Y=(y0,…,ym−1)(m≧2,m∈自然数)はF(X)の出力を表す変数。)を表現する特性関数二分決定グラフが、当該特性関数二分決定グラフのそれぞれの非終端節点viについて、当該非終端節点に関わる変数zi(zi∈(X∪Y))に付与される変数ラベル並びに当該変数zi(zi∈(X∪Y))の値が0のとき及び1のときに遷移する先の子節点を特定する一対の枝e0(vi),e1(vi)からなる節点データのテーブルである節点テーブルとして記憶されていること
を特徴とする請求項11記載の論理回路合成方法。
- 前記節点テーブル記憶手段に記憶された前記節点テーブルにより表される特性関数二分決定グラフの幅を、請求項8乃至10の何れかに記載のグラフ幅削減方法によって削減し、前記節点テーブル記憶手段に記憶された前記節点テーブルを更新した後に、前記分割線設定ステップ乃至前記BDD再構成ステップを実行する請求項12記載の論理回路合成方法。
- 前記多出力論理関数F(X)の要素をなす論理関数f0(X),…,fm−1(X)の順序をπ=(π[0],…,π[m−1])(但し、π[i]=jは、fjがi番目であることを表す。)とし、論理関数fj(∈F(X))が依存する入力変数の集合をsupp(fj)としたとき、式(15)で表されるTの値が最小となるように前記多出力論理関数F(X)の要素の順序πを決定する出力変数順序決定ステップ;
前記各入力変数xi(∈X)及び出力を表す変数yj(∈Y)の順序を、式(16)を満たす順序Pに決定する全変数順序決定ステップ;
及び、前記順序Pに従って、特性関数二分決定グラフの節点データを生成し前記節点テーブル記憶手段に格納するBDD生成ステップ;
を実行した後に、前記分割線設定ステップ乃至前記BDD再構成ステップを実行することを特徴とする請求項11乃至14の何れか一記載の論理回路合成方法。
- コンピュータに請求項8乃至10の何れかに記載のグラフ幅削減方法を実行させるプログラム。
- コンピュータに請求項11乃至15に何れかに記載の論理回路合成方法を実行させるプログラム。
- 請求項11乃至15に何れかに記載の論理回路合成方法により論理合成されたプログラマブル論理回路。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003389264 | 2003-11-19 | ||
JP2003389264 | 2003-11-19 | ||
PCT/JP2004/017263 WO2005050494A1 (ja) | 2003-11-19 | 2004-11-19 | グラフ幅削減装置及びグラフ幅削減方法、並びに論理回路合成装置及び論理回路合成方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2005050494A1 true JPWO2005050494A1 (ja) | 2007-12-06 |
JP4562136B2 JP4562136B2 (ja) | 2010-10-13 |
Family
ID=34616245
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005515662A Expired - Fee Related JP4562136B2 (ja) | 2003-11-19 | 2004-11-19 | グラフ幅削減装置及びグラフ幅削減方法、並びに論理回路合成装置及び論理回路合成方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US7844924B2 (ja) |
JP (1) | JP4562136B2 (ja) |
WO (1) | WO2005050494A1 (ja) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7949968B2 (en) * | 2007-03-08 | 2011-05-24 | International Business Machines Corporation | Method and system for building binary decision diagrams optimally for nodes in a netlist graph using don't-caring |
US8645108B2 (en) * | 2010-08-17 | 2014-02-04 | Fujitsu Limited | Annotating binary decision diagrams representing sensor data |
US9002781B2 (en) | 2010-08-17 | 2015-04-07 | Fujitsu Limited | Annotating environmental data represented by characteristic functions |
US9138143B2 (en) | 2010-08-17 | 2015-09-22 | Fujitsu Limited | Annotating medical data represented by characteristic functions |
US9361578B2 (en) * | 2011-07-13 | 2016-06-07 | Palo Alto Research Center Incorporated | Memory efficient state-set representation for planning |
US8838523B2 (en) | 2011-09-23 | 2014-09-16 | Fujitsu Limited | Compression threshold analysis of binary decision diagrams |
US9177247B2 (en) | 2011-09-23 | 2015-11-03 | Fujitsu Limited | Partitioning medical binary decision diagrams for analysis optimization |
US8909592B2 (en) | 2011-09-23 | 2014-12-09 | Fujitsu Limited | Combining medical binary decision diagrams to determine data correlations |
US8620854B2 (en) * | 2011-09-23 | 2013-12-31 | Fujitsu Limited | Annotating medical binary decision diagrams with health state information |
US9075908B2 (en) * | 2011-09-23 | 2015-07-07 | Fujitsu Limited | Partitioning medical binary decision diagrams for size optimization |
US10534885B1 (en) * | 2018-03-21 | 2020-01-14 | Xilinx, Inc. | Modifying data flow graphs using range information |
US11113176B2 (en) | 2019-01-14 | 2021-09-07 | Microsoft Technology Licensing, Llc | Generating a debugging network for a synchronous digital circuit during compilation of program source code |
US10810343B2 (en) | 2019-01-14 | 2020-10-20 | Microsoft Technology Licensing, Llc | Mapping software constructs to synchronous digital circuits that do not deadlock |
US11093682B2 (en) | 2019-01-14 | 2021-08-17 | Microsoft Technology Licensing, Llc | Language and compiler that generate synchronous digital circuits that maintain thread execution order |
US11275568B2 (en) | 2019-01-14 | 2022-03-15 | Microsoft Technology Licensing, Llc | Generating a synchronous digital circuit from a source code construct defining a function call |
US11144286B2 (en) | 2019-01-14 | 2021-10-12 | Microsoft Technology Licensing, Llc | Generating synchronous digital circuits from source code constructs that map to circuit implementations |
US11106437B2 (en) * | 2019-01-14 | 2021-08-31 | Microsoft Technology Licensing, Llc | Lookup table optimization for programming languages that target synchronous digital circuits |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4815003A (en) * | 1987-06-19 | 1989-03-21 | General Electric Company | Structured design method for high density standard cell and macrocell layout of VLSI chips |
US5602753A (en) * | 1994-04-19 | 1997-02-11 | Matsushita Electric Industrial Co., Ltd. | Method and apparatus for estimating power dissipation and method and apparatus of determining layout/routing |
US5625630A (en) * | 1996-04-24 | 1997-04-29 | Lucent Technologies Inc. | Increasing testability by clock transformation |
US6212669B1 (en) * | 1997-11-05 | 2001-04-03 | Fujitsu Limited | Method for verifying and representing hardware by decomposition and partitioning |
US6421815B1 (en) * | 1998-01-09 | 2002-07-16 | Synopsys, Inc. | Method and apparatus for optimized partitioning of finite state machines synthesized from hierarchical high-level descriptions |
US7003738B2 (en) * | 2000-06-30 | 2006-02-21 | Zenasis Technologies, Inc. | Process for automated generation of design-specific complex functional blocks to improve quality of synthesized digital integrated circuits in CMOS using altering process |
US7039882B2 (en) * | 2002-06-17 | 2006-05-02 | Amar Pal Singh Rana | Technology dependent transformations for Silicon-On-Insulator in digital design synthesis |
-
2004
- 2004-11-19 WO PCT/JP2004/017263 patent/WO2005050494A1/ja active Application Filing
- 2004-11-19 JP JP2005515662A patent/JP4562136B2/ja not_active Expired - Fee Related
- 2004-11-19 US US10/579,743 patent/US7844924B2/en not_active Expired - Fee Related
Non-Patent Citations (2)
Title |
---|
CSNG200300129008, 笹尾勤ほか, "多出力関数のカスケード実現と再構成可能ハードウェアによる実現", 電子情報通信学会技術研究報告, 20010406, Vol.101 No.3, 57−64頁, JP, 社団法人電子情報通信学会 * |
JPN6010041024, 笹尾勤ほか, "多出力関数のカスケード実現と再構成可能ハードウェアによる実現", 電子情報通信学会技術研究報告, 20010406, Vol.101 No.3, 57−64頁, JP, 社団法人電子情報通信学会 * |
Also Published As
Publication number | Publication date |
---|---|
WO2005050494A1 (ja) | 2005-06-02 |
JP4562136B2 (ja) | 2010-10-13 |
US20070174804A1 (en) | 2007-07-26 |
US7844924B2 (en) | 2010-11-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4562136B2 (ja) | グラフ幅削減装置及びグラフ幅削減方法、並びに論理回路合成装置及び論理回路合成方法 | |
Cong et al. | Combinational logic synthesis for LUT based field programmable gate arrays | |
Chang et al. | Technology mapping for TLU FPGAs based on decomposition of binary decision diagrams | |
US5787010A (en) | Enhanced dynamic programming method for technology mapping of combinational logic circuits | |
Wu et al. | Graph based analysis of 2-D FPGA routing | |
Betz et al. | Automatic generation of FPGA routing architectures from high-level descriptions | |
Zuluaga et al. | Streaming sorting networks | |
Riener et al. | Boolean rewriting strikes back: Reconvergence-driven windowing meets resynthesis | |
Yang et al. | BDD decomposition for efficient logic synthesis | |
EP1248989A2 (en) | Behavioral-synthesis electronic design automation tool and business-to-business application service provider | |
Wurth et al. | Functional multiple-output decomposition with application to technology mapping for lookup table-based FPGAs | |
Hutton et al. | Generation of synthetic sequential benchmark circuits | |
Brayton | The future of logic synthesis and verification | |
Miyasaka et al. | A simple BDD package without variable reordering and its application to logic optimization with permissible functions | |
Besson et al. | Synthesis on multiplexer-based FPGA using binary decision diagrams | |
Calazans et al. | Advanced ordering and manipulation techniques for binary decision diagrams | |
Cong et al. | A Theory on Partially-Dependent Functional Decomposition with Application in LUT-based FPGA | |
Tao et al. | A module-level three-stage approach to the evolutionary design of sequential logic circuits | |
Wang et al. | Dual-output LUT merging during FPGA technology mapping | |
Ye | Field-programmable gate array architectures and algorithms optimized for implementing datapath circuits | |
Hidalgo et al. | Multi-FPGA systems synthesis by means of evolutionary computation | |
Severino | Systems Synthesis with Multi-Value Logic (MVL) | |
Jiang et al. | Generalized cofactoring for logic function evaluation | |
Tempia Calvino et al. | Scalable Logic Rewriting Using Don’t Cares | |
CN117540670A (zh) | 用于数字电路的全局真值表生成方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20071019 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20071019 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20100721 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20100723 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130806 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4562136 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130806 Year of fee payment: 3 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |