JP2005107911A - 書込情報生成用プログラム、ハードウェアへの情報書込用プログラム、これらのプログラムを記録したコンピュータ読み取り可能な記録媒体、書込情報生成装置及び情報書込装置 - Google Patents

書込情報生成用プログラム、ハードウェアへの情報書込用プログラム、これらのプログラムを記録したコンピュータ読み取り可能な記録媒体、書込情報生成装置及び情報書込装置 Download PDF

Info

Publication number
JP2005107911A
JP2005107911A JP2003340828A JP2003340828A JP2005107911A JP 2005107911 A JP2005107911 A JP 2005107911A JP 2003340828 A JP2003340828 A JP 2003340828A JP 2003340828 A JP2003340828 A JP 2003340828A JP 2005107911 A JP2005107911 A JP 2005107911A
Authority
JP
Japan
Prior art keywords
information
writing
writable
function restriction
hardware
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2003340828A
Other languages
English (en)
Other versions
JP2005107911A5 (ja
Inventor
Takeshi Inoue
剛士 井上
Hiroshi Matoba
弘 的場
Ryohei Tanaka
良平 田中
Toyokazu Kitano
豊和 北野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Daihen Corp
Original Assignee
Daihen Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Daihen Corp filed Critical Daihen Corp
Priority to JP2003340828A priority Critical patent/JP2005107911A/ja
Priority to US10/966,173 priority patent/US20050069128A1/en
Publication of JP2005107911A publication Critical patent/JP2005107911A/ja
Publication of JP2005107911A5 publication Critical patent/JP2005107911A5/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/34User authentication involving the use of external additional devices, e.g. dongles or smart cards
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/56Financial cryptography, e.g. electronic payment or e-cash

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Technology Law (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Logic Circuits (AREA)
  • Slot Machines And Peripheral Devices (AREA)

Abstract

【課題】 IPベンダーが提供したFPGA向けIPコアの使用回数が確実に管理できるようにする。
【解決手段】 情報書込装置は機能制限付きネットリストによって作成された配置配線データのFPGA又はFPGAへ書き込む配置配線データを記憶するための記憶デバイス(ROM)への書込処理を行なう。このとき、制限解除処理部6により機能制限付き配置配線データの機能制限を行なうとともに、ビットストリーム生成部7で配置配線データから生成されたビットストリームは暗号化処理部8で一旦暗号化された後、復号化処理部9で復号化されて書込処理部10でFPGA又はROMに書き込まれる。ドングル3に契約内容である書込可能回数が記憶されている。FPGA又はROMへの書込みが行われる毎にその書込可能回数から残りの書込可能回数が演算され、その残りの書込可能回数がゼロになると、機能制限解除及び復号化の処理は禁止され、これによりIPネットリストのFPGA又はROMへの書込みはできなくなる。
【選択図】 図3

Description

本発明は、FPGA(Field Programmable Gate Array)の内部回路の配置配線に関するデータから当該FPGAに書き込むことのできるデータを生成するための書込情報生成装置、そのデータをFPGA又はFPGAに書き込むデータを記憶するためのROMに書き込む情報書込装置、コンピュータを書込情報生成装置及び情報書込装置として機能させるためのプログラム並びにそのプログラムをコンピュータ読み取り可能に記録した記録媒体に関するものである。
近年、電子回路においては、小型化、低価格化、低消費電力化などの観点から、デジタル信号の処理回路にPLD(Programmable Logic Device)やFPGAなどの再構成可能(Re-Configurable)なハードウェアが利用されている。
例えばFPGAは、図12に示すように、格子状に配線された複数のローカルライン(Local Line)100と、これらのローカルライン100で囲まれた領域に設けられ、当該ローカルライン100に接続された複数のCLB(Configurable Logic Block)101と、ローカルライン100の交差位置に配置され、縦横のローカルライン間の接続関係を決定するための複数のSM(Switch Matrix)102とで構成され、各SM102の接続関係を決定することによりCLB101 内の論理セルを相互に接続して所定の機能を果す回路素子(ハードウェア)が実現可能になっている。
FPGAは、それを構成するハードウェアとしての各素子(ゲートやスイッチ等)は汎用的なものであり、各素子の配置や配線関係を決定することにより機能及びその動作が確定するものであるから、各素子の配置や配線関係を決定するためのソフトウェア(回路の配置・配線を記載したデータ)が必要である。このソフトウェアはIP(Intellectual Property)若しくはIPコアと呼ばれている。
FPGAに組み込むべきIPコアは、FPGAを使用するユーザ自身が作成できるが、通信処理、画像処理、演算処理などの各種処理の機能に応じたIPコアが市販されており、ユーザ側では、低コスト化や設計負担の軽減化などの観点から一部の機能についてはIPコアの供給者(以下、IPベンダーという。)からIPコアを購入し、自作のIPコアと組み合わせてFAGAに組み込むことが行われている。
図13は、IPベンダーからIPコアを購入してFPGAに組み込む手順の第1の実施形態を示すフローチャートである。
まず、ユーザはIPベンダーとの間で、NDA(Non-Disclosure Agreement 非開示合意)に署名することにより所望のIPコアの評価目的のための利用契約を締結し、IPベンダーからIPコアに関する詳細な資料とシミュレーションモデルの無償提供を受ける(S1)。シミュレーションモデルとは、FPGAの動作を信号波形によって確認するためのソフトウェアで、ユーザはコンピュータで専用のシミュレータソフトを用いて当該モデルのソフトウェアを実行させることにより仮想的にFPGAの動作や機能を確認することができる。
従って、ユーザは、利用契約後にシミュレーションモデルにより購入しようとしているIPコアの機能評価を行い(S2)、購入するか否かの判断をする(S3)。そして、購入しない場合は(S3:NO)、購入手続きは終了し、購入する場合は(S3:YES)、IPベンダーとライセンス契約を行う(S4)。このライセンス契約は、IPコアを使用する権利を購入するもので、具体的にはどのような製品に対してIPコアを使用する権利が存在するのかということを内容とする契約である。例えば通信モジュールに関するIPコアの場合、特定のテレビに搭載されるFPGAに対してIPコアを使用する権利を購入する契約である。IPコアはソフトウェアであるから、実体のある物として占有できないため、IPコアの使用する権利を特定して契約することにより販売契約としているものである。
ユーザとIPベンダーとの間でライセンス契約が行われると、IPベンダーはユーザにIPコアのネットリストを提供する。ネットリストとは、FPGA内の回路の接続状態を記述したデータで、一般にEDIF(Electronic Design Interchange Format)の標準フォーマットによって記述されているものである。このネットリストから専用のツール(ソフトウェア)を用いてFPGAにダウンロード可能なデータを生成し、そのデータを当該FPGAにローディングすることによりFPGAは所定の機能部品として動作することになる。例えば上述の例では、FPGAが通信モジュールの機能部品となる。
ネットリストをFPGAにダウンロードするための専用ツールは当該FPGAの販売者から提供されているので、ユーザはIPベンダーからネットリストの提供を受けると、専用ツールを用いてそのネットリストをFPGAにダウンロードし、実際の部品で機能や動作を確認した後(S5)、ライセンス契約に従って実際の製品に使用されるFPGAにIPコアを搭載する(S6)。この場合、ライセンス契約ではIPコアを使用する製品の種類は制限されているが、契約されている製品でのIPコアの使用回数の制限は設けられていないので、当該製品の生産台数に関係なくIPコアを使用することができる(S7:NO)。しかし、契約されていない製品にもIPコアを使用したい場合は(S7:YES)、ステップS4に戻り、IPベンダーに再度、他の製品についてライセンス契約を締結することになる。例えば上述の例では、テレビについてライセンス契約をした場合、当該テレビについては生産台数に関係なくIPコアを使用することができるが、ラジオについても使用したい場合は再度ライセンス契約が必要になる。
図14は、IPベンダーからIPコアを購入してFPGAに組み込む手順の第2の実施形態を示すフローチャートである。
第1の実施形態では、ユーザは利用契約時にIPベンダーからシミュレーションモデルを提供され、このシミュレーションモデルによりパソコン上で仮想的に機能や動作を確認するようにしていたが、第2の実施形態は、ユーザは利用契約時にIPベンダーから一部の機能が制限されたIPコア(以下、機能制限付IPコアという。)を提供され、その機能制限付IPコアをFPGAに実際に搭載して実部品上で機能や動作が確認できる点(S1’,S2’参照)と、ライセンス契約時に既に提供している機能制限付IPコアに代えて機能制限のないIPコア(正規のIPコア)が提供される点(S5’参照)が異なっている。ライセンス契約時には使用する製品毎にライセンス契約が締結される点は第2の実施形態においても変わりはない。
図15は、第2の実施形態に係るIPコアの購入方法によりFPGAを開発、設計する手順を示すブロック図である。
同図において、上段はIPベンダー側から提供される対象物、中段はユーザ側で実行される内容、下段はユーザ側で管理される対象物を示している。
ユーザは、FPGA内の回路構成をハードウェア記述原語(HDL(Hardware Description Language))を用いて設計し(HDL設計ブロック)、その設計データを専用ツール(ソフトウェア)を用いてコンピュータによりネットリストに変換する(論理合成ブロック)。ここで作成されるネットリストは、FPGAの機能の一部を自作したものである。残りの機能についてのネットリストはIPベンダーから購入される。従って、ユーザは、IPベンダーと利用契約を締結して当該IPベンダーから機能制限付きのネットリストを入手し、このネットリストと自作したネットリストを専用ツール(ソフトウェア)を用いてコンピュータによりFPGA内の回路の配置配線に関するデータ(以下、配置配線データという。)に変換する(配置配線ブロック)。この配置配線データは、FPGA内の各スイッチ・マトリックスの接続関係を指定するデータである。
配置配線データが作成されると、更に専用ツールを用いてコンピュータによりFPGAにダウンロード可能なビットストリームが作成され(ビットストリーム生成ブロック)、このビットストリームをFPGAにダウンードすることにより当該FPGAは一部の機能は制限されているが、設計された機能を果たすデジタル回路部品となる。従って、ユーザはこのFPGAを実際に動作させてその機能が設計通りに動作するか否かを確認することができる。そして、この実機による動作確認によりIPベンダーの提供するIPコアを採用する場合は、ユーザは上述したようにIPベンダーとライセンス契約をし、この契約により実質的にIPコアを購入することになる。
なお、上記実施形態では、ライセンス契約の際にIPコアの使用回数に関係なく製品の種類毎にIPコアの使用料金を一括して支払う契約の場合について説明したが、製品の種類に関係なくIPコアの使用回数に応じて使用料金を支払う契約をすることも可能である。また、上記実施形態では、ライセンス契約時に機能制限付IPコアに代えて正規のIPを提供するようにしていたが、ユーザから機能制限付IPコアを用いて設計されたネットリストをIPベンダーに渡し、IPベンダー側でビットストリームを生成し、そのビットストリームをユーザに提供することも可能である。
VHDLによるマイクロプロセッサ設計入門(CQ出版株式会社 2002年7月1日発行) Design Wave MAGAZIN(CQ出版株式会社 2002年1月号) Design Wave MAGAZIN(CQ出版株式会社 2002年9月号)
ところで、IPコアはソフトウェアであるから、同一のIPコアを複数のFPGA又はこのFPGAに書き込むデータを記憶するためのROMにダウロードすることができる。従って、1つのIPコアを複数のFPGA又はFPGAに書き込むデータを記憶するためのROMにダウンロードして機能部品を製造すれば、その製造個数に応じて部品単価が際限なく低減できることになる。IPコアを提供するIPベンダーの立場からすれば、ユーザのIPコアの利用状況によってIPコアの提供価格が変動することは好ましくない。
従って、従来は、上述のように、IPベンダーはユーザとの間でライセンス契約を締結し、ユーザがそのライセンス契約を誠実に遵守することを前提にIPコアの使用料金を設定するようにしていた。しかしながら、従来のIPコアの使用回数に関係なく一製品毎に一括して使用料金を支払う方法(以下、料金一括支払方法という。)では、IPベンダーはIPコアの提供後にユーザの不正使用を監視することができないため、その保障料を含めて使用料金を高めに設定することが多く、概してライセンス契約料が高額になる傾向があった。
FPGAは、その設計の自由度や用途の汎用性から見れば、少量多品種の製品にも有意義な部品であるから、そのような製品に使用したいユーザからすれば、上述の料金一括支払方法によるライセンス契約は、部品単価が高くなりすぎて容易には利用し難いものとなる。従って、このようなユーザは、製品の種類に関係なくIPコアの使用個数に応じて使用料金を支払う方法(以下、個別料金支払方法という。)を希望することになるが、IPベンダーは料金一括支払方法を採用することが多く、必ずしもユーザの希望に沿うライセンス契約を容易に締結し得る状況にあるとはいえなかった。
上記のように現在のIPコアを提供する社会環境においては、ユーザとIPベンダーとの間に利害の溝があり、両者においてコストメリットを出し難く、IPコアの有効活用を図ることができないという問題がある。
このような問題の背景は、IPコアのネットリストをビットストリームに変換する専用ツールがFPGA提供者から市場に提供されており、何人もIPコアを入手すれば、簡単にIPコアをFPGAに搭載できるという状況があるため、IPベンダーはユーザとの間で利用契約やライセンス契約といった契約書だけでのソフトウェアの提供を余儀なくされているからであると考えられる。
IPベンダーの立場からすれば、ユーザがIPコアをFPGA又はFPGAに書き込むデータを記憶するためのROMにダウンロードする回数を正確に把握できるのであれば、IPコアをFPGA又はFPGAに書き込むデータを記憶するためのROMに1回ダウンロードするための適正な料金(1回当たりの使用単価)を設定し、その使用単価で販売した方が商品価格の適正化や販路拡大の容易化を図ることができるメリットが得られる。しかし、契約書だけでの販売では、全てのユーザが契約内容を遵守するとは限らず、例えば料金一括支払方法の契約で契約外の製品にもIPコアが不正に使用されたり、不正にコピーされた場合には、IPコアの販売価格が不当に下落することになるから、その分の保障料を一括料金に含めざるを得ず、この結果IPコアのライセンス契約料も高くならざるを得ないものとなる。
一方、ユーザの立場からすれば、IPベンダーから適切な使用単価で種々のIPコアが提供されるのであれば、少量多品種の製品にも容易にIPコアを利用することができ、設計負担や部品コストなどの製品に関係する全体的な経済性を向上させるメリットが得られる。しかし、比較的高額でしかも料金一括支払方法のライセンス契約でしかIPベンダーからIPコアの提供を受けられないとすれば、一部のユーザが実質的に監視力や拘束力のないライセンス契約を遵守せず、可及的にコストメリットを引き出そうとすることは自然の理と言える。
従って、IPコアの供給環境において、ユーザがIPコアをFPGA又はFPGAに書き込むデータを記憶するためのROMにダウンロードする回数を正確に把握できるツールが用意され、このツールによりユーザが契約を物理的に遵守せざるをえず、しかもその遵守状況をIPベンダーが把握することができれば、ユーザとIPベンダーの利害の溝を埋め、上記問題を解決してIPコアの普及及び拡大を可能とすることができるが、未だそのようなツールは提案されておらず、実用化もなされていない。
本発明は、上記課題に鑑みてなされたもので、許可された回数の範囲内でFPGAの内部回路の配置配線に関するデータから当該FPGAに書き込むことのできるデータを生成することができる書込情報生成装置、この書込情報生成装置で生成された書込用データをFPGA又はFPGAへの書込用データを記憶するためのROMに書き込む情報書込装置、許可された回数の範囲内でFPGAの内部回路の配置配線に関するデータから上記書込用データを生成し、FPGAに書き込む情報書込装置、コンピュータを上記書込情報生成装置や情報書込装置として機能させるためのプログラム及びそのプログラムを記録したコンピュータ読み取り可能な記録媒体を提供するものである。
本発明は、所定の機能を実現させるべく内部回路の再構成が可能なハードウェアに書き込まれる内部回路の論理情報を生成する書込情報生成装置であって、上記機能の一部が制限された状態で作成された内部回路の配置配線に関する情報を入力する第1の情報入力手段と、上記第1の情報入力手段によって入力される上記内部回路の配置配線に関する情報の機能制限を解除する機能制限解除手段と、上記機能制限解除手段により機能制限が解除された上記内部回路の配置配線に関する情報から上記ハードウェアへの書き込みが可能な書込用情報を生成する情報生成手段と、上記情報生成手段により生成された上記書込用情報の暗号化を行う暗号化手段と、上記暗号化手段により暗号化された上記書込用情報を記憶する記憶手段と、上記機能制限の解除処理の許否に関する情報を入力する第2の情報入力手段と、上記第2の情報入力手段によって入力された許否情報に基づいて上記機能制限解除手段による機能制限の解除処理の可否を判別する判別手段と、上記判別手段により解除処理の不可が判別されると、上記機能制限解除手段による機能制限の解除処理を禁止する禁止手段とを備えたものである(請求項1)。
なお、上記第2の情報入力手段から入力される許否情報は、当該第2の情報入力手段に外部接続されるハードウェアキーに読み書き可能に記憶され、当該ハードウェアキーから上記第2の情報入力手段を介して入力されるようにするとよい(請求項2)。また、上記第2の情報入力手段から入力される許否情報は、当該第2の情報入力手段に通信可能に接続されるネットワーク上に設けられる管理サーバに記憶され、通信によって当該管理サーバから上記第2の情報入力手段を介して入力されるようにしてもよい(請求項3)。
また、本発明は、請求項1〜3のいずれかに記載の書込情報生成装置で生成されたハードウェアへの書き込みが可能な書込用情報を内部回路の再構成が可能なハードウェア又はこのハードウェアへの書込用情報を記憶するための記憶デバイスに書き込む情報書込装置であって、暗号化された上記書込用情報を入力する第1の情報入力手段と、上記第1の情報入力手段からの暗号化された上記書込用情報を復号化する復号化手段と、上記復号化手段により復号化された上記書込用情報を上記ハードウェア又は上記記憶デバイスに書き込む情報書込手段と、上記復号化手段による復号化処理の許否に関する情報と上記情報書込手段による上記書込用情報の上記ハードウェア又は上記記憶デバイスへの書込可能な回数の情報とを入力する第2の情報入力手段と、上記情報書込手段により書込用情報の書込動作が行われる毎に上記第2の情報入力手段から入力される書込可能な回数を用いて残りの書込可能な回数を演算する書込可能回数演算手段と、上記第2の情報入力手段によって入力された許否情報と上記書込可能回数演算手段により演算された残りの書込可能な回数とに基づいて上記復号化手段による復号化処理の可否を判別する判別手段と、上記判別手段により書込処理の不可が判別されると、上記復号化手段による復号化処理を禁止する禁止手段とを備えたものである(請求項4)。
なお、上記情報書込装置において、上記第2の情報入力手段から入力される許否情報と書込可能回数の情報は、当該第2の情報入力手段に外部接続されるハードウェアキーに読み書き可能に記憶され、このハードウェアキーに記憶された書込可能な回数を上記書込可能回数演算手段によって演算された書込可能な回数で書き換える書込可能回数書換手段を更に備えるとよい(請求項5)。また、上記第2の情報入力手段から入力される許否情報と書込可能回数の情報は、当該第2の情報入力手段に通信可能に接続されるネットワーク上に設けられる管理サーバに記憶され、この管理サーバに記憶された書込可能な回数を上記書込可能回数演算手段によって演算された書込可能な回数で書き換えるべく当該書込可能な回数を上記管理サーバに送信する書込可能回数送信手段を更に備えるとよい(請求項6)。
また、本発明は、内部回路の再構成が可能なハードウェアに所定の機能を実現させるための内部回路の論理情報を書き込む情報書込装置であって、上記機能の一部が制限された状態で作成された内部回路の配置配線に関する情報を入力する第1の情報入力手段と、上記第1の情報入力手段によって入力される上記内部回路の配置配線に関する情報の機能制限を解除する機能制限解除手段と、上記機能制限解除手段により機能制限が解除された上記内部回路の配置配線に関する情報から上記ハードウェアへの書き込みが可能な書込用情報を生成する情報生成手段と、上記情報生成手段で生成された書込用情報を上記ハードウェア又は上記ハードウェアへの書込用情報を記憶するための記憶デバイスに書き込む情報書込手段と、上記機能制限の解除処理の許否に関する情報と上記情報書込手段による上記書込用情報の上記ハードウェア又は上記記憶デバイスへの書込可能な回数の情報とを入力する第2の情報入力手段と、上記情報書込手段により書込用情報の書込動作が行われる毎に上記第2の情報入力手段から入力される書込可能な回数を用いて残りの書込可能な回数を演算する書込可能回数演算手段と、上記第2の情報入力手段によって入力された情報と上記書込可能回数演算手段により演算された残りの書込可能な回数とに基づいて上記機能制限解除手段による機能制限の解除処理の可否を判別する判別手段と、上記判別手段により解除処理の不可が判別されると、上記機能制限解除手段の機能制限の解除処理を禁止する禁止手段とを備えたものである(請求項7)。
また、本発明は、内部回路の再構成が可能なハードウェアに所定の機能を実現させるための内部回路の論理情報を書き込む情報書込装置であって、上記機能の一部が制限された状態で作成された内部回路の配置配線に関する情報を入力する第1の情報入力手段と、上記第1の情報入力手段によって入力される上記内部回路の配置配線に関する情報の機能制限を解除する機能制限解除手段と、上記機能制限解除手段により機能制限が解除された上記内部回路の配置配線に関する情報から上記ハードウェアへの書き込みが可能な書込用情報を生成する情報生成手段と、上記情報生成手段で生成された上記書込用情報の暗号化を行う暗号化手段と、上記暗号化手段により暗号化された上記書込用情報を記憶する記憶手段と、上記暗号化手段により暗号化された上記書込用情報の復号化を行う復号化手段と、上記復号化手段により復号化された上記書込用情報を上記ハードウェア又は上記ハードウェアへの書込用情報を記憶するための記憶デバイスに書き込む情報書込手段と、上記機能制限解除手段による機能制限の解除処理と上記復号化手段による復号化処理の許否に関する情報と上記情報書込手段による上記書込用情報の上記ハードウェア又は上記記憶デバイスへの書込可能な回数の情報とを入力する第2の情報入力手段と、上記情報書込手段により書込用情報の書込動作が行われる毎に上記第2の情報入力手段から入力される書込可能な回数を用いて残りの書込可能な回数を演算する書込可能回数演算手段と、上記第2の情報入力手段によって入力された許否情報と上記書込可能回数演算手段により演算された残りの書込可能な回数とに基づいて上記機能制限解除手段による機能制限の解除処理と上記復号化手段による復号化処理の可否を判別する判別手段と、上記判別手段により解除処理および復号化処理の不可が判別されると、上記機能制限解除手段の機能制限の解除処理と上記復号化手段の復号化処理を禁止する禁止手段とを備えたものである(請求項8)。
なお、上記第2の情報入力手段から入力される許否情報と書込可能回数の情報は、当該第2の情報入力手段に外部接続されるハードウェアキーに読み書き可能に記憶され、このハードウェアキーに記憶された書込可能な回数を上記書込可能回数演算手段によって演算された書込可能な回数で書き換える書込可能回数書換手段を更に備えるとよい(請求項9)。
また、上記情報書込装置において、上記第2の情報入力手段から入力される許否情報と書込可能回数の情報は、当該第2の情報入力手段に通信可能に接続されるネットワーク上に設けられる管理サーバに記憶され、この管理サーバに記憶された書込可能な回数を上記書込可能回数演算手段によって演算された書込可能な回数で書き換えるべく当該書込可能な回数を上記管理サーバに送信する書込可能回数送信手段を更に備えるとよい(請求項10)。
また、本発明は、コンピュータを、所定の機能を実現させるべく内部回路の再構成が可能なハードウェアに書き込まれる内部回路の論理情報を生成する書込情報生成装置として機能させるためのプログラムであって、上記コンピュータを、上記機能の一部が制限された状態で作成された内部回路の配置配線に関する情報を入力する第1の情報入力手段と、上記第1の情報入力手段によって入力される上記内部回路の配置配線に関する情報の機能制限を解除する機能制限解除手段と、上記機能制限解除手段により機能制限が解除された上記内部回路の配置配線に関する情報から上記ハードウェアへの書き込みが可能な書込用情報を生成する情報生成手段と、上記情報生成手段により生成された上記書込用情報の暗号化を行う暗号化手段と、上記暗号化手段により暗号化された上記書込用情報を記憶する記憶手段と、上記機能制限の解除処理の許否に関する情報を入力する第2の情報入力手段と、上記第2の情報入力手段によって入力された許否情報に基づいて上記機能制限解除手段による機能制限の解除処理の可否を判別する判別手段と、上記判別手段により解除処理の不可が判別されると、上記機能制限解除手段による機能制限の解除処理を禁止する禁止手段として機能させるためのプログラムである(請求項11)。
また、本発明は、コンピュータを、請求項1〜3のいずれかに記載の書込情報生成装置で生成されたハードウェアに書込可能な情報を内部回路の再構成が可能なハードウェア又はこのハードウェアへの書込用情報を記憶するための記憶デバイスに書き込む情報書込装置として機能させるためのプログラムであって、上記コンピュータを、暗号化された上記書込用情報を入力する第1の情報入力手段と、上記第1の情報入力手段からの暗号化された上記書込用情報を復号化する復号化手段と、上記復号化手段により復号化された上記書込用情報を上記ハードウェア又は上記記憶デバイスに書き込む情報書込手段と、上記復号化手段による復号化処理の許否に関する情報と上記情報書込手段による上記書込用情報の上記ハードウェア又は上記記憶デバイスへの書込可能な回数の情報とを入力する第2の情報入力手段と、上記情報書込手段により書込用情報の書込動作が行われる毎に上記第2の情報入力手段から入力される書込可能な回数を用いて残りの書込可能な回数を演算する書込可能回数演算手段と、上記第2の情報入力手段によって入力された許否情報と上記書込可能回数演算手段により演算された残りの書込可能な回数とに基づいて上記復号化手段による復号化処理の可否を判別する判別手段と、上記判別手段により書込処理の不可が判別されると、上記復号化手段による復号化処理を禁止する禁止手段として機能させるためのプログラムである(請求項12)。
なお、上記プログラムにおいて、上記コンピュータを、更に上記第2の情報入力手段に外部接続され、上記許否情報と書込可能回数とが記憶されたハードウェアキーに、当該ハードウェアキーに記憶された書込可能な回数を上記書込可能回数演算手段によって演算された書込可能な回数で書き換える書込可能回数書換手段として機能させるとよい(請求項13)。また、上記コンピュータを、更に上記第2の情報入力手段に通信可能に接続されるネットワーク上に設けられ、上記許否情報と書込可能回数の情報とが記憶された管理サーバに、当該管理サーバに記憶された書込可能な回数を上記書込可能回数演算手段によって演算された書込可能な回数で書き換えるべく当該書込可能な回数を上記管理サーバに送信する書込可能回数送信手段として機能させるとよい(請求項14)。
また、本発明は、コンピュータを、内部回路の再構成が可能なハードウェアに所定の機能を実現させるための内部回路の論理情報を書き込む情報書込装置として機能させるためのプログラムであって、上記コンピュータを、上記機能の一部が制限された状態で作成された内部回路の配置配線に関する情報を入力する第1の情報入力手段と、上記第1の情報入力手段によって入力される上記内部回路の配置配線に関する情報の機能制限を解除する機能制限解除手段と、上記機能制限解除手段により機能制限が解除された上記内部回路の配置配線に関する情報から上記ハードウェアへの書き込みが可能な書込用情報を生成する情報生成手段と、上記情報生成手段で生成された書込用情報を上記ハードウェア又は上記ハードウェアへの書込用情報を記憶するための記憶デバイスに書き込む情報書込手段と、上記機能制限の解除処理の許否に関する情報と上記情報書込手段による上記書込用情報の上記ハードウェア又は上記記憶デバイスへの書込可能な回数の情報とを入力する第2の情報入力手段と、上記情報書込手段により書込用情報の書込動作が行われる毎に上記第2の情報入力手段から入力される書込可能な回数を用いて残りの書込可能な回数を演算する書込可能回数演算手段と、上記第2の情報入力手段によって入力された情報と上記書込可能回数演算手段により演算された残りの書込可能な回数とに基づいて上記機能制限解除手段による機能制限の解除処理の可否を判別する判別手段と、上記判別手段により解除処理の不可が判別されると、上記機能制限解除手段の機能制限の解除処理を禁止する禁止手段として機能させるためのプログラムである(請求項15)。
また、本発明は、コンピュータを、内部回路の再構成が可能なハードウェアに所定の機能を実現させるための内部回路の論理情報を書き込む情報書込装置として機能させるためのプログラムであって、上記コンピュータを、上記機能の一部が制限された状態で作成された内部回路の配置配線に関する情報を入力する第1の情報入力手段と、上記第1の情報入力手段によって入力される上記内部回路の配置配線に関する情報の機能制限を解除する機能制限解除手段と、上記機能制限解除手段により機能制限が解除された上記内部回路の配置配線に関する情報から上記ハードウェアへの書き込みが可能な書込用情報を生成する情報生成手段と、上記情報生成手段で生成された上記書込用情報の暗号化を行う暗号化手段と、上記暗号化手段により暗号化された上記書込用情報を記憶する記憶手段と、上記暗号化手段により暗号化された上記書込用情報の復号化を行う復号化手段と、上記復号化手段により復号化された上記書込用情報を上記ハードウェア又は上記ハードウェアへの書込用情報を記憶するための記憶デバイスに書き込む情報書込手段と、上記機能制限解除手段による機能制限の解除処理と上記復号化手段による復号化処理の許否に関する情報と上記情報書込手段による上記書込用情報の上記ハードウェア又は上記記憶デバイスへの書込可能な回数の情報とを入力する第2の情報入力手段と、上記情報書込手段により書込用情報の書込動作が行われる毎に上記第2の情報入力手段から入力される書込可能な回数を用いて残りの書込可能な回数を演算する書込可能回数演算手段と、上記第2の情報入力手段によって入力された許否情報と上記書込可能回数演算手段により演算された残りの書込可能な回数とに基づいて上記機能制限解除手段による機能制限の解除処理と上記復号化手段による復号化処理の可否を判別する判別手段と、上記判別手段により解除処理および復号化処理の不可が判別されると、上記機能制限解除手段の機能制限の解除処理と上記復号化手段の復号化処理を禁止する禁止手段として機能させるためのプログラムである(請求項16)。
なお、上記プログラムにおいて、上記コンピュータを、更に上記第2の情報入力手段に外部接続され、上記許否情報と書込可能回数の情報とが記憶されたハードウェアキーに、当該ハードウェアキーに記憶された書込可能な回数を上記書込可能回数演算手段によって演算された書込可能な回数で書き換える書込可能回数書換手段として機能させるとよい(請求項17)。
また、上記プログラムにおいて、上記コンピュータを、更に上記第2の情報入力手段に通信可能に接続されるネットワーク上に設けられ、上記許否情報と書込可能回数の情報とが記憶された管理サーバに、当該管理サーバに記憶された書込可能な回数を上記書込可能回数演算手段によって演算された書込可能な回数で書き換えるべく当該書込可能な回数を上記管理サーバに送信する書込可能回数送信手段として機能させるようにしてもよい(請求項18)。
また、本発明は、上記プログラムを記録したコンピュータ読み取り可能な記録媒体である(請求項19)。
請求項1〜3に記載の書込情報生成装置によれば、外部接続されたハードウェアキーから入力される許否情報もしくはネットワークを介して通信可能接続される管理サーバから入力される許否情報に基づいて内部回路の配置配線に関する情報の再構成可能なハードウェアへの書き込みの可否が判断され、書込不許可により書込不可が判別されると、機能の一部が制限された状態で作成された内部回路の配置配線に関する情報が入力されてもこの情報の機能制限解除処理は禁止される。従って、内部回路の配置配線に関する情報をハードウェアに書き込むことはできない。
一方、内部回路の配置配線に関する情報のハードウェアへの書込可が判断されると、機能の一部が制限された状態で作成された内部回路の配置配線に関する情報の機能制限が解除された後、ハードウェアに書込可能な情報が生成され、その情報は暗号化されて記憶手段に記憶される。
請求項4〜6に記載の情報書込装置によれば、外部接続されたハードウェアキーから入力される許否情報と書込可能回数の情報もしくはネットワークを介して通信可能接続される管理サーバから入力される許否情報と書込可能回数の情報に基づいて請求項1〜3に記載の書込情報生成装置によって生成された暗号化情報の再構成可能なハードウェア又はこのハードウェアへの書込用情報を記憶する記憶デバイスへの書き込みの可否が判断され、書込不許可若しくは既に書き込まれた回数(積算値)が書込可能回数を越えているなどにより書込不可が判別されると、暗号化情報が入力されてもこの暗号化情報の復号化処理は禁止される。従って、内部回路の配置配線に関する情報をハードウェア又は記憶デバイスに書き込むことはできない。
一方、暗号化情報のハードウェア又は記憶デバイスへの書込可が判断されると、暗号化情報が復号化された後、ハードウェア又は記憶デバイスに書き込まれる。また、このハードウェア又は記憶デバイスへの情報の書込処理が行われる毎にハードウェアキー若しくは管理サーバから入力される書込可能な回数を用いて残りの書込可能な回数が演算され、ハードウェアキー若しくは管理サーバに記憶された書込可能な回数はこの演算値で置き換えられる。
従って、本発明に係る書込情報生成装置及び情報書込装置をIPベンダーがIPコアを提供する際に使用すれば、ユーザとの間でIPコアの使用回数をFPGA又は記憶デバイスヘのIPコアの書込可能回数として契約し、その契約内容の情報を記憶したハードウェアキーと、書込情報生成装置及び情報書込装置をユーザに提供することにより、ユーザに契約内容を確実に履行させることができ、不正なIPコアの使用やコピーを防止することができる。また、IPコアの料金を1回の使用料として設定することができるので、IPコアの提供料金の低価格化が可能になるとともに、少数使用を目的とするユーザに対して適正価格の商品提供が可能になり、IPコアの利用率を向上させることができる。
また、請求項7,9,10に記載の情報書込装置によれば、外部接続されたハードウェアキーから入力される許否情報と書込可能回数の情報もしくはネットワークを介して通信可能接続される管理サーバから入力される許否情報と書込可能回数の情報に基づいて内部回路の配置配線に関する情報の再構成可能なハードウェア又はこのハードウェアへの書込用情報を記憶する記憶デバイスへの書き込みの可否が判断され、書込不許可若しくは既に書き込まれた回数(積算値)が書込可能回数を越えているなどにより書込不可が判別されると、機能の一部が制限された状態で作成された内部回路の配置配線に関する情報が入力されてもこの情報の機能制限処理は禁止される。
一方、内部回路の配置配線に関する情報のハードウェア又は記憶デバイスへの書込可が判断されると、機能の一部が制限された状態で作成された内部回路の配置配線に関する情報の機能制限が解除された後、ハードウェア又は記憶デバイスに書き込まれる。また、このハードウェア又は記憶デバイスへの情報の書込処理が行われる毎にハードウェアキー若しくは管理サーバから入力される書込可能な回数を用いて残りの書込可能な回数が演算され、ハードウェアキー若しくは管理サーバに記憶された書込可能な回数はこの演算値で置き換えられる。
また、請求項8,9,10に記載の情報書込装置によれば、外部接続されたハードウェアキーから入力される許否情報と書込可能回数の情報もしくはネットワークを介して通信可能接続される管理サーバから入力される許否情報と書込可能回数の情報に基づいて内部回路の配置配線に関する情報の再構成可能なハードウェア又はこのハードウェアへの書込用情報を記憶する記憶デバイスへの書き込みの可否が判断され、書込不許可若しくは既に書き込まれた回数(積算値)が書込可能回数を越えているなどにより書込不可が判別されると、機能の一部が制限された状態で作成された内部回路の配置配線に関する情報が入力されてもこの情報の機能制限処理は禁止される。
一方、内部回路の配置配線に関する情報のハードウェア又は上記記憶デバイスへの書込可が判断されると、機能の一部が制限された状態で作成された内部回路の配置配線に関する情報が入力された場合、機能制限が解除された後、ハードウェアに書込可能な情報が生成され、その情報は暗号化されて記憶手段に記憶されるとともに復号化されてハードウェア又は上記記憶デバイスに書き込まれる。また、このハードウェア又は上記記憶デバイスへの情報の書込処理が行われる毎にハードウェアキー若しくは管理サーバから入力される書込可能な回数を用いて残りの書込可能な回数が演算され、ハードウェアキー若しくは管理サーバに記憶された書込可能な回数はこの演算値で置き換えられる。
従って、請求項7〜10に記載の情報書込装置をIPベンダーがIPコアを提供する際に使用した場合も、請求項1〜3に記載の書込情報生成装置及び請求項4〜6に記載の情報書込装置をIPベンダーがIPコアを提供する際に使用した場合と同様の効果を奏することができる。
また、請求項11〜18に記載のプログラム及び請求項19に記載の記録媒体によれば、これらのプログラムをコンピュータに読み取らせて実行させることにより当該コンピュータを請求項1〜10に記載の書込情報生成装置若しくは情報書込装置として機能させることができ、上述の作用効果を奏することができる。
本発明に係る情報書込装置は、IPベンダーからIPコアの購入契約をし、そのIPコアをFPGAにダウンロードする際に必要となるものである。従って、この情報書込装置は、通常、IPコアの購入契約の際、IPベンダーからユーザに対して提供される。この情報書込装置は、図1に示すように、CD−ROM(Compact Disc Read Only Memory)、MO(Magnet Optical disc)、FD(Flexible Disc)などの本発明に係るプログラム(ソフトウェア)が記憶された外部記憶媒体2をパーソナルコンピュータ1のドライバに装着し、そのドライバから外部記憶媒体2に記憶されたプログラムをコンピュータ本体1A内のRAM(Random Access Memory)に読み込むことより構成される。
従って、通常は、IPベンダーからユーザに対してはIPネットリストをFPGA41又はROM42(FPGA41へIPネットリストを書き込むために当該IPネットリストを記憶するための記憶デバイス)に書き込む処理を行うためのプログラム(以下、FPGA書込専用プログラムという。)が記憶された外部記憶媒体2と、この外部記憶媒体2に記憶されたプログラムを保護するためのドングル(dongle;ハードウェアキー)3とが提供される。ユーザは、図1に示すように、自己のパーソナルコンピュータ1に外部記憶媒体2に記憶されたFPGA書込専用プログラムを読み込ませるとともに、コンピュータ本体1Aに設けられた所定のパラレルポート若しくはシリアルポート(通信ポート)に当該ドングル3を接続し、FPGA41及びROM42が搭載された基板4を専用ケーブル5でコンピュータ本体1Aの所定の通信ポートに接続することによりFPGA専用の情報書込装置を構成することができる。
ここで、FPGA書込専用プログラムが記憶された外部記憶媒体2とドングル3とを用いたIPコアの提供方法について、図2に示すフローチャートを用いて説明する。
まず、ユーザは、IPベンダーとの間で所望のIPコアについて評価目的のための利用契約を締結する(#1)。この利用契約はユーザがNDA(Non-Disclosure Agreement 非開示合意)に署名することにより締結される。利用契約が締結されると、IPベンダーからユーザに対して上述したIPコアに関する詳細な資料とシミュレーションモデルと機能制限付IPコアのネットリストとが無償で提供される。
ユーザは、シミュレーションモデルにより購入しようとしているIPコアの機能評価を行うとともに、機能制限付IPコアのネットリスト(以下、IPコアのネットリストをIPネットリストという。)をFPGA41にダウンロードして実製品により機能および動作の評価を行い(#2)、購入するか否かの判断を行なう(#3)。そして、購入しない場合は(#3:NO)、購入手続きは終了し、購入する場合は(#3:YES)、FPGA書込専用プログラムが記憶された外部記憶媒体2およびドングル3の購入(#4)とIPコアのFPGA41又はROM42への書込可能な回数(以下、書込可能回数という。)の購入を行う(#5)。IPコアの料金は書込可能回数に応じて設定されるので、実質的に1回当たりのIPコアの使用料となる。
後述するように、この書込可能回数はドングル3に記憶されるとともに、IPコアが使用される毎に書込可能回数を1ずつ減算して現在の書込可能回数がドングル3に再記憶され、FPGA書込専用プログラムをパーソナルコンピュータに搭載してIPコアのFPGA41又はROM42への書込処理を実行しようとした場合、ドングル3から読み込まれた書込可能回数が0になっていれば、その書込処理は禁止され、書込可能回数分以上のIPコアのFPGA41又はROM42への書き込みはできないようになっている。
FPGA書込専用プログラムが記録された外部記録媒体2とドングル3とを購入したユーザは、これらを用いて自己のコンピュータをFPGA専用の情報書込装置とした後、この情報書込装置を用いてFPGA41を使用する製品の種類に関係なく書込可能回数分だけ自由にIPネットリストをFPGA41又はROM42に書き込んで所望の機能部品を開発用や量産用などの目的に応じて適宜製造する(#6)。そして、書込可能回数を使い切り、更にIPネットリストを使用したい場合は(#7:YES)、ステップ#5に戻り、書込可能回数の追加購入をすることにより所望の数だけIPコアを購入する。IPコアの使用料金は書込可能回数によって決定されるので、従来の一括支払方法に比してIPコアの1回使用当たりの価格が廉価になり、ユーザは適正価格でIPコアを必要数分だけ購入することができる。
次に、本発明に係る情報書込装置の用途について簡単に説明する。情報書込装置は、図15に示すFPGAの開発・設計手順において、配置配線データからビットストリームを生成し、このビットストリームをFPGA41又はROM42にダウンロードをする手順を実行させるための装置である。
従来は、この手順はユーザのコンピュータに搭載されたビットストリーム生成用の専用プログラムやダウンロード用の専用プログラムを用いて各処理が実行されていたが、本発明に係る情報書込装置では、配置配線データからビットストリームを生成してFPGA41又はROM42にダウンロードを行うまで処理を一括して制御し、この制御で書込可能回数を管理することによりIPコアの売買契約の無実化を防止するようにしている。
図3は、情報書込装置1の内部構成を機能ブロックで表した図である。
情報書込装置1は、主として制限解除処理部6、ビットストリーム生成部7、暗号化処理部8、復号化処理部9、書込処理部10、制御部11、内部メモリ12及びドングル3により構成されている。制限解除処理部6〜制御部11の各部の機能は、CPU(Central Processing Unit:中央演算処理装置)が所定のプログラムを実行することによって行われる。また、内部メモリ12は、CPUに接続されたパーソナルコンピュータの主記憶装置で、RAM(Random Access Memory)やROM(Read only Memory)で構成される。CPUに実行されるプログラムは、予めROMに記憶されるか、あるいはドライバにより外部記憶装置2から読み込んでRAMに記憶される。
また、ドングル3は、例えば直方体形状を成し、一方側面にコンピュータ本体1Aの所定のパラレルポートに接続するための接続端子が設けられている。なお、反対側の側面に他のドングルを縦列接続させるための接続端子が設けられている。ドングル3には、例えばフラッシュメモリからなるメモリ31が設けられ、このメモリ31に、制限解除処理部6及び復号化処理部9の処理の可否を判別するための情報(IPベンダーからIPコアの使用許諾のライスセンスを有しているか否かの情報。以下、ライセンス情報という。)と、IPネットリストの書込可能回数の情報(ユーザの購入した書込可能回数の情報)が記憶されている。ドングル3がコンピュータ本体1Aに接続されると、メモリ31からこれらの情報がコンピュータ本体1A内のRAMに読み込まれ、CPUの判断処理(後述)に使用される。
制限解除処理部6は、利用契約によりIPベンダーから無償提供を受けた機能制限付IPコアのネットリストと自作したネットリストとが組み合われたFPGA41のネットリストから作成された配置配線データ(以下、機能制限付き配置配線データという。)の機能制限を解除するものである。すなわち、制限解除理部6は、機能制限のない正規のIPネットリストと自作のネットリストとが組み合わされたFPGA41のネットリストから作成される配置配線データに相当するデータを生成する。機能制限の解除処理とは、例えばIPコアが正常に動作する期間が無償提供時から3ヶ月などといった時間的制限が課せられている場合はその制限を外して使用可能にすることであり、例えば通信処理用のIPコアで出力制限が課されている場合は、その制限を外して規格通りの出力を可能にするものである。
なお、機能制限付き配置配線データは、パーソナルコンピュータ1の内部メモリ12(例えばRAM)に保存されている場合は、その内部メモリ12から読み出すことにより制限解除処理部6に入力される。また、制限解除処理部6は、制御部11から制限解除禁止が指令されると、機能制限付き配置配線データの機能制限を解除しない。制御部11は、ドングル3から読み込んだ情報からライセンスが失効している場合は制限解除処理部6に制限解除禁止を指令する。
ビットストリーム生成部7は、機能制限解除された配置配線データをFPGA41又はROM42に書込可能なビットデータ列(ビットストリーム)のデータに変換するものである。ビットストリーム生成部7における処理はFPGAベンダーから提供されている専用のプログラムが使用される。従って、ビットストリーム生成部7は、その専用プログラムに制限解除処理部6と暗号化処理部8の処理とをリンクさせることにより、制限解除処理部6からの配置配線データからビットストリームを生成し、そのビットストリームを暗号化処理部8に出力することによりビットストリームの暗号化を可能にする。
暗号化処理部8は、ビットストリームの暗号化を行うものである。暗号方法は、例えば秘密鍵暗号などの周知の暗号方法を適用することができる。暗号化されたビットストリーム(以下、暗号化ビットストリームという。)は内部メモリ12に記憶され、ユーザが管理することができる。例えばユーザは情報書込装置1を用いてこの暗号化ビットストリームを復号化して別のFPGA41又はROM42に書き込むことができる。
このように、ビットストリームをユーザの管理下に置くようにしているのは、IPネットリストをFPGA41又はROM42にダウンロードする度に機能制限付き配置配線データからビットストリームを生成する処理を行わせると、その処理に時間を要し、量産品に適用されるFPGA41の場合、多数のFPGA41又はROM42へのIPネットリストのダウンロードに長時間を要し、ユーザ側での利便性に欠けるものとなるからである。その一方、FPGA41へ書込可能な形態でユーザ側にビットストリームの管理を許容すると、不正な使用やコピーが行われる可能性があり、IPベンダーにとって情報書込装置1を用いた書込制御や管理を行う意味が無くなるから、これを防止するため、暗号化した状態でビットストリームの管理を可能にしている。
復号化処理部9は、暗号化ビットストリームをFPGA41に書込可能なビットストリームに復号化するものである。復号化処理部9は、制御部11から復号化禁止が指令されると、暗号化ビットストリームの復号化処理をしない。制御部11は、ドングル3から読み込んだ情報からライセンスが失効している場合や書込可能回数が0になっている場合は復号化処理部9に復号化禁止を指令する。
書込処理部10は、復号化処理部9から出力されるビットストリームをFPGA41又はROM42にダウンロードするものである。なお、復号化処理部9で暗号化ビットストリームが復号化されなかった場合は、暗号化ビットストリームがFPGA41又はROM42にダウンロードされることはない。書込処理部10がビットストリームの書込処理を行い、その処理が成功すると、その情報が制御部11に送られ、制御部11で現在のビットストリームの書込可能回数n’が算出される。すなわち、ドングル3から読み出された書込可能回数nから1だけ減算して残りの書込可能回数n’(=n−1)が算出される。
制御部11は、制限解除処理部6〜書込処理部10の各処理部の動作を制御するとともに、ビットストリームのFPGA41又はROM42への書込み回数nを管理するものである。上述したように、制御部11はドングル3のメモリ31からライセンスと書込可能回数の情報を読み出し、ライセンス情報と書込可能回数の情報に基づき機能制限付IPネットリストの機能制限の解除処理と暗号化ビットストリームの復号化処理の可否を判別する。そして、ライセンス失効の場合、制限解除処理部6に機能制限の解除禁止を指令し、ライセンス失効若しくは書込可能回数0の場合、復号化処理部9に復号禁止を指令する。これにより機能制限付き配置配線データのFPGA41又はROM42への書込処理が阻止される。
また、書込処理部10から書込処理完了の情報が入力されると、機能制限付き配置配線データのFPGA41又はROM42への残りの書込可能回数を演算する。前回までの書込可能回数n(最初の書込可能回数−書込み回数の積算値=現在の書込可能回数)は、ドングル3のメモリ31に書き込まれており、制御部11は、このドングル3から読み出した現在の書込可能回数nから「1」を減算することにより残りの書込可能回数n’を算出する。そして、この書込可能回数n’でドングル3のメモリ31に記憶された書込可能回数nの内容を書き換える。
なお、データの書込処理が行われる毎に書込み済みの回数の積算値を算出し、その積算値が購入した書込可能回数に一致しているか否かで復号化処理の可否を判別するようにしてもよい。
次に、本発明に係る情報書込装置1の情報書込処理について、図4に示すフローチャートを用いて説明する。
この情報書込処理を実行させる際には、書込処理の対象であるデータが指定されるとする。このデータには機能制限付き配置配線データと既に書込処理が行われ、その時に作成された暗号化ビットストリームが含まれる。
まず、情報書込装置1にドングル3が装着されているか否かが判別される(#10)。この判別は、制御部11がドングル3のメモリ31内のライセンスや書込可能回数の情報の読取動作を行い、その情報が読み取れるか否かにより行われる。そして、ドングル3が未装着である場合は(#10:NO)、ディスプレイ1Bに所定のエラーメッセージが表示され(#25)、処理を終了する。なお、このエラーメッセージは、例えばドングル3の未装着を報知する内容やドングル3の装着を促す内容である。
ドングル3が装着されている場合(#10:YES)、ドングル3からライセンス情報が読み取られ、機能制限解除のライセンスの有効性が確認される(#11,#12)。すなわち、制限解除処理が許可されているか否かが確認される。そして、機能制限解除のライセンスが失効していれば(#12:NO)、ステップ#27に移行してディスプレイ1Bに所定のエラーメッセージが表示され、処理を終了する。なお、このエラーメッセージは、例えば制限解除処理のライセンスが失効している旨を報知する内容や制限解除処理のライセンスの取得を促す内容である。
一方、機能制限解除のライセンスが有効であれば(#12:YES)、書込処理の対象となるデータが機能制限付き配置配線データであるか、暗号化ビットストリームであるかが判別され(#13)、機能制限付きデータである場合は(#13:YES)、内部メモリ12若しくは外部記憶媒体2に保存されている所定のファイルから機能制限付きデータが読み込まれる(#14)。続いて、この機能制限付き配置配線データに対して制限されている機能を解除する処理が行われる(#15)。
続いて、機能制限が解除された配置配線データからビットストリームが生成され(#16)、更にこのビットストリームが暗号化された後(#17)、内部メモリ12に保存される(#18)。続いて、書込可能回数の情報が読み取られ(#19)、更に残りの書込可能回数nが0になっているか否かが判別され(#20)、n=0であれば(#20:YES)、ステップ#27に移行してディスプレイ1Bに所定のエラーメッセージが表示され、処理を終了する。なお、このエラーメッセージは、例えば書込可能回数が0になっている旨を報知する内容や書込可能回数の取得を促す内容である。
本実施形態では、FPGA41又はROM42にビットストリームを書き込む毎に残りの書込可能回数nを演算し、その演算結果をドングル3のメモリ31に更新的に保存するようにしているが、FPGA41又はROMにビットストリームを書き込む毎に書込済回数の積算値Nを演算し、その演算値Nをドングル3のメモリ31に更新的に保存するようにしてもよい。この場合は、ステップ#20では、書込済回数の積算値Nが書込可能回数nと一致しているか否かを判別する、若しくは(n−N)の演算により残りの書込可能回数を演算し、その書込可能回数が0であるか否かを判別する。
ステップ#20でn=0でなければ(#20:NO)、復号化処理のライセンスの有効性が確認され(#21)、復号化処理のライセンスが失効していれば(#22:NO)、ステップ#27に移行してディスプレイ1Bに所定のエラーメッセージが表示され、処理を終了する。なお、このエラーメッセージは、例えば復号化処理のライセンスが失効している旨を報知する内容や復号化処理のライセンスの取得を促す内容である。
一方、復号化処理のライセンスが有効であれば(#22:YES)、暗号化されたビットストリームが再度、元のビットストリームに復号化された後(#23)、FPGA41又はROM42への書込処理が行われる(#24)。続いて、ビットストリームの書込処理が終了すると、ビットストリームの書込みが正常に行われた否かが判別され(#25)、書込み異常があった場合は(#25:NO)、ステップ#27に移行してディスプレイ1Bに所定のエラーメッセージが表示され、処理を終了する。なお、このエラーメッセージは、例えばデータの書込み異常が生じた旨を報知する内容や再度書込処理を実行することを促す内容である。
一方、ビットストリームの書込みが正常に行われた場合は(#25:YES)、ドングル3から読み出された書込可能回数の情報、すなわち、現在の残りの書込可能回数n(積算値)から1だけ減算して新たな残りの書込可能回数n’が算出され、その算出値n’でドングル3のメモリ31に記憶された書込可能回数nが書き換えられて(#26)、処理を終了する。
なお、ステップ#13で書込処理の対象として暗号化ビットストリームが指定されている場合は(#13:NO)、既にステップ#14〜#18の処理は以前の書込処理で行われているので、これらのステップをスキップしてステップ#19に移行し、上述した復号化処理以降の処理が行われる。
上記実施例では、復号化処理の可否判断で復号化処理のライセンスと書込可能回数の両方を確認するようにしているが、書込可能回数だけで復号化処理の可否判断を行うようにしてもよい。
上記のように、本実施形態に係る情報書込装置によれば、利用契約時にIPベンダーからユーザに無償提供される機能制限付IPネットリストを用いた機能制限付き配置配線データの機能制限解除機能を有するとともに、その機能を書込可能回数分だけ可能にする制御機能を有しているので、IPベンダーとユーザとの間でIPコアの本契約(売買契約)を締結する際、この情報書込装置を用いることによりIPベンダーは販売したIPコアの不正使用を確実に防止することができる。従って、IPベンダーから安心して使用回数に応じた料金でIPコアをユーザに提供可能となり、これによりIPコアの低廉化が可能になる。すなわち、市販のICチップと同等の価格を実現することができる。また、ユーザも適正価格で種々のIPコアが利用できるので、設計負担の軽減やFPGAが使用される製品全体の低コスト化が可能になり、IPコアの有効活用を図ることができる。
なお、上記実施形態では、ドングル3により配置配線データのFPGA41又はROM42の書込処理を制御・管理するようにしていたが、図5に示すように、ドングル3の機能をネットワークNW上に配置された管理サーバ14で行なうようにしてもよい。この構成(以下、この構成を第2の実施形態という。)では、制御部11は、通信制御部13によりネットワークNWを解して管理サーバ14と通信を行ってライセンス情報や書込可能回数情報を取得し、書込処理が行なわれ毎に残りの書込可能回数を算出してその算出値を管理サーバ14に送信することになる。
第2実施形態の構成では、管理サーバ14でライセンス情報や書込可能回数情報が管理されるので、IPベンダー側でユーザによるIPコアの使用状態の管理を容易に行なうことができる利点がある。
また、上記実施形態では、ビットストリームを暗号化し、その暗号化ビットストリームを内部メモリ12に保存するようにしているが、これはビットストリームがユーザの管理下に置かれるので、ユーザ側での不正使用や不正コピーを確実に防止するためのものであり、暗号化処理及び復号化処理を行なうことなく生成されたビットストリームを直ちにFPGA41又はROM42にダウンロードするようにしてもよい。
すなわち、図6に示すように、図3において、暗号化処理部8と復号化処理部9を削除した構成(以下、この構成を第3の実施形態という。)とし、図7に示すフローチャートに従って処理するようにしてもよい。なお、図7に示すフローチャートは、図4において、ステップ#13,#17,#21〜#23を削除し、生成されたビットストリームの不正使用を防止するため、ステップ#16の処理の後にビットストリームの内部メモリ12や外部記憶装置2などへの保存を禁止する処理(ステップ#28)を追加したものである。
第3の実施形態の構成では、暗号化及び復号化の処理がないので、構成が簡単になる利点がある。また、ユーザ側でビットストリームの管理が行われないので、ビットストリームの不正使用や不正コピーを確実に防止することができる利点がある。
また、上記実施形態では、制限機能付き配置配線データの機能の制限を解除した後、その配置配線データからビットストリームを生成し、FPGA41又はROM42にダウンロードするまでの一連の処理を行う装置として専用の情報書込装置1を構成していたが、制限機能付き配置配線データから暗号化ビットストリームを生成するまでの処理を行う装置(以下、書込情報生成装置という。)と暗号化ビットストリームを復号化してFPGA41又はROM42に書き込む処理を行う装置(以下、第2情報書込装置という。)に分離してもよい。
図8は、書込情報生成装置の構成を示す図である。また、図10は、書込情報生成装置で生成された暗号化ビットストリームをFPGA41又はROM42へ書き込む処理を行うための第2情報書込装置の構成を示す図である。
図8に示す書込情報生成装置は、図4において、復号化処理部9と書込処理部10とを削除したものである。制限解除処理部6〜暗号化処理部8の機能は上述したとおりであるから、ここでは詳細説明を省略する。なお、制御部11’は、図4における制御部11の制限解除処理部6〜暗号化処理部8の各部を制御する機能を有するとともに、暗号化処理部8から出力される暗号化ビットストリームを内部メモリ12に記憶する機能を有するものである。
図9は、書込情報生成装置の暗号化ビットストリームの生成処理の手順を示すフローチャートである。同図に示すフローチャートは、図4に示すフローチャートにおいて、暗号化ビットストリームを復号化してFPGA41又はROM42に書き込む処理を削除したもので、具体的には、ステップ#13,ステップ#19〜#26を削除したものである。
書込情報生成装置では、処理対象が機能制限付き配置配線データに限られているため、書込情報生成装置の暗号化ビットストリームの生成処理を実行させる際には、処理対象であるデータの選択処理は行われない。従って、ステップ#13の判断処理は削除されている。
図9に示すフローチャートによれば、まず、情報書込装置1にドングル3が装着されているか否かが判別される(#10)。そして、ドングル3が未装着である場合は(#10:NO)、ディスプレイ1Bに所定のエラーメッセージが表示され(#27)、処理を終了する。なお、このエラーメッセージは、例えばドングル3の未装着を報知する内容やドングル3の装着を促す内容である。
ドングル3が装着されている場合(#10:YES)、ドングル3からライセンス情報が読み取られ(#11)、更にライセンスが有効であるか否かが判別される(#12)。すなわち、制限解除処理が許可されているか否かが判別される。そして、ライセンスが失効していれば(#12:NO)、ステップ#27に移行してディスプレイ1Bに所定のエラーメッセージが表示され、処理を終了する。なお、このエラーメッセージは、例えばライセンスが失効している旨を報知する内容やライセンスの取得を促す内容である。
一方、ライセンスが有効であれば(#12:YES)、内部メモリ12若しくは外部記憶媒体2に保存されている所定のファイルから機能制限付きデータが読み込まれる(#14)。続いて、この機能制限付き配置配線データに対して制限されている機能を解除する処理が行われる(#15)。続いて、機能制限が解除された配置配線データからビットストリームが生成され(#16)、更にこのビットストリームが暗号化された後(#17)、内部メモリ12に保存され(#18)、処理を終了する。
また、図10に示す第2情報書込装置は、図4において、制限解除処理部6〜暗号化処理部8を削除したものである。復号化処理部9及び書込処理部10の機能は上述したとおりであるから、ここでは詳細説明を省略する。なお、制御部11”は、図4における制御部11の復号化処理部9及び書込処理部10の各部を制御する機能を有するとともに、書込処理部10での書き込み動作毎に残りの書込可能回数nを演算し、その演算値をドングル3のメモリ31に更新的に記憶する機能を有するものである。
図11は、書込情報生成装置で生成された暗号化ビットストリームをFPGA又はROMへ書き込む処理を行うための第2情報書込装置の処理手順を示すフローチャートである。この第2情報書込装置では、処理対象が暗号化ビットストリームに限られているため、情報書込処理を実行させる際には、処理対象であるデータの選択処理は行われない。
図11に示すフローチャートによれば、まず、第2情報書込装置にドングル3が装着されているか否かが判別される(#30)。そして、ドングル3が未装着である場合は(#30:NO)、ディスプレイ1Bに所定のエラーメッセージが表示され(#39)、処理を終了する。なお、このエラーメッセージは、例えばドングル3の未装着を報知する内容やドングル3の装着を促す内容である。
ドングル3が装着されている場合(#30:YES)、復号化処理のライセンスの有効性が確認されるとともに(#31)、書込可能回数の情報が読み取られる(#32)。
続いて、書込可能回数nが0になっているか否かが判別され(#33)、n=0であれば(#33:YES)、ステップ#39に移行してディスプレイ1Bに所定のエラーメッセージが表示され、処理を終了する。なお、このエラーメッセージは、例えば書込可能回数が0になっている旨を報知する内容や書込可能回数の取得を促す内容である。
一方、ステップ#33でn=0でなければ(#33:NO)、更に復号化処理のライセンスが有効であるか否かが判別される(#34)。そして、復号化処理のライセンスが失効していれば(#34:NO)、ステップ#39に移行してディスプレイ1Bに所定のエラーメッセージが表示され、処理を終了する。なお、このエラーメッセージは、例えばライセンスが失効している旨を報知する内容やライセンスの取得を促す内容である。
一方、復号化処理のライセンスが有効であれば(#34:YES)、内部メモリ12若しくは外部記憶媒体2に保存されている所定のファイルから暗号化ビットストリームが読み込まれる(#35)。続いて、暗号化されたビットストリームが元のビットストリームに復号化された後(#36)、FPGA41又はROM42への書込処理が行われる(#37)。続いて、ビットストリームの書込処理が終了すると、ビットストリームの書込みが正常に行われた否かが判別され(#38)、書込み異常があった場合は(#38:NO)、ステップ#39に移行してディスプレイ1Bに所定のエラーメッセージが表示され、処理を終了する。なお、このエラーメッセージは、例えばデータの書込み異常が生じた旨を報知する内容や再度書込処理を実行することを促す内容である。
一方、ビットストリームの書込みが正常に行われた場合は(#38:YES)、ドングル3から読み出された書込可能回数の情報、すなわち、現在の残りの書込可能回数n(積算値)から1だけ減算して新たな残りの書込可能回数n’が算出され、その算出値n’でドングル3のメモリ31に記憶された書込可能回数nが書き換えられて(#40)、処理を終了する。
なお、図11に示すフローチャートでも、暗号化ビットストリームの復号化処理以降の処理を行うか否かの判断として、ライセンスと書込可能回数の両方の有効性を判断していたが、いずれか一方を判断するようにしてもよい。
第1の実施形態に係る情報書込装置を、暗号化ビットストリームを生成する書込情報生成装置とこの情報書込装置で生成された暗号化ビットストリームをFPGA41又はROM42に書き込む第2情報書込装置とに分離した構成であっても、上述した第1の実施形態に係る情報書込装置と同様の効果を奏することができる。
なお、上記説明では、書込情報生成装置をユーザ側のパーソナルコンピュータで構成する場合について説明したが、この書込情報生成装置は、図5に示すネットワークに接続された管理サーバ14内に構築してもよく、ライセンス情報の管理はドングル3で行い、書込情報生成装置のみを管理サーバ14で構成するようにしてもよい。
この構成の場合は、管理サーバ14によって機能制限付き配置配線データから暗号化ビットストリームが生成されることになる。すなわち、ユーザは、まず、管理サーバ14に機能制限付き配置配線データとライセンス情報を送信する。管理サーバ14では、機能制限付き配置配線データとライセンス情報を受信すると、ライセンス情報に基づいて暗号化ビットストリーム生成の可否判断を行い、暗号化ビットストリームの生成が可能であれば、暗号化ビットストリームを生成してユーザのパーソナルコンピュータに送信する。一方、暗号化ビットストリームの生成が不可であれば、その旨の情報をユーザのパーソナルコンピュータに送信する。
ユーザのパーソナルコンピュータは暗号化ビットストリームを受信すると、そのデータを内部メモリ12に保存し、暗号化ビットストリーム生成不可の情報を受信すると、その情報に相当するメッセージをディスプレイ1Bに表示する。暗号化ビットストリームを入手してからの当該暗号化ビットストリームをFPGA41又はROM42へ書き込む処理は、上述した図10に示す第2情報書込装置を用いて行われる。
管理サーバ14で書込情報生成装置を構築したものでは、IPベンダー側でユーザのIPネットリストの不正使用や不正コピーをより確実に防止することができる利点がある。
なお、上記実施形態では、CD−ROMなど外部記録媒体2にFPGA書込専用プログラムを記録し、その外部記録媒体2とプログラムを保護するドングル3とをユーザのパーソナルコンピュータ1に適用することにより当該パーソナルコンピュータ1を情報書込装置、第2情報書込装置、書込情報生成装置とする例を説明したが、FPGA書込専用プログラムを管理サーバ14からネットワークNWを介してユーザのパーソナルコンピュータ1に提供することにより、図5に示す構成の情報書込装置1や図8に示す書込情報生成装置及び図10に示す第2情報書込装置を構築するようにしてもよい。また、専用の情報書込装置1や専用の書込情報生成装置及び第2情報書込装置を製作し、IPベンダーからユーザに提供するようにしてもよい。
上述のように、本発明に係る情報書込装置、書込情報生成装置及び第2情報書込装置は、IPベンダーがIPコアを販売するツールとして利用することにより、従来のIPコアの提供方法におけるIPコアの使用回数の管理ができない、不正使用、不正コピーなどの種々の問題を解消することが可能となる。
コンピュータを用いて本発明に係る情報書込装置を構成した例を示す図である。 本発明に係るプログラムが記憶された外部記憶媒体とドングルとを用いたIPコアの提供方法を示すフローチャートである。 本発明に係る情報書込装置の内部構成を機能ブロックで表した図である。 本発明に係る情報書込装置の情報書込処理の手順を示すフローチャートである。 本発明に係る情報書込装置の第2の実施形態の構成を示す図である。 本発明に係る情報書込装置の第3の実施形態の構成を示す図である。 第3の実施形態に係る情報書込装置の情報書込処理の手順を示すフローチャートである。 本発明に係る書込情報生成装置の構成を示す図である。 本発明に係る書込情報生成装置の暗号化ビットストリームの生成処理の手順を示すフローチャートである。 書込情報生成装置で生成された暗号化ビットストリームをFPGA又はROMへ書き込む処理を行う第2情報書込装置の構成を示す図である。 書込情報生成装置で生成された暗号化ビットストリームをFPGA又はROMへ書き込む処理を行う第2情報書込装置の処理手順を示すフローチャートである。 FPGAの内部構造の一例を示す図である。 IPベンダーからIPコアを購入してFPGAに組み込む手順の第1の実施形態を示すフローチャートである。 IPベンダーからIPコアを購入してFPGAに組み込む手順の第2の実施形態を示すフローチャートである。 第2の実施形態に係るIPコアの購入方法によりFPGAを開発、設計する手順を示すブロック図である。
符号の説明
1 パーソナルコンピュータ(情報書込装置,書込情報生成装置)
1A コンピュータ本体
1B ディスプレイ
2 外部記憶媒体
3 ドングル(ハードウェアキー)
31 メモリ
4 基板
41 FPGA
42 ROM(記憶デバイス)
5 専用ケーブル
6 制限解除処理部(機能制限解除手段)
7 ビットストリーム生成部(情報生成手段)
8 暗号化処理部(暗号化手段)
9 復号化処理部(復号化手段)
10 書込処理部(情報書込手段)
11,11’,11” 制御部(判別手段,書込可能回数演算手段,禁止手段,書込可能回数書換手段,書込可能回数送信手段)
12 内部メモリ(記憶手段)
13 通信制御部
14 管理サーバ

Claims (19)

  1. 所定の機能を実現させるべく内部回路の再構成が可能なハードウェアに書き込まれる内部回路の論理情報を生成する書込情報生成装置であって、
    上記機能の一部が制限された状態で作成された内部回路の配置配線に関する情報を入力する第1の情報入力手段と、
    上記第1の情報入力手段によって入力される上記内部回路の配置配線に関する情報の機能制限を解除する機能制限解除手段と、
    上記機能制限解除手段により機能制限が解除された上記内部回路の配置配線に関する情報から上記ハードウェアへの書き込みが可能な書込用情報を生成する情報生成手段と、
    上記情報生成手段により生成された上記書込用情報の暗号化を行う暗号化手段と、
    上記暗号化手段により暗号化された上記書込用情報を記憶する記憶手段と、
    上記機能制限の解除処理の許否に関する情報を入力する第2の情報入力手段と、
    上記第2の情報入力手段によって入力された許否情報に基づいて上記機能制限解除手段による機能制限の解除処理の可否を判別する判別手段と、
    上記判別手段により解除処理の不可が判別されると、上記機能制限解除手段による機能制限の解除処理を禁止する禁止手段と
    を備えたことを特徴とする書込情報生成装置。
  2. 上記第2の情報入力手段から入力される許否情報は、当該第2の情報入力手段に外部接続されるハードウェアキーに読み書き可能に記憶され、当該ハードウェアキーから上記第2の情報入力手段を介して入力されることを特徴とする請求項1に記載の書込情報生成装置。
  3. 上記第2の情報入力手段から入力される許否情報は、当該第2の情報入力手段に通信可能に接続されるネットワーク上に設けられる管理サーバに記憶され、通信によって当該管理サーバから上記第2の情報入力手段を介して入力されることを特徴とする請求項1に記載の書込情報生成装置。
  4. 請求項1〜3のいずれかに記載の書込情報生成装置で生成されたハードウェアへの書き込みが可能な書込用情報を内部回路の再構成が可能なハードウェア又はこのハードウェアへの書込用情報を記憶するための記憶デバイスに書き込む情報書込装置であって、
    暗号化された上記書込用情報を入力する第1の情報入力手段と、
    上記第1の情報入力手段からの暗号化された上記書込用情報を復号化する復号化手段と、
    上記復号化手段により復号化された上記書込用情報を上記ハードウェア又は上記記憶デバイスに書き込む情報書込手段と、
    上記復号化手段による復号化処理の許否に関する情報と上記情報書込手段による上記書込用情報の上記ハードウェア又は上記記憶デバイスへの書込可能な回数の情報とを入力する第2の情報入力手段と、
    上記情報書込手段により書込用情報の書込動作が行われる毎に上記第2の情報入力手段から入力される書込可能な回数を用いて残りの書込可能な回数を演算する書込可能回数演算手段と、
    上記第2の情報入力手段によって入力された許否情報と上記書込可能回数演算手段により演算された残りの書込可能な回数とに基づいて上記復号化手段による復号化処理の可否を判別する判別手段と、
    上記判別手段により書込処理の不可が判別されると、上記復号化手段による復号化処理を禁止する禁止手段と
    を備えたことを特徴とする情報書込装置。
  5. 請求項4に記載の情報書込装置において、上記第2の情報入力手段から入力される許否情報と書込可能回数の情報は、当該第2の情報入力手段に外部接続されるハードウェアキーに読み書き可能に記憶され、このハードウェアキーに記憶された書込可能回数の情報を上記書込可能回数演算手段によって演算された書込可能な回数で書き換える書込可能回数書換手段を更に備えたことを特徴とする情報書込装置。
  6. 請求項4に記載の情報書込装置において、上記第2の情報入力手段から入力される許否情報と書込可能回数の情報は、当該第2の情報入力手段に通信可能に接続されるネットワーク上に設けられる管理サーバに記憶され、この管理サーバに記憶された書込可能な回数を上記書込可能回数演算手段によって演算された書込可能な回数で書き換えるべく当該書込可能な回数を上記管理サーバに送信する書込可能回数送信手段を更に備えたことを特徴とする情報書込装置。
  7. 内部回路の再構成が可能なハードウェアに所定の機能を実現させるための内部回路の論理情報を書き込む情報書込装置であって、
    上記機能の一部が制限された状態で作成された内部回路の配置配線に関する情報を入力する第1の情報入力手段と、
    上記第1の情報入力手段によって入力される上記内部回路の配置配線に関する情報の機能制限を解除する機能制限解除手段と、
    上記機能制限解除手段により機能制限が解除された上記内部回路の配置配線に関する情報から上記ハードウェアへの書き込みが可能な書込用情報を生成する情報生成手段と、
    上記情報生成手段で生成された書込用情報を上記ハードウェア又は上記ハードウェアへの書込用情報を記憶するための記憶デバイスに書き込む情報書込手段と、
    上記機能制限の解除処理の許否に関する情報と上記情報書込手段による上記書込用情報の上記ハードウェア又は上記記憶デバイスへの書込可能な回数の情報とを入力する第2の情報入力手段と、
    上記情報書込手段により書込用情報の書込動作が行われる毎に上記第2の情報入力手段から入力される書込可能な回数を用いて残りの書込可能な回数を演算する書込可能回数演算手段と、
    上記第2の情報入力手段によって入力された情報と上記書込可能回数演算手段により演算された残りの書込可能な回数とに基づいて上記機能制限解除手段による機能制限の解除処理の可否を判別する判別手段と、
    上記判別手段により解除処理の不可が判別されると、上記機能制限解除手段の機能制限の解除処理を禁止する禁止手段と
    を備えたことを特徴とする情報書込装置。
  8. 内部回路の再構成が可能なハードウェアに所定の機能を実現させるための内部回路の論理情報を書き込む情報書込装置であって、
    上記機能の一部が制限された状態で作成された内部回路の配置配線に関する情報を入力する第1の情報入力手段と、
    上記第1の情報入力手段によって入力される上記内部回路の配置配線に関する情報の機能制限を解除する機能制限解除手段と、
    上記機能制限解除手段により機能制限が解除された上記内部回路の配置配線に関する情報から上記ハードウェアへの書き込みが可能な書込用情報を生成する情報生成手段と、
    上記情報生成手段で生成された上記書込用情報の暗号化を行う暗号化手段と、
    上記暗号化手段により暗号化された上記書込用情報を記憶する記憶手段と、
    上記暗号化手段により暗号化された上記書込用情報の復号化を行う復号化手段と、
    上記復号化手段により復号化された上記書込用情報を上記ハードウェア又は上記ハードウェアへの書込用情報を記憶するための記憶デバイスに書き込む情報書込手段と、
    上記機能制限解除手段による機能制限の解除処理と上記復号化手段による復号化処理の許否に関する情報と上記情報書込手段による上記書込用情報の上記ハードウェア又は上記記憶デバイスへの書込可能な回数の情報とを入力する第2の情報入力手段と、
    上記情報書込手段により書込用情報の書込動作が行われる毎に上記第2の情報入力手段から入力される書込可能な回数を用いて残りの書込可能な回数を演算する書込可能回数演算手段と、
    上記第2の情報入力手段によって入力された許否情報と上記書込可能回数演算手段により演算された残りの書込可能な回数とに基づいて上記機能制限解除手段による機能制限の解除処理と上記復号化手段による復号化処理の可否を判別する判別手段と、
    上記判別手段により解除処理および復号化処理の不可が判別されると、上記機能制限解除手段の機能制限の解除処理と上記復号化手段の復号化処理を禁止する禁止手段と
    を備えたことを特徴とする情報書込装置。
  9. 請求項7又は8に記載の情報書込装置において、上記第2の情報入力手段から入力される許否情報と書込可能回数の情報は、当該第2の情報入力手段に外部接続されるハードウェアキーに読み書き可能に記憶され、このハードウェアキーに記憶された書込可能な回数を上記書込可能回数演算手段によって演算された書込可能な回数で書き換える書込可能回数書換手段を更に備えたことを特徴とする情報書込装置。
  10. 請求項7又は8に記載の情報書込装置において、上記第2の情報入力手段から入力される許否情報と書込可能回数の情報は、当該第2の情報入力手段に通信可能に接続されるネットワーク上に設けられる管理サーバに記憶され、この管理サーバに記憶された書込可能な回数を上記書込可能回数演算手段によって演算された書込可能な回数で書き換えるべく当該書込可能な回数を上記管理サーバに送信する書込可能回数送信手段を更に備えたことを特徴とする情報書込装置。
  11. コンピュータを、所定の機能を実現させるべく内部回路の再構成が可能なハードウェアに書き込まれる内部回路の論理情報を生成する書込情報生成装置として機能させるためのプログラムであって、
    上記コンピュータを、
    上記機能の一部が制限された状態で作成された内部回路の配置配線に関する情報を入力する第1の情報入力手段と、
    上記第1の情報入力手段によって入力される上記内部回路の配置配線に関する情報の機能制限を解除する機能制限解除手段と、
    上記機能制限解除手段により機能制限が解除された上記内部回路の配置配線に関する情報から上記ハードウェアへの書き込みが可能な書込用情報を生成する情報生成手段と、
    上記情報生成手段により生成された上記書込用情報の暗号化を行う暗号化手段と、
    上記暗号化手段により暗号化された上記書込用情報を記憶する記憶手段と、
    上記機能制限の解除処理の許否に関する情報を入力する第2の情報入力手段と、
    上記第2の情報入力手段によって入力された許否情報に基づいて上記機能制限解除手段による機能制限の解除処理の可否を判別する判別手段と、
    上記判別手段により解除処理の不可が判別されると、上記機能制限解除手段による機能制限の解除処理を禁止する禁止手段と
    して機能させるためのプログラム。
  12. コンピュータを、請求項1〜3のいずれかに記載の書込情報生成装置で生成されたハードウェアに書込可能な情報を内部回路の再構成が可能なハードウェア又はこのハードウェアへの書込用情報を記憶するための記憶デバイスに書き込む情報書込装置として機能させるためのプログラムであって、
    上記コンピュータを、
    暗号化された上記書込用情報を入力する第1の情報入力手段と、
    上記第1の情報入力手段からの暗号化された上記書込用情報を復号化する復号化手段と、
    上記復号化手段により復号化された上記書込用情報を上記ハードウェア又は上記記憶デバイスに書き込む情報書込手段と、
    上記復号化手段による復号化処理の許否に関する情報と上記情報書込手段による上記書込用情報の上記ハードウェア又は上記記憶デバイスへの書込可能な回数の情報とを入力する第2の情報入力手段と、
    上記情報書込手段により書込用情報の書込動作が行われる毎に上記第2の情報入力手段から入力される書込可能な回数を用いて残りの書込可能な回数を演算する書込可能回数演算手段と、
    上記第2の情報入力手段によって入力された許否情報と上記書込可能回数演算手段により演算された残りの書込可能な回数とに基づいて上記復号化手段による復号化処理の可否を判別する判別手段と、
    上記判別手段により書込処理の不可が判別されると、上記復号化手段による復号化処理を禁止する禁止手段と
    して機能させるためのプログラム。
  13. 上記コンピュータを、更に上記第2の情報入力手段に外部接続され、上記許否情報と書込可能回数とが記憶されたハードウェアキーに、当該ハードウェアキーに記憶された書込可能な回数を上記書込可能回数演算手段によって演算された書込可能な回数で書き換える書込可能回数書換手段として機能させることを特徴とする請求項12に記載のプログラム。
  14. 上記コンピュータを、更に上記第2の情報入力手段に通信可能に接続されるネットワーク上に設けられ、上記許否情報と書込可能回数の情報とが記憶された管理サーバに、当該管理サーバに記憶された書込可能な回数を上記書込可能回数演算手段によって演算された書込可能な回数で書き換えるべく当該書込可能な回数を上記管理サーバに送信する書込可能回数送信手段として機能させることを特徴とする請求項12に記載のプログラム。
  15. コンピュータを、内部回路の再構成が可能なハードウェアに所定の機能を実現させるための内部回路の論理情報を書き込む情報書込装置として機能させるためのプログラムであって、
    上記コンピュータを、
    上記機能の一部が制限された状態で作成された内部回路の配置配線に関する情報を入力する第1の情報入力手段と、
    上記第1の情報入力手段によって入力される上記内部回路の配置配線に関する情報の機能制限を解除する機能制限解除手段と、
    上記機能制限解除手段により機能制限が解除された上記内部回路の配置配線に関する情報から上記ハードウェアへの書き込みが可能な書込用情報を生成する情報生成手段と、
    上記情報生成手段で生成された書込用情報を上記ハードウェア又は上記ハードウェアへの書込用情報を記憶するための記憶デバイスに書き込む情報書込手段と、
    上記機能制限の解除処理の許否に関する情報と上記情報書込手段による上記書込用情報の上記ハードウェア又は上記記憶デバイスへの書込可能な回数の情報とを入力する第2の情報入力手段と、
    上記情報書込手段により書込用情報の書込動作が行われる毎に上記第2の情報入力手段から入力される書込可能な回数を用いて残りの書込可能な回数を演算する書込可能回数演算手段と、
    上記第2の情報入力手段によって入力された情報と上記書込可能回数演算手段により演算された残りの書込可能な回数とに基づいて上記機能制限解除手段による機能制限の解除処理の可否を判別する判別手段と、
    上記判別手段により解除処理の不可が判別されると、上記機能制限解除手段の機能制限の解除処理を禁止する禁止手段と
    して機能させるためのプログラム。
  16. コンピュータを、内部回路の再構成が可能なハードウェアに所定の機能を実現させるための内部回路の論理情報を書き込む情報書込装置として機能させるためのプログラムであって、
    上記コンピュータを、
    上記機能の一部が制限された状態で作成された内部回路の配置配線に関する情報を入力する第1の情報入力手段と、
    上記第1の情報入力手段によって入力される上記内部回路の配置配線に関する情報の機能制限を解除する機能制限解除手段と、
    上記機能制限解除手段により機能制限が解除された上記内部回路の配置配線に関する情報から上記ハードウェアへの書き込みが可能な書込用情報を生成する情報生成手段と、
    上記情報生成手段で生成された上記書込用情報の暗号化を行う暗号化手段と、
    上記暗号化手段により暗号化された上記書込用情報を記憶する記憶手段と、
    上記暗号化手段により暗号化された上記書込用情報の復号化を行う復号化手段と、
    上記復号化手段により復号化された上記書込用情報を上記ハードウェア又は上記ハードウェアへの書込用情報を記憶するための記憶デバイスに書き込む情報書込手段と、
    上記機能制限解除手段による機能制限の解除処理と上記復号化手段による復号化処理の許否に関する情報と上記情報書込手段による上記書込用情報の上記ハードウェア又は上記記憶デバイスへの書込可能な回数の情報とを入力する第2の情報入力手段と、
    上記情報書込手段により書込用情報の書込動作が行われる毎に上記第2の情報入力手段から入力される書込可能な回数を用いて残りの書込可能な回数を演算する書込可能回数演算手段と、
    上記第2の情報入力手段によって入力された許否情報と上記書込可能回数演算手段により演算された残りの書込可能な回数とに基づいて上記機能制限解除手段による機能制限の解除処理と上記復号化手段による復号化処理の可否を判別する判別手段と、
    上記判別手段により解除処理および復号化処理の不可が判別されると、上記機能制限解除手段の機能制限の解除処理と上記復号化手段の復号化処理を禁止する禁止手段と
    して機能させるためのプログラム。
  17. 上記コンピュータを、更に上記第2の情報入力手段に外部接続され、上記許否情報と書込可能回数の情報とが記憶されたハードウェアキーに、当該ハードウェアキーに記憶された書込可能な回数を上記書込可能回数演算手段によって演算された書込可能な回数で書き換える書込可能回数書換手段として機能させることを特徴とする請求項15又は16に記載のプログラム。
  18. 上記コンピュータを、更に上記第2の情報入力手段に通信可能に接続されるネットワーク上に設けられ、上記許否情報と書込可能回数の情報とが記憶された管理サーバに、当該管理サーバに記憶された書込可能な回数を上記書込可能回数演算手段によって演算された書込可能な回数で書き換えるべく当該書込可能な回数を上記管理サーバに送信する書込可能回数送信手段として機能させることを特徴とする請求項15又は16に記載のプログラム。
  19. 請求項11〜18のいずれかに記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
JP2003340828A 2003-09-30 2003-09-30 書込情報生成用プログラム、ハードウェアへの情報書込用プログラム、これらのプログラムを記録したコンピュータ読み取り可能な記録媒体、書込情報生成装置及び情報書込装置 Pending JP2005107911A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2003340828A JP2005107911A (ja) 2003-09-30 2003-09-30 書込情報生成用プログラム、ハードウェアへの情報書込用プログラム、これらのプログラムを記録したコンピュータ読み取り可能な記録媒体、書込情報生成装置及び情報書込装置
US10/966,173 US20050069128A1 (en) 2003-09-30 2004-09-29 Data-generating device and data-writing device for FPGA

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003340828A JP2005107911A (ja) 2003-09-30 2003-09-30 書込情報生成用プログラム、ハードウェアへの情報書込用プログラム、これらのプログラムを記録したコンピュータ読み取り可能な記録媒体、書込情報生成装置及び情報書込装置

Publications (2)

Publication Number Publication Date
JP2005107911A true JP2005107911A (ja) 2005-04-21
JP2005107911A5 JP2005107911A5 (ja) 2006-09-21

Family

ID=34373420

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003340828A Pending JP2005107911A (ja) 2003-09-30 2003-09-30 書込情報生成用プログラム、ハードウェアへの情報書込用プログラム、これらのプログラムを記録したコンピュータ読み取り可能な記録媒体、書込情報生成装置及び情報書込装置

Country Status (2)

Country Link
US (1) US20050069128A1 (ja)
JP (1) JP2005107911A (ja)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009066405A1 (ja) * 2007-11-19 2009-05-28 Panasonic Corporation 再構成可能な回路装置及び受信装置
JP2019534618A (ja) * 2016-09-29 2019-11-28 アマゾン テクノロジーズ インコーポレイテッド 暗号化された構成データを使用する論理リポジトリサービス
US11074380B2 (en) 2016-09-29 2021-07-27 Amazon Technologies, Inc. Logic repository service
US11099894B2 (en) 2016-09-28 2021-08-24 Amazon Technologies, Inc. Intermediate host integrated circuit between virtual machine instance and customer programmable logic
US11115293B2 (en) 2016-11-17 2021-09-07 Amazon Technologies, Inc. Networked programmable logic service provider
US11119150B2 (en) 2016-09-28 2021-09-14 Amazon Technologies, Inc. Extracting debug information from FPGAs in multi-tenant environments
WO2021186975A1 (ja) * 2020-03-19 2021-09-23 日本電気株式会社 課金情報処理装置、課金情報処理システム、課金情報処理方法及び課金情報処理プログラムが格納された非一時的なコンピュータ可読媒体
US11182320B2 (en) 2016-09-29 2021-11-23 Amazon Technologies, Inc. Configurable logic platform with multiple reconfigurable regions
US11275503B2 (en) 2016-09-30 2022-03-15 Amazon Technologies, Inc. Controlling access to previously-stored logic in a reconfigurable logic device

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4217158B2 (ja) * 2002-01-23 2009-01-28 インテリテック コーポレイション 電子回路のライセンスされた引渡しおよび課金をするための管理システム、方法および装置
US7987373B2 (en) * 2004-09-30 2011-07-26 Synopsys, Inc. Apparatus and method for licensing programmable hardware sub-designs using a host-identifier
US20060236303A1 (en) * 2005-03-29 2006-10-19 Wilson Thomas G Jr Dynamically adjustable simulator, such as an electric circuit simulator
US7954149B2 (en) * 2007-03-20 2011-05-31 Kabushiki Kaisha Toshiba Image forming apparatus, control method of the apparatus, and control program of the apparatus
US7809544B1 (en) * 2007-06-13 2010-10-05 Xilinx, Inc. Methods of detecting unwanted logic in designs for programmable logic devices
US8806609B2 (en) * 2011-03-08 2014-08-12 Cisco Technology, Inc. Security for remote access VPN
US9870462B2 (en) * 2014-09-22 2018-01-16 Intel Corporation Prevention of cable-swap security attack on storage devices
US9703973B2 (en) * 2015-04-28 2017-07-11 International Business Machines Corporation Customer load of field programmable gate arrays
CN106982269B (zh) * 2016-01-18 2019-11-15 昆达电脑科技(昆山)有限公司 服务器分时可变ip地址的***及其方法
US20210216342A1 (en) * 2018-06-05 2021-07-15 Nec Corporation System, server, verification method and program

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US2286740A (en) * 1941-01-04 1942-06-16 Chicago Forging & Mfg Co Camming latch for alligator type hoods
US4045064A (en) * 1975-01-17 1977-08-30 Nissan Motor Company, Limited Latch mechanism
US4836591A (en) * 1987-04-10 1989-06-06 Abc Auto Alarms, Inc. Anti-theft vehicle hood lock release blocker mechanism
US5445421A (en) * 1993-10-01 1995-08-29 General Motors Corporation Dual throat latch assembly
US5970142A (en) * 1996-08-26 1999-10-19 Xilinx, Inc. Configuration stream encryption
US6477683B1 (en) * 1999-02-05 2002-11-05 Tensilica, Inc. Automated processor generation system for designing a configurable processor and method for the same
US7162032B2 (en) * 1999-12-20 2007-01-09 Telenor Asa Encryption of programs represented as polynomial mappings and their computations
US6904527B1 (en) * 2000-03-14 2005-06-07 Xilinx, Inc. Intellectual property protection in a programmable logic device
US6738962B1 (en) * 2000-06-12 2004-05-18 Altera Corporation Configuration and/or reconfiguration of integrated circuit devices that include programmable logic and microprocessor circuitry
US7024653B1 (en) * 2000-10-30 2006-04-04 Cypress Semiconductor Corporation Architecture for efficient implementation of serial data communication functions on a programmable logic device (PLD)
US6931543B1 (en) * 2000-11-28 2005-08-16 Xilinx, Inc. Programmable logic device with decryption algorithm and decryption key
US6981153B1 (en) * 2000-11-28 2005-12-27 Xilinx, Inc. Programmable logic device with method of preventing readback
GB0304628D0 (en) * 2003-02-28 2003-04-02 Imec Inter Uni Micro Electr Method for hardware-software multitasking on a reconfigurable computing platform
US7143295B1 (en) * 2002-07-18 2006-11-28 Xilinx, Inc. Methods and circuits for dedicating a programmable logic device for use with specific designs
US7059639B2 (en) * 2002-08-16 2006-06-13 Honda Giken Kogyo Kabushiki Kaisha Spaced-apart hood latch cable retaining system

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009066405A1 (ja) * 2007-11-19 2009-05-28 Panasonic Corporation 再構成可能な回路装置及び受信装置
US11099894B2 (en) 2016-09-28 2021-08-24 Amazon Technologies, Inc. Intermediate host integrated circuit between virtual machine instance and customer programmable logic
US11119150B2 (en) 2016-09-28 2021-09-14 Amazon Technologies, Inc. Extracting debug information from FPGAs in multi-tenant environments
JP2019534618A (ja) * 2016-09-29 2019-11-28 アマゾン テクノロジーズ インコーポレイテッド 暗号化された構成データを使用する論理リポジトリサービス
US11074380B2 (en) 2016-09-29 2021-07-27 Amazon Technologies, Inc. Logic repository service
US11171933B2 (en) 2016-09-29 2021-11-09 Amazon Technologies, Inc. Logic repository service using encrypted configuration data
US11182320B2 (en) 2016-09-29 2021-11-23 Amazon Technologies, Inc. Configurable logic platform with multiple reconfigurable regions
US11275503B2 (en) 2016-09-30 2022-03-15 Amazon Technologies, Inc. Controlling access to previously-stored logic in a reconfigurable logic device
US11115293B2 (en) 2016-11-17 2021-09-07 Amazon Technologies, Inc. Networked programmable logic service provider
WO2021186975A1 (ja) * 2020-03-19 2021-09-23 日本電気株式会社 課金情報処理装置、課金情報処理システム、課金情報処理方法及び課金情報処理プログラムが格納された非一時的なコンピュータ可読媒体
JP7468618B2 (ja) 2020-03-19 2024-04-16 日本電気株式会社 課金情報処理装置、課金情報処理システム、課金情報処理方法及び課金情報処理プログラム

Also Published As

Publication number Publication date
US20050069128A1 (en) 2005-03-31

Similar Documents

Publication Publication Date Title
JP2005107911A (ja) 書込情報生成用プログラム、ハードウェアへの情報書込用プログラム、これらのプログラムを記録したコンピュータ読み取り可能な記録媒体、書込情報生成装置及び情報書込装置
JP2005107911A5 (ja)
Kean Cryptographic rights management of FPGA intellectual property cores
US6904527B1 (en) Intellectual property protection in a programmable logic device
US8729922B2 (en) Licensing programmable hardware sub-designs using a host-identifier
US7240218B2 (en) Method of using a mask programmed key to securely configure a field programmable gate array
US20020199110A1 (en) Method of protecting intellectual property cores on field programmable gate array
US7366306B1 (en) Programmable logic device that supports secure and non-secure modes of decryption-key access
CN100566244C (zh) 在数字权限管理***中离线发布发行者使用许可证
US8417965B1 (en) Method and circuit for secure definition and integration of cores
TW456103B (en) Reconfigurable secure hardware apparatus and method of operation
US20070288765A1 (en) Method and Apparatus for Secure Configuration of a Field Programmable Gate Array
US9152822B2 (en) Method and apparatus for securing programming data of a programmable device
US20020157080A1 (en) Design method of a logic circuit
CN102693376A (zh) 用于建立未来要创建的数字内容的使用权限的方法和设备
JP2004519111A (ja) プログラム暗号化を伴うフィールドプログラマブルゲートアレイ
Zhang et al. Enhancing security of FPGA-based embedded systems with combinational logic binding
KR100826544B1 (ko) 반도체 집적 회로
US8612772B1 (en) Security core using soft key
EP1124330A2 (en) Method of using a mask programmed secret key to securely configure a field programmable gate array
US6748368B1 (en) Proprietary core permission structure and method
Barbareschi et al. Partial FPGA bitstream encryption enabling hardware DRM in mobile environments
CN117337435A (zh) 用于交易数字资产的方法
Soudan et al. IP protection of FPGA cores through a novel public/secret-key encryption mechanism
Zhang Combinational Logic Binding for FPGA System Security

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060808

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060808

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20081114

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081202

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20090512