(57)【要約】工程レベルでＨＤＬ記述をカプセル化するシステム及び方法では、コンピュータがコンピュータメモリに保存された工程カプセル化用コンピュータプログラムにアクセスする。コンピュータメモリへ電気的に接続されたコンピュータプロセッサは、ＨＤＬ工程を、ＨＤＬ動作的記述の構造内で独立したＨＤＬオブジェクトとしてカプセル化するため、工程カプセル化用コンピュータプログラムを実行する。【特許請求の範囲】
【請求項１】
ＨＤＬ動作的記述の構造内でＨＤＬ工程をカプセル化するシステムであって、
工程カプセル化用コンピュータプログラムにアクセスするよう動作するコンピュータを含み、
該コンピュータは、
該工程カプセル化用コンピュータプログラムを保持するよう動作するメモリと、
該メモリへ電気的に接続され、該ＨＤＬ動作的記述の構造内で独立したＨＤＬオブジェクトとして該ＨＤＬ工程をカプセル化するため、該工程カプセル化用コンピュータプログラムを実行するよう動作するプロセッサと、
を有する、
システム。
【請求項２】
該プロセッサは、更に、
該ＨＤＬ動作的記述の構造内でＨＤＬオブジェクトを移動させ、
該ＨＤＬ動作的記述の構造的ゲートレベル記述において全ての元のＨＤＬ信号名称を維持する、
ため該工程カプセル化用コンピュータプログラムを実行するよう動作する、
請求項１記載のシステム。
【請求項３】
該ＨＤＬオブジェクトは、ＨＤＬモジュールと、ＨＤＬエンティティと、ＨＤＬゲートと、カプセル化されたＨＤＬ工程と、カプセル化用プログラムの内部データ構造と、のうちの何れかである、請求項１記載のシステム。
【請求項４】
各ＨＤＬ工程は、該ＨＤＬ動作的記述の構造内で他のＨＤＬ工程とは独立してカプセル化される、請求項１記載のシステム。
【請求項５】
ＨＤＬ工程のグループは、該ＨＤＬ動作的記述の構造内で単一のＨＤＬオブジェクトとしてカプセル化される、請求項１記載のシステム。
【請求項６】
ＨＤＬ動作的記述の構造内でＨＤＬ工程をカプセル化する方法であって、
該ＨＤＬ動作的記述の構造内のＨＤＬ工程を読み出す手順と、
該ＨＤＬ工程を含むＨＤＬオブジェクトを生成する手順と、
該ＨＤＬ工程を該ＨＤＬオブジェクトのインスタンスで置換する手順と、
を有する方法。
【請求項７】
該ＨＤＬオブジェクトは、ＨＤＬオブジェクト名称、ポートリスト、及び、該ＨＤＬ工程を含む、請求項６記載の方法。
【請求項８】
該ＨＤＬオブジェクトのインスタンスは、該ＨＤＬオブジェクト名称と、インスタンス名称と、インスタンスポートリストとを含む、請求項６記載の方法。
【請求項９】
該ＨＤＬ動作的記述の構造内の多数のＨＤＬ工程は、互いに独立してカプセル化される、請求項６記載の方法。
【請求項１０】
ＨＤＬ工程のグループは、該ＨＤＬ動作的記述の構造内で単一のＨＤＬオブジェクトとしてカプセル化される、請求項６記載の方法。
【請求項１１】
ＨＤＬ動作的記述の構造内のＨＤＬ工程を読み出す機能と、
該ＨＤＬ工程を含むＨＤＬオブジェクトを生成する機能と、
該ＨＤＬ工程を該ＨＤＬオブジェクトのインスタンスで置換する機能と、
実現させるための記録媒体にコンピュータ読取可能な形式で記録された工程カプセル化用コンピュータプログラム。
【請求項１２】
該ＨＤＬ動作的記述の構造内でＨＤＬオブジェクトを移動させる機能と、
該ＨＤＬ動作的記述の構造的ゲートレベル記述において全ての元のＨＤＬ信号名称を維持する機能と、
を更に実現させる請求項１１記載の工程カプセル化用コンピュータプログラム。
【請求項１３】
該ＨＤＬオブジェクトは、ＨＤＬオブジェクト名称と、ポートリストと、該ＨＤＬ工程とを含む、請求項１１記載の工程カプセル化用コンピュータプログラム。
【請求項１４】
該ＨＤＬオブジェクトのインスタンスは、該ＨＤＬオブジェクト名称と、インスタンス名称と、インスタンスポートリストとを含む、請求項１１記載の工程カプセル化用コンピュータプログラム。
【請求項１５】
モジュール名称は、ブロックモジュールのインスタンスをモジュールに関連付ける、請求項１１記載の工程カプセル化用コンピュータプログラム。
【請求項１６】
該ＨＤＬオブジェクトは、ＨＤＬモジュールと、ＨＤＬエンティティと、ＨＤＬゲートと、カプセル化されたＨＤＬ工程と、カプセル化用プログラムの内部データ構造と、のうちの何れかである、請求項１１記載の工程カプセル化用コンピュータプログラム。
【請求項１７】
各ＨＤＬ工程は、該ＨＤＬ動作的記述の構造内で他のＨＤＬ工程とは独立してカプセル化される、請求項１１記載の工程カプセル化用コンピュータプログラム。
【請求項１８】
ＨＤＬ工程のグループは、該ＨＤＬ動作的記述の構造内で単一のＨＤＬオブジェクトとしてカプセル化される、請求項１１記載の工程カプセル化用コンピュータプログラム。
【発明の詳細な説明】
【０００１】
〔発明の技術分野〕
本発明は、ハードウェア記述言語（ＨＤＬ）の動作レベルの粒度を増加させることに関する。本発明は、デザインを定義するためＨＤＬ動作レベル記述を使用し、要求されたタスクを実行するために粒度のレベルをより精細化することを必要とする、アプリケーションの有用性を拡張する。より詳細には、本発明は、ＨＤＬ動作的記述内で統合された工程を独立したＨＤＬオブジェクトへ変換するシステム及び方法に関する。
【０００２】
〔発明の背景〕
ＨＤＬは、ハードウェア記述言語（Ｈａｒｄｗａｒｅ Ｄｅｓｃｒｉｐｔｉｏｎ Ｌａｎｇｕａｇｅ）の頭文字を表わす。ＨＤＬは、種々の抽象度レベルでデジタルシステム又はデザインを指定する手段を提供する。ＨＤＬは、ＶｅｒｉｌｏｇとＶＨＤＬの二つの標準に発展した。用語「デザイン」及び「デジタルシステム」は、以下の説明を通じて、交換して使用してもよい。ＨＤＬ動作的記述は、デジタルシステムがどのように動作するかを、ＨＤＬで記述した抽象的概念である。ここでＨＤＬで記述された抽象的概念では、デジタルシステムの機能は、入力に関して記述されるが、デジタルシステムが論理ゲートに関してどのようにして実現されるかを記述しなくてもよい。ＨＤＬ工程は、ＨＤＬ動作的記述の基本エッセンスである。工程は、独立した並列的な一連の制御である、と考えることができる。ＨＤＬ工程は、ＨＤＬモジュール／エンティティの一体的な部分である（以下のＨＤＬモジュール／エンティティの定義を参照せよ）。ＨＤＬモジュール若しくはエンティティは、インスタンス作成を通じて再利用可能であるＨＤＬ記述の内蔵型ブロックである。ＨＤＬモジュール／エンティティは、他のモジュール／エンティティの工程、及び、インスタンス作成を含む。ＨＤＬモジュールは、Ｖｅｒｉｌｏｇ　ＨＤＬにおけるモジュールの定義に対応する。ＨＤＬエンティティは、ＶＨＤＬ　ＨＤＬにおけるエンティティの定義に対応する。以下の説明中で使用される用語ＨＤＬモジュール及びＨＤＬエンティティは、相互に交換しても構わない。ＨＤＬゲートは、汎用論理機能又はテクノロジー固有論理機能を記述するＨＤＬモジュール／エンティティである。ＨＤＬオブジェクトは、インスタンス作成を通じて再利用可能なＨＤＬ記述内の内蔵型独立ブロックである。ＨＤＬオブジェクトは、明示的にも暗黙的にも定義される。明示的なＨＤＬオブジェクトは、ＨＤＬ記述内で正式に定義される。明示的ＨＤＬオブジェクトの例は、ＨＤＬモジュール／エンティティ及びＨＤＬゲートである。暗黙的なＨＤＬオブジェクトは、ＨＤＬ（ＨＤＬツール専用フォーマット）以外のフォーマットで記述されるか、又は、ＨＤＬツールの内部データ構造を通じて暗黙的に決まっている。
【０００３】
構造的ゲートレベル記述は、論理ゲート又はテクノロジー固有コンポーネントに関するデザインの表現である。この表現は、ＨＤＬ、又は、ＥＤＩＦやＸＮＦのような専用フォーマットを用いて記述される。典型的に、構造的ゲートレベル記述は、合成工程（ＨＤＬ動作的記述を構造的ゲートレベル記述へ変換する工程）の出力である。分割（パーティショニング）は、多数の装置（デバイス）の間で論理を配分する工程である。典型的に、配分工程は、装置の制約特性の集合に従う必要がある。たとえば、多数のＦＰＧＡ装置へ分割する場合、分割工程は、ＦＰＧＡ装置の論理能力及びＩ／Ｏ限界を満たさなければならない。フロア計画は、所望の性能目標を達成するため、論理を装置内に配置若しくは配列する工程である。たとえば、ＦＰＧＡ装置をフロア計画する場合、論理の配置は、ＦＰＧＡ装置に組み込まれるデサインのクロック速度が増加し、及び／又は、ＦＰＧＡ装置のルート時間が減少することを目標とする。構造的ゲートレベル記述の場合、論理サイズは、論理機能を実現するため使用される論理資源（リソース）の量を表わし（ここで、論理資源は、汎用的な（テクノロジー依存型）論理ゲート、又は、テクノロジー固有コンポーネントのどちらでも構わない）、粒度（グラニュラリティ）は、デザインの記述に使用されるオブジェクトの平均論理サイズを表わす（ここで、デザインは、階層形式で記述されている場合には、複数の粒度を有する）。
【０００４】
構造的ゲートレベル記述は、殆どの物理的レイアウトＥＤＡ（電子デザイン自動化）ツールのための一般的な開始点である。構造的ゲートレベル記述は、複雑さの増大がより高い抽象度レベルを必要とするまでは、デジタルデザインの有力な抽象度レベルであった。ＨＤＬ動作的記述の部分集合であり、一般的に、ＲＴＬ（レジスタ・トランスファー・レベル）記述と呼ばれる記述は、現在、特定用途向け集積回路（ＡＳＩＣ）論理の開始点である、と考えられている。
【０００５】
典型的なＡＳＩＣ　ＥＤＡ方法論は、デザインのＨＤＬ動作的記述を構造的ゲートレベル記述に（合成ツールを補助として用いて）変換することである。
【０００６】
デザインの効率的な分割及びフロア計画を実施するため、デザインの粒度は、最適解を獲得する際に重要な役割を果たす。現在のＡＳＩＣ　ＥＤＡ方法論の場合、分割タスク及びフロア計画タスクに対する開始点として、ＨＤＬ動作的記述と構造的ゲートレベル記述の二つの選択肢がある。ＨＤＬ動作的記述は、ＡＳＩＣ　ＥＤＡ方法論の開始点であり、設計者が精通しているデザインの表現であるため、ＨＤＬ動作的記述の方が優先される。ＨＤＬ動作的記述と構造的ゲートレベル記述の二つの記述は、二つのレベルのオブジェクト粒度、すなわち、モジュール／エンティティオブジェクト粒度と、ゲートオブジェクト粒度しか収容できない。モジュール／エンティティ粒度は、比較的「粗い」粒度であり、モジュールは、典型的に、大きい論理サイズを有する。ゲート粒度は、比較的「細かい」粒度であり、ゲートは、典型的に非常に小さい論理サイズを有する。
【０００７】
モジュール／エンティティ粒度が分割及びフロア計画のため使用される場合、実現可能な解の数はかなり制限される。これは、モジュール／エンティティオブジェクトの「粗い」粒度の直接的な結果である。モジュール／エンティティオブジェクトの大きい論理サイズは、少数の実現可能な解を生じる少数のモジュール／エンティティオブジェクトを与える。有限個数の実現可能な解の中で最適解を見つけることは、達成できない場合がある。
【０００８】
ゲート粒度が分割及びフロア計画のため使用される場合、実現可能な解の数は非常に多い。これは、ゲートオブジェクトの「細かい」粒度の直接的な結果である。ゲートオブジェクトの非常に小さい論理サイズは、非常に多数のゲートオブジェクトを与え、これにより、非常に多数の実現可能な解が得られる。非常に多数の実現可能な解の中から最適解を見つけることは、非常に計算集約的になり得る。
【０００９】
デザインの効率的かつ最適的な分割及びフロア設計を実現するため、粗いモジュール／エンティティ粒度と非常に細かいゲート粒度の間の中間粒度レベルが必要である。本発明は、工程カプセル化のシステム及び方法によって、デザインのＨＤＬ動作的記述に、この中間粒度を生成することに関する。
【００１０】
中間粒度レベルが無い場合には、大きい論理サイズのＨＤＬ動作的記述の合成に影響が生じる。大きい論理サイズのＨＤＬ動作的記述の合成時間は、ＨＤＬ動作的記述の論理サイズに関して非線形的に増加する。したがって、非常に大きい論理サイズのＨＤＬ動作的記述の場合、合成時間は非常に長くなり得る。さらに、ＨＤＬ動作的記述から最終的に合成された構造的ゲートレベル記述は、ＨＤＬ信号及びネット名称の全部を保持するわけではない。ＨＤＬ信号は、（最適化によって）削除されるか、又は、非決定論的な形式で別の名称に変換される。
【００１１】
この大きい論理サイズのＨＤＬ動作的記述に対する膨大な合成時間と、合成された構造的ゲートレベル記述における殆どのＨＤＬ信号名称の削除は、ＦＰＧＡを使用するＡＳＩＣの高速検証のＥＤＡ方法論に非常に悪い影響を与える。合成された構造的ゲートレベル記述におけるＨＤＬ信号名称の変換及び／又は削除は、ＨＤＬ信号の可観測性を困難若しくは不可能にさせる。本発明は、大きい論理サイズのＨＤＬ動作的記述の合成時間を改良し、合成された構造的ゲートレベル記述中にＨＤＬ信号名称を保持するシステム及び方法を提供する。
【００１２】
〔発明の概要〕
本発明は、工程レベルでＨＤＬ動作的記述をカプセル化するシステム及び方法を提供する。工程レベルでＨＤＬ動作的記述をカプセル化するシステム及び方法は、コンピュータメモリに保持された工程カプセル化用コンピュータプログラムにアクセスするコンピュータを含む。コンピュータメモリへ電気的に接続されたコンピュータプロセッサは、ＨＤＬ工程を、ＨＤＬ動作的記述の構造内で独立したＨＤＬオブジェクトとしてカプセル化するため、工程カプセル化用コンピュータプログラムを実行する。
【００１３】
本発明は、動作の抽象度レベルでＨＤＬ動作的記述を分割及びフロア計画するシステム並びに方法を提供する。
【００１４】
また、本発明は、大きい論理サイズをもつデザインの合成速度を増加させるシステム及び方法を提供することによって重要な技術的効果を奏する。
【００１５】
本発明は、デザインの構造的ゲートレベル記述においてＨＤＬ動作的記述信号名称を保持するシステム及び方法を提供することにより、別の技術的効果を奏する。
【００１６】
添付図面と共に以下の詳細な説明を参照することによって、本発明及び本発明の効果がより良く理解される、添付図面中、同じ参照番号は同じ事項を表わす。
【００１７】
〔発明の詳細な説明〕
本発明の好ましい実施例は図示されている。図面を通じて、同じ参照番号は、同じパーツ及び対応したパーツを示すために使用されている。
【００１８】
本発明は、ＨＤＬ動作的記述に統合されたＨＤＬ工程を、ＨＤＬ動作的記述の構造内で独立したＨＤＬオブジェクトへ変換するシステム及び方法である。工程レベルでのＨＤＬ動作的記述のカプセル化を行なうシステム及び方法は、コンピュータメモリに保持された工程カプセル化用コンピュータプログラムにアクセスするコンピュータを含む。コンピュータメモリへ電気的に接続されたコンピュータプロセッサは、ＨＤＬ工程を、ＨＤＬ動作的記述の構造内で独立したＨＤＬオブジェクトとしてカプセル化するため、工程カプセル化用コンピュータプログラムを実行する。
【００１９】
図１は、プロセスカプセル化を伴わないＨＤＬ動作的記述の説明図である。図１に示されるように、モジュール／エンティティＡは、Ｐ１及びＰ２の二つの工程と、モジュール／エンティティＢのインスタンスと、を含む。モジュール／エンティティＢは、二つの工程Ｐ３及びＰ４だけを含む。このＨＤＬ記述における全ての工程：Ｐ１、Ｐ２、Ｐ３及びＰ４は、これらの工程を収容しているモジュール／エンティティに一体化されている。図１に示されるように、工程Ｐ１及びＰ２は、モジュール／エンティティＡだけに存在し、インスタンス化できず、モジュール／エンティティＢへ移動できない。工程Ｐ３及びＰ４は、モジュール／エンティティＢだけに存在し、インスタンス化できず、モジュール／エンティティＡへ移動できない。全工程Ｐ１、Ｐ２、Ｐ３及びＰ４は、ＨＤＬ記述において、独立したＨＤＬオブジェクトとして取り扱われない。
【００２０】
図２は、図１からのＨＤＬ記述が工程レベルでカプセル化されたときに得られるＨＤＬ記述の説明図である。図２に示されるように、モジュール／エンティティＡは、工程Ｐ１及びＰ２を含まない。モジュール／エンティティＡは、モジュール／エンティティＰ１及びＰ２のインスタンスを含む。モジュール／エンティティＰ１は工程Ｐ１を含む。モジュール／エンティティＰ２は工程Ｐ２を含む。同様に、モジュール／エンティティＢは、工程Ｐ３及びＰ４を含まない。モジュール／エンティティＢは、モジュール／エンティティＰ３及びＰ４のインスタンスを含む。モジュール／エンティティＰ３は工程Ｐ３を含む。モジュール／エンティティＰ４は工程Ｐ４を含む。
【００２１】
図１のＨＤＬ動作的記述と、図２のカプセル化されたＨＤＬ動作的記述との相違点は、カプセル化されたＨＤＬ動作的記述の場合に、元の工程Ｐ１、Ｐ２、Ｐ３及びＰ４が夫々固有のモジュール／エンティティＰ１、Ｐ２、Ｐ３及びＰ４に含まれることである。これにより、実際上、工程は、ＨＤＬ動作的記述内で独立したオブジェクトとして取り扱われるようになる。かくして、カプセル化されたＨＤＬ動作的記述は、工程レベルでＨＤＬオブジェクトの粒度を与える。粒度レベルは、ＨＤＬフロア計画及び分割のような多様な設計タスクの効率的かつ最適な解のための重要な必要条件である。
【００２２】
図２において、ＨＤＬモジュール／エンティティのラップは、モジュール／エンティティ内で一体的な工程を、ＨＤＬモジュール／エンティティへ変換し、次に、ＨＤＬモジュール／エンティティを独立したＨＤＬオブジェクトへ変換するため使用された点に注意する必要がある。ＨＤＬ工程のＨＤＬモジュール／エンティティへの変換は、工程カプセル化を実現するための一つの方法に過ぎない。工程カプセル化プログラムへの内部表現は、一体的なＨＤＬ工程を独立したＨＤＬオブジェクトへ変換するために使用され得る。
【００２３】
図３は、工程レベル５００でカプセル化される前後でのＶｅｒｉｌｏｇ構文におけるＨＤＬ記述の一例の説明図である。コンピュータは、最初に、メモリに記憶された工程カプセル化用コンピュータプログラムへアクセスする。コンピュータプロセッサは、ＨＤＬ記述５０５を読み込むため、工程カプセル化用コンピュータプログラムを実行する。工程カプセル化用コンピュータプログラムは、ＨＤＬ記述５１０内で、工程５１０又は多数の工程を探索する。工程カプセル化用コンピュータプログラムは、ＨＤＬ工程５１５をカプセル化し、工程５１０用の工程モジュール５２５のインスタンスを生成し、工程５１０のＨＤＬ記述を含むモジュール５４５を生成する。
【００２４】
各ＨＤＬ工程は、ＨＤＬ記述の構造内で他のＨＤＬ工程とは別個にカプセル化され得ることが理解されるであろう。ＨＤＬ工程のグループは、ＨＤＬ記述の構造内で単一のＨＤＬオブジェクトとしてカプセル化してもよい。工程モジュールのインスタンスは、モジュール名５３０と、インスタンス名５３５と、ポートリスト５４０とにより構成され、ポートリストは、工程５１０の全ての入出力信号名を含む。モジュール５４５は、モジュール名５３０と、ポートリスト５４０と、ポート型宣言リスト（５５０及び５６０）と、ＨＤＬ工程記述５１０とにより構成される。図３に示された実施例では、工程５１０は、Ｖｅｒｉｌｏｇモジュールにカプセル化されていることわかる。標準的なＨＤＬ構成を用いて工程をモジュールへ変換することは、工程カプセル化を実行する一つの方法に過ぎない。カプセル化された工程は、あらゆる他の手段（たとえば、定義済みファイルフォーマット、カプセル化プログラムの内部データ構造など）によって表現され得る。
【００２５】
一実施例において、本発明は、ＨＤＬ動作的記述の分割を取り扱う。図４は、従来技術によるＨＤＬ記述の分割方法のフローチャート１０である。ＨＤＬ動作的記述１２は、ステップ１４で、（典型的に合成ツールを使用して）構造的ゲートレベル記述１６へ変換される。構造的ゲートレベル記述１６は、ゲートオブジェクト及び／又はモジュールオブジェクトを含む。この構造的ゲートレベル記述は、ステップ１８で、多数の装置（装置１　２０、装置２　２２、．．．、装置Ｎ　２４）に分割される。分割の出力は、装置毎の構造的ゲートレベル記述である。この方法の主な欠点は、効率的な分割解を得るための粒度レベルが最適ではない点である。粒度レベルは、非常に粗い（モジュールオブジェクト）か、又は、非常に細かい（ゲートオブジェクト）。粗い粒度レベルは、実現可能な分割解の個数を厳しく制限し、ある種の場合には、分割解が得られない。非常に細かい粒度レベルは、非常に多数の実現可能な分割解を与え、一つの最適解を見つけることは、非常に計算集約的なタスクになる。ゲートレベルにおける分割は、分割されたデザインに対し非常に悪い影響を与える。
【００２６】
図５は、本発明を使用してＨＤＬ動作的記述を分割する方法のフローチャート３０である。動作的ＨＤＬ記述１２は、ステップ５０で分割される前に、工程レベルでカプセル化される。このカプセル化によって、粗いモジュール粒度と細かいゲート粒度の間の中間粒度レベルで、カプセル化されたＨＤＬ動作的記述５５が生成される。この中間粒度レベルは、効率的な分割を実現するため最適な粒度レベルである。カプセル化された各工程５５の論理サイズは、分割ステップの前に、ステップ３６において、論理サイズ推定機能又は合成を用いて計算される。分割ステップ１８は、カプセル化されたＨＤＬ記述５５と、カプセル化された各工程の論理サイズ３８と、を使用して、ＨＤＬ動作的抽象度レベルでの効率的な分割を生成する。分割ステップの出力は、各装置に対するＨＤＬ動作的記述である。
【００２７】
他の実施例において、本発明は、ＨＤＬ動作的記述のフロア計画を取り扱う。図６は、従来技術によるＨＤＬ記述をフロア計画する方法の説明図である。ＨＤＬ動作的記述１２は、ステップ１４において、（典型的に、システムツールを利用して）構造的ゲートレベル記述に変換される。構造的ゲートレベル記述１６は、ゲートオブジェクト及び／又はモジュールオブジェクトを含む。この構造的ゲートレベル記述１６は、ステップ４８でフロア計画される。フロア計画ステップの出力は、フロア計画済みの構造的ゲートレベル記述５８である。この方法の主な欠点は、効率的なフロア計画を実現するための粒度レベルが最適ではない、という点である。粒度レベルは、非常に粗い（モジュールオブジェクト）か、又は、非常に細かい（ゲートオブジェクト）。粗い粒度レベルは、実現可能なフロア計画解の個数を厳しく制限する。非常に細かい粒度レベルは、非常に多数の実現可能なフロア計画解を与え、一つの最適解を見つけることは、非常に計算集約的なタスクになる。
【００２８】
図７は、本発明を使用してＨＤＬ動作的記述をフロア計画する方法の説明図である。動作的ＨＤＬ記述１２は、フロア計画される前に、工程レベルでカプセル化される。このカプセル化によって、粗いモジュール粒度と細かいゲート粒度の間の中間粒度レベルで、カプセル化されたＨＤＬ動作的記述５５が生成される。この中間粒度レベルは、効率的なフロア計画を実現するため最適な粒度レベルである。カプセル化された各工程の論理サイズは、フロア計画ステップ４８の前に、ステップ３６において、論理サイズ推定機能又は合成を用いて計算される。フロア計画ステップ４８は、カプセル化されたＨＤＬ記述５５と、カプセル化された各工程の論理サイズ３８と、を使用して、ＨＤＬ動作的抽象度レベルでの効率的なフロア計画を実行する。フロア計画ステップの出力は、フロア計画済みのＨＤＬ動作的記述５８である。
【００２９】
また、本発明は、大きい論理サイズをもつＨＤＬ動作的記述を合成する際の性能ボトルネックを取り扱うことができる。図８には、従来技術によるＨＤＬ動作的記述を構造的ゲートレベル記述１６へ合成する方法が示されている。図８に示されるように、合成タスクは、ステップ１４において、ＨＤＬ動作的記述１２の全体に対して実行される。全ＨＤＬ動作的記述１２を合成するため要する時間は、ＨＤＬ動作的記述の論理サイズに関して非線形的に増加する。なぜならば、合成ツールは、ＨＤＬ動作的記述の全体に亘って大域的な最適化を実行するからである。かくして、大規模論理サイズデザインの場合、合成時間は、膨大な長さに達するので、殆どの場合に実施できない。
【００３０】
図９は、本発明を使用してＨＤＬ動作的記述を合成する方法の説明図である。動作的ＨＤＬ記述１２は、合成される前に、ステップ５０において、工程レベルでカプセル化される。このカプセル化によって、実際に、大きいＨＤＬ動作的記述が多数の小さいＨＤＬ動作的記述（すなわち、カプセル化されたＨＤＬ工程５５）に解体される。カプセル化された各工程５５は、次に、ステップ６４において、個別に合成され、カプセル化された工程毎に、構造的ゲートレベル記述６６を生成する。ＨＤＬ動作的記述全体の完全な構造的ゲートレベルは、デザイン７０全体の構造的ゲートレベル記述を生成するため、統合ステップ６８によって作成される。
【００３１】
この解決法の主要な効果は、ＨＤＬ動作的記述の全体に対する合成時間が著しく短縮されることである。全ＨＤＬ動作的記述の合成時間は、全てのカプセル化された工程の合成時間の和である。これによる究極の効果は、総合成時間がカプセル化された工程の数と線形の関係になり、したがって、ＨＤＬ動作的記述の論理サイズと線形になることである。
【００３２】
図９には、本発明が合成された構造的ゲートレベル記述においてＨＤＬ動作的記述の信号名を維持する問題を取り扱う方法も示されている。図８の従来技術によるデザインを合成する方法では、合成タスクは、全ＨＤＬ記述に対して実行されている。ＨＤＬ動作的記述の全体に対して合成タスクを実行することにより、ＨＤＬ信号は、最終的に合成された構造的ゲートレベル記述において、最適ではなくなり、及び／又は、（非決定論的に）異なる名称に変換される可能性がある。本発明は、図９に示されるように、工程の境界でＨＤＬ信号名を維持する。動作的ＨＤＬ記述は、合成される前に、工程レベルでカプセル化される。これにより、実際に、大きいＨＤＬ動作的記述は、多数の小さいＨＤＬ動作的記述（すなわち、カプセル化されたＨＤＬ工程）に解体される。カプセル化された各工程は、次に、個別に合成され、工程毎に構造的ゲートレベル記述を生成する。ＨＤＬ動作的記述全体の完全な構造的ゲートレベルは、個別のカプセル化された工程の構造的ゲートレベル記述全体の統合ステップによって作成される。この解決法の重要な効果は、最終的に得られたゲートレベル記述が、工程の境界に存在する元のＨＤＬ動作的記述信号名の全てを含むことである。
【００３３】
要約すると、本発明は、工程レベルで粒度を与えるため、ＨＤＬ工程記述をカプセル化する方法及びシステムを提供する。工程レベルでＨＤＬ記述をカプセル化するシステム及び方法では、コンピュータがコンピュータメモリに保存された工程カプセル化用コンピュータプログラムにアクセスする。コンピュータメモリへ電気的に接続されたコンピュータプロセッサは、ＨＤＬ工程を、ＨＤＬ動作的記述の構造内でエンティティとしてカプセル化するため、工程カプセル化用コンピュータプログラムを実行する。
【００３４】
以上の通り、本発明を詳細に説明したが、請求項に記載されているような本発明の精神及び範囲を逸脱することなく、多様な変更、置換、及び、代替をなし得ることが認められるべきである。
【図面の簡単な説明】
【図１】
工程カプセル化を含まないＨＤＬ動作的記述の説明図である。
【図２】
工程カプセル化を含むＨＤＬ動作的記述の説明図である。
【図３】
工程カプセル化の前後におけるＶｅｒｉｌｏｇ　ＨＤＬコードの例の説明図である。
【図４】
従来技術によるＨＤＬ動作的記述を分割する方法の説明図である。
【図５】
本発明を使用するＨＤＬ動作的記述を分割する方法の説明図である。
【図６】
従来技術によるＨＤＬ動作的記述をフロア計画する方法の説明図である。
【図７】
本発明を使用するＨＤＬ動作的記述をフロア計画する方法の説明図である。
【図８】
従来技術によるＨＤＬ動作的記述を合成する方法の説明図である。
【図９】
本発明を使用するＨＤＬ動作的記述を合成する方法の説明図である。
【図１】
2004514187.tif 000002
【図２】
2004514187.tif 000003
【図３】
2004514187.tif 000004
【図４】
2004514187.tif 000005
【図５】
2004514187.tif 000006
【図６】
2004514187.tif 000007
【図７】
2004514187.tif 000008
【図８】
2004514187.tif 000009
【図９】
2004514187.tif 000010
【国際公開パンフレット】
2004514187.tif 000011
2004514187.tif 000012
2004514187.tif 000013
2004514187.tif 000014
2004514187.tif 000015
2004514187.tif 000016
2004514187.tif 000017
2004514187.tif 000018
2004514187.tif 000019
2004514187.tif 000020
2004514187.tif 000021
2004514187.tif 000022
2004514187.tif 000023
2004514187.tif 000024
2004514187.tif 000025
2004514187.tif 000026
2004514187.tif 000027
2004514187.tif 000028
2004514187.tif 000029
2004514187.tif 000030
2004514187.tif 000031
【国際公開パンフレット（コレクトバージョン）】
2004514187.tif 000032
2004514187.tif 000033
2004514187.tif 000034
2004514187.tif 000035
2004514187.tif 000036
2004514187.tif 000037
2004514187.tif 000038
2004514187.tif 000039
2004514187.tif 000040
2004514187.tif 000041
2004514187.tif 000042
2004514187.tif 000043
2004514187.tif 000044
2004514187.tif 000045
2004514187.tif 000046
2004514187.tif 000047
【国際公開パンフレット（コレクトバージョン）】
2004514187.tif 000048
【国際調査報告】
2004514187.tif 000049
2004514187.tif 000050