(57)【要約】【課題】              ＲＴＬ記述と動作記述との間の対応関係をとる作業を容易化する。【解決手段】  動作合成装置がスケジューリング、コントロールデータフローグラフ作成、演算器やレジスタの共有をどのように行っているかを解析し、ＲＴＬ記述とＣＤＦＧの対応関係を定めた対応表と、ＣＤＦＧと動作記述の対応関係を定めた対応表を作成しておく。パス特定装置は、これら対応表を結合し、ＲＴＬ記述と動作記述の対応関係を定めた対応表を生成する。パス特定装置は、注目するパスをＲＴＬ記述に反映した後、ＲＴＬ記述に対応する動作記述を、ＲＴＬ記述が有するＦＳＭの各状態と動作記述上の条件分岐により特定可能に出力する。【選択図】  図１
2006285865.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも１つの条件分岐文を含む動作記述と合成制約とを入力し、
前記動作記述と前記合成制約から有限状態マシンを有するレジスタ転送レベル記述を生成する動作合成装置において、
前記レジスタ転送レベル記述の生成過程における親（動作記述）側の記述と子（レジスタ転送レベル記述）側の記述と有限状態マシンの状態と前記動作記述における条件分岐との関係を記憶保持する対応関係格納手段と、
前記対応関係格納手段に記憶保持された情報を用いて、少なくとも、子（レジスタ転送レベル記述）側の記述と、前記有限状態マシンの状態と、前記条件分岐の情報と、親（動作記述）側の記述との対応関係を示した対応表を生成する対応表生成手段と、を備えたこと、
を特徴とする動作合成装置。
【請求項２】
前記対応表生成手段は、前記動作合成装置が動作記述から中間レベル記述を生成する際に前記対応関係格納手段に記憶保持された情報を用いて、少なくとも中間レベル記述のノードと、動作記述の対応部分とを対応付ける第１の対応表を生成し、
更に、前記動作合成装置が中間レベル記述と合成制約から有限状態マシンを有するレジスタ転送レベル記述を生成する際に前記対応関係格納手段に記憶保持された情報を用いて、少なくともレジスタ転送レベル記述のノードと、前記中間レベル記述のノードとを、前記中間レベル記述が有する有限状態マシンの状態と条件分岐の情報によって対応付ける第２の対応表を生成すること、
を特徴とする請求項１に記載の動作合成装置。
【請求項３】
前記対応表生成手段は、前記動作合成装置が動作記述から中間レベル記述を生成する際に前記対応関係格納手段に記憶保持された情報を用いて、少なくとも中間レベル記述のノードからの入出力信号と、動作記述の対応部分とを対応付ける第１の対応表を生成し、
更に、前記動作合成装置が中間レベル記述と合成制約から有限状態マシンを有するレジスタ転送レベル記述を生成する際に前記対応関係格納手段に記憶保持された情報を用いて、少なくともレジスタ転送レベル記述のノードからの入出力信号と、前記中間レベル記述のノードからの入出力信号とを、前記中間レベル記述が有する有限状態マシンの状態と条件分岐の情報によって対応付ける第２の対応表を生成すること、
を特徴とする請求項１に記載の動作合成装置。
【請求項４】
請求項１に記載の動作合成装置によって生成された対応表を入力して、レジスタ転送レベル記述と動作記述間の対応関係を、前記レジスタ転送レベル記述が有する有限状態マシンの状態と、前記動作記述における条件分岐の情報によって特定可能に出力する対応特定手段を備えたこと、
を特徴とする回路設計支援装置。
【請求項５】
請求項２又は３に記載の動作合成装置によって生成された第１、第２の対応表を合成して第３の対応表を生成する手段と、
前記第３の対応表を用いて、レジスタ転送レベル記述と動作記述間の対応関係を、前記レジスタ転送レベル記述が有する有限状態マシンの状態と、前記動作記述における条件分岐の情報によって特定可能に出力する対応特定手段を備えたこと、
を特徴とする回路設計支援装置。
【請求項６】
少なくとも１つの条件分岐文を含む動作記述と、
前記動作記述を動作合成して生成された有限状態マシンを有するレジスタ転送レベル記述と、
前記レジスタ転送レベル記述と前記有限状態マシンの状態と前記条件分岐の情報と前記動作記述との対応関係を示した対応表と、を入力して、
前記レジスタ転送レベル記述と前記動作記述間の対応関係を、前記レジスタ転送レベル記述が有する有限状態マシンの状態と、前記動作記述における条件分岐の情報によって特定可能に出力する対応特定手段を備えたこと、
を特徴とする回路設計支援装置。
【請求項７】
前記対応特定手段は、
前記レジスタ転送レベル記述によるパス情報を入力し、
前記パス情報によって特定されるパス全体が、同一の有限状態マシンの状態、かつ、同一の条件分岐に属する動作記述のソース行を抽出し、
該抽出した動作記述のソース行を出力すること、
を特徴とする請求項４乃至６いずれか一に記載の回路設計支援装置。
【請求項８】
少なくとも１つの条件分岐文を含む動作記述と合成制約とを入力し、前記動作記述と前記合成制約から有限状態マシンを有するレジスタ転送レベル記述を生成する動作合成装置を構成するコンピュータに実行させるプログラムであって、
前記レジスタ転送レベル記述の生成過程における親（動作記述）側の記述と子（レジスタ転送レベル記述）側の記述と有限状態マシンの状態と前記動作記述における条件分岐との関係を記憶保持する処理と、
前記対応関係格納手段に記憶保持された情報を用いて、少なくとも、子（レジスタ転送レベル記述）側の記述と、前記有限状態マシンの状態と、前記条件分岐の情報と、親（動作記述）側の記述との対応関係を示した対応表を生成する処理と、
を前記コンピュータに実行させるプログラム。
【請求項９】
前記対応関係格納手段に記憶保持された情報を用いて、少なくとも、子（レジスタ転送レベル記述）側の記述と、前記有限状態マシンの状態と、前記条件分岐の情報と、親（動作記述）側の記述との対応関係を示した対応表を生成する処理として、
前記動作記述から中間レベル記述を生成する際に前記対応関係格納手段に記憶保持された情報を用いて、少なくとも中間レベル記述のノードと、動作記述の対応部分とを対応付ける第１の対応表を生成する処理と、
前記中間レベル記述と合成制約から有限状態マシンを有するレジスタ転送レベル記述を生成する際に前記対応関係格納手段に記憶保持された情報を用いて、少なくともレジスタ転送レベル記述のノードと、前記中間レベル記述のノードとを、前記中間レベル記述が有する有限状態マシンの状態と条件分岐の情報によって対応付ける第２の対応表を生成する処理と、
を前記コンピュータに実行させる請求項８に記載のプログラム。
【請求項１０】
前記対応関係格納手段に記憶保持された情報を用いて、少なくとも、子（レジスタ転送レベル記述）側の記述と、前記有限状態マシンの状態と、前記条件分岐の情報と、親（動作記述）側の記述との対応関係を示した対応表を生成する処理として、
前記動作記述から中間レベル記述を生成する際に前記対応関係格納手段に記憶保持された情報を用いて、少なくとも中間レベル記述のノードからの入出力信号と、動作記述の対応部分とを対応付ける第１の対応表を生成する処理と、
前記中間レベル記述と合成制約から有限状態マシンを有するレジスタ転送レベル記述を生成する際に前記対応関係格納手段に記憶保持された情報を用いて、少なくともレジスタ転送レベル記述のノードからの入出力信号と、前記中間レベル記述のノードからの入出力信号とを、前記中間レベル記述が有する有限状態マシンの状態と条件分岐の情報によって対応付ける第２の対応表を生成する処理と、
を前記コンピュータに実行させる請求項８に記載のプログラム。
【請求項１１】
少なくとも１つの条件分岐文を有する動作記述と合成制約とを入力し、
前記動作記述と前記合成制約から有限状態マシンを有するレジスタ転送レベル記述を生成するためのプログラムであって、
動作記述と合成制約に基づいて前記有限状態マシンの状態と前記動作記述における条件分岐を有する中間レベル記述を生成するとともに、少なくとも前記中間レベル記述のノードと前記動作記述の対応部分とを対応付ける第１の対応表を生成し、それぞれ中間レベル記述格納手段、第１の対応表格納手段に格納する中間レベル記述変換処理と、
前記中間レベル記述格納手段に格納されている中間レベル記述と前記合成制約に基づいて有限状態マシンを有するレジスタ転送レベル記述を生成するとともに、少なくとも前記レジスタ転送レベル記述のノードと前記中間レベル記述のノードとを、前記中間レベル記述が有する前記有限状態マシンの状態と前記条件分岐の情報によって対応付ける第２の対応表を生成し、それぞれ、レジスタ転送レベル記述格納手段、第２の対応表格納手段に格納するＲＴＬ生成処理と、
をコンピュータに実行させるプログラム。
【請求項１２】
請求項１に記載の動作合成装置によって生成された対応表を入力して、レジスタ転送レベル記述と動作記述間の対応関係を、前記レジスタ転送レベル記述が有する有限状態マシンの状態と、前記動作記述が有する条件分岐の情報によって特定可能に出力する処理、
を回路設計支援装置を構成するコンピュータに実行させるプログラム。
【請求項１３】
請求項２又は３に記載の動作合成装置によって生成された第１、第２の対応表を合成して第３の対応表を生成し、記憶保持する処理と、
前記第３の対応表を用いて、レジスタ転送レベル記述と動作記述間の対応関係を前記レジスタ転送レベル記述が有する有限状態マシンの状態と、前記動作記述が有する条件分岐の情報によって特定可能に出力する処理と、
を回路設計支援装置を構成するコンピュータに実行させるプログラム。
【請求項１４】
少なくとも１つの条件分岐文を含む動作記述と、前記動作記述を動作合成して生成された有限状態マシンを有するレジスタ転送レベル記述と、前記レジスタ転送レベル記述と前記有限状態マシンの状態と前記条件分岐の情報と前記動作記述との対応関係を示した対応表と、を入力し記憶保持する処理と、
前記レジスタ転送レベル記述と前記動作記述間の対応関係を、前記レジスタ転送レベル記述が有する有限状態マシンの状態と、前記動作記述における条件分岐の情報によって特定可能に出力する処理と、
を回路設計支援装置を構成するコンピュータに実行させるプログラム。
【請求項１５】
前記レジスタ転送レベル記述によるパス情報を入力する処理と、
前記パス情報によって特定されるパス全体が、同一の有限状態マシンの状態、かつ、同一の条件分岐に属する動作記述のソース行を抽出する処理と、
該抽出した動作記述のソース行を出力する処理と、
を回路設計支援装置を構成するコンピュータに実行させる請求項１２乃至１４いずれか一に記載のプログラム。
【請求項１６】
１つの条件分岐文を含む動作記述と合成制約から有限状態マシンを有するレジスタ転送レベル記述を生成する動作合成装置と、回路設計支援装置を用いて行う、前記レジスタ転送レベル記述と動作記述間の対応関係特定方法であって、
前記動作合成装置が前記レジスタ転送レベル記述の生成過程における親（動作記述）側の記述と子（レジスタ転送レベル記述）側の記述と有限状態マシンの状態と前記動作記述における条件分岐との関係を対応関係格納手段に記憶保持する工程と、
前記動作合成装置が前記対応関係格納手段に記憶保持された情報を用いて、少なくとも、子（レジスタ転送レベル記述）側の記述と、前記有限状態マシンの状態と、前記条件分岐の情報と、親（動作記述）側の記述との対応関係を示した対応表を生成する工程と、
前記回路設計支援装置が、前記対応表を用いて、レジスタ転送レベル記述と動作記述の対応関係を、前記有限状態マシンの状態と前記条件分岐の情報によって特定可能に出力する工程と、を含むこと、
を特徴とするレジスタ転送レベル記述と動作記述間の対応関係特定方法。
【請求項１７】
前記動作合成装置は、動作記述から中間レベル記述を生成する際に前記対応関係格納手段に記憶保持された情報を用いて、少なくとも中間レベル記述のノードと動作記述の対応部分とを対応付ける第１の対応表を生成し、
前記動作合成装置は、更に、前記動作合成装置が中間レベル記述と合成制約から有限状態マシンを有するレジスタ転送レベル記述を生成する際に前記対応関係格納手段に記憶保持された情報を用いて、少なくともレジスタ転送レベル記述のノードと、前記中間レベル記述のノードとを、前記中間レベル記述が有する有限状態マシンの状態と条件分岐の情報によって対応付ける第２の対応表を生成し、
前記回路設計支援装置が、第１、第２の対応表を合成して第３の対応表を生成し、該第３の対応表を用いて、前記レジスタ転送レベル記述と動作記述間の対応関係を、前記有限状態マシンの状態と前記条件分岐の情報によって特定可能に出力すること、
を特徴とする請求項１６に記載のレジスタ転送レベル記述と動作記述間の対応関係特定方法。
【請求項１８】
前記動作合成装置は、動作記述から中間レベル記述を生成する際に前記対応関係格納手段に記憶保持された情報を用いて、少なくとも中間レベル記述のノードからの入出力信号と、動作記述の対応部分とを対応付ける第１の対応表を生成し、
前記動作合成装置は、更に、前記動作合成装置が中間レベル記述と合成制約から有限状態マシンを有するレジスタ転送レベル記述を生成する際に前記対応関係格納手段に記憶保持された情報を用いて、少なくともレジスタ転送レベル記述のノードからの入出力信号と、前記中間レベル記述のノードからの入出力信号とを、前記中間レベル記述が有する有限状態マシンの状態と条件分岐の情報によって対応付ける第２の対応表を生成し、
前記回路設計支援装置が、第１、第２の対応表を合成して第３の対応表を生成し、該第３の対応表を用いて、前記レジスタ転送レベル記述と動作記述間の対応関係を、前記有限状態マシンの状態と前記条件分岐の情報によって特定可能に出力すること、
を特徴とする請求項１６に記載のレジスタ転送レベル記述と動作記述間の対応関係特定方法。
【請求項１９】
前記回路設計支援装置が、前記レジスタ転送レベル記述によるパス情報を入力する工程と、
前記回路設計支援装置が、前記第３の対応表から、前記パス情報によって特定されるパス全体が、同一の有限状態マシンの状態、かつ、同一の条件分岐に属する動作記述のソース行を抽出する工程と、
前記回路設計支援装置が、該抽出した動作記述のソース行を出力する工程と、を含むこと、
を特徴とする請求項１７又は１８に記載のレジスタ転送レベル記述と動作記述間の対応関係特定方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路のパスに対応する上流側の記述の特定を可能とする方法、装置及びプログラムに関し、特にレジスタ転送レベル記述と動作記述間の対応関係特定方法、上記方法を実施するための装置及びプログラムに関する。
【背景技術】
【０００２】
ＬＳＩの集積度は年々指数関数的に増加しているが、設計者一人一人の能力には限界があるため、設計規模の増大に設計能力が追いつかないという状況が生じる。この設計生産性の危機を打開するための有効なアプローチのひとつに、設計の抽象度を上げるという方法があり、また、そのためのＥＤＡ（ｅｌｅｃｔｒｏｎｉｃ  ｄｅｓｉｇｎ  Ａｕｔｏｍａｔｉｏｎ）ツールも各種提案されている。
【０００３】
例えば、ある処理を実行するハードウェアを設計する際に、対象となる処理のアルゴリズムを直接的に動作レベルで記述した「動作記述」（ｂｅｈａｖｉｏｒａｌ  ｄｅｓｃｒｉｐｔｉｏｎ）から、レジスタやクロックによる同期などハードウェアに特有の概念を意識したレジスタ転送レベル記述（Ｒｅｇｉｓｔｅｒ  Ｔｒａｎｓｆｅｒ  Ｌｅｖｅｌ  Ｄｅｓｃｒｉｐｔｉｏｎ；以下、単に「ＲＴＬ記述」ともいう）を自動的に合成する「動作合成」（高位合成、機能合成ともいう）により設計の抽象度を上げることができる。
【０００４】
ここで、動作合成の概要について例を示して説明する。図２は、動作記述、図３は、その動作記述から合成された、演算を処理するデータパス２１と状態を制御するＦＳＭ（Ｆｉｎｉｔｅ Ｓｔａｔｅ Ｍａｃｈｉｎｅ＝有限状態マシン）２２から構成されるＲＴＬ記述の構造である。ここで、図３に例示した演算器、レジスタ、入出力端子などをノードといい、ノードで構成される回路図の形で示したものをＲＴＬ記述と呼ぶ。また、以下、状態とは、ＦＳＭが制御する状態（Ｓｔａｔｅ）のことを指し、また条件分岐（以下、単に条件ともいう）とはデータパスのセレクタに対応するものである。
【０００５】
動作合成においては、レジスタ−レジスタ間や入出力端子−レジスタ間などの遅延を決める動作周波数や、演算器やレジスタなどのハードウェア資源の種類や数などの合成制約を満たすように、動作レベルで記述された処理を幾つかの状態にわけて実行するような変換が行われている。動作記述からＲＴＬ記述への変換の手順としては、動作仕様からの論理設計において、まず動作仕様から演算列即ち制御とデータの流れを抽出し、スケジューリングを行い、コントロールデータフローグラフ（ＣＤＦＧともいう；図４参照）を生成する。最後に、コントロールデータフローグラフに基づいて演算に回路素子を割り付けて論理回路を合成するという手順が踏まれる（非特許文献１参照）。
【０００６】
このような手順をより効率よく実現するために、特許文献１に、演算器やレジスタなどのハードウェア資源の排他性を解析し排他の関係にあるもの同士を共有する、という技術が紹介されている。図４は、図２の動作記述に対応するコントロールデータフローグラフの一例であり、図２の動作記述に対して、特定の合成制約の下でスケジューリングを行った結果、２つの状態(状態１、状態２)からなる構造になった場合を示している。図４を参照すると、乗算１と乗算２と乗算３は異なる状態・条件に属しているため、排他の関係にあり、共有することができる。また、図２の動作記述でいうと、１４行目の乗算（図４の乗算３に相当）は８行目（図４の乗算１に相当）や１１行目（図４の乗算２に相当）の乗算とは異なる状態（状態２）に属している。また、８行目の乗算と１１行目の乗算は同じ状態（状態１）に属しているが、８行目は条件ｓ＞１０（条件１）の場合に実行され、１１行目は条件ｓ＞１０以外の場合（条件２）に実行される、つまり異なる条件に属しているので、ＲＴＬ記述ではこれらの乗算を共有して一つの乗算器で表現することができる。
【０００７】
以上の判定の元に生成されたＲＴＬ記述の構造が図３である。図３を参照すると、図２の動作記述の８、１１、１４行目にある乗算が、動作合成によって一つの乗算器（図３の左側データパス２１中の乗算器１）に割り付けられている。
【０００８】
このようにして合成されたＲＴＬ記述は論理合成により、レジスタ−レジスタ間や入出力端子−レジスタ間などの遅延の情報を有するゲートレベルの記述（ゲートレベル論理回路：ネットリスト；以下、単に「ゲート記述」ともいう）へ変換される。この段階で、静的タイミング解析を行い、回路の遅延情報（以後、タイミングレポートと呼ぶ）を見て、ゲート記述の回路データが、遅延や面積などの合成制約を満たしているかどうかを確認するが、遅延が設計条件を満たしていない場合、もしくは、満たしているが余裕が少ない場合、回路の中で最も遅延が大きいパス（以後、クリティカルパスと呼ぶ）の遅延を小さくするという改善を行わなければならなくなるが、そのためには、元の動作記述の修正が必要になる場合がある。
【０００９】
その際、ゲート記述におけるパス、特にクリティカルパスが動作記述のどの部分に対応するかを特定する必要があるが、ゲート記述は、動作合成・論理合成と２段階の自動合成を経て得られた回路データであるので、元の動作記述とは大きく異なる記述である。そのため、設計者には理解しにくいものであり、動作記述におけるクリティカルパスの特定に多くの時間が掛かるという事情があった。
【００１０】
特許文献２は、上記視点からなされたものであり、タイミングレポートにある回路の遅延情報とゲート記述を対応付ける方法を開示している。同公報によると、まず、ＦＰＧＡ設計システムによって、配置配線後の回路構成とその回路に対するタイミングレポートを、設計データであるゲート記述のセル名およびネット名を使用した回路構成に変換したパス回路構成表示レポートが作成される（特許文献２の図２ステップＳ３０７）。例えば、特許文献２の図４に示すような論理ブロック座標、ネット名、遅延時間、論理ブロックのインスタンス名、論理ブロック内に含まれるセルのインスタンス名などが含まれるタイミングレポートならば、特許文献２の図５のようなセルのインスタンス名、ネット名、セル名、遅延時間、論理ブロックの配置座標、セルの入力および出力ピンなどが含まれるパス回路構成表示レポートに変換される。
【００１１】
特許文献２によれば、続いて、ＦＰＧＡ設計システムは、上記パス回路構成表示レポートに基づき、配置配線後の回路構成にゲート記述を対応させて、図形表示した画像データを作成し、入出力端末装置に表示する（同ステップＳ３０８）。このような処理により、指定されたセルまたはネットが含まれるパスの回路構成を、タイミングレポートから求められる配置配線後の回路構成にゲート記述を対応させて表示することができる。従って、タイミングレポート上のパスがゲート記述のどこに相当するのかを探索し、また把握することが可能となる。
【特許文献１】特開平５−３３４４６６号公報
【特許文献２】特開２００２−３６６５９７号公報
【非特許文献１】The High‐Level Synthesis of Digital Systems ：MICHAEL C. McFARLAND, ALICE C. PARKER, RAULCAMPOSANO : Proceeding of the IEEE， Vo1．78，N0．2 ，1990
【発明の開示】
【発明が解決しようとする課題】
【００１２】
上述のように特許文献２を用いることで、クリティカルパスとゲート記述の対応をとることが可能であるが、ゲート記述は、上述のとおり論理合成及び動作合成を経て自動生成されたものであり、更に、その記述量は動作記述に比べ数倍から数十倍になることが多い。従って、特許文献２をもってしても、設計者にとって、ゲート記述を理解した上でそれを変更する作業が必須となり、クリティカルパスを改善することは、非常に難しく、時間が掛かるという問題点がある。
【００１３】
そこで、ゲート記述でなく、もともと設計者によって作成された動作記述を修正し、再度、動作合成・論理合成を行う手法をとることが考えられるが、そのためにはゲート記述におけるパスが動作記述のどの部分に対応するかを解析する、つまりゲート記述と動作記述との対応関係をとる必要がある。
【００１４】
一般に、ゲート記述とＲＴＬ記述との間では、回路記述中の信号名などでおおよその対応関係が分かったりするものではあるが、Ｓｙｎｐｌｉｃｉｔｙ社のＳｙｎｐｌｉｆｙなどの論理合成ツールには、ゲート記述とＲＴＬ記述との対応関係を解析し、表示する機能などがあり、両者の対応関係が調べやすいような環境が整っている。
【００１５】
しかしながら、ＲＴＬ記述と動作記述との間では対応関係をとることは難しい状況にある。その要因の一つとして、上述したように、合成制約に基づく資源の共有要請等によって、ＲＴＬ記述における一つの演算器やレジスタが、動作記述においては複数の演算子・変数に対応することがあり、ＲＴＬ記述と動作記述との間で「一対多」の関係が生じることがあることが挙げられる。
【００１６】
上述したように、動作合成により生成されたＲＴＬ記述上のパスと、動作記述上のパスとの対応を取るには、動作合成がスケジューリング、コントロールデータフローグラフ作成、演算器やレジスタの共有をどのように行っているかを解析することが必要となり、この作業も人手で行うものであり、時間がかかるという問題点があったのである。
【課題を解決するための手段】
【００１７】
本発明の第１の視点によれば、動作記述と合成制約から有限状態マシンを有するレジスタ転送レベル記述を生成する動作合成装置と、回路設計支援装置を用いて行う、前記レジスタ転送レベル記述と動作記述間の対応関係特定方法であって、上記動作合成の際に中間情報を利用して有限状態マシンを有するＲＴＬ記述と動作記述の対応関係を定めた対応表を作成しておき、前記回路設計支援装置をして、前記した有限状態マシンの各状態と前記動作記述に含まれていた条件分岐文によって、動作記述の中から意味のある箇所を特定可能に出力させる方法が提供される。より具体的には、動作合成装置がスケジューリング、コントロールデータフローグラフ作成、演算器やレジスタの共有を行った過程で得られる情報を利用し、親（動作記述）側の記述と、子（レジスタ転送レベル記述）側の記述とＲＴＬ記述の有限状態マシンの各状態と前記動作記述に含まれていた条件分岐との対応関係を示した対応表を生成していく。次いで、前記回路設計支援コンピュータが、前記対応表を用いて、ＲＴＬ記述と動作記述の対応関係を、ＲＴＬ記述の有限状態マシンの各状態と前記動作記述に含まれていた条件分岐の情報によって特定可能に出力する。
【００１８】
また、本発明の第２の視点によれば、上記した方法を実施するための動作合成装置、回路設計支援装置が提供される。前者の動作合成装置は、レジスタ転送レベル記述の生成過程における親（動作記述）側の記述と子（レジスタ転送レベル記述）側の記述と有限状態マシンの状態と前記動作記述における条件分岐との関係を記憶保持する対応関係格納手段と、前記対応関係格納手段に記憶保持された情報を用いて、少なくとも、子（レジスタ転送レベル記述）側の記述と、前記有限状態マシンの状態と、前記条件分岐の情報と、親（動作記述）側の記述との対応関係を示した対応表を生成する対応表生成手段と、を備えて構成される。また後者の回路設計支援装置は、前記した動作合成装置から対応表を入力して、レジスタ転送レベル記述と動作記述間の対応関係を、前記レジスタ転送レベル記述が有する有限状態マシンの各状態と、前記動作記述が有する条件分岐の情報によって特定可能に出力する対応特定手段を備えて構成される。
【００１９】
また、上記各手段を備えた動作合成装置、又は、回路設計支援装置は、一般のパーソナルコンピュータやワークステーション等の情報処理装置に実行させるプログラムにより実現可能であり、上記した各装置を構成するコンピュータに実行させるプログラムも提供される。このプログラムは、磁気ディスク等のコンピュータ可読記録媒体に記録されて提供され、コンピュータに読み込まれることにより、そのコンピュータの動作を制御し、そのコンピュータ上に動作合成装置（システム）、回路設計支援装置（システム）における各機能手段を実現する。
【発明の効果】
【００２０】
本発明によれば、ＬＳＩの設計生産性が向上され、また、回路の論理検証やシミュレーションも効率化される。その理由は、上記「状態と条件の解析」に至るまでの人手によらざるを得なかった各作業を自動化し、ゲートレベルの記述から動作記述に至るまでパスを遡って特定するための手段を提供したことにある。
【発明を実施するための最良の形態】
【００２１】
続いて、本発明を実施するための最良の形態について図面を参照して詳細に説明する。
図１は、本実施の形態で用いられる装置と各装置で行われる処理の流れを表した図である。図１を参照すると、本実施の形態は、図中点線で表された動作合成装置と、論理合成装置と、パス反映装置（回路設計支援装置）と、を用いる構成である。以下、先に示した図２の動作記述を基にし、動作合成・論理合成して得られたゲート記述の回路に対してタイミング解析を行い、タイミング解析の結果から得たタイミングレポート上のパスから動作記述上のパスを特定する例を挙げて説明する。
【００２２】
まず、動作合成装置は、図２に例示した動作記述を解析し、動作周波数、演算器やレジスタなどのハードウェア資源の種類や数などの合成制約に基づいて、演算器の実行順序を決定するスケジューリングを行い（ステップＳ１）、中間レベル記述（内部表現）として図４に示す２つの状態（状態１、状態２）の構造を有するＣＤＦＧへ変換する（ステップＳ２）。その際、動作合成装置は、ＣＤＦＧのノード（演算器、レジスタ、入出力端子）を生成する度に、対応する動作記述、状態、条件、を記録する。
【００２３】
この結果、図５に示したようにＣＤＦＧのノード（演算器、レジスタ、入出力端子）と、動作記述の行番号、状態および条件の対応表（第１の対応表）が作成される（ステップＳ３）。図５の対応表において、乗算１は、状態が１であり、かつ、比較演算ｓ＞１０が真である（この場合を条件１とする）場合のみ実行される演算であるということを表している。また、乗算３については、状態２でかつ、条件１または比較演算ｓ＞１０が偽の場合（この場合を条件２とする）に、この演算が実行されるということを表している。
【００２４】
次に、動作合成装置は、一般的な動作合成の手順に従ってＣＤＦＧから、ＣＤＦＧが有している状態に基づいて回路動作を制御するＦＳＭの生成、合成制約に基づいて演算器などのハードウェア資源の共有（シェアリング）、回路素子の割り付けを行い（ステップＳ４）、ＲＴＬ記述を作成する（ステップＳ５）。上記ステップＳ３の過程においても、動作合成装置は、ＲＴＬ記述のノードとＣＤＦＧのノードとを結びつける度に、その際の状態、条件を記録する。
【００２５】
その結果、例えば図３に例示されるような構造のＲＴＬ記述が得られたとすると、図６に示すようなＲＴＬ記述のノードとＣＤＦＧのノードとの対応表（第２の対応表）が生成される（ステップＳ６）。
【００２６】
また、上記ステップＳ５にて生成されたＲＴＬ記述は、その後、論理合成装置によって、論理合成処理が行われ、ゲート記述へ変換され、タイミングレポートが出力される（ステップＳ７）。なお、ここでは詳細は省略するが、このタイミングレポートは、前記ＲＴＬ記述を論理合成して得られたゲート記述に対して、一般的な静的タイミング解析手法を適用して得られるタイミングレポートで何ら問題ない。
【００２７】
この時点で得られるタイミングレポート、第１、第２の対応表のデータが、オンライン乃至記録媒体を介して、パス反映装置（回路設計支援装置）に入力されて、以降の処理が実施される。まず、パス反映装置（回路設計支援装置）は、ＣＤＦＧのノードを結合キーとして、第１、第２の対応表を結合し、図７のような対応表（第３の対応表）を得る（ステップＳ８）。
【００２８】
続いて、パス反映装置（回路設計支援装置）は、静的タイミング解析を行い、タイミングレポートからゲート記述におけるパスの情報を取得し、従来技術で述べた方法やＥＤＡツール等を用いて、ＲＴＬ記述のパスを得る（ステップＳ９）。
【００２９】
図８は、上記ステップＳ９で生成されたＲＴＬ記述のパスの一例を表した図である。この場合、図７より、ＲＴＬ記述のパスの最後に位置するレジスタ１は、ＲＴＬ記述と動作記述が１対１の対応であるから、対応する動作記述の箇所（１３行目）を一意に特定できる。しかしながら、ＲＴＬ記述の入力端子ｉ１は動作記述の８、１１行目、乗算器１は動作記述の８、１１、１４行目、加算器１は動作記述の９、１５行目に対応しており、入力、乗算、加算の箇所を動作記述において一意に特定することができない。
【００３０】
この場合以下のように「状態と条件の解析」を行い、動作記述の対応箇所を絞り込むことができるので、その概要を説明する。回路動作として意味があるパスとは、例えば、図４の例でいうと、状態１に属する入力ｉ１からｒ１までのパスや、状態２に属するｒ１からｏ２までのパスなどであり、ＣＤＦＧにて一つの状態に属するパスである。このことに着目すると、あるパス上の演算器などのノードは、すべて同じ状態に属していなければならない、ということが了解される。
【００３１】
これを本例について当てはめてみると、図７の対応表（第３の対応表）の状態欄より、入力端子ｉ１と比較器１とレジスタ１はすべて状態１のみに属していることが分かる。よって、図８のパスの乗算器１に対しては、状態１に属するものしか意味がないということになる。したがって、状態１に属する動作記述の乗算１は、８行目の乗算１と１１行目の乗算２であり、どちらかが図８のパスの乗算器１に対応していることがわかる。同様に、加算器１については動作記述の９行目の加算１が図８のパスの加算器１に対応していることがわかる。
【００３２】
次に、パス上のノードが属する条件に注目する。状態の場合と同様に、回路動作として意味があるパスにあるノードはすべて同じ条件に属していなければならない。これを本例について当てはめてみると、図７の対応表（第３の対応表）の状態欄より、先ほどの状態にて絞り込んだ動作記述の９行目の加算１は条件１のみに属しているので、他のノードも条件１に属していなければならない。さらに、動作記述の８行目の乗算１と１１行目の乗算２に注目すると、条件１に属しているのは８行目の乗算１のみである。よって図８のパスの乗算器１に対応する動作記述は８行目の乗算１であることがわかる。
【００３３】
同様に、動作記述の８行目の入力ｉ１と１１行目の入力ｉ１に注目すると、条件１に属しているのは８行目の入力ｉ１のみである。よって図８のパスの入力端子ｉ１に対応する動作記述の入力ｉ１は８行目の入力ｉ１であることがわかる。
【００３４】
このように、図１のステップＳ１０において「状態と条件の解析」を行うことにより、図８のパスに対応する動作記述の箇所を図９に示したように特定することができる。また、以上の手順を自動化することで、ＲＴＬ記述上のパスを動作記述上で特定することを容易化することができる。
【００３５】
以上の説明したように、動作合成の過程において、ＲＴＬ記述のノードと動作記述及び状態・条件との対応表（第３の対応表；図７参照）を作成し、更に、回路動作として意味のあるパスは同じ状態・条件に属しているという事実を利用することで、着目しているパスにある可能性のある動作記述上の演算や変数の中から異なる状態や条件に属している演算や変数を除外できる。また、併せて、回路動作として意味があるかどうかの判定を自動化すること、ＲＴＬ記述と動作記述との対応関係の解析を自動化できる。これは、設計生産性の向上に大きく貢献するものであり、また、回路の論理検証やシミュレーションにおいても有効なツールとなって、人手による手間を大幅に削減することができる。
【００３６】
なお、上記実施の形態では、ＲＴＬ記述を論理合成して得られたゲート記述に対して静的タイミング解析を行い、そのタイミングレポート結果からＲＴＬ記述のパス（クリティカルパス）を得ているが、ＲＴＬ記述上の任意のパスであっても何ら問題なく、動作記述との対応関係をとることができる。
【００３７】
［第２の実施の形態］
また、ＲＴＬ記述のノードではなく、ＲＴＬ記述のノードへの入力又は出力と動作記述との対応表を作成することによっても、ＲＴＬ記述と動作記述との対応関係をとることができる。以下、上記した実施の形態同様、ＲＴＬ記述と動作記述の対応を取る第２の実施の形態について図２の動作記述から図４のＣＤＦＧを経て図３のような構造のＲＴＬ記述が得られたものとしてその手順を説明する。
【００３８】
まず、上記した実施の形態同様、動作合成装置が図１のステップＳ３、Ｓ６にて、動作合成時に対応表（第１、第２の対応表）を生成するが、その際、動作合成装置は、ＲＴＬ記述やＣＤＦＧのノードではなく、各ノードの入力又は出力に着目し、図１０、図１１に例示するノードの入力又は出力との対応表を作成する。
【００３９】
続いて、上記した実施の形態同様、パス反映装置は、ＣＤＦＧのノード入力又は出力を結合キーとして、前記第１、第２の対応表を結合し、図１２のような対応表（第３の対応表）を得る。
【００４０】
続いて、パス反映装置（回路設計支援装置）は、上記した実施の形態同様、静的タイミング解析を行い、タイミングレポートからゲート記述におけるパスの情報を取得し、従来技術で述べた方法やＥＤＡツール等を用いて、ＲＴＬ記述のパスを得るが、図８のパスをＲＴＬ記述のノードの入力又は出力で表すと図１３のようになる。
【００４１】
図１３のパスについて状態・条件の解析を行うと、上記した実施の形態と同じ結果が得られ、動作記述の８、９、１３行目に対応していることを判別することができる。このように、ＲＴＬ記述のノードへの入力又は出力の対応表を用いる方法によっても、ＲＴＬ記述上のパスを動作記述上で特定することができる。
【００４２】
以上、本発明の各実施の形態を説明したが、その原理からも明らかなとおり、本発明の技術的範囲は、上述した実施の形態に限定されるものではなく、動作合成の過程で生成された情報を利用してＲＴＬ記述に対応する動作記述の箇所を特定可能とするという本発明の要旨を逸脱しない範囲で、各種の変形・置換をなしうることが可能であることはいうまでもない。もちろん、上記した説明及び各図に示した動作記述、ＲＴＬ記述、ＣＤＦＧは、あくまで本発明の理解を助けるために用いたものであることはいうまでもない。
【図面の簡単な説明】
【００４３】
【図１】本発明の第１の実施の形態の構成及び処理の流れを表した図である。
【図２】動作記述の一例を表した図である。
【図３】図２の動作記述に対応するＲＴＬ記述（レジスタ転送レベル記述）の一例を表した図である。
【図４】図２の動作記述に対応するＣＤＦＧ（コントロールデータフローグラフ）の一例を表した図である。
【図５】本発明の第１の実施の形態で生成される対応表（第１の対応表）を表した図である。
【図６】本発明の第１の実施の形態で生成される対応表（第２の対応表）を表した図である。
【図７】本発明の第１の実施の形態で生成される対応表（第３の対応表）を表した図である。
【図８】図３のＲＴＬ記述におけるパスをノードで表した図である。
【図９】図８のＲＴＬ記述におけるパスに対応する動作記述を特定した図である。
【図１０】本発明の第２の実施の形態で生成される対応表（第１の対応表）を表した図である。
【図１１】本発明の第２の実施の形態で生成される対応表（第２の対応表）を表した図である。
【図１２】本発明の第２の実施の形態で生成される対応表（第３の対応表）を表した図である。
【図１３】図３のＲＴＬ記述におけるパスをノードからの入出力で表した図である。
【図１４】図１３のＲＴＬ記述におけるパスに対応する動作記述を特定した図である。
【符号の説明】
【００４４】
２１  データパス
２２  ＦＳＭ（Ｆｉｎｉｔｅ Ｓｔａｔｅ Ｍａｃｈｉｎｅ）
【図１】
2006285865.tif 000003
【図２】
2006285865.tif 000004
【図３】
2006285865.tif 000005
【図４】
2006285865.tif 000006
【図５】
2006285865.tif 000007
【図６】
2006285865.tif 000008
【図７】
2006285865.tif 000009
【図８】
2006285865.tif 000010
【図９】
2006285865.tif 000011
【図１０】
2006285865.tif 000012
【図１１】
2006285865.tif 000013
【図１２】
2006285865.tif 000014
【図１３】
2006285865.tif 000015
【図１４】
2006285865.tif 000016