(57)【特許請求の範囲】
【請求項１】
少なくとも一つの対象電子回路内に使用される電子回路設計をライセンスするための
ライセンスシステムを管理する方法であって、
前記ライセンスシステムは、
タグ付きデータを記憶するコンピュータと、
前記コンピュータと前記対象電子回路とに通信可能に結合されたライセンスコントローラと、
前記ライセンスコントローラに関連したデータストレージとを備えることを特徴とし、及び、前記方法は、
前記電子回路設計を使用単位でライセンスするステップを備えることを特徴とし、
前記ライセンスするステップは、
前記コンピュータが、前記タグ付きデータを前記ライセンスコントローラへ供給するステップであって、前記タグ付きデータは、前記対象電子回路内の前記電子回路設計をテストすることに関するテストデータと前記対象電子回路内の前記電子回路設計をプログラム可能に構成することに関するプログラミングデータのうちの少なくとも１つを含むとともに、第1のライセンス情報が付け加えられていることを特徴とする前記供給するステップと、
前記コンピュータが、第２のライセンス情報を記憶させるステップと、
前記ライセンスコントローラが、前記タグ付きデータに含まれた前記第１のライセンス情報を読み込むステップと、
前記ライセンスコントローラが、前記第１のライセンス情報を前記データストレージに記憶された第２のライセンス情報と比較するステップと、
もし前記比較の結果が前記対象電子回路内の前記電子回路設計のライセンス可能使用を示すなら、前記コンピュータが、前記ライセンスコントローラを介して前記対象電子回路内へ前記テストデータ及び前記プログラミングデータのうちの少なくとも１つを適用するステップとを含む
ことを特徴とする方法。
【請求項２】
前記第１のライセンス情報が、前記対象電子回路内の前記電子回路設計を用いるための少なくとも一つのライセンスに対応することを特徴とする請求項１の方法。
【請求項３】
前記第１のライセンス情報を前記第２のライセンス情報と比較するステップは、ライセンスコントローラへ何のライセンスが割り当てられるかを判定するために、前記ライセンスコントローラが前記第１のライセンス情報を前記第２のライセンス情報と比較することを含む請求項２の方法。
【請求項４】
前記データストレージに記憶された前記第２のライセンス情報は、前記ライセンスコントローラに関連するシリアル番号を含むことを特徴とする請求項１の方法。
【請求項５】
前記ライセンスコントローラに対する前記データの前記供給が、前記ライセンスコントローラに割り当てられた少なくとも一つのライセンスに応じることを特徴とする請求項３の方法。
【請求項６】
前記ライセンスコントローラに割り当てた前記ライセンスが、前記少なくとも一つの対象電子回路内に前記電子回路設計を用いるための未使用ライセンス数に対応することを特徴とする請求項３の方法。
【請求項７】
前記コンピュータが、前記データストレージに第３のライセンス情報を記憶することを更に含み、該第３のライセンス情報は、前記少なくとも一つの対象電子回路内に前記電子回路設計を用いるための前記未使用ライセンス数を表わすものである請求項６の方法。
【請求項８】
前記対象電子回路に前記テストデータ及び前記プログラミングデータの一つの前記適用に関する予め定められたイベントに応じて、前記第３のライセンス情報で表わされる前記未使用ライセンス数を前記ライセンスコントローラによって更新することを更に含む請求項７の方法。
【請求項９】
前記対象電子回路は、ＩＤ署名レジスタを持つテストアクセスポート回路を含むことを特徴とし、そして、
前記方法は、前記プログラミングデータが前記対象電子回路に適用されるように、前記ＩＤ署名レジスタが前記プログラミングデータの署名を生成することを更に含む請求項８の方法。
【請求項１０】
前記ＩＤ署名レジスタが前記プログラミングデータの前記署名を前記対象電子回路内に記憶することを更に含む請求項９の方法。
【請求項１１】
前記対象電子回路内に前記電子回路設計を識別するために、前記ライセンスコントローラが前記プログラミングデータの前記記憶された署名にアクセスすることを更に含み、
前記第３のライセンス情報で表わされる前記未使用ライセンス数の更新は、前記プログラミングデータが前記識別された電子回路設計とは異なる前記対象電子回路内の電子回路設計をプログラム可能に構成する場合において、前記ライセンスコントローラが前記未使用ライセンス数を更新することを特徴とする請求項１０の方法。
【請求項１２】
少なくとも一つの他のライセンスコントローラに前記少なくとも一つのライセンスを再割り当てするために、前記ライセンスコントローラが、前記データストレージに記憶された前記第２のライセンス情報を更新することを更に含む請求項３の方法。
【請求項１３】
前記少なくとも一つのライセンスコントローラは、それに関するシリアル番号を有することを特徴とする請求項１２の方法。
【請求項１４】
前記対象電子回路は、ＩＤ署名レジスタを持つテストアクセスポート回路を含むことを特徴とし、そして、
前記方法は、前記プログラミングデータが前記対象電子回路に適用されるように、前記ＩＤ署名レジスタが前記プログラミングデータの署名を生成することを更に含む請求項１２の方法。
【請求項１５】
前記ＩＤ署名レジスタが前記プログラミングデータの前記署名を前記対象電子回路内に記憶することを更に含む請求項１４の方法。
【請求項１６】
前記電子回路設計に関する前記データは、前記対象電子回路内の前記電子回路設計をテストすることに関する前記テストデータを備えることを特徴とし、
前記対象電子回路は、前記電子回路設計の機能的動作を可能にするためのイネーブルキー更新／メモリレジスタと前記電子回路設計に関する支援回路とを持つ回路を含むことを特徴とし、そして、
前記方法は、前記イネーブルキー更新／メモリレジスタが、前記電子回路設計に関する前記支援回路および前記電子回路設計の一またはそれ以上の動作を可能にするためのイネーブルキーを記憶することを更に含むことを特徴とする請求項１の方法。
【請求項１７】
前記ライセンスコントローラが前記データストレージ内に前記イネーブルキーを記憶することを更に含む請求項１６の方法。
【請求項１８】
前記イネーブルキーは対応する暗号化した値を持つことを特徴とする請求項１６の方法。
【請求項１９】
前記電子回路設計に関する前記支援回路および前記電子回路設計の機能的動作を可能にするための前記回路は、イネーブルキーデコーダ回路を含むことを特徴とし、そして、
前記方法は、前記イネーブルキーデコーダ回路が前記イネーブルキーの前記暗号化された値を解読することを更に含むことを特徴とする請求項１８の方法。
【請求項２０】
前記イネーブルキーデコーダ回路が、前記イネーブルキーの解読値に応じて、前記対象電子回路内の前記電子回路設計の機能的動作を可能にするためにイネーブル信号を表明することを更に含む請求項１９の方法。
【請求項２１】
前記支援回路は前記電子回路設計の一部を備えていることを特徴とする請求項１６の方法。
【請求項２２】
前記イネーブルキーは対応する暗号化した値を持つことを特徴とし、
前記電子回路設計に関する前記支援回路および前記電子回路設計の機能的動作を可能にするための前記回路は、イネーブルキーデコーダ回路を含むことを特徴とし、そして、
前記方法は、前記イネーブルキーデコーダ回路が、前記イネーブルキーの暗号化した値を解読することと、前記イネーブルキーの解読値に応じて、前記イネーブルキーデコーダ回路が前記支援回路の機能的動作を可能にするためにイネーブル信号を表明することを更に含むことを特徴とする請求項１６の方法。
【請求項２３】
前記支援回路によって、前記対象電子回路内の前記電子回路設計に対する前記テストを容易にすることを更に含む請求項２２の方法。
【請求項２４】
前記対象電子回路は、前記電子回路設計に関する識別情報を生成するとともに記憶するための回路を含むことを特徴とし、そして、
前記方法は、前記識別情報を生成するとともに記憶するための前記回路が、前記電子回路設計に関する識別情報を生成することを更に含む請求項１の方法。
【請求項２５】
前記識別情報を生成するとともに記憶するための前記回路が、前記対象電子回路に前記識別情報を記憶することを更に含む請求項２４の方法。
【請求項２６】
前記ライセンスコントローラが、前記対象電子回路に前記テストデータ及び前記プログラミングデータの１つの適用に関する予め定められたイベントに応じて、前記電子回路設計に関する識別情報を更新することを更に含む請求項２４の方法。
【請求項２７】
コンピュータと、
前記コンピュータに通信可能に結合されたライセンスコントローラと、
前記ライセンスコントローラと関連しているデータストレージとを備え、
少なくとも一つの対象電子回路内に使用単位に基づく電子回路設計をライセンスするためのシステムであって、
前記コンピュータは、タグ付きデータを前記ライセンスコントローラへ供給するとともに前記データストレージに第２のライセンス情報を記憶するよう動作することを特徴とし、
前記タグ付きデータは、前記電子回路設計に関連しているとともに、前記対象電子回路内の前記電子回路設計をテストすることに関するテストデータ及び前記対象電子回路内の前記電子回路設計をプログラム可能に構成することに関するプログラミングデータのうちの少なくとも１つを含み、第１のライセンス情報が付け加えられていることを特徴とし、
前記ライセンスコントローラは、前記タグ付きデータの中に含まれた第１のライセンス情報を読み込み、そして前記第１のライセンス情報を前記データストレージに記憶された前記第２のライセンス情報と比較するよう動作することを特徴とし、
もし前記比較の結果が前記対象電子回路内の前記電子回路設計のライセンス可能使用を示すなら、前記コンピュータは更に、前記ライセンスコントローラを介して前記対象電子回路に前記テストデータ及び前記プログラミングデータの少なくとも一つを適用するよう動作することを特徴とする
前記システム。
【発明の詳細な説明】
【技術分野】
【０００１】
［関連出願の相互参照］
この出願は、「電子回路の知的財産権のライセンスされた引渡しおよび課金をするための管理システム、方法および装置」なる名称で２００２年１月２３日に出願された米国仮特許出願第６０／３５０，８８５号の優先権を主張する。
【０００２】
［連邦補助研究または開発に関する表明］
適用なし
【背景技術】
【０００３】
本発明は、対象電子回路内に、プログラム可能に構成または設計された電子回路（以下、「電子回路設計」と略す）をランセンスするためのライセンスシステム及びこのシステムを管理する方法に関し、特に対象電子回路内で使用するためにライセンスされた電子回路設計の引渡しに対して安全なライセンスおよび信頼性の高い課金をするためのライセンスシステムおよびこのライセンスシステムを管理する方法に関する。
【０００４】
近年、集積回路（ＩＣ）のサイズおよび複雑性が増すにつれて、多くの回路設計者は、既存の所有権を主張できる回路を使用してＩＣを設計することがもはや実用的ではないことを見出している。この結果、回路設計者は、電子製品に対して増大する要望を満たしながら、半導体技術の進歩の有利さを享受できるＩＣ設計への代わりのアプローチを採用した。
【０００５】
回路設計者によって採用された１つのそのようなアプローチは、「設計再使用」として知られている。この場合、１以上の既存ＩＣ設計や第三者プロバイダからの機能回路ブロックが再使用されて、新しいＩＣ設計がなされる。このアプローチによって、回路設計者は、新しい半導体技術の利点を享受し、且つ増大した生産性を維持することが可能になる。これは、彼らがＩＣ内の回路の全てを設計する必要がないからである。設計再使用は、製品の小型化およびコスト削減を達成することに、またそれまでは独立した複数のチップ内で実施されていた複数の機能を有する１つの新製品が単一のＩＣ内へ集積化されることを可能にすること、および／または既存の機能と新たに設計された能力とを組み合わせた新製品を作ることに使用できる。
【０００６】
更に、設計再使用は、半導体技術および電子設計自動化（ＥＤＡ）ツールの進歩と共に、システム・オン・チップ（ＳｏＣ）の設計を可能にしている。この場合、システム全体が単一のＩＣパッケージ内に適合するように設計および構成され得る。このようなＳｏＣ設計は典型的に、高レベルの機能回路ブロックを使用する。これらのブロックは、一般に回路設計者や第三者プロバイダの知的財産権（ＩＰ）を備えるため、たびたび「ＩＰコア」と呼ばれる。ＩＰコアを使用するＳｏＣ設計のアプローチは、回路設計者が製品開発サイクルを加速することを可能にする。例えば、回路設計者（「ＩＰユーザ」）が第三者プロバイダから１以上のＩＰコアを得ることがあると、コア回路自身を設計する必要性を未然に回避し、またコア回路の高レベルの集積化を設計開発プロセスで行うことができる。
【０００７】
ＩＰプロバイダがＩＰユーザに対しＩＰコアを提供する場合、ＩＰプロバイダは、典型的にはＩＰユーザに対しＩＣやシステムの開発に回路設計を使用することをライセンスする。ＩＰコアは、「プロジェクト単位」または「使用単位」の２通りの一方でライセンスされる。プロジェクト単位でライセンスされる場合、そのライセンスは一般に、特別なＩＣ、製品またはＩＣや製品のファミリー内での使用に対してＩＰユーザに許可され、そして一律料金がプロジェクトの期間に対して課せられる。使用単位でライセンスされる場合、料金やロイヤリティは、しばしば設計される製品とは関係なくＩＰコアの各個別使用に対して課せられ、あるいはプロジェクトの期間に対して課せられる。
【０００８】
使用単位のライセンスは一般に、ＩＰプロバイダおよびＩＰユーザの双方にとって、プロジェクト単位のライセンスよりも公正かつ予測可能であると見られている。例えば、プロジェクト単位のライセンスに必要な一律料金は通常、ＩＰコアの期待される使用をプロジェクト期間にわたってカバーするには比較的高い。更には、ＩＰプロバイダとＩＰユーザは通常、期待される製品量と期待される製造期間とを見積もらなければならない。製品が見積もられた製品量に達しない場合、ＩＰユーザは典型的に、ＩＰコアの各使用に対してより多くを支払う。この代わりに、期待される製品量が超過される場合、ＩＰプロバイダは典型的に、より低い料金やロイヤリティで各ＩＰコアをライセンスする。この結果、ＩＰユーザによって支払われる料金と、ＩＰプロバイダによって受け取られるロイヤリティは、これらの当事者が最初に契約したものとは有意に異なってしまうことがある。
【０００９】
これに対し、ＩＰコアが使用単位でライセンスされる場合、ＩＰプロバイダとＩＰユーザは一般に、最初の見積もりからかなり変化する可能性のある期待される製品量および／または期待される製造期間に頼る必要がない。さらに、使用単位のライセンスは、ＩＰユーザがＩＰコアのライセンスコストを製品の製造期間にわたらせることを可能にする。しかしながら、使用単位のライセンスが一般にプロジェクト単位のライセンスよりも公正かつ予測可能であるとしても、使用単位のライセンスは典型的にＩＰプロバイダに対し実際のＩＰコア使用、即ちＩＣの製造に使用されたＩＰコアの数に課金する信頼性の高い方法を与えない。例えば、ＩＰプロバイダは、ＩＰユーザが種々の製品で使用されたＩＰコアの数に正確に課金することを信頼しなければならない。
【００１０】
ソフトウエアのアプリケーションの実行を使用単位で監視するために今日利用可能なソフトウエアのライセンスシステムはあるが、対象電子回路およびデバイス内でライセンスされた電子回路設計の安全な引渡しおよび信頼性の高い課金を管理するためのシステムおよび方法に対する必要性が残る。
【００１１】
［発明の簡単な要約］
本発明に従って、対象電子回路またはデバイス内で使用される電子回路設計をライセンスするライセンスシステムおよびこのライセンスシステムを管理する方法が提供される。このライセンスシステムは、ライセンスされた電子回路設計の安全な引渡しおよび信頼性の高い課金を使用単位で可能とする。
【００１２】
一実施形態では、電子回路設計をライセンスする方法は、電子回路設計が対象電子回路内での使用にライセンスされ得るか否かを、その電子回路設計と関連したデータに含まれるライセンス情報を検証することによって判定する。このライセンス情報は、少なくとも１つの属性を有する。電子回路設計が対象電子回路内での使用にライセンス可能であると判定される場合、１組のベクターのような電子回路設計に関連したデータがライセンスコントローラを介して対象電子回路に適用される。次いで、予め定められたイベントに応答して、対象電子回路内の電子回路設計のライセンスされた使用を示すためにライセンス情報の属性は更新される。例えば、１組のテストベクターがライセンスコントローラを介して対象電子回路に適用される。電子回路設計がテストベクターに関連した１以上のテストに合格したと判定される場合、ライセンス情報の属性は更新される。この代わりに、プログラム可能な構成データ（プログラミングデータまたはプログラムデータともいう）もライセンスコントローラによって対象電子回路に適用される。この場合、対象電子回路内で初めて電子回路設計がプログラム可能に構成されていると判定される場合、ライセンス情報の属性は更新される。
【００１３】
もう１つの実施形態では、ライセンスシステムは、コンピュータ化されたデバイス、例えば少なくとも１つの電子回路設計に関連したデータを記憶するように構成された第１のストレージを含んだコンピュータを備える。この場合、記憶されたデータは、少なくとも１つの属性を有する第１の所定の情報を含んでいる。このライセンスシステムは更に、コンピュータに結合され且つ対象電子回路に結合可能なライセンスコントローラを含んでいる。ライセンスコントローラは、コンピュータと対象電子回路との間でデータを搬送するように構成されている。ライセンスコントローラは、電子回路設計に関連した第２の所定の情報を記憶するための第２のストレージを含んでいる。この場合、第２の所定の情報もまた、少なくとも１つの属性を有する。第１及び第２の所定の情報の属性のそれぞれは、それぞれのライセンスコントローラ用の識別子を含むことがある。
【００１４】
この実施形態では、コンピュータは、ライセンスコントローラのストレージからの第２の所定の情報の属性にアクセスし、第１及び第２の所定の情報のそれぞれのライセンスコントローラ用の識別子を比較し、そしてそれぞれのライセンスコントローラ用の識別子が一致する場合には、電子回路設計に関連したデータをライセンスコントローラを介して対象電子回路に適用するように構成されている。例えば、適用されたデータは、１組のテストベクターなどのテストやプログラム可能な構成データを含む。この場合、ライセンスシステムは、テストベクターや構成データの適用を管理および監視することによって、対象電子回路内の電子回路設計の使用に対して課金する。
【００１５】
ここで開示されるライセンスシステムは、ＩＰコアプロバイダとＩＰコアユーザが、ライセンスされた電子回路設計の対象電子回路内での使用に対し使用単位で高精度に課金することを可能にし、これにより電子回路設計が全ての関係者に対して公正な手法でライセンスされているという高い保証を与える。
【００１６】
この発明の他の特徴、機能および形態は、後続する発明の詳細な説明から明らかとなる。
【００１７】
この発明は、図面に関連した以下の発明の詳細な説明を参照することによって、より完全に理解される。
【００１８】
［発明の詳細な説明］
２００２年１月２３日に出願された米国仮特許出願第６０／３５０，８８５号は、参照によりここに組み入れられる。
【００１９】
図１は、本発明に係る知的財産権ライセンス（ＩＰＬ）システム１００の例証用実施形態を図示している。この例証用実施形態では、ライセンス（ＩＰＬ）システム１００は、コンピュータ１０２と、このコンピュータ１０２に接続されたライセンス（ＩＰＬ）コントローラ（以下、ライセンスコントローラと略す）１０４とを含んでいる。例えば、コンピュータ１０２は、汎用コンピュータ（例えば、ＰＣまたはラップトップ）であって、少なくとも１つのプロセッサと、少なくとも１つのメモリ、例えば読み出し専用メモリ（ＲＯＭ）やランダムアクセスメモリ（ＲＡＭ）と、少なくとも１つのデータストレージ、例えばディスクとを含んでいる。ライセンスコントローラ１０４は、第１のバス（“Ｐバス”）１０７を介してコントローラ１０４がコンピュータ１０２と通信可能となるように構成された回路（図示せず）を含んでいる。更にライセンスコントローラ１０４は、プログラム可能な構成および／またはテストの目的のために、第２のバス１０８を介して対象電子回路１０６にアクセスするように構成されている。例えば、第２のバス１０８は、ライセンスコントローラ１０４が既知のテストアクセスポート（ＴＡＰ）プロトコルを使用して対象電子回路１０６にアクセスできるように構成されたＩＥＥＥ１１４９．１バスである。対象電子回路１０６は、好適なプログラム可能回路、例えばプログラム可能読み出し専用メモリ（ＰＲＯＭ）、フラッシュメモリ、フィールドプログラム可能ゲートアレイ（ＦＰＧＡ）、あるいは複合プログラム可能ロジックデバイス（ＣＰＬＤ）であってもよいし、好適なノンプログラマブル回路、例えば特定用途ＩＣ（ＡＳＩＣ）またはランダムアクセスメモリ（ＲＡＭ）であってもよい。ライセンスコントローラ１０４が対象電子回路１０６にアクセスして、ライセンスされた電子回路設計を、対象電子回路１０６内において設計階層構造の選択されたレベルで、プログラム可能に構成またはテストすることがある点に留意されたい。例えば、ライセンスコントローラ１０４は、ライセンスされた電子回路設計を、対象電子回路１０６内で埋込型コアまたは埋込型メモリとしてアクセスすることがある。また、この対象電子回路１０６は、印刷回路基板（ＰＣＢ）のシステム内でパッケージ化されたＩＣまたはＦＰＧＡとして構成されることもある。
【００２０】
ここで開示されている実施形態では、ライセンスコントローラ１０４は、ＩＥＥＥ１１４９．１および１５３２規格に従って、対象電子回路１０６をテストすること、および／または対象電子回路１０６のインシステム構成（ＩＳＣ）を行うことに使用される。これらの規格は、ＩＥＥＥ１１４９．１規格テストアクセスポートおよびバウンダリスキャンアーキテクチャ仕様、並びにプログラム可能デバイスのインシステム構成用ＩＥＥＥ１５３２規格にそれぞれ記載されている。これらは、参照によってここに組み入れられる。しかしながら、ここで理解されるべき点は、テスト、スキャン、およびＩＳＣアクセスの代替の技法およびプロトコルもまた使用できるということである。さらに、コンピュータ１０２および／またはライセンスコントローラ１０４は、自動テスト装置（ＡＴＥ）や他の好ましいテスト／プログラミング資源を備えることもできる。
【００２１】
ライセンスシステム１００は、コンピュータ１０２のメモリ内にインストールされたライセンス機能と、ライセンスコントローラ１０４に含まれた不揮発性データストレージとを含んで、対象電子回路１０６内でのライセンスされた電子回路設計（例えば、埋込型コアおよびメモリ）の使用に対してライセンスおよび課金を行う。ここで理解されるべき点は、ここで使用されている「ライセンス」という用語は、コア電子回路設計の各個別使用に対する収入を得る好適な方法、例えば各コア電子回路設計に対する使用単位の収入を得る好適な方法を指すということである。
【００２２】
図１は、例示的なライセンス特徴ファイル１１０（図１参照）の拡大図を示している。図１に示されるように、ライセンス特徴ファイル１１０は、コンピュータ１０２のメモリに記憶されたテキストファイルを備える。このテキストファイルは、対象電子回路１０６に対して引き渡されるコア電子回路設計に関連したライセンスデータを含んでいる。図１に示されるように、ライセンス特徴ファイル１１０は、ライセンスされている特別な電子回路設計の特徴または属性を含んでいる。例えば、これらの属性は、ライセンス「発行(Issue)」番号、「製品(Product)」コード、「バージョン(Version)」コード、追加／削除される「ライセンス(Licenses)」の数、ライセンス「満了(Expiration)」コード、「ベンダー(Vendor)」コード、「顧客(Customer)」コード、およびライセンスコントローラシリアル番号”IPLC_SN”、即ち、ライセンスコントローラ１０４のシリアル番号を含む。加えて、ライセンス特徴ファイル１１０の属性の各組は、「キー(Key)」を含んでいる。このキーは、ライセンスされている電子回路設計に対する属性情報を考慮する暗号化アルゴリズムを使用して生成される。暗号化されたキーと、ライセンスコントローラ１０４の不揮発性データストレージ内に保持されているライセンスデータとを使用して、ライセンス特徴ファイル１１０内の情報を検証することによって、ライセンスシステム１００は、対象電子回路１０６に対するコア電子回路設計の安全な引渡しを可能にする。
【００２３】
ライセンスシステム
ここに開示された実施形態では、ライセンスシステム１００（図１参照）は、ライセンスされた電子回路設計の対象電子回路１０６内での使用を、対象電子回路１０６に適用または引渡しされたプログラミングデータやテストデータ（例えば、ベクター）に基づいて、追跡するように構成されている。ライセンスシステム１００は、知的財産権（ＩＰ）コアベンダーまたはプロバイダ（「ＩＰプロバイダ」）とＩＰコア顧客またはユーザ（「ＩＰユーザ」）との間で実施および強制されるべき安全な使用単位のライセンスおよび課金を可能とする。
【００２４】
図６は、ライセンスコントローラ１０４を含んだライセンスシステム１００を使用するＩＰプロバイダおよびＩＰユーザ用の実例電子回路設計ライセンス環境６００を図示している（図１も参照）。コンピュータ１０２上にインストールされた上述のライセンス機能の動作によって、ＩＰプロバイダは、特別な電子回路設計に関連したデータＩＰ１−ＩＰｎ即ち６０２．１−６０２．ｎを、ライセンスされたベクターとして、ＩＰユーザに引渡すことが可能になる。例えば、データＩＰ１−ＩＰｎ即ち６０２．１−６０２．ｎは、対象電子回路１０６内で電子回路設計をプログラム可能に構成したり、テストするに好適である。ライセンス機能は更に、ベンダー（ＩＰプロバイダ）コード、顧客（ＩＰユーザ）コード、および／または製品コード（例えば、ＩＰタイプ）によってデータＩＰ１−ＩＰｎ即ち６０２．１−６０２．ｎにタグ付けするように動作する。言い換えると、ライセンス機能は、データＩＰ１−ＩＰｎ即ち６０２．１−６０２．ｎに、ベンダー（ＩＰプロバイダ）コード、顧客（ＩＰユーザ）コード、および／または製品コード（例えば、ＩＰタイプ）が付け加えられるように動作する。これらのコードは、ライセンス特徴ファイル１１０（図１参照）内の暗号化された属性のようなキーを用いてベクターファイル内で暗号化され、ライセンスシステム１００の不要な破壊を防止している。ＩＰユーザは、ライセンスされたベクター６０４を、ライセンスコントローラ１０４を介して対象電子回路１０６に直接適用することができる。この代わりに、ＩＰユーザは、ライセンスされたベクター６０４を他のベクター（例えば、非ライセンスのユーザベクター）と組み合わせて、対象電子回路１０６用に組み合わされたライセンス／非ライセンスベクター６０６の組を形成し、そのベクター６０６の組を、ライセンスコントローラ１０４を介して対象電子回路１０６に適用することができる。
【００２５】
この結果、実例電子回路設計ライセンス環境６００は、対象電子回路１０６内での電子回路設計のライセンスされた使用が、ベクター６０４および６０６の適用中に高い信頼性で課金され、これによりライセンスされた電子回路設計の信頼性の高い課金が、使用単位、アプリケーション単位、またはインスタンス単位で可能になる。更には、この実例電子回路設計ライセンス環境６００は、ライセンスされたテストベクターの適用を準備しているので、ＩＰユーザは一般に、このテストベクターの適用によるテストに失敗した（すなわち、テストで不合格である）電子回路設計（例えば、製造欠陥を含んだ不完全な電子回路設計）に対して支払う必要がない。従って、テストベクターの適用中に対象電子回路１０６がテストに失敗した、すなわち不合格になったときは、ライセンスは消耗されない。そして、ＩＰユーザは、ダイ上またはＩＣ内の良好な（すなわち、テストで合格した）ライセンスされた電子回路設計に対してのみ支払う。この実例電子回路設計ライセンス環境６００はまた、ＩＰユーザがライセンス、例えばライセンス６０８を追加または削除したり、ライセンス６０８を１つのライセンスコントローラからもう１つのライセンスコントローラへ移動することを、ライセンスサーバ／マネージャ６１０を介してＩＰプロバイダに要求する好ましいリクエストを作ることによって、可能にする。それ故、ＩＰユーザは、必要とするライセンスされた電子回路設計が何であれ、それに対して任意数の使用単位のライセンスを得ることができる。ＩＰユーザは、ビジネス条件によって要求および／または指図されるように、これらのライセンスを得て、実際に使用された電子回路設計の数およびタイプに基づいてライセンス料金が課せられる。
【００２６】
ライセンスコントローラ
図２は、ライセンスシステム１００に含まれるライセンスコントローラ１０４（図１参照）の例証用実施形態を図示している。この例証用実施形態では、ライセンスコントローラ１０４は、不揮発性データストレージ２０２（例えば、シリアルＰＲＯＭ２０２）と、ＰＲＯＭコントロール回路２０４と、Ｉ／Ｏインターフェース回路２０６と、ＩＥＥＥ１１４９．１バスコントロール回路２０８とを含んでいる。Ｉ／Ｏインターフェース回路２０６は、Ｐバス１０７に結合されている。このＰバス１０７は、クロック信号（ＰＣＬＫ）を搬送するためのラインと、それぞれのＰＤＡＴＡ＿ＩＮおよびＰＤＡＴＡ＿ＯＵＴデータバスとを含んでいる。シリアルＰＲＯＭ２０２、ＰＲＯＭコントロール回路２０４、Ｉ／Ｏインターフェース回路２０６、およびＩＥＥＥ１１４９．１バスコントロール回路２０８の記述は、後続のセクションで与えられる。
【００２７】
Ｉ／Ｏインターフェース回路
ここで開示されている実施形態では、Ｉ／Ｏインターフェース回路２０６（図２参照）は、コンピュータ１０２（図１参照）およびライセンスコントローラ１０４が同期式高速パラレルデータバスを備えたＰバス１０７を介して互いに通信することを可能にするように構成された回路を含んでいる。Ｐバス１０７上のＰＣＬＫ信号は、コンピュータ１０２からライセンスコントローラ１０４への入力データＰＤＡＴＡ＿ＩＮの転送を同期させること、並びにライセンスコントローラ１０４からコンピュータ１０２への出力データＰＤＡＴＡ＿ＯＵＴの転送を同期させることに使用される。従って、Ｉ／Ｏインターフェース回路２０６は、ＰＲＯＭコントロール回路２０４とＩＥＥＥ１１４９．１バスコントロール回路２０８との間のデータ転送を管理するように構成されている。
【００２８】
ＩＥＥＥ１１４９．１バスコントロール回路
ＩＥＥＥ１１４９．１バスコントロール回路２０８（図２参照）は、Ｉ／Ｏインターフェース回路２０６からパラレルデータおよび制御信号を受信すること、並びにこれらの信号をシリアルＩＥＥＥ１１４９．１プロトコルに変換して、ＩＥＥＥ１１４９．１バス１０８を通して対象電子回路１０６（図１参照）へ出力するように構成された回路を含んでいる。ＩＥＥＥ１１４９．１バスコントロール回路２０８は、更に、結果のシリアルデータを対象電子回路１０６からＩＥＥＥ１１４９．１バス１０８を通して受信すること、並びにこのシリアルデータをパラレルデータに変換してからＩ／Ｏインターフェース回路２０６へ送信するように構成されている。
【００２９】
ＰＲＯＭコントロール回路
ＰＲＯＭコントロール回路２０４（図２参照）は、Ｉ／Ｏインターフェース回路２０６からパラレルデータおよび制御信号を受信すること、並びにそのデータおよび制御信号を好適な２線式シリアルプロトコルに変換して、ＳＣＬＫ（シリアルクロック）ラインを使用したＳＤＡ（シリアルデータ／アドレス）バスを通してシリアルＰＲＯＭ２０２へ送信するように構成されている。ＰＲＯＭコントロール回路２０４は更に、ＳＤＡを通してシリアルＰＲＯＭ２０２から戻されるシリアルデータを受信すること、並びにこのシリアルデータをパラレルに変換してＩ／Ｏインターフェース回路２０６へ送信するように構成されている。
【００３０】
シリアルＰＲＯＭ
好ましい実施形態では、シリアルＰＲＯＭ２０２（図２参照）は、コア電子回路設計をライセンスするためにデータを記憶するように構成された不揮発性メモリを備えている。例えば、シリアルＰＲＯＭ２０２は、シリアルな電気的消去書込み可能読み出し専用メモリ（ＳＥＥＰＲＯＭ）または他の好適な形態の不揮発性リード／ライトメモリを備えることもできる。シリアルＰＲＯＭ２０２は、上述した２線式シリアルプロトコルを使用して、ＰＲＯＭコントロール回路２０４に対するインターフェースをとる。具体的には、シリアルＰＲＯＭ２０２は、シリアルクロック信号ＳＣＬＫを受信する。この信号は、ＰＲＯＭコントロール回路２０４との間で、シリアルデータ／アドレスバスＳＤＡ上でのデータおよびアドレス転送の同期をとることに使用される。例えば、シリアルＰＲＯＭ２０２は、４０９６通りのアドレス可能メモリ位置を含むこと、並びにバイト幅のデータを与えるように構成することができる。
【００３１】
しかしながら、ここで理解されるべき点は、ライセンスコントローラ１０４が他の好ましいタイプのデータストレージを使用してもよいこと、そして他の好ましい通信プロトコルを使用するように構成され得るということである。例えば、ライセンスコントローラ１０４は、パラレルフラッシュメモリや、ＩＥＥＥ１１４９．１プロトコルを使用するシリアルＰＲＯＭを使用することができる。さらに、ライセンスコントローラ１０４は、ライセンスシステム１００から分離されて実施されるデータストレージを使用することができる。例えば、図３はネットワークベースのライセンスマネージャ構成３００の例証用実施形態を図示している。この構成は、ネットワーク３０８と、コンピュータ３０６と、ネットワーク３０８に接続されたライセンスシステム３２０〜３２１とを含んでいる。この例証用実施形態では、ライセンスシステム３２０〜３２１の各々は、ライセンスシステム１００（図１参照）と同様であるが、ライセンスされた電子回路設計に関連したデータが、ライセンスコントローラ３２４および／または３２５に記憶されることに代わって（あるいは加えて）、コンピュータ３０６に含まれたデータストレージ３１２、例えばディスクに記憶されている点が異なる。このようにして、ライセンスシステム３２０〜３２１は、ライセンスシステム３２０〜３２１から分離されて記憶されたライセンスされた電子回路設計データに、例えばネットワーク３０８を通してライセンスシステム３２０〜３２１からアクセス可能なディスク３１２に記憶されたライセンスデータに、アクセスするように構成できる。ここで理解される点は、この構成では、コンピュータ３０６に含まれたデータストレージ３１２が、ライセンスコントローラ３２４〜３２５に含まれた不揮発性ストレージとほぼ同じ機能を果たすということである。
【００３２】
ライセンスマネージャ
上述したように、図３はネットワークベースのライセンスマネージャ構成３００を図示している。この例証用実施形態では、ネットワークベースのライセンスマネージャ３００は、ネットワーク３０８と、ライセンスシステム３２０〜３２１と、ネットワーク３０８に接続されたコンピュータ３０２，３０４および３０６とを含んでいる。例えば、ネットワーク３０８は、ローカルエリアネットワーク（ＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）、インターネット、または他の好ましいネットワークを備えることができる。また、コンピュータ３０２，３０４および３０６は、好ましい汎用コンピュータを備えることができる。
【００３３】
図３のネットワークベースのライセンスマネージャ３００は、以下の例証例を参照することによって、よりよく理解される。この例は、例証用ライセンス特徴ファイル３１０を使用する（図３のファイル３１０の拡大図を参照）。このライセンス特徴ファイル３１０は、コンピュータ３０４（「サーバＸ」）に記憶されたテキストファイルを備える。図３に示されるように、ライセンス特徴ファイル３１０は、対象電子回路３２６および／または３２７に引渡しまたは適用される電子回路設計に対して、３つの「ＩＰＬ」ライセンスを含んでいる。ＩＰＬライセンスは、ライセンス特徴ファイル１１０（図１参照）を参照して先に説明されたように、各特別な電子回路設計ライセンスに対する適切な属性およびキーを含む。ライセンス特徴ファイル３１０（図３参照）は、ネットワーク３０８上のコンピュータ３０２，３０４，３０６および３２２〜３２３の各々によってアクセスされ得る。この例では、コンピュータ３２２は、ライセンスコントローラ３２４に接続され、ライセンスされたベクターは、このライセンスコントローラ３２４を通して対象電子回路３２６に適用される。同様に、コンピュータ３２３は、ライセンスコントローラ３２５に接続され、ライセンスされたベクターは、このライセンスコントローラ３２５を通して対象電子回路３２７に適用される。ここで認められるべき点は、ネットワーク３０８が、ネットワーク上のコンピュータに取り付けられた１以上のライセンスコントローラを有することができるということである。ライセンス特徴ファイル、例えばファイル１１０（図１参照）や３１０（図３参照）、並びにシリアルＰＲＯＭ２０２（図２参照）のフォーマットは、後続するセクションにおいて更に説明される。
【００３４】
ライセンス特徴ファイル
図４は、ネットワークベースのライセンスマネージャ３００（図３参照）と関連して使用され得るライセンス特徴ファイル４１０の例証用実施形態を図示している。図４に示されるように、ライセンス特徴ファイル４１０は、複数ラインのテキストを含んだテキストファイルを備える。例えば、各ラインは、特別なコア電子回路設計に対するライセンス属性を記述した製品ラインを備えることができる。このライセンス特徴ファイル４１０では、各製品ラインは、次のフォーマットを有する。
LICENSE_NAME: <Issue> <Product> <Version> <+/- Licenses>
<Expiration> <Vendor> <Customer> <IPLC_SN> <Key>
この場合、ライセンス＿名称(LICENSE_NAME)フィールドは、ＩＰプロバイダによって提供されるライセンスの名称を含んでいる。また残りのフィールドは、図１を参照して先に説明されたライセンス特徴ファイル１１０の対応するフィールドと同様である。
【００３５】
図４に示されるように、ライセンス特徴ファイル４１０の第３〜７ラインは、ライセンス＿名称(LICENSE_NAME)が“ＩＰＬ”であることを示している。これは、対象電子回路３２６または３２７（図３参照）に引渡しまたは適用されるコア電子回路設計に対するライセンスの名称である。ここで開示されている実施形態では、ライセンス特徴ファイル４１０の上から２ラインは、それらの境界をオプションのコメントラインとして定める“＃”で開始する。具体的には、第１ラインは、第３〜５ラインおよび第７ラインのフィールドのフォーマットを記述するために含まれている。例えば、第３ラインでは、発行(Issue)番号は“１”であり、製品(Product)コードは“ａｂ１”であり、バージョン(Version)コードは“１”であり、追加されるライセンス(Licenses)の数は“１００００”であり、満了(Expiration)コードは“１２３１２００２”であり、ベンダー(Vendor)コードは“２”であり、顧客(Customer)コードは“ｆ１”であり、ＩＰライセンスコントローラのシリアル番号ＩＰＬＣ＿ＳＮは“１”である。さらに、第７ラインでは、発行番号は“１”であり、製品コードは“ｄｄ０”であり、バージョンコードは“７”であり、追加されるライセンスの数は“３５００”であり、満了コードは“００００００００”であり、ベンダーコードは“Ａ”であり、顧客コードは“ｆ１”であり、ＩＰライセンスコントローラのシリアル番号ＩＰＬＣ＿ＳＮは“１２７１”である。
【００３６】
ここで留意される点は、ＩＰライセンスコントローラのシリアル番号“１２７０”はライセンスコントローラ３２４に対応し、また、ＩＰライセンスコントローラのシリアル番号“１２７１”はライセンスコントローラ３２５に対応しているということである（図３参照）。さらに、同じ製品コードに対して複数のラインがある場合、発行番号は、追加のライセンスを追跡することに使用され得る。例えば、ライセンス特徴ファイル４１０（図４参照）の第５ラインは、製品コード“ａｂ１”に対するライセンスの２番目の発行(Issue 2）である。このラインは、ライセンス特徴ファイル４１０の第３ラインに示されているように、１番目の発行１(Issue 1）によって与えられた１０，０００のライセンスに３００のライセンスを加える。ライセンスの最終発行（例えば、最終発行番号５１２．５、図５参照）は、シリアルＰＲＯＭ２０２（図２参照）に記憶される。この結果、ライセンスシステムは、新たにライセンスが発行されたときを容易に決定することができる。シリアルＰＲＯＭ２０２は続いて更新され、これら新たに発行されたライセンスに対して課金する。同様の手法で、ライセンスは、ライセンス特徴ファイル４１０から削除されるか、あるいは１つのライセンスシステムのライセンス特徴ファイルからもう１つのライセンスシステムのライセンス特徴ファイルへと転送される。
【００３７】
ここで留意されるべき点は、キー(“Key”)フィールドは、ＩＰプロバイダによって生成され、そして安全に暗号化されたキーを有するということである。このライセンスキー値は、対応する製品ライン内の情報と、他のベンダー固有のデータを考慮する。ここで開示されている実施形態では、製品ライン３〜７（図４参照）はＩＰユーザによっては修正できない。これは、そのようにすると、（初めにＩＰプロバイダによって生成された）ライセンスキー値が、ファイル内の製品ラインデータと不一致にさせられてしまうからである。ライセンスファイル内の特徴や他のデータの何れかを変化させるために、ＩＰユーザは典型的に、新しいライセンス特徴ファイル４１０をＩＰプロバイダから獲得する。このことが確実にするものは、コア電子回路設計が特定のライセンスコントローラと共に、そしてライセンスの必要条件に従って使用される点である。
【００３８】
異なる実施形態において、ライセンス特徴ファイル４１０の製品ラインは、ライセンス特徴ファイル４１０のライン６に示されるように、１以上の暗号化されたフィールドを有することができる。ライン６内の暗号化された値は、ライセンスされている特別な電子回路設計の属性と、ライセンスキーとを表す。製品ラインのこの形態は、分離されたフィールドを有しないが、それはライセンスシステムによって解釈されるので、安全性を提供する。
【００３９】
シリアルＰＲＯＭフォーマット
ここで開示されている実施形態では、シリアルＰＲＯＭ２０２（図２参照）は、ライセンスデータを記憶して、ライセンス特徴ファイル（例えば、ファイル１１０（図１参照）および３１０（図３参照））によって提供されるライセンス情報を補うように構成されている。シリアルＰＲＯＭ２０２に記憶されたライセンスデータは、ライセンス特徴情報と共に使用されて、ライセンスされた電子回路設計の引渡しを追跡および管理する。
【００４０】
図５は、ライセンスデータをシリアルＰＲＯＭ２０２（図２参照）に記憶するための例証用フォーマット５００を図示している。このデータ記憶フォーマット５００は、アドレス位置０〜ｎ−１に複数バイトのデータストレージを設けている。具体的には、シリアルＰＲＯＭ２０２に記憶されたライセンスデータは、ライセンスコントローラシリアル番号５０２と、ＰＲＯＭバージョン５０４と、ＰＲＯＭサイズ５０６と、ライセンス（ＩＰＬ）のＰＲＯＭ署名５１０とを含んでいる。このライセンス（ＩＰＬ）のＰＲＯＭ署名５１０は、シリアルＰＲＯＭ２０２に記憶されたデータの完全性チェックを与えるために維持される。ここで開示されている実施形態では、ライセンスコントローラ１０４のベンダーだけが、ライセンス（ＩＰＬ）のＰＲＯＭ署名５１０の発生および維持に使用されるアルゴリズムを知っている。このことにより、電子回路設計のライセンスに大きな保護を与える。何故ならば、ＩＰユーザは、ライセンス（ＩＰＬ）のＰＲＯＭ署名５１０を、記憶されているライセンスデータと不一致にさせることなしに、シリアルＰＲＯＭ２０２に記憶されたライセンスデータを変更できないからである。ライセンス（ＩＰＬ）のＰＲＯＭ署名５１０は、シリアルＰＲＯＭ２０２が電子回路設計ライセンスについてアクセスされる毎に検証されることが好ましい。更に、このライセンス（ＩＰＬ）のＰＲＯＭ署名５１０は、シリアルＰＲＯＭ２０２に記憶されているライセンスデータが更新されるときは必ず再生および更新される。
【００４１】
図５に示されるように、ＩＰユーザに対して発行されたライセンス、例えばライセンス１即ち５１２およびライセンス２即ち５１４は、位置「ライセンスアドレス」から開始してシリアルＰＲＯＭ２０２に記憶される。ライセンス１即ち５１２およびライセンス２即ち５１４の各々は、シリアルＰＲＯＭ２０２に記憶されている多数のバイトから構成されている。図５に拡大して示されるように、ライセンス１即ち５１２は、ライセンス特徴ファイルの製品ラインに設けられているように、ベンダー表示情報５１２．１と、顧客表示情報５１２．２と、製品表示情報５１２．３と、少なくとも１つのＩＰバージョンコード５１２．４とを含んでいる。これらの情報は、ライセンス１即ち５１２がシリアルＰＲＯＭ２０２に存在していることを示す。ライセンス１即ち５１２は更に、最終発行番号５１２．５と、未使用ライセンスの数（「＃未使用ライセンス数」）５１２．６とを含んでいる。情報５１２．１〜５１２．６は、更新され、そして各ライセンスされた電子回路設計の追跡を維持することに使用され得る。ここで認められるべき点は、上述したライセンスデータが、ライセンスシステム１００から分離されて実現された好ましいデータストレージ媒体に記憶され得るということである。例えば、ライセンスデータは、ライセンスシステム１００がローカルバスやネットワークを通してアクセス可能なディスクに記憶され得る。具体的には、ライセンス情報は、コンピュータ３０６に含まれたストレージデバイス３１２に記憶され得る。このストレージデバイス３１２は、ライセンスシステム３２０〜３２１がネットワーク３０８（図３参照）を通してアクセス可能である。このことにより、ライセンスされた電子回路設計の集中課金が、ネットワーク３０８上の複数のライセンスコントローラ３２４〜３２５にわたって可能になる。
【００４２】
識別および機密保護ＩＰコード
ライセンスシステム１００は、どのコア電子回路設計が対象電子回路１０６内でプログラム可能に構成されているかを識別することに、またプログラムされた電子回路設計を機密保護して、それが解読および逆行分析されたり、不注意に修正または消去されないようにすることに使用できる。
【００４３】
特別なコア電子回路設計を識別する１つの方法は、容易にアクセスおよび問い合わせができるレジスタ内に電子回路設計のバージョン、タイプおよび／または製造元を符号化する。例えば、１ＥＥＥ１１４９．１および１５３２規格は、２つのデータレジスタ（ＤＲ）、即ちユーザコードＤＲとＩＤコードＤＲを特定する。これらは、３２ビットの標準フォーマットを有し、電子回路設計のバージョン、タイプおよび製造元を特定することに使用できる。
【００４４】
プログラム可能な電子回路設計用に与えられる機密保護の特徴は、典型的にはリード保護、プログラム保護、および消去保護用の機構を含む。これらは、通常は好ましい組み合わせで使用できる。更に、これらの保護機構は、通常、ＴＡＰコントローラ命令を使用して可能にされ、そして命令、データパターンまたは双方の特別なシーケンスを介して不能にされる。ある電子回路設計においては、リードおよびプログラム保護は、対象電子回路のプログラムされた内容を最初に消去することによって不能にされる。この理由により、あるプログラム可能な電子回路設計は、ユーザ定義可能キー、例えば保護機構をアンロックすることに使用できる個人識別番号（ＰＩＮ）を準備している。ユーザ定義可能キーのアプローチは、リバースエンジニアリングや不注意な修正／消去に対して保護を与える機密保護方法を提供する。あるプログラム可能な電子回路設計はまた、恒久的ロックを準備しているので、保護機構は不能にされない。ここで開示されている実施形態では、ライセンスシステム１００は保護キーを生成し、そしてその保護キーをライセンスコントローラ１０４のシリアルＰＲＯＭ２０２（図１〜２参照）に記憶するので、ライセンスコントローラ１０４だけが対象電子回路１０６内に構成された電子回路設計をリード／プログラム／消去できる。
【００４５】
１つの代替実施形態では、対象電子回路１０６（図１参照）は、対象電子回路１０６がライセンスされた電子回路設計のバージョンで既にプログラムされているか否かを決定するために、構成に先だって問い合わされる。例えば、対象電子回路１０６がライセンス１即ち５１２（図５参照）に関連した電子回路設計で既にプログラムされている場合、未使用ライセンスの数５１２．６はデクリメントされない。そして、プログラミング動作は、対象電子回路１０６内における電子回路設計の初回のプログラム可能な構成に対して課金される代わりに、更新（即ち、電子回路設計の新バージョンによる対象電子回路１０６の再プログラミング）として取り扱われる。しかしながら、ユーザコードＤＲはプログラム可能であるから、この方法は、現在の電子回路設計をプログラミング前に識別するには比較的信頼性が低い。この理由によって、ここで開示されているライセンスシステム１００の実施形態は、ＩＤ署名レジスタ（ＩＤＳＲ）７０４（図７ａ参照）を使用して、対象電子回路内で実現されている現在の電子回路設計を識別する。
【００４６】
図７ａは、対象電子回路１０６（図１参照）内で実現され得るテストアクセスポート（ＴＡＰ）アーキテクチャ７００の例証用実施形態を図示している。この例証用実施形態では、ＴＡＰアーキテクチャ７００は、ＩＥＥＥ１１４９．１ＴＡＰコントローラのようなＴＡＰコントローラ７０２と、命令レジスタ（ＩＲ）７０６と、ＴＡＰコントローラ７０２および命令レジスタ（ＩＲ）７０６に接続されたＩＤ署名レジスタ（ＩＤＳＲ）７０４とを含む。ＩＤ署名レジスタ（ＩＤＳＲ）７０４は、ユーザ定義ＤＲであり、対象電子回路１０６のプログラミング中にテストデータ入力（ＴＤＩ）（図１および７参照）に関するデータの署名を生成することが可能にされている。具体的には、ＩＤ署名レジスタ（ＩＤＳＲ）７０４は、ライセンスされた電子回路設計がＴＤＩを介して対象電子回路１０６へ引渡しされるときに、その署名を生成して記憶するように構成されている。それからＩＤ署名レジスタ（ＩＤＳＲ）７０４は、対象電子回路１０６内に現在プログラムされているライセンスされた電子回路設計を識別するために、ライセンスコントローラ１０４によって選択され、そしてテストデータ出力（ＴＤＯ）（図１および７参照）からスキャンされる。このようにして、ライセンスされた電子回路設計は、対象電子回路１０６をプログラミングまたは再プログラミングする前に、安全且つ信頼性高く識別される。
【００４７】
ノンプログラマブルの対象電子回路、例えばＡＳＩＣやＲＡＭ内で実現されたライセンスされた電子回路設計を識別および機密保護する能力を有することも望ましい。そのために、ここで開示されている実施形態は、ライセンスされた電子回路設計の機能的動作を可能にするようにプログラム可能に構成され得るイネーブルキーを備えている。このイネーブルキーは、ライセンスされた電子回路設計に対する適切な課金がなされるまで、このライセンスされた電子回路設計の使用を防止する。
【００４８】
図７ｂは、ライセンスされた電子回路設計の機能的動作をノンプログラマブルの対象電子回路内で可能にするために上述したイネーブルキーを使用する例証用回路構成７２０を図示している。この例証用実施形態では、回路構成７２０は、イネーブルキーの表示を記憶するためのイネーブルキー更新／メモリ（Ｕ／Ｍｅｍ）レジスタ７２４を含んでいる。例えば、イネーブルキー更新／メモリ（Ｕ／Ｍｅｍ）レジスタ７２４は、比較的小さい（例えば、３２〜１２８ビットの）プログラム可能回路または不揮発性メモリを備えることがある。更には、この例証用回路構成７２０は、ライセンスされた電子回路設計から分離されているか、その一部として、対象電子回路内に実現され得る。この代わりに、この例証用回路構成７２０は、ＴＡＰコントローラ７０２の一部として対象電子回路内に実現され得る。
【００４９】
具体的に、イネーブルキーの表示は、対象電子回路のＴＤＩ入力を介して、イネーブルキーシフト／キャプチャ（Ｓ／Ｃ）レジスタ２７６（図７ｂ参照）に対してシリアルに与えられる。例えば、イネーブルキーシフト／キャプチャ（Ｓ／Ｃ）レジスタ２７６は、ＴＡＰコントローラ７０２のＴＤＩおよびＴＤＯピン（図７ａ参照）の間でアクセス可能なユーザ定義データレジスタ（ＤＲ）を備えることができる。さらに、イネーブルキーシフト／キャプチャ（Ｓ／Ｃ）レジスタ２７６は、通常のＤＲと実質的に同じ手法で動作する。但し、イネーブルキーシフト／キャプチャ（Ｓ／Ｃ）レジスタ２７６が更新されるときに、その内容がイネーブルキー更新／メモリ（Ｕ／Ｍｅｍ）レジスタ７２４に記憶される点は異なる。次に、イネーブルキー更新／メモリ（Ｕ／Ｍｅｍ）レジスタ７２４は、イネーブルキーを、後続の復号用にイネーブルキーデコーダ回路７２２に与える。復号後にイネーブルキーが有効であると見られる場合、イネーブルキーデコーダ回路７２２は、ＩＰ＿イネーブル信号（図７ｂ参照）を出力する。このＩＰ＿イネーブル信号は、ライセンスされた電子回路設計の機能的動作を可能にすることに使用される。
【００５０】
ここで開示されている実施形態では、ライセンスされた電子回路設計の機能的動作を可能にするイネーブルキーの値は、ＩＰプロバイダによって予め決定され、そしてライセンスされた電子回路設計がライセンスシステムによってテストされる前または後にプログラム可能に構成される。例えば、ライセンスシステム１００（図１参照）は、イネーブルキーをライセンスコントローラ１０４のシリアルＰＲＯＭ２０２に記憶することができる。ライセンスされた電子回路設計がライセンスシステム１００によって適切に課金された後に、ライセンスシステム１００は、イネーブルキーを使用して、対象電子回路１０６上で実現されたライセンスされた電子回路設計の機能的動作を可能にする。
【００５１】
ここで理解されることは、上述したイネーブルキーが、ライセンスシステム１００（図１参照）内で他の目的に対しても使用できるという点である。例えば、イネーブルキーは、対象電子回路１０６内のサポート回路の機能的動作、例えばライセンスされた電子回路設計のテストを助けるように構成された「ヘルパー」回路の機能的動作を可能にすることに使用できる。さらに、このヘルパー回路は、ライセンスされた電子回路設計のテストを可能にし、および／または加速するように構成され得る。ヘルパー回路は、ライセンスされた電子回路設計から分離されるか、その一部として、対象電子回路１０６内で実現され得る。
【００５２】
ここで認められるべき点は、ライセンスシステムは、ノンプログラマブル回路内のライセンスされた電子回路設計を識別および機密保護することに使用されるイネーブルキーに加えて、他の回路情報を生成できるということである。例えば、ＩＰシリアル番号（ＩＰＳＮ）、ＩＤコード、および／またはテストおよび修理のステータスのような回路情報は、ライセンスシステムによって生成され、ライセンスコントローラのシリアルＰＲＯＭ２０２に記憶され、そして対象電子回路内でプログラム可能に構成され得る。ここで留意される点は、ライセンスされた電子回路設計を追跡するために、ＩＰシリアル番号（ＩＰＳＮ）もまた使用され得るということである。ライセンスシステムは、この回路情報にアクセスして、ライセンスされた電子回路設計が以前に課金され、テストされ、および／またはイネーブルキーを通して可能にされたか否かを決定すること、並びにライセンスされた電子回路設計のテストおよび修理のステータスにアクセスすることができる。
【００５３】
ここで開示されている実施形態では、ＩＰシリアル番号（ＩＰＳＮ）の情報は、ＩＰシリアル番号（ＩＰＳＮ）シフト／キャプチャ（Ｓ／Ｃ）レジスタ７２８（図７ｂ参照）に対し対象電子回路のＴＤＩ入力を介してシリアルに与えられる。イネーブルキーシフト／キャプチャ（Ｓ／Ｃ）レジスタ７２６と同様に、ＩＰシリアル番号（ＩＰＳＮ）シフト／キャプチャ（Ｓ／Ｃ）レジスタ７２８は、ＴＡＰコントローラ７０２のＴＤＩおよびＴＤＯピン（図７ａ参照）間でアクセス可能なユーザ定義ＤＲを備えることができる。さらに、ＩＰシリアル番号（ＩＰＳＮ）シフト／キャプチャ（Ｓ／Ｃ）レジスタ７２８は、通常のＤＲと実質的に同じ手法で動作する。但し、ＩＰシリアル番号（ＩＰＳＮ）シフト／キャプチャ（Ｓ／Ｃ）レジスタ７２８が更新されるときに、その内容はＩＰシリアル番号（ＩＰＳＮ）更新／メモリ（Ｕ／Ｍｅｍ）レジスタ７３０に記憶される。このＩＰシリアル番号（ＩＰＳＮ）更新／メモリ（Ｕ／Ｍｅｍ）レジスタ７３０は、比較的小さい（例えば、３２〜１２８ビットの）プログラム可能回路または不揮発性メモリを備えることがある。図７ｂに示されるように、例証用回路構成７２０は更に、イネーブルキーシフト／キャプチャ（Ｓ／Ｃ）レジスタ７２６およびＩＰシリアル番号（ＩＰＳＮ）シフト／キャプチャ（Ｓ／Ｃ）レジスタ７２８とＴＤＯラインとの間に配置され、選択的にイネーブルキーまたはＩＰシリアル番号（ＩＰＳＮ）をＴＤＯラインに与えるように構成されたマルチプレクサ７３２を含む。
【００５４】
ライセンスシステムの動作
ライセンスされたコア電子回路設計およびベクターをライセンスシステム１００（図１参照）によって安全に引渡し／適用するためのライセンスシステムの管理方法が、図８を参照して説明される。ここで留意される点は、ライセンスシステム１００の方法は、コンピュータ１０２にインストールされたライセンス機能と、ライセンスコントローラ１０４（図１参照）のシリアルＰＲＯＭ２０２（図２参照）に記憶されたライセンスデータとを使用して行われるということである。ステップ８０２に示されているように、与えられたコア電子回路設計に対するライセンスされたベクターファイル６０４（図６参照）が、ＩＰプロバイダによって提供される。このライセンスされたベクターファイル６０４は、電子回路設計に対するプログラムおよび／またはテストデータと、このベクター内でライセンスされたそれぞれの電子回路設計に対するベンダー、顧客および製品コードとを含んでいる。次に、ステップ８０４に示されるように、電子回路設計特徴が現在ライセンスされているか否かを判定するために、ライセンス特徴ファイルが読み出される。それから、ステップ８０６に示されるように、シリアルＰＲＯＭ２０２に含まれた情報が読み出される。
【００５５】
次に、ステップ８０８に示されるように、シリアルＰＲＯＭ２０２に記憶された情報の完全性が、シリアルＰＲＯＭに記憶された署名について検証される。それから、ステップ８１０に示されるように、記憶されているＰＲＯＭ情報がＰＲＯＭ署名と一致するか否かについて判定される。記憶されているＰＲＯＭ情報がＰＲＯＭ署名と不一致の場合、シリアルＰＲＯＭの内容が不適切に変更されていることを示しているので、ステップ８１１に示されるように、コンピュータ１０２を経由してＩＰユーザに対してエラーが発行され、またベクターは適用されない。そうでない場合には、ステップ８１２に示されるように、それぞれのライセンスコントローラ１０４に対し割り当てられるライセンスが決定される。具体的には、ＰＲＯＭ情報に含まれるライセンスコントローラ１０４のシリアル番号（即ち、ＩＰＬＣ＿ＳＮ）５０２がライセンス特徴ファイルのそれぞれの製品ラインと比較され、そしてライセンスコントローラのシリアル番号５０２と一致する製品ラインは、このライセンスコントローラに割り当てられたライセンスであると判定される。
【００５６】
次に、ステップ８１４に示されるように、電子回路設計ライセンスは（シリアルＰＲＯＭ２０２から読み出されたときに）、そのベンダー、顧客および製品コードを媒介として識別される。それから、ステップ８１６に示されるように、このライセンスは、ライセンスコントローラ１０４に割り当てられたライセンス特徴について検証される。次に、ステップ８１８に示されるように、シリアルＰＲＯＭ２０２に含まれていないライセンス特徴ファイル内に電子回路設計ライセンスがあるか否かについて判定がなされる。ライセンス特徴ファイルには含まれているが、シリアルＰＲＯＭには含まれていない電子回路設計ライセンスがある場合、この電子回路設計ライセンスは新しいライセンスとみなされ、そしてステップ８２０に示されるように、対応するライセンス情報が、新たに生成されたＰＲＯＭ署名を伴ってシリアルＰＲＯＭ２０２に追加される。
【００５７】
それから、ステップ８２２に示されるように、シリアルＰＲＯＭ２０２に記憶されたライセンスデータに対し、更なる更新がなされる必要があるかを見るために、電子回路設計ライセンス情報は検証される。具体的には、シリアルＰＲＯＭ２０２内のライセンスデータは、更新され得る。これは、未使用の電子回路設計ライセンスの数に加算／減算し、ライセンスを除去し、もう１つのライセンスコントローラに対してライセンスを再割り当てし、あるいはＩＰバージョンを更新するためである。電子回路設計ライセンスが検証された後に、ステップ８２４に示されるように、シリアルＰＲＯＭ２０２内のライセンスデータに対して、新たに生成されたＰＲＯＭ署名を伴って、全ての必要な更新がなされる。
【００５８】
電子回路設計ライセンスを検証し、また必要な更新をシリアルＰＲＯＭ２０２内にプログラムした後に、ステップ８２５に示されるように、そのベクターに適用する必要のある電子回路設計ライセンスを決定するために、ライセンスされたＩＰベクターファイル６０４が読み出される。次に、ステップ８２６に示されるように、プログラム／テスト環境（即ち、ライセンスされた電子回路設計を含んだ対象電子回路１０６）の完全性を保証するために、そしてＩＰプロバイダによって認定された手法で電子回路設計がアクセスされていることを認証するために、このプログラム／テスト環境が検証される。そのプログラム／テスト環境が期待されたものではない場合は、ステップ８２８に示されるように、コンピュータ１０２を介してＩＰユーザに対してエラーが発行され、ベクター６０４は適用されない。このプログラム／テスト環境の検証に続いて、ステップ８３０に示されるように、ライセンスされた電子回路設計の各々について対象電子回路１０６上で識別（ＩＤ）チェックが行われる。例えば、対象電子回路に応じて、１以上のユーザコード、ＩＤコード、またはＩＤ署名レジスタ（ＩＤＳＲ）値が検証される。対象電子回路１０６が識別（ＩＤ）チェックに失敗した、すなわち、不合格の場合、即ち、ライセンスされたベクター６０４にとって対象電子回路１０６が間違った部品または回路であると判定された場合、ステップ８２８に示されるように、コンピュータ１０２を介してＩＰユーザに対しエラーが発行され、そのベクターは適用されない。そうでない場合、ステップ８３２に示されるように、コンピュータ１０２によって、ライセンスされたベクター６０４は、ライセンスコントローラ１０４およびＩＥＥＥ１１４９．１バス１０８を経由して、対象電子回路１０６に適用される。
【００５９】
ライセンスシステム１００（図１参照）によってライセンスされた電子回路設計／ベクターを対象電子回路に対し高い信頼性で課金するためのライセンスシステムの管理方法が、図９を参照して説明される。ステップ９０２に示されるように、ライセンスされた電子回路設計をプログラム可能に構成またはテストすることに、ライセンスされたベクター６０４が使用されるか否かについて判定される。ライセンスされたベクター６０４がプログラム用である場合、上述した識別（ＩＤ）チェック（図８のステップ８３０）が使用され、ステップ９０４に示されるように、対象電子回路１０６が現在（例えば、電子回路設計の古いバージョンで）プログラムされているか、あるいは対象電子回路１０６内で未だにプログラムされていないかを判定する。対象電子回路１０６が電子回路設計の古いバージョンでプログラムされている場合、ステップ９０６に示されるように、ライセンスされたベクター６０４は対象電子回路１０６に適用される。しかしながら、シリアルＰＲＯＭ２０２内の未使用ライセンスの数はデクリメントされない。これは、対象電子回路１０６が（多分、新しいバージョンではなく）同じ電子回路設計で再プログラムされているためである。ここで認められる点は、この電子回路設計に対するライセンスは、電子回路設計の古いバージョンが対象電子回路１０６内に最初にプログラムされたときに、課金されているということである。対象電子回路１０６がプログラムされていなかったり、ライセンスされた電子回路設計以外の電子回路設計でプログラムされている場合は、ステップ９０８に示されるように、対象電子回路１０６はプログラムされ、そしてステップ９１０に示されるように、未使用ライセンスの数はデクリメントされる。ベクター内のライセンスされた電子回路設計の全てが、一度、プログラムまたは再プログラムされたら、ステップ９１２に示されるように、シリアルＰＲＯＭ２０２内のライセンスデータはＰＲＯＭ署名を含んで更新される。
【００６０】
ライセンスされたベクター６０４がテスト用である場合は、ステップ９１４に示されるように、このライセンスされたベクター６０４は対象電子回路１０６内の電子回路設計に適用される。それから、ステップ９１６に示されるように、対象電子回路１０６内の電子回路設計がテストに合格したか否かについて判定がなされる。対象電子回路１０６がテストに合格した場合、ステップ９１８に示されるように、ライセンスされたベクター６０４内のライセンスされた電子回路設計に対する未使用ライセンスの数はデクリメントされる。次に、ステップ９１２に示されるように、シリアルＰＲＯＭ２０２はＰＲＯＭ署名を伴って更新される。対象電子回路１０６がテストに失敗した不合格の場合、失敗した電子回路設計に対する未使用ライセンスの数はデクリメントされない。このようにして、ＩＰユーザは、例えば対象電子回路内の製造欠陥故に、テストに合格しないライセンスされた電子回路設計については課金されないので、支払いをしない。
【００６１】
当業者によって更に認められる点は、上述した電子回路設計のライセンスシステムおよびそのライセンスシステムを管理する方法に対する修正および変化が、ここに開示された発明の概念を逸脱することなくなされるということである。従って、この発明は、添付の請求の範囲の精神および範囲による以外は制限されるものではないとみなされるべきである。
【図面の簡単な説明】
【００６２】
【図１】本発明に係るライセンスシステムのブロック図である。
【図２】図１のシステムに含まれるライセンスコントローラのブロック図である。
【図３】本発明に係るネットワークベースのライセンスシステムのブロック図である。
【図４】図１のライセンスシステムで使用されるライセンス特徴ファイルを示す。
【図５】図１のライセンスシステムによって使用されるメモリフォーマットを示す図である。
【図６】図１のライセンスシステムが使用される環境のブロック図である。
【図７ａ】図１のライセンスシステムに含まれるＩＤ署名レジスタを有したテストアクセスポートアーキテクチャーのブロック図である。
【図７ｂ】ライセンスされた電子回路設計の機能的動作を可能にするために図１のライセンスシステムで使用される回路構成のブロック図である。
【図８】図１のライセンスシステムによってライセンスされた電子回路設計を引き渡すことに関してライセンスシステムを管理する方法を示すフロー図である。
【図９】図１のライセンスシステムによって対象電子回路に引き渡された電子回路設計に関してライセンスシステムを管理する方法を示すフロー図である。
【図１】
0004217158.tif 000002
【図２】
0004217158.tif 000003
【図３】
0004217158.tif 000004
【図４】
0004217158.tif 000005
【図５】
0004217158.tif 000006
【図６】
0004217158.tif 000007
【図７ａ】
0004217158.tif 000008
【図７ｂ】
0004217158.tif 000009
【図８】
0004217158.tif 000010
【図９】
0004217158.tif 000011