(57)【要約】【課題】  同期式順序回路の設計工程において、状態割当て解候補中で回路面積が最も小さい解を得て回路面積の縮小化を図る。【解決手段】  同期式順序回路の状態割当て最適化装置４は、回路変換手段３からの回路図情報を用いて、面積への影響が大きい注目パスを特定する注目パス判定手段４１と、注目パスの回路図情報から注目パスの特徴を解析する注目パス特徴解析手段４２と、注目パスの特徴から注目パスが真理値表のどの状態遷移を反映しているかを判定する判定手段４３と、注目パスが反映する状態遷移から複数の状態割当て解候補を策定し、装置外部の回路変換手段３に出力する解候補策定手段４４と、複数の状態割当て解候補を用いて回路変換手段３により生成された複数の回路の面積を比較し、面積が最小のものを検出する回路面積比較手段４５とを有する。【選択図】  図１
2006134302.tif 000002
【特許請求の範囲】
【請求項１】
回路図情報に基づいて回路占有面積に影響するパスを注目パスとして特定する注目パス判定手段と、
該注目パスの回路図情報に基づいてその回路の特徴を解析する注目パス特徴解析手段と、
該注目パスの回路の特徴がどの状態遷移を反映したものであるかを判定する注目パスと状態遷移の対応判定手段と、
該注目パスが反映する状態遷移から複数の状態割当て解候補を策定する解候補策定手段と、
該複数の状態割当て解候補のそれぞれを用いて論理合成された複数の回路図情報に基づいて、それぞれの回路面積が比較されて最小面積の回路を検出する回路面積比較手段とを有する同期式順序回路の状態割当て最適化装置。
【請求項２】
前記回路面積比較手段で検出された最小面積の回路に対応する状態割当て解を入力として、該状態割当て解の状態コード長よりも長い状態コード長の複数の状態割当て解候補を出力する解伸長手段をさらに有する請求項１に記載の同期式順序回路の状態割当て最適化装置。
【請求項３】
前記注目パス判定手段は、前記回路図情報として、状態記憶回路と組合せ回路とを含む同期式順序回路の情報に基づいて、いずれかの状態記憶回路の出力から該組合せ回路を経て同一または別の状態記憶回路の入力に達するパスの中から前記注目パスを特定する請求項１または２に記載の同期式順序回路の状態割当て最適化装置。
【請求項４】
前記注目パス判定手段は、前記注目パスとして、パス上の論理ゲートにおける回路占有面積の総和が最も大きいパスまたは、該パス上の論理ゲートおよび配線による遅延の総和が最も大きいパスを選択する請求項１〜３のいずれかに記載の同期式順序回路の状態割当て最適化装置。
【請求項５】
前記注目パス特徴解析手段は、前記注目パスの終点の論理ゲートを論理和とした場合に、それが正論理出力および負論理出力のいずれに該当するかを判定し、該注目パスの起点の論理ゲートを論理積とした場合に、それが正論理入力および負論理入力のいずれの論理積に該当するかを判定する請求項１または２に記載の同期式順序回路の状態割当て最適化装置。
【請求項６】
前記注目パス特徴解析手段は、前記注目パスの終点の論理ゲートがＮＡＮＤ回路である場合に正論理出力のＯＲ回路と見做し、該注目パスの終点の論理ゲートがＡＮＤ回路である場合に負論理出力のＮＯＲ回路と見做し、該注目パスの起点の論理ゲートがＯＲ回路である場合に負論理入力のＮＡＮＤ回路と見做し、該注目パスの起点の論理ゲートがＮＯＲ回路である場合に負論理入力のＡＮＤ回路と見做す請求項５に記載の同期式順序回路の状態割当て最適化装置。
【請求項７】
前記注目パスと状態遷移の対応判定手段は、前記注目パスの起点での変化が注目パスの終点まで伝わって起こる状態遷移が、状態遷移表に状態割当ての初期解を適用して得られる真理値表における複数行のうちのどの行に対応するかを判定する請求項１または２に記載の同期式順序回路の状態割当て最適化装置。
【請求項８】
前記注目パスと状態遷移の対応判定手段は、前記注目パスの起点と終点の回路の特徴に基づいて、該注目パスが状態遷移表に状態割当ての初期解を適用して得られる真理値表における複数の状態遷移のうちどの状態遷移を反映したものであるかを判定する請求項１または２に記載の同期式順序回路の状態割当て最適化装置。
【請求項９】
前記解候補策定手段は、前記注目パスが反映する、状態遷移表に状態割当ての初期解を適用して得られる真理値表の行情報中に現れている現状態コードに関して該注目パスの起点に対応する現状態コードの桁を特定し、該状態割当ての初期解に対して該注目パスの起点に対応する状態コードの桁の値が逆になるように当該状態コードを交換して別解候補とし、該状態割当ての初期解に対して該注目パスの終点に対応する状態コードの桁の値が逆になるように当該状態コードを交換して他の別解候補とする請求項１または２に記載の同期式順序回路の状態割当て最適化装置。
【請求項１０】
前記回路面積比較手段は、前記複数の状態割当て解候補のうち、初期解を用いて論理合成された回路の面積が最小であればその初期解を最終解とし、別解を用いて論理合成された回路の面積が最小であればその別解を新たな初期解として、前記注目パス判定手段に該新たな初期解およびその回路図情報を供給して処理を繰り返す請求項１に記載の同期式順序回路の状態割当て最適化装置。
【請求項１１】
前記回路面積比較手段は、
前記複数の状態割当て解候補のうち、初期解を用いて論理合成された回路の面積が最小であればその初期解をその状態コード長での最終解とし、別解を用いて論理合成された回路の面積が最小であればその別解を新たな初期解として、前記注目パス判定手段に該新たな初期解およびその回路図情報を供給して処理を繰り返し、
ビットが一つ短い状態コード長における最終解の回路面積を記憶しておき、現在の状態コード長における最終解と、該ビットが一つ短い状態コード長における最終解との各回路面積を比較して、該現在の状態コード長の回路面積の方が小さい場合に前記解伸長手段による解伸長処理を行い、該ビットが一つ短い状態コード長の回路面積の方が小さい場合にその回路面積を最終解の回路面積とする請求項２に記載の同期式順序回路の状態割当て最適化装置。
【請求項１２】
前記解伸長手段は、前記最終解に対して１ビット分だけ長い複数の解候補を生成する請求項２または１１に記載の同期式順序回路の状態割当て最適化装置。
【請求項１３】
請求項１〜１２のいずれかに記載の同期式順序回路の状態割当て最適化装置と、状態遷移表と状態割当て解から、組合せ回路と状態記憶回路とを含む同期式順序回路を前記回路図情報として論理合成する回路変換手段とを備えた論理合成装置。
【請求項１４】
請求項１〜１２のいずれかに記載の同期式順序回路の状態割当て最適化装置を用いてコンピュータ処理する同期式順序回路の状態割当て最適化方法であって、
回路図情報を用いて回路占有面積に影響するパスを注目パスとして特定する注目パス判定ステップと、
該注目パスの回路図情報を用いてその回路の特徴を解析する注目パス特徴解析ステップと、
該注目パスの回路の特徴がどの状態遷移を反映したものであるかを判定する注目パスと状態遷移の対応判定ステップと、
該注目パスが反映する状態遷移から複数の状態割当て解候補を策定する解候補策定ステップと、
該複数の状態割当て解候補のそれぞれを用いて論理合成された複数の回路図情報を用いて、それぞれの回路面積を比較して面積が最小の回路を検出する回路面積比較ステップとを有する同期式順序回路の状態割当て最適化方法。
【請求項１５】
前記回路面積比較ステップで検出された最小面積の回路に対応する状態割当て解を入力として状態コード長が１ビット分だけ長い複数の状態割当て解候補を出力する解伸長ステップをさらに有し、該解伸長ステップによる該複数の状態割当て解候補を用いて論理合成された複数の回路図情報を用いて前記回路面積比較ステップを実行する請求項１４に記載の同期式順序回路の状態割当て最適化方法。
【請求項１６】
前記注目パス判定ステップは、状態記憶回路と組合せ回路とを含む同期式順序回路の回路図情報を用いて、いずれかの状態記憶回路の出力から該組合せ回路を経て同一または別の状態記憶回路の入力に達するパスの中で回路占有面積に影響するパスを注目パスとして特定する請求項１４または１５に記載の同期式順序回路の状態割当て最適化方法。
【請求項１７】
前記注目パスと状態遷移の対応判定ステップは、前記注目パスの回路の特徴を用いて、該注目パスが状態遷移表に状態割当ての初期解を適用して得られる真理値表の複数の状態遷移うちどの状態遷移を反映したものであるかを判定する請求項１４または１５に記載の同期式順序回路の状態割当て最適化方法。
【請求項１８】
請求項１４〜１７のいずれかに記載の同期式順序回路の状態割当て最適化方法の各処理ステップをコンピュータに実行させるための処理手順が記録された同期式順序回路の状態割当て最適化処理プログラム。
【請求項１９】
請求項１８に記載の同期式順序回路の状態割当て最適化処理プログラムが記録されたコンピュータ読み取り可能な可読記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デジタル回路などに幅広く利用される同期式順序回路の設計工程に用いられ、その設計仕様として与えられる状態遷移表に対する状態割当てを最適化するための同期式順序回路の状態割当て最適化装置、これを用いた論理合成装置、同期式順序回路の状態割当て最適化方法、これを実行するための同期式順序回路の状態割当て最適化処理プログラムおよびこの状態割当て最適化処理プログラムが記録されたコンピュータ読み取り可能な可読記録媒体に関する。
【背景技術】
【０００２】
組合せ回路は、論理出力がその時刻の論理入力によってのみ決定される回路であり、インバータ、ＮＡＮＤ回路、ＮＯＲ回路およびこれらを組合せた論理回路では、論理入力を論理演算することによって論理出力が得られる。
【０００３】
また、順序回路は、ある時刻の出力がその時刻の論理入力だけでは決定されず、過去から現在までの入力の系列によって出力が決定される回路であり、ＣＰＵにおけるデータ転送や演算などを制御する信号が順序回路によって生成される。この順序回路は、基準となるタイミング信号であるクロック信号の下で複数の状態を遷移しながら動作が進められる同期式のものと、論理素子（論理ゲート）や配線の遅延に依存して動作が進められる非同期式のものに分けられる。図１０に同期式順序回路を示している。
【０００４】
図１０に示すように、同期式順序回路１００は、組合せ回路１０１と、レジスタなどの状態記憶回路１０２とを有し、状態記憶回路１０２には現在の状態を示す現状態コードが記憶されている。この同期式順序回路１００は、同期信号であるクロック信号に同期して、状態記憶回路１０２に記憶された現状態コードが組合せ回路１０１に出力され、入力信号と現状態コードに応じた出力信号が組合せ回路１０１から出力される。また、組合せ回路１０１からは、次の状態を示す次状態コードが状態記憶回路１０２に供給される。産業上でデジタル回路と呼ばれるものの殆どは、この同期式順序回路に該当している。
【０００５】
この同期式順序回路１００の設計工程では、その仕様として状態遷移表が与えられる。その一例として、下記（表１）に入力数３、出力数５、状態数４の状態を記号として表現した状態遷移表を示している。
【０００６】
【表１】
2006134302.tif 000003
上記（表１）中の“−”は、ドントケア（０でも１でもよいこと）を意味する。例えば、上記（表１）中の１行目は、「入力ｘ１が”０”、かつ、現在の状態が状態ＨＧであるときに、出力ｗ１、ｗ２、ｗ３、ｗ４およびｗ５の各々に対して”０，０，０，１，０”が出力される。そこで同期信号が与えられても、次の状態は状態ＨＧのままである。」という仕様を表している。また、上記（表１）中の例えば５行目は、「入力ｘ３が”１”、かつ、現在の状態が状態ＨＹであるときに、出力ｗ１、ｗ２、ｗ３、ｗ４およびｗ５の各々に対して”１，０，１，１，０”が出力される。そこで同期信号が与えられると、次の状態として状態ＦＧに状態遷移する。」という仕様を表している。
【０００７】
上記（表１）の状態遷移表は、各状態を円として表し、起り得る状態遷移を矢印として表して、図１１のような状態遷移図として表現される場合もある。図１１では、矢印Ａによって上記（表１）の１行目および２行目が表され、矢印Ｂによって上記（表１）の３行目が表され、矢印Ｃによって上記（表１）の４行目が表され、矢印Ｄによって上記（表１）の５行目が表され、矢印Ｅによって上記（表１）の６行目が表され、矢印Ｆによって上記（表１）の７行目および８行目が表され、矢印Ｇによって上記（表１）の９行目が表され、矢印Ｈによって上記（表１）の１０行目が表されている。
【０００８】
この他にも、状態遷移の表現方法としては、ＶＨＤＬやＶｅｒｉｌｏｇ−ＨＤＬなどのＨＤＬ（ハードウェア記述言語）によって記述される場合もある。
【０００９】
現在の状態を状態記憶回路１０２によって記憶するに際しては、各状態を何ビット（ｂｉｔ）かのコード（信号値の組）によって表す必要がある。例えば状態数が４の場合には、２ビット（ｂｉｔ）の状態コード（００，０１，１０，１１）によって各状態を表すことが可能である。
【００１０】
ここで、個々の状態同士を区別するためには、状態数とコード長との間に
コード長≧ｌｏｇ２（状態数）     ・・・（式１）
という関係式が成り立つ必要がある。
【００１１】
しかしながら、コード長が短い方が状態記憶回路１０２の記憶容量が少なくてもよいため、状態記憶回路１０２の面積を小さくすることができる。また、どの状態にどのコードを割当てても図１０に示す組合せ回路１０１を構成することは可能であるが、コードの割当て方によって組合せ回路１０１に入力される現状態コードと組合せ回路１０１から出力される次状態コードが変化し、必要な組合せ論理が変化するため、それぞれの状態を適切なコードに割当てることによって、組合せ回路１０１の面積をより小さく設計することができる。したがって、各状態へのコードの割当て方は、回路面積の縮小化のために非常に重要である。
【００１２】
このように、コードを各状態に割当てる問題は、一般に状態割当て問題と呼ばれており、例えば非特許文献１および非特許文献２などに記載されているように、組合せ論理を表す論理式を共通項の括り出しなどによってより簡単化できる場合に、その組合せ論理を変換して得られる回路の面積をより小さくすることができると考えられる。
【００１３】
従来、回路面積削減を目的とした状態割当て方法または装置としては、例えば特許文献１〜６に開示されているようなものが挙げられる。
【００１４】
例えば特許文献１には、被設計ＬＳＩの対象回路毎に特質を見極めて、複数の状態割当てアルゴリズムが記憶された記憶手段から対象回路に最適な状態割当てアルゴリズムを選択し、選択された状態割当てアルゴリズムに基づいて、複数の状態のそれぞれに状態コードを割当てる状態割当て処理を行う自動論理合成装置が開示されている。
【００１５】
特許文献２には、（１）状態遷移表現中で他の状態から遷移してくることが最も多い状態を抽出して、その状態に所定の値を割当て、（２）状態遷移を引き起こす入力が最も複雑な状態を抽出して、その状態を表現するために使用される状態変数の数と状態変数を用いて表現可能な最大の状態数を算出し、算出された最大の状態数から状態変数のいくつかが不定である状態コードの組合せを抽出し、状態コードから状態変数の不定部分が最も多いコードを抽出して、入力が最も複雑な状態に状態変数の不定部分が最も多いコードを割当て、（３）状態コードを割当てた状態と隣接関係を有する状態を抽出して、コードの１桁だけが異なるコードに割当てる状態コード割り付け方法が開示されている。
【００１６】
特許文献３には、設計仕様として与えられた状態遷移表に含まれる状態の数から状態コード長と評価関数とを求めて、その状態コード長から評価関数の値に基づいて、評価関数全体の変数の数が最も削減されるように所定のコードを割当てる同期式順序回路の状態割当て装置が開示されている。
【００１７】
特許文献４には、機能記述において条件保護のように相関の強い保護状態を有する部分に状態コードを優先的に割当てて、その保護部分以外の状態間の相関を計算し、相関の大きいところにハミング距離が小さくなるように状態コードを割当てる倫理状態割当てシステムが開示されている。
【００１８】
特許文献５には、状態遷移記述を解析して有限状態機械を構成する組合せ論理回路を表す論理式を作成して、各状態に２進コードをそれぞれ対応付けた状態割当て解（初期解）を作成し、この状態割当て解を用いて論理式の単純化処理を行って、その処理結果の論理式に基づいて組合せ論理回路の規模を評価し、その評価結果に基づいて状態割当て解を改善可能であるか否かを判定して、改善可能である場合には新しい状態割当て解を生成して評価処理に供する有限状態機械の状態割当て方法が開示されている。
【００１９】
特許文献６には、設計仕様として与えられた状態遷移表に含まれる状態の種類数から状態コード長を求め、状態遷移表から状態対である状態ｉとｊに関して同一状態間および異なる状態間のそれぞれで削減可能な状態変数の個数を考慮して回路の論理式中の変数の個数の削減を評価する関数を求めて、状態コード長と評価関数の値に基づいて、論理式の変数の個数が最も削減されるように各状態にコードを割当てる同期式順序回路の状態割当て方法が開示されている。
【非特許文献１】大学講座電子工学ディジタル代数学、１９６６年、共立出版、Ｐ２３２
【非特許文献２】情報処理ハンドブック、１９８９年、（社）情報処理学会編、Ｐ２０８
【特許文献１】特開平４−２６４９８２号公報
【特許文献２】特開平５−２７９７６号公報
【特許文献３】特開平６−２３０９３０号公報
【特許文献４】特開平７−１９２０２７号公報
【特許文献５】特開平９−２３１２５１号公報
【特許文献６】特開２００１−１１７９６５号公報
【発明の開示】
【発明が解決しようとする課題】
【００２０】
デジタル回路を設計開発する上で、回路面積削減は重要な課題である。例えばウェハ上の５０ｍｍ×５０ｍｍの領域を例として考えた場合に、その領域から５ｍｍ×５ｍｍの大きさの回路を１００個作製することができるが、４ｍｍ×４ｍｍの大きさの回路であれば１４４個作製することができる。回路の１個当りの原価は、後者の方が単純計算で３割程度安くなる。各回路を同一単価で売却することが可能であれば、その原価の差がそのまま利益増に繋がる。
【００２１】
一方、価格競争を勝ち抜くべく、原価の差を単価に反映させる販売戦略も考えられる。何れにせよ、可能な限りの回路面積削減を図る上で、人手により回路を設計する場合の設計者の能力向上や、論理合成プログラムを用いて回路設計を行う場合のプログラムの性能向上は当然のことながら、より優れた状態割当て方法を採用することが、特に、状態数が非常に大きい回路である場合には重要である。
【００２２】
しかしながら、上述した従来の同期式順序回路の状態割当て方法には、以下のような問題がある。
【００２３】
従来の状態割り当て方法は、何れも、評価基準として「次状態コードと出力信号とを計算する組み合わせ論理を表す論理式における変数の数」を採用しているが、この評価基準は回路面積と完全に相関を有するものではない。その結果、複数の状態割り当て解候補の中から解を取捨選択する過程で、回路面積が最も小さい解が選択されず、捨てられてしまう虞があるという問題を有している。
【００２４】
本発明は、上記従来の問題を解決するもので、回路面積を評価基準として状態割当て解候補を取捨選択して、解候補中で回路面積が最も小さい解を得て回路面積の縮小化を図ることができる同期式順序回路の状態割当て最適化装置、これを用いた論理合成装置、同期式順序回路の状態割当て最適化方法、これを実行するための同期式順序回路の状態割当て最適化処理プログラムおよびこの処理プログラムが記録された可読記録媒体を提供することを目的とする。
【課題を解決するための手段】
【００２５】
本発明の同期式順序回路の状態割当て最適化装置は、回路図情報に基づいて回路占有面積に影響するパスを注目パスとして特定する注目パス判定手段と、該注目パスの回路図情報に基づいてその回路の特徴を解析する注目パス特徴解析手段と、該注目パスの回路の特徴がどの状態遷移を反映したものであるかを判定する注目パスと状態遷移の対応判定手段と、該注目パスが反映する状態遷移から複数の状態割当て解候補を策定する解候補策定手段と、該複数の状態割当て解候補のそれぞれを用いて論理合成された複数の回路図情報に基づいて、それぞれの回路面積が比較されて最小面積の回路を検出する回路面積比較手段とを有し、そのことにより上記目的が達成される。
【００２６】
また、好ましくは、本発明の同期式順序回路の状態割当て最適化装置は、前記回路面積比較手段で検出された最小面積の回路に対応する状態割当て解を入力として、該状態割当て解の状態コード長よりも長い状態コード長の複数の状態割当て解候補を出力する解伸長手段をさらに有する。
【００２７】
さらに、好ましくは、本発明の同期式順序回路の状態割当て最適化装置における注目パス判定手段は、前記回路図情報として、状態記憶回路と組合せ回路とを含む同期式順序回路の情報に基づいて、いずれかの状態記憶回路の出力から該組合せ回路を経て同一または別の状態記憶回路の入力に達するパスの中から前記注目パスを特定する。この場合、少なくとも二つの状態記憶回路間に注目パスがある場合の他に、注目パスの起点となる状態記憶回路と終点となる状態記憶回路が同一のものとなる場合もあり得る。
【００２８】
さらに、好ましくは、本発明の同期式順序回路の状態割当て最適化装置における注目パス判定手段は、前記注目パスとして、パス上の論理ゲートにおける回路占有面積の総和が最も大きいパスまたは、該パス上の論理ゲートおよび配線による遅延の総和が最も大きいパスを選択する。
【００２９】
さらに、好ましくは、本発明の同期式順序回路の状態割当て最適化装置における注目パス特徴解析手段は、前記注目パスの終点の論理ゲートを論理和とした場合に、それが正論理出力および負論理出力のいずれに該当するかを判定し、該注目パスの起点の論理ゲートを論理積とした場合に、それが正論理入力および負論理入力のいずれの論理積に該当するかを判定する。
【００３０】
さらに、好ましくは、本発明の同期式順序回路の状態割当て最適化装置における注目パス特徴解析手段は、前記注目パスの終点の論理ゲートがＮＡＮＤ回路である場合に正論理出力のＯＲ回路と見做し、該注目パスの終点の論理ゲートがＡＮＤ回路である場合に負論理出力のＮＯＲ回路と見做し、該注目パスの起点の論理ゲートがＯＲ回路である場合に負論理入力のＮＡＮＤ回路と見做し、該注目パスの起点の論理ゲートがＮＯＲ回路である場合に負論理入力のＡＮＤ回路と見做す。
【００３１】
さらに、好ましくは、本発明の同期式順序回路の状態割当て最適化装置における注目パスと状態遷移の対応判定手段は、前記注目パスの起点での変化が注目パスの終点まで伝わって起こる状態遷移が、状態遷移表に状態割当ての初期解を適用して得られる真理値表における複数行のうちのどの行に対応するかを判定する。
【００３２】
さらに、好ましくは、本発明の同期式順序回路の状態割当て最適化装置における注目パスと状態遷移の対応判定手段は、前記注目パスの起点と終点の回路の特徴に基づいて、該注目パスが状態遷移表に状態割当ての初期解を適用して得られる真理値表における複数の状態遷移のうちどの状態遷移を反映したものであるかを判定する。
【００３３】
さらに、好ましくは、本発明の同期式順序回路の状態割当て最適化装置における解候補策定手段は、前記注目パスが反映する、状態遷移表に状態割当ての初期解を適用して得られる真理値表の行情報中に現れている現状態コードに関して該注目パスの起点に対応する現状態コードの桁を特定し、該状態割当ての初期解に対して該注目パスの起点に対応する状態コードの桁の値が逆になるように当該状態コードを交換して別解候補とし、該状態割当ての初期解に対して該注目パスの終点に対応する状態コードの桁の値が逆になるように当該状態コードを交換して他の別解候補とする。この場合、「起点に対応する現状態コードの桁」は例えば二桁の左側とは限らず、右側の場合もある。
【００３４】
さらに、好ましくは、本発明の同期式順序回路の状態割当て最適化装置における回路面積比較手段は、前記複数の状態割当て解候補のうち、初期解を用いて論理合成された回路の面積が最小であればその初期解を最終解とし、別解を用いて論理合成された回路の面積が最小であればその別解を新たな初期解として、前記注目パス判定手段に該新たな初期解およびその回路図情報を供給して処理を繰り返す。
【００３５】
また、好ましくは、本発明の同期式順序回路の状態割当て最適化装置における回路面積比較手段は、前記複数の状態割当て解候補のうち、初期解を用いて論理合成された回路の面積が最小であればその初期解をその状態コード長での最終解とし、別解を用いて論理合成された回路の面積が最小であればその別解を新たな初期解として、前記注目パス判定手段に該新たな初期解およびその回路図情報を供給して処理を繰り返し、ビットが一つ短い状態コード長における最終解の回路面積を記憶しておき、現在の状態コード長における最終解と、該ビットが一つ短い状態コード長における最終解との各回路面積を比較して、該現在の状態コード長の回路面積の方が小さい場合に前記解伸長手段による解伸長処理を行い、該ビットが一つ短い状態コード長の回路面積の方が小さい場合にその回路面積を最終解の回路面積とする。
【００３６】
さらに、好ましくは、本発明の同期式順序回路の状態割当て最適化装置における解伸長手段は、前記最終解に対して１ビット分だけ長い複数の解候補を生成する。
【００３７】
本発明の論理合成装置は、本発明の上記同期式順序回路の状態割当て最適化装置と、状態遷移表と状態割当て解から、組合せ回路と状態記憶回路とを含む同期式順序回路を前記回路図情報として論理合成する回路変換手段とを備え、そのことにより上記目的が達成される。
【００３８】
本発明の同期式順序回路の状態割当て最適化方法は、本発明の上記同期式順序回路の状態割当て最適化装置を用いてコンピュータ処理する同期式順序回路の状態割当て最適化方法であって、回路図情報を用いて回路占有面積に影響するパスを注目パスとして特定する注目パス判定ステップと、該注目パスの回路図情報を用いてその回路の特徴を解析する注目パス特徴解析ステップと、該注目パスの回路の特徴がどの状態遷移を反映したものであるかを判定する注目パスと状態遷移の対応判定ステップと、該注目パスが反映する状態遷移から複数の状態割当て解候補を策定する解候補策定ステップと、該複数の状態割当て解候補のそれぞれを用いて論理合成された複数の回路図情報を用いて、それぞれの回路面積を比較して面積が最小の回路を検出する回路面積比較ステップとを有し、そのことにより上記目的が達成される。
【００３９】
また、好ましくは、本発明の同期式順序回路の状態割当て最適化方法は、前記回路面積比較ステップで検出された最小面積の回路に対応する状態割当て解を入力として状態コード長が１ビット分だけ長い複数の状態割当て解候補を出力する解伸長ステップをさらに有し、該解伸長ステップによる該複数の状態割当て解候補を用いて論理合成された複数の回路図情報を用いて前記回路面積比較ステップを実行する。
【００４０】
さらに、好ましくは、本発明の同期式順序回路の状態割当て最適化方法における注目パス判定ステップは、状態記憶回路と組合せ回路とを含む同期式順序回路の回路図情報を用いて、いずれかの状態記憶回路の出力から該組合せ回路を経て同一または別の状態記憶回路の入力に達するパスの中で回路占有面積に影響するパスを注目パスとして特定する。
【００４１】
さらに、好ましくは、本発明の同期式順序回路の状態割当て最適化方法における注目パスと状態遷移の対応判定ステップは、前記注目パスの回路の特徴を用いて、該注目パスが状態遷移表に状態割当ての初期解を適用して得られる真理値表の複数の状態遷移うちどの状態遷移を反映したものであるかを判定する。
【００４２】
本発明の同期式順序回路の状態割当て最適化プログラムは、本発明の上記同期式順序回路の状態割当て最適化方法の各処理ステップをコンピュータに実行させるための処理手順が記録されており、そのことにより上記目的が達成される。
【００４３】
本発明の可読記録媒体は、本発明の上記同期式順序回路の状態割当て最適化処理プログラムが記録されたコンピュータ読み取り可能な可読記録媒体であって、そのことにより上記目的が達成される。
【００４４】
上記構成により、以下に、本発明の作用について説明する。
【００４５】
回路面積は、状態遷移表と状態割当てを限定しても、何らかの計算によって直接的に求まるものではない。まず、回路に変換する際の条件（人手により変換する場合の設計者の癖、論理合成を適用する場合の論理合成プログラムの種類やバージョン、セルライブラリの構成、仕様や製造上の制限による様々な設計制約等）が異なると、設計される回路は、面積、動作速度、構造などが異なった多様なものになる。
【００４６】
また、回路に変換する際の条件を限定した場合でも、実際に回路に変換してみないと、正確な回路面積を知ることはできない。したがって、状態割当ての全ての場合について、各々回路に変換した後で面積を比較してみないと、回路面積が最小になる状態割当てを特定することはできない。
【００４７】
しかしながら、下記（表２）に示すように、状態数が増えると、状態割当ての場合の数が爆発的に増える。
【００４８】
【表２】
2006134302.tif 000004
上記（表２）は、状態数と、状態割当ての場合の数との関係を示すものである。例えば、状態数が４の場合には、上記（式１）から状態コード長が２となり、００〜１１の４個のコードの中から４個を選んで４つの状態のそれぞれに割当てる状態割当ての場合の数は２４となる。しかしながら、状態数が５の場合には、上記（式１）から状態コード長が３となり、０００〜１１１の８個のコードの中から５個を選んで５つの状態のそれぞれに割当てる状態割当ての場合の数は６７２０となる。したがって、状態割当ての全ての場合について回路に変換して面積を比較するという方法は、状態数が５以上になると実用的でなくなる。
【００４９】
また、従来の状態割当て方法では、いずれも、評価基準として「次状態コードと出力信号とを計算する組合せ論理を表す論理式における変数の数」を採用しているため、回路面積が最も小さくなる状態割当て解が選択されず、捨てられてしまう可能性がある。
【００５０】
上記従来の状態割当て方法の問題を解決するために、状態割当て解候補を幾つか挙げた上で、その全てを実際に回路に変換し、回路面積そのものを評価基準として回路面積が最小のものを選択するという方法を考え出した。
【００５１】
この場合、回路面積そのものが評価基準であるため、状態割当て解候補の生成と解の選択とを繰返すことによって、より回路面積が小さい解にたどり着くことが可能であると考えられる。しかしながら、解候補を多数挙げてしまうと、回路に変換すべき解候補の数が膨大になってしまい、その結果、実用的な時間内に最適な状態割当て解を決定することができないという問題がある。
【００５２】
そこで、本発明にあっては、注目パス判定手段によって、状態記憶回路と組合せ回路とを含む同期式順序回路の回路図情報を用いて、いずれかの状態記憶回路の出力から組合せ回路を経て別の状態記憶回路の入力に達するパスの中で、より面積への影響が大きいパスが注目パスとして特定される。
【００５３】
この回路図情報は、設計仕様として与えられる状態遷移表から、装置外部に設けられた状態割当て手段によって生成された状態遷移表および状態割当て解を用いて、装置外部に設けられた回路変換手段によって論理合成されたものである。
【００５４】
注目パス特徴解析手段によって、その注目パスの回路図情報を用いて、その回路の特徴が解析され、注目パスと状態遷移の対応判定手段によって、注目パスが状態遷移表に状態割当ての初期解を適用して得られる真理値表の複数の状態遷移うちどの状態遷移を反映したものであるかが判定される。さらに、解候補策定手段によって、注目パスが反映する状態遷移から複数の状態割当て解候補が策定される。例えば、与えられた状態割当て解に対して、状態コードの入替えによって別解候補が複数生成される。それらの状態割当て解候補は、装置外部に設けられた回路変換手段に出力され、回路変換手段によって、それぞれの状態割当て解候補を用いて回路図情報が論理合成される。さらに、回路面積比較手段によって、その複数の回路図情報を用いて、それぞれの回路の面積が比較されて、面積が最小となる回路（および解候補）が決定される。
【００５５】
このように、状態割当て解候補の各々を実際に論理合成してみて得られる回路面積そのものを評価基準とし、かつ、回路面積に対する影響がより大きい解候補に絞ることによって、短時間で、回路面積がより小さくなるように状態コードを割当てることが可能となる。
【００５６】
このように、本発明者らは、基礎となる先の特許出願（特願２００４−２９１９８０号；本願の実施形態１に対応)において、与えられた状態割り当て解に対し、状態コードの入れ替えによって別解候補を複数生成し、そのそれぞれを実際に論理合成してみて得られる回路面積の最も小さい解を選ぶことを繰り返して、より得られる回路面積が小さくなるような状態割り当て解を求める手法を提案している。
【００５７】
この手法において、状態コード長と回路面積の間には相関関係があり、状態割当てで上記(式１)を満たす中で最短のコードを用いるのが回路面積削減に有効であると考えられているが、完全相関の関係にはない。したがって、状態コード長が最短である一つの状態割当て解に対して、状態コード長が長く、かつ、回路面積が小さい解が存在する可能性がある。しかしながら、上記手法の状態割当て方法においては、上記(式１)を満たす中で最短の状態コードか、状態数と状態コード長とが等しい、いわゆるワンホットコードしか用いられていない。その結果として、状態割当て解に対して、状態コード長が長くかつ回路面積が小さい解が存在していながら、それが選択されることなく捨てられてしまう虞があるという問題を有していた。
【００５８】
これに対して、本発明では、状態コード長が１ビット（１ｂｉｔ）分だけ長い複数の状態割当て解候補を出力する解伸長手段によって、１ビット（１ｂｉｔ）分だけ長い複数の状態割当て解候補が生成され、装置外部に設けられた回路変換手段に出力される。再度、回路面積比較手段によって、その複数の回路図情報を用いて、それぞれの回路の面積が比較されて、面積が最小となる回路（および解候補）が決定される。
【００５９】
このように、回路面積そのものを評価基準とし、かつ、回路面積に対する影響がより大きい解候補に絞ることに加え、状態コード長が長い解候補を候補に加えることによって、短時間で、回路面積がより小さくなるように状態コードを割当てることが可能となる。
【００６０】
したがって、本発明では、上記問題を解決して、状態割当て解候補として状態コード長が最短の解候補だけでなく、それらより状態コード長が長い解候補を加え、その中から取捨選択して、解候補中で回路面積が最も小さい解を得て回路面積の縮小化を図ることができる同期式順序回路の状態割当て最適化装置、これを用いた論理合成装置、同期式順序回路の状態割当て最適化方法、これを実行するための同期式順序回路の状態割当て最適化処理プログラムおよびこの状態割当て最適化処理プログラムが記録された可読記録媒体を得ることが可能となる。
【発明の効果】
【００６１】
以上説明したように、本発明によれば、同期式順序回路の状態割当てを、回路面積そのものを評価基準として最適化することによって、その状態割当て解を用いて論理合成された回路の面積を、従来の同期式順序回路の状態割当て方法により状態コードが割当てられた場合の回路面積以下とすることができる。
【００６２】
また、回路面積に対する影響がより大きなパスを注目パスとして特定し、その注目パスに対して複数の状態解候補を策定しているため、解候補が絞られて、処理時間を短縮化することができる。
【００６３】
さらに、状態コード長が長い解候補を候補に加えることによって、その状態割当て解を用いて論理合成された回路の面積を、従来の同期式順序回路の状態割当て方法により状態コードが割当てられた場合の回路面積以下とすることができる。
【発明を実施するための最良の形態】
【００６４】
以下に、本発明の同期式順序回路の状態割当て最適化装置を用いた論理合成装置の実施形態１および２について、図面を参照しながら詳細に説明する。
（実施形態１）
図１は、本発明の実施形態１に係る同期式順序回路の状態割当て最適化装置を含む論理合成装置の構成例を示すブロック図である。
【００６５】
図１に示すように、論理合成装置１は、状態割当て手段２と、回路変換手段３と、本実施形態１の同期式順序回路の状態割当て最適化装置４とを備えている。
【００６６】
状態割当て手段２は、予め設計仕様として入力される状態遷移表を用いて、複数の状態のそれぞれに状態コードが割当てられ、割当てられたコードが状態割当ての初期解として出力される。
【００６７】
状態遷移表としては、例えば上記（表１）に示すようなものが入力される。上記（表１）は、上述したように、入力数３、出力数５および状態数４の状態遷移表の一例を示すものである。
【００６８】
下記（表３）は、上記（表１）に示す状態遷移表に対して、状態割当て手段２によって行われる状態割当ての一例を示すものであり、これが状態割当ての初期解として出力される。
【００６９】
【表３】
2006134302.tif 000005
上記（表３）では、その一例として、状態ＨＧに”００”が割当てられ、状態ＨＹに”０１”が割当てられ、状態ＦＧに”１１”が割当てられ、状態ＦＹに”１０”が割当てられている。
【００７０】
次に、回路変換手段３は、状態割当て手段２から供給される状態遷移表の情報と状態割当ての初期解とを用いて、ある条件設定の下で論理合成を行って、図１０に示すように、入力信号と現状態コードが入力されたときに出力信号と次状態コードとを生成して出力する組合せ回路１０１と、クロック信号に同期して現状態コードを組合せ回路１０１に出力し、組合せ回路１０１から入力される次状態コードを記憶する状態記憶回路１０２とを有する同期式順序回路の回路図情報が論理合成により生成される。
【００７１】
図２に、上記（表１）の状態遷移表に対して上記（表３）の状態割当ての初期解を適用して、回路変換手段３により生成された回路図情報の一例を示している。
【００７２】
図２に示す回路は、組合せ回路としてのインバータ回路５１〜５５、ＮＯＲ回路５６〜５８、ＯＲ回路５９、セレクタ６０，６１およびＮＡＮＤ回路６２〜６７と、状態記憶回路としてのＤ型フリップフロップ６８および６９とによって構成されており、信号ｘ１〜ｘ３が入力されて信号ｗ１〜ｗ５が出力されるように構成されている。
【００７３】
なお、状態割当て手段２および回路変換手段３について、その実現方法は特に限定されないが、近年では様々な論理合成技術が実用化されており、そのような論理合成技術を用いた自動処理装置を利用することができる。
【００７４】
次に、本実施形態１の同期式順序回路の状態割当て最適化装置４は、図１に破線で囲んだ部分として示しており、注目パス判定手段４１と、注目パス特徴解析手段４２と、注目パスと状態遷移の対応判定手段４３と、解候補策定手段４４と、回路面積比較手段４５とを有している。
【００７５】
以下に、本実施形態１の同期式順序回路の状態割当て最適化装置４における各手段について順次詳細に説明する。
（注目パス判定手段４１）
注目パス判定手段４１は、回路図情報に基づいて回路占有面積に影響するパスを注目パスとして特定する。これについて以下、詳細に説明する。
【００７６】
注目パス判定手段４１には、回路変換手段３で生成された状態記憶回路と組合せ回路とを含む同期式順序回路の回路図情報が入力される。
【００７７】
注目パス判定手段４１では、その回路図情報のうち、状態記憶回路のいずれかの出力から組合せ回路を経て状態記憶回路のいずれかの入力に達するパスの中で、より占有面積への影響が大きいパスが注目パスとして特定する。ここでは、「パス」とは、互いに接続関係にある連続した論理ゲートの並びのことを言う。
【００７８】
注目パスとしては、例えばパス上の論理ゲートにおける回路占有面積の総和が最も大きいパス、またはパス上の論理ゲートおよび配線による遅延の総和が最も大きいパス（いわゆるクリティカルパス）を選び出す。
【００７９】
両者は必ずしも一致するものではなく、占有面積への影響が大きいという点では、前者の方がより適しているが、回路変換手段３として論理合成装置を用いる場合には、その論理合成装置のクリティカルパス判定機能を利用することによって、後者の方が処理時間短縮化を図ることができるという点で有利である。
【００８０】
例えば、図２に示す回路図から、注目パス判定手段４１によってクリティカルパスを注目パスとして選び出した場合の注目パスの回路図情報を図３に示している。
【００８１】
図３の例では、図２に太線部分が注目パスとして特定されており、状態記憶回路のいずれかの出力であるＤ型フリップフロップ６９の出力から、組合せ回路であるＮＯＲ回路５６さらにＯＲ回路５９を経て、状態記憶回路の別のいずれかの入力であるＤ型フリップフロップ６８の入力まで達するパスとなっている。
【００８２】
注目パス判定手段４１によって選び出されたパスは、注目パスとして、その回路図情報（例えば図３の内容）が注目パス特徴解析手段４２に出力される。
（注目パス特徴解析手段４２）
注目パス特徴解析手段４２には、注目パス判定手段４１で特定された注目パスの回路図情報が入力され、この注目パスの回路図情報に基づいて、以下のようにして注目パスの特徴が解析される。
【００８３】
注目パス特徴解析手段４２では、注目パスの終点の論理ゲートを論理和と見た場合に、それが図４（ａ）に示すように正論理出力（ＯＲ回路７１）に該当するか、図４（ｂ）に示すように負論理出力（ＮＯＲ回路７２）に該当するかが判定される。
【００８４】
ここで、注目パスの終点の論理ゲートが、図４（ｃ）に示すようにＮＡＮＤ回路７３である場合には、そのＮＡＮＤ回路７３は負論理入力かつ正論理出力の論理和と等価であるため、ＯＲ回路７１と見做される。また、注目パスの終点の論理ゲートが、図４（ｄ）に示すようにＡＮＤ回路７４である場合には、そのＡＮＤ回路７４は負論理入力かつ負論理出力の論理和と等価であるため、ＮＯＲ回路７２と見做される。
【００８５】
また、注目パス特徴解析手段４２では、注目パスの起点の論理ゲートを論理積と見た場合に、それがどのような信号の論理積に対応するかが判定される。この場合、図５（ａ）に示す正論理出力（ＡＮＤ回路７５）であるかまたは、図５（ｂ）に示す負論理出力（ＮＡＮＤ回路７６）であるかは問われず、入力信号によって特徴解析が行われる。
【００８６】
ここで、注目パスの起点の論理ゲートが、図５（ｃ）に示すＯＲ回路７７である場合には、そのＯＲ回路７７は負論理入力かつ負論理出力の論理積と等価であるため、負論理入力のＮＡＮＤ回路７６と見做される。また、注目パスの起点の論理ゲートが、図５（ｄ）に示すＮＯＲ回路７８である場合には、そのＮＯＲ回路７８は負論理入力かつ正論理出力の論理積と等価であるため、負論理入力のＡＮＤ回路７５と見做される。
【００８７】
例えば図３の例では、Ｄ型フリップフロップ６９の出力からＮＯＲ回路５６さらにＯＲ回路５９を経てＤ型フリップフロップ６８の入力まで達する注目パスが示されており、この注目パスの終点の論理ゲートは正論理出力の３入力ＯＲ回路５９である。
【００８８】
また、この注目パスの起点の論理ゲートは負論理出力の３入力ＮＯＲ回路５６であるが、これは負論理入力のＡＮＤ回路と見做される。
【００８９】
下記（表４）は、上記（表１）の状態遷移表に対して上記（表３）の状態割当てを適用して得られる真理値表の一例を示すものである。
【００９０】
【表４】
2006134302.tif 000006
上記（表４）の例では、上記（表１）の現状態コードおよび次状態コードとして、（表３）に示すように、状態ＨＧにコード”００”、状態ＨＹに”０１”、状態ＦＧに”１１”、状態ＦＹに”１０”が割当てられている。現状態の２桁のコードはそれぞれ入力信号ｓ１およびｓ０に割当てられ、次状態の２桁のコードはそれぞれ出力信号ｎｓ１およびｎｓ０に割当てられている。
【００９１】
上記（表４）に図３の信号名を当てはめると、入力信号ｓ１およびｓ０はそれぞれＤ型フリップフロップ６９および６８からの出力信号となり、出力信号ｎｓ１およびｎｓ０はそれぞれＤ型フリップフロップ６９および６８への入力信号となる。３入力ＮＯＲ回路５６に該当する論理はｘ１・ｘ２・¬ｓ１（但し、「・」は論理積、「¬」は論理否定を表す）となる。
【００９２】
注目パス特徴解析手段４２によって解析された注目パスの終点と起点のゲート情報は、注目パスと状態遷移の対応判定手段４３に出力される。
（注目パスと状態遷移の対応判定手段４３）
注目パスと状態遷移の対応判定手段４３は、注目パスの特徴がどの状態遷移を反映したものであるかを判定する注目パスと状態遷移の対応判定を行う。これについて以下、詳細に説明する。
【００９３】
注目パスと状態遷移の対応判定手段４３には、注目パス特徴解析手段４２から、注目パスの特徴として、注目パスの終点と起点の回路の特徴であるゲート情報が入力される。
【００９４】
注目パスと状態遷移の対応判定手段４３では、その注目パスが状態遷移表およびその状態遷移表に状態割当ての初期解を適用して得られる真理値表における複数の状態遷移のうちどの状態遷移を反映したものであるかを判定する。これは、注目パスの起点での変化が注目パスの終点まで伝わって起こる状態遷移が、状態遷移表およびその状態遷移表に状態割当ての初期解を適用して得られる真理値表における複数行（複数の状態遷移）のうちのどの行（状態遷移）に対応するかによって判定する。
【００９５】
例えば下記（表５）に示す真理値表であれば、出力ｗ１の生成方法は、
¬ｘ１・ｘ２とｘ１・¬ｘ２のＯＲ
¬ｘ１・¬ｘ２とｘ１・ｘ２のＮＯＲ
（・は論理積、¬は論理否定を表す）
の２通りである。
【００９６】
【表５】
2006134302.tif 000007
上記（表５）は、ごく簡単な真理値表の一例を示すものである。
【００９７】
例えば、上記（表５）の１行目では（ｘ１，ｘ２）が（０，０）でｗ１が”０”であるため、「¬ｘ１・ｘ２とｘ１・¬ｘ２のＯＲ」および「¬ｘ１・¬ｘ２とｘ１・ｘ２のＮＯＲ」のいずれによってもｗ１が”０”となる。また、上記（表５）の２行目では（ｘ１，ｘ２）が（０，１）でｗ１が”１”であるため、「¬ｘ１・ｘ２とｘ１・¬ｘ２のＯＲ」および「¬ｘ１・¬ｘ２とｘ１・ｘ２のＮＯＲ」のいずれによってもｗ１が”１”となる。３行目および４行目についても同様である。
【００９８】
上記（表５）を元に生成された回路が与えられた場合、仮に、出力ｗ１がＯＲ回路から出力されていたとすると、そのＯＲ回路の入力論理は¬ｘ１・ｘ２とｘ１・¬ｘ２のはずである。¬ｘ１・ｘ２が”１”となるのは、上記（表５）の２行目の条件の時である。ｘ１・¬ｘ２が”１”となるのは、上記（表５）の３行目の条件の時である。よって、ＯＲ回路を含めた回路全体は、上記（表５）の２行目と３行目を反映しているということになる。また、上記（表５）の２行目と３行目とは、いずれも、上記（表５）においてｗ１が”１”となる行である。これらのことから、注目パスの終点の論理ゲートがＯＲ回路であれば、注目パスの終点に対応する真理値表の列が”１”となる行を注目パスが反映している可能性があると判断できる。
【００９９】
逆に、出力ｗ１がＮＯＲ回路から出力されていたとすると、そのＯＲ回路の入力論理は¬ｘ１・¬ｘ２とｘ１・ｘ２のはずである。¬ｘ１・¬ｘ２が”１”となるのは、上記（表５）の１行目の条件の時である。ｘ１・ｘ２が”１”となるのは、上記（表５）の４行目の条件の時である。よって、ＮＯＲ回路を含めた回路全体は、上記（表５）の１行目と４行目を反映しているということになる。また、上記（表５）の１行目と４行目とは、いずれも、上記（表５）においてｗ１が”０”となる行である。これらのことから、注目パスの終点の論理ゲートがＮＯＲ回路であれば、注目パスの終点に対応する真理値表の列が”０”となる行を注目パスが反映している可能性があると判断できる。
【０１００】
また、注目パスの起点の論理ゲートに対応する論理積を、真理値表の各行の入力信号欄と照らし合せた場合に、論理的に等しいか、または包含関係にある場合は、その行を注目パスが反映している可能性がある。
【０１０１】
このように、注目パスと状態遷移の対応判定手段４３では、注目パスの終点の論理に着目した場合と、注目パスの起点の論理に着目した場合の各々について、注目パスが反映している可能性がある真理値表の行（状態遷移）が選ばれる。
【０１０２】
そこで、その両方で可能性があると選択された真理値表の行（状態遷移）が、注目パスが反映する行（状態遷移）として判定される。
【０１０３】
例えば、図３に示す注目パスの終点の論理ゲートであるＯＲ回路５９の出力は、上記（表４）の真理値表において信号ｎｓ０を生成するものである。この論理ゲートが正論理出力のＯＲ回路５９であるため、図３に示す注目パスが（表４）の真理値表において信号ｎｓ０に対して”１”を出力する行（３行目〜６行目）を反映している可能性がある。
【０１０４】
また、図３に示す注目パスの起点の論理ゲートであるＮＯＲ回路５６の論理は、図５（ｄ）に示すように負論理入力の正出力ＡＮＤ回路と見なされるため、ｘ１・ｘ２・¬ｓ１となる。上記（表４）の真理値表中で、これに該当する行は、３行目である。よって、図３に示す注目パスは、上記（表４）の真理値表において３行目の状態遷移を反映している可能性がある。
【０１０５】
したがって、注目パスの終点の論理に着目した場合と、注目パスの起点の論理に着目した場合の各々について、注目パスが反映している可能性がある真理値表の行は３行目であり、注目パスは真理値表の３行目の状態遷移を反映していると判定される。表４の他の行は、図２の注目パス以外のパスを反映している。注目パスが長い場合には他のパスを含む場合もある。
【０１０６】
注目パスと状態遷移の対応判定手段４３によって判定された注目パスが反映する真理値表の行（状態遷移）の情報は、解候補策定手段４４に出力される。
（解候補策定手段４４）
解候補策定手段４４は、注目パスが反映する状態遷移から複数の状態割当て解候補を策定する。これについて以下、詳細に説明する。
【０１０７】
解候補策定手段４４では、注目パスと状態遷移の対応判定手段４３から、注目パスと状態遷移の対応判定結果として、注目パスが反映する真理値表の行情報（状態遷移）が入力される。真理値表の行情報（状態遷移）は、状態遷移表に状態割当ての初期解を適用して得られたものであり、図６に示すように、現状態コードと次状態コードとを表す部分を含んでいる。
【０１０８】
解候補策定手段４４では、注目パスが反映する状態遷移（真理値表の行情報）から複数の状態割当て解候補が策定される。
【０１０９】
まず、注目パスの起点の信号名に基いて、注目パスが反映する真理値表の行中に現れている現状態コードに関して、注目パスの起点に対応する現状態コードの桁が特定される。また、注目パスの終点の信号名に基いて、注目パスが反映する真理値表の行中に現れている次状態コードに関して、注目パスの終点に対応する次状態コードの桁が特定される。
【０１１０】
状態割当ての初期解に対して、注目パスの起点に対応する現状態コードの桁の値が、”０”に対して”１”、”１”に対して”０”と逆になるように、２状態の状態コードだけが交換されて、これが１つ目の別解候補として設定される。例えば、状態コード”０１１”の１桁目が注目パスの起点に対応する場合には、状態コードが”０１０”である状態との間で状態コードが交換される。
【０１１１】
また、状態割当ての初期解に対して、注目パスの終点に対応する状態コードの桁の値が、”０”に対して”１”、”１”に対して”０”と逆になるように、２状態の状態コードだけが交換されて、これが２つ目の別解候補として設定される。例えば、状態コード”０１１”の３桁目が注目パスの終点に対応する場合には、状態コードが”１１１”である状態との間で状態コードが交換される。
【０１１２】
注目パスと状態遷移の対応判定手段４３から、注目パスが反映する真理値表の行が複数入力されている場合には、その各々から別解候補が設定される。
【０１１３】
例えば、上記（表４）に示す真理値表の３行目は、状態ＨＧから状態ＨＹへの遷移を表しており、状態コード”００”が割当てられた状態ＨＧの左側の桁（信号ｓ１に対応）を起点とし、状態コード”０１”が割当てられた状態ＨＹの右側の桁（信号ｎｓ０に対応）を終点として、注目パスが形成されている。よって、別解候補は、下記（表６）のように２通り生成することができる。
【０１１４】
【表６】
2006134302.tif 000008
上記（表６）は、本実施形態１において、解候補策定手段４４によって生成される状態割当て解候補を示すものである。
【０１１５】
上記（表６）の中央に示す解候補１は、上記（表６）の左側に示す初期解に対して例えば状態ＨＧのコードにおける左側の桁だけを変えるべく、状態ＨＧのコード”００”と状態ＦＹのコード”１０”を入れ替えて状態ＨＧのコードが”１０”、状態ＦＹのコードが”００”として設定されている。また、上記（表６）の右側に示す解候補２は、上記（表６）の左側に示す初期解に対して状態ＨＧのコードにおける右の桁だけを変えるべく、状態ＨＹのコード”０１”と状態ＨＧのコード”００”を入れ替えて状態ＨＹのコードが”００”、状態ＨＧのコードが”０１”として設定されている。
【０１１６】
即ち、解候補策定手段４４は、注目パスの起点の信号名に基づいて、注目パスが反映する状態遷移表に状態割当ての初期解を適用して得られる真理値表の行情報中に現れている現状態コードに関して注目パスの起点に対応する現状態コードの桁を特定し、その状態割当ての初期解に対して注目パスの起点に対応する状態コードの桁の値が逆になるようにその状態コードを交換して別解候補とし、その状態割当ての初期解に対して注目パスの終点に対応する状態コードの桁の値が逆になるようにその状態コードを交換して他の別解候補とする。
【０１１７】
解候補策定手段４４で得られた状態割当て解候補は、同期式順序回路の状態割当て最適化装置４の外部に設けられた回路変換手段３に対して出力される。
【０１１８】
この回路変換手段３によって、状態割当て手段２から供給される状態遷移表と解候補策定手段４４から供給される複数の状態割当て解候補とを用いて、同期式順序回路の回路図情報が論理合成により生成される。回路変換手段３によって生成された複数の回路図情報と、状態割当て解候補は、回路面積比較手段４５に出力される。
（回路面積比較手段４５）
回路面積比較手段４５は、解候補策定手段４４による複数の状態割当て解候補のそれぞれを用いて装置外部の回路変換手段３により論理合成された複数の回路図情報の面積を比較して最小の回路を検出する。これについて以下、詳細に説明する。
【０１１９】
初期解が回路変換された結果の面積が最小であれば、その初期解が最終解として判定され、本実施形態１の同期式順序回路の状態割当て最適化装置４による処理が終了する。
【０１２０】
また、別解の何れかが回路変換された結果の面積が最小でれば、それが新たな初期解として設定されて、新たな初期解とその回路図情報が注目パス生成手段４１に出力され、注目パス生成手段４１から回路面積比較手段４５による各処理が繰り返される。
【０１２１】
本実施形態１では、回路面積比較手段４５による１回目の処理を行ったところ、上記（表６）に示す初期解、解候補１および解候補２の各々を論理合成して得られた回路の面積がそれぞれ３７、３５および４２となった。
【０１２２】
そこで、解候補１を新たな初期解として、パス生成手段４１から回路面積比較手段４５による各処理を繰り返したところ、解候補策定手段４４による２回目の処理によって解候補が２つ得られ、回路面積比較手段４５による２回目の処理によって、初期解、解候補１および解候補２の各々を論理合成して得られた回路の面積がそれぞれ３５、３７および４３となった。
【０１２３】
この時点で、本実施形態１の同期式順序回路の状態割当て最適化装置４による処理が終了し、回路面積比較手段４５から出力する２回目の処理時の初期解、即ち、回路面積比較手段４５から出力される１回目の処理時の解候補１が最終解として検出される。
【０１２４】
このように、回路面積比較手段４５には、回路変換手段３から複数の状態割当て解候補の各々に対応する回路図情報が入力され、この入力回路図情報に基づいてそれぞれの回路の面積が比較されて最小の回路を検出する。
【０１２５】
以上により、本実施形態１によれば、同期式順序回路の状態割当て最適化装置４は、回路変換手段３からの回路図情報を用いて、面積への影響が大きい注目パスを特定する注目パス判定手段４１と、注目パスの回路図情報から注目パスの特徴を解析する注目パス特徴解析手段４２と、注目パスの特徴から注目パスが真理値表のどの状態遷移を反映しているかを判定する判定手段４３と、注目パスが反映する状態遷移から複数の状態割当て解候補を策定し、装置外部の回路変換手段３に出力する解候補策定手段４４と、複数の状態割当て解候補を用いて回路変換手段３により生成された複数の回路の面積を比較し、面積が最小のものを検出する回路面積比較手段４５とを有している。
【０１２６】
したがって、従来のように、回路面積と完全相関がある訳ではない評価基準ではなく、回路面積そのものを評価基準として用いているため、より最適な状態割当て解を検出することができ、得られる状態割当て解を用いて回路を論理合成したときの回路面積は、初期解を用いて回路を論理合成したときの回路面積以下とすることができる。よって、従来手法の一つを状態割当て手段として用いた場合に、本実施形態１により得られる状態割当て解を回路に変換したときの回路面積は、従来手法により得られる状態割当て解を回路に変換したときの回路面積に比べて、必ずそれ以下の縮小化された面積にすることができる。
【０１２７】
また、注目パスとして、状来割当て解を変化させることにより、より大きな面積的変化が期待されるパスのみに着目して、その注目パスに変化が生じるもののみを別解候補とすることによって、短時間で最適な状態割当て解を得ることができる。
【０１２８】
なお、本実施形態１では、１回目の処理時の初期解、解候補１および解候補２を用いた論理合成と、２回目の処理時の解候補１および解候補２を用いた論理合成の延べ５回の論理合成によって最適な状態割当て解を得ることができたが、回路変換手段３を用いて論理合成を何度が実行しなければならないという点で、処理時間は従来手法よりも大きくなる懸念がある。しかしながら、回路変換手段３として、人手によるものではなく、論理合成プログラムを用いれば、本実施形態１で説明したような規模の回路であれば、１秒未満で１個の回路を論理合成することができるため、実用的な時間内に最適な状態割当て解を得ることができる。
【０１２９】
図７（ａ）は、本実施形態１の同期式順序回路の状態割当て最適化方法をコンピュータによって処理するための論理合成装置の構成例を示すブロック図である。
【０１３０】
図７（ａ）に示すように、論理合成装置８０は、制御手段としてのＣＰＵ（中央演算処理装置）８１と、可読記録媒体（記憶手段）としてのＲＯＭ８２と、ＣＰＵ８１がワークメモリとして利用する記憶手段としてのＲＡＭ８３と、キーボードやマウスなどを含む入力部８４と、ディスプレイやプリンタなどを含む出力部８５とを有している。
【０１３１】
ＲＯＭ５２には、本実施形態１の同期式順序回路の状態割当て最適化方法をコンピュータによって実行させるための各処理手順が記述された同期式順序回路の状態割当て最適化処理プログラムおよびそのデータが記憶されており、ＣＰＵ８１は、この状態割当て最適化処理プログラムおよびそのデータをＲＡＭ８３に読み出して、同期式順序回路の状態割当て最適化処理を実行する。操作者は、必要に応じて出力部８５の表示画面上の処理結果を目で確認しながら、入力部８４から操作指示や設定値などを入力指示することができる。処理結果データとしての回路図情報および状態割当て解はＲＯＭ８２に記憶される。
【０１３２】
可読記録媒体としては、各種ＩＣメモリ、光ディスク（例えばＣＤ）および磁気記録媒体（例えばＦＤ）などの小型携帯用記憶装置であり、本発明の状態割当て最適化処理プログラムおよびそのデータがコンピュータ読み取り可能な可読記録媒体である。
【０１３３】
論理合成装置８０は、同期式順序回路の状態割当て最適化処理プログラムおよびそのデータに基づいて、図７（ｂ）に示す次の各ステップＳ１〜Ｓ７を順次実行する。
【０１３４】
まず、注目パス判定ステップＳ１では、注目パス判定手段４１が回路図情報を用いて回路占有面積に影響するパスを注目パスとして特定する。この注目パス判定ステップＳ１では、状態記憶回路と組合せ回路とを含む同期式順序回路の回路図情報を用いて、いずれかの状態記憶回路の出力から組合せ回路を経て同一または別の状態記憶回路の入力に達するパスの中で回路占有面積に影響するパスを注目パスとして特定する。この注目パスとしては、例えば、パス上の論理ゲートにおける回路占有面積の総和が最も大きいパスまたは、そのパス上の論理ゲートおよび配線による遅延の総和が最も大きいパスを選択する。
【０１３５】
次に、注目パス特徴解析ステップＳ２では、注目パス特徴解析手段４２が、この注目パスの回路図情報を用いてその回路の特徴を解析する。この注目パス特徴解析ステップＳ２では、注目パスの終点の論理ゲートを論理和とした場合に、それが正論理出力および負論理出力のいずれに該当するかを判定し、注目パスの起点の論理ゲートを論理積とした場合に、それが正論理入力および負論理入力のいずれの論理積に該当するかを判定する。例えば、注目パスの終点の論理ゲートがＮＡＮＤ回路である場合に正論理出力のＯＲ回路と見做し、注目パスの終点の論理ゲートがＡＮＤ回路である場合に負論理出力のＮＯＲ回路と見做し、注目パスの起点の論理ゲートがＯＲ回路である場合に負論理入力のＮＡＮＤ回路と見做し、該注目パスの起点の論理ゲートがＮＯＲ回路である場合に負論理入力のＡＮＤ回路と見做す。
【０１３６】
その後、注目パスと状態遷移の対応判定ステップＳ３では、注目パスと状態遷移の対応判定手段４３で、この注目パスの回路の特徴がどの状態遷移を反映したものであるかを判定する。この注目パスと状態遷移の対応判定ステップＳ３では、注目パスの起点での変化が注目パスの終点まで伝わって起こる状態遷移が、状態遷移表に状態割当ての初期解を適用して得られる真理値表における複数行のうちのどの行に対応するかを判定する。このとき、注目パスの起点と終点の回路の特徴に基づいて、この注目パスが状態遷移表に状態割当ての初期解を適用して得られる真理値表の複数の状態遷移のうちどの状態遷移を反映したものであるかを判定する。
【０１３７】
さらに、解候補策定ステップＳ４では、解候補策定手段４４で、この注目パスが反映する状態遷移から複数の状態割当て解候補を策定する。この解候補策定ステップＳ４では、注目パスが反映する、状態遷移表に状態割当ての初期解を適用して得られる真理値表の行情報中に現れている現状態コードに関して、その注目パスの起点に対応する現状態コードの桁を特定し、状態割当ての初期解に対して注目パスの起点に対応する状態コードの桁の値が逆になるように当該状態コードを交換して別解候補とする。また、状態割当ての初期解に対して注目パスの終点に対応する状態コードの桁の値が逆になるように当該状態コードを交換して他の別解候補とする。
【０１３８】
さらに、回路面積比較ステップＳ５では、回路面積比較手段４５が、この複数の状態割当て解候補のそれぞれを用いて論理合成された複数の回路図情報を用いて、それぞれの回路面積を比較して面積が最小の回路を検出する。
【０１３９】
さらに、初期解／別解判定ステップＳ６では、回路面積比較手段４５が、複数の状態割当て解候補のうち、初期解を用いて論理合成された回路の面積が最小であるか、初期解以外の別解を用いて論理合成された回路の面積が最小であるかを判定する。
【０１４０】
初期解／別解判定ステップＳ６において、複数の状態割当て解候補のうち、初期解を用いて論理合成された回路の面積が最小であれば、最終解決定ステップＳ７に進み、その初期解を最終解として、処理を終了する。
【０１４１】
また、初期解／別解判定ステップＳ６において、複数の状態割当て解候補のうち、別解を用いて論理合成された回路の面積が最小であれば、その別解を新たな初期解として、新たな初期解およびその回路図情報を供給して、注目パス判定ステップＳ１から回路面積比較ステップＳ６の各処理を繰り返す。
【０１４２】
以上のように、本実施形態１では、与えられた状態割当て解に対して、状態コードの入れ替えによって別解候補を複数生成し、その各々を実際に論理合成してみて得られる回路面積が最も小さい解を選ぶことを繰り返して、得られる回路面積が小さくなるような状態割当て解を求めている。しかしながら、状態割当てにおいては、従来技術と同様に、状態数とコード長が等しい、いわゆるワンホットコードを用いている。このため、コード長が最短である一つの状態割当て解に対して、コード長が長く、かつ、回路面積が小さい解が存在する場合に、それが選択されることなく、捨てられてしまう虞がある。そこで、以下の実施形態２では、状態割当て解候補として状態コード長が最短の解候補だけでなく、それらより状態コード長が長い解候補を加えて、その中から取捨選択することにより、解候補中で最も回路面積が小さい解を求める方法について説明する。
（実施形態２）
図８は、本発明の実施形態２に係る同期式順序回路の状態割当て最適化装置を含む論理合成装置の構成例を示すブロック図である。
【０１４３】
図８に示すように、論理合成装置１Ａは、状態割当て手段２と、回路変換手段３と、本実施形態２の同期式順序回路の状態割当て最適化装置４Ａとを備えている。ここで、状態割当て手段２および回路変換手段３については、実施形態１と同様であるので、詳細な説明を省略する。
【０１４４】
本実施形態２の同期式順序回路の状態割当て最適化装置４Ａは、図８に破線で囲んだ部分として示しており、注目パス判定手段４１と、注目パス特徴解析手段４２と、注目パスと状態遷移の対応判定手段４３と、解候補策定手段４４と、回路面積比較手段４５Ａと、解伸長手段４６とを有している。ここで、注目パス判定手段４１と、注目パス特徴解析手段４２と、注目パスと状態遷移の対応判定手段４３と、解候補策定手段４４については、上記実施形態１の場合とその作用効果が同様であるため、ここでは、その詳細な説明を省略する。
（回路面積比較手段４５Ａ）
回路面積比較手段４５Ａは、解候補策定手段４４による複数の状態割当て解候補のそれぞれを用いて装置外部の回路変換手段３により論理合成された複数の回路図情報の面積を比較して最小の回路を検出する。これについて、以下に、詳細に説明する。
【０１４５】
回路面積比較手段４５Ａにおいて、初期解が回路変換された結果の面積が最小であれば、その初期解がそのコード長における最終解として判定される。
【０１４６】
また、別解の何れかが回路変換された結果の回路面積が最小であれば、それが新たな初期解として設定されて、新たな初期解とその回路図情報が注目パス生成手段４１に出力され、注目パス生成手段４１から回路面積比較手段４５Ａまでの各処理が繰り返される。
【０１４７】
本実施形態２では、回路面積比較手段４５Ａまでの１回目の処理を行ったところ、上記（表６）に示す初期解、解候補１および解候補２の各々を論理合成して得られた回路の面積がそれぞれ３７、３５および４２となった。
【０１４８】
そこで、その面積が最小の解候補１を新たな初期解として、パス生成手段４１から回路面積比較手段４５Ａまでの各処理を繰り返したところ、解候補策定手段４４による２回目の処理によって別の解候補が２つ得られ、回路面積比較手段４５Ａによる２回目の処理によって、初期解、解候補１および解候補２の各々を論理合成して得られた回路の面積がそれぞれ３５、３７および４３となった。
【０１４９】
この時点で、回路面積比較手段４５Ａから出力する２回目の処理時の初期解、即ち、回路面積比較手段４５Ａから出力される１回目の処理時の解候補１がコード長２における最終解として検出される。
【０１５０】
一方、回路面積比較手段４５Ａは、処理の繰り返しの中で、ビットが一つ短い状態割り当て解の状態コード長における最終解の回路面積を記憶しておき、現在の状態コード長における最終解と、その一つ短い状態コード長の最終解との回路面積を比較する。前者（現在の状態コード長）の回路面積の方が小さい場合には、さらに解伸長手段４６へと処理を進め、後者（ビットが一つ短い状態コード長）の回路面積の方が小さい場合にはそれを最終解として、本実施形態２の同期式順序回路の状態割当て最適化装置４Ａによる処理が終了する。
【０１５１】
このようにして、回路面積比較手段４５Ａには、回路変換手段３から複数の状態割当て解候補の各々に対応する回路図情報が入力され、この入力回路図情報に基づいてそれぞれの回路の面積が比較されて最小の回路を検出する。
【０１５２】
なお、初めて回路面積比較手段４５Ａに達した時は、上記「その一つ短い状態コード長の最終解」は存在しないため、常に解伸長手段４６の処理へ進む。２回目以降に回路面積比較手段４５Ａに達した時は、「現在の状態コード長における最終解と、その一つ短い状態コード長の最終解との回路面積を比較する。本実施形態２の場合、初めて回路面積比較手段４５Ａに達した時のコード長は「２」で、必ず、解伸長手段４６に処理が進む。２回目に回路面積比較手段４５Ａに達した時のコード長は「３」で、コード長「３」の最終解とコード長「２」の最終解を比較し、処理を終るかまたは、解伸長手段４６の処理に進むかの何れかとなる。３回目に回路面積比較手段４５Ａに達した時のコード長は「４」で、コード長「４」の最終解とコード長「３」の最終解とを比較し、処理が終るかまたは、解伸長手段４６の処理に進むかの何れかとなる。
（解伸長手段４６）
解伸長手段４６は、回路面積比較手段４５Ａによる一つの状態コード長における最終解から、１ビット（１ｂｉｔ）分だけ状態コード長が長い状態割当て解を生成する。これについて以下、詳細に説明する。
【０１５３】
この解伸長手段４６は、状態割当て解に対して、例えば、一つのコードに’１’を付加し、その他のコードに’０’を付加した状態割当て解候補を生成する。この解候補は、状態数通りが生成される。本実施形態２では、下記の(表７)に示すように、コード長３の新たな解候補が４個生成される。
【０１５４】
【表７】
2006134302.tif 000009
上記（表７）は、本実施形態２において、解伸長手段４６によって生成される状態割当て解候補を示すものである。
【０１５５】
上記（表７）の左から２番目に示す解候補１は、上記（表７）の左端に示す初期解に対して、状態ＨＧのコードの左端に’１’を付加し、それ以外の状態ＨＹ、状態ＦＧおよび状態ＦＹのコードの左端に’０’を付加したものである。また、上記（表７）の中央に示す解候補２は、上記（表７）の左端に示す初期解に対して、例えば状態ＨＹのコードの左端に’１’を付加し、それ以外の状態ＨＧ、状態ＦＧおよび状態ＦＹのコードの左端に’０’を付加したものである。さらに、上記（表７）の右から２番目に示す解候補３は、上記（表７）の左端に示す初期解に対して、状態ＦＧのコードの左端に’１’を付加し、それ以外の状態ＨＧ、状態ＨＹおよび状態ＦＹのコードの左端に’０’を付加したものである。また、上記（表７）の右端に示す解候補４は、上記（表７）の左端に示す初期解に対して、例えば状態ＦＹのコードの左端に’１’を付加し、それ以外の状態ＨＧ、状態ＦＧおよび状態ＦＹのコードの左端に’０’を付加したものである。
【０１５６】
この解伸長手段４６による複数の状態割当て解候補１〜４のそれぞれを用いて、装置外部の回路変換手段３により複数の回路図情報が論理合成され、引き続いて、パス生成手段４１から回路面積比較手段４５Ａまでの各処理を繰り返すことによって、コード長３における最終解が検出される。コード長２の最終解とコード長３の最終解とが、さらに回路面積比較手段４５Ａにより比較されて最終解が得られる。
【０１５７】
以上により、本実施形態２にあっては、同期式順序回路の状態割当て最適化装置４Ａは、回路変換手段３からの回路図情報を用いて、面積への影響が大きい注目パスを特定する注目パス判定手段４１と、注目パスの回路図情報から注目パスの特徴を解析する注目パス特徴解析手段４２と、注目パスの特徴から注目パスが真理値表のどの状態遷移を反映しているかを判定する判定手段４３と、注目パスが反映する状態遷移から複数の状態割当て解候補を策定し、装置外部の回路変換手段３に出力する解候補策定手段４４と、複数の状態割当て解候補を用いて回路変換手段３により生成された複数の回路の面積を比較し、面積が最小のものを検出する回路面積比較手段４５Ａと、最終解に対して１ビット（１ｂｉｔ）分だけ長い状態コード長の複数の状態割当て解候補を装置外部の回路変換手段３に出力する解伸長手段４６を有している。
【０１５８】
したがって、上記実施形態１の場合と同様に、回路面積と完全相関がある訳ではない評価基準ではなく、回路面積そのものを評価基準として用いているため、より最適な状態割当て解を検出することができ、得られる状態割当て解を用いて回路を論理合成したときの回路面積は、初期解を用いて回路を論理合成したときの回路面積以下とすることができる。これによって、従来手法の一つを状態割当て手段として用いた場合に、本実施形態２により得られる状態割当て解を回路に変換したときの回路面積は、従来手法により得られる状態割当て解を回路に変換したときの回路面積に比べて、必ずそれ以下の縮小化された面積にすることができる。
【０１５９】
また、注目パスとして、状態割当て解を変化させることにより、より大きな面積的変化が期待されるパスのみに着目して、その注目パスに変化が生じるものだけを別解候補とすることによって、短時間で最適な状態割当て解を得ることができる。
【０１６０】
さらに、本実施形態２では、状態コード長が長い解候補を候補に加えることによって、状態コード長が最短である一つの状態割当て解に対して、状態コード長が長く、かつ、回路面積が小さい解が存在する場合に対応することが可能となる。本実施形態２により得られる状態割当て解を回路に変換したときの回路面積は、上記実施形態１により得られる状態割当て解を回路に変換したときの回路面積に比べて、それ以下の縮小化された面積にすることもできる。
【０１６１】
図９（ａ）は、本実施形態２の同期式順序回路の状態割当て最適化方法をコンピュータによって処理するための論理合成装置の構成例を示すブロック図である。
【０１６２】
図９（ａ）に示すように、論理合成装置８０Ａは、上記実施形態１の論理合成装置８０の場合と同様に、制御手段としてのＣＰＵ（中央演算処理装置）８１と、可読記録媒体（記憶手段）としてのＲＯＭ８２と、ＣＰＵ８１がワークメモリとして利用する記憶手段としてのＲＡＭ８３と、キーボードやマウスなどを含む入力部８４と、ディスプレイやプリンタなどを含む出力部８５とを有している。
【０１６３】
ＲＯＭ５２には、本実施形態２の同期式順序回路の状態割当て最適化方法をコンピュータによって実行させるための各処理手順が記述された同期式順序回路の状態割当て最適化処理プログラムおよびそのデータが記憶されており、ＣＰＵ８１は、この状態割当て最適化処理プログラムおよびそのデータをＲＡＭ８３に読み出して、同期式順序回路の状態割当て最適化処理を実行する。操作者は、必要に応じて出力部８５の表示画面上の処理結果を目で確認しながら、入力部８４から操作指示や設定値などを入力指示することができる。処理結果データとしての回路図情報および状態割当て解はＲＯＭ８２に記憶される。
【０１６４】
可読記録媒体としては、各種ＩＣメモリ、光ディスク（例えばＣＤ）および磁気記録媒体（例えばＦＤ）などの小型携帯用記憶装置であり、本発明の状態割当て最適化処理プログラムおよびそのデータがコンピュータ読み取り可能な可読記録媒体である。
【０１６５】
論理合成装置８０Ａは、同期式順序回路の状態割当て最適化処理プログラムおよびそのデータに基づいて、図９（ｂ）に示す各ステップＳ１１〜Ｓ２１を順次実行する。
【０１６６】
まず、注目パス判定ステップＳ１１では、注目パス特定手段４１が回路図情報を用いて回路占有面積に影響するパスを注目パスとして特定する。この注目パス判定ステップＳ１１では、状態記憶回路と組合せ回路とを含む同期式順序回路の回路図情報を用いて、いずれかの状態記憶回路の出力から組合せ回路を経て同一または別の状態記憶回路の入力に達するパスの中で回路占有面積に影響するパスを注目パスとして特定する。また、注目パスとして、例えば、パス上の論理ゲートにおける回路占有面積の総和が最も大きいパスまたは、そのパス上の論理ゲートおよび配線による遅延の総和が最も大きいパスを選択する。
【０１６７】
次に、注目パス特徴解析ステップＳ１２では、注目パス特徴解析手段４２がこの注目パスの回路図情報を用いてその回路の特徴を解析する。この注目パス特徴解析ステップＳ１２では、注目パスの終点の論理ゲートを論理和とした場合に、それが正論理出力および負論理出力のいずれに該当するかどうかを判定し、注目パスの起点の論理ゲートを論理積とした場合に、それが正論理入力および負論理入力のいずれの論理積に該当するかを判定する。例えば、この注目パスの終点の論理ゲートがＮＡＮＤ回路である場合に正論理出力のＯＲ回路と見做し、注目パスの終点の論理ゲートがＡＮＤ回路である場合に負論理出力のＮＯＲ回路と見做し、この注目パスの起点の論理ゲートがＯＲ回路である場合に負論理入力のＮＡＮＤ回路と見做し、この注目パスの起点の論理ゲートがＮＯＲ回路である場合に負論理入力のＡＮＤ回路と見做す。
【０１６８】
その後、注目パスと状態遷移の対応判定ステップＳ１３では、注目パスと状態遷移の対応判定手段４３で、この注目パスの回路の特徴がどの状態遷移を反映したものであるかを判定する。この注目パスと状態遷移の対応判定ステップＳ１３では、注目パスの起点での変化が注目パスの終点まで伝わって起こる状態遷移が、状態遷移表に状態割当ての初期解を適用して得られる真理値表における複数行のうちのどの行に対応するかを判定する。このとき、注目パスの起点と終点の回路の特徴に基づいて、この注目パスが状態遷移表に状態割当ての初期解を適用して得られる真理値表の複数の状態遷移のうちどの状態遷移を反映したものであるかを判定する。
【０１６９】
さらに、解候補策定ステップＳ１４では、解候補策定手段４４で、この注目パスが反映する状態遷移から複数の状態割当て解候補を策定する。この解候補策定ステップＳ１４では、注目パスが反映する、状態遷移表に状態割当ての初期解を適用して得られる真理値表の行情報中に現れている現状態コードに関して、その注目パスの起点に対応する現状態コードの桁を特定し、状態割当ての初期解に対して注目パスの起点に対応する状態コードの桁の値が逆になるように当該状態コードを交換して別解候補とする。また、状態割当ての初期解に対して注目パスの終点に対応する状態コードの桁の値が逆になるように当該状態コードを交換して他の別解候補とする。
【０１７０】
さらに、回路面積比較ステップＳ１５では、回路面積比較手段４５Ａが、この複数の状態割当て解候補のそれぞれを用いて論理合成された複数の回路図情報から、それぞれの回路面積を比較して面積が最小の回路を検出する。
【０１７１】
さらに、初期解／別解判定ステップＳ１６では、回路面積比較手段４５Ａで、複数の状態割当て解候補のうち、初期解を用いて論理合成された回路の面積が最小であるか、別解を用いて論理合成された回路の面積が最小であるかどうかを判定する。
【０１７２】
初期解／別解判定ステップＳ１６において、複数の状態割当て解候補のうち、初期解を用いて論理合成された回路の面積が最小であれば、その初期解をその状態コード長における最終解として、回路面積比較ステップＳ１７の処理に進む。
【０１７３】
また、初期解／別解判定ステップＳ１６において、複数の状態割当て解候補のうち、別解を用いて論理合成された回路の面積が最小であれば、その別解を新たな初期解として、新たな初期解およびその回路図情報を供給して、注目パス判定ステップＳ１１から初期解／別解判定ステップＳ１６の各処理を繰り返す。
【０１７４】
回路面積比較ステップＳ１７およびＳ１８では、ステップＳ１１からステップＳ１６までの各処理を繰り返し処理を行う中で、一つ短いコード長における最終解（前解）の回路面積と、現在のコード長における最終解（現解）の回路面積を比較して、面積が小さい方の回路を検出する。
【０１７５】
回路面積比較ステップＳ１７およびＳ１８において、前解の回路面積が小さい場合には、最終解決定ステップＳ１９の処理に進み、その前解を最終解として、処理を終了する。
【０１７６】
また、回路面積比較ステップＳ１７およびＳ１８において、現解の回路面積が小さい場合には、解伸長ステップＳ２０の処理に進み、状態割当て解を１ビット（１ｂｉｔ）分だけ長くする。回路面積比較ステップＳ２１の処理を経て、注目パス判定ステップＳ１１からの各処理を繰り返す。
【０１７７】
以上のように、本発明の好ましい実施形態１，２を用いて本発明を例示してきたが、本発明は、この実施形態１，２に限定して解釈されるべきものではない。本発明は、特許請求の範囲によってのみその範囲が解釈されるべきであることが理解される。当業者は、本発明の具体的な好ましい実施形態１，２の記載から、本発明の記載および技術常識に基づいて等価な範囲を実施することができることが理解される。本明細書において引用した特許、特許出願および文献は、その内容自体が具体的に本明細書に記載されているのと同様にその内容が本明細書に対する参考として援用されるべきであることが理解される。
【産業上の利用可能性】
【０１７８】
本発明は、デジタル回路などに幅広く利用される同期式順序回路の設計工程に用いられ、その設計仕様として与えられる状態遷移表に対する状態割当てを最適化するための同期式順序回路の状態割当て最適化装置、これを用いた論理合成装置、同期式順序回路の状態割当て最適化方法、これを実行するための同期式順序回路の状態割当て最適化処理プログラムおよびこの処理プログラムが記録されたコンピュータ読み取り可能な可読記録媒体の分野において、複数の状態に状態コードを割当てる状態割当て処理時に、回路面積そのものを評価基準として最適化することによって、その状態割当て解を用いて論理合成された回路の面積を、従来の同期式順序回路の状態割当て方法により状態コードが割当てられた場合の回路面積以下とすることができる。また、本発明によれば、回路面積に対する影響がより大きなパスを注目パスとして特定し、その注目パスに対して複数の状態割当て解候補を策定しているため、解候補が絞られて、処理時間を短縮化することができる。さらに、本発明によれば、最短のコード長の解だけでなく長いコード長の解も探索することによって、その状態割当て解を用いて論理合成された回路の面積を、従来の同期式順序回路の状態割当て方法により状態コードが割当てられた場合の回路面積以下とすることができる。したがって、本発明を適用することによって、短縮化された処理時間によって回路面積の削減を図ることができるため、デジタル回路の製造コスト削減のために寄与することができる。
【図面の簡単な説明】
【０１７９】
【図１】本発明の実施形態１に係る同期式順序回路の状態割当て最適化装置を含む論理合成装置の構成例を示すブロック図である。
【図２】表１の状態遷移表に対して表３の状態割当てを適用した上で、図１の回路変換手段によって論理合成を行って得られる回路例を示す回路図である。
【図３】図２の回路におけるクリティカルパス部分を示す回路図である。
【図４】（ａ）〜（ｄ）は、図１の注目パス特徴解析手段によって注目パスの終点における論理ゲートの論理がどのように判断されるかについて説明するための回路図である。
【図５】（ａ）〜（ｄ）は、図１の注目パス特徴解析手段によって注目パスの起点における論理ゲートの論理がどのように判断されるかについて説明するための回路図である。
【図６】状態遷移表の行の構成および真理値表の行の構成を説明するための図である。
【図７】（ａ）は、本発明の実施形態１に係る同期式順序回路の状態割当て最適化方法をコンピュータによって処理するための論理合成装置の構成例を示すブロック図、（ｂ）は、（ａ）の論理合成装置の動作例を示すフローチャートである。
【図８】本発明の実施形態２に係る同期式順序回路の状態割当て最適化装置を含む論理合成装置の構成例を示すブロック図である。
【図９】（ａ）は、本発明の実施形態２に係る同期式順序回路の状態割当て最適化方法をコンピュータによって処理するための論理合成装置の構成例を示すブロック図、（ｂ）は、（ａ）の論理合成装置の動作例を示すフローチャートである。
【図１０】従来の同期式順序回路の一般的な構成例を示す回路図である。
【図１１】表１の状態遷移表を状態遷移図として表現した場合の一例を示す図である。
【符号の説明】
【０１８０】
１、１Ａ、８０、８０Ａ  論理合成装置
２  状態割当て手段
３  回路変換手段
４、４Ａ  同期式順序回路の状態割当て最適化装置   
４１  注目パス判定手段
４２  注目パス特徴解析手段
４３  注目パスと状態遷移の対応判定手段
４４  解候補策定手段
４５、４５Ａ  回路面積比較手段
４６  解伸長手段
５１〜５５  インバータ回路
５６〜５８  ＮＯＲ回路
５８，５９  Ｄ型フリップフロップ
６０，６１  セレクタ
６２〜６７  ＮＡＮＤ回路   
７１，７７  ＯＲ回路
７２，７８  ＮＯＲ回路
７３．７６  ＮＡＮＤ回路
７４，７５  ＡＮＤ回路
８０  論理合成システム
８１  ＣＰＵ（制御手段）
８２  ＲＯＭ
８３  ＲＡＭ
８４  入力部
８５出力部
１００  同期式順序回路
１０１  組合せ回路
１０２  状態記憶回路
【図１】
2006134302.tif 000010
【図２】
2006134302.tif 000011
【図３】
2006134302.tif 000012
【図４】
2006134302.tif 000013
【図５】
2006134302.tif 000014
【図６】
2006134302.tif 000015
【図７】
2006134302.tif 000016
【図８】
2006134302.tif 000017
【図９】
2006134302.tif 000018
【図１０】
2006134302.tif 000019
【図１１】
2006134302.tif 000020