(57)【特許請求の範囲】
【請求項１】
半導体集積回路装置の動作を記述した動作レベル記述から動作合成、論理合成及び配置配線を実行し、設計対象となる回路の構成、配置、配線を示す情報を生成する動作合成装置であって、
前記動作合成によって得られる、前記動作レベル記述に記載されている変数が有効な値である期間を示す生存区間情報を用いて、配置配線段階にて、信号伝搬遅延ならびに挿入するレジスタ数とレジスタを挿入することで生成されるパスに基づいて目的関数を設定し、該目的関数が小さくなるように、前記半導体集積回路装置に備える記憶素子に対して前記変数割り当てを切り替える処理装置と、
前記生存区間情報を格納する記憶装置と、
を有する動作合成装置。
【請求項２】
半導体集積回路装置の動作を記述した動作レベル記述から動作合成、論理合成及び配置配線を実行し、設計対象となる回路の構成、配置、配線を示す情報を生成する動作合成装置であって、
前記動作合成によって得られる、前記動作レベル記述に記載されている変数が有効な値である期間を示す生存区間情報を用いて、動作合成段階にて、信号伝搬遅延ならびに挿入するレジスタ数とレジスタを挿入することで生成されるパスに基づいて目的関数を設定し、該目的関数が小さくなるように、前記半導体集積回路装置に備える記憶素子に対して前記変数割り当てを切り替える処理装置と、
前記生存区間情報を格納する記憶装置と、
を有する動作合成装置。
【請求項３】
半導体集積回路装置の動作を記述した動作レベル記述から動作合成、論理合成及び配置配線を実行し、設計対象となる回路の構成、配置、配線を示す情報を生成する動作合成装置であって、
前記動作合成によって得られる、前記動作レベル記述に記載されている変数が有効な値である期間を示す生存区間情報を用いて、前記論理合成段階にて、信号伝搬遅延ならびに挿入するレジスタ数とレジスタを挿入することで生成されるパスに基づいて目的関数を設定し、該目的関数が小さくなるように、前記半導体集積回路装置に備える記憶素子に対して前記変数割り当てを切り替える処理装置と、
前記生存区間情報を格納する記憶装置と、
を有する動作合成装置
【請求項４】
請求項１から３のいずれか１項に記載の動作合成装置を有する、前記半導体集積回路装置の回路設計を支援するための回路設計支援システム。
【請求項５】
半導体集積回路装置の動作を記述した動作レベル記述から動作合成、論理合成及び配置配線を実行し、設計対象となる回路の構成、配置、配線を示す情報を生成するための回路設計支援方法であって、
コンピュータが、前記動作合成によって得られる、前記動作レベル記述に記載されている変数が有効な値である期間を示す生存区間情報を記憶装置に記憶し、
前記生存区間情報を用いて、配置配線段階にて、信号伝搬遅延ならびに挿入するレジスタ数とレジスタを挿入することで生成されるパスに基づいて目的関数を設定し、該目的関数が小さくなるように、前記半導体集積回路装置に備える記憶素子に対して前記変数を割り当てる回路設計支援方法。
【請求項６】
半導体集積回路装置の動作を記述した動作レベル記述から動作合成、論理合成及び配置配線を実行し、設計対象となる回路の構成、配置、配線を示す情報を生成するための回路設計支援方法であって、
コンピュータが、前記動作合成によって得られる、前記動作レベル記述に記載されている変数が有効な値である期間を示す生存区間情報を記憶装置に記憶し、
前記生存区間情報を用いて、動作合成段階にて、信号伝搬遅延ならびに挿入するレジスタ数とレジスタを挿入することで生成されるパスに基づいて目的関数を設定し、該目的関数が小さくなるように、前記半導体集積回路装置に備える記憶素子に対して前記変数を割り当てる回路設計支援方法。
【請求項７】
半導体集積回路装置の動作を記述した動作レベル記述から動作合成、論理合成及び配置配線を実行し、設計対象となる回路の構成、配置、配線を示す情報を生成するための回路設計支援方法であって、
コンピュータが、前記動作合成によって得られる、前記動作レベル記述に記載されている変数が有効な値である期間を示す生存区間情報を記憶装置に記憶し、
前記生存区間情報を用いて、前記論理合成段階にて、信号伝搬遅延ならびに挿入するレジスタ数とレジスタを挿入することで生成されるパスに基づいて目的関数を設定し、該目的関数が小さくなるように、前記半導体集積回路装置に備える記憶素子に対して前記変数を割り当てる回路設計支援方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路装置の動作を記述した動作レベル記述から具体的な回路の構成、配置、配線を示す情報を生成するための回路設計を支援する動作合成装置及び回路設計支援方法に関する。
【背景技術】
【０００２】
情報処理装置は、その利用範囲が広がり、より高度な演算処理あるいは画像や動画のように大量のデータを高速に処理する能力が要求されている。このような要求を満たすための手法として、従来、ＣＰＵとは別に特定の演算や処理を実行するＤＳＰ（Digital Signal Processor）やＡＳＩＣ（Application Specific Integrated Circuit）等を備え、ＣＰＵの処理負荷を軽減することで情報処理装置の処理能力を向上させた構成が採用されている。
【０００３】
しかしながら、近年の情報処理装置は、これら画像、動画、音声、音楽等のマルチメディアデータに対して様々な規格の圧縮／伸長処理や演算処理等が必要になり、またインターネット等のネットワークを介して各種データを送受信するための通信処理にも様々なプロトコルが用いられるようになってきている。さらに、ネットワーク上で送受信される情報の安全性が問題となっているため、情報セキュリティのための暗号化処理やそれを解読するための処理も必要になる。そのため、これらの処理に応じて多数のＤＳＰやＡＳＩＣ等を設けていたのでは、情報処理装置の回路規模やコストが膨大なものとなってしまう。
【０００４】
そこで、情報処理装置にＦＰＧＡ（Field Programmable Gate Array）やＤＲＰ（Dynamically Reconfigurable Processor）等の再構成デバイスを備え、必要に応じて再構成デバイス内のプログラムを書き換えて処理を実行させることにより、情報処理装置のスループットを向上させると共に、コストを低減しつつ様々な処理要求への対応を可能にした構成が知られている。
【０００５】
再構成デバイスは、内部にプログラム（コンフィグレーションコード）を格納するための内部メモリを備え、ＣＰＵ等の制御により外部メモリに格納されたコンフィグレーションコードを内部メモリへロードし、ロードしたコンフィグレーションコードにしたがって内部に回路を構成し、該回路により入力されたデータに対して処理を実行する。また、再構成デバイスには、処理に必要なデータや処理結果を一時的に保持するためのレジスタを備えている。この内部メモリにはコンフィグレーションコードだけでなく、処理途中で参照するテーブルやデータが一時的に格納されることもある。以下、再構成デバイスが備えるレジスタや処理に必要な情報を保持する内部メモリを記憶素子と総称する。
【０００６】
ところで、一般に、ＬＳＩやＶＬＳＩ等の半導体集積回路装置の設計では、設計の支援や一部を自動化するＬＳＩ設計自動化・支援ツールが用いられる。このＬＳＩ設計の自動化・支援ツールを利用したＶＬＳＩ設計の代表的な方法として、各種のＥＤＡ(Electronic Design Automation)ツールを用いたトップダウン設計方法がある。トップダウン設計方法は、その上流工程から、動作レベル設計フェーズ、機能設計フェーズ、論理設計フェーズ、レイアウト設計フェーズに大別できる。
【０００７】
トップダウン設計方法においては、まず設計対象となるＬＳＩをシステムとして捉え、システム仕様の作成工程として、その動作を記述することから始まる。この工程を動作レベル設計フェーズと呼ぶ。動作レベル設計フェーズで作成された回路記述は動作レベル記述と呼ばれる。動作レベル記述の作成には、例えば、Ｃ言語、Ｃ＋＋言語、あるいはｊａｖａ言語等が用いられる。
【０００８】
機能設計フェーズは、動作合成装置を用いて動作レベル設計フェーズで作成された動作レベル回路記述をＲＴＬ(Register Transfer Level)回路記述に変換する。ＲＴＬ回路記述は設計対象の回路をクロック毎の動作にまで具体化した記述である。
【０００９】
論理設計フェーズは、機能設計フェーズで作成されたＲＴＬ回路記述を論理レベル回路記述（論理ゲート回路による記述、またはネットリスト）に変換する。論理合成によって生成されたネットリストは、続くレイアウト設計フェーズでレイアウト設計に用いられ、レイアウト設計で生成された回路パターンを基にチップ設計が行われる。
【００１０】
一方、上述した再構成デバイスについても、コンフィグレーションコードあるいはネットリストを生成するために、上述したＬＳＩやＶＬＳＩ等の設計と同様に、設計の支援やデバッグ作業を支援する設計自動化・支援ツール（回路設計支援システム）が用いられる。再構成デバイス用の回路設計支援システムでは、動作合成装置により、例えば入力された動作レベル記述を動作合成することで各変数に記憶素子を割り当て、動作合成後の出力を論理合成することで回路のネットリストを作成し、該ネットリストを配置配線（レイアウト）処理することでコンフィグレーションコードを生成する。生成されたコンフィグレーションコードは、ＣＰＵ等から成るコンフィグレーションローダー（書き込み装置）を用いて、あるいは直接再構成デバイスに読み込まれて実行される。また、生成されたコンフィグレーションコードは、デバッグ装置を用いて再構成デバイスで実行している途中の記憶素子の内容を観測することで検証される。
【００１１】
なお、ＬＳＩ設計自動化・支援ツールとしては、特許文献１に記載された回路設計支援システムがある。また、プログラムのデバッグを支援するツールとしては、特許文献２に記載されたデバッグ支援装置がある。
【００１２】
また、上記ＤＲＰについては、例えば、特許文献３、特許文献４及び非特許文献１等に詳細が記載されている。
【特許文献１】特開２００５−２４２８１２号公報
【特許文献２】特開平１１−１９４９５７号公報
【特許文献３】特開２００１−３１２４８１号公報
【特許文献４】特開２００３−１９６２４６号公報
【非特許文献１】Hideharu Amano, Akiya Jouraku, Kenichiro Anjo, "A dynamically adaptive switch fabric on a multicontext reconfigurable device", Proceeding of International Field programmable Logic and Application Conference, September 2003, p161-170.
【発明の開示】
【発明が解決しようとする課題】
【００１３】
上述した設計自動化・支援ツールを用いた回路設計では、通常、記憶素子で保持している情報が常に有効であると仮定して回路を設計している。
【００１４】
しかしながら、実際の回路動作では、実行している処理に応じて記憶素子で保持している情報が無効となる期間が存在する。従来の動作合成装置では、この記憶素子で保持している情報が無効となる期間を把握していないため、例えば１つのレジスタを複数の変数で共有する等の最適化設計を実施することができなかった。また、従来のデバッグ装置も、同様に記憶素子で保持している情報が無効となる期間を把握していないため、実行中の処理と全く関係の無い情報を保持している記憶素子の内容を表示する場合があり、動作に無駄があった。
【００１５】
本発明は上記したような従来の技術が有する問題点を解決するためになされたものであり、無駄な作業を省くことが可能であり、回路設計の最適化を実現する動作合成装置及び回路設計支援方法を提供することを目的とする。
【課題を解決するための手段】
【００１６】
上記目的を達成するため本発明の動作合成装置は、半導体集積回路装置の動作を記述した動作レベル記述から動作合成、論理合成及び配置配線を実行し、設計対象となる回路の構成、配置、配線を示す情報を生成する動作合成装置であって、
前記動作合成によって得られる、前記動作レベル記述に記載されている変数が有効な値である期間を示す生存区間情報を用いて、配置配線段階にて、信号伝搬遅延ならびに挿入するレジスタ数とレジスタを挿入することで生成されるパスに基づいて目的関数を設定し、該目的関数が小さくなるように、前記半導体集積回路装置に備える記憶素子に対して前記変数割り当てを切り替える処理装置と、
前記生存区間情報を格納する記憶装置と、
を有する。
または、半導体集積回路装置の動作を記述した動作レベル記述から動作合成、論理合成及び配置配線を実行し、設計対象となる回路の構成、配置、配線を示す情報を生成する動作合成装置であって、
前記動作合成によって得られる、前記動作レベル記述に記載されている変数が有効な値である期間を示す生存区間情報を用いて、動作合成段階にて、信号伝搬遅延ならびに挿入するレジスタ数とレジスタを挿入することで生成されるパスに基づいて目的関数を設定し、該目的関数が小さくなるように、前記半導体集積回路装置に備える記憶素子に対して前記変数割り当てを切り替える処理装置と、
前記生存区間情報を格納する記憶装置と、
を有する。
または、半導体集積回路装置の動作を記述した動作レベル記述から動作合成、論理合成及び配置配線を実行し、設計対象となる回路の構成、配置、配線を示す情報を生成する動作合成装置であって、
前記動作合成によって得られる、前記動作レベル記述に記載されている変数が有効な値である期間を示す生存区間情報を用いて、前記論理合成段階にて、信号伝搬遅延ならびに挿入するレジスタ数とレジスタを挿入することで生成されるパスに基づいて目的関数を設定し、該目的関数が小さくなるように、前記半導体集積回路装置に備える記憶素子に対して前記変数割り当てを切り替える処理装置と、
前記生存区間情報を格納する記憶装置と、
を有する。
【００１９】
また、本発明の書き込み装置は、半導体集積回路装置の動作を記述した動作レベル記述から動作合成、論理合成及び配置配線を実行することで生成された、設計対象となる回路の構成、配置、配線を示す情報を前記半導体集積回路装置へ書き込むための書き込み装置であって、
前記動作合成によって得られる、前記動作レベル記述に記載されている変数が有効な値である期間を示す生存区間情報を用いて、予め設定した目的関数が小さくなるように、前記半導体集積回路装置が備える記憶素子の保持内容を前記外部メモリへ退避させる処理装置と、
前記生存区間情報を格納する記憶装置と、
を有する構成である。
【００２０】
さらに、本発明の回路設計支援システムは、上記動作合成装置を有する、前記半導体集積回路装置の回路設計を支援するための構成である。
【００２１】
一方、本発明の回路設計支援方法は、半導体集積回路装置の動作を記述した動作レベル記述から動作合成、論理合成及び配置配線を実行し、設計対象となる回路の構成、配置、配線を示す情報を生成するための回路設計支援方法であって、
コンピュータが、前記動作合成によって得られる、前記動作レベル記述に記載されている変数が有効な値である期間を示す生存区間情報を記憶装置に記憶し、
前記生存区間情報を用いて、配置配線段階にて、信号伝搬遅延ならびに挿入するレジスタ数とレジスタを挿入することで生成されるパスに基づいて目的関数を設定し、該目的関数が小さくなるように、前記半導体集積回路装置に備える記憶素子に対して前記変数を割り当てる方法である。
または、半導体集積回路装置の動作を記述した動作レベル記述から動作合成、論理合成及び配置配線を実行し、設計対象となる回路の構成、配置、配線を示す情報を生成するための回路設計支援方法であって、
コンピュータが、前記動作合成によって得られる、前記動作レベル記述に記載されている変数が有効な値である期間を示す生存区間情報を記憶装置に記憶し、
前記生存区間情報を用いて、動作合成段階にて、信号伝搬遅延ならびに挿入するレジスタ数とレジスタを挿入することで生成されるパスに基づいて目的関数を設定し、該目的関数が小さくなるように、前記半導体集積回路装置に備える記憶素子に対して前記変数を割り当てる方法である。
または、半導体集積回路装置の動作を記述した動作レベル記述から動作合成、論理合成及び配置配線を実行し、設計対象となる回路の構成、配置、配線を示す情報を生成するための回路設計支援方法であって、
コンピュータが、前記動作合成によって得られる、前記動作レベル記述に記載されている変数が有効な値である期間を示す生存区間情報を記憶装置に記憶し、
前記生存区間情報を用いて、前記論理合成段階にて、信号伝搬遅延ならびに挿入するレジスタ数とレジスタを挿入することで生成されるパスに基づいて目的関数を設定し、該目的関数が小さくなるように、前記半導体集積回路装置に備える記憶素子に対して前記変数を割り当てる方法である。
【００２５】
上記のような構成及び方法では、動作合成によって得られた生存区間情報を、論理合成段階、配置配線段階の処理に用いることで、論理合成段階や配置配線段階における設計自由度が向上する。また、生存区間情報をデバッグ段階の処理で用いることで不必要な情報の表示や作業を不要にできる。さらに、生存区間情報を再構成デバイスに対する回路の切り替え時に用いることで、再構成デバイスから外部メモリへ退避させるデータ量を低減できる。
【発明の効果】
【００２６】
本発明によれば、動作合成によって得られた生存区間情報を、論理合成段階、配置配線段階、デバッグ段階または再構成デバイスへの書き込み段階の処理で用いることで、無駄な作業を省くことが可能であり、回路設計の最適化を実現できる。
【発明を実施するための最良の形態】
【００２７】
次に本発明について図面を参照して説明する。
【００２８】
図１は本発明の回路設計支援システムの一構成例を示すブロック図である。
【００２９】
以下では、再構成デバイスで処理を実行するためのプログラムであるコンフィグレーションコードを生成する構成を例にして説明するが、本発明はＬＳＩやＶＬＳＩ等の半導体集積回路装置の設計を支援する回路設計支援システムにも適用可能である。また、以下では、再構成デバイスが備えるレジスタや処理に必要な情報を保持する内部メモリを記憶素子と総称する。
【００３０】
図１に示すように、本発明の回路設計支援システムは、動作レベル記述から動作合成、論理合成及び配置配線を実行し、コンフィグレーションコードを生成する動作合成装置１と、動作合成装置１で生成されたコンフィグレーションコードを再構成デバイス４に読み込むためのコンフィグレーションローダー（書き込み装置）２と、動作合成装置１で生成されたコンフィグレーションコードをデバッグするためのデバッグ装置３とを有する構成である。
【００３１】
動作合成装置１は、入力された動作レベル記述に対して動作合成を実行してＲＴＬ回路記述を出力し、動作合成後のＲＴＬ回路記述から論理合成を実行することでネットリストを作成し、該ネットリストを配置配線（レイアウト）することでコンフィグレーションコードが生成する処理装置と、処理に必要な各種情報が格納される記憶装置とを有する構成である。なお、記憶装置は動作合成装置に含まれている必要はなく、動作合成装置から独立した構成であってもよい。
【００３２】
処理装置及び記憶装置は、上記動作合成、論理合成及び配置配線を実行するＬＳＩや論理回路及びメモリ等によって構成されていてもよく、図２に示すような情報処理装置（コンピュータ）によって構成されてもよい。
【００３３】
図２は図１に示した動作合成装置の一構成例を示すブロック図である。
【００３４】
図２に示す情報処理装置は、プログラムにしたがって所定の処理を実行する処理装置１０と、処理装置１０に対してコマンドや情報等を入力するための入力装置２０と、処理装置１０の処理結果をモニタするための出力装置３０とを有する構成である。
【００３５】
処理装置１０は、ＣＰＵ１１と、ＣＰＵ１１の処理に必要な情報を一時的に記憶する主記憶装置１２と、ＣＰＵ１１に動作合成装置１としての処理を実行させるためのプログラムが記録された記録媒体１３と、後述する対応関係情報、アクセス情報、生存区間情報等が格納されるデータ蓄積装置１４と、主記憶装置１２、記録媒体１３及びデータ蓄積装置１４とのデータ転送を制御するメモリ制御インタフェース部１５と、入力装置２０及び出力装置３０とのインタフェース装置であるＩ／Ｏインタフェース部１６とを備え、それらがバス１８を介して接続された構成である。また、処理装置１０は、コンフィグレーションローダー２、デバッグ装置３及び再構成デバイス４と情報を送受信するためのインタフェースであるインタフェース装置を備えている。なお、処理装置１０にはネットワークと接続するためのインタフェースである通信制御装置を備えていてもよい。また、データ蓄積装置１４は、必ずしも処理装置１０内に備える必要はなく、外部に独立して備えていてもよい。
【００３６】
処理装置１０は、記録媒体１３に記録されたプログラムにしたがって上記動作合成、論理合成及び配置配線等の処理をそれぞれ実行する。なお、記録媒体１３は、磁気ディスク、半導体メモリ、光ディスクあるいはその他の記録媒体であってもよい。
【００３７】
データ蓄積装置１４には、動作合成によって得られる対応関係情報、アクセス情報及び生存区間情報が格納される。
【００３８】
対応関係情報は、動作レベル記述と動作合成によって生成されたＲＴＬ回路記述との対応関係を示す情報であり、例えば、「信号の対応関係」、「演算の対応関係」、「記述文の対応関係」等についての情報等がある。
【００３９】
アクセス情報は、再構成デバイス４の各記憶素子に対するアクセス状態を示す情報であり、「書き込み」及び「読み出し」状態を示す情報、及びデータを保持している「保持」状態を示す情報が含まれる。
【００４０】
生存区間情報は、動作レベル記述で記載されている変数が有効な期間（以下、生存区間と称す場合もある）を示す情報である。なお、変数には配列変数や構造体変数も含むものとする。
【００４１】
例えば、図３に示すように、動作レベル記述により、処理が状態ＳＴ１、ＳＴ２、ＳＴ３に遷移する場合を考える。この場合、変数ｘは、状態ＳＴ１で定義され、状態ＳＴ３で演算に用いられるため、その生存区間は状態ＳＴ１〜ＳＴ３となる。同様に、変数ｙは、状態ＳＴ２で定義され、状態ＳＴ３で演算に用いられるため、その生存区間は状態ＳＴ２、ＳＴ３となる。変数ｚは、状態ＳＴ３以降が不明であり、生存区間の終わりは不明であるが、状態ＳＴ３で定義されているため、生存区間の始まりは状態ＳＴ３となる。
【００４２】
本発明では、この生存区間情報を用いることで無駄な作業を省くことや各種の最適化設計が可能な回路設計支援システムを実現する。
【００４３】
なお、コンフィグレーションローダー２及びデバッグ装置３は、動作合成装置１と同様にＬＳＩや論理回路等によって構成されていてもよく、図２に示したような情報処理装置（コンピュータ）によって構成されてもよい。コンフィグレーションローダー２及びデバッグ装置３を情報処理装置によって実現する場合、その処理装置は後述するコンフィグレーションローダー２またはデバッグ装置３の処理を実行し、その記憶装置（データ蓄積装置）に生存区間情報が格納される。
【００４４】
上記のような構成において、次に本発明の回路設計支援システムによる具体的な処理について以下の第１実施例〜第５実施例にて説明する。
【００４５】
（第１実施例）
まず、第１実施例で用いる動作レベル記述及びその動作合成結果の例を図４に示す。
【００４６】
図４は本発明の回路設計支援システムの第１実施例で用いる動作レベル記述及びその動作合成結果を示す図であり、同図（ａ）は動作合成装置に入力される動作レベル記述例、同図（ｂ）は動作合成後の出力回路を示す回路図、同図（ｃ）は各変数の生存区間を示すテーブル図である。
【００４７】
図４（ａ）に示すａ，ｂ，ｃ，ｄは入力であり、ｇは出力である。また、ｅ，ｆはそれぞれ変数を示している。
【００４８】
図４（ｂ）に示すように、動作合成後の出力回路は、データパス部とＦＳＭ（Finite State Machine）部とによって表現される。この例では、図４（ａ）に示す動作レベル記述が動作合成によって４つの状態ＳＴ１〜ＳＴ４に分割され、状態ＳＴ１〜ＳＴ４の順に遷移することが示されている。図４（ｂ）において、Ｒ１及びＲ２はレジスタを示し、Ｐｏｒｔ１〜Ｐｏｒｔ３は入出力端子を示している。また、＊は乗算器を示し、＋は加算器を示している。
【００４９】
図４（ｃ）に示すように、図４（ａ）に示した動作レベル記述を基に生成された出力回路では、動作合成によって変数ｅにレジスタＲ１が割り当てられ、変数ｆにレジスタＲ２が割り当てられている。図４（ｃ）の記載から、変数ｅの生存区間は状態ＳＴ１〜ＳＴ３であり、変数ｆの生存区間は状態ＳＴ３〜ＳＴ４であることが分かる。図４（ｃ）において、Ｒｅａｄは記憶素子からの読み込みを示し、Ｗｒｉｔｅは記憶素子への書き込みを示し、Ｈｏｌｄは記憶素子の値を保持することを示している。Ｐｏｒｔ１〜Ｐｏｒｔ３は、記憶素子ではないため、生存区間はＲｅａｄ時またはＷｒｉｔｅ時のみとなる。
【００５０】
本実施例は、図４（ｃ）に示した生存区間情報を基に配置配線段階にてデータパスを最適化する例である。
【００５１】
図５は本発明の回路設計支援システムの第１実施例の処理結果を示す図であり、同図（ａ）は最適化処理前のデータパス及び生存区間情報を示す模式図、同図（ｂ）は最適化処理後のデータパス及び生存区間情報を示す模式図である。
【００５２】
図５（ａ）、（ｂ）の模式図で示すデータパスの各面は、状態ＳＴ１、ＳＴ２、ＳＴ３に相当しているが、これらの面は、複数の回路を切り替えて実行可能な再構成デバイス（例えば、特許文献３、特許文献４及び非特許文献１等に詳細が記載されているＤＲＰ）が備える切り替え可能な回路面（コンテキスト）に対応していると解釈することもできる。
【００５３】
図５（ａ）に示すように、最適化処理前、変数ｅの生存区間は状態ＳＴ１〜ＳＴ３であり、状態ＳＴ１で変数ｅの値がレジスタＲ１に書き込まれ、状態ＳＴ２で変数ｅの値が保持され、状態ＳＴ３で変数ｅの値がレジスタＲ１から読み出される。
【００５４】
ここで、使用していないレジスタＲ３が存在し、状態ＳＴ３にてレジスタＲ１から読み出した変数ｅの書き込み先に対する位置が、レジスタＲ１よりもレジスタＲ３の方が近いとする。
【００５５】
その場合、図５（ｂ）に示すように、状態ＳＴ２でレジスタＲ１に格納された変数ｅの値をレジスタＲ３に移し変え、状態ＳＴ３でレジスタＲ３の変数ｅを読み出すように最適化する。このように回路を変えても論理的な処理結果は変わらない。しかしながら、データパスは、状態ＳＴ３にてレジスタＲ３から変数ｅを読み出すことでパス長が短縮されるため、状態ＳＴ３における読み出し処理時の遅延量が低減する。
【００５６】
本実施例によれば、生存区間情報を動作合成装置で利用することで配置配線段階における設計の自由度が向上するため、例えば信号伝播遅延を小さくすることを目的関数として設定し、該目的関数が小さくなるように、好ましくは最小となるように、各変数に割り当てる記憶素子を切り替える設計を行えば、配線による遅延量を低減することが可能になる。このとき、目的関数には、挿入するレジスタ数とレジスタを挿入することで生成されるパス（転送パス）数とが予め設定した値を越えないとする制約条件を付与することが望ましい。
【００５７】
特に本実施例を上記ＤＲＰのような再構成デバイスを設計するための回路設計支援システムに適用すれば、ＤＲＰが備える回路面の切り替え機構により、配線が各回路面に分散されるため、レジスタ及び転送パスを挿入しても配線が困難になることがない。すなわち、配線の容易性を保ちつつレジスタ及び転送パスを挿入できる。
【００５８】
なお、本実施例では、動作合成によって得られた生存区間情報を動作合成装置１の配置配線段階でのみ利用する例を示しているため、図１に示したコンフィグレーションローダー２及びデバッグ装置３は不要であり、それらが無い構成であってもよい。すなわち、第１実施例は図６に示す構成に好適な例である。
（第２実施例）
次に本発明の回路設計支援システムの第２実施例について説明する。
【００５９】
第２実施例は生存区間情報を基に論理合成段階または配置配線段階にて記憶素子を共有することで最適化する例である。
【００６０】
図７は本発明の回路設計支援システムの第２実施例の処理結果を示す図であり、同図（ａ）は最適化処理前のデータパス及び生存区間情報の一例を示す模式図、同図（ｂ）は最適化処理後のデータパス及び生存区間情報を示す模式図である。
【００６１】
図７（ａ）、（ｂ）の模式図で示すデータパスの各面は、状態ＳＴ１、ＳＴ２、ＳＴ３、ＳＴ４に相当しているが、これらの面は、複数の回路を切り替えて実行可能な再構成デバイス（例えば、特許文献３、特許文献４及び非特許文献１等に詳細が記載されているＤＲＰ）が備える切り替え可能な回路面（コンテキスト）に対応していると解釈することもできる。
【００６２】
図７（ａ）に示す例では、レジスタＲ１及びＲ２を備え、レジスタＲ１が状態ＳＴ１及び状態ＳＴ２にて変数ｘを保持するために用いられ、レジスタＲ２が状態ＳＴ３及び状態ＳＴ４にて変数ｙを保持するために用いられている。このような場合、状態ＳＴ３及び状態ＳＴ４ではレジスタＲ１を使用していないため、変数ｙを保持するためにレジスタＲ１を用いることも可能である。
【００６３】
この記憶素子を共有する回路設計は動作合成段階でも可能である。しかしながら、本実施例では、生存区間情報を利用することで、論理合成段階あるいは配置配線段階において各変数に割り当てる記憶素子を共有する。
【００６４】
本実施例のように、生存区間情報を基に論理合成段階にて記憶素子を共有する設計を行うことで、回路全体の性能を考慮して記憶素子を共有することが可能になる。例えば、動作合成段階にて記憶素子を共有する設計を行うと、動作合成段階では、セットアップ遅延やホールド遅延等のように精度が低い記憶素子固有の特性に関する情報、あるいは割り当てる記憶素子のビット幅やデータパスの接続情報のように抽象度が高い情報に基づいて記憶素子を共有する設計を行うため、回路全体の性能から見て共有化が不適当な変数を１つの記憶素子で共有してしまう可能性がある。一方、本実施例のように、生存区間情報を基に論理合成段階で記憶素子を共有すれば、精度が高い記憶素子固有の特性に関する情報に基づいて記憶素子を共有する設計を行うことが可能であり、ビット幅やデータパスの接続情報も確定しているため、上記のような問題は発生しない。
【００６５】
さらに、本実施例のように、生存区間情報を基に配置配線段階にて記憶素子を共有する設計を行うことで、回路全体の性能を考慮して記憶素子を共有することが可能になる。例えば、動作合成段階で記憶素子を共有する設計を行うと、動作合成段階では、記憶素子のレイアウトを考慮するための指標を持たないため、ファンアウト（fanout）が多い（出力数が多い）変数を１つのレジスタで共有する可能性がある。その場合、複数の変数で共有する記憶素子へ接続するための配線が困難になるため、配置配線段階でレイアウト不能であることが検出され、動作合成をやり直す等の無駄な作業が発生する。一方、本実施例のように配置配線段階で記憶素子を共有すれば、レイアウトを考慮して記憶素子を割り当てることができるため、このような問題は発生しない。
【００６６】
また、本実施例のように配置配線段階にてレイアウトを考慮して記憶素子を複数の変数で共有し、さらに第１実施例で示した配線遅延を考慮して記憶素子を変数に割り当てる処理を実行すれば、例えば高速動作が要求される回路では配線遅延を優先して記憶素子を各変数に割り当て、レイアウト面積が優先される回路では記憶素子を共有する等の処置が可能になる。そのため、動作周波数や回路面積等の回路全体の性能を考慮した配置配線が可能になる。
【００６７】
本実施例によれば、生存区間情報を動作合成装置で利用することで動作合成段階あるいは配置配線段階における設計の自由度が向上するため、例えば使用する記憶素子数を少なくすることを目的関数として設定し、該目的関数が小さくなるように、好ましくは最小となるように、各変数に割り当てる記憶素子を切り替える設計を行えば、動作周波数の高速化や回路面積を低減することが可能になる。このとき、目的関数には、論理合成段階では信号伝播遅延が予め設定した値を越えないとする制約条件を付与することが望ましく、配置配線段階では信号伝播遅延が予め設定した値を越えないこと、及び配線の容易性を保つとする制約条件を付与することが望ましい。
【００６８】
特に本実施例を上記ＤＲＰのような再構成デバイスを設計するための回路設計支援システムに適用すれば、レジスタの共有化を、セレクタ素子ではなく、ＤＲＰが備える回路面の切り替え機構により実現できるため、セレクタ素子数が増加することがない。また、ＤＲＰが備える回路面の切り替え機構により配線が各回路面に分散されるため、レジスタを共有化しても、配線の困難性による配線長の延伸がないため、遅延量が増加することがない。すなわち、レジスタを共有することによるデメリットが低減する。
【００６９】
なお、本実施例では、動作合成によって得られた生存区間情報を動作合成装置１の論理合成段階で利用する例と配置配線段階で利用する例とを示しているため、図１に示したコンフィグレーションローダー２及びデバッグ装置３は不要であり、それらが無い構成であってもよい。すなわち、第２実施例は、生存区間情報を動作合成装置１の論理合成段階で利用する場合は図８に示す構成に好適な例であり、生存区間情報を動作合成装置１の配置配線段階で利用する場合は第１実施例と同様に図６に示す構成に好適な例である。
（第３実施例）
次に本発明の回路設計支援システムの第３実施例について説明する。
【００７０】
第３実施例は生存区間情報を基にデバッグ装置３による作業を最適化する例である。
【００７１】
図９は本発明の回路設計支援システムの第３実施例の処理結果を示す図であり、同図（ａ）は動作合成装置に入力される動作レベル記述例、同図（ｂ）は動作合成後の出力回路を示す回路図、同図（ｃ）は各変数の生存区間を示すテーブル図である。
【００７２】
図９（ａ）に示すａ，ｂ，ｃ，ｅ，ｇ，ｈ，ｉ，ｊ，ｋは入力であり、ｆ，ｌは出力である。また、ａａ，ｂｂ，ｃｃはそれぞれ変数を示している。
【００７３】
図９（ｂ）に示すように、この例では、図９（ａ）に示した動作レベル記述が動作合成によって５つの状態ＳＴ１〜ＳＴ５に分割され、状態ＳＴ１〜ＳＴ５の順に遷移することが分かる。なお、図９（ｂ）において、Ｒ１〜Ｒ４はレジスタを示し、Ｐｏｒｔ１〜Ｐｏｒｔ１２は入出力端子を示している。また、＊は乗算器を示し、＋は加算器を示している。
【００７４】
図９（ｃ）に示すように、図９（ａ）に示した動作レベル記述で用いる変数ａａには、状態ＳＴ１及びＳＴ２においてレジスタＲ１が割り当てられ、状態ＳＴ３及びＳＴ４においてレジスタＲ４が割り当てられている。また、変数ｂｂには、状態ＳＴ２及びＳＴ３においてレジスタＲ２が割り当てられ、状態ＳＴ４及びＳＴ５においてレジスタＲ３が割り当てられている。さらに、変数ｃｃには、状態ＳＴ２及びＳＴ３においてレジスタＲ３が割り当てられ、状態ＳＴ４及びＳＴ５においてレジスタＲ２が割り当てられている。図９（ｃ）の記載から、変数ａａの生存区間は状態ＳＴ１〜ＳＴ４であり、変数ｂｂの生存区間は状態ＳＴ２〜ＳＴ５であり、変数ｃｃの生存区間は状態ＳＴ２〜ＳＴ５であることが分かる。
【００７５】
図９（ｂ）に示す出力回路をデバッグする場合、従来のデバッグ装置では、図１に示した対応関係情報を基に各変数に割り当てられた記憶素子の内容を表示する。ここで、操作者が状態ＳＴ１における変数ｂｂの値を表示するようにデバッグ装置に指示した場合、デバッグ装置は対応関係情報に基づいてレジスタＲ２及びレジスタＲ３の値を表示する。しかしながら、図９（ｃ）に示すように、状態ＳＴ１では変数ｂｂを求めるための演算を実行していないため、表示されたレジスタＲ２及びレジスタＲ３の値は状態ＳＴ１における処理と無関係な値である。
【００７６】
本実施例では、デバッグ装置３にて生存区間情報を利用することで、状態ＳＴ１においては変数ｂｂが有効な値ではない（生存区間ではない）ことが判別できるため、無意味な値を表示することなく、その変数ｂｂが有効な値ではないことを表示するための情報を生成し、その情報に基づき表示を行う。したがって、デバッグ時における不要な情報の表示が抑制されため、デバッグ効率が向上する。
【００７７】
特に本実施例を上記ＤＲＰのような再構成デバイスを設計するための回路設計支援システムに適用すると、ＤＲＰには予め標準化された制御手順や記憶素子へのアクセス手順が用意され、高い可制御性・可観測性が確保されているため、本実施例で示したデバッグ時における処理を容易に実現できる。
【００７８】
なお、本実施例では、動作合成によって得られた生存区間情報をデバッグ装置３でのみ利用する例を示しているため、図１に示した動作合成装置１が実行する論理合成及び配置配線は不要であり、それらが無い構成であってもよい。すなわち、第３実施例は図１０に示す構成に好適な例である。また、生存区間情報は、通常、コンフィグレーションコード等からも得られるため、デバッグ装置３のためにこれらを一度コンパイルすれば、以降、デバッグ装置３で生存区間情報を利用するために動作合成装置１を起動する必要はない。その場合、図１０に示した動作合成装置１も不要になる。
（第４実施例）
次に本発明の回路設計支援システムの第４実施例について説明する。
【００７９】
第４実施例は生存区間情報を基にデバッグ装置３による作業を最適化する他の例である。
【００８０】
図１１は本発明の回路設計支援システムの第４実施例の処理結果を示す図であり、同図（ａ）は動作合成装置に入力される動作レベル記述例、同図（ｂ）は動作合成後の出力回路を示す回路図、同図（ｃ）は各変数の生存区間を示すテーブル図である。
【００８１】
図１１（ａ）に示すａ，ｂ，ｃ，ｅ，ｇ，ｈ，ｉ，ｊ，ｋは入力値であり、ｆ，ｌは出力値である。また、ａａ，ｂｂ，ｃｃはそれぞれ変数を示している。
【００８２】
図１１（ｂ）に示すように、この例では、図１１（ａ）に示した動作レベル記述が動作合成によって５つの状態ＳＴ１〜ＳＴ５に分割され、状態ＳＴ１〜ＳＴ５の順に遷移することが分かる。なお、図１１（ｂ）において、Ｒ１〜Ｒ４はレジスタを示し、Ｐｏｒｔ１〜Ｐｏｒｔ１２は入出力端子を示している。また、＊は乗算器を示し、＋は加算器を示している。
【００８３】
図１１（ｃ）に示すように、図１１（ａ）に示した動作レベル記述で用いる変数ａａには、状態ＳＴ１及びＳＴ２においてレジスタＲ１が割り当てられ、状態ＳＴ３及びＳＴ４においてレジスタＲ４が割り当てられている。また、変数ｂｂには、状態ＳＴ２及びＳＴ３においてレジスタＲ２が割り当てられ、状態ＳＴ４及びＳＴ５においてレジスタＲ３が割り当てられている。さらに、変数ｃｃには、状態ＳＴ２及びＳＴ３においてレジスタＲ３が割り当てられ、状態ＳＴ４及びＳＴ５においてレジスタＲ２が割り当てられている。図１１（ｃ）の記載から、変数ａａの生存区間は状態ＳＴ１〜ＳＴ４であり、変数ｂｂの生存区間は状態ＳＴ２〜ＳＴ５であり、変数ｃｃの生存区間は状態ＳＴ２〜ＳＴ５であることが分かる。
【００８４】
図１１（ｂ）に示す出力回路をデバッグする場合、従来のデバッグ装置では、図１に示した対応関係情報を基に各変数に割り当てられたレジスタの内容を表示する。ここで、操作者が状態ＳＴ２における記憶素子Ｒ２に割り当てられた変数の値を表示するようにデバッグ装置に指示したとする。その場合、デバッグ装置は対応関係情報に基づいて変数ｂｂと変数ｃｃの値を表示する。しかしながら、図１１（ｃ）に示すように、状態ＳＴ２では変数ｃｃを求めるための演算を実行していないため、変数ｃｃは状態ＳＴ２における処理とは無関係である。
【００８５】
本実施例では、デバッグ装置３が生存区間情報を利用することで、状態ＳＴ２では変数ｃｃが記憶素子Ｒ２に割り当てられていないことが判別できるため、無意味な値を表示することなく、変数ｂｂの値のみを表示するための情報を生成し、生成した情報を基に表示を行う。したがって、デバッグ時における不要な情報の表示が抑制されため、デバッグ効率が向上する。
【００８６】
特に本実施例を上記ＤＲＰのような再構成デバイスを設計するための回路設計支援システムに適用すると、ＤＲＰには予め標準化された制御手順や記憶素子へのアクセス手順が用意され、高い可制御性・可観測性が確保されているため、本実施例で示したデバッグ時における処理を容易に実現できる。
【００８７】
なお、本実施例では、第３実施例と同様に、動作合成によって得られた生存区間情報をデバッグ装置３でのみ利用する例を示しているため、図１に示した動作合成装置１が実行する論理合成及び配置配線は不要であり、それらが無い構成であってもよい。すなわち、第３実施例は図１０に示す構成に好適な例である。また、生存区間情報は、通常、コンフィグレーションコード等からも得られるため、デバッグ装置３のためにこれらを一度コンパイルすれば、以降、デバッグ装置３で生存区間情報を利用するために動作合成装置１を起動する必要はない。その場合、図１０に示した動作合成装置１も不要になる。
（第５実施例）
次に本発明の回路設計支援システムの第５実施例について説明する。
【００８８】
第５実施例は生存区間情報を基に図１に示したコンフィグレーションローダー（書き込み装置）２による処理を最適化する例である。
【００８９】
上述したように、再構成デバイス４は、コンフィグレーションコードを格納するための内部メモリを備え、コンフィグレーションローダー２の制御によりコンフィグレーションコードを内部メモリへロードし、ロードしたコンフィグレーションコードにしたがって内部に回路を構成し、該回路により入力されたデータに対して処理を実行する。この内部メモリの記憶容量には限度があるため、内部メモリは複数の回路を実現するために時分割に利用される。
【００９０】
通常、内部メモリの記憶容量を越えて、内部メモリに新たな回路のコンフィグレーションコードを読み込む場合、そのための空き領域を確保するために、内部メモリに格納された回路を外部メモリに退避させると共に、その回路で使用している記憶素子の内容を全て外部メモリへ退避させる必要がある。
【００９１】
このように内部メモリの記憶容量を越えて、次々にコンフィグレーションコードを読み込むことで、複数の回路により時分割に処理を実行する構成を仮想ＨＷ（ハードウェア）と呼ぶ。
【００９２】
図１２は本発明の回路設計支援システムの第５実施例の処理結果を示す図であり、同図（ａ）及び（ｂ）は再構成デバイス内に構築する回路の動作遷移及び生存区間情報を示す模式図、同図（ｃ）は回路を入れ替える様子を示す模式図である。
【００９３】
図１２（ａ），（ｂ）に示すように、再構成デバイス４に２つの回路（回路１、回路２）が形成され、これら２つの回路のうち、いずれか一方を外部メモリに格納された別の回路（回路３）と入れ替える場合を考える。
【００９４】
ここで、回路１では図１２（ａ）に示すＦＳＭ及び生存区間情報が得られ、回路２では図１２（ｂ）に示すＦＳＭ及び生存区間情報が得られているものとする。また、回路１は状態ＳＴ２で処理が停止し、回路２は状態ＳＴ３で処理が停止しているものとする。
【００９５】
この場合、生存区間情報を参照すると、回路１では、状態ＳＴ２以降で生存している変数（有効な変数）はｂ、ｃ、ｄであり、保持内容を外部メモリへ退避させなければならない記憶素子の数は３個となる。
【００９６】
一方、回路２では、状態ＳＴ３以降で生存している変数（有効な変数）はｘのみであり、保持内容を外部メモリへ退避させなければならない記憶素子の数は１個となる。
【００９７】
したがって、再構成デバイス４の内部メモリに回路３のコンフィグレーションコードを読み込む際には、回路２を外部メモリへ退避させた方が再構成デバイス４と外部メモリ間のデータ転送量が少なくて済む。
【００９８】
本実施例では、コンフィグレーションローダー２が生存区間情報を利用することで、現在の状態以降で生存しない変数を保持している記憶素子については、その内容を外部メモリへ退避させる必要が無いことが分かる。したがって、保持内容を外部メモリへ退避させなければならない記憶素子の数の少ない回路を外部メモリへ退避させることが可能であり、再構成デバイス４と外部メモリ間のデータ転送量を低減した回路の書き換えが可能になる。
【００９９】
本実施例によれば、生存区間情報をコンフィグレーションローダー２の処理で利用することで、例えば回路の再構成時に記憶素子から外部メモリへ退避するデータ量を少なくすることを目的関数として設定し、該目的関数が小さくなるように、好ましくは最小となるように、再構成デバイス内に構築する回路の切り替えを行えば、外部メモリへ退避させる記憶素子の内容を低減することが可能であり、再構成デバイス４と外部メモリ間のデータ転送量を低減できる。このとき、目的関数には退避させたデータの復帰時に正しい動作が保証されることを制約条件として付与することが望ましい。
【０１００】
特に本実施例を上記ＤＲＰのような再構成デバイスを設計するための回路設計支援システムに適用すれば、ＤＲＰが備える回路面の切り替え機構、及び動作中に未使用のコンテキストへのコンフィグレーションコードの書き込みが可能な部分再構成機構により、ＤＲＰ内に構築する回路の切り替え時のオーバーヘッドが圧縮されるため、仮想ＨＷの実現に最適である。
【０１０１】
なお、本実施例では、動作合成によって得られた生存区間情報をコンフィグレーションローダー２でのみ利用する例を示しているため、図１に示したデバッグ装置３は不要であり、それが無い構成であってもよい。すなわち、第５実施例は図１３に示す構成に好適な例である。
（第６実施例）
次に本発明の回路設計支援システムの第６実施例について説明する。
【０１０２】
第６実施例は生存区間情報を基に図１に示したコンフィグレーションローダー（書き込み装置）２による処理を最適化する例である。
【０１０３】
図１４は本発明の回路設計支援システムの第６実施例の処理結果を示す図であり、再構成デバイス内に構築する回路の動作遷移及び生存区間情報を示す模式図である。
【０１０４】
第６実施例では、動作レベル記述を基に生成された再構成デバイス４内に構築する回路の規模が大きく、全ての状態（図１４では状態ＳＴ１〜ＳＴ４）の回路を再構成デバイス４内に一度に構築できず、状態ＳＴ１及び状態ＳＴ２の処理が終了した後、回路を入れ替えながら状態ＳＴ３及び状態ＳＴ４の処理を実行する場合を考える。
【０１０５】
このような場合、再構成デバイス４は、状態ＳＴ２で処理を停止し、内部メモリに格納された回路を外部メモリへ退避させると共に、その回路で使用している記憶素子の内容を全て外部メモリへ退避させ、その後、状態ＳＴ３及び状態ＳＴ４を実現するためのコンフィグレーションコードを外部メモリから読み込む必要がある。
【０１０６】
ここで、図１４に示すように、生存区間情報を参照すると、変数ａの生存区間は状態ＳＴ１〜ＳＴ３であり、変数ｂの生存区間は状態ＳＴ１〜ＳＴ２であり、変数ｃの生存区間は状態ＳＴ３〜ＳＴ４であるため、状態ＳＴ２において外部メモリに退避させなければならないのは変数ａのみであることが分かる。そのため、ここでは変数ａの値のみコンフィグレーションローダー２により外部メモリへ退避させる。
【０１０７】
したがって、本実施例の回路設計支援システムでは、外部メモリへ退避させる記憶素子の内容を低減することが可能であり、再構成デバイス４と外部メモリ間のデータ転送量を低減できる。
【０１０８】
本実施例によれば、第５実施例と同様に、生存区間情報をコンフィグレーションローダー２の処理で利用することで、例えば回路の再構成時に記憶素子から外部メモリへ退避するデータ量を少なくすることを目的関数として設定し、該目的関数が小さくなるように、好ましくは最小となるように、再構成デバイス内に構築する回路の切り替えを行えば、外部メモリへ退避させる記憶素子の内容を低減することが可能であり、再構成デバイス４と外部メモリ間のデータ転送量を低減できる。このとき、目的関数には退避させたデータの復帰時に正しい動作が保証されることを制約条件として付与することが望ましい。
【０１０９】
特に本実施例を上記ＤＲＰのような再構成デバイスを設計するための回路設計支援システムに適用すれば、ＤＲＰが備える回路面の切り替え機構、及び動作中に未使用のコンテキストへのコンフィグレーションコードの書き込みが可能な部分再構成機構により、ＤＲＰ内に構築する回路の切り替え時のオーバーヘッドが圧縮されるため、仮想ＨＷの実現に最適である。
【０１１０】
なお、本実施例では、動作合成によって得られた生存区間情報をコンフィグレーションローダー２でのみ利用する例を示しているため、第５実施例と同様に、図１に示したデバッグ装置３は不要であり、それが無い構成であってもよい。すなわち、第６実施例は図１３に示す構成に好適な例である。
【図面の簡単な説明】
【０１１１】
【図１】本発明の回路設計支援システムの一構成例を示すブロック図である。
【図２】図１に示した動作合成装置の一構成例を示すブロック図である。
【図３】本発明の回路設計支援システムで用いる生存区間情報を説明するための模式図である。
【図４】本発明の回路設計支援システムの第１実施例で用いる動作レベル記述及びその動作合成結果を示す図であり、同図（ａ）は動作合成装置に入力される動作レベル記述例、同図（ｂ）は動作合成後の出力回路を示す回路図、同図（ｃ）は各変数の生存区間を示すテーブル図である。
【図５】本発明の回路設計支援システムの第１実施例の処理結果を示す図であり、同図（ａ）は最適化処理前のデータパス及び生存区間情報を示す模式図、同図（ｂ）は最適化処理後のデータパス及び生存区間情報を示す模式図である。
【図６】第１実施例を適用して好適な回路設計支援システムの構成例を示すブロック図である。
【図７】本発明の回路設計支援システムの第２実施例の処理結果を示す図であり、同図（ａ）は最適化処理前のデータパス及び生存区間情報の一例を示す模式図、同図（ｂ）は最適化処理後のデータパス及び生存区間情報を示す模式図である。
【図８】第２実施例を適用して好適な回路設計支援システムの構成例を示すブロック図である。
【図９】本発明の回路設計支援システムの第３実施例の処理結果を示す図であり、同図（ａ）は動作合成装置に入力される動作レベル記述例、同図（ｂ）は動作合成後の出力回路を示す回路図、同図（ｃ）は各変数の生存区間を示すテーブル図である。
【図１０】第３実施例及び第４実施例を適用して好適な回路設計支援システムの構成例を示すブロック図である。
【図１１】本発明の回路設計支援システムの第４実施例の処理結果を示す図であり、同図（ａ）は動作合成装置に入力される動作レベル記述例、同図（ｂ）は動作合成後の出力回路を示す回路図、同図（ｃ）は各変数の生存区間を示すテーブル図である。
【図１２】本発明の回路設計支援システムの第５実施例の処理結果を示す図であり、同図（ａ）及び（ｂ）は再構成デバイス内に構築する回路の動作遷移及び生存区間情報を示す模式図、同図（ｃ）は回路を入れ替える様子を示す模式図である。
【図１３】第５実施例を適用して好適な回路設計支援システムの構成例を示すブロック図である。
【図１４】本発明の回路設計支援システムの第６実施例の処理結果を示す図であり、再構成デバイス内に構築する回路の動作遷移及び生存区間情報を示す模式図である。
【符号の説明】
【０１１２】
１    動作合成装置
２    コンフィグレーションローダー
３    デバッグ装置
４    再構成デバイス
１０    処理装置
１１    ＣＰＵ
１２    主記憶装置
１３    記録媒体
１４    データ蓄積装置
１５    メモリ制御インタフェース部
１６    Ｉ／Ｏインタフェース部
１７    インタフェース装置
１８    バス
２０    入力装置
３０    出力装置
【図１】
0004706855.tif 000002
【図２】
0004706855.tif 000003
【図３】
0004706855.tif 000004
【図４】
0004706855.tif 000005
【図５】
0004706855.tif 000006
【図６】
0004706855.tif 000007
【図７】
0004706855.tif 000008
【図８】
0004706855.tif 000009
【図９】
0004706855.tif 000010
【図１０】
0004706855.tif 000011
【図１１】
0004706855.tif 000012
【図１２】
0004706855.tif 000013
【図１３】
0004706855.tif 000014
【図１４】
0004706855.tif 000015