JP2002050956A - Field programmable gate array - Google Patents

Field programmable gate array

Info

Publication number
JP2002050956A
JP2002050956A JP2000212303A JP2000212303A JP2002050956A JP 2002050956 A JP2002050956 A JP 2002050956A JP 2000212303 A JP2000212303 A JP 2000212303A JP 2000212303 A JP2000212303 A JP 2000212303A JP 2002050956 A JP2002050956 A JP 2002050956A
Authority
JP
Japan
Prior art keywords
configuration data
gate array
programmable gate
field programmable
decryption key
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
JP2000212303A
Other languages
Japanese (ja)
Inventor
Paul Jeffrey Garnett
ポール・ジェフリー・ガーネット
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.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems Inc
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 Sun Microsystems Inc filed Critical Sun Microsystems Inc
Priority to JP2000212303A priority Critical patent/JP2002050956A/en
Publication of JP2002050956A publication Critical patent/JP2002050956A/en
Pending legal-status Critical Current

Links

Abstract

PROBLEM TO BE SOLVED: To prevent the data structure from being intercepted upon reconfiguration of volatile FPGA. SOLUTION: For example, upon power source making, ciphered configuration data are fed to the input terminal of FPGA. In FPGA, the configuration data are first decoded by decoding algorithm embedded in the logic. This algorithm uses nonvolatile memory in FPGA, such as decoding key stored in an EEPROM, as an operand. The decoded configuration data are distributed to volatile function part in FPGA in conventional way. According to this design, even when the streams of configuration data which are transmitted from the external memory to FPGA upon reconfiguration are intercepted, the intercepting part can obtain only ciphered configuration data. Thus, this design can improve security, protecting intellectual property of commercial value and secret information, consisting of non-ciphered configuration data.

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION

【0001】[0001]

【発明の属する技術分野】本発明はフィールド・プログ
ラマブル・ゲート・アレイに関し、限定しないが特に、
揮発性フィールド・プログラマブル・ゲート・アレイに
関する。
FIELD OF THE INVENTION The present invention relates to field programmable gate arrays, and in particular, but not exclusively, to:
The present invention relates to a volatile field programmable gate array.

【0002】[0002]

【従来の技術】フィールド・プログラマブル・ゲート・
アレイ(FPGA)は、論理構造を含む機能部分を含
み、その構成は、設計段階で、関係するアプリケーショ
ンに対して特定される構成データによって決められる状
態にプログラム可能であり、FPGAにロード可能であ
る。
2. Description of the Related Art Field programmable gates
Arrays (FPGAs) include functional parts, including logical structures, whose configuration is programmable at the design stage to a state determined by configuration data specified for the application concerned and can be loaded into the FPGA. .

【0003】揮発性技術に基づくFPGAは、広く使用
されている。AlteraコーポレーションおよびXi
linx社の各社が、この分野で活動的である。このよ
うな揮発性FPGAは、電力が除去されるときにその構
成を失う。したがって揮発性FPGAは、電源投入時
に、外部で保持される構成データを再ロードすることに
よって再構成される。この機能を実行するために、揮発
性FPGAには、それぞれの構成データをFPGAの機
能部分内の適切な素子にルーティングするための回路が
備わっている。
[0003] FPGAs based on volatile technology are widely used. Altera Corporation and Xi
Linx companies are active in this area. Such volatile FPGAs lose their configuration when power is removed. Thus, the volatile FPGA is reconfigured at power up by reloading the externally held configuration data. To perform this function, the volatile FPGA is equipped with circuitry to route the respective configuration data to the appropriate elements in the functional part of the FPGA.

【0004】電源投入時に構成データを再ロードすると
き、外部構成データ記憶装置とFPGAとの間のデータ
・ストリームを傍受して、FPGAが構成されている通
りの構成データを観察することは比較的簡単であろう。
さらに、プログラムされたFPGAの未許可リバース・
エンジニアリングが、傍受した構成データを利用する可
能性もある。
When reloading configuration data at power up, it is relatively difficult to intercept the data stream between the external configuration data storage device and the FPGA and observe the configuration data as it is configured. It would be easy.
In addition, unauthorized reverse of programmed FPGAs
Engineering may also use the intercepted configuration data.

【0005】第1の可能性は、公開市場でプログラムさ
れてないFPGAを入手して、傍受した構成データでそ
れらをプログラムすることであろう。
[0005] A first possibility would be to obtain unprogrammed FPGAs on the open market and program them with intercepted configuration data.

【0006】第2の可能性は、構成データからFPGA
の設計を論理レベルでリバース・エンジニアリングし、
かつ、傍受した構成データまたは他の構成データでプロ
グラムされた設計でFPGAを製造することである。こ
れは、傍受した構成データとその結果得られるFPGA
の構成との関係が分かれば可能となる。次いで、例えば
元のFPGA論理の未許可リバース・エンジニアリング
を他の設計の足掛かりとして使用するためや、その設計
が元のFPGAからのリバース・エンジニアリングによ
って得られたものであることを隠すために、リバース・
エンジニアリングしたFPGA設計に修正を加えること
も可能である。
[0006] The second possibility is that an FPGA
Reverse engineer the design at the logical level,
And to manufacture an FPGA with a design programmed with intercepted configuration data or other configuration data. This is because the intercepted configuration data and the resulting FPGA
It becomes possible if the relationship with the configuration is known. The reverse is then used, for example, to use the unauthorized reverse engineering of the original FPGA logic as a starting point for another design or to hide that the design was obtained by reverse engineering from the original FPGA.・
Modifications can also be made to the engineered FPGA design.

【0007】第3の可能性は、構成データとその結果得
られるFPGAの構成との関係が分からない場合に採用
できるが、スライス・アンド・スキャン方法、または他
のハードウェア・クローニング技術を使用してFPGA
をハードウェア・レベルでリバース・エンジニアリング
することであろう。
A third possibility can be employed when the relationship between the configuration data and the resulting FPGA configuration is not known, but using slice and scan methods or other hardware cloning techniques. FPGA
Will be reverse engineered at the hardware level.

【0008】したがって、おそらくかなりの期間にわた
り設計者のチームを伴って元の設計作業の後に生み出さ
れたかも知れない商業的価値のある構成データが未許可
複製される潜在性がある。さらに、FPGA構成プロセ
スの間の未許可の傍受で得られた構成データの使用によ
り、FPGAハードウェアが論理レベルで未許可リバー
ス・エンジニアリングされる潜在性もある。
[0008] Thus, there is the potential for unauthorized duplication of commercially valuable configuration data that may have been produced after the original design work, possibly with a team of designers for a significant period of time. In addition, the use of configuration data obtained from unauthorized interception during the FPGA configuration process has the potential for unauthorized reverse engineering of the FPGA hardware at the logical level.

【0009】[0009]

【発明が解決しようとする課題】本発明の目的は、揮発
性フィールド・プログラマブル・ゲート・アレイ(FP
GA)を揮発後に再構成させるとき、外部から送られて
きた構成用データを傍受されてもその内容を分からない
ようにする。
SUMMARY OF THE INVENTION It is an object of the present invention to provide a volatile field programmable gate array (FP).
When reconstructing the GA) after volatilization, the content of the configuration data sent from the outside should not be known even if it is intercepted.

【0010】[0010]

【課題を解決するための手段】本発明による特定の好ま
しい態様は、添付の独立クレームおよび従属クレームに
述べる。従属クレームの特徴は、適切に、クレームに明
示的に述べる特徴以外の組み合わせで、独立クレームの
特徴と組み合わせることができる。
Certain preferred embodiments according to the present invention are set out in the accompanying independent and dependent claims. Features of the dependent claims may be combined with features of the independent claims as appropriate, in combinations other than those explicitly stated in the claims.

【0011】本発明の第1の態様によれば、暗号化され
た構成データを受け取るように構成され、再構成中、例
えば電源投入時に受け取った暗号化された構成データに
作用してそれを復号するための復号論理をその入力側に
有するフィールド・プログラマブル・ゲート・アレイが
提供される。復号化された構成データは、次いで、フィ
ールド・プログラマブル・ゲート・アレイ内で従来方式
で処理される。すなわち、フィールド・プログラマブル
・ゲート・アレイの機能部分の論理構造を構成するよう
に配信される。
According to a first aspect of the present invention, the system is configured to receive encrypted configuration data, and upon decryption, acts on the encrypted configuration data received at power up, for example, to decrypt it. There is provided a field programmable gate array having decoding logic at its input side to perform the decoding. The decoded configuration data is then processed in a conventional manner in a field programmable gate array. That is, it is distributed so as to constitute the logical structure of the functional part of the field programmable gate array.

【0012】本発明の一実施態様では、復号論理が、F
PGA内に記憶された復号鍵にアクセスする。次いで復
号アルゴリズムが、この鍵をオペランドとして使用す
る。復号アルゴリズムは、ステートレスであるよりもス
テートフルである方が好ましい。ステートフルなアルゴ
リズムは、標準的なリニア・フィードバック・シフト・
レジスタ(LFSR)設計に基づくハードウェア中で実
現することができる。通常、鍵メモリは、不揮発性記憶
素子、例えばEEPROMで形成され、ゲート・アレイ
の機能部分は、揮発性素子、例えばSRAMで形成され
る。鍵サイズは、通常およそ1キロビットまたはそれ以
上とすることができる。このサイズは、現在のコード・
クラッキング技術を顧慮した所望のデータ安全性レベル
を提供するように選択される。いくつかのアプリケーシ
ョンには、より小さいサイズ、例えば64ビット、12
8ビット、または256ビットでも適する場合がある。
In one embodiment of the invention, the decoding logic is F
Access the decryption key stored in the PGA. The decryption algorithm then uses this key as an operand. Preferably, the decoding algorithm is stateful rather than stateless. Stateful algorithms use standard linear feedback shift
It can be implemented in hardware based on register (LFSR) design. Usually, the key memory is formed of a nonvolatile storage element, for example, an EEPROM, and the functional part of the gate array is formed of a volatile element, for example, an SRAM. The key size can typically be on the order of 1 kilobit or more. This size is
It is selected to provide the desired level of data security taking into account cracking techniques. For some applications, smaller sizes, eg, 64 bits, 12
Eight bits or even 256 bits may be suitable.

【0013】鍵メモリが一般に、FPGAの機能部分の
ゲート・アレイに比べてFPGAの小部分しか形成しな
いことになるため、鍵メモリは、歩留りに有利な比較的
大きい機構サイズのハードウェア中で実現することがで
きる。
Since the key memory generally only forms a small portion of the FPGA as compared to the gate array of the functional portion of the FPGA, the key memory is implemented in relatively large feature size hardware that is advantageous for yield. can do.

【0014】本発明の第2の態様によれば、フィールド
・プログラマブル・ゲート・アレイ構成データを処理す
る方法が提供される。この方法は、構成データを入力す
ること、構成データを暗号化すること、および暗号化し
た構成データを構成データ・メモリに、または続いて構
成データ・メモリにロードするために中間記録媒体に記
憶することを含む。暗号化は、暗号鍵を利用するアルゴ
リズムを使用することができる。復号鍵は暗号鍵から生
成することができ、次いで復号鍵は、暗号化した構成デ
ータを供給することが意図されるフィールド・プログラ
マブル・ゲート・アレイの不揮発性メモリに埋め込むこ
とができる。
According to a second aspect of the present invention, there is provided a method of processing field programmable gate array configuration data. The method includes inputting configuration data, encrypting the configuration data, and storing the encrypted configuration data in a configuration data memory or subsequently on an intermediate recording medium for loading into the configuration data memory. Including. The encryption can use an algorithm that utilizes an encryption key. The decryption key can be generated from the encryption key, which can then be embedded in the non-volatile memory of the field programmable gate array intended to provide the encrypted configuration data.

【0015】本発明の第3の態様によれば、フィールド
・プログラマブル・ゲート・アレイを再構成する方法が
提供される。この方法は、暗号化された構成データをフ
ィールド・プログラマブル・ゲート・アレイに入力し、
暗号化された構成データを復号し、および復号した構成
データを配信してフィールド・プログラマブル・ゲート
・アレイを構成することを含む。本発明のこの第3の態
様では、復号ステップは、フィールド・プログラマブル
・ゲート・アレイ内に不揮発性の形で記憶された復号鍵
をアルゴリズムのオペランドとして使用して、暗号化さ
れた構成データに復号アルゴリズムを適用することを含
むことができる。復号アルゴリズムは、ステートフルま
たはステートレスとすることができる。
According to a third aspect of the present invention, there is provided a method for reconfiguring a field programmable gate array. The method inputs encrypted configuration data into a field programmable gate array,
Decrypting the encrypted configuration data and distributing the decrypted configuration data to configure the field programmable gate array. In this third aspect of the invention, the decrypting step comprises decrypting the encrypted configuration data using a decryption key stored in a non-volatile form within the field programmable gate array as an operand of the algorithm. It can include applying an algorithm. The decoding algorithm can be stateful or stateless.

【0016】本発明の第4の態様によれば、外部から入
力された暗号化された構成データに従って構成できるフ
ィールド・プログラマブル・ゲート・アレイが提供され
る。ゲート・アレイは、復号鍵と共にロードされる不揮
発性記憶素子を有し、また、構成データ入力チャネルの
一部をなすデータ操作素子であって、復号鍵に応答し
て、入力チャネルを通過する構成データに復号アルゴリ
ズムを適用するように構成されるデータ操作素子も有す
る。
According to a fourth aspect of the present invention, there is provided a field programmable gate array configurable in accordance with externally input encrypted configuration data. The gate array has a non-volatile storage element loaded with the decryption key, and is a data manipulation element that is part of the configuration data input channel, the data manipulation element passing through the input channel in response to the decryption key. There is also a data manipulation element configured to apply a decoding algorithm to the data.

【0017】さらに、フィールド・プログラマブル・ゲ
ート・アレイ・モジュールも提供でき、このモジュール
は、フィールド・プログラマブル・ゲート・アレイなら
びに不揮発性構成データ・メモリを含み、このフィール
ド・プログラマブル・ゲート・アレイおよびそのメモリ
は、構成データ転送リンクによって相互接続される。
Further, a field programmable gate array module can be provided, including a field programmable gate array and a non-volatile configuration data memory, the field programmable gate array and its memory. Are interconnected by a configuration data transfer link.

【0018】本発明の代替実施態様では、デフォルト状
態を有し、構成データによってプログラム状態に構成可
能である構成可能論理構造と、暗号化された構成データ
を受け取るための入力端子と、プログラム状態を決める
ための構成データのセットを記憶するためのデータ記憶
域とを含むフィールド・プログラマブル・ゲート・アレ
イが提供され、構成可能論理構造は、デフォルト状態
で、入力端子から受け取った暗号化された構成データを
復号するように、かつ、復号した構成データを、続いて
構成可能論理構造をプログラム状態に再構成するために
データ記憶域に出力するように働く。データ記憶域は複
数の構成データ保持レジスタを含むことができ、構成可
能論理構造による復号の完了を検出するように、かつ、
データ保持レジスタをトリガして、データ記憶域に記憶
された構成データを構成可能論理構造にロードするよう
に接続される状態機械を備えることもできる。
In an alternative embodiment of the invention, a configurable logic structure having a default state and configurable to a program state by configuration data, an input terminal for receiving encrypted configuration data, and a program state. A field programmable gate array including a data storage area for storing a set of configuration data for determining the encrypted configuration data received from the input terminal in a default state. And outputs the decoded configuration data to a data storage for subsequent reconfiguration of the configurable logic structure into a programmed state. The data storage may include a plurality of configuration data holding registers, to detect completion of decoding by the configurable logic structure, and
A state machine connected to trigger the data holding register to load the configuration data stored in the data storage into the configurable logic structure may also be provided.

【0019】したがって、本発明の上記の実施態様およ
び態様によれば、FPGA製造業者によって設計された
論理構造と、FPGAアプリケーション設計者によって
特定のアプリケーション用に開発された構成データの両
方の点で、FPGA設計に組み入れられた知的財産およ
び機密情報の安全性を高めることが可能である。復号す
なわちスクランブル解除の回路がFPGAの内部に配置
され、FPGAの外部からそれに供給された構成データ
に作用する。したがって、FPGAに供給される構成デ
ータは、FPGAを使用する外部回路に対して暗号化さ
れた形でFPGAの外部に記憶される。したがって、例
えばFPGAに電源投入する間に傍受することによっ
て、構成データを入手することは、スクランブルされな
い生の形の構成データではなく暗号化された構成データ
を見ることになる。したがって、暗号化された構成デー
タとFPGAの論理設計との関係を確立する作業を、よ
り一層困難なものにすることができる。というのは、こ
の関係が暗号化によって、より透過性の低いものにされ
るからである。さらに、同じ生の構成データが複数のF
PGAにプログラムされる場合でも、異なるFPGAに
異なる暗号化を使用することができ、したがって、傍受
した構成データの変換処理は、依然として難しいものに
される。
Thus, according to the above embodiments and aspects of the present invention, both in terms of the logical structure designed by the FPGA manufacturer and the configuration data developed for a particular application by the FPGA application designer, It is possible to increase the security of intellectual property and confidential information incorporated in the FPGA design. A decoding or descrambling circuit is located inside the FPGA and operates on configuration data supplied to it from outside the FPGA. Therefore, the configuration data supplied to the FPGA is stored outside the FPGA in an encrypted form for an external circuit using the FPGA. Thus, obtaining configuration data, for example by intercepting while powering up the FPGA, will see the encrypted configuration data rather than the raw, unscrambled configuration data. Therefore, the task of establishing the relationship between the encrypted configuration data and the logic design of the FPGA can be made even more difficult. This is because the relationship is made less transparent by encryption. In addition, the same raw configuration data
Even when programmed into the PGA, different encryptions can be used for different FPGAs, thus making the conversion process of intercepted configuration data still difficult.

【0020】本発明の一実施態様では、アプリケーショ
ン設計者は、復号プロセスの少なくとも1つの態様を定
義する責任を負う。以下にさらに述べるこの実施態様で
は、設計者は復号鍵を定義する。設計者によって定義さ
れた鍵をオペランドとして使用する復号アルゴリズム
は、FPGA製造業者によって予め決められ、通常、F
PGAハードウェアに埋め込まれることになる。対応す
る暗号鍵および暗号化アルゴリズムもまた定義される。
対応する暗号鍵と復号鍵は、同一でも異なるものでもよ
い。
In one embodiment of the invention, the application designer is responsible for defining at least one aspect of the decryption process. In this embodiment, described further below, the designer defines a decryption key. The decryption algorithm that uses the key defined by the designer as the operand is predetermined by the FPGA manufacturer and is typically
It will be embedded in PGA hardware. The corresponding encryption key and encryption algorithm are also defined.
The corresponding encryption key and decryption key may be the same or different.

【0021】ある手法では、FPGAに入力端子が備わ
り、これを通してアプリケーション設計者は、FPGA
内の不揮発性メモリに鍵を入力することができる。この
実施態様では、後に鍵が未許可でアクセスされるのを防
ぐために、鍵の不揮発性メモリへの以後の外部アクセス
をディスエーブルにするための構造も備わることが好ま
しい。例えば、鍵入力端子は、ディスエーブル信号に応
答するように製造することができ、このディスエーブル
信号は、受け取られると、復号鍵への以後の外部通信が
閉鎖されるようにFPGA中で不可逆的な変更を引き起
こす。
In one approach, the FPGA is provided with an input terminal through which the application designer can access the FPGA.
Key can be entered into a non-volatile memory in the device. In this embodiment, it is also preferred to provide a structure for disabling subsequent external access of the key to the non-volatile memory to prevent unauthorized access of the key later. For example, the key input can be manufactured to respond to a disable signal that, when received, is irreversible in the FPGA such that subsequent external communication to the decryption key is closed. Cause significant changes.

【0022】別の手法では、アプリケーション設計者が
それにより鍵の不揮発性メモリを外部からプログラムで
きる入力端子はない。その代わり、アプリケーション設
計者は、FPGA製造業者に所望の鍵を通知し、製造業
者は、製造プロセスの一部としてその鍵を埋め込む。
In another approach, there is no input terminal by which the application designer can externally program the non-volatile memory of the key. Instead, the application designer notifies the FPGA manufacturer of the desired key, and the manufacturer embeds the key as part of the manufacturing process.

【0023】最初に述べた手法には、アプリケーション
設計者だけに知られることが必要な鍵情報に関する安全
性が向上する利点がある。2番目に述べた手法には、F
PGAがその不揮発性鍵メモリに外部からアクセス可能
なチャネルを有しない利点がある。
The technique described first has the advantage of improving the security of key information that needs to be known only to the application designer. The second technique described is F
PGA has the advantage that it has no externally accessible channel in its non-volatile key memory.

【0024】アプリケーション設計者には、アプリケー
ション設計の完了後、暗号化された構成データ・セット
を生成する作業、すなわち暗号化されていない生の構成
データから暗号化された構成データを生成する作業を与
えることができる。このためにアプリケーション設計者
は、設計ツールと共に、前述の復号鍵に対応する暗号鍵
を使用することになり、この設計ツールはFPGA製造
業者から提供することができ、この中には、PFGAに
埋め込まれた復号アルゴリズムの逆関数を含む暗号化ア
ルゴリズムがプログラムされる。この設計ツールは、ソ
フトウェアまたはハードウェア・ベースとすることがで
きる。
After the application design is completed, the application designer is required to perform an operation of generating an encrypted configuration data set, that is, an operation of generating encrypted configuration data from raw unencrypted configuration data. Can be given. To this end, the application designer will use an encryption key corresponding to the aforementioned decryption key together with the design tool, which can be provided by the FPGA manufacturer, in which the PFGA is embedded. An encryption algorithm is programmed that includes the inverse function of the decryption algorithm. This design tool can be software or hardware based.

【0025】構成データが暗号化された形で記憶され、
また暗号化された形で電源投入中にFPGAに転送され
るため、リバース・エンジニアリングに対するバリアが
設立される。クローニングが試みられる場合、侵害者
は、どのように暗号化および復号化が構成されているか
を知る必要があるが、この情報をFPGAから得ること
は、極端に困難になると思われる。FPGAハードウェ
アのリバース・エンジニアリングは、設計者によって定
義された復号データを記憶するのに使用される不揮発性
記憶素子をFPGAチップの方々に点在させることによ
り、より一層難しくすることができる。このようにして
素子を分散させる技術は、安全なマイクロコントローラ
設計の技術分野から知られるが、この場合、ROM素子
は分散され、あるいは空間的に点在させられ、したがっ
て、これらは、次いで自動的に走査される可能性のある
規則的かつ認識可能なパターンを形成しない。
The configuration data is stored in an encrypted form,
It is also transferred to the FPGA in encrypted form during power-up, creating a barrier to reverse engineering. If cloning is attempted, the infringer needs to know how the encryption and decryption are configured, but obtaining this information from the FPGA would be extremely difficult. Reverse engineering of FPGA hardware can be made even more difficult by interspersing non-volatile storage elements used to store decoded data defined by the designer on the FPGA chips. Techniques for dispersing elements in this manner are known from the art of secure microcontroller design, where the ROM elements are dispersed or spatially interspersed, so that they are then automatically Do not form a regular and recognizable pattern that can be scanned.

【0026】本発明をよりよく理解できるように、か
つ、本発明がどのように実行されるかを示すために、本
発明を添付の図面を参照しながら例によって以下に述べ
る。
The present invention will now be described, by way of example, with reference to the accompanying drawings, in order to better understand the invention and to show how the invention may be implemented.

【0027】[0027]

【発明の実施の形態】図1は、フィールド・プログラマ
ブル・ゲート・アレイ(FPGA)1、およびメモリ4
の形をとる関連の構成データ記憶域の概略ブロック図で
ある。FPGA1は、プログラマブル・ゲート・アレイ
構造を含む機能部分3を含む。プログラマブル・ゲート
・アレイ構造は、例えばM×Nアレイの構成可能論理ブ
ロック(CLB)(図示せず)を含む。FPGA1は、
通信リンク9を介して構成データ・メモリ4に接続さ
れ、この通信リンク9は、一方で構成データ・メモリ4
の出力端子7に、他方でFPGA1の入力端子に接続さ
れる。
FIG. 1 shows a field programmable gate array (FPGA) 1 and a memory 4.
FIG. 4 is a schematic block diagram of an associated configuration data storage in the form of The FPGA 1 includes a functional part 3 including a programmable gate array structure. The programmable gate array structure includes, for example, an M × N array of configurable logic blocks (CLBs) (not shown). FPGA1 is
It is connected via a communication link 9 to the configuration data memory 4, which on the one hand
And the other end is connected to the input terminal of the FPGA 1.

