(57)【要約】【課題】サイクルレベルシミュレーションの高速化のために十分な不要論理の削除が行われていない。【解決手段】不要論理解析手段と、性能評価モデル出力手段とを備え、サイクルレベルモデル中の実行サイクル数に影響を与えない論理を削除する。また、シミュレーションプロファイルを基に、サイクルレベルモデルの分岐条件の論理を簡単化するように動作する。このような構成を採用し、サイクルレベルモデルの不要論理を削除する。【選択図】図４
2010146359.tif 000002
【特許請求の範囲】
【請求項１】
システムＬＳＩ（Ｓｙｓｔｅｍ  Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）の所定の処理に必要なサイクル数の情報を有したサイクルレベルモデルを解析し、実行サイクル数に影響を与えない論理の情報を不要論理情報として抽出する不要論理解析手段と、
前記不要論理情報を基に前記サイクルレベルモデルから実行サイクル数に影響を与えない論理を取り除き、性能評価モデルを生成する性能評価モデル出力手段と
を具備する
動作合成システム。
【請求項２】
請求項１に記載の動作合成システムであって、
前記システムＬＳＩのシステム仕様の作成工程で作成された動作記述を読み込み、最適化処理、スケジューリング処理、バインディング処理を行い、前記動作記述を前記サイクルレベルモデルに変換する最適化・スケジューリング・バインディング処理手段
を更に具備する
動作合成システム。
【請求項３】
請求項２に記載の動作合成システムであって、
シミュレーション時に採取されたシミュレーションプロファイルを読み込み、前記サイクルレベルモデルを解析し、前記シミュレーションプロファイルに、前記サイクルレベルモデルの分岐条件に関する統計情報が含まれている場合、前記統計情報に則った生起確率を持った乱数で、前記分岐条件を置き換えて、前記サイクルレベルモデルの分岐条件の論理を簡単化する分岐条件論理簡単化手段
を更に具備する
動作合成システム。
【請求項４】
請求項３に記載の動作合成システムであって、
前記シミュレーションプロファイルは、
前記動作記述、前記サイクルレベルモデル、及びＲＴＬ（Ｒｅｇｉｓｔｅｒ  Ｔｒａｎｓｆｅｒ  Ｌｅｖｅｌ）モデルのいずれかの分岐においてどの条件が成り立ったかの統計情報と、
前記動作記述、前記サイクルレベルモデル、及び前記ＲＴＬモデルのいずれかの分岐の回数と分岐の結果の相関の情報を持った統計情報と、
前記動作記述、前記サイクルレベルモデル、及び前記ＲＴＬモデルのいずれかの分岐間における分岐の結果の相関の情報を持った統計情報と、
前記動作記述、前記サイクルレベルモデル、及び前記ＲＴＬモデルのいずれかの変数が取り得る値の情報を持った統計情報と
のうち少なくとも１つの統計情報を含む
動作合成システム。
【請求項５】
請求項４に記載の動作合成システムであって、
前記最適化・スケジューリング・バインディング処理手段は、前記動作記述を前記サイクルレベルモデルに変換した際に、前記動作記述と前記サイクルレベルモデルとの対応関係を示す情報を記憶装置に記憶する
動作合成システム。
【請求項６】
請求項５に記載の動作合成システムであって、
前記分岐条件論理簡単化手段は、前記対応関係を示す情報及び前記シミュレーションプロファイルを読み込み、前記シミュレーションプロファイルに前記動作記述の分岐条件に関する統計情報が含まれている場合、前記統計情報に則った生起確率を持った乱数で、前記動作記述に対応するサイクルレベルモデルの分岐条件を置き換えて、前記サイクルレベルモデルの分岐条件の論理を簡単化する
動作合成システム。
【請求項７】
システムＬＳＩ（Ｓｙｓｔｅｍ  Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）の所定の処理に必要なサイクル数の情報を有したサイクルレベルモデルを解析し、実行サイクル数に影響を与えない論理の情報を不要論理情報として抽出するステップと、
前記不要論理情報を基に前記サイクルレベルモデルから実行サイクル数に影響を与えない論理を取り除き、性能評価モデルを生成するステップと
を含む
動作合成方法。
【請求項８】
請求項７に記載の動作合成方法であって、
前記システムＬＳＩのシステム仕様の作成工程で作成された動作記述を読み込み、最適化処理、スケジューリング処理、バインディング処理を行い、前記動作記述を前記サイクルレベルモデルに変換するステップ
を更に含む
動作合成方法。
【請求項９】
請求項８に記載の動作合成方法であって、
シミュレーション時に採取されたシミュレーションプロファイルを読み込み、前記サイクルレベルモデルを解析し、前記シミュレーションプロファイルに、前記サイクルレベルモデルの分岐条件に関する統計情報が含まれている場合、前記統計情報に則った生起確率を持った乱数で、前記分岐条件を置き換えて、前記サイクルレベルモデルの分岐条件の論理を簡単化するステップ
を更に含む
動作合成方法。
【請求項１０】
請求項９に記載の動作合成方法であって、
前記シミュレーションプロファイルは、
前記動作記述、前記サイクルレベルモデル、及びＲＴＬ（Ｒｅｇｉｓｔｅｒ  Ｔｒａｎｓｆｅｒ  Ｌｅｖｅｌ）モデルのいずれかの分岐においてどの条件が成り立ったかの統計情報と、
前記動作記述、前記サイクルレベルモデル、及び前記ＲＴＬモデルのいずれかの分岐の回数と分岐の結果の相関の情報を持った統計情報と、
前記動作記述、前記サイクルレベルモデル、及び前記ＲＴＬモデルのいずれかの分岐間における分岐の結果の相関の情報を持った統計情報と、
前記動作記述、前記サイクルレベルモデル、及び前記ＲＴＬモデルのいずれかの変数が取り得る値の情報を持った統計情報と
のうち少なくとも１つの統計情報を含む
動作合成方法。
【請求項１１】
請求項１０に記載の動作合成方法であって、
前記動作記述を前記サイクルレベルモデルに変換した際に、前記動作記述と前記サイクルレベルモデルとの対応関係を示す情報を記憶装置に記憶するステップ
を更に含む
動作合成方法。
【請求項１２】
請求項１１に記載の動作合成方法であって、
前記対応関係を示す情報及び前記シミュレーションプロファイルを読み込み、前記シミュレーションプロファイルに前記動作記述の分岐条件に関する統計情報が含まれている場合、前記統計情報に則った生起確率を持った乱数で、前記動作記述に対応するサイクルレベルモデルの分岐条件を置き換えて、前記サイクルレベルモデルの分岐条件の論理を簡単化するステップ
を更に含む
動作合成方法。
【請求項１３】
システムＬＳＩ（Ｓｙｓｔｅｍ  Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）の所定の処理に必要なサイクル数の情報を有したサイクルレベルモデルを解析し、実行サイクル数に影響を与えない論理の情報を不要論理情報として抽出するステップと、
前記不要論理情報を基に前記サイクルレベルモデルから実行サイクル数に影響を与えない論理を取り除き、性能評価モデルを生成するステップと
をコンピュータに実行させるための
動作合成用プログラム。
【請求項１４】
請求項１３に記載の動作合成用プログラムであって、
前記システムＬＳＩのシステム仕様の作成工程で作成された動作記述を読み込み、最適化処理、スケジューリング処理、バインディング処理を行い、前記動作記述を前記サイクルレベルモデルに変換するステップ
を更にコンピュータに実行させるための
動作合成用プログラム。
【請求項１５】
請求項１４に記載の動作合成用プログラムであって、
シミュレーション時に採取されたシミュレーションプロファイルを読み込み、前記サイクルレベルモデルを解析し、前記シミュレーションプロファイルに、前記サイクルレベルモデルの分岐条件に関する統計情報が含まれている場合、前記統計情報に則った生起確率を持った乱数で、前記分岐条件を置き換えて、前記サイクルレベルモデルの分岐条件の論理を簡単化するステップ
を更にコンピュータに実行させるための
動作合成用プログラム。
【請求項１６】
請求項１５に記載の動作合成用プログラムであって、
前記シミュレーションプロファイルは、
前記動作記述、前記サイクルレベルモデル、及びＲＴＬ（Ｒｅｇｉｓｔｅｒ  Ｔｒａｎｓｆｅｒ  Ｌｅｖｅｌ）モデルのいずれかの分岐においてどの条件が成り立ったかの統計情報と、
前記動作記述、前記サイクルレベルモデル、及び前記ＲＴＬモデルのいずれかの分岐の回数と分岐の結果の相関の情報を持った統計情報と、
前記動作記述、前記サイクルレベルモデル、及び前記ＲＴＬモデルのいずれかの分岐間における分岐の結果の相関の情報を持った統計情報と、
前記動作記述、前記サイクルレベルモデル、及び前記ＲＴＬモデルのいずれかの変数が取り得る値の情報を持った統計情報と
のうち少なくとも１つの統計情報を含む
動作合成用プログラム。
【請求項１７】
請求項１６に記載の動作合成用プログラムであって、
前記動作記述を前記サイクルレベルモデルに変換した際に、前記動作記述と前記サイクルレベルモデルとの対応関係を示す情報を記憶装置に記憶するステップ
を更にコンピュータに実行させるための
動作合成用プログラム。
【請求項１８】
請求項１７に記載の動作合成用プログラムであって、
前記対応関係を示す情報及び前記シミュレーションプロファイルを読み込み、前記シミュレーションプロファイルに前記動作記述の分岐条件に関する統計情報が含まれている場合、前記統計情報に則った生起確率を持った乱数で、前記動作記述に対応するサイクルレベルモデルの分岐条件を置き換えて、前記サイクルレベルモデルの分岐条件の論理を簡単化するステップ
を更にコンピュータに実行させるための
動作合成用プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動作合成システム、動作合成方法、及び動作合成用プログラムに関し、特に、性能評価用のサイクル精度シミュレーションモデルを生成する動作合成システム、動作合成方法、及び動作合成用プログラムに関する。
【背景技術】
【０００２】
現在、所望のシステムの回路機能の全てを１つのチップで実現するＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）が知られている。このようなＬＳＩは、ＳＯＣ（Ｓｙｓｔｅｍ  Ｏｎ  Ｃｈｉｐ）、又はシステムＬＳＩ（Ｓｙｓｔｅｍ  Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）と呼ばれる。
【０００３】
近年、半導体製造プロセスの微細化に伴い、システムＬＳＩに集積できるゲート数は飛躍的に増加し、それに伴いシステムＬＳＩの処理能力も向上している。このため、システムＬＳＩは、画像処理や暗号化処理、フィルタ処理、復号処理等の多彩な処理に用いられている。
【０００４】
一般に、システムＬＳＩの設計にあたっては、設計を自動的に行うか、もしくは設計を支援するＬＳＩ設計自動化・支援技術が採用されている。このＬＳＩ設計自動化・支援技術を採用した設計のうち、代表的なものとしては、各種ＥＤＡ（Ｅｌｅｃｔｒｏｎｉｃ  Ｄｅｓｉｇｎ  Ａｕｔｏｍａｔｉｏｎ）ツールを利用したトップダウン設計が挙げられる。その上流工程から、システム設計、機能設計、論理設計、レイアウト設計と大別することができる。
【０００５】
図１は、トップダウン設計方法の概略工程を示すフローチャートである。
【０００６】
図１に示すように、トップダウン設計方法においては、まずシステム仕様の作成工程として、その動作を記述することから始まる。この工程を動作レベル設計フェーズと呼ぶ。動作レベル設計フェーズで作成された回路記述は、動作レベル回路記述、もしくは動作記述と呼ばれる。ここでは、この回路記述を動作記述と呼ぶ。動作記述の作成には、例えば、「Ｃ言語」、「Ｃ＋＋言語」、或いは「ＪＡＶＡ言語（登録商標）」等が用いられる。また、「ＳｙｓｔｅｍＣ」や「ＳｐｅｃＣ」等のように、「Ｃ言語」や「Ｃ＋＋言語」に「回路表現に便利な特徴」を付加した言語が用いられることもある。
【０００７】
次に、動作合成フェーズにおいて、作成された動作記述１がＲＴレベル（Ｒｅｇｉｓｔｅｒ  Ｔｒａｎｓｆｅｒ  Ｌｅｖｅｌ：ＲＴＬ）記述２に変換される。通常、ＲＴレベル記述２は、ハードウェア記述言語（Ｈａｒｄｗａｒｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ：ＨＤＬ）、もしくはプログラム言語を用いて記述される。なお、従来、このフェーズに関しては、人手により置き換えられ、ＨＤＬを用いて、直接、ＲＴレベル記述２を作成する場合が多かった。
【０００８】
次に、論理合成フェーズにおいて、ＲＴレベル記述２が、ゲートレベル記述（ゲートレベル論理回路：ネットリスト）３に自動変換される。このようにして生成されたネットリストを基にレイアウト設計が行われ、次いで、チップ設計が行われる。
【０００９】
システムＬＳＩ設計では、システムが所望の性能を達成できるかを調べる性能評価が重要である。
【００１０】
近年では、システムＬＳＩの規模や複雑さの増大により、システム設計フェーズにおいて、動作記述を用いた性能検証が実施されるようになっている。
【００１１】
図２を参照すると、動作記述を用いたシステム設計フェーズでの性能評価の概略工程を示す構成図が例示されている。
【００１２】
図２のシステム設計フェーズでの性能評価では、動作記述、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）モデル、バスモデルをシミュレータに入力し、システムＬＳＩが所望の性能を有しているかの性能評価を行う。
【００１３】
しかしながら、動作記述を用いたシステム設計フェーズでの性能評価では、正確な評価を行うことができないという問題がある。動作記述には、所望の機能を達成するための処理に必要なサイクル数に関する情報が含まれていないためである。
【００１４】
そこで、所望の機能を達成するための処理に必要なサイクル数の情報を有した「サイクルレベルモデル」を用いて、サイクルレベルシミュレーションによる性能評価が実施される。処理に必要なサイクル数の情報を有したサイクルレベルモデルは、動作合成フェーズにおいて生成される。また、別途設計者によって用意されることもある。
【００１５】
図３を参照すると、サイクルレベルモデルを用いたサイクルレベルシミュレーションによる性能評価の工程を示す構成図が例示されている。
【００１６】
図３のサイクルレベルシミュレーションによる性能評価では、サイクルレベルモデル、ＣＰＵモデル、バスモデルをシミュレータに入力し、システムＬＳＩが所望の性能を有しているかの性能評価を行う。
【００１７】
特許文献１（特許第００３７７９６５１号公報）を参照すると、サイクルレベルシミュレーション装置の一例が開示されている。
【００１８】
サイクルレベルシミュレーションには、動作記述を用いたシミュレーションと比較して、シミュレーションに時間がかかるという問題がある。サイクルレベルモデルは、動作記述に比べて抽象度が低いためである。
【００１９】
特許文献２（特開２００１−２２８０８号公報）を参照すると、サイクルレベルシミュレーションの高速化の手法が開示されている。これらの技術では、検証項目に関係しない不要な論理をモデルから削除し、高速化を図っている。
【００２０】
しかしながら、既存の高速化の技術を用いても、十分な高速化を達成できていない。これは、不要な論理を十分に削除していないためである。
【００２１】
サイクルレベルシミュレーションによる性能評価では、システムが所望の性能を有しているか、すなわち、システムが所望のサイクル数で処理を完了できるかを調べることができれば十分であるにもかかわらず、システムが所望のサイクル数で処理を完了できるかどうかに注目した不要論理の削除を行うことができないためである。
【００２２】
また、動作記述を用いたシミュレーションを別途実施した場合に、その動作に関する統計情報を採取できるが、当該統計情報を使用した不要論理の削除の技術も開示されていない。
【００２３】
すなわち、サイクルレベルシミュレーションにおける既存の高速化の技術には、以下のような問題点がある。
【００２４】
第１の問題点は、サイクルレベルシミュレーションの高速化のために十分な不要論理の削除が行われていないということである。その理由は、システムＬＳＩが所望のサイクル数で処理を完了できるかに注目した不要論理の削除が行われていないためである。
【００２５】
第２の問題点は、動作記述を用いたシミュレーションの結果をサイクルレベルシミュレーションの高速化のために使用できないということである。その理由は、動作記述を用いたシミュレーションの際に採取した統計情報を、サイクルレベルシミュレーションの際に利用できないためである。
【００２６】
【特許文献１】特許第００３７７９６５１号公報
【特許文献２】特開２００１−２２８０８号公報
【非特許文献１】Ｊｏｈｎ  Ｐ．  Ｅｌｌｉｏｔｔ，  「Ｕｎｄｅｒｓｔａｎｄｉｎｇ  Ｂｅｈａｖｉｏｒａｌ  Ｓｙｎｔｈｅｓｉｓ」，  Ｋｌｕｗｅｒ  Ａｃａｄｅｍｉｃ  Ｐｕｂｌｉｓｈｅｒｓ，  ｐｐ．  ２５−４０．
【非特許文献２】Ｍａｒｋ  Ｗｅｉｓｅｒ，  “Ｐｒｏｇｒａｍ  Ｓｌｉｃｉｎｇ”，  Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  ５ｔｈ  ｉｎｔｅｒｎａｔｉｏｎａｌ  ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｓｏｆｔｗａｒｅ  ｅｎｇｉｎｅｅｒｉｎｇ，  ｐｐ  ４３９−４４９，  １９８１．
【発明の開示】
【発明が解決しようとする課題】
【００２７】
本発明の目的は、サイクルレベルモデルの高速化のために、システムＬＳＩが所望のサイクル数で処理を完了できるかに注目した不要論理の削除を行うことのできる動作合成システムを提供することである。
【課題を解決するための手段】
【００２８】
本発明の動作合成システムは、システムＬＳＩ（Ｓｙｓｔｅｍ  Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）の所定の処理に必要なサイクル数の情報を有したサイクルレベルモデルを解析し、実行サイクル数に影響を与えない論理の情報を不要論理情報として抽出する不要論理解析手段と、不要論理情報を基にサイクルレベルモデルから実行サイクル数に影響を与えない論理を取り除き、性能評価モデルを生成する性能評価モデル出力手段とを具備する。
【００２９】
本発明の動作合成方法は、システムＬＳＩ（Ｓｙｓｔｅｍ  Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）の所定の処理に必要なサイクル数の情報を有したサイクルレベルモデルを解析し、実行サイクル数に影響を与えない論理の情報を不要論理情報として抽出するステップと、不要論理情報を基にサイクルレベルモデルから実行サイクル数に影響を与えない論理を取り除き、性能評価モデルを生成するステップとを含む。
【００３０】
本発明の動作合成用プログラムは、システムＬＳＩ（Ｓｙｓｔｅｍ  Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）の所定の処理に必要なサイクル数の情報を有したサイクルレベルモデルを解析し、実行サイクル数に影響を与えない論理の情報を不要論理情報として抽出するステップと、不要論理情報を基にサイクルレベルモデルから実行サイクル数に影響を与えない論理を取り除き、性能評価モデルを生成するステップとをコンピュータに実行させるためのプログラムである。
【発明の効果】
【００３１】
サイクルレベルシミュレーションによるシステムＬＳＩの性能評価を高速化できる。その理由は、サイクルレベルモデルの不要な論理を削除するためである。
【発明を実施するための最良の形態】
【００３２】
＜本発明の第１実施形態＞
以下に、本発明の第１実施形態について添付図面を参照して説明する。
【００３３】
＜基本構成＞
図４を参照すると、本発明の動作合成システムは、記憶装置１０と、処理装置２０を含む。
【００３４】
記憶装置１０は、データやプログラムを格納する。ここでは、記憶装置１０の例として、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）やＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、或いはフラッシュメモリ等の半導体記憶装置を想定している。なお、記憶装置１０は、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）やＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の外部記憶装置（ストレージ）でも良い。或いは、記憶装置１０は、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）やメモリカード等の記憶媒体（メディア）でも良い。また、記憶装置１０は、コンピュータ本体に内蔵された記憶装置に限らず、周辺機器（外付けＨＤＤ等）や外部のサーバ（ストレージサーバ等）に設置された記憶装置、或いは、ＮＡＳ（Ｎｅｔｗｏｒｋ  Ａｔｔａｃｈｅｄ  Ｓｔｏｒａｇｅ）でも良い。但し、実際には、これらの例に限定されない。
【００３５】
記憶装置１０は、動作記述記憶部１１と、性能評価モデル記憶部１２とを含む。
【００３６】
動作記述記憶部１１は、動作合成システムの入力となる動作記述を予め（事前に）記憶している。なお、動作合成システムは、動作合成装置でも良い。
【００３７】
性能評価モデル記憶部１２は、動作合成システムの出力である性能評価モデルを記憶する。
【００３８】
処理装置２０は、プログラム制御により動作する。ここでは、処理装置２０の例として、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）やマイクロプロセッサ（ｍｉｃｒｏｐｒｏｃｅｓｓｏｒ）等の処理装置、又は同様の機能を有する半導体集積回路（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ：ＩＣ）等を想定している。なお、処理装置２０は、ＰＣ（パソコン）、シンクライアント端末／サーバ、ワークステーション、メインフレーム、スーパーコンピュータ等のコンピュータでも良い。但し、実際には、これらの例に限定されない。
【００３９】
処理装置２０は、最適化・スケジューリング・バインディング処理部２１と、不要論理解析処理部２２と、性能評価モデル出力部２３とを含む。
【００４０】
最適化・スケジューリング・バインディング処理部２１は、動作記述記憶部１１から動作記述を読み込み、最適化処理、スケジューリング処理、バインディング処理を行い、動作記述をサイクルレベルモデルに変換する。
【００４１】
不要論理解析処理部２２は、最適化・スケジューリング・バインディング処理部２１が変換したサイクルレベルモデルを解析し、実行サイクル数に影響を与えない論理の情報（不要論理情報）を抽出する。
【００４２】
性能評価モデル出力部２３は、不要論理解析処理部２２が抽出した不要論理情報を基にサイクルレベルモデルから実行サイクル数に影響を与えない論理を取り除き、性能評価モデルを生成し、生成された性能評価モデルを性能評価モデル記憶部１２に記憶する。
【００４３】
すなわち、サイクルレベルモデルから実行サイクル数に影響を与えない論理を取り除いたものが、性能評価モデルとなる。
【００４４】
＜第１実施形態の動作の説明＞
次に、図５のフローチャートを参照して、本実施形態の全体の動作について詳細に説明する。
【００４５】
（１）ステップＡ１１
まず、最適化・スケジューリング・バインディング処理部２１は、記憶装置１０の動作記述記憶部１１より動作記述を読み出す。
【００４６】
（２）ステップＡ１２
次に、最適化・スケジューリング・バインディング処理部２１は、最適化処理、スケジューリング処理、バインディング処理を行い、サイクルレベルモデルに変換する。このとき、最適化・スケジューリング・バインディング処理部２１は、最適化処理、スケジューリング処理、バインディング処理に、例えば、非特許文献１に記載の既存の技術を使用しても良い。
【００４７】
なお、非特許文献１は、＜Ｊｏｈｎ  Ｐ．  Ｅｌｌｉｏｔｔ，  「Ｕｎｄｅｒｓｔａｎｄｉｎｇ  Ｂｅｈａｖｉｏｒａｌ  Ｓｙｎｔｈｅｓｉｓ」，  Ｋｌｕｗｅｒ  Ａｃａｄｅｍｉｃ  Ｐｕｂｌｉｓｈｅｒｓ，  ｐｐ．  ２５−４０．＞である。
【００４８】
（３）ステップＡ１３
次に、不要論理解析処理部２２は、サイクルレベルモデルを解析し、実行サイクル数に影響を与えない論理の情報（不要論理情報）を抽出する。このとき、不要論理解析処理部２２は、実行サイクル数に影響を与えない論理の情報の抽出に、例えば、非特許文献２に記載の既存の技術を使用しても良い。
【００４９】
なお、非特許文献２は、＜Ｍａｒｋ  Ｗｅｉｓｅｒ，  “Ｐｒｏｇｒａｍ  Ｓｌｉｃｉｎｇ”，  Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  ５ｔｈ  ｉｎｔｅｒｎａｔｉｏｎａｌ  ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｓｏｆｔｗａｒｅ  ｅｎｇｉｎｅｅｒｉｎｇ，  ｐｐ  ４３９−４４９，  １９８１．＞である。
【００５０】
（４）ステップＡ１４
次に、性能評価モデル出力部２３は、不要論理情報を基に、実行サイクル数に影響を与えない論理をサイクルレベルモデルから取り除き、性能評価モデルを生成する。
【００５１】
（５）ステップＡ１５
最後に、性能評価モデル出力部２３は、生成された性能評価モデルを記憶装置１０の性能評価モデル記憶部１２に記憶する。
【００５２】
本実施形態では、不要論理解析処理部２２がサイクルレベルモデルのうち実行サイクル数に影響を与えない論理の情報を抽出し、性能評価モデル出力部が実行サイクル数に影響を与えない論理をサイクルレベルモデルから取り除いて性能評価モデルとして出力するというように構成されているため、高速な性能評価モデルを生成できる。
【００５３】
＜本発明の第２実施形態＞
以下に、本発明の第２実施形態について詳細に説明する。
【００５４】
＜基本構成＞
図６を参照すると、本発明の動作合成システムは、記憶装置１０と、処理装置２０を含む。
【００５５】
本実施形態では、記憶装置１０が、図４に示された第１実施形態における記憶装置１０の構成に加え、シミュレーションプロファイル記憶部１３を有する点で異なる。
【００５６】
また、本実施形態では、データ処理装置２０が、図４に示された第１実施形態におけるデータ処理装置２０の構成に加え、分岐条件論理簡単化部２４を有する点で異なる。
【００５７】
記憶装置１０は、動作記述記憶部１１と、性能評価モデル記憶部１２と、シミュレーションプロファイル記憶部１３とを含む。
【００５８】
動作記述記憶部１１、及び性能評価モデル記憶部１２については、第１実施形態と同様である。
【００５９】
シミュレーションプロファイル記憶部１３は、シミュレーション時に採取されたプロファイル（シミュレーションプロファイル）を予め記憶しておく。
【００６０】
該シミュレーションは、例えば、動作合成システムの入力である動作記述を用いた動作シミュレーションにて実施されたものである。
【００６１】
また、該シミュレーションは、サイクルレベルモデルを用いたサイクルレベルシミュレーションにて実施されたものであっても良い。
【００６２】
また、該シミュレーションは、動作合成システムの別の出力であるＲＴＬ（Ｒｅｇｉｓｔｅｒ  Ｔｒａｎｓｆｅｒ  Ｌｅｖｅｌ）モデルを用いたＲＴＬシミュレーションにて実施されたものであっても良い。
【００６３】
該シミュレーションプロファイルは、例えば、動作記述、サイクルレベルモデル、又はＲＴＬモデルの各分岐においてどの条件が成り立ったかの統計情報である。すなわち、該シミュレーションプロファイルは、条件成立状況に関する統計情報であっても良い。
【００６４】
また、該シミュレーションプロファイルは、動作記述、サイクルレベルモデル、又はＲＴＬモデルの各分岐において、分岐の訪問回数と、分岐の結果の相関の情報を持った統計情報であっても良い。
【００６５】
また、該シミュレーションプロファイルには、動作記述、サイクルレベルモデル、又はＲＴＬモデルの２つ以上（複数）の分岐において、分岐の結果の相関の情報を持った統計情報であっても良い。
【００６６】
また、該シミュレーションプロファイルには、動作記述、サイクルレベルモデル、又はＲＴＬモデルの各変数が取り得る値の情報を持った統計情報であっても良い。
【００６７】
処理装置２０は、最適化・スケジューリング・バインディング処理部２１と、不要論理解析処理部２２と、性能評価モデル出力部２３と、分岐条件論理簡単化部２４とを含む。
【００６８】
最適化・スケジューリング・バインディング処理部２１、不要論理解析処理部２２、及び性能評価モデル出力部２３については、第１実施形態と同様である。
【００６９】
分岐条件論理簡単化部２４は、記憶装置１０の動作シミュレーションプロファイル記憶部１３から、シミュレーションプロファイルを読み出し、該シミュレーションプロファイルを基にサイクルレベルモデルの分岐条件の論理を簡単化する。
【００７０】
分岐条件論理簡単化部２４は、例えば、どの条件が成り立ったかの統計情報に則った生起確率を持った乱数で、１つ又は複数（少なくとも１つ）の分岐の条件を置き換えることによって、該論理を簡単化する。
【００７１】
また、分岐条件論理簡単化部２４は、例えば、分岐の訪問回数とどの分岐が成り立ったかの相関の情報を持った統計情報に則った生起確率を持った乱数で、１つ又は複数（少なくとも１つ）の分岐の条件を置き換えることによって、該論理を簡単化する。
【００７２】
また、分岐条件論理簡単化部２４は、例えば、２つ以上（複数）の分岐間の、分岐の結果の相関の統計情報に則った生起確率を持った乱数で、１つ又は複数（少なくとも１つ）の分岐の条件を置き換えることによって、該論理を簡単化する。
【００７３】
また、分岐条件論理簡単化部２４は、例えば、各変数が取り得る値の統計情報に則った生起確率を持った乱数で、１つ又は複数（少なくとも１つ）の変数を置き換えることによって、該論理を簡単化する。
【００７４】
＜第２実施形態の動作の説明＞
図７のフローチャートを参照して、本実施形態の動作について詳細に説明する。なお、図７のフローチャートは、図５のフローチャートの途中に、ステップＡ２３、及びステップＡ２４が追加されたものである。
【００７５】
（１）ステップＡ２１
最適化・スケジューリング・バインディング処理部２１は、記憶装置１０の動作記述記憶部１１より動作記述を読み出す。
【００７６】
（２）ステップＡ２２
次に、最適化・スケジューリング・バインディング処理部２１は、最適化処理、スケジューリング処理、バインディング処理を行い、サイクルレベルモデルに変換する。ここまでの動作は、第１実施形態のステップＡ１１〜ステップＡ１２と同様である。
【００７７】
（３）ステップＡ２３
次に、分岐条件論理簡単化部２４は、記憶装置１０のシミュレーションプロファイル記憶部１３よりシミュレーションプロファイルを読み出す。
【００７８】
（４）ステップＡ２４
次に、分岐条件論理簡単化部２４は、サイクルレベルモデルを解析し、シミュレーションプロファイルを基に、サイクルレベルモデルの分岐条件の論理を簡単化する。これ以降の動作は、第１実施形態のステップＡ１３〜ステップＡ１５と同様である。
【００７９】
（５）ステップＡ２５
次に、不要論理解析処理部２２は、サイクルレベルモデルを解析し、実行サイクル数に影響を与えない論理の情報（不要論理情報）を抽出する。
【００８０】
（６）ステップＡ２６
次に、性能評価モデル出力部２３は、不要論理情報を基に実行サイクル数に影響を与えない論理をサイクルレベルモデルから取り除く。
【００８１】
（７）ステップＡ２７
最後に、性能評価モデル出力部２３は、生成された性能評価モデルを記憶装置１０の性能評価モデル記憶部１２に記憶する。
【００８２】
次に、本実施形態の効果について説明する。
本実施形態では、分岐条件論理簡単化部２４が、サイクルレベルモデル中の分岐条件の論理を簡単化するため、サイクルレベルモデルのうち実行サイクル数に影響を与える論理を削減するような構成となっている。そのため、不要論理解析処理部２２、及び性能評価モデル出力部２３は、より多くの論理をサイクルレベルモデルから取り除いて性能評価モデルとして出力し、高速な性能評価モデルを生成できる。
【００８３】
＜本発明の第３実施形態＞
次に、本発明の第３実施形態について図面を参照して詳細に説明する。
【００８４】
＜基本構成＞
図８を参照すると、本発明の動作合成システムは、記憶装置１０と、処理装置２０を含む。
【００８５】
本実施形態では、記憶装置１０が、図６に示された第２実施形態における記憶装置１０の構成に加え、対応関係記憶部１４を有する点で異なる。
【００８６】
また、本実施形態では、処理装置２０が、最適化・スケジューリング・バインディング処理部２１の代わりに、第２の最適化・スケジューリング・バインディング処理部２５を備える点で異なる。
【００８７】
更に、処理装置２０が、分岐条件論理簡単化部２４の代わりに、第２の分岐条件論理簡単化部２６を備える点で異なる。
【００８８】
記憶装置１０は、動作記述記憶部１１と、性能評価モデル記憶部１２と、シミュレーションプロファイル記憶部１３と、対応関係記憶部１４とを含む。
【００８９】
動作記述記憶部１１、性能評価モデル記憶部１２、及びシミュレーションプロファイル記憶部１３については、第２実施形態と同様である。すなわち、動作記述記憶部１１、性能評価モデル記憶部１２については、第１実施形態と同様である。
【００９０】
対応関係記憶部１４は、動作記述とサイクルレベルモデルとの対応関係を記憶する。
【００９１】
処理装置２０は、不要論理解析処理部２２と、性能評価モデル出力部２３と、第２の最適化・スケジューリング・バインディング処理部２５と、第２の分岐条件論理簡単化部２６とを含む。
【００９２】
不要論理解析処理部２２、及び性能評価モデル出力部２３については、第１実施形態及び第２実施形態と同様である。
【００９３】
第２の最適化・スケジューリング・バインディング処理部２５は、動作記述記憶部１１から動作記述を読み込み、最適化処理、スケジューリング処理、バインディング処理を行い、動作記述をサイクルレベルモデルに変換すると同時に、動作記述とサイクルレベルモデルとの対応関係を示す情報を生成し、対応関係を示す情報を記憶装置１０の対応関係記憶部１４に記憶する。
【００９４】
該対応関係は、動作記述の変数とサイクルレベルモデルのレジスタやワイヤ等の信号の対応関係を有していても良い。
【００９５】
また、該対応関係には、動作記述の文と、サイクルレベルモデルの文の対応関係を有していても良い。特に、動作記述の分岐文と、サイクルレベルモデルの分岐文の対応関係を有していても良い。
【００９６】
第２の分岐条件論理簡単化部２６は、記憶装置１０の動作シミュレーションプロファイル記憶部１３からシミュレーションプロファイルを読み出し、記憶装置１０の対応関係記憶部１４から対応関係を読み出し、該シミュレーションプロファイルと該対応関係を基にサイクルレベルモデルの分岐条件の論理を簡単化する。
【００９７】
すなわち、第２の分岐条件論理簡単化部２６は、シミュレーションプロファイルに、例えば、動作記述の各分岐において、どの条件が成り立ったかの統計情報が含まれる場合、対応関係を基に、動作記述の各分岐に対応するサイクルレベルモデルの分岐を探し、対応するサイクルレベルモデルの分岐条件の論理を簡単化する。ここでは、第２の分岐条件論理簡単化部２６は、動作記述の分岐の訪問回数とどの分岐が成り立ったかの相関の情報を持った統計情報に則った生起確率を持った乱数で、対応するサイクルレベルモデルの１つ又は複数（少なくとも１つ）の分岐の条件を置き換えることによって、対応するサイクルレベルモデルの分岐条件の論理を簡単化する。
【００９８】
また、第２の分岐条件論理簡単化部２６は、シミュレーションプロファイルに、動作記述の各分岐において、分岐の訪問回数と、分岐の結果の相関の情報を持った統計情報が含まれる場合、対応関係を基に、動作記述の各分岐に対応するサイクルレベルモデルの分岐を探索し、対応するサイクルレベルモデルの分岐条件の論理を簡単化する。ここでは、第２の分岐条件論理簡単化部２６は、動作記述の分岐の訪問回数と、分岐の結果の相関の情報を持った統計情報に則った生起確率を持った乱数で、対応するサイクルレベルモデルの１つ又は複数（少なくとも１つ）の分岐の条件を置き換えることによって、対応するサイクルレベルモデルの分岐条件の論理を簡単化する。
【００９９】
また、第２の分岐条件論理簡単化部２６は、シミュレーションプロファイルに、例えば、動作記述の２つ以上（複数）の分岐において、分岐の結果の相関の情報を持った統計情報が含まれる場合、対応関係を基に、動作記述の各分岐に対応するサイクルレベルモデルの分岐を探索し、対応するサイクルレベルモデルの分岐条件の論理を簡単化する。ここでは、第２の分岐条件論理簡単化部２６は、動作記述の２つ以上（複数）の分岐において、分岐の結果の相関の情報を持った統計情報に則った生起確率を持った乱数で、対応するサイクルレベルモデルの１つ又は複数（少なくとも１つ）の分岐の条件を置き換えることによって、対応するサイクルレベルモデルの分岐条件の論理を簡単化する。
【０１００】
また、第２の分岐条件論理簡単化部２６は、シミュレーションプロファイルに、動作記述の各変数が取り得る値の情報を持った統計情報が含まれる場合、対応関係を基に、動作記述の各変数に対応するサイクルレベルモデルの信号を探し、当該信号の論理を簡単化する。ここでは、第２の分岐条件論理簡単化部２６は、動作記述の各変数が取り得る値の情報を持った統計情報に則った生起確率を持った乱数で、対応するサイクルレベルモデルの１つ又は複数（少なくとも１つ）の信号を置き換えることによって、対応するサイクルレベルモデルの信号の論理を簡単化する。
【０１０１】
本実施形態では、第２の最適化・スケジューリング・バインディング処理部が、動作記述とサイクルレベルモデルの対応関係を出力し、第２の分岐条件論理簡単化部２６が、該対応関係を読み出して、その上で、サイクルレベルモデル中の分岐条件の論理を簡単化するため、動作記述とサイクルレベルモデルの対応関係を認識して、サイクルレベルモデルのうち実行サイクル数に影響を与える論理を削減するように構成されている。そのため、不要論理解析処理部２２、及び性能評価モデル出力部２３が、より多くの論理をサイクルレベルモデルから取り除いて性能評価モデルとして出力し、高速な性能評価モデルを生成できる。
【０１０２】
＜実施例＞
＜第１実施形態に対応する実施例＞
次に、具体的な実施例を用いて本発明を実施するための最良の形態の動作を説明する。
【０１０３】
図９を参照すると、動作記述が例示されている。当該動作記述は、「ＳｙｓｔｅｍＣ言語」を用いて例示されているが、本発明の説明に関連ない部分は、一部省略されている。
【０１０４】
当該動作記述の１行目から６行目までに端子の情報が例示されている。当該動作記述には、ｂｏｏｌ型の入力端子「ｅｎ」、ｉｎｔ型の入力端子「ｉｎ０」、「ｉｎ１」、「ｉｎ２」、及び「ｉｎ３」がそれぞれ備えられている。また、ｉｎｔ型の出力端子「ｏｕｔ０」、ｂｏｏｌ型の出力端子「ｖａｌｉｄ」が備えられている。
【０１０５】
なお、ｂｏｏｌ型とは、「ｔｒｕｅ（真）」か「ｆａｌｓｅ（偽）」を表す型である。また、ｉｎｔ型とは、整数型である。
【０１０６】
また、当該動作記述の８行目から２３行目までに、動作の情報が例示されている。
【０１０７】
まず、ｉｎｔ型の変数「ｖ」を値「０」で初期化している。更に、出力信号「ｖａｌｉｄ」に値「ｆａｌｓｅ（偽）」を出力している。
【０１０８】
次に、入力端子「ｅｎ」から値を読み込み、その値が「ｔｒｕｅ（真）」である間、１３行目から１６行目を繰り返す。１４行目では、入力「ｉｎ０」、「ｉｎ１」、「ｉｎ２」、「ｉｎ３」から値を読み込み、その値の総和を変数「ｖ」に足し込んでいる。
【０１０９】
入力端子「ｅｎ」から読み込んだ値が「ｆａｌｓｅ（偽）」である場合、出力端子「ｏｕｔ０」に変数「ｖ」の値を出力するとともに、出力端子「ｖａｌｉｄ」に値「ｔｒｕｅ（真）」を出力する。そして、最後に、出力端子「ｖａｌｉｄ」に値「ｆａｌｓｅ（偽）」を出力する。
【０１１０】
最適化・スケジューリング・バインディング処理部２１は、動作記述記憶部１１から、動作記述を読み出す（図５のステップＡ１１）。
【０１１１】
次に、最適化・スケジューリング・バインディング処理部２１は、最適化処理、スケジューリング処理、バインディング処理を行うことにより、動作記述記憶部１１から読み出された動作記述をサイクルレベルモデルに変換する（図５のステップＡ１２）。
【０１１２】
図１０を参照すると、サイクルレベルモデルが例示されている。当該サイクルレベルモデルの１行目から６行目までに端子の情報が例示されている。当該サイクルレベルモデルは、図９の動作記述と同じ端子を持つ。
【０１１３】
バインディング処理によって、動作記述の変数「ｖ」が、サイクルレベルモデルではレジスタ「ＲＧ＿ｖ」に割り当てられている。
【０１１４】
スケジューリング処理によって、動作記述の１４行目の処理が、サイクルレベルモデルでは、１４行目から２１行目までで実現されるように変換されている。すなわち、入力端子「ｉｎ０」、「ｉｎ１」、「ｉｎ２」、「ｉｎ３」の値を、１クロック毎に順に読み出し、レジスタ「ＲＧ＿ｖ」に足し込んでいる。
【０１１５】
次に、解析処理部２３は、サイクルレベルモデルを解析し、実行サイクル数に影響を与えない論理の情報（不要論理情報）を抽出する（図５のステップＡ１３）。
【０１１６】
図１１を参照すると、図１０のサイクルレベルモデル中の不要論理情報が、下線付きの太字にて例示されている。
【０１１７】
すなわち、サイクルレベルモデルにおいて、１１行目、１４行目、１６行目、１８行目、２０行目、２４行目の処理は、サイクルレベルモデルの実行サイクル数に影響を与えない。そこで、解析処理部２３は、これらの論理の情報を不要倫理情報として抽出する。
【０１１８】
次に、性能評価モデル出力部２３は、不要論理情報を基に実行サイクル数に影響を与えない論理をサイクルレベルモデルから取り除く（図５のステップＡ１４）。
【０１１９】
そして、最後に、性能評価モデル出力部２３は、性能評価モデルを出力し、記憶装置１０の性能評価モデル記憶部１２に格納する（図５のステップＡ１５）。
【０１２０】
図１２を参照すると、性能評価モデルが例示されている。
【０１２１】
図１２の性能評価モデルは、図１０のサイクルレベルモデルに比べて、１１行目、１４行目、１６行目、１８行目、２０行目、２４行目の処理が削除されている。
【０１２２】
図１２の性能評価モデルは、実行サイクル数に影響を与えない論理が削除されているため、サイクルレベルモデルに比べて高速にシミュレーションを実行可能である。そのため、性能評価モデルを使用することで、より高速に性能評価を行うことができる。
【０１２３】
＜第２実施形態に対応する実施例（１）＞
次に、具体的な実施例を用いて本発明の第２実施形態を実施するための最良の形態の動作を説明する。
【０１２４】
図１３を参照すると、動作記述が例示されている。当該動作記述は、「ＳｙｓｔｅｍＣ言語」を用いて例示されているが、本発明の説明に関連ない部分は、一部省略されている。
【０１２５】
当該動作記述の１行目から５行目までに端子の情報が例示されている。当該動作記述には、ｉｎｔ型の入力端子「ｉｎ０」、「ｉｎ１」、「ｉｎ２」、「ｉｎ３」がそれぞれ備えられている。また、ｉｎｔ型の出力端子「ｏｕｔ０」、ｂｏｏｌ型の出力端子「ｖａｌｉｄ」が備えられている。
【０１２６】
また、７行目から２２行目までに、動作の情報が例示されている。
【０１２７】
まず、ｉｎｔ型の変数「ｖ」を値「０」で初期化している。更に、出力信号「ｖａｌｉｄ」に値「ｆａｌｓｅ（偽）」を出力している。
【０１２８】
次に、変数「ｖ」の値を検査し、その値が「１６」よりも小さい間、１２行目から１５行目を繰り返す。
【０１２９】
１４行目では、入力「ｉｎ０」、「ｉｎ１」、「ｉｎ２」、「ｉｎ３」から値を読み込み、その値の総和を変数「ｖ」に足し込んでいる。
【０１３０】
変数「ｖ」の値が「１６」よりも小さい場合、出力端子「ｏｕｔ０」に変数「ｖ」の値を出力するとともに、出力端子「ｖａｌｉｄ」に値「ｔｒｕｅ（真）」を出力する。そして、最後に、出力端子「ｖａｌｉｄ」に値「ｆａｌｓｅ（偽）」を出力する。
【０１３１】
最適化・スケジューリング・バインディング処理部２１は、動作記述記憶部１１から、図１３の動作記述を読み出す（図５のステップＡ１１）。
【０１３２】
次に、最適化・スケジューリング・バインディング処理部２１は、最適化処理、スケジューリング処理、バインディング処理を行うことにより、動作記述をサイクルレベルモデルに変換する（図５のステップＡ１２）。
【０１３３】
図１４を参照すると、サイクルレベルモデルが例示されている。当該サイクルレベルモデルの１行目から５行目までに端子の情報が例示されている。当該サイクルレベルモデルは、図１３の動作記述と同じ端子を持つ。
【０１３４】
バインディング処理によって、動作記述の変数「ｖ」が、サイクルレベルモデルではレジスタ「ＲＧ＿ｖ」に割り当てられている。
【０１３５】
スケジューリング処理によって、動作記述の１３行目の処理が、サイクルレベルモデルでは、１３行目から２０行目までで実現されるように変換されている。すなわち、入力端子「ｉｎ０」、「ｉｎ１」、「ｉｎ２」、「ｉｎ３」の値を、１クロック毎に順に読み出し、レジスタ「ＲＧ＿ｖ」に足し込んでいる。
【０１３６】
図１４のサイクルレベルモデルは、図１０のサイクルレベルモデルと異なり、そのままでは解析処理部２３によって実行サイクル数に影響を与えない不要論理の情報を得ることができない。
【０１３７】
すなわち、図１４のサイクルレベルモデルは、図１０のサイクルレベルモデルと異なり、１２行目の分岐の条件にレジスタ「ＲＧ＿ｖ」が使用されている。１２行目の分岐が実行されるかどうかは実行サイクル数に影響を与える。そのため、１０行目、１３行目、１５行目、１９行目の処理は、実行サイクル数に影響を与えない不要論理として抽出されない。
【０１３８】
図１５を参照すると、シミュレーションプロファイルが例示されている。シミュレーションプロファイルは、予め記憶装置１０のシミュレーションプロファイル記憶部１３に記憶されている。
【０１３９】
当該シミュレーションプロファイルには、サイクルレベルモデルの１２行目の条件分岐において、条件が成り立った回数が１００回、条件が成り立たなかった回数が同じく１００回であったことが記載されている。
【０１４０】
分岐条件論理簡単化部２４は、記憶装置１０のシミュレーションプロファイル記憶部１３からシミュレーションプロファイルを読み出す。
【０１４１】
次に、分岐条件論理簡単化部２４は、シミュレーションプロファイルを基にサイクルレベルモデルの分岐条件の論理を簡単化する。
【０１４２】
図１６を参照すると、サイクルレベルモデル中の１２行目の条件分岐の論理が簡単化されている。
【０１４３】
シミュレーションプロファイルを参照すると、１２行目の条件分岐が成り立つ確率は２分の１であることがわかる。そこで、分岐条件論理簡単化部２４は、１２行目の条件分岐を、「ｔｒｕｅ（真）」を返す確率が２分の１である乱数関数にて置き換える。関数「ｒａｎｄ＿ｂｏｏｌ（０．５）」は、「ｔｒｕｅ（真）」を返す確率が２分の１である乱数関数を表す。
【０１４４】
次に、解析処理部２３は、サイクルレベルモデルを解析し、実行サイクル数に影響を与えない論理の情報（不要論理情報）を抽出する（図５のステップＡ１３）。
【０１４５】
図１７を参照すると、図１６のサイクルレベルモデル中の不要論理情報が、下線付きの太字にて例示されている。
【０１４６】
図１６のサイクルレベルモデルでは、１２行目におけるレジスタ「ＲＧ＿ｖ」の参照が、乱数関数に置き換えられたことにより、レジスタ「ＲＧ＿ｖ」の値はサイクルレベルモデルの実行サイクル数に影響を与えない。そのため、１０行目、１３行目、１５行目、１９行目、２３行目の処理は、実行サイクル数に影響を与えない。そこで、解析処理部２３は、これらの論理の情報を不要倫理情報として抽出する。
【０１４７】
次に、性能評価モデル出力部２３は、不要論理情報を基に実行サイクル数に影響を与えない論理をサイクルレベルモデルから取り除く（図５のステップＡ１４）。
【０１４８】
そして、最後に、性能評価モデル出力部２３は、性能評価モデルを出力し、記憶装置１０の性能評価モデル記憶部１２に格納する（図５のステップＡ１５）。
【０１４９】
図１８を参照すると、性能評価モデルが例示されている。
【０１５０】
当該性能評価モデルは、図１４のサイクルレベルモデルに比べて、１０行目、１３行目、１５行目、１９行目、２３行目の処理が削除されている。
【０１５１】
性能評価モデルは、実行される処理が削減されていることで、サイクルレベルモデルに比べて高速にシミュレーションを実行可能である。そのため、性能評価モデルを使用することで、評価の正確性は多少犠牲にはなるが、高速に性能評価を行うことができる。
【０１５２】
＜第２実施形態に対応する実施例（２）＞
図１９を参照すると、別のシミュレーションプロファイルが例示されている。シミュレーションプロファイルは、予め記憶装置１０のシミュレーションプロファイル記憶部１３に記憶されている。
【０１５３】
図１９のシミュレーションプロファイルには、図１４の１２行目の条件分岐において、条件分岐の訪問回数毎に、条件が成り立った回数、条件が成り立たなかった回数が、それぞれ記載されている。例えば、最初の訪問のときは、条件が成り立った回数が１００回、条件が成り立たなかった回数が同じく１００回であったことが記載されている。また、２回目の訪問のときは、条件が成り立った回数が５０回、条件が成り立たなかった回数が同じく１５０回であったことが記載されている。
【０１５４】
分岐条件論理簡単化部２４は、シミュレーションプロファイルを基にサイクルレベルモデルの分岐条件の論理を簡単化する。
【０１５５】
図２０を参照すると、図１９のサイクルレベルモデル中の１２行目の条件分岐の論理が簡単化されている。
【０１５６】
シミュレーションプロファイルを参照すると、１２行目の条件分岐が成り立つ確率は２分の１であり、更に、訪問回数が１増える毎に成り立つ確率が２分の１ずつ減っていくことがわかる。
【０１５７】
そこで、分岐条件論理簡単化部２４は、１２行目の条件分岐を、「ｔｒｕｅ（真）」を返す確率が２分の１ずつ減っていく乱数関数にて置き換える。図２０において、関数「ｒａｎｄ＿ｖｉｓｉｔ＿ｂｏｏｌ（）」は、「ｔｒｕｅ（真）」を返す確率が２分の１ずつ減っていく乱数関数を表す。
【０１５８】
＜第２実施形態に対応する実施例（３）＞
図２１を参照すると、別のシミュレーションプロファイルが例示されている。シミュレーションプロファイルは、予め記憶装置１０のシミュレーションプロファイル記憶部１３に記憶されている。
【０１５９】
図２１のシミュレーションプロファイルには、図１４の１２行目の条件分岐において、変数「ｖ」の値が「１５」以下の場合が１００回、１６以上の場合が１００回であったことが記載されている。
【０１６０】
分岐条件論理簡単化部２４は、シミュレーションプロファイルを基にサイクルレベルモデルの分岐条件の論理を簡単化する。
【０１６１】
図２２を参照すると、図２１のサイクルレベルモデル中の１２行目の条件分岐の論理が簡単化されている。
【０１６２】
シミュレーションプロファイルを参照すると、１２行目の条件分岐の条件と、変数「ｖ」の値の取り得る確率を勘案すると、１２行目の条件分岐が成り立つ確率は２分の１であることがわかる。
【０１６３】
そこで、分岐条件論理簡単化部２４は、１２行目の条件分岐を、「ｔｒｕｅ（真）」を返す確率が２分の１である乱数関数にて置き換える。図２２において、関数「ｒａｎｄ＿ｂｏｏｌ（０．５）」は、「ｔｒｕｅ（真）」を返す確率が２分の１である乱数関数を表す。
【０１６４】
＜第２実施形態に対応する実施例（４）＞
図２３を参照すると、別のサイクルレベルモデルが例示されている。
【０１６５】
図２３のサイクルレベルモデルでは、１５行目から１８行目までにおいて、レジスタ「ＲＧ＿ｖ」の値が「８」より小さいときに、入力端子「ｉｎ０」の値を読み出し、レジスタ「ＲＧ＿ｖ」に足し込み、クロック境界を待つ。レジスタ「ＲＧ＿ｖ」の値が「８」以上のときはクロック境界を待たずに次の処理を行う。
【０１６６】
更に、１９行目から２２行目までにおいて、レジスタ「ＲＧ＿ｖ」の値が「４」より小さいときに、入力端子「ｉｎ１」の値を読み出し、レジスタ「ＲＧ＿ｖ」に足し込み、クロック境界を待つ。レジスタ「ＲＧ＿ｖ」の値が「４」以上のときはクロック境界を待たずに次の処理を行う。
【０１６７】
図２４を参照すると、シミュレーションプロファイルが例示されている。シミュレーションプロファイルは、予め記憶装置１０のシミュレーションプロファイル記憶部１３に記憶されている。
【０１６８】
図２４のシミュレーションプロファイルには、１２行目の条件分岐において、条件が成り立った回数が１００回、条件が成り立たなかった回数が同じく１００回であったことが記載されている。
【０１６９】
更に、図２４のシミュレーションプロファイルには、１５行目の条件分岐と１９行目の条件分岐の相関関係に関する統計情報が記載されている。すなわち、１５行目の条件分岐が成り立つとき、１９行目の条件が成り立つ場合、成り立たない場合はそれぞれ５０回ずつであったことが記載され、１５行目の条件分岐が成り立たないときは、１９行目の条件は常に成り立たないことが記載されている。
【０１７０】
分岐条件論理簡単化部２４は、シミュレーションプロファイルを基にサイクルレベルモデルの分岐条件の論理を簡単化する。
【０１７１】
図２５を参照すると、図２４のサイクルレベルモデル中の１２行目に加え、１５行目、１９行目の条件分岐の論理が簡単化されている。
【０１７２】
シミュレーションプロファイルを参照すると１５行目の条件分岐が成り立つ確率は２分の１であることがわかる。そこで、分岐条件論理簡単化部２４は、１５行目の条件分岐を、「ｔｒｕｅ（真）」を返す確率が２分の１である乱数関数にて置き換える。図２５において、関数「ｒａｎｄ＿ｂｏｏｌ（０．５）」は、「ｔｒｕｅ（真）」を返す確率が２分の１である乱数関数を表す。
【０１７３】
更に、シミュレーションプロファイルを参照すると、１９行目の条件分岐は、１５行目の条件が成り立つときに２分の１の確率で成り立つこと、１５行目の条件が成り立たないときには、まったく成り立たないことがわかる。
【０１７４】
そこで、分岐条件論理簡単化部２４は、１９行目の条件分岐を、１５行目の条件が成り立つときには、「ｔｒｕｅ（真）」を返す確率が２分の１である乱数関数の値を利用し、１５行目の条件が成り立たないときには、常に「ｆａｌｓｅ（偽）」を利用するように簡単化する。ここで、変数「ｆｌａｇ」は、１５行目の条件が成り立つかどうかを保持するために利用されている。
【０１７５】
次に、解析処理部２３は、サイクルレベルモデルを解析し、実行サイクル数に影響を与えない論理の情報（不要論理情報）を抽出する。更に、性能評価モデル出力部２３は、不要論理情報を基に実行サイクル数に影響を与えない論理をサイクルレベルモデルから取り除く。そして、最後に、性能評価モデル出力部２３は、性能評価モデルを出力し、記憶装置１０の性能評価モデル記憶部１２に格納する。
【０１７６】
図２６を参照すると、性能評価モデルが例示されている。
【０１７７】
図２６の性能評価モデルは、図２４のサイクルレベルモデルに比べて、１０行目、１３行目、２０行目、２３行目、２７行目の処理が削除されている。
【０１７８】
＜第３実施形態に対応する実施例＞
次に、具体的な実施例を用いて本発明の第３実施形態を実施するための最良の形態の動作を説明する。
【０１７９】
図２７を参照すると、図１３の動作記述と、図１４のサイクルレベルモデルの間の対応関係が例示されている。
【０１８０】
図２７の対応関係は、図１３の動作記述を、第２の最適化・スケジューリング・バインディング処理部２５が読み出し、サイクルレベルモデルとともに出力し、対応関係記憶部１４に書き出したものである。
【０１８１】
図２７の対応関係を参照すると、図１３の動作記述の１２行目の分岐文と、図１４のサイクルレベルモデルの１２行目の分岐文が対応していることが示されている。
【０１８２】
また、図２７の対応関係を参照すると、図１３の動作記述の変数「ｖ」と、図１４のサイクルレベルモデルのレジスタ「ＲＧ＿ｖ」が対応していることが例示されている。
【０１８３】
第２の分岐条件論理簡単化部２６は、対応関係記憶部１４から対応関係を読み出し、シミュレーションプロファイル記憶部１３からシミュレーションプロファイルを読み出し、サイクルレベルモデルの分岐条件の論理を簡単化する。
【０１８４】
図１６を参照すると、図１４のサイクルレベルモデル中の１２行目の条件分岐の論理が簡単化されている。
【０１８５】
シミュレーションプロファイルを参照すると、動作記述の１２行目の条件分岐が成り立つ確率は２分の１であることがわかる。
【０１８６】
対応関係によると、動作記述の１２行目の条件分岐が、サイクルレベルモデルの１２行目の条件分岐に対応していることがわかる。
【０１８７】
そこで、第２の分岐条件論理簡単化部２６は、サイクルレベルモデルの１２行目の条件分岐を、「ｔｒｕｅ（真）」を返す確率が２分の１である乱数関数にて置き換える。
【０１８８】
なお、図１６において、関数「ｒａｎｄ＿ｂｏｏｌ（０．５）」は、「ｔｒｕｅ（真）」を返す確率が２分の１である乱数関数を表す。
【０１８９】
＜本発明の特徴＞
最後に、本発明の特徴について以下に説明する。
【０１９０】
本発明の動作合成システムは、不要論理解析手段と、性能評価モデル出力手段とを備えたことを特徴とする。
【０１９１】
また、本発明の動作合成システムは、最適化・スケジューリング・バインディング手段と、不要論理解析手段と、性能評価モデル出力手段とを備えたことを特徴とする。
【０１９２】
また、本発明の動作合成システムは、分岐条件論理簡単化手段と、不要論理解析手段と、性能評価モデル出力手段とを備えたことを特徴とする。
【０１９３】
また、本発明の動作合成システムは、最適化・スケジューリング・バインディング手段と、分岐条件論理簡単化手段と、不要論理解析手段と、性能評価モデル出力手段とを備えたことを特徴とする。
【０１９４】
また、本発明の動作合成システムは、対応関係記憶手段と、分岐岐条件論理簡単化手段と、不要論理解析手段と、性能評価モデル出力手段とを備えたことを特徴とする。
【０１９５】
また、本発明の動作合成システムは、最適化・スケジューリング・バインディング手段と、対応関係記憶手段と、分岐条件論理簡単化手段と、不要論理解析手段と、性能評価モデル出力手段とを備えたことを特徴とする。
【０１９６】
分岐条件簡単化手段は、サイクルレベルモデル中の実行サイクル数に影響を与えない論理を削除する手段を含むことを特徴とする。
【０１９７】
分岐条件簡単化手段は、シミュレーションプロファイルを基にサイクルレベルモデルの分岐条件の論理を簡単化する手段を含むことを特徴とする。
【０１９８】
シミュレーションプロファイルは、分岐においてどの条件が成り立ったかの統計情報を含むことを特徴とする。
【０１９９】
シミュレーションプロファイルは、分岐の回数と、分岐の結果の相関の情報を持った統計情報を含むことを特徴とする。
【０２００】
シミュレーションプロファイルは、分岐間における分岐の結果の相関の情報を持った統計情報を含むことを特徴とする。
【０２０１】
シミュレーションプロファイルは、変数が取り得る値の情報を持った統計情報を含むことを特徴とする。
【０２０２】
本発明の動作合成方法は、サイクルレベルモデル中の実行サイクル数に影響を与えない論理を削除し、性能評価モデルとして出力することを特徴とする。
【０２０３】
また、本発明の動作合成方法は、動作記述を読み出し、最適化・スケジューリング・バインディングを行いサイクルレベルモデルに変換し、サイクルレベルモデル中の実行サイクル数に影響を与えない論理を削除し、性能評価モデルとして出力するすることを特徴とする。
【０２０４】
また、本発明の動作合成方法は、シミュレーションプロファイルを基にサイクルレベルモデルの分岐条件の論理を簡単化し、サイクルレベルモデル中の実行サイクル数に影響を与えない論理を削除し、性能評価モデルとして出力することを特徴とする。
【０２０５】
また、本発明の動作合成方法は、動作記述を読み出し、最適化・スケジューリング・バインディングを行いサイクルレベルモデルに変換し、シミュレーションプロファイルを基にサイクルレベルモデルの分岐条件の論理を簡単化し、サイクルレベルモデル中の実行サイクル数に影響を与えない論理を削除し、性能評価モデルとして出力することを特徴とする。
【０２０６】
また、本発明の動作合成方法は、動作記述を読み出し、最適化・スケジューリング・バインディングを行いサイクルレベルモデルに変換するとともに対応関係を出力し、対応関係及びシミュレーションプロファイルを基にサイクルレベルモデルの分岐条件の論理を簡単化し、サイクルレベルモデル中の実行サイクル数に影響を与えない論理を削除し、性能評価モデルとして出力することを特徴とする。
【０２０７】
本発明の動作合成用プログラムは、サイクルレベルモデル中の実行サイクル数に影響を与えない論理を削除する不要論理解析処理と、性能評価モデルを出力する性能評価モデル出力処理とをコンピュータに実行させるためのプログラムである。
【０２０８】
また、本発明の動作合成用プログラムは、動作記述を読み出し最適化・スケジューリング・バインディングを行いサイクルレベルモデルに変換する最適化・スケジューリング・バインディング処理と、サイクルレベルモデル中の実行サイクル数に影響を与えない論理を削除する不要論理解析処理と、性能評価モデルを出力する性能評価モデル出力処理とをコンピュータに実行させるためのプログラムである。
【０２０９】
また、本発明の動作合成用プログラムは、シミュレーションプロファイルを基にサイクルレベルモデルの分岐条件の論理を簡単化する分岐条件簡単化処理と、サイクルレベルモデル中の実行サイクル数に影響を与えない論理を削除する不要論理解析処理と、性能評価モデルを出力する性能評価モデル出力処理とをコンピュータに実行させるためのプログラムである。
【０２１０】
また、本発明の動作合成用プログラムは、動作記述を読み出し最適化・スケジューリング・バインディングを行いサイクルレベルモデルに変換する最適化・スケジューリング・バインディング処理と、シミュレーションプロファイルを基にサイクルレベルモデルの分岐条件の論理を簡単化する分岐条件簡単化処理と、サイクルレベルモデル中の実行サイクル数に影響を与えない論理を削除する不要論理解析処理と、性能評価モデルを出力する性能評価モデル出力処理とをコンピュータに実行させるためのプログラムである。
【０２１１】
また、本発明の動作合成用プログラムは、動作記述を読み出し最適化・スケジューリング・バインディングを行いサイクルレベルモデルに変換し、対応関係を出力する最適化・スケジューリング・バインディング処理と、対応関係とシミュレーションプロファイルを基にサイクルレベルモデルの分岐条件の論理を簡単化する分岐条件簡単化処理と、サイクルレベルモデル中の実行サイクル数に影響を与えない論理を削除する不要論理解析処理と、性能評価モデルを出力する性能評価モデル出力処理とをコンピュータに実行させるためのプログラムである。
【０２１２】
シミュレーションプロファイルは、分岐においてどの条件が成り立ったかの統計情報を含むことを特徴とする。
【０２１３】
シミュレーションプロファイルは、分岐の回数と、分岐の結果の相関の情報を持った統計情報を含むことを特徴とする。
【０２１４】
シミュレーションプロファイルは、分岐間における分岐の結果の相関の情報を持った統計情報を含むことを特徴とする。
【０２１５】
シミュレーションプロファイルは、変数が取り得る値の情報を持った統計情報を含むことを特徴とする。
【０２１６】
なお、本発明の目的は、サイクルレベルモデルの高速化のために、システムＬＳＩが所望のサイクル数で処理を完了できるかに注目した不要論理の削除を行うことのできる動作合成システムを提供することにある。
【０２１７】
また、本発明の他の目的は、サイクルレベルモデルの高速化のために、動作記述を用いたシミュレーションの際に採取した統計情報を、サイクルレベルモデルの生成に利用できる動作合成システムを提供することにある。
【０２１８】
本発明の動作合成システムは、不要論理解析手段と、性能評価モデル出力手段とを備え、サイクルレベルモデル中の実行サイクル数に影響を与えない論理を削除するよう動作する。このような構成を採用し、サイクルレベルモデルの不要論理を削除することにより、本発明の目的を達成することができる。
【０２１９】
また、本発明の動作合成システムは、シミュレーションプロファイル記憶手段と、分岐条件簡単化手段を備え、シミュレーションプロファイルを基に、サイクルレベルモデルの分岐条件の論理を簡単化するように動作する。このような構成を採用し、サイクルレベルモデルの不要論理を削除することにより、本発明の目的を達成することができる。
【０２２０】
＜産業上の利用可能性＞
本発明によれば、システムＬＳＩ設計において、設計したシステムが所望の性能を達成することを確認するといった用途に適用できる。
【０２２１】
以上、本発明の実施形態を詳述してきたが、実際には、上記の実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の変更があっても本発明に含まれる。
【図面の簡単な説明】
【０２２２】
【図１】トップダウン設計方法の概略工程を示すフローチャートである。
【図２】動作記述を用いたシステム設計フェーズでの設計検証・性能評価の概略工程を示す構成図である。
【図３】サイクルレベルモデルを用いたサイクルレベルシミュレーションによる性能評価の工程を示す構成図である。
【図４】本発明の第１実施形態の構成を示すブロック図である。
【図５】第１実施形態の動作を示す流れ図である。
【図６】本発明の第２実施形態の構成を示すブロック図である。
【図７】第２実施形態の動作を示す流れ図である。
【図８】本発明の第３実施形態の構成を示すブロック図である。
【図９】第１実施形態の動作の具体例の動作記述を示す図である。
【図１０】第１実施形態の動作の具体例のサイクルレベルモデルを示す図である。
【図１１】第１実施形態の動作の具体例のサイクルレベルモデルを示す図である。
【図１２】第１実施形態の動作の具体例の性能評価モデルを示す図である。
【図１３】第２実施形態の動作の具体例の動作記述を示す図である。
【図１４】第２実施形態の動作の具体例のサイクルレベルモデルを示す図である。
【図１５】第２実施形態の動作の具体例のシミュレーションプロファイルを示す図である。
【図１６】第２実施形態の動作の具体例のサイクルレベルモデルを示す図である。
【図１７】第２実施形態の動作の具体例のサイクルレベルモデルを示す図である。
【図１８】第２実施形態の動作の具体例の性能評価モデルを示す図である。
【図１９】第２実施形態の動作の具体例のシミュレーションプロファイルを示す図である。
【図２０】第２実施形態の動作の具体例のサイクルレベルモデルを示す図である。
【図２１】第２実施形態の動作の具体例のシミュレーションプロファイルを示す図である。
【図２２】第２実施形態の動作の具体例のサイクルレベルモデルを示す図である。
【図２３】第２実施形態の動作の具体例のサイクルレベルモデルを示す図である。
【図２４】第２実施形態の動作の具体例のシミュレーションプロファイルを示す図である。
【図２５】第２実施形態の動作の具体例のサイクルレベルモデルを示す図である。
【図２６】第２実施形態の動作の具体例の性能評価モデルを示す図である。
【図２７】第３実施形態の動作の具体例の対応関係を示す図である。
【符号の説明】
【０２２３】
１０…  記憶装置
１１…  動作記述記憶部
１２…  性能評価モデル記憶部
１３…  シミュレーションプロファイル記憶部
１４…  対応関係記憶部
２０…  処理装置
２１…  最適化・スケジューリング・バインディング処理部
２２…  不要論理解析処理部
２３…  性能評価モデル出力部
２４…  分岐条件論理簡単化部
２５…  第２の最適化・スケジューリング・バインディング処理部
２６…  第２の分岐条件論理簡単化部
【図１】
2010146359.tif 000003
【図２】
2010146359.tif 000004
【図３】
2010146359.tif 000005
【図４】
2010146359.tif 000006
【図５】
2010146359.tif 000007
【図６】
2010146359.tif 000008
【図７】
2010146359.tif 000009
【図８】
2010146359.tif 000010
【図９】
2010146359.tif 000011
【図１０】
2010146359.tif 000012
【図１１】
2010146359.tif 000013
【図１２】
2010146359.tif 000014
【図１３】
2010146359.tif 000015
【図１４】
2010146359.tif 000016
【図１５】
2010146359.tif 000017
【図１６】
2010146359.tif 000018
【図１７】
2010146359.tif 000019
【図１８】
2010146359.tif 000020
【図１９】
2010146359.tif 000021
【図２０】
2010146359.tif 000022
【図２１】
2010146359.tif 000023
【図２２】
2010146359.tif 000024
【図２３】
2010146359.tif 000025
【図２４】
2010146359.tif 000026
【図２５】
2010146359.tif 000027
【図２６】
2010146359.tif 000028
【図２７】
2010146359.tif 000029