(57)【要約】【課題】ＲＴＬの回路記述の可読性を向上させること。【解決手段】動作レベルの回路記述に基づいて第一のＲＴＬの回路記述を生成する動作合成手段と、前記第一のＲＴＬの回路記述に含まれている変数に関して、当該変数に代入される演算式又は前記動作レベルの回路記述において対応する変数の変数名に基づいて変数名を生成し、前記第一のＲＴＬの回路記述に含まれている変数の変数名と該変数に関して生成された変数名との対応情報を記憶手段に記録する変数名生成手段と、前記第一のＲＴＬの回路記述と、該第一のＲＴＬ回路記述の変数名が前記変数名生成手段によって生成された変数名によって置換された第二のＲＴＬ回路記述とを出力する回路記述出力手段とを有する。【選択図】図１２
2012059153.tif 000002
【特許請求の範囲】
【請求項１】
動作レベルの回路記述に基づいて第一のＲＴＬの回路記述を生成する動作合成手段と、
前記第一のＲＴＬの回路記述に含まれている変数に関して、当該変数に代入される演算式又は前記動作レベルの回路記述において対応する変数の変数名に基づいて変数名を生成し、前記第一のＲＴＬの回路記述に含まれている変数の変数名と該変数に関して生成された変数名との対応情報を記憶手段に記録する変数名生成手段と、
前記第一のＲＴＬの回路記述と、該第一のＲＴＬ回路記述の変数名が前記変数名生成手段によって生成された変数名によって置換された第二のＲＴＬ回路記述とを出力する回路記述出力手段とを有する設計支援装置。
【請求項２】
前記変数名生成手段は、前記演算式を構成する変数名を組み合わせて変数名を生成する請求項１記載の設計支援装置。
【請求項３】
前記変数名生成手段は、前記演算式を構成する演算子を示す文字列を組み合わせて変数名を生成する請求項２記載の設計支援装置。
【請求項４】
動作レベルの回路記述に基づいて第一のＲＴＬの回路記述を生成する動作合成手順と、
前記第一のＲＴＬの回路記述に含まれている変数に関して、当該変数に代入される演算式又は前記動作レベルの回路記述において対応する変数の変数名に基づいて変数名を生成し、前記第一のＲＴＬの回路記述に含まれている変数の変数名と該変数に関して生成された変数名との対応情報を記憶手段に記録する変数名生成手順と、
前記第一のＲＴＬの回路記述と、該第一のＲＴＬ回路記述の変数名が前記変数名生成手順において生成された変数名によって置換された第二のＲＴＬ回路記述とを出力する回路記述出力手順とをコンピュータが実行する設計支援方法。
【請求項５】
前記変数名生成手順は、前記演算式を構成する変数名を組み合わせて変数名を生成する請求項４記載の設計支援方法。
【請求項６】
前記変数名生成手順は、前記演算式を構成する演算子を示す文字列を組み合わせて変数名を生成する請求項５記載の設計支援方法。
【請求項７】
動作レベルの回路記述に基づいて第一のＲＴＬの回路記述を生成する動作合成手順と、
前記第一のＲＴＬの回路記述に含まれている変数に関して、当該変数に代入される演算式又は前記動作レベルの回路記述において対応する変数の変数名に基づいて変数名を生成し、前記第一のＲＴＬの回路記述に含まれている変数の変数名と該変数に関して生成された変数名との対応情報を記憶手段に記録する変数名生成手順と、
前記第一のＲＴＬの回路記述と、該第一のＲＴＬ回路記述の変数名が前記変数名生成手順において生成された変数名によって置換された第二のＲＴＬ回路記述とを出力する回路記述出力手順とをコンピュータに実行させる設計支援プログラム。
【請求項８】
前記変数名生成手順は、前記演算式を構成する変数名を組み合わせて変数名を生成する請求項７記載の設計支援プログラム。
【請求項９】
前記変数名生成手順は、前記演算式を構成する演算子を示す文字列を組み合わせて変数名を生成する請求項８記載の設計支援プログラム。
【請求項１０】
コンピュータが実行する半導体集積回路の設計支援方法を用いて半導体集積回路を製造する半導体集積回路の製造方法であって、
前記設計支援方法は、
動作レベルの回路記述に基づいて第一のＲＴＬの回路記述を生成する動作合成手順と、
前記第一のＲＴＬの回路記述に含まれている変数に関して、当該変数に代入される演算式又は前記動作レベルの回路記述において対応する変数の変数名に基づいて変数名を生成し、前記第一のＲＴＬの回路記述に含まれている変数の変数名と該変数に関して生成された変数名との対応情報を記憶手段に記録する変数名生成手順と、
前記第一のＲＴＬの回路記述と、該第一のＲＴＬ回路記述の変数名が前記変数名生成手順において生成された変数名によって置換された第二のＲＴＬ回路記述とを出力する回路記述出力手順とを有する半導体集積回路の製造方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、設計支援装置、設計支援方法、設計支援プログラム、及び半導体集積回路の製造方法に関し、特に動作合成手法によってＲＴＬの回路記述を生成する設計支援装置、設計支援方法、設計支援プログラム、及び半導体集積回路の製造方法に関する。
【背景技術】
【０００２】
近年、半導体集積回路の大規模化や短ＴＡＴ（Turn Around Time）化に伴い、動作合成（又は高位合成）手法が注目されている。動作合成手法とは、ＡＮＳＩ−Ｃ、ＳｙｓｔｅｍＣ、又はＵＭＬ（Unified Modeling Language）等の高抽象度の動作レベルの回路記述から、ＲＴＬ（Register Transfer Level）の回路記述を自動生成する手法である。
【０００３】
動作レベルの回路記述には、レジスタ（信号値の保持）、演算器の共有、時間の概念は無い。一方、ＲＴＬの回路記述には、レジスタ、演算器の共有、及び時間の概念は存在する。ＲＴＬの回路記述を設計者が手設計する場合、レジスタ、演算器の共有、及び時間の概念は、設計者によって全て決定され、記述される。
【０００４】
図１は、従来の設計者による手設計のＲＴＬの回路記述の設計フローを示す図である。
【０００５】
設計仕様ｐ１に基づいて、設計仕様書ｐ２及び動作レベルの回路記述ｐ３が作成される。設計仕様ｐ１とは、どのような半導体集積回路を作成したいかをまとめたものである。例えば、設計仕様ｐ１には、動作条件、含まれる機能、及びレジスタ仕様等が含まれる。設計仕様がより具体化され、書面や電子データとして記載されたものが設計仕様書ｐ２及び動作レベルの回路記述ｐ３である。動作レベルの回路記述ｐ３は、主に機能検証用として、設計仕様ｐ１の機能ごとに作成されるのが一般的である。
【０００６】
図２は、動作レベルの回路記述の例を示す図である。同図に示される動作レベルの回路記述は、ＡＮＳＩ−Ｃ言語で記述された例である。同図より明らかなように、動作レベルの回路記述では、基本的に演算の並列性や演算にかかる時間の概念は存在しない。
【０００７】
従来の設計者による手設計のＲＴＬの回路記述設計では、設計者は、設計仕様書ｐ２及び動作レベルの回路記述ｐ３を解析及び理解し、手設計にてＲＴＬの回路記述を作成していた。そのため、ＲＴＬの回路記述内の信号名、レジスタ名は、設計者が任意に決めることが出来た。
【０００８】
図３は、手設計によって作成されるＲＴＬの回路記述の例を示す図である。同図の回路記述は、Ｖｅｒｉｌｏｇ  ＨＤＬを用いて記述された例である。同図に示されるＲＴＬの回路記述は、図２で示した動作記述の回路記述と機能的には等価である。但し、ＲＴＬの回路記述では、並列性と時間の概念とを記述することが出来る。例えば、図３では、ｂ＋ｃとｅ＋ｆとの演算を同一サイクルで行い（並列化）、ａ＊ｄの演算を次サイクルで行っている。
【０００９】
一方、動作合成手法によれば、ＲＴＬの回路記述は、動作合成ツールによって自動的に生成されるのが一般的である。図４は、動作合成手法を用いたＲＴＬの回路記述の設計フローを示す図である。
【００１０】
設計仕様ｐ６、設計仕様書ｐ７は、図１の設計仕様ｐ１又は設計仕様書ｐ２と同様である。また、動作レベルの回路記述ｐ８は、図１の動作レベルの回路記述ｐ３と同等である。但し、動作合成ｐ９で用いられる動作合成ツールによっては記述制約が存在する場合もあり、動作合成用に、別途、動作レベルの回路記述ｐ８が作成される場合もある。動作合成ｐ９では、動作レベルの回路記述ｐ８及び設計仕様書ｐ７の情報が動作合成ツールに入力され、動作合成ツールによってＲＴＬの回路記述ｐ１０が生成される。動作合成手法については公知技術であるため、その詳細ついては割愛する。動作合成ツールが利用される場合、ＲＴＬの回路記述ｐ１０内の信号名、レジスタ名は、動作合成ツールにより決定される。したがって、動作レベルの回路記述ｐ８の中で用いられている信号又はレジスタ名とＲＴＬの回路記述ｐ１０の中で用いられている信号又はレジスタ名とは基本的には一致しない。
【００１１】
図５は、動作合成手法によって生成されたＲＴＬの回路記述の例を示す図である。同図に示されるＲＴＬの回路記述は、図２で示した動作記述の回路記述と機能的には等価である。また、同図に示されるＲＴＬの回路記述は、図３で示したＲＴＬの回路記述と信号名が異なるだけで等価な記述である。
【００１２】
このように、動作合成手法で生成されるＲＴＬの回路記述では、内部の信号名又はレジスタ名は、動作合成ツールによって決定され、動作レベルの回路記述と全く異なることがある。
【００１３】
動作合成手法を用いることで、動作レベルの回路記述とＲＴＬの回路記述との間に発生する違いについて更に具体的に説明する。
【００１４】
図６は、動作合成手法によって２サイクルで演算が行われるＲＴＬの回路記述を生成した例を示す図である。同図の例では、動作レベルにはない時間（クロック）の概念が、ＲＴＬの回路記述には導入されている。
【００１５】
図７は、動作合成手法によって１サイクルで演算が行われるＲＴＬの回路記述を生成した例を示す図である。同図の例では、動作レベルの回路記述に存在する信号ａ及びｄが、ＲＴＬでは存在しなくなっている。
【００１６】
図８は、動作合成手法によって動作レベルの回路記述には存在しない信号がＲＴＬの回路記述に出現する例を示す図である。同図の例では、動作レベルの回路記述には存在しないｄ１という信号が、ＲＴＬの回路記述に含まれている。
【００１７】
図９は、動作合成手法によって演算をステートマシン化した例及びレジスタが共有される例を示す図である。同図の例では、ステートマシンが作られることによって、新たな信号（ｃｕｒｒｅｎｔ＿ｓｔａｔｅ、ｎｅｘｔ＿ｓｔａｔｅ）が追加されている。また、ａ＝ｂ＊ｃの演算とｄ＝ｅ＊ｆの演算が同時に行われることがないため、ａという信号（レジスタ）が、ｃｕｒｒｅｎｔ＿ｓｔａｔｅがｓ１の場合とｓ２の場合とにおいて共有されている。
【００１８】
以上のように、動作合成手法により出力されたＲＴＬの回路記述では、動作記述に無い信号の追加や削除、又は演算のタイミング制御（ステートマシン化）やレジスタ（信号）の共有が行われることがある。このことにより、回路としては最適化が行われ、チップ面積の縮小や処理速度の向上等の効果が得られる。しかし、動作レベルとＲＴＬとの回路記述の対応が分かりにくくなり、後者の可読性は低下する。
【００１９】
例えば、図２と図３とを比較すると、信号名が同一のため、可読性が高くデバッグが容易である。図２と図５とを比較すると、図２のａという変数が、図５のｈなのかｉであるのかを一目で見分けるのは困難である。その結果、ＲＴＬの回路記述の可読性が低下している。
【発明の概要】
【発明が解決しようとする課題】
【００２０】
上記のような、動作合成手法で生成されたＲＴＬの回路記述の可読性の悪さ、及び動作レベルの回路記述との対応のわかりにくさ等が、動作合成手法の普及の妨げの一因となっているものと考えられる。
【００２１】
ＲＴＬの回路記述の可読性の悪さによる、第一の問題点として動作合成手法によって生成されたＲＴＬの回路記述のデバッグの容易性が低下することが挙げられる。例えば、動作合成手法によって生成されたＲＴＬの回路記述で論理検証パターンがフェイルした場合、動作合成元の動作レベルの回路記述と動作合成手法によって生成されたＲＴＬの回路記述との対応を判断するのが困難である。その結果、回路設計者が手設計でＲＴＬの回路記述を作成した場合に比較して、デバッグに多くの工数を要してしまう。
【００２２】
第二の問題点として、設計後期において設計仕様が変更された場合の手戻りや工数が非常に大きくなるということが挙げられる。設計後期の設計仕様で動作記述に修正が入った場合、再び動作合成を行い、動作合成工程以降を全てやり直す方法がある。
【００２３】
図１０は、一般的な半導体集積回路の動作合成手法を用いた設計フローを示す図である。
【００２４】
設計仕様ｐ１１の決定からマスクデータｐ２０の作成までには、設計仕様書ｐ１２の作成工程、動作合成工程ｐ１４、論理合成工程ｐ１６、ＤＦＴ（Design For Test）工程ｐ１８、及びレイアウト工程ｐ１９の５つの作業工程が有る。
【００２５】
例えば、レイアウト工程ｐ１９において仕様変更が発生し再動作合成が行われた場合、動作合成工程ｐ１４まで戻り、論理合成工程ｐ１６、ＤＦＴ工程ｐ１７、及びレイアウト工程ｐ１９を全てやり直す必要がある。
【００２６】
また、動作合成手法によって生成されたＲＴＬの回路記述を解析し、動作レベルの回路記述の修正箇所に対応した記述を探し出してＲＴＬの回路記述を修正する方法もあるが、前述の通り、ＲＴＬの回路記述の可読性の悪さから非常に工数がかかる。なお、手設計によるＲＴＬの設計フローでも同様の問題が発生するが、手設計によるＲＴＬの回路記述は、設計者が手動で作成しているため、仕様変更箇所とＲＴＬの回路記述との対応が分かりやすい。したがって、動作合成手法によるＲＴＬの設計フローよりはるかに短時間で解析及び修正が可能である。
【００２７】
本発明は、上記の点に鑑みてなされたものであって、ＲＴＬの回路記述の可読性を向上させることのできる設計支援装置、設計支援方法、設計支援プログラム、及び半導体集積回路の製造方法の提供を目的とする。
【課題を解決するための手段】
【００２８】
そこで上記課題を解決するため、本発明は、動作レベルの回路記述に基づいて第一のＲＴＬの回路記述を生成する動作合成手段と、前記第一のＲＴＬの回路記述に含まれている変数に関して、当該変数に代入される演算式又は前記動作レベルの回路記述において対応する変数の変数名に基づいて変数名を生成し、前記第一のＲＴＬの回路記述に含まれている変数の変数名と該変数に関して生成された変数名との対応情報を記憶手段に記録する変数名生成手段と、前記第一のＲＴＬの回路記述と、該第一のＲＴＬ回路記述の変数名が前記変数名生成手段によって生成された変数名によって置換された第二のＲＴＬ回路記述とを出力する回路記述出力手段とを有する。
【００２９】
このような設計支援装置では、ＲＴＬの回路記述の可読性を向上させることができる。
【発明の効果】
【００３０】
本発明によれば、ＲＴＬの回路記述の可読性を向上させることができる。
【図面の簡単な説明】
【００３１】
【図１】従来の設計者による手設計のＲＴＬの回路記述の設計フローを示す図である。
【図２】動作レベルの回路記述の例を示す図である。
【図３】手設計によって作成されるＲＴＬの回路記述の例を示す図である。
【図４】動作合成手法を用いたＲＴＬの回路記述の設計フローを示す図である。
【図５】動作合成手法によって生成されたＲＴＬの回路記述の例を示す図である。
【図６】動作合成手法によって２サイクルで演算が行われるＲＴＬの回路記述を生成した例を示す図である。
【図７】動作合成手法によって１サイクルで演算が行われるＲＴＬの回路記述を生成した例を示す図である。
【図８】動作合成手法によって動作レベルの回路記述には存在しない信号がＲＴＬの回路記述に出現する例を示す図である。
【図９】動作合成手法によって演算をステートマシン化した例及びレジスタが共有される例を示す図である。
【図１０】一般的な半導体集積回路の動作合成手法を用いた設計フローを示す図である。
【図１１】本発明の実施の形態における設計支援装置のハードウェア構成例を示す図である。
【図１２】本発明の実施の形態における設計支援装置の機能構成例を示す図である。
【図１３】設計支援装置が実行するＲＴＬ回路記述の生成処理の処理手順の一例を説明するための図である。
【図１４】対応情報の例を示す図である。
【図１５】第一の例の変数名を用いたデバッグ用ＲＴＬ回路記述の例を示す図である。
【図１６】第二の例の変数名を用いたデバッグ用ＲＴＬ回路記述の例を示す図である。
【図１７】第三の例の変数名を用いたデバッグ用ＲＴＬ回路記述の例を示す図である。
【図１８】行数に基づいてデバッグ用ＲＴＬ回路記述と実装用ＲＴＬ回路記述との対応を把握する方法を示す図である。
【図１９】変数の出現順に基づいてデバッグ用ＲＴＬ回路記述と実装用ＲＴＬ回路記述との対応関係を把握する方法を示す図である。
【発明を実施するための形態】
【００３２】
以下、図面に基づいて本発明の実施の形態を説明する。図１１は、本発明の実施の形態における設計支援装置のハードウェア構成例を示す図である。図１１の設計支援装置１０は、それぞれバスBで相互に接続されているドライブ装置１００と、補助記憶装置１０２と、メモリ装置１０３と、ＣＰＵ１０４と、インタフェース装置１０５と、表示装置１０６と、入力装置１０７とを有する。
【００３３】
設計支援装置１０での処理を実現するプログラムは、ＣＤ−ＲＯＭ等の記録媒体１０１によって提供される。プログラムを記録した記録媒体１０１がドライブ装置１００にセットされると、プログラムが記録媒体１０１からドライブ装置１００を介して補助記憶装置１０２にインストールされる。但し、プログラムのインストールは必ずしも記録媒体１０１より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置１０２は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。
【００３４】
メモリ装置１０３は、プログラムの起動指示があった場合に、補助記憶装置１０２からプログラムを読み出して格納する。ＣＰＵ１０４は、メモリ装置１０３に格納されたプログラムに従って設計支援装置１０に係る機能を実現する。インタフェース装置１０５は、ネットワークに接続するためのインタフェースとして用いられる。表示装置１０６はプログラムによるＧＵＩ（Graphical User Interface）等を表示する。入力装置１０７はキーボード及びマウス等で構成され、様々な操作指示を入力させるために用いられる。
【００３５】
図１２は、本発明の実施の形態における設計支援装置の機能構成例を示す図である。同図において、設計支援装置１０は、動作合成部１２１、変数名生成部１２２、対応情報記憶部１２３、及び回路記述出力部１２４等を有する。これら各部は、設計支援装置１０にインストールされたプログラムがＣＰＵ１０４に実行させる処理によって実現される。
【００３６】
動作合成部１２１は、設計仕様書ｄ１及び動作レベル回路記述ｄ２に基づいて、動作合成手法によりＲＴＬ（Register Transfer Level）回路記述を生成する。設計仕様書ｄ１及び動作レベル回路記述ｄ２は、半導体集積回路の設計仕様に基づいて生成されるデータである。設計仕様とは、どのような半導体集積回路を作成したいかをまとめたものである。例えば、設計仕様には、動作条件、含まれる機能、及びレジスタ仕様等が含まれる。設計仕様がより具体化され、書面や電子データとして記載されたものが設計仕様書ｄ１及び動作レベル回路記述ｄ２である。動作レベル回路記述ｄ２は、主に機能検証用として、設計仕様の機能ごとに作成される。なお、設計仕様書ｄ１及び動作レベル回路記述ｄ２は、例えば、補助記憶装置１０２に保存されている。
【００３７】
変数名生成部１２２は、動作合成部１２１によって生成されたＲＴＬ回路記述に含まれている少なくとも一部の変数に関して、当該変数に代入される演算式又は動作レベル回路記述ｄ２において対応する変数の変数名に基づく変数名を生成し、当該ＲＴＬ回路記述に含まれている変数の変数名と、該変数に関して生成された変数名との対応情報１２３Ａを対応情報記憶部１２３に記録する。なお、本実施の形態において、変数名は、回路記述における信号又はレジスタ等に対して付与される名前である。すなわち、変数名は、回路記述における信号名又はレジスタ名に対する総称である。
【００３８】
対応情報記憶部１２３は、対応情報１２３Ａを、例えば、補助記憶装置１０２を用いて記憶する。
【００３９】
回路記述出力部１２４は、実装用ＲＴＬ回路記述ｄ３及びデバッグ用ＲＴＬ回路記述ｄ４の二つのＲＴＬ回路記述を、例えば、補助記憶装置１０２に出力（記録）する。回路記述出力部１２４は、動作合成部１２１によって生成されたＲＴＬ回路記述を加工しないものを実装用ＲＴＬ回路記述ｄ３として出力する。回路記述出力部１２４は、また、動作合成部１２１によって生成されたＲＴＬ回路記述に含まれる変数について、変数名が変数名生成部１２２によって生成された変数によって置換されたものをデバッグ用ＲＴＬ回路記述ｄ４として出力する。
【００４０】
したがって、実装用ＲＴＬ回路記述ｄ３とデバッグ用ＲＴＬ回路記述ｄ４とは、基本的に変数名が異なる。すなわち、実装用ＲＴＬ回路記述ｄ３に含まれる変数名は、動作合成部１２１の都合又は仕様によって任意に付与されるものである。一方、デバッグ用ＲＴＬ回路記述ｄ４に含まれる変数名は、動作レベル回路記述ｄ２に含まれる変数名等を用いて生成されたものとなっている。なお、実装用ＲＴＬ回路記述ｄ３は、後の設計工程において実際に使用されることを目的として生成されるＲＴＬの回路記述である。デバッグ用ＲＴＬ回路記述ｄ４は、ＲＴＬの回路記述のデバッグを目的として生成されるＲＴＬの回路記述である。
【００４１】
以下、設計支援装置１０の処理手順について説明する。図１３は、設計支援装置が実行するＲＴＬ回路記述の生成処理の処理手順の一例を説明するための図である。
【００４２】
例えば、ユーザによって、入力装置１０７を介してＲＴＬの回路記述の生成指示が入力されると、動作合成部１２１は、動作レベル回路記述ｄ２及び設計仕様書ｄ１をメモリ装置１０３に読み込む（Ｓ１０１）。続いて、動作合成部１２１は、読み込まれた動作レベル回路記述ｄ２及び設計仕様書ｄ１に基づいて、実装用ＲＴＬ回路記述ｄ３をメモリ装置１０３に生成する（Ｓ１０２）。なお、実装用ＲＴＬ回路記述ｄ３の生成ロジックは、公知の動作合成ツールと同様でよい。
【００４３】
続いて、変数名生成部１２２は、実装用ＲＴＬ回路記述ｄ３に含まれている変数に関して、当該変数に代入される演算式又は動作レベル回路記述ｄ２において対応する変数名に基づいて変数名を生成する（Ｓ１０３）。生成される変数名の詳細については後述される。なお、動作合成部１２１は、動作レベル回路記述ｄ２に基づいて実装用ＲＴＬ回路記述ｄ３を生成するため、動作レベル回路記述ｄ２における変数と、実装用ＲＴＬ回路記述ｄ３における変数との対応を認識している。したがって、変数名生成部１２２は、動作合成部１２１による当該認識に基づいて、両者の対応を把握して変数名を生成する。
【００４４】
続いて、変数名生成部１２２は、ＲＴＬ回路記述における変数の変数名と、該変数に関して生成された変数名との対応情報１２３Ａを生成し、生成された対応情報１２３Ａを対応情報記憶部１２３に記録する（Ｓ１０４）。
【００４５】
図１４は、対応情報１２３Ａの例を示す図である。同図には、デバッグ用ＲＴＬ回路記述ｄ４と実装用ＲＴＬ回路記述ｄ３との対応情報１２３Ａが示されている。
【００４６】
対応情報１２３Ａは、デバッグ用ＲＴＬ回路記述ｄ４の変数名と実装用ＲＴＬ回路記述ｄ３の変数名との対応付けを保持するための情報である。図１４の例では、等号（＝）を挟んで左辺がデバッグ用ＲＴＬ回路記述ｄ４の変数名、右辺が実装用ＲＴＬ回路記述ｄ３の変数名とされている。この場合、左辺の変数名と右辺の変数名とは対応すること（同じ信号又はレジスタに対するものであること）を示す。
【００４７】
具体的には、デバッグ用ＲＴＬ回路記述ｄ４中のｎ＿＿ｂ＿ｃと実装用ＲＴＬ回路記述ｄ３のｘ、デバッグ用ＲＴＬ回路記述ｄ４中のｎ＿＿ｅ＿ｆと実装用ＲＴＬ回路記述ｄ３のｙ、デバッグ用ＲＴＬ回路記述ｄ４中のｎ＿＿ｂ＿ｃ＿ｅ＿ｆと実装用ＲＴＬ回路記述ｄ３のｚとのそれぞれは、対応することが示されている。
【００４８】
図１４に示される対応情報１２３Ａは一例に過ぎない。したがって、対応情報１２３Ａの形式は、デバッグ用ＲＴＬ回路記述ｄ４中の変数名と実装用ＲＴＬ回路記述ｄ３中の変数名とを等号（＝）で結ぶものに限定されない。例えば、右辺と左辺とが入れ替えられてもよい。また、等号が、スペースやコロン等、他の文字によって置換されてもよい。更に、対応情報１２３Ａは、ＡＳＣＩＩファイルとして生成されなくてもよい。
【００４９】
続いて、回路記述出力部１２４は、実装用ＲＴＬ回路記述ｄ３の複製をメモリ装置１０３に生成し、当該複製に含まれている変数名を、対応情報記憶部１２３に記憶されている対応情報１２３Ａに基づいて、変数名生成部１２２によって生成された変数名によって置換する。その結果、デバッグ用ＲＴＬ回路記述ｄ４が、メモリ装置１０３に生成される（Ｓ１０５）。
【００５０】
続いて、回路記述出力部１２４は、実装用ＲＴＬ回路記述ｄ３とデバッグ用ＲＴＬ回路記述ｄ４とをそれぞれ補助記憶装置１０２に出力する（Ｓ１０６）。
【００５１】
なお、上記では、実装用ＲＴＬ回路記述ｄ３の複製に対して変数名が置換されることによりデバッグ用ＲＴＬ回路記述ｄ４が生成されている。但し、動作合成部１２１によって、実装用ＲＴＬ回路記述ｄ３とデバッグ用ＲＴＬ回路記述ｄ４が並列的に生成されてもよい。この場合、動作合成部１２１は、実装用ＲＴＬ回路記述ｄ３に対して変数名が割り当てられるたびに、変数名生成部１２２に対して、動作レベル回路記述ｄ２の変数の変数名又は当該変数名を含む演算式と、当該変数に対応する実装用ＲＴＬ回路記述ｄ３の変数の変数名又は当該変数名を含む演算式とを入力すればよい。変数名生成部１２２は、入力された変数名又は演算式に基づいて、入力された実装用ＲＴＬ回路記述ｄ３の変数に対応する、デバッグ用ＲＴＬ回路記述ｄ４の変数の変数名を生成し、動作合成部１２１に出力する。動作合成部１２１は、出力された変数名を利用してデバッグ用ＲＴＬ回路記述ｄ４を、実装用ＲＴＬ回路記述ｄ３と並行して生成する。
【００５２】
その後の工程においては、デバッグ用ＲＴＬ回路記述ｄ４が用いられてデバッグが行われる。また、実際の半導体集積回路の製造には、実装用ＲＴＬ回路記述ｄ３が用いられる。すなわち、実装用ＲＴＬ回路記述ｄ３等に基づいて、半導体基板への回路の作成等が行われる。
【００５３】
続いて、変数名生成部１２２によって生成される変数名の例について説明する。ここでは、動作レベル回路記述ｄ２の内容は、図２の通りであるとする。
【００５４】
第一の例において、変数名生成部１２２は、動作レベルの変数名を可能な限りデバッグ用ＲＴＬ回路記述ｄ４用の変数名とする。
【００５５】
その結果、図２の内容を有する動作レベル回路記述ｄ２に基づくデバッグ用ＲＴＬ回路記述ｄ４は、例えば、図１５に示されるようになる。
【００５６】
図１５は、第一の例の変数名を用いたデバッグ用ＲＴＬ回路記述ｄ４の例を示す図である。
【００５７】
同図の例では、動作レベル回路記述ｄ２の変数名がそのまま使用されている。その結果、動作レベル回路記述ｄ２との比較が容易となっている。すなわち、可読性が向上している。なお、実装用ＲＴＬ回路記述ｄ３については、変数名に対する制約は発生しないため、例えば、図５に示されるような内容が出力される。
【００５８】
次に、第二の例について説明する。図１６は、第二の例の変数名を用いたデバッグ用ＲＴＬ回路記述ｄ４の例を示す図である。同図に示されるデバッグ用ＲＴＬ回路記述ｄ４も、図２の内容を有する動作レベル回路記述ｄ２に基づくものである。
【００５９】
図１６では、ｈ＿＿ｂ＿ｐｌｕｓ＿ｃやｊ＿ｈ＿ｍｕｌｔｉ＿ｉ等、動作レベル回路記述ｄ２には含まれていない変数名が含まれている。ｈ＿＿ｂ＿ｐｌｕｓ＿ｃという変数名は、２連続アンダーバー（＿＿）の前後で意味が事なる。２連続アンダーバー（＿＿）の前は、動作合成部１２１が独自に決定した変数名（例えば、実装用ＲＴＬ回路記述ｄ３に出力される変数名）である。２連続アンダーバー（＿＿）の後は、変数名生成部１２２は、当該変数名に係る変数の値が、いずれの変数のどのような演算結果を示すものであるかに基づいて生成したものである。すなわち、当該変数に代入される演算式を構成する変数名及び演算子を示す文字列が組み合わされて（接続されて）、当該変数の変数名が生成されている。
【００６０】
具体的には、ｈ＿＿ｂ＿ｐｌｕｓ＿ｃにおいて、ｈは、動作合成部１２１が決めた変数名である。ｂ＿ｐｌｕｓ＿ｃは、ｂ＋ｃという演算式に基づいて変数名生成部１２２が生成したものである。同様に、ｉ＿＿ｅ＿ｐｌｕｓ＿ｆにおいて、ｉは、動作合成部１２１が決めた変数名である。ｅ＿ｐｌｕｓ＿ｆは、ｅ＋ｆという演算式に基づいて変数名生成部１２２が生成したものである。また、ｊ＿＿ｈ＿ｍｕｌｔｉ＿ｊにおいて、ｊは、動作合成部１２１が決めた変数名である。ｈ＿ｍｕｌｔｉ＿ｊは、ｈ＿＿ｂ＿ｐｌｕｓ＿ｃ＊ｉ＿＿ｅ＿ｐｌｕｓ＿ｆという演算式に基づいて変数名生成部１２２が生成したものである。
【００６１】
なお、本例は一例であり、区切り文字は他の文字が用いられてもよい。また、演算を示す名前も区別さえできれば他の文字が用いられてもよい。
【００６２】
第二の例によれば、動作レベル回路記述ｄ２の変数名と、デバッグ用ＲＴＬ回路記述ｄ４の変数名とは必ずしも一致しないが、変数名を見ただけで、当該変数名が、どの変数に基づくどのような演算結果を格納するものであるのかを判別することができる。その結果、デバッグ用ＲＴＬ回路記述ｄ４の可読性を向上させることができる。
【００６３】
次に、第三の例について説明する。図１７は、第三の例の変数名を用いたデバッグ用ＲＴＬ回路記述ｄ４の例を示す図である。同図に示されるデバッグ用ＲＴＬ回路記述ｄ４も、図２の内容を有する動作レベル回路記述ｄ２に基づくものである。
【００６４】
同図の例において、変数名は、ｎ＿＿から始まっている。ｎ＿＿の後の文字列は、当該変数に代入される演算式に含まれる変数名を組み合わせて（接続して）変数名生成部１２２が生成したものである。
【００６５】
例えば、ｎ＿＿ｂ＿ｃという変数名は、変数ｂ及び変数ｃを含む演算式が代入されることを示す。代入元となる変数名が分かると、動作レベルでｂ及びｃの両方が関連している変数はａであることを特定することが容易となる。
【００６６】
なお、本例は一例であり、接頭文字列はｎ＿＿でなくてよい。また、区切り文字についても他の文字が用いられてもよい。
【００６７】
第三の例によれば、動作レベル回路記述ｄ２の変数名と、デバッグ用ＲＴＬ回路記述ｄ４の変数名とは必ずしも一致しないが、変数名を見ただけで、当該変数名が、どの変数に基づく演算結果を格納するものであるのかを判別することができる。その結果、デバッグ用ＲＴＬ回路記述ｄ４の可読性を向上させることができる。
【００６８】
上述したように、本実施の形態によれば、実装用ＲＴＬ回路記述ｄ３とデバッグ用ＲＴＬ回路記述ｄ４との双方が生成され、デバッグ用ＲＴＬ回路記述ｄ４に対してのみ、可読性を向上させるための加工が施される。例えば、動作レベル回路記述ｄ２に含まれる変数名や、演算式に基づく変数名は、デバッグ用ＲＴＬ回路記述ｄ４に対して意識的に含まれるようにされている。その結果、デバッグに関してはデバッグ用ＲＴＬ回路記述ｄ４を利用することにより、ＲＴＬ回路記述の可読性の向上を図ることができる。一方、実装に関しては実装用ＲＴＬ回路記述ｄ３を利用することにより、メモリの消費量の増加等を抑制することができる。すなわち、可読性を向上させるためには、変数名が長くなる傾向になる。変数名が長くなると、メモリの消費量が増加し、後工程におけるメモリ不足や実行時間の増大を招く可能性がある。そこで、後工程においては、実装用ＲＴＬ回路記述ｄ３を利用することにより、斯かる不都合（可読性の向上に伴う副作用）の発生を回避することができる。
【００６９】
また、対応情報１２３Ａが出力されるため、対応情報１２３Ａを用いてデバッグ作業等を効率化することができる。例えば、デバッグ用ＲＴＬ回路記述ｄ４に利用してデバッグを行い、その結果を実装用ＲＴＬ回路記述ｄ３に反映させる際に、対応情報１２３Ａに基づいて、実装用ＲＴＬ回路記述ｄ３における修正箇所を容易に特定することができる。その結果、手戻り工数等の削減を図ることができる。
【００７０】
上記の通り、本実施の形態によれば、動作合成手法によって生成されたＲＴＬ回路記述の可読性を向上させることができ、デバッグの容易化、設計仕様変更への対応の容易化を図ることができる。
【００７１】
なお、デバッグ用ＲＴＬ回路記述ｄ４と実装用ＲＴＬ回路記述ｄ３との対応は、両者の行数に基づいて行うこともできる。
【００７２】
図１８は、行数に基づいてデバッグ用ＲＴＬ回路記述と実装用ＲＴＬ回路記述との対応関係を把握する方法を示す図である。
【００７３】
デバッグ用ＲＴＬ回路記述ｄ４と実装用ＲＴＬ回路記述ｄ３との相違点は、基本的に変数名であるため、同じ行であれば同じ機能を表現している可能性が高い。そこで、デバッグ用ＲＴＬ回路記述ｄ４を用いて修正が必要な行が判明した場合、当該行の行数に基づいて実装用ＲＴＬ回路記述ｄ３における修正箇所が特定されてもよい。例えば、デバッグ用ＲＴＬ回路記述ｄ４の１８行目に修正が必要であることが判明した場合、実装用ＲＴＬ回路記述ｄ３の１８行目に修正が行われればよい。
【００７４】
また、デバッグ用ＲＴＬ回路記述ｄ４と実装用ＲＴＬ回路記述ｄ３とにおける変数の出現順に基づいて、両者の対応が図られてもよい。
【００７５】
図１９は、変数の出現順に基づいてデバッグ用ＲＴＬ回路記述と実装用ＲＴＬ回路記述との対応関係を把握する方法を示す図である。
【００７６】
デバッグ用ＲＴＬ回路記述ｄ４と実装用ＲＴＬ回路記述ｄ３との相違点は、基本的に変数名であるため、同じ信号又はレジスタに対する変数の出現順は基本的に同じである。そこで、デバッグ用ＲＴＬ回路記述ｄ４において修正が必要な変数が判明した場合、当該変数の出現順に基づいて、実装用ＲＴＬ回路記述ｄ３の修正箇所が特定されてもよい。例えば、同図において、デバッグ用ＲＴＬ回路記述ｄ４のｎ＿＿ｂ＿ｃは、乗算（＊）の左辺であるので、実装用ＲＴＬ回路記述ｄ３のｘに対応することが分かる。
【００７７】
このように、対応情報１２３Ａを用いなくても、デバッグ用ＲＴＬ回路記述ｄ４に基づいてデバッグ作業を行い、修正箇所が明らかになった場合、実装用ＲＴＬ回路記述ｄ３の修正箇所を特定することができる。但し、対応情報１２３Ａを用いることにより、より簡便に両者の対応関係を把握することができる。
【００７８】
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【００７９】
１０          設計支援装置
１００        ドライブ装置
１０１        記録媒体
１０２        補助記憶装置
１０３        メモリ装置
１０４        ＣＰＵ
１０５        インタフェース装置
１０６        表示装置
１０７        入力装置
１２１        動作合成部
１２２        変数名生成部
１２３        対応情報記憶部
１２４        回路記述出力部
Ｂ            バス
ｄ１          設計仕様書
ｄ２          動作レベル回路記述
ｄ３          実装用ＲＴＬ回路記述
ｄ４          デバッグ用ＲＴＬ回路記述
【先行技術文献】
【特許文献】
【００８０】
【特許文献１】特開２００７−２７２６７号公報
【特許文献２】特開２００６−２８５３３３号公報
【図１】
2012059153.tif 000003
【図２】
2012059153.tif 000004
【図３】
2012059153.tif 000005
【図４】
2012059153.tif 000006
【図５】
2012059153.tif 000007
【図６】
2012059153.tif 000008
【図７】
2012059153.tif 000009
【図８】
2012059153.tif 000010
【図９】
2012059153.tif 000011
【図１０】
2012059153.tif 000012
【図１１】
2012059153.tif 000013
【図１２】
2012059153.tif 000014
【図１３】
2012059153.tif 000015
【図１４】
2012059153.tif 000016
【図１５】
2012059153.tif 000017
【図１６】
2012059153.tif 000018
【図１７】
2012059153.tif 000019
【図１８】
2012059153.tif 000020
【図１９】
2012059153.tif 000021