【0028】FPGA1はまた、論理5およびメモリ6
の形をとる構成データ復号回路を含む。復号回路は入力
端子8と復号回路の入力端子との間に伸びる通信リンク
10を介して受け取った構成データに復号プロセスを適
用する。復号回路はまた、機能部分を構成するように通
信リンク11を介してFPGAの機能部分3に、復号し
た構成データを出力するための出力端子も含む。
FPGA 1 also includes logic 5 and memory 6
And a configuration data decoding circuit in the form of The decoding circuit applies a decoding process to the configuration data received via the communication link 10 extending between the input 8 and the input of the decoding circuit. The decoding circuit also includes an output terminal for outputting the decoded configuration data to the functional part 3 of the FPGA via the communication link 11 to form a functional part.

【0029】メモリ6は、復号鍵を記憶する働きをし、
論理5は、復号鍵をアルゴリズムのオペランドとして使
用して、構成データに復号アルゴリズムを適用するよう
に構成される。オペランドを定義する鍵データは、メモ
リ6から通信リンク16を介して論理5にロード可能で
ある。復号鍵記憶域6は、EEPROM技術すなわちE
2PROM技術に基づく不揮発性素子で形成される。あ
るいは、不揮発性素子は、フラッシュ・メモリ、ヒュー
ジブル・リンクPROM、UV−EPROM、OTPR
OM、強誘電体セル、レーザ・プログラマブル・ヒュー
ズ、または、FPGA1中の他の場所で使用される技術
と互換する他のどんな適した技術にも基づくことができ
る。技術の複数の組合せを単一のFPGA中で使用する
こともできる。
The memory 6 serves to store a decryption key,
Logic 5 is configured to apply the decryption algorithm to the configuration data using the decryption key as an operand of the algorithm. Key data defining the operands can be loaded from the memory 6 to the logic 5 via the communication link 16. The decryption key storage area 6 uses the EEPROM technology,
2 It is formed of a nonvolatile element based on PROM technology. Alternatively, the nonvolatile element is a flash memory, a fusible link PROM, a UV-EPROM, an OTPR
It can be based on OM, ferroelectric cell, laser programmable fuse, or any other suitable technology that is compatible with the technology used elsewhere in FPGA1. Multiple combinations of technologies can be used in a single FPGA.

【0030】不揮発性復号鍵記憶域6には、製造段階か
製造前のいずれかに、図1に破線で示す復号鍵入力端子
13を介して復号鍵がロード可能である。FPGA1は
また、ヒュージブル・スイッチの形をとるディスエーブ
ル化素子14も含むが、この目的は、ディスエーブル化
素子14が活動化された後で、復号鍵入力端子13から
復号鍵記憶域6への外部通信を閉鎖することである。デ
ィスエーブル化素子14は、復号鍵入力端子13に加え
ることのできるディスエーブル化信号の受領がディスエ
ーブル化スイッチ中で不可逆的な変更を引き起こし、以
後そのスイッチを永続的にオープン状態にするように、
ディスエーブル化信号に応答する。この設計により、ア
プリケーション設計者は、復号鍵を復号鍵記憶域6にロ
ードし、その復号鍵が首尾よくロードされたことを確認
し、次いでディスエーブル化信号を復号鍵記憶域6の入
力端子13に発行してディスエーブル化素子14を活動
化させることができる。
A decryption key can be loaded into the non-volatile decryption key storage area 6 through a decryption key input terminal 13 shown by a broken line in FIG. The FPGA 1 also includes a disabling element 14 in the form of a fusible switch, the purpose of which is to connect the decryption key input 13 to the decryption key storage 6 after the disabling element 14 is activated. It is to close external communication. The disabling element 14 is such that the receipt of a disabling signal that can be applied to the decryption key input terminal 13 causes an irreversible change in the disabling switch, and thereafter permanently opens the switch. ,
Responds to the disable signal. With this design, the application designer loads the decryption key into the decryption key storage 6, confirms that the decryption key was successfully loaded, and then outputs the disable signal to the input terminal 13 of the decryption key storage 6. To activate the disable element 14.

【0031】FPGA1の機能部分3は、SRAM技術
に基づく揮発性素子で形成される。FPGA1の機能部
分3のSRAM技術は、一般に、不揮発性復号鍵記憶域
6に使用されるEEPROM技術と互換できる。あるい
は、他のFPGA構成要素、特に復号鍵記憶域6に使用
される技術との互換性の要件を満たす他の技術を機能部
分3に使用することもできる。
The functional part 3 of the FPGA 1 is formed by a volatile element based on the SRAM technology. The SRAM technology of the functional part 3 of the FPGA 1 is generally compatible with the EEPROM technology used for the nonvolatile decryption key storage 6. Alternatively, other techniques that meet the requirements for compatibility with other FPGA components, especially those used for the decryption key storage 6, can be used for the functional part 3.

【0032】安全性をさらに高めるために、復号鍵メモ
リ6の不揮発性素子は、FPGA1の機能部分3の揮発
性素子の間に物理的に分散させられる。この手順によ
り、物理的チップ配置は、よりリバース・エンジニアリ
ングを受けにくいものになる。図5に、FPGA1の各
部、すなわち機能部分3、復号鍵記憶域6、および復号
アルゴリズム論理5のチップ配置を概略的に示す。復号
鍵記憶域6の不揮発性素子は、機能部分3の揮発性素子
間のチップ配置にわたって分散させられている。複数の
安全ビットを構成データ・メモリ・ブロックの領域にわ
たって分散させたプログラマブル論理デバイスは、Ch
iang他に譲渡された米国特許第5,349,249
号に記載されており、この内容を参照により本明細書に
組み込む。
To further increase the security, the non-volatile elements of the decryption key memory 6 are physically distributed among the volatile elements of the functional part 3 of the FPGA 1. This procedure makes the physical chip placement less susceptible to reverse engineering. FIG. 5 schematically shows a chip arrangement of each part of the FPGA 1, that is, the functional part 3, the decryption key storage area 6, and the decryption algorithm logic 5. The non-volatile elements of the decryption key storage area 6 are distributed over the chip arrangement between the volatile elements of the functional part 3. A programmable logic device having a plurality of safety bits distributed over the area of the configuration data memory block is a Ch
U.S. Pat. No. 5,349,249 assigned to Iang et al.
And the contents of which are incorporated herein by reference.

【0033】FPGAに基づくシステムを設計するため
に、アプリケーション技術者は、FPGA1の機能部分
3をプログラムするための構成データを従来の方式で準
備することになる。次いで設計者は暗号鍵を選択し、そ
の暗号鍵を、設計ツールとして設計者が利用できる暗号
化アルゴリズムに入力する。次いで設計者は、自分が指
定した暗号鍵を使用する暗号化アルゴリズムを適用して
構成データを暗号化する。次いで暗号化された構成デー
タは、設計者によって、不揮発性メモリまたは他のいず
れかの適した記録媒体に組み入れることのできる構成デ
ータ記憶域4に記憶される。総称暗号化アルゴリズム
は、FPGA1の復号アルゴリズム論理5に組み入れら
れた復号アルゴリズムを形成する逆関数を有する。設計
者指定の暗号鍵も対応する復号鍵を有し、これも再び、
恒等関数とすることのできる逆関数によって結び付けら
れ、この復号鍵は、図1を参照しながら上にさらに述べ
たように、設計者によって直接、または設計者の要請で
製造業者によって、FPGA1の復号鍵記憶域6にロー
ドされる。
In order to design a system based on the FPGA, the application technician will prepare the configuration data for programming the functional part 3 of the FPGA 1 in a conventional manner. The designer then selects an encryption key and inputs the encryption key into an encryption algorithm that can be used by the designer as a design tool. Next, the designer encrypts the configuration data by applying an encryption algorithm using the encryption key specified by the designer. The encrypted configuration data is then stored by the designer in a configuration data storage 4 that can be incorporated into non-volatile memory or any other suitable recording medium. The generic encryption algorithm has the inverse function forming the decryption algorithm incorporated in the decryption algorithm logic 5 of the FPGA 1. The designer-designated encryption key also has a corresponding decryption key, which, again,
Linked by an inverse function, which can be an identity function, this decryption key is obtained by the FPGA 1 directly or by the manufacturer at the request of the designer, as described further above with reference to FIG. It is loaded into the decryption key storage area 6.

