JP3489715B2 - Lsi設計における論理関数の分解方法 - Google Patents

Lsi設計における論理関数の分解方法

Info

Publication number
JP3489715B2
JP3489715B2 JP03081197A JP3081197A JP3489715B2 JP 3489715 B2 JP3489715 B2 JP 3489715B2 JP 03081197 A JP03081197 A JP 03081197A JP 3081197 A JP3081197 A JP 3081197A JP 3489715 B2 JP3489715 B2 JP 3489715B2
Authority
JP
Japan
Prior art keywords
symmetric
symmetry
logical function
variable set
exists
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.)
Expired - Fee Related
Application number
JP03081197A
Other languages
English (en)
Other versions
JPH10228490A (ja
Inventor
宏 澤田
茂 山下
彰 名古屋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP03081197A priority Critical patent/JP3489715B2/ja
Publication of JPH10228490A publication Critical patent/JPH10228490A/ja
Application granted granted Critical
Publication of JP3489715B2 publication Critical patent/JP3489715B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Design And Manufacture Of Integrated Circuits (AREA)

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、例えば論理設計支
援システムにおける組合せ論理回路の設計および最適化
に適用でき、所与の論理関数を入力数の少ない2つの論
理ゲートに分解するLSI設計における論理関数の分解
方法に関し、例えば図4に示す4入力の論理関数fを2
入力の関数hと3入力の関数gからなる2つの論理ゲー
トに分解する論理関数の分解方法に関する。
【0002】
【従来の技術】多入力1出力の完全指定論理関数(以
下、単に関数と呼ぶ)は、0か1の値をとる変数x
i (1≦i≦n)のn個組から0か1への写像{0,
1}n →{0,1}である。関数f(x1 ,…,xn
の単純かつ変数の重なりのない分解(simple disjuncti
ve decomposition)は図3に示すように以下のような形
をしている。
【0003】 f=g(h(X),X
・・・(1) ここで、XとXとは、X∪X={x,・・
・,x}とX∩X=0を満たす変数の集合であ
る。また、
【数式1】 は、完全指定論理関数である。変数の集合XとX
は、それぞれbound set とfree set と呼ばれる。ま
た、gを分解の像、hを分解の部分関数と呼ぶことにす
る。単純な分解とは、部分関数hの出力が1ビットであ
る分解のことをいう。変数の重なりのない分解とは、X
∩X=0である分解、すなわち、bound setとfree
setに重なりがない分解のことをいう。
【0004】例として、図4に示す関数f=x1 ・x′
2 ・x3 +x′1 ・x2 ・x3 +x′3 ・x4 を考え
る。以下、x′i はxi の否定、・は論理積、+は論理
和を表す。関数fは、
【数2】 分解が存在するかどうかは、図4に示すように、列にbo
und set への値の割り当てを対応させ、行にfree setへ
の値の割り当てを対応させた分解表を作ることで調べる
ことができる。この分解表において列のパターンの種類
は2種類であるため、bound set 側からは2種類を区別
できるだけの情報量、すなわち1ビットだけをfree set
側に送ればよいことがわかる。従って、この関数は図4
に示すように分解できる。
【0005】一般に、関数fにおいて、XB をbound se
t とし、XF をfree setとする単純かつ変数の重なりの
ない分解の存在は、XB への値の割り当てを列に対応さ
せ、XF への値の割り当てを行に対応させた分解表を作
ることで調べることができる。この分解表において列の
パターンが何種類あるかを調べ、もし2種類であれば分
解が存在し、3種類以上であれば分解は存在しないこと
になる。分解が存在する場合、部分関数hは、bound se
t を入力とし、分解表における列のパターンが同じであ
る割り当てに対しては同じ値を出力する関数となる。分
解の像gは、free setと部分関数hの出力を入力とし
て、もとの関数fと同じ値を出力する関数となる。以下
の説明では、上記の与えられたbound set とfree setに
対して分解が存在するかどうかを判定する処理を処理A
と呼ぶ。
【0006】関数fの単純かつ変数の重なりのない分解
を実施するためには、分解を与えるようなbound set を
発見する必要がある。そのためには、様々なbound set
に対して、分解が存在するまで処理Aを繰り返し行わな
ければならない。fの変数の数をnとすると、n個の変
数からm(2≦m≦n−1)個の変数を選ぶ組合せの数
【数3】 であり、最悪の場合これだけの数のbound set に対して
処理Aを行わなければならない。
【0007】
【発明が解決しようとする課題】上記の分解表は、2n
(nは変数の数)に比例する大きさの表となるため、変
数の数の多い論理関数に対しては、処理Aに必要な記憶
量と処理時間は大きなものとなる。分解表の代わりに和
積形表現や二分決定グラフ表現を用いることで、扱う関
数の性質によっては処理Aに必要な記憶量と処理時間を
削減できる場合があるが、このような場合でも依然とし
て必要な記憶量と処理時間は大きい。
【0008】しかも論理関数の分解では、上記のように
膨大な量のbound set に対して、必要な記憶量と処理時
間の大きい処理Aを施さなければならない。従って、関
数の分解を行う際には、分解を与えるbound set を効率
よく発見することが課題となる。
【0009】本発明は、上記に鑑みてなされたもので、
その目的とするところは、関数における変数の対称性を
検出して、分解を与える可能性の高いbound set を列挙
し、論理関数を効率よく、経済的に分解し得るLSI設
計における論理関数の分解方法を提供することにある。
【0010】
【課題を解決するための手段】前記目的を達成するた
め、請求項1記載の本発明は、LSI設計における論理
関数の分解方法であって、完全指定論理関数を表現する
データである論理関数データを対称性検出部に入力し、
該対称性検出部により該論理関数データにおいて対称変
数の集合が存在するか否かを判定し、前記対称性検出部
により対称変数の集合が存在すると判定された場合に
は、該対称変数の集合と前記論理関数データとをXOR
分解部に入力し、前記XOR分解部により、前記論理関
数データにおいて前記対称変数の集合の中に双対称性を
持つ対称変数集合が存在するか否か判定し、前記XOR
分解部により双対称性を持つ対称変数集合が存在すると
判定された場合には、該XOR分解部により、前記論理
関数データを、該双対称性を持つ対称変数集合Xを入
力とするXORゲートと該XORゲートの出力およびX
Fをそれぞれ入力とする関数とに分解することを要旨と
する。また、前記目的を達成するため、請求項2記載の
本発明は、LSI設計における論理関数の分解方法であ
って、完全指定論理関数を表現するデータである論理関
数データを対称性検出部に入力し、該対称性検出部によ
り該論理関数データにおいて対称変数の集合が存在する
か否かを判定し、前記対称性検出部により対称変数の集
合が存在すると判定された場合には、該対称変数の集合
と前記論理関数データとをAND分解部に入力し、前記
AND分解部により、前記論理関数データにおいて前記
対称変数の集合の中に単変数対称性を持つ対称変数集合
が存在するか否か判定し、前記AND分解部により単変
数対称性を持つ対称変数集合が存在すると判定された場
合には、該AND分解部により、前記論理関数データ
を、該単変数対称性を持つ対称変数集合Xを入力とす
るANDゲートと該ANDゲートの出力およびXをそ
れぞれ入力とする関数とに分解することを要旨とする。
さらに、前記目的を達成するため、請求項3記載の本発
明は、LSI設計における論理関数の分解方法であっ
て、完全指定論理関数を表現するデータである論理関数
データを対称性検出部に入力し、該対称性検出部により
該論理関数データにおいて対称変数の集合が存在するか
否かを判定し、前記対称性検出部により対称変数の集合
が存在すると判定された場合には、該対称変数の集合と
前記論理関数データとをXOR分解部に入力し、前記X
OR分解部により、前記論理関数データにおいて前記対
称変数の集合の中に双対称性を持つ対称変数集合が存在
するか否か判定し、前記XOR分解部により双対称性を
持つ対称変数集合が存在すると判定された場合には、該
XOR分解部により、前記論理関数データを、該双対称
性を持つ対称変数集合Xを入力とするXORゲートと
該XORゲートの出力およびXをそれぞれ入力とする
関数とに分解し、前記XOR分解部により前記双対称性
を持つ対称変数集合が存在しないと判定された場合に
は、前記対称変数の集合と前記論理関数データとをAN
D分解部に入力し、前記AND分解部により、前記論理
関数データにおいて前記対称変数の集合の中に単変数対
称性を持つ対称変数集合が存在するか否か判定し、前記
AND分解部により単変数対称性を持つ対称変数集合が
存在すると判定された場合には、該AND分解部によ
り、前記論理関数データを、該単変数対称性を持つ対称
変数集合Xを入力とするANDゲートと該ANDゲー
トの出力およびXをそれぞれ入力とする関数とに分解
することを要旨とする。前記目的を達成するため、請求
項4記載の本発明は、LSI設計における論理関数の分
解装置であって、完全指定論理関数を表現するデータで
ある論理関数データに基づいて該論理関数データにおい
て対称変数の集合が存在するか否かを判定する対称性検
出部と、前記対称性検出部により対称変数の集合が存在
すると判定された場合には、前記対称性検出部から入力
された該対称変数の集合と前記論理関数データとに基づ
いて、該論理関数データにおいて前記対称変数の集合の
中に双対称性を持つ対称変数集合が存在するか否かを判
定し、双対称性を持つ対称変数集合が存在すると判定さ
れた場合に、前記論理関数データを、該双対称性を持つ
対称変数集合Xを入力とするXORゲートと該XOR
ゲートの出力およびXをそれぞれ入力とする関数とに
分解するXOR分解部と、を備えたことを要旨とする。
前記目的を達成するため、請求項5記載の本発明は、L
SI設計における論理関数の分解装置であって、完全指
定論理関数を表現するデータである論理関数データに基
づいて該論理関数データにおいて対称変数の集合が存在
するか否かを判定する対称性検出部と、前記対称性検出
部により対称変数の集合が存在すると判定された場合に
は、前記対称性検出部から入力された該対称変数の集合
と前記論理関数データとに基づいて、該論理関数データ
において前記対称変数の集合の中に単変数対称性を持つ
対称変数集合が存在するか否かを判定し、単変数対称性
を持つ対称変数集合が存在すると判定された場合に、前
記論理関数データを、該単変数対称性を持つ対称変数集
合Xを入力とするANDゲートと該ANDゲートの出
力およびXをそれぞれ入力とする関数とに分解するA
ND分解部と、を備えたことを要旨とする。前記目的を
達成するため、請求項6記載の本発明は、LSI設計に
おける論理関数の分解装置であって、完全指定論理関数
を表現するデータである論理関数データに基づいて該論
理関数データにおいて対称変数の集合が存在するか否か
を判定する対称性検出部と、前記対称性検出部により対
称変数の集合が存在すると判定された場合には、前記対
称性検出部から入力された該対称変数の集合と前記論理
関数データとに基づいて、該論理関数データにおいて前
記対称変数の集合の中に双対称性を持つ対称変数集合が
存在するか否かを判定し、双対称性を持つ対称変数集合
が存在すると判定された場合に、前記論理関数データ
を、該双対称性を持つ対称変数集合Xを入力とするX
ORゲートと該XORゲートの出力およびXをそれぞ
れ入力とする関数とに分解するXOR分解部と、前記X
OR分解部により前記双対称性を持つ対称変数集合が存
在しないと判断された場合に、前記対称性検出部から入
力された該対称変数の集合と前記論理関数データとに基
づいて、該論理関数データにおいて前記対称変数の集合
の中に単変数対称性を持つ対称変数集合が存在するか否
かを判定し、単変数対称性を持つ対称変数集合が存在す
ると判定された場合に、前記論理関数データを、該単変
数対称性を持つ対称変数集合Xを入力とするANDゲ
ートと該ANDゲートの出力およびXをそれぞれ入力
とする関数とに分解するAND分解部と、を備えたこと
を要旨とする。
【0011】 請求項1および請求項4記載の本発明に
あっては、完全指定論理関数を表現するデータである論
理関数データにおいて対称変数の集合が存在すると判定
され、さらに、その対称変数集合に双対称性を持つ対称
変数集合Xが存在すると判定された場合には、論理関
数データを、その双対称性を持つ対称変数集合Xを入
力とするXORゲートと該XORゲートの出力およびX
をそれぞれ入力とする関数とに分解することができ
る。このため、膨大な量のbound setの候補全てに処理
Aを行う必要がなくなり、処理時間を短縮することがで
きる。また、請求項2および請求項5記載の本発明にあ
っては、完全指定論理関数を表現するデータである論理
関数データにおいて対称変数の集合が存在すると判定さ
れ、さらに、その対称変数集合に単変数対称性を持つ対
称変数集合Xが存在すると判定された場合には、論理
関数データを、その単変数対称性を持つ対称変数集合X
を入力とするANDゲートと該ANDゲートの出力お
よびXをそれぞれ入力とする関数とに分解することが
できる。このため、膨大な量のbound setの候補全てに
処理Aを行う必要がなくなり、処理時間を短縮すること
ができる。さらに、請求項3および請求項6記載の本発
明にあっては、完全指定論理関数を表現するデータであ
る論理関数データにおいて対称変数の集合が存在すると
判定され、さらに、その対称変数集合に双対称性を持つ
対称変数集合Xが存在すると判定された場合には、論
理関数データを、その双対称性を持つ対称変数集合X
を入力とするXORゲートと該XORゲートの出力およ
びXをそれぞれ入力とする関数とに分解し、一方、対
称変数集合に双対称性を持つ対称変数集合Xが存在し
ないと判定された場合には、その対称変数集合に単変数
対称性を持つ対称変数集合Xが存在するか否か判定
し、存在すると判定された場合には、論理関数データ
を、その単変数対称性を持つ対称変数集合Xを入力と
するANDゲートと該ANDゲートの出力およびX
それぞれ入力とする関数とに分解することができる。こ
のため、膨大な量のbound setの候補全てに処理Aを行
う必要がなくなり、処理時間を短縮することができる。
【0012】
【発明の実施の形態】以下、図面を用いて本発明の実施
の形態について説明する。
【0013】図1は、本発明の一実施形態に係るLSI
設計における論理関数の分解方法を実施する論理関数分
解装置を電子計算機で動作する論理設計支援システムに
使用した場合の構成を示すブロック図である。図1にお
いては、本実施形態の論理関数分解装置を除く論理設計
支援システムの他の機能ブロックは符号10で一括して
図示され、該機能ブロックから分解したい関数が入力さ
れるようになっている。
【0014】図1に示す実施形態は、前記他の機能ブロ
ック10から入力される分解したい関数を受け取る対称
性検出部1、XOR分解部2、AND分解部3、SYM
分解部4、および電子計算機の主記憶装置9上に論理関
数データを表現し、該データを操作する関数操作部5を
有する。また、関数操作部5は、値代入部6、一致判定
部7、および分解判定部8から構成されている。
【0015】対称性検出部1は、与えられた関数におけ
る変数の対称性を調べ、対称変数集合が存在すればこれ
らを列挙する。XOR分解部2は、双対称性を持つ対称
変数集合が存在するかどうかを調べ、存在すればXOR
ゲートを用いた分解を行う。AND分解部3は、単変数
対称性を持つ対称変数集合が存在するかどうかを調べ、
存在すればANDゲートを用いた分解を行う。SYM分
解部4は、対称変数集合をbound set とするような単純
かつ変数の重なりのない分解が可能であるかを調べ、可
能であればその分解を行う。
【0016】論理設計支援システムにおける他の機能ブ
ロック10からは、対称性検出部1に分解したい関数が
入力される。対称性検出部1は、対称変数集合が存在し
たときは、分解したい関数と対称変数集合の集合を、X
OR分解部2、AND分解部3、SYM分解部4に渡
す。対称変数集合が存在しないときは、分解が存在しな
かったことを他の機能ブロックに伝える。XOR分解部
2、AND分解部3、SYM分解部4は、分解が存在し
たかどうかと分解結果を他の機能ブロックに渡す。
【0017】次に、図2に示すフローチャートを参照し
て、図1の実施形態の手順を説明する。まず対称性検出
部1において、与えられた論理関数における変数の対称
性を調べ、対称変数集合が存在すればこれらを列挙する
(ステップS10,S20)。対称な変数が存在しなけ
れば、分解を見つけられなかったとして処理を終了する
(ステップS30)。次に、XOR分解部2において、
双対称性を持つ対称変数集合が存在するかどうかを調
べ、存在すればXORゲートを用いた分解を行い処理を
終了する(ステップS40,S50)。もし存在しなけ
れば、AND分解部3において、単変数対称性を持つ対
称変数集合が存在するかどうかを調べ、存在すればAN
Dゲートを用いた分解を行い処理を終了する(ステップ
S60,S70)。もし存在しなければ、SYM分解部
4において、対称変数集合をboundset とする分解が可
能であるかを調べ、可能であればその分解を行う(ステ
ップS80,S90)。もし可能でなければ、本発明が
扱う分解は存在しないとして処理を終了する(ステップ
S30)。
【0018】ここで、2変数の対称性について説明す
る。関数f(x1 ,…,xn )は、xi とxj を入れ替
えても関数が変化しないとき、変数{xi ,xj }に関
して対称であるという。同様に、xi とx′j (x′j
はxj の否定を表す)を入れ替えても関数が変化しない
とき、変数{xi ,x′j }に関して対称であるとい
う。ここで、
【数4】 fxixj=f(x1 ,…,xi-1 ,1,xi+1 ,…,xj-1 ,1, xj+1 ,…,xn ) …(2) fxix'j =f(x1 ,…,xi-1 ,1,xi+1 ,…,xj-1 ,0, xj+1 ,…,xn ) …(3) fx'ixj =f(x1 ,…,xi-1 ,0,xi+1 ,…,xj-1 ,1, xj+1 ,…,xn ) …(4) fx'ix'j=f(x1 ,…,xi-1 ,0,xi+1 ,…,xj-1 ,0, xj+1 ,…,xn ) …(5) と定義する。関数fが変数{xi ,xj }に関して対称
であるための必要十分条件は、fxix'j =fx'ixj であ
る。同様に、関数fが変数{xi ,x′j }に関して対
称であるための必要十分条件は、fxixj=fx'ix'jであ
る。例えば、図5に示した関数f=x1 ・x′2 ・x3
・x′4 +(x′1 +x2 +x′3 )・x4 は、x1
1,x2 =1を代入することによりx4 となり、x′1
=0,x′2 =0を代入することによりx4 となるの
で、fx1x2=fx'1x'2=x4 より{x1 ,x′2 }に関
して対称である。また、fx1x'3 =fx'1x3 =x4 より
{x1,x3 }に関して対称である。
【0019】次に、対称変数集合について説明する。入
力変数とその否定の集合{x1 ,x′1 ,…,xn
x′n }の部分集合Xを考える。その部分集合Xの中で
のあらゆる置換に対して関数fが変化しなければ、fは
部分集合Xに関して対称であるといい、集合Xを対称変
数集合と呼ぶ。対称変数集合は、2変数の対称性の集合
から計算できる。これは、完全指定論理関数の場合、2
変数の対称性は同値関係であることによる。例を以下に
示す。
【0020】
【数5】 {xi ,xj }と{xj ,xk }に関して対称 ⇒{xi ,xj ,xk }に関して対称 …(6) {xi ,x′j }と{xj ,xk }に関して対称 ⇒{xi ,x′j ,x′k }に関して対称 …(7) {xi ,x′j }と{xj ,x′k }に関して対称 ⇒{xi ,x′j ,xk }に関して対称 …(8) ここで、対称変数集合の双対称性について説明する。関
数fは、{xi ,xj}と{xi ,x′j }の双方に関
して対称であるとき、変数xi とxj に関して双対称
(multiform symmetric )であるという。例えば、図4
に示す関数fは、{x1 ,x2 }と{x1 ,x′2 }の
双方に関して対称であるので、変数x1 とx2 に関して
双対称である。対称変数集合に含まれるある2変数に関
して関数fが双対称であれば、その対称変数集合に含ま
れるすべての変数のペアに関してfは双対称である。こ
のような性質を持つ対称変数集合は双対称性を持つとい
うことにする。
【0021】 同様に、対称変数集合の単変数対称性に
ついて説明する。関数fは、f ' ix ' =fxixj
であれば、空間xj =1において変数xi に関して単変
数対称(single-variable symmetric )であるという。
同様に、f ' ix ' =fxix ' であれば、空間xj
=0において変数xi に関して単変数対称であるとい
う。例えば、図5に示す関数fは、 '1 2 =f 1
2 =x4 であるので、空間x2 =1において変数x1
に関して単変数対称である。更に、f '2 '3 =f 2
'3=x4 であるので、空間x3 =0において変数x2
に関して単変数対称である。対称変数集合に含まれるあ
る変数xi とxj について、関数fが空間xj =b(b
は0か1のどちらか)において変数xi に関して単変数
対称であれば、その対称変数集合からxi とxj をどの
ように選んでも単変数対称となる。このような性質を持
つ対称変数集合は単変数対称性を持つということにす
る。
【0022】次に、具体的な関数に対して、本実施形態
を適用する様子を説明す。まず、図4にある関数fを考
える。変数の対称性を調べると、fx1x'2 =fx'1x2
3+x′3 ・x4 より、{x1 ,x2 }という対称変
数集合が検出できる。fx1x2=fx'1x'2=x′3 ・x4
より、fは{x1 ,x′2 }に関しても対称であるの
で、この対称変数集合は双対称性を持つ。この場合、
【数6】 というようにXORゲートを用いた分解を行うことが可
能となる。
【0023】また、図5にある関数fを考える。変数の
対称性を調べると、{x1 ,x′2,x3 }という対称
変数集合が検出できる。fは{x1 ,x2 }に関しては
対称ではないので、この対称変数集合は双対称性を持た
ない。しかし、fx1x2=fx' 1x2 =x4 より、fは空間
2 =1において変数x1 に関して単変数対称であるの
で、この対称変数集合は単変数対称性を持つ。この場
合、f=(x1 ・x2 ′・x3 )・x′4 +(x1
x′2 ・x3 )′・x4 というようにANDゲートを用
いた分解を行うことが可能となる。
【0024】また、図6にある関数fを考える。変数の
対称性を調べると、{x1 ,x2 ,x3 }という対称変
数集合が検出できる。fx1x2=x4 ,fx1x'2 =x3
4,fx'1x2 =x3 ・x4 ,fx'1x'2=0より、この
対称変数集合は双対称性も単変数対称性も持たない。し
かし、この対称変数集合をbound set として処理Aを行
うと、f=(x1 ・x2 +x2 ・x3 +x3 ・x1 )・
4 というように分解可能であることがわかる。
【0025】次に、図1に示す実施形態の各部の動作に
ついて詳細に説明する。
【0026】関数操作部5において、値代入部6は、関
数fの変数に値を代入したものを計算する。一致判定部
7は、2つの関数が一致しているかどうかを判定する。
分解判定部8は、与えられた関数とbound set に対して
単純かつ変数の重なりのない分解が存在するかどうかを
判定し、存在する場合は分解を行う。すなわち、処理A
に相当することを行う。
【0027】対称性検出部1は、関数fを入力とし、f
における対称変数集合をすべて列挙し、これを出力とす
る。対称性検出部1は、関数fにおける2変数の対称性
をすべて調べるステップS101と、ステップS101
の結果をもとに対称変数集合を求めるステップS102
からなる。
【0028】ステップS101では、すべてのxi (n
≧i≧2)に対して、fが{xi ,xj }あるいは{x
i ,x′j }に関して対称であり、jがi>jという条
件のもとで最大となるxj が存在すればこれを見つけ
る。すなわち、fxix'j =fx' ixj かfxixj=fx'ix'j
が成り立ち、i>jである最大のjが存在すれば、これ
を求める。この処理では、関数操作部5の値代入部6と
一致判定部7を利用する。
【0029】ステップS102では、ステップS101
の結果に式(6)から式(8)の推移律を適用して対称
変数集合を求める。例えば、上記の操作で{x5
3 },{x4 ,x′2 },{x2 ,x1 }という2変
数の対称性が確認できたとすると、対称変数集合は{x
5 ,x3 }と{x4 ,x′2 ,x′1 }である。
【0030】XOR分解部2は、関数fと対称変数集合
の集合を入力とし、XORゲートを用いる分解が可能で
あればこれを出力する。XOR分解部2は、対称変数集
合が双対称性を持つかどうかを判定するステップS20
1と、双対称性を持つときに実際に分解を行うステップ
S202から成る。
【0031】ステップS201では、対称変数集合に含
まれるある2変数xi ,xj に関して、関数fが双対称
であるかどうか、すなわちfxix'j =fx'ixj かつf
xixj=fx'ix'jが成り立つかどうかを調べる。この処理
では、関数操作部5の値代入部6と一致判定部7を利用
する。もし成り立てば、対称変数集合に含まれるすべて
の2変数に関してfは双対称である。
【0032】ステップS202では、双対称性を持つ対
称変数集合をbound set とし、部分関数hをXORゲー
トで実現する分解を行う。対称変数集合に含まれるすべ
ての変数のペアxi ,xj に関してfxix'j =fx'ixj
とfxixj=fx'ix'jが成り立つため、仮に分解表を作っ
たとすると、それは図7に示すようなものになる。すな
わち、1が偶数個であるbound set への値の割り当て
と、1が奇数個であるbound set への値の割り当てで、
列のパターンが2種類に分れる。ここで、1が偶数個で
ある部分の列のパターン(関数)をg0 、1が奇数個で
ある部分の列のパターン(関数)をg1 とすると、分解
の像gは、h=0のときg0 を、h=1のときg1 を出
力するものとなる。
【0033】AND分解部3は、関数fと対称変数集合
の集合を入力とし、ANDゲートを用いる分解が可能で
あればこれを出力する。AND分解部3は、対称変数集
合が単変数対称性を持つかどうかを判定するステップS
301と、単変数対称性を持つときに実際に分解を行う
ステップS302から成る。
【0034】ステップS301では、対称変数集合に含
まれるある2変数xi ,xj に関して、関数fが単変数
対称であるかどうか、すなわちfx'ixj =fxixjまたは
x' ix'j=fxix'j が成り立つかどうかを調べる。この
処理では、関数操作部5の値代入部6と一致判定部7を
利用する。もし成り立てば、対称変数集合に含まれるす
べての2変数に関してfは単変数対称である。
【0035】ステップS302では、単変数対称性を持
つ対称変数集合をbound set とし、部分関数hをAND
ゲートといくつかのNOTゲートで実現する分解を行
う。ここで、対称変数集合に含まれるすべての変数xi
に関して、関数fが空間xi =0で単変数対称となるよ
うにfのいくつかの入力を否定したfN を考える。以
下、fを分解する代わりにfN を分解する。fN の分解
の後、否定した入力にNOTゲートを付けることで、f
の分解を求めることができる。対称変数集合に含まれる
すべての変数のペアxi ,xj に関して
【数7】 が成り立つため、仮に分解表を作ったとすると、それは
図8に示すようなものになる。すなわち、すべて1であ
るbound set への値の割り当てとそれ以外で、列のパタ
ーンが2種類に分れる。ここで、すべて1である部分の
列のパターン(関数)をg1 、それ以外の部分の列のパ
ターン(関数)をg0 とすると、分解の像gは、h=0
のときg0 を、h=1のときg1 を出力するものとな
る。
【0036】SYM分解部4は、関数fと対称変数集合
の集合を入力とし、対称変数集合をbound set とする分
解が可能であればこれを出力する。入力された対称変数
集合に対し、これをbound set とするような分解が可能
であるかどうか、すなわち処理Aに相当することを、関
数操作部5の分解判定部8を用いて調べる。
【0037】なお、LSIの設計においては、実現すべ
き論理関数をより少ない論理ゲートで実現することが重
要であり、n変数論理関数は必ず2個のn−1変数論理
関数と1個の3変数論理関数に分解することができるの
で、これを再帰的に繰り返していけば、2n (2のn
乗)に比例する論理ゲートで実現でき、ほとんどすべて
の論理関数はこれだけの論理ゲートを必要とすることに
なるが、本実施形態では、この論理ゲートの数を低減す
るために、n変数論理関数をk変数論理関数とn−k+
1変数論理関数に分解できるかどうかを調べて、可能な
場合に、単純かつ変数の重なりのない分解を行ってい
る。そして、分解の結果、最悪2n に比例する論理ゲー
トが必要であった論理関数を最悪2k +2(n-k+1) に比
例する論理ゲートで実現するものである。
【0038】具体的には、図4において、元の関数f=
1 ・x′2 ・x3 +x′1 ・x2・x3 +x′3 ・x
4 は、4変数関数であり、分解した後の関数gおよびh
はそれぞれ3変数関数および2変数関数となるというよ
うに入力数の小さい2つの論理関数で実現することがで
きる。この結果、最悪24 =16に比例する論理ゲート
が必要であったものが、最悪23 +22 =12に比例す
る論理ゲートで実現することができるようになる。
【0039】本発明では、論理関数における変数の対称
性を調べることで、対称変数集合をbound set とする分
解を調べている。従来の技術では、膨大な数のbound se
t の候補に対して分解を調べていた。n変数論理関数で
あれば、bound set の候補は、n個の変数からm(2≦
m≦n−1)個の変数を選ぶ組合せの数2n −n−2だ
けある。本発明では、すべての2変数の対称性を調べる
のが主な処理であり、n変数から2変数を選ぶ場合の数
はn(n−1)/2である。すなわち、本発明は従来の
手法に比べて処理量が少なく、高速に実行することがで
きる。
【0040】また、本発明では、対称変数集合がさらに
双対称性や単変数対称性を満たしているかどうかを調べ
ることで、XORゲートを用いた分解やANDゲートを
用いた分解が可能であるかどうかを判定している。これ
により、ある関数において与えられた変数集合をbound
set とする分解が存在するかどうかを判定する処理Aを
行う必要がない。
【0041】ある関数において単純かつ変数の重なりの
ない分解を与えるbound set は複数存在する可能性があ
るが、部分関数を実現するためのコストは小さい方が望
ましい。本発明では、XORゲートやANDゲートを用
いる分解から先に調べているため、部分関数を実現する
ためのコストが小さい分解を優先的に見つけ出すことが
できる。
【0042】本発明では、bound set を対称な変数のグ
ループのみに限定しているため、分解が存在すれば必ず
これを発見するという完全性はなく、そのような制限が
ない場合に比べて、発見できる分解の形の種類は少なく
なっている。しかし、分解の像に対して本発明の分解を
再帰的に適用することにより、それらの発見できなかっ
た分解を発見できることがある。
【0043】
【発明の効果】以上説明したように、本発明によれば、
論理ゲート数を削減するためのLSI設計における論理
関数の分解を行う際に、膨大な量のbound setの候補全
てに処理Aを行う必要がなくなり、処理時間を短縮し、
前記論理関数分解処理を高速化することができる。ま
た、XORゲートおよび/またはANDゲートを用いる
分解から調べているため、低コストで論理関数の分解を
実現することができる。
【図面の簡単な説明】
【図1】本発明の一実施形態に係るLSI設計における
論理関数の分解方法を実施する論理関数分解装置を電子
計算機で動作する論理設計支援システムに使用した場合
の構成を示すブロック図である。
【図2】図1に示す実施形態の手順を示すフローチャー
トである。
【図3】単純かつ変数の重なりのない分解を示す説明図
である。
【図4】XORゲートを用いた分解の例を示す説明図で
ある。
【図5】ANDゲートを用いた分解の例を示す説明図で
ある。
【図6】対称変数集合をbound set とした分解の例を示
す説明図である。
【図7】XORゲートを用いた分解を示す説明図であ
る。
【図8】ANDゲートを用いた分解を示す説明図であ
る。
【符号の説明】
1 対称性検出部 2 XOR分解部 3 AND分解部 4 SYM分解部 5 関数操作部 6 値代入部 7 一致判定部 8 分解判定部 9 主記憶装置 10 論理設計支援システムにおける他の機能ブロック 11 XORゲート 12 ANDゲート 13 NOTゲート
───────────────────────────────────────────────────── フロントページの続き (58)調査した分野(Int.Cl.7,DB名) G06F 17/50

Claims (6)

    (57)【特許請求の範囲】
  1. 【請求項1】 LSI設計における論理関数の分解方法
    であって、 完全指定論理関数を表現するデータである論理関数デー
    タを対称性検出部に入力し、該対称性検出部により該論
    理関数データにおいて対称変数の集合が存在するか否か
    を判定し、 前記対称性検出部により対称変数の集合が存在すると判
    定された場合には、該対称変数の集合と前記論理関数デ
    ータとをXOR分解部に入力し、 前記XOR分解部により、前記論理関数データにおいて
    前記対称変数の集合の中に双対称性を持つ対称変数集合
    が存在するか否か判定し、 前記XOR分解部により双対称性を持つ対称変数集合が
    存在すると判定された場合には、該XOR分解部によ
    り、前記論理関数データを、該双対称性を持つ対称変数
    集合Xを入力とするXORゲートと該XORゲートの
    出力およびXをそれぞれ入力とする関数とに分解する
    ことを特徴とする論理関数の分解方法。
  2. 【請求項2】 LSI設計における論理関数の分解方法
    であって、 完全指定論理関数を表現するデータである論理関数デー
    タを対称性検出部に入力し、該対称性検出部により該論
    理関数データにおいて対称変数の集合が存在するか否か
    を判定し、 前記対称性検出部により対称変数の集合が存在すると判
    定された場合には、該対称変数の集合と前記論理関数デ
    ータとをAND分解部に入力し、 前記AND分解部により、前記論理関数データにおいて
    前記対称変数の集合の中に単変数対称性を持つ対称変数
    集合が存在するか否か判定し、 前記AND分解部により単変数対称性を持つ対称変数集
    合が存在すると判定された場合には、該AND分解部に
    より、前記論理関数データを、該単変数対称性を持つ対
    称変数集合Xを入力とするANDゲートと該ANDゲ
    ートの出力およびXをそれぞれ入力とする関数とに分
    解することを特徴とする論理関数の分解方法。
  3. 【請求項3】 LSI設計における論理関数の分解方法
    であって、 完全指定論理関数を表現するデータである論理関数デー
    タを対称性検出部に入力し、該対称性検出部により該論
    理関数データにおいて対称変数の集合が存在するか否か
    を判定し、 前記対称性検出部により対称変数の集合が存在すると判
    定された場合には、該対称変数の集合と前記論理関数デ
    ータとをXOR分解部に入力し、 前記XOR分解部により、前記論理関数データにおいて
    前記対称変数の集合の中に双対称性を持つ対称変数集合
    が存在するか否か判定し、 前記XOR分解部により双対称性を持つ対称変数集合が
    存在すると判定された場合には、該XOR分解部によ
    り、前記論理関数データを、該双対称性を持つ対称変数
    集合Xを入力とするXORゲートと該XORゲートの
    出力およびXをそれぞれ入力とする関数とに分解し、 前記XOR分解部により前記双対称性を持つ対称変数集
    合が存在しないと判定された場合には、前記対称変数の
    集合と前記論理関数データとをAND分解部に入力し、 前記AND分解部により、前記論理関数データにおいて
    前記対称変数の集合の中に単変数対称性を持つ対称変数
    集合が存在するか否か判定し、 前記AND分解部により単変数対称性を持つ対称変数集
    合が存在すると判定された場合には、該AND分解部に
    より、前記論理関数データを、該単変数対称性を持つ対
    称変数集合Xを入力とするANDゲートと該ANDゲ
    ートの出力およびXをそれぞれ入力とする関数とに分
    解することを特徴とする論理関数の分解方法。
  4. 【請求項4】 LSI設計における論理関数の分解装置
    であって、 完全指定論理関数を表現するデータである論理関数デー
    タに基づいて該論理関数データにおいて対称変数の集合
    が存在するか否かを判定する対称性検出部と、 前記対称性検出部により対称変数の集合が存在すると判
    定された場合には、前記対称性検出部から入力された該
    対称変数の集合と前記論理関数データとに基づいて、該
    論理関数データにおいて前記対称変数の集合の中に双対
    称性を持つ対称変数集合が存在するか否かを判定し、双
    対称性を持つ対称変数集合が存在すると判定された場合
    に、前記論理関数データを、該双対称性を持つ対称変数
    集合Xを入力とするXORゲートと該XORゲートの
    出力およびXをそれぞれ入力とする関数とに分解する
    XOR分解部と、を備えたことを特徴とする論理関数の
    分解装置。
  5. 【請求項5】 LSI設計における論理関数の分解装置
    であって、 完全指定論理関数を表現するデータである論理関数デー
    タに基づいて該論理関数データにおいて対称変数の集合
    が存在するか否かを判定する対称性検出部と、 前記対称性検出部により対称変数の集合が存在すると判
    定された場合には、前記対称性検出部から入力された該
    対称変数の集合と前記論理関数データとに基づいて、該
    論理関数データにおいて前記対称変数の集合の中に単変
    数対称性を持つ対称変数集合が存在するか否かを判定
    し、単変数対称性を持つ対称変数集合が存在すると判定
    された場合に、前記論理関数データを、該単変数対称性
    を持つ対称変数集合Xを入力とするANDゲートと該
    ANDゲートの出力およびXをそれぞれ入力とする関
    数とに分解するAND分解部と、を備えたことを特徴と
    する論理関数の分解装置。
  6. 【請求項6】 LSI設計における論理関数の分解装置
    であって、 完全指定論理関数を表現するデータである論理関数デー
    タに基づいて該論理関数データにおいて対称変数の集合
    が存在するか否かを判定する対称性検出部と、 前記対称性検出部により対称変数の集合が存在すると判
    定された場合には、前記対称性検出部から入力された該
    対称変数の集合と前記論理関数データとに基づいて、該
    論理関数データにおいて前記対称変数の集合の中に双対
    称性を持つ対称変数集合が存在するか否かを判定し、双
    対称性を持つ対称変数集合が存在すると判定された場合
    に、前記論理関数データを、該双対称性を持つ対称変数
    集合Xを入力とするXORゲートと該XORゲートの
    出力およびXをそれぞれ入力とする関数とに分解する
    XOR分解部と、 前記XOR分解部により前記双対称性を持つ対称変数集
    合が存在しないと判断された場合に、前記対称性検出部
    から入力された該対称変数の集合と前記論理関数データ
    とに基づいて、該論理関数データにおいて前記対称変数
    の集合の中に単変数対称性を持つ対称変数集合が存在す
    るか否かを判定し、単変数対称性を持つ対称変数集合が
    存在すると判定された場合に、前記論理関数データを、
    該単変数対称性を持つ対称変数集合Xを入力とするA
    NDゲートと該ANDゲートの出力およびXをそれぞ
    れ入力とする関数とに分解するAND分解部と、を備え
    たことを特徴とする論理関数の分解装置。
JP03081197A 1997-02-14 1997-02-14 Lsi設計における論理関数の分解方法 Expired - Fee Related JP3489715B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP03081197A JP3489715B2 (ja) 1997-02-14 1997-02-14 Lsi設計における論理関数の分解方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP03081197A JP3489715B2 (ja) 1997-02-14 1997-02-14 Lsi設計における論理関数の分解方法

Publications (2)

Publication Number Publication Date
JPH10228490A JPH10228490A (ja) 1998-08-25
JP3489715B2 true JP3489715B2 (ja) 2004-01-26

Family

ID=12314084

Family Applications (1)

Application Number Title Priority Date Filing Date
JP03081197A Expired - Fee Related JP3489715B2 (ja) 1997-02-14 1997-02-14 Lsi設計における論理関数の分解方法

Country Status (1)

Country Link
JP (1) JP3489715B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7814452B1 (en) * 2007-11-01 2010-10-12 Xilinx, Inc. Function symmetry-based optimization for physical synthesis of programmable integrated circuits

Also Published As

Publication number Publication date
JPH10228490A (ja) 1998-08-25

Similar Documents

Publication Publication Date Title
Gergov et al. Efficient Boolean manipulation with OBDD's can be extended to FBDD's
Clarke et al. Spectral transforms for large Boolean functions with applications to technology mapping
Rajski et al. The testability-preserving concurrent decomposition and factorization of Boolean expressions
US7103620B2 (en) Method and apparatus for verification of digital arithmetic circuits by means of an equivalence comparison
US20050240645A1 (en) Generation of test cases with range constraints for floating point add and subtract instructions
US6519609B1 (en) Method and system for matching boolean signatures
Tsai et al. Boolean matching using generalized Reed-Muller forms
JP3489715B2 (ja) Lsi設計における論理関数の分解方法
Clarke et al. Applications of multi-terminal binary decision diagrams
KR0146656B1 (ko) 다치 논리합 연산장치
Aoki et al. Evolutionary design of arithmetic circuits
USRE43514E1 (en) Circuit elements and parallel computational networks with logically entangled terminals
Sawada et al. Restructuring logic representations with easily detectable simple disjunctive decompositions
Meyer et al. Performability of a token bus network under transient fault conditions
JPH01220528A (ja) パリテイ発生器
JPH10224224A (ja) 半導体演算装置
Morgan et al. Computer-aided analysis of concurrent systems
Karuno et al. An application of integer programming solvers to an item collecting problem in directed bipartite graphs
Xing et al. Enumeration algorithms for maximal perfect-resource-transition circuits and strict minimal siphons in S3PR
Lang et al. Decomposition of multi-valued functions into min-and max-gates
Yang et al. Multi-way FSM decomposition based on interconnect complexity
Skliarova et al. Hardware Accelerators for Data Sort
US6158042A (en) Method of counting bits
Montoya et al. Implementation of parallel thinning algorithms on multicomputers: analysis of the work load balance
Jiang et al. Suggestion for a new representation for binary function

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20071107

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081107

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091107

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees