(57)【要約】【課題】動作レベル回路記述に付加する付帯情報からＲＴＬ回路記述に付加する付帯情報への変換を可能にして設計効率を向上させることができる動作合成装置及び方法を提供する。【解決手段】  動作レベル回路記述を基にＲＴＬ回路記述を生成し、動作レベル回路記述とＲＴＬ回路記述の相違からそれらの対応関係を示す情報を生成する動作合成手段と、予め設定された変換ルール、及び動作合成手段で生成された対応関係の情報を基に、動作レベル回路記述に付加された付帯情報をＲＴＬ回路記述に付加する付帯情報に変換する付帯情報変換手段とを有する構成とする。【選択図】  図１
2006285333.tif 000002
【特許請求の範囲】
【請求項１】
動作レベル回路記述を基にＲＴＬ回路記述を生成し、前記動作レベル回路記述と前記ＲＴＬ回路記述の相違からそれらの対応関係を示す情報を生成する動作合成手段と、
予め設定された変換ルール、及び前記動作合成手段で生成された前記対応関係の情報を基に、前記動作レベル回路記述に付加された付帯情報を前記ＲＴＬ回路記述に付加する付帯情報に変換する付帯情報変換手段と、
を有する動作合成装置。
【請求項２】
付帯情報が付加された動作レベル回路記述から該付帯情報を抽出し、該付帯情報を判別するための情報である付帯情報中間記述を生成する付帯情報抽出手段と、
前記動作レベル回路記述を基にＲＴＬ回路記述を生成し、前記動作レベル回路記述と前記ＲＴＬ回路記述の相違からそれらの対応関係を示す情報を生成する動作合成手段と、
予め設定された変換ルール、及び前記動作合成手段で生成された前記対応関係の情報を基に、前記動作レベル回路記述に付加された付帯情報を前記ＲＴＬ回路記述に付加する付帯情報に変換する付帯情報変換手段と、
を有する動作合成装置。
【請求項３】
前記対応関係の情報は、
前記動作レベル回路記述に含まれる信号と、
該動作レベル回路記述の信号に対応する、前記ＲＴＬ回路記述に含まれる信号と、
これらの信号が対応するための条件と、
を有する請求項１または２記載の動作合成装置。
【請求項４】
前記対応関係の情報は、
前記動作レベル回路記述に含まれる演算と、
該動作レベル回路記述の演算に対応する、前記ＲＴＬ回路記述に含まれる演算と、
これらの演算が対応するための条件と、
を有する請求項１または２記載の動作合成装置。
【請求項５】
前記対応関係の情報は、
前記動作レベル回路記述に含まれる記述文と、
該動作レベル回路記述の記述文に対応する、前記ＲＴＬ回路記述に含まれる記述文と、
を有する請求項１または２記載の動作合成装置。
【請求項６】
処理装置により半導体集積回路装置の動作を記述した動作レベル回路記述から具体的な機能を記述したＲＴＬ回路記述を生成するための動作合成方法であって、
前記動作レベル回路記述を基に前記ＲＴＬ回路記述を生成するステップ、
前記動作レベル回路記述と前記ＲＴＬ回路記述の相違からそれらの対応関係を示す情報を生成するステップ、及び
予め設定された変換ルール、及び前記動作合成手段で生成された前記対応関係の情報を基に、前記動作レベル回路記述に付加された付帯情報を前記ＲＴＬ回路記述に付加する付帯情報に変換するステップから構成される動作合成方法。
【請求項７】
処理装置により半導体集積回路装置の動作を記述した動作レベル回路記述から具体的な機能を記述したＲＴＬ回路記述を生成するための動作合成方法であって、
付帯情報が付加された前記動作レベル回路記述から該付帯情報を抽出し、該付帯情報を判別するための情報である付帯情報中間記述を生成するステップ、
前記動作レベル回路記述を基にＲＴＬ回路記述を生成するステップ、
前記動作レベル回路記述と前記ＲＴＬ回路記述の相違からそれらの対応関係を示す情報を生成するステップ、及び
予め設定された変換ルール、及び前記動作合成手段で生成された前記対応関係の情報を基に、前記動作レベル回路記述に付加された付帯情報を前記ＲＴＬ回路記述に付加する付帯情報に変換するステップから構成される動作合成方法。
【請求項８】
前記対応関係の情報は、
前記動作レベル回路記述に含まれる信号と、
該動作レベル回路記述の信号に対応する、前記ＲＴＬ回路記述に含まれる信号と、
これらの信号が対応するための条件と、
を有する請求項６または７記載の動作合成方法。
【請求項９】
前記対応関係の情報は、
前記動作レベル回路記述に含まれる演算と、
該動作レベル回路記述の演算に対応する、前記ＲＴＬ回路記述に含まれる演算と、
これらの演算が対応するための条件と、
を有する請求項６または７記載の動作合成方法。
【請求項１０】
前記対応関係の情報は、
前記動作レベル回路記述に含まれる記述文と、
該動作レベル回路記述の記述文に対応する、前記ＲＴＬ回路記述に含まれる記述文と、
を有する請求項６または７記載の動作合成方法。
【請求項１１】
コンピュータに、半導体集積回路装置の動作を記述した動作レベル回路記述から具体的な機能を記述したＲＴＬ回路記述を生成させるためのプログラムであって、
前記動作レベル回路記述を基に前記ＲＴＬ回路記述を生成するステップ、
前記動作レベル回路記述と前記ＲＴＬ回路記述の相違からそれらの対応関係を示す情報を生成するステップ、及び
予め設定された変換ルール、及び前記動作合成手段で生成された前記対応関係の情報を基に、前記動作レベル回路記述に付加された付帯情報を前記ＲＴＬ回路記述に付加する付帯情報に変換するステップをコンピュータに実行させるためのプログラム。
【請求項１２】
コンピュータに、半導体集積回路装置の動作を記述した動作レベル回路記述から具体的な機能を記述したＲＴＬ回路記述を生成させるためのプログラムであって、
付帯情報が付加された前記動作レベル回路記述から該付帯情報を抽出し、該付帯情報を判別するための情報である付帯情報中間記述を生成するステップ、
前記動作レベル回路記述を基にＲＴＬ回路記述を生成するステップ、
前記動作レベル回路記述と前記ＲＴＬ回路記述の相違からそれらの対応関係を示す情報を生成するステップ、及び
予め設定された変換ルール、及び前記動作合成手段で生成された前記対応関係の情報を基に、前記動作レベル回路記述に付加された付帯情報を前記ＲＴＬ回路記述に付加する付帯情報に変換するステップをコンピュータに実行させるためのプログラム。
【請求項１３】
前記対応関係の情報は、
前記動作レベル回路記述に含まれる信号と、
該動作レベル回路記述の信号に対応する、前記ＲＴＬ回路記述に含まれる信号と、
これらの信号が対応するための条件と、
を有する請求項１１または１２記載のプログラム。
【請求項１４】
前記対応関係の情報は、
前記動作レベル回路記述に含まれる演算と、
該動作レベル回路記述の演算に対応する、前記ＲＴＬ回路記述に含まれる演算と、
これらの演算が対応するための条件と、
を有する請求項１１または１２記載のプログラム。
【請求項１５】
前記対応関係の情報は、
前記動作レベル回路記述に含まれる記述文と、
該動作レベル回路記述の記述文に対応する、前記ＲＴＬ回路記述に含まれる記述文と、
を有する請求項１１または１２記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路装置の動作を記述した動作レベル回路記述から具体的な機能（回路）を記述したＲＴＬ回路記述を生成する動作合成装置及び方法に関する。
【背景技術】
【０００２】
一般に、ＬＳＩやＶＬＳＩ等の半導体集積回路装置の設計では、設計の支援や一部を自動化するＬＳＩ設計自動化・支援ツールが用いられる。このＬＳＩ設計の自動化・支援ツールを利用したＶＬＳＩ設計の代表的な方法として、各種のＥＤＡ(Electronic Design Automation)ツールを用いたトップダウン設計方法がある。トップダウン設計方法は、その上流工程から、動作レベル設計フェーズ、機能設計フェーズ、論理設計フェーズ、レイアウト設計フェーズに大別できる。
【０００３】
図１４はトップダウン設計方法の概略工程を示すフローチャートである。
【０００４】
図１４に示すように、トップダウン設計方法においては、まず設計対象となるＬＳＩをシステムとして捉え、システム仕様の作成工程として、その動作を記述することから始まる。この工程を動作レベル設計フェーズと呼ぶ。動作レベル設計フェーズで作成された回路記述は動作レベル回路記述と呼ばれる。動作レベル回路記述の作成には、例えば、Ｃ言語、Ｃ＋＋言語、あるいはｊａｖａ言語等が用いられる。また、ＳｙｓｔｅｍＣやＳｐｅｃＣ等のように、Ｃ言語やＣ＋＋言語に回路表現に便利な特徴を付加した言語が用いられることもある。
【０００５】
図１５は動作レベル回路記述の一例を示す図である。
【０００６】
図１５はＳｙｓｔｅｍＣに似た文法にしたがって記述された動作レベル回路記述の例を示している。
【０００７】
図１５に示す動作レベル回路記述では、その１行目及び２行目で４ビットの信号instと８ビットの信号cmdとが定義されている。また、３行目から８行目にはswitch文を用いて信号instの値により信号cmdの値が決まることが定義されている。
【０００８】
動作レベル設計フェーズでは、動作レベル回路記述で表現された回路の動作が正しいか否かを確認する論理検証も併せて行う。動作レベル設計フェーズにおける論理検証には動作レベル論理検証装置が用いられる。動作レベル論理検証装置としては、例えばコンピュータから成る専用のシミュレーション装置等が用いられる。
【０００９】
なお、論理検証を行う際には、動作レベル回路記述に対してアサーションを付加することもある。アサーションとは、設計回路が満たすべき性質を指定する情報であり、例えば非特許文献１に記載された手法を用いて作成する。
【００１０】
アサーションとして付加する情報には、例えば「回路がデッドロック状態に陥らない」のように回路が設計者にとって望ましくない状態にならないことを指定する情報、「リクエスト信号がアクティブになると、それに対する応答信号（アクノレッジ信号）がいつかアクティブになる」のように回路が設計者にとって望ましい状態へ必ず到達することを指定する情報、あるいは「指定された信号のうち、複数の信号が同時にアクティブにならない」のように回路上の信号どうしが設計者にとって望ましい関係で成り立つことを指定する情報等がある。
【００１１】
アサーションは、動作レベル回路記述だけでなく後工程で作成されるＲＴＬ(register transfer level)回路記述に対しても付加される。したがって、これらを区別するために動作レベル回路記述に対して付加するアサーションを動作レベルアサーションと呼ぶ。
【００１２】
上記動作レベル論理検証装置は、動作レベル回路記述及び動作レベルアサーションが入力されると、動作レベル回路記述で表現された設計回路が動作レベルアサーションを満たしているか否かを確認する。
【００１３】
図１６は動作レベルアサーションの記述例を示す図である。
【００１４】
図１６に示すalways never文はアサーション用の記述言語であり、instは上述したように動作レベル回路記述上で定義された信号である。図１６ではalways never文を用いて動作レベル回路記述上の信号instの値が４にならないことが定義されている。
【００１５】
トップダウン設計方法においては、図１４に示したように動作レベル設計フェーズが終了すると機能設計フェーズが実行される。機能設計フェーズでは、動作合成装置を用いて動作レベル設計フェーズで作成された動作レベル回路記述をＲＴＬ回路記述に変換する。ＲＴＬ回路記述は設計対象の回路をクロック毎の動作にまで具体化した記述である。動作合成装置については、例えば非特許文献２に記載された構成を使用すればよい。
【００１６】
図１７は図１４に示した動作合成装置の処理手順を示すフローチャートである。
【００１７】
図１７に示すように、動作合成装置は、まず前処理工程として、受け取った動作レベル回路記述について、関数呼び出しの解消等のようにあとの工程の処理に適した形式への変換、不要コードの削除、言語レベル最適化による変形処理等を実施する。
【００１８】
次に、動作合成装置は、これら前処理された回路記述を基に、どの工程（またはステート）で、どのような処理や演算等を実行すべきかを決定するスケジューリング工程を実施する。
【００１９】
続いて、スケジューリングされた回路記述を基に、信号値を保持するためのレジスタを生成し、コストが最小となるように各処理で共有化することを考慮しつつ、生成したレジスタに変数を割り当てるレジスタバインディング工程を実施する。また、使用する演算器の数が最適となるように回路記述中の各演算子に演算器をそれぞれ割り当てる演算器マッピング工程（演算器バインディング工程とも言う）を実施する。
【００２０】
最後に、動作合成装置は、レジスタバインディング工程や演算器バインディング工程が終了した回路記述を論理合成可能なＲＴＬ回路記述へ変換する後処理工程を実施する。
【００２１】
なお、設計者は、動作合成装置による処理を制御するために、上述した動作レベル回路記述にディレクティブを指定することがある。ディレクティブは、動作合成装置への指示を示す、動作レベル回路記述に付加する情報である。ディレクティブについては、例えば特許文献１の図７Ａ、６行目に例示されている。
【００２２】
ディレクティブは、上記アサーションと同様にＲＴＬ回路記述にも付加することがある。したがって、これらを区別するために動作レベル回路記述に対して付加するディレクティブを動作レベルディレクティブと呼ぶ。
【００２３】
動作合成装置は、動作レベル回路記述及び動作レベルディレクティブが入力されると、該動作レベルディレクティブにしたがって動作レベル回路記述の合成を行う。動作レベルディレクティブは、例えば動作レベル回路記述中にコメントあるいは他の形式で挿入される。
【００２４】
図１８は動作レベルディレクティブが付加された動作レベル回路記述の一例を示す図である。図１８の３行目に示すコメント形式の記述//directive "full case"が動作レベルディレクティブである。
【００２５】
図１８では、その１行目から２行目に４ビットの信号instと８ビットの信号cmdとがそれぞれ定義されている。また、４行目から９行目にはswitch文を用いて信号instの値により信号cmdの値が決まることが定義されている。
【００２６】
ここで、上述したように信号instは４ビットであるため、１６通りの値が指定可能である。しかしながら、図１８では５通りの信号instの値に対する動作しか示されていない。これは、信号instの値が図１８で定義された以外の値（６〜１５）の場合は、信号cmdの値をそのまま維持することを暗黙のうちに示している。
【００２７】
しかしながら、図１８の３行目に記述された動作レベルディレクティブであるfull case文は、これに続くswitch文が想定し得る条件を全て網羅していることを指定している。このような動作レベルディレクティブを挿入することで、図１８に示す動作レベル回路記述を受け取った動作合成装置は、switch文の実行時に信号instの値が６から１５にならないことが分かるため、信号cmdの値を保持する処理等を考慮することなく、動作レベル回路記述をＲＴＬ回路記述へ変換できる。
【００２８】
このように動作レベルディレクティブを指定することで、動作合成時に不要な論理や記憶素子を設ける必要が無くなるため、動作合成装置によって生成される回路規模の増大を抑制できる。
【００２９】
なお、従来、機能設計フェーズでは、周知のハードウェア記述言語ＨＤＬ(Hardware Description Language)等を用いて、設計者がＲＴＬ回路記述を作成する場合が一般的であった。設計者がＲＴＬ回路記述を作成する場合、通常、上記動作レベルディレクティブは指定されない。
【００３０】
図１９はＲＴＬ回路記述の一例を示す図である。
【００３１】
図１９は周知のハードウェア記述言語Verilog−ＨＤＬの文法にしたがって作成されたＲＴＬ回路記述の例である。
【００３２】
図１９に示すＲＴＬ回路記述では、その１行目から３行目で、４ビットの信号REG00、８ビットの信号MID01及び４ビットの信号stateがそれぞれ定義されている。また、４行目から１２行目には、always文を用いて、信号stateの値が２であるとき、信号REG00の値により信号MID01の値が決まることが定義されている。
【００３３】
このようなＲＴＬ回路記述を生成する機能設計フェーズでは、ＲＴＬ回路記述で表現された回路が意図したように動作するか、十分な性能を有しているか等を確認する機能レベルの論理検証も併せて行われる。ＲＴＬ回路記述の機能レベルにおける論理検証は、ＲＴＬ回路記述が動作合成装置によって作成されたか設計者によって作成されたかに関係なく実行される。
【００３４】
この機能設計フェーズにおける論理検証には機能レベル論理検証装置が用いられる。機能レベル論理検証装置としては、上記動作レベル論理検証装置と同様に、例えばコンピュータから成る専用のシミュレーション装置等が用いられる。
【００３５】
なお、機能設計フェーズにおける論理検証を行う際には、設計者により回路が満たすべき性質をアサーションとして付加することがある。機能設計フェーズでＲＴＬ回路記述に付加するアサーションをＲＴＬアサーションと呼ぶ。また、ＲＴＬ回路記述には、機能設計フェーズの後工程である論理設計フェーズのためにディレクティブを付加することがある。このＲＴＬ回路記述に付加するディレクティブをＲＴＬディレクティブと呼ぶ。これらは、動作レベル設計フェーズにおいて動作レベル回路記述に付加するアサーションやディレクティブと同様に記述される。
【００３６】
図２０はＲＴＬアサーションの記述例を示す図である。
【００３７】
図２０に示すalways never文は上述したようにアサーション用の記述言語であり、REG00はＲＴＬ回路記述上で定義された信号である。図２０では、always never文を用いてＲＴＬ回路記述上の信号REG00の値が４にならないことが定義されている。
【００３８】
図２１はＲＴＬディレクティブが付加されたＲＴＬ回路記述の一例を示す図である。
【００３９】
図２１の６行目に示すコメント形式の記述// directive "full case"がＲＴＬディレクティブである。
【００４０】
図２１に示すＲＴＬ回路記述では、その１行目から３行目で、４ビットの信号REG00、８ビットの信号MID01及び４ビットの信号stateがそれぞれ定義されている。
【００４１】
また、４行目から１３行目には、always文を用いて、信号stateの値が２であるとき、信号REG00の値により信号MID01の値が決まることが定義されている。さらに、図２１の６行目に記述されたＲＴＬディレクティブであるfull case文により、これに続くcase文が想定し得る条件を全て網羅していることが定義されている。
【００４２】
機能設計フェーズが終了すると、論理設計フェーズが実行される。論理設計フェーズでは、論理合成装置を用いて機能設計フェーズで作成されたＲＴＬ回路記述を論理レベル回路記述（論理ゲート回路による記述、またはネットリスト）に変換する。論理合成装置で生成されたネットリストは、続くレイアウト設計フェーズでレイアウト設計に用いられ、レイアウト設計で生成された回路パターンを基にチップ設計が行われる（図１４参照）。
【００４３】
上述したように、動作レベル設計フェーズや機能設計フェーズでは、設計対象である回路の動作や機能を記述した回路記述の他に、複数の付帯する情報が付加される。これらの情報をまとめて付帯情報と呼ぶ。付帯情報には、上記動作レベルアサーションや動作レベルディレクティブのように動作レベル回路記述に付加される情報（以下、動作レベル付帯情報と称す）、あるいはＲＴＬアサーションやＲＴＬディレクティブのようにＲＴＬ回路記述に付加される情報（以下、ＲＴＬ付帯情報と称す）等がある。なお、動作レベル設計フェーズでは、上記動作レベルアサーションや動作レベルディレクティブのように動作合成対象とならない記述の他に、動作レベル回路記述のデバッグに用いる情報（デバッグ記述）等も付加される。
【００４４】
これらの付帯情報は、動作レベル設計フェーズや機能設計フェーズ等の設計フェーズ毎に生成される回路記述に対してそれぞれ付加されるものであるが、上述したように同様の記述言語を用いて作成されるため、動作レベル設計フェーズや機能設計フェーズ毎にそれぞれアサーションやディレクティブを作成することは非効率である。
【００４５】
しかしながら、動作レベル回路記述とＲＴＬ回路記述とでは、使用する信号の名称、あるいはアサーションやディレクティブを適用する条件等が異なるため、動作レベル回路記述に付加した動作レベルアサーションや動作レベルディレクティブを、ＲＴＬ回路記述に対してそのまま再利用し付加することはできない。
【００４６】
また、上述した動作合成装置が実施するスケジューリング処理によって、動作レベル回路記述の実行文の一部が並列化されたり、実行順序が変更されることがあるため、動作レベルアサーションや動作レベルディレクティブをＲＴＬ回路記述へ付加する場合、どの工程（またはステート）に適用するのか、あるいはどの工程で実行する処理に適用するのかが容易に判別できない場合が多い。
【００４７】
さらに、動作合成装置が実行するレジスタバインディング工程や演算器バインディング工程によって、動作レベル回路記述では同時に使用されない複数の信号がＲＴＬ回路記述では同一の信号にマッピングされる等、バインディング工程によって信号名が変更されることもある。そのため、動作レベルアサーションや動作レベルディレクティブで指定された信号が、ＲＴＬ回路記述ではどの信号に対応するのか容易に判別できない場合が多い。
【００４８】
また、図１６に示した動作レベルアサーションや図２０に示したＲＴＬアサーションから分かるように、動作レベルアサーションとＲＴＬアサーションとでは同様の情報を指定することが可能であるが、動作レベル回路記述を基に具体的な機能（回路）を示すＲＴＬ回路記述を生成した場合も信号名称が変わってしまうことがある。例えば、図１５に示した動作レベル回路記述と図１９に示したＲＴＬ回路記述を比較すると、動作レベル回路記述で使用する信号がinst, cmdであるのに対し、ＲＴＬ回路記述で使用する信号はREG00, MID01, stateとなっている。そのため、機能設計フェーズでは動作レベル設計フェーズで使用したアサーションをそのまま使用することはできない。
【００４９】
同様に、図１８に示した動作レベル回路記述と図２１に示したＲＴＬ回路記述を比較すると、信号名称が変わっていることが分かる。また、図１８の動作レベル回路記述で使用しているswitch文と図２１のＲＴＬ回路記述で使用しているcase文に関連があることが分からないと、動作レベルディレクティブをＲＴＬディレクティブとして再利用することはできない。
【００５０】
ところで、動作レベル回路記述とＲＴＬ回路記述の相違に起因する問題は、上述したアサーションやディレクティブが別々に必要となることで設計効率が低下する問題だけでなく様々な問題を引き起こしている。そのような各種の問題を解決するために従来から様々な手法が検討されてきた。
【００５１】
例えば、設計回路の動作を高速にシミュレートするために動作レベル回路記述とＲＴＬ回路記述とを適宜切り替えて用いる場合、動作レベル回路記述とＲＴＬ回路記述との差異が問題になる。このような問題を解決するため、特許文献２では、動作レベル回路記述とＲＴＬ回路記述との対応関係を生成する生成手段を備え、当該対応関係に基づき動作レベル回路記述の変数をＲＴＬ回路記述のレジスタにマッピングする手法が記載されている。
【００５２】
また、特許文献３には、論理設計フェーズで用いる論理合成装置において、論理合成装置からの情報を基にＲＴＬ回路記述と論理回路記述との対応関係を生成する生成ユニットを有し、当該対応関係によりＲＴＬ回路記述と論理回路記述を対比表示することが記載されている。
【００５３】
また、特許文献４には、動作レベル回路記述、ＲＴＬ回路記述及び動作レベル回路記述中のテスト系列を基に、ＲＴＬ回路記述に対するテスト系列を生成することが記載されている。このとき、動作レベル回路記述及びＲＴＬ回路記述を解析してＲＴＬ回路記述用のテスト系列の生成に必要な対応関係を生成すること、あるいは動作合成装置から得られる対応関係を使用することが記載されている。
【特許文献１】米国特許第６３９７３４１号明細書
【特許文献２】特許第３１７３７２９号公報
【特許文献３】特開平５−２６２１号公報
【特許文献４】特許第３３７３６４１号公報
【非特許文献１】ハリー・フォスター（H.D. Foster）、他３名、アサーションベースドデザイン（Assertion-based design）、クルーワーアカデミックパブリシャーズ（Kluwer Academic Publishers）、２００３年、pp. 1-20。
【非特許文献２】若林一敏、他１名、アイ・イー・イー・イー・トランザクションズ・オン・コンピュータ・エイディド・デザイン(IEEE Transactions on Computer Aided Design)、２０００年１１月、pp. 1507-1522。
【発明の開示】
【発明が解決しようとする課題】
【００５４】
上述したように、従来の技術では、動作レベル回路記述とＲＴＬ回路記述との相違により、アサーションやディレクティブを別々に作成する必要があるため、設計効率が低下する問題がある。
【００５５】
なお、動作レベル回路記述とＲＴＬ回路記述に付加するアサーションやディレクティブを共有するために、動作合成装置で生成されたＲＴＬ回路記述に対して、設計者が、動作レベル回路記述とＲＴＬ回路記述との差異を勘案の上、ＲＴＬアサーションやＲＴＬディレクティブに翻訳または変換し付加する方法も考えられる。しかしながら、そのような人手による作業は、通常、回路記述の解析が困難であるために設計ミスを引き起こす要因となる。
【００５６】
また、特許文献２に記載の技術では、動作レベル回路記述中の構成要素とＲＴＬ回路記述中の構成要素との間の対応関係を基に、互いの構成要素が保持する値をそのまま交換する方法が示されているだけであるため、動作レベル回路記述に付加するディレクティブやアサーション等の付帯情報を加工してＲＴＬ回路記述の付帯情報として用いることはできない。
【００５７】
また、特許文献３に記載の技術では、ＲＴＬ回路記述中の構成要素と論理回路記述中の構成要素との対応関係を把握し、対応する構成要素を対比表示することのみ示されている。したがって、特許文献３に記載の技術でも動作レベル回路記述に付加するディレクティブやアサーション等の付帯情報を加工してＲＴＬ回路記述の付帯情報として用いることはできない。
【００５８】
同様に、特許文献４に記載の技術では、動作レベル回路記述中の外部入出力値とＲＴＬ回路記述中の外部入出力値との対応関係を把握し、互いの外部入出力値をそのまま交換する方法が示されているだけであるため、動作レベル回路記述に付加するディレクティブやアサーション等の付帯情報を加工してＲＴＬ回路記述の付帯情報として用いることはできない。
【００５９】
本発明は上記したような従来の技術が有する問題点を解決するためになされたものであり、動作レベル回路記述に付加する付帯情報からＲＴＬ回路記述に付加する付帯情報への変換を可能にして設計効率を向上させることができる動作合成装置及び方法を提供することを目的とする。
【課題を解決するための手段】
【００６０】
上記目的を達成するため本発明の動作合成装置は、動作レベル回路記述を基にＲＴＬ回路記述を生成し、前記動作レベル回路記述と前記ＲＴＬ回路記述の相違からそれらの対応関係を示す情報を生成する動作合成手段と、
予め設定された変換ルール、及び前記動作合成手段で生成された前記対応関係の情報を基に、前記動作レベル回路記述に付加された付帯情報を前記ＲＴＬ回路記述に付加する付帯情報に変換する付帯情報変換手段と、
を有する構成である。
【００６１】
一方、本発明の動作合成方法は、処理装置により半導体集積回路装置の動作を記述した動作レベル回路記述から具体的な機能を記述したＲＴＬ回路記述を生成するための動作合成方法であって、
前記動作レベル回路記述を基に前記ＲＴＬ回路記述を生成するステップ、
前記動作レベル回路記述と前記ＲＴＬ回路記述の相違からそれらの対応関係を示す情報を生成するステップ、及び
予め設定された変換ルール、及び前記動作合成手段で生成された前記対応関係の情報を基に、前記動作レベル回路記述に付加された付帯情報を前記ＲＴＬ回路記述に付加する付帯情報に変換するステップから構成される方法である。
【００６２】
上記のような動作合成装置及び方法では、付帯情報変換ルール及び対応関係の情報を基に、動作レベル回路記述の付帯情報がＲＴＬ回路記述の付帯情報に変換されるため、動作レベル回路記述の付帯情報とＲＴＬ回路記述の付帯情報とをそれぞれ個別に作成する必要がなくなる。
【発明の効果】
【００６３】
本発明によれば、付帯情報変換ルール及び対応関係の情報を基に、動作レベル回路記述の付帯情報がＲＴＬ回路記述の付帯情報に変換されるため、動作レベル回路記述の付帯情報とＲＴＬ回路記述の付帯情報とをそれぞれ個別に作成する必要がなくなる。したがって、半導体集積回路装置の設計効率が向上する。また、人手による付帯情報の作成作業は不要であるため、それに起因する設計ミスが防止される。
【発明を実施するための最良の形態】
【００６４】
次に本発明について図面を参照して説明する。
【００６５】
（第１の実施の形態）
図１は本発明の動作合成装置の第１の実施の形態の構成を示すブロック図である。
【００６６】
図１に示すように、第１の実施の形態の動作合成装置は、動作レベル回路記述及び動作レベル付帯情報からＲＴＬ回路記述及びＲＴＬ付帯情報をそれぞれ生成する処理装置１００と、処理に必要な各種情報が格納される記憶装置２００とを有する構成である。
【００６７】
本実施形態の処理装置１００は、動作合成手段１０１及び付帯情報変換手段１０２を有する構成である。また、記憶装置２００は、動作レベル回路記述記憶部２０１、動作レベル付帯情報記憶部２０２、対応関係記憶部２０３、ＲＴＬ回路記述記憶部２０４、ＲＴＬ付帯情報記憶部２０５及び付帯情報変換ルール記憶部２０９を有する構成である。
【００６８】
動作レベル回路記述記憶部２０１には動作レベル回路記述が予め格納され、動作レベル付帯情報記憶部２０２には動作レベル付帯情報が予め格納されている。動作レベル回路記述及び動作レベル付帯情報は、例えば設計者によって準備される。
【００６９】
記憶装置２００の対応関係記憶部２０３には、動作合成手段１０１で生成された動作レベル回路記述とＲＴＬ回路記述の対応関係を示す情報（以下、単に「対応関係」と称す）が格納される。動作レベル回路記述とＲＴＬ回路記述の対応関係としては、例えば、「信号の対応関係」、「演算の対応関係」、「記述文の対応関係」等がある。
【００７０】
動作合成手段１０１は、動作レベル回路記述記憶部２０１に格納された動作レベル回路記述を読み出し、従来と同様の技術を用いてＲＴＬ回路記述を生成し、生成したＲＴＬ回路記述をＲＴＬ回路記述記憶部２０４へ格納する。また、動作レベル回路記述とＲＴＬ回路記述の相違からその対応関係を生成し、生成した対応関係を対応関係記憶部２０３へ格納する。
【００７１】
付帯情報変換手段１０２は、付帯情報変換ルール記憶部２０９に格納された付帯情報変換ルール、動作レベル付帯情報記憶部２０２に格納された動作レベル付帯情報、対応関係記憶部２０３に格納された対応関係をそれぞれ読み出し、それらの情報を基に動作レベル付帯情報からＲＴＬ付帯情報に生成し、ＲＴＬ付帯情報記憶部２０５へ格納する。
【００７２】
付帯情報変換ルール記憶部２０９に格納される付帯情報変換ルールは、付帯情報の種類によって異なり、例えば付帯情報の記述に用いる文法の変換ルール、動作レベル回路記述の信号をＲＴＬ回路記述の信号へ置き換えるためのルール、ＲＴＬ回路記述に付加する付帯情報の位置に関するルール等がある。
【００７３】
なお、本実施形態の動作合成装置は、図１に示した各構成要素の機能を実現するＬＳＩや論理回路等によって構成されていてもよく、図２に示すような情報処理装置（コンピュータ）によって実現されてもよい。図２に示す情報処理装置は、ＣＰＵを含む処理装置１００と、記憶装置２００と、記録媒体５００とを有し、処理装置１００は、記録媒体５００に格納された動作合成用プログラムを読み込み、該動作合成プログラムにしたがってＣＰＵにより以下に記載する本実施形態の動作合成手段１０１及び付帯情報変換手段１０２の処理をそれぞれ実行する。
【００７４】
また、記憶装置２００は、そのメモリ領域が、上記動作レベル回路記述記憶部２０１、動作レベル付帯情報記憶部２０２、対応関係記憶部２０３、ＲＴＬ回路記述記憶部２０４ＲＴＬ付帯情報記憶部２０５及び付帯情報変換ルール記憶部２０９にそれぞれ分割されて使用される。
【００７５】
次に本実施形態の動作合成装置の動作について図１を参照しつつ図３を用いて説明する。
【００７６】
図３は本発明の動作合成装置の第１の実施の形態の動作を示すフローチャートである。
【００７７】
上述したように、動作レベル回路記述記憶部２０１には動作レベル回路記述が予め格納され、動作レベル付帯情報記憶部２０２には動作レベル付帯情報が予め格納されているものとする。また、付帯情報変換ルール記憶部２０９には付帯情報変換ルールが予め格納されているものとする。
【００７８】
動作レベル回路記述は、従来と同様にＣ言語、Ｃ＋＋言語またはｊａｖａ言語、あるいはＳｙｓｔｅｍＣ、ＳｐｅｃＣ等のように、Ｃ言語またはＣ＋＋言語に回路の表現に便利な特徴を付加した言語を用いて作成される。
【００７９】
動作レベル回路記述の一例は図１５に示したとおりである。図１５に示した動作レベル回路記述では、その１行目及び２行目で４ビットの信号instと８ビットの信号cmdとが定義されている。また、３行目から８行目にはswitch文を用いて信号instの値により信号cmdの値が決まることが定義されている。
【００８０】
なお、以下では、動作レベル付帯情報として動作レベルアサーションを例にして説明する。動作レベルアサーションは、上述したように回路の動作が満たすべき性質を指定する情報であり、例えば非特許文献１に記載された技術を用いて作成される。
【００８１】
動作レベルアサーションの記述例は図１６に示したとおりである。上述したように、図１６では、always never文を用いて動作レベル回路記述上の信号instの値が４にならないことが定義されている。
【００８２】
図３に示すように、本実施形態の動作合成装置は、まず動作合成手段１０１を用いて動作レベル回路記述記憶部２０１に格納された動作レベル回路記述及び動作レベル付帯情報記憶部２０２に格納された動作レベル付帯情報をそれぞれ読み出し、該動作レベル回路記述及び動作レベル付帯情報を基にＲＴＬ回路記述を生成する。また、動作レベル回路記述と生成したＲＴＬ回路記述との相違からそれらの対応関係を生成する（ステップＡ１）。生成したＲＴＬ回路記述はＲＴＬ回路記述記憶部２０４へ格納し、対応関係は対応関係記憶部２０３へ格納する。このステップＡ１の処理は、例えば非特許文献２に記載された既知の技術を用いて実施すればよい。
【００８３】
動作合成装置で生成するＲＴＬ回路記述の一例は図１９に示したとおりである。上述したように、図１９に示すＲＴＬ回路記述では、その１行目から３行目に４ビットの信号REG00、８ビットの信号MID01及び４ビットの信号stateがそれぞれ定義されている。また、４行目から１２行目にはalways文を用いて、信号stateの値が２であるとき、信号REG00の値により信号MID01の値が決まることが定義されている。すなわち、信号REG00の値が、4’h1，4’h2，4’h3，4’h4, 4’h5のとき、信号MID01の値が8’h1, 8’h2, 8’h4, 8’h8, 8’h10にそれぞれ決まることが定義され、信号REG00の値が上記以外の場合は、信号MID01の値が特に定められていないことが示されている。
【００８４】
図４は第１の実施の形態の動作合成装置で生成する対応関係の記述例を示す図である。
【００８５】
図４に示す記述は、上記「信号の対応関係」を定義したものであり、動作レベル回路記述に含まれる信号と、その信号に対応するＲＴＬ回路記述に含まれる信号と、これらの信号が対応するための条件とが含まれている。具体的には、条件state == 4'h2が成り立つとき、動作レベル回路記述の信号inst、信号cmdが、ＲＴＬ回路記述の信号REG00、信号MID01にそれぞれ対応することが定義されている。
【００８６】
動作合成装置は、動作合成手段１０１を用いてＲＴＬ回路記述及び対応関係を生成すると、付帯情報変換手段１０２を用いて付帯情報変換ルール記憶部２０９に格納された付帯情報変換ルール、対応関係記憶部２０３に格納された対応関係及び動作レベル付帯情報記憶部２０２に格納された動作レベル付帯情報をそれぞれ読み出し、付帯情報変換ルール及び対応関係に基づき動作レベル付帯情報をＲＴＬ付帯情報に変換する（ステップＡ２）。変換したＲＴＬ付帯情報はＲＴＬ付帯情報記憶部２０５へ格納する。
【００８７】
例えば、図１５に示した動作レベル回路記述を図１９に示したＲＴＬ回路記述へ変換する場合、付帯情報変換ルールとしては、動作レベル回路記述の信号をＲＴＬ回路記述の信号へ置き換えるためのルールが定義される。この場合、付帯情報変換手段１０２は、図４に示した対応関係の情報を基に、この付帯情報変換ルールにしたがって動作レベルアサーション内で定義された信号inst, cmdをＲＴＬアサーションの信号REG00, MID01へ置き換えることでＲＴＬアサーションを生成する。
【００８８】
本実施形態の動作合成装置によれば、付帯情報変換ルール記憶部２０９に格納された付帯情報変換ルール及び対応関係記憶部２０３に格納された対応関係を基に、動作レベル付帯情報がＲＴＬ付帯情報に変換されるため、動作レベル付帯情報とＲＴＬ付帯情報とをそれぞれ個別に作成する必要がなくなる。したがって、半導体集積回路装置の設計効率が向上する。また、人手による付帯情報の作成作業は不要であるため、それに起因する設計ミスが防止される。
【００８９】
（第２の実施の形態）
次に本発明の動作合成装置の第２の実施の形態について図面を用いて説明する。
【００９０】
図５は本発明の動作合成装置の第２の実施の形態の構成を示すブロック図である。
【００９１】
図５に示すように、第２の実施の形態の動作合成装置は、付帯情報が付加された動作レベル回路記述からＲＴＬ回路記述及びＲＴＬ付帯情報をそれぞれ生成する処理装置３００と、処理に必要な各種情報が格納される記憶装置４００とを有する構成である。
【００９２】
本実施形態の処理装置３００は、動作合成手段１０１、付帯情報変換手段１０２及び付帯情報抽出手段１０３を有する構成である。また、記憶装置４００は、付帯情報つき動作レベル回路記述記憶部２０６、対応関係記憶部２０３、ＲＴＬ回路記述記憶部２０４、ＲＴＬ付帯情報記憶部２０５、付帯情報中間記述記憶部２０７、付帯情報つきＲＴＬ回路記述記憶部２０８及び付帯情報変換ルール記憶部２０９を有する構成である。
【００９３】
付帯情報つき動作レベル回路記述記憶部２０６には動作レベル付帯情報が付加された動作レベル回路記述が格納される。
【００９４】
対応関係記憶部２０３には、第１の実施の形態と同様に動作合成手段１０１で生成された、動作レベル回路記述とＲＴＬ回路記述の対応関係を示す情報が格納される。動作レベル回路記述とＲＴＬ回路記述との対応関係としては、例えば、「信号の対応関係」、「演算の対応関係」、「記述文の対応関係」等がある。
【００９５】
付帯情報抽出手段１０３は、付帯情報つき動作レベル回路記述記憶部２０６に格納された動作レベル付帯情報が付加された動作レベル回路記述を読み出し、動作レベル付帯情報を抽出して付帯情報中間記述を取得し、該付帯情報中間記述を付帯情報中間記述記憶部２０７へ格納する。付帯情報中間記述は、例えば付帯情報が付加された動作レベル回路記述中の行の情報、動作レベル回路記述の情報、付帯情報等の該付帯情報を判別するための情報から構成される。
【００９６】
動作合成手段１０１は、付帯情報つき動作レベル回路記述記憶部２０６に格納された動作レベル付帯情報が付加された動作レベル回路記述を読み出し、従来と同様の技術を用いてＲＴＬ回路記述を生成し、生成したＲＴＬ回路記述をＲＴＬ回路記述記憶部２０４へ格納する。また、動作レベル回路記述とＲＴＬ回路記述の相違からその対応関係を生成し、生成した対応関係を対応関係記憶部２０３へ格納する。
【００９７】
付帯情報変換手段１０２は、付帯情報変換ルール記憶部２０９に格納された付帯情報変換ルール、付帯情報中間記述記憶部２０７に格納された付帯情報中間記述及び対応関係記憶部２０３に格納された対応関係をそれぞれ読み出し、それらの情報を基に動作レベル付帯情報をＲＴＬ付帯情報に変換し、ＲＴＬ回路記述記憶部２０４から読み出したＲＴＬ回路記述に該ＲＴＬ付帯情報を付加して付帯情報つきＲＴＬ回路記述記憶部２０８へ格納する。
【００９８】
付帯情報変換ルール記憶部２０９に格納される付帯情報変換ルールは、付帯情報の種類によって異なり、例えば付帯情報の記述に用いる文法の変換ルール、動作レベル回路記述の信号をＲＴＬ回路記述の信号へ置き換えるためのルール、ＲＴＬ回路記述に付加する付帯情報の位置に関するルール等がある。
【００９９】
なお、本実施形態の動作合成装置は、図５に示した各構成要素の機能を実現するＬＳＩや論理回路等によって構成されていてもよく、図６に示すような情報処理装置によって実現されてもよい。図６に示す情報処理装置は、ＣＰＵを含む処理装置３００と、記憶装置４００と、記録媒体５００とを有し、処理装置３００は、記録媒体５００に格納された動作合成用プログラムを読み込み、該動作合成プログラムにしたがってＣＰＵにより以下に記載する本実施形態の動作合成手段１０１、付帯情報変換手段１０２及び付帯情報抽出手段１０３の処理をそれぞれ実行する。
【０１００】
また、記憶装置４００は、そのメモリ領域が、上記付帯情報つき動作レベル回路記述記憶部２０６、対応関係記憶部２０３、ＲＴＬ回路記述記憶部２０４、ＲＴＬ付帯情報記憶部２０５、付帯情報中間記述記憶部２０７、付帯情報つきＲＴＬ回路記述記憶部２０８及び付帯情報変換ルール記憶部２０９にそれぞれ分割されて使用される。
【０１０１】
次に本実施形態の動作合成装置の動作について図５を参照しつつ図７を用いて説明する。
【０１０２】
図７は本発明の動作合成装置の第２の実施の形態の動作を示すフローチャートである。
【０１０３】
上述したように、付帯情報つき動作レベル回路記述記憶部２０６には動作レベル付帯情報が付加された動作レベル回路記述が予め格納され、付帯情報変換ルール記憶部２０９には付帯情報変換ルールが予め格納されているものとする。
【０１０４】
動作レベル回路記述は、従来と同様にＣ言語、Ｃ＋＋言語またはｊａｖａ言語、あるいはＳｙｓｔｅｍＣ、ＳｐｅｃＣ等のように、Ｃ言語またはＣ＋＋言語に回路の表現に便利な特徴を付加した言語を用いて作成される。
【０１０５】
まず、動作レベル付帯情報として動作レベルディレクティブを付加する場合を例にして本実施形態の動作を説明する。
【０１０６】
動作レベルディレクティブが付加された動作レベル回路記述の一例は図１８に示したとおりである。上述したように、図１８ではswitch文を用いて信号instの値により信号cmdの値が決まることが定義されている。また、図１８では、動作レベルディレクティブの記述であるfull case文を用いて、これに続くswitch文が想定し得る条件を全て網羅していることを定義している。
【０１０７】
このような動作レベルディレクティブを挿入することで、図１８に示す動作レベル回路記述を受け取った動作合成装置は、switch文の実行時に信号instの値が６から１５にならないことが分かるため、信号cmdの値を保持する処理等を考慮することなく、動作レベル回路記述をＲＴＬ回路記述へ変換できる。
【０１０８】
図７に示すように、本実施形態の動作合成装置は、まず付帯情報抽出手段１０３を用いて、付加情報つき動作レベル回路記述記憶部２０６に格納された動作レベル付帯情報が付加された動作レベル回路記述を読み出し、動作レベル付帯情報を抽出して付帯情報中間記述を取得する（ステップＢ１）。取得した付帯情報中間記述は付帯情報中間記述記憶部２０７に格納する。
【０１０９】
図８は動作レベルディレクティブを指定する付帯情報中間記述の一例を示す図である。
【０１１０】
図８には、動作レベル回路記述に動作レベルディレクティブ//directive "full case"が挿入され、その処理対象が４行目のswitch文であることが定義されている。
【０１１１】
次に、動作合成装置は、動作合成手段１０１を用いて付帯情報つき動作レベル回路記述記憶部２０６に格納された動作レベル付帯情報が付加された動作レベル回路記述を読み出し、該動作レベル回路記述及び動作レベル付帯情報を基にＲＴＬ回路記述を生成する。また、動作レベル回路記述と生成したＲＴＬ回路記述の相違からそれらの対応関係を生成する（ステップＢ２）。生成したＲＴＬ回路記述はＲＴＬ回路記述記憶部２０４へ格納し、対応関係は対応関係記憶部２０３へ格納する。このステップＢ２の処理は、例えば非特許文献２に記載された既知の技術を用いて実施すればよい。
【０１１２】
動作合成装置で生成するＲＴＬ回路記述の一例は図１９に示したとおりである。
【０１１３】
上述したように、図１９に示すＲＴＬ回路記述では、その１行目から３行目に４ビットの信号REG00、８ビットの信号MID01及び４ビットの信号stateがそれぞれ定義されている。また、４行目から１２行目にはalways文を用いて、信号stateの値が２であるとき、信号REG00の値により信号MID01の値が決まることが定義されている。すなわち、信号REG00の値が、4’h1，4’h2，4’h3，4’h4, 4’h5のとき、信号MID01の値が8’h1, 8’h2, 8’h4, 8’h8, 8’h10にそれぞれ決まることが定義され、信号REG00の値が上記以外の場合は、信号MID01の値が特に定められていないことが示されている。
【０１１４】
図９は第２の実施の形態の動作合成装置で生成する対応関係の記述例を示す図である。
【０１１５】
図９に示す記述は、図４に示した動作レベル回路記述の信号とＲＴＬ回路記述の信号の対応関係に加えて、上記「記述文の対応関係」を定義したものであり、動作レベル回路記述の４行目に記載されたswitch()文がＲＴＬ回路記述の６行目に記載のcase()文に対応することが定義されている。
【０１１６】
動作合成装置は、動作合成手段１０１を用いてＲＴＬ回路記述及び対応関係を生成すると、付帯情報変換手段１０２を用いて付帯情報変換ルール記憶部２０９に格納された付帯情報変換ルール、対応関係記憶部２０３に格納された対応関係及び付帯情報中間記述記憶部２０７に格納された付帯情報中間記述をそれぞれ読み出し、付帯情報変換ルール及び対応関係に基づき動作レベル付帯情報をＲＴＬ付帯情報に変換する（ステップＢ３）。変換したＲＴＬ付帯情報はＲＴＬ回路記述記憶部２０４から読み出したＲＴＬ回路記述に付加し、付帯情報つきＲＴＬ回路記述記憶部２０８へ格納する。
【０１１７】
ＲＴＬ付帯情報が付加されたＲＴＬ回路記述の一例は図２１に示したとおりである。
【０１１８】
図２１では、その１行目から３行目に４ビットの信号REG00、８ビットの信号MID01及び４ビットの信号stateがそれぞれ定義されている。また、４行目から１３行目にはalways文を用いて、信号stateの値が２であるとき、信号REG00の値により信号MID01の値が決まることが定義されている。さらに、図２１では、動作レベルディレクティブの記述である６行目のfull case文を用いて、これに続くcase文が想定し得る条件を全て網羅していることが定義されている。
【０１１９】
例えば、図１８に示した動作レベル回路記述を図２１に示したＲＴＬ回路記述へ変換する場合、付帯情報変換ルールとしては、動作レベル回路記述からＲＴＬ回路記述への変換と共に動作レベル回路記述に付加されたディレクティブも変換してＲＴＬ回路記述へ付加するルール、及びその際にＲＴＬ回路記述の文法に変換するルールが定義される。この場合、付帯情報変換手段１０２は、図９に示した対応関係の情報を基に、この付帯情報変換ルールにしたがって動作レベルディレクティブ内で定義された信号inst, cmdをＲＴＬディレクティブの信号REG00, MID01へ置き換える。また、動作レベル回路記述の４行目のswitch()文をＲＴＬ回路記述の６行目にcase()文として挿入することでＲＴＬディレクティブを生成する。その際、記述文法を動作ディレクティブからＲＴＬディレクティブへ変換する。
【０１２０】
次に、動作レベル付帯情報として動作レベル回路記述をデバッグするためのデバッグ記述を付加する場合を例にして本実施形態の動作を説明する。なお、動作合成装置には、図５または図６に示した構成を用いるため、ここではその説明を省略する。
【０１２１】
図１０はデバッグ記述が付加された動作レベル回路記述の一例を示す図である。
【０１２２】
図１０の３行目に示す printf() がデバッグ記述である。このデバッグ記述は動作レベル設計フェーズにおいて設計した回路が正しいか否かを確認する論理検証時に使用される。
【０１２３】
図１０では、その１行目から２行目に４ビットの信号instと８ビットの信号cmdとがそれぞれ定義されている。また、４行目から９行目にはswitch文を用いて信号instの値により信号cmdの値が決まることが定義されている。さらに、回路動作をモニタするために、３行目のprintf()文により、これに続くswitch文を実行する直前の信号instの値をコンソール画面に出力することが定義されている。
【０１２４】
図３に示したように、動作合成装置は、付帯情報抽出手段１０３を用いて、付加情報つき動作レベル回路記述記憶部２０６に格納された動作レベル付帯情報が付加された動作レベル回路記述を読み出し、動作レベル付帯情報を抽出して付帯情報中間記述を取得する（ステップＢ１）。取得した付帯情報中間記述は付帯情報中間記述記憶部２０７に格納する。
【０１２５】
図１１はデバッグ記述を指定する付帯情報中間記述の一例を示す図である。
【０１２６】
図１１には、動作レベル回路記述の３行目にデバッグ記述である printf() が挿入され、その処理対象が動作レベル回路記述中の信号instであることが定義されている。
【０１２７】
次に、動作合成装置は、動作合成手段１０１を用いて付帯情報つき動作レベル回路記述記憶部２０６に格納された動作レベル付帯情報が付加された動作レベル回路記述を読み出し、該動作レベル回路記述を基にＲＴＬ回路記述を生成する。また、動作レベル回路記述と生成したＲＴＬ回路記述との相違からそれらの対応関係を生成する（ステップＢ２）。生成したＲＴＬ回路記述はＲＴＬ回路記述記憶部２０４へ格納し、対応関係は対応関係記憶部２０３へ格納する。
【０１２８】
動作合成装置で生成するＲＴＬ回路記述の一例は図１９に示したとおりである。
【０１２９】
図１２は第２の実施の形態の動作合成装置で生成する対応関係の他の例を示す図である。
【０１３０】
図１２に示す記述は、上記「演算の対応関係」を定義したものであり、動作レベル回路記述に含まれる演算と、その演算に対応するＲＴＬ回路記述に含まれる演算と、これらの演算が対応するための条件とが含まれている。具体的には、ＲＴＬ回路記述において条件 state == 4'h2 が成り立つとき、動作レベル回路記述中の信号instに対する処理をＲＴＬ回路記述中の信号REG00に処理に置き換えることが定義されている。
【０１３１】
動作合成装置は、動作合成手段１０１を用いてＲＴＬ回路記述及び対応関係を生成すると、付帯情報変換手段１０２を用いて付帯情報変換ルール記憶部２０９に格納された付帯情報変換ルール、対応関係記憶部２０３に格納された対応関係及び付帯情報中間記述記憶部２０７に格納された付帯情報中間記述をそれぞれ読み出し、付帯情報変換ルール及び対応関係に基づき動作レベル付帯情報をＲＴＬ付帯情報に変換する（ステップＢ３）。変換したＲＴＬ付帯情報はＲＴＬ回路記述記憶部２０４から読み出したＲＴＬ回路記述に付加し、付帯情報つきＲＴＬ回路記述記憶部２０８へ格納する。
【０１３２】
図１３はデバッグ記述が付加されたＲＴＬ回路記述の一例を示す図である。
【０１３３】
図１３では、その１行目から３行目に４ビットの信号REG00、８ビットの信号MID01及び４ビットの信号stateがそれぞれ定義されている。また、４行目から１１行目にはalways文を用いて、信号stateの値が２であるとき、信号REG00の値により信号MID01の値が決まることが定義されている。さらに、図１３では、動作レベル回路記述中の信号instに対応するＲＴＬ回路記述中の信号REG00をモニタするために、１２行目から１４行目にデバッグ記述が挿入されている。
【０１３４】
ここでは、条件 state == 4'h2 が成り立つとき、動作レベル回路記述中の信号instは、ＲＴＬ回路記述中の信号REG00に対応し、信号stateの値が4'h2 のとき、信号REG00の値を画面に出力するよう定義されている。
【０１３５】
例えば、図１０に示した動作レベル回路記述を図１３に示したＲＴＬ回路記述へ変換する場合、付帯情報変換ルールとしては、動作レベル回路記述中の信号に対応するＲＴＬ回路記述中の信号の値を出力するルール、及びその際にＲＴＬ回路記述の文法にしたがって出力するルールが定義される。
【０１３６】
この場合、付帯情報変換手段１０２は、図１２に示した対応関係の情報を基に、この付帯情報変換ルールにしたがって、ＲＴＬ回路記述において条件 state == 4'h2 が成り立つとき、動作レベル回路記述中の信号instをＲＴＬ回路記述の信号REG00に置き換え、ＲＴＬ回路記述の文法にしたがって画面に出力する。
【０１３７】
本実施形態の動作合成装置によれば、付帯情報抽出手段１０３により動作レベル回路記述に付加された付帯情報を抽出し、付帯情報変換ルール記憶部２０９に格納された付帯情報変換ルール及び対応関係記憶部２０３に格納された対応関係を基に、付帯情報変換手段１０２により動作レベル付帯情報がＲＴＬ付帯情報に変換されるため、動作レベル回路記述に付帯情報が既に付加されている場合でも、第１の実施の形態と同様に動作レベル付帯情報とＲＴＬ付帯情報とをそれぞれ個別に作成する必要がなくなる。したがって、半導体集積回路装置の設計効率が向上する。また、人手による付帯情報の作成作業は不要であるため、それに起因する設計ミスが防止される。
【図面の簡単な説明】
【０１３８】
【図１】本発明の動作合成装置の第１の実施の形態の構成を示すブロック図である。
【図２】本発明の動作合成装置の第１の実施の形態の他の構成例を示すブロック図である。
【図３】本発明の動作合成装置の第１の実施の形態の動作を示すフローチャートである。
【図４】第１の実施の形態の動作合成装置で生成する対応関係の記述例を示す図である。
【図５】本発明の動作合成装置の第２の実施の形態の構成を示すブロック図である。
【図６】本発明の動作合成装置の第２の実施の形態の他の構成例を示すブロック図である。
【図７】本発明の動作合成装置の第２の実施の形態の動作を示すフローチャートである。
【図８】動作レベルディレクティブを指定する付帯情報中間記述の一例を示す図である。
【図９】第２の実施の形態の動作合成装置で生成する対応関係の記述例を示す図である。
【図１０】デバッグ記述が付加された動作レベル回路記述の一例を示す図である。
【図１１】デバッグ記述を指定する付帯情報中間記述の一例を示す図である。
【図１２】第２の実施の形態の動作合成装置で生成する対応関係の他の例を示す図である。
【図１３】デバッグ記述が付加されたＲＴＬ回路記述の一例を示す図である。
【図１４】トップダウン設計方法の概略工程を示すフローチャートである。
【図１５】動作レベル回路記述の一例を示す図である。
【図１６】動作レベルアサーションの記述例を示す図である。
【図１７】図１４に示した動作合成装置の処理手順を示すフローチャートである。
【図１８】動作レベルディレクティブが付加された動作レベル回路記述の一例を示す図である。
【図１９】ＲＴＬ回路記述の一例を示す図である。
【図２０】ＲＴＬアサーションの記述例を示す図である。
【図２１】ＲＴＬディレクティブが付加されたＲＴＬ回路記述の一例を示す図である。
【符号の説明】
【０１３９】
１００    処理装置
１０１    動作合成手段
１０２    付帯情報変換手段
１０３    付帯情報抽出手段
２００    記憶装置
２０１    動作レベル回路記述記憶部
２０２    動作レベル付帯情報記憶部
２０３    対応関係記憶部
２０４    ＲＴＬ回路記述記憶部
２０５    ＲＴＬ付帯情報記憶部
２０６    付帯情報つき動作レベル回路記述記憶部
２０７    付帯情報中間記述記憶部
２０８    付帯情報つきＲＴＬ回路記述記憶部
２０９    付帯情報変換ルール記憶部
５００    記録媒体
【図１】
2006285333.tif 000003
【図２】
2006285333.tif 000004
【図３】
2006285333.tif 000005
【図４】
2006285333.tif 000006
【図５】
2006285333.tif 000007
【図６】
2006285333.tif 000008
【図７】
2006285333.tif 000009
【図８】
2006285333.tif 000010
【図９】
2006285333.tif 000011
【図１０】
2006285333.tif 000012
【図１１】
2006285333.tif 000013
【図１２】
2006285333.tif 000014
【図１３】
2006285333.tif 000015
【図１４】
2006285333.tif 000016
【図１５】
2006285333.tif 000017
【図１６】
2006285333.tif 000018
【図１７】
2006285333.tif 000019
【図１８】
2006285333.tif 000020
【図１９】
2006285333.tif 000021
【図２０】
2006285333.tif 000022
【図２１】
2006285333.tif 000023