(57)【要約】  ハードウェア（集積回路）の複数の設計モデルを製造する方法は、集積回路の設計のマスターモデルを、機能的にマスターモデルと同等である、互いに異なる抽象化レベルにある少なくとも第１及び第２のモデルに変換することを含み、上記第１及び第２のモデルのそれぞれは、その抽象化レベルに関して正確な集積回路タイミング情報を含む。
2009522652.tif 000002
【特許請求の範囲】
【請求項１】
集積回路の設計のモデルを生成する方法において、
集積回路の設計のマスターモデルを準備することと、
上記マスターモデルを、上記マスターモデルと機能的に等価でありかつ互いに異なる抽象化レベルにある少なくとも第１及び第２のモデルに変換することとを含み、
上記第１及び第２のモデルはそれぞれ、当該各モデルの各抽象化レベルに関して正確な上記設計のタイミング情報を含む方法。
【請求項２】
上記マスターモデルを第１のモデルに変換することは、合成ツールを用いることによりレジスタ転送レベルのモデルを生成することを含み、
上記マスターモデルを第２のモデルに変換することは、上記合成ツールを用いることにより、上記レジスタ転送モデルと機能的に等価であるトランザクションレベルのモデル又はサイクルアキュレートなモデルのうちの少なくとも一方を生成することを含む請求項１記載の方法。
【請求項３】
上記マスターモデルを第１のモデルに変換することは、合成ツールを用いることにより、上記設計のクロック周期間のステート毎の実行を指定するレジスタ転送レベルのモデルを生成することを含み、
上記マスターモデルを第２のモデルに変換することは、上記合成ツールを用いることにより、上記レジスタ転送モデルと機能的に等価であり、かつ上記設計のクロック周期間のステート毎の実行を指定しないトランザクションレベルのモデル又はサイクルアキュレートなモデルのうちの少なくとも一方を生成することを含む請求項１記載の方法。
【請求項４】
上記マスターモデルは上記設計の動作情報を含み、かつ上記設計のタイミング情報を含まない請求項１記載の方法。
【請求項５】
上記マスターモデルは上記設計の動作情報を含み、かつ上記設計のタイミング情報を含まず、
上記マスターモデルを第２のモデルに変換することは、合成ツールを用いることにより、上記設計のクロック周期間のスケジューリング情報を指定するレジスタ転送レベルのモデルを生成することを含み、
上記マスターモデルを第１のモデルに変換することは、上記合成ツールを用いることにより、上記レジスタ転送モデルと機能的に等価であり、かつ上記設計のクロック周期間のスケジューリング情報を指定しないトランザクションレベルのモデル又はサイクルアキュレートなモデルのうちのうちの少なくとも一方を生成することを含む請求項１記載の方法。
【請求項６】
上記マスターモデルを第１のモデルに変換することは、合成ツールを用いることにより、上記設計の所定の集積回路のクロック周期で出力部に送る値を指定しかつ上記設計の動作の間の上記設計のクロック周期間のスケジューリング論理を指定する上記設計の動作のレジスタ転送レベルのモデルを生成することを含み、
上記マスターモデルを第２のモデルに変換することは、上記合成ツールを用いることにより、上記レジスタ転送モデルのクロック周期間のシークエンシング論理を指定することなく上記動作の終わりで上記レジスタ転送モデルの出力部に送る値を指定する、トランザクションレベルのモデル又はサイクルアキュレートなモデルのうちの少なくとも一方を生成することを含む請求項１記載の方法。
【請求項７】
上記トランザクションレベルのモデルをシミュレーションツールに入力することと、
上記シミュレーションツールを用いることにより、上記トランザクションレベルのモデル上でソフトウェアを実行することをシミュレートすることをさらに含む請求項５記載の方法。
【請求項８】
上記トランザクションレベルのモデルをシミュレーションツールに入力することと、
上記シミュレーションツールを用いることにより、上記トランザクションレベルのモデル上でソフトウェアを実行することをシミュレートすることと、
上記レジスタ転送レベルのモデルを上記合成ツールに入力することと、
上記合成ツールを用いることにより、上記レジスタ転送レベルのモデルに基づいてゲートレベルのモデルを生成することをさらに含む請求項５記載の方法。
【請求項９】
上記マスターモデルは上記設計の動作情報を備え、かつ上記設計のタイミング情報を含まず、
上記マスターモデルを第１のモデルに変換することは、合成ツールを用いることにより、上記設計の所定のクロック周期で出力部に送る値を指定しかつ上記動作の間の上記設計のクロック周期間のスケジューリング論理を指定する上記設計のレジスタ転送レベルのモデルを生成することを含み、
上記マスターモデルを第２のモデルに変換することは、上記合成ツールを用いることにより、上記動作の間のクロック周期間のシークエンシング論理を指定することなく、上記レジスタ転送モデルの場合と同じクロック周期で上記動作の終わりで上記レジスタ転送モデルの出力部に送る値を指定する、トランザクションレベルのモデル又はサイクルアキュレートなモデルのうちの少なくとも一方を生成することを含む請求項１記載の方法。
【請求項１０】
上記マスターモデルを、上記マスターモデルと機能的に等価であって上記第１及び第２のモデルとは異なる抽象化レベルにあり、かつ当該各モデルの各抽象化レベルに関して正確な設計のタイミング情報を含む第３のモデルに変換することをさらに含む請求項１記載の方法。
【請求項１１】
上記マスターモデルを、上記マスターモデルと機能的に等価であって上記第１及び第２のモデルとは異なる抽象化レベルにあり、かつ当該各モデルの各抽象化レベルに関して正確な設計のタイミング情報を含む第３のモデルに変換することをさらに含み、
上記第１のモデルはレジスタ転送レベルのモデルを備え、
上記第２のモデルはサイクルアキュレートなモデルを備え、
上記第３のモデルはトランザクションレベルのモデルを備える請求項１記載の方法。
【請求項１２】
上記マスターモデルは上記設計のタイミング情報を含まない請求項１記載の方法。
【請求項１３】
上記マスターモデルは上記設計の部分的なタイミング情報を含む請求項１記載の方法。
【請求項１４】
上記マスターモデルを第１のモデルに変換することは、合成ツールを用いることにより、スケジューリングに用いられる少なくとも１つのレジスタと制御論理とを含むレジスタ転送レベルのモデルを生成することを含み、
上記マスターモデルを第２のモデルに変換することは、上記合成ツールを用いることにより、上記レジスタ転送モデルと機能的に等価であるトランザクションレベルのモデル又はサイクルアキュレートなモデルのうちの少なくとも一方を生成することを含み、
上記方法は、
上記マスターモデルをレジスタ転送モデルに変換するときに、上記スケジューリングに用いられる少なくとも１つのレジスタと上記制御論理とをマーキングすることと、
上記トランザクションレベルのモデル又はサイクルアキュレートなモデルのうちの少なくとも一方から、上記マーキングされた少なくとも１つのレジスタと制御論理とを省くこととをさらに含む請求項１記載の方法。
【請求項１５】
上記マスターモデルを第１のモデルに変換することは、合成ツールを用いることによりレジスタ転送レベルのモデルを生成することを含み、
上記マスターモデルを第２のモデルに変換することは、上記合成ツールを用いることにより、上記レジスタ転送モデルと機能的に等価であるトランザクションレベルのモデル又はサイクルアキュレートなモデルのうちの少なくとも一方を生成することを含み、
上記方法は、上記トランザクションレベルのモデル又はサイクルアキュレートなモデルのうちの少なくとも一方に上記設計の集積回路の電力、ノイズ又はタイミング情報のうちのうちの少なくとも１つを含む請求項１記載の方法。
【請求項１６】
請求項１記載の方法を実行するためのコードを記憶するコンピュータ読み取り可能な記憶媒体。
【請求項１７】
請求項１記載の方法を実行するようにプログラムされるコンピュータシステム。
【請求項１８】
ＣＰＵと、
記憶装置と、
上記ＣＰＵを上記記憶装置に接続するバスとを備えたコンピュータシステムにおいて、
上記記憶装置は上記ＣＰＵによって実行されるためのコードを記憶し、
上記コードは、
集積回路の設計のマスターモデルを準備することと、
上記マスターモデルを、上記マスターモデルと機能的に等価であって互いに異なる抽象化レベルにある少なくとも第１及び第２のモデルに変換することとを実行し、
上記第１及び第２のモデルはそれぞれ、当該各モデルの各抽象化レベルに関して正確な上記設計のタイミング情報を含むコンピュータシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に集積回路の設計に関し、より具体的には、集積回路を設計する間に異なる抽象化レベルの複数のモデルを用いることに関する。
【背景技術】
【０００２】
最新の回路設計は、コンピュータ及びコンピュータ支援設計（ＣＡＤ（computer aided design））技術を用いて集積回路（ＩＣ（integrated circuit））設計処理を自動化する電子設計自動化（electronic design automation）としばしば言われる、専門化された分野へと進化してきている。ＩＣの設計処理は、典型的には、製造されるべきハードウェア回路の入力／出力信号、機能性及びパフォーマンス特性を技術者が指定することによって開始される。過去において、集積回路の設計は、自動化されたデジタル合成ツールへの入力として用いられる、ＩＣデバイスの低レベルのレジスタ転送レベル（ＲＴＬ（Register Transfer Level））のモデルの生成を伴うことが多かった。より具体的には、ＲＴＬモデルは、入力される論理状態を受け入れてタイミング信号によって指定されるように保持する記憶素子（例えば、ラッチ、フリップフロップ、メモリワード）を指定する。タイミング信号は、例えば、クロックエッジ、クロック位相又はリセットであってもよい。転送とは、入力からレジスタ、レジスタからレジスタ及びレジスタから出力部への方程式及び／又は変換を指す。ＲＴＬの方程式及び変換には抽象化の範囲が存在していてもよいが、ＲＴＬは、ゲートレベルの設計とのサイクル毎、ステート毎の対応づけをもたらす。しかしながら、ＲＴＬモデルにおける全ての詳細なタイミング及び同期の情報は、当該ＲＴＬモデルのシミュレーション速度を比較的遅くさせる場合が多い。残念ながら、これにより、これらの情報は実際の入力によるシミュレーションの実行には適当ではない可能性がある。
【０００３】
代わりの方法の１つは、ハードウェアのエミュレータ上で設計のシミュレーションを実行することによって当該設計の試験を加速するというものである。エミュレータの実行速度は回路のコアルーチンを試験するには十分に速いことが多いが、それでもＩＣの設計上で実行されるように設計されたソフトウェアを試験するには遅すぎることがある。エミュレータを用いることに関わる別の問題点は、開発の状態にあるＩＣの設計をエミュレータ上で実行するためには、当該ＩＣの設計は完全に特定され、かつハードウェアに製造する準備が整っていなければならないことである。エミュレータは極めて高価であるので、企業によっては、エミュレーションの段階を飛ばして実際のチップを製造し、ソフトウェアをハードウェアの最大の速度で試験する。エミュレーションのコスト及びより完全なシミュレーションのために必要とされる時間の観点から、これらの企業は、試験、具体的にはソフトウェアの試験が短縮された場合でも、結果として得られるチップは適切に機能するだろうというリスクを取る。ハードウェアにさほど重大ではないバグがあるときには、ソフトウェアはＩＣを使用可能にするのに十分な程度に対処する場合がある。ソフトウェアを用いて対処するには重大過ぎるバグがあるときには、チップのハードウェアは変更を余儀なくされる場合があり、典型的には、時間的かつ金銭的にかなりのコストをかけて新しいチップを設計し直しかつ製造する必要がある。
【０００４】
より最近では、トランザクションレベルのモデル（ＴＬＭ（Transaction Level Model））に基づく設計方法が提案されている。製品の仕様又は重要なシステムパラメータを記述するシステムアーキテクチャモデルが生成される。システムアーキテクチャモデルは、トランザクションレベルのモデル（ＴＬＭ）へと精緻化される。トランザクションレベルのモデルは、合成及びソフトウェアの並列開発に適したＲＴＬモデルの開発に用いられる。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
一般に、ＩＣ設計の初期の手法は容認できるものであったが、その利用には欠点がある。例えば、ＩＣの設計の間は、ハードウェア及びソフトウェアの開発の整合性を改善する技術が必要とされている。本発明は、この必要性を満たすものである。
【課題を解決するための手段】
【０００６】
ある態様においては、１つのハードウェア設計の複数のモデルを生成する方法が提供されている。設計のマスターモデルは、当該マスターモデルと機能的に等価である少なくとも第１及び第２のモデルに変換される。第１及び第２のモデルの抽象化レベルは、互いに異なる。第１及び第２のモデルはそれぞれ、当該モデルの抽象化レベルに関して正確なタイミング情報を含む。
【発明を実施するための最良の形態】
【０００７】
以下の説明は、任意の当業者が、回路の単一のマスターモデルから集積回路ハードウェアの異なる抽象化レベルの複数のモデルを生成するための本発明の実施形態に係るシステム及び装置を作って用いることができるようにするように提示され、かつ特定のアプリケーション及びその必要条件のコンテキストにおいて提示されている。これらの好ましい実施形態に対する様々な変形は当業者にとって自明であり、本明細書において定義されている一般的な原理は、本発明の精神及び範囲を逸脱することなく他の実施形態及びアプリケーションに適用されてもよい。さらに、以下の説明における多くの詳細な事項は説明を目的として述べるものである。しかしながら、一般的な当業者の一人であれば、本発明はこれらの特定の詳細な事項を用いることなく実施される可能性もあることが認識されるであろう。他の例では、不必要な詳細説明によって本発明の記述が分かりにくくならないように、周知の構造及びデバイスはブロック図の形式で示されている。従って、本発明は、示されている実施形態に限定されるように意図されたものではなく、本明細書に記述している原理及び特徴に一致する最も広範な範囲を与えられるべきものである。
【０００８】
本発明の一実施形態によれば、マスターモデルを用いることによって、それぞれが異なる抽象化レベルにある複数のハードウェアモデルが生成される。本明細書で用いているように、「マスターモデル」は所望のデバイスの動作の決定的な（definitive）記述を指す。マスターモデルは、コンピュータプログラムのセットを用いることによって他のモデルを得るためのソースモデルとして機能する。本明細書で用いているように、より一般的な「モデル」という用語は、所望のデバイスの動作の任意の代表物を、即ち実際のデバイス以外の何らかの形式で記述するために用いられる。マスターモデルは、少なくとも入力、出力及びこれらの間の少なくとも１つの機能を指定する。マスターモデルはまた、完全なタイミング情報を含んでもよく、部分的なタイミング情報を含んでもよく、タイミング情報を全く含まなくてもよい。
【０００９】
生成される複数のモデルはマスターモデルと機能的に等価であり、よって、互いに機能的に等価である。機能的に等価であるという表現は、これらの得られたモデルが、正当なシーケンスである任意の入力を受け取ると、マスターモデルと同じ出力シーケンスを生成することを意味する。なお、得られたモデルが、デバイスの任意の使用において発生し得ないシーケンスである入力シーケンスを受け取ったときに、マスターモデルとは異なる動作をしたとしても、当該得られたモデルがマスターモデルと機能的に等価であると言うことは自由である。ある実施形態では、生成されるモデルは、サイクルアキュレート（cycle accurate）なモデルと、トランザクションアキュレート（transaction accurate）なモデルとを含む。サイクルアキュレートなモデルは、マスターモデルの実施の各クロック周期(クロックサイクル)の間、又はより具体的にはクロックエッジにおいて発生する計算又はアクティビティを正確に指定する。本明細書における目的に沿って、機能性は入力と出力との間で定義されるが、アクティビティはハードウェアにおいて実施される、例えば当該機能を実施するために必要な加算等の演算を指す。トランザクションアキュレートなモデルは、マスターモデルの実施に含まれるトランザクションのクロックタイミングを正確に指定する。
【００１０】
本明細書で用いているように、「トランザクション」は完全な相互作用である。例えば、トランザクションは、メモリからの単語の取り出し（フェッチ）又はビデオフレームのその圧縮形式からの復号もしくはマシン命令の実行である可能性もある。トランザクションは、典型的には、例えば実行されるために、幾つかの（２〜２０の）クロック周期を必要とする。ユーザは、デバイスのモデリングにおいて意味をなす様々なトランザクションの複雑さのレベルを、かなり自由に定義できる。基本概念は、デバイスが実行する完全に基本的かつ最低レベルの作業より遙かに高いレベルであり、但しデバイス全体であるほど高くはないレベルの演算をユーザがトランザクションとして定義することにある。トランザクションレベルでの正確なモデルの実行を調べるときに、トランザクションの開始前とトランザクション完了後のデバイスのステートを見ることはできる。しかしながら、典型的には、そのトランザクションのパフォーマンスを構成する様々なステップが可視化されることはない。具体的には、実行するために６クロック周期を必要とするトランザクションを仮定すると、トランザクションの開始後３サイクルのモデルのステートを調べても演算が進行中であるという証拠は示されない。代わりに、６番目のサイクルにおいて、このモデルは完全に形成された回答を出す。従って、トランザクションレベルのモデルは、実際のデバイスが実行するはずの各ステップを辿る必要なしにトランザクションの最終結果を迅速に計算することができ、よってこのモデルは、一度に１つの事柄しか実行できないコンピュータ上で実行されると、より忠実なモデルより遙かに迅速にトランザクションを実行する。
【００１１】
サイクルアキュレートなモデルは、トランザクションアキュレートなモデルより抽象化レベルは低い。通常、サイクルアキュレートなモデルは、マスターモデルにおける各機能の実現に含まれる計算及びアクティビティを、設計におけるあらゆるレジスタ又は記憶素子がシミュレーションの一つ一つのクロックエッジにおいて実際のデバイスが有するものと同じ値を有するような方法で記述する。しかしながら、クロック周期間で進行する中間の計算は、より速いシミュレーションの観点から取り除かれる。トランザクションレベルのモデルの場合と同様に、全てのレジスタの新規の値は各クロックエッジで現れるが、クロック周期の中でどの値がより早く計算され、どの値がより遅く計算されたかを発見する方法はない。
【００１２】
別のモデリングレベルは、レジスタ転送レベル又はレジスタ転送及び／又はトランジスタレベルであるが、この場合は、あらゆる演算の実行順序、従って完全なタイミングが指定される。これに対して、トランザクションアキュレートなモデルは、マスターモデルに基づいて、トランジスタレベルの計算等のより低い抽象化レベルの演算を詳述することなく、かつハードウェアデバイスを実施するために用いられる、例えばレジスタ転送等の詳細なスケジューリングインフラを指定することなく、典型的にはデータの計算及びデータフローを記述する。代わりに、トランザクションアキュレートなモデルは、各トランザクションの実施に用いられるクロック周期を指定し、任意の入力を与えられたときの正しい出力の計算に用いられるコードも含む。基本的には、トランザクションアキュレートなモデルは、マスターモデルの各機能の実現に含まれる計算及びアクティビティを、記述のサイズをより小さくしシミュレーションの速度を速くするように、グループにまとめた形式で記述する。
【００１３】
図１は、単一の入力モデルを用いて異なる抽象化レベルの複数の等価なモデルを生成する処理１００を示す例示的なフロー図である。高レベルのハードウェア記述言語で記述される入力モデル１０２は、モデル変換システムとして機能する合成ツール１０４に提供され、合成ツール１０４は異なる抽象化レベルの２つのモデルを生成する。生成される第１のモデル１０６は、トランザクションが正確な抽象化レベルにある。生成される第２のモデル１０８は、サイクルが正確な抽象化レベルにある。これらの２つのモデルは、両モデルが同一である境界では、これらが同一の正当な入力シーケンスが与えられると同じ結果を生成するという点で、機能的に等価である。「両モデルが同一である境界」という修飾語句は、サイクルアキュレートなモデルが任意のクロックエッジ（例えば、真夜中直後）においてＲＴＬモデルと比較され得ることを意味する。サイクルアキュレートなモデルは、当該モデルがクロック周期の中間（例えば、午前８時３３分）にあるときにはＲＴＬモデルと比較され得ない。トランザクションレベルのモデルは、トランザクションが完了したクロックエッジの直後にのみサイクルアキュレートなモデル及びＲＴＬレベルモデルと比較され得る。
【００１４】
ある実施形態では、合成ツール１０４は、高い抽象化レベルの入力モデル１０２を２つ（又はそれ以上）の低い抽象化レベルのモデル１０６、１０８に変換するようにプログラムされたコンピュータシステムを備える。モデル変換システム１０４によって実行される機能は、入力されるマスターモデル１０２の構文を読んで、記述が指定する機能の意味論（semantics）を表すモデルデータ構造を構築するためのパーサ機能を含む。
【００１５】
モデル１０２、１０６及び１０８は、これらのモデルにより表現されるハードウェアの動作をシミュレートする（図示されない）シミュレーションツールに入力されてもよい。一般に、モデルが詳細であるほど、当該モデルを用いてシミュレーションを実行するために必要とされる時間は長くなる。従って、入力モデル１０２を実行するシミュレーションツールはハードウェアのパフォーマンスを、典型的には、トランザクションアキュレートなモデル１０６より速く、但しより小さい詳細度でシミュレートする。同様に、トランザクションアキュレートなモデル１０６を実行するシミュレーションツールはハードウェアのパフォーマンスを、通常、サイクルアキュレートなモデル１０８より速く、但しより小さい詳細度でシミュレートする。
【００１６】
入力マスターモデル１０２を用いるシミュレーション（図示されていない処理）の間、シミュレーションは正しい結果を計算する。例えば、設計が計算機に関するものであると仮定すると、設計（ＴＬＭ、ＣＡ又はＲＴＬを用いることを問わず）のシミュレーションは、「３を押す」「＋を押す」「２を押す」「７を押す」「＝を押す」という入力シーケンスが提供されると、３０を生成する。しかしながら、入力マスターモデル１０２自体は時間の概念を含まない。結果は、それが要求するや否や用意されている。言い替えれば、入力マスターモデル１０２は、機能を実施するときに含まれるアクション又は計算をクロック周期又はクロックエッジに関連付ける情報を含まない。従って、入力マスターモデル１０２を用いるシミュレーションは、アクション又は計算をクロックタイミングに対応づけない結果を生成する。
【００１７】
トランザクションアキュレートなモデル１０６を用いる（図示されていない）シミュレーションの間、シミュレーションは正しい結果を計算する。結果は、トランザクションアキュレートなモデル１０６に係るシミュレーションの間に当該結果が生成されるクロック周期に関連づけられる。しかしながら、中間のステート及び複数の内部（internals）は、トランザクションレベルのモデルの一部ではないので生成されない。従って、例えば、トランザクションアキュレートなモデルのシミュレーションを２つのクロックエッジの間で停止して、様々なメモリ素子の全てにおける値を調べると、これらの値は同じ瞬間にＲＴＬモデルにおいて、又は実際のデバイスにおいて発見されるはずの値と必ずしも同じではない。
【００１８】
図示されていないサイクルアキュレートなモデル１０８を用いるシミュレーションの間、シミュレーションは正しい結果を計算する。サイクルアキュレートなモデル１０８は、時間の概念を含む。結果は、サイクルアキュレートなモデル１０８に係るシミュレーションの間に当該結果が生成されるクロック周期に関連づけられる。さらに、中間のステート及び内部も正確に生成される。
【００１９】
再び図１を参照すると、トランザクションアキュレートなモデル１０６は、ソフトウェアの開発を目的としてハードウェアのパフォーマンスのシミュレーションに用いるためにソフトウェア開発チーム１１０に提供されてもよい。言い替えれば、トランザクションアキュレートなモデル１０６は、モデリングされるハードウェア上でのソフトウェアの実行をシミュレートするのに十分な抽象化レベルでハードウェアの動作をシミュレートすることのできる（図示されていない）シミュレーションツールに入力されることが可能である。このようにして、ソフトウェアの開発者は、モデリングされるハードウェアのためのソフトウェアを、当該ハードウェアがいまだ開発中であって、実際のハードウェア設計が完成してシリコン内に固定される遙か以前に開発することができる。トランザクションアキュレートなモデル１０６は、実際のデバイス上で実行されるときに得られると思われるデバイスのビューと全く同じビューをソフトウェアの設計者に提供するので、当該モデルのタイミング分解能のレベルはこのソフトウェア開発の目的には適切である。ソフトウェアの設計者は、シミュレーション上で実際のデバイス上とは異なって動作するプログラムを書くことができない。ソフトウェアの開発者は、デバイスにおけるメモリ値をクロックエッジの間において決定することができず、従って、異なる２つのシミュレーション間で、又はシミュレーションと実際のものとの間でこれらが完全に正確なものであるかどうかを言い当てることはできない。設計者は、実際のものはシミュレーションより遙かに高速で実行されること、及びＲＴＬシミュレーションは遅すぎて使用不可であることに気づく。よって、設計者は実際の装置（まだ構築されていない！）を有することができないので、得ることができる最速のモデルを選定する。従って、（図示されていない）ハードウェア開発チームは、ソフトウェア開発チーム１１０と並行して作業することにより開発中のハードウェアの設計を精緻化できる。
【００２０】
生成されるモデル１０６と１０８との間には、正確な対応付けが存在する。例えば、シミュレーションの実行中にその情報が提供されるトランザクションアキュレートなモデル１０６による各アクションに関して、サイクルアキュレートなモデル１０８において、シミュレーションの実行の間にアクション間のタイミング情報が２つのシミュレーションのそれぞれで同一であるようにアクションが存在する。トランザクションアキュレートなモデル１０６及びサイクルアキュレートなモデル１０８の機能性及びタイミングの等価性は、本発明の一実施形態により、両方のモデルを同時に構築することによって達成される。過去の実践は、ユーザが詳細な１秒毎の動作仕様（ＲＴＬモデル）を「マスターモデル」として構築するためのものであった。確かに、ＲＴＬモデルはチップを製造するために必要とされる。ユーザがモデルを１つしか持つことができないとすれば、ＲＴＬモデルは持つべきその１つのモデルであろう。しかしながら、設計チームがチップ製造より前にチップ上で用いられるべきソフトウェアを実行しかつ試験する何らかの現実的な機会を得るとすれば、最新のＩＣを設計するという課題は、より高速な抽象化モデルの生成を命じる。ＲＴＬ設計のシミュレーションは、実際に用いるには遅すぎる。１つの可能なアプローチは、ＲＴＬモデルを読み取り、不要な詳細部分を自動的に抽出して取り除き、このソースからサイクルベースのモデル又はトランザクションレベルのモデルを構築することのできるシステムの生成を試みることである。これは、紙上に記述することは容易であるが、重要なアルゴリズムデータ又は単なるスケジューリングデータを保持するために特定のレジスタが用いられているかどうかを決定できるシステムを実際に構築することは、特にＲＴＬプログラムの複数のクリエイタが、全員がそれぞれ独自の書き方のスタイルを有する個々人の集合である場合には極めて困難である。
【００２１】
代わりに、ユーザに対して高レベルのモデル（例えば、ＴＬＭ）を指定するように要求し、人によるガイド（パイプラインの段数等）に基づいてより低レベルの表現（例えば、ＲＴＬモデル）を構築するアルゴリズムを組み込むツールに当該高レベルのモデルを与え、当該ツールがこれを実施するときにこのようなスケジューリングを目的として挿入するレジスタ及び制御論理をマーキングすれば、この処理の終わりで、当該ツールはまた、
このスケジューリング装置が省かれかつ選択されたパイプラインの段数のみをトランザクションの長さとして含む設計を出すことができる。
【００２２】
トランザクションアキュレートなモデル１０６とサイクルアキュレートなモデル１０８との間の等価性は、これらの構造の特徴として保持される。ツールは、その入力からＲＴＬモデルを構築し、シークエンシング論理を導入し、その導入のときにこの導入された論理をマーキングする。次にツールは、段内のシークエンシング論理なしに、但しＲＴＬモデルにおいて導入した段間のシークエンシング論理を用いてサイクルアキュレートなモデルを構築する。次にツールは、導入されたシークエンシング論理なしに、単にＲＴＬ論理において各動作を実行するために発生するサイクルの値のみでトランザクションレベルのモデルを構築する。
【００２３】
サイクルアキュレートなモデル１０６は、十分にシミュレートされかつ試験されると合成ツール１１２へ提供される。合成ツール１１２は、ゲートレベルの出力モデル１１４を生成する。ゲートレベルの出力モデル１１４は、実際のハードウェア集積回路１１６の生成に用いられる。本設計開発処理には、本明細書に記述している本発明の原理に密接に関連していないことから図示されていない追加のステップが存在する場合のあることは認識されるであろう。一方で、ソフトウェア開発チーム１１０はハードウェアの開発努力と並行して作業し、集積回路１１６上で実行されるソフトウェア１１８を生成することに忙しくしているかもしれない。
【００２４】
従って、ある実施形態では、入力マスターモデル１０２は開発中の集積回路ハードウェアの機能性を、各機能の中間ステップのタイミングを指定することなく記述する。最低でも、マスターモデルは、入力と、出力と、両者間の機能とを指定する。マスターモデルは、システムＣ（ＳｙｓｔｅｍＣ）等の超高レベルの記述言語で記述されてもよい。このような高レベル言語の最低の必要条件は、有限の量のメモリを用いて入力と出力との間の機能を構成する全ての可能な演算（例えば、加算、減算、除算、メモリからの取り出し等）を指定する能力があることにある。また、この言語は、同時のタイミング又は因果関係等の動作に関する追加の情報を提供してもよい。
【００２５】
ある好ましい実施形態では、合成ツール１０４は、
（１）入力モデルに記述されている機能性を、ＩＥＥＥ１３６４．１  Ｖｅｒｉｌｏｇ及び／又はＩＥＥＥ１０７６．６ＶＨＤＬ等の標準のハードウェア記述言語の正確なフォーマットにマッピングするレジスタ転送レベルのモデル１０８と、
（２）システムＣ言語のサイクルアキュレートなモデル１２０と、
（３）システムＣ言語のトランザクションアキュレートなモデル１０６とを生成する。
【００２６】
レジスタ転送レベルのモデルは、各内部クロックエッジ間で実行されるアクティビティの全ての詳細な仕様を含む。内部クロックエッジの所定のセット内でどのアクティビティが発生すべきかの決定は、合成ツール１０４により、例えばこれらのアクティビティの実施に用いられるリソースを割り当て、当該リソースがこれらのアクティビティを実行するために要する時間を分析し、次にこれらのアクティビティを使用可能なクロック間隔に接続することによってもたらされる。サイクルアキュレートなモデルは、各機能の実行に必要な計算を、当該計算が各クロックエッジ間に正しく配置された状態で記述するが、当該計算を抽象レベルにおいて記述する（故にシミュレート速度がより速い）。トランザクションアキュレートなモデル１２０は、各機能の実行に必要な計算を、全てグループまとめて、かつＲＴＬ及びサイクルが正確な記述において当該機能が完了する最後のサイクルにおいて実行されるようにスケジューリングされる。ここで、中間結果は入手不可である。
【００２７】
生成される全てのモデル１０６、１０８及び１２０は入力と出力との間に同じ機能を保持し、入力から値を読み取る又は出力へ値を書き込むアクティビティ間のクロック周期におけるタイミングも保持する。入力と出力との間の機能を指定するサイクルアキュレートなモデル１２０は、入力と出力との間の機能を設計又は試験する場合に最もよく適する。ＲＴＬモデル１０８は、ハードウェアの実装に最もよく適する。トランザクションアキュレートなモデル１０６は、このハードウェア又は設計及び試験を完了するために必要な入力と出力との間の機能及びタイミング情報が必要である、ソフトウェア等のシステム内の他の構成要素を含むシステムを設計又は試験する場合に最もよく適する。
【００２８】
実施例．
以下は、入力マスターモデルのコードの例及び当該入力マスターモデルのＲＴＬモデルのコード及びトランザクションアキュレートなモデルのコードへの変換である。
【００２９】
図１の入力マスターモデル１０２に対応する下記の入力マスターモデルのコード例について考察する。
【００３０】
【表１】
2009522652.tif 000003
【００３１】
このコードは、加算器を記述している。ＥＮＡＢＬＥが真であり、かつ命令コード（opcode）が値ＡＤＤを有している時には常に、システムは入力ポートｉｎ１及び入力ポートｉｎ２上の値の和を計算し、結果を出力ポートＯＵＴに出力する。このコードには時間の仕様は存在せず、動作仕様のみが存在する。
【００３２】
この仕様と一致する動作の可能な実施例は、多く存在する。異なる実施例は、別の実施例より迅速に動作を実行し、又はより少ない電力を用いて計算し（バッテリの寿命の向上）、又は最終チップにおいてより少ない面積を消費する（他のより高頻度の動作の実行を高速化するために用いられるスペースを確保する）可能性もある。本発明を実施するツールのユーザは、典型的には、幾つかの全体的なコスト関数を最適化することに基づいて、この機能の多くの可能な実施例のうちの１つを選択できるようにするツールに対して、入力マスターモデルにおける２つのアクション間の最悪の場合の遅延又は実装に用いることができるハードウェアリソースの素子の制限等の制約を設ける。
【００３３】
下記は、図１の合成ツール１０４を用いて上述のマスターモデルの回路のコードから生成されてもよいレジスタ転送レベル（ＲＴＬ）フォーマットのコードの実施例を示す。動作に関するこのより詳細なＲＴＬ仕様は、典型的には、シミュレートに上述の元の仕様よりも１桁から２桁多い追加の時間を必要とすることは留意されるべきである。より遅いシミュレーション速度の理由は、このＲＴＬモデルのコードが、ハードウェアリソースのタイミング特性、ハードウェア実装の構成情報等のシミュレータにおいて処理されるべき情報を上述の元のコード仕様である入力マスターモデルコードより遙かに多く含んでいることにある。当然ながら、回路を正しく製造するためには追加の詳細な事項も重要であるが、これは、何らかのシステム（本明細書に記述しているシステム及び方法等）がソフトウェアの観点から両者の等価性を保証している限り、ソフトウェアの試験には不要である。
【００３４】
【表２】
2009522652.tif 000004
【００３５】
上述のＲＴＬモデルは、高レベルのモデルで表現されるような単純な関数を有し、如何なるときも、ＥＮＡＢＬＥ信号及び命令コードＡＤＤを見れば、さらなる詳細へと拡張される２つの入力の和を計算する。これで、第１のクロック周期上での入力の収集、第２のサイクル上での結果の計算及び第３のサイクル上での結果の出力を編成する４ステートのステートマシンが存在する。なお、この４ステートの処理（３ステート又は５ステート処理ではなく）を生成する決定は任意であり、当該決定は、残りの回路の複雑さ、利用可能なリソース及び合成の実行が開始された時点でユーザにより提示される全体的な目的に基づいて下される。
【００３６】
この記述が与えられると、周知の技術を用いてゲートレベルのモデルを生成することができる。この記述が与えられると、時にはこのＡＤＤ命令を要求するソフトウェアの実行をシミュレートすることができる。言い替えれば、ＲＴＬモデルを表現するこの記述をソフトウェアプログラムとして実行することができる。しかしながら、ＲＴＬによるゲートレベルのモデルへの変換に必要とされる処理の詳細なステップ毎の記述は、ソフトウェアの正しい動作を試験する必要以上の詳細な事項を有する。その結果、このモデルのシミュレーション速度は、この詳細な事項を排除すれば可能になる速度ほど速くはならない。元のモデルは時間の指示を保有せず、よって、ソフトウェアを試験できるほど詳述されていない。
【００３７】
基本的に、この種のソフトウェアを開発するためには、ハードウェアがその出力部にどの時点（クロック周期）でどのような値を送るかを知る必要があるが、このような値を出力部に送るためにハードウェアがどのように内部に実装されるかは、「詳細なアクティビティ」が当該ハードウェアに関連していれば知る必要はない。従って、実装用に選択されているタイミングの仕様を含むがモデルのステート毎の実行に関する詳細な仕様を省いた中間モデルに対するニーズが存在する。
【００３８】
下記は、図１の合成ツール１０４を用いて上述の入力マスターモデルの回路のコードから生成されてもよいトランザクションアキュレートなモデルのコードの実施例を示す。トランザクションアキュレートなモデルのコードの実施例は、ソフトウェアチーム１１０に、より高速でシミュレートし、しかも必要な全てのタイミングの詳細事項を含むモデルを提供することができる。具体的には、トランザクションアキュレートなモデルはこのようなソフトウェアの開発に必要なタイミング情報、即ちハードウェアの入力部と出力部との間のタイミング情報を保持し、入力及び出力機能において見ることのできないハードウェア内部のタイミング情報を取り除く。
【００３９】
【表３】
2009522652.tif 000005
【００４０】
上述のモデルは、ほぼ元のモデルの速度でシミュレートするが、今回は正しい時間概念を含む。言い替えれば、トランザクションアキュレートなモデルコードの抽象化レベルは元の入力マスターモデルコードのそれに極めて近く、即ち、唯一の相違点は入力と出力との間の追加のタイミング情報であるが、今回は正しい時間概念を含む。ポートＯＵＴは、ｅｎａｂｌｅが真であってかつ命令コードが値ＡＤＤを保持した後３サイクルまで、ＩＮ１及びＩＮ２の値を取得しない。データは命令要求後のサイクルでサンプリングされ、同じく、選択されるＲＴＬ記述のソフトウェア可視効果が保持される。出力値が１サイクルに渡ってキャッシュされるという事実は、ソフトウェア可視でないことから取り除かれる。実行を編成するステートマシンは、ソフトウェア可視でないので除外される。
【００４１】
入力マスターモデルとＲＴＬとの間には、例えば下記のような多くの可能な抽象化レベルが存在することは認識されるであろう。
（Ａ）入力と出力との間の機能、
（Ｂ）入力と出力との間の機能、及びＲＴＬモデルにおいて実行されるような入力と出力との間のタイミング情報（クロック周期における）、
（Ｃ）入力と出力との間の機能、及びタイミング情報（クロック周期における）、及びＲＴＬモデルにおいて各クロック周期内で実行されるアクティビティ、又は、
（Ｄ）ＲＴＬモデル。
【００４２】
また、（Ｂ）と（Ｄ）との間に複数の抽象化レベルを、２つの大きさ、即ちイベントの細分性（入力、出力、クロックエッジ等）及び構造に関する細分性（ビット、レジスタ等）、に関して考案することができる。さらに、注釈を付される情報の種類はタイミングに限定されなくてもよく、電力、ノイズ等の制約を含んでもよい。
【００４３】
図２は、本発明の一実施形態による図１のシステム及び方法を実装するようにプログラムされることが可能である例示的なコンピュータシステム２００を示す略図である。コンピュータシステム２００は、１つ又は複数の中央処理装置（ＣＰＵ）２０２と、ユーザインタフェース２０４と、コンピュータ読み取り可能な記憶媒体２０６と、システムバス２０８と、上記ＣＰＵ、ユーザインタフェース、メモリ及びシステムバスをまとめて接続するための１つ又は複数のバスインタフェースとを含む。本コンピュータシステムはまた、コンピュータネットワーク上で他の複数の装置２１２と通信するためのネットワークインタフェース２１０を含む。
【００４４】
図１のコンピュータ読み取り可能な入力マスターモデル１０２は、バス２０８を介してインタフェース２０４、記憶装置２０６又は他の複数の装置２１２から、ＣＰＵ２０２上の記憶装置２０６から実行される合成ツールまで提供されてもよい。このツールは、入力モデルを図１のトランザクションアキュレートなモデル及びサイクルアキュレートなモデル及びＲＴＬモデルに変換する。
【００４５】
本明細書では本発明を様々な例示的特徴、態様及び実施形態を参照して説明してきたが、本発明は変形、修正及び具体的に示しかつ説明したもの以外の他の実施形態を包含し得ることは認識されるであろう。従って、本発明は、このような代替的変形、修正及び他の実施形態を全て添付の請求の範囲に記載されているその精神及び範囲内に包含するものとして広範に解釈されかつ理解されるべきである。
【図面の簡単な説明】
【００４６】
【図１】単一の入力モデルを用いて異なる抽象化レベルの複数の等価モデルを生成する処理を示す例示的なフロー図である。
【図２】本発明の一実施形態による、図１の新規の変換システムを実装するようにプログラムされることが可能である例示的なコンピュータシステムを示す略図である。
【図１】
2009522652.tif 000006
【図２】
2009522652.tif 000007
【手続補正書】
【提出日】平成20年9月9日(2008.9.9)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
集積回路の設計のモデルを生成する方法において、
集積回路の上記設計のマスターモデルを準備することと、
上記マスターモデルを、上記マスターモデルと機能的に等価でありかつ互いに異なる抽象化レベルにある少なくとも１つの第１のモデル及び１つの第２のモデルに変換することとを含み、
上記第１及び上記第２のモデルはそれぞれ、当該各モデルの各抽象化レベルに関して正確な上記設計のタイミング情報を含み、
上記マスターモデルを第１のモデルに上記変換することは、合成ツールを用いることにより、スケジューリングに用いられる少なくとも１つのレジスタと制御論理とを含むレジスタ転送レベルのモデルを生成することを含み、
上記マスターモデルを第２のモデルに上記変換することは、上記合成ツールを用いることにより、上記レジスタ転送モデルと機能的に等価であるトランザクションレベルのモデル又はサイクルアキュレートなモデルのうちの少なくとも一方を生成することを含み、
上記方法は、
上記マスターモデルをレジスタ転送レベルのモデルに変換するときに、上記スケジューリングに用いられる少なくとも１つのレジスタと上記制御論理とをマーキングすることと、
上記トランザクションレベルのモデル又はサイクルアキュレートなモデルのうちの少なくとも一方から、上記マーキングされた少なくとも１つのレジスタと制御論理とを省くこととをさらに含む方法。
【請求項２】
上記マスターモデルを第１のモデルに上記変換することは、合成ツールを用いることにより、上記設計のクロック周期間のステート毎の実行を指定するレジスタ転送レベルのモデルを生成することを含み、
上記マスターモデルを第２のモデルに上記変換することは、上記合成ツールを用いることにより、上記レジスタ転送レベルのモデルと機能的に等価であり、かつ上記設計のクロック周期間のステート毎の実行を指定しないトランザクションレベルのモデル又はサイクルアキュレートなモデルのうちの少なくとも一方を生成することを含む請求項１記載の方法。
【請求項３】
上記マスターモデルは上記設計の動作情報を含み、かつ上記設計のタイミング情報を含まない請求項１記載の方法。
【請求項４】
上記マスターモデルは上記設計の動作情報を含み、かつ上記設計のタイミング情報を含まず、
上記マスターモデルを第１のモデルに上記変換することは、合成ツールを用いることにより、上記設計のクロック周期間のスケジューリング情報を指定するレジスタ転送レベルのモデルを生成することを含み、
上記マスターモデルを第２のモデルに上記変換することは、上記合成ツールを用いることにより、上記レジスタ転送レベルのモデルと機能的に等価であり、かつ上記設計のクロック周期間のスケジューリング情報を指定しないトランザクションレベルのモデル又はサイクルアキュレートなモデルのうちのうちの少なくとも一方を生成することを含む請求項１記載の方法。
【請求項５】
集積回路の設計のモデルを生成する方法において、
集積回路の設計のマスターモデルを準備することと、
合成ツールを用いて上記マスターモデルを第１のモデルに変換することにより、上記設計の少なくとも１つの所定の集積回路のクロック周期で出力部に送る値を指定しかつ上記少なくとも１つのクロック周期の間に動作可能なスケジューリング論理を指定する上記設計のレジスタ転送レベルのモデルを生成することと、
上記合成ツール及び上記生成されたレジスタ転送レベルのモデルを用いて上記マスターモデルを第２のモデルに変換することにより、上記少なくとも１つのクロック周期で上記レジスタ転送モデルの上記出力部に送る上記値と同じ値を指定し、かつ上記指定されたスケジューリング論理を省くトランザクションレベルのモデル又はサイクルアキュレートなモデルのうちの少なくとも一方を生成することとを含む方法。
【請求項６】
上記トランザクションレベルのモデルの上記サイクルアキュレートなモデルのうちの少なくとも１つをシミュレーションツールに入力することと、
上記シミュレーションツールを用いることにより、上記入力されたモデル上でソフトウェアを実行することをシミュレートすることをさらに含む請求項５記載の方法。
【請求項７】
上記トランザクションレベルのモデルをシミュレーションツールに入力することと、
上記シミュレーションツールの上記サイクルアキュレートなモデルのうちの少なくとも１つを用いることにより、上記トランザクションレベルのモデル上でソフトウェアを実行することをシミュレートすることと、
上記レジスタ転送レベルのモデルを上記合成ツールに入力することと、
上記合成ツールを用いることにより、上記レジスタ転送レベルのモデルに基づいてゲートレベルのモデルを生成することをさらに含む請求項５記載の方法。
【請求項８】
上記マスターモデルは上記設計の動作情報を備え、かつ上記設計のタイミング情報を含まない請求項５記載の方法。
【請求項９】
上記合成ツールを用いることにより、上記マスターモデルを、上記マスターモデルと機能的に等価であって上記第１及び第２のモデルとは異なる抽象化レベルにあり、かつ当該各モデルの抽象化レベルに関して正確な設計のタイミング情報を含む第３のモデルに変換することをさらに含む請求項１記載の方法。
【請求項１０】
上記合成ツールを用いることにより、上記マスターモデルを、上記マスターモデルと機能的に等価であって上記第１及び第２のモデルとは異なる抽象化レベルにあり、かつ当該各モデルの抽象化レベルに関して正確な設計のタイミング情報を含む第３のモデルに変換することをさらに含み、
上記第１のモデルはレジスタ転送レベルのモデルを備え、
上記第２のモデルはサイクルアキュレートなモデルを備え、
上記第３のモデルはトランザクションレベルのモデルを備える請求項５記載の方法。
【請求項１１】
上記マスターモデルは上記設計のタイミング情報を含まない請求項１記載の方法。
【請求項１２】
上記マスターモデルは上記設計の部分的なタイミング情報を含む請求項１記載の方法。
【請求項１３】
上記マスターモデルを第２のモデルに上記変換することは、上記合成ツールを用いることにより、上記レジスタ転送モデルと機能的に等価であり、上記設計の集積回路の電力、ノイズ又はタイミング情報のうちのうちの少なくとも１つを含む、トランザクションレベルのモデル又はサイクルアキュレートなモデルのうちの少なくとも一方を生成することを含む請求項１記載の方法。
【請求項１４】
請求項１記載の方法を実行するためのコードを記憶するコンピュータ読み取り可能な記憶媒体。
【請求項１５】
請求項１記載の方法を実行するようにプログラムされるコンピュータシステム。
【請求項１６】
ＣＰＵと、
記憶装置と、
上記ＣＰＵを上記記憶装置に接続するバスとを備えたコンピュータシステムにおいて、
上記記憶装置は上記ＣＰＵによって実行されるためのコードを記憶し、
上記コードは、
集積回路の設計のマスターモデルを準備することと、
上記マスターモデルを、上記マスターモデルと機能的に等価であって互いに異なる抽象化レベルにある少なくとも１つの第１のモデル及び１つの第２のモデルに変換することとを実行し、
上記第１及び上記第２のモデルはそれぞれ、当該各モデルの各抽象化レベルに関して正確な上記設計のタイミング情報を含み、
上記マスターモデルを第１のモデルに上記変換することは、合成ツールを用いることにより、スケジューリングに用いられる少なくとも１つのレジスタと制御論理とを含むレジスタ転送レベルのモデルを生成することを含み、
上記マスターモデルを第２のモデルに上記変換することは、上記合成ツールを用いることにより、上記レジスタ転送モデルと機能的に等価であるトランザクションレベルのモデル又はサイクルアキュレートなモデルのうちの少なくとも一方を生成することを含み、
上記マスターモデルをレジスタ転送レベルのモデルに変換するときに、上記スケジューリングに用いられる少なくとも１つのレジスタと上記制御論理とをマーキングすることと、
上記トランザクションレベルのモデル又はサイクルアキュレートなモデルのうちの少なくとも一方から、上記マーキングされた少なくとも１つのレジスタと制御論理とを省くこととをさらに含むコンピュータシステム。
【請求項１７】
集積回路の設計のモデルを生成する方法において、
集積回路の設計のマスターモデルを準備することと、
合成ツールを用いて上記マスターモデルを変換することにより、スケジューリングに用いられる１つ又は複数のレジスタと制御論理とを含むシークエンシング論理を指定する上記設計の動作のレジスタ転送レベルのモデルを生成することと、
上記合成ツールを用いて、上記マスターモデルを、上記レジスタ転送レベルのモデルと機能的に等価であり、上記レジスタ転送レベルのモデルにおいて指定されている段内のシークエンシング論理を含まず、かつ上記レジスタ転送レベルのモデルにおいて指定されている段間のシークエンシング論理を含むサイクルアキュレートなモデルに変換することとを含む方法。
【請求項１８】
上記合成ツールを用いて、上記マスターモデルを、上記レジスタ転送レベルのモデルと機能的に等価であり、上記レジスタ転送レベルのモデルにおいて指定されている段内のシークエンシング論理を含まず、かつ上記レジスタ転送レベルのモデルにおいて指定されている段間のシークエンシング論理を含まないトランザクションアキュレートなモデルに変換することをさらに含む請求項１７記載の方法。
【請求項１９】
集積回路の設計のモデルを生成する方法において、
集積回路の設計のマスターモデルを準備することと、
合成ツールを用いて上記マスターモデルを変換することにより、スケジューリングに用いられる１つ又は複数のレジスタと制御論理とを含むシークエンシング論理を指定する上記設計の動作のレジスタ転送レベルのモデルを生成することと、
上記合成ツールを用いて、上記マスターモデルを、上記レジスタ転送レベルのモデルと機能的に等価であり、上記レジスタ転送レベルのモデルにおいて指定されている段内のシークエンシング論理を含まず、かつ上記レジスタ転送レベルのモデルにおいて指定されている段間のシークエンシング論理を含まないトランザクションアキュレートなモデルに変換することとを含む方法。