(57)【要約】【課題】  ハードウエア動作記述言語で記述されたモデルをシミュレーション記述に変換し、シミュレーションを高速に実行することを目的とするハードウエア高速シミュレーション用モデル生成装置を提供する。【解決手段】  順序回路記述（１ｃ）と組合せ回路記述（１ｂ）に分離し、分離した順序回路記述（１ｃ）を組合せ回路記述に加工し、分離した組合せ回路記述（１ｂ）と加工した組合せ回路記述からシミュレーション記述を再構成するので、クロックイベント毎に演算を必要とする順序回路を含まず、シミュレーション時にクロックイベントをトリガとしてではなくクロックに関するものを除く入力変数の更新をトリガとして演算するため演算回数を抑えることができるシミュレーション記述を生成することができる。【選択図】図５
2008077330.tif 000002
【特許請求の範囲】
【請求項１】
順序回路記述と組合せ回路記述とからなるＲＴＬ記述を順序回路記述と組合せ回路記述とに分離する回路分離手段と、
順序回路記述を加工して組合せ回路記述に変換する順序回路加工手段と、
ＲＴＬ記述から分離された組合せ回路記述と順序回路記述から変換した組合せ回路記述とから組合せ回路のみからなるシミュレーション記述を再構成する回路記述再構成手段とからなる
ハードウエア高速シミュレーション用モデル生成装置。
【請求項２】
前記回路分離手段による順序回路記述と組合せ回路記述への回路分離前にＲＴＬ記述の回路記述の記述検査を行う回路記述検査手段を新たに含む
前記請求項１に記載のハードウエア高速シミュレーション用モデル生成装置。
【請求項３】
順序回路加工手段を用いて順序回路記述を加工して組合せ回路記述に変換している過程又は変換した後、順序回路記述から変換された組合せ回路記述の演算式に対し遅延時間を付加する遅延時間付加手段を新たに含む
前記請求項１に記載のハードウエア高速シミュレーション用モデル生成装置。
【請求項４】
回路記述再構成手段を用いて再構成されたシミュレーション記述の組合せ回路記述の中から条件文を含まない演算部からなる組合せ回路記述を同時信号処理代入文に変換する最適化手段を新たに含む
前記請求項１に記載のハードウエア高速シミュレーション用モデル生成装置。
【請求項５】
前記請求項１ないし４のいずれかに記載のハードウエア高速シミュレーション用モデル生成装置を含み、再構成されたシミュレーション記述を用いて、回路シミュレーションを実行するシミュレーション実行手段をさらに含む
ハードウエア高速シミュレーション装置。
【発明の詳細な説明】
【技術分野】
【０００１】
ＬＳＩやＦＰＧＡといったハードウエアの回路設計および検証では、一般的にハードウエア動作記述言語（ＨＤＬ）で記述されたモデル（通常ＲＴＬ(Register Transfer Level)と呼ばれる）を用いる。本発明は、このＲＴＬモデルのシミュレーション時において、より高速にシミュレーションを実行するためにＲＴＬの記述内容を変換するものに関する。
【背景技術】
【０００２】
開発者はＬＳＩやＦＰＧＡといったハードウエアを製造する前に、計算機上で実行可能なシミュレーションモデル（すなわちＲＴＬモデル）を作成し、シミュレーションによって動作が正しいことを確認する。今日の大規模回路ではシミュレーションに数ヶ月かかってしまうことがあり、これにより設計期間が長期化しており、製品の市場投入時期を遅らせる原因となっている。
これに対し、設計の効率化を目指したハードウエア記述言語による状態遷移記述の変換方法が、特開平６−９６１５７号公報に開示されている。
【０００３】
この背景技術の状態遷移記述の変換方法は、ハードウエア記述のための論理式部分を抽出する第１のステップ、前記抽出された論理式部分を前記回路の状態遷移に関与しない固定的な回路部分からなる第１のモジュール部分と新たなハードウエア記述言語によって記述され前記回路の状態遷移と関連する回路部分からなる第２のモジュール部分とに分離する第２のステップ、前記第１のモジュール部分の回路構成適正化を行った第１の回路モジュールを生成する第３のステップ、前記第２のモジュール部分に所定の状態を割り付け、その状態遷移のための入力信号として前記第１の回路モジュールからの所定信号を使う第２の回路モジュールを生成する第４のステップ、前記第１の回路モジュールと前記第２の回路モジュールを使って最終的な回路合成を行う第５のステップ、そして前記最終的な回路合成の適正化を判断し、適正な場合にはその処理を終了し、そして再合成する場合には前記所定の状態とは異なる状態を再割り付けして前記第４のステップ以降を繰り返し実行する第６のステップから構成するものである。
【０００４】
このように背景技術の状態遷移記述の変換方法によれば、目的とする回路を状態割り付けに関連する回路部分と、前記状態割り付けに関与しない固定回路部分とに分離し、前者を対象とした新ＨＤＬを使って状態割り付け等の再合成処理を実行するため、その処理速度ＴＡＴは大幅に短縮される。
【特許文献１】特開平６−９６１５７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
この長期化問題に対し、ＲＴＬモデルでのシミュレーションとは別に、回路の振る舞いのみを記述した上位言語でのシミュレーションを行うことで、設計期間の長期化を防ぐことが行われている。Ｃ言語等の上位言語によるシミュレーションで振る舞いの正当性を確認した後、このＣ言語モデルと等価な演算を行うＲＴＬモデルを作成し、シミュレーションを行う。Ｃ言語モデルはＲＴＬモデルよりも約１０００倍速くシミュレーション可能なため、振る舞いの異常を短期間で発見し、修正することができる。このＣ言語モデルを参照しながらＲＴＬモデルを作成すれば、不具合が混入する確率は削減できる。しかし、人手で作成されたＲＴＬモデルは不具合が混入している可能性があるため、このモデルに対するシミュレーションを省略することはできない。
【０００６】
一方、動作合成（または高位合成）と呼ばれる技術によってＣ言語モデルからＲＴＬモデルを自動生成することも行われている。しかし、動作合成技術は人手で作成したＲＴＬモデルに比べて回路規模が増大するなどの問題があり、まだ一般的な普及に至っていない。仮に普及したとしても、Ｃ言語モデルとＲＴＬモデルとが論理的に等価であることを確認※1する必要があり、これは結局ＲＴＬモデルでのシミュレーションを行う必要が発生し、設計期間の短期化には貢献しないという問題がある。
そのため、ＲＴＬモデルを何らかの方法によって高速にシミュレーションすることが求められる。
【０００７】
※１…動作合成技術（ツール）がＣ言語モデルとＲＴＬモデルの等価性を１００％保証すれば、動作合成ツールから自動的に出力されるＲＴＬモデルをあらためてシミュレーションする必要はない。しかし、実際には動作合成ツールは完全ではないため、別の手段で等価性を保証しなければならない。その手段としてＲＴＬモデルのシミュレーションが必要になる。
【０００８】
前記特許文献１の状態遷移記述の変換方法も動作合成の一例であり、設計者の手を介しない分設計時間を短縮化することができるものの、作成したＲＴＬモデルに直接シミュレーションを行う必要があり、シミュレーションに長時間要するという課題は解決できない。
【０００９】
本発明は前記課題を解決するためになされたものであり、ハードウエア動作記述言語で記述されたモデルをシミュレーション記述に変換し、シミュレーションを高速に実行することを目的とするハードウエア高速シミュレーション用モデル生成装置を提供することを目的とする。
【課題を解決するための手段】
【００１０】
ＲＴＬモデルは実際の回路の動作を擬似的に表現したものである。シミュレーション時において、シミュレータはＲＴＬモデル内で次々に発生する信号の変化に反応して、回路がどのように動作するのかを正しく記憶・演算する。そのため、ＲＴＬモデルの動作が複雑な場合や信号値の変化が激しい場合、シミュレータの演算回数（負荷）が極端に増えるため、結果としてシミュレーション時間が著しく増加してしまう。
【００１１】
ところで、ＲＴＬモデルの記述形式において、順序回路記述はクロックの立上りまたは立下り（クロックイベントと呼ぶ）毎に同期して動作するように記述する。図１に示すように順序回路記述に入力されるデータが変化していない時間帯でも、シミュレータはクロックイベント毎に演算を行う。これはシミュレーションにおいて無駄な処理であり、シミュレーション速度を低下させる要因となっている。
【００１２】
一方、組合せ回路記述はＲＴＬ中で最も本質的な部分であり、純粋なアルゴリズムを記述する。組合せ回路記述にクロックは伴わない。シミュレータは、組合せ回路に入力されるデータの変化にのみ反応して処理を実行するため、無駄な処理を一切行わない。
【００１３】
前記したように順序回路をもつ同期システムでは、クロックのイベント数に比べてデータの変化する数が圧倒的に少ない。本発明はこの同期システムの特徴を利用する。すなわちＲＴＬ記述中においてクロックに同期して動作する順序回路記述を加工し、データの変化のみに反応する組合せ回路記述に変換することを特徴とする。本発明によって生成されたモデルはクロックイベントによる無駄な演算を一切行わないため、従来のＲＴＬモデルよりも高速にシミュレーションを実行することができるようになる。
【００１４】
例えば、図２に示すようにｉｎ１＋ｉｎ２という簡単な演算を行う場合でも、ＲＴＬモデルは複雑な記述になってしまう。この理由は、ＲＴＬモデルを論理合成した後の実際の回路が、開発者の意図した通り動作することを保証するためである。上述したようにＲＴＬモデルの記述が複雑であるほどシミュレーション時間は長くなる。特にクロックイベント毎に演算する順序回路記述が多く存在するとシミュレーション速度は著しく低下する。図３は本発明を用いて図２のＲＴＬモデルを変換した例である。これをシミュレーション記述と呼ぶことにする。このシミュレーション記述は図２のＲＴＬモデルから、機能とは関係ない順序回路記述の同期部分を取り除き、ｉｎ１＋ｉｎ２という本質的な演算のみ抽出したものである。図２のＲＴＬモデルよりも高速にシミュレーション可能である。
【００１５】
本発明は、ＲＴＬモデルが順序回路記述と組合せ回路記述で構成されていることに着目している。図４に一般的なＲＴＬモデルの構成を示す。順序回路記述はクロックに同期して動作する。一方、組合せ回路記述はクロックに依存せず、組合せ回路記述に入力されるデータの変化に反応し、処理を行う。
なお、ハードウエア記述言語で記述する場合、順序回路記述および組合せ回路記述はＶＨＤＬではｐｒｏｃｅｓｓ文、ｖｅｒｉｌｏｇ−ＨＤＬではａｌｗａｙｓ文で表現される。
【００１６】
図５に本発明のブロック図を示す。図中（１）はＲＴＬモデル（１ａ）を入力として、組合せ回路記述（１ｂ）と順序回路記述（１ｃ）とに分離する回路分離手段である。図中（２）は本発明の特徴であり、順序回路記述（１ｃ）を加工し、組合せ回路記述に変換する順序回路加工手段である。図中（３）は組合せ回路記述（１ｂ）と順序回路加工手段（２）の結果を統合し、シミュレーション記述（３ａ）を出力する。図中（４）はシミュレーション記述（３ａ）を入力とするシミュレーション手段であり、一般的にＨＤＬシミュレータと呼ばれるものである。図中（５）は回路分離手段（１）を効率的に行えるように記述形式を検査するものであり、ブロック名（ＶＨＤＬではｐｒｏｃｅｓｓ文、ｖｅｒｉｌｏｇ−ＨＤＬではａｌｗａｙｓ文に対するラベル）が付与されているかどうかを検査する。図中（６）は本発明のもう１つの特徴であり、順序回路加工手段（２）で加工された結果に対し、（６ａ）で与えられるクロック周期分の遅延時間を付加するものである。図中（７）は回路再構成手段（３）の結果である組合せ回路記述に対する最適化手段であり、冗長部分を排除し、さらにシミュレーションを高速化可能にする。
【００１７】
［作用］
本発明では、図５の回路分離手段（１）によってＲＴＬ記述（１ａ）から順序回路記述（１ｃ）を見つけ出す。次に順序回路加工手段（２）によって順序回路記述（１ｃ）からシミュレーション速度を低下させる要因であるクロックイベント検出部やその他の不必要な部分を削除し、純粋な演算部分を取り出す。図６に順序回路加工手段（２）の作用例を示す。図６（ａ）はＲＴＬ記述（１ａ）のうち、順序回路記述で記述された部分のみを示している。動作はｅｎが’１’のときｉｎ１とｉｎ２を加算し、信号ｓｒ＿ａｄｄに結果を代入する。ｅｎが’０’のときｓｒ＿ａｄｄに０を代入する。この動作はクロックの立上りに同期して毎回行われる。図６（ｂ）は順序回路加工手段（２）によって、図６（ａ）の順序回路記述を組合せ回路記述に変換したものである。図６（ｂ）では、元の順序回路記述から純粋な演算部分のみが抽出され、クロックイベントを検出する部分であるｅｌｓｉｆ  （ｃｌｋ’ｅｖｅｎｔ  ａｎｄ  ｃｌｋ＝’１’）が削除されている。また、この組合せ回路記述の入力であるｅｎとｉｎ１とｉｎ２のデータの変化を検出するため、これらの信号をセンシティビティ・リスト（ｐｒｏｃｅｓｓの（  ）の中）に記述している。このように加工することにより、クロックイベントによる無駄な演算は行なわれず、それぞれの式は入力信号（ｉｎ１，ｉｎ２，ｅｎ）の変化に対してのみ計算される。これによりシミュレーションを高速化できる。
【００１８】
次に、回路再構成手段（３）において、回路分離手段（１）で抽出された組合せ回路（１ｂ）と順序回路加工手段（２）の結果または遅延付加手段（６）の結果を統合し、シミュレーション記述（３ａ）を生成する。
最後に、シミュレーション記述（３ａ）を用いてシミュレーション手段（４）でシミュレーションを行う。
図５の記述検査手段（５）は、回路分離手段（１）を実行する前に、ＲＴＬ記述（１ａ）に対してブロック名が付与されているかどうかを検査する。例えばＶＨＤＬにおいて、ブロック名：ｐｒｏｃｅｓｓとなっていれば合格、単にｐｒｏｃｅｓｓとだけ記述されていれば不合格とし、ユーザに警告を出す。
【００１９】
図５の遅延付加手段（６）は、順序回路加工手段（３）で変換された組合せ回路記述の代入式に対してクロック周期分の遅延時間（６ａ）を付加する。例えばＶＨＤＬで記述した場合、図７（ａ）の式＜１＞＜２＞＜３＞のようになる。＜１＞式は「信号ｉｎ１の値が変化したとき１０［ｎｓ］後に信号ｓｒ＿ｉｎ１にｉｎ１を代入する」という意味であり、１０［ｎｓ］がクロック周期分の遅延時間である。＜２＞＜３＞式も同様である。この記述形式は図６（ａ）のようなクロックイベントによる同期とは異なり、無駄な処理は一切行われないためシミュレータの負荷は軽減される。また、この手段により順序回路記述で表されるタイミング情報を組合せ回路記述に実装できるため、図５の元のＲＴＬ記述（１ａ）と本発明を用いて変換されたシミュレーション記述（３ａ）の出力結果はタイミングにおいて完全に一致するようになる。なお遅延付加手段（６）は本発明のオプションであり、スキップすることもできる。この場合、シミュレーション記述（３ａ）の演算結果は元のＲＴＬ（１ａ）と同じになるが、その結果の出力タイミングは異なる。検証者がいち早く演算結果のみを知りたい場合に利用する。
【００２０】
図５の最適化手段（７）は回路再構成手段（３）の結果である組合せ回路記述に対して最適化を行う。ここでの最適化とは、条件文やループ文などを含まない組合せ回路記述を同時信号処理代入文（ブロックの外に記述された代入文）に変換することである。図７に最適化の例を示す。図７（ａ）は遅延付加後の組合せ回路記述を示している。図７（ａ）の組合せ回路記述の中には３つの式＜１＞＜２＞＜３＞が記述されており、それぞれデータの依存関係はないにもかかわらず、ｉｎ１またはｉｎ２またはｅｎのうちいずれか、あるいは同時に変化したとき、３つの式は必ず実行される。例えば、図７（ａ）の＜１＞式とはまったく関係のないｉｎ２やｅｎの値が変化しても＜１＞式は実行されてしまう。＜２＞＜３＞についても同様のことが言える。これらは無駄な処理であり、シミュレータの速度を低下させる。図７（ｂ）は最適化手段（７）を実施した結果である。プロセス文を削除しただけであるが、各々の式は独立して動作する。＜４＞はｉｎ２やｅｎの値が変化しても実行されない。＜５＞＜６＞についても同様である。したがって、無駄を排除でき、シミュレーションを高速化できる。
【００２１】
図８は、図４のＲＴＬモデルを本発明で変換したシミュレーション記述（３ａ）の構成である。シミュレーション記述（３ａ）の構成はすべて組合せ回路記述となっており、クロックはどこにも接続されていない。したがって、クロックイベントに反応する回路記述がなくなるため、シミュレーションを高速化できる。
以上の原理を内包する本発明を以下項目立てて示す。
【００２２】
（１）  シミュレーション記述の生成
本発明に係るハードウエア高速シミュレーション用モデル生成装置は、順序回路記述（１ｃ）と組合せ回路記述（１ｂ）とからなるＲＴＬ記述（１ａ）を順序回路記述（１ｃ）と組合せ回路記述（１ｂ）とに分離する回路分離手段（１）と、順序回路記述（１ｃ）を加工して組合せ回路記述に変換する順序回路加工手段（２）と、ＲＴＬ記述（１ａ）から分離された組合せ回路記述（１ｂ）と順序回路記述（１ｃ）から変換した組合せ回路記述とから組合せ回路のみからなるシミュレーション記述（３ａ）を再構成する回路記述再構成手段（３）とからなるものである。
【００２３】
このように本発明においては、順序回路記述（１ｃ）と組合せ回路記述（１ｂ）に分離し、分離した順序回路記述（１ｃ）を組合せ回路記述に加工し、分離した組合せ回路記述（１ｂ）と加工した組合せ回路記述からシミュレーション記述を再構成するので、クロックイベント毎に演算を必要とする順序回路を含まず、シミュレーション時にクロックイベントをトリガとしてではなくクロックに関するものを除く入力変数の更新をトリガとして演算するため演算回数を抑えることができるシミュレーション記述を生成することができるという効果を奏する。
入力変数は、ブロックの引数であり、センシティビティ・リストに記述されているものである。
【００２４】
（２）  回路記述検査
本発明に係るハードウエア高速シミュレーション用モデル生成装置は必要に応じて、前記回路分離手段（１）による順序回路記述（１ｃ）と組合せ回路記述（１ｂ）への回路分離前にＲＴＬ記述（１ａ）の回路記述の記述検査を行う回路記述検査手段（５）を新たに含むものである。
【００２５】
このように本発明においては、順序回路記述（１ｃ）と組合せ回路記述（１ｂ）とからなるＲＴＬ記述（１ａ）を順序回路記述（１ｃ）と組合せ回路記述（１ｂ）とに分離する回路分離手段（１）が適切になされるか否かを事前に確認するので、不要なモデル生成の処理を回避し、その原因を特定することができると共に、仮にモデル生成ができる場合でも不適切なモデルによる無駄なシミュレーションの実行を阻止することができるという効果を有する。
【００２６】
後説する実施形態においては、ＲＴＬ記述（１ａ）を構成する各回路記述に名前が付与されているか否かの記述検査について説示している。各回路記述が順序回路記述（１ｃ）と組合せ回路記述（１ｂ）のどちらであるかを識別できる文字列等のキーワードを含む名前を予め使用者が各回路記述に設定することとし、名前が付与されていない回路記述を抽出し、使用者にその旨を報知する構成である。
【００２７】
実施形態においては、各回路記述に名前を付与することで、モデル生成装置が各回路記述を順序回路記述（１ｃ）であるのか組合せ回路記述（１ｂ）であるのかを識別可能としたが、回路記述内に順序回路記述（１ｃ）か組合せ回路記述（１ｂ）かを識別できる文字、文字列、記号等のキーワードを埋め込むことで、モデル生成装置が順序回路記述（１ｃ）と組合せ回路記述（１ｂ）のどちらであるかを判別する構成にすることもできる。
【００２８】
この他、回路記述とは別に各回路記述を特定する情報（例えば回路記述の名前）と順序回路記述（１ｃ）か組合せ回路記述（１ｂ）かを示す情報とを関連付けて別途記録するか、若しくは、ＲＴＬ記述のヘッダー部又はフッター部に挿入する構成であってもよい。この場合記述検査は、別途適切に記録されているか否か、ヘッダー部又はフッター部に適切に挿入されているか否かを検査することになる。
【００２９】
（３）  遅延付加
本発明に係るハードウエア高速シミュレーション用モデル生成装置は必要に応じて、順序回路加工手段（２）を用いて順序回路記述（１ｃ）を加工して組合せ回路記述に変換している過程又は変換した後、順序回路記述（１ｃ）から変換された組合せ回路記述の演算式に対し遅延時間を付加する遅延時間付加手段（６）を新たに含むものである。
【００３０】
このように本発明においては、順序回路記述（１ｃ）を組合せ回路記述へ変換するだけでなく、組合せ回路記述の演算式に遅延時間を付加するので、正規のＲＴＬモデルに合致したタイミングでのシミュレーションを実行することができるという効果を有する。
通常、付加する遅延時間はクロックサイクルの一周期である。
【００３１】
（４）  最適化
本発明に係るハードウエア高速シミュレーション用モデル生成装置は必要に応じて、回路記述再構成手段（３）を用いて再構成されたシミュレーション記述の組合せ回路記述の中から条件文を含まない演算部からなる組合せ回路記述を同時信号処理代入文に変換する最適化手段（７）を新たに含むものである。
【００３２】
このように本発明においては、条件を満たす組合せ回路ブロックの演算式が非ブロック化されるので、入力変数の変動により単独で演算式が実行されることになって処理が必要な演算のみ実行され、不要な演算が実行されないという効果を有する。
後説する実施形態においては、順序回路加工手段（２）により加工された組合せ回路記述のうち条件文を含まない演算部からなる組合せ回路記述を同時信号処理代入文に変換したが、分離された組合せ回路記述（１ｂ）を処理対象としてもよい。
【００３３】
（５）  順序回路検出手段
本発明に係るハードウエア高速シミュレーション用モデル生成装置は必要に応じて、前記回路分離手段（１）による順序回路記述（１ｃ）と組合せ回路記述（１ｂ）への回路分離前にＲＴＬ記述（１ａ）の回路記述の中から順序回路記述（１ｃ）を検出する順序回路検出手段を新たに含むものである。
【００３４】
このように本発明においては、回路分離手段（１）による回路分離前に回路記述の中から順序回路記述（１ｃ）を検出するので、使用者が本モデル装置に対してキーワードを含むブロック名を付与する等の順序回路記述（１ｃ）を指定する手間なくシミュレーション記述を得ることができるという効果を有する。
【００３５】
この場合、本モデル装置は、例えば、クロックイベントをトリガとした処理がある場合を順序回路記述であると判断する。より具体的にはクロック変数を条件とする条件式がある場合、又は、センシティビティ・リスト内にクロック変数がある場合に順序回路記述であると判断する。逆に、クロック変数以外の入力変数を条件とする条件式がある場合には組合せ回路記述であると判断することもできる。
【００３６】
（６）  シミュレーション装置
本発明に係るハードウエア高速シミュレーション装置は、前記請求項１ないし４のいずれかに記載のハードウエア高速シミュレーション用モデル生成装置を含み、再構成されたシミュレーション記述を用いて、回路シミュレーションを実行するシミュレーション実行手段（４）をさらに含むものである。
後説する実施形態においては、モデル生成装置の機能を含むシミュレーション装置として説示している。
【００３７】
（７）  方法
本発明に係るハードウエア高速シミュレーション用モデル生成方法は、プロセッサと記憶手段を具備するコンピュータを用いて、順序回路記述（１ｃ）と組合せ回路記述（１ｂ）とからなるＲＴＬ記述（１ａ）をシミュレーションに適したシミュレーション記述（３ａ）に変換するハードウエア高速シミュレーション用モデル生成方法であって、プロセッサは、クロックイベントをトリガとする処理を含む順序回路記述（１ｃ）を特定するためのキーワードに基づき、ＲＴＬ記述の中から順序回路記述（１ｃ）を特定するステップと、プロセッサは、特定した順序回路記述（１ｃ）を、クロックイベントをトリガとする処理からクロック変数以外の入力変数の更新をトリガとする処理からなる組合せ回路記述へ変換するステップとを含むものである。
【００３８】
このように本発明においては、ＲＴＬ記述の中からクロックイベントをトリガとして処理する順序回路記述（１ｃ）をまずもって特定し、特定した順序回路記述（１ｃ）からクロックイベントをトリガとする処理をクロック変数以外の入力変数の更新をトリガとする処理へ変換するので、ＲＴＬ記述の中からクロックイベントをトリガとする処理がなくなり、入力変数の更新された場合にだけ演算が必要となり、シミュレーション時の演算回数を大幅に減少させるシミュレーション記述を得ることができるという効果を有する。
【００３９】
順序回路記述（１ｃ）を特定するためのキーワードは、例えば、後説する実施形態においては予め決定されている順序回路記述を示すキーワードであり、使用者により順序回路ブロックにブロック名の一部として付与されている。また、順序回路記述を特定するためのキーワードは、例えば、条件文の条件に用いるクロック変数（clk'event、clk）若しくはセンシティビティ・リスト内のクロック変数である。
【００４０】
本発明は、さらに、プロセッサが変換したシミュレーション記述をシミュレーションするステップを含むシミュレーション方法として把握することもできる。
本発明は前記（１）ないし（７）に示すように装置、方法として把握することができるが、相互に方法、装置として把握することができる他、プログラムとしても把握することができる。
これら前記の発明の概要は、本発明に必須となる特徴を列挙したものではなく、これら複数の特徴のサブコンビネーションも発明となり得る。
【発明の効果】
【００４１】
以上説明したように、シミュレータの負荷を軽減するため、順序回路記述中のクロックに同期して動作する部分を組合せ回路記述に変換し、遅延を付加することで、元のＲＴＬモデルと同じ結果と出力タイミングを維持しつつ、シミュレーションの高速化を図ることができる。これにより開発期間の長期化を防ぐことが可能になる。
【発明を実施するための最良の形態】
【００４２】
本発明の実施の形態を図面に基づいて詳細に説明する。本発明は多くの異なる形態で実施可能である。したがって、本実施形態の記載内容のみで解釈すべきではない。また、本実施の形態の全体を通して同じ要素には同じ符号を付けている。
【００４３】
本実施の形態では、主に装置について説明するが、所謂当業者であれば明らかな通り、本発明はコンピュータで使用可能なプログラム及び方法としても実施できる。また、本発明は、ハードウエア、ソフトウェア、または、ソフトウェア及びハードウエアの実施形態で実施可能である。プログラムは、ハードディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、光記憶装置または磁気記憶装置等の任意のコンピュータ可読媒体に記録できる。さらに、プログラムはネットワークを介した他のコンピュータに記録することができる。
【００４４】
（本発明の第１の実施形態）
本実施形態に係るシミュレーション装置は、図５のブロック構成である。既に、回路分離手段（１）、順序回路加工手段（２）、回路再構成手段（３）及びシミュレーション手段（４）の機能説明は前説しており、ここでは省略し、より具体的な動作について説示する。
【００４５】
シミュレーション装置は、例えば、シミュレーションプログラムをコンピュータにインストールし、メインメモリ上にインストールしたシミュレーションプログラムを展開し、ＣＰＵが実行することで使用可能となる。シミュレーション装置が構築されるコンピュータは、例えば、ＣＰＵ(Central Processing Unit)、ＤＲＡＭ(Dynamic Random Access Memory)等のメインメモリ、外部記憶装置であるＨＤ(hard disk)、入力装置であるキーボード及びマウス、出力装置であるディスプレイ等からなる。
【００４６】
本実施形態では、ＲＴＬ記述（１ａ）からシミュレーション記述へ変換する変換機能を具備するシミュレーション装置として説明するが、変換機能のみの装置（モデル生成装置）、ＨＤＬエディタ機能及び変換機能を具備する装置、ＨＤＬエディタ機能、変換機能及びシミュレーション機能を具備する装置、さらに、論理合成機能を加えた装置等として実装することができる。
【００４７】
図９は本実施形態に係るシミュレーション装置のフローチャートである。図５で示した手段のうち回路分離手段（１）と順序回路加工手段（２）および回路再構成手段（３）に対するフローを示している。このフローはプログラム言語であるＣ／Ｃ＋＋／Ｊａｖａ(
登録商標）や文字列処理言語であるａｗｋやｐｅｒｌ等で簡単に実現可能である。
【００４８】
以下、フローチャートに従って説明するが、実行主体は大まかにはシミュレーション装置であり、ハードウエア的視点から言えばＣＰＵである。
シミュレーション装置はＲＴＬファイルを一行読み込む（Ｓ１０１）。
シミュレーション装置は最終行であるか否かを判断する（Ｓ１１１）。
前記Ｓ１１１で最終行でなければ、シミュレーション装置は状態を判別する（Ｓ１２１）。フローはステートマシンで記述しており、＜１＞順序回路探索、＜２＞同期部探索、＜３＞演算部探索、＜４＞ブロック終了の４つの状態を持つ。状態の初期値は順序回路探索となっている。
【００４９】
前記Ｓ１２１で順序回路探索と判別された場合、＜１＞順序回路探索状態となり、図５の回路分離手段（１）が順序回路記述とそれ以外（組合せ回路記述も含む）とに分離する。順序回路記述かどうかの判定（Ｓ１３１）はブロック文（ＶＨＤＬではｐｒｏｃｅｓｓ、ｖｅｒｉｌｏｇ−ＨＤＬではａｌｗａｙｓ）に予め決めておいたキーワードを含むブロック名が付与されているか否かにより実現できる。ブロック名は設計者が順序回路記述であればそのキーワードを含ませてブロック名を付ける。例えば、「ｓｙｎｃ＿０：ｐｒｏｃｅｓｓ」のように「ｓｙｎｃ」というキーワードがブロック名に含まれていれば、そのブロックを順序回路記述とみなす。Ｓ１３１で回路分離手段（１）が対象行を順序回路記述でないと判断した場合には、対象行をバッファに蓄積し（Ｓ１３２）、Ｓ１０１に戻る。Ｓ１３１で回路分離手段（１）が対象行を順序回路記述であると判断した場合には、状態を同期部検索とし（Ｓ１３３）、Ｓ１３２に移行する。
【００５０】
前記Ｓ１２１で同期部探索と判別した場合、＜２＞同期部探索状態となり、順序回路加工手段（２）は対象行がクロックイベントであるか否かを判断する（Ｓ１４１）。Ｓ１４１で対象行がクロックイベント検出部でないと判断した場合には、Ｓ１０１に戻る。Ｓ１４１で対象行がクロックイベント検出部である場合には、状態を演算部探索にし（Ｓ１４２）、Ｓ１０１に戻る。同期部探索状態でバッファに対象行を蓄積しないことにより、ＲＴＬ記述中リセット処理部及びクロックイベント検出部を削除する。クロックイベント検出部は、例えば、「elsif(clk'event and clk = '1')」が該当する。
【００５１】
前記Ｓ１２１で演算部検索と判別した場合、＜３＞演算部探索状態となり、順序回路加工手段（２）は対象行が演算部であるか否かを判断する（Ｓ１５１）。対象行が演算部でなければ、状態をブロック終了にし（Ｓ１５３）、Ｓ１０１に戻る。対象行が演算部であれば、対象行をバッファに蓄積し（Ｓ１５２）、Ｓ１０１に戻る。バッファに対象行を蓄積することにより、演算部を抽出する。演算部は、例えば、「sr#in1 <= in1;」が該当する。
【００５２】
前記Ｓ１２１でブロック終了と判別した場合、＜４＞ブロック終了状態となり、順序回路加工手段（２）は対象行がブロック終了であるか否かを判断する（Ｓ１６１）。対象行がブロック終了でなければ、Ｓ１０１に戻る。対象行がブロック終了であれば、状態を順序回路検索とし（Ｓ１６２）、対象行をバッファに蓄積する（Ｓ１６３）。ブロック終了は、例えば、対象が例えば「end process;」である。
【００５３】
前記Ｓ１１１で最終行であると判断した場合、入力したＲＴＬファイルの最終行まで到達し、回路再構成手段（３）がバッファ中の蓄積されたＲＴＬ記述を読み出す（Ｓ１７１）。回路再構成手段（３）が順序回路記述のセンシティビティ・リストを書き換えて組合せ回路記述に加工する（Ｓ１８１）。順序回路記述である場合の書き換える前のセンシティビティ・リストにはクロック、リセットが含まれているが、演算部で使用される入力の変数にセンシティビティ・リストを書き換える。そうすることで、クロック信号の入力により演算部が実行されるのではなく、演算部で使用される入力の変数が更新されたタイミングで演算部が実行され、必要な演算を残しつつ大幅に演算回数を減少させることができる。
【００５４】
そして、回路再構成手段（３）がその他の部分と結合する（Ｓ１９１）。これにより、回路分離手段（１）により分離された組合せ回路記述と順序回路加工手段により加工された回路記述とが結合され、すべての部分が組合せ回路記述で構成されたことになる。
このように回路再構成手段（３）にて生成されたシミュレーション記述（３ａ）をシミュレーション手段（４）で実行することで、クロック信号の入力の度にアルゴリズムとは無関係に実施されていた順序回路記述での実行がなくなり、従来と比して高速なシミュレーションを実現することができる。
【００５５】
［記述検査手段］
図１０は回路記述検査手段（５）のフローチャートである。
回路記述検査手段（５）はＲＴＬ記述からシミュレーション記述へ変換される前に本実施形態での変換処理を適切に実行するためにＲＴＬ記述に対して実行される検査を行う。本実施形態では、ブロック文にブロック名が付与されているか否かを検査する。この検査は、図９のシミュレーション装置の処理前に実行する。
回路記述検査手段（５）がＲＴＬファイルを一行読み込む（Ｓ２０１）。
回路記述検査手段（５）は対象行が最終行であるか否かを判断する（Ｓ２０２）。対象行が最終行であると判断した場合には回路記述検査手段（５）の処理を終了する。
【００５６】
Ｓ２０２で対象行が最終行でないと判断した場合には回路記述検査手段（５）は対象行がブロック文であるか否かを判断する（Ｓ２０３）。ブロック文でないと判断した場合にはＳ２０１に戻る。
Ｓ２０３で対象行がブロック文であると判断した場合には回路記述検査手段（５）が対象行のブロック文にブロック名が付与されているか否かを判断する（Ｓ２０４）。ブロック文にブロック名が付与されている場合にはＳ２０１に戻る。ブロック文にブロック名が付与されていない場合には使用者に対して警告を出力する。警告の出力形態については、警告対象一つずつ又は警告対象全てについて警告対象を明示して警告メッセージをディスプレイに表示することが一例として挙げられるが、これに限定されず、他の警告形態であってもよい。
このように回路記述検査手段（５）により検査を行うことで、前説した本実施形態に係る変換処理が適切になされる。
【００５７】
［遅延付加手段］
図１１は遅延付加手段（６）のフローチャートである。図９のフローチャートに対して図１１中の点線矩形枠で取り囲まれる遅延付加手段（６）の処理を追加している。図９で説示した処理については説明を省略する。
【００５８】
前記Ｓ１５１で演算部であると判断した場合でＳ１５２のバッファ蓄積前に遅延付加手段（６）は対象行が代入文であるか否かを判断する（Ｓ３０１）。＜３＞演算部探索状態において代入文が存在する場合、図７（ａ）のように遅延情報すなわちクロックの１周期分の時間（例えばＶＨＤＬだとａｆｔｅｒ  １０  ｎｓ）を追加する（Ｓ３０２）。代入文以外の処理（例えばｉｆ文やｃａｓｅ文などの条件文やループ文など）の場合は遅延情報を付加しない。
このように代入処理時に遅延を付与することで、クロックをトリガとして処理されなくなった加工された組合せ回路記述上の代入処理であっても、正規のＲＴＬモデルに合致したタイミングでシミュレーションすることができる。
【００５９】
［最適化手段］
図１２は最適化手段（７）を実現するための前処理を示しており、図９のフローに対して処理を追加している。これにより最適化可能な順序回路記述を選び出す。最適化可能な条件は図２のｓｙｎｃ＿ｉｎやｓｙｎｃ＿ｏｕｔブロックに示すように内部で代入しか行っていない順序回路記述であり、条件文や制御文などを含むブロックは対象としない。なお、図９で説示した処理については説明を省略する。
まず、＜１＞順序回路探索状態において順序回路記述を検出して状態を同期部検索とした後に（Ｓ１３１、Ｓ１３３）、最適化フラグに初期値ｔｒｕｅを設定する（Ｓ４０１）。
【００６０】
次に、＜３＞演算部探索状態において前記Ｓ１５１で演算部であると判断した場合に代入文か代入文以外かを判定する（Ｓ４１１）。代入文であれば最適化フラグは初期値のままｔｒｕｅであり、代入文以外であればブロック内部に条件文や制御文が含まれているとみなし、最適化フラグにｆａｌｓｅを設定する（Ｓ４１２）。
【００６１】
最後に、＜４＞ブロック終了状態においてＳ１６３のバッファ蓄積の後に最適化フラグを参照してｔｒｕｅかｆａｌｓｅかを判断し（Ｓ４２１）、ｔｒｕｅであればこの順序回路記述を最適化対象とみなしてブロック名を保存する（Ｓ４２２）。ｆａｌｓｅであればブロック内部に条件文や制御文が含まれているとみなしブロック名は保存されない。保存されたブロック名は次で説明する最適化手段（７）が使用する。
【００６２】
図１３は図５の最適化手段（７）のフローチャートである。図１２のフローの結果、すなわち図５の回路再構成手段（３）の結果を入力し、最適化手段（７）が最適化対象ブロックを含んでいるか否かを調べる。判定方法は図１２のフローで保存したブロック名を使用し、先に読み込んだ回路再構成手段（３）の結果と比較すればよい。最適化可能なブロックが存在すれば図７の（ａ）から（ｂ）のように代入文だけをバッファに蓄積する。代入文以外は不要な部分とみなし、バッファには蓄積しない。最後にバッファを出力すれば最適化されたシミュレーション記述が完成する。
図１３のフローチャートに従い説明すると、シミュレーション装置が回路記述再構成手段（３）から出力されたＲＴＬ記述を一行読み込む（Ｓ５０１）。
【００６３】
シミュレーション装置は対象行が最終行か否かを判断する（Ｓ５１１）。
対象行が最終行ではないと判断した場合には、最適化手段（７）が前記Ｓ４２２で保存されたブロック名と対象行を含むブロックのブロック名を比較して最適化対象ブロックであるか否かを判断する（Ｓ５２１）。最適化対象ブロックでない場合にはバッファに対象行を蓄積し（Ｓ５４１）、Ｓ５０１に戻る。最適化対象ブロックである場合には最適化手段（７）は対象行が代入文であるか否かを判断する（Ｓ５３１）。対象行が代入文でない場合にはＳ５０１に戻る。対象行が代入文である場合にはＳ５４１に進む。
【００６４】
このように最適化できるブロックを抽出して１行化することで、入力の変数が更新した場合に対象行のみを処理する構成にすることができ、値の変更に係らない行について無駄な処理を実行する必要がなくなる。なお、１行化することは、１行のみの演算部からなるブロックを作成することも含む。
【００６５】
（その他の実施形態）
［順序回路検出手段］
前記第１の実施形態においては、使用者が事前にＲＴＬ記述中から順序回路記述のブロックに対して予め決められた文字列を挿入しておくことが必要であった。
ここでは、対象となる回路記述が順序回路記述か組合せ回路記述かをシミュレーション装置自身が記述内容に応じて判断し、順序回路記述に対して順序回路加工を施す構成について説明する。
【００６６】
順序回路記述は、リセットイベントとクロックイベントを切り分けるための条件分岐を必ず含む。したがって、この条件分岐により組合せ回路記述と順序回路記述を判別することができる。
【００６７】
図１４は順序回路検出手段のフローチャートである。
この順序回路検出手段の処理は、図９のシミュレーション装置の処理前に実行する。
シミュレーション装置がＲＴＬ記述を一行読み込む（Ｓ６０１）。
シミュレーション装置は対象行が最終行であるか否かを判断する（Ｓ６１１）。対象行が最終行であれば終了する。
【００６８】
対象行が最終行でなければ、順序回路検出手段は対象行がブロック開始か否かを判断する（Ｓ６２１）。ブロック開始でなければＳ６０１に戻る。
対象行がブロック開始であれば、順序回路検出手段は順序回路かどうかを示す変数である順序回路フラグに初期値のｆａｌｓｅを与える（Ｓ６２２）。
対象行がクロックイベント又はリセットイベントに関する条件文であるかどうかを調べる（Ｓ６２３）。クロックイベント又はリセットイベントに関する条件文であれば順序回路フラグにｔｒｕｅを与え（Ｓ６２４）、そうでなければ何もしない。
【００６９】
次に、ブロック終了を判断し（Ｓ６２５）、ブロック終了であればＳ６３０へ進み、そうでなければＳ６２６で次の一行を読み込む。
Ｓ６３０では順序回路フラグがｔｒｕｅか否かを判断し、ｔｒｕｅであれば対象ブロックを順序回路記述としてブロック名を記録する（Ｓ６３１）。ｆａｌｓｅであれば組合せ回路記述としてブロック名を記録する（Ｓ６３２）。
【００７０】
このように順序回路記述のブロックの名前を記録することで、図９のＳ１３１の処理が予め決められた文字列を含むか否かではなく、順序回路記述のブロック名であるか否かで判断することができ、ブロック名を使用者が決定する際に順序回路記述のとき指定された文字列を含ませる手間を回避することができる。
【００７１】
この順序回路検出手段は、順序回路記述のブロック開始だけでなくブロック終了までも識別することができるので、ＲＴＬ記述中の順序回路記述のブロック開始及びブロック終了を記録し、ＲＴＬ記述中順序回路記述のみを対象として順序回路加工することができ、大幅に処理に要する時間を短縮することができる。
【００７２】
［リセットイベント処理の残存］
前記第１の実施形態においてはブロックの順序回路記述中クロックイベント毎に代入処理等の演算処理を行うことなく、演算対象の変数が変動した場合にのみ処理する構成とし、シミュレーションの実行時間を改善した。順序回路加工ではクロックイベント検出部を削除するだけでなくリセット処理部も削除したが、リセット処理部を削除することなく残存させた順序回路記述とすることもできる。
【００７３】
ここでは前記［順序回路検出手段］と同様に処理対象領域をまずもって特定して処理を実行する構成を前提に説明する。第１の実施形態のようにＲＴＬ記述を一文毎に処理する構成であってもよい。
順序回路記述ブロックの開始と終了について前説［順序回路検出手段］で説明したので、ここでは説明を省略する。
【００７４】
順序回路記述ブロックは通常、リセットイベント処理とクロックイベント処理からなる（図１５（ｃ）参照）。リセットイベント処理はリセットイベント検出部及び演算部からなる（図１５（ｃ）参照）。クロックイベント処理はクロックイベント検出部及び演算部からなる（図１５（ｃ）参照）。
【００７５】
前記第１の実施形態においては、順序回路記述ブロック中、クロックイベント処理の演算部のみを抽出し、リセットイベント処理及びクロックイベント検出部は削除した。ここでは、リセットイベント処理も残存させ、削除しない。このようにした場合であっても、クロックイベント処理がクロックイベント毎に実行させるわけではなく、クロックイベントに比べて極めて少ないリセットイベント時にリセットイベント処理が実行されるだけであり、前記第１の実施形態と比べてもシミュレーション時間にそれ程の影響を与えることなく、リセットイベントにも対応することができるシミュレーションを実行することができる。なお、第１の実施形態では順序回路記述ブロックが図１５（ｃ）から図１５（ｄ）となるのに対し、本実施形態では順序回路記述ブロックが図１５（ｃ）から図１５（ｅ）となる。
【００７６】
順序回路検出手段にて順序回路記述ブロックを特定した後、リセットイベント処理及びクロックイベント処理の演算部を特定する。リセットイベント処理はリセットイベント検出部から特定することができる。具体的には、「if」文又は「elsif」文で且つ条件にクロックイベントの変数（真値）を有することから特定することができる。使用するハードウェア記述言語により特定するための条件は異なるが、当業者にとっては明らかである。クロックイベント処理の演算部の特定は第１の実施形態と同様である。
【００７７】
このようにして、順序回路記述を特定し（Ｓ７１０、図１５（ａ）参照）、順序回路記述ブロック中のリセットイベント処理及びクロックイベント処理の演算部を特定した後（Ｓ７２０、Ｓ７３０）、特定したリセットイベント処理及びクロックイベント処理の演算部を抽出し（Ｓ７４０）、順序回路記述ブロックを更新する。ＲＴＬ記述の全ての順序回路記述ブロックに対して同様に処理することで、シミュレーション記述を生成することができる。
【００７８】
ここで、リセットイベント検出部（「if」文）のみ順序回路記述ブロックに残存してしまうため、リセットイベントの度に（クロックイベント処理の）演算部も実行されてしまう。そこで、（クロックイベント処理の）演算部を「else」文で囲むことでリセットイベント時の（クロックイベント処理の）演算部の実行を回避することが望ましい。
なお、本実施形態では、加工すべき記述を特定し、特定した記述に対して加工を実行することでシミュレーション記述を得ているが、第１の実施形態も同様に得ることができる。
【００７９】
以上の前記各実施形態により本発明を説明したが、本発明の技術的範囲は実施形態に記載の範囲には限定されず、これら各実施形態に多様な変更又は改良を加えることが可能である。そして、かような変更又は改良を加えた実施の形態も本発明の技術的範囲に含まれる。このことは、特許請求の範囲及び課題を解決する手段からも明らかなことである。
【００８０】
上記各実施形態に関し、次の付記を記す。
（付記）
（付記１）  順序回路記述と組合せ回路記述とからなるＲＴＬ記述を順序回路記述と組合せ回路記述とに分離する回路分離手段と、順序回路記述を加工して組合せ回路記述に変換する順序回路加工手段と、ＲＴＬ記述から分離された組合せ回路記述と順序回路記述から変換した組合せ回路記述とから組合せ回路のみからなるシミュレーション記述を再構成する回路記述再構成手段とからなるハードウエア高速シミュレーション用モデル生成装置。
【００８１】
（付記２）  前記回路分離手段による順序回路記述と組合せ回路記述への回路分離前にＲＴＬ記述の回路記述の記述検査を行う回路記述検査手段を新たに含む前記付記１に記載のハードウエア高速シミュレーション用モデル生成装置。
【００８２】
（付記３）  順序回路加工手段を用いて順序回路記述を加工して組合せ回路記述に変換している過程又は変換した後、順序回路記述から変換された組合せ回路記述の演算式に対し遅延時間を付加する遅延時間付加手段を新たに含む前記付記１に記載のハードウエア高速シミュレーション用モデル生成装置。
【００８３】
（付記４）  回路記述再構成手段を用いて再構成されたシミュレーション記述の組合せ回路記述の中から条件文を含まない演算部からなる組合せ回路記述を同時信号処理代入文に変換する最適化手段を新たに含む前記付記１に記載のハードウエア高速シミュレーション用モデル生成装置。
【００８４】
（付記５）  前記回路分離手段による順序回路記述と組合せ回路記述への回路分離前にＲＴＬ記述の回路記述の中から順序回路記述を検出する順序回路検出手段を新たに含む前記付記１に記載のハードウエア高速シミュレーション用モデル生成装置。
【００８５】
（付記６）  前記付記１ないし４のいずれかに記載のハードウエア高速シミュレーション用モデル生成装置を含み、再構成されたシミュレーション記述を用いて、回路シミュレーションを実行するシミュレーション実行手段をさらに含むハードウエア高速シミュレーション装置。
【００８６】
（付記７）  プロセッサと記憶手段を具備するコンピュータを用いて、順序回路記述と組合せ回路記述とからなるＲＴＬ記述をシミュレーションに適したシミュレーション記述に変換するハードウエア高速シミュレーション用モデル生成方法であって、プロセッサは、クロックイベントをトリガとする処理を含む順序回路記述を特定するためのキーワードに基づき、ＲＴＬ記述の中から順序回路記述を特定するステップと、プロセッサは、特定した順序回路記述を、クロックイベントをトリガとする処理からクロック変数以外の入力変数の更新をトリガとする処理からなる組合せ回路記述へ変換するステップとを含むハードウエア高速シミュレーション用モデル生成方法。
【図面の簡単な説明】
【００８７】
【図１】順序回路記述の動作の説明図である。
【図２】本発明を適用前のＲＴＬ記述の一例である。
【図３】図２に本発明を適用した場合のシミュレーション記述の一例である。
【図４】一般的なＲＴＬモデルの構成である。
【図５】本発明に係るシミュレーション装置のブロック構成図である。
【図６】順序回路加工手段の作用の説明図である。
【図７】最適化された組合せ回路記述の説明図である。
【図８】本発明によって生成されたシミュレーション記述の構成である。
【図９】本発明の第１の実施形態に係るシミュレーション装置のフローチャートである。
【図１０】本発明の第１の実施形態に係る回路記述検査手段のフローチャートである。
【図１１】本発明の第１の実施形態に係る遅延付加手段の処理を付加したフローチャートである。
【図１２】本発明の第１の実施形態に係る最適化手段を実現するための前処理を付加したフローチャートである。
【図１３】本発明の第１の実施形態に係る最適化手段のフローチャートである。
【図１４】本発明のその他の実施形態に係る順序回路検出手段のフローチャートである。
【図１５】本発明のその他の実施形態に係るリセットイベント処理の残存処理並びにＲＴＬ記述の構成の説明図である。
【符号の説明】
【００８８】
（１）  回路分離手段
（２）  順序回路加工手段
（３）  回路再構成手段
（４）  シミュレーション手段
（５）  記述検査手段
（６）  遅延付加手段
（７）  最適化手段
（１ａ）  ＲＴＬモデル
（１ｂ）  組合せ回路記述
（１ｃ）  順序回路記述
（３ａ）  シミュレーション記述
【図１】
2008077330.tif 000003
【図２】
2008077330.tif 000004
【図３】
2008077330.tif 000005
【図４】
2008077330.tif 000006
【図５】
2008077330.tif 000007
【図６】
2008077330.tif 000008
【図７】
2008077330.tif 000009
【図８】
2008077330.tif 000010
【図９】
2008077330.tif 000011
【図１０】
2008077330.tif 000012
【図１１】
2008077330.tif 000013
【図１２】
2008077330.tif 000014
【図１３】
2008077330.tif 000015
【図１４】
2008077330.tif 000016
【図１５】
2008077330.tif 000017