(57)【要約】【課題】  各設計工程の設計情報の関係を容易に把握することのできる回路設計支援装置として機能する情報処理装置及びその制御方法、並びにコンピュータプログラム及びコンピュータ可読記憶媒体を提供する。【解決手段】  回路設計を支援する回路設計支援装置として機能する情報処理装置であって、回路の動作を記述した動作情報を保持する動作情報保持手段と、前記動作情報からより具体的な回路構成を決定するために必要な設計情報を保持する設計情報保持手段と、前記動作情報と前記設計情報とを関連づけ、該関連づけに関する情報を関連づけ情報として保持する関連づけ手段と、前記保持された動作情報、設計情報、関連づけ情報に基づいて回路設計を実行する回路設計手段とを備える。【選択図】  図３
2006139624.tif 000002
【特許請求の範囲】
【請求項１】
回路設計を支援する回路設計支援装置として機能する情報処理装置であって、
回路の動作を記述した動作情報を保持する動作情報保持手段と、
前記動作情報からより具体的な回路構成を決定するために必要な設計情報を保持する設計情報保持手段と、
前記動作情報と前記設計情報とを関連づけ、該関連づけに関する情報を関連づけ情報として保持する関連づけ手段と、
前記保持された動作情報、設計情報、関連づけ情報に基づいて回路設計を実行する回路設計手段とを備えることを特徴とする情報処理装置。
【請求項２】
前記動作情報を入力する動作情報入力手段を更に備えることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記設計情報を入力する設計情報入力手段を更に備えることを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
前記回路設計手段はＲＴＬモデルを出力する動作合成手段を含むことを特徴とする請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項５】
前記動作合成手段は、更に動作合成に関する制約条件を動作合成制約条件として入力し、該動作合成制約条件に基づいて前記ＲＴＬモデルを出力することを特徴とする請求項４に記載の情報処理装置。
【請求項６】
前記動作合成制約条件はハードウエアリソースの共有に関する方針に関する条件を含むことを特徴とする請求項５に記載の情報処理装置。
【請求項７】
前記動作合成手段は、更に前記ＲＴＬモデルと前記設計情報との関連づけに関するＲＴＬ関連づけ情報を出力することを特徴とする請求項４乃至６のいずれか１項に記載の情報処理装置。
【請求項８】
前記回路設計手段はＧＡＴＥモデルを出力する論理合成手段を含むことを特徴とする請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項９】
前記論理合成手段は、更に論理合成に関する制約条件を論理合成制約条件として入力し、該論理合成制約条件に基づいて前記ＧＡＴＥモデルを出力することを特徴とする請求項８に記載の情報処理装置。
【請求項１０】
前記論理合成手段は、更に前記ＧＡＴＥモデルと前記設計情報との関連づけに関するＧＡＴＥ関連づけ情報を出力することを特徴とする請求項８又は９に記載の情報処理装置。
【請求項１１】
該詳細回路設計情報を保持する詳細回路設計情報保持手段と、
前記動作情報と前記詳細回路設計情報とを関連づけ、該関連づけに関する情報を詳細関連づけ情報として保持する詳細関連づけ手段と、
前記動作情報、前記詳細回路設計情報、前記詳細関連づけ情報、前記ＲＴＬモデル、前記ＲＴＬ関連づけ情報を入力し、ＧＡＴＥモデルを出力する論理合成手段とを更に備えることを特徴とする請求項７に記載の情報処理装置。
【請求項１２】
前記論理合成手段は、更に論理合成に関する制約条件を論理合成制約条件として入力し、該論理合成制約条件に基づいて前記ＧＡＴＥモデルを出力することを特徴とする請求項１１に記載の情報処理装置。
【請求項１３】
前記論理合成手段は、更に前記ＲＴＬモデルと前記ＧＡＴＥモデルとの関連づけに関するＧＡＴＥ関連づけ情報を出力することを特徴とする請求項１１又は１２に記載の情報処理装置。
【請求項１４】
回路設計を支援する回路設計支援装置として機能する情報処理装置の制御方法であって、
回路の動作を記述した動作情報を記憶手段に保持する動作情報保持工程と、
前記動作情報からより具体的な回路構成を決定するために必要な設計情報を記憶手段に保持する設計情報保持工程と、
前記動作情報と前記設計情報とを関連づけ、該関連づけに関する情報を関連づけ情報として記憶手段に保持する関連づけ工程と、
前記保持された動作情報、設計情報、関連づけ情報に基づいて回路設計を実行する回路設計工程とを備えることを特徴とする情報処理装置の制御方法。
【請求項１５】
前記動作情報を入力する動作情報入力工程を更に備えることを特徴とする請求項１４に記載の情報処理装置の制御方法。
【請求項１６】
前記設計情報を入力する設計情報入力工程を更に備えることを特徴とする請求項１４又は１５に記載の情報処理装置の制御方法。
【請求項１７】
前記回路設計工程はＲＴＬモデルを出力する動作合成工程を含むことを特徴とする請求項１４乃至１６のいずれか１項に記載の情報処理装置の制御方法。
【請求項１８】
前記動作合成工程は、更に動作合成に関する制約条件を動作合成制約条件として入力し、該動作合成制約条件に基づいて前記ＲＴＬモデルを出力することを特徴とする請求項１７に記載の情報処理装置の制御方法。
【請求項１９】
前記動作合成制約条件はハードウエアリソースの共有に関する方針に関する条件を含むことを特徴とする請求項１８に記載の情報処理装置の制御方法。
【請求項２０】
前記動作合成工程は、更に前記ＲＴＬモデルと前記設計情報との関連づけに関するＲＴＬ関連づけ情報を出力することを特徴とする請求項１７乃至１９のいずれか１項に記載の情報処理装置の制御方法。
【請求項２１】
前記回路設計工程はＧＡＴＥモデルを出力する論理合成工程を含むことを特徴とする請求項１４乃至１６のいずれか１項に記載の情報処理装置の制御方法。
【請求項２２】
前記論理合成工程は、更に論理合成に関する制約条件を論理合成制約条件として入力し、該論理合成制約条件に基づいて前記ＧＡＴＥモデルを出力することを特徴とする請求項２１に記載の情報処理装置の制御方法。
【請求項２３】
前記論理合成工程は、更に前記ＧＡＴＥモデルと前記設計情報との関連づけに関するＧＡＴＥ関連づけ情報を出力することを特徴とする請求項２１又は２２に記載の情報処理装置の制御方法。
【請求項２４】
該詳細回路設計情報を記憶手段に保持する詳細回路設計情報保持工程と、
前記動作情報と前記詳細回路設計情報とを関連づけ、該関連づけに関する情報を詳細関連づけ情報として記憶手段に保持する詳細関連づけ工程と、
前記動作情報、前記詳細回路設計情報、前記詳細関連づけ情報、前記ＲＴＬモデル、前記ＲＴＬ関連づけ情報を入力し、ＧＡＴＥモデルを出力する論理合成工程とを更に備えることを特徴とする請求項２０に記載の情報処理装置の制御方法。
【請求項２５】
前記論理合成工程は、更に論理合成に関する制約条件を論理合成制約条件として入力し、該論理合成制約条件に基づいて前記ＧＡＴＥモデルを出力することを特徴とする請求項２４に記載の情報処理装置の制御方法。
【請求項２６】
前記論理合成工程は、更に前記ＲＴＬモデルと前記ＧＡＴＥモデルとの関連づけに関するＧＡＴＥ関連づけ情報を出力することを特徴とする請求項２４又は２５に記載の情報処理装置の制御方法。
【請求項２７】
請求項１４乃至２６のいずれか１項に記載の情報処理装置の制御方法を実行するためのコンピュータプログラム。
【請求項２８】
請求項２７に記載のコンピュータプログラムを格納したことを特徴とするコンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は回路設計支援システムに関し、特に動作設計情報から論理回路を自動的に合成する設計支援システムに関する。
【背景技術】
【０００２】
従来より、ある機能を回路化し、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ：特定用途向けＩＣ）等のチップ部品を製造する場合において、回路設計を支援する技術が利用されている。
【０００３】
回路設計は、主に、動作設計工程、基本回路設計工程、詳細回路設計工程という３つの工程から構成される。
【０００４】
動作設計工程では、チップ部品に盛り込みたい機能（要求仕様）をアルゴリズムとして定義し、Ｃ言語を用いてアルゴリズムを記述する。このアルゴリズムを記述する行為は動作設計、或いは、アルゴリズム設計と呼ばれる。また、この時に作成されるファイルは動作設計情報（動作情報）、Ｃモデル、或いは、動作記述と呼ばれる。
【０００５】
基本回路設計工程では、上記Ｃモデルを「ＶＨＤＬ（ＶＨＳＩＣ  Ｈａｒｄｗａｒｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）」や「Ｖｅｒｉｌｏｇ−ＨＤＬ」等のＨＤＬ（Ｈａｒｄｗａｒｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ：ハードウェア記述言語）を用いた回路記述に変換する。この時、上記Ｃモデルに回路特有の情報（基本回路設計情報と呼ぶ）を付加し、基本回路設計情報を付加されたＣモデルについて変換を行う。尚、基本回路設計によって生成されるＨＤＬ言語の回路記述のファイルはＲＴＬ（Ｒｅｇｉｓｔｅｒ  Ｔｒａｎｓｆｅｒ  Ｌｅｖｅｌ）モデルと呼ばれる。
【０００６】
従来より、予め用意されたライブラリを用いてＣモデル（Ｃ言語）をＲＴＬモデル（ＨＤＬ言語）に自動変換（動作合成、又は、高位合成と呼ばれる）する、動作合成装置の技術が知られている（特許文献１）。設計者は、動作合成装置に動作合成の制約条件や動作合成の方法等を指定することで、動作合成の方法、つまりＣモデルからＲＴＬモデルへの変換の方法を制御することができる。
【０００７】
詳細回路設計工程では、上記ＲＴＬモデルをゲートレベルの回路記述ファイルに変換する。この時、上記ＲＴＬモデルに更に低レベルの設計情報（詳細回路設計情報と呼ぶ）を付加し、詳細回路設計情報を付加されたＲＴＬモデルについて変換を行う。尚、この変換行為は論理合成と呼ばれる。また、この時に作成する回路記述ファイルはＧＡＴＥモデルと呼ばれる。
【０００８】
従来より、予め用意されたライブラリを用いてＲＴＬモデルをＧＡＴＥモデルに自動変換する、論理合成装置に関する技術が知られている。設計者は、論理合成装置に論理合成の制約条件や論理合成の方法等を指定することで、論理合成の方法、つまりＲＴＬモデルからＧＡＴＥモデルへの変換の方法を制御することができる。
【０００９】
これまでに述べた回路設計支援技術は、工程間に必要となるモデルの変換を自動化することで、設計者の負担を軽減し、設計工程全体の設計期間を短縮化している。
【特許文献１】特開平１０−１１６３０２号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
しかしながら、従来の回路設計支援技術においては、工程間のモデルを合成装置が自動的に変換するため、設計者は変換後の各モデルの内容を把握することが困難であった。例えば、動作合成装置を用いてハードウェアリソースを共有した設計を行う場合、設計者が動作合成装置への入力であるＣモデルの一部を変更すると、ハードウェアリソースの共有のし方も変化してしまうことがあった。このため、設計者はハードウェアリソース共有がどのようになされているかについて気を配る必要があった。
【００１１】
従って、動作設計工程でＣモデルを変更するときに、その変更内容がＲＴＬモデルやＧＡＴＥモデルにどのように影響を与えるかを設計者に、直感的に伝える手法が望まれていた。
【００１２】
また、従来技術においては、Ｃモデルに設計情報を付加していく過程で、Ｃモデル（動作設計情報）がＣ言語の標準仕様を満たさない記述に変更されていた。このためＣモデルの再利用性が失われてしまっていた。
【００１３】
また、各設計工程特有の設計情報は互いに関連することなく別個に扱われていたため、設計者自身が各工程特有の設計情報を管理しなければならなかった。
【００１４】
本発明は上記問題に鑑みなされたものであり、各設計工程の設計情報の関係を容易に把握することのできる回路設計支援装置として機能する情報処理装置及びその制御方法、並びにコンピュータプログラム及びコンピュータ可読記憶媒体を提供することを目的とする。
【課題を解決するための手段】
【００１５】
上記目的を達成するため、例えば本発明による情報処理装置は以下の構成を備える。即ち、
回路設計を支援する回路設計支援装置として機能する情報処理装置であって、
回路の動作を記述した動作情報を保持する動作情報保持手段と、
前記動作情報からより具体的な回路構成を決定するために必要な設計情報を保持する設計情報保持手段と、
前記動作情報と前記設計情報とを関連づけ、該関連づけに関する情報を関連づけ情報として保持する関連づけ手段と、
前記保持された動作情報、設計情報、関連づけ情報に基づいて回路設計を実行する回路設計手段とを備える。
【発明の効果】
【００１６】
本発明によれば、各設計工程の設計情報の関係を容易に把握することのできる回路設計支援装置として機能する情報処理装置及びその制御方法、並びにコンピュータプログラム及びコンピュータ可読記憶媒体を提供することができる。
【発明を実施するための最良の形態】
【００１７】
＜前提技術＞
まず、従来の、一般的な動作合成装置を用いた設計フローについて図１を用いて説明する。先に述べたように、設計フローは動作設計工程、基本回路設計工程、詳細回路設計工程の各工程から構成される。
【００１８】
まず、動作設計工程において、与えられた要求仕様を満たすために、設計者は、要求仕様をアルゴリズムとして定義してそのアルゴリズムをＣ言語で記述する、動作設計１００を行う。この時、作成されるファイルをＣモデル１１０と呼ぶ。Ｃモデル１１０の作成は、テキストエディタ等のアプリケーションを用いて行う。
【００１９】
次に、基本回路設計工程において、Ｃモデル１１０に基本回路設計情報を付加してＣモデル２（１１２）を作成し、Ｃモデル２（１１２）と動作合成制約条件等１３０とを動作合成装置１２０に入力してＲＴＬモデル１１４を生成する。基本回路設計工程の処理の詳細は以下の通りである。
【００２０】
設計者は、Ｃモデル１１０に対して、Ｃモデル１１０には含まれない回路特有の設計情報（基本回路設計情報）を付加する。この作業を基本回路設計１０２と呼ぶ。また、基本回路設計１０２の結果生成されるファイルを、Ｃモデル２（１１２）と呼ぶ。
【００２１】
尚、基本回路設計情報には、例えば、変数のビット幅等が含まれる。変数のビット幅は変数の取り扱える範囲であるが、Ｃ言語では、コンピュータの処理系により８ビット、１６ビット、３２ビット等に定められている。しかし、一般的な回路設計では、ゲート規模が余剰にならないようにするために、変数のビット幅の余剰をなくし、最小限のビット幅を指定するようにする。尚、基本回路設計情報は、動作合成装置１２０が処理可能な形式で記述される。
【００２２】
設計者は、Ｃモデル１１０及び基本回路設計情報から構成されるＣモデル２（１１２）を動作合成装置１２０に入力する。
【００２３】
次に、設計者は、動作合成装置１２０をコントロールするために、動作合成制約条件や動作合成方法（以下、動作合成制約条件等と呼ぶ）１３０を指定する。指定のし方はファイル形式で動作合成装置１２０へ入力しても良いし、動作合成装置１２０を起動するときに実行オプションとして入力しても良い。動作合成制約条件等１３０には、例えば、回路の動作周波数や、回路の指定（パイプライン回路、シーケンサ回路等）、半導体テクノロジ・ライブラリの指定等が含まれる。動作合成制約条件等１３０を設定することにより、例えば、レジスタや演算器やメモリといったハードウェアリソースを積極的に共有し、回路規模を抑えるように動作合成したり、或いは、回路規模が大きくなっても高速性を優先するといった、変換の方針を指定することができる。
【００２４】
動作合成装置１２０は、Ｃモデル２（１１２）と動作合成制約条件等１３０とを処理し、ＲＴＬモデル１１４を出力する。動作合成装置１２０は、例えば、ＰＣ上で動作するアプリケーション・プログラムとして構成することができる。
【００２５】
次に、詳細回路設計工程において、ＲＴＬモデル１１４に抽象度の低い回路特有の設計情報（詳細回路設計情報）を付加したＲＴＬモデル２（１１６）と、論理合成制約条件や論理合成方法（以下、論理合成制約条件等と呼ぶ）１３２とを論理合成装置１２２に入力し、ＧＡＴＥモデル１１８を生成する。詳細回路設計工程の処理の詳細は以下のとおりである。
【００２６】
設計者は、ＲＴＬモデル１１４に対して、ＲＴＬモデル１１４には含まれない抽象度の低い回路特有の詳細回路設計情報を付加する。この処理を詳細回路設計１０４と呼ぶ。また、詳細回路設計１０４の結果生成されるファイルを、ＲＴＬモデル２（１１６）と呼ぶ。
【００２７】
尚、詳細回路設計情報には、例えば、乗算器回路の指定等が含まれる。ＲＴＬモデル１１４において、乗算演算は“＊”という記号で表現されるだけだが、ＧＡＴＥモデルでは、Ｗａｌｌａｃｅ  Ｔｒｅｅ演算器、Ｃａｒｒｙ  Ｓａｖｅ  Ａｒｒａｙ演算器等の乗算器回路として表現される。このような乗算器回路の指定等が詳細回路設計１０４において付加される詳細回路設計情報に含まれる。尚、詳細回路設計情報は、論理合成装置１２２が処理可能な形式で記述される。
【００２８】
設計者は、ＲＴＬモデル１１４及び抽象度の高い詳細回路設計情報から構成されるＲＴＬモデル２（１１６）を論理合成装置１２２に入力する。
【００２９】
次に、設計者は、論理合成装置１２２をコントロールするために、論理合成制約条件等１３２を指定する。指定のし方はファイル形式で論理合成装置１２２へ入力しても良いし、論理合成装置１２２を起動するときに実行オプションとして入力しても良い。
【００３０】
論理合成制約条件等１３２には、例えば、回路の動作周波数や、デザインコンパイラの指定、半導体テクノロジ・ライブラリの指定等が含まれるが、これらのパラメータは動作合成制約条件等１３０のパラメータよりも抽象度が低いものとなる。
【００３１】
論理合成装置１２２は、ＲＴＬモデル２（１１６）と論理合成制約条件等１３２とを処理し、ＧＡＴＥモデル１１８を出力する。論理合成装置１２２は、例えば、ＰＣ上で動作するアプリケーション・プログラムとして構成することができる。
【００３２】
図１に示した、一般的な動作合成装置を組み入れた設計フローでは、上流工程から下流工程へ進むに従って、設計モデルがより抽象度の低い記述へ書き換えられていくことになる。以下の説明において、これまでに述べた内容等に触れられている場合、特に断りがない限り、その内容は＜前提技術＞で述べた内容と同内容とする。
【００３３】
＜装置構成＞
次に、添付図面を参照して本発明に係る実施の形態を詳細に説明する。ただし、この実施の形態に記載されている構成要素はあくまでも例示であり、この発明の範囲をそれらのみに限定する趣旨のものではない。
【００３４】
まず、実施形態の１つである設計支援装置の概略について説明する。本実施形態では、ＰＣ等の一般的な情報処理装置を用いて設計支援装置を実現する場合について説明するが、本発明の実施形態がこれに限られるものではないことは言うまでもない。以下、設計支援装置として機能する情報処理装置を、単に設計支援装置と呼ぶ。図７は、設計支援装置（として機能する情報処理装置）の機器構成を示すブロック図である。
【００３５】
図７において、７００はＣＰＵであり、後述するハードディスク装置（以下、ＨＤと呼ぶ）７０５に格納されているアプリケーションプログラム、オペレーティングシステム（ＯＳ）や制御プログラム等を実行し、ＲＡＭ７０２にプログラムの実行に必要な情報、ファイル等を一時的に格納する制御を行う。
【００３６】
７０１はＲＯＭであり、内部には基本Ｉ／Ｏプログラム等のプログラム、文書処理の際に使用するフォントデータ、テンプレート用データ等の各種データを記憶する。７０２は各種データを一時記憶するためのＲＡＭであり、ＣＰＵ７００の主メモリ、ワークエリア等として機能する。
【００３７】
７０３は記録媒体へのアクセスを実現するための外部記憶ドライブであり、メディア（記録媒体）７０４に記憶されたプログラム等を本コンピュータシステムにロードすることができる。尚、メディア７０４は、例えば、フレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＰＣカード、ＤＶＤ、ＩＣメモリカード、ＭＯ、メモリスティック等、任意である。
【００３８】
７０５は外部記憶装置であり、本実施形態では大容量メモリとして機能するＨＤを用いている。ＨＤ７０５には、アプリケーションプログラム、ＯＳ、制御プログラム、関連プログラム等が格納される。
【００３９】
７０６は指示入力装置であり、キーボードやポインティングデバイス（マウス等）、タッチパネル等がこれに相当する。指示入力装置７０６を用いて、ユーザは、クライアント１０１に対して、装置を制御するコマンド等を入力指示する。
【００４０】
７０７はディスプレイであり、指示入力装置７０６から入力したコマンドや、それに対するクライアント１０１の応答出力等を表示したりするものである。
【００４１】
７０９はシステムバスであり、設計支援装置内のデータの流れを司るものである。７０８はインターフェイス（以下、Ｉ／Ｆという）であり、このＩ／Ｆ７０８を介して外部装置とのデータのやり取りを行う。
【００４２】
尚、以上の各装置と同等の機能を実現するソフトウェアにより、ハードウェア装置の代替として構成することもできる。
【００４３】
本実施形態では、メディア７０４から本実施形態に係るプログラム及び関連データを直接ＲＡＭ７０２にロードして実行させる例を示すが、これ以外にも、本実施形態に係るプログラムを動作させる度に、既にプログラムがインストールされているＨＤ７０５からＲＡＭ７０２にロードするようにしてもよい。また、本実施形態に係るプログラムをＲＯＭ７０１に記録しておき、これをメモリマップの一部をなすように構成し、直接ＣＰＵ７００で実行することも可能である。
【００４４】
＜実施形態＞
次に、実施形態の１つである設計支援装置が提供するＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）について図２を用いて説明する。図２は、本設計支援装置がディスプレイ７０７に表示するＧＵＩを例示的に示した図である。
【００４５】
図２のように、設計支援装置のＣＰＵ７００は、ディスプレイ７０７上に動作設計、基本回路設計、詳細回路設計の、３種の設計に関する情報を入力可能とするエディタ画面（情報を入力する編集画面）２００を表示するように制御する。
【００４６】
図２において、２１２は動作設計工程の設計情報（動作設計情報、動作情報）を入力する動作設計エディタであり、情報入力部２２２においてＣ言語で記述されたプログラムを入力・編集可能に制御する。設計支援装置のＣＰＵ７００は、設計者が、プログラムの入力・編集等を指示入力装置７０６を介して実行できるように制御する。
【００４７】
情報入力部２２２の中の“ａ，ｂ，ｃ，ｄ，ｅ，ｆ，ｘ，ｙ，ｚ”は、それぞれプログラムの変数を表している。図２の例では、これらの変数に対してｌｏｎｇ型の変数指定がなされているため、Ｃ言語プログラムを実行できる一般的な処理系のコンピュータでは、これらの変数は３２ビットのビット幅を有することを示している。尚、情報入力部２２２の中の“＊”は乗算演算を示すプログラムの記号を示している。
【００４８】
設計支援装置のＣＰＵ７００は、動作設計エディタ２１２において入力・編集されたプログラムコードを、Ｃモデル３１０として、ＨＤ７０５等の記憶装置に記憶管理するように制御する。
【００４９】
図２において、２１４は基本回路設計工程の設計情報（基本回路設計情報）を入力する基本回路設計エディタであり、情報入力部２２４において動作合成装置３２０の書式に適合したプログラムを入力・編集可能に制御する。設計支援装置のＣＰＵ７００は、設計者が、プログラムの入力・編集等を指示入力装置７０６を介して実行できるように制御する。
【００５０】
情報入力部２２４中の“ｉｎｐｕｔ”は回路への入力ポートを表し、“ｏｕｔｐｕｔ”は回路からの出力ポートを表している。また、情報入力部２２４中の“［ＸＸ：０］”は、そのポートが“ＸＸ＋１”ビット幅であることを示している。例えば、“［１１：０］”、“［９：０］”、“［２３：０］”、“［１９：０］”は、それぞれ、そのポートが１２ビット幅、１０ビット幅、２４ビット幅、２０ビット幅であることを示す。
【００５１】
設計支援装置のＣＰＵ７００は、基本回路設計エディタ２１４において入力・編集されたプログラムコードを、基本回路設計工程の設計情報（基本回路設計情報）３１２として、ＨＤ７０５等の記憶装置に記憶管理するように制御する。
【００５２】
更に、設計支援装置のＣＰＵ７００は、設計者が、ポインティングデバイス等の指示入力装置７０６を操作して、情報入力部２２４の中の基本回路設計情報と、情報入力部２２２の中の動作設計情報とを、容易に関連付けられる（「設計情報を連結する」、「設計情報にＬＩＮＫを貼る」等と表現してもよい）ように制御する。図中の矢印２３４は、基本回路設計情報と動作設計情報とが関連付けられていることを示している。例えば、描画ソフトウェアを用いて矢印を引くように、情報入力部２２４の中の基本回路設計情報から、情報入力部２２２の中の動作設計情報へ矢印を引き、両者を関連付けることが可能なインタフェースを構成してもよい。
【００５３】
図２において、情報入力部２２２中の“ｌｏｎｇ  ａ”と、情報入力部２２４中の”ｉｎｐｕｔ［１１：０］ａ”とが矢印で連結されているが（これを、『“ｌｏｎｇ  ａ”←”ｉｎｐｕｔ［１１：０］ａ”』と表す。以下、同様である。）、これは、『Ｃモデルでは変数ａは３２ビット変数であるが、回路化された場合、回路への１２ビットの入力ポートとなる』ことを表す。
【００５４】
設計支援装置のＣＰＵ７００は、情報入力部２２２中の要素と情報入力部２２４中の要素との関連付けに関する情報を、Ｃモデルと基本回路設計情報の関連付け情報（以下、基本関連付け情報と呼ぶ）３４０（図３）として、ＨＤ７０５等の記憶装置に記憶管理するように制御する。
【００５５】
図２において、２１６は詳細回路設計工程の設計情報（詳細回路設計情報）を入力する詳細回路設計エディタであり、情報入力部２２６において論理合成装置３２２の書式に適合したプログラムを入力・編集可能に制御する。設計支援装置のＣＰＵ７００は、設計者が、プログラムの入力・編集等を指示入力装置７０６を介して実行できるように制御する。
【００５６】
情報入力部２２６中の“＊＝ＷａｌｌａｃｅＴｒｅｅ”は乗算演算をＷａｌｌａｃｅ  Ｔｒｅｅ演算器に論理回路化することを表し、“＊＝ＣａｒｒｙＳａｖｅＡｒｒａｙ”は乗算演算をＣａｒｒｙ  Ｓａｖｅ  Ａｒｒａｙ演算器に論理回路化することを表す。
【００５７】
設計支援装置のＣＰＵ７００は、詳細回路設計エディタ２１６において入力・編集されたプログラムコードを、詳細回路設計工程の設計情報（以下、詳細回路設計情報と呼ぶ）３１６として、ＨＤ７０５等の記憶装置に記憶管理するように制御する。
【００５８】
更に、設計支援装置のＣＰＵ７００は、設計者が、ポインティングデバイス等の指示入力装置７０６を操作して、情報入力部２２６の中の詳細回路設計情報と、情報入力部２２２の中の動作設計情報とを、容易に関連付けられる（「設計情報を連結する」、「設計情報にＬＩＮＫを貼る」等と表現してもよい）ように制御する。図中の矢印２３６は、詳細回路設計情報と動作設計情報とが関連付けられていることを示している。例えば、描画ソフトウェアを用いて矢印を引くように、情報入力部２２６の中の詳細回路設計情報から、情報入力部２２２の中の動作設計情報へ矢印を引き、両者を関連付けることが可能なインタフェースを構成してもよい。
【００５９】
例えば、図２において、『“ｘ＝ａ＊ｂ”←”＊＝ＷａｌｌａｃｅＴｒｅｅ”』は、『Ｗａｌｌａｃｅ  Ｔｒｅｅ演算器の入力ポートにａ，ｂ、出力ポートにｘが結線される』ことを表している。
【００６０】
設計支援装置のＣＰＵ７００は、情報入力部２２２中の要素と情報入力部２２６中の要素との関連付けに関する情報を、Ｃモデルと詳細回路設計情報の関連付け情報（以下、詳細関連付け情報と呼ぶ）３４４として、ＨＤ７０５等の記憶装置に記憶管理するように制御する。
【００６１】
これまでに述べたように、本実施形態の設計支援装置は、動作設計においてＣモデルを入力し、基本回路設計情報及び詳細回路設計情報をＣモデルに対して関連付けることによって設計情報を付加する。即ち、基本回路設計情報及び詳細回路設計情報はＣモデルに対して差分管理するのであって、＜前提技術＞のようにＣモデルを直接書き換える（例えば、Ｃモデル１１０からＣモデル２（１１２）への書き換え）といった処理は行わない。
【００６２】
次に、設計支援装置の内部処理の詳細について、図３を用いて説明する。図３は、本実施形態の設計支援装置を組み入れた設計フローを示す図である。図３において、破線３５０で囲まれた部分は本設計支援装置が処理を行うことを示している。
【００６３】
図３において、動作設計３００を行ってＣモデル３１０を生成する動作設計工程は、＜前提技術＞で説明した図１の動作設計工程と同様である。本設計支援装置は動作設計エディタ２１２を提供し、設計者がＣモデル３１０を容易に作成できるようにする。先に述べたように、設計支援装置のＣＰＵ７００は、入力されたＣモデル３１０をＨＤ７０５等の記憶装置に記憶管理するように制御する。
【００６４】
また、基本回路設計３０２によって基本回路設計工程の設計情報（基本回路設計情報）３１２が設計支援装置に入力される。本設計支援装置は基本回路設計エディタ２１４を提供し、設計者が基本回路設計情報３１２を容易に作成できるようにする。先に述べたように、設計支援装置のＣＰＵ７００は、入力された基本回路設計情報３１２をＨＤ７０５等の記憶装置に記憶管理するように制御する。
【００６５】
また、先に述べたように、本設計支援装置はエディタ２００を提供し、矢印２３４を用いてＣモデル３１０と基本回路設計情報３１２とを容易に関連付けられるように制御する。設計者の操作によってＣモデル３１０と基本回路設計情報３１２とが関連付けられた場合、設計支援装置のＣＰＵ７００はその関連付けに関する情報をＣモデルと基本回路設計情報の関連付け情報（基本関連付け情報）３４０として、ＨＤ７０５等の記憶装置に記憶管理するように制御する。
【００６６】
また、図のように本設計支援装置は動作合成装置３２０を包含している。本設計支援装置は、Ｃモデル３１０、基本回路設計情報３１２、基本関連付け情報３４０、動作合成制約条件と動作合成方法（以下、動作合成制約条件等と呼ぶ）３３０の各情報が設定されると、これらを動作合成装置３２０へ入力する。動作合成装置３２０は、Ｃモデル３１０、基本回路設計情報３１２、基本関連付け情報３４０、動作合成制約条件等３３０を入力として受け取ると、Ｃモデル３１０、基本回路設計情報３１２、基本関連付け情報３４０より図１のＣモデル２（１１２）に相当する情報を生成し、この情報と動作合成制約条件等３３０より動作合成を行い、ＲＴＬモデル３１４と、ＣモデルとＲＴＬモデルの関連付け情報（以下、ＲＴＬ関連付け情報と呼ぶ）３４２を出力する。このように、本設計支援装置の動作合成装置３２０は動作合成装置１２０に相当する。
【００６７】
ここで、ＲＴＬ関連づけ情報３４２は、動作合成装置３２０を実行した状態におけるＣモデル３１０とＲＴＬモデル３１４との関連づけに関する情報であり、更新された基本関連づけ情報３４０と考えることができる。また、先に述べたように、動作合成装置３２０は動作合成制約条件等３３０に指定されたポリシーに基づいて、ハードウェアリソースの共有に関する条件を設定し、ＲＴＬ関連付け情報３４２を生成するものとする。尚、動作合成制約条件等３３０が入力されなかった場合、動作合成装置３２０はあらかじめ設定されているデフォルトの設定に基づいて処理を行うものとする。また、設計支援装置のＣＰＵ７００は、動作合成装置３２０から出力されたＲＴＬモデル３１４、ＲＴＬ関連付け情報３４２をＨＤ７０５等の記憶装置に記憶管理するように制御する。
【００６８】
ここで、ハードウェアリソースの共有の概念について、図４及び図５を用いて説明する。図４はハードウェアリソースが共有されなかった状況を模式的に示した図である。
【００６９】
図４において、演算４００，４０２，４０４はＣモデル３１０に、乗算器４１０，４１２，４１４はＲＴＬモデル３１４に、論理回路４２０，４２２，４２４はＧＡＴＥモデル３１８に、それぞれ相当する。また、双方向矢印４４２はＣモデルとＲＴＬモデルとの関連付け情報を示しており、図３におけるＲＴＬ関連付け情報３４２に相当する。双方向矢印４４６はＲＴＬモデルとＧＡＴＥモデルとの関連付け情報を示しており、図３におけるＲＴＬモデルとＧＡＴＥモデルの関連付け情報（以下、ＧＡＴＥ関連付け情報と呼ぶ）３４６に相当する。
【００７０】
図４はハードウェアリソースが共有されなかった場合を示しており、演算４００，４０２，４０４に対して、それぞれ別個に乗算器４１０，４１２，４１４がＲＴＬモデル上に実装されていることに留意する。
【００７１】
一方、図５はハードウェアリソースが共有された状況を模式的に図である。図５において、演算５００，５０２，５０４はＣモデル３１０に、乗算器５１０，５１４はＲＴＬモデル３１４に、乗算回路５２０，５２４はＧＡＴＥモデル３１８に、それぞれ相当する。また、双方向矢印５４２はＣモデルとＲＴＬモデルとの関連付け情報を示しており、図３におけるＲＴＬ関連付け情報３４２に相当する。双方向矢印５４６はＲＴＬモデルとＧＡＴＥモデルとの関連付け情報を示しており、図３におけるＧＡＴＥ関連付け情報３４６に相当する。
【００７２】
図５において、演算５００及び５０２に対するハードウェアリソースが共有されており、５００、５０２の２つの演算に対して１つの乗算器５１０がＲＴＬモデル上に実装されていることに留意する。また、演算５０４はハードウェアリソースが共有されておらず、演算５０４に対して、乗算器５１４がＲＴＬモデル上に実装されていることに留意する。
【００７３】
再び、図３の説明に戻る。詳細回路設計３０４によって詳細回路設計工程の設計情報（詳細回路設計情報）３１６が設計支援装置に入力される。本設計支援装置は詳細回路設計エディタ２１６を提供し、設計者が詳細回路設計情報３１６を容易に作成できるようにする。先に述べたように、設計支援装置のＣＰＵ７００は、入力された詳細回路設計情報３１６をＨＤ７０５等の記憶装置に記憶管理するように制御する。
【００７４】
また、先に述べたように、本設計支援装置はエディタ２００を提供し、矢印２３６を用いてＣモデル３１０と詳細回路設計情報３１６とを容易に関連付けられるように制御する。設計者の操作によってＣモデル３１０と詳細回路設計情報３１６とが関連付けられた場合、設計支援装置のＣＰＵ７００はその関連付けに関する情報をＣモデルと詳細回路設計情報の関連付け情報（詳細関連付け情報）３４４として、ＨＤ７０５等の記憶装置に記憶管理するように制御する。
【００７５】
また、図３のように本設計支援装置は論理合成装置３２２を包含している。本設計支援装置は、Ｃモデル３１０、詳細回路設計情報３１６、詳細関連付け情報３４４、論理合成制約条件と論理合成方法（以下、論理合成制約条件等と呼ぶ）３３２、ＲＴＬモデル３１４、ＲＴＬ関連付け情報３４２の各情報が設定されると、これらを論理合成装置３２２へ入力する。論理合成装置３２２は、Ｃモデル３１０、詳細回路設計情報３１６、詳細関連付け情報３４４、論理合成制約条件等３３２、ＲＴＬモデル３１４、ＲＴＬ関連付け情報３４２を入力として受け取ると、Ｃモデル３１０、詳細回路設計情報３１６、詳細関連付け情報３４４、ＲＴＬモデル３１４、ＲＴＬ関連付け情報３４２より図１のＲＴＬモデル２（１１６）に相当する情報を生成し、この情報と論理合成制約条件等３３２より論理合成を行い、ＧＡＴＥモデル３１８とＧＡＴＥ関連付け情報３４６を出力する。このように、本設計支援装置の論理合成装置３２２は論理合成装置１２２に相当する。
【００７６】
ここで、ＧＡＴＥ関連付け情報３４６は、論理合成装置３４６を実行した状態におけるＲＴＬモデル３１４とＧＡＴＥモデル３１８との関連付けに関する情報である。また、論理合成制約条件等３３２が入力されなかった場合、論理合成装置３２２はあらかじめ設定されているデフォルトの設定に基づいて処理を行うものとする。
【００７７】
また、論理合成装置３２２は、Ｃモデル３１０、詳細関連付け情報３４４、ＲＴＬ関連付け情報３４２の情報を用いて、詳細回路設計情報３１６とＲＴＬモデル３１４との対応を判別して処理を行う。そして、論理合成装置３２２はＲＴＬモデル３１４に論理回路をマッピングする過程で、ＧＡＴＥ関連付け情報３４６を生成する。
【００７８】
論理合成を行うと、例えば、図４において、ＲＴＬモデル中の乗算器４１０に論理回路４２０がマッピングされる。同様に、乗算器４１２、４１４、５１０、５１４に対して、それぞれ論理回路４２２、４２４、５２０、５４６がマッピングされる。
【００７９】
次に、図５のように、ハードウェアリソースが共有された場合の各要素の関連付けを設計者に示す例について、図６を用いて説明する。図６は、ハードウェアリソースが共有された場合において、合成を終了した後のＧＵＩの様子を例示的に示した図である。
【００８０】
図６において、動作合成時にハードウェアリソースの共有が行なわれたことに応じて、関連付けを示す矢印６００、６０２、６０４が更新されていることに留意する。これらの矢印は、ＲＴＬ関連づけ情報３４２に基づいて表示される。なお、関連付けの更新は動作合成において行われる。即ち、論理合成では、ＲＴＬモデルの回路要素に対し、一対一対応で論理回路をマッピングするため、ＧＵＩの関連付け情報には影響を与えない。
【００８１】
以上述べたように、本設計支援装置は３種類の設計工程の設計情報を同一のＧＵＩ上で入力できるようにし、且つ、それらの情報を一元管理するように制御することで、設計者の情報管理負担を軽減している。
【００８２】
また、Ｃモデルに対して直接設計情報の記述を挿入するのではなく、各工程において入力される設計情報をＣモデルに対して関連付けるという手法をとることにより、Ｃモデルは必ずＣ言語の標準化仕様に準拠している。このため、完成したＣモデルを再利用しやすく、また、設計工程がある程度進んでから動作設計に誤りが見つかり、設計フローを後戻りしなければならないときに、Ｃモデルの変更を行ないやすい。
【００８３】
更に、本設計支援装置はＣモデルとＲＴＬモデルのハードウェアリソースの対応関係を一見して理解可能なように表示するため、設計者がハードウェアリソースの共有を理解することを容易にし、回路設計に反映させることを可能にする。
【００８４】
＜動作例＞
次に、上記の構成を用いて回路設計を行った場合の本設計支援装置の処理について、図８を参照して説明する。図８はユーザがエディタ２００を用いて設計情報を入力してからＧＡＴＥモデル３１８を出力するまでの、本設計支援装置の処理の流れを示すフローチャートである。
【００８５】
先に述べたように、本設計支援装置はエディタ２００（動作設計エディタ２１２、基本回路設計エディタ２１４、詳細回路設計エディタ２１６を含む）を提供し、設計者がＣモデル３１０、基本回路設計情報３１２、詳細回路設計情報３１６、及び、基本関連付け情報３４０、詳細関連付け情報３４４を容易に作成・入力できるように制御している。
【００８６】
ステップＳ１０１において、本設計支援装置は、設計者により動作設計情報（Ｃモデル３１０）が入力されると、そのＣモデル３１０をＨＤ７０５等の記憶装置に記憶管理するように制御する。
【００８７】
ステップＳ１０２において、本設計支援装置は、設計者により基本回路設計情報３１２、基本関連付け情報３４０が入力されると、それらの情報をＨＤ７０５等の記憶装置に記憶管理するように制御する。
【００８８】
ステップＳ１０３において、本設計支援装置は、設計者により詳細回路設計情報３１６、詳細関連付け情報３４４が入力されると、それらの情報をＨＤ７０５等の記憶装置に記憶管理するように制御する。
【００８９】
次に、ステップＳ１０４において、本設計支援装置は、記憶装置に記憶されたＣモデル３１０、基本回路設計情報３１２、基本関連付け情報３４０に基づいてＲＴＬモデル３１４、ＲＴＬ関連づけ情報３４２を生成する。この時、動作合成装置３２０を用いることは先に述べたとおりである。
【００９０】
続けて、ステップＳ１０５において、本設計支援装置は、記憶装置に記憶されたＣモデル３１０、詳細回路設計情報３１６、詳細関連付け情報３４４、及び、ステップＳ１０４において生成されたＲＴＬモデル３１４、ＲＴＬ関連づけ情報３４２に基づいてＧＡＴＥモデル３１８とＧＡＴＥ関連付け情報３４６を生成する。この時、論理合成装置３２２を用いることは先に述べたとおりである。
【００９１】
次に、ステップＳ１０６において、本設計支援装置は、ＲＴＬ関連づけ情報３４２に基づいてエディタ２００上の関連づけを示す矢印の表示を更新する。この状態は図６において例示的に示されている。
【００９２】
＜他の実施形態＞
以上、本発明の実施形態例について詳述したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施態様を取ることが可能であり、具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
【００９３】
尚、本発明は、前述した実施形態の機能を実現するプログラムを、システムあるいは装置に直接あるいは遠隔から供給し、そのシステムあるいは装置のコンピュータが該供給されたプログラムコードを読み出して実行することによっても達成される場合を含む。
【００９４】
従って、本発明の機能処理をコンピュータで実現するために、該コンピュータにインストールされるプログラムコード自体も本発明の技術的範囲に含まれる。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含む。
【００９５】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等の形態であっても良い。
【００９６】
プログラムを供給するための記録媒体としては、例えば、フロッピー（登録商標）ディスク、ハードディスク、光ディスク、光磁気ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−Ｒ）などがある。
【００９７】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続し、該ホームページから本発明のコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバも、本発明に含まれるものである。
【００９８】
また、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせ、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。  また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される他、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどが、実際の処理の一部または全部を行ない、その処理によっても前述した実施形態の機能が実現され得る。
【００９９】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行ない、その処理によっても前述した実施形態の機能が実現される。
【図面の簡単な説明】
【０１００】
【図１】一般的な動作合成装置を用いた設計フローを示す図である。
【図２】本設計支援装置が提供するＧＵＩを例示的に示した図である。
【図３】本設計支援装置を組み入れた設計フローを示す図である。
【図４】ハードウェアリソースの共有がない状況を模式的に示した図である。
【図５】ハードウェアリソースの共有がある状況を模式的に示した図である。
【図６】本設計支援装置が提供するＧＵＩを例示的に示した図である。
【図７】設計支援装置として機能する情報処理装置の機器構成を示すブロック図である。
【図８】設計支援装置の処理の流れを示すフローチャートである。
【図１】
2006139624.tif 000003
【図２】
2006139624.tif 000004
【図３】
2006139624.tif 000005
【図４】
2006139624.tif 000006
【図５】
2006139624.tif 000007
【図６】
2006139624.tif 000008
【図７】
2006139624.tif 000009
【図８】
2006139624.tif 000010