(57)【要約】【課題】ＨＤＬ設計の知識を必要とすることなく、グラフィカルなハイレベルの設計環境において回路を設計する。【解決手段】開発環境は、グラフィカル設計ツールおよび構成エージェントを含む。グラフィカル設計ツールにより、設計者は、回路の一次ロジックコンポーネントを設計することができる。該設計ツールは、ハードウェア記述言語を使用して、該一次ロジックコンポーネントを表すモジュールを生成する。該モジュールは、該回路のインフラストラクチャに対する抽象リファレンスを含む。構成エージェントは、該モジュールをネットリストに合成し、該回路のインフラストラクチャの記述とマージする。インフラストラクチャは、設計ツールとは別個の開発環境において生成される。構成エージェントは、該モジュールを調節するアジャスタを含む。該モジュールに対する該調節は、該インフラストラクチャに対する抽象リファレンスを、該インフラストラクチャ内で使用される実際のリファレンスで置き換えることを含む。【選択図】図２
2005346710.tif 000002
【特許請求の範囲】
【請求項１】
回路（９０）を設計するための方法であって、
第１のハードウェア記述言語開発環境（６１）内で、前記回路（９０）のインフラストラクチャ（９１−９７）を生成するステップと、
グラフィカル設計ツール（６４）を使用して、前記インフラストラクチャ（９１−９７）内のサブシステムの表現を含むように、一次ロジックコンポーネント（９８）のハードウェア記述言語（７５）を生成するステップと、
前記グラフィカル設計ツール（６４）を使用して生成された前記ハードウェア記述言語（７５）で表された前記サブシステムのポートを、前記生成されたインフラストラクチャ（９１−９７）と一致させ、調節済みハードウェア記述言語（７６）を生成する調節プロセスを実行するステップと、
前記インフラストラクチャ（９１−９７）および前記調節済みハードウェア記述言語（７６）をマージすることによって、前記回路（９０）の設計を生成するステップと、
を含む、方法。
【請求項２】
前記回路（９０）は、プログラマブルロジックデバイスである、
請求項１に記載の方法。
【請求項３】
前記一次ロジックコンポーネント（９８）は、
デジタル信号処理アルゴリズムと、
測定、テスト、制御、通信のうちの少なくとも１つに関連付けられた数学演算と、
のうち少なくとも１つを実行する、
請求項１に記載の方法。
【請求項４】
前記インフラストラクチャ（９１−９７）は、前記一次ロジックコンポーネント（９８）の入力／出力機能を実行する、
請求項１に記載の方法。
【請求項５】
開発環境であって、
設計者が、回路（９０）の一次ロジックコンポーネント（９８）を設計することを可能にすると共に、ハードウェア記述言語を使用して、前記回路（９０）の一次ロジックコンポーネント（９８）を表すモジュール（７５）を生成するグラフィカル設計ツール（６４）であって、該モジュールは、前記回路（９０）のインフラストラクチャ（９１−９７）に対する抽象リファレンスを含む、グラフィカル設計ツール（６４）と、
前記モジュールをネットリストに合成し、前記ネットリストを前記回路（９０）のインフラストラクチャ（９１−９７）の記述とマージする構成エージェント（７０）であって、前記インフラストラクチャ（９１−９７）は、前記グラフィカル設計ツール（６４）とは別の開発環境（６１）において生成される、構成エージェント（７０）と、を備え、
前記構成エージェント（７０）は、さらに、
前記モジュールを調節するアジャスタ（６７）を備え、該調節は、前記インフラストラクチャ（９１−９７）に対する前記抽象リファレンスを、前記インフラストラクチャ（９１−９７）内で使用される実際のリファレンスで置き換えることを含む、
開発環境。
【請求項６】
前記インフラストラクチャ（１９−９７）に対する前記抽象リファレンスは、前記インフラストラクチャ（９１−９７）内に含まれるサブシステムのポートを含む、
請求項５に記載の開発環境。
【請求項７】
前記グラフィカル設計ツール（６４）は、設計者が、前記回路（９０）内に含めるインフラストラクチャ（９１−９７）のセットを選択することを可能にする、インフラストラクチャ（９１−９７）チューザを含む、
請求項５に記載の開発環境。
【請求項８】
前記インフラストラクチャ（９１−９７）のサブシステムは、
デジタルロジックにクロックを供給する回路と、
デジタルロジックに同期化を供給する回路と、
特定用途向け集積回路（９０）へのインターフェースと、
マイクロプロセッサへのインターフェースと、
マイクロコントローラへのインターフェースと、
デジタル信号プロセッサへのインターフェースと、
プログラマブルロジックデバイスへのインターフェースと、
通信集積回路（９０）へのインターフェースと、
通信サブシステムへのインターフェースと、
バスへのインターフェースと、
メモリサブシステムへのインターフェースと、
アナログデジタルコンバータへのインターフェースと、
デジタルアナログコンバータへのインターフェースと、
トランスデューサへのインターフェースと、
汎用入出力サブシステムへのインターフェースと、
のうちの少なくとも１つを含む、
請求項５に記載の開発環境。
【請求項９】
前記回路（９０）は、プログラマブルロジックデバイスである、
請求項５に記載の開発環境。
【請求項１０】
前記一次ロジックコンポーネント（９８）は、
デジタル信号処理アルゴリズムと、
測定、テスト、制御、通信のうちの少なくとも１つと関連付けられた数学演算と、
のうち少なくとも１つを実行する、
請求項５に記載の開発環境。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、回路を設計する方法に関する。
【背景技術】
【０００２】
ハイレベルのグラフィカル設計ツールは、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）などのプログラマブルロジックデバイス（ＰＬＤ）設計で使用されることが多い。たとえばＸｉｌｉｎｘ社から入手可能なＤＳＰ（商標）用システムジェネレータは、ＭａｔｈＷｏｒｋｓ社から入手可能なＳｉｍｕｌｉｎｋ（商標）のモデリング環境で実行され、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）内の一次ロジックコンポーネントとして具現化される制御およびデジタル信号処理（ＤＳＰ）のアルゴリズムを表現、シミュレート、合成するのに使用されることができる。しかし、既存の設計環境において、インフラストラクチャおよびオフチップ入出力（Ｉ／Ｏ）のインターフェースを実現するには、Ｖｅｒｉｌｏｇ（商標）およびＶＨＤＬ（商標）などの比較的退屈なハードウェア記述言語（ＨＤＬ）を使用することが必要とされる。該インフラストラクチャおよびオフチップ入出力（Ｉ／Ｏ）のインターフェースの実現には、たとえば、インターフェース回路の詳細な仕様、および、クロック管理、バス、その他のオフチップ入出力（Ｉ／Ｏ）機能に関連づけられた特定のサブ回路(subcircuit)の、インピーダンス、駆動レベル、位相遅延、供給電圧、クロック方式の構成、およびタイミングオフセットが含まれる。
【０００３】
従来から、インフラストラクチャおよびオフチップＩ／Ｏ特性を指定するのに必要なＨＤＬ設計環境はまた、ＰＬＤ設計フローの「トップレベル」すなわちマスター設計環境としての役割を果たしている。インフラストラクチャのサブ回路を、ハイレベルのグラフィカル設計ツールによって生成されたマシン生成ロジックとマージするのは、トップレベル設計環境内においてである。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
従って、最終的なＰＬＤ画像を生成し、結果として生成された設計を回路内で検証するためには、ハイレベルなグラフィカル設計ツールを使用するアプリケーションとドメインの専門家が、ＨＤＬ設計環境についての能力を維持することが必要であった。この能力の維持が必要な理由は、ＰＬＤアプリケーションの開発中、一次ロジックコンポーネントを検証するだけでなく、ＰＬＤの外部にある付加的なシステム要素について回路内テストハーネスを提供し、ＰＬＤと他の付随するハードウェアとの間の通信方式を検証するのに、プロトタイプの設計を実行して配備することが、必要とされることがあるからである。
【課題を解決するための手段】
【０００５】
本発明の一実施形態によると、開発環境は、グラフフィカル設計ツールおよび構成エージェント(build agent)を含む。グラフィカル設計ツールにより、設計者は、回路の一次ロジックコンポーネントを設計することが可能になる。グラフィカル設計ツールは、ハードウェア記述言語を使用してモジュールを生成し、回路の一次ロジックコンポーネントを表わす。該モジュールは、回路のインフラストラクチャに対する抽象的なリファレンス(abstract reference)を含む。構成エージェントは、モジュールをネットリストに合成し、該ネットリストを、回路のインフラストラクチャの記述とマージする。インフラストラクチャは、グラフィカル設計ツールとは別の開発環境において生成される。構成エージェントは、モジュールを調節するアジャスタ(adjuster)を含む。モジュールの調節は、インフラストラクチャに対する該抽象的なリファレンスを、該インフラストラクチャ内で使用される実際のリファレンスで置き換えることを含む。
【発明を実施するための最良の形態】
【０００６】
図１は、プリント回路基板（ＰＣＢ）８１の簡略化された構成図である。ＰＣＢ８１は、集積回路（ＩＣ）９０を含む。たとえば、ＩＣ９０は、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）のようなプログラマブルロジックデバイス（ＰＬＤ;programmable logic device）である。
【０００７】
ＩＣ９０は、一次ロジックコンポーネント９８を含む。たとえば、一次ロジックコンポーネント９８は、デジタル信号処理のためのアルゴリズムを含む。代替的に、一次ロジックコンポーネントは、たとえば測定、テスト、制御、または通信と関連づけられた複雑な数学演算のような、他の機能をも実行することができる。
【０００８】
ＩＣ９０は、本明細書では、サポートロジックコンポーネント（ＳＬＣ）と呼ぶ、付加的なロジックブロックを含む。例として、図１は、ＳＬＣ９１、ＳＬＣ９２、ＳＬＣ９３、ＳＬＣ９４、ＳＬＣ９５、ＳＬＣ９６、ＳＬＣ９７の７つのＳＬＣを含む。たとえばＳＬＣ９１は、ＩＣ９０の、バスインターフェース８２に対するインターフェースである。たとえば、バスインターフェース８２は、ＰＣＩ（周辺コンポーネント相互接続）バス、または他のタイプのバスに対するインターフェースである。たとえばＳＬＣ９２は、ＩＣ９０の、スタティックランダムアクセスメモリ（ＳＲＡＭ）８３に対するインターフェースである。たとえばＳＬＣ９３は、ＩＣ９０の、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）８４に対するインターフェースである。たとえばＳＬＣ９４は、ＩＣ９０の、バスインターフェース８５に対するインターフェースである。たとえばバスインターフェース８５は、低電圧差動シグナリング（ＬＶＤＳ；low voltage differential signaling）バス、または他のタイプのバスに対するインターフェースである。たとえばＳＬＣ９５は、ＩＣ９０の、汎用入出力ＧＰＩＯ８６に対するインターフェースである。たとえばＳＬＣ９６は、ＩＣ９０の、デジタル／アナログコンバータ（ＤＡＣ）８７に対するインターフェースである。たとえばＳＬＣ９７は、ＩＣ９０の、アナログ／デジタルコンバータ（ＡＤＣ）８８に対するインターフェースである。ＳＬＣの他の付加的な候補として、システムコンポーネント、または、システムコンポーネントに対するインターフェースがあり、これらの例としては、特定用途向け集積回路（ＡＳＩＣ）、マイクロプロセッサ、マイクロコントローラ、他のＰＬＤ、ＳＲＡＭとＤＲＡＭを含む、またはＳＲＡＭとＤＲＡＭに追加されるメモリサブシステム、デジタル信号プロセッサ、トランスデューサ、通信ＩＣ、またはサブシステムがある。またＳＬＣは、デジタルロジックにクロックを提供する回路、および／または、デジタルロジックに同期化を提供する回路を含んでもよい。
【０００９】
図２は、図１に示すＩＣ９０のような集積回路を設計およびシミュレーションするのに使用される設計環境の簡略化された構成図を示す。ハードウェア記述言語（ＨＤＬ）開発環境６１は、インフラストラクチャ回路を設計するのに使用される。インフラストラクチャ回路は、図１に示すＳＬＣ９１から９７などのＳＬＣを含む。インフラストラクチャ回路の記述に加えて、ＨＤＬ開発環境６１は、たとえば、クロック管理、バス、他のオフチップ入出力（Ｉ／Ｏ）機能に関連づけられた、ＳＬＣのような特殊なサブ回路(subcircuit)の、インピーダンス、駆動レベル、位相遅延、供給電圧、クロック方式およびタイミングオフセットを構成するのに使用される。
【００１０】
たとえばＨＤＬ開発環境６１は、Ｖｅｒｉｌｏｇ（商標）またはＶＨＤＬ（商標）などのハードウェア記述言語（ＨＤＬ）を使用する、市販のＨＤＬ開発環境である。ＨＤＬ開発環境６１は、アプリケーション設計／シミュレーション環境６２内の構成エージェント(build agent)７０に対し、ネットリスト(netlist)７１および制約(constraint)７２のような情報の使用を可能にする。たとえばネットリスト７１は、電子設計交換フォーマット（ＥＤＩＦ;electronic design interchange format）のネットリストである。たとえば制約７２は、ユーザ制約ファイル（ＵＣＦ;user constraints file）のフォーマット形式を取り、該フォーマットは、Ｘｉｌｉｎｘ（ザイリンクス）社によって定義されている。たとえばＵＣＦファイルは、サブ回路配置データ、ピンアウト選択、駆動レベル、終端選択(termination choices)、ピン間の遅延、入力クロックエッジに対する出力遅延、入力クロックエッジ前の入力信号の到着に関するデータなどを含む。
【００１１】
アプリケーション設計／シミュレーション環境６２は、ＨＤＬジェネレータ６４を含む。ＨＤＬジェネレータ６４は、図１に示す一次ロジックコンポーネント９８のような一次ロジックコンポーネントを記述するハードウェア記述言語を生成する。ＨＤＬジェネレータ６４は、グラフィカルアプリケーション設計／シミュレーション環境６２内において、構成エージェント７０に対し、ハードウェア記述７５および制約７４のような情報の使用を可能にする。たとえばＨＤＬジェネレータ６４は、Ｘｉｌｉｎｘ社から入手可能なＤＳＰ（商標）用のシステムジェネレータを使用して実現される。たとえばハードウェア記述７５は、超高速集積回路（ＶＨＳＩＣ;Very High Speed Integrated Circuit）のハードウェア記述言語（ＶＨＤＬ）モジュールである。たとえば制約７４は、Ｘｉｌｉｎｘ社から入手可能なＵＣＦまたはＮＣＦの形態を取る。
【００１２】
アプリケーション設計／シミュレーション環境６２はまた、インフラストラクチャチューザ(infrastructure chooser)６３を含む。インフラストラクチャチューザ６３は、ＨＤＬ開発環境６１からの使用可能なＳＬＣセットのうち、たとえばＩＣ９０または他の設計されたハードウェア内に含めるべきセットを選択する。インフラストラクチャチューザ６３は、ＳＬＣ選択７３を、構成エージェント７０に転送する。
【００１３】
構成エージェント７０は、ＨＤＬ調節コンポーネント６７を含む。ＨＤＬ調節コンポーネント６７は、ハードウェア記述７５を調節し、結果として生成された調節済みハードウェア記述７６を、ロジックシンセサイザ(logic synthesizer)６８に転送する。これについては後述する。ロジックシンセサイザ６８は、調節済みハードウェア記述７６を合成して、ネットリスト７７を生成する。ネットリスト７７は、ハードウェア構成ツール６６を提供するベンダに依存したタイプである。たとえば、ネットリスト７７は、ＥＤＩＦネットリストである。ネットリスト７７は、ハードウェア構成ツール６６に送信される。ハードウェア構成ツール６６は、ベンダ固有のバックエンドツールであり、ネットリストを受け取り、プログラマブルロジックデバイスの完成した回路構成を生成する。たとえば、ハードウェア構成ツール６６は、ＩＣ９０をＦＰＧＡ回路として実現するＦＰＧＡビットストリーム７８を生成するのに使用されるベンダ固有のバックエンドツールである。たとえば、ハードウェア構成ツール６６は、Ｘｉｌｉｎｘ社のＩＳＥ  Ａｌｌｉａｎｃｅ構成ツールである。
【００１４】
図３は、ＩＣ９０の回路構成を生成するプロセスの流れを示す、簡略化されたフロー図である。低レベルハードウェア要素１１は、（図２に示される）ＨＤＬ開発環境６１内で開発される。インフラストラクチャのセット１２は、ＩＣ９０の構成を設計する時に選択されたＳＬＣを含む。
【００１５】
たとえば、インフラストラクチャのセット１２は、ＶＨＤＬモジュールを使用して開発される。ＶＨＤＬモジュールは、合成(synthesize)プロセス１３を経てネットリスト７１を生成する。ここで、ネットリストは、たとえばＥＤＩＦネットリストである。制約７２も、インフラストラクチャ１２について指定される。低レベルハードウェア要素１１は、ＶＨＤＬなどの特定のＨＤＬ、ハードウェア構成ツール６６（図２に示す）、制約を表現する言語またはフォーマット、対象のＩＣアーキテクチャに熟練したＨＤＬ専門家によって設計される。
【００１６】
アプリケーション設計／シミュレーション環境（図２に示す）内において、設計者は、グラフィカルなハイレベルのアプリケーション設計およびシミュレーション環境１４（これは、グラフィカルなハイレベルのアプリケーション設計およびシミュレーション環境６２と本質的に等価である）を使用する。たとえば、グラフィカルなハイレベルのアプリケーション設計およびシミュレーション環境１４は、たとえばＭａｔｈＷｏｒｋｓ社から入手可能なＳｉｍｕｌｉｎｋ（商標）などの、最近の、グラフィカルなハイレベルのシミュレーション／モデリング環境である。グラフィカルなハイレベルのアプリケーション設計およびシミュレーション環境１４内において、設計者は、ハイレベルのシミュレーション／モデリング環境から出ることなく、ＩＣ９０の完全な回路記述を生成することができるように、インフラストラクチャ１２に対するリファレンスを行うことができる。これについては後述する。さらに設計者の視点から、前述したような、バスインターフェース８２、ＳＲＡＭ８３、ＤＲＡＭ８４、バスインターフェース８５、ＧＰＩＯ８６、ＤＡＣ８７、ＡＤＣ８８、または他のＳＬＣ関連ハードウェアなど、ＩＣ９０の外部にあるハードウェアを、グラフィカルでハイレベルなシミュレーション／モデリング環境内において、コンポーネントとして個別にドラッグ(drag)、ドロップ(drop)、操作(manipulate)することができる。さらにハイレベル環境のユーザは、低レベルのインフラストラクチャ関連のＨＤＬを変更することなく、これらの要素を、より深くネストされたサブシステムに入れ、それらをユーザ指定のロジックで包み(wrap)、代替のまたは抽象度の高いインターフェースでそれらを示す（表す）ことができる。
【００１７】
ＨＤＬジェネレータ６４（図２に示す）内において、ＨＤＬおよびコア(core)生成プロセス１５が起こり、ネットリストコア(core)２５およびハードウェア記述２４を生成する。たとえば、ハードウェア記述２４（本質的にハードウェア記述７５と同じである）は、ＶＨＤＬモジュールである。たとえば、ネットリストコア２５は、ＥＤＩＦネットリストコアである。ネットリストコアは、特定のアーキテクチャについて最適化された、ネットリストされたサブシステムであり、その回路のプリミティブ(primitive)を呼び出す。ネットリストコアは、一部のブロックについては、ハイレベル環境および／またはＨＤＬジェネレータ６４のユーザの裁量で直接生成され、これは、ＶＨＤＬとしての中間表現をバイパスする。
【００１８】
ＨＤＬ調節コンポーネント６７（図２に示す）内において、マージ準備プロセス１６は、調節済みハードウェア記述７６を生成する。マージ準備プロセス１６は、グラフィカルなハイレベルのアプリケーション設計およびシミュレーション環境１４により定義されるサブシステム全体のトップレベルの「ポート名」が、インフラストラクチャ１２により提供される「ポート名」に対してリファレンスする（参照する）ように、ハードウェア記述７５を調節する。これは、グラフィカルシミュレーション／モデリング環境のユーザが、自分のアプリケーション内にＳＬＣリファレンスを配置するために選択した深さ(depth)と位置(location)に対して、ＨＤＬジェネレータ６４により生成されるトップレベルの「ポート名」が影響を受けやすい状況により、必要とされることがある。調節済みハードウェア記述７６は、インフラストラクチャ１２により提供されるポート名を含むので、ハードウェア構成ツール６６（図２に示す）は、ハードウェア記述７５により定義される一次コンポーネントがインフラストラクチャ１２とどのように相互接続しているかを認識することができる。これにより、ハードウェア記述７５により定義される一次コンポーネントとインフラストラクチャ１２との間の「マージ(merge)」が可能になる。このようにして、ハードウェア記述７５により定義される一次コンポーネントの機能は、ハードウェア構成ツール６６によって、その周りのインフラストラクチャ１２に埋め込まれることができる。
【００１９】
ロジックシンセサイザ６８（図２に示す）内において、合成プロセス１７は、ネットリスト７７を生成する。たとえば、ネットリスト７７は、ＥＤＩＦネットリストである。
【００２０】
ハードウェア構成ツール６６内において、マージ／マップ／配置(place)／ルート(route)およびフォーマットのプロセス１８が、ＩＣ９０を実現するベンダ固有の回路記述７８を生成する。たとえば、ベンダ固有の回路記述７８は、ＦＰＧＡがその回路構成を確立することができる元となる、ＦＰＧＡ「ビットストリーム」である。
【００２１】
ハードウェア構成ツール６６内において、ネットリスト７７は、ネットリスト７１に従属する。したがって、グラフィカルなハイレベルのアプリケーション設計およびシミュレーション環境１４を、低レベルのハードウェア要素１１に本質的に従属するサブシステムを生成するものと考えることができる。しかし、グラフィカルなハイレベルのアプリケーション設計および／シミュレーション環境１４を使用する設計者にとっては、ハードウェア要素１１およびこれらに関連づけられたＳＬＣは共に、自分のアプリケーションのコンポーネントとして表わされ、このようなコンポーネントは各々、自分の一次ロジックコンポーネントに従属するように見える。このようなコンポーネントは各々、ＳＬＣだけではなく、そのＳＬＣに接続するＩＣ９０の外部のハードウェアのモデルも含む。このように、インフラストラクチャ１２は、グラフィカルなハイレベルのアプリケーション設計およびシミュレーション環境１４内で表わされ使用されることができる。インフラストラクチャ１２は、ＨＤＬ開発環境６１（図２に示す）において別個に開発されるので、グラフィカルなハイレベルのアプリケーション設計およびシミュレーション環境１４を使用する設計者は、実際、詳細なインフラストラクチャ回路に関する事項（問題）を考慮せずに、ＩＣ９０の完全な設計を生成することができる。ここで、インフラストラクチャ回路に関する事項（問題）とは、たとえば、一次ロジックコンポーネント、インフラストラクチャ回路、およびオフチップロジックに提供する種々のクロック位相と周波数、ＤＲＡＭリフレッシュサイクルのような複雑な外部デバイスのニーズの管理、オンチップまたはオフチップのリソースアクセスの重要なシーケンスなどである。また、グラフィカルなハイレベルのアプリケーション設計およびシミュレーション環境１４を使用する設計者は、構成エージェント６５により、ハードウェア構成ツール６６の知識がなくても操作することができる。
【００２２】
典型的には、インフラストラクチャ１２は、プロジェクトの最初に生成される。インフラストラクチャ１２は、グラフィカルなハイレベルのアプリケーション設計およびシミュレーション環境１４を使用する設計者により必要とされる、低レベルのハードウェア要素を含む。たとえば、インフラストラクチャ１２は、グラフィカルなハイレベルのアプリケーション設計およびシミュレーション環境１４を使用する設計者により必要とされる、すべてのＳＬＣを含む。インフラストラクチャ１２が完成すると、設計者は、グラフィカルなハイレベルのアプリケーション設計およびシミュレーション環境１４を使用して、効率的に、完全な集積回路設計を生成する。こうして、設計者は、ＨＤＬレベルの設計に関する知識を持った人の支援を受けずに、設計、シミュレーション、合成、配置(deployment)、および回路内の検証、といった多くのサイクルを繰り返すことができる。
【００２３】
グラフィカルなハイレベルのアプリケーション設計およびシミュレーション環境１４内において、設計の階層は、逆になっているように見える。すなわち、設計者は、グラフィカルビューにおいて、インフラストラクチャ１２の要素を、ドラッグアンドドロップすることができる。設計者から見ると、たとえば図１に示す一次ロジックコンポーネント９８などの一次コンポーネントの設計は、見かけ上、設計のトップレベルを構成する。したがって一次コンポーネントは、インフラストラクチャ１２の要素を使用し、それらをサブコンポーネントとして処理することができる。
【００２４】
しかし、図３に示され、また図２ではＨＤＬ調節６７として示されるマージ準備プロセス１６の、階層を逆転する作用により、ハードウェア構成ツール６６は、ネットリスト７１で定義されるインフラストラクチャ１２内で、ネットリスト７７で定義される一次コンポーネントを容易にマージすることができる。
【００２５】
グラフィカルなハイレベルのアプリケーション設計およびシミュレーション環境１４内においては、命名規則(naming convention)を使用して、ＨＤＬ調節コンポーネント６７が、一次ロジックコンポーネントのトップレベルについてのポート名のセットを、インフラストラクチャ１２により期待されるセットと正確に一致するよう生成するのを支援する。
【００２６】
これを行うため、グラフィカルなハイレベルのアプリケーション設計およびシミュレーション環境１４におけるサブシステムの一部に、ハードウェア記述７５にキュー(cue)とて現れる所定のアーティファクトをシードする(seed, 種をまく)。メタデータとも呼ばれるこれらのキューは、たとえば、特定の「ダミー」のポート名において明らかにされる。これらのキューのうちの１つが、インフラストラクチャに対して直接インターフェースするサブシステムのそれぞれにおいて必要とされる。
【００２７】
さらに、ＨＤＬ調節コンポーネント６７は、ＨＤＬジェネレータ６４がハードウェア記述７５を生成したサブシステム全体に対応するＨＤＬエンティティの名前を変える。サブシステムのエンティティまたはタイプ名は、たとえば、強制的に「ｓｄｉｓｂｘ」にされる。たとえば、インフラストラクチャ１２は、このタイプ名をリファレンスする。また、たとえば、このサブシステムのルート(root)を保持するファイルも同様に、「ｓｄｉｓｂｘ．ｖｈｄ」と名前を変えられる。このサブシステムは、一次ロジックコンポーネントに対応し、これにより、ロジックシンセサイザ６８に明らかにされ（提示され）、よってハードウェア構成ツール６６に明らかにされる（提示される）が、ここで、ＨＤＬの「エンティティ」（タイプ名）、調節済みハードウェア記述７６のトップレベルを保持するファイル、ネットリスト７７のトップレベルを保持するファイル、低レベルのインフラストラクチャのネットリスト７１と一次ロジックコンポーネントのネットリスト７７の間の接続を集合的に記述する「ポート名」については、名前は変わらない。これらの名前が変わらないことにより、ハードウェア構成ツール６６内のマージプロセスが簡単化される。
【００２８】
必要であれば、ＨＤＬ調節コンポーネント６７は、ハードウェア記述７５におけるキューを使用することにより、新しく生成されたサブシステムのポート名とインフラストラクチャ１２が期待するポート名を強制的に一致させるのを支援する。具体的には、グラフィカルなハイレベルのアプリケーション設計およびシミュレーション環境１４は、サブシステムのポート名を本質的に（固有に）生成することがあり、ここで、グラフィカルなハイレベルのアプリケーション設計およびシミュレーション環境１４によって提供されるビューに現れるときに、所望のポート名が、該サブシステムの上に存在する周りのコンポーネントの各レベルの名前を反映するトークンを接頭辞として持つようにされる。これが起こると、アーティファクト（その名前は、効果的に確保される）の名前も、同様の影響を受ける。ＨＤＬ調節コンポーネント６７は、アーティファクトが経験した名前変換を認識し、該アーティファクトと同じ、インフラストラクチャを包むサブシステム(infrastructure-wrapping subsystem)内に存在するポート名に、逆の名前変換を適用する。
【００２９】
オプションとして、グラフィカルなハイレベルのアプリケーション設計およびシミュレーション環境１４は、新しいアプリケーションサブシステムのポート名を指定するユーザブロックによってポート名の変更が起きないＶＨＤＬを、アプリケーション設計ビューにおいて異なってネストされたり、またはより深くネストされるサブシステムにそれらが配置されているか否かにかかわらず、生成することができる。
【００３０】
構成エージェント７０は、ハードウェア構成ツール６６からの出力ファイルを、アプリケーション設計／シミュレーション環境６２における元の（オリジナルの）設計／モデルファイルのルート名と一致するように名前を変える。これは構成管理を支援し、実際、一次コンポーネントとインフラストラクチャ１２のマージを容易化するために起こった、強制された名前変換のうちのいくつかを逆転させる。
【００３１】
図４は、グラフィカルなハイレベルのアプリケーション設計およびシミュレーション環境１４（図３に示す）によって生成されたウィンドウ３０を示す。グラフィカルなハイレベルのアプリケーション設計およびシミュレーション環境１４は、グラフィカル設計ツールである。ウィンドウ３０内において、ｇｐｉｏサブシステム３５は、図１に示すＧＰＩＯ８６およびＳＬＣ９５の両方の機能を表わす。グラフィカルなハイレベルのアプリケーション設計およびシミュレーション環境１４を使用する設計者には、インフラストラクチャ１２の多くのこのようなサブシステムが提示される。設計者は、これらのサブシステムを、グラフィカルなハイレベルのアプリケーション設計およびシミュレーション環境１４のベンダにより提供されるロジックブロックと共に結びつける(wiring)ことにより、該これらのサブシステムを使用する。
【００３２】
図におけるＧＰＩＯサブシステム３５は、ｏｕｔ＿ｎｏｔ＿ｉｎ入力３１、ｅｎ＿ｎｏｔ＿ｚ入力３２、ｔｏ＿ｇｐｉｏ入力３３、ｆｒｏｍ＿ｇｐｉｏ出力３４を有するよう示されている。
【００３３】
カーソル３６でＧＰＩＯサブシステム３５を選択すると、図５に示すウィンドウ４０が開く。図５において、ＧＰＩＯサブシステム３５は、グラフィカルなハイレベルのアプリケーション設計およびシミュレーション環境１４において、ウィンドウ４０の中に示されるブロックとして実現されるよう示されている。このレベルでは、ＧＰＩＯサブシステム３５に関するポート名が目に見える。
【００３４】
ｓｂｘ＿ｇｐｉｏ＿ｏｕｔ＿ｎｏｔ＿ｉｎブロック５０は、ｏｕｔ＿ｎｏｔ＿ｉｎコネクタ４１および終端４５の間に接続される。ｓｂｘ＿ｇｐｉｏ＿ｅｎ＿ｎｏｔ＿ｚブロック５１は、ｅｎ＿ｎｏｔ＿ｚコネクタ４２および終端４６の間に接続される。ｓｂｘ＿ｇｐｉｏ＿ｔｏ＿ｇｐｉｏブロック５２は、ｔｏ＿ｇｐｉｏコネクタ４３および終端４７の間に接続される。ｍｅｒｃ＿ｇｓｋｔ＿ｔａｇ＿ｇｐｉｏブロック５３は、定数５５および終端４８の間に接続される。ｓｂｘ＿ｇｐｉｏ＿ｆｒｏｍ＿ｇｐｉｏブロック５４は、アース４９およびｆｒｏｍ＿ｇｐｉｏコネクタ４４の間に接続される。終端ブロックは、アンロードされている素子すなわち駆動されていない素子に関するシミュレーションタイムの警告を抑制するためだけに存在してもよい。
【００３５】
Ｍｅｒｃ＿ｇｓｋｔ＿ｔａｇ＿ｇｐｉｏブロック５３は、マージ準備プロセス１６の最中、ＨＤＬ調節コンポーネント６７が探すアーティファクトである。アーティファクトは、グラフィカルなハイレベルのアプリケーション設計およびシミュレーション環境１４を使用する設計者が、ｇｐｉｏサブシステムを配置した設計階層内の位置を示す役割を果たす。言い換えれば、アーティファクトは、ＨＤＬジェネレータ６４により行われたＨＤＬ生成の最中に、兄弟ブロック（ｓｂｘ＿ｇｐｉｏ＿ｏｕｔ＿ｎｏｔ＿ｉｎブロック５０、ｓｂｘ＿ｇｐｉｏ＿ｅｎ＿ｎｏｔ＿ｚブロック５１、ｓｂｘ＿ｇｐｉｏ＿ｔｏ＿ｇｐｉｏブロック５２、ｓｂｘ＿ｇｐｉｏ＿ｆｒｏｍ＿ｇｐｉｏブロック５４）の名前変換が行われていれば、ＨＤＬ調節コンポーネント６７にその名前変換を示す。たとえば、「＊＿ｇｓｋｔ＿ｔａｇ＿＊」（ここで、「＊」は、有効な識別子が形成されることを可能にする任意の追加の文字を示す）のように、特定のパターンと一致する名前は、グラフィカルなハイレベルのアプリケーション設計とシミュレーション環境１４内で使用されるポート名について確保された名前スペース(namespace)を構成するので、ＨＤＬ調節コンポーネント６７は、グラフィカルなハイレベルのアプリケーション設計およびシミュレーション環境１４内の設計において行われた名前変換があれば、ｍｅｒｃ＿ｇｓｋｔ＿ｔａｇ＿ｇｐｉｏブロック５３に対する該兄弟ブロックを識別することができる。これは、ｍｅｒｃ＿ｇｓｋｔ＿ｔａｇ＿ｇｐｉｏブロック５３もまた、ＨＤＬコードがＧＰＩＯサブシステム３５について生成されるとき、実際、何らかの名前変換を受けるからである。
【００３６】
Ｓｂｘ＿ｇｐｉｏ＿ｏｕｔ＿ｎｏｔ＿ｉｎブロック５０、ｓｂｘ＿ｇｐｉｏ＿ｅｎ＿ｎｏｔ＿ｚブロック５１、ｓｂｘ＿ｇｐｉｏ＿ｔｏ＿ｇｐｉｏブロック５２、ｓｂｘ＿ｇｐｉｏ＿ｆｒｏｍ＿ｇｐｉｏブロック５４は、グラフィカルなハイレベルのアプリケーション設計およびシミュレーション環境１４により生成されたウィンドウ３０内で見ると、ＧＰＩＯサブシステム３５について４つの対応するポート名を生成する（図４に示す）。マージ準備プロセス１６の最中、必要であればＨＤＬにおける名前の変更を介して、該ポート名は、ＨＤＬ調節コンポーネント６７によって、インフラストラクチャ１２内にリストされた対応するポート名に一致させられることができる。これによって、ロジックシンセサイザ６８は、ハードウェア構成ツール６６によりネットリスト７１と容易にマージされることのできるネットリスト７７（図３に示す）を生成することができる。
【００３７】
図６は、アプリケーション設計／シミュレーション環境のトップレベルビューの例を示す。ウィンドウ１６０内において、ＧＰＩＯ  ＳＬＣ１６５（本質的にサブシステムであり、その内容は、図５に詳細が示される）、ホストインターフェースＰＣＩ  ＳＬＣ１６１、ＳＲＡＭ  ＳＬＣ１６４が示されている。さらに、連結ロジックデバイス１６２、８つの６４ビットレジスタサブシステム１６３、カウンタ論理素子１６６、スライス論理素子１６７、レジスタ論理素子１６８を示す。また、ＶＨＤＬ生成ボタン１７０およびエージェント構成ボタン１６９を示す。
【００３８】
上述のように、開示した本発明の実施形態では、アプリケーション開発者のトップレベルビューの中で、すべてのＳＬＣユニットからのすべてのポートを示す必要はない。一次ロジックコンポーネントおよびインフラストラクチャ（これには、ＳＬＣが含まれる）の間の接続性を集合的に定義するのはこれらのポートである。今日のＰＬＤを使用するアプリケーションでは、これらのポートは容易に数百に達する。これは、本質的に、これらの集積回路のＩ／Ｏピン数が多いこと、および、これによって一次ロジックコンポーネントに提示されることのできるＩ／Ｏインターフェースの数が多いことに起因する。ＨＤＬ調節コンポーネント６７の動作により、アプリケーション開発者のトップレベルビュー内にこれらのポートを提示する必要がなくなり、これにより、このビューが大幅に簡略化される。ハイレベルのグラフィカルなアプリケーション設計とシミュレーション環境のユーザが、低レベルのインフラストラクチャ関連のＨＤＬを変えずに、ＳＬＣ表現を、個別に任意の深さにネストされたサブシステムに入れ、これらをユーザ指定ロジックで包み、代替またはより抽象的なインターフェースで提示する（示す）ことができるようにするのも、これらの動作である。
【００３９】
上記の説明では、本発明の例としての方法および実施形態だけを開示および説明した。当業者であれば理解されるように、本発明は、本発明の精神および本質的な特徴から離れることなく、他の具体的な形態で具現化することができる。従って、上述の本発明の開示は、特許請求の範囲に示される本発明の範囲を例示するものであり、限定するものではない。
【図面の簡単な説明】
【００４０】
【図１】集積回路を含むプリント回路基板（ＰＣＢ）の簡略化されたブロック図。
【図２】本発明の一実施形態に従う、設計環境の簡略化されたブロック図。
【図３】本発明の一実施形態に従う、設計環境内のプロセスフローを示す、簡略化されたフロー図。
【図４】本発明の一実施形態に従う、グラフィカル設計ツールのためのグラフィカルユーザインターフェースの簡略化されたスクリーンショットを示す図。
【図５】本発明の一実施形態に従う、グラフィカル設計ツールのためのグラフィカルユーザインターフェースの簡略化されたスクリーンショットを示す図。
【図６】本発明の一実施形態に従う、アプリケーション設計／シミュレーション環境のトップレベルビューの例を示す図。
【符号の説明】
【００４１】
６１  ハードウェア記述言語（ＨＤＬ）開発環境
６２  アプリケーション設計／シミュレーション環境
６３  インフラストラクチャチューザ
６４  ＨＤＬジェネレータ
６５  構成エージェント
６６  ハードウェア構成ツール
６７  ＨＤＬ調節コンポーネント
６８  ロジックシンセサイザ
７０  構成エージェント
７５  ハードウェア記述
７６  調節済みハードウェア記述
９０  集積回路（ＩＣ）
９１―９７  サポートロジックコンポーネント（ＳＬＣ）
９８  一次ロジックコンポーネント
【図１】
2005346710.tif 000003
【図２】
2005346710.tif 000004
【図３】
2005346710.tif 000005
【図４】
2005346710.tif 000006
【図５】
2005346710.tif 000007
【図６】
2005346710.tif 000008