(57)【要約】【課題】不具合の原因であるＲＴレベル記述内の指定された部品に対応する動作レベル記述内の要素や動作合成命令を設計者に提示できる回路設計支援システム及び方法を提供する。【解決手段】動作レベル記述を基に動作合成処理を実施し、該動作合成処理の工程毎の処理結果である中間記述及び該動作合成処理の結果であるＲＴレベル記述をそれぞれ生成する動作合成手段と、動作レベル記述とＲＴレベル記述の対応関係を生成する対応生成手段と、ＲＴレベル記述内の指定された部品に対応する動作レベル記述の要素を抽出する対応解析手段とを備える。【選択図】図１
2007102271.tif 000002
【特許請求の範囲】
【請求項１】
動作レベル記述を基に動作合成処理を実施し、該動作合成処理の工程毎の処理結果である中間記述及び該動作合成処理の結果であるＲＴレベル記述をそれぞれ生成する動作合成手段と、
前記動作レベル記述と前記ＲＴレベル記述の対応関係を生成する対応生成手段と、
前記ＲＴレベル記述内の指定された部品に対応する前記動作レベル記述の要素を抽出する対応解析手段と、
を有する回路設計支援システム。
【請求項２】
前記対応生成手段は、
前記中間記述と前記ＲＴレベル記述の対応関係を生成し、
前記対応解析手段は、
前記ＲＴレベル記述内の指定された部品に対応する前記中間記述の要素を抽出する請求項１記載の回路設計支援システム。
【請求項３】
前記対応生成手段は、
前記動作レベル記述と前記中間記述の対応関係を生成し、
前記対応解析手段は、
前記中間記述内の指定された要素に対応する前記動作レベル記述の要素を抽出する請求項１または２記載の回路設計支援システム。
【請求項４】
前記ＲＴレベル記述で表現される回路の性能を解析し、該性能が予め決められた仕様を満たさない原因となる該ＲＴレベル記述内の部品を指定する性能解析手段を、さらに有する請求項１から３のいずれか１項記載の回路設計支援システム。
【請求項５】
前記対応解析手段は、
前記ＲＴレベル記述内の指定された部品を、該ＲＴレベル記述の他の部品と区別して出力装置に表示するための情報を生成する請求項１から４のいずれか１項記載の回路設計支援システム。
【請求項６】
前記対応解析手段は、
前記ＲＴレベル記述内の指定された部品に対応する前記動作レベル記述の要素を、該動作レベル記述の他の要素と区別して出力装置に表示するための情報を生成する請求項１から５のいずれか１項記載の回路設計支援システム。
【請求項７】
前記対応解析手段は、
前記ＲＴレベル記述内の指定された部品に対応する前記中間記述の要素を、該中間記述の他の要素と区別して出力装置に表示するための情報を生成する請求項２から６のいずれか１項記載の回路設計支援システム。
【請求項８】
前記性能解析手段は、
前記ＲＴレベル記述で表現される回路の遅延量を解析する請求項４から７のいずれか１項記載の回路設計支援システム。
【請求項９】
前記性能解析手段は、
前記ＲＴレベル記述で表現される回路の消費電力を解析する請求項４から８のいずれか１項記載の回路設計支援システム。
【請求項１０】
前記性能解析手段は、
前記ＲＴレベル記述で表現される回路の回路面積を解析する請求項４から９のいずれか１項記載の回路設計支援システム。
【請求項１１】
設計者による回路設計を支援するための回路設計支援方法であって、
コンピュータにより、
動作レベル記述を基に動作合成処理を実施し、該動作合成処理の工程毎の処理結果である中間記述及び該動作合成処理の結果であるＲＴレベル記述をそれぞれ生成する動作合成処理と、
前記動作レベル記述と前記ＲＴレベル記述の対応関係を生成する対応生成処理と、
前記ＲＴレベル記述内の指定された部品に対応する前記動作レベル記述の要素を抽出する対応解析処理と、
を実行する回路設計支援方法。
【請求項１２】
前記対応生成処理に、
前記中間記述と前記ＲＴレベル記述の対応関係を生成する処理を含み、
前記対応解析処理に、
前記ＲＴレベル記述内の指定された部品に対応する前記中間記述の要素を抽出する処理を含む請求項１１記載の回路設計支援方法。
【請求項１３】
前記対応生成処理に、
前記動作レベル記述と前記中間記述の対応関係を生成する処理を含み、
前記対応解析処理に、
前記中間記述内の指定された要素に対応する前記動作レベル記述の要素を抽出する処理を含む請求項１１または１２記載の回路設計支援方法。
【請求項１４】
前記ＲＴレベル記述で表現される回路の性能を解析し、該性能が予め決められた仕様を満たさない原因となる該ＲＴレベル記述内の部品を指定する性能解析処理を、さらに有する請求項１１から１３のいずれか１項記載の回路設計支援方法。
【請求項１５】
前記対応解析処理に、
前記ＲＴレベル記述内の指定された部品を、該ＲＴレベル記述の他の部品と区別して出力装置に表示するための情報を生成する処理を含む請求項１１から１４のいずれか１項記載の回路設計支援方法。
【請求項１６】
前記対応解析処理に、
前記ＲＴレベル記述内の指定された部品に対応する前記動作レベル記述の要素を、該動作レベル記述の他の要素と区別して出力装置に表示するための情報を生成する処理を含む請求項１１から１５のいずれか１項記載の回路設計支援方法。
【請求項１７】
前記対応解析処理に、
前記ＲＴレベル記述内の指定された部品に対応する前記中間記述の要素を、該中間記述の他の要素と区別して出力装置に表示するための情報を生成する処理を含む請求項１２から１６のいずれか１項記載の回路設計支援方法。
【請求項１８】
前記性能解析処理に、
前記ＲＴレベル記述で表現される回路の遅延量を解析する処理を含む請求項１４から１７のいずれか１項記載の回路設計支援方法。
【請求項１９】
前記性能解析処理に、
前記ＲＴレベル記述で表現される回路の消費電力を解析する処理を含む請求項１４から１８のいずれか１項記載の回路設計支援方法。
【請求項２０】
前記性能解析処理に、
前記ＲＴレベル記述で表現される回路の回路面積を解析する処理を含む請求項１４から１９のいずれか１項記載の回路設計支援方法。
【請求項２１】
設計者による回路設計の支援をコンピュータに実行させるためのプログラムであって、
動作レベル記述を基に動作合成処理を実施し、該動作合成処理の工程毎の処理結果である中間記述及び該動作合成処理の結果であるＲＴレベル記述をそれぞれ生成する動作合成処理と、
前記動作レベル記述と前記ＲＴレベル記述の対応関係を生成する対応生成処理と、
前記ＲＴレベル記述内の指定された部品に対応する前記動作レベル記述の要素を抽出する対応解析処理と、
をコンピュータに実行させるためのプログラム。
【請求項２２】
前記対応生成処理に、
前記中間記述と前記ＲＴレベル記述の対応関係を生成する処理を含み、
前記対応解析処理に、
前記ＲＴレベル記述内の指定された部品に対応する前記中間記述の要素を抽出する処理を含む請求項２１記載のプログラム。
【請求項２３】
前記対応生成処理に、
前記動作レベル記述と前記中間記述の対応関係を生成する処理を含み、
前記対応解析処理に、
前記中間記述内の指定された要素に対応する前記動作レベル記述の要素を抽出する処理を含む請求項２１または２２記載のプログラム。
【請求項２４】
前記ＲＴレベル記述で表現される回路の性能を解析し、該性能が予め決められた仕様を満たさない原因となる該ＲＴレベル記述内の部品を指定する性能解析処理を、さらに有する請求項２１から２３のいずれか１項記載のプログラム。
【請求項２５】
前記対応解析処理に、
前記ＲＴレベル記述内の指定された部品を、該ＲＴレベル記述の他の部品と区別して出力装置に表示するための情報を生成する処理を含む請求項２１から２４のいずれか１項記載のプログラム。
【請求項２６】
前記対応解析処理に、
前記ＲＴレベル記述内の指定された部品に対応する前記動作レベル記述の要素を、該動作レベル記述の他の要素と区別して出力装置に表示するための情報を生成する処理を含む請求項２１から２５のいずれか１項記載のプログラム。
【請求項２７】
前記対応解析処理に、
前記ＲＴレベル記述内の指定された部品に対応する前記中間記述の要素を、該中間記述の他の要素と区別して出力装置に表示するための情報を生成する処理を含む請求項２２から２６のいずれか１項記載のプログラム。
【請求項２８】
前記性能解析処理に、
前記ＲＴレベル記述で表現される回路の遅延量を解析する処理を含む請求項２４から２７のいずれか１項記載のプログラム。
【請求項２９】
前記性能解析処理に、
前記ＲＴレベル記述で表現される回路の消費電力を解析する処理を含む請求項２４から２８のいずれか１項記載のプログラム。
【請求項３０】
前記性能解析処理に、
前記ＲＴレベル記述で表現される回路の回路面積を解析する処理を含む請求項２４から２９のいずれか１項記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は設計者による回路設計を支援するための回路設計支援システムおよび方法に関する。
【背景技術】
【０００２】
回路設計においては、仕様として与えられた遅延量、回路面積、消費電力等に対する様々な制約条件を満たしながら回路が意図したとおりに確実に動作するように設計することが重要である。しかしながら、近年のＬＳＩやＶＬＳＩ等の半導体集積回路装置は、回路規模のさらなる増大に伴って上述のような制約条件を満足しつつ所望の機能を実現する回路を設計することが益々困難になってきている。そのため、ＬＳＩやＶＬＳＩ等の設計では、設計の支援や設計の一部を自動化する回路設計支援システムが用いられる。この回路設計支援システムの従来の一例が非特許文献１及び特許文献１に記載されている。
【０００３】
図２７は従来の回路設計支援システムの構成を示すブロック図である。
【０００４】
図２７に示すように、従来の回路設計支援システムは、設計者からの指示やデータ及び設計者が作成した動作レベル記述等を入力するための入力装置３０と、回路の動作合成結果や解析結果等を表示するための出力装置４０と、動作レベル記述を基に動作合成処理を実行する動作合成手段１１及び動作合成後の回路の性能を解析する性能解析手段１２として動作するデータ処理装置１０と、動作レベル記述が格納される動作レベル記述記憶部２１、動作合成手段１１によって生成された中間記述が格納される中間記述記憶部２２及び動作合成手段１１によって生成されたＲＴレベル(Register Transfer Level)記述が格納されるＲＴレベル記述記憶部２３を備えた記憶装置２０とを有する構成である。
【０００５】
動作レベル記述は、設計対象の回路動作を、Ｃ言語、Ｃ＋＋言語、あるいはｊａｖａ言語等を用いて表現した記述である。また、ＲＴレベル記述は設計対象の回路をクロック毎の動作にまで具体化した記述であり、中間記述は動作レベル記述からＲＴレベル記述の生成途中で生成される設計対象の回路仕様等を表現した記述である。
【０００６】
このような構成において、設計者は、予め設計対象の回路の動作を記述した動作レベル記述を作成し、回路設計支援システムの記憶装置２０の動作レベル記述記憶部２１へ格納しておく。
【０００７】
動作合成手段１１は、設計者からの指示にしたがって動作レベル記述記憶部２１に格納された動作レベル記述を基に動作合成処理を実行する。動作合成処理には、スケジューリング工程、バインディング工程及び最適化工程が含まれる。
【０００８】
スケジューリング工程は、どの工程（または状態）で、どのような処理や演算等を実行すべきかを決定する。バインディング工程は、動作レベル記述で表現された各処理に対して必要なハードウェアリソース（レジスタや演算器等）を割り当てる。また、最適化工程は、関数呼び出しの解消等のように後工程の処理に適した形式への変換、不要コードの削除、言語レベル最適化による変形処理や後工程としての論理最適化処理等がある。動作合成手段１１は、これら動作合成処理の工程毎に中間記述をそれぞれ生成する。
【０００９】
動作合成手段１１は、動作合成処理の全ての工程が終了すると、ＲＴレベル記述を生成する。生成したＲＴレベル記述は、例えば下流の論理合成工程で具体的な論理回路を示す論理ゲート記述に変換され、レイアウト設計工程で論理ゲート記述から回路パターン等が作成される。
【００１０】
性能解析手段１２は、動作合成手段１１で生成された中間記述やＲＴレベル記述を基に、それらの記述で表現された回路が意図したように動作するか否かを確認する。併せて、設計した回路が、予め決められた遅延量、回路面積、消費電力等に対する制約条件を満たしているか否かを解析する。性能解析手段１２によるＲＴレベル記述から回路面積、遅延量、消費電力等を解析する方法については、例えば特許文献２に記載されている。
【００１１】
従来の回路設計支援システムでは、性能解析手段１２による解析の結果、回路に要求された制約条件（性能）を満たしていない場合は、出力装置４０に表示されたＲＴレベル記述または中間記述から、性能を満たさない原因となる不具合箇所を設計者が発見していた。そして、設計者は発見した不具合箇所に対応する動作レベル記述中の変数、式、文等の要素や動作合成命令を特定し、特定した要素や動作合成命令を修正した後、再度動作合成処理を実施していた。
【００１２】
なお、上記不具合箇所を特定する方法としては、例えば特許文献３に記載された動作合成処理における各工程の処理前と処理後の中間記述間の対応関係を利用することができる。特許文献３では、各工程における処理前の中間記述の変数や文と処理後の中間記述の変数や文の対応関係を生成し、それらの情報を基に発見した不具合箇所に対応する動作レベル記述中の変数、式、文等の要素や動作合成命令を特定している。
【００１３】
また、特許文献４及び特許文献５には、動作合成処理の後に実施される論理合成処理の処理前と処理後の記述を対象とした対応関係の追跡手法が記載されている。特許文献４及び特許文献５は、いずれも論理合成装置に論理合成前と論理合成後の対応関係を出力させ、該対応関係を基に出力記述に対する入力記述の対応箇所を特定している。
【００１４】
特許文献４及び特許文献５で解析対象としている論理合成処理は、入力記述であるＲＴレベル記述と出力記述である論理ゲート記述とではクロック単位での動作が変わらない。一方、動作合成においては、最適化処理、スケジューリング処理、バインディング処理等によって入力記述（動作レベル記述）と出力記述（ＲＴレベル記述）の対応関係が複雑になる。したがって、単純に文どうしの対応関係を追跡するだけではＲＴレベル記述中の不具合箇所に対応する動作レベル記述中の候補を絞り込むことができない。
【００１５】
また、動作合成処理の各工程には、記述の複製や結合処理が含まれているため、特許文献３に記載されたような対応関係は、一般に多対多の関係となる。そのため、設計者はＲＴレベル記述中で発見した不具合箇所に対応する動作レベル記述の要素を見出すために全ての対応関係を追跡する必要があるため、不具合の原因を把握するまでに時間を要してしまう。
【００１６】
なお、従来の回路設計支援システムにおける回路設計は、以下のような手順でも実施される。
【００１７】
まず、動作合成によって得られたＲＴレベル記述を下流の設計工程（論理合成工程）に流す。下流の設計工程においては、回路面積、遅延量、消費電力等について、より詳細な回路性能の見積もりを行う。その結果、設計した回路の性能が仕様を満たしていないと判定された場合、その原因となるＲＴレベル記述内の部品を下流工程の設計者が特定する。そして、特定したＲＴレベル記述の部品に対応する動作レベル記述の要素、または動作合成命令を類推する。最後に上記類推した動作レベル記述の要素や動作合成命令を修正して、再度、動作合成を実施する。
【特許文献１】特開平６−６０１４３号公報
【特許文献２】特開平１０−１８７７８３号公報
【特許文献３】特開２００３−１４１２０２号公報
【特許文献４】特開平５−２６２１号公報
【特許文献５】特開平１０−２２２５５０号公報
【非特許文献１】Daniel Gajsky, Nikil Dutt, Allen, Steve Lin, "HIGH-LEVEL SYNTHESIS", Kluwer Academic Publishers, p1992.
【発明の開示】
【発明が解決しようとする課題】
【００１８】
上述したように、従来の回路設計支援システムでは、動作レベル記述、中間記述及びＲＴレベル記述の対応関係を解析して、ＲＴレベル記述内で発見された不具合箇所に対応する動作レベル記述内の要素や動作合成命令を特定するための仕組みが存在しない。そのため、不具合の原因である動作レベル記述内の要素や動作合成命令を特定することが困難であるという問題がある。
【００１９】
また、従来の回路設計支援システムでは、動作合成処理の下流の設計工程で発見されたＲＴレベル記述内の不具合箇所に対応する動作レベル記述の要素や動作合成命令を特定するための仕組みが存在しない。そのため、不具合の原因である動作レベル記述内の要素や動作合成命令を特定することが困難であるという問題がある。
【００２０】
本発明は上記したような従来の技術が有する問題点を解決するためになされたものであり、不具合の原因であるＲＴレベル記述内の指定された部品に対応する動作レベル記述内の要素や動作合成命令を設計者に提示できる回路設計支援システム及び方法を提供することを目的とする。
【課題を解決するための手段】
【００２１】
上記目的を達成するため本発明の回路設計支援システムは、動作レベル記述を基に動作合成処理を実施し、該動作合成処理の工程毎の処理結果である中間記述及び該動作合成処理の結果であるＲＴレベル記述をそれぞれ生成する動作合成手段と、
前記動作レベル記述と前記ＲＴレベル記述の対応関係を生成する対応生成手段と、
前記ＲＴレベル記述内の指定された部品に対応する前記動作レベル記述の要素を抽出する対応解析手段と、
を有する構成である。
【００２２】
一方、本発明の回路設計支援方法は、設計者による回路設計を支援するための回路設計支援方法であって、
コンピュータにより、
動作レベル記述を基に動作合成処理を実施し、該動作合成処理の工程毎の処理結果である中間記述及び該動作合成処理の結果であるＲＴレベル記述をそれぞれ生成する動作合成処理と、
前記動作レベル記述と前記ＲＴレベル記述の対応関係を生成する対応生成処理と、
前記ＲＴレベル記述内の指定された部品に対応する前記動作レベル記述の要素を抽出する対応解析処理と、
を実行する方法である。
【００２３】
上記のような回路設計支援システム及び方法では、動作レベル記述とＲＴレベル記述の対応関係を生成し、該対応関係に基づいてＲＴレベル記述内の指定された部品に対応する動作レベル記述の要素を抽出するため、ＲＴレベル記述内で発見された不具合の原因となる部品に対応する動作レベル記述の要素を設計者に提示できる。
【発明の効果】
【００２４】
本発明によれば、設計者は不具合の原因であるＲＴレベル記述内の部品に対応する動作レベル記述内の要素を容易に知ることができる。よって、ＲＴレベル記述で表現された回路が性能を満たさない場合に、その原因を把握するまでの時間を短縮できる。また、下流の設計工程で不具合が発見された場合でも、修正に要する時間を短縮できる。
【００２５】
さらに、下流の設計工程で問題となりそうな性能指標について、十分な性能をもつＲＴレベル記述が完成するまで動作レベル記述及び動作合成命令を繰り返し修正できる。よって、下流の設計工程で不具合が発生する可能性が低減するため、回路の設計期間を短縮できる。
【発明を実施するための最良の形態】
【００２６】
次に本発明について図面を参照して説明する。
【００２７】
図１は本発明の回路設計支援システムの一構成例を示すブロック図である。
【００２８】
図１に示すように、本発明の回路設計支援システムは、設計者からの指示や情報及び設計者が作成した動作レベル記述等を入力するための入力装置１２０と、回路の動作合成結果や解析結果等を表示するための出力装置１３０と、動作レベル記述を基に動作合成処理を行うと共に、動作合成後の回路の性能解析及び動作合成前と動作合成後の記述間の対応関係を生成するデータ処理装置１００と、動作レベル記述及びデータ処理装置１００で生成された中間記述、ＲＴレベル記述、対応関係等が格納される記憶装置１１０とを有する構成である。
【００２９】
データ処理装置１００は、動作レベル記述から回路を合成する動作合成手段１０１と、動作レベル記述、中間記述、ＲＴレベル記述及び動作合成手段１０１の動作合成命令の対応関係を生成する対応生成手段１０２と、合成された回路の性能を解析する性能解析手段１０３と、性能解析手段１０３等から指定された不具合の原因であるＲＴレベル記述内の部品に対応する動作レベル記述の要素や動作合成命令を対応生成手段１０２が生成した対応関係を用いて特定する対応解析手段１０４とを備えている。
【００３０】
記憶装置１１０は、動作レベル記述が格納される動作レベル記述記憶部１１１と、動作合成手段１０１によって生成された中間記述が格納される中間記述記憶部１１２と、動作合成手段１０１によって生成されたＲＴレベル記述が格納されるＲＴレベル記述記憶部１１３と、対応生成手段１０２によって生成された対応関係が格納される対応関係記憶部１１４と、動作合成命令が格納される動作合成命令記憶部１１５とを備えている。
【００３１】
動作合成手段１０１は、動作レベル記述記憶部１１１に格納された動作レベル記述を基に、演算実行時間の決定（スケジューリング）、演算に必要なリソースの選択（アロケーション）、リソースの割り当て（バインディング）、及びその他の最適化処理を動作合成命令記憶部１１５に格納された動作合成命令にしたがって実行する。また、動作合成手段１０１は、上記動作合成処理の各工程で生成した中間記述を中間記述記憶部１１２へ格納する。さらに、動作合成結果に基づいてＲＴレベル記述を生成し、生成したＲＴレベル記述をＲＴレベル記述記憶部１１３へ格納する。動作合成手段１０１で実行する処理については、例えば非特許文献１に記載されている。
【００３２】
対応生成手段１０２は、ＲＴレベル記述内のモジュールや配線等の各部品と動作合成処理の各工程で生成された中間記述内の変数、式、文等の各要素との対応関係、中間記述内の各要素と動作レベル記述内の変数、式、文等の各要素との対応関係、ＲＴレベル記述内の各部品と動作レベル記述内の各要素との対応関係、及びＲＴレベル記述内の各部品または中間記述内の各要素と動作合成手段１０１の動作合成命令との対応関係を、例えば表形式でそれぞれ生成し、記憶手段１１０の対応関係記憶部１１４へ格納する。対応生成手段１０２には、動作合成手段１０１の各工程において、どのような対応関係を生成すべきかを指定する規則を予め組み込んでおく。
【００３３】
性能解析手段１０３は、中間記述またはＲＴレベル記述から、遅延量、処理に要するクロックサイクル数、回路面積、消費電力等の回路性能を見積もり、その見積もり結果から回路に要求された制約条件を満たさない原因となる部品を特定する。そして、特定したＲＴレベル記述の部品を他の部品と区別して出力装置１３０に表示するための情報を生成する。性能解析手段１０３の処理結果は、性能解析手段１０３の制御によって出力装置１３０に表示してもよく、データ処理装置１００が備えるその他の手段あるいは不図示の出力装置制御手段の制御によって出力装置１３０に表示してもよい。
【００３４】
対応解析手段１０４は、性能解析手段１０３が特定したＲＴレベル記述内の部品、または入力装置１２０を介して入力された、設計者が指定したＲＴレベル記述内の部品に対応する動作レベル記述の要素、または動作合成手段１０１の動作合成命令を対応関係生成手段１０２が生成した対応関係を用いて特定する。対応解析手段１０４は、動作レベル記述内の特定した要素や動作合成命令を、他の要素や動作合成命令と区別して出力装置１３０に表示するための情報を生成する。対応解析手段１０４の処理結果は、対応解析手段１０４の制御によって出力装置１３０に表示してもよく、データ処理装置１００が備えるその他の手段あるいは不図示の出力装置制御手段の制御によって出力装置１３０に表示してもよい。
【００３５】
なお、本実施形態の回路設計支援システムが有するデータ処理装置１００及び記憶装置１１０は、図１に示した各構成要素の機能を実現するＬＳＩや論理回路等によって構成されていてもよく、図１に示した各構成要素の機能を情報処理装置（コンピュータ）によって実現してもよい。その場合、情報処理装置は、ＣＰＵを含むデータ処理装置と、記憶装置と、記録媒体とを有し、データ処理装置は、記録媒体に格納されたプログラムを読み込み、該プログラムにしたがってＣＰＵにより本実施形態の動作合成手段１０１、対応生成手段１０２、性能解析手段１０３及び対応解析手段１０４の処理をそれぞれ実行する。また、記憶装置は、そのメモリ領域が、動作レベル記述記憶部１１１、中間記述記憶部１１２、ＲＴレベル記述記憶部１１３、対応関係記憶部１１４及び動作合成命令記憶部１１５に分割されてそれぞれ使用される。
【００３６】
次に、図１及び図２を用いて本実施形態の回路設計支援システムの動作について説明する。
【００３７】
図２は図１に示した回路設計支援システムの動作を示すフローチャートである。
【００３８】
図２に示すように、入力装置１２０を介して設計者が作成した動作レベル記述及び動作合成命令が入力されると、データ処理装置１００は、入力された動作レベル記述を動作レベル記述記憶部１１１へ格納し、動作合成命令を動作合成命令記憶部１１５へ格納する（ステップＡ１）。
【００３９】
動作合成手段１０１は、設計者からの指示にしたがって動作レベル記述記憶部１１１に格納された動作レベル記述に基づき動作合成処理を実行する（ステップＡ２）。また、動作合成処理の過程で生成される中間記述を中間記述記憶部１１２へ格納する。
【００４０】
対応生成手段１０２は、動作レベル記述、中間記述、動作合成命令及びＲＴレベル記述間の対応関係をそれぞれ生成し、対応関係記憶部１１４へ格納する（ステップＡ３）。
【００４１】
動作合成手段１０１による動作合成処理及び対応生成手段１０２による対応関係の生成処理は、動作合成処理が終了してＲＴレベル記述が生成されるまで繰り返す（ステップＡ４）。
【００４２】
性能解析手段１０３は、動作合成手段１０１が生成したＲＴレベル記述で表現される回路の性能を解析し（ステップＡ５）、予め決められた回路性能を満たさない場合は、その原因となるＲＴレベル記述の部品を特定する（ステップＡ６）。なお、本実施形態の回路設計支援システムでは、下流の設計工程で不具合箇所が発見された場合のように、設計者がＲＴレベル記述内の不具合の原因となる部品を特定した場合は、入力装置１２０を介して入力されたＲＴレベル記述の部品を以降の工程における解析対象とする（ステップＡ７）。
【００４３】
対応解析手段１０４は、性能解析手段１０３または設計者が指定したＲＴレベル記述の部品に対応する中間記述または動作レベル記述の要素を対応生成手段１０２が生成した対応関係を追跡することで抽出する（ステップＡ８）。対応解析手段１０４で抽出した、指定されたＲＴレベル記述の部品に対応する動作レベル記述または中間記述の要素は、動作レベル記述及び中間記述内に複数存在する可能性があるが、その場合はそれらを全て抽出する。
【００４４】
最後に、対応解析手段１０４は、抽出した中間記述または動作レベル記述の要素を出力装置１３０に区別して表示するための情報を生成する（ステップＡ９）。
【００４５】
本発明によれば、動作レベル記述とＲＴレベル記述の対応関係を対応生成手段１０２で生成し、該対応関係に基づいて対応解析手段１０４がＲＴレベル記述内の指定された部品に対応する動作レベル記述の要素を抽出し、その抽出結果が出力装置１３０に出力されるため、ＲＴレベル記述内の不具合の原因となる部品に対応する動作レベル記述の要素を設計者に提示できる。
【００４６】
したがって、性能解析手段１０３の解析結果によって発見された不具合の原因であるＲＴレベル記述内の部品、あるいは設計者によって指定されたＲＴレベル記述内の部品に対応する動作レベル記述内の要素や動作合成命令を設計者は容易に知ることができる。よって、ＲＴレベル記述で表現された回路が性能を満たさない場合に、その原因を把握するまでの時間を短縮できる。また、下流の設計工程で不具合が発見された場合でも、修正に要する時間を短縮できる。
【００４７】
さらに、下流の設計工程で問題となりそうな性能指標について、予め性能解析手段１０３を用いて解析することで、十分な性能をもつＲＴレベル記述が完成するまで動作レベル記述及び動作合成命令を繰り返し修正できる。よって、下流の設計工程で不具合が発生する可能性が低減するため、回路の設計期間を短縮できる。
【実施例】
【００４８】
次に本発明の回路設計支援システムの実施例について説明する。
【００４９】
（第１実施例）
まず、第１実施例で用いる動作レベル記述の一例を図３に示す。
【００５０】
動作レベル記述は、一般に、Ｃ言語、Ｃ言語に端子やレジスタなどの部品や並列動作が記述できるようハードウェア向けの拡張を施した言語、Ｃ＋＋言語、ＳｙｓｔｅｍＣ、Ｖｅｒｉｌｏｇ−ＨＤＬ、ＶＨＤＬ等を用いて作成される。図３はＣ言語を用いて作成した動作レベル記述の例である。図３に示す動作レベル記述に対して動作合成を実行すると、図４〜図６に示す中間記述が生成される。
【００５１】
図４は、図３に示した動作レベル記述について、変数ｏ１と式ａ＋ｂの等価性を利用して図３の文１−３に示す乗算及び減算を、文２−３に示す一つの減算に置き換える最適化処理を実施した直後の第１の中間記述を示している。
【００５２】
また、図５は図４に示した第１の中間記述を基にスケジューリングが完了した直後の第２の中間記述の例である。図５に示す第２の中間記述のＳＴＡＴＥ１、ＳＴＡＴＥ２、ＳＴＡＴＥ３等のラベルは、回路動作におけるクロックサイクルの境界を示している。例えば、ＳＴＡＴＥ１とＳＴＡＴＥ２間に位置する文３−２及び文３−３は第１のクロックサイクルで実行される。また、ＳＴＡＴＥ２とＳＴＡＴＥ３間に位置する文３−５から３−８は第２のクロックサイクルで実行される。ＳＴＡＴＥ３からプログラムの最後までに位置する文３−１０及び文３−１１は第３のクロックサイクルで実行される。回路はここで処理を終了するかプログラムの先頭から再び実行する。
【００５３】
図６は図５に示した第２の中間記述を基にハードウェア資源のバインディングが完了した直後の第３の中間記述の例である。図中ｒ１、ｒ２はレジスタを示す変数であり、ａｄｄ、ｓｕｂは演算器を示す関数である。
【００５４】
図７（ａ）は図３に示した動作レベル記述から生成されるＲＴレベル記述の一例を示し、図７（ｂ）は図３に示した動作レベル記述から動作合成処理によって得られる回路を示す図である。
【００５５】
ＲＴレベル記述は、一般に、Ｖｅｒｉｌｏｇ−ＨＤＬ、ＶＨＤＬ、ＳｙｓｔｅｍＣ等の言語を用いて記述される。図７（ａ）は、Ｖｅｒｉｌｏｇ−ＨＤＬを用いた記述例である。
【００５６】
動作合成処理によって生成されたＲＴレベル記述は、レジスタや演算器等の部品、及び各部品間のデータ転送を記述している。図中、ｍｕｘ１からｍｕｘ８は、状態毎にデータ転送を実施するマルチプレクサを示している。
【００５７】
例えば、マルチプレクサｍｕｘ１は、第１の引数である信号ＳＴＡＴＥの１ビット目（ＳＴＡＴＥ［１］）の値が「１」のときに出力端子から第２の引数である信号ａの値を出力し、第３の引数である信号ＳＴＡＴＥの２ビット目（ＳＴＡＴＥ［２］）の値が「１」のときに出力端子から第４の引数である信号ｃの値を出力し、第５の引数である信号ＳＴＡＴＥの３ビット目（ＳＴＡＴＥ［３］）の値が「１」のときに出力端子から第６の引数である値「０」を出力する。第７の引数であるａｄｄｉ１は、ｍｕｘ１の出力端子が接続される信号の名前である。
【００５８】
対応生成手段１０２は、動作合成処理の各工程で図８から図１１に示すような対応関係を生成する。動作合成処理の各工程でどのような対応関係を生成するかは、予め規則として対応生成手段１０２に格納しておく。対応生成手段１０２は、動作合成処理によって中間記述が生成される度に、その対応関係を対応関係記憶部１１４に格納できる表形式で生成する。このような処理を繰り返すことで、動作合成処理の終了時には、中間記述、対応関係表、及びＲＴレベル記述がそれぞれ生成される。
【００５９】
例えば、図３に示した動作レベル記述は、動作合成手段１０１の最適化処理によって図４に示した第１の中間記述に変換される。この場合、対応生成手段１０２は図８に示す対応関係表を生成する。
【００６０】
同様に、図４に示した第１の中間記述は、動作合成手段１０１のスケジューリング処理によって図５に示した第２の中間記述に変換される。この場合、対応生成手段１０２は図９に示す対応関係表を生成する。
【００６１】
また、図５に示した第２の中間記述は、動作合成手段１０１のバインディング処理によって図６に示した第３の中間記述に変換される。この場合、対応生成手段１０２は図１０に示す対応関係表を生成する。
【００６２】
さらに、図６に示した第３の中間記述は、動作合成手段１０１の動作合成処理が完了した後に図７（ａ）に示したＲＴレベル記述に変換される。この場合、対応生成手段１０２は図１１に示す対応関係表を生成する。
【００６３】
性能解析手段１０３は、動作合成手段１０１によって生成されたＲＴレベル記述で表現された回路について、その遅延量、動作クロック周波数、実行クロックサイクル数、回路面積、消費電力等の回路性能を解析する。例えば、特許文献１には回路の動作クロックの最高周波数を決定するために、全てのレジスタ間の最大遅延量を静的に求めるための方法が記載されている。この特許文献１に記載された方法にしたがって性能解析手段１０３が解析した結果の一例（レポート）を図１２に示す。
【００６４】
図１２には性能解析手段１０３によって発見された最大遅延を持つパスが経由する点とそれらの点における信号の到着時刻がそれぞれ記載されている。例えば、ＭＵＸ１／ｉ２と併記された数字０．５は、始点ｄから終点ｒ２へ至るパスにおいて、部品ＭＵＸ１の入力端子ｉ２へ信号が到着する時刻が０．５ｎｓ後であることを示している。パスの終点ｒ２へ到着する時刻を参照すれば、このパスの遅延は２．０ｎｓであることが判る。このパスが全てのレジスタを通る最大遅延パスであると仮定すると、この回路は２．０ｎｓ以下の周期をもつクロック、すなわち５００ＭＨｚ以上のクロックでは動作しないことになる。よって、回路に対して５００ＭＨｚよりも高い周波数の動作が要求されている場合、設計者は要求を達成するために動作レベル記述、または動作合成命令を変更しなければならない。
【００６５】
また、図１２に示したレポートを参照することで、最大遅延を持つパスはＲＴレベル記述の部品ｄ、ＭＵＸ４、ｓｕｂ、ｒ２を経由するパスであることが判る。
【００６６】
本発明の回路設計支援システムでは、上記性能解析結果を基にＲＴレベル記述の最大遅延を持つパスに対応する動作レベル記述の要素を対応解析手段１０４により探索する。
【００６７】
例えば、図１１に示した対応関係表を参照すると、ＲＴレベル記述の部品ｄ、ＭＵＸ４、ｓｕｂ１、ｒ２に対応するのは、第３の中間記述の変数ｄ、ｒ２、文４−３、文４−８であることが判る。また、図１０に示した対応関係表を参照すると、第３の中間記述の変数ｄ、ｒ２、文４−３、文４−８に対応するのは、第２の中間記述の変数ｄ、ｏ２_ｔ、ｏ４_ｔ、文３−３、文３−８であることが判る。さらに、図９に示した対応関係表を参照すると、第２の中間記述の変数ｄ、ｏ２_ｔ、ｏ４_ｔ、文３−３、文３−８に対応するのは、第１の中間記述の変数ｄ、ｏ２、ｏ４、文２−３、文２−４であることが判る。ここで、対応解析手段１０４は第２の中間記述を用いて動作レベル記述の対応する要素の候補を絞り込む。追跡対象である変数ｄ、ｏ２_ｔ、ｏ４_ｔは、ＳＴＡＴＥ２及びＳＴＡＴＥ３のみで利用されていることが第２の中間記述から判る。一方、追跡対象である文３−３はＳＴＡＴＥ１において実行される。したがって、文３−３は現在追跡しているパスの候補から除外できるため、第１の中間記述の変数ｄ, ｏ２、ｏ４、文２−４のみを追跡すればよい。最後に、図８に示した対応関係を参照して、最大遅延を持つパスを生成する動作レベル記述は変数ｄ、ｏ２、ｏ４、文１−３であることが判る。以上より、最大遅延パスを生成する動作レベル記述は文１−３であると特定できる。
【００６８】
対応解析手段１０４は、特定した文１−３を他の文と区別して、例えば出力装置１３０にハイライト表示するための情報を生成する。これにより設計者は、性能を改善するためには動作レベル記述の文１−３を書き換えればよいことが判る。
【００６９】
（第２実施例）
第２実施例では、最大遅延量を持つパスのレポートから、条件分岐を利用して性能を満たさない動作レベル記述の要素を特定する例を示す。
【００７０】
第２実施例では、図１３に示す動作レベル記述を動作合成した結果、性能解析手段１０３により図１４に示す最大遅延量を持つパスのレポート（遅延レポート）が得られたとする。
【００７１】
図１３に示した動作レベル記述によれば、文５−１に記載された条件ｘ＜ｙが成立したとき、文５−２の演算が実行され、成立しないときは文５−３の演算が実行される。したがって、文５−２の減算処理と文５−４の減算処理とは同時に実行しないため、図１５（ａ）に示すように動作合成後の回路ではこれらの減算処理に対して同じ演算器ＳＵＢ１が割り当てられている。
【００７２】
一方、図１４に示した遅延レポートを参照すると、最大遅延量を持つパスは、端子ｘ、演算器ＣＭＰ１の端子ｉ１、マルチプレクサＭＵＸ１の端子ｓ１、演算器ＳＵＢ１の端子ｉ１、端子ｏ１を経由するパスであり、それらの部品に対する信号の到着時間がそれぞれ記載されている。
【００７３】
対応解析手段１０４は、この最大遅延を持つパスに対応する動作レベル記述の要素を以下の手順で特定する。
【００７４】
図１５（ｂ）にＲＴレベル記述の部品と動作レベル記述の要素との対応関係を示す。ここでは中間記述の要素とＲＴレベル記述の部品または動作レベル記述の要素との対応関係は省略する。
【００７５】
まず始めに、演算器ＳＵＢ１について対応関係を追跡すると、演算器ＳＵＢ１は動作レベル記述の文５−２及び文５−３に対応していることが判る。同様に、端子ｘ、演算器ＣＭＰ１、端子ｏ１について追跡すると、これらの部品は動作レベル記述の文５−２及び文５−３に対応していることが判る。
【００７６】
マルチプレクサＭＵＸ１、ＭＵＸ２は、一方の制御端子ｓ１に値「１」が入力されたとき、対応するデータ入力端子ｉ１の値を選択して出力し、他方の制御端子ｓ２に値「１」が入力されたとき、対応するデータ入力端子ｉ２の値を選択して出力端子ｏ１から出力する部品である。
【００７７】
図１４に示したように、最大遅延量を持つパスにはＭＵＸ１の制御端子ｓ１が含まれているが、このＭＵＸ１の制御端子ｓ１に対する入力は分岐条件であるため、最大遅延量を持つパスに対応するのは文５−１の条件が成立したとき、すなわち文５−２であることが判る。
【００７８】
以上より、対応解析手段１０４は、設計者に対して動作レベル記述内の文５−２を修正候補として提示する。
【００７９】
（第３実施例）
第３実施例では、部品毎の回路面積のレポートから、ビット幅情報を利用して対応する動作レベル記述の要素を特定する例を示す。
【００８０】
第３実施例では、図１６に示す動作レベル記述を動作合成し、性能解析手段１０３により図１７に示す部品毎の回路面積のレポート（面積レポート）が得られたとする。
【００８１】
図１７に示す面積レポートを参照すると、演算器ＭＵＬ１の面積が９８００、演算器ＭＵＬ２の面積が１２００であることが判る。
【００８２】
対応解析手段１０４は、この最大の回路面積を持つ演算器ＭＵＬ１に対応する動作レベル記述の要素を以下の手順で特定する。
【００８３】
まず、図１８（ｂ）に示す対応関係を解析すると、演算器ＭＵＬ１は文６−１と文６−２から生成されていることが判る。この２つの演算の入力信号のビット幅に着目すると、文６−１の演算は８ビット幅のｃｈａｒ型変数ａとｂの乗算である。また、文６−２の演算は３２ビット幅のｉｎｔ型変数ｃとｄの乗算である。
【００８４】
文６−１と文６−２は、共に演算器ＭＵＬ１に割り当てられた演算であるが、回路面積を増大させるのはビット幅の大きいｉｎｔ型の変数の演算であるため、回路面積を増大させている動作レベル記述は文６−２と特定できる。
【００８５】
以上より、対応解析手段１０４は、設計者に対して動作レベル記述の文６−２を修正候補として提示する。
【００８６】
（第４実施例）
第４実施例では、部品毎の消費電力のレポートから、ループカウンタの値、スケジューリング結果及び対応関係を利用して、対応する動作レベル記述を特定する例を示す。
【００８７】
第４実施例では、図１９に示す動作レベル記述を動作合成し、性能解析手段１０３により図２０に示す部品毎の消費電力のレポート（電力レポート）が得られたとする。なお、図２０に示すＲＥＧ１、ＲＥＧ２はレジスタ、ＭＵＬは乗算を実行する演算器、ＣＭＰ１は比較処理を実行する演算器である。
【００８８】
図２０に示した電力レポートでは、消費電力が最大となるのは時刻１００ｎｓであり、その時点における部品毎の消費電力は、ＲＥＧ１が１００ｕＷ、ＲＥＧ２が１００ｕＷ、ＭＵＬが３００ｕＷ、ＣＭＰが２００ｕＷである。また、レジスタＲＥＧ１、ＲＥＧ２に格納される値は１５、３００である。
【００８９】
対応解析手段１０４は、この消費電力が最大となる時刻１００ｎｓにおいて、最大の電力を消費している演算器ＭＵＬに対応する動作レベル記述の要素を以下の手順で特定する。
【００９０】
まず、図２１に示す対応関係を参照すると、演算器ＭＵＬは文７−３から生成されていることが判る。図１９に示すように、文７−３はｆｏｒループの内部に存在し、このループはｎ回実行されるため、ｎ回のうちどの実行時に消費電力が最大となるのか特定できない。
【００９１】
そこで、別の部品ＲＥＧ１の対応関係を追跡すると、ＲＥＧ１は変数ｉから生成され、変数ｉはｆｏｒ文のカウンタとして利用されていることが文７−２から判る。よって、時刻１００ｎｓにおけるＲＥＧ１の値から、電力が最大となるのは１５回目のｆｏｒループの実行時であることが判る。
【００９２】
対応解析手段１０４は、出力装置１３０に上記の特定結果を表示するための情報を生成することで設計者に提示する。設計者は、消費電力を低下させるために１５回目のループ実行時における演算の電力を低減すればよいことが判る。
【００９３】
（第５実施例）
第５実施例では、最大遅延量を持つパスのレポートから動作合成命令を特定する例を示す。
【００９４】
第５実施例では、図２２に示す動作レベル記述から図２３に示す動作合成命令を用いて動作合成処理を実行し、性能解析手段１０３により図２４に示す最大の遅延量を持つパスのレポート（遅延レポート）が得られたとする。なお、図２３に示すｒｅａｄは動作レベル記述記憶部１１１に格納された動作レベル記述を記憶装置の作業用の領域に移動する命令であり、ｆａｃｔｏｉｚｅ_ｏｎは因数分解の最適化を有効にする命令であり、ｓｙｎｔｈｅｓｉｚｅは動作合成処理を実施する命令である。
【００９５】
図２４に示す遅延レポートを参照すると、回路の最大遅延量を持つパスは、端子ａ、演算器ＭＵＬの端子ｉ１、演算器ＡＤＤ１の端子ｉ１、端子ｏ１を通るパスであることが判る。
【００９６】
対応解析手段１０４は、この最大遅延量を持つパスに対応する動作レベル記述の要素を以下の手順で特定する。
【００９７】
図２６に示す対応関係より、この遅延レポートに存在する部品は動作レベル記述の文８−１に対応することが判る。また、図２５に示す動作合成手段１０１による最適化処理直後の中間記述、及び図２６に示す対応関係を参照すると、図２５に示す中間記述は因数分解最適化を有効にする動作合成命令ｆａｃｔｏｒｉｚｅ_ｏｎによって生成されたことが判る。
【００９８】
したがって、最大遅延量を持つパスは動作レベル記述の文8-1によって生成され、かつ因数分解最適化によって遅延が増大していることが判る。
【００９９】
対応解析手段１０４は、出力装置１３０に上記の特定結果を表示するための情報を生成することで設計者に提示する。設計者はこの因数分解最適化を回避することによる遅延の改善を検討できる。
【図面の簡単な説明】
【０１００】
【図１】本発明の回路設計支援システムの一構成例を示すブロック図である。
【図２】図１に示した回路設計支援システムの動作を示すフローチャートである。
【図３】本発明の回路設計支援システムの第１実施例で用いる動作レベル記述を示す図である。
【図４】図３に示した動作レベル記述に対して最適化処理を実施した直後の中間記述の一例を示す図である。
【図５】図４に示した中間記述に対してスケジューリング処理を実施した直後の中間記述の一例を示す図である。
【図６】図５に示した中間記述に対してバインディング処理を実施した直後の中間記述の一例を示す図である。
【図７】図３に示した動作レベル記述から生成したＲＴレベル記述の一例、及び動作合成で得られた回路を示す図である。
【図８】図３に示した動作レベル記述と図４に示した中間記述の対応関係の一例を示す図である。
【図９】図４に示した中間記述と図５に示した中間記述の対応関係の一例を示す図である。
【図１０】図５に示した中間記述と図６に示した中間記述の対応関係の一例を示す図である。
【図１１】図６に示した中間記述と図７に示したＲＴレベル記述の対応関係の一例を示す図である。
【図１２】図７に示したＲＴレベル記述を解析して得られた最大遅延経路のレポートの一例を示す図である。
【図１３】本発明の回路設計支援システムの第２実施例で用いる動作レベル記述を示す図である。
【図１４】図１３に示した動作レベル記述の動作合成結果を解析して得られた最大遅延経路のレポートの一例を示す図である。
【図１５】図１３に示した動作レベル記述から動作合成によって得られた回路及び対応関係の一例を示す図である。
【図１６】本発明の回路設計支援システムの第３実施例で用いる動作レベル記述を示す図である。
【図１７】図１６に示した動作レベル記述の動作合成結果を解析して得られた回路面積のレポートの一例を示す図である。
【図１８】図１６に示した動作レベル記述から動作合成によって得られた回路及び対応関係の一例を示す図である。
【図１９】本発明の回路設計支援システムの第４実施例で用いる動作レベル記述を示す図である。
【図２０】図１９に示した動作レベル記述の動作合成結果を解析して得られた最大消費電力のレポートの一例を示す図である。
【図２１】図１９に示した動作レベル記述から動作合成によって得られた回路部品と動作レベル記述の対応関係の一例を示す図である。
【図２２】本発明の回路設計支援システムの第５実施例で用いる動作レベル記述を示す図である。
【図２３】本発明の回路設計支援システムの第５実施例で用いる動作合成命令を示す図である。
【図２４】図２２に示した動作レベル記述の動作合成結果を解析して得られた最大遅延経路のレポートの一例を示す図である。
【図２５】図２２に示した動作レベル記述から動作合成によって得られた中間記述の一例を示す図である。
【図２６】図２２に示した動作合成記述、図２３に示した動作合成命令、図２４に示した回路部品及び図２５に示した中間記述の対応関係の一例を示す図である。
【図２７】従来の回路設計支援システムの構成を示すブロック図である。
【符号の説明】
【０１０１】
１００    データ処理装置
１０１    動作合成手段
１０２    対応生成手段
１０３    性能解析手段
１０４    対応解析手段
１１０    記憶装置
１１１    動作レベル記述記憶部
１１２    中間記述記憶部
１１３    ＲＴレベル記述記憶部
１１４    対応関係記憶部
１１５    動作合成命令記憶部
１２０    入力装置
１３０    出力装置
【図１】
2007102271.tif 000003
【図２】
2007102271.tif 000004
【図３】
2007102271.tif 000005
【図４】
2007102271.tif 000006
【図５】
2007102271.tif 000007
【図６】
2007102271.tif 000008
【図７】
2007102271.tif 000009
【図８】
2007102271.tif 000010
【図９】
2007102271.tif 000011
【図１０】
2007102271.tif 000012
【図１１】
2007102271.tif 000013
【図１２】
2007102271.tif 000014
【図１３】
2007102271.tif 000015
【図１４】
2007102271.tif 000016
【図１５】
2007102271.tif 000017
【図１６】
2007102271.tif 000018
【図１７】
2007102271.tif 000019
【図１８】
2007102271.tif 000020
【図１９】
2007102271.tif 000021
【図２０】
2007102271.tif 000022
【図２１】
2007102271.tif 000023
【図２２】
2007102271.tif 000024
【図２３】
2007102271.tif 000025
【図２４】
2007102271.tif 000026
【図２５】
2007102271.tif 000027
【図２６】
2007102271.tif 000028
【図２７】
2007102271.tif 000029