(57)【要約】【課題】回路シミュレーションで用いるテストベンチ情報を元に、回路内の動作しない記述を特定し、その部分を削除することで、回路面積を削減することを目的とする。【解決手段】回路情報内に記述されている回路動作を制御する記述を抽出する手段と、テストベンチ情報から動作制御記述に伝播する信号を制御パターン情報として抽出する手段と、制御記述情報と制御パターン情報からの動作しない制御記述を特定する手段と、動作しない制御記述を削除する手段とを具備することにより、回路面積を削減した最適な回路情報を自動生成できる。【選択図】図１
2007133451.tif 000002
【特許請求の範囲】
【請求項１】
計算機上で実施する論理設計の最適化装置であって、
回路情報を取り込み前記回路情報内に記述されている回路動作を制御する記述を制御記述情報として抽出する制御記述抽出手段と、
テストベンチ情報と前記制御記述情報を取り込み前記制御記述情報に伝播する信号を制御パターン情報として抽出する制御パターン抽出手段と、
前記制御記述情報と前記制御パターン情報を取り込み回路動作を制御する記述のうち動作しない記述を非動作記述情報として抽出する非動作記述抽出手段と、
前記回路情報と前記非動作記述情報を取り込み前記回路情報内の動作しない記述を削除した最適化済み回路情報を出力する回路最適化手段と
を具備することを特徴とする論理設計最適化装置。
【請求項２】
計算機上で実施する論理設計の最適化装置であって、
回路情報を取り込み前記回路情報内に記述されている回路動作を制御する記述を制御記述情報として抽出する制御記述抽出手段と、
前記回路情報内の回路動作を制御する記述のうち動作する条件を備えたテストベンチ情報を取り込み前記制御記述が動作する条件を制御パターン情報として抽出する制御パターン抽出手段と、
前記制御記述情報と前記制御パターン情報を取り込み回路動作を制御する記述のうち、動作しない記述を非動作記述情報として抽出する非動作記述抽出手段と、
前記回路情報と前記非動作記述情報を取り込み前記回路情報内の動作しない記述を削除した最適化済み回路情報を出力する回路最適化手段
を具備することを特徴とする論理設計最適化装置。
【請求項３】
計算機上で実施する論理設計の最適化装置であって、
回路情報を取り込み前記回路情報内に記述されている回路動作を制御する記述を制御記述情報として抽出する制御記述抽出手段と、
制御記述情報とシミュレーション結果情報を入力とし前記制御記述情報中の制御信号が前記シミュレーション結果情報よりどのように動作したかを抽出して動作しない記述を非動作記述情報として抽出する非動作記述抽出手段と、
前記回路情報と前記非動作記述情報を取り込み前記回路情報内の動作しない記述を削除した最適化済み回路情報を出力する回路最適化手段と
を具備することを特徴とする論理設計最適化装置。
【請求項４】
計算機上で実施する論理設計の最適化方法であって、
回路情報を入力し前記回路情報内に記述されている回路動作を制御する記述を制御記述情報として抽出する第１ステップと、
テストベンチ情報と前記制御記述情報を入力し前記制御記述情報に伝播する信号を制御パターン情報として抽出する第２ステップと、
前記制御記述情報と前記制御パターン情報を入力し回路動作を制御する記述のうち動作しない記述を非動作記述情報として抽出する第３ステップと、
前記回路情報と前記非動作記述情報を入力し前記回路情報内の動作しない記述を削除した最適化済み回路情報を出力する第４ステップと
を有することを特徴とする論理設計最適化方法。
【請求項５】
計算機上で実施する論理設計の最適化方法であって、
回路情報を入力し前記回路情報内に記述されている回路動作を制御する記述を制御記述情報として抽出する第１ステップと、
前記回路情報内の回路動作を制御する記述のうち動作する条件を備えたテストベンチ情報を入力し前記制御記述が動作する条件を制御パターン情報として抽出する第２ステップと、
前記制御記述情報と前記制御パターン情報を入力し回路動作を制御する記述のうち動作しない記述を非動作記述情報として抽出する第３ステップと、
前記回路情報と前記非動作記述情報を入力し前記回路情報内の動作しない記述を削除した最適化済み回路情報を出力する第４ステップと
を有することを特徴とする論理設計最適化方法。
【請求項６】
計算機上で実施する論理設計の最適化方法であって、
回路情報を入力し前記回路情報内に記述されている回路動作を制御する記述を制御記述情報として抽出する第１ステップと、
前記制御記述情報と前記回路情報のシミュレーション結果情報を入力し回路動作を制御する記述のうちシミュレーション結果と照合することにより動作しない記述を非動作記述情報として抽出する第２ステップと、
前記回路情報と前記非動作記述情報を入力し前記回路情報内の動作しない記述を削除した最適化済み回路情報を出力する第３ステップと
を有することを特徴とする論理設計最適化方法。
【請求項７】
前記テストベンチ情報の記載に、前記回路情報を検証するテストパターンを具備することを特徴とした請求項１記載の論理設計最適化装置。
【請求項８】
前記テストベンチ情報の記載に、前記制御記述情報の取り得る組み合わせの情報を有することを特徴とした請求項２記載の論理設計最適化装置。
【請求項９】
前記制御記述抽出手段において、抽出対象となる制御記述を予めパラメタライズしたライブラリとして具備することを特徴とした
請求項１，請求項２，請求項３の何れかに記載の論理設計最適化装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＬＳＩ回路設計、特にハードウェア記述言語によって設計されるＬＳＩ回路において、回路の論理を最適化することで、回路規模を縮小する論理設計最適化装置および方法に関するものである。
【背景技術】
【０００２】
計算機を用いたＬＳＩ回路設計のＤＡシステムにおいて、Ｖｅｒｉｌｏｇ−ＨＤＬ(Ｈａｒｄｗａｒｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）やＶＨＤＬ（ＶＨＳＩＣ  Ｈａｒｄｗａｒｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）などのハードウェア記述言語による回路設計が行われている。ハードウェア記述言語で設計された回路は、ソフトウェア論理シミュレータで回路機能を検証した後、論理合成ツールでネットリスト化され、レイアウトを行い、マスクパターンが生成される。
【０００３】
複数のブロックからなるシステムＬＳＩの設計の際には、過去の設計資産（ＩＰ）の再利用がブロック単位で行われることが多く、これにより設計効率の向上を図ることが行われている。
【０００４】
ＩＰの使用により設計効率は向上するが、回路構成としては過去の設計資産の機能を全て使用するとは限らず、一部分を使用する場合でも未使用の機能を含めて再利用することとなってしまい回路規模の削減の障害となる。また、新規開発のブロックであっても将来の拡張性のために使用しない機能を盛り込んでおくこともあり、同様に回路規模の増大の原因となる。そこで、システムＬＳＩ全体について未使用の機能を手動で削除して、回路規模を削減し回路構成を最適化するということが行われている。
【０００５】
図１１に示すように、チップ開発仕様１００、回路情報２００を入力とし、回路情報２００中にチップ開発仕様１００にない機能があるかどうか検出し、もしあれば回路図エディタあるいはテキストエディタなど手動修正手段３００により回路の未使用箇所の記述を削除することで最適化済み回路情報２４０を生成し、これを論理合成装置３０１に入力する。
【０００６】
また、回路規模を削減し回路構成の最適化を図るという目的では、回路機能の使用の有無に関わらず、回路を構成する機能単位で最適化を図る（特許文献１）のような手法もある。
【特許文献１】特許第３１１３５９４号
【発明の開示】
【発明が解決しようとする課題】
【０００７】
ハードウェア記述言語によるシステムＬＳＩの設計においては、ＩＰの使用による設計効率が図られていることが多いが、ＩＰの全ての機能を使用するとは限らないため使用しない機能に関する回路記述があれば、その分、回路面積の無意味な増大となる。また、将来の拡張性のために使用しない機能を盛り込んでおくこともあり、同様に回路規模の増大の原因となっている。
【０００８】
また、回路内部で部分的に使用される／使用されないかを判断する情報として、回路シミュレーションにおいて使用されるテストベンチにて、回路へ入力する入力信号パターンやメモリパターンといったテストパターンがあるが、これらの仕様に基づき、不要な機能を手動で検出し、動作しない回路記述を削除することで回路面積を削減することが行われており、回路設計効率低下の課題となっている。
【０００９】
本発明が解決しようとする課題は、上記課題を解決するもので、
１）  回路シミュレーションの際に使用するテストベンチ情報と回路情報より、非動作な回路記述を抽出し、自動的に削除する論理設計最適化装置を提供する。
【００１０】
２）  テストベンチ情報に使用する回路機能を記述しておくことで、回路情報内の非動作な回路記述を特定し、自動的に削除する論理設計最適化装置を提供する。
３）  回路シミュレーションの結果から、動作しなかった回路記述を特定し、自動的に削除する論理設計最適化装置を提供する。
【課題を解決するための手段】
【００１１】
この目的を達成するために本発明の第１の発明は、回路情報から回路動作を制御する記述を抽出する制御記述抽出手段と、テストベンチ内の回路動作を制御するパターンを抽出する制御パターン抽出手段と、回路内で動作しない記述を抽出する非動作記述抽出手段と、動作しない回路記述を削除する回路最適化手段を具備することにより、回路記述的に最適な回路情報を自動生成することができる。
【００１２】
本発明の第２の発明は、回路情報から回路動作を制御する記述を抽出する制御記述抽出手段と、テストベンチ内にあらかじめ記載された回路動作を制御するパターンを抽出する制御パターン抽出手段と、回路内で動作しない記述を抽出する非動作記述抽出手段と、動作しない回路記述を削除する回路最適化手段を具備することにより、回路記述的に最適な回路情報を自動生成することができる。
【００１３】
本発明の第３の発明は、回路情報から回路動作を制御する記述を抽出する制御記述抽出手段と、シミュレーション結果と照合することで回路内で動作しない記述を抽出する非動作記述抽出手段と、動作しない回路記述を削除する回路最適化手段を具備することにより、回路記述的に最適な回路情報を自動生成することができる。
【発明の効果】
【００１４】
この構成によると、複数のブロックからなるシステムＬＳＩの設計において、動作しない回路記述を自動で抽出し、削除することで、回路面積の削減を図ることができる。
【発明を実施するための最良の形態】
【００１５】
以下、本発明の各実施の形態を、図１〜図１０に基づいて説明する。
（実施の形態１）
図１，図４，図５，図８は本発明の（実施の形態１）を示し、この実施の形態は請求項１、４、７、９に対応している。論理設計最適化装置の構成図を図１、フロー図を図５に、実例を図４、図８に示す。
【００１６】
Ｖｅｒｉｌｏｇ−ＨＤＬで記述されたシミュレーション用のテストベンチ情報と回路情報を入力とし、論理的に最適化された回路情報を生成する場合を実施例とする。
図１に示すように、論理設計最適化装置は、制御記述抽出手段３１０、制御パターン抽出手段３２０、非動作記述抽出手段３３０、回路最適化手段３４０から構成されている。
【００１７】
制御記述抽出手段３１０は、図４に示すように抽出対象となる制御記述を予めパラメタライズした制御記述ライブラリ３１１を具備している。具体的には、制御記述としてｉｆ文３１２の
＄制御記述：ｉｆ
ｉｆ（＄条件式）  ｂｅｇｉｎ  回路記述部分  ｅｎｄ
ｅｌｓｅｉｆ（＄条件式）  ｂｅｇｉｎ  回路記述部分  ｅｎｄ
ｅｌｓｅ  ｂｅｇｉｎ  回路記述部分  ｅｎｄ
と、ｃａｓｅ文３１３の
＄制御記述：ｃａｓｅ
ｃａｓｅ（＄制御信号）
＄条件値：                    回路記述部分
ｄｅｆａｕｌｔ：              回路記述部分
ｅｎｄｃａｓｅ
を具備しているとする。
【００１８】
図８（ａ）〜（ｅ）は、テストベンチ情報と回路情報を示している。
図８（ａ）は、テストベンチ情報１１０と制御パターン情報２２１であり、テストベンチ情報１１０は３種類のテストパターン１２１，１２２，１２３を具備しているとする。
【００１９】
／／パターンＡ：ｍｏｄｅｓｅｔ＝１０１；
／／パターンＢ：ｍｏｄｅｓｅｔ＝００１；
／／パターンＣ：ｍｏｄｅｓｅｔ＝０００；
図８（ｂ）は回路情報２０１で、
１行目：  ｍｏｄｕｌｅ  ＴＯＰ（ｍｏｄｅｓｅｔ）；
２行目：  ｉｎｐｕｔ  ［２：０］      ｍｏｄｅｓｅｔ；
３行目：
４行目：  ａｌｗａｙｓ＠（ｍｏｄｅｓｅｔ）ｂｅｇｉｎ
５行目：  ｃａｓｅ（ｍｏｄｅｓｅｔ）
６行目：  ３’ｂ０００：          回路機能記述部分
７行目：  ３’ｂ００１：          回路機能記述部分
８行目：  ３’ｂ０１０：          回路機能記述部分
９行目：  ３’ｂ０１１：          回路機能記述部分
１０行目：  ３’ｂ１００：        回路機能記述部分
１１行目：  ３’ｂ１０１：        回路機能記述部分
１２行目：  ｄｅｆａｕｌｔ：      回路機能記述部分
１３行目：  ｅｎｄｃａｓｅ
１４行目：
１５行目：  ｉｆ（ｍｏｄｅｓｅｔ＝＝０００）ｂｅｇｉｎ
１６行目：                        回路機能記述部分
１７行目：  ｅｎｄ
１８行目：  ｅｌｓｅｉｆ（ｍｏｄｅｓｅｔ＝＝００１）ｂｅｇｉｎ
１９行目：                        回路機能記述部分
２０行目：  ｅｎｄ
２１行目：  ｅｌｓｅｉｆ（ｍｏｄｅｓｅｔ＝＝１００）ｂｅｇｉｎ
２２行目：                        回路機能記述部分
２３行目：  ｅｎｄ
２４行目：  ｅｌｓｅｉｆ（ｍｏｄｅｓｅｔ＝＝１０１）ｂｅｇｉｎ
２５行目：                        回路機能記述部分
２６行目：  ｅｎｄ
２７行目：  ｅｌｓｅ  ｂｅｇｉｎ
２８行目：                        回路機能記述部分
２９行目：  ｅｎｄ
３０行目：
３１行目：  ｅｎｄ
３２行目：  ｅｎｄｍｏｄｕｌｅ
である。図８（ｃ）は制御記述情報２１１で、
１行目：    ｃａｓｅ（ｍｏｄｅｓｅｔ）
２行目：    ３’ｂ０００：        回路機能記述部分
３行目：    ３’ｂ００１：        回路機能記述部分
４行目：    ３’ｂ０１０：        回路機能記述部分
５行目：    ３’ｂ０１１：        回路機能記述部分
６行目：    ３’ｂ１００：        回路機能記述部分
７行目：    ３’ｂ１０１：        回路機能記述部分
８行目：    ｄｅｆａｕｌｔ：      回路機能記述部分
９行目：    ｅｎｄｃａｓｅ
１０行目：
１１行目：    ｉｆ（ｍｏｄｅｓｅｔ＝＝０００）ｂｅｇｉｎ
１２行目：                        回路機能記述部分
１３行目：    ｅｎｄ
１４行目：    ｅｌｓｅｉｆ（ｍｏｄｅｓｅｔ＝＝００１）ｂｅｇｉｎ
１５行目：                        回路機能記述部分
１６行目：    ｅｎｄ
１７行目：    ｅｌｓｅｉｆ（ｍｏｄｅｓｅｔ＝＝１００）ｂｅｇｉｎ
１８行目：                        回路機能記述部分
１９行目：    ｅｎｄ
２０行目：    ｅｌｓｅｉｆ（ｍｏｄｅｓｅｔ＝＝１０１）ｂｅｇｉｎ
２１行目：                        回路機能記述部分
２２行目：    ｅｎｄ
２３行目：    ｅｌｓｅ  ｂｅｇｉｎ
２４行目：                        回路機能記述部分
２５行目：    ｅｎｄ
である。図８（ｄ）は、非動作記述情報２３１で、
１行目：    ３’ｂ０１０：        回路機能記述部分
２行目：    ３’ｂ０１１：        回路機能記述部分
３行目：    ３’ｂ１００：        回路機能記述部分
４行目：
５行目：    ｅｌｓｅｉｆ（ｍｏｄｅｓｅｔ＝＝１００）ｂｅｇｉｎ
６行目：                        回路機能記述部分
７行目：    ｅｎｄ
ある。図８（ｅ）は最適化済み回路情報２４１である。
【００２０】
図５は論理設計最適化方法を実現するフロー図で、回路情報に制御記述があるかどうか判定するステップＳ４００と、制御記述情報を抽出するステップＳ４０１とで請求項４の第１のステップが形成されている。
【００２１】
また、テストベンチ情報に制御記述を制御するテストパターンがあるかどうか判定するステップＳ４０２と制御パターンを抽出するステップＳ４０３とで請求項４の第２のステップが形成されている。
【００２２】
また、制御記述が動作しない制御パターンがあるかどうか判定するステップＳ４０４と非動作記述を抽出するステップＳ４０５とで請求項４の第３のステップが形成されている。
【００２３】
また、回路記述を最適化するステップＳ４０６によって請求項４の第４のステップが形成されている。
制御記述抽出手段３１０は、回路情報２０１を入力とし、制御記述ライブラリ３１１に基づき制御記述情報２１１を出力する（図５のＳ４００，Ｓ４０１）。
【００２４】
図８（ｂ）の回路情報２０１を入力とすると、制御信号としてｍｏｄｅｓｅｔを持つｃａｓｅ文として５〜１３行目の
５行目：  ｃａｓｅ（ｍｏｄｅｓｅｔ）
６行目：  ３’ｂ０００：        回路機能記述部分
７行目：  ３’ｂ００１：        回路機能記述部分
８行目：  ３’ｂ０１０：        回路機能記述部分
９行目：  ３’ｂ０１１：        回路機能記述部分
１０行目：  ３’ｂ１００：        回路機能記述部分
１１行目：  ３’ｂ１０１：        回路機能記述部分
１２行目：  ｄｅｆａｕｌｔ：      回路機能記述部分
１３行目：  ｅｎｄｃａｓｅ
が該当し、ｉｆ文として１５〜２９行目の
１５行目：  ｉｆ（ｍｏｄｅｓｅｔ＝＝０００）ｂｅｇｉｎ
１６行目：                        回路機能記述部分
１７行目：  ｅｎｄ
１８行目：  ｅｌｓｅｉｆ（ｍｏｄｅｓｅｔ＝＝００１）ｂｅｇｉｎ
１９行目：                        回路機能記述部分
２０行目：  ｅｎｄ
２１行目：  ｅｌｓｅｉｆ（ｍｏｄｅｓｅｔ＝＝１００）ｂｅｇｉｎ
２２行目：                        回路機能記述部分
２３行目：  ｅｎｄ
２４行目：  ｅｌｓｅｉｆ（ｍｏｄｅｓｅｔ＝＝１０１）ｂｅｇｉｎ
２５行目：                        回路機能記述部分
２６行目：  ｅｎｄ
２７行目：  ｅｌｓｅ  ｂｅｇｉｎ
２８行目：                        回路機能記述部分
２９行目：  ｅｎｄ
が該当する。回路情報２０１の５〜１３行目、１５〜２９行目を抽出し、制御記述情報２１１として出力する。
【００２５】
制御パターン抽出手段３２０は、テストベンチ情報１１０と制御記述情報２１１を入力とし、制御記述情報２１１の制御信号に伝播するテストパターンをテストベンチ情報１１０から検索し、制御パターン情報２２１として出力する（図５のＳ４０２，Ｓ４０３）。
【００２６】
図８（ａ）のテストベンチ情報１１０と図８（ｃ）の制御記述情報２１１を入力とすると、テストベンチ情報１１０が持つ３種類のテストパターン１２１，１２２，１２３に、制御記述情報２１１の制御信号ｍｏｄｅｓｅｔに伝播する信号ｍｏｄｅｓｅｔがあり、その取り得る値を全て含み制御パターン情報２２１として出力する。
【００２７】
非動作記述抽出手段３３０は、制御記述情報２１１と制御パターン情報２２１を入力とし、制御パターンの組み合わせから制御記述が取り得ることがない部分を非動作記述情報２３１として出力する（図５のＳ４０４，Ｓ４０５）。
【００２８】
図８（ｃ）の制御記述情報２１１と図８（ａ）の制御パターン情報２２１を入力とすると、制御パターン情報２２１より制御信号ｍｏｄｅｓｅｔが取り得る値として、
１行目：０００
２行目：００１
３行目：１０１
を得ることができる。これにより、制御記述情報２１１のｃａｓｅ文部分である１〜９行目の
１行目：    ｃａｓｅ（ｍｏｄｅｓｅｔ）
２行目：    ３’ｂ０００：                回路機能記述部分
３行目：    ３’ｂ００１：                回路機能記述部分
４行目：    ３’ｂ０１０：                回路機能記述部分
５行目：    ３’ｂ０１１：                回路機能記述部分
６行目：    ３’ｂ１００：                回路機能記述部分
７行目：    ３’ｂ１０１：                回路機能記述部分
８行目：    ｄｅｆａｕｌｔ：              回路機能記述部分
９行目：    ｅｎｄｃａｓｅ
において、４行目：０１０，５行目：０１１，６行目：１００は動作しない。また制御記述情報２１１のｉｆ文部分である１１〜２５行目の
１１行目：    ｉｆ（ｍｏｄｅｓｅｔ＝＝０００）ｂｅｇｉｎ
１２行目：                        回路機能記述部分
１３行目：    ｅｎｄ
１４行目：    ｅｌｓｅｉｆ（ｍｏｄｅｓｅｔ＝＝００１）ｂｅｇｉｎ
１５行目：                        回路機能記述部分
１６行目：    ｅｎｄ
１７行目：    ｅｌｓｅｉｆ（ｍｏｄｅｓｅｔ＝＝１００）ｂｅｇｉｎ
１８行目：                        回路機能記述部分
１９行目：    ｅｎｄ
２０行目：    ｅｌｓｅｉｆ（ｍｏｄｅｓｅｔ＝＝１０１）ｂｅｇｉｎ
２１行目：                        回路機能記述部分
２２行目：    ｅｎｄ
２３行目：    ｅｌｓｅ  ｂｅｇｉｎ
２４行目：                        回路機能記述部分
２５行目：    ｅｎｄ
において、ｍｏｄｅｓｅｔ＝＝１００の場合に動作する１７〜１９行目は動作しない。これらの動作しない記述を抽出し、図８（ｄ）に示すように非動作記述情報２３１として出力する。
【００２９】
回路最適化手段３４０は、回路情報２０１と非動作記述情報２３１を入力とし、最適化済み回路情報２４１を出力する（図５のＳ４０６）。
図８（ｂ）の回路情報２０１と図８（ｄ）の非動作記述情報２３１を入力とすると、非動作記述情報２３１に該当する回路情報２０１の８〜１０行目の
８行目：  ３’ｂ０１０：                回路機能記述部分
９行目：  ３’ｂ０１１：                回路機能記述部分
１０行目：  ３’ｂ１００：                回路機能記述部分
、および２１〜２３行目の
２１行目：  ｅｌｓｅｉｆ（ｍｏｄｅｓｅｔ＝＝１００）ｂｅｇｉｎ
２２行目：                              回路機能記述部分
２３行目：  ｅｎｄ
を削除して、図８（ｅ）に示す最適化済み回路情報２４１として出力する。
【００３０】
１行目：    ｍｏｄｕｌｅ  ＴＯＰ（ｍｏｄｅｓｅｔ）；
２行目：    ｉｎｐｕｔ  ［２：０］        ｍｏｄｅｓｅｔ；
３行目：
４行目：    ａｌｗａｙｓ＠（ｍｏｄｅｓｅｔ）ｂｅｇｉｎ
５行目：    ｃａｓｅ（ｍｏｄｅｓｅｔ）
６行目：    ３’ｂ０００：        回路機能記述部分
７行目：    ３’ｂ００１：        回路機能記述部分
８行目：
９行目：
１０行目：
１１行目：    ３’ｂ１０１：      回路機能記述部分
１２行目：    ｄｅｆａｕｌｔ：    回路機能記述部分
１３行目：    ｅｎｄｃａｓｅ
１４行目：
１５行目：    ｉｆ（ｍｏｄｅｓｅｔ＝＝０００）ｂｅｇｉｎ
１６行目：                      回路機能記述部分
１７行目：    ｅｎｄ
１８行目：    ｅｌｓｅｉｆ（ｍｏｄｅｓｅｔ＝＝００１）ｂｅｇｉｎ
１９行目：                      回路機能記述部分
２０行目：    ｅｎｄ
２１行目：
２２行目：
２３行目：
２４行目：    ｅｌｓｅｉｆ（ｍｏｄｅｓｅｔ＝＝１０１）ｂｅｇｉｎ
２５行目：                      回路機能記述部分
２６行目：    ｅｎｄ
２７行目：    ｅｌｓｅ  ｂｅｇｉｎ
２８行目：                      回路機能記述部分
２９行目：    ｅｎｄ
３０行目：
３１行目：    ｅｎｄ
３２行目：    ｅｎｄｍｏｄｕｌｅ
このように回路情報から回路の動作を制御する制御記述を抽出し、それを制御するテストパターンがあるかどうかをテストベンチ情報から照合することで、動作しない制御記述を抽出する。そして、動作しない制御記述を削除することで、回路規模を削減することができ、回路の最適化を図ることができる。
【００３１】
（実施の形態２）
図２，図４，図６，図９は本発明の（実施の形態２）を示し、この実施の形態は請求項２、５、８、９に対応している。論理設計最適化装置の構成図を図２、フロー図を図６に、実例を図４、図９に示す。
【００３２】
Ｖｅｒｉｌｏｇ−ＨＤＬで記述されたシミュレーション用のテストベンチ情報と回路情報を入力とし、論理的に最適化された回路情報を生成する場合を実施例とする。
図２に示すように、論理設計最適化装置は、制御記述抽出手段３１０、制御パターン抽出手段３２１、非動作記述抽出手段３３０、回路最適化手段３４０から構成されている。
【００３３】
制御記述抽出手段３１０は、制御記述を予めパラメタライズした制御記述ライブラリ３１１を具備しており、制御記述ライブラリ３１１は、具体的には図４に示めしたｉｆ文３１２とｃａｓｅ文３１３を具備しているとする。
【００３４】
図９（ａ）〜（ｅ）は、テストベンチ情報と回路情報を示している。
図９（ａ）は、テストベンチ情報１１１と制御パターン情報２２１であり、動作する制御記述を記述したコメント文１２４
／／  ｃｏｎｔｒｏｌ  ｓｉｇｎａｌ  ｂｅｇｉｎ
／／  ｍｏｄｅｓｅｔ＝０００；  ｂｏｏｔｍｏｄｅ
／／  ｍｏｄｅｓｅｔ＝００１；  ｉｄｌｅｍｏｄｅ
／／  ｍｏｄｅｓｅｔ＝１０１；  ｒｅａｄｍｏｄｅ
／／  ｃｏｎｔｒｏｌ  ｓｉｇｎａｌ  ｅｎｄ
と３種類のテストパターン１２１、１２２、１２３を具備しているとする。
【００３５】
／／パターンＡ：ｍｏｄｅｓｅｔ＝１０１；
／／パターンＢ：ｍｏｄｅｓｅｔ＝００１；
／／パターンＣ：ｍｏｄｅｓｅｔ＝０００；
図９（ｂ）は回路情報２０１で、図８（ｂ）と同じである。図９（ｃ）は制御記述情報２１１で、図８（ｃ）と同じである。図９（ｄ）は非動作記述情報２３１で、図８（ｄ）と同じである。図９（ｅ）は最適化済み回路情報２４１である。
【００３６】
図６は論理設計最適化方法を実現するフロー図で、回路情報に制御記述があるかどうか判定するステップＳ４１０と、制御記述情報を抽出するステップＳ４１１とで請求項５の第１のステップが形成されている。
【００３７】
また、テストベンチ情報に制御記述を制御するコメント記述があるかどうか判定するステップＳ４１２と、制御パターンを抽出するステップＳ４１３とで請求項５の第２のステップが形成されている。
【００３８】
また、制御パターン以外の動作をする制御記述があるかどうか判定するステップＳ４１４と、非動作記述を抽出するステップＳ４１５とで請求項５の第３のステップが形成されている。
【００３９】
また、回路記述を最適化するステップＳ４１６で請求項５の第４のステップが形成されている。
制御記述抽出手段３１０は、回路情報２０１を入力とし、制御記述ライブラリ３１１に基づき、制御記述情報２１１を出力する（図６のＳ４１０，Ｓ４１１）。
【００４０】
図９（ｂ）の回路情報２０１を入力とすると、制御信号としてｍｏｄｅｓｅｔを持つｃａｓｅ文として５〜１３行目の
５行目：    ｃａｓｅ（ｍｏｄｅｓｅｔ）
６行目：    ３ｂ０００：                回路機能記述部分
７行目：    ３ｂ００１：                回路機能記述部分
８行目：    ３ｂ０１０：                回路機能記述部分
９行目：    ３ｂ０１１：                回路機能記述部分
１０行目：  ３ｂ１００：                回路機能記述部分
１１行目：  ３ｂ１０１：                回路機能記述部分
１２行目：  ｄｅｆａｕｌｔ：            回路機能記述部分
１３行目：  ｅｎｄｃａｓｅ
が該当し、ｉｆ文として１５〜２９行目
１５行目：  ｉｆ（ｍｏｄｅｓｅｔ＝＝０００）ｂｅｇｉｎ
１６行目：                    回路機能記述部分
１７行目：  ｅｎｄ
１８行目：  ｅｌｓｅｉｆ（ｍｏｄｅｓｅｔ＝＝００１）ｂｅｇｉｎ
１９行目：                    回路機能記述部分
２０行目：  ｅｎｄ
２１行目：  ｅｌｓｅｉｆ（ｍｏｄｅｓｅｔ＝＝１００）ｂｅｇｉｎ
２２行目：                    回路機能記述部分
２３行目：  ｅｎｄ
２４行目：  ｅｌｓｅｉｆ（ｍｏｄｅｓｅｔ＝＝１０１）ｂｅｇｉｎ
２５行目：                    回路機能記述部分
２６行目：  ｅｎｄ
２７行目：  ｅｌｓｅ  ｂｅｇｉｎ
２８行目：                    回路機能記述部分
２９行目：  ｅｎｄ
が該当する。回路情報２０１の５〜１３行目の、１５〜２９行目を抽出し、制御記述情報２１１として出力する。
【００４１】
制御パターン抽出手段３２１は、テストベンチ情報１１１を入力とし、テストベンチ情報１１１内部に記載された動作制御記述を検索し、制御パターン情報２２１として出力する（図６のＳ４１２，Ｓ４１３）。
【００４２】
図９（ａ）のテストベンチ情報１１１を入力とすると、制御記述を記述したコメント文１２４では、１行目の  ｃｏｎｔｒｏｌ  ｓｉｇｎａｌ  ｂｅｇｉｎ  で始まる一連の  制御信号名＝制御値；コメント  の記述で制御記述の動作する状態を示し、５行目の  ｃｏｎｔｒｏｌ  ｓｉｇｎａｌ  ｅｎｄ  で、その記載を終了するとしている。
【００４３】
これにより、テストベンチ情報１１１が持つ３種類のテストパターン１２１，１２２，１２３に、制御信号ｍｏｄｅｓｅｔとその制御値として、
ｍｏｄｅｓｅｔ ＝ ０００；
ｍｏｄｅｓｅｔ ＝ ００１；
ｍｏｄｅｓｅｔ ＝ １０１；
があり、制御パターン情報２２１として出力する。
【００４４】
非動作記述抽出手段３３０は、制御記述情報２１１と制御パターン情報２２１を入力とし、制御パターンの組み合わせから、制御記述が取り得ることがない部分を非動作記述情報２３１として出力する（図６のＳ４１４，Ｓ４１５）。
【００４５】
図９（ｃ）の制御記述情報２１１と制御パターン情報２２１を入力とすると、制御パターン情報２２１より制御信号ｍｏｄｅｓｅｔが取り得る値として、
１行目：０００
２行目：００１
３行目：１０１
を得ることができる。これにより、制御記述情報２１１のｃａｓｅ文部分である１〜９行目の
１行目：    ｃａｓｅ（ｍｏｄｅｓｅｔ）
２行目：    ３’ｂ０００：          回路機能記述部分
３行目：    ３’ｂ００１：          回路機能記述部分
４行目：    ３’ｂ０１０：          回路機能記述部分
５行目：    ３’ｂ０１１：          回路機能記述部分
６行目：    ３’ｂ１００：          回路機能記述部分
７行目：    ３’ｂ１０１：          回路機能記述部分
８行目：    ｄｅｆａｕｌｔ：        回路機能記述部分
９行目：    ｅｎｄｃａｓｅ
において、
４行目：０１０
５行目：０１１
６行目：１００
は動作しない。また制御記述情報２１１のｉｆ文部分である１１〜２５行目の
１１行目：    ｉｆ（ｍｏｄｅｓｅｔ＝＝０００）ｂｅｇｉｎ
１２行目：                          回路機能記述部分
１３行目：    ｅｎｄ
１４行目：    ｅｌｓｅｉｆ（ｍｏｄｅｓｅｔ＝＝００１）ｂｅｇｉｎ
１５行目：                          回路機能記述部分
１６行目：    ｅｎｄ
１７行目：    ｅｌｓｅｉｆ（ｍｏｄｅｓｅｔ＝＝１００）ｂｅｇｉｎ
１８行目：                          回路機能記述部分
１９行目：    ｅｎｄ
２０行目：    ｅｌｓｅｉｆ（ｍｏｄｅｓｅｔ＝＝１０１）ｂｅｇｉｎ
２１行目：                          回路機能記述部分
２２行目：    ｅｎｄ
２３行目：    ｅｌｓｅ  ｂｅｇｉｎ
２４行目：                          回路機能記述部分
２５行目：    ｅｎｄ
において、ｍｏｄｅｓｅｔ＝＝１００の場合に動作する１７〜１９行目は動作しない。これらの動作しない記述を抽出し、非動作記述情報２３１として出力する。
【００４６】
回路最適化手段３４０は、回路情報２０１と非動作記述情報２３１を入力とし、最適化済み回路情報２４１を出力する（図６のＳ４１６）。
図９（ｂ）の回路情報２０１と図９（ｄ）の非動作記述情報２３１を入力とすると、非動作記述情報２３１に該当する回路情報２０１の８〜１０行目の
８行目：  ３’ｂ０１０：            回路機能記述部分
９行目：  ３’ｂ０１１：            回路機能記述部分
１０行目：  ３’ｂ１００：            回路機能記述部分
、および２１〜２３行目の
２１行目：  ｅｌｓｅｉｆ（ｍｏｄｅｓｅｔ＝＝１００）ｂｅｇｉｎ
２２行目：                          回路機能記述部分
２３行目：  ｅｎｄ
を削除して、図９（ｅ）に示す最適化済み回路情報２４１として出力する。ここで最適化済み回路情報２４１は図８（ｅ）に示す最適化済み回路情報２４１と同じである。
【００４７】
このように、どの回路機能を使用するか事前に決定し、テストベンチの記述において、制御信号の取り得る値を指定しておくことで、回路情報から回路の動作を制御する制御記述を抽出し、その中で使用しない制御記述を、動作しない制御記述として抽出する。そして、動作しない制御記述を削除することで、回路規模を削減することができ、回路の最適化を図ることができる。
【００４８】
（実施の形態３）
図３，図４，図７，図１０は本発明の（実施の形態３）を示し、この実施の形態は請求項３、６、９に対応している。論理設計最適化装置の構成図を図３、フロー図を図７に、実例を図４、図１０に示す。
【００４９】
Ｖｅｒｉｌｏｇ−ＨＤＬで記述されたシミュレーション用のテストベンチ情報と回路情報を入力とし、論理的に最適化された回路情報を生成する場合を実施例とする。
図３に示すように、論理設計最適化装置は、制御記述抽出手段３１０、非動作記述抽出手段３３１、回路最適化手段３４０から構成されている。
【００５０】
制御記述抽出手段３１０は、図４に示すように抽出対象となる制御記述を予めパラメタライズした制御記述ライブラリ３１１を具備している。制御記述ライブラリ３１１は、制御記述としてｉｆ文３１２、ｃａｓｅ文３１３を具備しているとする。
【００５１】
図１０（ａ）〜（ｅ）は、テストベンチ情報と回路情報を示している。
図１０（ａ）はシミュレーション結果１２５で、全信号値の変化した時刻とそのときの信号線名と信号値が記載されている。図１０（ｂ）は回路情報２０１で、図８（ｂ）と同じである。１０（ｃ）は制御記述情報２１１で、図８（ｃ）と同じである。図１０（ｄ）は非動作記述情報２３１で、図８（ｄ）と同じである。図１０（ｅ）は最適化済み回路情報２４１である。
【００５２】
図７は論理設計最適化方法を実現するフロー図で、回路情報に制御記述があるかどうか判定するステップＳ４２０と、制御記述情報を抽出するステップＳ４２１とで請求項６の第１のステップが形成されている。
【００５３】
また、シミュレーションの結果、動作しない制御記述があるかどうか判定するステップＳ４２２と、非動作記述を抽出するステップＳ４２３とで請求項６の第２のステップが形成されている。
【００５４】
また、回路記述を最適化するステップＳ４２４で請求項６の第３のステップが形成されている。
制御記述抽出手段３１０は、回路情報２０１を入力とし、制御記述ライブラリ３１１に基づき制御記述情報２１１を出力する（図７のＳ４２０，Ｓ４２１）。
【００５５】
図１０（ｂ）の回路情報２０１を入力とすると、制御信号としてｍｏｄｅｓｅｔを持つｃａｓｅ文として５〜１３行目が該当し、ｉｆ文として１５〜２９行目が該当する。回路情報２０１の５〜１３行目、１５〜２９行目を抽出し、制御記述情報２１１として出力する。
【００５６】
非動作記述抽出手段３３１は、制御記述情報２１１とシミュレーション結果情報１２５を入力とし、制御記述情報２１１中の制御信号がシミュレーション結果情報１２５よりどのように動作したかを抽出し、制御記述が取り得なかった部分を非動作記述情報２３１として出力する（図７のＳ４２２，Ｓ４２３）。
【００５７】
シミュレーション結果情報１２５を図１０（ａ）に示したように、
１行目：時刻０                ｍｏｄｅｓｅｔ＝０００；
２行目：時刻１００００経過後  ｍｏｄｅｓｅｔ＝００１；
３行目：時刻５００００経過後  ｍｏｄｅｓｅｔ＝１０１；
であるものとし、信号線ｍｏｄｅｓｅｔとその値を例とした。これにより、制御信号ｍｏｄｅｓｅｔが取り得る値は、
１行目：０００
２行目：００１
３行目：１０１
を得ることができる。これにより、制御記述情報２１１のｃａｓｅ文部分である１〜９行目において、
４行目：０１０
５行目：０１１
６行目：１００
は動作しない。また制御記述情報２１１のｉｆ文部分である１１〜２５行目において、ｍｏｄｅｓｅｔ＝＝１００の場合に動作する１７〜１９行目は動作しない。これらの動作しない記述を抽出し、非動作記述情報２３１として出力する。
【００５８】
回路最適化手段３４０は、回路情報２０１と非動作記述情報２３１を入力とし、最適化済み回路情報２４１を出力する（図７のＳ４２４）。
図１０の回路情報２０１と非動作記述情報２３１を入力とすると、非動作記述情報２３１に該当する回路情報２０１の８〜１０行目、２１〜２３行目を削除して、最適化済み回路情報２４１として出力する。ここで最適化済み回路情報２４１は図８（ｅ）に示す最適化済み回路情報２４１と同じである。
【００５９】
このように回路情報から回路の動作を制御する制御記述を抽出し、それがどのように動作したかをシミュレーション結果から照合し、動作しない制御記述を抽出する。そして、動作しない制御記述を削除することで、回路規模を削減することができ、回路の最適化を図ることができる。
【産業上の利用可能性】
【００６０】
本発明の論理設計最適化装置および方法は、ＬＳＩ回路設計、特にハードウェア記述言語によって設計されるＬＳＩ回路の回路規模、特に面積を削減させるものとして有用である。
【図面の簡単な説明】
【００６１】
【図１】本発明の（実施の形態１）の論理設計最適化装置の構成図
【図２】本発明の（実施の形態２）の論理設計最適化装置の構成図
【図３】本発明の（実施の形態３）の論理設計最適化装置の構成図
【図４】各実施の形態における制御記述ライブラリ例
【図５】本発明の（実施の形態１）の論理設計最適化方法のフロー図
【図６】本発明の（実施の形態２）の論理設計最適化方法のフロー図
【図７】本発明の（実施の形態３）の論理設計最適化方法のフロー図
【図８】本発明の（実施の形態１）の論理設計最適化装置で処理されるデータ例
【図９】本発明の（実施の形態２）の論理設計最適化装置で処理されるデータ例
【図１０】本発明の（実施の形態３）の論理設計最適化装置で処理されるデータ例
【図１１】従来の論理設計最適化の実施例の構成図
【符号の説明】
【００６２】
１１０，１１１  テストベンチ情報
１２１，１２２，１２３    テストパターン
１２４    制御記述を記述したコメント文
１２５    シミュレーション結果情報
２０１    回路情報
２１１    制御記述情報
２２１    制御パターン情報
２３１    非動作記述情報
２４１    最適化済み回路情報
３１０    制御記述抽出手段
３１１    制御記述ライブラリ
３１２    制御記述ｉｆ文
３１３    制御記述ｃａｓｅ文
３２０    制御パターン抽出手段
３２１    制御パターン抽出手段
３３０    非動作記述抽出手段
３３１    非動作記述抽出手段
３４０    回路最適化手段
【図１】
2007133451.tif 000003
【図２】
2007133451.tif 000004
【図３】
2007133451.tif 000005
【図４】
2007133451.tif 000006
【図５】
2007133451.tif 000007
【図６】
2007133451.tif 000008
【図７】
2007133451.tif 000009
【図８】
2007133451.tif 000010
【図９】
2007133451.tif 000011
【図１０】
2007133451.tif 000012
【図１１】
2007133451.tif 000013