(57)【要約】多面的な設計プラットフォーム（１０４）は、チップ上の複雑なコアベースシステムを設計するフロントエンドハードウェアＩＣ設計者に対するツールとして動作する。設計プラットフォーム（１０４）は、インターネット（２３０）等のネットワークを利用して、既に設計された仮想コアブロックへのアクセスをサーチし、達成する。設計プラットフォーム（１０４）は、選択された仮想コアブロックについての全ての関連情報を選択（３０６）かつ転送（３０８）する手段を提供して、設計者がすぐに仮想コアブロックを新たなＳｏＣ設計へ組み込めるようにする。設計プラットフォーム（１０４）はさらに、複数の公知の検証ツールによる即時の利用のために、適切な安全なコアファイル（３２０）を生成して、仮想コアブロックおよび基本のＳｏＣ設計の機能の統合および接続の両方を検証する。【選択図】図２
2004531835.tif 000002
【特許請求の範囲】
【請求項１】
回路設計プラットフォームであって、
カタログデータベースを含むコンピュータシステムであって、該コンピュータシステムは分散型電子ネットワークでアクセス可能であり、該カタログデータベースは設計プロセスの異なる段階での使用のためのコンポーネントデータを格納している、コンピュータシステム；
該コンピュータシステム上で稼動するアプリケーションサーバであって、該アプリケーションサーバは該カタログデータベースに接続され、そして該アプリケーションサーバはさらに、
特定のコンポーネントデータについて該分散型電子ネットワークを検索し得る検索エンジン；
回路設計全体にコンポーネントを配置するための回路インテグレータ；
該回路設計全体に配置されたコンポーネントを接続するためのコンポーネントコネクタ；
チップ設計全体のソースコードネットリストを作成し得るネットリストジェネレータであって、該ソースコードネットリストはコンポーネントの位置および接続データを含む、ネットリストジェネレータ；
種々の論理シミュレータによってコンパイルされそして実行されるソースコードを作成し得る検証ソースコードジェネレータ
を含む、アプリケーションサーバ；および
該分散型電子ネットワークで他のコンピュータシステムに対して該コンポーネントデータにアクセスするリクエストを作成するためおよび受け取るために該コンピュータシステムによって管理されるネットワークインターフェース
を含む、回路設計プラットフォーム。
【請求項２】
前記設計プロセスの異なる段階での使用のための前記コンポーネントデータは、利用可能な電気コンポーネントのリストを含む、請求項１に記載の回路設計プラットフォーム。
【請求項３】
さらに、前記設計プロセスの異なる段階での使用のための前記コンポーネントデータは、利用可能な各電気コンポーネントと共に使用するためのサポートデータファイルを含む、請求項２に記載の回路設計プラットフォーム。
【請求項４】
前記サポートデータファイルは、コンポーネントデータシート、タイミングモデル、アプリケーションノート、シミュレーションモデル、Ｉ／Ｏピンデータ、レジスタマップデータ、検証ソースコード、パワーデータモデル、エリアデータモデル、テストベンチファイル、バグ追跡レポート、およびシグナルインテグリティモデルを含む、請求項３に記載の回路設計プラットフォーム。
【請求項５】
前記カタログデータベースは、１以上のサプライヤーデータベースへの電子リンクを含む、請求項１に記載の回路設計プラットフォーム。
【請求項６】
前記ネットワークインターフェースは、コンポーネント設計ファイルの移動のためのリクエストを受け取り、それに応答して、前記アプリケーションサーバは、分散型電子ネットワークを通じてアクセス可能な遠隔のコンピュータシステムに該コンポーネント設計ファイルを送る、請求項１に記載の回路設計プラットフォーム。
【請求項７】
前記コンポーネント設計ファイルは、指定料金の対価として遠隔のユーザにアクセス可能にされている、請求項６に記載の回路設計プラットフォーム。
【請求項８】
前記アプリケーションサーバは、ＪＡＶＡ（Ｒ）で書かれたソースコードを含む、請求項１に記載の回路設計プラットフォーム。
【請求項９】
前記アプリケーションサーバは、公開ポータルサイトをサポートする、請求項８に記載の回路設計プラットフォーム。
【請求項１０】
前記アプリケーションサーバは非公開ポータルサイトをサポートする、請求項８に記載の回路設計プラットフォーム。
【請求項１１】
複数のユーザからのリソースを使用して回路を設計する方法であって、
第１のユーザシステムに接続された第１のデータベースに複数のコンポーネントデータファイルを格納する工程；
要求に基づいて、分散型電子ネットワークで第２のユーザシステムを該第１のユーザシステムに接続する工程であって、該第１のユーザシステムは、該第１のデータベースと相互接続された第１のアプリケーションサーバを含み、該第２のユーザシステムは、第２のデータベースと相互接続された第２のアプリケーションサーバを含む、工程；
該第２のユーザシステムから、該第１のデータベースに格納された複数のコンポーネントデータファイルの任意のファイルへのアクセスのためのリクエストを受け取る工程；
該第２のユーザシステムによって、該第１のデータベースに格納された複数のコンポーネントデータファイルを検索する工程；
該分散型電子ネットワークで該第１のユーザシステムから、該利用可能な電子コンポーネントのうちの１つのコンポーネント選択を受け取る工程；
該第２のユーザシステムによって、該第１のデータベースに格納された複数のコンポーネントデータファイルの少なくとも１つを選択する工程；
該選択された電子コンポーネントに関するさらなる情報を引き出す工程；および
該分散型電子ネットワークを介して、該第１のユーザシステムから該第２のユーザシステムへ少なくとも１つのコンポーネントデータファイルを送信する工程；
回路設計に、第１の送信されたデータファイルによって示された第１のコンポーネントを組み込む工程；
該第１のコンポーネントを該回路設計に存在する素子と相互接続する工程；
少なくとも１つのコンポーネントデータファイルを使用して、該回路設計のネットリストソースコードを作成する工程；
該送信されたコンポーネントデータファイルを使用して、該第１のコンポーネント機能の機能を検証する工程；および
該送信されたデータファイルから該回路設計の組み込まれ接続されたコンポーネントの検証ソースコードを作成する工程
を包含する、方法。
【請求項１２】
前記コンポーネントデータファイルを格納する工程は、ハードウェア言語、テキスト、ｃ−コード、またはアセンブラ言語のいずれかで、リアルアクションインプリメンテーションコードおよびサポートデータファイルを格納することを包含する、請求項１１に記載の方法。
【請求項１３】
前記検索する工程、選択する工程、組み込む工程、相互接続する工程、引き出す工程、および、ネットリストおよび検証ファイルを作成する工程は、グラフィカルユーザインターフェースによってサポートされる、請求項１１に記載の方法。
【請求項１４】
前記相互接続する工程は、前記送信されたコンポーネントデータファイルを使用して、前記回路設計プラットフォームによって自動的に実施される、請求項１１に記載の方法。
【請求項１５】
前記第１および第２のユーザシステムにおいてグラフィカルインターフェースを提供する工程、該第１および第２のユーザシステムにおいて、前記コンポーネントデータファイルの１つに対応する入力選択を受け取る工程、および該第２のユーザシステムから該第１のユーザシステムへ該入力選択の指標を送信する工程をさらに包含し、
ここで、該第２のユーザシステムから、第１のデータベースに格納された前記複数のコンポーネントデータファイルの任意のファイルへのアクセスのリクエストを受け取る前記工程は、該第２のユーザシステムにおいて該入力選択の該指標を受け取る工程を包含する、請求項１１に記載の方法。
【請求項１６】
前記分散型電子ネットワークはインターネットを包含する、請求項１１に記載の方法。
【請求項１７】
前記アプリケーションサーバは、インターネットに接続された任意のユーザワークステーションへの公開アクセスを許可する公開ポータルサイトをサポートする、請求項１６に記載の方法。
【請求項１８】
前記アプリケーションサーバは、インターネットに接続されたユーザワークステーションを選択するために公開アクセスを許可する非公開ポータルサイトをサポートする、請求項１６に記載の方法。
【請求項１９】
前記第２のユーザは、前記送信されたコンポーネントデータファイルに対して改変がなされた場合、前記第１のユーザシステムによって、更新されたコンポーネントファイルを自動的に受け取る、請求項１１に記載の方法。
【請求項２０】
前記コンポーネントデータは、前記利用可能な電子コンポーネントのサプライヤーへのリンクを含む、請求項１６に記載の方法。
【請求項２１】
複数のユーザからのリソースを使用して回路を設計するためのシステムであって、
第１のデータベースであって、第１のユーザシステムと接続された該第１のデータベースに複数のコンポーネントデータファイルを格納するための第１のデータベース；
要求に基づいて、分散型電子ネットワークで該第１のユーザシステムを第２のユーザシステムと接続するためのネットワークマネージャーであって、該第１のユーザシステムは、該第１のデータベースと相互接続されたアプリケーションサーバを含み、該第２のユーザシステムは、第２のデータベースと相互接続されたアプリケーションサーバを含む、ネットワークマネージャー；
該第２のユーザシステムから、該第１のデータベースに格納された複数のコンポーネントデータファイルの任意のファイルへのアクセスのためのリクエスト、および該第１のユーザシステムから該第２のユーザシステムへ該分散型電子ネットワークを介して少なくとも１つのコンポーネントデータファイルを送信するためのリクエストを受け取るためのネットワークインターフェース；
該第２のユーザシステムによって、該第１のデータベースに格納された該複数のコンポーネントデータファイルを検索するための検索エンジン；
該第２のユーザシステムによって、該第１のデータベースに格納された複数のコンポーネントデータファイルの少なくとも１つを選択する手段；
回路設計に、第１の送信されたデータファイルによって示された第１のコンポーネントを組み込むための回路インテグレータ；
該第１のコンポーネントを該回路設計に存在する素子と相互接続するための回路コンポーネントコネクタ；
該複数のコンポーネントデータファイルを使用して該回路設計を作成するためのネットリストソースコードジェネレータ；
該送信されたコンポーネントデータファイルを使用して、該第１のコンポーネント機能の機能を検証するためのコンポーネント機能ベリファイア；および
複数の論理シミュレータによってコンパイルされそして実行されるソースコードファイルを作成するための回路検証ファイルジェネレータ
を含む、システム。
【請求項２２】
前記第１のデータベースに格納された前記コンポーネントデータファイルは、ハードウェア言語でリアルアクションインプリメンテーションコードを含み、さらに、前記サポートデータファイルはアッセンブラ言語で格納される、請求項２１に記載のシステム。
【請求項２３】
前記検索エンジン、前記選択する手段、前記回路インテグレータ、前記回路コンポーネントコネクタ、および前記ネットリストジェネレータは、グラフィカルユーザインターフェースによってサポートされる、請求項２１に記載のシステム。
【請求項２４】
回路コンポーネントコネクタは、前記送信されたコンポーネントデータファイルを使用する自動コンポーネントコネクタをさらに含む、請求項２１に記載のシステム。
【請求項２５】
前記分散型電子ネットワークはインターネットを含む、請求項２１に記載のシステム。
【請求項２６】
前記アプリケーションサーバは、インターネットに接続された任意のユーザワークステーションへの公開アクセスを許可する公開ポータルサイトをサポートする、請求項２５に記載のシステム。
【請求項２７】
前記アプリケーションサーバは、インターネットに接続された任意のユーザワークステーションへの公開アクセスを許可する非公開ポータルサイトをサポートする、請求項２５に記載のシステム。
【請求項２８】
前記送信されたコンポーネントデータファイル中にエラーが検出された場合、前記第１のユーザシステムによって、更新されたコンポーネントファイルを前記第２のユーザシステムに自動的に送達するバグトラッカーをさらに含む、請求項２１に記載のシステム。
【請求項２９】
１またはそれ以上のプロセッサに一連の工程を実施させる、１セットのプログラムされた命令が含まれるコンピュータ読み取り可能な媒体であって、該工程は、
第１のユーザシステムに接続された第１のデータベースに複数のコンポーネントデータファイルを格納する工程；
要求に基づいて、分散型電子ネットワークで第２のユーザシステムを該第１のユーザシステムに接続する工程であって、該第１のユーザシステムは、該第１のデータベースと相互接続された第１のアプリケーションサーバを含み、該第２のユーザシステムは、第２のデータベースと相互接続された第２のアプリケーションサーバを含む、工程；
該第２のユーザシステムから、該第１のデータベースに格納された複数のコンポーネントデータファイルの任意のファイルへのアクセスのためのリクエストを受け取る工程；
該第２のユーザシステムによって、該第１のデータベースに格納された該複数のコンポーネントデータファイルを検索する工程；
該分散型電子ネットワークで該第１のユーザシステムから、該利用可能な電子コンポーネントの１つのコンポーネント選択を受け取る工程；
該第２のユーザシステムによって、該第１のデータベースに格納された複数のコンポーネントデータファイルの少なくとも１つを選択する工程；
該選択された電子コンポーネントに関するさらなる情報を引き出す工程；および
少なくとも１つのコンポーネントデータファイルを、該分散型電子ネットワークを介して、該第１のユーザシステムから該第２のユーザシステムへ送信する工程；
回路設計に、第１の送信されたデータファイルによって示された第１のコンポーネントを組み込む工程；
該第１のコンポーネントを該回路設計に存在する素子と相互接続する工程；
該少なくとも１つのコンポーネントデータファイルを使用して該回路設計のネットリストソースコードを作成する工程；
該送信されたコンポーネントデータファイルを使用して第１のコンポーネント機能の機能を検証する工程；および
該送信されたデータファイルから該回路設計の組み込まれ接続されたコンポーネントの検証ソースコードを作成する工程
を包含する、コンピュータ読み取り可能な媒体。
【請求項３０】
コンピュータシステム上で稼動するアプリケーションサーバに格納される、請求項２９に記載のコンピュータ読み取り可能な媒体。
【請求項３１】
任意のコンピュータ言語で書かれた、請求項３０に記載のコンピュータ読み取り可能な媒体。
【請求項３２】
回路チップを設計するためのシステムであって、
カタログデータベースを含むコンピュータシステムであって、該コンピュータシステムは、分散型電子ネットワークでアクセス可能であり、該カタログデータベースは、設計プロセスの異なる段階での使用のためのコンポーネントデータを格納している、コンピュータシステム；
該コンピュータシステム上で稼動するアプリケーションサーバであって、該アプリケーションサーバは該カタログデータベースに接続され、そして該アプリケーションサーバはさらに、
回路設計プラットフォーム
を含む、アプリケーションサーバ；および
該分散型電子ネットワークで他のコンピュータシステムに対して該コンポーネントデータにアクセスするリクエストを作成するためおよび受け取るために該コンピュータシステムによって管理されるネットワークインターフェース
を含む、システム。
【請求項３３】
前記回路設計プラットフォームは、特定のコンポーネントデータについて前記分散型電子ネットワークを検索し得る検索エンジンをさらに含む、請求項３２に記載のシステム。
【請求項３４】
前記回路設計プラットフォームは、回路設計全体にコンポーネントを配置するための回路インテグレータをさらに含む、請求項３２に記載のシステム。
【請求項３５】
前記回路設計プラットフォームは、前記回路設計全体に配置されたコンポーネントを接続するためのコンポーネントコネクタをさらに含む、請求項３２に記載のシステム。
【請求項３６】
前記回路設計プラットフォームは、チップ設計全体のソースコードネットリストを作成し得るネットリストジェネレータをさらに含み、該ソースコードネットリストはコンポーネント位置および接続データを含む、請求項３２に記載のシステム。
【請求項３７】
前記回路設計プラットフォームは、種々の論理シミュレータによってコンパイルされ実行されるソースコードを作成し得る検証ソースコードジェネレータをさらに含む、請求項３２に記載のシステム。
【請求項３８】
複数のユーザからのリソースを使用して回路を設計する方法であって、
第１のユーザシステムに接続された第１のデータベースに複数のコンポーネントデータファイルを格納する工程；
要求に基づいて、分散型電子ネットワークで第２のユーザシステムを該第１のユーザシステムに接続する工程であって、該第１のユーザシステムは、該第１のデータベースと相互接続された第１のアプリケーションサーバを含み、該第２のユーザシステムは、第２のデータベースと相互接続された第２のアプリケーションサーバを含む、工程；
該第２のユーザシステムから、該第１のデータベースに格納された複数のコンポーネントデータファイルの任意のファイルへのアクセスのためのリクエストを受け取る工程；
該第２のユーザシステムによって、該第１のデータベースに格納された複数のコンポーネントデータファイルを検索する工程；
該分散型電子ネットワークで該第１のユーザシステムから、該利用可能な電子コンポーネントの１つのコンポーネント選択を受け取る工程；
該第２のユーザシステムによって、該第１のデータベースに格納された複数のコンポーネントデータファイルの少なくとも１つを選択する工程；
該選択された電子コンポーネントに関するさらなる情報を引き出す工程；および
該分散型電子ネットワークを介して、該第１のユーザシステムから該第２のユーザシステムに少なくとも１つのコンポーネントデータファイルを送信する工程；および
回路設計全体を作成し、該送信されたデータファイルを使用して全体回路サポートファイルを添付する工程
を包含する、方法。
【請求項３９】
前記回路設計全体を作成する工程は、回路設計に、第１の送信されたデータファイルによって示された第１のコンポーネントを組み込むことをさらに包含する、請求項３８に記載の方法。
【請求項４０】
前記回路設計全体を作成する工程は、前記第１のコンポーネントを前記回路設計に存在する素子と相互接続することをさらに包含する、請求項３８に記載の方法。
【請求項４１】
前記回路設計全体を作成する工程は、前記少なくとも１つのコンポーネントデータファイルを使用して、該回路設計のネットリストソースコードを作成することをさらに包含する、請求項３８に記載の方法。
【請求項４２】
前記回路設計全体を作成する工程は、前記送信されたコンポーネントデータファイルを使用して、該第１のコンポーネント機能の機能を検証することをさらに包含する、請求項３８に記載の方法。
【請求項４３】
前記回路設計全体を作成する工程は、前記送信されたデータファイルから前記回路設計の組み込まれて接続されたコンポーネントの検証ソースコードを作成することをさらに包含する、請求項３８に記載の方法。
【請求項４４】
遠隔ＩＰコンポーネントリソースを使用する回路設計の方法であって、
分散型ネットワークを通じてリンクした遠隔データベースから、予め指定されたＩＰコンポーネントのソースコードファイルを取り込む工程；
単一回路設計において、取り込んだＩＰコンポーネントを組み立てる工程；および
該単一回路設計を表すソースコードおよびサポートファイルを作成する工程
を包含する、方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の分野は、電子設計ツールおよび自動化、より具体的には、インターネットなどの分散型電子ネットワークを介してアクセス可能なリソースを用いて電子回路およびチップ設計を容易にする方法およびシステムに関する。
【背景技術】
【０００２】
電子産業においては、連続的に向上する設計および検証ツールの助けにより、以前より進んだチップおよび回路設計が生成されている。チップ設計、特にシステムオンチップ（ＳｏＣ）設計は、チップあたり数千万のゲートを含み得、すぐに、チップあたり数億のゲートの範囲に達する。エンジニアは、概して、チップ設計のレイアウトを行い、関連する大量の情報の管理に役立てるために、進んだソフトウェアツールを必要とする。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
電子設計プロセスの高いレベルでの観点から、設計チームは、製品アイディアの着想から完成まで、「販売までの時間」と呼ばれる期間をかける。競争が激しくなることにより、新たな製品の販売までの時間を短くするという大きなプレッシャーがかかるようになる。なぜなら、最初に新たな製品を販売する企業が、典型的には、後続の競合相手に対して大きな市場占有率を確保し、維持することが出来ることが予測されるからである。このような環境においては、製品の予定の出荷日と、実際の出荷日との間の数日のような小さな差が、利潤率および発生する収益に大きな差になり得る。
【０００４】
大規模回路および複雑なチップを設計する、現在の環境において、時間および職員は不足し、予算は厳しい。設計速度および効率を上げる最近の傾向には、電子回路ブロックまたはサブシステムを再使用またはリサイクルすることが含まれる。電子回路ブロックまたはサブシステムは、代わりに、「コア」「仮想コンポーネントブロック」、または「ＩＰ」（これらのパッケージ済み回路ブロックの専有的な性質を表す「知的財産」の頭字語である）と呼ばれる。仮想コンポーネントブロックの設計がテストされ、検証された後、仮想コンポーネントブロックは、もともとの作成につながったアプリケーションとはまったく別のアプリケーションにおいて再使用され得る。元の設計者と同じ企業内の他の設計グループは、この再使用を達成し得る。あるいは、この再使用は、ＩＰを購入するか、使用許諾を得るか、または移管されて、新たな設計にＩＰを組み込む、他の第三者によって達成され得る。例えば、携帯電話サブシステムにおいて用いられる、アプリケーション専用集積回路（ＡＳＩＣ）は、マイクロコントローラ、デジタル信号プロセッサおよび他のコンポーネントなどの数個のコアを含み得る。ＡＳＩＣは、全体で、携帯電話サブシステムとしての専用機能を行うが、ＡＳＩＣ設計内のコアのそれぞれは、他のＡＳＩＣにおいて用いられ得る総称的な用途を有し得る。携帯電話サブシステムの設計がテストされ、検証された後、コアの各々は、例えば、自動車のアプリケーションにおいて（仮想コンポーネントブロックとして）再使用され得る。仮想コンポーネントブロックの設計再使用は、設計者が設計全体を始めから作る場合よりも早く設計を完成させることを可能にし、仮想コンポーネントブロックにおいて実現されるサブシステムのデバッグ、テスト、および検証の必要をなくす。現在市販されている仮想回路ブロックまたはＩＰコアの例としていくつか挙げると、Ｖｉｔｅｒｂｉデコーダ、マイクロコントローラ、デジタル／アナログコンバータおよび暗号化／解読プロセッサがある。
【０００５】
仮想回路ブロック（すなわち、ＩＰコア）は、標準的なコードのブロックの購入を可能にすることによって販売されるまでの時間を短くする手段を提供するが、仮想回路ブロックの簡便な販売および使用には、いくつかの障害がある。以前のコア設計の再使用は、設計の総時間を短くするが、新たなＡＳＩＣ設計の設計基準を満たす以前のコア設計の初期サーチは、それ自体時間がかかり、退屈なものである。品質保証については、設計者が、仮想回路ブロックの品質および特定の設計に対する適合性を確かめる標準的な方法は、ほとんどない。反対に、仮想回路ブロックの販売者が、製品の品質を将来の顧客に示す標準的な方法がほとんどない。他の障害は、仮想回路ブロックを構成するコードおよび／またはデータの保護である。仮想回路ブロックを提供する企業は、製品の使用を追い、それらのブロック内のコードおよび／またはデータを盗難から守る方法を必要としている。このような方法は、好ましくは、控えめなものであり、かつ、これらのＩＰコアを設計に組み込むために必要な情報への完全なアクセスを可能にするものである。他の問題としてデータフォーマットがある。回路設計において用いられるために購入される仮想回路ブロックは、その設計において用いられるデータフォーマットに適合する必要がある。しかし、仮想回路ブロックとインターフェースする規格は、そういう規格が存在するとすれば、いまだ進化しているものである。結果として、仮想回路ブロックのインターフェースフォーマットを熟知するためには、仮想回路ブロックを回路設計に統合するだけでなく、大量の作業が必要となり得、したがって、仮想回路ブロックの使用を通じて得られる時間的な利点が低減される。また、高い販売および法的費用の形での取引のオーバーヘッドが、仮想回路ブロックの販売および使用を妨げている。例えば、仮想回路ブロックのライセンシングについて、一方または両者が法的な検討をすることが、しばしば必要とされる。
【０００６】
設計および検証ツールが獲得され、使用される現在の方法の他の欠点は、技術的なサポートに関する。販売業者は、しばしば、所与のソフトウェアツールについて技術的なサポートを必要とするユーザが利用できるヘルプ回線を有する。しかし、エンジニアが、いらいらするようなボイスメールの迷路、および、１人以上の販売業者のヘルプ回線にありがちなより知識が少ない最初の回線のサポート職員を通り過ぎなければならないとすると、複雑な回路に適用された複雑なツールについての問題点を、エンジニアが説明し、サポート職員が解決するまでには、しばしば、時間がかかることになる。深刻な問題については、販売業者は、フィールドアプリケーションエンジニアを、仕事の場所に送り得るが、これを行うことは高価であり、フィールドアプリケーションエンジニアが到着するまでに数日が過ぎることがあり得る。
【０００７】
コンポーネント選択はまた、不十分および不必要な遅れが問題となる領域である。エンジニアは、コンポーネント卸売業者が発行した印刷されたカタログを見て、パートについて調べ、選択するか、または、インターネットを用いて、製造者の供給業者のウェブサイトを見て、そこでコンポーネントについての情報を見つけるか、または、サーチエンジンを用いて、インターネット上で製品情報を集めようとし得る。しかし、個々のコンポーネントについてインターネットでサーチすることは、時間がかかり、退屈である場合がある。さらに、現在のサーチエンジンおよび方法は、不十分、かつ不完全であり、したがって、設計者が設計において有用に用いることができるコンポーネントを提供するウェブサイトを含まない結果を出し得る。エンジニアはまた、求めていないデータシートを製造業者から受け取り得るが、このようなデータシートは、しばしば、無視されるか、失われるかまたは、忘れられる。反対に、エンジニアは、ＩＰ  Ｉ／Ｏ図または他のトップレベル情報を容易に受け取り得るが、選択したコンポーネントについてのきわめて重要な設計情報を受け取ることは困難であり得る。設計プロセスの一部として、エンジニアが、選択したコンポーネントのそれぞれについて、サポートデータを入手することが必要である。販売までの時間を短くするプレッシャーが増大するにつれて、エンジニアは、供給業者または卸売業者の販売員と話す時間をとることがより困難になり、コンポーネントについての情報を集めるという問題が悪化する。
【０００８】
チップ設計プロセスにおいて発生する他の問題として、設計および検証プロセスについての知識が細分されており、このような知識を得て、維持することが困難であることがある。多くの個々のエンジニアの設計プロセスを、観察を通じて認識し、学ぼうとすることは、非常に難しいことである。さらに、設計プロセスは、最終的な青写真または製品から認識されることはほとんど出来ず、概して、設計図または作業用の書類から判定することは困難である。異なる設計者は、異なる様式で設計に取り組み、これらの異なる様式は組織化することさえできないことがあり得る。エンジニアに会って、設計プロセスを実行することについてのデータを得ることは、非生産的である可能性が高く、比較的小さい成果に対して、非常に多くの時間がかかる。したがって、設計プロセスを実行することについてのメトリックから得られるトレーニングおよび向上した方法における利点は、実現されないままである。
【０００９】
細分化された設計および検証プロセスによって生じる問題に対処する試みのいくつかは、エンジニアが学ぶ必要があり、内部技術スタッフがサポートする、製品およびサービスの範囲を狭めるため、設計および検証プロセスの異なる領域が専門である企業間の排他的なパートナー契約が含まれる。例えば、電子設計企業のパートナーシップには、設計検証ツールのプロバイダ、電子コンポーネントのプロバイダ、それらを結びつける企業が含まれる。パートナーシップモデルにおいて、適合性の問題は、より容易に対処され得る。なぜなら、含まれる企業の数が少ないからである。さらに、設計プロセスのある段階におけるあるパートナーの顧客が、設計プロセスの異なる段階での他のパートナーの製品またはサービスを利用するように影響することによって、収益が増大する。しかし、パートナー契約は、設計チームにとって利用可能な選択肢を劇的に減らし、もっとも最適な製品が用いられることを妨げ得る。
【００１０】
設計プロセスを促進する取り組みの１つとして、ある特定のタイプの設計および検証ツール、特に、ＦＰＧＡ合成ツールを、インターネットを介してアクセスされ得る遠隔のコンピュータ会社において提供することがある。このような取り組みのもとで、ＦＰＧＡ合成ツールは、１つのアプリケーションサービスプロバイダが所有する、中央サーバファーム、またはコンピュータファームにおいて実行される。サーバファーム、またはコンピュータファームは、概して、より高い強度の計算タスクを達成するために、リンクされたプロセッサのネットワークである。この取り組みを利用する例示的なシステムにおいて、アプリケーションサービスプロバイダは、提供されたＦＰＧＡ合成ツールのそれぞれのインターフェースをＪａｖａ（Ｒ）計算言語に書き換え、標準的な市販されているインターネットブラウザを通じて、幅広い種類の計算プラットフォームおよびオペレーティングシステムでツールが用いられることを可能にする。この取り組みの欠点は、ユーザが、インターフェースコードがそのために書かれたアプリケーションサービスプロバイダのサーバファームにあるＦＰＧＡ合成ツールに限られることである。さらに、Ｊａｖａ（Ｒ）言語は、遅いことで有名であり、エンジニアが不満を抱き、設計および検証プロセスが遅くなり得る。
【００１１】
エンドユーザおよび供給業者を含む電子設計プロセスの参加者を、情報交換および商取引を容易にする１つのポータルサイトを介して、接続することは、有用である。さらに、幅広い種類の設計および検証ツールを、容易かつ簡便に、エンジニアが利用できるようにし、このようなツールを、ソフトウェアまたはハードウェアのいずれにおいても、大きな初期資本支出なしに用いることを可能にすることは、有用である。さらに、チップ技術、アプリケーション、製品およびツールについての知識および情報を蓄積するメカニズムを提供することが有用である。また、エンジニアが仮想ブロックコンポーネントを設計に組み込むことを可能にする簡便な手段を提供することが有用である。
【課題を解決するための手段】
【００１２】
（発明の要旨）
本発明は、ＩＰコア設計を交換するか、新たな複合回路設計に組み込むために、分散型電子ネットワーク、例えばインターネットを介して、複数のエンドユーザへの接続を可能にするプラットフォームを提供する。
【００１３】
実施形態において、設計者が複数のＩＰ設計のカタログをサーチし、瞬間的に、ＩＰについての関連する情報の全てが、新たなＳｏＣの設計において用いられるように設計者のファイルに転送され得る設計プラットフォームが提供される。この実施形態のプラットフォームは、内部または外部ＩＰおよびＩＰソーシングのいずれかの選択をサポートする。設計プラットフォームをサポートするソフトウェアは、モジュラー形式で書かれ、例えば、ＶＨＤＬまたはＶｅｒｉｌｏｇで書かれた、関連するＩＰデータの全てを転送することをサポートするように、容易に適合されることができる。さらに、プラットフォームサポートソフトウェアのモジュラー形式は、設計プラットフォームが、Ｓｙｓｔｅｍ−Ｃのような開発言語を含む他のハードウェア言語をサポートする能力を有することを可能にする。この実施形態のプラットフォームはまた、設計者が、選択したＩＰの全てを設計全体の中で設定し、ＩＰを接続し、設計全体の中で用いられるコンポーネント全てのネットリストを生成する。この実施形態のプラットフォームは、さらに、適切な統合および接続、ならびに、設計全体の基本的な機能検証を確実にするため、コンパイルされ、多くの検証ツールのうちのいずれにおいても容易に用いられ得るＡＮＳＩ−Ｃコード出力を提供する。さらに、設計プラットフォームは、複数のアセンブラ言語のいずれかでソースコード出力を生成するように、カスタム化または変更され得る。ＩＰ選択、統合、および検証が行われた後、この実施形態のプラットフォームは、最終的な製造のため、コンピュータ援用合成、配置、およびルーティングツールを用いて、容易に統合され得る。設計プラットフォームにアクセスするユーザには、利用可能なツールおよびサービスを識別するメニューまたは他の簡便なフォーマットで、オプションが提示され、１つの場所で、幅広い種類のツールおよびサービスへのアクセスを有することによって、回路設計をより速く完成させることが出来る。設計プラットフォームは、プラットフォームを介して提供されるツールおよびサービスを購入すること、借りること、または他の方法で獲得することを容易にする。
【００１４】
ある実施形態において、設計プラットフォームは、ｎティアーのクライアント／サーバネットワークのコンテキストにおいて、サーバとして機能し、電子設計者および設計チームが幅広い種類の以前に設計されたＩＰを用いることを可能にする、オープンポータルサイトを介して実現される。本発明のある局面におけるオープンポータルサイトは、ＩＰコア設計を交換し、新たな複合回路設計に組み込むために、インターネットなどの分散型電子ネットワークを介する、複数のエンドユーザへの接続を可能にするプラットフォームを提供する。この実施形態において、ポータルサイトは、フロントエンドハードウェア設計者に、内部および外部販売者ソースの両方から、ハードウェアコンポーネントのＩＰをサーチし、そのＩＰへのアクセスを得る手段を提供する。ポータルサイトは、チップ設計者が、新たな設計に組み込むために、各種のＩＰをサーチし、アクセスすることを可能にする。さらに、この実施形態は、直接、ＩＰを選択し、ソーシングし、設定し、各種ＩＰ間を接続し、ネットリストを生成するために、チップ設計者が、ＩＰデータおよびコードを、直接ポータルサイトを介して転送することを可能にする。さらに、実施形態は、チップ設計者が、統合および接続検証、ならびに基本的な機能検証を、直接、ポータルサイト内で行うことを可能にする。ポータルサイトを容易にするためのプラットフォームは、ＪＡＶＡ（Ｒ）で書かれて、任意のコンピュータ上で実行され、ＶＨＤＬまたはＶｅｒｉｌｏｇのような各種のハードウェアインプリメンテーション言語で書かれたＩＰをサポートする。プラットフォームをサポートするソフトウェアは、モジュラー形式で書かれて、開発Ｓｙｓｔｅｍ−Ｃ言語のような新たな記述インプリメンテーション言語のサポートを可能にする。
【００１５】
他の実施形態において、閉じられたユーザのグループ内で用いられるイントラネットのようなネットワーク上で、閉じられたポータルサイトが提供される。この実施形態は、選ばれた数のユーザにとってのみアクセス可能な閉じられたポータルサイトとして提供され得る。
【００１６】
他の実施形態において、設計プラットフォームは、あるＬＡＮで共に動作するユーザワークステーションのネットワーク上で提供される。設計プラットフォームは、Ｊａｖａ（Ｒ）で書かれて、各ユーザワークステーション上で直接動作する。
【００１７】
さらなる実施形態、変形例、および改良例がまた、本明細書中に記載される。
【発明を実施するための最良の形態】
【００１８】
図１は、有用な品物、サービス、情報および他のリソースを提供することによって、電子設計を容易にする、電子設計自動化リソースシステム１００の実施形態による、抽象的な図である。図１に示すように、複数のエンドユーザ１０２および複数の供給業者１０６が、インターネットなどの分散型電子ネットワークを介して、設計プラットフォーム１０４に接続されている。エンドユーザ１０２には、典型的には、回路設計者および電子設計自動化（ＥＤＡ）ソフトウェアツールのユーザが含まれるが、本明細書中により詳細に記載されるように、他のタイプの各種のユーザも含まれ得る。供給業者１０６には、典型的には、ＥＤＡソフトウェアツール、仮想コンポーネントブロックまたはＩＰコア、ファウンドリサービス、ハードウェアコンポーネント、専門的設計サービス、および他の各種のリソース（形態は、品物、サービス、情報、または他のリソースのいずれであってもよい）のプロバイダが含まれる。これらは、本明細書中、より詳細に説明される。あるいは、各エンドユーザが、他のエンドユーザのためのＩＰコア設計の供給業者としての役割を果たしてもよい。さらに、各供給業者は、交替で、エンドユーザ設計者としての役割を果たしてもよい。
【００１９】
一実施形態において、設計プラットフォーム１０４は、あらゆるコンピュータで実行されるようにＪＡＶＡ（Ｒ）で書かれる。設計プラットフォーム１０４は、エンジニアおよび他のユーザ１０２に、電子コンポーネント上の情報へのアクセスを提供し、エンドユーザ１０２と供給業者１０６との間の電子コンポーネントの商取引を可能にする。この実施形態において、電子コンポーネントデータは、標準的なシンボルおよびフットプリントデータでのグラフィカル表現を、エンドユーザの設計に転送（例えば、コピー）される準備ができた状態にして、「ダイナミックパート」の形式で、遠隔データベースに格納される。遠隔電子コンポーネントデータベースからエンドユーザのワークステーション（または設計データベース）にコピーされた情報の一部は、遠隔データベースまたは供給業者のデータベースへのリンクを含み、パートリード時間、利用可能性およびコストなどの情報の提供を含む各種の有用な能力を実現する。電子コンポーネントについてのデータシート、タイミング情報などがまた、設計者の役に立つように、利用可能にされ得る。さらに、設計プラットフォーム１０４は、ＶＨＤＬまたはＶｅｒｉｌｏｇのいずれかで書かれた電子コンポーネント設計データをサポートする。このようにして、設計プラットフォーム１０４は、直接インターフェースのためのあらゆるフォーマットのＩＰ、および他のベンダーのＩＰを１つのＳｏＣ設計に統合することをサポートする。さらに、モジュラー形態で設計プラットフォームをサポートするソフトウェアを設計することによって、Ｓｙｓｔｅｍ−Ｃなどの新たなインプリメンテーション言語が、将来サポートされ得る。遠隔データベースまたは供給業者のデータベースへのリンクを介して、フロントエンドユーザは、新たなＳｏＣ設計における統合、接続、および検証についての関連する設計データ全てを転送し得る。このデータは、この実施形態が、電力消費、ゲートカウント、および完全なＳｏＣ設計のための面積を推測することを可能にする。
【００２０】
他の実施形態において、設計プラットフォーム１０４は、関連するＩＰ設計データの全ての転送を介して、設計者が新たなＳｏＣ設計内のＩＰコア設計を設定することを可能にする統合ツールを提供する。設計プラットフォーム１０４は、各種のＩＰコアの間の必要な接続をサポートし、新たなＳｏＣ設計内のＩＰコアコンポーネントの全てのネットリストを生成する。
【００２１】
他の実施形態において、設計プラットフォーム１０４は、全てのＩＰコアの統合およびＩＰコア間の接続の検証をサポートする。設計プラットフォーム１０４は、各新たなＳｏＣ設計内に位置する基本的な機能的要素の検証をさらにサポートする。これらの基本的な機能的要素には、アドレスデコーダ、バスアービター、バスブリッジなどが含まれる。設計プラットフォーム１０４は、従来の論理シミュレータがＩＰコアの統合および接続を検証する能力を可能にする、例えば、ＡＮＳＩ−Ｃコードでソースコードを出力する。
【００２２】
他の実施形態において、設計プラットフォーム１０４は、仮想ブロックまたはＩＰコアについての情報を探している、または購入しようと考えている、エンドユーザ１０２を、仮想回路ブロックまたはＩＰコアを提供する供給業者１０６に接続する。設計プラットフォーム１０４は、例えば、入手可能なＩＰコアのカタログ、ＩＰコアについての情報、およびＩＰコアを検証されていないユーザまたはコピーから保護するメカニズムへのアクセス提供することによって、適切な仮想回路ブロックまたはＩＰコアを見つけ、獲得することを容易にし得る。
【００２３】
他の実施形態において、上記の設計プラットフォーム１０４の特徴のうちの複数が、回路設計および開発プロセスについて総合的なサポートを提供する、オープンポータルサイト２０４において組み合わせられる。
【００２４】
図２は、オープンポータルサイトとして提供される設計プラットフォーム２０４を特徴とする実施形態のより詳細な図である。図２は、エンドユーザを電子設計ツール、サービス、情報および／または他のリソースに接続することによって、電子設計を容易にするシステム２００を表す。図２に示すように、各種のユーザおよびリソースプロバイダは、電子設計を容易にするために、インターネット２３０などの分散型電子ネットワークを介して、ポータルサイト２０４に接続される。図２に示すシステム２００において、ユーザシステム２２０は、サポートプラットフォームを用いて、インターネット２３０を介して、ポータルサイト２０４に接続する。図２においては、例示のため、１つのユーザシステム２２０のみしか示されていないが、数百または数千のオーダーの多くのユーザシステムが、インターネット２３０または他の分散型電子ネットワークを介して、ポータルサイト２０４に同様に接続し得る。以下の説明において、ユーザシステムは、インターネット２３０を介してポータルサイト２０４に接続しているとするが、このような接続のために、他のタイプの分散型電子ネットワークを利用してもよいことが理解される。標準的なオブジェクトデータモデルが、インターネット２３０を介してユーザシステム２２０をポータルサイト２０４にリンクするために用いられ得る。
【００２５】
インターネット２３０を介してポータルサイト２０４に接続されたユーザシステム２２０は、スタンドアロンコンピュータまたはワークステーションを含み得る。スタンドアロンコンピュータまたはワークステーションは、直接インターネット２３０に接続されてもよいし、インターネット２３０に接続するように設計されたネットワークハードウェアおよび／またはソフトウェアを含むローカルエリアネットワーク（ＬＡＮ）の一部であってもよいし、他の手段でポータルサイト２０４に接続していてもよい。ユーザシステム２２０は、好ましくは、ウェブブラウザ２２４などのインターネット２３０をナビゲートする手段を含む。ウェブブラウザ２２４には、例えば、標準的な市販の製品、例えば、ＭｉｃｒｏｓｏｆｔのＩｎｔｅｒｎｅｔ  Ｅｘｐｌｏｒｅｒ（Ｒ）、ＮｅｔｓｃａｐｅのＣｏｍｍｕｎｉｃａｔｏｒ（Ｒ）、Ｏｐｅｒａ  ＳｏｆｔｗａｒｅのＯｐｅｒａ（Ｒ）などが含まれ得る。ユーザシステム２２０はまた、好ましくは、１つ以上の供給業者アプリケーション２２６を、例えば、Ｃａｌｉｆｏｒｎｉａ、Ｓａｎ  ＪｏｓｅのＣａｄｅｎｃｅ  Ｄｅｓｉｇｎ  Ｓｙｓｔｅｍｓ製の商品、Ｅ−Ｃａｐｔｕｒｅ（Ｒ）などのコンピュータプログラムまたはソフトウェアパッケージの形で実行する。また、「設計コンソール」インターフェース２２８が、好ましくは、ユーザシステム２２０の一部として提供される。設計コンソールインターフェース２２８は、ユーザシステム２２８にインストールされ、そこで実行される、スタンドアロンクライアントアプリケーションソフトウェアプログラムを含み得る。設計コンソールインターフェース２２８は、ポータルサイト２０４とのインターフェースとして機能し、好ましくは、ポータルサイト２０４によって提供される機能およびプロセスを、設計コンソールインターフェース２２８がない場合に標準的なウェブブラウザによって提供されるよりも、速く、ロバストに、かつ、効率的に、インターリンクするように最適化される。ユニバーサルデータインターフェースフォーマットまたはマークアップ言語、例えば、ＸＭＬは、好ましくは、システム２００の各種のコンポーネントの間の一次的なデータインターフェースとして用いられる。ＸＭＬの詳細は、コンピュータプログラミングの分野の当業者にとっては周知である。
【００２６】
次に、システムのポータルサイト２０４に目を向けると、ポータルサイト２０４は、場合によっては大きく異なるドメインにある多くの供給業者１０６（図１参照）が集められる点として機能する。ポータルサイト２０４は、好ましくは、ポータルサイト２０４へのアクセスをシークする外部のエンティティ（例えば、ユーザシステム２２０）とインターフェースするウェブサーバ２６０を含み、このような外部のエンティティと、ポータルサイト２０４において利用可能な各種のアプリケーションとの間の仲介役として機能する。ポータルサイト２０４はまた、好ましくは、ウェブサーバ２６０通過した外部のエンティティからのリクエストを受信し、ポータルサイト２０４に含まれるか、またはポータルサイト２０４を介してアクセス可能なデータベースまたは他のリソースにアクセスすることによってそのリクエストに応答する、アプリケーションサーバ２３２を含む。アプリケーションサーバ２３２はまた、ポータルサイト２０４内で、コマンドおよびコントロール機能を提供する。
【００２７】
アプリケーションサーバ２３２は、好ましくは、設計エンジニアにとって有用な情報を含む１つ以上のデータベースにアクセスする。このようなデータベースには、例えば、ユーザデータベース２３５、メトリックデータベース２３８、カタログデータベース２４０、およびビジネスデータベース２４４が含まれる。これらのデータベースの機能は以下に記載される。ユーザデータベース２３５は共同サーバ２３４を介してアクセスされ、メトリックデータベース２３８はメトリックサーバ２３６を介してアクセスされ、カタログデータベース２４２はカタログサーバ２４０を介してアクセスされ、ビジネスデータベース２４６はビジネスサーバ２４４を介してアクセスされる。所望される場合、さらなるデータベースおよびサーバが含まれ得る。また、インターネット２３０を介してポータルサイト２０４に接続されることが好ましいものとして、１つ以上のコンポーネント供給業者データベース２０９、ＩＰコアデータベース２０８がある。これらの役割は、図３〜１０を参照しながら、より詳細に説明される。
【００２８】
オープンポータルサイト２０４によってサポートされる設計プラットフォーム１０４は、さらに、選択したＩＰコアブロックを設定し、ＩＰコアブロックの各種のＩ／Ｏピンを適切に接続し、完全なＳｏＣ設計のグラフィックおよびテキストでのネットリストを生成する、設計ツールを含む。さらに、ポータルサイト２０４は、ＳｏＣ設計全体の中で、ＩＰコアの適切な統合および接続を確実なものにする検証ツールをさらに含む。ポータルサイト２０４は、ＳｏＣ設計の基本的な機能を検証する手段をさらに提供する。これらは、ＳｏＣ設計で利用される基本的なアドレスデコーダ、バスアービター、バスブリッジなどの機能を含む。これらの各種のツールの役割は、図３〜７を参照しながら以下でより詳細に説明される。
【００２９】
ポータルサイト２０４によって提供されるデータベース２３５、２３８、２４２および２４６のうちの１つ以上は、ポータルサイト２０４が安全なＸＭＬトンネルを介して他のサイトからの情報にアクセスする状態で、分散型アーキテクチャを用いて設定され得る。特に、カタログデータベース２４２は、ポータルサイト２０４が安全なＸＭＬトンネルを介して遠隔データベース（例えば、２０８および２０９）からのカタログ情報にアクセスする状態で、分散型アーキテクチャを用いて有用に設定され得る。データベースアーキテクチャが分散される場合、アクセス性能を向上させるように、キャッシングが用いられ得る。
【００３０】
一般的な見地から、共同サーバ２３４は、エンドユーザ１０２および供給業者１０６（図１参照）の両方に対する共同サービスを提供する。共同サーバ２３４は、好ましくは、共同型のアプリケーション、例えば、チャット、カレンダー、電子メール、オンラインセミナー、オンライン会議、アプリケーションおよびデスクトップシェアリングを統合し、提供する。共同サーバ２３４はまた、好ましくは、専門家と設計者との間のリアルタイムのインタラクションを可能にする「仮想」デスクトップの存在によって、専門的な設計アシスタンスのためのインフラストラクチャサポートを提供する。
【００３１】
メトリックサーバ２３６は、ポータルサイト２０４および供給業者サービスの使用についての情報を収集することに役立つ。１つの局面において、メトリックサーバ２３６は、ポータルサイト２０４で測定されるデータのための高性能、高容量データ格納装置を含み得る。このようなデータには、例えば、ウェブトラフィックパターン、アプリケーション使用、（例えば、マテリアルの電子ビルをモニタリングすることによって）コンポーネント使用、ユーザ評価フィードバックなどが含まれる。メトリックサーバ２３６は、好ましくは、このような情報を、専用ポータルデータマイニングアプリケーションに提供する。
【００３２】
カタログサーバ２４０は、好ましくは、「電子カタログ」サービスを、ユーザシステム２２０にあるクライアント側ソフトウェアに提供する。上述したように、カタログデータベース２４２は、分散型アーキテクチャによって設定され得、カタログサーバ２４０および／またはカタログデータベース２４２によって、リンクおよび他のリソースを介して統合される。供給業者カタログの統合は、好ましくは、ＸＭＬなどの一般的なデータフォーマットモデルを用いることによって達成される。
【００３３】
ビジネスサーバ２４４は、以下にさらに説明するように、ユーザと供給業者との間の商取引をサポートする。
【００３４】
ある実施形態において、ポータルサイト２０４は、各種の有用なリソースを設計エンジニアに提供する。このようなリソースへのアクセスは、図３〜１０を参照しながら、簡便に説明される。図３〜１０のそれぞれは、設計、開発または製造の特定の分野に関係する、情報または他の設計リソースにアクセスするプロセスを示す。従って、ポータルサイト２０４は、１つの局面において、設計エンジニアに対して、統合されたリソースのセットを提供し得る。
【００３５】
図３は、例えば、図２のシステムとともに用いられ得る、各種のＩＰソースからＳｏＣを設計するプロセス３００を示すフローチャートである。図３に示すプロセス３００の第１の工程３０２において、ユーザシステム２２０のユーザは、適切なＵｎｉｆｉｅｄ  Ｌｏｃａｔｏｒ  Ｒｅｓｏｕｒｃｅ（ＵＲＬ）または他の適切なアドレスを入力することによって、インターネット２３０を介してポータルサイト２０４にアクセスし、それに応答して、設計コンソールクライアントソフトウェア２２８がメイン設計コンソールメニュー画面をユーザシステム２２０のコンピュータ画面に表示する。記載されるプロセス３００、および以下に記載される他のプロセスを通じて、ユーザシステム２２０におけるデータの表示が、好ましくは、ポータルサイト２０４からインターネット２３０を介して適切なコマンドを送信することによって達成される。すなわち、ポータルサイト２０４は、データを、適切なフォーマット（例えば、ハイパーテキストマークアップ言語（ＨＴＭＬ）または類似のフォーマット）で、インターネット２３０を介してユーザシステム２２０に送信し、その後、データはユーザシステム２２０で表示される。インターネット２３０を介して、情報をフォーマットし、送信する手段は、コンピュータプログラミングの分野の当業者にとって周知である。
【００３６】
図３に示すように、プロセス３００の次の工程３０４において、ユーザシステム２２０におけるユーザは、好ましくは、ＳｏＣ設計の必要な設計基準を満たす各種のＩＰコア設計を検索する、アイコン、リンク、または他のしるしを選択する。例えば、ユーザは、適切なＩＰコア設計をサーチするために、設計コンソールメイン画面に表示される、適切なアイコンまたはリンクをクリックし得る。このようなアイコンまたはリンクは、一般的に、インターネットアプリケーションソフトウェアにおいて用いられ、アイコンまたはリンクをグラフィカルユーザインターフェースに配置する技術は、コンピュータ技術の分野の当業者にとって周知である。あるいは、コンポーネント選択サーチは、テキストベースの環境において、適切なコマンドをタイピングまたは入力することによって、アクセスされてもよい。ポータルサイト２０４を通じて接続された各種のデータベースをサーチした後、ポータルサイト２０４のグラフィカル表示は、ユーザによって入力される必要な設計基準を満たすＩＰコア設計の各種の選択を表示する。ＩＰコア設計のユーザのサーチに応答して、使用または購入することができる異なるＩＰコア設計のリストが、ポータルサイト２０４において、カタログデータベース２４２から取り出され、その後、ユーザシステム２２０に送信され、ユーザシステム２２０において表示される。リストに挙げられるＩＰコアブロックには、例えば、仮想マイクロコア、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、デジタル信号プロセッサ（ＤＳＰ）、複合処理コア、および設計エンジニアが有用であると思うような任意の他のコンポーネントが含まれ得る。あるいは、コンポーネントは、上記のもの、すなわち、リストに挙げられたＩＰコアブロックのうち多くを含み得る、ＳｏＣのプリント回路基板（ＰＣＢ）プロトタイプのためのものであってもよい。リストに挙げられたコンポーネントは、ＩＰコアが新たなＳｏＣ設計内での使用に適するか否かをユーザが判定できるようにする、基本的な設計パラメータおよび設計基準を含み得る。このような情報は、好ましくは、比較的高いレベルのデータを構成し、概して、ユーザ１０２が選択したＩＰコアを設計に含めるべきか、ランク付けされたリストから異なるパートを探すべきか、または、選択したパートについてさらなる情報を集めるべきかを、ユーザ１０２が比較的速く判定できるようにすることが意図される。好ましくは、ユーザ１０２には、選択したパートをユーザ１０２の設計に直ちに組み込むか、ランク付けされたリストに戻って異なるパートを探すか、または、選択したパートについてのさらなる情報を引き出すかを簡便に選択する、アイコンまたは他のインターフェース機能が提示される。ユーザ１０２がさらなる情報に関心を持つ場合、プロセス３００は、工程３０６および３０８に進む。工程３０６および３０８において、ユーザ１０２は、適切なインターフェース機能（例えば、アイコンまたはメニュー選択入力）を選択して、選択したパートについてさらなる情報を受け取る。
【００３７】
１つのコンポーネントに対して、１つより多い特定のタイプのパートが利用可能である場合、工程３０６において、ユーザは、工程３０４において提供されたリストからコンポーネントを選択し得る。それにより、工程３１０について以下で説明される命令において、特定のコンポーネントに対応する利用可能なパートを表示させる。例えば、ユーザが、ＩＰコアブロックとしてＤＳＰコアを選択する場合、ユーザシステム２２０は、ＤＳＰコアコード名、周波数、消費電力、ゲートカウントなどを表示し得る。あるいは、ユーザは、例えば、普通のデータベースクエリを用いて、特定の基準を満たす全てのコンポーネントをサーチすることを可能にするように、サーチ基準を入力することを許可され得る。例えば、ユーザは、３００ＭＨｚよりも高い周波数で動作する全てのＤＳＰコアブロックについて、サーチし得る。ユーザのサーチ基準は、インターネット２３０を介して、ポータルサイト２０４に提供され得、それにより、適切なデータベースサーチクエリが実行される。サーチの結果は、ポータルサイト２０４からインターネット２３０を介してユーザシステム２０２に返され得る。工程３０６において、ユーザは、表示されたＩＰ設計のリストの中から、新たなＳｏＣ設計に組み込まれるものを選択する。利用可能なコンポーネント設計のリストは、例えば、選択可能なストリング、「ホットリンク」、またはアイコンのリストとして、表示され得る。ユーザは、選択肢のリストを検討し、工程３０６において、例えば、入力を強調表示して、キーボードのキー（例えば、リターンキー）を打つこと、コンピュータマウスで入力をクリックすること、所望のパートのランキングに対応する数を選択すること、または、任意の他の選択手段によって、利用可能な選択肢のうちの１つを選択する。選択手段の詳細は、本明細書に記載の発明の概念の動作にとって重要なものではない。ユーザの選択は、ユーザシステム２２０からポータルサイト２０４に送信される。
【００３８】
プロセス３００は、その後、工程３０８に進む。工程３０８において、選択したＩＰについての詳細なデータがユーザに転送される。次の工程３１０において、工程３０６において選択したパートのさらなる情報がユーザに対して表示される。その後、ユーザ１０２は、ユーザ１０２のワークステーションおよび設計への最終的なインポートのため、外部のソース（２０８、２０９）からポータルサイト２０４へのさらなる情報の送信をリクエストする。ポータルサイト２０４によってサポートされている設計プラットフォーム１０４は、さらなる情報を収集し、情報をエンドユーザ１０２に送信する。この２０８、２０９から転送されたさらなる情報は、設計シミュレーションを実行するために必要なデータだけでなく、統合および接続の検証だけでなく、ＶＨＤＬまたはＶｅｒｉｌｏｇリアルアクションインプリメンテーションコードを含む。工程３１０において、選択したパートについてのさらなる情報が表示される。このような情報には、コンポーネントデータシート、タイミングモデル、アプリケーションノート、シミュレーションモデル、信号保全性モデル（例えば、ＩＢＩＳモデル）、製造情報、または他の情報などの詳細なパート情報が含まれ得る。また、好ましくは、設計全体の中のコンポーネントの配置について、ユーザがより情報を得た上で決定することを可能にする、選択したパートについてのシンボルおよびフットプリント設定が提供される。また、工程３１０において表示される情報は、コンポーネントおよびアプリケーションについてのアプリケーションノートを含み得る。その後、所望される場合、ユーザの設計に組み込まれる他のＩＰコアについて、特定のＩＰコアを選択する工程が繰り返される。従って、プロセス３００は、ユーザが、プラットフォーム設計１０４に接続されたリソースを用いて、サーチし、選択することを所望する残りのＩＰコアのそれぞれについて、工程３０２に戻る。最終的に、ユーザが、ＩＰコアを設計に追加することをやめたときに、プロセス３００は、普通の設計コンソールメニューに戻る。
【００３９】
図３のプロセス３００の使用は、供給業者およびユーザの両方にとって役立つことが期待される。例えば、ＩＰコアの選択および管理プロセス３００を用いることによって、ＩＰコアの品質および機能についてのデータを交換することが容易になる。これは、このような品質および機能をエンドユーザに対して実証することができる供給業者にとって有益であり、あるＩＰの品質および機能についてより保証を得るユーザにとって有益である。ＩＰコア選択および管理プロセス３００はまた、ＩＰコアを保護する。これは、供給業者のＩＰ市場への参入を容易にし、供給業者が開発したＩＰコアの知的財産権を保護することおいて重要である。さらに、ＩＰコア選択および管理プロセス３００は、ＩＰコア販売およびライセンシング取引についてのオーバーヘッドを有用に低減し得る。これは、このような取引が、設計者と供給業者との間で、設計プラットフォーム１０４を介して、販売、マーケティングまたは法務部門からの他の職員の介在を必要とすることなく、行われるからである。さらに、このような設計プラットフォーム１０４は、ＩＰコア作成、およびＳｏＣ設計レベルの両方において、会社全体、または、産業全体さえにわたる規格の実施を奨励するものである。
【００４０】
ある実施形態において、設計者が、選択し、選択したＩＰについての関連する情報を全て転送した後、プロセスは、工程３１２から継続する。工程３１２において、ユーザ１０２は、ＩＰコアを、ＳｏＣ設計全体に配置する。ＩＰコア配置工程３１２は、設計全体における、転送されたＩＰコアのそれぞれの適切な位置座標を表すテーブル入力を作成することによって達成され得る。さらに、ユーザ１０２は、手動で、適切なＩＰコア接続に対するＩＰコア、およびバス接続に対するＩＰコアを表すテーブル入力を入力し得る。あるいは、設計プラットフォーム１０４はまた、ＩＰコアを、ＳｏＣ設計内の他のＩＰコアまたはバスのどちらかに、自動で接続してもよい。この自動接続は、工程３０８において、設計プラットフォーム１０４によってユーザ１０２に転送されるサポートデータファイルを利用する。さらに、設計プラットフォーム１０４は、ユーザ１０２が、ＳｏＣ設計内でＩＰコアを配置し、移動させられるように、グラフィカルユーザインターフェース（ＧＵＩ）を組込み得る。ユーザ１０２は、選択したＩＰコアのグラフィカル表現（例えば、シンボル）を、選択したＩＰコアのシンボルを、設計を開発するために用いられた概略的なプログラムに移動させるか、コピーするか、またはドラッグすることによって、ＳｏＣ設計に配置し、移動させる。このようなＧＵＩを可能にするため、ＩＰコアの元の設計者は、ＩＰコアのシンボルおよびそれに伴うグラフィカル表現サポートファイルも作成する必要がある。このグラフィカルサポートファイルは、工程３０８において、他のサポートデータとともに転送され得る。選択したパートを概略的なプログラムへと動かすプロセスの一部として、選択したパートについての情報が、好ましくは、設計データベース２２５内のユーザシステム２２０に、コピーされ、格納される。このような情報には、例えば、選択したパートについての仕様、ならびに、製造情報、および、ポータルサイト２０４と選択したパートの供給業者もしくは販売業者のコンポーネント供給業者データベース２０９とのいずれかへのハイパーリンクが含まれ得る。遠隔データベースへのリンクのため、ポータルサイト２０４から選択され、ユーザシステム２２０における設計データベース２２５に格納されるパートは、ダイナミックパートと呼ばれる。選択したパートについての情報は、設計データベース２２５に格納される代わりに、例えば、ユーザの物理的な位置、または何らかの遠隔の位置における別個のデータベースに格納されてもよい。
【００４１】
最終的に、ユーザがコンポーネントを設計に追加し終えたときに、プロセス３００は、工程３１４へと移る。工程３１４において、設計は、完了したと考えられる。工程３１６において、各種のＩ／Ｏピンの間の接続は、各種のＩＰコアの間で作成される。オープンポータルサイト２０４によってサポートされる設計プラットフォーム１０４は、自動接続機能を提供する。自動接続機能を用いることによって、設計プラットフォーム１０４は、自動的に、それぞれのＩＰコアのＩ／Ｏピンをバスに接続するため、転送されたそれぞれのＩＰコアについてのデータを用いる。あるいは、ユーザ１０２は、手動で、ＩＰコアをバスに接続してもよい。最終的に、工程３１８において、高レベルネットリスト７００が生成される。ポータルサイト２０４によってサポートされる設計プラットフォーム１０４は、記述言語、例えば、ＶｅｒｉｌｏｇまたはＶＨＤＬなどでネットリスト７００を出力する。さらに、設計プラットフォーム１０４は、ユーザ１０２にネットリスト７００のグラフィカル表現を提供し得る。図７は、ポータルサイト２０４に含まれる設計ツールによって、グラフィカル形態で生成される高レベルネットリストの一例を示す。高レベルネットリストの生成において、ポータルサイト２０４は、選択したＩＰコアについて、検証プロセス４００において用いられる、転送されたソフトウェアコードをさらに含む。図７において、各種のＩＰコア７０１は、高レベルネットリスト７００においてグラフィカル表現されている。各ＩＰコア７０１は、複合ＩＰ設計、例えば、ＤＲＡＭまたはＤＳＰを表し得る。ネットリスト７００は、設計プラットフォーム１０４による出力として、さらなる論理シミュレーションおよび検証テストのため、記述言語で提供される。図７におけるグラフィカル表現はまた、ユーザ１０２に提供される。
【００４２】
設計プラットフォーム１０４がオープンポータルサイト２０４によってサポートされている実施形態において、または、外部のＩＰコアソースが設計プラットフォーム１０４に接続され得るようにする実施形態において、実施形態は、次の工程３２０およびプロセス４００を行い得る。設計を製造する準備において、後の時点で、プロセス３００は、必要に応じて、工程３２０に進む。工程３２０において、マテリアルのビルが、設計の中のコンポーネントから自動的に生成される。マテリアルのビルの生成に加えて、ＳｏＣ設計についての関連する全てのサポートデータは、対応するインデックスファイルとともにドキュメンテーションディレクトリにパックされ得る。ユーザは、設計コンソールクライアントソフトウェア２２８を用いて適切なメニュー選択を行うこと、または、ユーザシステム２２０におけるアプリケーション２２６によって、あるいは、他の方法で、マテリアルのビルの自動生成を開始し得る。
【００４３】
図４は、図２において示すようなポータルサイト２０４にアクセスすることによってコンポーネントを購買するためのプロセス４００を例示するフローチャートである。購買プロセス４００は、ユーザがポータルサイト２０４にアクセスして一つ以上の商品を購買することによって直接起動され得るか、または他に、図３に示すコンポーネント選択および管理プロセス３００などのより大きなプロセスに全部または一部が関係して自動的に起動され得る。図４に示す購買プロセス４００の第１ステップ４１６において、ユーザは、ユーザシステム２２０上でユーザに表示されるコンポーネントまたは部品に対する購買オプションを選択する。ユーザは、図３に例示されるステップ３０４および３０６と同様のやり方で利用可能な部品が提供されるか、あるいは別に、ユーザは、所望の部品をすでに知っているならば（型番または名称を）単に入力し、そして入力された部品情報は、ポータルサイトにおいて格納されるかまたは供給者データベース２０９において利用可能な部品情報と比較される。ユーザは、例えば、購買アイコンまたは指定リンクをコンピュータマウスを用いてクリックするか、または購買コマンドをコンピュータキーボード上に入力することによって特定の部品に対する購買オプションを選択し得る。特定のコンポーネントに対する購買オプションを選択する前に、ポータルサイト２０４は、ＩＰコアデータ利用可能性および／または特定のユーザ１０２の要求するＩＰコア設計に対するカスタマイズまたは変更に必要なリードタイムについての情報をユーザ１０２へ提供し得る。ポータルサイト２０４はまた、どのデータがポータルサイト２０４において定期的に格納および更新されるかに関する情報をユーザ１０２に提供するか、または他に、適切な供給者データベース２０９から必要とされる場合に、実行中にアプリケーションサーバ２３２によって取り出され得る。
【００４４】
購買オプションのユーザ選択は、指し値（ｑｕｏｔｅ）に対するリクエストを生成する。指し値は、ステップ４１８で、ポータルサイト２０４にユーザシステム２２０からインターネット２３０を介して送信される。ポータルサイト２０４において、アプリケーションサーバ２３２は指し値に対するリクエストを受信し、そしてビジネスサーバ２４８を起動する。ビジネスサーバ２４８は、ビジネスデータベース２４６にアクセスしてトランザクションレコードを生成する。購買トランザクションの初期に生成されたトランザクションレコードは、最終トランザクションに向かって各ステップが完了する際に更新され得る。次のステップ４２０において、アプリケーションサーバ２３２は、供給者指し値に対するリクエストを生成し、そしてこのリクエストをインターネット２３０を介して適切な供給者（通常、供給者データベース２０９を含むサイトであり得る）に送信する。供給者指し値に対するリクエストは、指し値をリクエストしているユーザ１０２に関する特定事項およびユーザ１０２の従事するビジネスの規模ならびにユーザ１０２が考慮を希望するライセンスモデルを含む。本実施形態において、そのような情報は、とりわけ、購買者が数量割引または優先供給者またはユーザ割引などの当該産業において一般に提供されるような特定の割引に対して適格かどうかを供給者が決定し得るために、含まれる。供給者指し値に対するリクエストは、トランザクション識別子が付与され、供給者からの応答価格指し値の照合（ｍａｔｃｈ−ｕｐ）を容易にし得る。
【００４５】
次のステップ４２２において、供給者は、好ましくは、価格指し値およびライセンスモデルを含む提示された電子契約をポータルサイト２０４にインターネット２３０を介して送信する。提示された電子契約は、供給者価格指し値に対するリクエストの一部として送信されたトランザクション識別子によって少なくとも部分的に同定される。ステップ４２４において、提示された電子契約はポータルサイト２０４からユーザシステム２２０へ送信される。本実施形態において、供給者指し値は、ユーザおよび供給者によって売りの提示として考慮され、そしてこの提示がユーザによって受理されるとユーザと供給者との間に拘束力のある契約が生じる。但し、そのような契約が生じるのは、ユーザがそのような契約を行う権限を有する場合である。
【００４６】
次のステップ４２６において、認証手順が行われ、ユーザが所望の購買ができるように認証されることを確実にする。１つの実施形態において、例えば、設計コンソールクライアントソフトウェア２２８は、ユーザが購買をできるように認証されているかどうかを決定する手順を開始する。そのようなファクタはユーザ毎および会社毎に変化し、かつなされるべき購買の金額、リクエストする個人の先任順位（ｓｅｎｉｏｒｉｔｙ）などのファクタ、および他のそのようなファクタに依存し得る。設計コンソールクライアントソフトウェア２２８は、好ましくは、ユーザの認証レベルに関するデータを格納するか、またはアクセスする。認証データは、例えば、ユーザの雇用者によって稼働される独立のデータベース（ローカルまたはリモート）に格納され得る。支払いを必要とするトランザクションは、認証のためにこのデータベースをパスしなければならない。あるいは、認証決定がなされる場所は本明細書中に記載される実施形態の機能に重要ではないので、認証機能はアプリケーションサーバ２３２において提供され得る。認証手順の結果として、設計コンソールクライアントソフトウェア２２８は、ユーザが選択された部品を購買することを可能にしなくてもよいか、またはユーザが所定のドル合計値まで部品を購買することを可能にし得る。
【００４７】
ユーザが購買できるように認証されていない場合、ステップ４２８によって示されるようにユーザは認証を得る。この認証ステップ４２８は、電子認証、紙認証、公式の認可プロセスなどの広範囲の形態を取り得る。ユーザが認証を得ない場合、プロセス４００はステップ４２８において終了し得る。
【００４８】
ステップ４３０において、一旦ユーザが購買できるように認証されると、注文が供給者に対して生成され、そして所望の製品およびサービスの購買および配送についての契約がユーザと供給者との間で作成される。次いで、ステップ４３２に示すように、注文は供給者にポータルサイト２０４を介して送信される。
【００４９】
ポータルサイト２０４は、ビジネストランザクションに異なるレベルで関与し得る。ステップ４３４において、例えば、ポータルサイト２０４がトランザクションについての請求書発送を取り扱っているかどうかを決定する。取り扱っていなければ、ステップ４３６で、アプリケーションサーバ２３２は、ポータルサイト２０４を通過したトランザクションのコストの一部に対する請求書（例えば、ユーザおよび供給者を引き合わせる手数料）が生成され、そしてポータルサイト２０４からインターネット２３０を介して供給者へ送信されるようにし得る。請求書上に反映されるような手数料の額は、全トランザクション値のパーセンテージ、トランザクション毎、または特定の供給者とポータルサイト２０４のオペレータとの相互間で合意可能な条項上で計算された別の基準に基づいて生成され得る。次のステップ４３８において、次いで供給者は、請求された額をポータルサイト２０４に代償として送信する。本実施形態において、請求書発送および支払いは、両方ともに本質的に電子的なものである。しかし、これらのうちの１つまたは両方は、紙形態であり得る。簡単のために、供給者はポータルサイト２０４においてアカウントを維持し得る。アカウントは、請求書発送されるはずであった額だけ自動的に借方記入される。
【００５０】
ステップ４３４に戻って、ポータルサイト２０４が請求書発送を取り扱っている場合、プロセス４００はステップ４４０に進む。ステップ４４０において、アプリケーションサーバ２３２は請求書を生成し、そして請求書をポータルサイト２０４からユーザへインターネット２３０を介して送信する。次のステップ４４２において、次いでユーザはその請求書に対する送金をポータルサイト２０４へ送信する。送金は電子的にまたは紙を介してなされ得る。あるいは、ユーザは、ポータルサイト２０４においてアカウントを維持し得る。アカウントは自動的に借方記入され得る。次に、ステップ４４４において、ポータルサイト２０４は、仲介として機能するために、必要に応じて送金額の一部を代償として差し引き、そして送金の残を供給者に（電子的にまたは紙の形態で）送信する。この時点で、購買プロセス４００は完了する。
【００５１】
一旦プロセス３００において作成される設計全体が完了すると（そしてその場合は、プロセス４００において外部ベンダから種々の選択されたＩＰコアを購買することが必要である）、設計プラットフォーム１０４はユーザ１０２に、例えば、出力されたＡＮＳＩ−Ｃにおけるソースコードまたは同様のアセンブリ言語ソースコードを提供する。このソースコードは、検証の目的でユーザ１０２に提供され、そして種々の従来の論理シミュレータおよび検証ツールにおいて容易にコンパイルおよび使用され、設計全体の統合を確実にする。図５は、例えば、図２のシステムと関連して使用され得るような、設計検証のためのプロセス５００を例示するフローチャートである。
【００５２】
一旦個々の選択されたＩＰコアデータがプロセス３００において送信されたら、設計者は個々に、ステップ５０２において各転送されたＩＰコアの機能をテストおよび検証し得る。ブロックレベル検証プロセスを行うために、ＩＰコアの元の設計者は、ＩＰコアのタイプだけでなくＩＰコア設計の目的もまた同定するファイルを含まなければならない。そのようなファイルは、さらなるサポートデータとしてＶｅｒｉｌｏｇまたはＶＨＤＬファイルとともに転送され得る。ブロックレベル検証ファイルは、例えば、Ｖｅｒｉｌｏｇ、ＶＨＤＬ、またはＡＮＳＩ−Ｃにおける元のＩＰコア作成者によって容易に作製されるソースコードファイルである。これらのブロックレベル検証ファイルは、テストベンチファイルと一般に称される。現在、ブロックレベル検証ファイルは外部で行われる。なぜなら、設計者は通常、ＩＰコアを設計する際にテストベンチファイルを含まないからである。なぜなら、ほとんどのユーザはブロックレベルＩＰコアの機能が何であるか知らず、かつそのような機能の検証は簡単だからである。通常、そのようなテストベンチファイルは不要である。なぜなら、ほとんどのユーザ１０２はブロックレベルＩＰコア設計を容易に同定およびテストし得るからである。しかし、本発明の設計プラットフォーム１０４における改良がなされ、かつ設計プラットフォーム１０４の使用が増えるので、すべての検証機能を完全自動化するのが好ましい。したがって、ＩＰコアの将来の設計は、ＩＰコアおよびその機能を同定するように書かれたテストベンチファイルを有し得る。より多くのＩＰコアがそのようなテストベンチファイルを含むように設計されるので、設計プラットフォーム１０４は、ＩＰコアの機能およびその完全かつ正確な転送を検証し得る。ブロックレベル検証は、個々のＩＰコアブロックをそれぞれ単独でテストベンチに置く工程を含む。ブロックレベル検証は、プロセス３００の間にすべてのＩＰコアブロックデータの完全かつ正確な転送を検証することによって設計全体の統合を保証する。特定のＩＰコア設計を有するすべてのサポートデータファイルを転送することによって、設計プラットフォーム１０４は、種々の従来の検証および論理シミュレーションツールにおいてコンパイルおよび実行される、例えばＡＮＳＩ−Ｃにおける、ソースコードファイルを出力する。
【００５３】
次にステップ５０４において、設計プラットフォーム１０４は、設計全体の統合および接続性を検証する。ステップ５０４の目的は、個々のＩＰコアブロックそれぞれの種々のＩ／Ｏポートのそれぞれが適正に設計全体において使用される他のＩＰコアブロックおよびバスに統合および接続されたことを保証することである。転送プロセス３００の間にリアルアクション実施コード（例えば、ＶＨＤＬまたはＶｅｒｉｌｏｇで書かれる）を伴うＩ／Ｏピンデータ、レジスタマップデータなどのサポートデータがステップ５０４において使用され、ＩＰコアブロックの適正な統合および接続性を検証する。ＩＰコア特定パラメータはユーザ１０２によって設計プラットフォーム１０４を介して構成され、かつ設計プラットフォーム１０４によって生成されるネットリストに含まれる。上記のように、設計プラットフォーム１０４は、全ＳｏＣネットリストに対するリアルアクション実施コードを、例えば、Ｖｅｒｉｌｏｇ、ＶＨＤＬ、または何か他のハードウェア言語で生成する。ステップ５０６において、設計プラットフォーム１０４は、リアルアクション実施コードネットリストを生成して、設計検証のために、例えば、ＡＮＳＩ−Ｃまたは任意の他のアセンブリ言語でソースコードファイルを生成する。上記のように、生成されたネットリストおよび検証ソースコードファイルは、コンパイルされ、そして種々の論理シミュレータによって利用され得る。論理シミュレータは、ステップ５０８において使用され、生成されたネットリストによって表される設計全体のＩＰコアブロックの統合および接続性を検証する。従来の方法は、種々の論理シミュレータによって利用するために、全体設計者が１つのＣコードまたは他のアセンブリ言語コードを書き、書かれたコードをコンパイルすることが必要である。本実施形態において、設計プラットフォームは、自動的に転送データファイルを利用して、統合および接続性検証のためのＣコード（または他のアセンブリ言語コード）を生成する。
【００５４】
一旦設計全体の統合および接続性が検証されると、設計プラットフォーム１０４は、ステップ５１０において全体設計機能検証を提供する。どのＳｏＣ設計においても、基本機能要素は設計上に配置され、アドレスデコーダ、バスアービタ、バスブリッジなどの基本タスクを行う。これらの基本コンポーネントの機能を検証する必要がある。設計プラットフォーム１０４は、これらの基本要素の動作をシミュレートするための適正な検証ツールを含む。
【００５５】
検証プロセス５００のいずれかの間にＩＰコアブロック設計においてエラーが発生する場合、設計プラットフォーム１０４は、元のＩＰコアブロック設計者へのネットワーク（例えば、インターネット２３０）を介するアクセスを提供して、ＩＰコアブロック設計者およびエラーのＩＰコアブロックを使用する任意の他の設計者に通知する。一旦元のＩＰコアブロック設計者への訂正がなされると、設計プラットフォーム１０４は自動的に訂正されたＩＰコア設計を、新しいＳｏＣ設計にＩＰコアを組み込んだすべてのユーザ１０２に転送する。したがって、１つの実施形態は、ＩＰコアブロック設計における欠陥を追跡する手段を提供する。さらに、一旦ＩＰコアブロックにおける欠陥が訂正されると、設計プラットフォーム１０４はＩＰコアブロックのすべてのユーザへ訂正を伝達する手段を提供する。
【００５６】
一旦全体ＳｏＣ設計ネットリストが生成されたら、設計プラットフォーム１０４は、各フロントエンドユーザ１０２がネットリスト設計出力および種々の周知の合成、配置、およびルートツールを有する添付のソフトウェアを組み込んで最終設計を作製することを可能にする。
【００５７】
回路設計者および技術者を供給者およびデザインプロセスに有用な他のリソースに接続するための種々の機能および大きな柔軟性を有する設計プラットフォーム１０４が記載されたことが理解される。設計プラットフォーム１０４は、好ましくは、増加する数のユーザおよび供給者を収容し得るオープンインフラストラクチャを提供する。実際に、供給者の数が増えるにつれ、システムの効率および利用性は増加すると考えられる。供給者の数が増えるにつれ、さらに多くのサービスおよび商品が利用可能となり、かつシステムはよりよくユーザの包括的な要求を満たし得る。システムはまた、小規模の供給者の参加を容易にする。なぜなら、ポータルサイトにリンクする前払いコストは、供給者がそれを行わない場合にすべての販売およびマーケティング努力に費やすものよりもはるかに少なくあり得る。ユーザの観点からは、ユーザまたは他の短期ごとのより大きな数のＥＤＡソフトウェアツールへのアクセスは大きく拡大され、そのようなツールをより手頃にし、かつそれらをより多くの数のエンドユーザに利用可能とする。
【００５８】
１つの実施形態において、ポータルサイト２０４は、ポータルサイト２０４を介して提示される異なるサービスとプロセスとの適切な接続を容易にする。例えば、ユーザは、ポータルサイト２０４の機能を使用してＩＰコア供給者２０８からＩＰコアのライセンスを取得し、ライセンスされたＩＰコアをより大きな設計に統合するために設計エキスパート２０３（ポータルサイト２０４を介して位置づけられ、そして連絡される）からのエキスパート協力を要求し、設計全体（ライセンスされたＩＰコアを含む）をポータルサイト２０４を介してＥＤＡツール供給者２１０から得られたソフトウェアを使用してシミュレートし、そしてまたポータルサイト２０４を介して利用可能なコンピュータ会社２０５上でシミュレーションを実行する。
【００５９】
１つの実施形態が、インターネット２３０を介したオープンアクセスを有するポータルサイト２０４によってサポートされる設計プラットフォーム１０４として図２〜５において検討された。本発明の別の実施形態は、インターネット２３０を介した閉じたポータルサイトを提供し得る。閉じたポータルサイトは選択されたグループのユーザ１０２および供給者１０６のみによってアクセス可能である。このユーザ１０２および供給者１０６は、１つのエンティティのワークステーション２２０のネットワークを有する、全体としては、内部設計グループであり得、またはインターネット２３０を介して互いにリンクされる種々の外部のユーザ１０２および供給者１０６を含み得る。さらに、図６は、設計プラットフォーム１０４がユーザワークステーション６２０のアプリケーションメモリコア６２６上にロードされる本発明の実施形態を例示する。ユーザワークステーション６２０が２つだけ示されるが、明らかに複数のユーザワークステーション６２０がＬＡＮまたはインターネット／イントラネット６３０を介して接続され得る。各ワークステーション６２０は、他のワークステーション２２０のＩＰコア設計にインターネット２３０またはイントラネットを介してアクセスし得る。設計プラットフォーム１０４はＪＡＶＡ（Ｒ）で書かれているので、設計プラットフォームは任意のタイプのコンピュータワークステーション６２０上で動作し得る。各ユーザワークステーション６２０はまた、ユーザＩＰコア設計およびサポートファイルを格納する設計のカタログ６３５を含み得る。したがって、オープンポータルサイト１０４によってサポートされる設計プラットフォーム１０４の機能は、この種々の実施形態によって等しくサポートされる。ポータルサイトによってサポートされる回路設計プラットフォームの例は、例えば、２０００年２月２８日出願の米国特許出願第０９／５１４，７５７号（代理人整理番号Ｎｏ．２４７／２３７）に開示される。米国特許出願第０９／５１４，７５７号（代理人整理番号Ｎｏ．２４７／２３７）は本明細書中にて参考として援用される。
【００６０】
さらに、上記本発明の種々の実施形態および機能は、グラフィカルユーザインタフェース（ＧＵＩ）を介してユーザに与えられ得る。図８ａ〜８ｄおよび図９は、回路設計プラットフォームの種々の段階のＧＵＩ画面をとった例を例示する。例えば、図８ａは、ＩＰコアを作成するか、またはＳｏｃ設計へインポートするための適切なＩＰコアをサーチするかのいずれかの場合に、ユーザに与えられるＧＵＩを図示する。ＧＵＩ画面８００は、キーボードまたはマウスのいずれかを介して選択され得る種々のアイコンおよびツールバー８０５、８１０を含む。ツールバー８１０上に見いだされるアイコン８０５またはツールの選択は、例えば、ユーザ１０２にウィンドウ８１５を提供する。ウィンドウ８１５は、新たに作成されたＩＰコアを分類するのに役立ち得る種々の設計パラメータをユーザ１０２に提供するか、またはＩＰコアのサーチ中に所望のキー機能を提供するための手段をユーザ１０２に提供する。ステップ３０４において、ユーザ１０２は、設計プラットフォームによってサポートされるサーチエンジンを使用して、種々のリモートに位置付けられるＩＰコアリソースを見つける。ウィンドウ８１５は、種々のＩＰコアから所望のキー設計機能を選択する手段をユーザ１０２に提供する。一旦ＩＰコアが作成されると、ＩＰコアは種々のユーザワークステーションに接続されたデータベース２２５に格納される。一旦ＩＰコアが作成および格納されると、ＩＰコアは、例えば、図８ｂに示されるようなＧＵＩページに表示される。図８ｂに示すように、画面８００は、格納されたＩＰコアデータへの種々のリンクを表示し得る。図８ｂは、ＩＰコア作成者がＩＰコア設計を公開するためのＧＵＩページの例を例示する。ＳｏＣ設計者／ユーザ１０２は、特定の設計基準を満たすＩＰコアを求めてユーザワークステーションのネットワークをサーチし得る。次に、ユーザ１０２は、図８ｂに示すＩＰ公開ページ上で適切なリンクを選択し、コンポーネントデータファイル転送を開始し得る。図８ｃに例示されたＧＵＩページは、コンポーネントデータファイル送信が完了した場合を決定するための手段をユーザ１０２に提供し得る。ユーザ１０２は、図８ｃに示すような転送された種々のＩＰコアデータファイルをリストするＧＵＩページを提供される。図８ｃにおいて、ユーザ１０２は、種々のＩＰコンポーネントデータファイルフォルダ８２５を表すアイコンを提供される。各フォルダ８２５に格納されたデータの特定事項は、ＧＵＩウィンドウ８３０においてユーザ１０２に与えられる。
【００６１】
一旦すべてのＩＰコアデータファイルのインポートが完了すると、ユーザはＳｏＣ統合および接続を介し得る。図８ｄは、どのＩＰコアがＳｏＣ設計全体を用いて配置されるかをユーザ１０２に示すための可能なＧＵＩの例を提供する。一旦ＩＰコアがユーザ１０２のＳｏＣ設計内に配置および統合されると、回路設計プラットフォームは、ＳｏＣ設計全体内に含まれるすべてのコンポーネントのネットリストを生成する。図９は、ネットリスト出力のＧＵＩ例を例示する。図９に示すように、画面８００はアイコン８０５およびツールバー８１０を含む。さらに、図９は、各ＩＰコアの種々のコンポーネントデータファイルを表すフォルダアイコン８２５を図示する。各フォルダ８２５は、各ＩＰコアコンポーネントデータファイルをサポートするすべてのソースコードファイルのリスト８３０をさらに表示するように選択され得る。ソースコードファイルの表示されたリスト８３０は、パワー使用モデル、ピン図、検証ファイルなどのファイルを含み得る。加えて、これらのソースコードファイルの各々の選択は、その後、実際のソースコードをユーザ１０２に表示するように選択される。ＧＵＩを介するソースコードファイルの変更および編集は、ユーザがＩＰコア設計を変更またはカスタマイズしてＳｏＣ設計パラメータを満足することを可能にし得る。
【００６２】
図１０は、ブロック図の形態で、本発明に含まれる種々の機能を例示する。システム１０００は、中心に、プラットフォームビルダ１００１を含む。プラットフォームビルダ１００１は、種々の機能にリンクされ、その機能の任意の組み合わせは本発明の種々の実施形態を含み得る。例えば、プラットフォームビルダ１００１はデータベース１００２にリンクされる。データベース１００２は、作成およびインポートされたＩＰコアコンポーネントデータファイルの両方を含むフォルダ１００３を格納する。データベース１００２はまた、コンプライアンスチェッカ１００４に接続され、新しいＳｏＣ設計がクライアントまたは会社の設計基準に従うことを保証し得る。コンプライアンスチェッカ１００４は、ＩＰクリエータパッケージ１００５に接続され得、したがって各新しく作成されたＩＰコアはすべての会社の基準に従う。プラットフォームビルダ１００１は、ＩＰコアサーチエンジン１００６にさらに接続され得る。サーチエンジンは、プラットフォームビルダ１００１を使用するユーザ１０２がリモートソースによって作成されたＩＰコアを求めてサーチすることを可能にし得る。ＩＰコアサーチエンジン１００６は、ユーザ１０２と第三者ベンダ１０３との間の生じる簡単な技術移転またはライセンシングを提供する契約ビルダ１００７にさらにリンクされ得る。プラットフォームビルダ１００１は、パワー／エリア推定１００８および／またはバグ報告通知システム１００９のいずれかにさらに接続され得る。さらに、プラットフォームビルダ１００１は、プラットフォームビューア１０１０に接続され得るか、またはＶＣＣ１０１１にリンクされ得る。さらに、プラットフォームビルダ１００１はまた、インタフェースコンプライアンスチェッカ１０１２およびテスト生成器１０１３に接続され得る。インタフェースコンプライアンスチェッカ１０１２は、ネットリスト生成器１０１４にさらに接続され、ＳｏＣ設計全体上に存在するすべての要素のソースコード出力を提供する。
【００６３】
回路設計を容易にし、かつ設計ツールおよびサービスをユーザに商業ベースで提供するための方法が、その方法に付随する利点のいくつかとともに開示された。しかし、種々の変更が、本システムおよび／またはプロセスステップの形態、内容および構成において、本発明の精神および範囲を逸脱せずになされ得、本明細書中に上記記載の本システムおよび方法は単にその好適または例示の実施形態であることが明らかである。したがって、本発明は、添付の請求項およびその法的な均等物に従う以外は限定または制限されない。
【図面の簡単な説明】
【００６４】
【図１】図１は、電子設計ツールおよびサービスのエンドユーザと供給業者とを接続するポータルの抽象的な図である。
【図２】図２は、電子設計ツール、サービス、情報および／または他のリソースのエンドユーザと供給業者とを接続することによって、電子設計を容易にするシステムのより詳細な図である。
【図３】図３は、例えば、図２のシステムと共に用いられ得る、電子設計におけるコンポーネントを選択し、管理するプロセスを示すフローチャートである。
【図４】図４は、分散型電子ネットワークを介して、図２に示すようなポータルサイトにアクセスすることによって、コンポーネントを購入するプロセスを示すフローチャートである。
【図５】図５は、選択したＩＰコアブロックを、個別に、または、集合的に検証するプロセスを示すフローチャートである。
【図６】図６は、電子設計ツール、サービス、情報および／または他のリソースのエンドユーザと供給業者とを接続することによって、電子設計を容易にする、代替的なシステムのより詳細な図である。
【図７】図７は、全体的に高いレベルで模式化された選択したＩＰコアブロックを示す、生成されたグラフィカル高レベルネットリストの一例を示す図である。
【図８Ａ】図８ａは、本発明を用いる、回路チップ設計プラットフォームの様々な工程のユーザに対して表される、グラフィカルユーザインターフェースの一例を示す図である。
【図８Ｂ】図８ｂは、本発明を用いる、回路チップ設計プラットフォームの様々な工程のユーザに対して表される、グラフィカルユーザインターフェースの一例を示す図である。
【図８Ｃ】図８ｃは、本発明を用いる、回路チップ設計プラットフォームの様々な工程のユーザに対して表される、グラフィカルユーザインターフェースの一例を示す図である。
【図８Ｄ】図８ｄは、本発明を用いる、回路チップ設計プラットフォームの様々な工程のユーザに対して表される、グラフィカルユーザインターフェースの一例を示す図である。
【図９】図９は、コンポーネントの生成されたネットリストのユーザに対して表される、グラフィカルユーザインターフェースの一例を示す図である。
【図１０】図１０は、本発明の回路設計プラットフォームに含まれ得る各種の機能およびインプリメンテーションのブロック図である。
【図１】
2004531835.tif 000003
【図２】
2004531835.tif 000004
【図３】
2004531835.tif 000005
【図４】
2004531835.tif 000006
【図５】
2004531835.tif 000007
【図６】
2004531835.tif 000008
【図７】
2004531835.tif 000009
【図８Ａ】
2004531835.tif 000010
【図８Ｂ】
2004531835.tif 000011
【図８Ｃ】
2004531835.tif 000012
【図８Ｄ】
2004531835.tif 000013
【図９】
2004531835.tif 000014
【図１０】
2004531835.tif 000015
【国際公開パンフレット】
2004531835.tif 000016
2004531835.tif 000017
2004531835.tif 000018
2004531835.tif 000019
2004531835.tif 000020
2004531835.tif 000021
2004531835.tif 000022
2004531835.tif 000023
2004531835.tif 000024
2004531835.tif 000025
2004531835.tif 000026
2004531835.tif 000027
2004531835.tif 000028
2004531835.tif 000029
2004531835.tif 000030
2004531835.tif 000031
2004531835.tif 000032
2004531835.tif 000033
2004531835.tif 000034
2004531835.tif 000035
2004531835.tif 000036
2004531835.tif 000037
2004531835.tif 000038
2004531835.tif 000039
2004531835.tif 000040
2004531835.tif 000041
2004531835.tif 000042
2004531835.tif 000043
2004531835.tif 000044
2004531835.tif 000045
2004531835.tif 000046
2004531835.tif 000047
2004531835.tif 000048
2004531835.tif 000049
2004531835.tif 000050
2004531835.tif 000051
2004531835.tif 000052
2004531835.tif 000053
2004531835.tif 000054
2004531835.tif 000055
2004531835.tif 000056
2004531835.tif 000057
2004531835.tif 000058
2004531835.tif 000059
2004531835.tif 000060
2004531835.tif 000061
2004531835.tif 000062
2004531835.tif 000063
2004531835.tif 000064
2004531835.tif 000065
2004531835.tif 000066
【国際公開パンフレット（コレクトバージョン）】
2004531835.tif 000067
2004531835.tif 000068
【国際調査報告】
2004531835.tif 000069