【0034】図2に、設計者主導の構成データ暗号化プ
ロセスを流れ図の形で示す。この方法は、ステップ20
で構成データ・セットを入力し、次いでステップ21
で、図1を参照しながら上にさらに述べた設計者指定の
暗号鍵22をオペランドとして有する暗号化アルゴリズ
ム23を構成データ・セットに適用することによって進
行する。次いで、ステップ21で産出された暗号化され
た構成データ・セットは、ステップ24で、図1に示す
構成データ記憶域4や中間記憶媒体などの記録媒体上に
記憶される。
FIG. 2 illustrates, in flow chart form, a designer-led configuration data encryption process. The method includes step 20
To enter the configuration data set, then step 21
Proceed by applying an encryption algorithm 23 having the designer-specified encryption key 22 as an operand, described further above with reference to FIG. 1, to the configuration data set. Next, the encrypted configuration data set generated in step 21 is stored in a storage medium such as the configuration data storage area 4 and the intermediate storage medium shown in FIG. 1 in step 24.

【0035】図3に、設計者主導によってFPGA1の
不揮発性復号鍵記憶域6に復号鍵を記憶することを概略
的な流れ図の形で示す。このプロセスは、ステップ30
で暗号鍵を入力し、ステップ31で暗号鍵から復号鍵を
生成し、ステップ32でFPGA1の復号鍵記憶域6に
復号鍵を書き込むことによって進行する。
FIG. 3 shows, in a schematic flow chart, storing a decryption key in the nonvolatile decryption key storage area 6 of the FPGA 1 under the initiative of the designer. This process comprises step 30
In step 31, a decryption key is generated from the encryption key in step 31, and the decryption key is written in the decryption key storage area 6 of the FPGA 1 in step 32, thereby proceeding.

【0036】図4に、構成データ記憶域4からの暗号化
された構成データで図1のFPGA1を再構成する方法
を流れ図の形で示す。再構成は通常、電源投入時に行わ
れるが、いくつかの設計では実行中に行われることもあ
る。暗号化された構成データは、ステップ40でFPG
Aに入力され、次いでステップ41で、暗号化された構
成データに復号アルゴリズム43を適用することによっ
て復号される。復号アルゴリズム43は、FPGA1の
復号鍵記憶域6に記憶された復号鍵42を使用する。復
号された構成データは、ステップ44でFPGA1の機
能部分3内に配信され、それによりFPGA1を構成す
る。復号アルゴリズム論理5に組み入れられる復号アル
ゴリズム43は、安全性をさらに高めるためにステート
フルだが、より安全性の低いシステムではステートレス
とすることもできる。ステートフルな復号アルゴリズム
は、例えばリニア・フィードバック・シフト・レジスタ
設計を使用するハードウェア中で実現することができ
る。
FIG. 4 shows, in the form of a flowchart, a method for reconfiguring the FPGA 1 of FIG. 1 with the encrypted configuration data from the configuration data storage area 4. Reconfiguration is typically performed at power-on, but may be performed on-the-fly in some designs. At step 40, the encrypted configuration data is
A and then decrypted in step 41 by applying a decryption algorithm 43 to the encrypted configuration data. The decryption algorithm 43 uses the decryption key 42 stored in the decryption key storage area 6 of the FPGA 1. The decrypted configuration data is delivered to the functional part 3 of the FPGA 1 in step 44, thereby configuring the FPGA 1. The decoding algorithm 43 incorporated in the decoding algorithm logic 5 is stateful for further security, but may be stateless in less secure systems. The stateful decoding algorithm can be implemented in hardware using, for example, a linear feedback shift register design.

【0037】図6に、本発明の代替実施形態を示す。図
1の実施形態の部分と同様の機能を有する部分に、同じ
参照番号を使用する。
FIG. 6 shows an alternative embodiment of the present invention. The same reference numbers are used for parts having functions similar to those of the embodiment of FIG.

【0038】先の実施形態のように、通信リンク9、出
力端子7、および入力端子8を介して相互接続されるF
PGA1および関連の構成データ・メモリ4を示す。F
PGA1はまた、復号目的で鍵データを提供するために
通信リンク16に接続された鍵データ・メモリ6も含
む。
As in the previous embodiment, F interconnected via communication link 9, output terminal 7, and input terminal 8
1 shows a PGA 1 and an associated configuration data memory 4. F
PGA 1 also includes a key data memory 6 connected to communication link 16 to provide key data for decryption purposes.

【0039】先の実施形態とは対照的に、専用の復号回
路が備わるのではなく、FPGAの機能部分3および状
態機械17中に復号機能が含まれる。状態機械17は、
構成データのセットの復号が完了するのを検出し、それ
に応答してFPGAの機能部分3への通信リンク25上
に出力を生成するように構成される。状態機械17の役
割は、FPGAの機能部分3の設計に関する後続の考察
を読めば、より容易に理解されるであろう。
In contrast to the previous embodiment, a decoding function is included in the functional part 3 of the FPGA and in the state machine 17 rather than with a dedicated decoding circuit. The state machine 17
It is configured to detect completion of decoding of the set of configuration data and to generate an output on a communication link 25 to the functional part 3 of the FPGA in response. The role of the state machine 17 will be more readily understood on reading the following discussion on the design of the functional part 3 of the FPGA.

【0040】図7に、機能部分3の構成可能論理ブロッ
ク(CLB)27および関連するレジスタの修正設計を
より詳細に示す。機能部分3は、複数のCLB、例えば
M×Nの二次元アレイをその中に含む。CLBは、通信
リンク10から暗号化された構成データを、また通信リ
ンク16から鍵データを受け取るように構成されてい
る。
FIG. 7 shows a modified design of the configurable logic block (CLB) 27 of the functional part 3 and the associated registers in more detail. The functional part 3 includes a plurality of CLBs therein, for example, a two-dimensional array of M × N. The CLB is configured to receive encrypted configuration data from communication link 10 and key data from communication link 16.

【0041】図7のCLB27に関連して、構成レジス
タのセット18が存在する。従来のFPGA設計におけ
るように、構成レジスタ・セット18は構成データを保
持する働きをし、この構成データは、CLB27にロー
ドされたときにそのデータに従ってCLB27を構成す
る。
Associated with the CLB 27 of FIG. 7 is a set 18 of configuration registers. As in conventional FPGA designs, the configuration register set 18 serves to hold configuration data that, when loaded into the CLB 27, configures the CLB 27 according to that data.

【0042】しかし、従来の設計とは対照的に、各CL
Bに保持レジスタのセット19も備えている。図7を参
照すると、図示の保持レジスタ・セット19は、他の構
成データのセットを保持する働きをする。保持レジスタ
・セット19は、CLB27の出力端子から構成データ
を受け取り、それに記憶された構成データを構成レジス
タ・セット18にロードするように接続される。図7
で、レジスタ・セット18と19の間の接続は並列接続
として示してあるが、直列接続とすることもできる。保
持レジスタ・セット19はまた、状態機械から状態機械
通信リンク25を介してトリガ信号を受け取るための入
力端子も有する。さらに構成レジスタ・セット18は、
グローバル・リセット信号を受け取るための入力端子も
有し、この入力端子を介してリセット信号を受け取ると
デフォルト状態を採用するように設計される。
However, in contrast to the conventional design, each CL
B also has a set 19 of holding registers. Referring to FIG. 7, the illustrated holding register set 19 serves to hold another set of configuration data. The holding register set 19 is connected to receive configuration data from the output terminal of the CLB 27 and load the configuration data stored therein into the configuration register set 18. FIG.
Although the connection between the register sets 18 and 19 is shown as a parallel connection, it may be a series connection. Holding register set 19 also has an input terminal for receiving a trigger signal from state machine via state machine communication link 25. In addition, the configuration register set 18
It also has an input terminal for receiving a global reset signal, and is designed to adopt a default state upon receiving a reset signal via this input terminal.

