(57)【要約】【課題】機能ブロックの実装方法を短時間かつ精度良く決定する回路設計方法を提供することを目的とする。【解決手段】動作記述モデルを入力する記述モデル入力ステップＳ１１と、動作記述モデルを複数の機能ブロックに分割する分割ステップＳ１２と、分割機能ブロックに対して直交した複数の実装方法を割り当てる割当てステップＳ１３と、割り当てられた機能ブロックの実装モデルを入力する実装モデル入力ステップＳ１４と、入力実装モデルを結合する結合ステップＳ１５と、結合した実装モデルについて性能評価を行う性能評価ステップＳ１６と、割当てステップから性能評価ステップまでを繰り返す繰返しステップＳ１７と、高性能の実装方法の組み合わせを予測する性能予測ステップＳ１８と、予測した高性能の実装方法の組み合わせを出力する出力ステップＳ１９とを有する。【選択図】  図３
2004240530.tif 000002
【特許請求の範囲】
【請求項１】
設計対象となる回路の動作を記述した動作記述モデルを入力する記述モデル入力ステップと、前記動作記述モデルを複数の機能ブロックに分割する分割ステップと、分割した前記複数の機能ブロックに対して直交した複数の実装方法を割り当てる割当てステップと、割り当てた前記直交した複数の実装方法で実装された前記複数の機能ブロックの実装モデルを入力する実装モデル入力ステップと、入力した前記複数の機能ブロックの実装モデルを結合する結合ステップと、結合した前記実装モデルについてシミュレーションまたはエミュレーションによる性能評価を行う性能評価ステップと、前記直交した複数の実装方法の組み合わせについて前記割当てステップから前記性能評価ステップまでを繰り返す繰返しステップと、前記直交した複数の実装方法の組み合わせから前記性能評価に基づいて高性能の実装方法の組み合わせを予測する性能予測ステップと、予測した前記高性能の実装方法の組み合わせを出力する出力ステップとを有することを特徴とする回路設計方法。
【請求項２】
前記性能評価ステップにおいて、少なくとも２つの条件でシミュレーションまたはエミュレーションを行い、前記出力ステップにおいて、性能のばらつきを考慮した結果を出力することを特徴とする請求項１に記載の回路設計方法。
【請求項３】
前記実装モデル入力ステップにおいて、ハードウェアによる実装が選択された機能ブロックに対しては、動作記述モデルを高位合成することにより得られた実装モデルを入力することを特徴とする請求項１または２に記載の回路設計方法。
【請求項４】
前記実装モデル入力ステップにおいて、実装方法をパラメータで変更可能な実装モデルを入力することを特徴とする請求項１乃至３のいずれか１に記載の回路設計方法。
【請求項５】
請求項１乃至４のいずれか１に記載の回路設計方法の各ステップを実行するためのプログラムを記録したことを特徴とする記録媒体。
【請求項６】
設計対象となる回路の動作を記述した動作記述モデルを入力する動作記述モデル入力部と、前記動作記述モデルを複数の機能ブロックに分割する機能ブロック分割部と、分割した前記複数の機能ブロックに対して直交した複数の実装方法を割り当てる実装方法割り当て部と、割り当てた前記直交した複数の実装方法で実装された複数の機能ブロックの実装モデルを入力する実装モデル入力部と、入力した前記複数の機能ブロックの実装モデルを結合する実装モデル結合部と、結合した前記実装モデルについてシミュレーションまたはエミュレーションによる性能評価を行う性能評価部と、前記直交した複数の実装方法の組み合わせから前記性能評価に基づいて高性能の実装方法の組み合わせを予測する性能予測部と、予測した前記高性能の実装方法の組み合わせを出力する実装方法出力部とを有することを特徴とする回路設計装置。
【請求項７】
前記性能評価部は、少なくとも２つの条件でシミュレーションまたはエミュレーションを行い、前記実装方法出力部は、性能のばらつきを考慮した結果を出力することを特徴とする請求項６に記載の回路設計装置。
【請求項８】
前記実装モデル入力部は、ハードウェアによる実装が選択された機能ブロックに対しては、動作記述モデルを高位合成することにより得られた実装モデルを入力することを特徴とする請求項６または７に記載の回路設計装置。
【請求項９】
前記実装モデル入力部は、実装方法をパラメータで変更可能な実装モデルを入力することを特徴とする請求項６乃至８のいずれか１に記載の回路設計装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、設計する回路内における複数の機能ブロックの実装方法を決定する回路設計方法、回路設計装置およびその回路設計方法を実行するためのプログラムを格納したコンピュータ読み取り可能な記録媒体に関するものである。
【０００２】
【従来の技術】
近年のシステムＬＳＩ等のデジタルシステムは大規模で複雑になっており、システムを構成する各機能ブロックは、システム全体の性能が高くなるように、それぞれ異なる実装方法で実現される。ここで、実装方法とは、その機能を専用回路によるハードウェア処理で実現する場合には、その専用回路のアーキテクチャなどを指し、プロセッサによるソフトウェア処理を行う場合には、プロセッサのアーキテクチャなどを指す。実装方法を決定する工程では、まずその機能ブロックをハードウェア処理するか、ソフトウェア処理するかを決定する。そして、ハードウェア処理する機能ブロックについては、ＩＰ（ＩｎｔｅｌｌｅｃｔｕａｌＰｒｏｐｅｒｔｙ）と呼ばれる設計資産の中から使用する回路を決定し、独自の回路を設計するための回路仕様を決定するなどしてハードウェアのアーキテクチャを決定する。また、ソフトウェア処理する機能ブロックについては、使用するプロセッサをＩＰから選択し、メモリ、バス構造などを決定する。
【０００３】
実装方法として独自の回路によるハードウェア処理が選択された機能ブロックから所望の回路を得る手法として、近年、高位合成が注目を集めている。高位合成とは、機能モデルから回路などのハードウェア実装モデルを自動生成する技術であり、特に機能モデルとしてプログラム言語であるＣ言語を入力とし、実装モデルとしてハードウェア記述言語（以下、「ＨＤＬ」と記載する）や回路素子の接続関係を記述したネットリストなどを生成する高位合成ソフトウェアが市販されるようになっている。また、ソフトウェア処理が選択された機能ブロックについては、機能モデルであるＣ言語から、実装対象のプロセッサの命令コードに自動合成（コンパイル）するソフトウェア開発環境を用いて設計を行う手法が一般化している。このように、実装方法の決定以降の工程が自動化されると、各機能ブロックの実装方法が最終的なシステム性能を大きく左右する要因となる。
【０００４】
従来の実装方法の決定工程では、設計者の勘や経験により各機能ブロックの実装方法を決定し、決定した方法で実装した実装モデルを作成し、実装モデルのシミュレーションなどで性能評価を行って、実装方法が妥当かどうかを決定していた。しかし、機能ブロックの規模や数、実装方法の候補の数が多くなると、一回で最適な実装方法を決定することが困難となり、シミュレーションで実装方法の不具合が発見され、実装のやり直しが発生するすることになる。このような問題に対して、特許文献１のように、あらかじめ各機能ブロックのアーキテクチャ候補に対する性能予測や性能を予測できる性能モデルを準備しておき、実装モデルのシミュレーションの替わりに各機能ブロックの性能予測の組み合わせや、性能予測モデルを用いた高速シミュレーションにより、全組み合わせでの性能評価を行い、最適な実装方法を決定するという回路設計方法が提案されている。しかし、このような性能予測や性能モデルを精度良く作成するには、実装モデルの作成と同程度の手間と時間を要する。
【０００５】
【特許文献１】
特開２００２−１０８９５８号公報
【０００６】
【発明が解決しようとする課題】
このように、従来の回路設計方法では、性能予測や性能モデルを精度良く作成するには、実装モデルの作成と同程度の手間と時間を要するという問題点を有しており、特に、回路の新規設計が必要な機能ブロックが含まれる場合、従来の回路設計方法は現実的な方法ではない。
【０００７】
この回路設計方法、回路設計装置および記録媒体では、機能ブロックの実装方法を短時間かつ精度良く決定することが要求されている。
【０００８】
本発明は、この要求を満たすため、機能ブロックの実装方法を短時間かつ精度良く決定する回路設計方法、および、その回路設計方法を実現するための記録媒体、ならびに、機能ブロックの実装方法を短時間かつ精度良く決定することができる回路設計装置を提供することを目的とする。
【０００９】
【課題を解決するための手段】
上記課題を解決するために本発明の回路設計方法は、設計対象となる回路の動作を記述した動作記述モデルを入力する記述モデル入力ステップと、動作記述モデルを複数の機能ブロックに分割する分割ステップと、分割した複数の機能ブロックに対して直交した複数の実装方法を割り当てる割当てステップと、割り当てた直交した複数の実装方法で実装された複数の機能ブロックの実装モデルを入力する実装モデル入力ステップと、入力した複数の機能ブロックの実装モデルを結合する結合ステップと、結合した実装モデルについてシミュレーションまたはエミュレーションによる性能評価を行う性能評価ステップと、直交した複数の実装方法の組み合わせについて割当てステップから性能評価ステップまでを繰り返す繰返しステップと、直交した複数の実装方法の組み合わせから性能評価に基づいて高性能の実装方法の組み合わせを予測する性能予測ステップと、予測した高性能の実装方法の組み合わせを出力する出力ステップとを有する構成を備えている。
【００１０】
これにより、機能ブロックの実装方法を短時間かつ精度良く決定する回路設計方法が得られる。
【００１１】
上記課題を解決するために本発明の記録媒体は、上記回路設計方法の各ステップを実行するためのプログラムを記録した構成を備えている。
【００１２】
これにより、上記回路設計方法を実現するための記録媒体が得られる。
【００１３】
上記課題を解決するために本発明の回路設計装置は、設計対象となる回路の動作を記述した動作記述モデルを入力する動作記述モデル入力部と、動作記述モデルを複数の機能ブロックに分割する機能ブロック分割部と、分割した複数の機能ブロックに対して直交した複数の実装方法を割り当てる実装方法割り当て部と、割り当てた直交した複数の実装方法で実装された複数の機能ブロックの実装モデルを入力する実装モデル入力部と、入力した複数の機能ブロックの実装モデルを結合する実装モデル結合部と、結合した実装モデルについてシミュレーションまたはエミュレーションによる性能評価を行う性能評価部と、直交した複数の実装方法の組み合わせから性能評価に基づいて高性能の実装方法の組み合わせを予測する性能予測部と、予測した高性能の実装方法の組み合わせを出力する実装方法出力部とを有する構成を備えている。
【００１４】
これにより、機能ブロックの実装方法を短時間かつ精度良く決定することができる回路設計装置が得られる。
【００１５】
【発明の実施の形態】
本発明の請求項１に記載の回路設計方法は、設計対象となる回路の動作を記述した動作記述モデルを入力する記述モデル入力ステップと、動作記述モデルを複数の機能ブロックに分割する分割ステップと、分割した複数の機能ブロックに対して直交した複数の実装方法を割り当てる割当てステップと、割り当てた直交した複数の実装方法で実装された複数の機能ブロックの実装モデルを入力する実装モデル入力ステップと、入力した複数の機能ブロックの実装モデルを結合する結合ステップと、結合した実装モデルについてシミュレーションまたはエミュレーションによる性能評価を行う性能評価ステップと、直交した複数の実装方法の組み合わせについて割当てステップから性能評価ステップまでを繰り返す繰返しステップと、直交した複数の実装方法の組み合わせから性能評価に基づいて高性能の実装方法の組み合わせを予測する性能予測ステップと、予測した高性能の実装方法の組み合わせを出力する出力ステップとを有することとしたものである。
【００１６】
この構成により、必要最低限のシミュレーションまたはエミュレーションにより結合した実装モデルについて性能評価を行うようにしたので、システムを構成する各機能ブロックの最適な実装方法を短時間かつ精度良く決定することができるという作用を有する。
【００１７】
請求項２に記載の回路設計方法は、請求項１に記載の回路設計方法において、性能評価ステップにおいて、少なくとも２つの条件でシミュレーションまたはエミュレーションを行い、出力ステップにおいて、性能のばらつきを考慮した結果を出力することとしたものである。
【００１８】
この構成により、動作環境の変化の下でも、安定して高い性能を発揮するシステムを実現する各機能ブロックの実装方法を決定することができるという作用を有する。
【００１９】
請求項３に記載の回路設計方法は、請求項１または２に記載の回路設計方法において、実装モデル入力ステップにおいて、ハードウェアによる実装が選択された機能ブロックに対しては、動作記述モデルを高位合成することにより得られた実装モデルを入力することとしたものである。
【００２０】
この構成により、動作記述モデルを入力するだけで、自動的に最適な実装方法および実装モデルを取得することができるという作用を有する。
【００２１】
請求項４に記載の回路設計方法は、請求項１乃至３のいずれか１に記載の回路設計方法において、実装モデル入力ステップにおいて、実装方法をパラメータで変更可能な実装モデルを入力することとしたものである。
【００２２】
この構成により、各機能ブロックの実装方法とシステム全体に関わる実装方法とを同時に決定することを可能にするという作用を有する。
【００２３】
請求項５に記載の記録媒体は、請求項１乃至４のいずれか１に記載の回路設計方法の各ステップを実行するためのプログラムを記録することとしたものである。
【００２４】
この構成により、コンピュータ上で記録媒体に記録されたプログラムを実行することで、請求項１乃至４のいずれか１に記載の回路設計方法を実現することができるという作用を有する。ここで記録媒体とは、例えば、半導体メモリ、磁気ディスク、光ディスク、光磁気ディスク、磁気テープなどのプログラムを記録することができるようなコンピュータ読み取り可能な記録媒体等が含まれる。
【００２５】
請求項６に記載の回路設計装置は、設計対象となる回路の動作を記述した動作記述モデルを入力する動作記述モデル入力部と、動作記述モデルを複数の機能ブロックに分割する機能ブロック分割部と、分割した複数の機能ブロックに対して直交した複数の実装方法を割り当てる実装方法割り当て部と、割り当てた直交した複数の実装方法で実装された複数の機能ブロックの実装モデルを入力する実装モデル入力部と、入力した複数の機能ブロックの実装モデルを結合する実装モデル結合部と、結合した実装モデルについてシミュレーションまたはエミュレーションによる性能評価を行う性能評価部と、直交した複数の実装方法の組み合わせから性能評価に基づいて高性能の実装方法の組み合わせを予測する性能予測部と、予測した高性能の実装方法の組み合わせを出力する実装方法出力部とを有することとしたものである。
【００２６】
この構成により、必要最低限のシミュレーションまたはエミュレーションにより結合した実装モデルについて性能評価を行うようにしたので、システムを構成する各機能ブロックの最適な実装方法を短時間かつ精度良く決定することができるという作用を有する。
【００２７】
請求項７に記載の回路設計装置は、請求項６に記載の回路設計装置において、性能評価部は、少なくとも２つの条件でシミュレーションまたはエミュレーションを行い、実装方法出力部は、性能のばらつきを考慮した結果を出力することとしたものである。
【００２８】
この構成により、動作環境の変化の下でも、安定して高い性能を発揮するシステムを実現する各機能ブロックの実装方法を決定することができるという作用を有する。
【００２９】
請求項８に記載の回路設計装置は、請求項６または７に記載の回路設計装置において、実装モデル入力部は、ハードウェアによる実装が選択された機能ブロックに対しては、動作記述モデルを高位合成することにより得られた実装モデルを入力することとしたものである。
【００３０】
この構成により、動作記述モデルを入力するだけで、自動的に最適な実装方法および実装モデルを取得することができるという作用を有する。
【００３１】
請求項９に記載の回路設計装置は、請求項６乃至８のいずれか１に記載の回路設計装置において、実装モデル入力部は、実装方法をパラメータで変更可能な実装モデルを入力することとしたものである。
【００３２】
この構成により、各機能ブロックの実装方法とシステム全体に関わる実装方法とを同時に決定することを可能にするという作用を有する。
【００３３】
以下、本発明の実施の形態について、図１〜図１３を用いて説明する。
【００３４】
（実施の形態１）
図１は本発明の実施の形態１による回路設計装置を示すブロック図である。
【００３５】
図１において、２０１は設計対象となる回路の動作を記述した動作記述モデル、２０２は動作記述モデル２０１から回路の実装方法を決定する実装方法決定部である。実装方法決定部２０２は、動作記述モデル２０１を入力する動作記述モデル入力部２０５と、動作記述モデル２０１を複数の機能ブロックに分割する機能ブロック分割部２０６と、分割した各機能ブロックに対して直交した複数の実装方法を割り当てる実装方法割り当て部２０７と、割り当てた実装方法で実装された各機能ブロックの実装モデルを入力する実装モデル入力部２０８と、入力した各機能ブロックの実装モデルを結合する実装モデル結合部２０９と、結合した実装モデルについてシミュレーションまたはエミュレーションによる性能評価を行う性能評価部２１０と、高性能の実装方法の組み合わせを予測する性能予測部２１１と、高性能の実装方法の組み合わせを出力する実装方法出力部２１２とから構成される。機能ブロック分割部２０６で分割され、実装方法割り当て部２０７で実装方法を割り当てられた機能ブロックは、実装モデル生成部２０３へ出力され、各機能ブロックに対して選択または生成された実装モデルが実装モデル入力部２０８に入力される。実装方法出力部２１２から出力された実装方法および実装モデル生成部２０３で選択または生成された実装モデルを用いて、回路製造部２０４で実際の回路が製造される。ここで、結合した実装モデルについてシミュレーションまたはエミュレーションによる性能評価は、性能評価部２１０で行っても、外部のシミュレータ・エミュレータ２１３で行ってもよい。また、実装モデル生成部２０３は、ＩＰライブラリ２１４と、高位合成ソフトウェア２１５と、ソフトウェアコンパイラ２１６とから成る。
【００３６】
以上のように構成された回路設計装置について、その動作を図２〜図１３を用いて説明する。図２は回路設計処理の全体を示すフローチャートであり、図３は図２の実装方法決定処理を示すフローチャート、図４は動作記述モデルの一例を示すモデル図、図５は機能ブロックへの分割の説明図、図６（ａ）、（ｂ）は直交表の例を示す直交表データ図、図７は動作記述モデルに対する実装方法割り当ての一例を示す割当て図、図８は結合された実装モデルの一例を示す結合図、図９はシミュレーション条件の一例を示すシミュレーションデータ図、図１０は各因子の各水準による性能と安定性への影響の算出例を示す算出データ図、図１１は各因子の各水準による性能と安定性への影響を示すグラフ、図１２（ａ）、（ｂ）は高性能な実装方法の組み合わせの予測結果の一例を示す結果データ図、図１３は実装方法候補を示す候補データ図である。
【００３７】
図２において、まず、実装方法を決定する処理を行い（Ｓ１）、次に、その処理結果に基づいて実際の回路の製造処理を行う（Ｓ２）。
【００３８】
次に、図３において、まず、動作記述モデル２０１が動作記述モデル入力部２０５へ入力される（Ｓ１１、記述モデル入力ステップ）。動作記述モデル２０１は、設計対象となる回路の動作を図、表または言語で記述したモデルで、例えば、状態遷移図、ＵＭＬ（Ｕｎｉｆｉｅｄ  Ｍｏｄｅｌｉｎｇ  Ｌａｎｇｕａｇｅ）、システム記述言語、プログラム言語、ハードウェア記述言語等で記述される。図４に、プログラム言語であるＣ言語で記述された動作記述モデルの例を示す。
【００３９】
次に、入力された動作記述モデルは、機能ブロック分割部２０６で機能毎にブロックに分割される（Ｓ１２、分割ステップ）。どのような粒度、単位で分割するかの指示は、自動または手動で行われる。自動分割としては、例えば動作記述モデルを構成するモジュール、クラス、関数、ファイル又はそれらの記述スタイル、名称等で分割を行う。手動分割としては、例えば動作記述モデル内で明示的に指示したり、ユーザインターフェイスや設定ファイル等によってあらかじめ指示する等の方法で分割を行う。図４の動作記述モデルを最上位階層の関数（ｐｒｏｃ  Ａ、ｐｒｏｃ  Ｂ、ｐｒｏｃ  Ｃ）毎に分割した例を図５に示す。この例では分割後の機能ブロックをそれぞれｂｌｏｃｋ１、ｂｌｏｃｋ２、ｂｌｏｃｋ３とする。分割された機能ブロックには実装方法割り当て部２０７により、それぞれ実装方法が割り当てられる（Ｓ１３、割当てステップ）。また、回路を構成する上で決定すべき設計パラメータ、例えばブロックを接続するバスの構造・幅、ソフトウェア処理のためのプロセッサの種類、メモリの種類・容量、外部インターフェイス方法、クロック周期等も割り当てることができる。割り当ては直交表に従って行われる。直交表とは、任意の２因子（各機能ブロックや設計パラメータ）について，その水準（実装方法やパラメータ値）のすべての組合せが同数回ずつ現れるという性質をもつ割り付け表で、直交表ＬＮ（Ｐ１Ｋ１×Ｐ２Ｋ２×・・・・ＰｎＫｎ）は、水準数Ｐｎを持つ因子がＫｎ個あり、組み合わせ総数（直交表の列数）がＮとなる直交表を表す。図６に直交表の例を示す。各因子の水準（各機能ブロックの実装方法候補や各設計パラメータのパラメータ値候補）は、自動又は手動で決められる。自動で水準を決める方法としては、例えば実装モデル生成部２０３から生成可能な実装方法の情報を入力する等があり、手動で決める方法としては、例えば動作記述モデル内で明示的に指示したり、ユーザインターフェイスや設定ファイル等によってあらかじめ指示する等がある。図５の各機能ブロックの実装方法およびプロセッサと周辺回路間のバス幅を因子とし、機能ブロックの実装方法候補は実装生成部２０３からの情報により、バス幅の候補はユーザからの指示により水準を決め、３水準４因子の直交表（図６の（ａ））に従って割り当てを行った結果を図７に示す。この例では、ｂｌｏｃｋ１、ｂｌｏｃｋ３に対しては、ＩＰライブラリによるハードウェア処理、高位合成で得られた独自回路によるハードウェア処理、プロセッサによるソフトウェア処理という３つの実装方法の候補があり、ｂｌｏｃｋ２に対しては、ＩＰライブラリ中の３種類のＩＰ（ＩＰ１、ＩＰ２、ＩＰ３）によるハードウェア処理という候補がある。また、バス幅としては８ビット、１６ビット、３２ビットの３種類のパラメータ候補がある。
【００４０】
次に、実装方法割り当ての結果は実装モデル生成部２０３に通知され、各機能ブロックを割り当てられた方法で実装したモデルが、実装モデル入力部２０８に入力される（Ｓ１４、実装モデル入力ステップ）。実装モデルには、例えばＩＰ、高位合成ソフトウェアにより生成された独自回路、ユーザがあらじめ作成しておいた独自回路、ソフトウェアコンパイラによって生成されたプロセッサの実行コード、ユーザがあらかじめ作成しておいたプロセッサの実行コード等がある。また、実装モデルは設計パラメータに応じて構造を変更できることが望ましい。実装モデル入力部２０８に入力された実装モデルは実装モデル結合部２０９で結合され、設計対象となる回路を形成する（Ｓ１５、結合ステップ）。図８は、図７の組み合わせ番号９に対する結合結果の例を示す。結合された実装モデルは、性能評価部２１０でシミュレーションまたはエミュレーションを行い、処理中の組み合わせに対する回路性能が数値化される（Ｓ１６、性能評価ステップ）。性能評価部２１０は、それ自身、もしくは外部のシミュレータまたはエミュレータ２１３を使用することでシミュレーションまたはエミュレーションを行う。性能としては、例えば処理速度、回路の動作率、出力信号の特性、消費電力、回路の規模またはそれらの組み合わせによる総合的な性能等を用いる。処理速度としては、例えばある処理対象当たりの処理時間、単位時間当たりの処理量等が利用でき、総合的な性能としては、例えば単位回路規模および単位時間当たりの処理量等が利用できる。また、シミュレーションまたはエミュレーションを複数の条件で行い、その際の性能ばらつきの小ささ（以下、「安定性」と呼ぶ）を性能指標とすることもできる。例えば、回路の実使用環境の変化（別の処理のために使用されるプロセッサの負荷、入力データの複雑度、出力データの通信速度）を想定したシミュレーションを図９に示す標準条件（Ｎ１）と最悪条件（Ｎ２）の２つの条件下で行い、シミュレーション結果から、（数１）に示した式で、性能Ｓｎと安定性ηｎをそれぞれ算出し、これらが共に良い組み合わせを求めるといったことが可能である。
【００４１】
【数１】
2004240530.tif 000003
【００４２】
直交表の全ての組み合わせについてステップＳ１３〜ステップＳ１６の処理を行った後（Ｓ１７、繰返しステップ）、性能予測部２１１で各因子の各水準が性能に与える影響を分析し、性能の高い組み合わせを予測する（Ｓ１８、性能予測ステップ）。ある因子αのある水準βが性能に与える影響は、例えば、因子αとして水準βを使用した組み合わせでの性能の平均によって予測できる。図１０は、図７の各組み合わせに対して図９の２条件でシミュレーションを行い、単位時間（入力クロック数）で処理された入力データ数を結果とし、その結果から（数１）の式で算出した性能Ｓｎと安定性ηｎを用いて、各因子の各水準が性能と安定性に与える影響を予測した場合の例である。図１１は、このような処理によって得られた各因子の各水準が性能と安定性に与える影響の一例をグラフ化したものである。以下では、このグラフを用いて、性能の高い組み合わせの予測方法の一例を説明する。まず、各因子の各水準を任意に組み合わせた場合の性能Ｓおよび安定性ηを（数２）の式で求めるものとする。
【００４３】
【数２】
2004240530.tif 000004
【００４４】
（数２）で“有意な要素（平均との差）”とは、性能または安定性が比較的高い水準（図１１のグラフにおいては△で囲まれたポイント）における平均との差である。図１１では、ある閾値（性能は平均値＋４ｄＢ、安定性は平均値＋３ｄＢ）以上のものを有意としている。そして、任意の組み合わせの中で予測性能、予測安定性が高いものを求める（図１２）。
【００４５】
最後に、実装方法出力部２１２から実装方法の組み合わせの候補が出力される（Ｓ１９、出力ステップ）。図１２の結果から性能優先、安定性優先、性能と安定性のバランス重視（この例では性能４５ｄＢ以上、安定性２０ｄＢ以上）の３つの視点で最適な組み合わせを選んだ場合、図１３のような実装方法候補が出力される。どのような視点、基準で最適な組み合わせを選び、いくつの結果を出力するかは、例えば一定の視点、基準、出力数を設けておき、回路に要求される性能・安定性から目標値を算出し、それを基準としたり、ユーザインターフェイスや設定ファイル等を用いて手動で基準を指示する等の方法が可能である。
【００４６】
その後、図２に示すように、決定した実装方法を用いて実際の回路製造処理（Ｓ２）が行われる。
【００４７】
なお、本実施の形態では、２条件によるシミュレーションを行い、性能と安定性を考慮した実装方法を決定する例を示したが、３条件以上でも同様に実装方法が決定可能である。また、１条件によるシミュレーションから一種類の特性値だけを考慮した実装方法決定も同様に可能である。なお、複数の性能（例えば処理速度と消費電力等）について同様に予測性能を求め、それらを総合的に判断して実装方法を決定することも可能である。また、上述した各手段の機能の全部または一部をコンピュータに実現させるためのプログラムを作成し、それを記録した記録媒体を作成して、コンピュータを用いて上記動作を実現してもよい。
【００４８】
以上のように本実施の形態によれば、設計対象となる回路の動作を記述した動作記述モデルを入力する記述モデル入力ステップＳ１１と、動作記述モデルを複数の機能ブロックに分割する分割ステップＳ１２と、分割した複数の機能ブロックに対して直交した複数の実装方法を割り当てる割当てステップＳ１３と、割り当てた直交した複数の実装方法で実装された複数の機能ブロックの実装モデルを入力する実装モデル入力ステップＳ１４と、入力した複数の機能ブロックの実装モデルを結合する結合ステップＳ１５と、結合した実装モデルについてシミュレーションまたはエミュレーションによる性能評価を行う性能評価ステップＳ１６と、直交した複数の実装方法の組み合わせについて割当てステップから性能評価ステップまでを繰り返す繰返しステップＳ１７と、直交した複数の実装方法の組み合わせから性能評価に基づいて高性能の実装方法の組み合わせを予測する性能予測ステップＳ１８と、予測した高性能の実装方法の組み合わせを出力する出力ステップＳ１９とを有することにより、必要最低限のシミュレーションまたはエミュレーションにより結合した実装モデルについて性能評価を行うようにしたので、システムを構成する各機能ブロックの最適な実装方法を短時間かつ精度良く決定することができる。
【００４９】
また、性能評価ステップＳ１６において、少なくとも２つの条件でシミュレーションまたはエミュレーションを行い、出力ステップにおいて、性能のばらつきを考慮した結果を出力することにより、動作環境の変化の下でも、安定して高い性能を発揮するシステムを実現する各機能ブロックの実装方法を決定することができる。
【００５０】
さらに、実装モデル入力ステップＳ１４において、ハードウェアによる実装が選択された機能ブロックに対しては、動作記述モデルを高位合成することにより得られた実装モデルを入力することにより、動作記述モデルを入力するだけで、自動的に最適な実装方法および実装モデルを取得することができる。
【００５１】
さらに、実装モデル入力ステップＳ１４において、実装方法をパラメータで変更可能な実装モデルを入力することにより、各機能ブロックの実装方法とシステム全体に関わる実装方法とを同時に決定することを可能にする。
【００５２】
さらに、上記回路設計方法の各ステップを実行するためのプログラムを記録することとすれば、コンピュータ上で記録媒体に記録されたプログラムを実行することで、上記回路設計方法を実現することができる。
【００５３】
さらに、設計対象となる回路の動作を記述した動作記述モデルを入力する動作記述モデル入力部２０５と、動作記述モデルを複数の機能ブロックに分割する機能ブロック分割部２０６と、分割した複数の機能ブロックに対して直交した複数の実装方法を割り当てる実装方法割り当て部２０７と、割り当てた直交した複数の実装方法で実装された複数の機能ブロックの実装モデルを入力する実装モデル入力部２０８と、入力した複数の機能ブロックの実装モデルを結合する実装モデル結合部２０９と、結合した実装モデルについてシミュレーションまたはエミュレーションによる性能評価を行う性能評価部２１０と、直交した複数の実装方法の組み合わせから性能評価に基づいて高性能の実装方法の組み合わせを予測する性能予測部２１１と、予測した高性能の実装方法の組み合わせを出力する実装方法出力部２１２とを有することにより、必要最低限のシミュレーションまたはエミュレーションにより結合した実装モデルについて性能評価を行うようにしたので、システムを構成する各機能ブロックの最適な実装方法を短時間かつ精度良く決定することができる。
【００５４】
さらに、性能評価部２１０は、少なくとも２つの条件でシミュレーションまたはエミュレーションを行い、実装方法出力部は、性能のばらつきを考慮した結果を出力することにより、動作環境の変化の下でも、安定して高い性能を発揮するシステムを実現する各機能ブロックの実装方法を決定することができる。
【００５５】
さらに、実装モデル入力部２０８は、ハードウェアによる実装が選択された機能ブロックに対しては、動作記述モデル２０１を高位合成することにより得られた実装モデルを入力することにより、動作記述モデル２０１を入力するだけで、自動的に最適な実装方法および実装モデルを取得することができる。
【００５６】
さらに、実装モデル入力部２０８は、実装方法をパラメータで変更可能な実装モデルを入力することにより、各機能ブロックの実装方法とシステム全体に関わる実装方法とを同時に決定することを可能にする。
【００５７】
【発明の効果】
以上説明したように本発明の請求項１に記載の回路設計方法によれば、設計対象となる回路の動作を記述した動作記述モデルを入力する記述モデル入力ステップと、動作記述モデルを複数の機能ブロックに分割する分割ステップと、分割した複数の機能ブロックに対して直交した複数の実装方法を割り当てる割当てステップと、割り当てた直交した複数の実装方法で実装された複数の機能ブロックの実装モデルを入力する実装モデル入力ステップと、入力した複数の機能ブロックの実装モデルを結合する結合ステップと、結合した実装モデルについてシミュレーションまたはエミュレーションによる性能評価を行う性能評価ステップと、直交した複数の実装方法の組み合わせについて割当てステップから性能評価ステップまでを繰り返す繰返しステップと、直交した複数の実装方法の組み合わせから性能評価に基づいて高性能の実装方法の組み合わせを予測する性能予測ステップと、予測した高性能の実装方法の組み合わせを出力する出力ステップとを有することにより、必要最低限のシミュレーションまたはエミュレーションにより結合した実装モデルについて性能評価を行うようにしたので、システムを構成する各機能ブロックの最適な実装方法を短時間かつ精度良く決定することができるという有利な効果が得られる。
【００５８】
請求項２に記載の回路設計方法によれば、請求項１に記載の回路設計方法において、性能評価ステップにおいて、少なくとも２つの条件でシミュレーションまたはエミュレーションを行い、出力ステップにおいて、性能のばらつきを考慮した結果を出力することにより、動作環境の変化の下でも、安定して高い性能を発揮するシステムを実現する各機能ブロックの実装方法を決定することができるという有利な効果が得られる。
【００５９】
請求項３に記載の回路設計方法によれば、請求項１または２に記載の回路設計方法において、実装モデル入力ステップにおいて、ハードウェアによる実装が選択された機能ブロックに対しては、動作記述モデルを高位合成することにより得られた実装モデルを入力することにより、動作記述モデルを入力するだけで、自動的に最適な実装方法および実装モデルを取得することができるという有利な効果が得られる。
【００６０】
請求項４に記載の回路設計方法によれば、請求項１乃至３のいずれか１に記載の回路設計方法において、実装モデル入力ステップにおいて、実装方法をパラメータで変更可能な実装モデルを入力することにより、各機能ブロックの実装方法とシステム全体に関わる実装方法とを同時に決定することを可能にするという有利な効果が得られる。
【００６１】
請求項５に記載の記録媒体によれば、請求項１乃至４のいずれか１に記載の回路設計方法の各ステップを実行するためのプログラムを記録したことにより、コンピュータ上で記録媒体に記録されたプログラムを実行することで、請求項１乃至４のいずれか１に記載の回路設計方法を実現することができるという有利な効果が得られる。
【００６２】
請求項６に記載の回路設計装置によれば、設計対象となる回路の動作を記述した動作記述モデルを入力する動作記述モデル入力部と、動作記述モデルを複数の機能ブロックに分割する機能ブロック分割部と、分割した複数の機能ブロックに対して直交した複数の実装方法を割り当てる実装方法割り当て部と、割り当てた直交した複数の実装方法で実装された複数の機能ブロックの実装モデルを入力する実装モデル入力部と、入力した複数の機能ブロックの実装モデルを結合する実装モデル結合部と、結合した実装モデルについてシミュレーションまたはエミュレーションによる性能評価を行う性能評価部と、直交した複数の実装方法の組み合わせから性能評価に基づいて高性能の実装方法の組み合わせを予測する性能予測部と、予測した高性能の実装方法の組み合わせを出力する実装方法出力部とを有することにより、必要最低限のシミュレーションまたはエミュレーションにより結合した実装モデルについて性能評価を行うようにしたので、システムを構成する各機能ブロックの最適な実装方法を短時間かつ精度良く決定することができるという有利な効果が得られる。
【００６３】
請求項７に記載の回路設計装置によれば、請求項６に記載の回路設計装置において、性能評価部は、少なくとも２つの条件でシミュレーションまたはエミュレーションを行い、実装方法出力部は、性能のばらつきを考慮した結果を出力することにより、動作環境の変化の下でも、安定して高い性能を発揮するシステムを実現する各機能ブロックの実装方法を決定することができるという有利な効果が得られる。
【００６４】
請求項８に記載の回路設計装置によれば、請求項６または７に記載の回路設計装置において、実装モデル入力部は、ハードウェアによる実装が選択された機能ブロックに対しては、動作記述モデルを高位合成することにより得られた実装モデルを入力することにより、動作記述モデルを入力するだけで、自動的に最適な実装方法および実装モデルを取得することができるという有利な効果が得られる。
【００６５】
請求項９に記載の回路設計装置によれば、請求項６乃至８のいずれか１に記載の回路設計装置において、実装モデル入力部は、実装方法をパラメータで変更可能な実装モデルを入力することにより、各機能ブロックの実装方法とシステム全体に関わる実装方法とを同時に決定することを可能にするという有利な効果が得られる。
【図面の簡単な説明】
【図１】本発明の実施の形態１による回路設計装置を示すブロック図
【図２】回路設計処理の全体を示すフローチャート
【図３】図２の実装方法決定処理を示すフローチャート
【図４】動作記述モデルの一例を示すモデル図
【図５】機能ブロックへの分割の説明図
【図６】（ａ）直交表の例を示す直交表データ図
（ｂ）直交表の例を示す直交表データ図
【図７】動作記述モデルに対する実装方法割り当ての一例を示す割当て図
【図８】結合された実装モデルの一例を示す結合図
【図９】シミュレーション条件の一例を示すシミュレーションデータ図
【図１０】各因子の各水準による性能と安定性への影響の算出例を示す算出データ図
【図１１】各因子の各水準による性能と安定性への影響を示すグラフ
【図１２】（ａ）高性能な実装方法の組み合わせの予測結果の一例を示す結果データ図
（ｂ）高性能な実装方法の組み合わせの予測結果の一例を示す結果データ図
【図１３】実装方法候補を示す候補データ図
【符号の説明】
２０２  実装方法決定部
２０３  実装モデル生成部
２０４  回路製造部
２０５  動作記述モデル入力部
２０６  機能ブロック分割部
２０７  実装方法割り当て部
２０８  実装モデル入力部
２０９  実装モデル結合部
２１０  性能評価部
２１１  性能予測部
２１２  実装方法出力部
２１３  シミュレータ・エミュレータ
【図１】
2004240530.tif 000005
【図２】
2004240530.tif 000006
【図３】
2004240530.tif 000007
【図４】
2004240530.tif 000008
【図５】
2004240530.tif 000009
【図６】
2004240530.tif 000010
【図７】
2004240530.tif 000011
【図８】
2004240530.tif 000012
【図９】
2004240530.tif 000013
【図１０】
2004240530.tif 000014
【図１１】
2004240530.tif 000015
【図１２】
2004240530.tif 000016
【図１３】
2004240530.tif 000017