(57)【要約】【課題】  ＩＰベンダーが提供したＦＰＧＡ向けＩＰコアの使用回数が確実に管理できるようにする。【解決手段】  情報書込装置は機能制限付きネットリストによって作成された配置配線データのＦＰＧＡ又はＦＰＧＡへ書き込む配置配線データを記憶するための記憶デバイス（ＲＯＭ）への書込処理を行なう。このとき、制限解除処理部６により機能制限付き配置配線データの機能制限を行なうとともに、ビットストリーム生成部７で配置配線データから生成されたビットストリームは暗号化処理部８で一旦暗号化された後、復号化処理部９で復号化されて書込処理部１０でＦＰＧＡ又はＲＯＭに書き込まれる。ドングル３に契約内容である書込可能回数が記憶されている。ＦＰＧＡ又はＲＯＭへの書込みが行われる毎にその書込可能回数から残りの書込可能回数が演算され、その残りの書込可能回数がゼロになると、機能制限解除及び復号化の処理は禁止され、これによりＩＰネットリストのＦＰＧＡ又はＲＯＭへの書込みはできなくなる。【選択図】      図３
2005107911.tif 000002
【特許請求の範囲】
【請求項１】
所定の機能を実現させるべく内部回路の再構成が可能なハードウェアに書き込まれる内部回路の論理情報を生成する書込情報生成装置であって、
上記機能の一部が制限された状態で作成された内部回路の配置配線に関する情報を入力する第１の情報入力手段と、
上記第１の情報入力手段によって入力される上記内部回路の配置配線に関する情報の機能制限を解除する機能制限解除手段と、
上記機能制限解除手段により機能制限が解除された上記内部回路の配置配線に関する情報から上記ハードウェアへの書き込みが可能な書込用情報を生成する情報生成手段と、
上記情報生成手段により生成された上記書込用情報の暗号化を行う暗号化手段と、
上記暗号化手段により暗号化された上記書込用情報を記憶する記憶手段と、
上記機能制限の解除処理の許否に関する情報を入力する第２の情報入力手段と、
上記第２の情報入力手段によって入力された許否情報に基づいて上記機能制限解除手段による機能制限の解除処理の可否を判別する判別手段と、
上記判別手段により解除処理の不可が判別されると、上記機能制限解除手段による機能制限の解除処理を禁止する禁止手段と
を備えたことを特徴とする書込情報生成装置。
【請求項２】
上記第２の情報入力手段から入力される許否情報は、当該第２の情報入力手段に外部接続されるハードウェアキーに読み書き可能に記憶され、当該ハードウェアキーから上記第２の情報入力手段を介して入力されることを特徴とする請求項１に記載の書込情報生成装置。
【請求項３】
上記第２の情報入力手段から入力される許否情報は、当該第２の情報入力手段に通信可能に接続されるネットワーク上に設けられる管理サーバに記憶され、通信によって当該管理サーバから上記第２の情報入力手段を介して入力されることを特徴とする請求項１に記載の書込情報生成装置。
【請求項４】
請求項１〜３のいずれかに記載の書込情報生成装置で生成されたハードウェアへの書き込みが可能な書込用情報を内部回路の再構成が可能なハードウェア又はこのハードウェアへの書込用情報を記憶するための記憶デバイスに書き込む情報書込装置であって、
暗号化された上記書込用情報を入力する第１の情報入力手段と、
上記第１の情報入力手段からの暗号化された上記書込用情報を復号化する復号化手段と、
上記復号化手段により復号化された上記書込用情報を上記ハードウェア又は上記記憶デバイスに書き込む情報書込手段と、
上記復号化手段による復号化処理の許否に関する情報と上記情報書込手段による上記書込用情報の上記ハードウェア又は上記記憶デバイスへの書込可能な回数の情報とを入力する第２の情報入力手段と、
上記情報書込手段により書込用情報の書込動作が行われる毎に上記第２の情報入力手段から入力される書込可能な回数を用いて残りの書込可能な回数を演算する書込可能回数演算手段と、
上記第２の情報入力手段によって入力された許否情報と上記書込可能回数演算手段により演算された残りの書込可能な回数とに基づいて上記復号化手段による復号化処理の可否を判別する判別手段と、
上記判別手段により書込処理の不可が判別されると、上記復号化手段による復号化処理を禁止する禁止手段と
を備えたことを特徴とする情報書込装置。
【請求項５】
請求項４に記載の情報書込装置において、上記第２の情報入力手段から入力される許否情報と書込可能回数の情報は、当該第２の情報入力手段に外部接続されるハードウェアキーに読み書き可能に記憶され、このハードウェアキーに記憶された書込可能回数の情報を上記書込可能回数演算手段によって演算された書込可能な回数で書き換える書込可能回数書換手段を更に備えたことを特徴とする情報書込装置。
【請求項６】
請求項４に記載の情報書込装置において、上記第２の情報入力手段から入力される許否情報と書込可能回数の情報は、当該第２の情報入力手段に通信可能に接続されるネットワーク上に設けられる管理サーバに記憶され、この管理サーバに記憶された書込可能な回数を上記書込可能回数演算手段によって演算された書込可能な回数で書き換えるべく当該書込可能な回数を上記管理サーバに送信する書込可能回数送信手段を更に備えたことを特徴とする情報書込装置。
【請求項７】
内部回路の再構成が可能なハードウェアに所定の機能を実現させるための内部回路の論理情報を書き込む情報書込装置であって、
上記機能の一部が制限された状態で作成された内部回路の配置配線に関する情報を入力する第１の情報入力手段と、
上記第１の情報入力手段によって入力される上記内部回路の配置配線に関する情報の機能制限を解除する機能制限解除手段と、
上記機能制限解除手段により機能制限が解除された上記内部回路の配置配線に関する情報から上記ハードウェアへの書き込みが可能な書込用情報を生成する情報生成手段と、
上記情報生成手段で生成された書込用情報を上記ハードウェア又は上記ハードウェアへの書込用情報を記憶するための記憶デバイスに書き込む情報書込手段と、
上記機能制限の解除処理の許否に関する情報と上記情報書込手段による上記書込用情報の上記ハードウェア又は上記記憶デバイスへの書込可能な回数の情報とを入力する第２の情報入力手段と、
上記情報書込手段により書込用情報の書込動作が行われる毎に上記第２の情報入力手段から入力される書込可能な回数を用いて残りの書込可能な回数を演算する書込可能回数演算手段と、
上記第２の情報入力手段によって入力された情報と上記書込可能回数演算手段により演算された残りの書込可能な回数とに基づいて上記機能制限解除手段による機能制限の解除処理の可否を判別する判別手段と、
上記判別手段により解除処理の不可が判別されると、上記機能制限解除手段の機能制限の解除処理を禁止する禁止手段と
を備えたことを特徴とする情報書込装置。
【請求項８】
内部回路の再構成が可能なハードウェアに所定の機能を実現させるための内部回路の論理情報を書き込む情報書込装置であって、
上記機能の一部が制限された状態で作成された内部回路の配置配線に関する情報を入力する第１の情報入力手段と、
上記第１の情報入力手段によって入力される上記内部回路の配置配線に関する情報の機能制限を解除する機能制限解除手段と、
上記機能制限解除手段により機能制限が解除された上記内部回路の配置配線に関する情報から上記ハードウェアへの書き込みが可能な書込用情報を生成する情報生成手段と、
上記情報生成手段で生成された上記書込用情報の暗号化を行う暗号化手段と、
上記暗号化手段により暗号化された上記書込用情報を記憶する記憶手段と、
上記暗号化手段により暗号化された上記書込用情報の復号化を行う復号化手段と、
上記復号化手段により復号化された上記書込用情報を上記ハードウェア又は上記ハードウェアへの書込用情報を記憶するための記憶デバイスに書き込む情報書込手段と、
上記機能制限解除手段による機能制限の解除処理と上記復号化手段による復号化処理の許否に関する情報と上記情報書込手段による上記書込用情報の上記ハードウェア又は上記記憶デバイスへの書込可能な回数の情報とを入力する第２の情報入力手段と、
上記情報書込手段により書込用情報の書込動作が行われる毎に上記第２の情報入力手段から入力される書込可能な回数を用いて残りの書込可能な回数を演算する書込可能回数演算手段と、
上記第２の情報入力手段によって入力された許否情報と上記書込可能回数演算手段により演算された残りの書込可能な回数とに基づいて上記機能制限解除手段による機能制限の解除処理と上記復号化手段による復号化処理の可否を判別する判別手段と、
上記判別手段により解除処理および復号化処理の不可が判別されると、上記機能制限解除手段の機能制限の解除処理と上記復号化手段の復号化処理を禁止する禁止手段と
を備えたことを特徴とする情報書込装置。
【請求項９】
請求項７又は８に記載の情報書込装置において、上記第２の情報入力手段から入力される許否情報と書込可能回数の情報は、当該第２の情報入力手段に外部接続されるハードウェアキーに読み書き可能に記憶され、このハードウェアキーに記憶された書込可能な回数を上記書込可能回数演算手段によって演算された書込可能な回数で書き換える書込可能回数書換手段を更に備えたことを特徴とする情報書込装置。
【請求項１０】
請求項７又は８に記載の情報書込装置において、上記第２の情報入力手段から入力される許否情報と書込可能回数の情報は、当該第２の情報入力手段に通信可能に接続されるネットワーク上に設けられる管理サーバに記憶され、この管理サーバに記憶された書込可能な回数を上記書込可能回数演算手段によって演算された書込可能な回数で書き換えるべく当該書込可能な回数を上記管理サーバに送信する書込可能回数送信手段を更に備えたことを特徴とする情報書込装置。
【請求項１１】
コンピュータを、所定の機能を実現させるべく内部回路の再構成が可能なハードウェアに書き込まれる内部回路の論理情報を生成する書込情報生成装置として機能させるためのプログラムであって、
上記コンピュータを、
上記機能の一部が制限された状態で作成された内部回路の配置配線に関する情報を入力する第１の情報入力手段と、
上記第１の情報入力手段によって入力される上記内部回路の配置配線に関する情報の機能制限を解除する機能制限解除手段と、
上記機能制限解除手段により機能制限が解除された上記内部回路の配置配線に関する情報から上記ハードウェアへの書き込みが可能な書込用情報を生成する情報生成手段と、
上記情報生成手段により生成された上記書込用情報の暗号化を行う暗号化手段と、
上記暗号化手段により暗号化された上記書込用情報を記憶する記憶手段と、
上記機能制限の解除処理の許否に関する情報を入力する第２の情報入力手段と、
上記第２の情報入力手段によって入力された許否情報に基づいて上記機能制限解除手段による機能制限の解除処理の可否を判別する判別手段と、
上記判別手段により解除処理の不可が判別されると、上記機能制限解除手段による機能制限の解除処理を禁止する禁止手段と
して機能させるためのプログラム。
【請求項１２】
コンピュータを、請求項１〜３のいずれかに記載の書込情報生成装置で生成されたハードウェアに書込可能な情報を内部回路の再構成が可能なハードウェア又はこのハードウェアへの書込用情報を記憶するための記憶デバイスに書き込む情報書込装置として機能させるためのプログラムであって、
上記コンピュータを、
暗号化された上記書込用情報を入力する第１の情報入力手段と、
上記第１の情報入力手段からの暗号化された上記書込用情報を復号化する復号化手段と、
上記復号化手段により復号化された上記書込用情報を上記ハードウェア又は上記記憶デバイスに書き込む情報書込手段と、
上記復号化手段による復号化処理の許否に関する情報と上記情報書込手段による上記書込用情報の上記ハードウェア又は上記記憶デバイスへの書込可能な回数の情報とを入力する第２の情報入力手段と、
上記情報書込手段により書込用情報の書込動作が行われる毎に上記第２の情報入力手段から入力される書込可能な回数を用いて残りの書込可能な回数を演算する書込可能回数演算手段と、
上記第２の情報入力手段によって入力された許否情報と上記書込可能回数演算手段により演算された残りの書込可能な回数とに基づいて上記復号化手段による復号化処理の可否を判別する判別手段と、
上記判別手段により書込処理の不可が判別されると、上記復号化手段による復号化処理を禁止する禁止手段と
して機能させるためのプログラム。
【請求項１３】
上記コンピュータを、更に上記第２の情報入力手段に外部接続され、上記許否情報と書込可能回数とが記憶されたハードウェアキーに、当該ハードウェアキーに記憶された書込可能な回数を上記書込可能回数演算手段によって演算された書込可能な回数で書き換える書込可能回数書換手段として機能させることを特徴とする請求項１２に記載のプログラム。
【請求項１４】
上記コンピュータを、更に上記第２の情報入力手段に通信可能に接続されるネットワーク上に設けられ、上記許否情報と書込可能回数の情報とが記憶された管理サーバに、当該管理サーバに記憶された書込可能な回数を上記書込可能回数演算手段によって演算された書込可能な回数で書き換えるべく当該書込可能な回数を上記管理サーバに送信する書込可能回数送信手段として機能させることを特徴とする請求項１２に記載のプログラム。
【請求項１５】
コンピュータを、内部回路の再構成が可能なハードウェアに所定の機能を実現させるための内部回路の論理情報を書き込む情報書込装置として機能させるためのプログラムであって、
上記コンピュータを、
上記機能の一部が制限された状態で作成された内部回路の配置配線に関する情報を入力する第１の情報入力手段と、
上記第１の情報入力手段によって入力される上記内部回路の配置配線に関する情報の機能制限を解除する機能制限解除手段と、
上記機能制限解除手段により機能制限が解除された上記内部回路の配置配線に関する情報から上記ハードウェアへの書き込みが可能な書込用情報を生成する情報生成手段と、
上記情報生成手段で生成された書込用情報を上記ハードウェア又は上記ハードウェアへの書込用情報を記憶するための記憶デバイスに書き込む情報書込手段と、
上記機能制限の解除処理の許否に関する情報と上記情報書込手段による上記書込用情報の上記ハードウェア又は上記記憶デバイスへの書込可能な回数の情報とを入力する第２の情報入力手段と、
上記情報書込手段により書込用情報の書込動作が行われる毎に上記第２の情報入力手段から入力される書込可能な回数を用いて残りの書込可能な回数を演算する書込可能回数演算手段と、
上記第２の情報入力手段によって入力された情報と上記書込可能回数演算手段により演算された残りの書込可能な回数とに基づいて上記機能制限解除手段による機能制限の解除処理の可否を判別する判別手段と、
上記判別手段により解除処理の不可が判別されると、上記機能制限解除手段の機能制限の解除処理を禁止する禁止手段と
して機能させるためのプログラム。
【請求項１６】
コンピュータを、内部回路の再構成が可能なハードウェアに所定の機能を実現させるための内部回路の論理情報を書き込む情報書込装置として機能させるためのプログラムであって、
上記コンピュータを、
上記機能の一部が制限された状態で作成された内部回路の配置配線に関する情報を入力する第１の情報入力手段と、
上記第１の情報入力手段によって入力される上記内部回路の配置配線に関する情報の機能制限を解除する機能制限解除手段と、
上記機能制限解除手段により機能制限が解除された上記内部回路の配置配線に関する情報から上記ハードウェアへの書き込みが可能な書込用情報を生成する情報生成手段と、
上記情報生成手段で生成された上記書込用情報の暗号化を行う暗号化手段と、
上記暗号化手段により暗号化された上記書込用情報を記憶する記憶手段と、
上記暗号化手段により暗号化された上記書込用情報の復号化を行う復号化手段と、
上記復号化手段により復号化された上記書込用情報を上記ハードウェア又は上記ハードウェアへの書込用情報を記憶するための記憶デバイスに書き込む情報書込手段と、
上記機能制限解除手段による機能制限の解除処理と上記復号化手段による復号化処理の許否に関する情報と上記情報書込手段による上記書込用情報の上記ハードウェア又は上記記憶デバイスへの書込可能な回数の情報とを入力する第２の情報入力手段と、
上記情報書込手段により書込用情報の書込動作が行われる毎に上記第２の情報入力手段から入力される書込可能な回数を用いて残りの書込可能な回数を演算する書込可能回数演算手段と、
上記第２の情報入力手段によって入力された許否情報と上記書込可能回数演算手段により演算された残りの書込可能な回数とに基づいて上記機能制限解除手段による機能制限の解除処理と上記復号化手段による復号化処理の可否を判別する判別手段と、
上記判別手段により解除処理および復号化処理の不可が判別されると、上記機能制限解除手段の機能制限の解除処理と上記復号化手段の復号化処理を禁止する禁止手段と
して機能させるためのプログラム。
【請求項１７】
上記コンピュータを、更に上記第２の情報入力手段に外部接続され、上記許否情報と書込可能回数の情報とが記憶されたハードウェアキーに、当該ハードウェアキーに記憶された書込可能な回数を上記書込可能回数演算手段によって演算された書込可能な回数で書き換える書込可能回数書換手段として機能させることを特徴とする請求項１５又は１６に記載のプログラム。
【請求項１８】
上記コンピュータを、更に上記第２の情報入力手段に通信可能に接続されるネットワーク上に設けられ、上記許否情報と書込可能回数の情報とが記憶された管理サーバに、当該管理サーバに記憶された書込可能な回数を上記書込可能回数演算手段によって演算された書込可能な回数で書き換えるべく当該書込可能な回数を上記管理サーバに送信する書込可能回数送信手段として機能させることを特徴とする請求項１５又は１６に記載のプログラム。
【請求項１９】
請求項１１〜１８のいずれかに記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＦＰＧＡ（Field Programmable Gate Array）の内部回路の配置配線に関するデータから当該ＦＰＧＡに書き込むことのできるデータを生成するための書込情報生成装置、そのデータをＦＰＧＡ又はＦＰＧＡに書き込むデータを記憶するためのＲＯＭに書き込む情報書込装置、コンピュータを書込情報生成装置及び情報書込装置として機能させるためのプログラム並びにそのプログラムをコンピュータ読み取り可能に記録した記録媒体に関するものである。
【背景技術】
【０００２】
近年、電子回路においては、小型化、低価格化、低消費電力化などの観点から、デジタル信号の処理回路にＰＬＤ（Programmable Logic Device）やＦＰＧＡなどの再構成可能（Re-Configurable）なハードウェアが利用されている。
【０００３】
例えばＦＰＧＡは、図１２に示すように、格子状に配線された複数のローカルライン（Local Line）１００と、これらのローカルライン１００で囲まれた領域に設けられ、当該ローカルライン１００に接続された複数のＣＬＢ（Configurable Logic Block）１０１と、ローカルライン１００の交差位置に配置され、縦横のローカルライン間の接続関係を決定するための複数のＳＭ（Switch Matrix）１０２とで構成され、各ＳＭ１０２の接続関係を決定することによりＣＬＢ１０１ 内の論理セルを相互に接続して所定の機能を果す回路素子（ハードウェア）が実現可能になっている。
【０００４】
ＦＰＧＡは、それを構成するハードウェアとしての各素子（ゲートやスイッチ等）は汎用的なものであり、各素子の配置や配線関係を決定することにより機能及びその動作が確定するものであるから、各素子の配置や配線関係を決定するためのソフトウェア（回路の配置・配線を記載したデータ）が必要である。このソフトウェアはＩＰ（Intellectual Property）若しくはＩＰコアと呼ばれている。
【０００５】
ＦＰＧＡに組み込むべきＩＰコアは、ＦＰＧＡを使用するユーザ自身が作成できるが、通信処理、画像処理、演算処理などの各種処理の機能に応じたＩＰコアが市販されており、ユーザ側では、低コスト化や設計負担の軽減化などの観点から一部の機能についてはＩＰコアの供給者（以下、ＩＰベンダーという。）からＩＰコアを購入し、自作のＩＰコアと組み合わせてＦＡＧＡに組み込むことが行われている。
【０００６】
図１３は、ＩＰベンダーからＩＰコアを購入してＦＰＧＡに組み込む手順の第１の実施形態を示すフローチャートである。
【０００７】
まず、ユーザはＩＰベンダーとの間で、ＮＤＡ（Non-Disclosure Agreement 非開示合意）に署名することにより所望のＩＰコアの評価目的のための利用契約を締結し、ＩＰベンダーからＩＰコアに関する詳細な資料とシミュレーションモデルの無償提供を受ける（Ｓ１）。シミュレーションモデルとは、ＦＰＧＡの動作を信号波形によって確認するためのソフトウェアで、ユーザはコンピュータで専用のシミュレータソフトを用いて当該モデルのソフトウェアを実行させることにより仮想的にＦＰＧＡの動作や機能を確認することができる。
【０００８】
従って、ユーザは、利用契約後にシミュレーションモデルにより購入しようとしているＩＰコアの機能評価を行い（Ｓ２）、購入するか否かの判断をする（Ｓ３）。そして、購入しない場合は（Ｓ３：ＮＯ）、購入手続きは終了し、購入する場合は（Ｓ３：ＹＥＳ）、ＩＰベンダーとライセンス契約を行う（Ｓ４）。このライセンス契約は、ＩＰコアを使用する権利を購入するもので、具体的にはどのような製品に対してＩＰコアを使用する権利が存在するのかということを内容とする契約である。例えば通信モジュールに関するＩＰコアの場合、特定のテレビに搭載されるＦＰＧＡに対してＩＰコアを使用する権利を購入する契約である。ＩＰコアはソフトウェアであるから、実体のある物として占有できないため、ＩＰコアの使用する権利を特定して契約することにより販売契約としているものである。
【０００９】
ユーザとＩＰベンダーとの間でライセンス契約が行われると、ＩＰベンダーはユーザにＩＰコアのネットリストを提供する。ネットリストとは、ＦＰＧＡ内の回路の接続状態を記述したデータで、一般にＥＤＩＦ（Electronic Design Interchange Format）の標準フォーマットによって記述されているものである。このネットリストから専用のツール（ソフトウェア）を用いてＦＰＧＡにダウンロード可能なデータを生成し、そのデータを当該ＦＰＧＡにローディングすることによりＦＰＧＡは所定の機能部品として動作することになる。例えば上述の例では、ＦＰＧＡが通信モジュールの機能部品となる。
【００１０】
ネットリストをＦＰＧＡにダウンロードするための専用ツールは当該ＦＰＧＡの販売者から提供されているので、ユーザはＩＰベンダーからネットリストの提供を受けると、専用ツールを用いてそのネットリストをＦＰＧＡにダウンロードし、実際の部品で機能や動作を確認した後（Ｓ５）、ライセンス契約に従って実際の製品に使用されるＦＰＧＡにＩＰコアを搭載する（Ｓ６）。この場合、ライセンス契約ではＩＰコアを使用する製品の種類は制限されているが、契約されている製品でのＩＰコアの使用回数の制限は設けられていないので、当該製品の生産台数に関係なくＩＰコアを使用することができる（Ｓ７：ＮＯ）。しかし、契約されていない製品にもＩＰコアを使用したい場合は（Ｓ７：ＹＥＳ）、ステップＳ４に戻り、ＩＰベンダーに再度、他の製品についてライセンス契約を締結することになる。例えば上述の例では、テレビについてライセンス契約をした場合、当該テレビについては生産台数に関係なくＩＰコアを使用することができるが、ラジオについても使用したい場合は再度ライセンス契約が必要になる。
【００１１】
図１４は、ＩＰベンダーからＩＰコアを購入してＦＰＧＡに組み込む手順の第２の実施形態を示すフローチャートである。
【００１２】
第１の実施形態では、ユーザは利用契約時にＩＰベンダーからシミュレーションモデルを提供され、このシミュレーションモデルによりパソコン上で仮想的に機能や動作を確認するようにしていたが、第２の実施形態は、ユーザは利用契約時にＩＰベンダーから一部の機能が制限されたＩＰコア（以下、機能制限付ＩＰコアという。）を提供され、その機能制限付ＩＰコアをＦＰＧＡに実際に搭載して実部品上で機能や動作が確認できる点（Ｓ１’，Ｓ２’参照）と、ライセンス契約時に既に提供している機能制限付ＩＰコアに代えて機能制限のないＩＰコア（正規のＩＰコア）が提供される点（Ｓ５’参照）が異なっている。ライセンス契約時には使用する製品毎にライセンス契約が締結される点は第２の実施形態においても変わりはない。
【００１３】
図１５は、第２の実施形態に係るＩＰコアの購入方法によりＦＰＧＡを開発、設計する手順を示すブロック図である。
【００１４】
同図において、上段はＩＰベンダー側から提供される対象物、中段はユーザ側で実行される内容、下段はユーザ側で管理される対象物を示している。
【００１５】
ユーザは、ＦＰＧＡ内の回路構成をハードウェア記述原語(ＨＤＬ(Hardware Description Language))を用いて設計し（ＨＤＬ設計ブロック）、その設計データを専用ツール（ソフトウェア）を用いてコンピュータによりネットリストに変換する（論理合成ブロック）。ここで作成されるネットリストは、ＦＰＧＡの機能の一部を自作したものである。残りの機能についてのネットリストはＩＰベンダーから購入される。従って、ユーザは、ＩＰベンダーと利用契約を締結して当該ＩＰベンダーから機能制限付きのネットリストを入手し、このネットリストと自作したネットリストを専用ツール（ソフトウェア）を用いてコンピュータによりＦＰＧＡ内の回路の配置配線に関するデータ（以下、配置配線データという。）に変換する（配置配線ブロック）。この配置配線データは、ＦＰＧＡ内の各スイッチ・マトリックスの接続関係を指定するデータである。
【００１６】
配置配線データが作成されると、更に専用ツールを用いてコンピュータによりＦＰＧＡにダウンロード可能なビットストリームが作成され（ビットストリーム生成ブロック）、このビットストリームをＦＰＧＡにダウンードすることにより当該ＦＰＧＡは一部の機能は制限されているが、設計された機能を果たすデジタル回路部品となる。従って、ユーザはこのＦＰＧＡを実際に動作させてその機能が設計通りに動作するか否かを確認することができる。そして、この実機による動作確認によりＩＰベンダーの提供するＩＰコアを採用する場合は、ユーザは上述したようにＩＰベンダーとライセンス契約をし、この契約により実質的にＩＰコアを購入することになる。
【００１７】
なお、上記実施形態では、ライセンス契約の際にＩＰコアの使用回数に関係なく製品の種類毎にＩＰコアの使用料金を一括して支払う契約の場合について説明したが、製品の種類に関係なくＩＰコアの使用回数に応じて使用料金を支払う契約をすることも可能である。また、上記実施形態では、ライセンス契約時に機能制限付ＩＰコアに代えて正規のＩＰを提供するようにしていたが、ユーザから機能制限付ＩＰコアを用いて設計されたネットリストをＩＰベンダーに渡し、ＩＰベンダー側でビットストリームを生成し、そのビットストリームをユーザに提供することも可能である。
【非特許文献１】ＶＨＤＬによるマイクロプロセッサ設計入門（ＣＱ出版株式会社  ２００２年７月１日発行）
【非特許文献２】Design Wave MAGAZIN（ＣＱ出版株式会社  ２００２年１月号）
【非特許文献３】Design Wave MAGAZIN（ＣＱ出版株式会社  ２００２年９月号）
【発明の開示】
【発明が解決しようとする課題】
【００１８】
ところで、ＩＰコアはソフトウェアであるから、同一のＩＰコアを複数のＦＰＧＡ又はこのＦＰＧＡに書き込むデータを記憶するためのＲＯＭにダウロードすることができる。従って、１つのＩＰコアを複数のＦＰＧＡ又はＦＰＧＡに書き込むデータを記憶するためのＲＯＭにダウンロードして機能部品を製造すれば、その製造個数に応じて部品単価が際限なく低減できることになる。ＩＰコアを提供するＩＰベンダーの立場からすれば、ユーザのＩＰコアの利用状況によってＩＰコアの提供価格が変動することは好ましくない。
【００１９】
従って、従来は、上述のように、ＩＰベンダーはユーザとの間でライセンス契約を締結し、ユーザがそのライセンス契約を誠実に遵守することを前提にＩＰコアの使用料金を設定するようにしていた。しかしながら、従来のＩＰコアの使用回数に関係なく一製品毎に一括して使用料金を支払う方法（以下、料金一括支払方法という。）では、ＩＰベンダーはＩＰコアの提供後にユーザの不正使用を監視することができないため、その保障料を含めて使用料金を高めに設定することが多く、概してライセンス契約料が高額になる傾向があった。
【００２０】
ＦＰＧＡは、その設計の自由度や用途の汎用性から見れば、少量多品種の製品にも有意義な部品であるから、そのような製品に使用したいユーザからすれば、上述の料金一括支払方法によるライセンス契約は、部品単価が高くなりすぎて容易には利用し難いものとなる。従って、このようなユーザは、製品の種類に関係なくＩＰコアの使用個数に応じて使用料金を支払う方法（以下、個別料金支払方法という。）を希望することになるが、ＩＰベンダーは料金一括支払方法を採用することが多く、必ずしもユーザの希望に沿うライセンス契約を容易に締結し得る状況にあるとはいえなかった。
【００２１】
上記のように現在のＩＰコアを提供する社会環境においては、ユーザとＩＰベンダーとの間に利害の溝があり、両者においてコストメリットを出し難く、ＩＰコアの有効活用を図ることができないという問題がある。
【００２２】
このような問題の背景は、ＩＰコアのネットリストをビットストリームに変換する専用ツールがＦＰＧＡ提供者から市場に提供されており、何人もＩＰコアを入手すれば、簡単にＩＰコアをＦＰＧＡに搭載できるという状況があるため、ＩＰベンダーはユーザとの間で利用契約やライセンス契約といった契約書だけでのソフトウェアの提供を余儀なくされているからであると考えられる。
【００２３】
ＩＰベンダーの立場からすれば、ユーザがＩＰコアをＦＰＧＡ又はＦＰＧＡに書き込むデータを記憶するためのＲＯＭにダウンロードする回数を正確に把握できるのであれば、ＩＰコアをＦＰＧＡ又はＦＰＧＡに書き込むデータを記憶するためのＲＯＭに１回ダウンロードするための適正な料金（１回当たりの使用単価）を設定し、その使用単価で販売した方が商品価格の適正化や販路拡大の容易化を図ることができるメリットが得られる。しかし、契約書だけでの販売では、全てのユーザが契約内容を遵守するとは限らず、例えば料金一括支払方法の契約で契約外の製品にもＩＰコアが不正に使用されたり、不正にコピーされた場合には、ＩＰコアの販売価格が不当に下落することになるから、その分の保障料を一括料金に含めざるを得ず、この結果ＩＰコアのライセンス契約料も高くならざるを得ないものとなる。
【００２４】
一方、ユーザの立場からすれば、ＩＰベンダーから適切な使用単価で種々のＩＰコアが提供されるのであれば、少量多品種の製品にも容易にＩＰコアを利用することができ、設計負担や部品コストなどの製品に関係する全体的な経済性を向上させるメリットが得られる。しかし、比較的高額でしかも料金一括支払方法のライセンス契約でしかＩＰベンダーからＩＰコアの提供を受けられないとすれば、一部のユーザが実質的に監視力や拘束力のないライセンス契約を遵守せず、可及的にコストメリットを引き出そうとすることは自然の理と言える。
【００２５】
従って、ＩＰコアの供給環境において、ユーザがＩＰコアをＦＰＧＡ又はＦＰＧＡに書き込むデータを記憶するためのＲＯＭにダウンロードする回数を正確に把握できるツールが用意され、このツールによりユーザが契約を物理的に遵守せざるをえず、しかもその遵守状況をＩＰベンダーが把握することができれば、ユーザとＩＰベンダーの利害の溝を埋め、上記問題を解決してＩＰコアの普及及び拡大を可能とすることができるが、未だそのようなツールは提案されておらず、実用化もなされていない。
【００２６】
本発明は、上記課題に鑑みてなされたもので、許可された回数の範囲内でＦＰＧＡの内部回路の配置配線に関するデータから当該ＦＰＧＡに書き込むことのできるデータを生成することができる書込情報生成装置、この書込情報生成装置で生成された書込用データをＦＰＧＡ又はＦＰＧＡへの書込用データを記憶するためのＲＯＭに書き込む情報書込装置、許可された回数の範囲内でＦＰＧＡの内部回路の配置配線に関するデータから上記書込用データを生成し、ＦＰＧＡに書き込む情報書込装置、コンピュータを上記書込情報生成装置や情報書込装置として機能させるためのプログラム及びそのプログラムを記録したコンピュータ読み取り可能な記録媒体を提供するものである。
【課題を解決するための手段】
【００２７】
本発明は、所定の機能を実現させるべく内部回路の再構成が可能なハードウェアに書き込まれる内部回路の論理情報を生成する書込情報生成装置であって、上記機能の一部が制限された状態で作成された内部回路の配置配線に関する情報を入力する第１の情報入力手段と、上記第１の情報入力手段によって入力される上記内部回路の配置配線に関する情報の機能制限を解除する機能制限解除手段と、上記機能制限解除手段により機能制限が解除された上記内部回路の配置配線に関する情報から上記ハードウェアへの書き込みが可能な書込用情報を生成する情報生成手段と、上記情報生成手段により生成された上記書込用情報の暗号化を行う暗号化手段と、上記暗号化手段により暗号化された上記書込用情報を記憶する記憶手段と、上記機能制限の解除処理の許否に関する情報を入力する第２の情報入力手段と、上記第２の情報入力手段によって入力された許否情報に基づいて上記機能制限解除手段による機能制限の解除処理の可否を判別する判別手段と、上記判別手段により解除処理の不可が判別されると、上記機能制限解除手段による機能制限の解除処理を禁止する禁止手段とを備えたものである（請求項１）。
【００２８】
なお、上記第２の情報入力手段から入力される許否情報は、当該第２の情報入力手段に外部接続されるハードウェアキーに読み書き可能に記憶され、当該ハードウェアキーから上記第２の情報入力手段を介して入力されるようにするとよい（請求項２）。また、上記第２の情報入力手段から入力される許否情報は、当該第２の情報入力手段に通信可能に接続されるネットワーク上に設けられる管理サーバに記憶され、通信によって当該管理サーバから上記第２の情報入力手段を介して入力されるようにしてもよい（請求項３）。
【００２９】
また、本発明は、請求項１〜３のいずれかに記載の書込情報生成装置で生成されたハードウェアへの書き込みが可能な書込用情報を内部回路の再構成が可能なハードウェア又はこのハードウェアへの書込用情報を記憶するための記憶デバイスに書き込む情報書込装置であって、暗号化された上記書込用情報を入力する第１の情報入力手段と、上記第１の情報入力手段からの暗号化された上記書込用情報を復号化する復号化手段と、上記復号化手段により復号化された上記書込用情報を上記ハードウェア又は上記記憶デバイスに書き込む情報書込手段と、上記復号化手段による復号化処理の許否に関する情報と上記情報書込手段による上記書込用情報の上記ハードウェア又は上記記憶デバイスへの書込可能な回数の情報とを入力する第２の情報入力手段と、上記情報書込手段により書込用情報の書込動作が行われる毎に上記第２の情報入力手段から入力される書込可能な回数を用いて残りの書込可能な回数を演算する書込可能回数演算手段と、上記第２の情報入力手段によって入力された許否情報と上記書込可能回数演算手段により演算された残りの書込可能な回数とに基づいて上記復号化手段による復号化処理の可否を判別する判別手段と、上記判別手段により書込処理の不可が判別されると、上記復号化手段による復号化処理を禁止する禁止手段とを備えたものである（請求項４）。
【００３０】
なお、上記情報書込装置において、上記第２の情報入力手段から入力される許否情報と書込可能回数の情報は、当該第２の情報入力手段に外部接続されるハードウェアキーに読み書き可能に記憶され、このハードウェアキーに記憶された書込可能な回数を上記書込可能回数演算手段によって演算された書込可能な回数で書き換える書込可能回数書換手段を更に備えるとよい（請求項５）。また、上記第２の情報入力手段から入力される許否情報と書込可能回数の情報は、当該第２の情報入力手段に通信可能に接続されるネットワーク上に設けられる管理サーバに記憶され、この管理サーバに記憶された書込可能な回数を上記書込可能回数演算手段によって演算された書込可能な回数で書き換えるべく当該書込可能な回数を上記管理サーバに送信する書込可能回数送信手段を更に備えるとよい（請求項６）。
【００３１】
また、本発明は、内部回路の再構成が可能なハードウェアに所定の機能を実現させるための内部回路の論理情報を書き込む情報書込装置であって、上記機能の一部が制限された状態で作成された内部回路の配置配線に関する情報を入力する第１の情報入力手段と、上記第１の情報入力手段によって入力される上記内部回路の配置配線に関する情報の機能制限を解除する機能制限解除手段と、上記機能制限解除手段により機能制限が解除された上記内部回路の配置配線に関する情報から上記ハードウェアへの書き込みが可能な書込用情報を生成する情報生成手段と、上記情報生成手段で生成された書込用情報を上記ハードウェア又は上記ハードウェアへの書込用情報を記憶するための記憶デバイスに書き込む情報書込手段と、上記機能制限の解除処理の許否に関する情報と上記情報書込手段による上記書込用情報の上記ハードウェア又は上記記憶デバイスへの書込可能な回数の情報とを入力する第２の情報入力手段と、上記情報書込手段により書込用情報の書込動作が行われる毎に上記第２の情報入力手段から入力される書込可能な回数を用いて残りの書込可能な回数を演算する書込可能回数演算手段と、上記第２の情報入力手段によって入力された情報と上記書込可能回数演算手段により演算された残りの書込可能な回数とに基づいて上記機能制限解除手段による機能制限の解除処理の可否を判別する判別手段と、上記判別手段により解除処理の不可が判別されると、上記機能制限解除手段の機能制限の解除処理を禁止する禁止手段とを備えたものである（請求項７）。
【００３２】
また、本発明は、内部回路の再構成が可能なハードウェアに所定の機能を実現させるための内部回路の論理情報を書き込む情報書込装置であって、上記機能の一部が制限された状態で作成された内部回路の配置配線に関する情報を入力する第１の情報入力手段と、上記第１の情報入力手段によって入力される上記内部回路の配置配線に関する情報の機能制限を解除する機能制限解除手段と、上記機能制限解除手段により機能制限が解除された上記内部回路の配置配線に関する情報から上記ハードウェアへの書き込みが可能な書込用情報を生成する情報生成手段と、上記情報生成手段で生成された上記書込用情報の暗号化を行う暗号化手段と、上記暗号化手段により暗号化された上記書込用情報を記憶する記憶手段と、上記暗号化手段により暗号化された上記書込用情報の復号化を行う復号化手段と、上記復号化手段により復号化された上記書込用情報を上記ハードウェア又は上記ハードウェアへの書込用情報を記憶するための記憶デバイスに書き込む情報書込手段と、上記機能制限解除手段による機能制限の解除処理と上記復号化手段による復号化処理の許否に関する情報と上記情報書込手段による上記書込用情報の上記ハードウェア又は上記記憶デバイスへの書込可能な回数の情報とを入力する第２の情報入力手段と、上記情報書込手段により書込用情報の書込動作が行われる毎に上記第２の情報入力手段から入力される書込可能な回数を用いて残りの書込可能な回数を演算する書込可能回数演算手段と、上記第２の情報入力手段によって入力された許否情報と上記書込可能回数演算手段により演算された残りの書込可能な回数とに基づいて上記機能制限解除手段による機能制限の解除処理と上記復号化手段による復号化処理の可否を判別する判別手段と、上記判別手段により解除処理および復号化処理の不可が判別されると、上記機能制限解除手段の機能制限の解除処理と上記復号化手段の復号化処理を禁止する禁止手段とを備えたものである（請求項８）。
【００３３】
なお、上記第２の情報入力手段から入力される許否情報と書込可能回数の情報は、当該第２の情報入力手段に外部接続されるハードウェアキーに読み書き可能に記憶され、このハードウェアキーに記憶された書込可能な回数を上記書込可能回数演算手段によって演算された書込可能な回数で書き換える書込可能回数書換手段を更に備えるとよい（請求項９）。
【００３４】
また、上記情報書込装置において、上記第２の情報入力手段から入力される許否情報と書込可能回数の情報は、当該第２の情報入力手段に通信可能に接続されるネットワーク上に設けられる管理サーバに記憶され、この管理サーバに記憶された書込可能な回数を上記書込可能回数演算手段によって演算された書込可能な回数で書き換えるべく当該書込可能な回数を上記管理サーバに送信する書込可能回数送信手段を更に備えるとよい（請求項１０）。
【００３５】
また、本発明は、コンピュータを、所定の機能を実現させるべく内部回路の再構成が可能なハードウェアに書き込まれる内部回路の論理情報を生成する書込情報生成装置として機能させるためのプログラムであって、上記コンピュータを、上記機能の一部が制限された状態で作成された内部回路の配置配線に関する情報を入力する第１の情報入力手段と、上記第１の情報入力手段によって入力される上記内部回路の配置配線に関する情報の機能制限を解除する機能制限解除手段と、上記機能制限解除手段により機能制限が解除された上記内部回路の配置配線に関する情報から上記ハードウェアへの書き込みが可能な書込用情報を生成する情報生成手段と、上記情報生成手段により生成された上記書込用情報の暗号化を行う暗号化手段と、上記暗号化手段により暗号化された上記書込用情報を記憶する記憶手段と、上記機能制限の解除処理の許否に関する情報を入力する第２の情報入力手段と、上記第２の情報入力手段によって入力された許否情報に基づいて上記機能制限解除手段による機能制限の解除処理の可否を判別する判別手段と、上記判別手段により解除処理の不可が判別されると、上記機能制限解除手段による機能制限の解除処理を禁止する禁止手段として機能させるためのプログラムである（請求項１１）。
【００３６】
また、本発明は、コンピュータを、請求項１〜３のいずれかに記載の書込情報生成装置で生成されたハードウェアに書込可能な情報を内部回路の再構成が可能なハードウェア又はこのハードウェアへの書込用情報を記憶するための記憶デバイスに書き込む情報書込装置として機能させるためのプログラムであって、上記コンピュータを、暗号化された上記書込用情報を入力する第１の情報入力手段と、上記第１の情報入力手段からの暗号化された上記書込用情報を復号化する復号化手段と、上記復号化手段により復号化された上記書込用情報を上記ハードウェア又は上記記憶デバイスに書き込む情報書込手段と、上記復号化手段による復号化処理の許否に関する情報と上記情報書込手段による上記書込用情報の上記ハードウェア又は上記記憶デバイスへの書込可能な回数の情報とを入力する第２の情報入力手段と、上記情報書込手段により書込用情報の書込動作が行われる毎に上記第２の情報入力手段から入力される書込可能な回数を用いて残りの書込可能な回数を演算する書込可能回数演算手段と、上記第２の情報入力手段によって入力された許否情報と上記書込可能回数演算手段により演算された残りの書込可能な回数とに基づいて上記復号化手段による復号化処理の可否を判別する判別手段と、上記判別手段により書込処理の不可が判別されると、上記復号化手段による復号化処理を禁止する禁止手段として機能させるためのプログラムである（請求項１２）。
【００３７】
なお、上記プログラムにおいて、上記コンピュータを、更に上記第２の情報入力手段に外部接続され、上記許否情報と書込可能回数とが記憶されたハードウェアキーに、当該ハードウェアキーに記憶された書込可能な回数を上記書込可能回数演算手段によって演算された書込可能な回数で書き換える書込可能回数書換手段として機能させるとよい（請求項１３）。また、上記コンピュータを、更に上記第２の情報入力手段に通信可能に接続されるネットワーク上に設けられ、上記許否情報と書込可能回数の情報とが記憶された管理サーバに、当該管理サーバに記憶された書込可能な回数を上記書込可能回数演算手段によって演算された書込可能な回数で書き換えるべく当該書込可能な回数を上記管理サーバに送信する書込可能回数送信手段として機能させるとよい（請求項１４）。
【００３８】
また、本発明は、コンピュータを、内部回路の再構成が可能なハードウェアに所定の機能を実現させるための内部回路の論理情報を書き込む情報書込装置として機能させるためのプログラムであって、上記コンピュータを、上記機能の一部が制限された状態で作成された内部回路の配置配線に関する情報を入力する第１の情報入力手段と、上記第１の情報入力手段によって入力される上記内部回路の配置配線に関する情報の機能制限を解除する機能制限解除手段と、上記機能制限解除手段により機能制限が解除された上記内部回路の配置配線に関する情報から上記ハードウェアへの書き込みが可能な書込用情報を生成する情報生成手段と、上記情報生成手段で生成された書込用情報を上記ハードウェア又は上記ハードウェアへの書込用情報を記憶するための記憶デバイスに書き込む情報書込手段と、上記機能制限の解除処理の許否に関する情報と上記情報書込手段による上記書込用情報の上記ハードウェア又は上記記憶デバイスへの書込可能な回数の情報とを入力する第２の情報入力手段と、上記情報書込手段により書込用情報の書込動作が行われる毎に上記第２の情報入力手段から入力される書込可能な回数を用いて残りの書込可能な回数を演算する書込可能回数演算手段と、上記第２の情報入力手段によって入力された情報と上記書込可能回数演算手段により演算された残りの書込可能な回数とに基づいて上記機能制限解除手段による機能制限の解除処理の可否を判別する判別手段と、上記判別手段により解除処理の不可が判別されると、上記機能制限解除手段の機能制限の解除処理を禁止する禁止手段として機能させるためのプログラムである（請求項１５）。
【００３９】
また、本発明は、コンピュータを、内部回路の再構成が可能なハードウェアに所定の機能を実現させるための内部回路の論理情報を書き込む情報書込装置として機能させるためのプログラムであって、上記コンピュータを、上記機能の一部が制限された状態で作成された内部回路の配置配線に関する情報を入力する第１の情報入力手段と、上記第１の情報入力手段によって入力される上記内部回路の配置配線に関する情報の機能制限を解除する機能制限解除手段と、上記機能制限解除手段により機能制限が解除された上記内部回路の配置配線に関する情報から上記ハードウェアへの書き込みが可能な書込用情報を生成する情報生成手段と、上記情報生成手段で生成された上記書込用情報の暗号化を行う暗号化手段と、上記暗号化手段により暗号化された上記書込用情報を記憶する記憶手段と、上記暗号化手段により暗号化された上記書込用情報の復号化を行う復号化手段と、上記復号化手段により復号化された上記書込用情報を上記ハードウェア又は上記ハードウェアへの書込用情報を記憶するための記憶デバイスに書き込む情報書込手段と、上記機能制限解除手段による機能制限の解除処理と上記復号化手段による復号化処理の許否に関する情報と上記情報書込手段による上記書込用情報の上記ハードウェア又は上記記憶デバイスへの書込可能な回数の情報とを入力する第２の情報入力手段と、上記情報書込手段により書込用情報の書込動作が行われる毎に上記第２の情報入力手段から入力される書込可能な回数を用いて残りの書込可能な回数を演算する書込可能回数演算手段と、上記第２の情報入力手段によって入力された許否情報と上記書込可能回数演算手段により演算された残りの書込可能な回数とに基づいて上記機能制限解除手段による機能制限の解除処理と上記復号化手段による復号化処理の可否を判別する判別手段と、上記判別手段により解除処理および復号化処理の不可が判別されると、上記機能制限解除手段の機能制限の解除処理と上記復号化手段の復号化処理を禁止する禁止手段として機能させるためのプログラムである（請求項１６）。
【００４０】
なお、上記プログラムにおいて、上記コンピュータを、更に上記第２の情報入力手段に外部接続され、上記許否情報と書込可能回数の情報とが記憶されたハードウェアキーに、当該ハードウェアキーに記憶された書込可能な回数を上記書込可能回数演算手段によって演算された書込可能な回数で書き換える書込可能回数書換手段として機能させるとよい（請求項１７）。
【００４１】
また、上記プログラムにおいて、上記コンピュータを、更に上記第２の情報入力手段に通信可能に接続されるネットワーク上に設けられ、上記許否情報と書込可能回数の情報とが記憶された管理サーバに、当該管理サーバに記憶された書込可能な回数を上記書込可能回数演算手段によって演算された書込可能な回数で書き換えるべく当該書込可能な回数を上記管理サーバに送信する書込可能回数送信手段として機能させるようにしてもよい（請求項１８）。
【００４２】
また、本発明は、上記プログラムを記録したコンピュータ読み取り可能な記録媒体である（請求項１９）。
【発明の効果】
【００４３】
請求項１〜３に記載の書込情報生成装置によれば、外部接続されたハードウェアキーから入力される許否情報もしくはネットワークを介して通信可能接続される管理サーバから入力される許否情報に基づいて内部回路の配置配線に関する情報の再構成可能なハードウェアへの書き込みの可否が判断され、書込不許可により書込不可が判別されると、機能の一部が制限された状態で作成された内部回路の配置配線に関する情報が入力されてもこの情報の機能制限解除処理は禁止される。従って、内部回路の配置配線に関する情報をハードウェアに書き込むことはできない。
【００４４】
一方、内部回路の配置配線に関する情報のハードウェアへの書込可が判断されると、機能の一部が制限された状態で作成された内部回路の配置配線に関する情報の機能制限が解除された後、ハードウェアに書込可能な情報が生成され、その情報は暗号化されて記憶手段に記憶される。
【００４５】
請求項４〜６に記載の情報書込装置によれば、外部接続されたハードウェアキーから入力される許否情報と書込可能回数の情報もしくはネットワークを介して通信可能接続される管理サーバから入力される許否情報と書込可能回数の情報に基づいて請求項１〜３に記載の書込情報生成装置によって生成された暗号化情報の再構成可能なハードウェア又はこのハードウェアへの書込用情報を記憶する記憶デバイスへの書き込みの可否が判断され、書込不許可若しくは既に書き込まれた回数（積算値）が書込可能回数を越えているなどにより書込不可が判別されると、暗号化情報が入力されてもこの暗号化情報の復号化処理は禁止される。従って、内部回路の配置配線に関する情報をハードウェア又は記憶デバイスに書き込むことはできない。
【００４６】
一方、暗号化情報のハードウェア又は記憶デバイスへの書込可が判断されると、暗号化情報が復号化された後、ハードウェア又は記憶デバイスに書き込まれる。また、このハードウェア又は記憶デバイスへの情報の書込処理が行われる毎にハードウェアキー若しくは管理サーバから入力される書込可能な回数を用いて残りの書込可能な回数が演算され、ハードウェアキー若しくは管理サーバに記憶された書込可能な回数はこの演算値で置き換えられる。
【００４７】
従って、本発明に係る書込情報生成装置及び情報書込装置をＩＰベンダーがＩＰコアを提供する際に使用すれば、ユーザとの間でＩＰコアの使用回数をＦＰＧＡ又は記憶デバイスヘのＩＰコアの書込可能回数として契約し、その契約内容の情報を記憶したハードウェアキーと、書込情報生成装置及び情報書込装置をユーザに提供することにより、ユーザに契約内容を確実に履行させることができ、不正なＩＰコアの使用やコピーを防止することができる。また、ＩＰコアの料金を１回の使用料として設定することができるので、ＩＰコアの提供料金の低価格化が可能になるとともに、少数使用を目的とするユーザに対して適正価格の商品提供が可能になり、ＩＰコアの利用率を向上させることができる。
【００４８】
また、請求項７，９，１０に記載の情報書込装置によれば、外部接続されたハードウェアキーから入力される許否情報と書込可能回数の情報もしくはネットワークを介して通信可能接続される管理サーバから入力される許否情報と書込可能回数の情報に基づいて内部回路の配置配線に関する情報の再構成可能なハードウェア又はこのハードウェアへの書込用情報を記憶する記憶デバイスへの書き込みの可否が判断され、書込不許可若しくは既に書き込まれた回数（積算値）が書込可能回数を越えているなどにより書込不可が判別されると、機能の一部が制限された状態で作成された内部回路の配置配線に関する情報が入力されてもこの情報の機能制限処理は禁止される。
【００４９】
一方、内部回路の配置配線に関する情報のハードウェア又は記憶デバイスへの書込可が判断されると、機能の一部が制限された状態で作成された内部回路の配置配線に関する情報の機能制限が解除された後、ハードウェア又は記憶デバイスに書き込まれる。また、このハードウェア又は記憶デバイスへの情報の書込処理が行われる毎にハードウェアキー若しくは管理サーバから入力される書込可能な回数を用いて残りの書込可能な回数が演算され、ハードウェアキー若しくは管理サーバに記憶された書込可能な回数はこの演算値で置き換えられる。
【００５０】
また、請求項８，９，１０に記載の情報書込装置によれば、外部接続されたハードウェアキーから入力される許否情報と書込可能回数の情報もしくはネットワークを介して通信可能接続される管理サーバから入力される許否情報と書込可能回数の情報に基づいて内部回路の配置配線に関する情報の再構成可能なハードウェア又はこのハードウェアへの書込用情報を記憶する記憶デバイスへの書き込みの可否が判断され、書込不許可若しくは既に書き込まれた回数（積算値）が書込可能回数を越えているなどにより書込不可が判別されると、機能の一部が制限された状態で作成された内部回路の配置配線に関する情報が入力されてもこの情報の機能制限処理は禁止される。
【００５１】
一方、内部回路の配置配線に関する情報のハードウェア又は上記記憶デバイスへの書込可が判断されると、機能の一部が制限された状態で作成された内部回路の配置配線に関する情報が入力された場合、機能制限が解除された後、ハードウェアに書込可能な情報が生成され、その情報は暗号化されて記憶手段に記憶されるとともに復号化されてハードウェア又は上記記憶デバイスに書き込まれる。また、このハードウェア又は上記記憶デバイスへの情報の書込処理が行われる毎にハードウェアキー若しくは管理サーバから入力される書込可能な回数を用いて残りの書込可能な回数が演算され、ハードウェアキー若しくは管理サーバに記憶された書込可能な回数はこの演算値で置き換えられる。
【００５２】
従って、請求項７〜１０に記載の情報書込装置をＩＰベンダーがＩＰコアを提供する際に使用した場合も、請求項１〜３に記載の書込情報生成装置及び請求項４〜６に記載の情報書込装置をＩＰベンダーがＩＰコアを提供する際に使用した場合と同様の効果を奏することができる。
【００５３】
また、請求項１１〜１８に記載のプログラム及び請求項１９に記載の記録媒体によれば、これらのプログラムをコンピュータに読み取らせて実行させることにより当該コンピュータを請求項１〜１０に記載の書込情報生成装置若しくは情報書込装置として機能させることができ、上述の作用効果を奏することができる。
【発明を実施するための最良の形態】
【００５４】
本発明に係る情報書込装置は、ＩＰベンダーからＩＰコアの購入契約をし、そのＩＰコアをＦＰＧＡにダウンロードする際に必要となるものである。従って、この情報書込装置は、通常、ＩＰコアの購入契約の際、ＩＰベンダーからユーザに対して提供される。この情報書込装置は、図１に示すように、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＭＯ（Magnet Optical disc）、ＦＤ（Flexible Disc）などの本発明に係るプログラム（ソフトウェア）が記憶された外部記憶媒体２をパーソナルコンピュータ1のドライバに装着し、そのドライバから外部記憶媒体２に記憶されたプログラムをコンピュータ本体１Ａ内のＲＡＭ（Random Access Memory）に読み込むことより構成される。
【００５５】
従って、通常は、ＩＰベンダーからユーザに対してはＩＰネットリストをＦＰＧＡ４１又はＲＯＭ４２（ＦＰＧＡ４１へＩＰネットリストを書き込むために当該ＩＰネットリストを記憶するための記憶デバイス）に書き込む処理を行うためのプログラム（以下、ＦＰＧＡ書込専用プログラムという。）が記憶された外部記憶媒体２と、この外部記憶媒体２に記憶されたプログラムを保護するためのドングル（dongle；ハードウェアキー）３とが提供される。ユーザは、図１に示すように、自己のパーソナルコンピュータ1に外部記憶媒体２に記憶されたＦＰＧＡ書込専用プログラムを読み込ませるとともに、コンピュータ本体１Ａに設けられた所定のパラレルポート若しくはシリアルポート（通信ポート）に当該ドングル３を接続し、ＦＰＧＡ４１及びＲＯＭ４２が搭載された基板４を専用ケーブル５でコンピュータ本体１Ａの所定の通信ポートに接続することによりＦＰＧＡ専用の情報書込装置を構成することができる。
【００５６】
ここで、ＦＰＧＡ書込専用プログラムが記憶された外部記憶媒体２とドングル３とを用いたＩＰコアの提供方法について、図２に示すフローチャートを用いて説明する。
【００５７】
まず、ユーザは、ＩＰベンダーとの間で所望のＩＰコアについて評価目的のための利用契約を締結する（＃１）。この利用契約はユーザがＮＤＡ（Non-Disclosure Agreement 非開示合意）に署名することにより締結される。利用契約が締結されると、ＩＰベンダーからユーザに対して上述したＩＰコアに関する詳細な資料とシミュレーションモデルと機能制限付ＩＰコアのネットリストとが無償で提供される。
【００５８】
ユーザは、シミュレーションモデルにより購入しようとしているＩＰコアの機能評価を行うとともに、機能制限付ＩＰコアのネットリスト（以下、ＩＰコアのネットリストをＩＰネットリストという。）をＦＰＧＡ４１にダウンロードして実製品により機能および動作の評価を行い（＃２）、購入するか否かの判断を行なう（＃３）。そして、購入しない場合は（＃３：ＮＯ）、購入手続きは終了し、購入する場合は（＃３：ＹＥＳ）、ＦＰＧＡ書込専用プログラムが記憶された外部記憶媒体２およびドングル３の購入（＃４）とＩＰコアのＦＰＧＡ４１又はＲＯＭ４２への書込可能な回数（以下、書込可能回数という。）の購入を行う（＃５）。ＩＰコアの料金は書込可能回数に応じて設定されるので、実質的に１回当たりのＩＰコアの使用料となる。
【００５９】
後述するように、この書込可能回数はドングル３に記憶されるとともに、ＩＰコアが使用される毎に書込可能回数を１ずつ減算して現在の書込可能回数がドングル３に再記憶され、ＦＰＧＡ書込専用プログラムをパーソナルコンピュータに搭載してＩＰコアのＦＰＧＡ４１又はＲＯＭ４２への書込処理を実行しようとした場合、ドングル３から読み込まれた書込可能回数が０になっていれば、その書込処理は禁止され、書込可能回数分以上のＩＰコアのＦＰＧＡ４１又はＲＯＭ４２への書き込みはできないようになっている。
【００６０】
ＦＰＧＡ書込専用プログラムが記録された外部記録媒体２とドングル３とを購入したユーザは、これらを用いて自己のコンピュータをＦＰＧＡ専用の情報書込装置とした後、この情報書込装置を用いてＦＰＧＡ４１を使用する製品の種類に関係なく書込可能回数分だけ自由にＩＰネットリストをＦＰＧＡ４１又はＲＯＭ４２に書き込んで所望の機能部品を開発用や量産用などの目的に応じて適宜製造する（＃６）。そして、書込可能回数を使い切り、更にＩＰネットリストを使用したい場合は（＃７：ＹＥＳ）、ステップ＃５に戻り、書込可能回数の追加購入をすることにより所望の数だけＩＰコアを購入する。ＩＰコアの使用料金は書込可能回数によって決定されるので、従来の一括支払方法に比してＩＰコアの１回使用当たりの価格が廉価になり、ユーザは適正価格でＩＰコアを必要数分だけ購入することができる。
【００６１】
次に、本発明に係る情報書込装置の用途について簡単に説明する。情報書込装置は、図１５に示すＦＰＧＡの開発・設計手順において、配置配線データからビットストリームを生成し、このビットストリームをＦＰＧＡ４１又はＲＯＭ４２にダウンロードをする手順を実行させるための装置である。
【００６２】
従来は、この手順はユーザのコンピュータに搭載されたビットストリーム生成用の専用プログラムやダウンロード用の専用プログラムを用いて各処理が実行されていたが、本発明に係る情報書込装置では、配置配線データからビットストリームを生成してＦＰＧＡ４１又はＲＯＭ４２にダウンロードを行うまで処理を一括して制御し、この制御で書込可能回数を管理することによりＩＰコアの売買契約の無実化を防止するようにしている。
【００６３】
図３は、情報書込装置１の内部構成を機能ブロックで表した図である。
【００６４】
情報書込装置１は、主として制限解除処理部６、ビットストリーム生成部７、暗号化処理部８、復号化処理部９、書込処理部１０、制御部１１、内部メモリ１２及びドングル３により構成されている。制限解除処理部６〜制御部１１の各部の機能は、ＣＰＵ（Central Processing Unit：中央演算処理装置）が所定のプログラムを実行することによって行われる。また、内部メモリ１２は、ＣＰＵに接続されたパーソナルコンピュータの主記憶装置で、ＲＡＭ（Random Access Memory）やＲＯＭ（Read only Memory）で構成される。ＣＰＵに実行されるプログラムは、予めＲＯＭに記憶されるか、あるいはドライバにより外部記憶装置２から読み込んでＲＡＭに記憶される。
【００６５】
また、ドングル３は、例えば直方体形状を成し、一方側面にコンピュータ本体１Ａの所定のパラレルポートに接続するための接続端子が設けられている。なお、反対側の側面に他のドングルを縦列接続させるための接続端子が設けられている。ドングル３には、例えばフラッシュメモリからなるメモリ３１が設けられ、このメモリ３１に、制限解除処理部６及び復号化処理部９の処理の可否を判別するための情報（ＩＰベンダーからＩＰコアの使用許諾のライスセンスを有しているか否かの情報。以下、ライセンス情報という。）と、ＩＰネットリストの書込可能回数の情報（ユーザの購入した書込可能回数の情報）が記憶されている。ドングル３がコンピュータ本体１Ａに接続されると、メモリ３１からこれらの情報がコンピュータ本体１Ａ内のＲＡＭに読み込まれ、ＣＰＵの判断処理（後述）に使用される。
【００６６】
制限解除処理部６は、利用契約によりＩＰベンダーから無償提供を受けた機能制限付ＩＰコアのネットリストと自作したネットリストとが組み合われたＦＰＧＡ４１のネットリストから作成された配置配線データ（以下、機能制限付き配置配線データという。）の機能制限を解除するものである。すなわち、制限解除理部６は、機能制限のない正規のＩＰネットリストと自作のネットリストとが組み合わされたＦＰＧＡ４１のネットリストから作成される配置配線データに相当するデータを生成する。機能制限の解除処理とは、例えばＩＰコアが正常に動作する期間が無償提供時から３ヶ月などといった時間的制限が課せられている場合はその制限を外して使用可能にすることであり、例えば通信処理用のＩＰコアで出力制限が課されている場合は、その制限を外して規格通りの出力を可能にするものである。
【００６７】
なお、機能制限付き配置配線データは、パーソナルコンピュータ１の内部メモリ１２（例えばＲＡＭ）に保存されている場合は、その内部メモリ１２から読み出すことにより制限解除処理部６に入力される。また、制限解除処理部６は、制御部１１から制限解除禁止が指令されると、機能制限付き配置配線データの機能制限を解除しない。制御部１１は、ドングル３から読み込んだ情報からライセンスが失効している場合は制限解除処理部６に制限解除禁止を指令する。
【００６８】
ビットストリーム生成部７は、機能制限解除された配置配線データをＦＰＧＡ４１又はＲＯＭ４２に書込可能なビットデータ列（ビットストリーム）のデータに変換するものである。ビットストリーム生成部７における処理はＦＰＧＡベンダーから提供されている専用のプログラムが使用される。従って、ビットストリーム生成部７は、その専用プログラムに制限解除処理部６と暗号化処理部８の処理とをリンクさせることにより、制限解除処理部６からの配置配線データからビットストリームを生成し、そのビットストリームを暗号化処理部８に出力することによりビットストリームの暗号化を可能にする。
【００６９】
暗号化処理部８は、ビットストリームの暗号化を行うものである。暗号方法は、例えば秘密鍵暗号などの周知の暗号方法を適用することができる。暗号化されたビットストリーム（以下、暗号化ビットストリームという。）は内部メモリ１２に記憶され、ユーザが管理することができる。例えばユーザは情報書込装置１を用いてこの暗号化ビットストリームを復号化して別のＦＰＧＡ４１又はＲＯＭ４２に書き込むことができる。
【００７０】
このように、ビットストリームをユーザの管理下に置くようにしているのは、ＩＰネットリストをＦＰＧＡ４１又はＲＯＭ４２にダウンロードする度に機能制限付き配置配線データからビットストリームを生成する処理を行わせると、その処理に時間を要し、量産品に適用されるＦＰＧＡ４１の場合、多数のＦＰＧＡ４１又はＲＯＭ４２へのＩＰネットリストのダウンロードに長時間を要し、ユーザ側での利便性に欠けるものとなるからである。その一方、ＦＰＧＡ４１へ書込可能な形態でユーザ側にビットストリームの管理を許容すると、不正な使用やコピーが行われる可能性があり、ＩＰベンダーにとって情報書込装置１を用いた書込制御や管理を行う意味が無くなるから、これを防止するため、暗号化した状態でビットストリームの管理を可能にしている。
【００７１】
復号化処理部９は、暗号化ビットストリームをＦＰＧＡ４１に書込可能なビットストリームに復号化するものである。復号化処理部９は、制御部１１から復号化禁止が指令されると、暗号化ビットストリームの復号化処理をしない。制御部１１は、ドングル３から読み込んだ情報からライセンスが失効している場合や書込可能回数が０になっている場合は復号化処理部９に復号化禁止を指令する。
【００７２】
書込処理部１０は、復号化処理部９から出力されるビットストリームをＦＰＧＡ４１又はＲＯＭ４２にダウンロードするものである。なお、復号化処理部９で暗号化ビットストリームが復号化されなかった場合は、暗号化ビットストリームがＦＰＧＡ４１又はＲＯＭ４２にダウンロードされることはない。書込処理部１０がビットストリームの書込処理を行い、その処理が成功すると、その情報が制御部１１に送られ、制御部１１で現在のビットストリームの書込可能回数ｎ’が算出される。すなわち、ドングル３から読み出された書込可能回数ｎから１だけ減算して残りの書込可能回数ｎ’（＝ｎ−１）が算出される。
【００７３】
制御部１１は、制限解除処理部６〜書込処理部１０の各処理部の動作を制御するとともに、ビットストリームのＦＰＧＡ４１又はＲＯＭ４２への書込み回数ｎを管理するものである。上述したように、制御部１１はドングル３のメモリ３１からライセンスと書込可能回数の情報を読み出し、ライセンス情報と書込可能回数の情報に基づき機能制限付ＩＰネットリストの機能制限の解除処理と暗号化ビットストリームの復号化処理の可否を判別する。そして、ライセンス失効の場合、制限解除処理部６に機能制限の解除禁止を指令し、ライセンス失効若しくは書込可能回数０の場合、復号化処理部９に復号禁止を指令する。これにより機能制限付き配置配線データのＦＰＧＡ４１又はＲＯＭ４２への書込処理が阻止される。
【００７４】
また、書込処理部１０から書込処理完了の情報が入力されると、機能制限付き配置配線データのＦＰＧＡ４１又はＲＯＭ４２への残りの書込可能回数を演算する。前回までの書込可能回数ｎ（最初の書込可能回数−書込み回数の積算値＝現在の書込可能回数）は、ドングル３のメモリ３１に書き込まれており、制御部１１は、このドングル３から読み出した現在の書込可能回数ｎから「１」を減算することにより残りの書込可能回数ｎ’を算出する。そして、この書込可能回数ｎ’でドングル３のメモリ３１に記憶された書込可能回数ｎの内容を書き換える。
【００７５】
なお、データの書込処理が行われる毎に書込み済みの回数の積算値を算出し、その積算値が購入した書込可能回数に一致しているか否かで復号化処理の可否を判別するようにしてもよい。
【００７６】
次に、本発明に係る情報書込装置１の情報書込処理について、図４に示すフローチャートを用いて説明する。
【００７７】
この情報書込処理を実行させる際には、書込処理の対象であるデータが指定されるとする。このデータには機能制限付き配置配線データと既に書込処理が行われ、その時に作成された暗号化ビットストリームが含まれる。
【００７８】
まず、情報書込装置１にドングル３が装着されているか否かが判別される（＃１０）。この判別は、制御部１１がドングル３のメモリ３１内のライセンスや書込可能回数の情報の読取動作を行い、その情報が読み取れるか否かにより行われる。そして、ドングル３が未装着である場合は（＃１０：ＮＯ）、ディスプレイ１Ｂに所定のエラーメッセージが表示され（＃２５）、処理を終了する。なお、このエラーメッセージは、例えばドングル３の未装着を報知する内容やドングル３の装着を促す内容である。
【００７９】
ドングル３が装着されている場合（＃１０：ＹＥＳ）、ドングル３からライセンス情報が読み取られ、機能制限解除のライセンスの有効性が確認される（＃１１，＃１２）。すなわち、制限解除処理が許可されているか否かが確認される。そして、機能制限解除のライセンスが失効していれば（＃１２：ＮＯ）、ステップ＃２７に移行してディスプレイ１Ｂに所定のエラーメッセージが表示され、処理を終了する。なお、このエラーメッセージは、例えば制限解除処理のライセンスが失効している旨を報知する内容や制限解除処理のライセンスの取得を促す内容である。
【００８０】
一方、機能制限解除のライセンスが有効であれば（＃１２：ＹＥＳ）、書込処理の対象となるデータが機能制限付き配置配線データであるか、暗号化ビットストリームであるかが判別され（＃１３）、機能制限付きデータである場合は（＃１３：ＹＥＳ）、内部メモリ１２若しくは外部記憶媒体２に保存されている所定のファイルから機能制限付きデータが読み込まれる（＃１４）。続いて、この機能制限付き配置配線データに対して制限されている機能を解除する処理が行われる（＃１５）。
【００８１】
続いて、機能制限が解除された配置配線データからビットストリームが生成され（＃１６）、更にこのビットストリームが暗号化された後（＃１７）、内部メモリ１２に保存される（＃１８）。続いて、書込可能回数の情報が読み取られ（＃１９）、更に残りの書込可能回数ｎが０になっているか否かが判別され（＃２０）、ｎ＝０であれば（＃２０：ＹＥＳ）、ステップ＃２７に移行してディスプレイ１Ｂに所定のエラーメッセージが表示され、処理を終了する。なお、このエラーメッセージは、例えば書込可能回数が０になっている旨を報知する内容や書込可能回数の取得を促す内容である。
【００８２】
本実施形態では、ＦＰＧＡ４１又はＲＯＭ４２にビットストリームを書き込む毎に残りの書込可能回数ｎを演算し、その演算結果をドングル３のメモリ３１に更新的に保存するようにしているが、ＦＰＧＡ４１又はＲＯＭにビットストリームを書き込む毎に書込済回数の積算値Ｎを演算し、その演算値Ｎをドングル３のメモリ３１に更新的に保存するようにしてもよい。この場合は、ステップ＃２０では、書込済回数の積算値Ｎが書込可能回数ｎと一致しているか否かを判別する、若しくは（ｎ−Ｎ）の演算により残りの書込可能回数を演算し、その書込可能回数が０であるか否かを判別する。
【００８３】
ステップ＃２０でｎ＝０でなければ（＃２０：ＮＯ）、復号化処理のライセンスの有効性が確認され（＃２１）、復号化処理のライセンスが失効していれば（＃２２：ＮＯ）、ステップ＃２７に移行してディスプレイ１Ｂに所定のエラーメッセージが表示され、処理を終了する。なお、このエラーメッセージは、例えば復号化処理のライセンスが失効している旨を報知する内容や復号化処理のライセンスの取得を促す内容である。
【００８４】
一方、復号化処理のライセンスが有効であれば（＃２２：ＹＥＳ）、暗号化されたビットストリームが再度、元のビットストリームに復号化された後（＃２３）、ＦＰＧＡ４１又はＲＯＭ４２への書込処理が行われる（＃２４）。続いて、ビットストリームの書込処理が終了すると、ビットストリームの書込みが正常に行われた否かが判別され（＃２５）、書込み異常があった場合は（＃２５：ＮＯ）、ステップ＃２７に移行してディスプレイ１Ｂに所定のエラーメッセージが表示され、処理を終了する。なお、このエラーメッセージは、例えばデータの書込み異常が生じた旨を報知する内容や再度書込処理を実行することを促す内容である。
【００８５】
一方、ビットストリームの書込みが正常に行われた場合は（＃２５：ＹＥＳ）、ドングル３から読み出された書込可能回数の情報、すなわち、現在の残りの書込可能回数ｎ（積算値）から１だけ減算して新たな残りの書込可能回数ｎ’が算出され、その算出値ｎ’でドングル３のメモリ３１に記憶された書込可能回数ｎが書き換えられて（＃２６）、処理を終了する。
【００８６】
なお、ステップ＃１３で書込処理の対象として暗号化ビットストリームが指定されている場合は（＃１３：ＮＯ）、既にステップ＃１４〜＃１８の処理は以前の書込処理で行われているので、これらのステップをスキップしてステップ＃１９に移行し、上述した復号化処理以降の処理が行われる。
【００８７】
上記実施例では、復号化処理の可否判断で復号化処理のライセンスと書込可能回数の両方を確認するようにしているが、書込可能回数だけで復号化処理の可否判断を行うようにしてもよい。
【００８８】
上記のように、本実施形態に係る情報書込装置によれば、利用契約時にＩＰベンダーからユーザに無償提供される機能制限付ＩＰネットリストを用いた機能制限付き配置配線データの機能制限解除機能を有するとともに、その機能を書込可能回数分だけ可能にする制御機能を有しているので、ＩＰベンダーとユーザとの間でＩＰコアの本契約（売買契約）を締結する際、この情報書込装置を用いることによりＩＰベンダーは販売したＩＰコアの不正使用を確実に防止することができる。従って、ＩＰベンダーから安心して使用回数に応じた料金でＩＰコアをユーザに提供可能となり、これによりＩＰコアの低廉化が可能になる。すなわち、市販のＩＣチップと同等の価格を実現することができる。また、ユーザも適正価格で種々のＩＰコアが利用できるので、設計負担の軽減やＦＰＧＡが使用される製品全体の低コスト化が可能になり、ＩＰコアの有効活用を図ることができる。
【００８９】
なお、上記実施形態では、ドングル３により配置配線データのＦＰＧＡ４１又はＲＯＭ４２の書込処理を制御・管理するようにしていたが、図５に示すように、ドングル３の機能をネットワークＮＷ上に配置された管理サーバ１４で行なうようにしてもよい。この構成（以下、この構成を第２の実施形態という。）では、制御部１１は、通信制御部１３によりネットワークＮＷを解して管理サーバ１４と通信を行ってライセンス情報や書込可能回数情報を取得し、書込処理が行なわれ毎に残りの書込可能回数を算出してその算出値を管理サーバ１４に送信することになる。
【００９０】
第２実施形態の構成では、管理サーバ１４でライセンス情報や書込可能回数情報が管理されるので、ＩＰベンダー側でユーザによるＩＰコアの使用状態の管理を容易に行なうことができる利点がある。
【００９１】
また、上記実施形態では、ビットストリームを暗号化し、その暗号化ビットストリームを内部メモリ１２に保存するようにしているが、これはビットストリームがユーザの管理下に置かれるので、ユーザ側での不正使用や不正コピーを確実に防止するためのものであり、暗号化処理及び復号化処理を行なうことなく生成されたビットストリームを直ちにＦＰＧＡ４１又はＲＯＭ４２にダウンロードするようにしてもよい。
【００９２】
すなわち、図６に示すように、図３において、暗号化処理部８と復号化処理部９を削除した構成（以下、この構成を第３の実施形態という。）とし、図７に示すフローチャートに従って処理するようにしてもよい。なお、図７に示すフローチャートは、図４において、ステップ＃１３，＃１７，＃２１〜＃２３を削除し、生成されたビットストリームの不正使用を防止するため、ステップ＃１６の処理の後にビットストリームの内部メモリ１２や外部記憶装置２などへの保存を禁止する処理（ステップ＃２８）を追加したものである。
【００９３】
第３の実施形態の構成では、暗号化及び復号化の処理がないので、構成が簡単になる利点がある。また、ユーザ側でビットストリームの管理が行われないので、ビットストリームの不正使用や不正コピーを確実に防止することができる利点がある。
【００９４】
また、上記実施形態では、制限機能付き配置配線データの機能の制限を解除した後、その配置配線データからビットストリームを生成し、ＦＰＧＡ４１又はＲＯＭ４２にダウンロードするまでの一連の処理を行う装置として専用の情報書込装置１を構成していたが、制限機能付き配置配線データから暗号化ビットストリームを生成するまでの処理を行う装置（以下、書込情報生成装置という。）と暗号化ビットストリームを復号化してＦＰＧＡ４１又はＲＯＭ４２に書き込む処理を行う装置（以下、第２情報書込装置という。）に分離してもよい。
【００９５】
図８は、書込情報生成装置の構成を示す図である。また、図１０は、書込情報生成装置で生成された暗号化ビットストリームをＦＰＧＡ４１又はＲＯＭ４２へ書き込む処理を行うための第２情報書込装置の構成を示す図である。
【００９６】
図８に示す書込情報生成装置は、図４において、復号化処理部９と書込処理部１０とを削除したものである。制限解除処理部６〜暗号化処理部８の機能は上述したとおりであるから、ここでは詳細説明を省略する。なお、制御部１１’は、図４における制御部１１の制限解除処理部６〜暗号化処理部８の各部を制御する機能を有するとともに、暗号化処理部８から出力される暗号化ビットストリームを内部メモリ１２に記憶する機能を有するものである。
【００９７】
図９は、書込情報生成装置の暗号化ビットストリームの生成処理の手順を示すフローチャートである。同図に示すフローチャートは、図４に示すフローチャートにおいて、暗号化ビットストリームを復号化してＦＰＧＡ４１又はＲＯＭ４２に書き込む処理を削除したもので、具体的には、ステップ＃１３，ステップ＃１９〜＃２６を削除したものである。
【００９８】
書込情報生成装置では、処理対象が機能制限付き配置配線データに限られているため、書込情報生成装置の暗号化ビットストリームの生成処理を実行させる際には、処理対象であるデータの選択処理は行われない。従って、ステップ＃１３の判断処理は削除されている。
【００９９】
図９に示すフローチャートによれば、まず、情報書込装置１にドングル３が装着されているか否かが判別される（＃１０）。そして、ドングル３が未装着である場合は（＃１０：ＮＯ）、ディスプレイ１Ｂに所定のエラーメッセージが表示され（＃２７）、処理を終了する。なお、このエラーメッセージは、例えばドングル３の未装着を報知する内容やドングル３の装着を促す内容である。
【０１００】
ドングル３が装着されている場合（＃１０：ＹＥＳ）、ドングル３からライセンス情報が読み取られ（＃１１）、更にライセンスが有効であるか否かが判別される（＃１２）。すなわち、制限解除処理が許可されているか否かが判別される。そして、ライセンスが失効していれば（＃１２：ＮＯ）、ステップ＃２７に移行してディスプレイ１Ｂに所定のエラーメッセージが表示され、処理を終了する。なお、このエラーメッセージは、例えばライセンスが失効している旨を報知する内容やライセンスの取得を促す内容である。
【０１０１】
一方、ライセンスが有効であれば（＃１２：ＹＥＳ）、内部メモリ１２若しくは外部記憶媒体２に保存されている所定のファイルから機能制限付きデータが読み込まれる（＃１４）。続いて、この機能制限付き配置配線データに対して制限されている機能を解除する処理が行われる（＃１５）。続いて、機能制限が解除された配置配線データからビットストリームが生成され（＃１６）、更にこのビットストリームが暗号化された後（＃１７）、内部メモリ１２に保存され（＃１８）、処理を終了する。
【０１０２】
また、図１０に示す第２情報書込装置は、図４において、制限解除処理部６〜暗号化処理部８を削除したものである。復号化処理部９及び書込処理部１０の機能は上述したとおりであるから、ここでは詳細説明を省略する。なお、制御部１１”は、図４における制御部１１の復号化処理部９及び書込処理部１０の各部を制御する機能を有するとともに、書込処理部１０での書き込み動作毎に残りの書込可能回数ｎを演算し、その演算値をドングル３のメモリ３１に更新的に記憶する機能を有するものである。
【０１０３】
図１１は、書込情報生成装置で生成された暗号化ビットストリームをＦＰＧＡ又はＲＯＭへ書き込む処理を行うための第２情報書込装置の処理手順を示すフローチャートである。この第２情報書込装置では、処理対象が暗号化ビットストリームに限られているため、情報書込処理を実行させる際には、処理対象であるデータの選択処理は行われない。
【０１０４】
図１１に示すフローチャートによれば、まず、第２情報書込装置にドングル３が装着されているか否かが判別される（＃３０）。そして、ドングル３が未装着である場合は（＃３０：ＮＯ）、ディスプレイ１Ｂに所定のエラーメッセージが表示され（＃３９）、処理を終了する。なお、このエラーメッセージは、例えばドングル３の未装着を報知する内容やドングル３の装着を促す内容である。
【０１０５】
ドングル３が装着されている場合（＃３０：ＹＥＳ）、復号化処理のライセンスの有効性が確認されるとともに（＃３１）、書込可能回数の情報が読み取られる（＃３２）。
続いて、書込可能回数ｎが０になっているか否かが判別され（＃３３）、ｎ＝０であれば（＃３３：ＹＥＳ）、ステップ＃３９に移行してディスプレイ１Ｂに所定のエラーメッセージが表示され、処理を終了する。なお、このエラーメッセージは、例えば書込可能回数が０になっている旨を報知する内容や書込可能回数の取得を促す内容である。
【０１０６】
一方、ステップ＃３３でｎ＝０でなければ（＃３３：ＮＯ）、更に復号化処理のライセンスが有効であるか否かが判別される（＃３４）。そして、復号化処理のライセンスが失効していれば（＃３４：ＮＯ）、ステップ＃３９に移行してディスプレイ１Ｂに所定のエラーメッセージが表示され、処理を終了する。なお、このエラーメッセージは、例えばライセンスが失効している旨を報知する内容やライセンスの取得を促す内容である。
【０１０７】
一方、復号化処理のライセンスが有効であれば（＃３４：ＹＥＳ）、内部メモリ１２若しくは外部記憶媒体２に保存されている所定のファイルから暗号化ビットストリームが読み込まれる（＃３５）。続いて、暗号化されたビットストリームが元のビットストリームに復号化された後（＃３６）、ＦＰＧＡ４１又はＲＯＭ４２への書込処理が行われる（＃３７）。続いて、ビットストリームの書込処理が終了すると、ビットストリームの書込みが正常に行われた否かが判別され（＃３８）、書込み異常があった場合は（＃３８：ＮＯ）、ステップ＃３９に移行してディスプレイ１Ｂに所定のエラーメッセージが表示され、処理を終了する。なお、このエラーメッセージは、例えばデータの書込み異常が生じた旨を報知する内容や再度書込処理を実行することを促す内容である。
【０１０８】
一方、ビットストリームの書込みが正常に行われた場合は（＃３８：ＹＥＳ）、ドングル３から読み出された書込可能回数の情報、すなわち、現在の残りの書込可能回数ｎ（積算値）から１だけ減算して新たな残りの書込可能回数ｎ’が算出され、その算出値ｎ’でドングル３のメモリ３１に記憶された書込可能回数ｎが書き換えられて（＃４０）、処理を終了する。
【０１０９】
なお、図１１に示すフローチャートでも、暗号化ビットストリームの復号化処理以降の処理を行うか否かの判断として、ライセンスと書込可能回数の両方の有効性を判断していたが、いずれか一方を判断するようにしてもよい。
【０１１０】
第１の実施形態に係る情報書込装置を、暗号化ビットストリームを生成する書込情報生成装置とこの情報書込装置で生成された暗号化ビットストリームをＦＰＧＡ４１又はＲＯＭ４２に書き込む第２情報書込装置とに分離した構成であっても、上述した第１の実施形態に係る情報書込装置と同様の効果を奏することができる。
【０１１１】
なお、上記説明では、書込情報生成装置をユーザ側のパーソナルコンピュータで構成する場合について説明したが、この書込情報生成装置は、図５に示すネットワークに接続された管理サーバ１４内に構築してもよく、ライセンス情報の管理はドングル３で行い、書込情報生成装置のみを管理サーバ１４で構成するようにしてもよい。
【０１１２】
この構成の場合は、管理サーバ１４によって機能制限付き配置配線データから暗号化ビットストリームが生成されることになる。すなわち、ユーザは、まず、管理サーバ１４に機能制限付き配置配線データとライセンス情報を送信する。管理サーバ１４では、機能制限付き配置配線データとライセンス情報を受信すると、ライセンス情報に基づいて暗号化ビットストリーム生成の可否判断を行い、暗号化ビットストリームの生成が可能であれば、暗号化ビットストリームを生成してユーザのパーソナルコンピュータに送信する。一方、暗号化ビットストリームの生成が不可であれば、その旨の情報をユーザのパーソナルコンピュータに送信する。
【０１１３】
ユーザのパーソナルコンピュータは暗号化ビットストリームを受信すると、そのデータを内部メモリ１２に保存し、暗号化ビットストリーム生成不可の情報を受信すると、その情報に相当するメッセージをディスプレイ１Ｂに表示する。暗号化ビットストリームを入手してからの当該暗号化ビットストリームをＦＰＧＡ４１又はＲＯＭ４２へ書き込む処理は、上述した図１０に示す第２情報書込装置を用いて行われる。
【０１１４】
管理サーバ１４で書込情報生成装置を構築したものでは、ＩＰベンダー側でユーザのＩＰネットリストの不正使用や不正コピーをより確実に防止することができる利点がある。
【０１１５】
なお、上記実施形態では、ＣＤ−ＲＯＭなど外部記録媒体２にＦＰＧＡ書込専用プログラムを記録し、その外部記録媒体２とプログラムを保護するドングル３とをユーザのパーソナルコンピュータ１に適用することにより当該パーソナルコンピュータ１を情報書込装置、第２情報書込装置、書込情報生成装置とする例を説明したが、ＦＰＧＡ書込専用プログラムを管理サーバ１４からネットワークＮＷを介してユーザのパーソナルコンピュータ１に提供することにより、図５に示す構成の情報書込装置１や図８に示す書込情報生成装置及び図１０に示す第２情報書込装置を構築するようにしてもよい。また、専用の情報書込装置１や専用の書込情報生成装置及び第２情報書込装置を製作し、ＩＰベンダーからユーザに提供するようにしてもよい。
【産業上の利用可能性】
【０１１６】
上述のように、本発明に係る情報書込装置、書込情報生成装置及び第２情報書込装置は、ＩＰベンダーがＩＰコアを販売するツールとして利用することにより、従来のＩＰコアの提供方法におけるＩＰコアの使用回数の管理ができない、不正使用、不正コピーなどの種々の問題を解消することが可能となる。
【図面の簡単な説明】
【０１１７】
【図１】コンピュータを用いて本発明に係る情報書込装置を構成した例を示す図である。
【図２】本発明に係るプログラムが記憶された外部記憶媒体とドングルとを用いたＩＰコアの提供方法を示すフローチャートである。
【図３】本発明に係る情報書込装置の内部構成を機能ブロックで表した図である。
【図４】本発明に係る情報書込装置の情報書込処理の手順を示すフローチャートである。
【図５】本発明に係る情報書込装置の第２の実施形態の構成を示す図である。
【図６】本発明に係る情報書込装置の第３の実施形態の構成を示す図である。
【図７】第３の実施形態に係る情報書込装置の情報書込処理の手順を示すフローチャートである。
【図８】本発明に係る書込情報生成装置の構成を示す図である。
【図９】本発明に係る書込情報生成装置の暗号化ビットストリームの生成処理の手順を示すフローチャートである。
【図１０】書込情報生成装置で生成された暗号化ビットストリームをＦＰＧＡ又はＲＯＭへ書き込む処理を行う第２情報書込装置の構成を示す図である。
【図１１】書込情報生成装置で生成された暗号化ビットストリームをＦＰＧＡ又はＲＯＭへ書き込む処理を行う第２情報書込装置の処理手順を示すフローチャートである。
【図１２】ＦＰＧＡの内部構造の一例を示す図である。
【図１３】ＩＰベンダーからＩＰコアを購入してＦＰＧＡに組み込む手順の第１の実施形態を示すフローチャートである。
【図１４】ＩＰベンダーからＩＰコアを購入してＦＰＧＡに組み込む手順の第２の実施形態を示すフローチャートである。
【図１５】第２の実施形態に係るＩＰコアの購入方法によりＦＰＧＡを開発、設計する手順を示すブロック図である。
【符号の説明】
【０１１８】
１  パーソナルコンピュータ（情報書込装置，書込情報生成装置）
１Ａ  コンピュータ本体
１Ｂ  ディスプレイ
２  外部記憶媒体
３  ドングル（ハードウェアキー）
３１  メモリ
４  基板
４１  ＦＰＧＡ
４２  ＲＯＭ（記憶デバイス）
５  専用ケーブル
６  制限解除処理部（機能制限解除手段）
７  ビットストリーム生成部（情報生成手段）
８  暗号化処理部（暗号化手段）
９  復号化処理部（復号化手段）
１０  書込処理部（情報書込手段）
１１，１１’，１１”  制御部（判別手段，書込可能回数演算手段，禁止手段，書込可能回数書換手段，書込可能回数送信手段）
１２  内部メモリ（記憶手段）
１３  通信制御部
１４  管理サーバ
【図１】
2005107911.tif 000003
【図２】
2005107911.tif 000004
【図３】
2005107911.tif 000005
【図４】
2005107911.tif 000006
【図５】
2005107911.tif 000007
【図６】
2005107911.tif 000008
【図７】
2005107911.tif 000009
【図８】
2005107911.tif 000010
【図９】
2005107911.tif 000011
【図１０】
2005107911.tif 000012
【図１１】
2005107911.tif 000013
【図１２】
2005107911.tif 000014
【図１３】
2005107911.tif 000015
【図１４】
2005107911.tif 000016
【図１５】
2005107911.tif 000017