【0043】デフォルト状態の構成レジスタ・セット1
8のコンテンツは、CLB27にロードされるときにF
PGAを復号エンジンとして動作させ、したがって、通
信リンク10を介して受け取られた暗号化された構成デ
ータは、通信リンク16を介して受け取られた鍵データ
に従って復号され、復号された形でCLB27から出力
され、保持レジスタ・セット19に供給されて、そこに
記憶される。復号プロセスの完了は状態機械によって検
出され、それに応答して、状態機械は通信リンク25に
信号を出力する。この信号が保持レジスタ・セット19
によって受け取られるとき、この信号は、保持レジスタ
・セット19のコンテンツすなわち復号された構成デー
タがメイン構成レジスタ・セット18に、次いでCLB
27にロードされるようにし、次いでCLB27は、そ
の復号エンジン状態から従来のFPGA動作のための所
望のプログラム状態に状態を変更する。構成データのセ
ットを2つ記憶することのできる構成メモリを有するプ
ログラマブル論理デバイスは、Randy T.Ong
に譲渡された米国特許第5,426,378号に記載さ
れており、この内容を参照により本明細書に組み込む。
Configuration Register Set 1 in Default State
8 is loaded into CLB 27 when F
Operating the PGA as a decryption engine, the encrypted configuration data received over communication link 10 is thus decrypted according to the key data received over communication link 16 and output from CLB 27 in decrypted form. The data is supplied to the holding register set 19 and stored therein. Completion of the decoding process is detected by the state machine, and in response, the state machine outputs a signal on communication link 25. This signal is the holding register set 19
When received by the CLB, the contents of the holding register set 19, i.e., the decoded configuration data,
27, and then the CLB 27 changes state from its decoding engine state to the desired program state for conventional FPGA operation. A programmable logic device having a configuration memory capable of storing two sets of configuration data is disclosed in Randy T .; Ong
No. 5,426,378, which is incorporated herein by reference.

【0044】理解されたいが、図6および7の実施形態
は、図1を参照しながらさらに述べたように、復号鍵入
力端子およびディスエーブル化素子を含むように修正す
ることもできる。
It should be understood that the embodiments of FIGS. 6 and 7 can be modified to include a decryption key input and a disable element, as further described with reference to FIG.

【0045】図6および7を参照しながら上に述べた代
替実施形態は、チップ領域を減らして追加の復号機能を
備えるために、デバイスの数を減らして実施することも
できる。これは、FPGAの機能部分3が復号エンジン
として動作するような復号構成をデフォルトで採用する
ように、機能部分3を設計することによって達成され
る。
The alternative embodiment described above with reference to FIGS. 6 and 7 can also be implemented with a reduced number of devices to reduce chip area and provide additional decoding capabilities. This is achieved by designing the functional part 3 to adopt by default a decoding configuration in which the functional part 3 of the FPGA operates as a decoding engine.

【0046】以上のことから、構成可能論理構造を有す
る機能部分と、機能部分を構成するための構成データを
受け取るための入力端子と、構成データに復号プロセス
を適用して、フィールド・プログラマブル・ゲート・ア
レイの機能部分を構成するために復号した構成データを
生成するための手段とを含むフィールド・プログラマブ
ル・ゲート・アレイを提供できることが理解されるであ
ろう。復号手段は、復号鍵を記憶するための手段と、復
号鍵をアルゴリズムのオペランドとして使用して構成デ
ータに復号アルゴリズムを適用するための手段とで構成
することができる。従来の方式には、機能部分を構成す
るように、復号手段から復号された構成データを機能部
分に配信する手段も存在する。
As described above, a functional part having a configurable logical structure, an input terminal for receiving configuration data for configuring the functional part, and a decoding process applied to the configuration data to form a field programmable gate And means for generating decoded configuration data to configure functional portions of the array. It will be appreciated that a field programmable gate array can be provided. The decryption means can be composed of means for storing the decryption key and means for applying the decryption algorithm to the configuration data using the decryption key as an operand of the algorithm. In the conventional system, there is also a means for distributing the configuration data decrypted from the decrypting means to the functional part so as to constitute the functional part.

【0047】本発明の特定の実施形態を述べたが、添付
の特許請求の範囲に定義する本発明の趣旨および範囲を
逸脱することなく、多くの修正/追加、および/または
代用を行うことができることを理解されたい。
Having described certain embodiments of the invention, many modifications / additions and / or substitutions may be made without departing from the spirit and scope of the invention as defined in the appended claims. Please understand what you can do.

【図面の簡単な説明】[Brief description of the drawings]

【図1】本発明の実施形態によるフィールド・プログラ
マブル・ゲート・アレイおよび構成データ・メモリの概
略ブロック図である。
FIG. 1 is a schematic block diagram of a field programmable gate array and configuration data memory according to an embodiment of the present invention.

【図2】フィールド・プログラマブル・ゲート・アレイ
構成データを暗号化する方法を示す流れ図である。
FIG. 2 is a flowchart illustrating a method of encrypting field programmable gate array configuration data.

【図3】図1のフィールド・プログラマブル・ゲート・
アレイに復号鍵をロードする方法を示す流れ図である。
FIG. 3 shows the field programmable gate of FIG.
5 is a flowchart illustrating a method for loading a decryption key into an array.

【図4】復号した構成データで図1のフィールド・プロ
グラマブル・ゲート・アレイを再構成する方法を示す流
れ図である。
FIG. 4 is a flowchart illustrating a method of reconfiguring the field programmable gate array of FIG. 1 with decoded configuration data.

【図5】図1のフィールド・プログラマブル・ゲート・
アレイのパーツのチップ配置を概略的に示す図である。
FIG. 5 shows the field programmable gate of FIG.
FIG. 3 is a diagram schematically illustrating a chip arrangement of parts of an array.

【図6】本発明の代替実施形態によるフィールド・プロ
グラマブル・ゲート・アレイおよび構成データ・メモリ
の概略ブロック図である。
FIG. 6 is a schematic block diagram of a field programmable gate array and configuration data memory according to an alternative embodiment of the present invention.

【図7】図6のフィールド・プログラマブル・ゲート・
アレイの構成可能論理ブロック(CLB)および関連す
るレジスタの概略ブロック図である。
FIG. 7 shows the field programmable gate of FIG.
FIG. 2 is a schematic block diagram of a configurable logic block (CLB) of an array and associated registers.

【符号の説明】[Explanation of symbols]

1 フィールド・プログラマブル・ゲート・アレイ(F
PGA) 1 FPGA 3 機能部分 4 メモリ 4 構成データ記憶域 4 構成データ・メモリ 5 論理 6 メモリ 6 復号鍵メモリ 6 復号鍵記憶域 6 不揮発性復号鍵記憶域 7 出力端子 8 入力端子 9 通信リンク 10 通信リンク 11 通信リンク 13 復号鍵入力端子 14 ディスエーブル化素子 16 通信リンク 17 状態機械 18 構成レジスタ・セット 19 保持レジスタ・セット 22 暗号鍵 23 暗号化アルゴリズム 25 通信リンク 25 状態機械通信リンク 27 構成可能論理ブロック(CLB) 27 CLB 42 復号鍵 43 復号アルゴリズム
1 Field Programmable Gate Array (F
PGA) 1 FPGA 3 Functional part 4 Memory 4 Configuration data storage area 4 Configuration data memory 5 Logic 6 Memory 6 Decryption key memory 6 Decryption key storage area 6 Non-volatile decryption key storage area 7 Output terminal 8 Input terminal 9 Communication link 10 Communication Link 11 Communication link 13 Decryption key input terminal 14 Disable element 16 Communication link 17 State machine 18 Configuration register set 19 Holding register set 22 Encryption key 23 Encryption algorithm 25 Communication link 25 State machine communication link 27 Configurable logic block (CLB) 27 CLB 42 decryption key 43 decryption algorithm

フロントページの続き (71)出願人 591064003 901 SAN ANTONIO ROAD PALO ALTO,CA 94303,U. S.A. (72)発明者 ポール・ジェフリー・ガーネット イギリス国・ダブリュエイ12 9ピイダブ リュ・マーシーサイド・ニュートン−ル− ウィローズ・ザ ルークリー・2 Fターム(参考) 5B076 FA02 5J042 BA11 CA21 DA00 5J104 AA01 AA16 EA04 NA02 NA23Continuation of front page (71) Applicant 591064003 901 SAN ANTONIO ROAD PALO ALTO, CA 94303, US A. (72) Inventor Paul Jeffrey Garnett, 129 British Columbia, 9 Piedab, Rue Mercyside Newton-Le-Willows, The Rookley, 2F Term (Reference) 5B076 FA02 5J042 BA11 CA21 DA00 5J104 AA01 AA16 EA04 NA02 NA23

Claims (23)

