(57)【要約】【課題】ハーでウェア記述言語を用いて回路合成を行うときの手作業を少なくし人為ミスを抑制する。【解決手段】ハードウェア記述言語を用いて作成された回路設計データＡとタイミング指定のコマンドファイルＤとから回路設計データＡに基づく回路の合成を行うに際し、回路設計データＡに対して実行した機能シミュレーション（ステップＳ３）のシミュレーション結果として得られる波形データＣを自動変換処理部１０が自動的に解析しコマンドファイルＤを自動生成する。【選択図】図１
2007213318.tif 000002
【特許請求の範囲】
【請求項１】
ハードウェア記述言語を用いて作成された回路設計データとタイミング指定のコマンドファイルとから前記回路設計データに基づく回路の合成を行う回路合成方法において、前記回路設計データに対して実行したタイミングシミュレーションのシミュレーション結果として得られる波形データを自動的に解析し前記コマンドファイルを自動生成することを特徴とする回路合成方法。
【請求項２】
ハードウェア記述言語を用いて作成された回路設計データとタイミング指定のコマンドファイルとから前記回路設計データに基づく回路の合成を行う回路合成装置において、前記回路設計データに対して実行したタイミングシミュレーションのシミュレーション結果として得られる波形データを自動的に解析し前記コマンドファイルを自動生成する処理手段を備えることを特徴とする回路合成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はVerilogＨＤＬ等のハードウェア記述言語を用いて回路設計を行う回路合成方法及びその装置に係り、特に、回路合成の人為的ミスの削減を図るのに好適な回路合成方法及びその装置に関する。
【背景技術】
【０００２】
図４は、ハードウェア記述言語を用いて回路設計を行うときの処理手順を示すフローチャートである。回路設計者は、先ず設計する回路の仕様を作成し（ステップＳ１）、次にこの仕様に基づいてＲＴＬ（Register Transfer Level）の設計を行う（ステップＳ２）。
【０００３】
次に、回路設計者は、ＲＴＬ設計に基づくＲＴＬデータＡと、クロック情報や入力遅延情報等を表したテストベンチデータＢとに基づき、機能シミュレーション処理（ステップＳ３）を計算機に実行させる。
【０００４】
このシミュレーション処理の結果、設計回路の波形データＣが、ＶＣＤ（Value Change Dump)ファイルとして作成され出力される。ＶＣＤファイルは、図５に示す様に、波形変化点のテキストファイルとして得られる。このＶＣＤファイルで表される波形変化点により波形を表すと、図６に示す図となる。
【０００５】
次に回路設計者は、回路合成のためのスクリプトＤを手作業で作成する。このスクリプトの一例を図７に示す。図示する例のスクリプトＤは、クロックの指定，入力信号の遅延量の設定，タイミング改善不要パスの指定等を記述するものであり、
“create_clock”で始まる入力クロックに関する記述と、
“set_false_path”で始まるタイミング改善しないパスの指定に関する記述と、
“set_input_delay”で始まるクロック遅延に関する記述と、
“set_multicycle”で始まる記述（この例では、２クロックに１回しか動かないパスに関する記述）、
とからなる。
【０００６】
このスクリプトＤが作成された後は、計算機にＲＴＬデータＡとスクリプトＤとライブラリデータＥとが入力され、回路合成処理（ステップＳ４）が実行される。この結果、図９に示す合成回路データが作成される。
【０００７】
図９に示す合成回路では、入力信号Ｉ１と入力信号Ｉ２とが加算器１に入力され、入力信号Ｉ３と入力信号Ｉ４とが加算器２に入力される。加算器１の出力Ｓｕｍ１はレジスタ３に出力され、加算器２の出力Ｓｕｍ２がレジスタ４に出力され、データＤ１とレジスタ３の出力Ｏ１ｔｍｐとが減算器５に入力され、データＤ２とレジスタ４の出力Ｏ２ｔｍｐとが乗算器６に入力される。そして、減算器５の出力Ｓｕｂがレジスタ７に取り込まれ、乗算器６の出力Ｍｕｌｔがレジスタ８に取り込まれる。レジスタ３，４，７，８には１０ｎｓの動作クロックＣＬＫが供給され、レジスタ４，８には更に２クロックに１回のイネーブル信号ＣＬＫｅｎが供給される。この結果、レジスタ７からは出力Ｏ１が、レジスタ８からは出力Ｏ２が出力される。
【０００８】
この合成回路は、図７に示すスクリプトに基づき自動生成されたものであり、スクリプトの“set_false_path-from{D1,D2}”という記述に基づき、図９のデータＤ１，Ｄ２のパスにおいてはタイミング改善が不要なためタイミング改善用の回路素子（レジスタ）は設けられていない。
【０００９】
また、スクリプトの“set_input_delay-add_delay-clock CLK 3{I1,I2}”という記述に基づき、ＶＣＤファイル即ち図６の波形データでは、クロックＣＬＫに対して入力信号Ｉ１，Ｉ２は「３」ｎｓの遅延が行われ、この結果、レジスタ３までのパスが（１０―３）−７ｎｓで実行される様に回路合成される。
【００１０】
また、スクリプトの“set_multicycle_path-from find(clock,"CLK")-to｛O2tmp,O2｝という記述に基づき、図９のレジスタ４の出力以降のパスが２クロックに１回しか動作しない様に回路合成される。
【００１１】
尚、ハーでウェア記述言語を用いて回路合成を行う従来技術として、例えば下記特許文献１記載のものがある。
【００１２】
【特許文献１】特開平８―２０２７４７号公報
【発明の開示】
【発明が解決しようとする課題】
【００１３】
ハードウェア記述言語を用いて回路合成を行う場合、図７に例示するスクリプトを正確に作成する必要があるが、従来は、シミュレーション結果を参照しながら手作業でスクリプトを作成していたため、ハードウェア記述言語の熟練者でないとスクリプトを正確に作成するのが困難であり、非熟練者が回路合成を行うときの人為的ミスを無くすために多大な時間を浪費しなければならないという問題がある。
【００１４】
本発明の目的は、回路合成を行うときの手作業を少なくし人為ミスを抑制することができる回路合成方法及びその装置を提供することにある。
【課題を解決するための手段】
【００１５】
本発明の回路合成方法は、ハードウェア記述言語を用いて作成された回路設計データとタイミング指定のコマンドファイルとから前記回路設計データに基づく回路の合成を行う回路合成方法において、前記回路設計データに対して実行した機能シミュレーションのシミュレーション結果として得られる波形データを自動的に解析し前記コマンドファイルを自動生成することを特徴とする。
【００１６】
本発明の回路合成装置は、ハードウェア記述言語を用いて作成された回路設計データとタイミング指定のコマンドファイルとから前記回路設計データに基づく回路の合成を行う回路合成装置において、前記回路設計データに対して実行した機能シミュレーションのシミュレーション結果として得られる波形データを自動的に解析し前記コマンドファイルを自動生成する処理手段を備えることを特徴とする。
【発明の効果】
【００１７】
本発明によれば、タイミング指定のコマンドファイルを、シミュレーション処理の処理結果として得られる波形データから直接、自動解析により作成するため、コマンドファイルの人為的作成ミスを無くすことができ、回路合成処理に要する時間を短縮することが可能となる。
【発明を実施するための最良の形態】
【００１８】
以下、本発明の一実施形態について、図面を参照して説明する。
【００１９】
図１は、本発明の第１実施形態に係る回路合成方法の処理手順を示す図である。本実施形態では、回路合成方法を実行する計算機に、図４で説明した機能シミュレーション処理（ステップＳ３）の結果として得られるＶＣＤファイルを自動解析してスクリプトＤを自動生成する自動変換処理部１０を設けたことを特徴とする。この自動変換処理部１０は、図５に例示するＶＣＤファイルを読み込み、自動的にスクリプト変換処理を実行し、図７に例示するスクリプト（コマンドファイル）を自動生成する。
【００２０】
図２は、自動変換処理部１０が実行するスクリプト変換処理の処理手順を示すフローチャートである。自動変換処理部１０は、図５に例示するＶＣＤファイルを読み込む（ステップＳ１０）。そして、ＶＣＤファイル中のクロック信号の変化点を抽出する（ステップＳ１１）。
【００２１】
図５に例示するＶＣＤファイルでは、先ず、各信号（Ｉ１，Ｉ２，…，Ｄ１，Ｄ２，…，Ｍｕｌｔ，Ｏ１ｔｍｐ，…）に対して夫々信号名を割り付けている。例えば、符号１３で示す記述の様に、［３：０]で示される４ビットの入力信号Ｉ１に対して“!”という信号名が割り付けられ、符号１４で示す記述の様に、１ビットの信号であるクロックＣＬＫに対して“'”という信号名が割り付けられている。
【００２２】
符号１５で示す記述は、符号１３で示した記述をダンプしたデータであり、「ｂ００００!」は、ｂ＝２進数、「００００」＝４ビットの信号、「!」＝入力信号Ｉ１を示している。
【００２３】
ダンプデータ以降がシミュレーション結果を示している。「♯」で始まる記述は時間を示しており、符号１６で示す「♯５」の記述は「５ｎｓ」を示し、「１'」は「クロックＣＬＫが“１”に変化」を表している。これは、図６のクロックＣＬＫが５ｎｓ後に“１”に立ち上がっていることに対応する。同様に、符号１７で示す「♯１０」は「１０ｎｓ」を示し、「０'」はクロックＣＬＫが１０ｎｓ後に“０”に立ち下がっていることに対応する。
【００２４】
従って、図２のステップＳ１１で、「♯ｘ」と次行が「０'」または「１'」となっている記述を探索することで、クロックのデータａが検出される。そして、ステップＳ１２でデータａに基づきクロックの周期（この例では、１０ｎｓ）を算出し、得られた結果を、図７のスクリプトの“create_clock”で始まる記述を自動的に書く。
【００２５】
自動変換処理部１０はまた、ステップＳ１３において、入力信号（入力データ）の変化点を抽出する。そして、変換点の有無を判断し（ステップＳ１４）、変化点有りのデータｂを作成する。例えば、信号名「!」の入力信号Ｉ１の変化点データとして、「♯３８」「♯４８」「♯５８」…がデータｂとして得られる。そして、データｂと、データａとを照合し、遅延量の計算を行う（ステップＳ１５）。この結果、３８−３５＝３，４８−４５＝３，…が得られ、最も遅延が大きい値を、スクリプトの“set_input_delay”で始まる記述に書く。図５，図６に示す例では、入力信号Ｉ１，Ｉ２が遅延量３ｎｓとして書き込まれ、入力信号Ｉ３，Ｉ４が遅延量４ｎｓとして書き込まれ、ＣＬＫｅｎも遅延量４ｎｓとして書き込まれる。
【００２６】
自動変換処理部１０はまた、ステップＳ１６において、出力信号と内部信号の変化点を抽出する。そして、その変化点の有無を判断する（ステップＳ１７）。変化点が無かったデータの場合には、また、ステップＳ１４における判断処理で変化点無しと判断したデータの場合には、スクリプトの“set_false_path”で始まる記述を書く。図５，図６に示す例では、データＤ１，Ｄ２は変化しないため、その旨がスクリプトに書き込まれる。
【００２７】
ステップＳ１７において変化点有りと判断された場合には、その変化点有りのデータｃが作成される。図示する例では、Ｏ２ｔｍｐのデータが♯５５，♯７５，♯９５，…で変化しているデータｃが作成される。そして、ステップＳ１８でその周期が計算される。
【００２８】
次のステップＳ１９では、全てが「クロック周期（１０ｎｓ）×２」以上であるか否かが判定され、否定された場合にはステップＳ１６に戻り、肯定の場合には、スクリプトの“set_multicycle”で始まる記述が書き込まれる。図５，図６に示す例では、Ｏ２ｔｍｐとＯ２とがマルチパスとして記述される。
【００２９】
以上により、自動変換処理部１０は、シミュレーション結果として得られる波形データ（ＶＣＤファイル）を直接解析してスクリプトを自動的に作成するため、回路合成時間を短縮することが可能となる。また、スクリプト作成の手作業ミスを起こしたとき合成回路内に冗長回路素子が入り込んでしまうという問題もなくなる。
【００３０】
また、シミュレーション結果からコマンドファイルを自動生成するため、全信号について機能シミュレーションを実施することが必須であり、検証漏れも防止できる。
【００３１】
図３は、本発明の第２実施形態に係る回路合成方法の処理手順を示す図である。第１実施形態では、人が見て分かるスクリプトを自動変換処理部１０がＶＣＤファイルから自動生成し、このスクリプトを計算機が読み込み機械語に変換し実行する構成としたが、本実施形態では、ＶＣＤファイルから、直接、計算機が分かる機械語でコマンドファイルを作成する構成としている。この構成でも第１実施形態と同様の効果を得ることができることはいうまでもない。
【産業上の利用可能性】
【００３２】
本発明に係る回路合成方法及びその装置は、シミュレーション結果のＶＣＤファイルを直接解析して自動的にコマンドファイル自動生成するため、コマンドファイル作成の手作業ミスを回避でき、回路合成時間を短縮できるため、ハードウェア記述言語を用いた回路設計処理に有用である。
【図面の簡単な説明】
【００３３】
【図１】本発明の第１実施形態に係る回路合成方法の処理手順を示す図である。
【図２】本発明の一実施形態に係る回路合成方法のスクリプト自動生成手順を示すフローチャートである。
【図３】本発明の第２実施形態に係る回路合成方法の処理手順を示す図である。
【図４】ハードウェア記述言語を用いた回路設計の手順を示す図である。
【図５】ＲＴＬデータに基づくシミュレーション結果を示すＶＣＤファイルの一例を示す図である。
【図６】図５に示すＶＣＤファイルを図形化して示したタイミングチャートである。
【図７】回路合成のときに計算機に入力するスクリプトを例示する図である。
【図８】ハードウェア記述言語を用いて設計したＲＴＬデータである。
【図９】回路合成結果を示す図である。
【符号の説明】
【００３４】
１０  自動変換処理部
Ａ  ＲＴＬデータ
Ｃ  ＶＣＤファイル
Ｄ  スクリプト（コマンドファイル）
【図１】
2007213318.tif 000003
【図２】
2007213318.tif 000004
【図３】
2007213318.tif 000005
【図４】
2007213318.tif 000006
【図５】
2007213318.tif 000007
【図６】
2007213318.tif 000008
【図７】
2007213318.tif 000009
【図８】
2007213318.tif 000010
【図９】
2007213318.tif 000011