JP2004153700A - フィールド・プログラマブル・ゲート・アレイおよびその使用方法 - Google Patents
フィールド・プログラマブル・ゲート・アレイおよびその使用方法 Download PDFInfo
- Publication number
- JP2004153700A JP2004153700A JP2002318638A JP2002318638A JP2004153700A JP 2004153700 A JP2004153700 A JP 2004153700A JP 2002318638 A JP2002318638 A JP 2002318638A JP 2002318638 A JP2002318638 A JP 2002318638A JP 2004153700 A JP2004153700 A JP 2004153700A
- Authority
- JP
- Japan
- Prior art keywords
- feram
- programmable gate
- data
- cells
- gate array
- 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.)
- Withdrawn
Links
Images
Landscapes
- Logic Circuits (AREA)
Abstract
【課題】FPGAに複数のプログラムを格納すべきFeRAMを内蔵する際に、FeRAMの省スペース化を図るようにしたFPGAの提供。
【解決手段】FeRAMは、複数のメモリセルM00〜Mnnからなる。メモリセルM00は、SRAM4と、FeRAM5−0〜5−nとからなる。SRAM4は、インバータ6、7と、MOSトランジスタ8、9とからなる。FeRAM5−0nは、2つの強誘電体キャパシタC01、C02と、MOSトランジスタQ01、02からなる。メモリセルM00、M10・・・・Mn0の出力線OUTH、OUTLの電位を同時に接地電位にするために、ビット線BL0はMOSトランジスタQ0を介して接地され、ビット線XBL0はMOSトランジスタQ0’を介して接地されている。
【選択図】 図2
【解決手段】FeRAMは、複数のメモリセルM00〜Mnnからなる。メモリセルM00は、SRAM4と、FeRAM5−0〜5−nとからなる。SRAM4は、インバータ6、7と、MOSトランジスタ8、9とからなる。FeRAM5−0nは、2つの強誘電体キャパシタC01、C02と、MOSトランジスタQ01、02からなる。メモリセルM00、M10・・・・Mn0の出力線OUTH、OUTLの電位を同時に接地電位にするために、ビット線BL0はMOSトランジスタQ0を介して接地され、ビット線XBL0はMOSトランジスタQ0’を介して接地されている。
【選択図】 図2
Description
【0001】
【発明の属する技術分野】
本発明は、論理ゲートまたはマルチプレクサ等からなる論理ブロックを基板上に多数搭載し、これらの論理ブロックの間の配線を、上記の基板上に搭載させたFeRAM(強誘電体メモリ)を使用してプログラムできるフィールド・プログラマブル・ゲート・アレイ(以下、FPGAという)、およびその使用方法に関する。
【0002】
【従来の技術】
この種の従来のFPGAとしては、論理回路を決定するプログラムを、外付けのROM(Read Only Memory)に書き込んでおき、FPGAの使用時(電源投入時)にその外付けのROMから読み出して使用するものが知られている。
しかし、このようなFPGAでは、FPGAの他の外付けのROMが必要となる上に、プログラムの変更が必要な場合にはそのROMを交換する必要がある。また、ROMからのプログラムの読み出しには、一般に時間がかかるという不具合がある。さらに、複数のプログラムを持つようにするには、複数のROMが必要になるという不都合がある。
【0003】
また、従来の他のFPGAとしては、論理回路を決定するプログラムを格納するEEPROM(電気的に消去できるリード・オンリ・メモリ)を内蔵するものが知られている。
しかし、このようなFPGAでは、内蔵するEEPROMの内容を書き換えできるが、EEPROMのデータの消去・書き込み時に高い電圧が必要となる。このため、今日のように電源電圧が低電圧の環境下では、別途、電源が必要になるという不具合がある。また、複数のプログラムを持つようにするには、そのプログラムの個数に応じて複数のEEPROMを内蔵する必要があるので、EEPROMの占有面積が大きくなり、論理回路を構築するための面積が小さくなるので、現実的ではない。
【0004】
そこで、このような不都合を解決するFPGAとして、論理回路を決定するプログラムを格納するメモリとしてFeRAM(FeRAM)を内蔵し、FPGAの回路構成を動的に変化させるようにしたものが知られている(例えば、非特許文献1参照)。
【0005】
【非特許文献1】
日経マイクロデバイス 2002年7月号(P126〜P127の記載内容およびP127の図3参照)
【0006】
【発明が解決しようとする課題】
ところが、非特許文献1に記載されるFPGAでは、複数のプログラムを格納すべきFeRAMをFPGAに内蔵する必要がある。しかし、その従来のFPGAでは、FPGAに複数のプログラムを格納すべきFeRAMを内蔵する際に、FeRAMの省スペース化を図ることがきないという不都合が考えられる。
【0007】
そこで、本発明の第1の目的は、FPGAに複数のプログラムを格納すべきFeRAMを内蔵する際に、FeRAMの省スペース化を図るようにしたフィールド・プログラマブル・ゲート・アレイを提供することにある。
また、本発明の第2の目的は、フィールド・プログラマブル・ゲート・アレイにおいて、1つのプログラムにより1つの論理回路を構成して使用し、または複数種類のプログラムにより複数の論理回路を構成してその論理回路を選択的に使用する場合に、信頼性の向上または長寿命化を図ることができる、フィールド・プログラマブル・ゲート・アレイの使用方法を提供することにある。
【0008】
さらに、本発明の第3の目的は、フィールド・プログラマブル・ゲート・アレイをソフトウエアキーとして使用できるようにし、ユーザの認証の識別性を高めることを可能にしたフィールド・プログラマブル・ゲート・アレイの使用方法を提供することにある。
【0009】
【課題を解決するための手段】
上記の課題を解決し本発明の第1目的を達成するために、請求項1〜請求項6に記載の各発明は、以下のように構成した。
すなわち、請求項1に記載の発明は、論理ゲートまたはマルチプレクサ等からなる論理ブロックを基板上に多数搭載し、これらの論理ブロックの間の配線を、前記基板上に搭載させたFeRAMを使用してプログラムできるフィールド・プログラマブル・ゲート・アレイであって、前記FeRAMは、複数のメモリセルと、前記メモリセルを選択するワード線と、前記メモリセルへのデータの読み出しまたは書き込みを行う一対の第1および第2のビット線とを含み、前記各メモリセルは、SRAMセルと複数のFeRAMセルとを含み、前記SRAMセルは、データを記憶するフリップフロップと、前記フリップフロップに対してデータの読み出し書き込みを行う第1および第2のトランジスタとからなり、前記各FeRAMセルは、データを記憶する2つの強誘電体キャパシタと、前記強誘電体キャパシタに対してデータの読み出し書き込みを行う第3および第4のトランジスタとからなり、前記第1および第2のトランジスタを、前記ワード線に共通に接続させるとともに前記第1および第2のビット線にそれぞれ接続させ、前記フリップフロップの入出力端子を一対の第1および第2の出力線にそれぞれ接続させ、かつ、前記第3および第4のトランジスタを、前記第1および第2の出力線にそれぞれ接続させ、さらに、前記複数のメモリセルが有する前記第1および第2の出力線に共通に設け、前記両出力線の電位を同一にする出力線同電位手段を備えるようにしたことを特徴とするものである。
【0010】
請求項2に記載の発明は、請求項1に記載のフィールド・プログラマブル・ゲート・アレイにおいて、前記出力線同電位手段は、前記第1のビット線とアースとの間に設けた第1のスイッチ素子と、前記第2のビット線とアースとの間に設けた第2のスイッチ素子とからなり、前記両スイッチ素子のオンオフ制御を同一の制御信号で行うようにしたことを特徴とするものである。
【0011】
請求項3に記載の発明は、請求項1または請求項2に記載のフィールド・プログラマブル・ゲート・アレイにおいて、前記複数のメモリセルが有する前記各フリップフロップの電源の制御を同時に行う電源制御回路を備えたことを特徴とするものである。
請求項4に記載の発明は、論理ゲートまたはマルチプレクサ等からなる論理ブロックを基板上に多数搭載し、これらの論理ブロックの間の配線を、前記基板上に搭載させたFeRAMを使用してプログラムできるフィールド・プログラマブル・ゲート・アレイであって、前記FeRAMは、複数のメモリセルと、前記メモリセルを選択するワード線と、前記メモリセルへのデータの読み出しまたは書き込みを行うビット線とを含み、前記各メモリセルは、SRAMセルと複数のFeRAMセルとを含み、前記SRAMセルは、データを記憶するフリップフロップと、前記フリップフロップに対してデータの読み出し書き込みを行う第1のトランジスタとからなり、前記各FeRAMセルは、データを記憶する2つの強誘電体キャパシタと、前記強誘電体キャパシタに対してデータの読み出し書き込みを行う第2および第3のトランジスタとからなり、前記第1のトランジスタを、前記ワード線に接続させるとともに前記ビット線に接続させ、前記フリップフロップの入出力端子を一対の第1および第2の出力線にそれぞれ接続させ、かつ、前記第2および第3のトランジスタを、前記第1および第2の出力線にそれぞれ接続させ、さらに、前記複数のメモリセルが有する前記第1の出力線に共通に設けるとともに、前記複数のメモリセルが有する前記第2の出力線に個別に設け、前記両出力線の電位を同一にする出力線同電位手段を備えるようにしたことを特徴とするものである。
【0012】
請求項5に記載の発明は、請求項4に記載のフィールド・プログラマブル・ゲート・アレイにおいて、前記出力線同電位手段は、前記ビット線とアースとの間に設けた第1のスイッチ素子と、前記第2の出力線とアースとの間に設けた第2のスイッチ素子とからなり、前記両スイッチ素子のオンオフ制御を同一の制御信号で行うようにしたことを特徴とするものである。
【0013】
請求項6に記載の発明は、請求項4または請求項5に記載のフィールド・プログラマブル・ゲート・アレイにおいて、前記複数のメモリセルが有する前記各フリップフロップの電源の制御を同時に行う電源制御回路を備えたことを特徴とするものである。
このような構成からなる請求項1〜請求項6に記載の各発明では、各メモリセルは自己の第1および第2の出力線を同電位にする出力線同電位手段を、各出力線に個別に持つ必要がなく共有できる。このため、FPGAに複数のプログラムを格納すべきFeRAMを搭載するに際して、FeRAMの省スペース化が図れる。
【0014】
また、本発明の第2目的を達成するために、請求項7〜請求項12に記載の各発明は、以下のように構成した。
すなわち、請求項7に記載の発明は、論理ゲートまたはマルチプレクサ等からなる論理ブロックを基板上に多数搭載し、これらの論理ブロックの間の配線を、前記基板上に搭載させたFeRAMを使用してプログラムできるフィールド・プログラマブル・ゲート・アレイの使用方法であって、前記FeRAMは、複数のメモリセルから構成するとともに、前記各メモリセルは複数のFeRAMセルを含むように構成しておき、前記複数のFeRAMセルのうちの1つに前記プログラムを格納するとともに、その残りのFeRAMセルに前記プログラムと同一のプログラムを格納しておくようにしたことを特徴とするものである。
【0015】
請求項8に記載の発明は、請求項7に記載のフィールド・プログラマブル・ゲート・アレイの使用方法において、前記残りのFeRAMセルに格納される前記プログラムを、バックアップ用プログラムとして使用するようにしたことを特徴とするものである。
請求項9に記載の発明は、請求項7に記載のフィールド・プログラマブル・ゲート・アレイの使用方法において、前記複数のFeRAMセルのうちの1つに格納される前記プログラムと、前記残りのFeRAMセルに格納されるプログラムとを、所定の順序で使用するようにしたことを特徴とするものである。
【0016】
請求項10に記載の発明は、論理ゲートまたはマルチプレクサ等からなる論理ブロックを基板上に多数搭載し、これらの論理ブロックの間の配線を、前記基板上に搭載させたFeRAMを使用してプログラムできるフィールド・プログラマブル・ゲート・アレイの使用方法であって、前記FeRAMは、複数のメモリセルで構成するとともに、前記各メモリセルは複数のFeRAMセルを含むように構成しておき、前記複数のFeRAMセルのうちの一部に前記プログラムとして複数種類のプログラムをそれぞれ格納するとともに、その残りのFeRAMセルに前記複数種類のプログラムと同一のプログラムを格納しておくようにしたことを特徴とするものである。
【0017】
請求項11に記載の発明は、請求項10に記載のフィールド・プログラマブル・ゲート・アレイの使用方法において、前記残りのFeRAMセルに格納される前記プログラムを、バックアップ用プログラムとして使用するようにしたことを特徴とするものである。
請求項12に記載の発明は、請求項10に記載のフィールド・プログラマブル・ゲート・アレイの使用方法において、前記複数のFeRAMセルのうちの一部に格納される前記複数種類のプログラムと、前記残りのFeRAMセルに格納される複数種類のプログラムとを、交互に使用するようにしたことを特徴とするものである。
【0018】
このように請求項7〜請求項9に記載の各発明では、複数のFeRAMセルに対して同一のプログラムを複数個格納しておくようにした。このため、複数個のプログラムのうちの一部をバックアップ用プログラムとして使用したり、またはその複数個のプログラムを所定の順序で使用できる。従って、FPGAの信頼性の向上や長寿命化を図ることができる。
【0019】
また、請求項10〜請求項12に記載の各発明では、複数のFeRAMセルのうちの一部に複数種類のプログラムをそれぞれ格納するとともに、その残りのFeRAMセルにその複数種類のプログラムと同一のプログラムを格納しておくようにした。
このため、残りのFeRAMセルに格納される複数種類のプログラムをバックアップ用プログラムとして使用したり、または複数のFeRAMセルのうちの一部に格納される複数種類のプログラムと、残りのFeRAMセルに格納される複数種類のプログラムとを交互に使用できる。従って、FPGAの信頼性の向上や長寿命化を図ることができる。
【0020】
さらに、本発明の第3の目的を達成するために、請求項13〜請求項15に記載の各発明は、以下のように構成した。
すなわち、請求項13に記載の発明は、論理ゲートまたはマルチプレクサ等からなる論理ブロックを基板上に多数搭載し、これらの論理ブロックの間の配線を、前記基板上に搭載させたFeRAMを使用してプログラムできるフィールド・プログラマブル・ゲート・アレイの使用方法であって、前記フィールド・プログラマブル・ゲート・アレイを、外部とデータの授受ができるカードに認証のためのソフトウエアキーとして搭載し、前記FeRAMは、複数のメモリセルで構成するとともに、前記各メモリセルは複数のFeRAMセルを含むように構成しておき、かつ、前記FeRAMには、前記複数のFeRAMセルに前記プログラムとして1つまたは複数種類のプログラムを書き込んでおき、または必要に応じて前記プログラムを書き換えるようにしたことを特徴とするものである。
【0021】
請求項14に記載の発明は、請求項13に記載のフィールド・プログラマブル・ゲート・アレイの使用方法において、前記カードの使用時に、前記フィールド・プログラマブル・ゲート・アレイは、その予め書き込んであるプログラムに対応する所定のデータを認証装置から受け取り、この受け取った入力データを変換し、この変換データを前記認証装置に送出するようにし、前記認証装置は、前記変換データと期待するデータとを比較し、この比較に基づいてユーザの正当性を判断するようにしたことを特徴とするものである。
【0022】
請求項15に記載の発明は、請求項13または請求項14に記載のフィールド・プログラマブル・ゲート・アレイの使用方法において、前記複数のFeRAMセルに複数種類のプログラムが予め書き込んである場合には、前記ユーザの正当性の判断は、前記フィールド・プログラマブル・ゲート・アレイが前記複数種類のプログラムのうちの任意のプログラムに対応して得られる変換データと期待データの一致、または前記フィールド・プログラマブル・ゲート・アレイが前記複数種類のプログラムのうちの2以上のプログラムに対応して得られる各変換データと各期待データの一致に基づいて行うことを特徴とするものである。
【0023】
このように請求項13〜請求項15に記載の各発明では、フィールド・プログラマブル・ゲート・アレイをソフトウエアキーとして使用できるので、ユーザの認証の識別性を高めることが可能となる。
【0024】
【発明の実施の形態】
以下、本発明のFPGAの第1実施形態の構成について、図面を参照して説明する。
第1実施形態に係るFPGAは、論理ゲートまたはマルチプレクサ等からなる論理ブロックを基板上に多数搭載し、これらの論理ブロックの間の配線を、基板上に搭載させたFeRAM(強誘電体メモリ)を使用してプログラムできるものであり、そのFeRAMの構成の概要を図1に示す。
【0025】
第1実施形態に係るFPGAに搭載されるプログラム用のFeRAM1は、図1に示すように、複数のメモリセルM00〜Mnnが2次元マトリクス状に配置され、そのメモリセルM00〜Mnnに対応して、図中の縦方向にメモリセルM00〜Mnnにしてデータの読み書きを行うためのビット線BL0、XBL0、BL1、XBL1・・・・BLn、XBLnがそれぞれ配置され、かつ、図中の横方向にメモリセルM00〜Mnnを選択するためのワード線WL0〜WLnがそれぞれ配置されている。
【0026】
ビット線BL0、XBL0、ビット線BL1、XBL1、・・・・ビット線BLn、XBLnの各一端側は、対応する差動変換器2−0、2−1、・・・・2−nの各出力側にそれぞれ接続されている。また、ビット線BL0、XBL0、ビット線BL1、XBL1、・・・・ビット線BLn、XBLnの各他端側は、対応する差動アンプ3−0、3−1、・・・・3−nの各入力側にそれぞれ接続されている。
【0027】
従って、差動変換器2−0〜2−nは、書き込みデータDin0〜Dinnを反転させた反転データと非反転データとをそれぞれ出力するようになっており、非反転データがビット線BL0、BL1・・・・BLnに出力され、反転データがビット線XBL0、XBL1・・・・XBLnに出力されるようになっている。
ここで、差動変換器2−0〜2−nは、イネーブル信号ENBAによりその動作が制御されるようになっている。
【0028】
また、差動アンプ3−0〜3−nは、ビット線BL0とビット線XBL0の出力差、ビット線BL1とビット線XBL1の出力差、・・・・ビット線BLnとビット線XBLnの出力差をそれぞれ差動増幅し、出力データDout0〜Doutnとして取り出すようになっている。
ビット線BL0、XBL0、ビット線BL1、XBL1、・・・・ビット線BLn、線XBLnは、対応するOSトランジスタQ0、Q0’、MOSトランジスタQ1、Q1’・・・・MOSトランジスタQn、Qn’のオン動作により、同時に接地されるようになっている。
【0029】
また、MOSトランジスタQ0、Q0、Q1、Q1’・・・・Qn、Qn’の各ゲートには、同一の制御信号PREGが供給されるようになっている。
このように構成されるFeRAMにおける複数のメモリセルM00〜Mnnは、FPGA内に設けられている所望の論理回路を形成するための各スイッチに対応する。
【0030】
次に、図1に示すメモリセルM00〜Mnnは同様に構成されるので、その一例としてメモリセルM00の構成について、図2を参照して説明する。
メモリセルM00は、図2に示すように、一点鎖線で囲まれたSRAMセル4と、複数のFeRAMセル5−0〜5−nとから構成されている。
また、メモリセルM00は、SRAMセル4に外部からデータをいったん書き込み、そのデータをFeRAMセル5−0〜5−nのうちの1つに選択的に書き込んで保持できるようになっている。従って、FeRAMセル5−0〜5−nには、FPGAに係るn個またはn種類のプログラムのデータを保持できるようになっている。
【0031】
さらに、メモリセルM00は、SRAMセル4に書き込んだデータを外部に読み出したり、またはFeRAMセル5−0〜5−nに保持されるデータのうちの1つを選択的に読み出してSRAMセル4に格納することができるようになっている。
また、メモリセルM00は、出力線OUTHと出力線OUTLとを同電位(接地電位)とするために、上記のようにビットラインBLはMOSトランジスタQ0を介して接地され、ビットラインXBLはMOSトランジスタQ0’を介して接地されている。また、MOSトランジスタQ0、Q0’の各ゲートには、制御信号PREGが供給されるようになっている。
【0032】
このような構成により、MOSトランジスタQ0、Q0’をオンにさせ、MOSトランジスタQ8、Q9をオンにすることを条件に、メモリセルM00の出力線OUTHと出力線OUTLの電位を同時に接地電位にできるのみならず、他のメモリセルM10、M20・・・・Mn0の出力線OUTHと出力線OUTLの電位を同時に接地電位にできる(図1参照)。
【0033】
さらに詳述すると、SRAMセル4は、逆接続されるインバータ6、7から構成され1ビットのデータを記憶するフリップフロップと、このフリップフロップに対してデータを読み書きするための2つのN型のMOSトランジスタ8、9とで構成され、電源がオフにならなければ、フリップフロップに1ビットのデータを保持できるようになっている。
【0034】
このために、ビット線BL0とビット線XBL0との間に、MOSトランジスタ8、インバータ6、およびMOSトランジスタ9が直列に接続されるとともに、インバー6にインバータ7が逆接続されている。また、MOSトランジスタQ8、Q9の各ゲートは、ワード線WL0にそれぞれ接続されている。さらに、インバータ6、7の一方の共通接続部は出力線OUTHに接続され、その他方の共通接続部は出力線OUTLに接続されている。
【0035】
インバータ6、7は、電源電圧線PWRHおよび接地電圧線PWRLとで図3に示す電源制御回路10と接続され、電源制御回路10により電源がオンオフ制御されるようになっている。この点については後述する。
次に、FeRAMセル5−0は、2つの強誘電体キャパタC01、C02と、これに対応する2つのスイッチ素子としてのMOSトランジスタQ01、Q02とから構成され、これらによって1ビットのデータを保持できるようになっている。
【0036】
また、同様に、FeRAMセル5−1は、強誘電体キャパタC11、C12と、MOSトランジスタQ11、Q12とから構成され、・・・・FeRAMセル5−nは、強誘電体キャパタCn1、Cn2と、MOSトランジスタQn1、Qn2とから構成されている。
さらに詳述すると、ポンプ線PUMP1と出力線OUTHとの間に、強誘電体キャパシタC01とMOSトランジスタQ01とが直列に接続されている。ポンプ線PUMP1と出力線OUTLとの間に、強誘電体キャパシタC02とMOSトランジスタQ02とが直列に接続されている。MOSトランジスタQ01、Q02の各ゲートには、キャパシタ線CLO1が接続されている。
【0037】
また、ポンプ線PUMP2と出力線OUTHとの間に、強誘電体キャパシタC11とMOSトランジスタQ11とが直列に接続されている。ポンプ線PUMP2と出力線OUTLとの間に、強誘電体キャパシタC12とMOSトランジスタQ12とが直列に接続されている。MOSトランジスタQ11、Q12の各ゲートには、キャパシタ線CLO2が接続されている。
【0038】
さらに、ポンプ線PUMPnと出力線OUTHとの間に、強誘電体キャパシタCn1とMOSトランジスタQn1とが直列に接続されている。ポンプ線PUMPnと出力線OUTLとの間に、強誘電体キャパシタCn2とMOSトランジスタQn2とが直列に接続されている。MOSトランジスタQn1、Qn2の各ゲートには、キャパシタ線CLOnが接続されている。
【0039】
次に、インバータ6、7の電源を制御する電源制御回路10の構成について、図3を参照して説明する。
この電源制御回路10は、図3に示すように、インバータ11と、P型のMOSトランジスタ12と、N型のMOSトランジスタ13とからなる。そして、この電源制御回路10は、イネーブルパワー信号ENBPにより、MOSトランジスタQ12、13が同時にオンすると、電源電圧線PWRHを介してインバータ6、7に電源電圧VDDが供給され、MOSトランジスタQ12、13が同時にオフすると、電源電圧VDDの供給が停止されるようになっている。
【0040】
このように、インバータ6、7の電源のオンオフを制御するのは、後述のように、FeRAMセル5−0〜5−nからデータを読み出すときに、オフにする必要があるからである。
なお、電源制御回路10は、図1に示す複数のメモリセルM00〜Mnnに個別に設けるようにしても良いが、その配置面積を減らために、複数のメモリセルM00〜Mnnに共通に使用するのが好ましい。
【0041】
次に、このような構成からなる第1実施形態に係るFPGAに搭載されるプログラム用のFeRAM1の動作例に、図4〜図6を参照して説明する。
まず、図2に示すメモリセルM00のSRAMセル4にデータを書き込み、その書き込んだデータをFeRAMセル5−0に保持する場合の動作について、図4を参照して説明する。
【0042】
ここで、電源投入時の各部の状態は重要ではないので、図4に示すように、ビット線BL、XBLおよび出力線OUTL、OUTHのデータは不定とし、他の部分の信号はLレベル(ローレベル)にしている。
この動作では、FeRAMセル5−1〜5−nにはアクセスしないので、キャパシタ線CLO2〜CLOn、およびポンプ線PUMP2〜PUMPnはLレベルとする。また、FeRAMセル5−0からのデータの読み出しも行わないので、制御信号PREGもLレベルとする。
【0043】
いま、図4に示すように、時刻t1において電源が投入されると、電源電圧VDDが立ち上がる。その後、時刻t2において、イネーブルパワー信号ENBPがHレベル(ハイレベル)に立ち上がると、MOSトランジスタ12がオンして、電源電圧VDDが電源電圧線PWRHを介してインバータ6、7に供給される。
【0044】
次に、データDin0をSRAMセル4に書き込む。ここでは、データDin0としてHレベルを書き込むので、時刻t3において、データDin0をHレベルにする。その後、時刻t4において、イネーブル信号ENBAをHレベルにし、差動変換器2−0をアクティブの状態にする。
ここで、差動変換器2−0は、入力としてHレベルが入力されると、+出力端子からはHレベルが出力され、−出力端子からはLレベルが出力されるようになっている。この結果、図4に示すように、ビット線BL0はHレベル、ビット線XBL0はLレベルとなる。
【0045】
次に、時刻t5において、ワード線WL0をHレベルとするので、MOSトランジスタ8、9がオンとなる。この結果、ビット線BL0と出力線OUTHが接続され、ビット線XBL0と出力線OUTLが接続される。
ここで、差動変換器2−0は、インバータ6、7のよりも、出力インピーダンスが低い(ドライブ能力が高い)ように設計されている。このため、差動変換器2−0の出力に基づき、出力線OUTH側はHレベル、出力線OUTL側はLレベルとなる(図4参照)。
【0046】
その後、時刻t6においてワード線WL0をHレベルからLレベルとし、時刻t7においてイネーブル信号ENBAをHレベルからLレベルとする。
ここで、ワード線WL0をLレベルにさせ、ビット線BL0と出力線OUTHを切断するとともに、ビット線XBL0と出力線OUTLを切断しても、インバータ6、7は逆接続されてデータを保持しているので、出力線OUTHはHレベルを保持し、出力線OUTLはLレベルを保持する。この状態は、SRAMセル4にデータを新たに書き換えるか、または電源がオフとならない限り維持される。
【0047】
その後、時刻t8において、データDin0をHレベルからLレベルに変化させる。
次に、このようにSRAMセル4に書き込まれたデータを、FeRAMセル5−0に格納(保管)しておくことにより、FPGA内に回路を構築できるので、そのFeRAMセル5−0へのデータの格納動作について以下に説明する。
【0048】
この場合には、時刻t9において、キャパシタ線CLO1をHレベルとする。この結果、MOSトランジスタQ01、Q02がいずれもオンするので、強誘電体キャパシタC01に出力線OUTHのHレベルの電位が印加され、強誘電体キャパシタC02に出力線OUTLのLレベルの電位が印加される。このときには、強誘電体キャパシタC01、C02に接続されているポンプ線PUMP1の電位はLレベルである。
【0049】
ここで、強誘電体キャパシタC01、C02の分極方向は、図4に示すように矢印で示すものとし、矢印の向きはHレベルからLレベルの方向に一致するものとする。
時刻t9〜時刻t10の期間T1では、強誘電体キャパシタC01は、上側の電極にHレベルの電位が印加され、下側の電極にLレベルの電位が印加されるので、その分極方向は図4に示すように下向きの矢印となる。このとき、強誘電体キャパシタC02は、上側の電極にLレベルの電位が印加され、下側の電極にLレベルの電位が印加されるので、その分極方向は初期状態の不安定のままとなり、この状態を図4では記号「−」で表す。
【0050】
時刻t10において、ポンプ線PUMP1をHレベルとする。この結果、強誘電体キャパシタC01は、上側の電極にHレベルの電位が印加され、下側の電極にHレベルの電位が印加されて同電位となるので、その分極方向は図4に示すように下向きの矢印のままになる。このとき、強誘電体キャパシタC02は、上側の電極にLレベルの電位が印加され、下側の電極にHレベルの電位が印加されるので、その分極方向は図4に示すように上向きの矢印になる。
【0051】
その後、時刻t11においてポンプ線PUMP1をHレベルからLレベルとし、時刻t12においてキャパシタ線CLO1をHレベルからLレベルとする。
このような動作により、強誘電体キャパシタC01、C02に分極が残り、データの保存が完了する。この分極の方向は電源がオフされても残るので、メモリセルM00は、不揮発性RAMとなる。
【0052】
なお、以上の説明は、FeRAMセル5−0へのデータの格納動作であるが、他のFeRAMセル5−1〜5〜nについても同様な動作によりデータを格納することができる。
次に、上記のように、メモリセルM00のSRAMセル4にデータを書き込み、その書き込んだデータをFeRAMセル5−0に保持したのち、SRAMセル4に書き込んだデータを外部に読み出してチェックする場合の動作について、図5を参照して説明する。
【0053】
このときには、インバータ6、7からなるフリップフロップにデータが格納されており、出力線OUTHはHレベル、出力線OUTLはLレベルとする。また、メモリセルM00の各部の状態は、図5に示すものとする。
図5に示すように、時刻t1においてワード線WL0をHレベルにすると、MOSトランジスタ8、9がいずれもオンとなる。この結果、ビット線BL0と出力線OUTHが接続され、ビット線XBL0と出力線OUTLが接続されるので、出力線OUTHと出力線OUTLの各電位が、ビット線BL0とビット線XBL0に伝達される。
【0054】
このため、時刻t1〜t2の期間T1において、差動アンプ3−0は、ビット線BL0とビット線XBL0との電位差を検出し、それに応じた出力データDout0を読み出す。その後、時刻t2にワード線WL0をHレベルからLレベルにすると、読み出し動作を終了する。
ここで、データの高速な読み出しのために、予め制御信号PREGをHレベル、すなわちビット線BL0とビット線XBL0をLレベルにしておき、その後にワード線WL0をHレベルにする直前に制御信号PREGをLレベルにするようにしても良い。なお、このときには、ワード線WL0をHレベルにする直前に、制御信号PREGをLレベルからHレベル、更にLレベルにするようにしてもかまわない。
【0055】
次に、上記のように、メモリセルM00のFeRAMセル5−0に保持させたデータを、出力線OUTH、OUTLに読み出す場合の動作について、図6を参照しながら説明する。
まず、インバータ6、7をオフ(ハイインピーダンス状態)にするために、時刻t1において、イネーブルパワー信号ENBPをLレベルにする。これにより、電源電圧VDDのインバータ6、7への供給が停止されて、インバータ6、7がオフの状態になる。
【0056】
また、時刻t1では、制御信号PREGをHレベルにするので、MOSトランジスタQ0、Q0’がいずれもオンになる。この結果、ビット線BL0およびビット線XBL0はいずれも接地され、Lレベルとなる。
次に、時刻t2では、ワード線WL0をHレベルにするので、MOSトランジスタ8、9がいずれもオンとなる。この結果、ビット線BL0と出力線OUTHが接続され、ビット線XBL0と出力線OUTLが接続されるので、出力線OUTHと出力線OUTLの各電位はLレベルとなる。
【0057】
また、時刻t2では、キャパシタ線CLO1をHレベルとするので、MOSトランジスタQ01、Q02がいずれもオンになる。この結果、強誘電体キャパシタC01と出力線OUTHが接続され、強誘電体キャパシタC02と出力線OUTLが接続される。
引き続き、時刻t3において、ワード線WL0をHレベルからLレベルとし、ビット線BL0と出力線OUTHを切断させ、ビット線XBL0と出力線OUTLを切断させる。このときには、出力線OUTHと出力線OUTLは、図6に示すようにLレベルを維持している。
【0058】
次に、時刻t4において、ポンプ線PUMP1をHレベルにし、強誘電体キャパシタC01、C02とに電圧を印加させ、電荷を注入する。このときの電荷量と分極に着目すると、図6に示すように、強誘電体キャパシタC01は分極と逆の電位が印加されるので、分極方向が逆になる。また、強誘電体キャパシタC02は、同方向であるので、分極に変化が起こらない。
【0059】
この動作を電荷で考えると、強誘電体キャパシタC01は分極方向が変わることにより、出力線OUTHに変化に応じた電荷を排出することになる。これに対して、強誘電体キャパシタC02は分極方向の変化がないので、出力線OUTLに電荷の排出はない。ただし、電荷の排出は、分極によるものだけではないが、ここでは、電荷の排出量の差をデータとして取り出すので、他の影響は少ないためにその記述は省略する。
【0060】
この電荷の排出量の差によって、図6の時刻t4〜t5の期間T1では、出力線OUTHの電位と出力線OUTLの電位とでは、その差が現れる。すなわち、最終的に、出力線OUTHの電位が、出力線OUTLの電位よりも高くなる。
ここで、図6では、時刻t4においてポンプ線PUMP1をHレベルにするときに、制御信号PREGをLレベルとしているが、特にこのようにする必要はない。従って、ビット線BL0とビット線XBL0との電位を固定させるために、制御信号PREGをHレベルのままにしておいても良い。
【0061】
時刻t5において、イネーブルパワー信号ENBPをHレベルにすると、インバータ6、7がアンプとして動作し、出力線OUTHと出力線OUTLとの電位差をさらに広げて、出力線OUTHをHレベルにさせ、出力線OUTLをLレベルにさせる。このときには、ポンプ線PUMP1はLレベルにしておく。
以上により、FeRAMセル5−0からのデータの読み出し動作は終了する。しかし、実際には、時刻t4から時刻t6の期間T2では、強誘電体キャパシタC01、C02は、特に強誘電体キャパシタC02は、分極方向が同じでも、その分極量が変化している。
【0062】
このため、ポンプ線PUMP1を、時刻t6においてHレベルにしたのち時刻t7においてLレベルに変化させ、強誘電体キャパシタC01、C02の分極方向を、もう一度SRAMセル4に書き込む(リライト)ようにしている。
このようにしてFeRAMセル5−0からSRAMセル4に読み出したデータを、外部に読み出したい場合には、図5に示した動作により行う。
【0063】
このような動作によれば、電源投入後であっても、強誘電体キャパシタC01、C02からデータを読み出すことができる。
また、FeRAMセル5−0〜5−nに保持される各データのうちの任意のデータの読み出しは、キャパシタ線CLO1〜CLOn、および電源線PUMP1〜PUMPnの選択的な動作により行うことができる。
【0064】
ここで、FeRAMセル5−0〜5−nからのデータの読み出しは、図1に示す全てのメモリセルM00〜Mnnについて同時にできるので、図6に示すような制御動作を一度行うだけで良い。
また、電源投入後のメモリセルM00〜Mnnへのプログラミング、その保持されたプログラムの切り替えも一度に制御できるので、高速である。
【0065】
以上説明したように、本発明のFPGAの第1実施形態では、プログラム用のFeRAM1を、図1に示すように複数のメモリセルM00〜Mnnから構成し、そのメモリセルM00〜Mnnは、SRAMセル4と、複数のFeRAMセル5−0〜5−nとから構成するようにした。
さらに、メモリセルM00〜Mnnの各出力線OUTH、OUTLを同時に同電位(接地電位)にするために、複数のメモリセルに共通に使用する一対のビット線を、それぞれMOSトランジスタを介して接地させるようにした。
【0066】
このため、メモリセルM00〜Mnnの各出力線OUTH、OUTLを同電位にするための構成を簡略化でき、省スペース化を実現できる。
また、メモリセルM00〜Mnnは、複数のFeRAMセル5−0〜5−nを備えているので、複数のプログラムを書き込むことができ、1つのFPGAで複数の論理回路を構成してその使い分けができる。
【0067】
従って、例えばこのFPGAを無線通信に使用する場合には、データの処理方法が違う通信を、1つのFPGAでプログラムを切り替えながらデータの処理をすることができる。また、そのプログラムの切り替えも高速にできる。
さらに、この第1実施形態では、メモリセルM00〜Mnnが、複数のFeRAMセル5−0〜5−nを含むようにしたので、製品の仕様に対して、余分にFeRAMセルを確保しておくようにすれば、不良メモリを良メモリに置き換えて仕様を満足することができる。このため、歩留りの改善となり、製品のコストダウンに寄与できる。
【0068】
さらにまた、この第1実施形態では、メモリセルM00〜Mnnが、それぞれ複数のFeRAMセル5−0〜5−nを含むようにしたので、その全てのFeRAMセル5−0〜5−nに同一のデータを書き込み、FeRAMセル群(プログラム)毎にデータを比較し、同じであれば良品、違いがあるときには不良品と判断できる。
【0069】
次に、第1実施形態に係るFPGAの使用方法の例について説明する。
まず、第1実施形態に係るFPGAの第1の使用方法について説明する。
この第1の使用方法は、複数のメモリセルM00〜Mnnに含まれる複数のFeRAMセル5−0〜5−nのうち、例えばFeRAMセル5−0にFPGAのプログラムを予め格納するとともに、FeRAMセル5−1にその同じプログラムをバックアップ用プログラムとして予め格納しておくものとする。
【0070】
そして、FeRAMセル5−0に格納されるプログラムと、FeRAMセル5−1に格納されるバックアップ用プログラムとを随時または定期的に比較し、両者の内容が正しかい否かを判断する。
このようにすると、その判断の結果により適切処理ができ、FPGAの信頼性を向上できる。
【0071】
ここで、FPGAを書き換え可能なハードウエアキーとして使用するような場合には、FeRAMセル5−1、5−2・・・などに2以上のバックアップ用プログラムを予め格納しておくようにする。
そして、FeRAMセル5−0に格納されるプログラムと、FeRAMセル5−1、5−2・・・・に格納される2以上のバックアップ用プログラムとそれぞれ比較し、多数決によりプログラムの内容が正しかい否かを決定する。
【0072】
このようにすると、FPGAを書き換え可能なハードウエアキーとして使用するような場合に、より高い信頼性を確保できる。
なお、第1の使用例の変形例として、複数のFeRAMセル5−0〜5−nのうち、例えばFeRAMセル5−0、5−1にFPGAの2種類類のプログラムというように、複数種類のプログラムを予め格納するとともに、FeRAMセル5−2、5−3にその同じ複数種類のプログラムを、バックアップ用プログラムとして予め格納しておくようにしてもよい。
【0073】
このようにすると、FPGAで複数種類のプログラムを使用する場合に、上記と同様に使用できる上に、上記と同様な効果が得られる。
次に、第1実施形態に係るFPGAの第2の使用方法について説明する。
この第2の使用方法は、複数のメモリセルM00〜Mnnに含まれる複数のFeRAMセル5−0〜5−nのうち、例えばFeRAMセル5−0にFPGAのプログラムを予め格納するとともに、FeRAMセル5−1にその同じプログラムを予め格納しておくものとする。
【0074】
そして、FPGAの使用時には、FeRAMセル5−0に格納されるプログラムと、FeRAMセル5−1に格納されるプログラムとを、例えば交互というように、所定の順序で読み出して使用するようにした。
このように、複数のFeRAMセル5−0〜5−nのうちの2以上に、同一のプログラムを格納しておき、FPGAの使用時に、その各プログラムを所定の順番に読み出して使用すれば、FeRAMの寿命を延ばすことができる。それは、強誘電体キャパシタは、その材料の特性上、使用回数とデータの保持時間に制限があるためである。
【0075】
なお、第2の使用例の変形例として、複数のFeRAMセル5−0〜5−nのうち、例えばFeRAMセル5−0、5−1にFPGAの2種類類のプログラムというように、複数種類のプログラムを予め格納するとともに、FeRAMセル5−2、5−3にその同じ複数種類のプログラムを予め格納しておくようにしてもよい。
【0076】
このようにすると、FPGAで複数種類のプログラムを使用する場合に、上記と同様に使用できる上に、上記と同様な効果が得られる。
次に、第1実施形態に係るFPGAの第3の使用方法について説明する。
この第3の使用方法は、FPGAをカードなどに搭載して認証用のハードウエアキーとして使用するものであり、その具体的な使用例を図12に示す。
【0077】
この使用例では、図12に示すように、カード31内に、ハードウエアキーとして「プログラムA」で回路構成されたFPGA32を実装させておく。
ここで、FPGA32の内蔵されるFeRAMは、図1および図2に示すように構成されている。
利用者(ユーザ)は、コンピュータなどからなる認証装置33に対してユーザ名とパスワード(暗証番号)を入力し、そのカード31を認証装置33に接続する。
【0078】
認証装置33は、ユーザ名とパスワードに基づいて、カード31の種類(個人の識別の正確性を高めるためにFPGA32を複数種類用意した場合)とFPGA32内のプログラムの内容を判断し、送信データと期待する受信データとをそれぞれ用意し、その送信データを送信する。
その送信データはカード31に送られ、カード31が受信する。この受信データは、「プログラムA」で回路構成されたFPGA32で変換(処理)され、この変換されたデータを認証装置33に返送する。
【0079】
認証装置33は、「期待する受信データ」と受信した「変換データ」とを比較し、その比較結果に基づいて利用者の正当性、すなわち利用者が正当使用であるか不正使用であるかを判断する。すなわち、その両者が一致の場合には正当使用と判断し、その両者が不一致の場合には不正使用と判断する。
ここで、FPGA32が複数のプログラムを格納する場合には、複数のプログラムについて上記の処理を行ってその不一致をもって不正使用を判断したり、またはその複数のプログラムのうちの任意のプログラムの不一致をもって不正使用を判断すれば、さらに不正使用の判断の正確性を高めることができる。
【0080】
ところで、FPGA32のプログラムは、ハードウエアキーとしての機能を高めるために書き換える。そのプログムの書き換えは、通信時に随時行うか、上記の使用時に同じ手続により自動で行うようにすれば、利用者も第3者もその中身(内容)を知ることができないので、機密性が高い。
ここで、FPGA32に使用されるFeRAMは、強誘電体キャパシタを使用しているので、FPGA32のパッケージを剥がそうとすると、強誘電体が薬品で腐食されるので、プログラムを解析できず、機密性が高い。
【0081】
次に、本発明のFPGAの第2実施形態の構成について説明する。
この第2実施形態に係るFPGAは、上記の第2実施形態に係るFPGAと基本的な構成はほぼ同一であり、図1に示すFeRAM1を図7に示すようなFeRAM21に置き換えたものである。
第2実施形態に係るFPGAに搭載されるプログラム用のFeRAM21は、図7に示すように、複数のメモリセルME00〜MEnnが2次元マトリクス状に配置され、そのメモリセルME00〜MEnnに対応して、図中の縦方向にメモリセルME00〜MEnnに対するデータの読み書きを行うためのビット線BL00〜BLnが配置され、かつ、図中の横方向にメモリセルME00〜MEnnを選択するためのワード線WL0〜WLnが配置されている。
【0082】
ビット線BL00、BL1、・・・・BLnの各一端側は、対応する入力用のバッファ22−0、22−1、・・・・22−nの各出力側にそれぞれ接続されている。また、ビット線BL00、BL1、・・・・BLnの各他端側は、対応する出力用のバッファ23−0、23−1、・・・・23−nの各入力側にそれぞれ接続されている。
【0083】
ワード線WL0は、メモリセルME00、ME01・・・・ME0nを選択できるようになっている。ワード線WL1は、メモリセルME10、ME11・・・・ME1nを選択できるようになっている。同様に、ワード線WLnは、メモリセルMEn0、MEn1・・・・MEnnを選択できるようになっている。
ビット線BL00、BL1、・・・・BLnは、対応するMOSトランジスタQ0、Q1、・・・・Qnを介して接地されるようになっている。すなわち、ビット線BL00、BL1、・・・・BLnは、MOSトランジスタQ0、Q1、・・・・Qnのオン動作により、同時に接地されるようになっている。
【0084】
このように構成されるFeRAM21における複数のメモリセルME00〜MEnnは、FPGA内に設けられている所望の論理回路を形成するための各スイッチに対応する。
次に、図7に示すメモリセルME00〜MEnnは同様に構成されるので、その一例としてメモリセルME00の構成について、図8を参照して説明する。
【0085】
メモリセルME00は、図8に示すように、一点鎖線で囲まれたSRAMセル24と、複数のFeRAMセル5−0〜5−nとから構成されている。
また、メモリセルME00は、SRAMセル24に外部からデータをいったん書き込み、そのデータをFeRAMセル5−0〜5−nのうちの1つに選択的に書き込んで保持できるようになっている。従って、FeRAMセル5−0〜5−nには、FPGAに係るn個またはn種類のプログラムのデータを保持できるようになっている。
【0086】
さらに、メモリセルME00は、SRAMセル24に書き込んだデータを読み出すことができるとともに、FeRAMセル5−0〜5−nに保持されるデータのうちの1つを選択的に読み出すことができるようになっている。
また、メモリセルME00は、出力線OUTHと出力線OUTLとを同電位(接地電位)とするために、ビットラインBL0がMOSトランジスタQ0を介して接地され、出力線OUTLがMOSトランジスタ25を介して接地されている。また、MOSトランジスタQ0とMOSトランジスタ25の各ゲートには、制御信号PREGが供給されるようになっている。
【0087】
このような構成により、MOSトランジスタQ0、25をオンにさせると、MOSトランジスタ8をオンにさせることを条件に、メモリセルME00の出力線OUTHと出力線OUTLの電位を同時に接地電位にできるのみならず、他のメモリセルME10、ME20・・・・MEn0の出力線OUTHと出力線OUTLの電位を同時に接地電位にできる(図7参照)。
【0088】
さらに詳述すると、SRAMセル24は、互いに逆接続されるインバータ6、7から構成されるフリップフロップと、このフリップフロップに対して読み書きを行うN型のMOSトランジスタ8とで構成され、電源がオフにならなければ、1ビットのデータを保持できるようになっている。
このために、ビット線BL0にMOSトランジスタ8が接続され、これにインバータ6が直列に接続されるとともに、インバー6にインバータ7が逆接続されている。また、MOSトランジスタ8ゲートは、ワード線WL0に接続されている。さらに、インバータ6、7の一方の共通接続部は出力線OUTHに接続され、その他方の共通接続部は出力線OUTLに接続されている。
【0089】
インバータ6、7は、電源電圧線PWRHおよび接地電圧線PWRLとで図3に示す電源制御回路10と接続され、電源制御回路10により電源がオンオフ制御するようになっている。
なお、FeRAMセル5−0〜5−nの構成は、出力線OUTHがMOSトランジスタQ25により接地される点を除けば、図2に示すFeRAMセル5−0〜5−nの構成と同一であるので、その説明は省略する。
【0090】
次に、このような構成からなる第2実施形態に係るFPGAに搭載されるプログラム用のFeRAM21の動作例について、図9〜図11を参照しながら説明する。
まず、図8に示すメモリセルME00のSRAMセル24にデータを書き込み、その書き込んだデータをFeRAMセル5−0に保持する場合の動作について、図9を参照して説明する。
【0091】
ここで、電源投入時の各部の状態は重要ではないので、図9に示すように、ビット線BL0および出力線OUTL、OUTHのデータは不定とし、他の部分の信号はLレベルにしている。
この動作では、FeRAMセル5−1〜5−nにはアクセスしないので、キャパシタ線CLO2〜CLOn、およびポンプ線PUMP2〜PUMPnはLレベルとする。また、FeRAMセル5−0からのデータの読み出しも行わないので、制御信号PREGもLレベルとする。
【0092】
いま、図9に示すように、時刻t1において電源が投入されると、電源電圧VDDが立ち上がる。その後、時刻t2において、イネーブルパワー信号ENBPがHレベルに立ち上がると、図3に示す電源制御回路10のMOSトランジスタ12、13がオンして、電源電圧VDDが電源電圧線PWRH、PWRLを介してインバータ6、7に供給される。
【0093】
次に、データDin0をSRAMセル24に書き込む。ここでは、データDin0としてHレベルを書き込むので、時刻t3において、データDin0をHレベルにする。その後、時刻t4において、イネーブル信号ENBAをHレベルにし、バッファ22−0をアクティブの状態にする。ここで、バッファ22−0がアクティブになると、ビット線BL0はHレベルになる。
【0094】
次に、時刻t5において、ワード線WL0をHレベルとするので、MOSトランジスタ8がオンとなる。この結果、ビット線BL0と出力線OUTHとが接続される。
ここで、バッファ22−0は、インバータ6、7のよりも、出力インピーダンスが低い(ドライブ能力が高い)ように設計されている。このため、バッファ22−0の出力に基づき、出力線OUTH側はHレベル、出力線OUTL側はLレベルとなる(図9参照)。
【0095】
その後、時刻t6においてワード線WL0をHレベルからLレベルとし、時刻t7においてイネーブル信号ENBAをHレベルからLレベルとする。
ここで、ワード線WLをLレベルにさせ、ビット線BL0と出力線OUTHを切断しても、フリップフロップを構成するインバータ6、7はデータを保持しているので、出力線OUTHはHレベルを保持し、出力線OUTLはLレベルを保持する。この状態は、SRAMセル24にデータを新たに書き換えるか、または電源がオフとならない限り維持される。
【0096】
その後、時刻t8において、データDin0をHレベルからLレベルに変化させる。
次に、上記のようにしてSRAMセル24に書き込まれたデータを、FeRAMセル5−0にあらかじめ格納(保管)しておくことにより、FPGA内に回路を構築できるので、そのFeRAMセル5−0へのデータの格納動作について以下に説明する。
【0097】
この場合には、時刻t9において、キャパシタ線CLO1をHレベルとする。この結果、MOSトランジスタQ01、Q02がいずれもオンするので、強誘電体キャパシタC01に出力線OUTHのHレベルの電位が印加され、強誘電体キャパシタC02に出力線OUTLのLレベルの電位が印加される。このときには、強誘電体キャパシタC01、C02に接続されているポンプ線PUMP1の電位はLレベルである。
【0098】
ここで、強誘電体キャパシタC01、C02の分極方向は、図9に示すように矢印で示すものとし、矢印の向きは電位がHレベルからLレベルの方向に一致するものとする。
時刻t9〜時刻t10の期間t1では、強誘電体キャパシタC01は、上側の電極にHレベルの電位が印加され、下側の電極にLレベルの電位が印加されるので、その分極方向は図9に示すように下向きの矢印となる。このとき、強誘電体キャパシタC02は、上側の電極にLレベルの電位が印加され、下側の電極にLレベルの電位が印加されるので、その分極方向は初期状態の不安定のままとなり、この状態を図9では記号「−」で表す。
【0099】
時刻t10において、ポンプ線PUMP1をHレベルとする。この結果、強誘電体キャパシタC01は、上側の電極にHレベルの電位が印加され、下側の電極にHレベルの電位が印加されて同電位となるので、その分極方向は図9に示すように下向きの矢印のままになる。このとき、強誘電体キャパシタC02は、上側の電極にLレベルの電位が印加され、下側の電極にHレベルの電位が印加されるので、その分極方向は図9に示すように上向きの矢印になる。
【0100】
その後、時刻t11においてポンプ線PUMP1をHレベルからLレベルとし、時刻t12においてキャパシタ線CLO1をHレベルからLレベルとする。
このような動作により、強誘電体キャパシタC01、C02に分極が残り、データの保存が完了する。この分極の方向は電源がオフされても残るので、メモリセルME00は、不揮発性RAMとなる。
【0101】
なお、以上の説明は、FeRAMセル5−0へのデータの格納動作であるが、他のFeRAMセル5−1〜5〜nについても同様な動作によりデータを格納することができる。
次に、上記のように、メモリセルME00のSRAMセル24にデータを書き込み、その書き込んだデータをFeRAMセル5−0に保持したのち、SRAMセル24に書き込んだデータを外部に読み出してチェックする場合の動作について、図10を参照して説明する。
【0102】
このときには、インバータ6、7からなるフリップフロップにデータが格納されており、出力線OUTHはHレベル、出力線OUTLはLレベルとする。また、メモリセルME00の各部の状態は、図10に示すものとする。
図10に示すように、時刻t1においてワード線WLをHレベルにすると、MOSトランジスタ8がオンとなる。この結果、ビット線BL0と出力線OUTHが接続されるので、出力線OUTHの電位がビット線BL0に伝達される。
【0103】
このため、時刻t1〜t2の期間t1において、バッファ23−0は、ビット線BL0の電位を検出し、それに応じた出力データDout、この場合DoutはHレベルを読み出す。その後、時刻t2にワード線WLをHレベルからLレベルにすると、読み出し動作を終了する。
次に、上記のように、FeRAMセル5−0に保持させたデータを、出力線OUTH、OUTL上に読み出す場合の動作について、図11を参照しながら説明する。
【0104】
まず、インバータ6、7をオフ(ハイインピーダンス状態)にするために、時刻t1において、イネーブルパワー信号ENBPをLレベルにする。これにより、電源電圧VDDのインバータ6、7への供給が停止されて、インバータ6、7がオフの状態になる。
次に、時刻t2では、制御信号PREGをHレベルにするので、MOSトランジスタQ0とMOSトランジスタ25がいずれもオンになる。この結果、ビット線BL0および出力線OUTLはいずれも接地され、Lレベルとなる。
【0105】
その後、時刻t3では、ワード線WLをHレベルにするので、MOSトランジスタ8がオンとなる。この結果、ビット線BL0と出力線OUTHが接続され、出力線OUTHの電位もLレベルとなる。
また、時刻t3では、キャパシタ線CLO1をHレベルとするので、MOSトランジスタQ01、Q02がいずれもオンになる。この結果、強誘電体キャパシタC01と出力線OUTHが接続され、強誘電体キャパシタC02と出力線OUTLが接続される。
【0106】
引き続き、時刻t4において、ワード線WL0と制御信号PREGをHレベルからLレベルとし、ビット線BL0と出力線OUTHを切断させると同時に、出力線OUTLの接地状態を解除する。このときには、出力線OUTHと出力線OUTLは、図11に示すようにLレベルを維持している。
次に、時刻t5において、ポンプ線PUMP1をHレベルにし、強誘電体キャパシタC01、C02とに電圧を印加させ、電荷を注入する。このときの電荷量と分極に着目すると、図11に示すように、強誘電体キャパシタC01は分極と逆の電位が印加されるので、分極方向が逆になる。また、強誘電体キャパシタC02は、同方向であるので、分極に変化が起こらない。
【0107】
この動作を電荷で考えると、強誘電体キャパシタC01は分極方向が変わることにより、出力線OUTHに変化に応じた電荷を排出することになる。これに対して、強誘電体キャパシタC02は分極方向の変化がないので、出力線OUTLに電荷の排出はない。
この電荷の排出量の差によって、図11の時刻t5〜t6の期間T1においては、出力線OUTHの電位と出力線OUTLの電位とでは、その差が現れる。すなわち、最終的に、出力線OUTHの電位が、出力線OUTLの電位よりも高くなる。
【0108】
時刻t6において、イネーブルパワー信号ENBPをHレベルにすると、インバータ6、7がアンプとして動作し、出力線OUTHと出力線OUTLとの電位差をさらに広げて、出力線OUTHをHレベルにさせ、出力線OUTLをLレベルにさせる。このときには、ポンプ線PUMP1もLレベルにしておく。
以上により、FeRAMセル5−0からのデータの読み出し動作は終了する。しかし、実際には、時刻t5から時刻t7の期間T2では、強誘電体キャパシタC01、C02は、特に強誘電体キャパシタC02は、分極方向が同じでも、その分極量が変化している。
【0109】
このため、ポンプ線PUMP1を、時刻t7においてHレベルにしたのち時刻t8においてLレベルにし、強誘電体キャパシタC01、C02の分極方向を、もう一度SRAMセル24に書き込む(リライト)ようにしている。
このようにしてFeRAMセル5−0からSRAMセル24に読み出したデータを、外部に読み出したい場合には、図10に示した動作により行う。
【0110】
このような動作によれば、電源投入後であっても、強誘電体キャパシタC01、C02からデータを読み出すことができる。
また、FeRAMセル5−0〜5−nに保持される各データのうちの任意のデータの読み出しは、キャパシタ線CLO1〜CLOn、および電源線PUMP1〜PUMPnの選択的な動作により行うことができる。
【0111】
ここで、FeRAMセル5−0〜5−nからのデータの読み出しは、図7に示す全てのメモリセルME00〜MEnnについて同時にできるので、図11に示すような制御動作を一度行うだけで良い。
また、電源投入後のメモリセルME00〜MEnnへのプログラミング、その保持されたプログラムの切り替えも一度に制御できるので、高速である。
【0112】
以上説明したように、本発明のFPGAの第2実施形態では、プログラム用のFeRAM21を、図7に示すように複数のメモリセルME00〜MEnnから構成し、そのメモリセルME00〜MEnnは、SRAMセル24と、複数のFeRAMセル5−0〜5−nとから構成するようにした。
さらに、メモリセルME00〜MEnnの各出力線OUTH、OUTLを同時に同電位(接地電位)にするために、複数のメモリセルに共通に使用するビット線を、MOSトランジスタを介して接地させるようにした。
【0113】
このため、メモリセルME00〜MEnnの各出力線OUTH、OUTLを同電位にするための構成を簡略化でき、省スペース化を実現できる。
また、メモリセルME00〜MEnnは、複数のFeRAMセル5−0〜5−nを備えているので、複数のプログラムを書き込むことができ、1つのFPGAで複数の論理回路を構成してその使い分けができる。
【0114】
さらに、この第2実施形態では、メモリセルME00〜MEnnが、複数のFeRAMセル5−0〜5−nを含むようにしたので、製品の仕様に対して、余分にFeRAMセルを確保しておくようにすれば、不良メモリを良メモリに置き換えて仕様を満足することができる。このため、歩留りの改善となり、製品のコストダウンに寄与できる。
【0115】
さらにまた、この第2実施形態では、メモリセルME00〜MEnnが、それぞれ複数のFeRAMセル5−0〜5−nを含むようにしたので、その全てのFeRAMセル5−0〜5−nに同一のデータを書き込み、FeRAMセル群(プログラム)毎にデータを比較し、同じであれば良品、違いがあるときには不良品と判断できる。
【0116】
なお、第2実施形態に係るFPGAは、第1実施形態に係るFPGAの使用方法と同様の使用方法が適用できること勿論であり、その説明は重複するので、ここではその説明は省略する。
【0117】
【発明の効果】
以上説明したように、本発明のFPGAによれば、FPGAに複数のプログラムを格納すべきFeRAMを内蔵する際に、FeRAMの省スペース化を図ることができる。
本発明のFPGAの使用方法によれば、1つのプログラムにより1つの論理回路を構成して使用し、または複数種類のプログラムにより複数の論理回路を構成してその論理回路を選択的に使用するような場合に、信頼性の向上または長寿命化を図ることができる。
【0118】
さらに、本発明のFPGAの使用方法によれば、FPGAをハードウエアキーとして使用した場合に、その機能を高めることがきる。
【図面の簡単な説明】
【図1】本発明のFPGAの第1実施形態に搭載されるFeRAMの構成を示す図である。
【図2】図1に示すFeRAMのメモリセルの具体的な構成を示す回路図である。
【図3】図2に示すインバータの電源を制御する電源制御回路の回路図である。
【図4】第1実施形態に係るFeRAMの動作例を説明するための各部の波形例を示す図である。
【図5】第1実施形態に係るFeRAMの他の動作例を説明するための各部の波形例を示す図である。
【図6】第1実施形態に係るFeRAMのさらに他の動作例を説明するための各部の波形例を示す図である。
【図7】本発明のFPGAの第2実施形態に搭載されるFeRAMの構成を示す図である。
【図8】図7に示すFeRAMのメモリセルの具体的な構成を示す回路図である。
【図9】第2実施形態に係るFeRAMの動作例を説明するための各部の波形例を示す図である。
【図10】第2実施形態に係るFeRAMの他の動作例を説明するための各部の波形例を示す図である。
【図11】第2実施形態に係るFeRAMのさらに他の動作例を説明するための各部の波形例を示す図である。
【図12】第1実施形態に係るFPGAの使用方法を説明する図である。
【符号の説明】
M00〜Mnn、ME00〜MEnnはメモリセル、BL0、XBL0、BL1、XBL1・・・・BLn、XBLnはビット線、WL0〜WLnはワード線、Q0、Q0’、Q1、Q1’・・・・Qn、Qn’はMOSトランジスタ、1、21はFeRAM、4、24はSRAMセル、5−1〜5−nはFeRAMセル、6、7はインバータ、8、9はMOSトランジスタ、10は電源制御回路である。
【発明の属する技術分野】
本発明は、論理ゲートまたはマルチプレクサ等からなる論理ブロックを基板上に多数搭載し、これらの論理ブロックの間の配線を、上記の基板上に搭載させたFeRAM(強誘電体メモリ)を使用してプログラムできるフィールド・プログラマブル・ゲート・アレイ(以下、FPGAという)、およびその使用方法に関する。
【0002】
【従来の技術】
この種の従来のFPGAとしては、論理回路を決定するプログラムを、外付けのROM(Read Only Memory)に書き込んでおき、FPGAの使用時(電源投入時)にその外付けのROMから読み出して使用するものが知られている。
しかし、このようなFPGAでは、FPGAの他の外付けのROMが必要となる上に、プログラムの変更が必要な場合にはそのROMを交換する必要がある。また、ROMからのプログラムの読み出しには、一般に時間がかかるという不具合がある。さらに、複数のプログラムを持つようにするには、複数のROMが必要になるという不都合がある。
【0003】
また、従来の他のFPGAとしては、論理回路を決定するプログラムを格納するEEPROM(電気的に消去できるリード・オンリ・メモリ)を内蔵するものが知られている。
しかし、このようなFPGAでは、内蔵するEEPROMの内容を書き換えできるが、EEPROMのデータの消去・書き込み時に高い電圧が必要となる。このため、今日のように電源電圧が低電圧の環境下では、別途、電源が必要になるという不具合がある。また、複数のプログラムを持つようにするには、そのプログラムの個数に応じて複数のEEPROMを内蔵する必要があるので、EEPROMの占有面積が大きくなり、論理回路を構築するための面積が小さくなるので、現実的ではない。
【0004】
そこで、このような不都合を解決するFPGAとして、論理回路を決定するプログラムを格納するメモリとしてFeRAM(FeRAM)を内蔵し、FPGAの回路構成を動的に変化させるようにしたものが知られている(例えば、非特許文献1参照)。
【0005】
【非特許文献1】
日経マイクロデバイス 2002年7月号(P126〜P127の記載内容およびP127の図3参照)
【0006】
【発明が解決しようとする課題】
ところが、非特許文献1に記載されるFPGAでは、複数のプログラムを格納すべきFeRAMをFPGAに内蔵する必要がある。しかし、その従来のFPGAでは、FPGAに複数のプログラムを格納すべきFeRAMを内蔵する際に、FeRAMの省スペース化を図ることがきないという不都合が考えられる。
【0007】
そこで、本発明の第1の目的は、FPGAに複数のプログラムを格納すべきFeRAMを内蔵する際に、FeRAMの省スペース化を図るようにしたフィールド・プログラマブル・ゲート・アレイを提供することにある。
また、本発明の第2の目的は、フィールド・プログラマブル・ゲート・アレイにおいて、1つのプログラムにより1つの論理回路を構成して使用し、または複数種類のプログラムにより複数の論理回路を構成してその論理回路を選択的に使用する場合に、信頼性の向上または長寿命化を図ることができる、フィールド・プログラマブル・ゲート・アレイの使用方法を提供することにある。
【0008】
さらに、本発明の第3の目的は、フィールド・プログラマブル・ゲート・アレイをソフトウエアキーとして使用できるようにし、ユーザの認証の識別性を高めることを可能にしたフィールド・プログラマブル・ゲート・アレイの使用方法を提供することにある。
【0009】
【課題を解決するための手段】
上記の課題を解決し本発明の第1目的を達成するために、請求項1〜請求項6に記載の各発明は、以下のように構成した。
すなわち、請求項1に記載の発明は、論理ゲートまたはマルチプレクサ等からなる論理ブロックを基板上に多数搭載し、これらの論理ブロックの間の配線を、前記基板上に搭載させたFeRAMを使用してプログラムできるフィールド・プログラマブル・ゲート・アレイであって、前記FeRAMは、複数のメモリセルと、前記メモリセルを選択するワード線と、前記メモリセルへのデータの読み出しまたは書き込みを行う一対の第1および第2のビット線とを含み、前記各メモリセルは、SRAMセルと複数のFeRAMセルとを含み、前記SRAMセルは、データを記憶するフリップフロップと、前記フリップフロップに対してデータの読み出し書き込みを行う第1および第2のトランジスタとからなり、前記各FeRAMセルは、データを記憶する2つの強誘電体キャパシタと、前記強誘電体キャパシタに対してデータの読み出し書き込みを行う第3および第4のトランジスタとからなり、前記第1および第2のトランジスタを、前記ワード線に共通に接続させるとともに前記第1および第2のビット線にそれぞれ接続させ、前記フリップフロップの入出力端子を一対の第1および第2の出力線にそれぞれ接続させ、かつ、前記第3および第4のトランジスタを、前記第1および第2の出力線にそれぞれ接続させ、さらに、前記複数のメモリセルが有する前記第1および第2の出力線に共通に設け、前記両出力線の電位を同一にする出力線同電位手段を備えるようにしたことを特徴とするものである。
【0010】
請求項2に記載の発明は、請求項1に記載のフィールド・プログラマブル・ゲート・アレイにおいて、前記出力線同電位手段は、前記第1のビット線とアースとの間に設けた第1のスイッチ素子と、前記第2のビット線とアースとの間に設けた第2のスイッチ素子とからなり、前記両スイッチ素子のオンオフ制御を同一の制御信号で行うようにしたことを特徴とするものである。
【0011】
請求項3に記載の発明は、請求項1または請求項2に記載のフィールド・プログラマブル・ゲート・アレイにおいて、前記複数のメモリセルが有する前記各フリップフロップの電源の制御を同時に行う電源制御回路を備えたことを特徴とするものである。
請求項4に記載の発明は、論理ゲートまたはマルチプレクサ等からなる論理ブロックを基板上に多数搭載し、これらの論理ブロックの間の配線を、前記基板上に搭載させたFeRAMを使用してプログラムできるフィールド・プログラマブル・ゲート・アレイであって、前記FeRAMは、複数のメモリセルと、前記メモリセルを選択するワード線と、前記メモリセルへのデータの読み出しまたは書き込みを行うビット線とを含み、前記各メモリセルは、SRAMセルと複数のFeRAMセルとを含み、前記SRAMセルは、データを記憶するフリップフロップと、前記フリップフロップに対してデータの読み出し書き込みを行う第1のトランジスタとからなり、前記各FeRAMセルは、データを記憶する2つの強誘電体キャパシタと、前記強誘電体キャパシタに対してデータの読み出し書き込みを行う第2および第3のトランジスタとからなり、前記第1のトランジスタを、前記ワード線に接続させるとともに前記ビット線に接続させ、前記フリップフロップの入出力端子を一対の第1および第2の出力線にそれぞれ接続させ、かつ、前記第2および第3のトランジスタを、前記第1および第2の出力線にそれぞれ接続させ、さらに、前記複数のメモリセルが有する前記第1の出力線に共通に設けるとともに、前記複数のメモリセルが有する前記第2の出力線に個別に設け、前記両出力線の電位を同一にする出力線同電位手段を備えるようにしたことを特徴とするものである。
【0012】
請求項5に記載の発明は、請求項4に記載のフィールド・プログラマブル・ゲート・アレイにおいて、前記出力線同電位手段は、前記ビット線とアースとの間に設けた第1のスイッチ素子と、前記第2の出力線とアースとの間に設けた第2のスイッチ素子とからなり、前記両スイッチ素子のオンオフ制御を同一の制御信号で行うようにしたことを特徴とするものである。
【0013】
請求項6に記載の発明は、請求項4または請求項5に記載のフィールド・プログラマブル・ゲート・アレイにおいて、前記複数のメモリセルが有する前記各フリップフロップの電源の制御を同時に行う電源制御回路を備えたことを特徴とするものである。
このような構成からなる請求項1〜請求項6に記載の各発明では、各メモリセルは自己の第1および第2の出力線を同電位にする出力線同電位手段を、各出力線に個別に持つ必要がなく共有できる。このため、FPGAに複数のプログラムを格納すべきFeRAMを搭載するに際して、FeRAMの省スペース化が図れる。
【0014】
また、本発明の第2目的を達成するために、請求項7〜請求項12に記載の各発明は、以下のように構成した。
すなわち、請求項7に記載の発明は、論理ゲートまたはマルチプレクサ等からなる論理ブロックを基板上に多数搭載し、これらの論理ブロックの間の配線を、前記基板上に搭載させたFeRAMを使用してプログラムできるフィールド・プログラマブル・ゲート・アレイの使用方法であって、前記FeRAMは、複数のメモリセルから構成するとともに、前記各メモリセルは複数のFeRAMセルを含むように構成しておき、前記複数のFeRAMセルのうちの1つに前記プログラムを格納するとともに、その残りのFeRAMセルに前記プログラムと同一のプログラムを格納しておくようにしたことを特徴とするものである。
【0015】
請求項8に記載の発明は、請求項7に記載のフィールド・プログラマブル・ゲート・アレイの使用方法において、前記残りのFeRAMセルに格納される前記プログラムを、バックアップ用プログラムとして使用するようにしたことを特徴とするものである。
請求項9に記載の発明は、請求項7に記載のフィールド・プログラマブル・ゲート・アレイの使用方法において、前記複数のFeRAMセルのうちの1つに格納される前記プログラムと、前記残りのFeRAMセルに格納されるプログラムとを、所定の順序で使用するようにしたことを特徴とするものである。
【0016】
請求項10に記載の発明は、論理ゲートまたはマルチプレクサ等からなる論理ブロックを基板上に多数搭載し、これらの論理ブロックの間の配線を、前記基板上に搭載させたFeRAMを使用してプログラムできるフィールド・プログラマブル・ゲート・アレイの使用方法であって、前記FeRAMは、複数のメモリセルで構成するとともに、前記各メモリセルは複数のFeRAMセルを含むように構成しておき、前記複数のFeRAMセルのうちの一部に前記プログラムとして複数種類のプログラムをそれぞれ格納するとともに、その残りのFeRAMセルに前記複数種類のプログラムと同一のプログラムを格納しておくようにしたことを特徴とするものである。
【0017】
請求項11に記載の発明は、請求項10に記載のフィールド・プログラマブル・ゲート・アレイの使用方法において、前記残りのFeRAMセルに格納される前記プログラムを、バックアップ用プログラムとして使用するようにしたことを特徴とするものである。
請求項12に記載の発明は、請求項10に記載のフィールド・プログラマブル・ゲート・アレイの使用方法において、前記複数のFeRAMセルのうちの一部に格納される前記複数種類のプログラムと、前記残りのFeRAMセルに格納される複数種類のプログラムとを、交互に使用するようにしたことを特徴とするものである。
【0018】
このように請求項7〜請求項9に記載の各発明では、複数のFeRAMセルに対して同一のプログラムを複数個格納しておくようにした。このため、複数個のプログラムのうちの一部をバックアップ用プログラムとして使用したり、またはその複数個のプログラムを所定の順序で使用できる。従って、FPGAの信頼性の向上や長寿命化を図ることができる。
【0019】
また、請求項10〜請求項12に記載の各発明では、複数のFeRAMセルのうちの一部に複数種類のプログラムをそれぞれ格納するとともに、その残りのFeRAMセルにその複数種類のプログラムと同一のプログラムを格納しておくようにした。
このため、残りのFeRAMセルに格納される複数種類のプログラムをバックアップ用プログラムとして使用したり、または複数のFeRAMセルのうちの一部に格納される複数種類のプログラムと、残りのFeRAMセルに格納される複数種類のプログラムとを交互に使用できる。従って、FPGAの信頼性の向上や長寿命化を図ることができる。
【0020】
さらに、本発明の第3の目的を達成するために、請求項13〜請求項15に記載の各発明は、以下のように構成した。
すなわち、請求項13に記載の発明は、論理ゲートまたはマルチプレクサ等からなる論理ブロックを基板上に多数搭載し、これらの論理ブロックの間の配線を、前記基板上に搭載させたFeRAMを使用してプログラムできるフィールド・プログラマブル・ゲート・アレイの使用方法であって、前記フィールド・プログラマブル・ゲート・アレイを、外部とデータの授受ができるカードに認証のためのソフトウエアキーとして搭載し、前記FeRAMは、複数のメモリセルで構成するとともに、前記各メモリセルは複数のFeRAMセルを含むように構成しておき、かつ、前記FeRAMには、前記複数のFeRAMセルに前記プログラムとして1つまたは複数種類のプログラムを書き込んでおき、または必要に応じて前記プログラムを書き換えるようにしたことを特徴とするものである。
【0021】
請求項14に記載の発明は、請求項13に記載のフィールド・プログラマブル・ゲート・アレイの使用方法において、前記カードの使用時に、前記フィールド・プログラマブル・ゲート・アレイは、その予め書き込んであるプログラムに対応する所定のデータを認証装置から受け取り、この受け取った入力データを変換し、この変換データを前記認証装置に送出するようにし、前記認証装置は、前記変換データと期待するデータとを比較し、この比較に基づいてユーザの正当性を判断するようにしたことを特徴とするものである。
【0022】
請求項15に記載の発明は、請求項13または請求項14に記載のフィールド・プログラマブル・ゲート・アレイの使用方法において、前記複数のFeRAMセルに複数種類のプログラムが予め書き込んである場合には、前記ユーザの正当性の判断は、前記フィールド・プログラマブル・ゲート・アレイが前記複数種類のプログラムのうちの任意のプログラムに対応して得られる変換データと期待データの一致、または前記フィールド・プログラマブル・ゲート・アレイが前記複数種類のプログラムのうちの2以上のプログラムに対応して得られる各変換データと各期待データの一致に基づいて行うことを特徴とするものである。
【0023】
このように請求項13〜請求項15に記載の各発明では、フィールド・プログラマブル・ゲート・アレイをソフトウエアキーとして使用できるので、ユーザの認証の識別性を高めることが可能となる。
【0024】
【発明の実施の形態】
以下、本発明のFPGAの第1実施形態の構成について、図面を参照して説明する。
第1実施形態に係るFPGAは、論理ゲートまたはマルチプレクサ等からなる論理ブロックを基板上に多数搭載し、これらの論理ブロックの間の配線を、基板上に搭載させたFeRAM(強誘電体メモリ)を使用してプログラムできるものであり、そのFeRAMの構成の概要を図1に示す。
【0025】
第1実施形態に係るFPGAに搭載されるプログラム用のFeRAM1は、図1に示すように、複数のメモリセルM00〜Mnnが2次元マトリクス状に配置され、そのメモリセルM00〜Mnnに対応して、図中の縦方向にメモリセルM00〜Mnnにしてデータの読み書きを行うためのビット線BL0、XBL0、BL1、XBL1・・・・BLn、XBLnがそれぞれ配置され、かつ、図中の横方向にメモリセルM00〜Mnnを選択するためのワード線WL0〜WLnがそれぞれ配置されている。
【0026】
ビット線BL0、XBL0、ビット線BL1、XBL1、・・・・ビット線BLn、XBLnの各一端側は、対応する差動変換器2−0、2−1、・・・・2−nの各出力側にそれぞれ接続されている。また、ビット線BL0、XBL0、ビット線BL1、XBL1、・・・・ビット線BLn、XBLnの各他端側は、対応する差動アンプ3−0、3−1、・・・・3−nの各入力側にそれぞれ接続されている。
【0027】
従って、差動変換器2−0〜2−nは、書き込みデータDin0〜Dinnを反転させた反転データと非反転データとをそれぞれ出力するようになっており、非反転データがビット線BL0、BL1・・・・BLnに出力され、反転データがビット線XBL0、XBL1・・・・XBLnに出力されるようになっている。
ここで、差動変換器2−0〜2−nは、イネーブル信号ENBAによりその動作が制御されるようになっている。
【0028】
また、差動アンプ3−0〜3−nは、ビット線BL0とビット線XBL0の出力差、ビット線BL1とビット線XBL1の出力差、・・・・ビット線BLnとビット線XBLnの出力差をそれぞれ差動増幅し、出力データDout0〜Doutnとして取り出すようになっている。
ビット線BL0、XBL0、ビット線BL1、XBL1、・・・・ビット線BLn、線XBLnは、対応するOSトランジスタQ0、Q0’、MOSトランジスタQ1、Q1’・・・・MOSトランジスタQn、Qn’のオン動作により、同時に接地されるようになっている。
【0029】
また、MOSトランジスタQ0、Q0、Q1、Q1’・・・・Qn、Qn’の各ゲートには、同一の制御信号PREGが供給されるようになっている。
このように構成されるFeRAMにおける複数のメモリセルM00〜Mnnは、FPGA内に設けられている所望の論理回路を形成するための各スイッチに対応する。
【0030】
次に、図1に示すメモリセルM00〜Mnnは同様に構成されるので、その一例としてメモリセルM00の構成について、図2を参照して説明する。
メモリセルM00は、図2に示すように、一点鎖線で囲まれたSRAMセル4と、複数のFeRAMセル5−0〜5−nとから構成されている。
また、メモリセルM00は、SRAMセル4に外部からデータをいったん書き込み、そのデータをFeRAMセル5−0〜5−nのうちの1つに選択的に書き込んで保持できるようになっている。従って、FeRAMセル5−0〜5−nには、FPGAに係るn個またはn種類のプログラムのデータを保持できるようになっている。
【0031】
さらに、メモリセルM00は、SRAMセル4に書き込んだデータを外部に読み出したり、またはFeRAMセル5−0〜5−nに保持されるデータのうちの1つを選択的に読み出してSRAMセル4に格納することができるようになっている。
また、メモリセルM00は、出力線OUTHと出力線OUTLとを同電位(接地電位)とするために、上記のようにビットラインBLはMOSトランジスタQ0を介して接地され、ビットラインXBLはMOSトランジスタQ0’を介して接地されている。また、MOSトランジスタQ0、Q0’の各ゲートには、制御信号PREGが供給されるようになっている。
【0032】
このような構成により、MOSトランジスタQ0、Q0’をオンにさせ、MOSトランジスタQ8、Q9をオンにすることを条件に、メモリセルM00の出力線OUTHと出力線OUTLの電位を同時に接地電位にできるのみならず、他のメモリセルM10、M20・・・・Mn0の出力線OUTHと出力線OUTLの電位を同時に接地電位にできる(図1参照)。
【0033】
さらに詳述すると、SRAMセル4は、逆接続されるインバータ6、7から構成され1ビットのデータを記憶するフリップフロップと、このフリップフロップに対してデータを読み書きするための2つのN型のMOSトランジスタ8、9とで構成され、電源がオフにならなければ、フリップフロップに1ビットのデータを保持できるようになっている。
【0034】
このために、ビット線BL0とビット線XBL0との間に、MOSトランジスタ8、インバータ6、およびMOSトランジスタ9が直列に接続されるとともに、インバー6にインバータ7が逆接続されている。また、MOSトランジスタQ8、Q9の各ゲートは、ワード線WL0にそれぞれ接続されている。さらに、インバータ6、7の一方の共通接続部は出力線OUTHに接続され、その他方の共通接続部は出力線OUTLに接続されている。
【0035】
インバータ6、7は、電源電圧線PWRHおよび接地電圧線PWRLとで図3に示す電源制御回路10と接続され、電源制御回路10により電源がオンオフ制御されるようになっている。この点については後述する。
次に、FeRAMセル5−0は、2つの強誘電体キャパタC01、C02と、これに対応する2つのスイッチ素子としてのMOSトランジスタQ01、Q02とから構成され、これらによって1ビットのデータを保持できるようになっている。
【0036】
また、同様に、FeRAMセル5−1は、強誘電体キャパタC11、C12と、MOSトランジスタQ11、Q12とから構成され、・・・・FeRAMセル5−nは、強誘電体キャパタCn1、Cn2と、MOSトランジスタQn1、Qn2とから構成されている。
さらに詳述すると、ポンプ線PUMP1と出力線OUTHとの間に、強誘電体キャパシタC01とMOSトランジスタQ01とが直列に接続されている。ポンプ線PUMP1と出力線OUTLとの間に、強誘電体キャパシタC02とMOSトランジスタQ02とが直列に接続されている。MOSトランジスタQ01、Q02の各ゲートには、キャパシタ線CLO1が接続されている。
【0037】
また、ポンプ線PUMP2と出力線OUTHとの間に、強誘電体キャパシタC11とMOSトランジスタQ11とが直列に接続されている。ポンプ線PUMP2と出力線OUTLとの間に、強誘電体キャパシタC12とMOSトランジスタQ12とが直列に接続されている。MOSトランジスタQ11、Q12の各ゲートには、キャパシタ線CLO2が接続されている。
【0038】
さらに、ポンプ線PUMPnと出力線OUTHとの間に、強誘電体キャパシタCn1とMOSトランジスタQn1とが直列に接続されている。ポンプ線PUMPnと出力線OUTLとの間に、強誘電体キャパシタCn2とMOSトランジスタQn2とが直列に接続されている。MOSトランジスタQn1、Qn2の各ゲートには、キャパシタ線CLOnが接続されている。
【0039】
次に、インバータ6、7の電源を制御する電源制御回路10の構成について、図3を参照して説明する。
この電源制御回路10は、図3に示すように、インバータ11と、P型のMOSトランジスタ12と、N型のMOSトランジスタ13とからなる。そして、この電源制御回路10は、イネーブルパワー信号ENBPにより、MOSトランジスタQ12、13が同時にオンすると、電源電圧線PWRHを介してインバータ6、7に電源電圧VDDが供給され、MOSトランジスタQ12、13が同時にオフすると、電源電圧VDDの供給が停止されるようになっている。
【0040】
このように、インバータ6、7の電源のオンオフを制御するのは、後述のように、FeRAMセル5−0〜5−nからデータを読み出すときに、オフにする必要があるからである。
なお、電源制御回路10は、図1に示す複数のメモリセルM00〜Mnnに個別に設けるようにしても良いが、その配置面積を減らために、複数のメモリセルM00〜Mnnに共通に使用するのが好ましい。
【0041】
次に、このような構成からなる第1実施形態に係るFPGAに搭載されるプログラム用のFeRAM1の動作例に、図4〜図6を参照して説明する。
まず、図2に示すメモリセルM00のSRAMセル4にデータを書き込み、その書き込んだデータをFeRAMセル5−0に保持する場合の動作について、図4を参照して説明する。
【0042】
ここで、電源投入時の各部の状態は重要ではないので、図4に示すように、ビット線BL、XBLおよび出力線OUTL、OUTHのデータは不定とし、他の部分の信号はLレベル(ローレベル)にしている。
この動作では、FeRAMセル5−1〜5−nにはアクセスしないので、キャパシタ線CLO2〜CLOn、およびポンプ線PUMP2〜PUMPnはLレベルとする。また、FeRAMセル5−0からのデータの読み出しも行わないので、制御信号PREGもLレベルとする。
【0043】
いま、図4に示すように、時刻t1において電源が投入されると、電源電圧VDDが立ち上がる。その後、時刻t2において、イネーブルパワー信号ENBPがHレベル(ハイレベル)に立ち上がると、MOSトランジスタ12がオンして、電源電圧VDDが電源電圧線PWRHを介してインバータ6、7に供給される。
【0044】
次に、データDin0をSRAMセル4に書き込む。ここでは、データDin0としてHレベルを書き込むので、時刻t3において、データDin0をHレベルにする。その後、時刻t4において、イネーブル信号ENBAをHレベルにし、差動変換器2−0をアクティブの状態にする。
ここで、差動変換器2−0は、入力としてHレベルが入力されると、+出力端子からはHレベルが出力され、−出力端子からはLレベルが出力されるようになっている。この結果、図4に示すように、ビット線BL0はHレベル、ビット線XBL0はLレベルとなる。
【0045】
次に、時刻t5において、ワード線WL0をHレベルとするので、MOSトランジスタ8、9がオンとなる。この結果、ビット線BL0と出力線OUTHが接続され、ビット線XBL0と出力線OUTLが接続される。
ここで、差動変換器2−0は、インバータ6、7のよりも、出力インピーダンスが低い(ドライブ能力が高い)ように設計されている。このため、差動変換器2−0の出力に基づき、出力線OUTH側はHレベル、出力線OUTL側はLレベルとなる(図4参照)。
【0046】
その後、時刻t6においてワード線WL0をHレベルからLレベルとし、時刻t7においてイネーブル信号ENBAをHレベルからLレベルとする。
ここで、ワード線WL0をLレベルにさせ、ビット線BL0と出力線OUTHを切断するとともに、ビット線XBL0と出力線OUTLを切断しても、インバータ6、7は逆接続されてデータを保持しているので、出力線OUTHはHレベルを保持し、出力線OUTLはLレベルを保持する。この状態は、SRAMセル4にデータを新たに書き換えるか、または電源がオフとならない限り維持される。
【0047】
その後、時刻t8において、データDin0をHレベルからLレベルに変化させる。
次に、このようにSRAMセル4に書き込まれたデータを、FeRAMセル5−0に格納(保管)しておくことにより、FPGA内に回路を構築できるので、そのFeRAMセル5−0へのデータの格納動作について以下に説明する。
【0048】
この場合には、時刻t9において、キャパシタ線CLO1をHレベルとする。この結果、MOSトランジスタQ01、Q02がいずれもオンするので、強誘電体キャパシタC01に出力線OUTHのHレベルの電位が印加され、強誘電体キャパシタC02に出力線OUTLのLレベルの電位が印加される。このときには、強誘電体キャパシタC01、C02に接続されているポンプ線PUMP1の電位はLレベルである。
【0049】
ここで、強誘電体キャパシタC01、C02の分極方向は、図4に示すように矢印で示すものとし、矢印の向きはHレベルからLレベルの方向に一致するものとする。
時刻t9〜時刻t10の期間T1では、強誘電体キャパシタC01は、上側の電極にHレベルの電位が印加され、下側の電極にLレベルの電位が印加されるので、その分極方向は図4に示すように下向きの矢印となる。このとき、強誘電体キャパシタC02は、上側の電極にLレベルの電位が印加され、下側の電極にLレベルの電位が印加されるので、その分極方向は初期状態の不安定のままとなり、この状態を図4では記号「−」で表す。
【0050】
時刻t10において、ポンプ線PUMP1をHレベルとする。この結果、強誘電体キャパシタC01は、上側の電極にHレベルの電位が印加され、下側の電極にHレベルの電位が印加されて同電位となるので、その分極方向は図4に示すように下向きの矢印のままになる。このとき、強誘電体キャパシタC02は、上側の電極にLレベルの電位が印加され、下側の電極にHレベルの電位が印加されるので、その分極方向は図4に示すように上向きの矢印になる。
【0051】
その後、時刻t11においてポンプ線PUMP1をHレベルからLレベルとし、時刻t12においてキャパシタ線CLO1をHレベルからLレベルとする。
このような動作により、強誘電体キャパシタC01、C02に分極が残り、データの保存が完了する。この分極の方向は電源がオフされても残るので、メモリセルM00は、不揮発性RAMとなる。
【0052】
なお、以上の説明は、FeRAMセル5−0へのデータの格納動作であるが、他のFeRAMセル5−1〜5〜nについても同様な動作によりデータを格納することができる。
次に、上記のように、メモリセルM00のSRAMセル4にデータを書き込み、その書き込んだデータをFeRAMセル5−0に保持したのち、SRAMセル4に書き込んだデータを外部に読み出してチェックする場合の動作について、図5を参照して説明する。
【0053】
このときには、インバータ6、7からなるフリップフロップにデータが格納されており、出力線OUTHはHレベル、出力線OUTLはLレベルとする。また、メモリセルM00の各部の状態は、図5に示すものとする。
図5に示すように、時刻t1においてワード線WL0をHレベルにすると、MOSトランジスタ8、9がいずれもオンとなる。この結果、ビット線BL0と出力線OUTHが接続され、ビット線XBL0と出力線OUTLが接続されるので、出力線OUTHと出力線OUTLの各電位が、ビット線BL0とビット線XBL0に伝達される。
【0054】
このため、時刻t1〜t2の期間T1において、差動アンプ3−0は、ビット線BL0とビット線XBL0との電位差を検出し、それに応じた出力データDout0を読み出す。その後、時刻t2にワード線WL0をHレベルからLレベルにすると、読み出し動作を終了する。
ここで、データの高速な読み出しのために、予め制御信号PREGをHレベル、すなわちビット線BL0とビット線XBL0をLレベルにしておき、その後にワード線WL0をHレベルにする直前に制御信号PREGをLレベルにするようにしても良い。なお、このときには、ワード線WL0をHレベルにする直前に、制御信号PREGをLレベルからHレベル、更にLレベルにするようにしてもかまわない。
【0055】
次に、上記のように、メモリセルM00のFeRAMセル5−0に保持させたデータを、出力線OUTH、OUTLに読み出す場合の動作について、図6を参照しながら説明する。
まず、インバータ6、7をオフ(ハイインピーダンス状態)にするために、時刻t1において、イネーブルパワー信号ENBPをLレベルにする。これにより、電源電圧VDDのインバータ6、7への供給が停止されて、インバータ6、7がオフの状態になる。
【0056】
また、時刻t1では、制御信号PREGをHレベルにするので、MOSトランジスタQ0、Q0’がいずれもオンになる。この結果、ビット線BL0およびビット線XBL0はいずれも接地され、Lレベルとなる。
次に、時刻t2では、ワード線WL0をHレベルにするので、MOSトランジスタ8、9がいずれもオンとなる。この結果、ビット線BL0と出力線OUTHが接続され、ビット線XBL0と出力線OUTLが接続されるので、出力線OUTHと出力線OUTLの各電位はLレベルとなる。
【0057】
また、時刻t2では、キャパシタ線CLO1をHレベルとするので、MOSトランジスタQ01、Q02がいずれもオンになる。この結果、強誘電体キャパシタC01と出力線OUTHが接続され、強誘電体キャパシタC02と出力線OUTLが接続される。
引き続き、時刻t3において、ワード線WL0をHレベルからLレベルとし、ビット線BL0と出力線OUTHを切断させ、ビット線XBL0と出力線OUTLを切断させる。このときには、出力線OUTHと出力線OUTLは、図6に示すようにLレベルを維持している。
【0058】
次に、時刻t4において、ポンプ線PUMP1をHレベルにし、強誘電体キャパシタC01、C02とに電圧を印加させ、電荷を注入する。このときの電荷量と分極に着目すると、図6に示すように、強誘電体キャパシタC01は分極と逆の電位が印加されるので、分極方向が逆になる。また、強誘電体キャパシタC02は、同方向であるので、分極に変化が起こらない。
【0059】
この動作を電荷で考えると、強誘電体キャパシタC01は分極方向が変わることにより、出力線OUTHに変化に応じた電荷を排出することになる。これに対して、強誘電体キャパシタC02は分極方向の変化がないので、出力線OUTLに電荷の排出はない。ただし、電荷の排出は、分極によるものだけではないが、ここでは、電荷の排出量の差をデータとして取り出すので、他の影響は少ないためにその記述は省略する。
【0060】
この電荷の排出量の差によって、図6の時刻t4〜t5の期間T1では、出力線OUTHの電位と出力線OUTLの電位とでは、その差が現れる。すなわち、最終的に、出力線OUTHの電位が、出力線OUTLの電位よりも高くなる。
ここで、図6では、時刻t4においてポンプ線PUMP1をHレベルにするときに、制御信号PREGをLレベルとしているが、特にこのようにする必要はない。従って、ビット線BL0とビット線XBL0との電位を固定させるために、制御信号PREGをHレベルのままにしておいても良い。
【0061】
時刻t5において、イネーブルパワー信号ENBPをHレベルにすると、インバータ6、7がアンプとして動作し、出力線OUTHと出力線OUTLとの電位差をさらに広げて、出力線OUTHをHレベルにさせ、出力線OUTLをLレベルにさせる。このときには、ポンプ線PUMP1はLレベルにしておく。
以上により、FeRAMセル5−0からのデータの読み出し動作は終了する。しかし、実際には、時刻t4から時刻t6の期間T2では、強誘電体キャパシタC01、C02は、特に強誘電体キャパシタC02は、分極方向が同じでも、その分極量が変化している。
【0062】
このため、ポンプ線PUMP1を、時刻t6においてHレベルにしたのち時刻t7においてLレベルに変化させ、強誘電体キャパシタC01、C02の分極方向を、もう一度SRAMセル4に書き込む(リライト)ようにしている。
このようにしてFeRAMセル5−0からSRAMセル4に読み出したデータを、外部に読み出したい場合には、図5に示した動作により行う。
【0063】
このような動作によれば、電源投入後であっても、強誘電体キャパシタC01、C02からデータを読み出すことができる。
また、FeRAMセル5−0〜5−nに保持される各データのうちの任意のデータの読み出しは、キャパシタ線CLO1〜CLOn、および電源線PUMP1〜PUMPnの選択的な動作により行うことができる。
【0064】
ここで、FeRAMセル5−0〜5−nからのデータの読み出しは、図1に示す全てのメモリセルM00〜Mnnについて同時にできるので、図6に示すような制御動作を一度行うだけで良い。
また、電源投入後のメモリセルM00〜Mnnへのプログラミング、その保持されたプログラムの切り替えも一度に制御できるので、高速である。
【0065】
以上説明したように、本発明のFPGAの第1実施形態では、プログラム用のFeRAM1を、図1に示すように複数のメモリセルM00〜Mnnから構成し、そのメモリセルM00〜Mnnは、SRAMセル4と、複数のFeRAMセル5−0〜5−nとから構成するようにした。
さらに、メモリセルM00〜Mnnの各出力線OUTH、OUTLを同時に同電位(接地電位)にするために、複数のメモリセルに共通に使用する一対のビット線を、それぞれMOSトランジスタを介して接地させるようにした。
【0066】
このため、メモリセルM00〜Mnnの各出力線OUTH、OUTLを同電位にするための構成を簡略化でき、省スペース化を実現できる。
また、メモリセルM00〜Mnnは、複数のFeRAMセル5−0〜5−nを備えているので、複数のプログラムを書き込むことができ、1つのFPGAで複数の論理回路を構成してその使い分けができる。
【0067】
従って、例えばこのFPGAを無線通信に使用する場合には、データの処理方法が違う通信を、1つのFPGAでプログラムを切り替えながらデータの処理をすることができる。また、そのプログラムの切り替えも高速にできる。
さらに、この第1実施形態では、メモリセルM00〜Mnnが、複数のFeRAMセル5−0〜5−nを含むようにしたので、製品の仕様に対して、余分にFeRAMセルを確保しておくようにすれば、不良メモリを良メモリに置き換えて仕様を満足することができる。このため、歩留りの改善となり、製品のコストダウンに寄与できる。
【0068】
さらにまた、この第1実施形態では、メモリセルM00〜Mnnが、それぞれ複数のFeRAMセル5−0〜5−nを含むようにしたので、その全てのFeRAMセル5−0〜5−nに同一のデータを書き込み、FeRAMセル群(プログラム)毎にデータを比較し、同じであれば良品、違いがあるときには不良品と判断できる。
【0069】
次に、第1実施形態に係るFPGAの使用方法の例について説明する。
まず、第1実施形態に係るFPGAの第1の使用方法について説明する。
この第1の使用方法は、複数のメモリセルM00〜Mnnに含まれる複数のFeRAMセル5−0〜5−nのうち、例えばFeRAMセル5−0にFPGAのプログラムを予め格納するとともに、FeRAMセル5−1にその同じプログラムをバックアップ用プログラムとして予め格納しておくものとする。
【0070】
そして、FeRAMセル5−0に格納されるプログラムと、FeRAMセル5−1に格納されるバックアップ用プログラムとを随時または定期的に比較し、両者の内容が正しかい否かを判断する。
このようにすると、その判断の結果により適切処理ができ、FPGAの信頼性を向上できる。
【0071】
ここで、FPGAを書き換え可能なハードウエアキーとして使用するような場合には、FeRAMセル5−1、5−2・・・などに2以上のバックアップ用プログラムを予め格納しておくようにする。
そして、FeRAMセル5−0に格納されるプログラムと、FeRAMセル5−1、5−2・・・・に格納される2以上のバックアップ用プログラムとそれぞれ比較し、多数決によりプログラムの内容が正しかい否かを決定する。
【0072】
このようにすると、FPGAを書き換え可能なハードウエアキーとして使用するような場合に、より高い信頼性を確保できる。
なお、第1の使用例の変形例として、複数のFeRAMセル5−0〜5−nのうち、例えばFeRAMセル5−0、5−1にFPGAの2種類類のプログラムというように、複数種類のプログラムを予め格納するとともに、FeRAMセル5−2、5−3にその同じ複数種類のプログラムを、バックアップ用プログラムとして予め格納しておくようにしてもよい。
【0073】
このようにすると、FPGAで複数種類のプログラムを使用する場合に、上記と同様に使用できる上に、上記と同様な効果が得られる。
次に、第1実施形態に係るFPGAの第2の使用方法について説明する。
この第2の使用方法は、複数のメモリセルM00〜Mnnに含まれる複数のFeRAMセル5−0〜5−nのうち、例えばFeRAMセル5−0にFPGAのプログラムを予め格納するとともに、FeRAMセル5−1にその同じプログラムを予め格納しておくものとする。
【0074】
そして、FPGAの使用時には、FeRAMセル5−0に格納されるプログラムと、FeRAMセル5−1に格納されるプログラムとを、例えば交互というように、所定の順序で読み出して使用するようにした。
このように、複数のFeRAMセル5−0〜5−nのうちの2以上に、同一のプログラムを格納しておき、FPGAの使用時に、その各プログラムを所定の順番に読み出して使用すれば、FeRAMの寿命を延ばすことができる。それは、強誘電体キャパシタは、その材料の特性上、使用回数とデータの保持時間に制限があるためである。
【0075】
なお、第2の使用例の変形例として、複数のFeRAMセル5−0〜5−nのうち、例えばFeRAMセル5−0、5−1にFPGAの2種類類のプログラムというように、複数種類のプログラムを予め格納するとともに、FeRAMセル5−2、5−3にその同じ複数種類のプログラムを予め格納しておくようにしてもよい。
【0076】
このようにすると、FPGAで複数種類のプログラムを使用する場合に、上記と同様に使用できる上に、上記と同様な効果が得られる。
次に、第1実施形態に係るFPGAの第3の使用方法について説明する。
この第3の使用方法は、FPGAをカードなどに搭載して認証用のハードウエアキーとして使用するものであり、その具体的な使用例を図12に示す。
【0077】
この使用例では、図12に示すように、カード31内に、ハードウエアキーとして「プログラムA」で回路構成されたFPGA32を実装させておく。
ここで、FPGA32の内蔵されるFeRAMは、図1および図2に示すように構成されている。
利用者(ユーザ)は、コンピュータなどからなる認証装置33に対してユーザ名とパスワード(暗証番号)を入力し、そのカード31を認証装置33に接続する。
【0078】
認証装置33は、ユーザ名とパスワードに基づいて、カード31の種類(個人の識別の正確性を高めるためにFPGA32を複数種類用意した場合)とFPGA32内のプログラムの内容を判断し、送信データと期待する受信データとをそれぞれ用意し、その送信データを送信する。
その送信データはカード31に送られ、カード31が受信する。この受信データは、「プログラムA」で回路構成されたFPGA32で変換(処理)され、この変換されたデータを認証装置33に返送する。
【0079】
認証装置33は、「期待する受信データ」と受信した「変換データ」とを比較し、その比較結果に基づいて利用者の正当性、すなわち利用者が正当使用であるか不正使用であるかを判断する。すなわち、その両者が一致の場合には正当使用と判断し、その両者が不一致の場合には不正使用と判断する。
ここで、FPGA32が複数のプログラムを格納する場合には、複数のプログラムについて上記の処理を行ってその不一致をもって不正使用を判断したり、またはその複数のプログラムのうちの任意のプログラムの不一致をもって不正使用を判断すれば、さらに不正使用の判断の正確性を高めることができる。
【0080】
ところで、FPGA32のプログラムは、ハードウエアキーとしての機能を高めるために書き換える。そのプログムの書き換えは、通信時に随時行うか、上記の使用時に同じ手続により自動で行うようにすれば、利用者も第3者もその中身(内容)を知ることができないので、機密性が高い。
ここで、FPGA32に使用されるFeRAMは、強誘電体キャパシタを使用しているので、FPGA32のパッケージを剥がそうとすると、強誘電体が薬品で腐食されるので、プログラムを解析できず、機密性が高い。
【0081】
次に、本発明のFPGAの第2実施形態の構成について説明する。
この第2実施形態に係るFPGAは、上記の第2実施形態に係るFPGAと基本的な構成はほぼ同一であり、図1に示すFeRAM1を図7に示すようなFeRAM21に置き換えたものである。
第2実施形態に係るFPGAに搭載されるプログラム用のFeRAM21は、図7に示すように、複数のメモリセルME00〜MEnnが2次元マトリクス状に配置され、そのメモリセルME00〜MEnnに対応して、図中の縦方向にメモリセルME00〜MEnnに対するデータの読み書きを行うためのビット線BL00〜BLnが配置され、かつ、図中の横方向にメモリセルME00〜MEnnを選択するためのワード線WL0〜WLnが配置されている。
【0082】
ビット線BL00、BL1、・・・・BLnの各一端側は、対応する入力用のバッファ22−0、22−1、・・・・22−nの各出力側にそれぞれ接続されている。また、ビット線BL00、BL1、・・・・BLnの各他端側は、対応する出力用のバッファ23−0、23−1、・・・・23−nの各入力側にそれぞれ接続されている。
【0083】
ワード線WL0は、メモリセルME00、ME01・・・・ME0nを選択できるようになっている。ワード線WL1は、メモリセルME10、ME11・・・・ME1nを選択できるようになっている。同様に、ワード線WLnは、メモリセルMEn0、MEn1・・・・MEnnを選択できるようになっている。
ビット線BL00、BL1、・・・・BLnは、対応するMOSトランジスタQ0、Q1、・・・・Qnを介して接地されるようになっている。すなわち、ビット線BL00、BL1、・・・・BLnは、MOSトランジスタQ0、Q1、・・・・Qnのオン動作により、同時に接地されるようになっている。
【0084】
このように構成されるFeRAM21における複数のメモリセルME00〜MEnnは、FPGA内に設けられている所望の論理回路を形成するための各スイッチに対応する。
次に、図7に示すメモリセルME00〜MEnnは同様に構成されるので、その一例としてメモリセルME00の構成について、図8を参照して説明する。
【0085】
メモリセルME00は、図8に示すように、一点鎖線で囲まれたSRAMセル24と、複数のFeRAMセル5−0〜5−nとから構成されている。
また、メモリセルME00は、SRAMセル24に外部からデータをいったん書き込み、そのデータをFeRAMセル5−0〜5−nのうちの1つに選択的に書き込んで保持できるようになっている。従って、FeRAMセル5−0〜5−nには、FPGAに係るn個またはn種類のプログラムのデータを保持できるようになっている。
【0086】
さらに、メモリセルME00は、SRAMセル24に書き込んだデータを読み出すことができるとともに、FeRAMセル5−0〜5−nに保持されるデータのうちの1つを選択的に読み出すことができるようになっている。
また、メモリセルME00は、出力線OUTHと出力線OUTLとを同電位(接地電位)とするために、ビットラインBL0がMOSトランジスタQ0を介して接地され、出力線OUTLがMOSトランジスタ25を介して接地されている。また、MOSトランジスタQ0とMOSトランジスタ25の各ゲートには、制御信号PREGが供給されるようになっている。
【0087】
このような構成により、MOSトランジスタQ0、25をオンにさせると、MOSトランジスタ8をオンにさせることを条件に、メモリセルME00の出力線OUTHと出力線OUTLの電位を同時に接地電位にできるのみならず、他のメモリセルME10、ME20・・・・MEn0の出力線OUTHと出力線OUTLの電位を同時に接地電位にできる(図7参照)。
【0088】
さらに詳述すると、SRAMセル24は、互いに逆接続されるインバータ6、7から構成されるフリップフロップと、このフリップフロップに対して読み書きを行うN型のMOSトランジスタ8とで構成され、電源がオフにならなければ、1ビットのデータを保持できるようになっている。
このために、ビット線BL0にMOSトランジスタ8が接続され、これにインバータ6が直列に接続されるとともに、インバー6にインバータ7が逆接続されている。また、MOSトランジスタ8ゲートは、ワード線WL0に接続されている。さらに、インバータ6、7の一方の共通接続部は出力線OUTHに接続され、その他方の共通接続部は出力線OUTLに接続されている。
【0089】
インバータ6、7は、電源電圧線PWRHおよび接地電圧線PWRLとで図3に示す電源制御回路10と接続され、電源制御回路10により電源がオンオフ制御するようになっている。
なお、FeRAMセル5−0〜5−nの構成は、出力線OUTHがMOSトランジスタQ25により接地される点を除けば、図2に示すFeRAMセル5−0〜5−nの構成と同一であるので、その説明は省略する。
【0090】
次に、このような構成からなる第2実施形態に係るFPGAに搭載されるプログラム用のFeRAM21の動作例について、図9〜図11を参照しながら説明する。
まず、図8に示すメモリセルME00のSRAMセル24にデータを書き込み、その書き込んだデータをFeRAMセル5−0に保持する場合の動作について、図9を参照して説明する。
【0091】
ここで、電源投入時の各部の状態は重要ではないので、図9に示すように、ビット線BL0および出力線OUTL、OUTHのデータは不定とし、他の部分の信号はLレベルにしている。
この動作では、FeRAMセル5−1〜5−nにはアクセスしないので、キャパシタ線CLO2〜CLOn、およびポンプ線PUMP2〜PUMPnはLレベルとする。また、FeRAMセル5−0からのデータの読み出しも行わないので、制御信号PREGもLレベルとする。
【0092】
いま、図9に示すように、時刻t1において電源が投入されると、電源電圧VDDが立ち上がる。その後、時刻t2において、イネーブルパワー信号ENBPがHレベルに立ち上がると、図3に示す電源制御回路10のMOSトランジスタ12、13がオンして、電源電圧VDDが電源電圧線PWRH、PWRLを介してインバータ6、7に供給される。
【0093】
次に、データDin0をSRAMセル24に書き込む。ここでは、データDin0としてHレベルを書き込むので、時刻t3において、データDin0をHレベルにする。その後、時刻t4において、イネーブル信号ENBAをHレベルにし、バッファ22−0をアクティブの状態にする。ここで、バッファ22−0がアクティブになると、ビット線BL0はHレベルになる。
【0094】
次に、時刻t5において、ワード線WL0をHレベルとするので、MOSトランジスタ8がオンとなる。この結果、ビット線BL0と出力線OUTHとが接続される。
ここで、バッファ22−0は、インバータ6、7のよりも、出力インピーダンスが低い(ドライブ能力が高い)ように設計されている。このため、バッファ22−0の出力に基づき、出力線OUTH側はHレベル、出力線OUTL側はLレベルとなる(図9参照)。
【0095】
その後、時刻t6においてワード線WL0をHレベルからLレベルとし、時刻t7においてイネーブル信号ENBAをHレベルからLレベルとする。
ここで、ワード線WLをLレベルにさせ、ビット線BL0と出力線OUTHを切断しても、フリップフロップを構成するインバータ6、7はデータを保持しているので、出力線OUTHはHレベルを保持し、出力線OUTLはLレベルを保持する。この状態は、SRAMセル24にデータを新たに書き換えるか、または電源がオフとならない限り維持される。
【0096】
その後、時刻t8において、データDin0をHレベルからLレベルに変化させる。
次に、上記のようにしてSRAMセル24に書き込まれたデータを、FeRAMセル5−0にあらかじめ格納(保管)しておくことにより、FPGA内に回路を構築できるので、そのFeRAMセル5−0へのデータの格納動作について以下に説明する。
【0097】
この場合には、時刻t9において、キャパシタ線CLO1をHレベルとする。この結果、MOSトランジスタQ01、Q02がいずれもオンするので、強誘電体キャパシタC01に出力線OUTHのHレベルの電位が印加され、強誘電体キャパシタC02に出力線OUTLのLレベルの電位が印加される。このときには、強誘電体キャパシタC01、C02に接続されているポンプ線PUMP1の電位はLレベルである。
【0098】
ここで、強誘電体キャパシタC01、C02の分極方向は、図9に示すように矢印で示すものとし、矢印の向きは電位がHレベルからLレベルの方向に一致するものとする。
時刻t9〜時刻t10の期間t1では、強誘電体キャパシタC01は、上側の電極にHレベルの電位が印加され、下側の電極にLレベルの電位が印加されるので、その分極方向は図9に示すように下向きの矢印となる。このとき、強誘電体キャパシタC02は、上側の電極にLレベルの電位が印加され、下側の電極にLレベルの電位が印加されるので、その分極方向は初期状態の不安定のままとなり、この状態を図9では記号「−」で表す。
【0099】
時刻t10において、ポンプ線PUMP1をHレベルとする。この結果、強誘電体キャパシタC01は、上側の電極にHレベルの電位が印加され、下側の電極にHレベルの電位が印加されて同電位となるので、その分極方向は図9に示すように下向きの矢印のままになる。このとき、強誘電体キャパシタC02は、上側の電極にLレベルの電位が印加され、下側の電極にHレベルの電位が印加されるので、その分極方向は図9に示すように上向きの矢印になる。
【0100】
その後、時刻t11においてポンプ線PUMP1をHレベルからLレベルとし、時刻t12においてキャパシタ線CLO1をHレベルからLレベルとする。
このような動作により、強誘電体キャパシタC01、C02に分極が残り、データの保存が完了する。この分極の方向は電源がオフされても残るので、メモリセルME00は、不揮発性RAMとなる。
【0101】
なお、以上の説明は、FeRAMセル5−0へのデータの格納動作であるが、他のFeRAMセル5−1〜5〜nについても同様な動作によりデータを格納することができる。
次に、上記のように、メモリセルME00のSRAMセル24にデータを書き込み、その書き込んだデータをFeRAMセル5−0に保持したのち、SRAMセル24に書き込んだデータを外部に読み出してチェックする場合の動作について、図10を参照して説明する。
【0102】
このときには、インバータ6、7からなるフリップフロップにデータが格納されており、出力線OUTHはHレベル、出力線OUTLはLレベルとする。また、メモリセルME00の各部の状態は、図10に示すものとする。
図10に示すように、時刻t1においてワード線WLをHレベルにすると、MOSトランジスタ8がオンとなる。この結果、ビット線BL0と出力線OUTHが接続されるので、出力線OUTHの電位がビット線BL0に伝達される。
【0103】
このため、時刻t1〜t2の期間t1において、バッファ23−0は、ビット線BL0の電位を検出し、それに応じた出力データDout、この場合DoutはHレベルを読み出す。その後、時刻t2にワード線WLをHレベルからLレベルにすると、読み出し動作を終了する。
次に、上記のように、FeRAMセル5−0に保持させたデータを、出力線OUTH、OUTL上に読み出す場合の動作について、図11を参照しながら説明する。
【0104】
まず、インバータ6、7をオフ(ハイインピーダンス状態)にするために、時刻t1において、イネーブルパワー信号ENBPをLレベルにする。これにより、電源電圧VDDのインバータ6、7への供給が停止されて、インバータ6、7がオフの状態になる。
次に、時刻t2では、制御信号PREGをHレベルにするので、MOSトランジスタQ0とMOSトランジスタ25がいずれもオンになる。この結果、ビット線BL0および出力線OUTLはいずれも接地され、Lレベルとなる。
【0105】
その後、時刻t3では、ワード線WLをHレベルにするので、MOSトランジスタ8がオンとなる。この結果、ビット線BL0と出力線OUTHが接続され、出力線OUTHの電位もLレベルとなる。
また、時刻t3では、キャパシタ線CLO1をHレベルとするので、MOSトランジスタQ01、Q02がいずれもオンになる。この結果、強誘電体キャパシタC01と出力線OUTHが接続され、強誘電体キャパシタC02と出力線OUTLが接続される。
【0106】
引き続き、時刻t4において、ワード線WL0と制御信号PREGをHレベルからLレベルとし、ビット線BL0と出力線OUTHを切断させると同時に、出力線OUTLの接地状態を解除する。このときには、出力線OUTHと出力線OUTLは、図11に示すようにLレベルを維持している。
次に、時刻t5において、ポンプ線PUMP1をHレベルにし、強誘電体キャパシタC01、C02とに電圧を印加させ、電荷を注入する。このときの電荷量と分極に着目すると、図11に示すように、強誘電体キャパシタC01は分極と逆の電位が印加されるので、分極方向が逆になる。また、強誘電体キャパシタC02は、同方向であるので、分極に変化が起こらない。
【0107】
この動作を電荷で考えると、強誘電体キャパシタC01は分極方向が変わることにより、出力線OUTHに変化に応じた電荷を排出することになる。これに対して、強誘電体キャパシタC02は分極方向の変化がないので、出力線OUTLに電荷の排出はない。
この電荷の排出量の差によって、図11の時刻t5〜t6の期間T1においては、出力線OUTHの電位と出力線OUTLの電位とでは、その差が現れる。すなわち、最終的に、出力線OUTHの電位が、出力線OUTLの電位よりも高くなる。
【0108】
時刻t6において、イネーブルパワー信号ENBPをHレベルにすると、インバータ6、7がアンプとして動作し、出力線OUTHと出力線OUTLとの電位差をさらに広げて、出力線OUTHをHレベルにさせ、出力線OUTLをLレベルにさせる。このときには、ポンプ線PUMP1もLレベルにしておく。
以上により、FeRAMセル5−0からのデータの読み出し動作は終了する。しかし、実際には、時刻t5から時刻t7の期間T2では、強誘電体キャパシタC01、C02は、特に強誘電体キャパシタC02は、分極方向が同じでも、その分極量が変化している。
【0109】
このため、ポンプ線PUMP1を、時刻t7においてHレベルにしたのち時刻t8においてLレベルにし、強誘電体キャパシタC01、C02の分極方向を、もう一度SRAMセル24に書き込む(リライト)ようにしている。
このようにしてFeRAMセル5−0からSRAMセル24に読み出したデータを、外部に読み出したい場合には、図10に示した動作により行う。
【0110】
このような動作によれば、電源投入後であっても、強誘電体キャパシタC01、C02からデータを読み出すことができる。
また、FeRAMセル5−0〜5−nに保持される各データのうちの任意のデータの読み出しは、キャパシタ線CLO1〜CLOn、および電源線PUMP1〜PUMPnの選択的な動作により行うことができる。
【0111】
ここで、FeRAMセル5−0〜5−nからのデータの読み出しは、図7に示す全てのメモリセルME00〜MEnnについて同時にできるので、図11に示すような制御動作を一度行うだけで良い。
また、電源投入後のメモリセルME00〜MEnnへのプログラミング、その保持されたプログラムの切り替えも一度に制御できるので、高速である。
【0112】
以上説明したように、本発明のFPGAの第2実施形態では、プログラム用のFeRAM21を、図7に示すように複数のメモリセルME00〜MEnnから構成し、そのメモリセルME00〜MEnnは、SRAMセル24と、複数のFeRAMセル5−0〜5−nとから構成するようにした。
さらに、メモリセルME00〜MEnnの各出力線OUTH、OUTLを同時に同電位(接地電位)にするために、複数のメモリセルに共通に使用するビット線を、MOSトランジスタを介して接地させるようにした。
【0113】
このため、メモリセルME00〜MEnnの各出力線OUTH、OUTLを同電位にするための構成を簡略化でき、省スペース化を実現できる。
また、メモリセルME00〜MEnnは、複数のFeRAMセル5−0〜5−nを備えているので、複数のプログラムを書き込むことができ、1つのFPGAで複数の論理回路を構成してその使い分けができる。
【0114】
さらに、この第2実施形態では、メモリセルME00〜MEnnが、複数のFeRAMセル5−0〜5−nを含むようにしたので、製品の仕様に対して、余分にFeRAMセルを確保しておくようにすれば、不良メモリを良メモリに置き換えて仕様を満足することができる。このため、歩留りの改善となり、製品のコストダウンに寄与できる。
【0115】
さらにまた、この第2実施形態では、メモリセルME00〜MEnnが、それぞれ複数のFeRAMセル5−0〜5−nを含むようにしたので、その全てのFeRAMセル5−0〜5−nに同一のデータを書き込み、FeRAMセル群(プログラム)毎にデータを比較し、同じであれば良品、違いがあるときには不良品と判断できる。
【0116】
なお、第2実施形態に係るFPGAは、第1実施形態に係るFPGAの使用方法と同様の使用方法が適用できること勿論であり、その説明は重複するので、ここではその説明は省略する。
【0117】
【発明の効果】
以上説明したように、本発明のFPGAによれば、FPGAに複数のプログラムを格納すべきFeRAMを内蔵する際に、FeRAMの省スペース化を図ることができる。
本発明のFPGAの使用方法によれば、1つのプログラムにより1つの論理回路を構成して使用し、または複数種類のプログラムにより複数の論理回路を構成してその論理回路を選択的に使用するような場合に、信頼性の向上または長寿命化を図ることができる。
【0118】
さらに、本発明のFPGAの使用方法によれば、FPGAをハードウエアキーとして使用した場合に、その機能を高めることがきる。
【図面の簡単な説明】
【図1】本発明のFPGAの第1実施形態に搭載されるFeRAMの構成を示す図である。
【図2】図1に示すFeRAMのメモリセルの具体的な構成を示す回路図である。
【図3】図2に示すインバータの電源を制御する電源制御回路の回路図である。
【図4】第1実施形態に係るFeRAMの動作例を説明するための各部の波形例を示す図である。
【図5】第1実施形態に係るFeRAMの他の動作例を説明するための各部の波形例を示す図である。
【図6】第1実施形態に係るFeRAMのさらに他の動作例を説明するための各部の波形例を示す図である。
【図7】本発明のFPGAの第2実施形態に搭載されるFeRAMの構成を示す図である。
【図8】図7に示すFeRAMのメモリセルの具体的な構成を示す回路図である。
【図9】第2実施形態に係るFeRAMの動作例を説明するための各部の波形例を示す図である。
【図10】第2実施形態に係るFeRAMの他の動作例を説明するための各部の波形例を示す図である。
【図11】第2実施形態に係るFeRAMのさらに他の動作例を説明するための各部の波形例を示す図である。
【図12】第1実施形態に係るFPGAの使用方法を説明する図である。
【符号の説明】
M00〜Mnn、ME00〜MEnnはメモリセル、BL0、XBL0、BL1、XBL1・・・・BLn、XBLnはビット線、WL0〜WLnはワード線、Q0、Q0’、Q1、Q1’・・・・Qn、Qn’はMOSトランジスタ、1、21はFeRAM、4、24はSRAMセル、5−1〜5−nはFeRAMセル、6、7はインバータ、8、9はMOSトランジスタ、10は電源制御回路である。
Claims (15)
- 論理ゲートまたはマルチプレクサ等からなる論理ブロックを基板上に多数搭載し、これらの論理ブロックの間の配線を、前記基板上に搭載させたFeRAMを使用してプログラムできるフィールド・プログラマブル・ゲート・アレイであって、
前記FeRAMは、複数のメモリセルと、前記メモリセルを選択するワード線と、前記メモリセルへのデータの読み出しまたは書き込みを行う一対の第1および第2のビット線とを含み、
前記各メモリセルは、SRAMセルと複数のFeRAMセルとを含み、
前記SRAMセルは、データを記憶するフリップフロップと、前記フリップフロップに対してデータの読み出し書き込みを行う第1および第2のトランジスタとからなり、
前記各FeRAMセルは、データを記憶する2つの強誘電体キャパシタと、前記強誘電体キャパシタに対してデータの読み出し書き込みを行う第3および第4のトランジスタとからなり、
前記第1および第2のトランジスタを、前記ワード線に共通に接続させるとともに前記第1および第2のビット線にそれぞれ接続させ、前記フリップフロップの入出力端子を一対の第1および第2の出力線にそれぞれ接続させ、かつ、前記第3および第4のトランジスタを、前記第1および第2の出力線にそれぞれ接続させ、
さらに、前記複数のメモリセルが有する前記第1および第2の出力線に共通に設け、前記両出力線の電位を同一にする出力線同電位手段を備えるようにしたことを特徴とするフィールド・プログラマブル・ゲート・アレイ。 - 前記出力線同電位手段は、前記第1のビット線とアースとの間に設けた第1のスイッチ素子と、前記第2のビット線とアースとの間に設けた第2のスイッチ素子とからなり、前記両スイッチ素子のオンオフ制御を同一の制御信号で行うようにしたことを特徴とする請求項1に記載のフィールド・プログラマブル・ゲート・アレイ。
- 前記複数のメモリセルが有する前記各フリップフロップの電源の制御を同時に行う電源制御回路を備えたことを特徴とする請求項1または請求項2に記載のフィールド・プログラマブル・ゲート・アレイ。
- 論理ゲートまたはマルチプレクサ等からなる論理ブロックを基板上に多数搭載し、これらの論理ブロックの間の配線を、前記基板上に搭載させたFeRAMを使用してプログラムできるフィールド・プログラマブル・ゲート・アレイであって、
前記FeRAMは、複数のメモリセルと、前記メモリセルを選択するワード線と、前記メモリセルへのデータの読み出しまたは書き込みを行うビット線とを含み、
前記各メモリセルは、SRAMセルと複数のFeRAMセルとを含み、
前記SRAMセルは、データを記憶するフリップフロップと、前記フリップフロップに対してデータの読み出し書き込みを行う第1のトランジスタとからなり、
前記各FeRAMセルは、データを記憶する2つの強誘電体キャパシタと、前記強誘電体キャパシタに対してデータの読み出し書き込みを行う第2および第3のトランジスタとからなり、
前記第1のトランジスタを、前記ワード線に接続させるとともに前記ビット線に接続させ、前記フリップフロップの入出力端子を一対の第1および第2の出力線にそれぞれ接続させ、かつ、前記第2および第3のトランジスタを、前記第1および第2の出力線にそれぞれ接続させ、
さらに、前記複数のメモリセルが有する前記第1の出力線に共通に設けるとともに、前記複数のメモリセルが有する前記第2の出力線に個別に設け、前記両出力線の電位を同一にする出力線同電位手段を備えるようにしたことを特徴とするフィールド・プログラマブル・ゲート・アレイ。 - 前記出力線同電位手段は、前記ビット線とアースとの間に設けた第1のスイッチ素子と、前記第2の出力線とアースとの間に設けた第2のスイッチ素子とからなり、前記両スイッチ素子のオンオフ制御を同一の制御信号で行うようにしたことを特徴とする請求項4に記載のフィールド・プログラマブル・ゲート・アレイ。
- 前記複数のメモリセルが有する前記各フリップフロップの電源の制御を同時に行う電源制御回路を備えたことを特徴とする請求項4または請求項5に記載のフィールド・プログラマブル・ゲート・アレイ。
- 論理ゲートまたはマルチプレクサ等からなる論理ブロックを基板上に多数搭載し、これらの論理ブロックの間の配線を、前記基板上に搭載させたFeRAMを使用してプログラムできるフィールド・プログラマブル・ゲート・アレイの使用方法であって、
前記FeRAMは、複数のメモリセルから構成するとともに、前記各メモリセルは複数のFeRAMセルを含むように構成しておき、
前記複数のFeRAMセルのうちの1つに前記プログラムを格納するとともに、その残りのFeRAMセルに前記プログラムと同一のプログラムを格納しておくようにしたことを特徴とするフィールド・プログラマブル・ゲート・アレイの使用方法。 - 前記残りのFeRAMセルに格納される前記プログラムを、バックアップ用プログラムとして使用するようにしたことを特徴とする請求項7に記載のフィールド・プログラマブル・ゲート・アレイの使用方法。
- 前記複数のFeRAMセルのうちの1つに格納される前記プログラムと、前記残りのFeRAMセルに格納されるプログラムとを、所定の順序で使用するようにしたことを特徴とする請求項7に記載のフィールド・プログラマブル・ゲート・アレイの使用方法。
- 論理ゲートまたはマルチプレクサ等からなる論理ブロックを基板上に多数搭載し、これらの論理ブロックの間の配線を、前記基板上に搭載させたFeRAMを使用してプログラムできるフィールド・プログラマブル・ゲート・アレイの使用方法であって、
前記FeRAMは、複数のメモリセルで構成するとともに、前記各メモリセルは複数のFeRAMセルを含むように構成しておき、
前記複数のFeRAMセルのうちの一部に前記プログラムとして複数種類のプログラムをそれぞれ格納するとともに、その残りのFeRAMセルに前記複数種類のプログラムと同一のプログラムを格納しておくようにしたことを特徴とするフィールド・プログラマブル・ゲート・アレイの使用方法。 - 前記残りのFeRAMセルに格納される前記プログラムを、バックアップ用プログラムとして使用するようにしたことを特徴とする請求項10に記載のフィールド・プログラマブル・ゲート・アレイの使用方法。
- 前記複数のFeRAMセルのうちの一部に格納される前記複数種類のプログラムと、前記残りのFeRAMセルに格納される複数種類のプログラムとを、交互に使用するようにしたことを特徴とする請求項10に記載のフィールド・プログラマブル・ゲート・アレイの使用方法。
- 論理ゲートまたはマルチプレクサ等からなる論理ブロックを基板上に多数搭載し、これらの論理ブロックの間の配線を、前記基板上に搭載させたFeRAMを使用してプログラムできるフィールド・プログラマブル・ゲート・アレイの使用方法であって、
前記フィールド・プログラマブル・ゲート・アレイを、外部とデータの授受ができるカードに認証のためのソフトウエアキーとして搭載し、
前記FeRAMは、複数のメモリセルで構成するとともに、前記各メモリセルは複数のFeRAMセルを含むように構成しておき、
かつ、前記FeRAMには、前記複数のFeRAMセルに前記プログラムとして1つまたは複数種類のプログラムを書き込んでおき、または必要に応じて前記プログラムを書き換えるようにしたことを特徴とするフィールド・プログラマブル・ゲート・アレイの使用方法。 - 前記カードの使用時に、前記フィールド・プログラマブル・ゲート・アレイは、その予め書き込んであるプログラムに対応する所定のデータを認証装置から受け取り、この受け取った入力データを変換し、この変換データを前記認証装置に送出するようにし、
前記認証装置は、前記変換データと期待するデータとを比較し、この比較に基づいてユーザの正当性を判断するようにしたことを特徴とする請求項13に記載のフィールド・プログラマブル・ゲート・アレイの使用方法。 - 前記複数のFeRAMセルに複数種類のプログラムが予め書き込んである場合には、
前記ユーザの正当性の判断は、前記フィールド・プログラマブル・ゲート・アレイが前記複数種類のプログラムのうちの任意のプログラムに対応して得られる変換データと期待データの一致、
または前記フィールド・プログラマブル・ゲート・アレイが前記複数種類のプログラムのうちの2以上のプログラムに対応して得られる各変換データと各期待データの一致に基づいて行うことを特徴とする請求項13または請求項14に記載のフィールド・プログラマブル・ゲート・アレイの使用方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002318638A JP2004153700A (ja) | 2002-10-31 | 2002-10-31 | フィールド・プログラマブル・ゲート・アレイおよびその使用方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002318638A JP2004153700A (ja) | 2002-10-31 | 2002-10-31 | フィールド・プログラマブル・ゲート・アレイおよびその使用方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004153700A true JP2004153700A (ja) | 2004-05-27 |
Family
ID=32461720
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002318638A Withdrawn JP2004153700A (ja) | 2002-10-31 | 2002-10-31 | フィールド・プログラマブル・ゲート・アレイおよびその使用方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004153700A (ja) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7307872B2 (en) * | 2005-05-30 | 2007-12-11 | Hynix Semiconductor Inc. | Nonvolatile semiconductor static random access memory device |
US7460423B2 (en) | 2007-01-05 | 2008-12-02 | International Business Machines Corporation | Hierarchical 2T-DRAM with self-timed sensing |
US7460387B2 (en) | 2007-01-05 | 2008-12-02 | International Business Machines Corporation | eDRAM hierarchical differential sense amp |
US7471546B2 (en) | 2007-01-05 | 2008-12-30 | International Business Machines Corporation | Hierarchical six-transistor SRAM |
US7499312B2 (en) | 2007-01-05 | 2009-03-03 | International Business Machines Corporation | Fast, stable, SRAM cell using seven devices and hierarchical bit/sense line |
US7859303B2 (en) | 1999-11-11 | 2010-12-28 | Hynix Semiconductor Inc. | Nonvolatile programmable logic circuit |
JP2013190893A (ja) * | 2012-03-13 | 2013-09-26 | Rohm Co Ltd | マルチタスク処理装置 |
JPWO2016181256A1 (ja) * | 2015-05-12 | 2018-03-08 | 株式会社半導体エネルギー研究所 | 半導体装置、電子部品および電子機器 |
WO2022139890A1 (en) * | 2020-12-21 | 2022-06-30 | Kepler Computing, Inc. | Majority logic gate based sequential circuit |
US11482990B1 (en) | 2021-08-19 | 2022-10-25 | Kepler Computing Inc. | Vectored sequential circuit with ferroelectric or paraelectric material |
-
2002
- 2002-10-31 JP JP2002318638A patent/JP2004153700A/ja not_active Withdrawn
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7924058B2 (en) | 1999-11-11 | 2011-04-12 | Hynix Semiconductor Inc. | Nonvolatile programmable logic circuit |
US7859303B2 (en) | 1999-11-11 | 2010-12-28 | Hynix Semiconductor Inc. | Nonvolatile programmable logic circuit |
US7307872B2 (en) * | 2005-05-30 | 2007-12-11 | Hynix Semiconductor Inc. | Nonvolatile semiconductor static random access memory device |
US7499312B2 (en) | 2007-01-05 | 2009-03-03 | International Business Machines Corporation | Fast, stable, SRAM cell using seven devices and hierarchical bit/sense line |
US7471546B2 (en) | 2007-01-05 | 2008-12-30 | International Business Machines Corporation | Hierarchical six-transistor SRAM |
US7709299B2 (en) | 2007-01-05 | 2010-05-04 | International Business Machines Corporation | Hierarchical 2T-DRAM with self-timed sensing |
US7821858B2 (en) | 2007-01-05 | 2010-10-26 | International Business Machines Corporation | eDRAM hierarchical differential sense AMP |
US7460387B2 (en) | 2007-01-05 | 2008-12-02 | International Business Machines Corporation | eDRAM hierarchical differential sense amp |
US7460423B2 (en) | 2007-01-05 | 2008-12-02 | International Business Machines Corporation | Hierarchical 2T-DRAM with self-timed sensing |
JP2013190893A (ja) * | 2012-03-13 | 2013-09-26 | Rohm Co Ltd | マルチタスク処理装置 |
JPWO2016181256A1 (ja) * | 2015-05-12 | 2018-03-08 | 株式会社半導体エネルギー研究所 | 半導体装置、電子部品および電子機器 |
WO2022139890A1 (en) * | 2020-12-21 | 2022-06-30 | Kepler Computing, Inc. | Majority logic gate based sequential circuit |
US11451232B2 (en) | 2020-12-21 | 2022-09-20 | Kepler Computing Inc. | Majority logic gate based flip-flop with non-linear polar material |
US11616507B2 (en) | 2020-12-21 | 2023-03-28 | Kepler Computing Inc. | Ferroelectric based latch |
US11482990B1 (en) | 2021-08-19 | 2022-10-25 | Kepler Computing Inc. | Vectored sequential circuit with ferroelectric or paraelectric material |
US11509308B1 (en) | 2021-08-19 | 2022-11-22 | Kepler Computing Inc. | Sequential circuit without feedback or memory element |
US11545979B1 (en) | 2021-08-19 | 2023-01-03 | Kepler Computing Inc. | Compare logic based sequential circuit with ferroelectric or paraelectric material |
US11611345B1 (en) | 2021-08-19 | 2023-03-21 | Kepler Computing Inc. | NAND based sequential circuit with ferroelectric or paraelectric material |
US11777504B1 (en) | 2021-08-19 | 2023-10-03 | Kepler Computing Inc. | Non-linear polar material based latch |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4791924B2 (ja) | 半導体記憶装置 | |
JP3893005B2 (ja) | 不揮発性半導体記憶装置 | |
US8711628B2 (en) | Use of emerging non-volatile memory elements with flash memory | |
US6724682B2 (en) | Nonvolatile semiconductor memory device having selective multiple-speed operation mode | |
US6532169B1 (en) | SONOS latch and application | |
US9558838B2 (en) | Semiconductor device for masking data stored in twin cell and outputting masked data | |
US7515484B2 (en) | Page buffer circuit of memory device and program method | |
US7180764B2 (en) | One-time programmable (OTP) memory devices enabling programming based on protected status and methods of operating same | |
KR20160140329A (ko) | 반도체 장치, 프리라이트 프로그램 및 복원 프로그램 | |
CA2649002A1 (en) | A program verify method for otp memories | |
US20080008019A1 (en) | High Speed Read-Only Memory | |
US9257181B2 (en) | Sense amplification circuits, output circuits, nonvolatile memory devices, memory systems, memory cards having the same, and data outputting methods thereof | |
JP2007294039A (ja) | 不揮発性半導体記憶装置 | |
JP2004153700A (ja) | フィールド・プログラマブル・ゲート・アレイおよびその使用方法 | |
US20030099132A1 (en) | Semiconductor memory device including bit select circuit | |
US20040052124A1 (en) | Semiconductor memory device | |
US8081525B2 (en) | Memory device including combination SRAM-ROM cells and SRAM cells alternately arranged and semiconductor device including the memory device | |
JP2002358794A (ja) | 不揮発性半導体記憶装置 | |
JP2013013059A (ja) | 再構成可能な論理装置 | |
US8531879B2 (en) | Semiconductor memory device and an operating method thereof | |
KR100996093B1 (ko) | 불휘발성 메모리 소자 및 그 동작 방법 | |
US8553456B2 (en) | Flash memory device having improved read operation speed | |
JPH06215590A (ja) | フラッシュ消去型不揮発性メモリ | |
JP2005108327A (ja) | 半導体集積回路装置及びそのアクセス方法 | |
JP2005109960A (ja) | フィールド・プログラマブル・ゲート・アレイ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20060110 |