【特許請求の範囲】[Claims] 【請求項1】 (a)構成可能論理構造を有する機能部
分と、 (b)前記機能部分を構成する構成データを受け取る入
力端子と、 (c)前記入力端子と前記機能部分との間に配置され、
前記入力端子で受け取った前記構成データに復号プロセ
スを適用し、復号した前記構成データを、前記機能部分
を構成するために機能部分へ中継するように構成される
復号回路とを含むフィールド・プログラマブル・ゲート
・アレイ。
1. A function part having a configurable logical structure; (b) an input terminal for receiving configuration data forming the function part; and (c) an arrangement between the input terminal and the function part. And
A decoding circuit configured to apply a decoding process to the configuration data received at the input terminal and relay the decoded configuration data to a functional portion to configure the functional portion. Gate array.
【請求項2】 前記復号回路が復号鍵記憶域および復号
論理を含み、前記復号論理に、前記復号鍵記憶域から取
り出せる復号鍵をアルゴリズムのオペランドとして使用
して前記構成データに適用できる復号アルゴリズムが埋
め込まれている請求項1に記載のフィールド・プログラ
マブル・ゲート・アレイ。
2. The decryption circuit includes a decryption key storage area and decryption logic, and the decryption logic includes a decryption algorithm that can be applied to the configuration data using a decryption key that can be retrieved from the decryption key storage area as an operand of the algorithm. 2. The field programmable gate array of claim 1, wherein said array is embedded.
【請求項3】 前記復号鍵記憶域が不揮発性素子で形成
される請求項2に記載のフィールド・プログラマブル・
ゲートアレイ。
3. The field programmable storage device according to claim 2, wherein said decryption key storage area is formed by a nonvolatile element.
Gate array.
【請求項4】 前記不揮発性素子が、前記フィールド・
プログラマブル・ゲート・アレイの方々に物理的に分散
して配置されている請求項3に記載のフィールド・プロ
グラマブル・ゲート・アレイ。
4. The method according to claim 1, wherein the non-volatile element is the field device.
4. The field programmable gate array according to claim 3, wherein the field programmable gate array is physically distributed among the programmable gate arrays.
【請求項5】 前記不揮発性素子が、EEPROM素
子、フラッシュPROM素子、UV−EPROM素子、
OTPROM素子、ヒュージブル・リンクPROM素
子、強誘電体セル、およびレーザ・プログラマブル・ヒ
ューズからなるグループの少なくとも1つである請求項
3に記載のフィールド・プログラマブル・ゲート・アレ
イ。
5. The non-volatile element is an EEPROM element, a flash PROM element, a UV-EPROM element,
4. The field programmable gate array of claim 3, wherein the array is at least one of the group consisting of an OTPROM device, a fusible link PROM device, a ferroelectric cell, and a laser programmable fuse.
【請求項6】 前記ゲート・アレイの前記機能部分が揮
発性素子で形成される請求項1に記載のフィールド・プ
ログラマブル・ゲート・アレイ。
6. The field programmable gate array of claim 1, wherein said functional portion of said gate array is formed of volatile elements.
【請求項7】 前記揮発性素子がSRAM素子である請
求項6に記載のフィールド・プログラマブル・ゲート・
アレイ。
7. The field programmable gate according to claim 6, wherein said volatile element is an SRAM element.
array.
【請求項8】 前記復号回路が不揮発性素子で形成さ
れ、前記ゲート・アレイの前記機能部分が揮発性素子で
形成される請求項1に記載のフィールド・プログラマブ
ル・ゲート・アレイ。
8. The field programmable gate array according to claim 1, wherein said decoding circuit is formed of a nonvolatile element, and said functional portion of said gate array is formed of a volatile element.
【請求項9】 前記不揮発性素子が前記揮発性素子の間
に分散して配置される請求項8に記載のフィールド・プ
ログラマブル・ゲート・アレイ。
9. The field programmable gate array of claim 8, wherein said non-volatile elements are distributed between said volatile elements.
【請求項10】 前記復号鍵記憶域が不揮発性素子で形
成され、前記ゲート・アレイの前記機能部分が揮発性素
子で形成される請求項2に記載のフィールド・プログラ
マブル・ゲート・アレイ。
10. The field programmable gate array according to claim 2, wherein the decryption key storage area is formed of a non-volatile element, and the functional part of the gate array is formed of a volatile element.
【請求項11】 前記復号鍵記憶域が不揮発性EEPR
OM素子で形成され、前記ゲート・アレイの前記機能部
分が揮発性SRAM素子で形成される請求項1に記載の
フィールド・プログラマブル・ゲート・アレイ。
11. The decryption key storage area is a non-volatile EEPROM.
2. The field programmable gate array of claim 1, wherein the field programmable gate array is formed of an OM device and the functional portion of the gate array is formed of a volatile SRAM device.
【請求項12】 復号鍵を前記復号鍵記憶域にロードで
きる鍵入力端子を含む請求項2に記載のフィールド・プ
ログラマブル・ゲート・アレイ。
12. The field programmable gate array of claim 2, including a key input terminal for loading a decryption key into said decryption key storage.
【請求項13】 外部から加えることのできるディスエ
ーブル化信号の受領により前記復号鍵記憶域への後続の
外部通信を閉鎖するよう、不可逆的な変更が前記フィー
ルド・プログラマブル・ゲート・アレイに引き起こされ
るように構築されるディスエーブル化素子を含む請求項
12に記載のフィールド・プログラマブル・ゲート・ア
レイ。
13. An irreversible change is caused to the field programmable gate array to close subsequent external communication to the decryption key storage upon receipt of an externally applied disable signal. 13. The field programmable gate array of claim 12, including a disabling element constructed as such.
【請求項14】 (a)構成データ・セットを入力する
ステップと、 (b)ユーザ指定の暗号鍵をオペランドとして有する暗
号化アルゴリズムを前記構成データ・セットに適用する
ステップと、 (c)記録媒体上に前記暗号化した構成データを記憶す
るステップとを含む、フィールド・プログラマブル・ゲ
ート・アレイ構成データを処理する方法。
14. (a) inputting a configuration data set; (b) applying an encryption algorithm having a user-specified encryption key as an operand to the configuration data set; (c) recording medium Storing the encrypted configuration data on the field programmable gate array configuration data.
【請求項15】 (d)前記暗号鍵から復号鍵を生成す
るステップと、 (e)フィールド・プログラマブル・ゲート・アレイの
不揮発性メモリに前記復号鍵を書き込むステップとをさ
らに含む請求項14に記載の方法。
15. The method of claim 14, further comprising: (d) generating a decryption key from the encryption key; and (e) writing the decryption key to a non-volatile memory of the field programmable gate array. the method of.
【請求項16】 (a)暗号化された構成データをフィ
ールド・プログラマブル・ゲート・アレイに入力するス
テップと、 (b)前記暗号化された構成データを前記フィールド・
プログラマブル・ゲート・アレイ内で復号するステップ
と、 (c)前記フィールド・プログラマブル・ゲート・アレ
イ内で前記復号した構成データを配信して、前記フィー
ルド・プログラマブル・ゲート・アレイを構成するステ
ップとを含む、フィールド・プログラマブル・ゲート・
アレイを再構成する方法。
16. An apparatus comprising: (a) inputting encrypted configuration data into a field programmable gate array; and (b) storing the encrypted configuration data in the field programmable gate array.
Decoding in a programmable gate array; and (c) distributing the decoded configuration data in the field programmable gate array to configure the field programmable gate array. , Field programmable gate
How to reconfigure the array.
【請求項17】 前記復号ステップ(b)が、前記フィ
ールド・プログラマブル・ゲート・アレイ内に不揮発性
の形で記憶された復号鍵をアルゴリズムのオペランドと
して使用して、前記暗号化された構成データに復号アル
ゴリズムを適用するステップを含む請求項16に記載の
方法。
17. The method as recited in claim 17, wherein the decrypting step comprises: decrypting the encrypted configuration data using a decryption key stored in a nonvolatile manner in the field programmable gate array as an operand of an algorithm. 17. The method according to claim 16, comprising applying a decoding algorithm.
【請求項18】 前記ステップ(b)で前記復号アルゴ
リズムがステートフルである請求項17に記載の方法。
18. The method of claim 17, wherein in step (b) the decoding algorithm is stateful.
【請求項19】 構成可能論理構造を有する機能部分
と、前記機能部分を構成する構成データを受け取る入力
端子と、前記構成データに復号プロセスを適用して、フ
ィールド・プログラマブル・ゲート・アレイの前記機能
部分を構成させために復号した構成データを生成する復
号手段とを含むフィールド・プログラマブル・ゲート・
アレイ。
19. A function part having a configurable logic structure, an input terminal for receiving the configuration data making up the function part, and a decoding process applied to the configuration data to provide the function of the field programmable gate array. Decoding means for generating decoded configuration data to cause the portion to be configured.
array.
【請求項20】 前記復号手段が、復号鍵を記憶する手
段と、前記復号鍵をアルゴリズムのオペランドとして使
用して前記構成データに復号アルゴリズムを適用する手
段とを含む請求項19に記載のフィールド・プログラマ
ブル・ゲート・アレイ。
20. The method according to claim 19, wherein said decryption means includes: means for storing a decryption key; and means for applying a decryption algorithm to said configuration data using said decryption key as an operand of the algorithm. Programmable gate array.
【請求項21】 復号された構成データを受け取る入力
端子と、デフォルト状態を有する構成可能論理構造であ
って、それぞれが復号された構成データのセットによっ
て定義される複数のプログラム状態のいずれかにプログ
ラム可能である構成可能論理構造と、 前記プログラム状態の1つを定義する復号された構成デ
ータのセットを記憶するデータ記憶域とを含むフィール
ド・プログラマブル・ゲート・アレイであって、 前記構成可能論理構造がデフォルト状態で、前記入力端
子で受け取った暗号化された構成データを復号するよう
に、かつ、続いて前記構成可能論理構造を前記復号した
構成データ・セットによって定義されるプログラム状態
に再構成するために対応する復号した構成データ・セッ
トを前記データ記憶域に記憶するように構成されるフィ
ールド・プログラマブル・ゲート・アレイ。
21. A configurable logic structure having an input terminal for receiving decoded configuration data and a default state, each of which is programmed into one of a plurality of program states defined by a set of decoded configuration data. A field programmable gate array comprising a configurable logic structure that is enabled and a data storage that stores a set of decoded configuration data defining one of the program states, wherein the configurable logic structure comprises: Decrypts, in the default state, the encrypted configuration data received at the input terminal, and subsequently reconfigures the configurable logical structure to a program state defined by the decrypted configuration data set A corresponding decoded configuration data set for storing the data in the data storage. Field-programmable gate array to be.
【請求項22】 前記データ記憶域が複数の構成データ
保持レジスタを含む請求項21に記載のフィールド・プ
ログラミング・ゲート・アレイ。
22. The field programming gate array of claim 21, wherein said data storage includes a plurality of configuration data holding registers.
【請求項23】 前記構成可能論理構造による復号の完
了を検出するように、かつ、前記データ記憶域に記憶さ
れた前記構成データを前記構成可能論理構造にロードす
るために前記データ記憶域をトリガし、それにより前記
構成可能論理構造をプログラム状態に再構成するように
接続される状態機械を含む請求項21に記載のフィール
ド・プログラマブル・ゲート・アレイ。
23. Triggering the data storage to detect completion of decoding by the configurable logical structure and to load the configuration data stored in the data storage into the configurable logical structure. 22. The field programmable gate array of claim 21, including a state machine connected to reconfigure said configurable logic structure into a programmed state.
JP2000212303A 2000-07-13 2000-07-13 Field programmable gate array Pending JP2002050956A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2000212303A JP2002050956A (en) 2000-07-13 2000-07-13 Field programmable gate array

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000212303A JP2002050956A (en) 2000-07-13 2000-07-13 Field programmable gate array

