JP2004007472A - 半導体集積回路、データ転送システム、及びデータ転送方法 - Google Patents
半導体集積回路、データ転送システム、及びデータ転送方法 Download PDFInfo
- Publication number
- JP2004007472A JP2004007472A JP2003068392A JP2003068392A JP2004007472A JP 2004007472 A JP2004007472 A JP 2004007472A JP 2003068392 A JP2003068392 A JP 2003068392A JP 2003068392 A JP2003068392 A JP 2003068392A JP 2004007472 A JP2004007472 A JP 2004007472A
- Authority
- JP
- Japan
- Prior art keywords
- circuit
- data
- semiconductor chip
- fpga
- rom
- 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.)
- Abandoned
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/75—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by inhibiting the analysis of circuitry or operation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/76—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in application-specific integrated circuits [ASIC] or field-programmable devices, e.g. field-programmable gate arrays [FPGA] or programmable logic devices [PLD]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Semiconductor Integrated Circuits (AREA)
- Logic Circuits (AREA)
- Microcomputers (AREA)
Abstract
【課題】設計データやソフトウェアが読み出せないセキュリティー性の高い半導体集積回路、データ転送システム、及びデータ転送方法を提供する。
【解決手段】暗号化された設計データが外部から入力され、かつ、予め設定された暗号コードに基づいて、暗号化された設計データを解読するデコーダ回路3と、デコーダ回路3の出力を受けて、設計データを配線の接続情報に変換して出力するコンフィグレーション回路5と、内部にRAM及びRAMデータに応じて接続がなされる配線及びRAMデータに応じて論理が決まるコンフィギャブル・ロジック・ブロックを有し、コンフィグレーション回路5の出力を受けて、論理回路構築が行われるFPGA回路6とを備えることを特徴とする半導体集積回路。
【選択図】 図1
【解決手段】暗号化された設計データが外部から入力され、かつ、予め設定された暗号コードに基づいて、暗号化された設計データを解読するデコーダ回路3と、デコーダ回路3の出力を受けて、設計データを配線の接続情報に変換して出力するコンフィグレーション回路5と、内部にRAM及びRAMデータに応じて接続がなされる配線及びRAMデータに応じて論理が決まるコンフィギャブル・ロジック・ブロックを有し、コンフィグレーション回路5の出力を受けて、論理回路構築が行われるFPGA回路6とを備えることを特徴とする半導体集積回路。
【選択図】 図1
Description
【0001】
【発明の属する技術分野】
本発明は、半導体集積回路に係り、特に外部ROMからデータを入力させる半導体集積回路、この半導体集積回路を用いたデータ転送システム、及び半導体集積回路へのデータ転送方法に関する。
【0002】
【従来の技術】
使用者が自分で設計して、動作させることが可能なプログラム可能なロジックデバイスであるFPGA(Fie1d Programmable Gate Array)回路を混載した半導体集積回路が開発されている。その集積度向上の魅力から最近では、RAM型FPGA回路が多く用いられる。RAM型FPGA回路では、使用者が電源投入のたびに、回路構成をその都度設定でき、動的に回路構成を変化できる。しかし、RAM型FPGA回路では、SRAM(Static Random Access Memory)を通常用いており、揮発性メモリの特性により、回路情報は電源切断に伴い消滅する。そのため、電源投入のたびに、速やかに外部ROM(Read Only Memory)から回路情報を書き込む動作であるコンフィグレーションが行われる。ここで、コンフィグレーションとは、回路に固有のプログラミングデータを1個又は複数のFPGAに入力して、ロジックモジュールをその周辺の内部接続パストランジスタに接続して機能を規定する動作である。コンフィグレーションの後すぐに、半導体集積回路の初期化が行われ、次に、半導体集積回路の通常動作が行われることになる。
【0003】
【特許文献】
特開2002−50956号公報
【0004】
【発明が解決しようとする課題】
以上のような従来の半導体集積回路及びデータ転送システムでは、以下の課題が生じる。RAMに替えて、不揮発性メモリ(ROM)を用いたFPGA回路では、不揮発性メモリに書き込んだ設計データは外部から容易に読出し可能である。従って、ROM型FPGA回路の場合には、設計データを読出して解析が可能である。ROM型不揮発性メモリを用いたFPGA回路では、最近の技術として設計データを書き込んだ後に、設計データ読出し端子の、出力バッファの特性を変更して、外から内部の不揮発性メモリ(ROM)の中身を読み出せないようにする手法が現れている。不揮発性メモリ(ROM)を用いて設計データを読み出せないようにする手法は、不揮発性メモリ(ROM)型FPGA回路を混載した集積回路製品には適用可能であるが、RAM型FPGA回路を混載した半導体集積回路製品には適用できない。なぜなら、揮発性メモリ(RAM)に記憶された回路情報は電源切断の際に、消滅してしまうので、外部ROMから回路情報を電源投入時に入力することが欠かせないからである。
【0005】
ここで問題となるのは、FPGA回路は汎用的であるため、外部ROMに記録されたデータを分析すると、FPGA回路が活動中にどのような回路を形成して機能しているかが、簡単に読みとれてしまうことである。このように、RAM型FPGA回路を用いると、外部ROMに設計データを格納し、実装基板上にFPGA回路と外部ROMの両方を搭載することになるので、外部ROMのデータを分析することにより、容易に設計データの秘密が暴かれてしまう。このような事態はデッドコピーをも可能としてしまう。従って、RAM型FPGA回路を混載した半導体集積回路においても、設計データの機密性を保つことが可能なFPGA回路を混載した半導体集積回路が望まれている。
【0006】
同様に、CPUを内蔵し、外部ROMからソフトウェアを取り込んで動作する半導体集積回路及びシステムでは、外部ROMのデータを分析することにより、容易にソフトウェア設計データの秘密を暴くことが可能である。CPUの命令は、一般的に公開されているで、ROMデータを分析すれば、ソフトウェアの解読は容易に可能となる。従って、設計データやソフトウェアが読み出せないセキュリティー性の高い半導体集積回路が望まれている。
【0007】
本発明の目的は、設計データやソフトウェアが読み出せないセキュリティー性の高い半導体集積回路、この半導体集積回路へのデータ転送システム、及びデータ転送方法を提供することにある。
【0008】
【課題を解決するための手段】
本発明の第1の特徴は、(イ)暗号解読コードを記憶する暗号解読コードブロックと、(ロ)暗号解読コードブロックに接続され、外部ROMからの暗号データを暗号解読コードに基いて解読するデコーダ回路と、(ハ)デコーダ回路の出力が入力されるコンフィグレーション回路と、(ニ)コンフィグレーション回路に接続され、コンフィグレーション回路に基いて回路構成が決定されるFPGA回路と、(ホ)FPGA回路に接続され、回路動作が規定される内部回路とを備える半導体集積回路であることを要旨とする。
【0009】
本発明の第2の特徴は、(イ)暗号解読コードを記憶する暗号解読コードブロックと、(ロ)暗号解読コードブロックに接続され、外部ROMからの暗号ソフトウェアデータを暗号解読コードに基いて解読するデコーダ回路と、(ハ)デコーダ回路の出力が入力されるCPUと、(ニ)CPUに接続され、CPUによって、回路動作が規定される内部回路とを備える半導体集積回路であることを要旨とする。
【0010】
本発明の第3の特徴は、(イ)暗号化されたFPGA設計情報を記録する第1の外部ROMを集積化した第1の半導体チップと、(ロ)暗号解読コードを記憶する第1の暗号解読コードブロックと、第1の暗号解読コードブロックに接続され、第1の外部ROMからの暗号データを暗号解読コードに基いて解読する第1のデコーダ回路と、第1のデコーダ回路の出力が入力されるコンフィグレーション回路と、コンフィグレーション回路に接続され、コンフィグレーション回路に基いて回路構成が決定されるFPGA回路と、FPGA回路に接続され、回路動作が規定される内部回路とを集積化した第2の半導体チップとを備えるデータ転送システムであることを要旨とする。
【0011】
本発明の第4の特徴は、(イ)暗号化されたCPUソフトウェア設計情報を記録する第1の外部ROMを集積化した第1の半導体チップと、(ロ)暗号解読コードを記憶する暗号解読コードブロックと、暗号解読コードブロックに接続され、第1の外部ROMからの暗号ソフトウェアデータを暗号解読コードに基いて解読するデコーダ回路と、デコーダ回路の出力が入力されるCPUと、CPUに接続され、CPUによって、回路動作が規定される内部回路とを集積化した第2の半導体チップとを備えるデータ転送システムであることを要旨とする。
【0012】
本発明の第5の特徴は、(イ)半導体集積回路内の暗号解読コードブロックに暗号解読コードを記録する手順と、(ロ)第1の外部ROMに暗号化されたROMデータを書き込む手順と、(ハ)半導体集積回路内のデコーダ回路が、第1の外部ROMからの暗号化されたROMデータを取り込み復号化する手順と、(ニ)暗号化されたROMデータをすべて取り込んだかどうかをデコーダ回路が判断する手順と、(ホ)未終了であるならば、第1の外部ROMから暗号化された前記ROMデータを取り込み復号化する手順に戻る手順と、(へ)終了であるならば、FPGA回路をユーザーモードに移行し、半導体集積回路の稼動を開始する手順とを備えるデータ転送方法であることを要旨とする。
【0013】
本発明の第6の特徴は、(イ)半導体集積回路内の暗号解読コードブロックに暗号解読コードを記録する手順と、(ロ)第1の外部ROMに暗号化されたROMデータを書き込む手順と、(ハ)半導体集積回路内のCPUが、第1の外部ROMに対してROMアドレスを要求し、ROMアドレスを決定する手順と、(ニ)半導体集積回路内のデコーダ回路が、暗号化されたROMデータを復号化する手順と、(ホ)復号化されたROMデータに基づき、CPUを実行させる手順とを備えるデータ転送方法であることを要旨とする。
【0014】
【発明の実施の形態】
次に、図面を参照して、本発明の実施の形態を説明する。以下の図面において、同一又は類似の部分には同一又は類似の符号を付している。又、以下に示す実施の形態は、この発明の技術思想を具体化するための装置や方法を例示するものであって、この発明の技術思想を下記のものに特定するものではない。この発明の技術思想は、特許請求の範囲において、種々の変更を加えることができる。
【0015】
まず、本発明の第1乃至第13の実施の形態の説明に入る前に、本発明に至る経緯として、途中で検討した比較例1及び比較例2を説明する。
【0016】
本発明は、半導体集積回路、データ転送システム、及びデータ転送方法に係る。以下の実施の形態においては、第1の実施の形態においては、FPGA回路を混載した半導体集積回路及びデータ転送システムについて説明する。第2の実施の形態においては、CPUを混載した半導体集積回路及びデータ転送システムについて説明する。第3の実施の形態においては、暗号化対象処理回路を混載したASIC及びASICシステムについて説明する。第4の実施の形態においては、FPGA回路を混載したASIC及びASICシステムについて説明する。第5の実施の形態においては、CPUを混載したASIC及びASICシステムについて説明する。第6乃至第7の実施の形態においては、FPGA回路及びCPUを混載したASIC及びASICシステムについて説明する。第8の実施の形態においては、FPGAを混載したデータ転送システムにおいて、更に別チップのASIC、FPGA回路等が実装された例について説明する。第9の実施の形態においては、CPUを混載したデータ転送システムにおいて、外部ROMが複数個存在し、更に別チップのASIC、FPGA回路が実装された例について説明する。第10乃至第13の実施の形態においては、FPGAを混載したデータ転送システムにおいて、外部ROMが複数個存在し、更に別チップのASIC、FPGA回路、CPU等が実装された例について説明する。
【0017】
(比較例1)
ここで、本発明の比較例としてのRAM型FPGA混載のデータ転送システムは、図34に示すように、実装基板55上に実装された外部ROM50と半導体集積回路51とから構成されたハイブリッド集積回路である。外部ROM50は、FPGA回路53を混載したモノリシック集積回路である半導体集積回路51に接続されている。外部ROM50は半導体集積回路51に対して、データをパラレルに出力する。半導体集積回路51は、外部ROM50とデータバス配線56を介して接続されたコンフィグレーション回路52と、コンフィグレーション回路52に接続されたFPGA回路53と、内部回路54から構成される。
【0018】
外部ROM50内には、RAM型FPGA回路53の設計データが格納されている。半導体集積回路51内には、外部ROM50からの設計データが入力されるコンフィグレーション回路52が設けられている。このコンフィグレーション回路52からの回路情報をFPGA回路53が受け取り、FPGA回路53内の回路が構成される。FPGA回路53は、設計者の希望に合った機能回路を実現することができる。
【0019】
この希望に合った機能回路が形成された後に、FPGA回路53は、半導体集積回路51内において集積化された内部回路54との間で回路動作を実行する。内部回路54内には、用途に合わせて決まる汎用マイクロプロセッサコア、DSPコア、メモリ、インターフェイス回路などから選択される回路が含まれている。更に、実装基板55上には、FPGA設計情報が外部ROM50から伝達されるビット数に応じた本数のデータバス配線56が、外部ROM50と半導体集積回路51との間において接続されている。
【0020】
(比較例2)
比較例2としてのCPUコアを混載したデータ転送システムは、図35に示すように、実装基板66上に実装された外部ROM60と半導体集積回路61から構成されたハイブリッド集積回路である。外部ROM60は、CPU62混載の形式を有するモノリシック集積回路である半導体集積回路61に接続されている。外部ROM60は、半導体集積回路61の入出力ポートに1対1で対応するポートを有した、半導体記憶装置となっていて、半導体集積回路61に対して、データをパラレルに出力する。半導体集積回路61は、外部ROMとアドレスバス配線63及びデータバス配線64を介して接続されたCPU62と、内部回路65を構成要素として含む。
【0021】
外部ROM60内には、CPU62のソフトウェアデータが格納されている。外部R0M60から出力されるのソフトウェアデータはCPU62に入力される。更に、CPU62と外部ROM60との間はアドレスバス配線63を介して直接接続されており、CPU62はアドレスを指定して外部ROM60に対してデータを要求する。外部ROM60は指定されたアドレスをCPU62へデータバス配線64を介して提出する。
【0022】
このCPU62が動作を開始した後に、半導体集積回路61内に内部回路65との間で回路動作を行う。内部回路65内には、用途に合せて決まる汎用マイクロプロセッサコア、DSPコア、メモリ、インターフェイス回路などから選択される回路素子を持っている。更に、実装基板66上には、暗号化されたCPUソフトウェア情報が外部ROM60から伝達されるビット数に応じた本数のデータバス配線64と、アドレスバス配線63とが外部ROM60と半導体集積回路61との間に接続されている。
【0023】
(第1の実施の形態)
本発明の第1の実施の形態に係る半導体集積回路及びデータ転送システムは、図1に示すように、実装基板8上に実装され、第1の半導体チップ上に集積化された外部ROM1と、FPGA回路6を混載した半導体集積回路2とから構成されたハイブリッド集積回路である。更に、第2の半導体チップ上に集積化された半導体集積回路2は、外部ROM1とデータバス配線9を介して接続されたデコーダ回路3と、デコーダ回路3に接続された暗号解読コードブロック4と、更にデコーダ回路3に接続されたコンフィグレーション回路5と、コンフィグレーション回路5に接続されたFPGA回路6と、FPGA回路6に接続された内部回路7を混載したモノリシック集積回路である。外部ROM1は半導体集積回路2とは別の第1の半導体チップ上に集積化され、半導体集積回路2の入出力ポートに1対1で対応するポートを有する半導体記憶装置であり、半導体集積回路2に対して、データをパラレルに出力する。尚、図1の例では実装基板8上に第1の半導体チップ及び第2の半導体チップがともに実装される例が示されているが、半田バンプ等を介して、第1の半導体チップ及び第2の半導体チップが多層構造として、実装されていても良いことは明らかである。
【0024】
外部ROM1内には、RAM型FPGA回路6に用いられる暗号化された設計データが格納されている。従って、半導体集積回路2内のデコーダ回路3には、外部ROM1からの暗号化設計データが、データバス配線9を介して、入力される。暗号解読コードは、半導体集積回路2を設計する時点で決められていて、半導体集積回路2内の暗号解読コードブロック4内に記録され、埋め込まれる。
【0025】
デコーダ回路3には、暗号解読コードブロック(記録部)4から暗号解読コードが入力される。この暗号解読コードを用いてデコーダ回路3は、外部ROM1から入力された暗号化設計データを復号化して、設計データを半導体集積回路2内に設けられたコンフィグレーション回路5へ出力する。本発明の第1の実施の形態においては、外部ROM1とコンフィグレーション回路5との間に、デコーダ回路3を設け、デコーダ回路3において、外部ROM1からの設計データを受け取り、コンフィグレーション回路5に設計データを送出している。
【0026】
コンフィグレーション回路5からの回路情報をFPGA回路6が受け取り、FPGA回路6内の回路が構成される。
【0027】
このFPGA回路6が形成された後に、半導体集積回路2内の内部回路7との間で回路動作を行う。内部回路7内には、用途に合わせて決まる汎用マイクロプロセッサコア、DSPコア、インターフェイス回路などから選択される回路が含まれる。このように半導体集積回路2は、FPGA回路6と内部回路7との混載形式で形成されている。このため、その用途は広い。外部ROM1及び半導体集積回路2は同じ実装基板8上に搭載されてデータ転送システムを構成する。更に、実装基板8上においては、暗号化されたFPGA設計情報が外部ROM1から伝達されるビット数に応じた本数のデータバス配線9が外部ROM1と半導体集積回路2との間に接続されている。
【0028】
次に、図2を用いて、発明の第1の実施の形態に係る半導体装置及びデータ転送システムの動作方法を説明する。
【0029】
(a)まず第1ステップST1において、半導体集積回路2内のFPGA回路6の設計者がFPGA回路6の設計を行う。
【0030】
(b)次に、第2ステップST2において、設計されたFPGA回路6をROMデータとして作成する。
【0031】
(c)次に、第3ステップST3において、半導体集積回路2の製造者から入手した暗号化コードの採用を決定する。
【0032】
(d)次に、第4ステップST4において、暗号化コードに基づいてROMデータを暗号化する。
【0033】
(e)次に、第5ステップST5において、暗号化されたROMデータを外部ROM1へ書き込む。
【0034】
(f)次に、第6ステップST6において、外部ROM1を実装基板8上に実装する。
【0035】
(g)次に、第7ステップST7において、実装基板8に対して、電源を投入する。
【0036】
(h)次に、第8ステップST8において、外部ROM1から暗号化されたROMデータを半導体集積回路2のデコーダ回路3へ取り込む。デコーダ回路3において、暗号化されたROMデータを回路設計データとして解読し、コンフィグレーション回路5へ出力する。コンフィグレーション回路5において、FPGA回路6の回路作成を行わせる指示をFPGA回路6に出力する。
【0037】
(i)次に、第9ステップST9において、FPGA回路6において、復号化されたデータを受信する。
【0038】
(j)次に、第10ステップST10において、FPGA回路6において、復号化された最後のデータを受信したかどうかを判断する。YESであるならば、第11ステップST11に進み、NOであるならば、第8ステップST8に戻る。
【0039】
(k)次に、第11ステップST11において、FPGA回路6をユーザーモードにシフトさせる。
【0040】
(l)次に、第12ステップST12において、半導体集積回路2の動作を開始させる。
【0041】
(m)上記のステップは、電源供給停止により終了する。
【0042】
(n)次に、電源投入が行われると、再度、デコーダ回路3へのROMデータの書き込みから再度繰り返される。
【0043】
このように、電源投入直後に外部ROM1のデータはデコーダ回路3及びコンフィグレーション回路5を経由して、すべてのデータが取り込まれた時点で、この半導体集積回路はRAM型FPGA回路を構成する。この回路構成は速やかに行われ、数100ミリ秒程度での構成が可能である。
【0044】
FPGA回路6はRAM型であり、図3に示されるように、各回路を構成するコンフィギャブル・ロジック・ブロック(configurable logic block)10,10i,j,10i,j+1,…, 10i+1,j,10i+1,j+1…、各回路の配線接続を切り替えるスイッチング・マトリックス(switching matrix)11,11i,j,11i,j+1,11i,j+2…,11i+1,j,11i+1,j+1,11i+1,j+2…,11i+2,j,…, 11i+2,j+1,11i+2,j+2…、主配線12、接続配線13及び接続点14から構成される。コンフィギャブル・ロジック・ブロック10,10i,j,10i,j+1,…, 10i+1,j,10i+1,j+1…内に取りつけられたRAMのデータを変えることにより、設計者の希望に合った機能回路を実現することができる。そのRAMのデータは外部ROM1に記録されている。具体的には、コンフィギャブル・ロジック・ブロック10内には、SRAM素子が設けられている。コンフィギャブル・ロジック・ブロック10の周囲には、互いにスイッチング・マトリックス11で接続された主配線12が設けられている。この主配線12の内の数本とコンフィギャブル・ロジック・ブロック10とは接続配線13によって接続点14において接続されている。このようにFPGA回路6は回路設計情報に基づいて、コンフィギャブル・ロジック・ブロック10と主配線12との接続、非接続状態が設定されて回路が構成される。
【0045】
ここで、暗号化には半導体集積回路2の設計時点で決められた暗号解読コードが用いられる。暗号解読コードは、半導体集積回路2の製造業者が予め決めておき、その内容を半導体集積回路2の購入者に通知して、半導体集積回路2の購入者が回路設計情報を暗号化して、半導体集積回路2へ入力することで、所望の半導体集積回路2が形成される。
【0046】
FPGA回路のRAMは、図4に示すように、シフトレジスタの構成になっている。コンフィグレーション回路5から送り出されたデータは図4において、第1段目のシフトレジスタSR1のD入力端子にシフトレジスタ入力信号SIとして入力され、新しいデータが1個ずつ入って、シフトレジスタSR1に記憶される度に、古いデータは同期して右方向にシフトしていく。各シフトレジスタSR1,SR2,SR3,…,SR6の出力はQ1〜Q6のような形で、コンフィギャブル・ロジック・ブロック10やスイッチング・マトリックス11やI/Oレジスタ部に配信され、コンフィギャブル・ロジック・ブロック10の機能を決定したり、スイッチング・マトリックス11の配線接続方法を決定したり、I/Oの機能を決定するデータとして活用される。
【0047】
このように半導体集積回路2での初期化動作では、FPGA回路6内に設けられた図4に示すようなシフトレジスタSR1,SR2,SR3,…,SR6に外部ROM1からデータが、コンフィグレーション回路5を経由して、順次書き込まれていく。図4のシフトレジスタSR1,SR2,SR3,…,SR6ではコンフィグレーション回路5から1個ずつデータが、シフトレジスタ入力信号SIとして各シフトレジスタのD入力端子に送られるとともに、同期したクロック信号が送られてくるので、クロック信号の立ち上り時間に同期してシフトレジスタのD入力端子に入力されたシフトレジスタ入力信号SIがシフトレジスタSR1に取り込まれる。そして、そのデータがQ1に出力される。さらに次のデータの読み込みにあわせてクロック信号が入力されるので、Q1の信号は2段目のシフトレジスタSR2に移りQ2に出力されて、Q1は新しくシフトレジスタのD入力端子に設定されたデータが記憶されて、出力される。こうしてクロック信号が来る度に、新しいデータが初段のシフトレジスタSR1に取り込まれ、古いデータは順次、右のレジスタにシフトしていく。
【0048】
シフトレジスタを構成する基本単位としてよく用いられるのは、例えば、図5に示すように、Dタイプフリップフロップ(D−FLIP/FLOP)である。このDタイプフリップフロップの入出力端子プリセット、クリア、EN,QNの内、いくつかの端子を削除した変形例がある。D入力端子から入力される信号をCK入力端子に入力される信号の立ち上りタイミングで捕らえて、記憶する。記憶情報をQ出力端子に出力、反転信号をQN端子に出力する。EN入力端子に“1”が入力されている時のみ、クロック入力が許可され、その他の時はクロック入力が無視される。プリセット端子は通常“1”が入力されているが、“0”が入力された時に記憶内容を“1”に設定する。クリア端子は通常“1”が入力されているが、“0”が入力された時に、記憶内容を“0”に設定する。レジスタをリセットする場合には、クリア端子に“0”のパルスを与えて記憶内容を“0”にする。
【0049】
FPGA回路6のI/Oレジスタ回路の一般例は、図6に示すように、出力バッファの周辺に3つのレジスタを備える。アウトプット・レジスタ501は出力内容の“0”か“1”を決定する。アウトプット・イネーブル・レジスタ502はI/Oバッファ504が出力するか否かを決定する。アウトプット・イネーブル・レジスタ502が“0”の時には、出力が切り離されハイ・インピーダンス状態になる。インプット・レジスタ503はI/Oターミナル505に印加された信号を記憶する。
【0050】
コンフィグレーション時には、上記レジスタの内、アウトプット・イネーブル・レジスタ502の記憶内容を“0“して出力し、I/Oバッファ504の出力が出ないようにするとともに、インプット・レジスタ503のイネーブル(EN)端子に“0”の信号を与えておき、I/Oターミナル505に印加された信号を集積回路内部に取り込まないようにする。つまり、I/Oターミナル505では外部信号環境から切り離された状態にしておく。初期化動作では、これら3つのレジスタ501,502,503は外部ROM1にプログラムされた設定内容に従った値に切り替わる。
【0051】
また初期化動作では、図6に示すようなRAM型FPGA回路のI/Oレジスタ回路の内、アウトプット・イネーブル・レジスタ502及びインプット・レジスタ503のイネーブル(EN)端子に“0”の信号を与えておき、I/Oバッファ504の出力が出ないようにするとともに、I/Oターミナル505に印加された信号を集積回路内部に取り込まないようにする。つまりI/Oターミナル505では外部信号環境から切り離された状態にしておく。全てのROMデータが取り込まれた後で、最後にアウトプット・レジスタ501,インプット・レジスタ503及びアウトプット・イネーブル・レジスタ502のEN端子に“1”を加えて、I/Oバッファ504が活動できる状態に切り替える。こうしてロジックデバイスとして動作を可能にする。
【0052】
ここで、コンフィグレーション動作状態と初期化状態を「コマンドモード」といい、通常動作状態を「ユーザーモード」という。半導体集積回路2の電源投入後、速やかに、回路情報がコンフィグレーション回路5に転送され、初期化が行われ、FPGA回路6内に回路情報に基づいた回路が新たに構成される。その後、ロジック動作を開始する。
【0053】
SRAMを用いたRAM型FPGA回路6内には、少数の入力形式の少ファンインのロジックモジュールを含む、ロジック・エレメントを多数内蔵されている。このように構成されたRAM型FPGA回路6を用いて、設計者が回路設計後、速やかに実機での回路の動作検証が可能であるため、効率良く回路設計を行うことができる。また、FPGA回路6自体は同一の基本構造を持った半導体集積回路製品を製造することができ、FPGA回路6の使用者ごとに変更を加えて製造する必要がないので、製造効率が良い。即ち、FPGA回路6自体は汎用製品として製造することができるので、大量生産が可能で製造効率が良い。
【0054】
FPGA回路6を含んだ半導体集積回路2は、汎用マイクロプロセッサコア、DSPコア、インターフェイス回路などの他の回路素子を持っていて構成されていても良く、混載形式で形成されることで、より用途が広くなる。
【0055】
ここで、コンフィグレーションの方法について、図7に示すフローチャート図を用いて説明する。
【0056】
(a)電源が投入されると、自動的にコンフィグレーションが開始されるが、まずステップST101において、一般のI/Oピンをディスエーブル状態にする。
【0057】
(b)次に、ステップST102において、データ入力がパラレルかシリアルかを判断する。デコーダ回路3において、ROMデータを受け取るが、パラレルデータを受け取るのかシリアルデータを受け取るのかで方法が異なる。
【0058】
(c)パラレルデータを受け取る場合には、ステップST106において、ROM1からデータを受け取った後、ステップST107において、パラレルデータをシリアルデータに変換して、ステップST108において、FPGA回路6にデータを送り出す。次に、ステップST109において、ROMデータが最後かどうかを判断する。YESであるならば、ステップST110に進み、NOであるならば、ステップST106に戻る。
【0059】
(d)シリアルデータを受け取った場合には、ステップST103において、ROM1からデータを受け取った後、ステップST104において、そのままデータをFPGA回路6に送り出す。次に、ステップST105において、ROMデータが最後かどうかを判断する。YESであるならば、ステップST110に進み、NOであるならば、ステップST103に戻る。
【0060】
(e)ROMデータを全て受け取ると、コンフィグレーション動作状態から初期化状態に入る。即ち、ステップST110において、内部レジスタをリセットする。次に、ステップST111において、一般のI/Oピンをイネーブル状態にする。次に、ステップST112において、システム動作を開始する。
【0061】
ステップST101からST111までは、コマンドモードに相当し、ステップST112から後はユーザーモードに相当する。
【0062】
次に、図8を用いてデコーダ回路3と暗号解読コードブロック4の構成を説明する。図8には説明を判り易くするためにデコーダ回路3の簡単な例を示している。即ち、デコーダ回路3は、8つの排他的論理和回路EO0,EO1、・・・、EO7を有していて、それぞれの入力端には、外部ROM1からの1ビットデータと暗号解読コードブロック4からの1ビットのコードが入力される。排他的論理和回路EO0,EO1、・・・、EO7の出力は図8中で右側に抜けて図1に示されるコンフィグレーション回路5に接続されている。
【0063】
ここで、例えば外部ROM1からデコーダ回路3に対して8ビットのパラレルデータが入ってくるとする。暗号化の方法としては、すべてのデータを“1”、“0”反転して暗号化したとする。当然復号化する場合には、すべてのビットを“1”は“0”へ、“0”は“1”へと反転して元に戻さなくてはならない。
【0064】
排他的論理和回路は、2つの入力信号が異なる場合のみ、出力信号が“1”になり、反対に2つの入力信号が同じ場合には、出力信号が“0”になる回路である。従って、暗号解読コードが“1”とすると、ROM1からの入力信号が“1”の場合は出力“0”、入力信号が“0”の場合は出力“1”となって、ROM1からの信号を反転する。逆のケースで、暗号解読コードを“0”とすると、ROM1からの入力信号が“1”の場合は出力“1”、入力信号が“0”の場合は出力“0”となって、ROM1からの信号がそのまま、出力される。
【0065】
外部ROM1からの8ビットデータD0,D1,D2,…,D7が左から入ってくる。入力される8ビットすべてを反転させる訳であるから、暗号解読コードをすべて“1”にしておけば良い。反転しないビットの場合には、暗号解読コードを“0”にしておく必要がある。
【0066】
こうして4ビットデータD0,D1,D2,D3は“0”の信号が外部ROM1から入ってきたとして、“1”の信号がコンフィグレーション回路5に渡される。逆に残りの4ビットデータD4,D5,D6,D7は“1”の信号が外部ROM1から入ってきたとして、“0”の信号がコンフィグレーション回路5に渡される。
【0067】
本発明の第1の実施の形態に係る半導体集積回路、データ転送システム、及びデータ転送方法においては、外部ROM1のデータを暗号化し、FPGA回路6を混載した半導体集積回路2の内部において、予め暗号解読コードブロック4に埋め込まれた暗号解読コードを用いて、暗号データを復号化してFPGA回路6に書き込む。この埋め込まれた暗号は設計された半導体集積回路2毎に異なるので、製品毎に異なる暗号を持つことになる。もちろん、暗号を用いて回路を構成しても、回路形成後に実装基板8上で動作させることで正しく所望の半導体集積回路2及び外部ROM1と共に実装されたデータ転送システムが形成されているか否かが確認できる。
【0068】
本発明の第1の実施の形態に係るデータ転送システムでは、半導体集積回路2と外部ROM1との間でのデータの受け渡し時に、暗号を用いており、第三者にデータの内容が判らないようにしている。本発明の第1の実施の形態に係る半導体集積回路の暗号化手法を用いない場合には、FPGA回路6を個別に設計し直さないと、その機密性は保てない。それに対して、本発明の第1の実施の形態に係る半導体集積回路においては、外部ROM1のデータを暗号化することによって、回路設計情報の機密性が保たれ、なおかつ従来のFPGA設計データを暗号化するだけなので、暗号化も自動処理可能のため、設計者に負担をかけることはない。これは、まったく新しいFPGA回路6を設計する場合に比べると、設計の時間と労力を大幅に削減することができ、利用者の設計業務効率が向上する。回路設計情報の機密性が保たれ、回路設計効率が向上することから、FPGA回路混載の半導体集積回路が利用者にとって魅力的なものとなる。
【0069】
なお、外部ROM1からパラレルにデータを入力する場合、高速にデータを半導体集積回路2に取り込むことができるため、高速にFPGA回路6の回路構成を行うことができる。
【0070】
RAM型FPGA回路を採用して、製造が容易で不揮発性メモリ(ROM)を用いたFPGAよりもFPGA領域を縮小させつつ、機密性を高めたFPGA混載半導体集積回路及びデータ転送システムを本実施の形態は提供することができる。
【0071】
本発明の第1の実施の形態に係る半導体集積回路によれば、暗号化設計データの機密性の高い外部ROM対応FPGA回路搭載の半導体集積回路を提供することができる。更に、本発明の第1の実施の形態のデータ転送システムによれば、暗号化設計データの機密性の高い外部ROM型のデータ転送システムを供給できる。このように外部ROM1と半導体集積回路2とのデータ受け渡しに暗号化データを用いることで、ソフトウェアの機密性を向上することができる。
【0072】
(第1の実施の形態の変形例)
本発明の第1の実施の形態の変形例は、第1の実施の形態において、外部ROM1とFPGA回路6混載の半導体集積回路2との間のデータバス配線9の本数を1本として、外部ROM1から半導体集積回路2へのデータ転送をパラレルではなくシリアルに実行する構成を有する。図9を用いて、本発明の第1の実施の形態の変形例における、デコーダ回路3と暗号解読コードブロック4の構成を説明する。図9には説明を判り易くするためにデコーダ回路3の簡単な例を示している。外部ROM1は半導体集積回路2の入出力ポートに1対1で対応するポートを有した半導体記憶装置となっている。このように外部ROM1は、半導体集積回路2に対して、データをシリアルに出力する。ここでは、例えば外部ROM1からシリアルデータが半導体集積回路2に対して入ってきた時の対応例を示す。この場合にも、パラレルデータと同様に8ビット単位で暗号化の方法を設定してある場合が示してある。このデコーダ回路3に対しては、外部ROM1と同期してデータを取り込むために、外部ROM1にも入力されてデータの出力タイミングを制御するクロック信号CLOCKが入力されている。このクロック信号CLOCKは、3ビットのバイナリーカウンタ18のクロック信号入力端子CLOCKに入力されている。このバイナリーカウンタ18からは3ビットのセレクト信号が出力端子QA、QB、QCから出力される。この3ビットのセレクト信号はデータセレクタ(8−Line to1−Line DATA SELECTOR)19のセレクト信号入力端子A、B、Cへ入力される。このデータセレクタ19へは、暗号解読コードブロック4からの8ビットの暗号解読コードが暗号コード入力端子DE0、DE1、DE2、DE3、DE4、DE5、DE6、DE7へ入力される。
【0073】
デコーダ回路3は、更に1つの排他的論理和回路EOを有していて、その入力端には、外部ROM1からの1ビットデータとデータセレクタ回路19の出力端子Yからの1ビットのコードが入力される。排他的論理和回路EOの出力は図9中で順次、右側に抜けて図1に示されるコンフィグレーション回路5に接続されている。
【0074】
次に、外部ROM1からのデータの取り込み方法を説明する。8ビット単位でシリアルデータが入ってくる順番にD0、D1、D2、D3、D4、D5、D6、D7として、その各々が“0”と“1”の間で反転するか、しないか、を決めて、暗号解読コードとして、半導体集積回路2内の暗号解読コードブロック4にデータを埋め込んでおく。シリアルデータがD7まできたら、暗号解読コードの最初に戻って繰り返す。今回は図8で示した方法と同様に全てのビットを反転させるケースを示した。外部ROM1から暗号データとして順番に0、0、0、0、1、1、1、1が入ってくると、このデコーダ回路3からの出力は1、1、1、1、0、0、0、0の順でデータが出て行く。
【0075】
半導体集積回路2の外部からのクロック信号CLOCKは3ビットのバイナリーカウンタ18に入り、バイナリーカウンタ18内で0から7までのカウントを行って現在のカウント値をバイナリコードでQC、QB,QA出力端子に表示する。ここで、QCが最上位ビット、QAが最下位ビットである。この信号はデータセレクタ回路19へ送られ、カウンタの値に合ったデータDE0,DE1,DE2,…,DE7が選択されて、Y出力端子に出力される。データDE0,DE1,DE2,…,D7は半導体集積回路2に埋め込まれた暗号解読コードブロック4に接続されているので、その1つのデータが順番に選択されて、Y端子に出力されてくることになる。そのY出力信号は外部ROM1からのデータDATAとともに排他的論理和回路E0に入力される。この排他的論理和回路E0は2入力の値が同じ時には“0”を出力し、2入力の信号が異なる時には“1”を出力する機能がある。従って、片方を“1”に固定した場合、残りの入力の反転回路としての機能を果たし、逆に片方を“0”に固定すると、残りの入力値がそのまま出力される機能がある。
【0076】
こうして、シリアルデータが順番に暗号解読されて、次段の回路であるコンフィグレーション回路5に送られていく。このようにシリアルにデータを取り込む場合、外部ROM1と半導体集積回路2とを接続するパスの本数が第1の実施の形態よりも少数でよいため、実装基板8上での配線本数を減らすことができる。このため、配線密度が高く配線の配置余裕が少ない実装基板8上においても、本発明の第1の実施の形態の変形例は構成できる。上記構成以外は第1の実施の形態と同様の構成を有している。本発明の第1の実施の形態の変形例は、第1の実施の形態と同様にデータの機密性を保持できる効果を有する。
【0077】
本発明の第1の実施の形態の変形例によれば、設計データやソフトウェアが読み出せないセキュリティ性の高い、FPGA回路を混載した半導体集積回路、データ転送システム、及びデータ転送方法を提供することができる。
【0078】
(第2の実施の形態)
本発明の第2の実施の形態に係る半導体集積回路及びデータ転送システムは、図10に示すように、実装基板28上に実装され、第1の半導体チップ上に集積化された外部ROM20と、第2の半導体チップ上に集積化され、CPU24を混載した半導体集積回路21とから構成されたハイブリッド集積回路である。更に、半導体集積回路21は、外部ROM20とデータバス配線26を介して接続されたデコーダ回路22と、デコーダ回路22に接続された暗号解読コードブロック23と、更にデコーダ回路22に接続されたCPU24と、CPU24に接続された内部回路27を混載したモノリシック集積回路から構成されている。外部ROM20は半導体集積回路21の入出力ポートに1対1で対応するポートを有する半導体記憶装置であり、半導体集積回路21に対して、データをパラレルに出力する。
【0079】
尚、図10の例では実装基板28上に第1の半導体チップ及び第2の半導体チップがともに実装される例が示されているが、半田バンプ等を介して、第1の半導体チップ及び第2の半導体チップが多層構造として、実装されていても良いことは明らかである。
【0080】
外部ROM20内には、CPU24の暗号化されたソフトウェアデータが格納されている。従って、半導体集積回路21内のデコーダ回路22には、外部ROM20からの暗号化ソフトウェアデータが、データバス配線26を介して、入力される。暗号解読コードは、半導体集積回路21を設計する時点で決められていて、半導体集積回路21内の暗号解読コードブロック23内に記録され、埋め込まれる。
【0081】
デコーダ回路22には、暗号解読コードブロック(記録部)23から暗号解読コードが入力される。この暗号解読コードを用いてデコーダ回路22は、外部ROM20から入力された暗号化設計データを復号化して、設計データを半導体集積回路21内に設けられたCPU24へ出力する。本発明の第2の実施の形態においては、外部ROM20とCPU24との間に、デコーダ回路22を設け、デコーダ回路22において、外部ROM20からの設計データを受け取り、CPU24に設計データを送出している。
【0082】
ここでは更に、CPU24と外部ROM20との間はアドレスバス配線25を介して直接接続されており、CPU24はアドレスを指定して外部ROM20に対してデータを要求する。外部ROM20は指定されたアドレスをデコーダ回路22へデータバス配線26を介して提出する。更に、デコーダ回路22は指定されたアドレスをCPU24へ提出する。
【0083】
本発明の第2の実施の形態に係る半導体集積回路21においては、図10に示すように、外部ROM20とCPU24の間にデコーダ回路22を設け、デコーダ回路22には暗号解読コード情報が伝えられるようになっている。
【0084】
まず半導体集積回路21の設計時に暗号コードを決定し、それに基いて暗号解読コードが半導体集積回路21内の暗号解読コードブロック23に記録され、埋め込まれている。従って、暗号化設計データに関係する暗号化ソフトウェアデータは各半導体集積回路21毎に異なる固有の暗号となる。
【0085】
こうして、外部ROM20から入手した暗号データは、デコーダ回路22において復号化されて、CPU24に伝えられて一般的なソフトウェアと同じ働きをする。このCPU24が動作を開始した後に、半導体集積回路21内の内部回路27との間で回路動作を行う。内部回路27内には、用途に合わせて決まる汎用マイクロプロセッサコア、DSPコア、インターフェイス回路などから選択される回路が含まれる。このように半導体集積回路21は、CPU24と他のロジック回路などとの混載形式で形成されている。このためその用途は広い。この外部ROM20及び半導体集積回路21は同じ実装基板28上に搭載されてデータ転送システムを構成する。さらに実装基板28上においては、暗号化されたCPUソフトウェア情報が外部ROM20から伝達されるビット数に応じた本数のデータバス配線26と、アドレスバス配線25とが外部ROM1と半導体集積回路2との間に接続されている。
【0086】
次に、図11を用いて本発明の第2の実施の形態に係る半導体集積回路及びデータ転送システムの動作方法を説明する。
【0087】
(a)まず、第1ステップSU1において、半導体集積回路21内のCPU24のソフトウェア設計者がCPU24のソフトウェア設計を行う。
【0088】
(b)次に、第2ステップSU2において、設計されたソフトウェアをROMデータとして作成する。
【0089】
(c)次に、第3ステップSU3において、半導体集積回路21の製造者から入手した暗号化コードの採用を決定する。
【0090】
(d)次に、第4ステップSU4において、暗号化コードに基づいてROMデータを暗号化する。
【0091】
(e)次に、第5ステップSU5において、別の外部ROMから暗号化されたROMデータを外部ROM20へ書き込む。
【0092】
(f)次に、第6ステップSU6において、外部ROM20を実装基板28上に実装する。
【0093】
(g)次に、第7ステップSU7において、実装基板28に対して、電源を投入する。
【0094】
(h)次に、第8ステップSU8において、読み出しROMアドレスを決定し、半導体集積回路21内のCPU24から外部ROM20に対して、必要とするソフトウェアのアドレスを出力する。
【0095】
(i)次に、第9ステップSU9において、外部ROM20から指定されたアドレスに対応する暗号化されたROMデータを半導体集積回路21内のデコーダ回路22へ取り込む。デコーダ回路22において、暗号解読コードブロック23から入力された暗号解読コードを利用して、暗号化されたROMデータをソフトウェアデータとして解読し、CPU24へ出力する。
【0096】
(j)次に、第10ステップSU10において、CPU24において、入力されたソフトウェアデータに基づいてCPU動作が行われる。
【0097】
(k)次に、第11ステップSU11において、次の業務指示があるかどうかを判断する。NOであるならば、第11ステップSU11に戻る。YESであるならば、第8ステップSU8に戻る。
【0098】
(l)上記のステップは、電源供給停止により終了する。
【0099】
(m)次に、電源投入が行われると、再度、CPU24から外部ROM20へのアドレス出力のステップから再度繰り返される。
【0100】
デコーダ回路22は第1の実施の形態において図8を用いて説明した構成と同じであるので、説明を省略する。
【0101】
外部ROM20からパラレルにデータを入力する場合、高速にデータを半導体集積回路21に取り込むことができるため、高速にCPUにデータを転送することができる。データをパラレル入力することで、高速にソフトウェアを取り込み、CPUを高速動作させることができる。尚、場合により、本発明の第1の実施の形態の変形例において説明したように、図9に記載されたデコーダ回路3と暗号解読コードブロック4の構成を、デコーダ回路22と暗号解読コードブロック23の構成に適用して、データのシリアル入力を行うこともできる。シリアルにデータを取り込む場合、外部ROM20と半導体集積回路21とを接続するパスの本数が少数でよいため、実装基板8上での配線本数を減らすことができる。配線密度が高く配線の配置余裕が少ない実装基板8上において適用可能である。
【0102】
外部ROM20のデータを暗号化してデコーダ回路22に入力し、CPU24を混載した集積回路21内部の暗号解読コードブロック23に記録され、埋め込まれた暗号解読コードを利用して、デコーダ回路22において暗号データを復号化してCPU24を駆動するようにすれば、ソフトウェア設計の機密性は高くなる。CPUの命令コードが決まっているCPU24の場合に、それに基づいてソフトウェア設計を行い、外部ROM20にソフトウェアデータを格納しても、外部ROM20のデータを分析してもソフトウェアの設計内容が暴かれることはない。
【0103】
本発明の第2の実施の形態に係る半導体集積回路によれば、ソフトウェア設計データの機密性の高い外部ROM対応CPUを搭載した半導体集積回路を提供することができる。更に、本発明の第2の実施の形態のデータ転送システムによれば、ソフトウェア設計データの機密性の高い外部ROM型のデータ転送システムを供給できる。このように外部ROM20と半導体集積回路21とのデータ受け渡しに暗号化データを用いることで、ソフトウェアの機密性を向上することができる。
【0104】
本発明の第2の実施の形態よれば、設計データやソフトウェアが読み出せないセキュリティー性の高い、CPUを混載した半導体集積回路、データ転送システム、及びデータ転送方法を提供することができる。
【0105】
(第3の実施の形態)
本発明の第3の実施の形態に係る半導体集積回路及びデータ転送システムは、図12に示すように、実装基板32上に実装され、第1の半導体チップ上に集積化された外部ROM30と、第2の半導体チップ上に集積化されたASIC(Application specific integrated circuits)31とから構成されたハイブリッド集積回路である。更に、ASIC31は、外部ROM30とバス配線36を介して接続された暗号解読処理回路33と、暗号解読処理回路33に接続された暗号解読コードブロック40と、更に、暗号解読処理回路33に接続された暗号化対象処理回路34と、暗号化対象処理回路34と接続された内部回路35とを混載したモノリシック集積回路から構成される。ここで、暗号化対象処理回路34とは、秘密にしておくべき情報が格納され、内部回路35との間で、一定の回路動作を実行する回路と定義することができる。主として、CPU若しくはFPGA回路から構成される。もちろん、暗号化を目標とする回路であれば、他の回路形式も含まれる。
【0106】
尚、図12の例では実装基板32上に第1の半導体チップ及び第2の半導体チップがともに実装される例が示されているが、半田バンプ等を介して、第1の半導体チップ及び第2の半導体チップが多層構造として、実装されていても良いことは明らかである。
【0107】
本発明の第3の実施の形態は、ASICの自動設計技術と組み合わせて用いると、より高い効果が得られる。即ち、ASICのデータベースへ汎用性のあるFPGA回路或いはCPUの基本回路を蓄積しておいても、第3者は解読できない。このように、FPGA回路或いはCPUの標準化、デコーダ回路等の暗号解読処理回路33の標準化による自動設計手法の簡素化、暗号コードの決定と暗号解読コードの設計手順の標準化、ROMの暗号化手法の標準化による自動設計手法の簡素などの設計手法の簡素化が可能であり、かつできあがったFPGA混載の半導体集積回路或いはCPU混載の半導体集積回路製品の設計機密性の向上が可能である。
【0108】
FPGA回路コア或いはCPUコアは暗号化されていないものが登録されている。更に、デコーダ回路等の暗号解読処理回路33が登録されており、LSI設計で、設計データをダウンロードする時に組み合わせて活用されることになる。
【0109】
ここで、「設計手法簡素化」について説明する。
【0110】
設計自動化を行なう場合には、まず対象となる回路を標準化する必要がある。同じ回路や、同じ設計手法がそのまま使えると、或いは又、修正方法が簡単であるほど、設計自動化のためのソフトウェアの作成が容易になるからである。本発明の第3の実施の形態の場合、FPGA回路やCPUの回路の設計データはそのまま使えるので、設計自動化のためのソフトウェアの複雑化を招くことはない。
【0111】
更に、暗号化手法と復号化手法及び復号化回路を標準化することにより、まず、復号化回路の設計データもそのまま活用できることになる。
【0112】
更に、暗号化手法が決まることで、外部ROM30に書き込むデータを自動的に暗号化するためのソフトウェアを開発することができる。また、暗号化コードを決定し、その決まった暗号化に対する、復号化コードを自動算出して、ASIC31に埋め込むソフトウェアも開発することが可能である。
【0113】
ASIC製品では、顧客からの要求回路を自動設計するために、様々な回路がデータベースとして登録されており、かつそれらの個別回路の特性も登録されていて、顧客要求回路に合せて、設計データを自動的に持ち出してきて、組み合わせてASIC31を構築し、その特性も自動的に計算されるようになっているので、事前に顧客期待の性能を満足できるかまで確認できる。
【0114】
従って、本発明の第3の実施の形態において、設計データの暗号化処理や、デコーダ回路等の暗号解読処理回路33の自動設計などは、ASIC自動設計の延長技術で問題なく処理可能である。かつ、設計者に対する負担が少なくなるので、ASIC技術と組み合わせることにより、設計効率のより高い効果が得られる。
【0115】
(第4の実施の形態)
本発明の第4の実施の形態に係る半導体集積回路及びデータ転送システムは、図13に示すように、実装基板32上に実装され、第1の半導体チップ上に集積化された外部ROM30と、第2の半導体チップ上に集積化されたASIC31とから構成されたハイブリッド集積回路である。更に、ASIC31は、外部ROM30とバス配線36を介して接続された暗号解読処理回路33と、暗号解読処理回路33に接続された暗号解読コードブロック40と、更に、暗号解読処理回路33に接続されたFPGA回路37と、FPGA回路37と接続された内部回路35とを混載したモノリシック集積回路から構成される。ここで、FPGA回路37とは暗号化対象回路を代表的に示したものである。
【0116】
(第5の実施の形態)
本発明の第5の実施の形態に係る半導体集積回路及びデータ転送システムは、図14に示すように、実装基板32上に実装され、第1の半導体チップ上に集積化された外部ROM30と、第2の半導体チップ上に集積化されたASIC31とから構成されされたハイブリッド集積回路である。更に、ASIC31は、外部ROM30とバス配線36を介して接続された暗号解読処理回路33と、暗号解読処理回路33と接続された暗号解読コードブロック40と、暗号解読処理回路33に接続されたCPU38と、CPU38と接続された内部回路35とを混載したモノリシック集積回路から構成される。ここで、CPU38とは暗号化対象回路を代表的に示したものである。
【0117】
(第6の実施の形態)
本発明の第6の実施の形態に係る半導体集積回路及びデータ転送システムは、図15に示すように、実装基板32上に実装された第2の外部ROM301及び第1の外部ROM302と、ASIC31とから構成されたハイブリッド集積回路である。第1の外部ROM302は第1の半導体チップ上に集積化されている。第2の外部ROM301は第2の半導体チップとは異なる半導体チップ上に集積化されている。或いは、第2の外部ROM301は、第1の外部ROM302と同じ、第1の半導体チップ上に集積化されていてもよい。更に、第2の半導体チップ上に集積化されたASIC31は、外部ROM301、302とそれぞれバス配線360、361を介して接続されたデコーダ回路133と、デコーダ回路133に接続された暗号解読コードブロック40と、更に、デコーダ回路133に接続されたコンフィグレーション回路134と、コンフィグレーション回路134に接続されたFPGA回路37と、FPGA回路37と接続された内部回路35と、デコーダ回路133と接続されたCPU38とを混載して構成されたモノリシック集積回路である。更に、CPU38は、FPGA回路37、内部回路35、外部ROM301に接続されている。CPU38は、アドレスバス配線362を介して、外部ROM301に対してアドレスを指定して、データを要求する。その結果、デコーダ回路133において解読されたROMデータが、データバス配線363を介して、CPU38に対して提供される。本発明の第6の実施の形態の場合には、外部ROMが2個存在し、外部ROM301にはCPU38を駆動する暗号データが保持され、外部ROM302にはFPGA回路37を駆動する暗号データが保持去れている。本発明の第6の実施の形態の場合には、図15に示すように、FPGA回路37及びCPU38をASIC31に混載した構造を有する点に大きな特徴がある。
【0118】
尚、図15の例ではすべての半導体チップが、同一の実装基板32上に実装される例が示されているが、半田バンプ等を介して、多層構造として、実装されていても良いことは明らかである。
【0119】
次に、図16を用いて本発明の第6の実施の形態に係る半導体集積回路及びデータ転送システムの動作方法を説明する。電源投入からCPU38の稼動までの動作フローが図16には示されている。FPGA37に対応する暗号データが保持されるROM302のデータ書き込みのフローは、図2のステップST1のFPGA回路37の設計からステップST6のROMの実装基板への実装と同様であるため、記載を省略した。またCPU38に対応する暗号データが保持されるROM301のデータ書き込みのフローは、図11のステップSU1のソフトウェアの設計からステップSU6のROMの実装基板への実装と同様であるため、記載を省略した。
【0120】
ROM302にはFPGA回路37上に構築する機能の情報が書き込まれているとする。またROM301にはCPU38上で稼動するソフト情報が書き込まれているものとする。ROM301、ROM302とも暗号化したデータが書き込まれているものとする。
【0121】
(a)ステップSV1において、最初にASIC31及び2個のROM301,302を実装した実装基板32に電源を投入する。
【0122】
(b)次に、ステップSV2において、ROM302の暗号化されたデータをデコーダ回路133において受信し、復号化する。復号化するキーワードは暗号解読コードとして暗号解読コードブロック40内に埋め込まれているので、その情報を用いる。
【0123】
(c)次に、ステップSV3において、復号化されたデータはコンフィグレーション回路134に送られて、FPGA回路37が理解できる形にデータ変換が行われて、その復号化されたデータはFPGA回路37において、受信される。こうしてFPGAは予めプログラムされた機能を満たす回路が構築される。
【0124】
(d)次に、ステップSV4において、最後のデータが受信されたかどうかを判断する。YESならば、ステップSV5に進む。NOならば、ステップSV2に戻る。
【0125】
(e)次に、ステップSV5において、ROM302からのデータが全て取り込まれると、FPGA回路37はユーザーモードに移行する。
【0126】
(f)次に、ステップSV6において、ASIC31は動作を開始する。
【0127】
ASIC内のCPUも同様に稼動を始める。
【0128】
(g)次に、ステップSV7において、CPU38からCPU38の設計時に設定されたスタートアドレスを外部ROM301に対して出力して、外部ROM301に対して、アドレス指定が行なわれる。
【0129】
(h)次に、ステップSV8において、デコーダ回路133において、ROM301からの暗号化されたソフトウェアデータを受信し、復号化して、CPU38に送る。
【0130】
(i)次に、ステップSV9において、CPU38では復号化されたデータに基づき業務を実行する。
【0131】
(j)次に、ステップSV10において、次の業務指示があるかどうかを判断する。YESであるならば、ステップSV7に戻る。NOであるならば、ステップSV10を繰り返す。
【0132】
こうすることにより、ROM301或いはROM302のデータを読み取ってもFPGA回路37の機能もCPU38上で動作するソフトも暗号化により機密が保持される。
【0133】
(第7の実施の形態)
本発明の第7の実施の形態に係る半導体集積回路及びデータ転送システムは、図17に示すように、コンフィグレーション回路134に接続された第2の暗号解読コードブロック400及び第2の暗号解読コードブロック400に接続された第2のデコーダ回路233を更に備える点に特徴を有する。第2の暗号解読コードブロック400は具体的にはFPGA回路から構成される。従って、コンフィグレーション回路134により、その回路構成が定義される。CPU38は、アドレスバス配線362を介して、第2の外部ROM301に対してアドレスを指定して、データを要求する。その結果、第2のデコーダ回路233において解読されたROMデータが、データバス配線364を介して、CPU38に対して提供される。本発明の第7の実施の形態の場合には、外部ROMが2個存在し、第2の外部ROM301にはCPU38を駆動する暗号データが保持され、第1の外部ROM302にはFPGA回路37を駆動する暗号データが保持されている。本発明の第7の実施の形態の場合には、図17に示すように、FPGA回路37及びCPU38を、第2の半導体チップ上に集積化されたASIC31に混載した構造を有する点にも大きな特徴がある。図17に示した第7の実施の形態の構成は、基本的には、図15に示した第6の実施の形態の構成と同様であるが、CPU38の暗号解読コードは、FPGA回路からなる暗号解読コードブロック400にて構築したものである。
【0134】
第1の半導体チップ上に集積化された第1の外部ROM302に書き込まれた機能情報としての暗号データは、FPGA回路37を構築するとともに、CPU38の暗号解読コードも情報として第1のROM302に書き込まれている。ASIC31が稼動を開始する前にFPGA回路37が構築される。CPU38が稼動を開始する前に、CPU38の暗号解読コードはFPGA回路からなる暗号解読コードブロック400に構築されている。こうすることにより、図15に示した本発明の第6の実施の形態に係る半導体集積回路及びデータ転送システムの利点に加えて、CPU38の暗号解読コードが、第1の外部ROM302のデータを変更することにより、いつでも切替可能になるという点に大きな特徴が存在する。即ち、第7の実施の形態においては、CPU38用の暗号データに外部から変更を加えたいような場合に有効である。第2の外部ROM301に保持されていた暗号データが何らかの事情により、解読されているような場合には、第1の外部ROM302によって、暗号解読コードブロック400内に構築されるFPGA回路に変更を加えることができる。同時に第2の外部ROM301の内容も外部ROM302の変更内容に合せて変更させる。こうすることによって、一端秘密を暴かれたCPU38用の暗号データの内容に任意の変更を加えることができる。第1の外部ROM302は第1の半導体チップ上に集積化されている。第2の外部ROM301は第2の半導体チップとは異なる半導体チップ上に集積化されている。或いは、第2の外部ROM301は、第1の外部ROM302と同じ、第1の半導体チップ上に集積化されていてもよい。尚、図17の例ではすべての半導体チップが、同一の実装基板32上に実装される例が示されているが、半田バンプ等を介して、多層構造として、実装されていても良いことは明らかである。
【0135】
次に、図18及び図19を用いて本発明の第7の実施の形態に係る半導体集積回路及びデータ転送システムの動作方法を説明する。CPUソフトウェアの暗号化コード決定からCPUの稼動までの動作フローを図18に示し、CPUソフトウェアの暗号化コードの変更の動作フローを図19示す。
【0136】
(a)まず、ステップSW1において、CPUソフトウェアの暗号化コードを決定する。
【0137】
(b)次に、ステップSW2において、CPUソフトウェアの暗号化コードに基づいて暗号解読コードブロック400の回路設計及びFPGA回路37に構築する機能の設計を行う。
【0138】
(c)次に、ステップSW3において、その設計に基づきROM(1)302のデータを作成する。
【0139】
(d)次に、ステップSW4において、ASIC設計時に決めたFPGA暗号化コードを使用する。
【0140】
(e)次に、ステップSW5において、ROM(1)302のデータの暗号化を行う。
【0141】
(f)次に、ステップSW6において、その暗号化データをROM(1)302に書き込む。
【0142】
以上のステップSW2〜SW6の作業と並行して、以下のステップSW7〜SW10を実行する。
【0143】
(g)ステップSW7において、CPU38上で動作するソフトウェアの設計を行う。
【0144】
(h)次に、ステップSW8において、その設計データに基づきROM(2)301のデータを作成する。
【0145】
(i)次に、ステップSW9において、ROM(2)301のデータの暗号化コードは予め決められているので、そのコードを用いてROM(2)301のデータの暗号化を行う。
【0146】
(j)次に、ステップSW10において、その暗号化データをROM(2)301へ書き込む。
【0147】
(k)次に、ステップSW11において、ROM301、ROM302をASIC31とともに実装基板32に実装する。
【0148】
(l)次に、ステップSW12において、実装基板32に対して電源を投入する。自動的にFPGA部のコンフィグレーション動作が開始する。
【0149】
(m)ステップSW13において、ROM(1)302のデータがASIC31に取り込まれ、暗号解読コードブロック40のデータを参照して、デコーダ回路133において、読み込みデータは復号化される。
【0150】
(n)次に、ステップSW14において、復号化されたデータはコンフィグレーション回路134においてFPGA回路に適合したデータに変換されて送出され、FPGA回路37において受信される。同時に暗号解読コードブロック400内のFPGA回路において受信される。
【0151】
(o)次に、ステップSW15において、ROM302内の全てのデータが読み込まれたかどうかを判断する。YESであるならば、ステップSW16に進み、NOであるならば、ステップSW13に戻る。
【0152】
(p)次に、ステップSW16において、FPGA回路37及び暗号解読コードブロック400内のFPGA回路はユーザーモードにシフトする。FPGA回路は設計者が意図した機能を持つとともに、暗号解読コードブロック400も構築される。
【0153】
(q)次に、ステップSW17において、ASIC31は動作を開始する。CPU38も稼動を開始する。
【0154】
(r)次に、ステップSW18において、CPU38の設計時に設定されたスタートアドレスをROM(2)301に提示してデータを要求する。即ち、読み込みROM(2)301のアドレスを決定する。ROM(2)301は指定されたアドレスのデータをASIC31に送り出す。
【0155】
(s)次に、ステップSW19において、デコーダ回路233において、コンフィグレーション時に構築された暗号解読コードブロック400内の暗号解読コードに基いて、受信データの復号化を行う。
【0156】
(t)次に、ステップSW20において、復号化データはCPU38に送られ、CPUで解読されて、指定業務が行われ、次の指示を待つ。
【0157】
(u)次に、ステップSW21において、次の指定業務が存在するかどうかを判断する。YESであるならば、ステップSW18に戻る。NOであるならば、ステップSW21を繰り返す。
【0158】
こうすることにより、図17に示した第7の実施の形態に係る半導体集積回路及びデータ転送システムでは、図15に示した第6の実施の形態に係る半導体集積回路及びデータ転送システムの利点に加えて、ROM(1)302のデータを変更することによって、複数のCPU38の暗号解読コードを作成することができる。
【0159】
数機種の応用機器を同時に設計する場合に、1つのASICを設計して、全ての応用機器に適用することが可能となる。かつまた、その各々機種によって異なるCPU用のソフトウェア暗号解読コードを持たせることができるようになる。従って、暗号の機密を破られた場合の被害を少なく抑えることができる。
【0160】
次に、外部ROM301及び302に用いられるROMとしては、EEPROM、フラッシュPROM、EPROM、OTPROM(One Time PROM)、NTPROM(N Time PROM:数回書替え可能)、ヒューズROM、マスクROMなどが適用可能である。
【0161】
この内、EEPROM、フラッシュPROM或いはNTPROMを用いた場合には、応用機器が市場に出回った後で、応用ソフトのバージョンアップ等の時に、使用者側において、CPUソフトウェアの暗号コードの変更が可能になる利点が加わる。
【0162】
図19にその場合の暗号解読コード変更のフローを示す。
【0163】
(a2)まず、ステップSW22において、CPUソフトウェアの暗号化コードを変更するために新しい暗号化コードを決定する。
【0164】
(b2)次に、ステップSW23において、CPUソフトウェアの変更した暗号化コードに基づいて暗号解読コードブロック400の回路設計及びFPGA回路37に構築する機能の設計を行う。
【0165】
(c2)次に、ステップSW24において、その設計に基づきROM(1)302のデータを作成する。
【0166】
(d2)次に、ステップSW25において、FPGA暗号化コードを決定する。
【0167】
(e2)次に、ステップSW26において、ROM(1)302のデータの暗号化を行う。
【0168】
(f2)次に、ステップSW27において、その暗号化データをインターネット上においてWEB登録する。
【0169】
(g2)次に、ステップSW28において、インターネット上においてWEB登録されたROM(1)302の暗号データをダウンロードする。
【0170】
(h2)次に、ステップSW29において、ROM(1)302にダウンロードした暗号データを書き込む。
【0171】
以上のステップSW23〜SW29の作業と並行して、以下のステップSW30〜SW35を実行する。
【0172】
(i2)ステップSW30において、CPU38上で動作する新しいソフトウェアの設計を行う。
【0173】
(j2)次に、ステップSW31において、その設計データに基づきROM(2)301のデータを作成する。
【0174】
(k2)次に、ステップSW32において、ROM(2)301の暗号化データを決定する。
【0175】
(l2)次に、ステップSW33において、その暗号化データをインターネット上においてWEB登録する。
【0176】
(m2)次に、ステップSW34において、インターネット上においてWEB登録されたROM(2)301の暗号データをダウンロードする。
【0177】
(n2)次に、ステップSW35において、ROM(2)301にダウンロードした暗号データを書き込む。
【0178】
(o2)次に、ステップSW36において、実装基板32に対して電源を投入する。自動的にFPGA部のコンフィグレーション動作が開始する。
【0179】
以下、図18に示すステップSW13〜SW21と同様のステップを実行する。
【0180】
ROM(1)302のデータ,ROM(2)301のデータはWEB登録以外にCDROM等で一般に配布される場合もある。
【0181】
こうすることにより、随時、暗号化コードの変更が行われ、古いソフトの暗号の機密が破られた場合でも、新しいソフトへの機密漏洩の影響は無くなる利点がある。
【0182】
(第8の実施の形態)
本発明の第8の実施の形態に係る半導体集積回路及びデータ転送システムは、図20に示すように、実装基板32上に実装され、第1の半導体チップ上に集積化された外部ROM30と、第2の半導体チップ上に集積化されたASIC31と、第3の半導体チップ上に集積化されたASIC310とから構成されたハイブリッド集積回路である。更に、ASIC31は、外部ROM30とデータバス配線36を介して接続されたデコーダ回路133と、デコーダ回路133に接続されたコンフィグレーション回路134と、コンフィグレーション回路134に接続されたFPGA回路37と、デコーダ回路133に接続された暗号解読コードブロック40と、更に、FPGA回路37に接続された内部回路35とを混載して構成されたモノリシック集積回路である。更にこのFPGA回路37は別のASIC310内のFPGA回路340の接続されている。尚、図20の例ではすべての半導体チップが、同一の実装基板32上に実装される例が示されているが、半田バンプ等を介して、多層構造として、実装されていても良いことは明らかである。
【0183】
本発明の第8の実施の形態に係る半導体集積回路及びデータ転送システムは、図20に示すように、本発明の第1の実施の形態の変形例と見ることもできる。ASIC310にはコンフィグレーション回路(図示省略)とFPGA回路340が搭載されている。
【0184】
2個のFPGA回路37及び340はシリアルに結合されている。1個の外部ROM1からの暗号化されたデータを、デコーダ回路133において受信し、復号化して機能情報がFPGA回路37に書き込まれる。FPGA回路37の機能を決める情報を格納するRAMは、図4に示したように、シフトレジスタにて構成され、その基本単位として、例えば、Dタイプ・フリップ/フロップがシリアルに結合されている。従って、2個のFPGA回路37,340がシリアルに結合された場合にも、シリアル結合の段数が変わるだけであり、基本的に書き込み動作に変更はない。まずこれらのLSIを実装した実装基板32に電源が投入されると、暗号化されたROMデータがデコーダ回路133に送られ復号化されて、コンフィグレーション回路134に送られる。コンフィグレーション回路134ではFPGA回路37に合った形にデータ変換を行い、FPGA回路37にデータを送る。FPGA回路37内では、シリアルに結合されたシフトレジスタの入り口にデータが取り込まれ、次のデータが取り込まれる度に、全ての入手済みデータが1ステップずつ先に送られる。こうしてASIC31内のFPGA回路37において、シフトレジスタのシリアル結合段の最終段まできたデータは、ASIC310のFPGA回路340に取り込まれる。
【0185】
ROMデータが最後まで取り込まれると、2つのFPGA回路37、340はユーザーモードに切り替わり、ASIC31及びASIC310が稼動を開始する。
【0186】
本発明の第8の実施の形態に係る半導体集積回路及びデータ転送システムの構成から明らかなように、複数のASICを有する場合においても、1個の外部ROM30と接続された1個のデコーダ回路133を用いるだけで、各ASIC内に搭載されるFPGA回路の機能情報を管理することができる。このようにして、複数のASIC内に搭載されたFPGA回路上に構築する機能情報は1個のデコーダ回路133を用いるだけで、機密性の向上を図ることが出来る利点がある。
【0187】
(第8の実施の形態の変形例1)
本発明の第8の実施の形態の変形例1に係る半導体集積回路及びデータ転送システムは、例えば、図21に示すように、ASIC310内に搭載されるFPGA回路340の出力を更に別のASIC320内に搭載されるFPGA回路350に結合した構成を有する。第7の実施の形態から明らかなように、複数のASICを有する場合においても、1個の外部ROM30と接続された1個のデコーダ回路133を用いるだけで、各ASIC内に搭載されるFPGA回路の機能情報を管理することができる。複数のASIC内に搭載されたFPGA回路上に構築する機能情報は1個のデコーダ回路133を用いるだけで、機密性の向上を図ることができる。更に、別のASIC内にFPGA回路を搭載して、FPGA回路350の出力にシリアル接続するようにすることも、同様の方法で可能である。
【0188】
(第8の実施の形態の変形例2)
本発明の第8の実施の形態の変形例2に係る半導体集積回路及びデータ転送システムは、例えば、図22に示すように、FPGA回路37を搭載したASIC31とFPGA回路340をシリアルに結合した構成を有する。この場合にも、図20に示した第8の実施の形態と同様に、外部ROM30のROMデータが復号化されて、FPGA回路37及びFPGA回路340に書き込まれた後に、FPGA回路37及びFPGA回路340はユーザーモードに移行して、ASIC31が稼動を開始する。このようにすることによって、1個のASIC31に搭載されたFPGA回路37のデータの機密性を向上することが可能であるとともに、外部に接続されたFPGA回路340のデータの機密性を向上することも可能となる。
【0189】
(第8の実施の形態の変形例3)
本発明の第8の実施の形態の変形例3に係る半導体集積回路及びデータ転送システムは、例えば、図23に示すように、FPGA回路37を搭載したASIC31とFPGA回路340をシリアルに結合し、更にFPGA回路340に対してFPGA回路350をシリアルに結合した構成を有する。この場合にも、図20に示した第7の実施の形態と同様に、外部ROM30のROMデータが復号化されて、FPGA回路37及びFPGA回路340及びFPGA回路350に書き込まれた後に、FPGA回路37及びFPGA回路340及びFPGA回路350はユーザーモードに移行して、ASIC31が稼動を開始する。このようにすることによって、1個のASIC31に搭載されたFPGA回路37のデータの機密性を向上することが可能であるとともに、外部に接続されたFPGA回路340及びFPGA回路350のデータの機密性を向上することも可能となる。複数のFPGA回路を有する場合においても、1個の外部ROM30と接続された1個のデコーダ回路133を用いるだけで、各FPGA回路の機能情報を管理することができる。FPGA回路上に構築する機能情報は1個のデコーダ回路133を用いるだけで、機密性の向上を図ることができる。更に、FPGA回路350に別のFPGAデバイスをシリアル接続してシステムを拡張することも、同様の方法で可能である。
【0190】
(第9の実施の形態)
本発明の第9の実施の形態に係る半導体集積回路及びデータ転送システムは、図24に示すように、実装基板32上に実装された第2の外部ROM301及び第1の外部302と、ASIC31及びASIC310とから構成されたハイブリッド集積回路である。第1の外部ROM302は第1の半導体チップ上に集積化され、第2の外部ROM301は第2の半導体チップとは異なる半導体チップに集積化される。第2の外部ROM301は第1の半導体チップと同一の半導体チップ上に集積化されていても良い。更に、第2の半導体チップ上に集積化されたASIC31は、外部ROM301、302とそれぞれデータバス配線360、361を介して接続されたデコーダ回路133と、デコーダ回路133に接続された暗号解読コードブロック40と、更に、デコーダ回路133に接続されたCPU38と、CPU38と接続された内部回路35とを混載して構成されたモノリシック集積回路である。ASIC310にはコンフィグレーション回路(図示省略)及びFPGA回路340が搭載されている。更にこのデコーダ回路133はASIC310内のFPGA回路340に接続されている。ここで、本発明の第9の実施の形態の場合には、外部ROMが2個存在し、それぞれの目的に合わせて、暗号コードを保持している。即ち、外部ROM302にはFPGA回路340に使用する暗号データが保持されている。また、外部ROM301にはCPU38において使用する暗号ソフトウェアが保持されている。尚、図24の例ではすべての半導体チップが、同一の実装基板32上に実装される例が示されているが、半田バンプ等を介して、多層構造として、実装されていても良いことは明らかである。
【0191】
まずこれらのLSIを搭載した実装基板32に電源が投入されると、ROM302の暗号化されたデータがASIC31に取り込まれ、デコーダ回路133において復号化されて、データバス配線365を介して、ASIC310に出力される。ASIC310に取り込まれたデータはコンフィグレーション回路を経由してFPGA回路340に取り込まれる。ROM302の全てのデータがFPGA回路340に取り込まれた後、FPGA回路340はユーザーモードに移行して、ASIC31及びASIC310は稼動を開始する。
【0192】
ASIC31が稼動を開始すると、内部に搭載されたCPU38も稼動を開始して、CPU38の設計時に設定されたスタートアドレスを、アドレスバス配線362を介して、ROM301に出力し、ROM301からのデータを要求する。ROM301は指定されたアドレスのデータを、データバス配線360を介して、ASIC31に出力する。ASIC31では入手したデータをデコーダ回路133で復号化して、データバス配線363を介して、CPU38にデータ転送する。CPU38では入手したデータを解読して、業務を実行し次の業務指示を待つ。
【0193】
このようにすることにより、FPGA回路340及びCPU38が別々のASICに搭載された場合にも、1個のデコーダ回路133で双方のデータの機密性を向上することが可能となる。
【0194】
(第9の実施の形態の変形例)
本発明の第9の実施の形態の変形例に係る半導体集積回路及びデータ転送システムは、図25に示すように、CPU38を搭載したASIC31とFPGA回路340をシリアルに結合した構成を有する。ASIC31にCPU38を搭載し、ASIC31と外部接続されたFPGA回路340のデータの機密性を向上した実施例を示す。図24に示された第9の実施の形態の動作と同様に、外部ROM302の全データがFPGA回路340に書き込まれた後、FPGA回路340はユーザーモードに移行し、ASIC31は稼動を開始する。そしてCPU38も稼動を開始して、ROM301からデータを入手して、復号化した後、CPUにてデータを解読して、業務を行う。このようにすることにより、CPU38を搭載したASIC31のソフトウェアの機密性の向上を図るとともに、外部接続されたFPGA回路340のデータの機密性を向上することができる。
【0195】
図23に示した第8の実施の形態の変形例3に係る半導体集積回路及びデータ転送システムの構成と同様に、CPU38を搭載したASIC31とFPGA回路340をシリアルに結合し、更にFPGA回路340に対してFPGA回路350をシリアルに結合した構成を採用しても良い。
【0196】
複数のFPGA回路を有する場合においても、外部ROM302と接続された1個のデコーダ回路133を用いるだけで、各FPGA回路の機能情報を管理することができる。FPGA回路上に構築する機能情報は1個のデコーダ回路133を用いるだけで、機密性の向上を図ることができる。更に、FPGA回路350に別のFPGAデバイスをシリアル接続してシステムを拡張することも、同様の方法で可能である。
【0197】
(第10の実施の形態)
本発明の第10の実施の形態に係る半導体集積回路及びデータ転送システムは、図26に示すように、実装基板32上に実装された外部ROM301及び302と、ASIC31及び310とから構成されたハイブリッド集積回路である。更に、ASIC31は、外部ROM301及び302とそれぞれバス配線360及び361を介して接続されたデコーダ回路133と、デコーダ回路133に接続された暗号解読コードブロック40と、更に、デコーダ回路133に接続されたFPGA回路37と、FPGA回路37と接続された内部回路35とを混載して構成されたモノリシック集積回路である。また、ASIC310にはCPU341が搭載されている。更に、ASIC31内のデコーダ回路133は、ASIC310内のCPU341に接続されている。FPGA回路37は、内部回路35との間で、一定の回路動作を実行する。第1の外部ROM302は第1の半導体チップ上に集積化され、第2の外部ROM301は第2の半導体チップとは異なる半導体チップに集積化される。第2の外部ROM301は第1の半導体チップと同一の半導体チップ上に集積化されていても良い。また、ASIC31は第2の半導体チップ上に集積化され、ASIC310は第3の半導体チップ上に集積化されている。尚、図26の例ではすべての半導体チップが、同一の実装基板32上に実装される例が示されているが、半田バンプ等を介して、多層構造として、実装されていても良いことは明らかである。
【0198】
第10の実施の形態に係る半導体集積回路及びデータ転送システムは、図26に示すように、2個のASICにFPGA回路或いはCPUを搭載して、結合した構成を有する点では、図24に示した第9の実施の形態と同様である。第10の実施の形態においては、FPGA回路37を搭載するASIC31にデコーダ回路133が搭載されている。
【0199】
まずROM302から、データバス配線361を介して、ASIC31に暗号化されたデータが出力される。次に、ASIC31のデコーダ回路133においてデータの復号化が行われる。次に、コンフィグレーション回路134を経由して、FPGA回路37に復号化されたデータが書き込まれる。外部ROM302内の全てのROMデータが書き込まれた後、FPGA回路37はユーザーモードに移行し、ASIC31及びASIC310は稼動を開始する。
【0200】
ASIC310に搭載されたCPU341も稼動を開始する。CPU341は、アドレスバス配線366を介して、ROM301にアドレスを指定してデータを要求する。ROM301の暗号化されたデータは、データバス配線360を介して、まずASIC31に送り出され、ASIC31のデコーダ回路133において復号化される。次にこの復号化されたデータは、データバス配線365を介して、ASIC310に送り出される。ASIC310内のCPU341は入手したデータを解読して業務を行う。
【0201】
このようにすることにより、FPGA回路37及びCPU341が別々のASICに搭載された場合にも、1個のデコーダ回路133によって双方のデータの機密性を向上することが可能となる。
【0202】
(第10の実施の形態の変形例)
本発明の第10の実施の形態の変形例に係る半導体集積回路及びデータ転送システムは、図27に示すように、FPGA回路37を搭載したASIC31とCPU341をシリアルに結合した構成を有する。ASIC31にFPGA回路37を搭載し、ASIC31と外部接続されたCPU341双方のデータの機密性を向上した実施例を示す。
【0203】
図26に示した第10の実施の形態の動作と同様に、全てのROM302のデータがFPGA回路37に書き込まれた後、FPGA回路37はユーザーモードに移行し、ASIC31及びCPU341は稼動を開始する。CPU341はROM301にアドレスを指定してデータを要求する。ROM301は指定アドレスのデータをASIC31に送出する。ASIC31ではデコーダ回路133においてデータを復号化して、CPU341にデータを送出する。CPU341は入手したデータを解読して業務を行う。
【0204】
このようにすることにより、FPGA回路37を搭載したASIC31のデータの機密性の向上を図るとともに、外部接続されたCPU341のソフトウェアデータの機密性の向上を図ることができる。
【0205】
(第11の実施の形態)
本発明の第11の実施の形態に係る半導体集積回路及びデータ転送システムは、図28に示すように、実装基板32上に実装された外部ROM301及び302と、ASIC31及びASIC310及び320とから構成されたハイブリッド集積回路である。更に、ASIC31は、外部ROM302とバス配線361を介して接続されたデコーダ回路133と、外部ROM301とバス配線360を介して接続されたデコーダ回路233と、デコーダ回路133及びデコーダ回路233に接続された暗号解読コードブロック40と、更に、デコーダ回路233に接続されたコンフィグレーション回路134と、コンフィグレーション回路134と接続されたFPGA回路37と、FPGA回路37と接続された内部回路35とを混載して構成されたモノリシック集積回路である。ASIC310及び320にはコンフィグレーション回路(図示省略)及びFPGA回路340及び350が搭載されている。更にこのFPGA回路37はASIC310内のFPGA回路340に接続されている。更にまた、デコーダ回路133は、更にデータバス配線365を介して、ASIC320内のFPGA回路350に接続されている。ここで、FPGA回路37は、他の回路35との間で、一定の回路動作を実行すると共に、FPGA回路340の回路形式を定義することができる。
【0206】
第1の外部ROM302は第1の半導体チップ上に集積化され、第2の外部ROM301は第2の半導体チップとは異なる半導体チップに集積化されている。或いはまた、第2の外部ROM301は第1の半導体チップと同一の半導体チップ上に集積化されていても良い。また、ASIC31は第2の半導体チップ上に集積化され、ASIC310は第3の半導体チップ上に集積化されている。更に、ASIC320は第4の半導体チップ上に集積化されている。尚、図28の例ではすべての半導体チップが、同一の実装基板32上に実装される例が示されているが、半田バンプ等を介して、多層構造として、実装されていても良いことは明らかである。
【0207】
図28に示す第11の実施の形態に係る半導体集積回路及びデータ転送システムは、3個のASICにFPGA回路を搭載して、各々を結合した実施例に相当している。これらのLSIが実装された実装基板32に電源が投入されると、ROM301及びROM302のデータは並行してASIC31に取り込まれていく。ROM301のデータはデコーダ回路233において復号化され、コンフィグレーション回路134を経由してFPGA回路37に書き込まれ、更にASIC310内のFPGA回路340に書き込まれていく。ROM302のデータはASIC1のデコーダ回路133において復号化され、ASIC320に送出され、ASIC320内のFPGA回路350に書き込まれていく。ROM301の全データがFPGA回路37及び340に書き込まれ、ROM302の全データがFPGA回路350に書き込まれた後、全てのFPGA回路37,340,及び350はユーザーモードに移行し、ASIC31、ASIC310、ASIC320は稼動を開始する。このようにすることにより、FPGA回路を各々搭載した複数のASICでも1個の暗号解読コードブロック40によって、全体のデータの機密性を向上することが可能となる。かつ複数のASICに対して、コンフィグレーションを複数ラインで同時に実施するので、コンフィグレーション時間を短縮することができる利点がある。
【0208】
(第11の実施の形態の変形例)
本発明の第11の実施の形態の変形例に係る半導体集積回路及びデータ転送システムは、図29に示すように、実装基板32上に実装された外部ROM301及び302と、外部のFPGA回路340及び350とから構成される。更に、ASIC31は、外部ROM301とバス配線360を介して接続されたデコーダ回路233と、外部ROM302とバス配線361を介して接続されたデコーダ回路133と、デコーダ回路133及びデコーダ回路233に接続された暗号解読コードブロック40と、更に、デコーダ回路233に接続されたコンフィグレーション回路134と、コンフィグレーション回路134と接続されたFPGA回路37と、FPGA回路37と接続された内部回路35とから構成される。更にこのFPGA回路37はFPGA回路340に接続されている。更にまた、デコーダ回路133は、データバス配線365を介して、FPGA回路350に接続されている。ここで、FPGA回路37は、他の回路35との間で、一定の回路動作を実行すると共に、FPGA回路340の回路形式を定義することができる。
【0209】
図29に示す第11の実施の形態の変形例は、FPGA回路37を搭載したASIC31、及び2個のFPGA回路340、350を結合した実施例を示す。図28と動作状況は殆ど同じであるが、図28において、外部接続される、FPGA回路340、350を搭載したASIC310、320がFPGA回路340、350に変わったものである。この場合にもROM301の全データ及びROM302の全データがFPGA回路37、340或いはFPGA回路350に書き込まれた後、FPGA回路37、340或いはFPGA回路350はユーザーモードに移行し、ASIC31は稼動を開始する。このようにすることにより、FPGA回路37を搭載した1個のASIC31で、外部接続された複数個のFPGA回路を含めた全てのFPGA書き込みデータの機密性を向上することが可能となる。かつコンフィグレーションを複数ラインで同時に実施するので、コンフィグレーション時間を短縮することができる利点がある。
【0210】
(第12の実施の形態)
本発明の第12の実施の形態に係る半導体集積回路及びデータ転送システムは、図30に示すように、実装基板32上に実装された外部ROM301及び302と、ASIC31及びASIC310及び320とから構成されたハイブリッド集積回路である。更に、ASIC31は、外部ROM301とバス配線360を介して接続されたデコーダ回路233と、外部ROM302とバス配線361を介して接続されたデコーダ回路133と、デコーダ回路133及びデコーダ回路233に接続された暗号解読コードブロック40と、更に、デコーダ回路233に接続されたコンフィグレーション回路134と、コンフィグレーション回路134と接続されたFPGA回路37と、FPGA回路37と接続された内部回路35とを混載して構成されるモノリシック集積回路である。ASIC310にはコンフィグレーション回路(図示省略)及びFPGA回路340が搭載され、ASIC320にはCPU341が搭載されている。更にこのFPGA回路37はASIC310内のFPGA回路340に接続されている。更にまた、デコーダ回路133は、データバス配線365を介して、ASIC320内のCPU341に接続されている。ここで、FPGA回路37は、内部回路35との間で、一定の回路動作を実行すると共に、FPGA回路340の回路形式を定義することができる。
【0211】
第1の外部ROM302は第1の半導体チップ上に集積化され、第2の外部ROM301は第2の半導体チップとは異なる半導体チップに集積化されている。或いはまた、第2の外部ROM301は第1の半導体チップと同一の半導体チップ上に集積化されていても良い。また、ASIC31は第2の半導体チップ上に集積化され、ASIC310は第3の半導体チップ上に集積化されている。更に、ASIC320は第4の半導体チップ上に集積化されている。尚、図30の例ではすべての半導体チップが、同一の実装基板32上に実装される例が示されているが、半田バンプ等を介して、多層構造として、実装されていても良いことは明らかである。
【0212】
図30に示す第12の実施の形態は、3個のASICの内2個にFPGA回路を搭載し、1個にCPUを搭載して、各々を結合した実施例に相当している。図20に示す第8の実施の形態と図26に示す第10の実施の形態との組み合わせと見ることもできる。これらのLSIが実装された実装基板32に電源が投入されると、第2の外部ROM301の全データがASIC31に取り込まれて、FPGA回路31及びFPGA回路340がユーザーモードになった後、第1の外部ROM302のデータがASIC31に取り込まれる。第2の外部ROM301のデータはデコーダ回路233において復号化され、コンフィグレーション回路134を経由してFPGA回路37に書き込まれ、更にASIC310内のFPGA回路340に書き込まれていく。第1の外部ROM302のデータはASIC1のデコーダ回路133において復号化され、データバス配線365を介して、ASIC320に送出され、ASIC320内のCPU341に提供される。第2の外部ROM301の全データがFPGA回路37及び340に書き込まれた後、ASIC31、ASIC310、ASIC320は稼動を開始する。第1の外部ROM302に対してはCPU341からアドレス指定を要求され、そのアドレス要求に応答して、第1の外部ROM302のデータがCPU341に書き込まれる。このようにすることにより、FPGA回路或いはCPUを各々搭載した複数のASICでも1個の暗号解読コードブロック40によって、全体のデータの機密性を向上することが可能となる。
【0213】
(第12の実施の形態の変形例)
本発明の第12の実施の形態の変形例に係る半導体集積回路及びデータ転送システムは、図31に示すように、実装基板32上に実装された外部ROM301及び302と、ASIC31及び外部のFPGA回路340及びCPU341とから構成される。更に、ASIC31は、外部ROM301とバス配線360を介して接続されたデコーダ回路233と、外部ROM302とバス配線361を介して接続されたデコーダ回路133と、デコーダ回路133及びデコーダ回路233に接続された暗号解読コードブロック40と、更に、デコーダ回路233に接続されたコンフィグレーション回路134と、コンフィグレーション回路134と接続されたFPGA回路37と、FPGA回路37と接続された内部回路35とから構成される。更にこのFPGA回路37はFPGA回路340に接続されている。更にまた、デコーダ回路133は、データバス配線365を介して、CPU341に接続されている。ここで、FPGA回路37は、他の回路35との間で、一定の回路動作を実行すると共に、FPGA回路340の回路形式を定義することができる。
【0214】
図31に示す第12の実施の形態の変形例は、1個のFPGA回路37を搭載したASIC31に対して、外部にCPU341及びFPGA回路340を配置して、各々を結合した実施例に相当している。図22示す第8の実施の形態の変形例2と図27に示す第10の実施の形態の変形例との組み合わせと見ることもできる。これらのLSIが実装された実装基板32に電源が投入されると、第2の外部ROM301の全データがASIC31に取り込まれて、FPGA回路31及びFPGA回路340がユーザーモードになった後、第1の外部ROM302のデータがASIC31に取り込まれる。第2の外部ROM301のデータはデコーダ回路233において復号化され、コンフィグレーション回路134を経由してFPGA回路37に書き込まれ、更にFPGA回路340に書き込まれていく。第1の外部ROM302のデータはASIC1のデコーダ回路133において復号化され、CPU341に提供される。第2の外部ROM301の全データがFPGA回路37及び340に書き込まれた後、ASIC31は稼動を開始する。第1の外部ROM302に対してはCPU341からアドレス指定を要求され、そのアドレス要求に応答して、第1の外部ROM302のデータがCPU341に書き込まれる。このようにすることにより、FPGA回路或いはCPUを各々搭載した複数のASICでも1個の暗号解読コードブロック40によって、全体のデータの機密性を向上することが可能となる。
【0215】
(第13の実施の形態)
本発明の第13の実施の形態に係る半導体集積回路及びデータ転送システムは、図32に示すように、実装基板32上に実装された外部ROM301及び302と、ASIC31及びASIC310及びASIC320とから構成されたハイブリッド集積回路である。ASIC31は、外部ROM301にバス配線360を介して接続されたデコーダ回路233と、外部ROM302にバス配線361を介して接続されたデコーダ回路133と、デコーダ回路233に接続された暗号解読コードブロック40と、更にデコーダ回路233に接続されたコンフィグレーション回路134と、コンフィグレーション回路134に接続されたFPGA回路37と、更に、コンフィグレーション回路134に接続された暗号解読コードブロック400と、FPGA回路37に接続された内部回路35とを混載して構成されたモノリシック集積回路である。図32において、暗号解読コードブロック400がFPGA回路によって構成されている点に大きな特徴がある。ASIC310は、コンフィグレーション回路(図示せず)とFPGA回路340を含み、ASIC320はCPU341を含む。FPGA回路37はASIC310内のコンフィグレーション回路を介してFPGA回路340に接続されている。また、デコーダ回路133は、データバス配線365を介して、ASIC320内のCPU341に接続されている。またCPU341はアドレスバス配線366を介して、ROM302に接続されている。
【0216】
ASIC31においては、FPGA回路データの復号化に用いられる暗号解読コードが暗号解読コードブロック40内に埋め込まれている。CPU341のデータ復号化に用いられる暗号解読コードはFPGA回路で構成された暗号解読コードブロック400内に埋め込まれている。暗号解読コードブロック400を構成するFPGA回路はコンフィグレーション回路134によって定義されることから、ROM301のプログラミングによって、CPUの暗号ソフトウェアは変更可能となる。
【0217】
第1の外部ROM302は第1の半導体チップ上に集積化され、第2の外部ROM301は第2の半導体チップとは異なる半導体チップに集積化されている。或いはまた、第2の外部ROM301は第1の半導体チップと同一の半導体チップ上に集積化されていても良い。また、ASIC31は第2の半導体チップ上に集積化され、ASIC310は第3の半導体チップ上に集積化されている。更に、ASIC320は第4の半導体チップ上に集積化されている。尚、図32の例ではすべての半導体チップが、同一の実装基板32上に実装される例が示されているが、半田バンプ等を介して、多層構造として、実装されていても良いことは明らかである。
【0218】
第13の実施の形態に係る半導体集積回路及びデータ転送システムは、図17に示した、本発明の第7の実施の形態と構成及び動作が基本的には同じである。CPU341が外部接続されたASIC320に搭載され、ASIC31のFPGA回路37にはFPGA回路340を搭載したASIC310が外部接続されている。このようにすることにより、FPGA回路37を搭載した1個のASIC31で、外部接続された複数個のFPGA回路340への書き込みデータ、及びCPU341のソフトウェアデータの機密性を向上することが可能となる。その利点に加えて、CPU341の暗号解読コードがROM301のデータを変更することにより、いつでも切替可能になる。
【0219】
(第13の実施の形態の変形例)
本発明の第13の実施の形態の変形例に係る半導体集積回路及びデータ転送システムは、図33に示すように、実装基板32上に実装された、外部ROM301及び302と、ASIC31と、外部FPGA回路340と、外部CPU341とから構成される。ASIC31は、外部ROM301にバス配線360を介して接続されたデコーダ回路233と、外部ROM302にバス配線361を介して接続されたデコーダ回路133と、デコーダ回路233に接続された暗号解読コードブロック40と、更にデコーダ回路233に接続されたコンフィグレーション回路134と、コンフィグレーション回路134に接続されたFPGA回路37と、更に、コンフィグレーション回路134に接続された暗号解読コードブロック400と、FPGA回路37に接続された内部回路35とから構成される。図32と同様に、暗号解読コードブロック400は、FPGA回路によって構成されている。FPGA回路37はFPGA回路340に接続されている。また、デコーダ回路133は、データバス配線365を介して、CPU341に接続されている。また、CPU341はアドレスバス配線366を介してROM302の接続されている。
【0220】
ASIC31においては、FPGA回路データの復号化に用いられる暗号解読コードが暗号解読コードブロック40内に埋め込まれている。CPU341のデータ復号化に用いられる暗号解読コードはFPGA回路で構成された暗号解読コードブロック400内に埋め込まれている。暗号解読コードブロック400を構成するFPGA回路はコンフィグレーション回路134によって定義されることから、ROM301のプログラミングによって、CPUの暗号ソフトウェアは変更可能となる。
【0221】
図32と図33とを比較すると明らかなように、第13の実施の形態の変形例に係る半導体集積回路及びデータ転送システムは、基本的には構成及び動作は、第13の実施の形態に係る半導体集積回路及びデータ転送システムと同様である。このようにすることにより、FPGA回路37を搭載した1個のASIC37で、ASIC31に搭載されたFPGA回路37に書き込まれるデータの機密性を向上するだけでなく、外部接続された汎用製品であるFPGA回路340及びCPU341のデータの機密性を向上することが可能となる。その利点に加えて、CPU341の暗号解読コードがROM301のデータを変更することにより、いつでも切替可能になる。
【0222】
なお、上記各実施の形態は、それぞれ組み合わせて実施することができる。組み合わせた場合、CPU、FPGAを搭載し、CPU、FPGAをともに暗号データを用いて、入力を行う半導体集積回路及びデータ転送システムを得ることができる。
【0223】
このように、本発明はここでは記載していない様々な実施例等を含むことは勿論である。したがって、本発明の技術的範囲は上記の説明から妥当な以下のクレイムによってのみ定められるものである。
【0224】
(その他の実施の形態)
上記のように、本発明は実施の形態によって記載したが、この開示の一部をなす論述及び図面はこの発明を限定するものであると理解すべきではない。この開示から当業者には様々な代替実施の形態、実施例及び運用技術が明らかとなろう。したがって、本発明の技術範囲は上記の説明から妥当な特許請求の範囲に係る発明特定事項によってのみ定められるものである。
【0225】
【発明の効果】
本発明によれば、設計データやソフトウェアが読み出せないセキュリティー性の高い半導体集積回路、データ転送システム、及びデータ転送方法を提供することができる。
【図面の簡単な説明】
【図1】本発明の第1の実施の形態にかかる半導体集積回路及びデータ転送システムの構成を表すブロック図。
【図2】本発明の第1の実施の形態にかかる半導体集積回路及びデータ転送システムの動作方法を表すフローチャート図。
【図3】本発明の第1の実施の形態にかかるRAM型FPGA回路の構成を表すブロック図。
【図4】本発明の第1の実施の形態にかかるRAM型FPGA回路のRAMの構成を表すブロック図。
【図5】本発明の第1の実施の形態にかかるRAM型FPGA回路のRAMを構成するシフトレジスタの基本単位となるDタイプ・フリップ・フロップの一例を表すブロック図。
【図6】本発明の第1の実施の形態にかかるRAM型FPGA回路のI/Oレジスタ回路の構成を表すブロック図。
【図7】本発明の第1の実施の形態におけるコンフィグレーション方法を説明するフローチャート図。
【図8】本発明の第1の実施の形態にかかるデコーダ回路及び暗号解読コード部の構成を表す論理回路図。
【図9】本発明の第1の実施の形態の変形例にかかるデコーダ回路及び暗号解読コード部の構成を表す論理回路図。
【図10】本発明の第2の実施の形態にかかる半導体集積回路及びデータ転送システムの構成を表すブロック図。
【図11】本発明の第2の実施の形態にかかる半導体集積回路及び半導体集積回路の動作方法を表すフローチャート図。
【図12】本発明の第3の実施の形態にかかるASIC及びASICシステムの構成を表すブロック図。
【図13】本発明の第4の実施の形態にかかるASIC及びASICシステムの構成を表すブロック図。
【図14】本発明の第5の実施の形態にかかるASIC及びASICシステムの構成を表すブロック図。
【図15】本発明の第6の実施の形態にかかるASIC及びASICシステムの構成を表すブロック図。
【図16】本発明の第6の実施の形態にかかるASIC及びASICシステムの動作方法を表すフローチャート図。
【図17】本発明の第7の実施の形態にかかるASIC及びASICシステムの構成を表すブロック図。
【図18】本発明の第7の実施の形態にかかるASIC及びASICシステムにおいて、CPUソフトウェアの暗号化コードの決定からCPUの稼動までの動作方法を表すフローチャート図。
【図19】本発明の第7の実施の形態にかかるASIC及びASICシステムにおいて、CPUソフトウェアの暗号化解読コードの変更からCPUの稼動までの動作方法を表すフローチャート図。
【図20】本発明の第8の実施の形態にかかるASIC及びASICシステムの構成を表すブロック図。
【図21】本発明の第8の実施の形態の変形例1にかかるASIC及びASICシステムの構成を表すブロック図。
【図22】本発明の第8の実施の形態の変形例2にかかるASIC及びASICシステムの構成を表すブロック図。
【図23】本発明の第8の実施の形態の変形例3にかかるASIC及びASICシステムの構成を表すブロック図。
【図24】本発明の第9の実施の形態にかかるASIC及びASICシステムの構成を表すブロック図。
【図25】本発明の第9の実施の形態の変形例にかかるASIC及びASICシステムの構成を表すブロック図。
【図26】本発明の第10の実施の形態にかかるASIC及びASICシステムの構成を表すブロック図。
【図27】本発明の第10の実施の形態の変形例にかかるASIC及びASICシステムの構成を表すブロック図。
【図28】本発明の第11の実施の形態にかかるASIC及びASICシステムの構成を表すブロック図。
【図29】本発明の第11の実施の形態の変形例にかかるASIC及びASICシステムの構成を表すブロック図。
【図30】本発明の第12の実施の形態にかかるASIC及びASICシステムの構成を表すブロック図。
【図31】本発明の第12の実施の形態の変形例にかかるASIC及びASICシステムの構成を表すブロック図。
【図32】本発明の第13の実施の形態にかかるASIC及びASICシステムの構成を表すブロック図。
【図33】本発明の第13の実施の形態の変形例にかかるASIC及びASICシステムの構成を表すブロック図。
【図34】本発明の比較例のFPGA混載半導体集積回路及びデータ転送システムの構成を表すブロック図。
【図35】本発明の別の比較例のCPU混載半導体集積回路及びデータ転送システムの構成を表すブロック図。
【符号の説明】
1,20,30,50,60,301,302…ROM
2,21,51,61…半導体集積回路
3,22,133,233…デコーダ回路
4,23,40,400…暗号解読コードブロック
5,52,134…コンフィグレーション回路
6,37,53,340,350…FPGA回路
7,27,35,54,65…内部回路
8,28,32,55,66…実装基板
10,10i,j,10i,j;1, 10i;1,j,10i;1,j;1…コンフィギャブル・ロジック・ブロック
11,11i,j, 11i,j;1, 11i,j;2, 11i;1,j, 11i;1,j;1, 11i;1,j;2, 11i;2,j, 11i;2,j;1, 11i;2,j;2…スイッチング・マトリックス
12…主配線
13…接続配線
14…接続点
18…バイナリーカウンタ
19…データセレクタ
24,38,62,341…CPU
25,63,362,366…アドレスバス配線
26,36,56,64,360,361,363,365…データバス配線
31,310,320…ASIC
33…暗号解読処理回路
34…暗号化対象処理回路
501…アウトプット・レジスタ
502…アウトプット・イネーブル・レジスタ
503…インプット・レジスタ
504…I/Oバッファ
505…I/Oターミナル
EO,EO0,EO1,EO2,EO3,EO4,EO5,EO6,EO7…排他的論理和回路
ST1〜ST12,ST101〜ST112,SU1〜SU11,SV1〜SV10,SW1〜SW36…ステップ
SI…シフトレジスタ入力信号
SR1,SR2,…,SR6…シフトレジスタ
D…DタイプフリップフロップのD入力
CK…Dタイプフリップフロップのクロック入力
Q…DタイプフリップフロップのQ出力
QN…Dタイプフリップフロップの反転出力
Q1,Q2,…,Q6…シフトレジスタの各ステージの出力
EN…Dタイプフリップフロップのイネーブル入力
【発明の属する技術分野】
本発明は、半導体集積回路に係り、特に外部ROMからデータを入力させる半導体集積回路、この半導体集積回路を用いたデータ転送システム、及び半導体集積回路へのデータ転送方法に関する。
【0002】
【従来の技術】
使用者が自分で設計して、動作させることが可能なプログラム可能なロジックデバイスであるFPGA(Fie1d Programmable Gate Array)回路を混載した半導体集積回路が開発されている。その集積度向上の魅力から最近では、RAM型FPGA回路が多く用いられる。RAM型FPGA回路では、使用者が電源投入のたびに、回路構成をその都度設定でき、動的に回路構成を変化できる。しかし、RAM型FPGA回路では、SRAM(Static Random Access Memory)を通常用いており、揮発性メモリの特性により、回路情報は電源切断に伴い消滅する。そのため、電源投入のたびに、速やかに外部ROM(Read Only Memory)から回路情報を書き込む動作であるコンフィグレーションが行われる。ここで、コンフィグレーションとは、回路に固有のプログラミングデータを1個又は複数のFPGAに入力して、ロジックモジュールをその周辺の内部接続パストランジスタに接続して機能を規定する動作である。コンフィグレーションの後すぐに、半導体集積回路の初期化が行われ、次に、半導体集積回路の通常動作が行われることになる。
【0003】
【特許文献】
特開2002−50956号公報
【0004】
【発明が解決しようとする課題】
以上のような従来の半導体集積回路及びデータ転送システムでは、以下の課題が生じる。RAMに替えて、不揮発性メモリ(ROM)を用いたFPGA回路では、不揮発性メモリに書き込んだ設計データは外部から容易に読出し可能である。従って、ROM型FPGA回路の場合には、設計データを読出して解析が可能である。ROM型不揮発性メモリを用いたFPGA回路では、最近の技術として設計データを書き込んだ後に、設計データ読出し端子の、出力バッファの特性を変更して、外から内部の不揮発性メモリ(ROM)の中身を読み出せないようにする手法が現れている。不揮発性メモリ(ROM)を用いて設計データを読み出せないようにする手法は、不揮発性メモリ(ROM)型FPGA回路を混載した集積回路製品には適用可能であるが、RAM型FPGA回路を混載した半導体集積回路製品には適用できない。なぜなら、揮発性メモリ(RAM)に記憶された回路情報は電源切断の際に、消滅してしまうので、外部ROMから回路情報を電源投入時に入力することが欠かせないからである。
【0005】
ここで問題となるのは、FPGA回路は汎用的であるため、外部ROMに記録されたデータを分析すると、FPGA回路が活動中にどのような回路を形成して機能しているかが、簡単に読みとれてしまうことである。このように、RAM型FPGA回路を用いると、外部ROMに設計データを格納し、実装基板上にFPGA回路と外部ROMの両方を搭載することになるので、外部ROMのデータを分析することにより、容易に設計データの秘密が暴かれてしまう。このような事態はデッドコピーをも可能としてしまう。従って、RAM型FPGA回路を混載した半導体集積回路においても、設計データの機密性を保つことが可能なFPGA回路を混載した半導体集積回路が望まれている。
【0006】
同様に、CPUを内蔵し、外部ROMからソフトウェアを取り込んで動作する半導体集積回路及びシステムでは、外部ROMのデータを分析することにより、容易にソフトウェア設計データの秘密を暴くことが可能である。CPUの命令は、一般的に公開されているで、ROMデータを分析すれば、ソフトウェアの解読は容易に可能となる。従って、設計データやソフトウェアが読み出せないセキュリティー性の高い半導体集積回路が望まれている。
【0007】
本発明の目的は、設計データやソフトウェアが読み出せないセキュリティー性の高い半導体集積回路、この半導体集積回路へのデータ転送システム、及びデータ転送方法を提供することにある。
【0008】
【課題を解決するための手段】
本発明の第1の特徴は、(イ)暗号解読コードを記憶する暗号解読コードブロックと、(ロ)暗号解読コードブロックに接続され、外部ROMからの暗号データを暗号解読コードに基いて解読するデコーダ回路と、(ハ)デコーダ回路の出力が入力されるコンフィグレーション回路と、(ニ)コンフィグレーション回路に接続され、コンフィグレーション回路に基いて回路構成が決定されるFPGA回路と、(ホ)FPGA回路に接続され、回路動作が規定される内部回路とを備える半導体集積回路であることを要旨とする。
【0009】
本発明の第2の特徴は、(イ)暗号解読コードを記憶する暗号解読コードブロックと、(ロ)暗号解読コードブロックに接続され、外部ROMからの暗号ソフトウェアデータを暗号解読コードに基いて解読するデコーダ回路と、(ハ)デコーダ回路の出力が入力されるCPUと、(ニ)CPUに接続され、CPUによって、回路動作が規定される内部回路とを備える半導体集積回路であることを要旨とする。
【0010】
本発明の第3の特徴は、(イ)暗号化されたFPGA設計情報を記録する第1の外部ROMを集積化した第1の半導体チップと、(ロ)暗号解読コードを記憶する第1の暗号解読コードブロックと、第1の暗号解読コードブロックに接続され、第1の外部ROMからの暗号データを暗号解読コードに基いて解読する第1のデコーダ回路と、第1のデコーダ回路の出力が入力されるコンフィグレーション回路と、コンフィグレーション回路に接続され、コンフィグレーション回路に基いて回路構成が決定されるFPGA回路と、FPGA回路に接続され、回路動作が規定される内部回路とを集積化した第2の半導体チップとを備えるデータ転送システムであることを要旨とする。
【0011】
本発明の第4の特徴は、(イ)暗号化されたCPUソフトウェア設計情報を記録する第1の外部ROMを集積化した第1の半導体チップと、(ロ)暗号解読コードを記憶する暗号解読コードブロックと、暗号解読コードブロックに接続され、第1の外部ROMからの暗号ソフトウェアデータを暗号解読コードに基いて解読するデコーダ回路と、デコーダ回路の出力が入力されるCPUと、CPUに接続され、CPUによって、回路動作が規定される内部回路とを集積化した第2の半導体チップとを備えるデータ転送システムであることを要旨とする。
【0012】
本発明の第5の特徴は、(イ)半導体集積回路内の暗号解読コードブロックに暗号解読コードを記録する手順と、(ロ)第1の外部ROMに暗号化されたROMデータを書き込む手順と、(ハ)半導体集積回路内のデコーダ回路が、第1の外部ROMからの暗号化されたROMデータを取り込み復号化する手順と、(ニ)暗号化されたROMデータをすべて取り込んだかどうかをデコーダ回路が判断する手順と、(ホ)未終了であるならば、第1の外部ROMから暗号化された前記ROMデータを取り込み復号化する手順に戻る手順と、(へ)終了であるならば、FPGA回路をユーザーモードに移行し、半導体集積回路の稼動を開始する手順とを備えるデータ転送方法であることを要旨とする。
【0013】
本発明の第6の特徴は、(イ)半導体集積回路内の暗号解読コードブロックに暗号解読コードを記録する手順と、(ロ)第1の外部ROMに暗号化されたROMデータを書き込む手順と、(ハ)半導体集積回路内のCPUが、第1の外部ROMに対してROMアドレスを要求し、ROMアドレスを決定する手順と、(ニ)半導体集積回路内のデコーダ回路が、暗号化されたROMデータを復号化する手順と、(ホ)復号化されたROMデータに基づき、CPUを実行させる手順とを備えるデータ転送方法であることを要旨とする。
【0014】
【発明の実施の形態】
次に、図面を参照して、本発明の実施の形態を説明する。以下の図面において、同一又は類似の部分には同一又は類似の符号を付している。又、以下に示す実施の形態は、この発明の技術思想を具体化するための装置や方法を例示するものであって、この発明の技術思想を下記のものに特定するものではない。この発明の技術思想は、特許請求の範囲において、種々の変更を加えることができる。
【0015】
まず、本発明の第1乃至第13の実施の形態の説明に入る前に、本発明に至る経緯として、途中で検討した比較例1及び比較例2を説明する。
【0016】
本発明は、半導体集積回路、データ転送システム、及びデータ転送方法に係る。以下の実施の形態においては、第1の実施の形態においては、FPGA回路を混載した半導体集積回路及びデータ転送システムについて説明する。第2の実施の形態においては、CPUを混載した半導体集積回路及びデータ転送システムについて説明する。第3の実施の形態においては、暗号化対象処理回路を混載したASIC及びASICシステムについて説明する。第4の実施の形態においては、FPGA回路を混載したASIC及びASICシステムについて説明する。第5の実施の形態においては、CPUを混載したASIC及びASICシステムについて説明する。第6乃至第7の実施の形態においては、FPGA回路及びCPUを混載したASIC及びASICシステムについて説明する。第8の実施の形態においては、FPGAを混載したデータ転送システムにおいて、更に別チップのASIC、FPGA回路等が実装された例について説明する。第9の実施の形態においては、CPUを混載したデータ転送システムにおいて、外部ROMが複数個存在し、更に別チップのASIC、FPGA回路が実装された例について説明する。第10乃至第13の実施の形態においては、FPGAを混載したデータ転送システムにおいて、外部ROMが複数個存在し、更に別チップのASIC、FPGA回路、CPU等が実装された例について説明する。
【0017】
(比較例1)
ここで、本発明の比較例としてのRAM型FPGA混載のデータ転送システムは、図34に示すように、実装基板55上に実装された外部ROM50と半導体集積回路51とから構成されたハイブリッド集積回路である。外部ROM50は、FPGA回路53を混載したモノリシック集積回路である半導体集積回路51に接続されている。外部ROM50は半導体集積回路51に対して、データをパラレルに出力する。半導体集積回路51は、外部ROM50とデータバス配線56を介して接続されたコンフィグレーション回路52と、コンフィグレーション回路52に接続されたFPGA回路53と、内部回路54から構成される。
【0018】
外部ROM50内には、RAM型FPGA回路53の設計データが格納されている。半導体集積回路51内には、外部ROM50からの設計データが入力されるコンフィグレーション回路52が設けられている。このコンフィグレーション回路52からの回路情報をFPGA回路53が受け取り、FPGA回路53内の回路が構成される。FPGA回路53は、設計者の希望に合った機能回路を実現することができる。
【0019】
この希望に合った機能回路が形成された後に、FPGA回路53は、半導体集積回路51内において集積化された内部回路54との間で回路動作を実行する。内部回路54内には、用途に合わせて決まる汎用マイクロプロセッサコア、DSPコア、メモリ、インターフェイス回路などから選択される回路が含まれている。更に、実装基板55上には、FPGA設計情報が外部ROM50から伝達されるビット数に応じた本数のデータバス配線56が、外部ROM50と半導体集積回路51との間において接続されている。
【0020】
(比較例2)
比較例2としてのCPUコアを混載したデータ転送システムは、図35に示すように、実装基板66上に実装された外部ROM60と半導体集積回路61から構成されたハイブリッド集積回路である。外部ROM60は、CPU62混載の形式を有するモノリシック集積回路である半導体集積回路61に接続されている。外部ROM60は、半導体集積回路61の入出力ポートに1対1で対応するポートを有した、半導体記憶装置となっていて、半導体集積回路61に対して、データをパラレルに出力する。半導体集積回路61は、外部ROMとアドレスバス配線63及びデータバス配線64を介して接続されたCPU62と、内部回路65を構成要素として含む。
【0021】
外部ROM60内には、CPU62のソフトウェアデータが格納されている。外部R0M60から出力されるのソフトウェアデータはCPU62に入力される。更に、CPU62と外部ROM60との間はアドレスバス配線63を介して直接接続されており、CPU62はアドレスを指定して外部ROM60に対してデータを要求する。外部ROM60は指定されたアドレスをCPU62へデータバス配線64を介して提出する。
【0022】
このCPU62が動作を開始した後に、半導体集積回路61内に内部回路65との間で回路動作を行う。内部回路65内には、用途に合せて決まる汎用マイクロプロセッサコア、DSPコア、メモリ、インターフェイス回路などから選択される回路素子を持っている。更に、実装基板66上には、暗号化されたCPUソフトウェア情報が外部ROM60から伝達されるビット数に応じた本数のデータバス配線64と、アドレスバス配線63とが外部ROM60と半導体集積回路61との間に接続されている。
【0023】
(第1の実施の形態)
本発明の第1の実施の形態に係る半導体集積回路及びデータ転送システムは、図1に示すように、実装基板8上に実装され、第1の半導体チップ上に集積化された外部ROM1と、FPGA回路6を混載した半導体集積回路2とから構成されたハイブリッド集積回路である。更に、第2の半導体チップ上に集積化された半導体集積回路2は、外部ROM1とデータバス配線9を介して接続されたデコーダ回路3と、デコーダ回路3に接続された暗号解読コードブロック4と、更にデコーダ回路3に接続されたコンフィグレーション回路5と、コンフィグレーション回路5に接続されたFPGA回路6と、FPGA回路6に接続された内部回路7を混載したモノリシック集積回路である。外部ROM1は半導体集積回路2とは別の第1の半導体チップ上に集積化され、半導体集積回路2の入出力ポートに1対1で対応するポートを有する半導体記憶装置であり、半導体集積回路2に対して、データをパラレルに出力する。尚、図1の例では実装基板8上に第1の半導体チップ及び第2の半導体チップがともに実装される例が示されているが、半田バンプ等を介して、第1の半導体チップ及び第2の半導体チップが多層構造として、実装されていても良いことは明らかである。
【0024】
外部ROM1内には、RAM型FPGA回路6に用いられる暗号化された設計データが格納されている。従って、半導体集積回路2内のデコーダ回路3には、外部ROM1からの暗号化設計データが、データバス配線9を介して、入力される。暗号解読コードは、半導体集積回路2を設計する時点で決められていて、半導体集積回路2内の暗号解読コードブロック4内に記録され、埋め込まれる。
【0025】
デコーダ回路3には、暗号解読コードブロック(記録部)4から暗号解読コードが入力される。この暗号解読コードを用いてデコーダ回路3は、外部ROM1から入力された暗号化設計データを復号化して、設計データを半導体集積回路2内に設けられたコンフィグレーション回路5へ出力する。本発明の第1の実施の形態においては、外部ROM1とコンフィグレーション回路5との間に、デコーダ回路3を設け、デコーダ回路3において、外部ROM1からの設計データを受け取り、コンフィグレーション回路5に設計データを送出している。
【0026】
コンフィグレーション回路5からの回路情報をFPGA回路6が受け取り、FPGA回路6内の回路が構成される。
【0027】
このFPGA回路6が形成された後に、半導体集積回路2内の内部回路7との間で回路動作を行う。内部回路7内には、用途に合わせて決まる汎用マイクロプロセッサコア、DSPコア、インターフェイス回路などから選択される回路が含まれる。このように半導体集積回路2は、FPGA回路6と内部回路7との混載形式で形成されている。このため、その用途は広い。外部ROM1及び半導体集積回路2は同じ実装基板8上に搭載されてデータ転送システムを構成する。更に、実装基板8上においては、暗号化されたFPGA設計情報が外部ROM1から伝達されるビット数に応じた本数のデータバス配線9が外部ROM1と半導体集積回路2との間に接続されている。
【0028】
次に、図2を用いて、発明の第1の実施の形態に係る半導体装置及びデータ転送システムの動作方法を説明する。
【0029】
(a)まず第1ステップST1において、半導体集積回路2内のFPGA回路6の設計者がFPGA回路6の設計を行う。
【0030】
(b)次に、第2ステップST2において、設計されたFPGA回路6をROMデータとして作成する。
【0031】
(c)次に、第3ステップST3において、半導体集積回路2の製造者から入手した暗号化コードの採用を決定する。
【0032】
(d)次に、第4ステップST4において、暗号化コードに基づいてROMデータを暗号化する。
【0033】
(e)次に、第5ステップST5において、暗号化されたROMデータを外部ROM1へ書き込む。
【0034】
(f)次に、第6ステップST6において、外部ROM1を実装基板8上に実装する。
【0035】
(g)次に、第7ステップST7において、実装基板8に対して、電源を投入する。
【0036】
(h)次に、第8ステップST8において、外部ROM1から暗号化されたROMデータを半導体集積回路2のデコーダ回路3へ取り込む。デコーダ回路3において、暗号化されたROMデータを回路設計データとして解読し、コンフィグレーション回路5へ出力する。コンフィグレーション回路5において、FPGA回路6の回路作成を行わせる指示をFPGA回路6に出力する。
【0037】
(i)次に、第9ステップST9において、FPGA回路6において、復号化されたデータを受信する。
【0038】
(j)次に、第10ステップST10において、FPGA回路6において、復号化された最後のデータを受信したかどうかを判断する。YESであるならば、第11ステップST11に進み、NOであるならば、第8ステップST8に戻る。
【0039】
(k)次に、第11ステップST11において、FPGA回路6をユーザーモードにシフトさせる。
【0040】
(l)次に、第12ステップST12において、半導体集積回路2の動作を開始させる。
【0041】
(m)上記のステップは、電源供給停止により終了する。
【0042】
(n)次に、電源投入が行われると、再度、デコーダ回路3へのROMデータの書き込みから再度繰り返される。
【0043】
このように、電源投入直後に外部ROM1のデータはデコーダ回路3及びコンフィグレーション回路5を経由して、すべてのデータが取り込まれた時点で、この半導体集積回路はRAM型FPGA回路を構成する。この回路構成は速やかに行われ、数100ミリ秒程度での構成が可能である。
【0044】
FPGA回路6はRAM型であり、図3に示されるように、各回路を構成するコンフィギャブル・ロジック・ブロック(configurable logic block)10,10i,j,10i,j+1,…, 10i+1,j,10i+1,j+1…、各回路の配線接続を切り替えるスイッチング・マトリックス(switching matrix)11,11i,j,11i,j+1,11i,j+2…,11i+1,j,11i+1,j+1,11i+1,j+2…,11i+2,j,…, 11i+2,j+1,11i+2,j+2…、主配線12、接続配線13及び接続点14から構成される。コンフィギャブル・ロジック・ブロック10,10i,j,10i,j+1,…, 10i+1,j,10i+1,j+1…内に取りつけられたRAMのデータを変えることにより、設計者の希望に合った機能回路を実現することができる。そのRAMのデータは外部ROM1に記録されている。具体的には、コンフィギャブル・ロジック・ブロック10内には、SRAM素子が設けられている。コンフィギャブル・ロジック・ブロック10の周囲には、互いにスイッチング・マトリックス11で接続された主配線12が設けられている。この主配線12の内の数本とコンフィギャブル・ロジック・ブロック10とは接続配線13によって接続点14において接続されている。このようにFPGA回路6は回路設計情報に基づいて、コンフィギャブル・ロジック・ブロック10と主配線12との接続、非接続状態が設定されて回路が構成される。
【0045】
ここで、暗号化には半導体集積回路2の設計時点で決められた暗号解読コードが用いられる。暗号解読コードは、半導体集積回路2の製造業者が予め決めておき、その内容を半導体集積回路2の購入者に通知して、半導体集積回路2の購入者が回路設計情報を暗号化して、半導体集積回路2へ入力することで、所望の半導体集積回路2が形成される。
【0046】
FPGA回路のRAMは、図4に示すように、シフトレジスタの構成になっている。コンフィグレーション回路5から送り出されたデータは図4において、第1段目のシフトレジスタSR1のD入力端子にシフトレジスタ入力信号SIとして入力され、新しいデータが1個ずつ入って、シフトレジスタSR1に記憶される度に、古いデータは同期して右方向にシフトしていく。各シフトレジスタSR1,SR2,SR3,…,SR6の出力はQ1〜Q6のような形で、コンフィギャブル・ロジック・ブロック10やスイッチング・マトリックス11やI/Oレジスタ部に配信され、コンフィギャブル・ロジック・ブロック10の機能を決定したり、スイッチング・マトリックス11の配線接続方法を決定したり、I/Oの機能を決定するデータとして活用される。
【0047】
このように半導体集積回路2での初期化動作では、FPGA回路6内に設けられた図4に示すようなシフトレジスタSR1,SR2,SR3,…,SR6に外部ROM1からデータが、コンフィグレーション回路5を経由して、順次書き込まれていく。図4のシフトレジスタSR1,SR2,SR3,…,SR6ではコンフィグレーション回路5から1個ずつデータが、シフトレジスタ入力信号SIとして各シフトレジスタのD入力端子に送られるとともに、同期したクロック信号が送られてくるので、クロック信号の立ち上り時間に同期してシフトレジスタのD入力端子に入力されたシフトレジスタ入力信号SIがシフトレジスタSR1に取り込まれる。そして、そのデータがQ1に出力される。さらに次のデータの読み込みにあわせてクロック信号が入力されるので、Q1の信号は2段目のシフトレジスタSR2に移りQ2に出力されて、Q1は新しくシフトレジスタのD入力端子に設定されたデータが記憶されて、出力される。こうしてクロック信号が来る度に、新しいデータが初段のシフトレジスタSR1に取り込まれ、古いデータは順次、右のレジスタにシフトしていく。
【0048】
シフトレジスタを構成する基本単位としてよく用いられるのは、例えば、図5に示すように、Dタイプフリップフロップ(D−FLIP/FLOP)である。このDタイプフリップフロップの入出力端子プリセット、クリア、EN,QNの内、いくつかの端子を削除した変形例がある。D入力端子から入力される信号をCK入力端子に入力される信号の立ち上りタイミングで捕らえて、記憶する。記憶情報をQ出力端子に出力、反転信号をQN端子に出力する。EN入力端子に“1”が入力されている時のみ、クロック入力が許可され、その他の時はクロック入力が無視される。プリセット端子は通常“1”が入力されているが、“0”が入力された時に記憶内容を“1”に設定する。クリア端子は通常“1”が入力されているが、“0”が入力された時に、記憶内容を“0”に設定する。レジスタをリセットする場合には、クリア端子に“0”のパルスを与えて記憶内容を“0”にする。
【0049】
FPGA回路6のI/Oレジスタ回路の一般例は、図6に示すように、出力バッファの周辺に3つのレジスタを備える。アウトプット・レジスタ501は出力内容の“0”か“1”を決定する。アウトプット・イネーブル・レジスタ502はI/Oバッファ504が出力するか否かを決定する。アウトプット・イネーブル・レジスタ502が“0”の時には、出力が切り離されハイ・インピーダンス状態になる。インプット・レジスタ503はI/Oターミナル505に印加された信号を記憶する。
【0050】
コンフィグレーション時には、上記レジスタの内、アウトプット・イネーブル・レジスタ502の記憶内容を“0“して出力し、I/Oバッファ504の出力が出ないようにするとともに、インプット・レジスタ503のイネーブル(EN)端子に“0”の信号を与えておき、I/Oターミナル505に印加された信号を集積回路内部に取り込まないようにする。つまり、I/Oターミナル505では外部信号環境から切り離された状態にしておく。初期化動作では、これら3つのレジスタ501,502,503は外部ROM1にプログラムされた設定内容に従った値に切り替わる。
【0051】
また初期化動作では、図6に示すようなRAM型FPGA回路のI/Oレジスタ回路の内、アウトプット・イネーブル・レジスタ502及びインプット・レジスタ503のイネーブル(EN)端子に“0”の信号を与えておき、I/Oバッファ504の出力が出ないようにするとともに、I/Oターミナル505に印加された信号を集積回路内部に取り込まないようにする。つまりI/Oターミナル505では外部信号環境から切り離された状態にしておく。全てのROMデータが取り込まれた後で、最後にアウトプット・レジスタ501,インプット・レジスタ503及びアウトプット・イネーブル・レジスタ502のEN端子に“1”を加えて、I/Oバッファ504が活動できる状態に切り替える。こうしてロジックデバイスとして動作を可能にする。
【0052】
ここで、コンフィグレーション動作状態と初期化状態を「コマンドモード」といい、通常動作状態を「ユーザーモード」という。半導体集積回路2の電源投入後、速やかに、回路情報がコンフィグレーション回路5に転送され、初期化が行われ、FPGA回路6内に回路情報に基づいた回路が新たに構成される。その後、ロジック動作を開始する。
【0053】
SRAMを用いたRAM型FPGA回路6内には、少数の入力形式の少ファンインのロジックモジュールを含む、ロジック・エレメントを多数内蔵されている。このように構成されたRAM型FPGA回路6を用いて、設計者が回路設計後、速やかに実機での回路の動作検証が可能であるため、効率良く回路設計を行うことができる。また、FPGA回路6自体は同一の基本構造を持った半導体集積回路製品を製造することができ、FPGA回路6の使用者ごとに変更を加えて製造する必要がないので、製造効率が良い。即ち、FPGA回路6自体は汎用製品として製造することができるので、大量生産が可能で製造効率が良い。
【0054】
FPGA回路6を含んだ半導体集積回路2は、汎用マイクロプロセッサコア、DSPコア、インターフェイス回路などの他の回路素子を持っていて構成されていても良く、混載形式で形成されることで、より用途が広くなる。
【0055】
ここで、コンフィグレーションの方法について、図7に示すフローチャート図を用いて説明する。
【0056】
(a)電源が投入されると、自動的にコンフィグレーションが開始されるが、まずステップST101において、一般のI/Oピンをディスエーブル状態にする。
【0057】
(b)次に、ステップST102において、データ入力がパラレルかシリアルかを判断する。デコーダ回路3において、ROMデータを受け取るが、パラレルデータを受け取るのかシリアルデータを受け取るのかで方法が異なる。
【0058】
(c)パラレルデータを受け取る場合には、ステップST106において、ROM1からデータを受け取った後、ステップST107において、パラレルデータをシリアルデータに変換して、ステップST108において、FPGA回路6にデータを送り出す。次に、ステップST109において、ROMデータが最後かどうかを判断する。YESであるならば、ステップST110に進み、NOであるならば、ステップST106に戻る。
【0059】
(d)シリアルデータを受け取った場合には、ステップST103において、ROM1からデータを受け取った後、ステップST104において、そのままデータをFPGA回路6に送り出す。次に、ステップST105において、ROMデータが最後かどうかを判断する。YESであるならば、ステップST110に進み、NOであるならば、ステップST103に戻る。
【0060】
(e)ROMデータを全て受け取ると、コンフィグレーション動作状態から初期化状態に入る。即ち、ステップST110において、内部レジスタをリセットする。次に、ステップST111において、一般のI/Oピンをイネーブル状態にする。次に、ステップST112において、システム動作を開始する。
【0061】
ステップST101からST111までは、コマンドモードに相当し、ステップST112から後はユーザーモードに相当する。
【0062】
次に、図8を用いてデコーダ回路3と暗号解読コードブロック4の構成を説明する。図8には説明を判り易くするためにデコーダ回路3の簡単な例を示している。即ち、デコーダ回路3は、8つの排他的論理和回路EO0,EO1、・・・、EO7を有していて、それぞれの入力端には、外部ROM1からの1ビットデータと暗号解読コードブロック4からの1ビットのコードが入力される。排他的論理和回路EO0,EO1、・・・、EO7の出力は図8中で右側に抜けて図1に示されるコンフィグレーション回路5に接続されている。
【0063】
ここで、例えば外部ROM1からデコーダ回路3に対して8ビットのパラレルデータが入ってくるとする。暗号化の方法としては、すべてのデータを“1”、“0”反転して暗号化したとする。当然復号化する場合には、すべてのビットを“1”は“0”へ、“0”は“1”へと反転して元に戻さなくてはならない。
【0064】
排他的論理和回路は、2つの入力信号が異なる場合のみ、出力信号が“1”になり、反対に2つの入力信号が同じ場合には、出力信号が“0”になる回路である。従って、暗号解読コードが“1”とすると、ROM1からの入力信号が“1”の場合は出力“0”、入力信号が“0”の場合は出力“1”となって、ROM1からの信号を反転する。逆のケースで、暗号解読コードを“0”とすると、ROM1からの入力信号が“1”の場合は出力“1”、入力信号が“0”の場合は出力“0”となって、ROM1からの信号がそのまま、出力される。
【0065】
外部ROM1からの8ビットデータD0,D1,D2,…,D7が左から入ってくる。入力される8ビットすべてを反転させる訳であるから、暗号解読コードをすべて“1”にしておけば良い。反転しないビットの場合には、暗号解読コードを“0”にしておく必要がある。
【0066】
こうして4ビットデータD0,D1,D2,D3は“0”の信号が外部ROM1から入ってきたとして、“1”の信号がコンフィグレーション回路5に渡される。逆に残りの4ビットデータD4,D5,D6,D7は“1”の信号が外部ROM1から入ってきたとして、“0”の信号がコンフィグレーション回路5に渡される。
【0067】
本発明の第1の実施の形態に係る半導体集積回路、データ転送システム、及びデータ転送方法においては、外部ROM1のデータを暗号化し、FPGA回路6を混載した半導体集積回路2の内部において、予め暗号解読コードブロック4に埋め込まれた暗号解読コードを用いて、暗号データを復号化してFPGA回路6に書き込む。この埋め込まれた暗号は設計された半導体集積回路2毎に異なるので、製品毎に異なる暗号を持つことになる。もちろん、暗号を用いて回路を構成しても、回路形成後に実装基板8上で動作させることで正しく所望の半導体集積回路2及び外部ROM1と共に実装されたデータ転送システムが形成されているか否かが確認できる。
【0068】
本発明の第1の実施の形態に係るデータ転送システムでは、半導体集積回路2と外部ROM1との間でのデータの受け渡し時に、暗号を用いており、第三者にデータの内容が判らないようにしている。本発明の第1の実施の形態に係る半導体集積回路の暗号化手法を用いない場合には、FPGA回路6を個別に設計し直さないと、その機密性は保てない。それに対して、本発明の第1の実施の形態に係る半導体集積回路においては、外部ROM1のデータを暗号化することによって、回路設計情報の機密性が保たれ、なおかつ従来のFPGA設計データを暗号化するだけなので、暗号化も自動処理可能のため、設計者に負担をかけることはない。これは、まったく新しいFPGA回路6を設計する場合に比べると、設計の時間と労力を大幅に削減することができ、利用者の設計業務効率が向上する。回路設計情報の機密性が保たれ、回路設計効率が向上することから、FPGA回路混載の半導体集積回路が利用者にとって魅力的なものとなる。
【0069】
なお、外部ROM1からパラレルにデータを入力する場合、高速にデータを半導体集積回路2に取り込むことができるため、高速にFPGA回路6の回路構成を行うことができる。
【0070】
RAM型FPGA回路を採用して、製造が容易で不揮発性メモリ(ROM)を用いたFPGAよりもFPGA領域を縮小させつつ、機密性を高めたFPGA混載半導体集積回路及びデータ転送システムを本実施の形態は提供することができる。
【0071】
本発明の第1の実施の形態に係る半導体集積回路によれば、暗号化設計データの機密性の高い外部ROM対応FPGA回路搭載の半導体集積回路を提供することができる。更に、本発明の第1の実施の形態のデータ転送システムによれば、暗号化設計データの機密性の高い外部ROM型のデータ転送システムを供給できる。このように外部ROM1と半導体集積回路2とのデータ受け渡しに暗号化データを用いることで、ソフトウェアの機密性を向上することができる。
【0072】
(第1の実施の形態の変形例)
本発明の第1の実施の形態の変形例は、第1の実施の形態において、外部ROM1とFPGA回路6混載の半導体集積回路2との間のデータバス配線9の本数を1本として、外部ROM1から半導体集積回路2へのデータ転送をパラレルではなくシリアルに実行する構成を有する。図9を用いて、本発明の第1の実施の形態の変形例における、デコーダ回路3と暗号解読コードブロック4の構成を説明する。図9には説明を判り易くするためにデコーダ回路3の簡単な例を示している。外部ROM1は半導体集積回路2の入出力ポートに1対1で対応するポートを有した半導体記憶装置となっている。このように外部ROM1は、半導体集積回路2に対して、データをシリアルに出力する。ここでは、例えば外部ROM1からシリアルデータが半導体集積回路2に対して入ってきた時の対応例を示す。この場合にも、パラレルデータと同様に8ビット単位で暗号化の方法を設定してある場合が示してある。このデコーダ回路3に対しては、外部ROM1と同期してデータを取り込むために、外部ROM1にも入力されてデータの出力タイミングを制御するクロック信号CLOCKが入力されている。このクロック信号CLOCKは、3ビットのバイナリーカウンタ18のクロック信号入力端子CLOCKに入力されている。このバイナリーカウンタ18からは3ビットのセレクト信号が出力端子QA、QB、QCから出力される。この3ビットのセレクト信号はデータセレクタ(8−Line to1−Line DATA SELECTOR)19のセレクト信号入力端子A、B、Cへ入力される。このデータセレクタ19へは、暗号解読コードブロック4からの8ビットの暗号解読コードが暗号コード入力端子DE0、DE1、DE2、DE3、DE4、DE5、DE6、DE7へ入力される。
【0073】
デコーダ回路3は、更に1つの排他的論理和回路EOを有していて、その入力端には、外部ROM1からの1ビットデータとデータセレクタ回路19の出力端子Yからの1ビットのコードが入力される。排他的論理和回路EOの出力は図9中で順次、右側に抜けて図1に示されるコンフィグレーション回路5に接続されている。
【0074】
次に、外部ROM1からのデータの取り込み方法を説明する。8ビット単位でシリアルデータが入ってくる順番にD0、D1、D2、D3、D4、D5、D6、D7として、その各々が“0”と“1”の間で反転するか、しないか、を決めて、暗号解読コードとして、半導体集積回路2内の暗号解読コードブロック4にデータを埋め込んでおく。シリアルデータがD7まできたら、暗号解読コードの最初に戻って繰り返す。今回は図8で示した方法と同様に全てのビットを反転させるケースを示した。外部ROM1から暗号データとして順番に0、0、0、0、1、1、1、1が入ってくると、このデコーダ回路3からの出力は1、1、1、1、0、0、0、0の順でデータが出て行く。
【0075】
半導体集積回路2の外部からのクロック信号CLOCKは3ビットのバイナリーカウンタ18に入り、バイナリーカウンタ18内で0から7までのカウントを行って現在のカウント値をバイナリコードでQC、QB,QA出力端子に表示する。ここで、QCが最上位ビット、QAが最下位ビットである。この信号はデータセレクタ回路19へ送られ、カウンタの値に合ったデータDE0,DE1,DE2,…,DE7が選択されて、Y出力端子に出力される。データDE0,DE1,DE2,…,D7は半導体集積回路2に埋め込まれた暗号解読コードブロック4に接続されているので、その1つのデータが順番に選択されて、Y端子に出力されてくることになる。そのY出力信号は外部ROM1からのデータDATAとともに排他的論理和回路E0に入力される。この排他的論理和回路E0は2入力の値が同じ時には“0”を出力し、2入力の信号が異なる時には“1”を出力する機能がある。従って、片方を“1”に固定した場合、残りの入力の反転回路としての機能を果たし、逆に片方を“0”に固定すると、残りの入力値がそのまま出力される機能がある。
【0076】
こうして、シリアルデータが順番に暗号解読されて、次段の回路であるコンフィグレーション回路5に送られていく。このようにシリアルにデータを取り込む場合、外部ROM1と半導体集積回路2とを接続するパスの本数が第1の実施の形態よりも少数でよいため、実装基板8上での配線本数を減らすことができる。このため、配線密度が高く配線の配置余裕が少ない実装基板8上においても、本発明の第1の実施の形態の変形例は構成できる。上記構成以外は第1の実施の形態と同様の構成を有している。本発明の第1の実施の形態の変形例は、第1の実施の形態と同様にデータの機密性を保持できる効果を有する。
【0077】
本発明の第1の実施の形態の変形例によれば、設計データやソフトウェアが読み出せないセキュリティ性の高い、FPGA回路を混載した半導体集積回路、データ転送システム、及びデータ転送方法を提供することができる。
【0078】
(第2の実施の形態)
本発明の第2の実施の形態に係る半導体集積回路及びデータ転送システムは、図10に示すように、実装基板28上に実装され、第1の半導体チップ上に集積化された外部ROM20と、第2の半導体チップ上に集積化され、CPU24を混載した半導体集積回路21とから構成されたハイブリッド集積回路である。更に、半導体集積回路21は、外部ROM20とデータバス配線26を介して接続されたデコーダ回路22と、デコーダ回路22に接続された暗号解読コードブロック23と、更にデコーダ回路22に接続されたCPU24と、CPU24に接続された内部回路27を混載したモノリシック集積回路から構成されている。外部ROM20は半導体集積回路21の入出力ポートに1対1で対応するポートを有する半導体記憶装置であり、半導体集積回路21に対して、データをパラレルに出力する。
【0079】
尚、図10の例では実装基板28上に第1の半導体チップ及び第2の半導体チップがともに実装される例が示されているが、半田バンプ等を介して、第1の半導体チップ及び第2の半導体チップが多層構造として、実装されていても良いことは明らかである。
【0080】
外部ROM20内には、CPU24の暗号化されたソフトウェアデータが格納されている。従って、半導体集積回路21内のデコーダ回路22には、外部ROM20からの暗号化ソフトウェアデータが、データバス配線26を介して、入力される。暗号解読コードは、半導体集積回路21を設計する時点で決められていて、半導体集積回路21内の暗号解読コードブロック23内に記録され、埋め込まれる。
【0081】
デコーダ回路22には、暗号解読コードブロック(記録部)23から暗号解読コードが入力される。この暗号解読コードを用いてデコーダ回路22は、外部ROM20から入力された暗号化設計データを復号化して、設計データを半導体集積回路21内に設けられたCPU24へ出力する。本発明の第2の実施の形態においては、外部ROM20とCPU24との間に、デコーダ回路22を設け、デコーダ回路22において、外部ROM20からの設計データを受け取り、CPU24に設計データを送出している。
【0082】
ここでは更に、CPU24と外部ROM20との間はアドレスバス配線25を介して直接接続されており、CPU24はアドレスを指定して外部ROM20に対してデータを要求する。外部ROM20は指定されたアドレスをデコーダ回路22へデータバス配線26を介して提出する。更に、デコーダ回路22は指定されたアドレスをCPU24へ提出する。
【0083】
本発明の第2の実施の形態に係る半導体集積回路21においては、図10に示すように、外部ROM20とCPU24の間にデコーダ回路22を設け、デコーダ回路22には暗号解読コード情報が伝えられるようになっている。
【0084】
まず半導体集積回路21の設計時に暗号コードを決定し、それに基いて暗号解読コードが半導体集積回路21内の暗号解読コードブロック23に記録され、埋め込まれている。従って、暗号化設計データに関係する暗号化ソフトウェアデータは各半導体集積回路21毎に異なる固有の暗号となる。
【0085】
こうして、外部ROM20から入手した暗号データは、デコーダ回路22において復号化されて、CPU24に伝えられて一般的なソフトウェアと同じ働きをする。このCPU24が動作を開始した後に、半導体集積回路21内の内部回路27との間で回路動作を行う。内部回路27内には、用途に合わせて決まる汎用マイクロプロセッサコア、DSPコア、インターフェイス回路などから選択される回路が含まれる。このように半導体集積回路21は、CPU24と他のロジック回路などとの混載形式で形成されている。このためその用途は広い。この外部ROM20及び半導体集積回路21は同じ実装基板28上に搭載されてデータ転送システムを構成する。さらに実装基板28上においては、暗号化されたCPUソフトウェア情報が外部ROM20から伝達されるビット数に応じた本数のデータバス配線26と、アドレスバス配線25とが外部ROM1と半導体集積回路2との間に接続されている。
【0086】
次に、図11を用いて本発明の第2の実施の形態に係る半導体集積回路及びデータ転送システムの動作方法を説明する。
【0087】
(a)まず、第1ステップSU1において、半導体集積回路21内のCPU24のソフトウェア設計者がCPU24のソフトウェア設計を行う。
【0088】
(b)次に、第2ステップSU2において、設計されたソフトウェアをROMデータとして作成する。
【0089】
(c)次に、第3ステップSU3において、半導体集積回路21の製造者から入手した暗号化コードの採用を決定する。
【0090】
(d)次に、第4ステップSU4において、暗号化コードに基づいてROMデータを暗号化する。
【0091】
(e)次に、第5ステップSU5において、別の外部ROMから暗号化されたROMデータを外部ROM20へ書き込む。
【0092】
(f)次に、第6ステップSU6において、外部ROM20を実装基板28上に実装する。
【0093】
(g)次に、第7ステップSU7において、実装基板28に対して、電源を投入する。
【0094】
(h)次に、第8ステップSU8において、読み出しROMアドレスを決定し、半導体集積回路21内のCPU24から外部ROM20に対して、必要とするソフトウェアのアドレスを出力する。
【0095】
(i)次に、第9ステップSU9において、外部ROM20から指定されたアドレスに対応する暗号化されたROMデータを半導体集積回路21内のデコーダ回路22へ取り込む。デコーダ回路22において、暗号解読コードブロック23から入力された暗号解読コードを利用して、暗号化されたROMデータをソフトウェアデータとして解読し、CPU24へ出力する。
【0096】
(j)次に、第10ステップSU10において、CPU24において、入力されたソフトウェアデータに基づいてCPU動作が行われる。
【0097】
(k)次に、第11ステップSU11において、次の業務指示があるかどうかを判断する。NOであるならば、第11ステップSU11に戻る。YESであるならば、第8ステップSU8に戻る。
【0098】
(l)上記のステップは、電源供給停止により終了する。
【0099】
(m)次に、電源投入が行われると、再度、CPU24から外部ROM20へのアドレス出力のステップから再度繰り返される。
【0100】
デコーダ回路22は第1の実施の形態において図8を用いて説明した構成と同じであるので、説明を省略する。
【0101】
外部ROM20からパラレルにデータを入力する場合、高速にデータを半導体集積回路21に取り込むことができるため、高速にCPUにデータを転送することができる。データをパラレル入力することで、高速にソフトウェアを取り込み、CPUを高速動作させることができる。尚、場合により、本発明の第1の実施の形態の変形例において説明したように、図9に記載されたデコーダ回路3と暗号解読コードブロック4の構成を、デコーダ回路22と暗号解読コードブロック23の構成に適用して、データのシリアル入力を行うこともできる。シリアルにデータを取り込む場合、外部ROM20と半導体集積回路21とを接続するパスの本数が少数でよいため、実装基板8上での配線本数を減らすことができる。配線密度が高く配線の配置余裕が少ない実装基板8上において適用可能である。
【0102】
外部ROM20のデータを暗号化してデコーダ回路22に入力し、CPU24を混載した集積回路21内部の暗号解読コードブロック23に記録され、埋め込まれた暗号解読コードを利用して、デコーダ回路22において暗号データを復号化してCPU24を駆動するようにすれば、ソフトウェア設計の機密性は高くなる。CPUの命令コードが決まっているCPU24の場合に、それに基づいてソフトウェア設計を行い、外部ROM20にソフトウェアデータを格納しても、外部ROM20のデータを分析してもソフトウェアの設計内容が暴かれることはない。
【0103】
本発明の第2の実施の形態に係る半導体集積回路によれば、ソフトウェア設計データの機密性の高い外部ROM対応CPUを搭載した半導体集積回路を提供することができる。更に、本発明の第2の実施の形態のデータ転送システムによれば、ソフトウェア設計データの機密性の高い外部ROM型のデータ転送システムを供給できる。このように外部ROM20と半導体集積回路21とのデータ受け渡しに暗号化データを用いることで、ソフトウェアの機密性を向上することができる。
【0104】
本発明の第2の実施の形態よれば、設計データやソフトウェアが読み出せないセキュリティー性の高い、CPUを混載した半導体集積回路、データ転送システム、及びデータ転送方法を提供することができる。
【0105】
(第3の実施の形態)
本発明の第3の実施の形態に係る半導体集積回路及びデータ転送システムは、図12に示すように、実装基板32上に実装され、第1の半導体チップ上に集積化された外部ROM30と、第2の半導体チップ上に集積化されたASIC(Application specific integrated circuits)31とから構成されたハイブリッド集積回路である。更に、ASIC31は、外部ROM30とバス配線36を介して接続された暗号解読処理回路33と、暗号解読処理回路33に接続された暗号解読コードブロック40と、更に、暗号解読処理回路33に接続された暗号化対象処理回路34と、暗号化対象処理回路34と接続された内部回路35とを混載したモノリシック集積回路から構成される。ここで、暗号化対象処理回路34とは、秘密にしておくべき情報が格納され、内部回路35との間で、一定の回路動作を実行する回路と定義することができる。主として、CPU若しくはFPGA回路から構成される。もちろん、暗号化を目標とする回路であれば、他の回路形式も含まれる。
【0106】
尚、図12の例では実装基板32上に第1の半導体チップ及び第2の半導体チップがともに実装される例が示されているが、半田バンプ等を介して、第1の半導体チップ及び第2の半導体チップが多層構造として、実装されていても良いことは明らかである。
【0107】
本発明の第3の実施の形態は、ASICの自動設計技術と組み合わせて用いると、より高い効果が得られる。即ち、ASICのデータベースへ汎用性のあるFPGA回路或いはCPUの基本回路を蓄積しておいても、第3者は解読できない。このように、FPGA回路或いはCPUの標準化、デコーダ回路等の暗号解読処理回路33の標準化による自動設計手法の簡素化、暗号コードの決定と暗号解読コードの設計手順の標準化、ROMの暗号化手法の標準化による自動設計手法の簡素などの設計手法の簡素化が可能であり、かつできあがったFPGA混載の半導体集積回路或いはCPU混載の半導体集積回路製品の設計機密性の向上が可能である。
【0108】
FPGA回路コア或いはCPUコアは暗号化されていないものが登録されている。更に、デコーダ回路等の暗号解読処理回路33が登録されており、LSI設計で、設計データをダウンロードする時に組み合わせて活用されることになる。
【0109】
ここで、「設計手法簡素化」について説明する。
【0110】
設計自動化を行なう場合には、まず対象となる回路を標準化する必要がある。同じ回路や、同じ設計手法がそのまま使えると、或いは又、修正方法が簡単であるほど、設計自動化のためのソフトウェアの作成が容易になるからである。本発明の第3の実施の形態の場合、FPGA回路やCPUの回路の設計データはそのまま使えるので、設計自動化のためのソフトウェアの複雑化を招くことはない。
【0111】
更に、暗号化手法と復号化手法及び復号化回路を標準化することにより、まず、復号化回路の設計データもそのまま活用できることになる。
【0112】
更に、暗号化手法が決まることで、外部ROM30に書き込むデータを自動的に暗号化するためのソフトウェアを開発することができる。また、暗号化コードを決定し、その決まった暗号化に対する、復号化コードを自動算出して、ASIC31に埋め込むソフトウェアも開発することが可能である。
【0113】
ASIC製品では、顧客からの要求回路を自動設計するために、様々な回路がデータベースとして登録されており、かつそれらの個別回路の特性も登録されていて、顧客要求回路に合せて、設計データを自動的に持ち出してきて、組み合わせてASIC31を構築し、その特性も自動的に計算されるようになっているので、事前に顧客期待の性能を満足できるかまで確認できる。
【0114】
従って、本発明の第3の実施の形態において、設計データの暗号化処理や、デコーダ回路等の暗号解読処理回路33の自動設計などは、ASIC自動設計の延長技術で問題なく処理可能である。かつ、設計者に対する負担が少なくなるので、ASIC技術と組み合わせることにより、設計効率のより高い効果が得られる。
【0115】
(第4の実施の形態)
本発明の第4の実施の形態に係る半導体集積回路及びデータ転送システムは、図13に示すように、実装基板32上に実装され、第1の半導体チップ上に集積化された外部ROM30と、第2の半導体チップ上に集積化されたASIC31とから構成されたハイブリッド集積回路である。更に、ASIC31は、外部ROM30とバス配線36を介して接続された暗号解読処理回路33と、暗号解読処理回路33に接続された暗号解読コードブロック40と、更に、暗号解読処理回路33に接続されたFPGA回路37と、FPGA回路37と接続された内部回路35とを混載したモノリシック集積回路から構成される。ここで、FPGA回路37とは暗号化対象回路を代表的に示したものである。
【0116】
(第5の実施の形態)
本発明の第5の実施の形態に係る半導体集積回路及びデータ転送システムは、図14に示すように、実装基板32上に実装され、第1の半導体チップ上に集積化された外部ROM30と、第2の半導体チップ上に集積化されたASIC31とから構成されされたハイブリッド集積回路である。更に、ASIC31は、外部ROM30とバス配線36を介して接続された暗号解読処理回路33と、暗号解読処理回路33と接続された暗号解読コードブロック40と、暗号解読処理回路33に接続されたCPU38と、CPU38と接続された内部回路35とを混載したモノリシック集積回路から構成される。ここで、CPU38とは暗号化対象回路を代表的に示したものである。
【0117】
(第6の実施の形態)
本発明の第6の実施の形態に係る半導体集積回路及びデータ転送システムは、図15に示すように、実装基板32上に実装された第2の外部ROM301及び第1の外部ROM302と、ASIC31とから構成されたハイブリッド集積回路である。第1の外部ROM302は第1の半導体チップ上に集積化されている。第2の外部ROM301は第2の半導体チップとは異なる半導体チップ上に集積化されている。或いは、第2の外部ROM301は、第1の外部ROM302と同じ、第1の半導体チップ上に集積化されていてもよい。更に、第2の半導体チップ上に集積化されたASIC31は、外部ROM301、302とそれぞれバス配線360、361を介して接続されたデコーダ回路133と、デコーダ回路133に接続された暗号解読コードブロック40と、更に、デコーダ回路133に接続されたコンフィグレーション回路134と、コンフィグレーション回路134に接続されたFPGA回路37と、FPGA回路37と接続された内部回路35と、デコーダ回路133と接続されたCPU38とを混載して構成されたモノリシック集積回路である。更に、CPU38は、FPGA回路37、内部回路35、外部ROM301に接続されている。CPU38は、アドレスバス配線362を介して、外部ROM301に対してアドレスを指定して、データを要求する。その結果、デコーダ回路133において解読されたROMデータが、データバス配線363を介して、CPU38に対して提供される。本発明の第6の実施の形態の場合には、外部ROMが2個存在し、外部ROM301にはCPU38を駆動する暗号データが保持され、外部ROM302にはFPGA回路37を駆動する暗号データが保持去れている。本発明の第6の実施の形態の場合には、図15に示すように、FPGA回路37及びCPU38をASIC31に混載した構造を有する点に大きな特徴がある。
【0118】
尚、図15の例ではすべての半導体チップが、同一の実装基板32上に実装される例が示されているが、半田バンプ等を介して、多層構造として、実装されていても良いことは明らかである。
【0119】
次に、図16を用いて本発明の第6の実施の形態に係る半導体集積回路及びデータ転送システムの動作方法を説明する。電源投入からCPU38の稼動までの動作フローが図16には示されている。FPGA37に対応する暗号データが保持されるROM302のデータ書き込みのフローは、図2のステップST1のFPGA回路37の設計からステップST6のROMの実装基板への実装と同様であるため、記載を省略した。またCPU38に対応する暗号データが保持されるROM301のデータ書き込みのフローは、図11のステップSU1のソフトウェアの設計からステップSU6のROMの実装基板への実装と同様であるため、記載を省略した。
【0120】
ROM302にはFPGA回路37上に構築する機能の情報が書き込まれているとする。またROM301にはCPU38上で稼動するソフト情報が書き込まれているものとする。ROM301、ROM302とも暗号化したデータが書き込まれているものとする。
【0121】
(a)ステップSV1において、最初にASIC31及び2個のROM301,302を実装した実装基板32に電源を投入する。
【0122】
(b)次に、ステップSV2において、ROM302の暗号化されたデータをデコーダ回路133において受信し、復号化する。復号化するキーワードは暗号解読コードとして暗号解読コードブロック40内に埋め込まれているので、その情報を用いる。
【0123】
(c)次に、ステップSV3において、復号化されたデータはコンフィグレーション回路134に送られて、FPGA回路37が理解できる形にデータ変換が行われて、その復号化されたデータはFPGA回路37において、受信される。こうしてFPGAは予めプログラムされた機能を満たす回路が構築される。
【0124】
(d)次に、ステップSV4において、最後のデータが受信されたかどうかを判断する。YESならば、ステップSV5に進む。NOならば、ステップSV2に戻る。
【0125】
(e)次に、ステップSV5において、ROM302からのデータが全て取り込まれると、FPGA回路37はユーザーモードに移行する。
【0126】
(f)次に、ステップSV6において、ASIC31は動作を開始する。
【0127】
ASIC内のCPUも同様に稼動を始める。
【0128】
(g)次に、ステップSV7において、CPU38からCPU38の設計時に設定されたスタートアドレスを外部ROM301に対して出力して、外部ROM301に対して、アドレス指定が行なわれる。
【0129】
(h)次に、ステップSV8において、デコーダ回路133において、ROM301からの暗号化されたソフトウェアデータを受信し、復号化して、CPU38に送る。
【0130】
(i)次に、ステップSV9において、CPU38では復号化されたデータに基づき業務を実行する。
【0131】
(j)次に、ステップSV10において、次の業務指示があるかどうかを判断する。YESであるならば、ステップSV7に戻る。NOであるならば、ステップSV10を繰り返す。
【0132】
こうすることにより、ROM301或いはROM302のデータを読み取ってもFPGA回路37の機能もCPU38上で動作するソフトも暗号化により機密が保持される。
【0133】
(第7の実施の形態)
本発明の第7の実施の形態に係る半導体集積回路及びデータ転送システムは、図17に示すように、コンフィグレーション回路134に接続された第2の暗号解読コードブロック400及び第2の暗号解読コードブロック400に接続された第2のデコーダ回路233を更に備える点に特徴を有する。第2の暗号解読コードブロック400は具体的にはFPGA回路から構成される。従って、コンフィグレーション回路134により、その回路構成が定義される。CPU38は、アドレスバス配線362を介して、第2の外部ROM301に対してアドレスを指定して、データを要求する。その結果、第2のデコーダ回路233において解読されたROMデータが、データバス配線364を介して、CPU38に対して提供される。本発明の第7の実施の形態の場合には、外部ROMが2個存在し、第2の外部ROM301にはCPU38を駆動する暗号データが保持され、第1の外部ROM302にはFPGA回路37を駆動する暗号データが保持されている。本発明の第7の実施の形態の場合には、図17に示すように、FPGA回路37及びCPU38を、第2の半導体チップ上に集積化されたASIC31に混載した構造を有する点にも大きな特徴がある。図17に示した第7の実施の形態の構成は、基本的には、図15に示した第6の実施の形態の構成と同様であるが、CPU38の暗号解読コードは、FPGA回路からなる暗号解読コードブロック400にて構築したものである。
【0134】
第1の半導体チップ上に集積化された第1の外部ROM302に書き込まれた機能情報としての暗号データは、FPGA回路37を構築するとともに、CPU38の暗号解読コードも情報として第1のROM302に書き込まれている。ASIC31が稼動を開始する前にFPGA回路37が構築される。CPU38が稼動を開始する前に、CPU38の暗号解読コードはFPGA回路からなる暗号解読コードブロック400に構築されている。こうすることにより、図15に示した本発明の第6の実施の形態に係る半導体集積回路及びデータ転送システムの利点に加えて、CPU38の暗号解読コードが、第1の外部ROM302のデータを変更することにより、いつでも切替可能になるという点に大きな特徴が存在する。即ち、第7の実施の形態においては、CPU38用の暗号データに外部から変更を加えたいような場合に有効である。第2の外部ROM301に保持されていた暗号データが何らかの事情により、解読されているような場合には、第1の外部ROM302によって、暗号解読コードブロック400内に構築されるFPGA回路に変更を加えることができる。同時に第2の外部ROM301の内容も外部ROM302の変更内容に合せて変更させる。こうすることによって、一端秘密を暴かれたCPU38用の暗号データの内容に任意の変更を加えることができる。第1の外部ROM302は第1の半導体チップ上に集積化されている。第2の外部ROM301は第2の半導体チップとは異なる半導体チップ上に集積化されている。或いは、第2の外部ROM301は、第1の外部ROM302と同じ、第1の半導体チップ上に集積化されていてもよい。尚、図17の例ではすべての半導体チップが、同一の実装基板32上に実装される例が示されているが、半田バンプ等を介して、多層構造として、実装されていても良いことは明らかである。
【0135】
次に、図18及び図19を用いて本発明の第7の実施の形態に係る半導体集積回路及びデータ転送システムの動作方法を説明する。CPUソフトウェアの暗号化コード決定からCPUの稼動までの動作フローを図18に示し、CPUソフトウェアの暗号化コードの変更の動作フローを図19示す。
【0136】
(a)まず、ステップSW1において、CPUソフトウェアの暗号化コードを決定する。
【0137】
(b)次に、ステップSW2において、CPUソフトウェアの暗号化コードに基づいて暗号解読コードブロック400の回路設計及びFPGA回路37に構築する機能の設計を行う。
【0138】
(c)次に、ステップSW3において、その設計に基づきROM(1)302のデータを作成する。
【0139】
(d)次に、ステップSW4において、ASIC設計時に決めたFPGA暗号化コードを使用する。
【0140】
(e)次に、ステップSW5において、ROM(1)302のデータの暗号化を行う。
【0141】
(f)次に、ステップSW6において、その暗号化データをROM(1)302に書き込む。
【0142】
以上のステップSW2〜SW6の作業と並行して、以下のステップSW7〜SW10を実行する。
【0143】
(g)ステップSW7において、CPU38上で動作するソフトウェアの設計を行う。
【0144】
(h)次に、ステップSW8において、その設計データに基づきROM(2)301のデータを作成する。
【0145】
(i)次に、ステップSW9において、ROM(2)301のデータの暗号化コードは予め決められているので、そのコードを用いてROM(2)301のデータの暗号化を行う。
【0146】
(j)次に、ステップSW10において、その暗号化データをROM(2)301へ書き込む。
【0147】
(k)次に、ステップSW11において、ROM301、ROM302をASIC31とともに実装基板32に実装する。
【0148】
(l)次に、ステップSW12において、実装基板32に対して電源を投入する。自動的にFPGA部のコンフィグレーション動作が開始する。
【0149】
(m)ステップSW13において、ROM(1)302のデータがASIC31に取り込まれ、暗号解読コードブロック40のデータを参照して、デコーダ回路133において、読み込みデータは復号化される。
【0150】
(n)次に、ステップSW14において、復号化されたデータはコンフィグレーション回路134においてFPGA回路に適合したデータに変換されて送出され、FPGA回路37において受信される。同時に暗号解読コードブロック400内のFPGA回路において受信される。
【0151】
(o)次に、ステップSW15において、ROM302内の全てのデータが読み込まれたかどうかを判断する。YESであるならば、ステップSW16に進み、NOであるならば、ステップSW13に戻る。
【0152】
(p)次に、ステップSW16において、FPGA回路37及び暗号解読コードブロック400内のFPGA回路はユーザーモードにシフトする。FPGA回路は設計者が意図した機能を持つとともに、暗号解読コードブロック400も構築される。
【0153】
(q)次に、ステップSW17において、ASIC31は動作を開始する。CPU38も稼動を開始する。
【0154】
(r)次に、ステップSW18において、CPU38の設計時に設定されたスタートアドレスをROM(2)301に提示してデータを要求する。即ち、読み込みROM(2)301のアドレスを決定する。ROM(2)301は指定されたアドレスのデータをASIC31に送り出す。
【0155】
(s)次に、ステップSW19において、デコーダ回路233において、コンフィグレーション時に構築された暗号解読コードブロック400内の暗号解読コードに基いて、受信データの復号化を行う。
【0156】
(t)次に、ステップSW20において、復号化データはCPU38に送られ、CPUで解読されて、指定業務が行われ、次の指示を待つ。
【0157】
(u)次に、ステップSW21において、次の指定業務が存在するかどうかを判断する。YESであるならば、ステップSW18に戻る。NOであるならば、ステップSW21を繰り返す。
【0158】
こうすることにより、図17に示した第7の実施の形態に係る半導体集積回路及びデータ転送システムでは、図15に示した第6の実施の形態に係る半導体集積回路及びデータ転送システムの利点に加えて、ROM(1)302のデータを変更することによって、複数のCPU38の暗号解読コードを作成することができる。
【0159】
数機種の応用機器を同時に設計する場合に、1つのASICを設計して、全ての応用機器に適用することが可能となる。かつまた、その各々機種によって異なるCPU用のソフトウェア暗号解読コードを持たせることができるようになる。従って、暗号の機密を破られた場合の被害を少なく抑えることができる。
【0160】
次に、外部ROM301及び302に用いられるROMとしては、EEPROM、フラッシュPROM、EPROM、OTPROM(One Time PROM)、NTPROM(N Time PROM:数回書替え可能)、ヒューズROM、マスクROMなどが適用可能である。
【0161】
この内、EEPROM、フラッシュPROM或いはNTPROMを用いた場合には、応用機器が市場に出回った後で、応用ソフトのバージョンアップ等の時に、使用者側において、CPUソフトウェアの暗号コードの変更が可能になる利点が加わる。
【0162】
図19にその場合の暗号解読コード変更のフローを示す。
【0163】
(a2)まず、ステップSW22において、CPUソフトウェアの暗号化コードを変更するために新しい暗号化コードを決定する。
【0164】
(b2)次に、ステップSW23において、CPUソフトウェアの変更した暗号化コードに基づいて暗号解読コードブロック400の回路設計及びFPGA回路37に構築する機能の設計を行う。
【0165】
(c2)次に、ステップSW24において、その設計に基づきROM(1)302のデータを作成する。
【0166】
(d2)次に、ステップSW25において、FPGA暗号化コードを決定する。
【0167】
(e2)次に、ステップSW26において、ROM(1)302のデータの暗号化を行う。
【0168】
(f2)次に、ステップSW27において、その暗号化データをインターネット上においてWEB登録する。
【0169】
(g2)次に、ステップSW28において、インターネット上においてWEB登録されたROM(1)302の暗号データをダウンロードする。
【0170】
(h2)次に、ステップSW29において、ROM(1)302にダウンロードした暗号データを書き込む。
【0171】
以上のステップSW23〜SW29の作業と並行して、以下のステップSW30〜SW35を実行する。
【0172】
(i2)ステップSW30において、CPU38上で動作する新しいソフトウェアの設計を行う。
【0173】
(j2)次に、ステップSW31において、その設計データに基づきROM(2)301のデータを作成する。
【0174】
(k2)次に、ステップSW32において、ROM(2)301の暗号化データを決定する。
【0175】
(l2)次に、ステップSW33において、その暗号化データをインターネット上においてWEB登録する。
【0176】
(m2)次に、ステップSW34において、インターネット上においてWEB登録されたROM(2)301の暗号データをダウンロードする。
【0177】
(n2)次に、ステップSW35において、ROM(2)301にダウンロードした暗号データを書き込む。
【0178】
(o2)次に、ステップSW36において、実装基板32に対して電源を投入する。自動的にFPGA部のコンフィグレーション動作が開始する。
【0179】
以下、図18に示すステップSW13〜SW21と同様のステップを実行する。
【0180】
ROM(1)302のデータ,ROM(2)301のデータはWEB登録以外にCDROM等で一般に配布される場合もある。
【0181】
こうすることにより、随時、暗号化コードの変更が行われ、古いソフトの暗号の機密が破られた場合でも、新しいソフトへの機密漏洩の影響は無くなる利点がある。
【0182】
(第8の実施の形態)
本発明の第8の実施の形態に係る半導体集積回路及びデータ転送システムは、図20に示すように、実装基板32上に実装され、第1の半導体チップ上に集積化された外部ROM30と、第2の半導体チップ上に集積化されたASIC31と、第3の半導体チップ上に集積化されたASIC310とから構成されたハイブリッド集積回路である。更に、ASIC31は、外部ROM30とデータバス配線36を介して接続されたデコーダ回路133と、デコーダ回路133に接続されたコンフィグレーション回路134と、コンフィグレーション回路134に接続されたFPGA回路37と、デコーダ回路133に接続された暗号解読コードブロック40と、更に、FPGA回路37に接続された内部回路35とを混載して構成されたモノリシック集積回路である。更にこのFPGA回路37は別のASIC310内のFPGA回路340の接続されている。尚、図20の例ではすべての半導体チップが、同一の実装基板32上に実装される例が示されているが、半田バンプ等を介して、多層構造として、実装されていても良いことは明らかである。
【0183】
本発明の第8の実施の形態に係る半導体集積回路及びデータ転送システムは、図20に示すように、本発明の第1の実施の形態の変形例と見ることもできる。ASIC310にはコンフィグレーション回路(図示省略)とFPGA回路340が搭載されている。
【0184】
2個のFPGA回路37及び340はシリアルに結合されている。1個の外部ROM1からの暗号化されたデータを、デコーダ回路133において受信し、復号化して機能情報がFPGA回路37に書き込まれる。FPGA回路37の機能を決める情報を格納するRAMは、図4に示したように、シフトレジスタにて構成され、その基本単位として、例えば、Dタイプ・フリップ/フロップがシリアルに結合されている。従って、2個のFPGA回路37,340がシリアルに結合された場合にも、シリアル結合の段数が変わるだけであり、基本的に書き込み動作に変更はない。まずこれらのLSIを実装した実装基板32に電源が投入されると、暗号化されたROMデータがデコーダ回路133に送られ復号化されて、コンフィグレーション回路134に送られる。コンフィグレーション回路134ではFPGA回路37に合った形にデータ変換を行い、FPGA回路37にデータを送る。FPGA回路37内では、シリアルに結合されたシフトレジスタの入り口にデータが取り込まれ、次のデータが取り込まれる度に、全ての入手済みデータが1ステップずつ先に送られる。こうしてASIC31内のFPGA回路37において、シフトレジスタのシリアル結合段の最終段まできたデータは、ASIC310のFPGA回路340に取り込まれる。
【0185】
ROMデータが最後まで取り込まれると、2つのFPGA回路37、340はユーザーモードに切り替わり、ASIC31及びASIC310が稼動を開始する。
【0186】
本発明の第8の実施の形態に係る半導体集積回路及びデータ転送システムの構成から明らかなように、複数のASICを有する場合においても、1個の外部ROM30と接続された1個のデコーダ回路133を用いるだけで、各ASIC内に搭載されるFPGA回路の機能情報を管理することができる。このようにして、複数のASIC内に搭載されたFPGA回路上に構築する機能情報は1個のデコーダ回路133を用いるだけで、機密性の向上を図ることが出来る利点がある。
【0187】
(第8の実施の形態の変形例1)
本発明の第8の実施の形態の変形例1に係る半導体集積回路及びデータ転送システムは、例えば、図21に示すように、ASIC310内に搭載されるFPGA回路340の出力を更に別のASIC320内に搭載されるFPGA回路350に結合した構成を有する。第7の実施の形態から明らかなように、複数のASICを有する場合においても、1個の外部ROM30と接続された1個のデコーダ回路133を用いるだけで、各ASIC内に搭載されるFPGA回路の機能情報を管理することができる。複数のASIC内に搭載されたFPGA回路上に構築する機能情報は1個のデコーダ回路133を用いるだけで、機密性の向上を図ることができる。更に、別のASIC内にFPGA回路を搭載して、FPGA回路350の出力にシリアル接続するようにすることも、同様の方法で可能である。
【0188】
(第8の実施の形態の変形例2)
本発明の第8の実施の形態の変形例2に係る半導体集積回路及びデータ転送システムは、例えば、図22に示すように、FPGA回路37を搭載したASIC31とFPGA回路340をシリアルに結合した構成を有する。この場合にも、図20に示した第8の実施の形態と同様に、外部ROM30のROMデータが復号化されて、FPGA回路37及びFPGA回路340に書き込まれた後に、FPGA回路37及びFPGA回路340はユーザーモードに移行して、ASIC31が稼動を開始する。このようにすることによって、1個のASIC31に搭載されたFPGA回路37のデータの機密性を向上することが可能であるとともに、外部に接続されたFPGA回路340のデータの機密性を向上することも可能となる。
【0189】
(第8の実施の形態の変形例3)
本発明の第8の実施の形態の変形例3に係る半導体集積回路及びデータ転送システムは、例えば、図23に示すように、FPGA回路37を搭載したASIC31とFPGA回路340をシリアルに結合し、更にFPGA回路340に対してFPGA回路350をシリアルに結合した構成を有する。この場合にも、図20に示した第7の実施の形態と同様に、外部ROM30のROMデータが復号化されて、FPGA回路37及びFPGA回路340及びFPGA回路350に書き込まれた後に、FPGA回路37及びFPGA回路340及びFPGA回路350はユーザーモードに移行して、ASIC31が稼動を開始する。このようにすることによって、1個のASIC31に搭載されたFPGA回路37のデータの機密性を向上することが可能であるとともに、外部に接続されたFPGA回路340及びFPGA回路350のデータの機密性を向上することも可能となる。複数のFPGA回路を有する場合においても、1個の外部ROM30と接続された1個のデコーダ回路133を用いるだけで、各FPGA回路の機能情報を管理することができる。FPGA回路上に構築する機能情報は1個のデコーダ回路133を用いるだけで、機密性の向上を図ることができる。更に、FPGA回路350に別のFPGAデバイスをシリアル接続してシステムを拡張することも、同様の方法で可能である。
【0190】
(第9の実施の形態)
本発明の第9の実施の形態に係る半導体集積回路及びデータ転送システムは、図24に示すように、実装基板32上に実装された第2の外部ROM301及び第1の外部302と、ASIC31及びASIC310とから構成されたハイブリッド集積回路である。第1の外部ROM302は第1の半導体チップ上に集積化され、第2の外部ROM301は第2の半導体チップとは異なる半導体チップに集積化される。第2の外部ROM301は第1の半導体チップと同一の半導体チップ上に集積化されていても良い。更に、第2の半導体チップ上に集積化されたASIC31は、外部ROM301、302とそれぞれデータバス配線360、361を介して接続されたデコーダ回路133と、デコーダ回路133に接続された暗号解読コードブロック40と、更に、デコーダ回路133に接続されたCPU38と、CPU38と接続された内部回路35とを混載して構成されたモノリシック集積回路である。ASIC310にはコンフィグレーション回路(図示省略)及びFPGA回路340が搭載されている。更にこのデコーダ回路133はASIC310内のFPGA回路340に接続されている。ここで、本発明の第9の実施の形態の場合には、外部ROMが2個存在し、それぞれの目的に合わせて、暗号コードを保持している。即ち、外部ROM302にはFPGA回路340に使用する暗号データが保持されている。また、外部ROM301にはCPU38において使用する暗号ソフトウェアが保持されている。尚、図24の例ではすべての半導体チップが、同一の実装基板32上に実装される例が示されているが、半田バンプ等を介して、多層構造として、実装されていても良いことは明らかである。
【0191】
まずこれらのLSIを搭載した実装基板32に電源が投入されると、ROM302の暗号化されたデータがASIC31に取り込まれ、デコーダ回路133において復号化されて、データバス配線365を介して、ASIC310に出力される。ASIC310に取り込まれたデータはコンフィグレーション回路を経由してFPGA回路340に取り込まれる。ROM302の全てのデータがFPGA回路340に取り込まれた後、FPGA回路340はユーザーモードに移行して、ASIC31及びASIC310は稼動を開始する。
【0192】
ASIC31が稼動を開始すると、内部に搭載されたCPU38も稼動を開始して、CPU38の設計時に設定されたスタートアドレスを、アドレスバス配線362を介して、ROM301に出力し、ROM301からのデータを要求する。ROM301は指定されたアドレスのデータを、データバス配線360を介して、ASIC31に出力する。ASIC31では入手したデータをデコーダ回路133で復号化して、データバス配線363を介して、CPU38にデータ転送する。CPU38では入手したデータを解読して、業務を実行し次の業務指示を待つ。
【0193】
このようにすることにより、FPGA回路340及びCPU38が別々のASICに搭載された場合にも、1個のデコーダ回路133で双方のデータの機密性を向上することが可能となる。
【0194】
(第9の実施の形態の変形例)
本発明の第9の実施の形態の変形例に係る半導体集積回路及びデータ転送システムは、図25に示すように、CPU38を搭載したASIC31とFPGA回路340をシリアルに結合した構成を有する。ASIC31にCPU38を搭載し、ASIC31と外部接続されたFPGA回路340のデータの機密性を向上した実施例を示す。図24に示された第9の実施の形態の動作と同様に、外部ROM302の全データがFPGA回路340に書き込まれた後、FPGA回路340はユーザーモードに移行し、ASIC31は稼動を開始する。そしてCPU38も稼動を開始して、ROM301からデータを入手して、復号化した後、CPUにてデータを解読して、業務を行う。このようにすることにより、CPU38を搭載したASIC31のソフトウェアの機密性の向上を図るとともに、外部接続されたFPGA回路340のデータの機密性を向上することができる。
【0195】
図23に示した第8の実施の形態の変形例3に係る半導体集積回路及びデータ転送システムの構成と同様に、CPU38を搭載したASIC31とFPGA回路340をシリアルに結合し、更にFPGA回路340に対してFPGA回路350をシリアルに結合した構成を採用しても良い。
【0196】
複数のFPGA回路を有する場合においても、外部ROM302と接続された1個のデコーダ回路133を用いるだけで、各FPGA回路の機能情報を管理することができる。FPGA回路上に構築する機能情報は1個のデコーダ回路133を用いるだけで、機密性の向上を図ることができる。更に、FPGA回路350に別のFPGAデバイスをシリアル接続してシステムを拡張することも、同様の方法で可能である。
【0197】
(第10の実施の形態)
本発明の第10の実施の形態に係る半導体集積回路及びデータ転送システムは、図26に示すように、実装基板32上に実装された外部ROM301及び302と、ASIC31及び310とから構成されたハイブリッド集積回路である。更に、ASIC31は、外部ROM301及び302とそれぞれバス配線360及び361を介して接続されたデコーダ回路133と、デコーダ回路133に接続された暗号解読コードブロック40と、更に、デコーダ回路133に接続されたFPGA回路37と、FPGA回路37と接続された内部回路35とを混載して構成されたモノリシック集積回路である。また、ASIC310にはCPU341が搭載されている。更に、ASIC31内のデコーダ回路133は、ASIC310内のCPU341に接続されている。FPGA回路37は、内部回路35との間で、一定の回路動作を実行する。第1の外部ROM302は第1の半導体チップ上に集積化され、第2の外部ROM301は第2の半導体チップとは異なる半導体チップに集積化される。第2の外部ROM301は第1の半導体チップと同一の半導体チップ上に集積化されていても良い。また、ASIC31は第2の半導体チップ上に集積化され、ASIC310は第3の半導体チップ上に集積化されている。尚、図26の例ではすべての半導体チップが、同一の実装基板32上に実装される例が示されているが、半田バンプ等を介して、多層構造として、実装されていても良いことは明らかである。
【0198】
第10の実施の形態に係る半導体集積回路及びデータ転送システムは、図26に示すように、2個のASICにFPGA回路或いはCPUを搭載して、結合した構成を有する点では、図24に示した第9の実施の形態と同様である。第10の実施の形態においては、FPGA回路37を搭載するASIC31にデコーダ回路133が搭載されている。
【0199】
まずROM302から、データバス配線361を介して、ASIC31に暗号化されたデータが出力される。次に、ASIC31のデコーダ回路133においてデータの復号化が行われる。次に、コンフィグレーション回路134を経由して、FPGA回路37に復号化されたデータが書き込まれる。外部ROM302内の全てのROMデータが書き込まれた後、FPGA回路37はユーザーモードに移行し、ASIC31及びASIC310は稼動を開始する。
【0200】
ASIC310に搭載されたCPU341も稼動を開始する。CPU341は、アドレスバス配線366を介して、ROM301にアドレスを指定してデータを要求する。ROM301の暗号化されたデータは、データバス配線360を介して、まずASIC31に送り出され、ASIC31のデコーダ回路133において復号化される。次にこの復号化されたデータは、データバス配線365を介して、ASIC310に送り出される。ASIC310内のCPU341は入手したデータを解読して業務を行う。
【0201】
このようにすることにより、FPGA回路37及びCPU341が別々のASICに搭載された場合にも、1個のデコーダ回路133によって双方のデータの機密性を向上することが可能となる。
【0202】
(第10の実施の形態の変形例)
本発明の第10の実施の形態の変形例に係る半導体集積回路及びデータ転送システムは、図27に示すように、FPGA回路37を搭載したASIC31とCPU341をシリアルに結合した構成を有する。ASIC31にFPGA回路37を搭載し、ASIC31と外部接続されたCPU341双方のデータの機密性を向上した実施例を示す。
【0203】
図26に示した第10の実施の形態の動作と同様に、全てのROM302のデータがFPGA回路37に書き込まれた後、FPGA回路37はユーザーモードに移行し、ASIC31及びCPU341は稼動を開始する。CPU341はROM301にアドレスを指定してデータを要求する。ROM301は指定アドレスのデータをASIC31に送出する。ASIC31ではデコーダ回路133においてデータを復号化して、CPU341にデータを送出する。CPU341は入手したデータを解読して業務を行う。
【0204】
このようにすることにより、FPGA回路37を搭載したASIC31のデータの機密性の向上を図るとともに、外部接続されたCPU341のソフトウェアデータの機密性の向上を図ることができる。
【0205】
(第11の実施の形態)
本発明の第11の実施の形態に係る半導体集積回路及びデータ転送システムは、図28に示すように、実装基板32上に実装された外部ROM301及び302と、ASIC31及びASIC310及び320とから構成されたハイブリッド集積回路である。更に、ASIC31は、外部ROM302とバス配線361を介して接続されたデコーダ回路133と、外部ROM301とバス配線360を介して接続されたデコーダ回路233と、デコーダ回路133及びデコーダ回路233に接続された暗号解読コードブロック40と、更に、デコーダ回路233に接続されたコンフィグレーション回路134と、コンフィグレーション回路134と接続されたFPGA回路37と、FPGA回路37と接続された内部回路35とを混載して構成されたモノリシック集積回路である。ASIC310及び320にはコンフィグレーション回路(図示省略)及びFPGA回路340及び350が搭載されている。更にこのFPGA回路37はASIC310内のFPGA回路340に接続されている。更にまた、デコーダ回路133は、更にデータバス配線365を介して、ASIC320内のFPGA回路350に接続されている。ここで、FPGA回路37は、他の回路35との間で、一定の回路動作を実行すると共に、FPGA回路340の回路形式を定義することができる。
【0206】
第1の外部ROM302は第1の半導体チップ上に集積化され、第2の外部ROM301は第2の半導体チップとは異なる半導体チップに集積化されている。或いはまた、第2の外部ROM301は第1の半導体チップと同一の半導体チップ上に集積化されていても良い。また、ASIC31は第2の半導体チップ上に集積化され、ASIC310は第3の半導体チップ上に集積化されている。更に、ASIC320は第4の半導体チップ上に集積化されている。尚、図28の例ではすべての半導体チップが、同一の実装基板32上に実装される例が示されているが、半田バンプ等を介して、多層構造として、実装されていても良いことは明らかである。
【0207】
図28に示す第11の実施の形態に係る半導体集積回路及びデータ転送システムは、3個のASICにFPGA回路を搭載して、各々を結合した実施例に相当している。これらのLSIが実装された実装基板32に電源が投入されると、ROM301及びROM302のデータは並行してASIC31に取り込まれていく。ROM301のデータはデコーダ回路233において復号化され、コンフィグレーション回路134を経由してFPGA回路37に書き込まれ、更にASIC310内のFPGA回路340に書き込まれていく。ROM302のデータはASIC1のデコーダ回路133において復号化され、ASIC320に送出され、ASIC320内のFPGA回路350に書き込まれていく。ROM301の全データがFPGA回路37及び340に書き込まれ、ROM302の全データがFPGA回路350に書き込まれた後、全てのFPGA回路37,340,及び350はユーザーモードに移行し、ASIC31、ASIC310、ASIC320は稼動を開始する。このようにすることにより、FPGA回路を各々搭載した複数のASICでも1個の暗号解読コードブロック40によって、全体のデータの機密性を向上することが可能となる。かつ複数のASICに対して、コンフィグレーションを複数ラインで同時に実施するので、コンフィグレーション時間を短縮することができる利点がある。
【0208】
(第11の実施の形態の変形例)
本発明の第11の実施の形態の変形例に係る半導体集積回路及びデータ転送システムは、図29に示すように、実装基板32上に実装された外部ROM301及び302と、外部のFPGA回路340及び350とから構成される。更に、ASIC31は、外部ROM301とバス配線360を介して接続されたデコーダ回路233と、外部ROM302とバス配線361を介して接続されたデコーダ回路133と、デコーダ回路133及びデコーダ回路233に接続された暗号解読コードブロック40と、更に、デコーダ回路233に接続されたコンフィグレーション回路134と、コンフィグレーション回路134と接続されたFPGA回路37と、FPGA回路37と接続された内部回路35とから構成される。更にこのFPGA回路37はFPGA回路340に接続されている。更にまた、デコーダ回路133は、データバス配線365を介して、FPGA回路350に接続されている。ここで、FPGA回路37は、他の回路35との間で、一定の回路動作を実行すると共に、FPGA回路340の回路形式を定義することができる。
【0209】
図29に示す第11の実施の形態の変形例は、FPGA回路37を搭載したASIC31、及び2個のFPGA回路340、350を結合した実施例を示す。図28と動作状況は殆ど同じであるが、図28において、外部接続される、FPGA回路340、350を搭載したASIC310、320がFPGA回路340、350に変わったものである。この場合にもROM301の全データ及びROM302の全データがFPGA回路37、340或いはFPGA回路350に書き込まれた後、FPGA回路37、340或いはFPGA回路350はユーザーモードに移行し、ASIC31は稼動を開始する。このようにすることにより、FPGA回路37を搭載した1個のASIC31で、外部接続された複数個のFPGA回路を含めた全てのFPGA書き込みデータの機密性を向上することが可能となる。かつコンフィグレーションを複数ラインで同時に実施するので、コンフィグレーション時間を短縮することができる利点がある。
【0210】
(第12の実施の形態)
本発明の第12の実施の形態に係る半導体集積回路及びデータ転送システムは、図30に示すように、実装基板32上に実装された外部ROM301及び302と、ASIC31及びASIC310及び320とから構成されたハイブリッド集積回路である。更に、ASIC31は、外部ROM301とバス配線360を介して接続されたデコーダ回路233と、外部ROM302とバス配線361を介して接続されたデコーダ回路133と、デコーダ回路133及びデコーダ回路233に接続された暗号解読コードブロック40と、更に、デコーダ回路233に接続されたコンフィグレーション回路134と、コンフィグレーション回路134と接続されたFPGA回路37と、FPGA回路37と接続された内部回路35とを混載して構成されるモノリシック集積回路である。ASIC310にはコンフィグレーション回路(図示省略)及びFPGA回路340が搭載され、ASIC320にはCPU341が搭載されている。更にこのFPGA回路37はASIC310内のFPGA回路340に接続されている。更にまた、デコーダ回路133は、データバス配線365を介して、ASIC320内のCPU341に接続されている。ここで、FPGA回路37は、内部回路35との間で、一定の回路動作を実行すると共に、FPGA回路340の回路形式を定義することができる。
【0211】
第1の外部ROM302は第1の半導体チップ上に集積化され、第2の外部ROM301は第2の半導体チップとは異なる半導体チップに集積化されている。或いはまた、第2の外部ROM301は第1の半導体チップと同一の半導体チップ上に集積化されていても良い。また、ASIC31は第2の半導体チップ上に集積化され、ASIC310は第3の半導体チップ上に集積化されている。更に、ASIC320は第4の半導体チップ上に集積化されている。尚、図30の例ではすべての半導体チップが、同一の実装基板32上に実装される例が示されているが、半田バンプ等を介して、多層構造として、実装されていても良いことは明らかである。
【0212】
図30に示す第12の実施の形態は、3個のASICの内2個にFPGA回路を搭載し、1個にCPUを搭載して、各々を結合した実施例に相当している。図20に示す第8の実施の形態と図26に示す第10の実施の形態との組み合わせと見ることもできる。これらのLSIが実装された実装基板32に電源が投入されると、第2の外部ROM301の全データがASIC31に取り込まれて、FPGA回路31及びFPGA回路340がユーザーモードになった後、第1の外部ROM302のデータがASIC31に取り込まれる。第2の外部ROM301のデータはデコーダ回路233において復号化され、コンフィグレーション回路134を経由してFPGA回路37に書き込まれ、更にASIC310内のFPGA回路340に書き込まれていく。第1の外部ROM302のデータはASIC1のデコーダ回路133において復号化され、データバス配線365を介して、ASIC320に送出され、ASIC320内のCPU341に提供される。第2の外部ROM301の全データがFPGA回路37及び340に書き込まれた後、ASIC31、ASIC310、ASIC320は稼動を開始する。第1の外部ROM302に対してはCPU341からアドレス指定を要求され、そのアドレス要求に応答して、第1の外部ROM302のデータがCPU341に書き込まれる。このようにすることにより、FPGA回路或いはCPUを各々搭載した複数のASICでも1個の暗号解読コードブロック40によって、全体のデータの機密性を向上することが可能となる。
【0213】
(第12の実施の形態の変形例)
本発明の第12の実施の形態の変形例に係る半導体集積回路及びデータ転送システムは、図31に示すように、実装基板32上に実装された外部ROM301及び302と、ASIC31及び外部のFPGA回路340及びCPU341とから構成される。更に、ASIC31は、外部ROM301とバス配線360を介して接続されたデコーダ回路233と、外部ROM302とバス配線361を介して接続されたデコーダ回路133と、デコーダ回路133及びデコーダ回路233に接続された暗号解読コードブロック40と、更に、デコーダ回路233に接続されたコンフィグレーション回路134と、コンフィグレーション回路134と接続されたFPGA回路37と、FPGA回路37と接続された内部回路35とから構成される。更にこのFPGA回路37はFPGA回路340に接続されている。更にまた、デコーダ回路133は、データバス配線365を介して、CPU341に接続されている。ここで、FPGA回路37は、他の回路35との間で、一定の回路動作を実行すると共に、FPGA回路340の回路形式を定義することができる。
【0214】
図31に示す第12の実施の形態の変形例は、1個のFPGA回路37を搭載したASIC31に対して、外部にCPU341及びFPGA回路340を配置して、各々を結合した実施例に相当している。図22示す第8の実施の形態の変形例2と図27に示す第10の実施の形態の変形例との組み合わせと見ることもできる。これらのLSIが実装された実装基板32に電源が投入されると、第2の外部ROM301の全データがASIC31に取り込まれて、FPGA回路31及びFPGA回路340がユーザーモードになった後、第1の外部ROM302のデータがASIC31に取り込まれる。第2の外部ROM301のデータはデコーダ回路233において復号化され、コンフィグレーション回路134を経由してFPGA回路37に書き込まれ、更にFPGA回路340に書き込まれていく。第1の外部ROM302のデータはASIC1のデコーダ回路133において復号化され、CPU341に提供される。第2の外部ROM301の全データがFPGA回路37及び340に書き込まれた後、ASIC31は稼動を開始する。第1の外部ROM302に対してはCPU341からアドレス指定を要求され、そのアドレス要求に応答して、第1の外部ROM302のデータがCPU341に書き込まれる。このようにすることにより、FPGA回路或いはCPUを各々搭載した複数のASICでも1個の暗号解読コードブロック40によって、全体のデータの機密性を向上することが可能となる。
【0215】
(第13の実施の形態)
本発明の第13の実施の形態に係る半導体集積回路及びデータ転送システムは、図32に示すように、実装基板32上に実装された外部ROM301及び302と、ASIC31及びASIC310及びASIC320とから構成されたハイブリッド集積回路である。ASIC31は、外部ROM301にバス配線360を介して接続されたデコーダ回路233と、外部ROM302にバス配線361を介して接続されたデコーダ回路133と、デコーダ回路233に接続された暗号解読コードブロック40と、更にデコーダ回路233に接続されたコンフィグレーション回路134と、コンフィグレーション回路134に接続されたFPGA回路37と、更に、コンフィグレーション回路134に接続された暗号解読コードブロック400と、FPGA回路37に接続された内部回路35とを混載して構成されたモノリシック集積回路である。図32において、暗号解読コードブロック400がFPGA回路によって構成されている点に大きな特徴がある。ASIC310は、コンフィグレーション回路(図示せず)とFPGA回路340を含み、ASIC320はCPU341を含む。FPGA回路37はASIC310内のコンフィグレーション回路を介してFPGA回路340に接続されている。また、デコーダ回路133は、データバス配線365を介して、ASIC320内のCPU341に接続されている。またCPU341はアドレスバス配線366を介して、ROM302に接続されている。
【0216】
ASIC31においては、FPGA回路データの復号化に用いられる暗号解読コードが暗号解読コードブロック40内に埋め込まれている。CPU341のデータ復号化に用いられる暗号解読コードはFPGA回路で構成された暗号解読コードブロック400内に埋め込まれている。暗号解読コードブロック400を構成するFPGA回路はコンフィグレーション回路134によって定義されることから、ROM301のプログラミングによって、CPUの暗号ソフトウェアは変更可能となる。
【0217】
第1の外部ROM302は第1の半導体チップ上に集積化され、第2の外部ROM301は第2の半導体チップとは異なる半導体チップに集積化されている。或いはまた、第2の外部ROM301は第1の半導体チップと同一の半導体チップ上に集積化されていても良い。また、ASIC31は第2の半導体チップ上に集積化され、ASIC310は第3の半導体チップ上に集積化されている。更に、ASIC320は第4の半導体チップ上に集積化されている。尚、図32の例ではすべての半導体チップが、同一の実装基板32上に実装される例が示されているが、半田バンプ等を介して、多層構造として、実装されていても良いことは明らかである。
【0218】
第13の実施の形態に係る半導体集積回路及びデータ転送システムは、図17に示した、本発明の第7の実施の形態と構成及び動作が基本的には同じである。CPU341が外部接続されたASIC320に搭載され、ASIC31のFPGA回路37にはFPGA回路340を搭載したASIC310が外部接続されている。このようにすることにより、FPGA回路37を搭載した1個のASIC31で、外部接続された複数個のFPGA回路340への書き込みデータ、及びCPU341のソフトウェアデータの機密性を向上することが可能となる。その利点に加えて、CPU341の暗号解読コードがROM301のデータを変更することにより、いつでも切替可能になる。
【0219】
(第13の実施の形態の変形例)
本発明の第13の実施の形態の変形例に係る半導体集積回路及びデータ転送システムは、図33に示すように、実装基板32上に実装された、外部ROM301及び302と、ASIC31と、外部FPGA回路340と、外部CPU341とから構成される。ASIC31は、外部ROM301にバス配線360を介して接続されたデコーダ回路233と、外部ROM302にバス配線361を介して接続されたデコーダ回路133と、デコーダ回路233に接続された暗号解読コードブロック40と、更にデコーダ回路233に接続されたコンフィグレーション回路134と、コンフィグレーション回路134に接続されたFPGA回路37と、更に、コンフィグレーション回路134に接続された暗号解読コードブロック400と、FPGA回路37に接続された内部回路35とから構成される。図32と同様に、暗号解読コードブロック400は、FPGA回路によって構成されている。FPGA回路37はFPGA回路340に接続されている。また、デコーダ回路133は、データバス配線365を介して、CPU341に接続されている。また、CPU341はアドレスバス配線366を介してROM302の接続されている。
【0220】
ASIC31においては、FPGA回路データの復号化に用いられる暗号解読コードが暗号解読コードブロック40内に埋め込まれている。CPU341のデータ復号化に用いられる暗号解読コードはFPGA回路で構成された暗号解読コードブロック400内に埋め込まれている。暗号解読コードブロック400を構成するFPGA回路はコンフィグレーション回路134によって定義されることから、ROM301のプログラミングによって、CPUの暗号ソフトウェアは変更可能となる。
【0221】
図32と図33とを比較すると明らかなように、第13の実施の形態の変形例に係る半導体集積回路及びデータ転送システムは、基本的には構成及び動作は、第13の実施の形態に係る半導体集積回路及びデータ転送システムと同様である。このようにすることにより、FPGA回路37を搭載した1個のASIC37で、ASIC31に搭載されたFPGA回路37に書き込まれるデータの機密性を向上するだけでなく、外部接続された汎用製品であるFPGA回路340及びCPU341のデータの機密性を向上することが可能となる。その利点に加えて、CPU341の暗号解読コードがROM301のデータを変更することにより、いつでも切替可能になる。
【0222】
なお、上記各実施の形態は、それぞれ組み合わせて実施することができる。組み合わせた場合、CPU、FPGAを搭載し、CPU、FPGAをともに暗号データを用いて、入力を行う半導体集積回路及びデータ転送システムを得ることができる。
【0223】
このように、本発明はここでは記載していない様々な実施例等を含むことは勿論である。したがって、本発明の技術的範囲は上記の説明から妥当な以下のクレイムによってのみ定められるものである。
【0224】
(その他の実施の形態)
上記のように、本発明は実施の形態によって記載したが、この開示の一部をなす論述及び図面はこの発明を限定するものであると理解すべきではない。この開示から当業者には様々な代替実施の形態、実施例及び運用技術が明らかとなろう。したがって、本発明の技術範囲は上記の説明から妥当な特許請求の範囲に係る発明特定事項によってのみ定められるものである。
【0225】
【発明の効果】
本発明によれば、設計データやソフトウェアが読み出せないセキュリティー性の高い半導体集積回路、データ転送システム、及びデータ転送方法を提供することができる。
【図面の簡単な説明】
【図1】本発明の第1の実施の形態にかかる半導体集積回路及びデータ転送システムの構成を表すブロック図。
【図2】本発明の第1の実施の形態にかかる半導体集積回路及びデータ転送システムの動作方法を表すフローチャート図。
【図3】本発明の第1の実施の形態にかかるRAM型FPGA回路の構成を表すブロック図。
【図4】本発明の第1の実施の形態にかかるRAM型FPGA回路のRAMの構成を表すブロック図。
【図5】本発明の第1の実施の形態にかかるRAM型FPGA回路のRAMを構成するシフトレジスタの基本単位となるDタイプ・フリップ・フロップの一例を表すブロック図。
【図6】本発明の第1の実施の形態にかかるRAM型FPGA回路のI/Oレジスタ回路の構成を表すブロック図。
【図7】本発明の第1の実施の形態におけるコンフィグレーション方法を説明するフローチャート図。
【図8】本発明の第1の実施の形態にかかるデコーダ回路及び暗号解読コード部の構成を表す論理回路図。
【図9】本発明の第1の実施の形態の変形例にかかるデコーダ回路及び暗号解読コード部の構成を表す論理回路図。
【図10】本発明の第2の実施の形態にかかる半導体集積回路及びデータ転送システムの構成を表すブロック図。
【図11】本発明の第2の実施の形態にかかる半導体集積回路及び半導体集積回路の動作方法を表すフローチャート図。
【図12】本発明の第3の実施の形態にかかるASIC及びASICシステムの構成を表すブロック図。
【図13】本発明の第4の実施の形態にかかるASIC及びASICシステムの構成を表すブロック図。
【図14】本発明の第5の実施の形態にかかるASIC及びASICシステムの構成を表すブロック図。
【図15】本発明の第6の実施の形態にかかるASIC及びASICシステムの構成を表すブロック図。
【図16】本発明の第6の実施の形態にかかるASIC及びASICシステムの動作方法を表すフローチャート図。
【図17】本発明の第7の実施の形態にかかるASIC及びASICシステムの構成を表すブロック図。
【図18】本発明の第7の実施の形態にかかるASIC及びASICシステムにおいて、CPUソフトウェアの暗号化コードの決定からCPUの稼動までの動作方法を表すフローチャート図。
【図19】本発明の第7の実施の形態にかかるASIC及びASICシステムにおいて、CPUソフトウェアの暗号化解読コードの変更からCPUの稼動までの動作方法を表すフローチャート図。
【図20】本発明の第8の実施の形態にかかるASIC及びASICシステムの構成を表すブロック図。
【図21】本発明の第8の実施の形態の変形例1にかかるASIC及びASICシステムの構成を表すブロック図。
【図22】本発明の第8の実施の形態の変形例2にかかるASIC及びASICシステムの構成を表すブロック図。
【図23】本発明の第8の実施の形態の変形例3にかかるASIC及びASICシステムの構成を表すブロック図。
【図24】本発明の第9の実施の形態にかかるASIC及びASICシステムの構成を表すブロック図。
【図25】本発明の第9の実施の形態の変形例にかかるASIC及びASICシステムの構成を表すブロック図。
【図26】本発明の第10の実施の形態にかかるASIC及びASICシステムの構成を表すブロック図。
【図27】本発明の第10の実施の形態の変形例にかかるASIC及びASICシステムの構成を表すブロック図。
【図28】本発明の第11の実施の形態にかかるASIC及びASICシステムの構成を表すブロック図。
【図29】本発明の第11の実施の形態の変形例にかかるASIC及びASICシステムの構成を表すブロック図。
【図30】本発明の第12の実施の形態にかかるASIC及びASICシステムの構成を表すブロック図。
【図31】本発明の第12の実施の形態の変形例にかかるASIC及びASICシステムの構成を表すブロック図。
【図32】本発明の第13の実施の形態にかかるASIC及びASICシステムの構成を表すブロック図。
【図33】本発明の第13の実施の形態の変形例にかかるASIC及びASICシステムの構成を表すブロック図。
【図34】本発明の比較例のFPGA混載半導体集積回路及びデータ転送システムの構成を表すブロック図。
【図35】本発明の別の比較例のCPU混載半導体集積回路及びデータ転送システムの構成を表すブロック図。
【符号の説明】
1,20,30,50,60,301,302…ROM
2,21,51,61…半導体集積回路
3,22,133,233…デコーダ回路
4,23,40,400…暗号解読コードブロック
5,52,134…コンフィグレーション回路
6,37,53,340,350…FPGA回路
7,27,35,54,65…内部回路
8,28,32,55,66…実装基板
10,10i,j,10i,j;1, 10i;1,j,10i;1,j;1…コンフィギャブル・ロジック・ブロック
11,11i,j, 11i,j;1, 11i,j;2, 11i;1,j, 11i;1,j;1, 11i;1,j;2, 11i;2,j, 11i;2,j;1, 11i;2,j;2…スイッチング・マトリックス
12…主配線
13…接続配線
14…接続点
18…バイナリーカウンタ
19…データセレクタ
24,38,62,341…CPU
25,63,362,366…アドレスバス配線
26,36,56,64,360,361,363,365…データバス配線
31,310,320…ASIC
33…暗号解読処理回路
34…暗号化対象処理回路
501…アウトプット・レジスタ
502…アウトプット・イネーブル・レジスタ
503…インプット・レジスタ
504…I/Oバッファ
505…I/Oターミナル
EO,EO0,EO1,EO2,EO3,EO4,EO5,EO6,EO7…排他的論理和回路
ST1〜ST12,ST101〜ST112,SU1〜SU11,SV1〜SV10,SW1〜SW36…ステップ
SI…シフトレジスタ入力信号
SR1,SR2,…,SR6…シフトレジスタ
D…DタイプフリップフロップのD入力
CK…Dタイプフリップフロップのクロック入力
Q…DタイプフリップフロップのQ出力
QN…Dタイプフリップフロップの反転出力
Q1,Q2,…,Q6…シフトレジスタの各ステージの出力
EN…Dタイプフリップフロップのイネーブル入力
Claims (34)
- 暗号解読コードを記憶する暗号解読コードブロックと、
前記暗号解読コードブロックに接続され、外部ROMからの暗号データを前記暗号解読コードに基いて解読するデコーダ回路と、
前記デコーダ回路の出力が入力されるコンフィグレーション回路と、
前記コンフィグレーション回路に接続され、前記コンフィグレーション回路に基いて回路構成が決定されるFPGA回路と、
前記FPGA回路に接続され、回路動作が規定される内部回路
とを備えることを特徴とする半導体集積回路。 - 暗号解読コードを記憶する暗号解読コードブロックと、
前記暗号解読コードブロックに接続され、外部ROMからの暗号ソフトウェアデータを前記暗号解読コードに基いて解読するデコーダ回路と、
前記デコーダ回路の出力が入力されるCPUと、
前記CPUに接続され、前記CPUによって、回路動作が規定される内部回路
とを備えることを特徴とする半導体集積回路。 - 前記FPGA回路は、内部にRAM及びRAMデータに応じて接続がなされる配線及びRAMデータに応じて論理が決まるコンフィギャブル・ロジック・ブロックを有し、前記コンフィグレーション回路の出力を受けて、論理回路構築が行われることを特徴とする請求項1記載の半導体集積回路。
- 前記デコーダ回路は、暗号化されたソフトウェアデータが外部から入力され、かつ、予め設定された暗号解読コードに基いて、前記暗号化されたソフトウェアデータを解読すると共に、前記CPUは前記デコーダ回路において復号化されたソフトウェアデータが入力されて動作を開始することを特徴とする請求項2記載の半導体集積回路。
- 暗号化されたFPGA設計情報を記録する第1の外部ROMを集積化した第1の半導体チップと、
暗号解読コードを記憶する第1の暗号解読コードブロックと、前記第1の暗号解読コードブロックに接続され、前記第1の外部ROMからの暗号データを前記暗号解読コードに基いて解読する第1のデコーダ回路と、前記第1のデコーダ回路の出力が入力されるコンフィグレーション回路と、前記コンフィグレーション回路に接続され、前記コンフィグレーション回路に基いて回路構成が決定されるFPGA回路と、前記FPGA回路に接続され、回路動作が規定される内部回路とを集積化した第2の半導体チップ
とを備えることを特徴とするデータ転送システム。 - 前記第1の外部ROMと前記第1のデコーダ回路との間に接続され、暗号化されたFPGA設計情報が伝達されるビット数に応じた本数のデータ配線を更に備えることを特徴とする請求項5記載のデータ転送システム。
- 暗号化されたCPUソフトウェア設計情報を記録する第1の外部ROMを集積化した第1の半導体チップと、
暗号解読コードを記憶する暗号解読コードブロックと、前記暗号解読コードブロックに接続され、前記第1の外部ROMからの暗号ソフトウェアデータを前記暗号解読コードに基いて解読するデコーダ回路と、前記デコーダ回路の出力が入力されるCPUと、前記CPUに接続され、前記CPUによって、回路動作が規定される内部回路とを集積化した第2の半導体チップ
とを備えることを特徴とするデータ転送システム。 - 前記第1及び第2の半導体チップを搭載する実装基板を更に備えることを特徴とする請求項5又は7に記載のデータ転送システム。
- 前記第2の半導体チップとは異なる半導体チップに集積化され、暗号化されたCPUソフトウェア設計情報を記録する第2の外部ROMと、
前記第2の半導体チップ上に集積化され、前記デコーダ回路に接続され、前記暗号解読コードに基いて前記デコーダ回路において解読された前記CPUソフトウェア設計情報に基いて動作するCPU
とを更に備えることを特徴とする請求項5記載のデータ転送システム。 - 前記第1の外部ROMと前記デコーダ回路との間に接続され、前記暗号化されたソフトウェアデータが伝達されるビット数に応じた本数のデータ配線を更に備えることを特徴とする請求項7記載のデータ転送システム。
- 前記第2の外部ROMは、前記第1の外部ROMが集積化された前記第1の半導体チップと同一の半導体チップに集積化されたことを特徴とする請求項9記載のデータ転送システム。
- 前記第2の半導体チップとは異なる半導体チップに集積化され、暗号化されたCPUソフトウェア設計情報を記録する第2の外部ROMと、
前記第2の半導体チップ上に集積化され、前記CPUソフトウェア設計情報を記録する第2の外部ROMに接続される第2のデコーダ回路と、
前記コンフィグレーション回路に接続され、FPGA回路から構成される第2の暗号解読コードブロックと、
前記第2のデコーダ回路に接続され、前記暗号解読コードに基いて前記第2のデコーダ回路において解読された前記CPUソフトウェア設計情報に基いて動作するCPU
とを更に備えることを特徴とする請求項5記載のデータ転送システム。 - 前記第2の半導体チップはASICであることを特徴とする請求項5記載のデータ転送システム。
- 第3の半導体チップに集積化され、前記FPGA回路に接続されるASICを更に備えることを特徴とする請求項5記載のデータ転送システム。
- 第3の半導体チップに集積化され、前記FPGA回路の外部に縦続接続される複数段のASICを更に備えることを特徴とする請求項5記載のデータ転送システム。
- 第3の半導体チップに集積化され、前記FPGA回路に外部接続されるFPGA回路を更に備えることを特徴とする請求項5記載のデータ転送システム。
- 第3の半導体チップに集積化され、前記FPGA回路の外部に縦続接続される複数段のFPGA回路を更に備えることを特徴とする請求項5記載のデータ転送システム。
- 前記第2の半導体チップとは異なる半導体チップに集積化され、暗号化されたFPGA設計情報を記録する第2の外部ROMと、
前記デコーダ回路に接続され、第3の半導体チップに集積化されたASIC
とを更に備えることを特徴とする請求項7記載のデータ転送システム。 - 前記第2の半導体チップとは異なる半導体チップに集積化され、暗号化されたFPGA設計情報を記録する第2の外部ROMと、
前記デコーダ回路に接続され、第3の半導体チップに集積化されたFPGA回路
とを更に備えることを特徴とする請求項7記載のデータ転送システム。 - 前記第2の半導体チップとは異なる半導体チップに集積化され、暗号化されたCPUソフトウェア設計情報を記録する第2の外部ROMと、
第3の半導体チップに集積化され、前記デコーダ回路に接続され、前記暗号解読コードに基いて前記デコーダ回路において解読された前記CPUソフトウェア設計情報に基いて動作するCPUを内蔵するASIC
とを更に備えることを特徴とする請求項5記載のデータ転送システム。 - 前記第2の半導体チップとは異なる半導体チップに集積化され、暗号化されたCPUソフトウェア設計情報を記録する第2の外部ROMと、
第3の半導体チップに集積化され、前記デコーダ回路に接続され、前記暗号解読コードに基いて前記デコーダ回路において解読された前記CPUソフトウェア設計情報に基いて動作するCPU
とを更に備えることを特徴とする請求項5記載のデータ転送システム。 - 前記第2の半導体チップとは異なる半導体チップに集積化され、暗号化されたFPGA設計情報を記録する第2の外部ROMと、
前記第2の半導体チップ上に集積化され、前記暗号化されたFPGA設計情報を記録する前記第2の外部ROMに接続される第2のデコーダ回路と、
前記FPGA回路に接続され、前記第2の半導体チップとは異なる第3の半導体チップ上に集積化される第1のASICと、
前記第2のデコーダ回路に接続され、前記第2の半導体チップとは異なる第4の半導体チップ上に集積化される第2のASIC
とを更に備えることを特徴とする請求項5記載のデータ転送システム。 - 前記第2の半導体チップとは異なる半導体チップに集積化され、暗号化されたFPGA設計情報を記録する第2の外部ROMと、
前記第2の半導体チップ上に集積化され、前記暗号化されたFPGA設計情報を記録する前記第2の外部ROMに接続される第2のデコーダ回路と、
前記FPGA回路に外部接続され、前記第2の半導体チップとは異なる第3の半導体チップ上に集積化されるFPGA回路と、
前記第2のデコーダ回路に接続され、前記第2の半導体チップとは異なる第4の半導体チップ上に集積化されるFPGA回路
とを更に備えることを特徴とする請求項5記載のデータ転送システム。 - 前記第2の半導体チップとは異なる半導体チップに集積化され、暗号化されたCPUソフトウェア設計情報を記録する第2の外部ROMと、
前記第2の半導体チップ上に集積化され、前記CPUソフトウェア設計情報を記録する外部ROMに接続される第2のデコーダ回路と、
前記FPGA回路に外部接続され、前記第2の半導体チップとは異なる第3の半導体チップ上に集積化される第1のASICと、
前記第2のデコーダ回路に接続され、前記第2の半導体チップとは異なる第4の半導体チップ上に集積化される第2のASIC
とを更に備えることを特徴とする請求項5記載のデータ転送システム。 - 前記第2の半導体チップとは異なる半導体チップに集積化され、暗号化されたCPUソフトウェア設計情報を記録する第2の外部ROMと、
前記第2の半導体チップ上に集積化され、前記CPUソフトウェア設計情報を記録する前記第2の外部ROMに接続される第2のデコーダ回路と、
前記FPGA回路に外部接続され、前記第2の半導体チップとは異なる第3の半導体チップ上に集積化されるFPGA回路と、
前記第2のデコーダ回路に接続され、前記第2の半導体チップとは異なる第4の半導体チップ上に集積化されるCPU
とを更に備えることを特徴とする請求項5記載のデータ転送システム。 - 前記第2の半導体チップとは異なる半導体チップに集積化され、暗号化されたCPUソフトウェア設計情報を記録する第2の外部ROMと、
前記第2の半導体チップ上に集積化され、前記CPUソフトウェア設計情報を記録する前記第2の外部ROMに接続される第2のデコーダ回路と、
前記第2の半導体チップ上に集積化され、前記コンフィグレーション回路に接続され、FPGA回路から構成される第2の暗号解読コードブロックと、
前記FPGA回路に外部接続され、前記第2の半導体チップとは異なる第3の半導体チップ上に集積化される第1のASICと、
前記第2のデコーダ回路に接続され、前記第2の半導体チップとは異なる第4の半導体チップ上に集積化される第2のASIC
とを更に備えることを特徴とする請求項5記載のデータ転送システム。 - 前記第2の半導体チップとは異なる半導体チップに集積化され、暗号化されたCPUソフトウェア設計情報を記録する第2の外部ROMと、
前記第2の半導体チップ上に集積化され、前記CPUソフトウェア設計情報を記録する前記第2の外部ROMに接続される第2のデコーダ回路と、
前記第2の半導体チップ上に集積化され、前記コンフィグレーション回路に接続され、FPGA回路から構成される第2の暗号解読コードブロックと、
前記FPGA回路に接続され、前記第2の半導体チップとは異なる第3の半導体チップ上に集積化されるFPGA回路と、
前記第2のデコーダ回路に接続され、前記第2の半導体チップとは異なる第4の半導体チップ上に集積化されるCPU
とを更に備えることを特徴とする請求項5記載のデータ転送システム。 - 半導体集積回路内の暗号解読コードブロックに暗号解読コードを記録する手順と、
第1の外部ROMに暗号化されたROMデータを書き込む手順と、
前記半導体集積回路内のデコーダ回路が、前記第1の外部ROMからの暗号化された前記ROMデータを取り込み復号化する手順と、
暗号化された前記ROMデータをすべて取り込んだかどうかを前記デコーダ回路が判断する手順と、
未終了であるならば、前記第1の外部ROMから暗号化された前記ROMデータを取り込み復号化する手順に戻る手順と、
終了であるならば、FPGA回路をユーザーモードに移行し、前記半導体集積回路の稼動を開始する手順
とを備えることを特徴とするデータ転送方法。 - 前記半導体集積回路に前記外部ROMから暗号化された設計情報を転送する手順と、
解読された前記設計情報に基づいて、前記FPGA回路の回路構築を行う手順とを更に備えることを特徴とする請求項28記載のデータ転送方法。 - 半導体集積回路内の暗号解読コードブロックに暗号解読コードを記録する手順と、
第1の外部ROMに暗号化されたROMデータを書き込む手順と、
前記半導体集積回路内のCPUが、前記第1の外部ROMに対してROMアドレスを要求し、前記ROMアドレスを決定する手順と、
前記半導体集積回路内のデコーダ回路が、暗号化された前記ROMデータを復号化する手順と、
復号化された前記ROMデータに基づき、前記CPUを実行させる手順
とを備えることを特徴とするデータ転送方法。 - 前記半導体集積回路に前記外部ROMから暗号化された前記CPUソフトウェアデータを転送する手順と、
解読された前記ソフトウェアデータに基づいて、前記CPUを動作させる手順とを更に備えることを特徴とする請求項30記載のデータ転送方法。 - 半導体集積回路内の暗号解読コードブロックに暗号解読コードを記録する手順と、
第2の外部ROMに暗号化されたROMデータを書き込む手順と、
CPUが、前記第2の外部ROMに対して、ROMアドレスを要求し、前記ROMアドレスを決定する手順と、
前記デコーダ回路が、前記第2の外部ROMからの暗号化された前記ROMデータを復号化する手順と、
復号化された前記ROMデータに基づき、前記CPUを実行させる手順
とを更に備えることを特徴とする請求項28記載のデータ転送方法。 - 前記半導体集積回路内のデコーダ回路が、前記第1の外部ROMからの暗号化された前記ROMデータを取り込み復号化する手順と、
復号化されたデータをコンフィグレーション回路から第2の暗号解読コードブロック内のFPGA回路に転送し、記録する手順と、
第2の外部ROMに暗号化されたROMデータを書き込む手順と、
CPUが、前記第2の外部ROMに対して、ROMアドレスを要求し、前記ROMアドレスを決定する手順と、
第2のデコーダ回路が、暗号化された前記ROMデータを復号化する手順と、
復号化された前記ROMデータに基づき、前記CPUを実行させる手順
とを更に備えることを特徴とする請求項28記載のデータ転送方法。 - 前記第1の外部ROM及び前記第2の外部ROMの変更され、暗号化されたCPUソフトウェアデータをインターネット上にWEB登録する手順と、
前記インターネット上にWEB登録された前記第1の外部ROM及び前記第2の外部ROMの前記暗号化されたCPUソフトウェアデータをそれぞれ、前記第1の外部ROM及び前記第2の外部ROMにダウンロードする手順
とを更に備えることを特徴とする請求項28又は請求項30に記載のデータ転送方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003068392A JP2004007472A (ja) | 2002-03-22 | 2003-03-13 | 半導体集積回路、データ転送システム、及びデータ転送方法 |
US10/391,562 US7127616B2 (en) | 2002-03-22 | 2003-03-20 | Semiconductor integrated circuits, data transfer systems, and the method for data transfer |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002080073 | 2002-03-22 | ||
JP2003068392A JP2004007472A (ja) | 2002-03-22 | 2003-03-13 | 半導体集積回路、データ転送システム、及びデータ転送方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004007472A true JP2004007472A (ja) | 2004-01-08 |
Family
ID=29714256
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003068392A Abandoned JP2004007472A (ja) | 2002-03-22 | 2003-03-13 | 半導体集積回路、データ転送システム、及びデータ転送方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US7127616B2 (ja) |
JP (1) | JP2004007472A (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005235848A (ja) * | 2004-02-17 | 2005-09-02 | Ricoh Co Ltd | Lsi設計・製造システムのセキュリティ方式 |
JP2006042209A (ja) * | 2004-07-29 | 2006-02-09 | Fujitsu Ltd | セキュリティ支援方法および電子機器 |
WO2006115213A1 (ja) * | 2005-04-21 | 2006-11-02 | Matsushita Electric Industrial Co., Ltd. | 回路更新システム |
US7613931B2 (en) | 2004-07-23 | 2009-11-03 | Nec Electronics Corporation | Copy protection method and system for programmable gate array |
JP2012505442A (ja) * | 2008-08-12 | 2012-03-01 | インスティテュート テレコム−テレコム パリ テック | プログラマブル論理回路の設定ファイルの解読を保護する方法およびそれを実施する論理回路 |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4125475B2 (ja) * | 2000-12-12 | 2008-07-30 | 株式会社東芝 | Rtl生成システム、rtl生成方法、rtl生成プログラム及び半導体装置の製造方法 |
US7444565B1 (en) * | 2003-11-24 | 2008-10-28 | Itt Manufacturing Enterprises, Inc. | Re-programmable COMSEC module |
DE102004014435A1 (de) * | 2004-03-24 | 2005-11-17 | Siemens Ag | Anordnung mit einem integrierten Schaltkreis |
JP3933647B2 (ja) * | 2004-05-10 | 2007-06-20 | シャープ株式会社 | 消費電力解析防止機能つき半導体装置 |
US7512813B2 (en) * | 2004-05-28 | 2009-03-31 | International Business Machines Corporation | Method for system level protection of field programmable logic devices |
US20060117122A1 (en) * | 2004-11-04 | 2006-06-01 | Intel Corporation | Method and apparatus for conditionally obfuscating bus communications |
GB2424557A (en) * | 2005-03-24 | 2006-09-27 | Sony Uk Ltd | FPGA with hardware decryptor for configuration programme which adds second key to itself before re-encrypting and overwriting itself in memory when run |
JP2007142591A (ja) * | 2005-11-15 | 2007-06-07 | Matsushita Electric Ind Co Ltd | 暗号管理方法 |
JP2008005138A (ja) * | 2006-06-21 | 2008-01-10 | Nec Electronics Corp | 半導体装置及び信号処理システム |
DE102006045372A1 (de) * | 2006-09-26 | 2008-04-03 | Rohde & Schwarz Sit Gmbh | Verfahren und Vorrichtung zum Erzeugen und Zuführen von Konfigurationsdaten für bzw. in eine programmierbare, integrierte Logikschaltung |
EP1930834A1 (de) * | 2006-12-05 | 2008-06-11 | Siemens Schweiz AG | Kryptographisch gesichertes Prozessorsystem |
JP2008177491A (ja) * | 2007-01-22 | 2008-07-31 | Renesas Technology Corp | 半導体装置 |
US7761690B2 (en) * | 2007-07-26 | 2010-07-20 | International Business Machines Corporation | Method, apparatus and computer program product for dynamically selecting compiled instructions |
US7865862B2 (en) * | 2007-11-08 | 2011-01-04 | International Business Machines Corporation | Design structure for dynamically selecting compiled instructions |
CN103778087B (zh) * | 2012-10-25 | 2016-10-19 | 加弘科技咨询(上海)有限公司 | 同系列多平台fpga应用合并系统 |
US9514841B1 (en) * | 2015-11-23 | 2016-12-06 | International Business Machines Corporation | Implementing eFuse visual security of stored data using EDRAM |
US10008279B1 (en) * | 2017-02-17 | 2018-06-26 | United Microelectronics Corp. | Read only memory and data read method thereof |
US11429751B2 (en) | 2019-07-01 | 2022-08-30 | Rajant Corporation | Method and apparatus for encrypting and decrypting data on an integrated circuit |
CN116541896B (zh) * | 2023-07-06 | 2023-09-12 | 北京领创医谷科技发展有限责任公司 | 一种植入设备识别电路、植入设备及读取设备 |
Family Cites Families (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4786613A (en) * | 1987-02-24 | 1988-11-22 | International Business Machines Corporation | Method of combining gate array and standard cell circuits on a common semiconductor chip |
JPH02155034A (ja) | 1988-12-08 | 1990-06-14 | Toshiba Corp | セキュリティ機能付き計算機 |
GB9121591D0 (en) * | 1991-10-11 | 1991-11-27 | Pilkington Micro Electronics | Data security arrangement for semiconductor programmable logic devices |
US5369772A (en) * | 1992-05-21 | 1994-11-29 | Compaq Computer Corporation | Method of maximizing data pin usage utilizing post-buffer feedback |
US5768372A (en) * | 1996-03-13 | 1998-06-16 | Altera Corporation | Method and apparatus for securing programming data of a programmable logic device |
JP3783800B2 (ja) | 1996-08-09 | 2006-06-07 | 富士通株式会社 | プログラマブルな論理素子/装置を用いた暗号化/復号化装置および方法 |
US5970142A (en) * | 1996-08-26 | 1999-10-19 | Xilinx, Inc. | Configuration stream encryption |
US6118869A (en) * | 1998-03-11 | 2000-09-12 | Xilinx, Inc. | System and method for PLD bitstream encryption |
US6141756A (en) * | 1998-04-27 | 2000-10-31 | Motorola, Inc. | Apparatus and method of reading a program into a processor |
JP2000076144A (ja) | 1998-09-02 | 2000-03-14 | Nippon Telegr & Teleph Corp <Ntt> | 論理回路、マイクロコンピュータ、および論理回路・記憶回路間の通信方法 |
US6356637B1 (en) * | 1998-09-18 | 2002-03-12 | Sun Microsystems, Inc. | Field programmable gate arrays |
US6654889B1 (en) * | 1999-02-19 | 2003-11-25 | Xilinx, Inc. | Method and apparatus for protecting proprietary configuration data for programmable logic devices |
US6425126B1 (en) * | 1999-05-19 | 2002-07-23 | International Business Machines Corporation | Apparatus and method for synchronizing software between computers |
US6351814B1 (en) | 1999-07-21 | 2002-02-26 | Credence Systems Corporation | Field programmable gate array with program encryption |
GB2375418B (en) | 1999-12-22 | 2004-06-23 | Algotronix Ltd | Method and apparatus for secure configuration of a field programmable gate array |
GB9930145D0 (en) * | 1999-12-22 | 2000-02-09 | Kean Thomas A | Method and apparatus for secure configuration of a field programmable gate array |
JP2001308843A (ja) * | 2000-04-19 | 2001-11-02 | Nec Commun Syst Ltd | 暗号復号化装置 |
US6278289B1 (en) * | 2000-05-01 | 2001-08-21 | Xilinx, Inc. | Content-addressable memory implemented using programmable logic |
JP2001325153A (ja) | 2000-05-15 | 2001-11-22 | Toyo Commun Equip Co Ltd | フィールドプログラマブルゲートアレイの回路情報保護方法 |
JP2002050956A (ja) | 2000-07-13 | 2002-02-15 | Sun Microsyst Inc | フィールド・プログラマブル・ゲート・アレイ |
US6366117B1 (en) * | 2000-11-28 | 2002-04-02 | Xilinx, Inc. | Nonvolatile/battery-backed key in 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 |
JP2002334019A (ja) | 2001-05-09 | 2002-11-22 | Matsushita Electric Ind Co Ltd | プログラマブル論理素子及びプログラマブル論理素子用データ書換システム |
GB0114317D0 (en) * | 2001-06-13 | 2001-08-01 | Kean Thomas A | Method of protecting intellectual property cores on field programmable gate array |
US7558967B2 (en) | 2001-09-13 | 2009-07-07 | Actel Corporation | Encryption for a stream file in an FPGA integrated circuit |
-
2003
- 2003-03-13 JP JP2003068392A patent/JP2004007472A/ja not_active Abandoned
- 2003-03-20 US US10/391,562 patent/US7127616B2/en not_active Expired - Fee Related
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005235848A (ja) * | 2004-02-17 | 2005-09-02 | Ricoh Co Ltd | Lsi設計・製造システムのセキュリティ方式 |
US7613931B2 (en) | 2004-07-23 | 2009-11-03 | Nec Electronics Corporation | Copy protection method and system for programmable gate array |
JP2006042209A (ja) * | 2004-07-29 | 2006-02-09 | Fujitsu Ltd | セキュリティ支援方法および電子機器 |
JP4617110B2 (ja) * | 2004-07-29 | 2011-01-19 | 富士通セミコンダクター株式会社 | セキュリティ支援方法および電子機器 |
WO2006115213A1 (ja) * | 2005-04-21 | 2006-11-02 | Matsushita Electric Industrial Co., Ltd. | 回路更新システム |
US8189773B2 (en) | 2005-04-21 | 2012-05-29 | Panasonic Corporation | Circuit updating system |
JP2012505442A (ja) * | 2008-08-12 | 2012-03-01 | インスティテュート テレコム−テレコム パリ テック | プログラマブル論理回路の設定ファイルの解読を保護する方法およびそれを実施する論理回路 |
Also Published As
Publication number | Publication date |
---|---|
US20030229799A1 (en) | 2003-12-11 |
US7127616B2 (en) | 2006-10-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2004007472A (ja) | 半導体集積回路、データ転送システム、及びデータ転送方法 | |
JP7398438B2 (ja) | プログラマブルロジックデバイスのためのキープロビジョニングシステム及び方法 | |
US7689726B1 (en) | Bootable integrated circuit device for readback encoding of configuration data | |
US7197647B1 (en) | Method of securing programmable logic configuration data | |
US6381732B1 (en) | FPGA customizable to accept selected macros | |
US6931543B1 (en) | Programmable logic device with decryption algorithm and decryption key | |
US7535254B1 (en) | Reconfiguration of a hard macro via configuration registers | |
US6441641B1 (en) | Programmable logic device with partial battery backup | |
EP2702526B1 (en) | Method and apparatus for securing programming data of a programmable device | |
US8797061B2 (en) | Partial reconfiguration circuitry | |
JP3904493B2 (ja) | 半導体装置 | |
EP1358530A2 (en) | Programmable logic device with method of prreventing readback | |
JPH11511941A (ja) | 動作プログラム可能論理装置における部分的プログラミング回路 | |
US20110068823A1 (en) | Processor programmable pld device | |
US20060139053A1 (en) | Non-volatile memory configuration scheme for volatile-memory-based programmable circuits in an FPGA | |
US11301153B2 (en) | High-throughput out-of-order cipher text stealing | |
US8547136B1 (en) | Logic block protection system | |
CN207264382U (zh) | 现场可编程门阵列多版本配置的芯片及系统 | |
JP5003097B2 (ja) | 半導体チップ | |
JP2006303730A (ja) | 半導体集積回路装置および半導体集積回路装置の設計装置 | |
US8116334B1 (en) | Dataflow FIFO communication buffer using highly-multiported memories | |
EP3791304A1 (en) | Failure characterization systems and methods for programmable logic devices | |
JP3944639B2 (ja) | プログラマブル論理装置 | |
US20080152129A1 (en) | Data-securing method of program tool | |
JP2008005020A (ja) | プログラマブル論理回路 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060207 |
|
A762 | Written abandonment of application |
Free format text: JAPANESE INTERMEDIATE CODE: A762 Effective date: 20060405 |