(57)【特許請求の範囲】
【請求項１】
ハードウェア記述言語による論理回路記述で与えられる回路ブロックの最適化アルゴリズム候補を、回路ブロックにおける入出力状態の相違の度合を表すハミング距離を考慮した指数とアルゴリズム候補との相関に基づいて判定する第１処理と、
前記第１処理で判定された最適化アルゴリズム候補の共通な回路ブロックを、回路ブロック相互間における信号の一致性を考慮した結合度と回路ブロックに対する統合可否との相関に基づいてグループ化する第２処理と、
前記第２処理によるグループ化の結果を初期状態に反映して複数の回路ブロックのグループ化を遺伝的アルゴリズムによって最適化する第３処理と、をコンピュータがプログラムに従って実行することを特徴とする論理回路の設計方法。
【請求項２】
前記指数は、回路ブロックの状態数Ｓ、回路ブロックの入力信号数Ｎ、回路ブロックの出力信号数Ｍ、及び入力信号のｉ番目と出力信号のｊ番目のハミング距離Ｈｉｊを用いた、Σ｜Ｈｉｊ−Ｓ／２｜／（Ｎ＊Ｍ＊Ｓ／２）で与えられる平均ハミング距離指数であることを特徴とする請求項１記載の論理回路の設計方法。
【請求項３】
前記指数とアルゴリズム候補との相関は、回路ブロックのアルゴリズム候補としてＡＮＤ−ＥＯＲ系候補、ＡＮＤ−ＯＲ系候補、それ以外の候補のうち、どれに最も近いかの確からしさを前記指数との関係で規定するメンバーシップ関数によって与えられることを特徴とする請求項２記載の論理回路の設計方法。
【請求項４】
前記第３処理は、回路ブロックのグループ化による論理規模を考慮した評価関数を用いることを特徴とする請求項１記載の論理回路の設計方法。
【請求項５】
前記第３処理は、回路ブロックのグループ化による論理の変数の数、論理段数、及び合成負荷を考慮した評価関数を用いることを特徴とする請求項４記載の論理回路の設計方法。
【請求項６】
入力手段、記憶手段、及び前記入力手段からの入力情報を利用し前記記憶手段を用いて演算処理を行なうデータ処理手段を有し、
前記入力手段はハードウェア記述言語による論理回路記述データを入力可能であり、
前記データ処理手段は、前記論理回路記述データで与えられる回路ブロックの最適化アルゴリズム候補を、回路ブロックにおける入出力状態の相違の度合を表すハミング距離を考慮した指数とアルゴリズム候補との相関に基づいて判定する第１処理と、
前記第１処理で判定された最適化アルゴリズム候補の共通な回路ブロックを、回路ブロック相互間における信号の一致性を考慮した結合度と回路ブロックに対する統合可否との相関に基づいてグループ化する第２処理と、
前記第２処理によるグループ化の結果を初期状態に反映して複数の回路ブロックのグループ化を遺伝的アルゴリズムによって最適化する第３処理と、を実行可能であることを特徴とする論理回路の設計支援システム。
【請求項７】
前記指数は、回路ブロックの状態数Ｓ、回路ブロックの入力信号数Ｎ、回路ブロックの出力信号数Ｍ、及び入力信号のｉ番目と出力信号のｊ番目のハミング距離Ｈｉｊを用いた、Σ｜Ｈｉｊ−Ｓ／２｜／（Ｎ＊Ｍ＊Ｓ／２）で与えられる平均ハミング距離指数であることを特徴とする請求項６記載の論理回路の設計支援システム。
【請求項８】
前記指数とアルゴリズム候補との相関は、回路ブロックのアルゴリズム候補としてＡＮＤ−ＥＯＲ系候補、ＡＮＤ−ＯＲ系候補、それ以外の候補のうち、どれに最も近いかの確からしさを前記指数との関係で規定するメンバーシップ関数によって与えられることを特徴とする請求項７記載の論理回路の設計支援システム。
【請求項９】
前記データ処理手段は、前記第３処理において、回路ブロックのグループ化による論理規模を考慮した評価関数を用いることを特徴とする請求項６記載の論理回路の設計支援システム。
【請求項１０】
前記データ処理手段は、前記第３処理において、回路ブロックのグループ化による論理の変数の数、論理段数、及び合成負荷を考慮した評価関数を用いることを特徴とする請求項９記載の論理回路の設計支援システム。
【請求項１１】
コンピュータに、
ハードウェア記述言語による論理回路記述で与えられる回路ブロックの最適化アルゴリズム候補を、回路ブロックにおける入出力状態の相違の度合を表すハミング距離を考慮した指数とアルゴリズム候補との相関に基づいて判定する第１処理と、
前記第１処理で判定された最適化アルゴリズム候補の共通な回路ブロックを、回路ブロック相互間における信号の一致性を考慮した結合度と回路ブロックに対する統合可否との相関に基づいてグループ化する第２処理と、
前記第２処理によるグループ化の結果を初期状態に反映して複数の回路ブロックのグループ化を遺伝的アルゴリズムによって最適化する第３処理と、を実行させるための論理回路の設計支援プログラムを記録したものであることを特徴とするコンピュータ読取り可能な記録媒体。
【請求項１２】
前記指数は、回路ブロックの状態数Ｓ、回路ブロックの入力信号数Ｎ、回路ブロックの出力信号数Ｍ、及び入力信号のｉ番目と出力信号のｊ番目のハミング距離をＨｉｊを用いた、Σ｜Ｈｉｊ−Ｓ／２｜／（Ｎ＊Ｍ＊Ｓ／２）で与えられる平均ハミング距離指数であることを特徴とする請求項１１記載のコンピュータ読取り可能な記録媒体。
【請求項１３】
前記指数とアルゴリズム候補との相関は、回路ブロックのアルゴリズム候補としてＡＮＤ−ＥＯＲ系候補、ＡＮＤ−ＯＲ系候補、それ以外の候補のうち、どれに最も近いかの確からしさを前記指数との関係で規定するメンバーシップ関数によって与えられることを特徴とする請求項１２記載のコンピュータ読取り可能な記録媒体。
【請求項１４】
前記第３処理は、回路ブロックのグループ化による論理規模を考慮した評価関数を用いることを特徴とする請求項１１記載のコンピュータ読取り可能な記録媒体。
【請求項１５】
前記第３処理は、回路ブロックのグループ化による論理の変数の数、論理段数、及び合成負荷を考慮した評価関数を用いることを特徴とする請求項１４記載のコンピュータ読取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、論理回路の設計方法、論理回路の設計支援システム、及びコンピュータ読取り可能な記録媒体に係り、ハードウェア記述言語による論理回路記述に基づく論理合成の最適化に適用して有効な技術に関する。
【０００２】
【従来の技術】
半導体集積回路の論理設計では論理規模や集積度の増大に伴って、Ｃ言語などのプログラミング言語に類似するＶＨＤＬ（Verilog Hardware Description Language）等のハードウェア記述言語が用いられる。ハードウェア記述言語で記述された論理回路記述に対して論理合成の処理が行なわれることにより、例えばゲートレベルでの論理回路が得られる。このとき、半導体集積回路のチップ全体を一括で論理合成することは、規模的に若しくは計算機能力上、不可能であるため、分割のオーバーヘッドが出来るだけ少ない範囲で出来るだけ小さな単位に論理合成処理を分割する必要がある。この分割は、論理の独立性が高い範囲で分割して論理合成可能な規模となればよいが、論記規模を小さくして論理合成を最適化していかなければなならないから、実際には、更に小さく分割する必要がある。また、分割した単位を論理合成する際には、いくつかのアルゴリズム候補から最適なものを選択し適用する必要がある。実際の論理合成では、論理分割と最適化されたアルゴリズム候補の選択が絡み合い、その解決の困難さを増大させており、これに対し多くは、人手による試行錯誤で対応していた。
【０００３】
従来、人間が経験的に行っている判断手法をプロセス制御等に取り入れた技術として、ファジー推論をシステムの設計支援に採用した特開平３−２６５９７４号、ファジー推論を制御システムの最適性判定に適用した特開平４−７０９０６号の記載がある。
【０００４】
【発明が解決しようとする課題】
しかしながら、論理合成に際して論理分割とアルゴリズム候補の選択という相互に複雑に関連する事象の解決に多くを人手による試行錯誤で対応していたのでは、これにかかる工数や期間の増加の他、合成結果のばらつきも大きくなるとい問題点のあることが本発明者によって見出された。
【０００５】
本発明者は、人間が経験的に行っている発見的最適化に近い自動化手法を論理合成に適用することについて検討してきたが、前記ファジー推論を用いた従来技術は、それに対する着眼すら与えるものではなかった。
【０００６】
本発明の目的はハードウェア記述言語による論理回路記述に対する論理合成に要する期間を短縮可能な論理回路の設計方法、論理回路の設計支援システム、及び論理回路の設計支援プログラムを記録したシステムコンピュータ読取り可能な記録媒体を提供することにある。
【０００７】
本発明の別の目的は、ハードウェア記述言語による論理回路記述に対する論理合成結果の属人的なばらつきを低減可能な論理回路の設計方法、論理回路の設計支援システム、及び論理回路の設計支援プログラムを記録したシステムコンピュータ読取り可能な記録媒体を提供することにある。
【０００８】
本発明の更に別の目的は、ハードウェア記述言語による論理回路記述に対する論理合成を介して設計さる半導体集積回路の性能向上に寄与することが可能な論理回路の設計方法、論理回路の設計支援システム、及び論理回路の設計支援プログラムを記録したシステムコンピュータ読取り可能な記録媒体を提供することにある。
【０００９】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【００１０】
【課題を解決するための手段】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【００１１】
〔１〕本発明は、ファジー推論と遺伝的アルゴリズムとを組み合わせることで、人間が経験的に行っている発見的最適化に近い自動化手法を、ハードウェア記述言語による論理回路記述に対する論理合成に適用する。すなわち、ハードウェア記述言語による論理回路記述で与えられる複数の回路ブロックの最適化アルゴリズム候補を、回路ブロックのハミング距離を考慮するようなファジー推論を用いて判定する（第１処理）。前記第１処理で判定された最適化アルゴリズム候補の共通な回路ブロックを、回路ブロック相互間の結合度を考慮するようなファジー推論を用いてグループ化する（第２処理）。ファジー推論によるグループ化の結果はアルゴリズム候補や結合度という点で特徴の明らかな回路ブロックに対する結果であり、前記特徴の比較的不明確な回路ブロックはグループ化されずに或いは別の手法で暫定的にグループ化されて残る。そのような特徴の不明確な回路ブロックに対するグループ化の最適化を進めるために、前記第２処理によるグループ化の結果を初期状態に反映して前記複数の回路ブロックのグループ化を遺伝的アルゴリズムによって最適化する第３処理を行なう。
【００１２】
本発明を更に詳しい態様に即して説明する。ハードウェア記述言語による論理回路記述で与えられる複数の回路ブロック(例えばalwaysブロック又はfunctionブロック等で規定される回路ブロック)に対しファジー推論により統合すべき初期値を決定する。ファジー推論に使用するメンバシップ関数は、第１に、各回路ブロックの真理値表から得られるハミング距離を考慮した指数と最適化アルゴリズム候補との相関を規定する関数である。例えば、ハミング距離が回路ブロックの信号数に一致する論理はインバーターであり、信号数の１／２に近い論理はＥＯＲ（排他的論理和）に近く、それ以外はＡＮＤ−ＯＲに近いと特徴づけられる。前記指数として、例えば、回路ブロックの状態数Ｓ、回路ブロックの入力信号数Ｎ、回路ブロックの出力信号数Ｍ、入力信号のｉ番目と出力信号のｊ番目のハミング距離Ｈｉｊを用いた、Σ｜Ｈｉｊ−Ｓ／２｜／（Ｎ＊Ｍ＊Ｓ／２）で与えられる平均ハミング距離指数を採用することが可能である。メンバシップ関数は、第２に回路ブロック相互間における入出力信号の一致性から得られる結合度と回路ブロックに対する統合可否との相関を規定する関数である。それらメンバシップ関数に従い、回路ブロックに最適化アルゴリズム候補を割り当て、同一アルゴリズムを候補に持つものの内、結合度が高いものを論理合成において統合すべき回路ブロックとしてグループ化する。
【００１３】
そして、前記統合すべき回路ブロックとしてグループ化された結果を個体の初期状態に反映して前記複数の回路ブロックのグループ化を遺伝的アルゴリズムによって最適化する。各個体は例えば、統合した回路ブロックとアルゴリズム候補との対をデータとし、統合した回路ブロックによって表現される論理式の変数の数をＶ、論理段数をＳ及び論理規模に従い増加する合成負荷をＬとするときV＊S＊Lを評価関数とする（記号＊は乗算を意味する）。上記評価関数による評価の良い個体を複数個選び、選ばれた複数の個体の遺伝子の共通部分に対して遺伝確立を上げるように世代を重ね、評価がある値に達したときの個体が求める最適解となる。
【００１４】
上記遺伝的アルゴリズムによる最適化処理を経て導出された結果は、合成可能な論理規模内できるだけオーバーヘッドが少なくなる分割であり、同時にそのブロックに対する最適化アルゴリズムも決定されているため、その結果に従えば、即座に論理合成結果を得ることが可能になる。さらに、ハードウェア記述言語による論理回路記述に対する論理合成に要する期間の短縮、ハードウェア記述言語による論理回路記述に対する論理合成結果の属人的なばらつきの低減が可能になる。そして、ハードウェア記述言語による論理回路記述に対する論理合成を介して設計さる半導体集積回路の性能向上に寄与することが可能である。
【００１５】
〔２〕上記論理回路の設計方法は、入力手段、記憶手段、及び前記入力手段からの入力情報を利用し前記記憶手段を用いて演算処理を行なうデータ処理手段を有する論理回路の設計支援システムで実現することが可能である。論理回路の設計支援システムにおいて、前記入力手段はハードウェア記述言語による論理回路記述データを入力可能である。前記データ処理手段は、前記第１乃至第３処理をを実行可能である。
【００１６】
〔３〕上記論理回路の設計方法をコンピュータに実行させるプログラムはコンピュータ読取り可能な記録媒体で提供してよい。即ち、前記記録媒体は第１乃至第３処理を実行させる、論理回路の設計支援プログラムを記録したものである。これにより、エンジニアリングワークステーションやパーソナルコンピュータで上記論理回路の設計方法を実現することが容易になる。
【００１７】
【発明の実施の形態】
図１には本発明に係る論理回路の設計方法がフローチャートにて例示される。同図に示される設計方法は、ＶＨＤＬなどのハードウェア記述言語による論理回路記述に対する論理合成を最適化する方法であり、ファジー推論と遺伝的アルゴリズムを組み合わせることで、人間が経験的に行っている発見的最適化に近い自動化手法を有するものである。この方法は、ハードウェア記述言語による論理回路記述で与えられる複数の回路ブロックに対しファジー推論により統合すべき初期値を決定するファジー推論による初期値決定処理（Ｓ１〜Ｓ６）と、前記統合すべき回路ブロックとしてグループ化された結果を個体の初期状態に反映して前記複数の回路ブロックのグループ化を遺伝的アルゴリズムによって最適化する遺伝的アルゴリズムによる最適化処理（Ｓ７〜Ｓ１３）に大別される。
【００１８】
前記ファジー推論による初期値決定処理は、ハードウェア記述言語による論理回路記述で与えられる回路ブロックのアルゴリズム候補を、回路ブロックのハミング距離を考慮するようなファジー推論を用いて判定する第１処理（Ｓ１〜Ｓ３）と、前記第１処理で判定された最適化アルゴリズム候補の共通な回路ブロックを、回路ブロック相互間の結合度を考慮するようなファジー推論を用いてグループ化する第２処理（Ｓ４〜Ｓ６）とに分類できる。ファジー推論は、曖昧さを表現したメンバーシップ関数若しくはルールを用いた推論であり、その推論結果には曖昧な結果が含まれることになる。具体的には、ファジー推論によるグループ化の結果はアルゴリズム候補や結合度という点で特徴の明らかな回路ブロックに対する結果であり、前記特徴の比較的不明確な回路ブロックはグループ化されずに或いは別の手法で暫定的にグループ化されて残る。そのような特徴の不明確な回路ブロックに対するグループ化の最適化を進めるのが前記遺伝的アルゴリズムによる最適化処理（Ｓ７〜Ｓ１３）である。遺伝的アルゴリズムとは一般的に、生物の遺伝メカニズムである、遺伝子の交配、突然変異、適応度によって個体を選ぶ自然淘汰などをモデル化し、コンピュータシミュレーション等で問題解決を図ろうとする手法であり、ここでは、前記第２処理によるグループ化の結果を初期状態に反映して前記複数の回路ブロックのグループ化を遺伝的アルゴリズムによって最適化する第３処理（Ｓ７〜Ｓ１３）として採用されている。以下で図１の処理フローを詳細に説明する。
【００１９】
《ブロック定義》
図１の「ブロック定義」Ｓ１の処理は、ＶＨＤＬなどのハードウェア記述言語による論理回路記述で与えられる複数の回路ブロックを定義する。例えば論理回路記述におけるalwaysブロック又はfunctionブロック等の記述部分から回路ブロックを定義する。
【００２０】
図２にはＲＴＬ記述による論理回路記述の例が示される。ここでは、functionブロックとしてのassign文と、alwaysブロックとしてのalways文が例示され、前者は図３の（Ａ）に例示される１ビット全加算器のような加算器を回路ブロックとして定義し、後者は図３の（Ｂ）に例示される４入力セレクタのようなセレクタを回路ブロックとして定義する。
【００２１】
《ハミング距離計算》
図１の「ハミング距離計算」Ｓ２の処理では、ステップＳ１で定義された回路ブロックに対してハミング距離の計算を行なう。ハミング距離は、回路ブロックにおける入出力状態の相違の度合いを示すパラメータであり、回路ブロックの真理値表から得る。図４の（Ａ）には図３（Ａ）の加算器の真理値表が示され、これに対するハミング距離は図４の（Ｂ）に例示される。ハミング距離は真理値表の各信号間の論理値１／０の異なる個数として把握することも可能であるが、ＥＯＲ系アルゴリズムを特殊なセレクタなどと正確に見分けられるようにするために前記個数を真理値表の状態数Ｓの１／２との差で表すようにする。例えば入力Ｃｉｎと出力Ｚ［１］との間で、双方の信号の論理値が相違する組合せは２通りであり、状態数は８であるから、そのハミング距離は２となる。図５の（Ａ）には図３（Ｂ）のセレクタの真理値表が示され、これに対するハミング距離は図５の（Ｂ）に例示される。例えば入力Ｓ１と出力ＯＵＴとの間で、双方の信号の論理値が相違する組合せは４通りであり、状態数は８であるから、そのハミング距離は４となる。前記ハミング距離から回路の性質を把握することが可能である。例えば、ハミング距離が回路ブロックの信号数に一致する論理はインバーターであり、信号数の１／２に近い論理はＥＯＲ（排他的論理和）系に近く、それ以外はＡＮＤ−ＯＲ系に近いと特徴づけられる。
【００２２】
前記ハミング距離は回路ブロックのアルゴリズム候補を決定するときの指数に適用する。即ち、ファジー推論により回路ブロックのアルゴリズム候補を決定するために使用するメンバシップ関数として、各回路ブロックの真理値表から得られるハミング距離を考慮した指数とアルゴリズム候補との相関を規定する関数を用いる。例えば、ここでは、前記指数として、回路ブロックの状態数Ｓ、回路ブロックの入力信号数Ｎ、回路ブロックの出力信号数Ｍ、及び入力信号のｉ番目と出力信号のｊ番目のハミング距離Ｈｉｊを用いた、Σ｜Ｈｉｊ−Ｓ／２｜／（Ｎ＊Ｍ＊Ｓ／２）で与えられる平均ハミング距離指数を採用する。図４の（Ｃ）には図３の（Ａ）に示される加算器の平均ハミング距離指数が例示される。図５の（Ｃ）には図３の（Ｂ）に示されるセレクタの平均ハミング距離指数が例示される。
【００２３】
《最適化アルゴリズム候補群決定》
図１の「最適化アルゴリズム候補群決定」Ｓ３の処理では、前記平均ハミング距離指数を用いて回路ブロックの最適化アルゴリズム候補を決める。
【００２４】
図６には前記平均ハミング距離指数とアルゴリズム候補との相関を規定するアルゴリズム候補選択の為のメンバシップ関数が例示される。この例は、回路ブロックがＥＯＲ系の回路であるか否かで、ＡＮＤ−ＥＯＲ系最適化とＡＮＤ−ＯＲ系最適化の判定を目的としたものである。ＡＮＤ−ＥＯＲ系アルゴリズムは加算器に代表されるようにＥＯＲを用いた種々の演算系回路を総称することができる。ＡＮＤ−ＯＲ系アルゴリズムはセレクタに代表されるようにＯＲを用いた種々のデータ・トランスファ系回路を総称することができる。図６において、判定対象とされる回路ブロックの平均ハミング距離指数がＡＮＤ−ＥＯＲ系最適化の領域（例えば０．３未満）にあれば、その回路ブロックの最適化アルゴリズム候補をＡＮＤ−ＥＯＲ系とする。一方、判定対象とされる回路ブロックの平均ハミング距離指数がＡＮＤ−ＯＲ系最適化の領域（例えば０．６５以上）にあれば、その回路ブロックの最適化アルゴリズム候補をＡＮＤ−ＯＲ系とする。判定対象とされる回路ブロックの平均ハミング距離指数が上記最適化以外の場合には、一部の回路ブロックを暫定的にどちらかのアルゴリズムに割り振り、或いはその他のアルゴリズムとする。
【００２５】
《回路ブロックのグループ化》
ここでは、先ず各回路ブロックの入出力信号リストを作成する（Ｓ４）。このリストを用いて回路ブロック間の入出力の結合度を決定する（Ｓ５）。結合度とは回路ブロック相互間における信号の一致性として把握することが可能である。例えば、共通信号数(回路ブロック間信号数)／全入出力信号数を結合度とし、値が大きいほど結合度が高いと判定する。
【００２６】
図７には前記結合度の例が示される。図７の（Ａ）において回路ブロックＢＬＫ１，ＢＬＫ２，ＢＬＫ３は前記最適化アルゴリズム候補群決定処理（Ｓ３）で判定された最適化アルゴリズム候補の共通な複数の回路ブロックの一例である。ＩＮ［０：７］は８ビットの入力データ、ＯＵＴ１［０：７］、ＯＵＴ２［０：７］、ＯＵＴ［０：７］は夫々８ビットの出力データ、ＣＴＬ１，ＣＴＬ２，ＳＥＬは夫々１ビットの制御信号である。図７の（Ｂ）には図７の（Ａ）における回路ブロックの各種組合せと前記結合度とが例示される。
【００２７】
最適化アルゴリズム候補の共通な複数の回路ブロックの各種組み合わせに対して、当該回路ブロックを統合してグループ化するか否かは図８に例示されるメンバシップ関数を用いて判定する。例えば図７の（Ｂ）の結合度に対し、図８のメンバシップ関数を用いていて統合可否を判定すると、回路ブロックＢＬＫ１とＢＬＫ３、又はブロックＢＬＫ１とＢＬＫ２が、統合化されるべき回路ブロックとしてグループ化される。
【００２８】
このように、平均ハミング距離指数を用いて回路ブロックに最適化アルゴリズム候補が割り当てられ、同一アルゴリズムを最適候補に持つもののうち結合度の高いものは論理合成において統合すべき回路ブロックとしてグループ化される。この結果は統合ブロックの初期値とされ（Ｓ６）、次の遺伝的アルゴリズムによる個体の初期状態決定に反映される。
【００２９】
《遺伝的アルゴリズムによる最適化》
遺伝的アルゴリズムでは、解の候補としての個体を生成し、個体に対して評価関数を用いて適応度を評価し、評価の高い個体を選び、選ばれた個体に対して交配及び突然変異などの操作を加え、次の世代の個体集団を生成し、それらを繰り返して世代を重ねるにつれて、適応度の高い個体が増え、同時に、より最適解に近い個体が現れる確立も高くなり、評価値がある一定値に達したときの個体を求める最適解とする、ものである。
【００３０】
図１では、前記統合すべき回路ブロックとしてグループ化された結果を個体の初期状態に反映して前記複数の回路ブロックのグループ化を遺伝的アルゴリズムによって最適化する。各個体は例えば、前述の統合すべきとしてグループ化された回路ブロックとそれに対応するアルゴリズム候補との対を遺伝子データとして多数有する。個体の数は通常複数個であることが望ましく、最適化アルゴリズムの割り当てが行なわれなかった回路ブロックに対して種々の対応でグループ化すべき状態を想定して、当初多数の個体を生成すればよい。何れの個体においても、前記ファジー推論で統合すべき回路ブロックとしてグループ化された結果についての遺伝子が含まれている。それら個体に対する適応度判定には、例えば、統合すべき回路ブロックによって表現される論理式の変数の数Ｖ、論理段数Ｓ及び論理規模に従い増加する合成負荷Ｌを考慮し、Ｖ＊Ｓ＊Ｌを評価関数として用いる。ステップＳ６では統合すべき回路ブロック毎に評価関数を計算する。
【００３１】
図９には統合すべき回路ブロックグループの論理式と論理規模に対する合成負荷を例示する。図９の（Ａ）において、記号＆は論理積、記号｜は論理和を意味する。図９の（Ａ）に例示される論理式と、図９の（Ｂ）に示される論理規模に対する合成負荷とに従えば、その回路ブロックグループの評価関数の値は４（変数の数）＊３（論理段数）＊１．１（合成負荷）＝１３．２である。
【００３２】
図１のステップＳ９では前記評価関数に基づいて評価の高い個体か否かを判定し、評価の高いとして選ばれた個体に対して交配及び突然変異などの操作のアルゴリズムを選択し（Ｓ１０）、選択したアルゴリズムにしたがって次の世代のどの個体にどの遺伝子を伝達させるか、或いはどの回路ブロックを統合するかを決定する（Ｓ１１）。前記ステップＳ９〜Ｓ１１の処理を同一世代の全ての個体に対して実施し（Ｓ１２）、その後は、世代を一つ進め（Ｓ１３）、ステップＳ７〜Ｓ１３の処理を繰り返す。この例では、処理の世代数が一定値に到達したときに残った個体に最適解が含まれており、例えばその最適解は、最終世代におけるステップＳ９の評価が最も高い個体である。
【００３３】
図１０には遺伝情報の伝達の様子が模式的に例示される。遺伝情報の伝達においては、ファジー推論により最適化アルゴリズムが割当てられ統合化された回路グループは、世代を重ねても原則として分割しないようにするが、数世代にわたる統合化の結果、他のグループとの関係により最大論理規模を超えた場合にだけ分割を行なう。個体間の回路ブロックの統合／分割は乱数的に行なうが、評価の良い複数の個体の遺伝子の共通部分は遺伝確立を上げるようにする。突然変異は、例えば１０％を超えない範囲でランダムに生じさせる。
【００３４】
上記遺伝的アルゴリズムによる最適化処理を経て導出された結果は、合成可能な論理規模内で出来るだけオーバーヘッドが少なくなる分割であり、同時にその回路ブロックに対する最適化アルゴリズム候補も決定されているため、その結果に従えば、即座に論理合成結果を得ることが可能になる。さらに、人手による試行錯誤が無いから、ハードウェア記述言語による論理回路記述に対する論理合成に要する期間の短縮、ハードウェア記述言語による論理回路記述に対する論理合成結果の属人的なばらつきの低減が可能になる。そして、ハードウェア記述言語による論理回路記述に対する論理合成を介して設計さる半導体集積回路の性能向上に寄与することが可能である。
【００３５】
図１１には上記論理回路の設計方法を実現する論理回路の設計支援システムが例示される。同図に示されるシステムはエンジニアリングワークステーション又はパーソナルコンピュータシステムなどによって実現され、入力手段としてのキーボード１、表示手段としてのディスプレイ２、ＣＰＵ３Ａ及メインメモリ３Ｂなどが実装されたＣＰＵボードやインタフェースボードを有するデータ処理手段としてのコンピュータユニット３、補助記憶装置４、並びにターミナルアダプタやモデム等の通信インタフェース回路５を有して成る。通信インタフェース回路５も入力手段の一例を成す。補助記憶装置４は、特に制限されないが、磁気ディスクを固定的に備えたハードディスク装置、フラッシュメモリーカードが着脱可能なメモリカード装置、フロッピーディスクに対してリード・ライト可能なフロッピーディスクドライブ装置、ＣＤ−ＲＯＭをリード可能なＣＤ−ＲＯＭドライブ装置、ＭＯディスクに対してリード・ライト可能なＭＯドライブ装置等によって構成される。４Ａは補助記憶装置４の記録媒体を総称する。補助記憶装置４も入力手段の一例を成す。前記通信インタフェース回路５は公衆回線網６等に接続可能にされる。ＣＰＵ３Ａは、特に制限されないが、記録媒体４Ａから読み取ったプログラム又は通信インタフェース手段５を介してダウンロードしたプログラムをメインメモリ３Ｂ等にロードして実行する。プログラムの実行に必要なデータは、同じく記録媒体４から読み込み、或いは通信インタフェース５を利用してダウンロードし、更にはキーボード１より入力する。
【００３６】
論理回路の設計支援システムにおいて、前記入力手段としての補助記憶装置４又は通信インタフェース回路５は前記ハードウェア記述言語による論理回路記述データを入力可能である。前記コンピュータユニット３は、入力した論理回路記述データを用いて前記図１に例示された論理合成の最適化処理を行なう。
【００３７】
前記コンピュータユニットが前記論理合成の最適化処理を行なう為の動作プログラムは、コンピュータ読取り可能な記録媒体４Ａで提供される。このプログラムは、図１で説明した処理をコンピュータユニット３が実行するために必要なオブジェクトコードによって構成されている。記録媒体４Ａを介して必要なプログラムを提供することにより、半導体集積回路の論理設計の為の論理合成の最適化をコンピュータで実現することが容易になる。
【００３８】
図１２には論理回路の設計支援システムにおけるデータなどの入出力状態に着目した説明が示される。論理回路の設計支援システム１０にはハードウェア記述と、制御情報が入力され、更に動作プログラムがセットされ、その動作プログラムが実行されて、論理合成スクリプト若しくは合成結果が出力される。図１３にはゲートレベルの論理記述による論理合成出力例が示される。同図に示される具体的な記述は前記論理回路の具体例とは相関していない。
【００３９】
以上本発明者によってなされた発明を実施の形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【００４０】
例えば、前述の例では結合度は共通信号数(回路ブロック間信号数)／全入出力信号数とし、値が大きいほど結合度が高いと判定するものとしたが、結合後の入出力信号数／Σブロック毎の入出力信号数として小さい方が結合度が高いと考えるなどのバリエーションも可能である。
【００４１】
メンバシップ関数や評価関数は他の項目を追加することでさらにチューニングすることも可能である。さらに、ハミング距離の利用形態、結合度の評価の仕方、等に衝いても適宜変更することができる。また、ファジー推論を用いて行なうグループ化は、最適アルゴリズム候補が割当てられた回路ブロックに対してだけではなく、アルゴリズム候補の判定結果が比較的曖昧な回路ブロックに対しても、ファジー推論結果に従って実施してよい。当然なことであるが、ファジー推論によるアルゴリズム候補の判定結果が比較的曖昧な回路ブロックに対し、ファジー推論結果とは別の手法を用いて、或いはオペレータの指示に従って、暫定的なグループ化を行なって良いことは言うまでも無く、ここで明確化していおく。
【００４２】
【発明の効果】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記の通りである。
【００４３】
すなわち、上記遺伝的アルゴリズムによる最適化処理を経て導出された結果は、合成可能な論理規模内できるだけオーバーヘッドが少なくなる分割であり、同時にそのブロックに対するアルゴリズムも決定されているため、その結果に従えば、即座に論理合成結果を得ることが可能になる。さらに、ハードウェア記述言語による論理回路記述に対する論理合成に要する期間の短縮、ハードウェア記述言語による論理回路記述に対する論理合成結果の属人的なばらつきの低減が可能になる。そして、ハードウェア記述言語による論理回路記述に対する論理合成を介して設計さる半導体集積回路の性能向上に寄与することが可能である。その上、ハミング距離による論理の特徴評価や、遺伝的アルゴリズムで使用する評価関数等、従来漠然としたものを明確化して適用することにより、システム全体の自動化による試行錯誤数が飛躍的に減少する。
【図面の簡単な説明】
【図１】本発明に係る論理回路の設計方法を例示するフローチャートである。
【図２】ＲＴＬ記述による論理回路記述を例示する説明図である。
【図３】論理回路記述によって特定される回路ブロック例として加算器及びセレクタを示す説明図である。
【図４】加算器の真理値表、ハミング距離、及び平均ハミング距離指数の説明図である。
【図５】セレクタの真理値表、ハミング距離、及び平均ハミング距離指数の説明図である。
【図６】平均ハミング距離指数とアルゴリズム候補との相関を規定するアルゴリズム候補選択の為のメンバシップ関数を例示する説明図である。
【図７】結合度の例を示す説明図である。
【図８】統合可否を判定するためのメンバシップ関数を例示する説明図である。
【図９】統合すべき回路ブロックグループの論理式と論理規模に対する合成負荷の傾向とを例示する説明図である。
【図１０】遺伝情報の伝達の様子を模式的に示す説明図である。
【図１１】本発明に係る論理回路の設計支援システムを例示するブロック図である。
【図１２】論理回路の設計支援システムにおけるデータ等の入出力状態に着目した説明図である。
【図１３】論理合成最適化の結果としてゲートレベルの論理記述による出力を例示する説明図である。
【符号の説明】
１  キーボード
２  ディスプレイ
３  コンピュータユニット
３Ａ  ＣＰＵ
３Ｂ  メインメモリ
４  補助記憶装置
４Ａ  記録媒体
５  通信インタフェース
【図１】
0003998904.tif 000002
【図２】
0003998904.tif 000003
【図３】
0003998904.tif 000004
【図４】
0003998904.tif 000005
【図５】
0003998904.tif 000006
【図６】
0003998904.tif 000007
【図７】
0003998904.tif 000008
【図８】
0003998904.tif 000009
【図９】
0003998904.tif 000010
【図１０】
0003998904.tif 000011
【図１１】
0003998904.tif 000012
【図１２】
0003998904.tif 000013
【図１３】
0003998904.tif 000014