Publications (1)

Publication Number Publication Date
JP2002050956A true JP2002050956A (en) 2002-02-15

Family

ID=18708244

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000212303A Pending JP2002050956A (en) 2000-07-13 2000-07-13 Field programmable gate array

Country Status (1)

Country Link
JP (1) JP2002050956A (en)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7127616B2 (en) 2002-03-22 2006-10-24 Kabushiki Kaisha Toshiba Semiconductor integrated circuits, data transfer systems, and the method for data transfer
WO2006115252A1 (en) 2005-04-25 2006-11-02 Matsushita Electric Industrial Co., Ltd. Information security device
JP2007013835A (en) * 2005-07-04 2007-01-18 Nippon Telegr & Teleph Corp <Ntt> Encoded data decoding device and its method
US7613931B2 (en) 2004-07-23 2009-11-03 Nec Electronics Corporation Copy protection method and system for programmable gate array
JP2011523130A (en) * 2008-06-02 2011-08-04 コーポレーション ド レコール ポリテクニーク ド モントリオール File presence detection and monitoring
JP2012505442A (en) * 2008-08-12 2012-03-01 インスティテュート テレコム−テレコム パリ テック Method for protecting the decoding of a configuration file of a programmable logic circuit and a logic circuit implementing the same
JP2012050066A (en) * 2010-08-23 2012-03-08 Raytheon Co Secure field-programmable gate array (fpga) architecture
US8452985B2 (en) 2005-04-07 2013-05-28 Panasonic Corporation Circuit building device
EP1716641B1 (en) * 2004-02-20 2018-09-05 Lattice Semiconductor Corporation Upgradeable and reconfigurable programmable logic device
CN112583783A (en) * 2020-07-22 2021-03-30 厦门智多晶科技有限公司 Configuration data decryption circuit integrated in FPGA and FPGA

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7127616B2 (en) 2002-03-22 2006-10-24 Kabushiki Kaisha Toshiba Semiconductor integrated circuits, data transfer systems, and the method for data transfer
EP1716641B1 (en) * 2004-02-20 2018-09-05 Lattice Semiconductor Corporation Upgradeable and reconfigurable programmable logic device
US7613931B2 (en) 2004-07-23 2009-11-03 Nec Electronics Corporation Copy protection method and system for programmable gate array
US8452985B2 (en) 2005-04-07 2013-05-28 Panasonic Corporation Circuit building device
WO2006115252A1 (en) 2005-04-25 2006-11-02 Matsushita Electric Industrial Co., Ltd. Information security device
US7958353B2 (en) 2005-04-25 2011-06-07 Panasonic Corporation Information security device
JP2007013835A (en) * 2005-07-04 2007-01-18 Nippon Telegr & Teleph Corp <Ntt> Encoded data decoding device and its method
US9264434B2 (en) 2008-06-02 2016-02-16 Polyvalor, Limited Partnership File presence detection and monitoring
JP2011523130A (en) * 2008-06-02 2011-08-04 コーポレーション ド レコール ポリテクニーク ド モントリオール File presence detection and monitoring
JP2012505442A (en) * 2008-08-12 2012-03-01 インスティテュート テレコム−テレコム パリ テック Method for protecting the decoding of a configuration file of a programmable logic circuit and a logic circuit implementing the same
JP2012050066A (en) * 2010-08-23 2012-03-08 Raytheon Co Secure field-programmable gate array (fpga) architecture
CN112583783A (en) * 2020-07-22 2021-03-30 厦门智多晶科技有限公司 Configuration data decryption circuit integrated in FPGA and FPGA
CN112583783B (en) * 2020-07-22 2022-11-08 厦门智多晶科技有限公司 Configuration data decryption circuit integrated in FPGA and FPGA

Similar Documents

Publication Publication Date Title
US6356637B1 (en) Field programmable gate arrays
US6212639B1 (en) Encryption of configuration stream
EP1153480B1 (en) Method and apparatus for protecting proprietary configuration data for programmable logic devices
US5687237A (en) Encryption key management system for an integrated circuit
US8209545B1 (en) FPGA configuration bitstream protection using multiple keys
US6996713B1 (en) Method and apparatus for protecting proprietary decryption keys for programmable logic devices
US6904527B1 (en) Intellectual property protection in a programmable logic device
US7716497B1 (en) Bitstream protection without key storage
US10970409B1 (en) Security RAM block with multiple partitions
Bossuet et al. Dynamically configurable security for SRAM FPGA bitstreams
US8166289B2 (en) Trusted boot
US7984292B1 (en) FPGA configuration bitstream encryption using modified key
US9152822B2 (en) Method and apparatus for securing programming data of a programmable device
US9870488B1 (en) Method and apparatus for securing programming data of a programmable device
US20050198404A1 (en) Semiconductor device and electronic apparatus
EP1170868B1 (en) Field programmable gate arrays (FPGA) and method for processing FPGA configuration data
US7260218B2 (en) Configurable circuit with configuration data protection features
JP2004515180A (en) Programmable logic device with method for preventing readback
US10044514B1 (en) Secure external key storage for programmable ICS
EP3319265B1 (en) Configuration based cryptographic key generation
US8539254B1 (en) Method and integrated circuit for protecting against differential power analysis attacks
JP5246863B2 (en) Logic program data protection system and protection method for reconfigurable logic device
US6457125B1 (en) Encrypted download of SRAM-based FPGAs
JP2002050956A (en) Field programmable gate array
US7484081B1 (en) Method and apparatus for protecting designs in SRAM-based programmable logic devices