(57)【要約】【課題】ＦＰＧＡに複数のプログラムを格納すべきＦｅＲＡＭを内蔵する際に、ＦｅＲＡＭの省スペース化を図るようにしたＦＰＧＡの提供。【解決手段】ＦｅＲＡＭは、複数のメモリセルＭ００〜Ｍｎｎからなる。メモリセルＭ００は、ＳＲＡＭ４と、ＦｅＲＡＭ５−０〜５−ｎとからなる。ＳＲＡＭ４は、インバータ６、７と、ＭＯＳトランジスタ８、９とからなる。ＦｅＲＡＭ５−０ｎは、２つの強誘電体キャパシタＣ０１、Ｃ０２と、ＭＯＳトランジスタＱ０１、０２からなる。メモリセルＭ００、Ｍ１０・・・・Ｍｎ０の出力線ＯＵＴＨ、ＯＵＴＬの電位を同時に接地電位にするために、ビット線ＢＬ０はＭＯＳトランジスタＱ０を介して接地され、ビット線ＸＢＬ０はＭＯＳトランジスタＱ０’を介して接地されている。【選択図】  図２
2004153700.tif 000002
【特許請求の範囲】
【請求項１】
論理ゲートまたはマルチプレクサ等からなる論理ブロックを基板上に多数搭載し、これらの論理ブロックの間の配線を、前記基板上に搭載させたＦｅＲＡＭを使用してプログラムできるフィールド・プログラマブル・ゲート・アレイであって、
前記ＦｅＲＡＭは、複数のメモリセルと、前記メモリセルを選択するワード線と、前記メモリセルへのデータの読み出しまたは書き込みを行う一対の第１および第２のビット線とを含み、
前記各メモリセルは、ＳＲＡＭセルと複数のＦｅＲＡＭセルとを含み、
前記ＳＲＡＭセルは、データを記憶するフリップフロップと、前記フリップフロップに対してデータの読み出し書き込みを行う第１および第２のトランジスタとからなり、
前記各ＦｅＲＡＭセルは、データを記憶する２つの強誘電体キャパシタと、前記強誘電体キャパシタに対してデータの読み出し書き込みを行う第３および第４のトランジスタとからなり、
前記第１および第２のトランジスタを、前記ワード線に共通に接続させるとともに前記第１および第２のビット線にそれぞれ接続させ、前記フリップフロップの入出力端子を一対の第１および第２の出力線にそれぞれ接続させ、かつ、前記第３および第４のトランジスタを、前記第１および第２の出力線にそれぞれ接続させ、
さらに、前記複数のメモリセルが有する前記第１および第２の出力線に共通に設け、前記両出力線の電位を同一にする出力線同電位手段を備えるようにしたことを特徴とするフィールド・プログラマブル・ゲート・アレイ。
【請求項２】
前記出力線同電位手段は、前記第１のビット線とアースとの間に設けた第１のスイッチ素子と、前記第２のビット線とアースとの間に設けた第２のスイッチ素子とからなり、前記両スイッチ素子のオンオフ制御を同一の制御信号で行うようにしたことを特徴とする請求項１に記載のフィールド・プログラマブル・ゲート・アレイ。
【請求項３】
前記複数のメモリセルが有する前記各フリップフロップの電源の制御を同時に行う電源制御回路を備えたことを特徴とする請求項１または請求項２に記載のフィールド・プログラマブル・ゲート・アレイ。
【請求項４】
論理ゲートまたはマルチプレクサ等からなる論理ブロックを基板上に多数搭載し、これらの論理ブロックの間の配線を、前記基板上に搭載させたＦｅＲＡＭを使用してプログラムできるフィールド・プログラマブル・ゲート・アレイであって、
前記ＦｅＲＡＭは、複数のメモリセルと、前記メモリセルを選択するワード線と、前記メモリセルへのデータの読み出しまたは書き込みを行うビット線とを含み、
前記各メモリセルは、ＳＲＡＭセルと複数のＦｅＲＡＭセルとを含み、
前記ＳＲＡＭセルは、データを記憶するフリップフロップと、前記フリップフロップに対してデータの読み出し書き込みを行う第１のトランジスタとからなり、
前記各ＦｅＲＡＭセルは、データを記憶する２つの強誘電体キャパシタと、前記強誘電体キャパシタに対してデータの読み出し書き込みを行う第２および第３のトランジスタとからなり、
前記第１のトランジスタを、前記ワード線に接続させるとともに前記ビット線に接続させ、前記フリップフロップの入出力端子を一対の第１および第２の出力線にそれぞれ接続させ、かつ、前記第２および第３のトランジスタを、前記第１および第２の出力線にそれぞれ接続させ、
さらに、前記複数のメモリセルが有する前記第１の出力線に共通に設けるとともに、前記複数のメモリセルが有する前記第２の出力線に個別に設け、前記両出力線の電位を同一にする出力線同電位手段を備えるようにしたことを特徴とするフィールド・プログラマブル・ゲート・アレイ。
【請求項５】
前記出力線同電位手段は、前記ビット線とアースとの間に設けた第１のスイッチ素子と、前記第２の出力線とアースとの間に設けた第２のスイッチ素子とからなり、前記両スイッチ素子のオンオフ制御を同一の制御信号で行うようにしたことを特徴とする請求項４に記載のフィールド・プログラマブル・ゲート・アレイ。
【請求項６】
前記複数のメモリセルが有する前記各フリップフロップの電源の制御を同時に行う電源制御回路を備えたことを特徴とする請求項４または請求項５に記載のフィールド・プログラマブル・ゲート・アレイ。
【請求項７】
論理ゲートまたはマルチプレクサ等からなる論理ブロックを基板上に多数搭載し、これらの論理ブロックの間の配線を、前記基板上に搭載させたＦｅＲＡＭを使用してプログラムできるフィールド・プログラマブル・ゲート・アレイの使用方法であって、
前記ＦｅＲＡＭは、複数のメモリセルから構成するとともに、前記各メモリセルは複数のＦｅＲＡＭセルを含むように構成しておき、
前記複数のＦｅＲＡＭセルのうちの１つに前記プログラムを格納するとともに、その残りのＦｅＲＡＭセルに前記プログラムと同一のプログラムを格納しておくようにしたことを特徴とするフィールド・プログラマブル・ゲート・アレイの使用方法。
【請求項８】
前記残りのＦｅＲＡＭセルに格納される前記プログラムを、バックアップ用プログラムとして使用するようにしたことを特徴とする請求項７に記載のフィールド・プログラマブル・ゲート・アレイの使用方法。
【請求項９】
前記複数のＦｅＲＡＭセルのうちの１つに格納される前記プログラムと、前記残りのＦｅＲＡＭセルに格納されるプログラムとを、所定の順序で使用するようにしたことを特徴とする請求項７に記載のフィールド・プログラマブル・ゲート・アレイの使用方法。
【請求項１０】
論理ゲートまたはマルチプレクサ等からなる論理ブロックを基板上に多数搭載し、これらの論理ブロックの間の配線を、前記基板上に搭載させたＦｅＲＡＭを使用してプログラムできるフィールド・プログラマブル・ゲート・アレイの使用方法であって、
前記ＦｅＲＡＭは、複数のメモリセルで構成するとともに、前記各メモリセルは複数のＦｅＲＡＭセルを含むように構成しておき、
前記複数のＦｅＲＡＭセルのうちの一部に前記プログラムとして複数種類のプログラムをそれぞれ格納するとともに、その残りのＦｅＲＡＭセルに前記複数種類のプログラムと同一のプログラムを格納しておくようにしたことを特徴とするフィールド・プログラマブル・ゲート・アレイの使用方法。
【請求項１１】
前記残りのＦｅＲＡＭセルに格納される前記プログラムを、バックアップ用プログラムとして使用するようにしたことを特徴とする請求項１０に記載のフィールド・プログラマブル・ゲート・アレイの使用方法。
【請求項１２】
前記複数のＦｅＲＡＭセルのうちの一部に格納される前記複数種類のプログラムと、前記残りのＦｅＲＡＭセルに格納される複数種類のプログラムとを、交互に使用するようにしたことを特徴とする請求項１０に記載のフィールド・プログラマブル・ゲート・アレイの使用方法。
【請求項１３】
論理ゲートまたはマルチプレクサ等からなる論理ブロックを基板上に多数搭載し、これらの論理ブロックの間の配線を、前記基板上に搭載させたＦｅＲＡＭを使用してプログラムできるフィールド・プログラマブル・ゲート・アレイの使用方法であって、
前記フィールド・プログラマブル・ゲート・アレイを、外部とデータの授受ができるカードに認証のためのソフトウエアキーとして搭載し、
前記ＦｅＲＡＭは、複数のメモリセルで構成するとともに、前記各メモリセルは複数のＦｅＲＡＭセルを含むように構成しておき、
かつ、前記ＦｅＲＡＭには、前記複数のＦｅＲＡＭセルに前記プログラムとして１つまたは複数種類のプログラムを書き込んでおき、または必要に応じて前記プログラムを書き換えるようにしたことを特徴とするフィールド・プログラマブル・ゲート・アレイの使用方法。
【請求項１４】
前記カードの使用時に、前記フィールド・プログラマブル・ゲート・アレイは、その予め書き込んであるプログラムに対応する所定のデータを認証装置から受け取り、この受け取った入力データを変換し、この変換データを前記認証装置に送出するようにし、
前記認証装置は、前記変換データと期待するデータとを比較し、この比較に基づいてユーザの正当性を判断するようにしたことを特徴とする請求項１３に記載のフィールド・プログラマブル・ゲート・アレイの使用方法。
【請求項１５】
前記複数のＦｅＲＡＭセルに複数種類のプログラムが予め書き込んである場合には、
前記ユーザの正当性の判断は、前記フィールド・プログラマブル・ゲート・アレイが前記複数種類のプログラムのうちの任意のプログラムに対応して得られる変換データと期待データの一致、
または前記フィールド・プログラマブル・ゲート・アレイが前記複数種類のプログラムのうちの２以上のプログラムに対応して得られる各変換データと各期待データの一致に基づいて行うことを特徴とする請求項１３または請求項１４に記載のフィールド・プログラマブル・ゲート・アレイの使用方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、論理ゲートまたはマルチプレクサ等からなる論理ブロックを基板上に多数搭載し、これらの論理ブロックの間の配線を、上記の基板上に搭載させたＦｅＲＡＭ（強誘電体メモリ）を使用してプログラムできるフィールド・プログラマブル・ゲート・アレイ（以下、ＦＰＧＡという）、およびその使用方法に関する。
【０００２】
【従来の技術】
この種の従来のＦＰＧＡとしては、論理回路を決定するプログラムを、外付けのＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）に書き込んでおき、ＦＰＧＡの使用時（電源投入時）にその外付けのＲＯＭから読み出して使用するものが知られている。
しかし、このようなＦＰＧＡでは、ＦＰＧＡの他の外付けのＲＯＭが必要となる上に、プログラムの変更が必要な場合にはそのＲＯＭを交換する必要がある。また、ＲＯＭからのプログラムの読み出しには、一般に時間がかかるという不具合がある。さらに、複数のプログラムを持つようにするには、複数のＲＯＭが必要になるという不都合がある。
【０００３】
また、従来の他のＦＰＧＡとしては、論理回路を決定するプログラムを格納するＥＥＰＲＯＭ（電気的に消去できるリード・オンリ・メモリ）を内蔵するものが知られている。
しかし、このようなＦＰＧＡでは、内蔵するＥＥＰＲＯＭの内容を書き換えできるが、ＥＥＰＲＯＭのデータの消去・書き込み時に高い電圧が必要となる。このため、今日のように電源電圧が低電圧の環境下では、別途、電源が必要になるという不具合がある。また、複数のプログラムを持つようにするには、そのプログラムの個数に応じて複数のＥＥＰＲＯＭを内蔵する必要があるので、ＥＥＰＲＯＭの占有面積が大きくなり、論理回路を構築するための面積が小さくなるので、現実的ではない。
【０００４】
そこで、このような不都合を解決するＦＰＧＡとして、論理回路を決定するプログラムを格納するメモリとしてＦｅＲＡＭ（ＦｅＲＡＭ）を内蔵し、ＦＰＧＡの回路構成を動的に変化させるようにしたものが知られている（例えば、非特許文献１参照）。
【０００５】
【非特許文献１】
日経マイクロデバイス  ２００２年７月号（Ｐ１２６〜Ｐ１２７の記載内容およびＰ１２７の図３参照）
【０００６】
【発明が解決しようとする課題】
ところが、非特許文献１に記載されるＦＰＧＡでは、複数のプログラムを格納すべきＦｅＲＡＭをＦＰＧＡに内蔵する必要がある。しかし、その従来のＦＰＧＡでは、ＦＰＧＡに複数のプログラムを格納すべきＦｅＲＡＭを内蔵する際に、ＦｅＲＡＭの省スペース化を図ることがきないという不都合が考えられる。
【０００７】
そこで、本発明の第１の目的は、ＦＰＧＡに複数のプログラムを格納すべきＦｅＲＡＭを内蔵する際に、ＦｅＲＡＭの省スペース化を図るようにしたフィールド・プログラマブル・ゲート・アレイを提供することにある。
また、本発明の第２の目的は、フィールド・プログラマブル・ゲート・アレイにおいて、１つのプログラムにより１つの論理回路を構成して使用し、または複数種類のプログラムにより複数の論理回路を構成してその論理回路を選択的に使用する場合に、信頼性の向上または長寿命化を図ることができる、フィールド・プログラマブル・ゲート・アレイの使用方法を提供することにある。
【０００８】
さらに、本発明の第３の目的は、フィールド・プログラマブル・ゲート・アレイをソフトウエアキーとして使用できるようにし、ユーザの認証の識別性を高めることを可能にしたフィールド・プログラマブル・ゲート・アレイの使用方法を提供することにある。
【０００９】
【課題を解決するための手段】
上記の課題を解決し本発明の第１目的を達成するために、請求項１〜請求項６に記載の各発明は、以下のように構成した。
すなわち、請求項１に記載の発明は、論理ゲートまたはマルチプレクサ等からなる論理ブロックを基板上に多数搭載し、これらの論理ブロックの間の配線を、前記基板上に搭載させたＦｅＲＡＭを使用してプログラムできるフィールド・プログラマブル・ゲート・アレイであって、前記ＦｅＲＡＭは、複数のメモリセルと、前記メモリセルを選択するワード線と、前記メモリセルへのデータの読み出しまたは書き込みを行う一対の第１および第２のビット線とを含み、前記各メモリセルは、ＳＲＡＭセルと複数のＦｅＲＡＭセルとを含み、前記ＳＲＡＭセルは、データを記憶するフリップフロップと、前記フリップフロップに対してデータの読み出し書き込みを行う第１および第２のトランジスタとからなり、前記各ＦｅＲＡＭセルは、データを記憶する２つの強誘電体キャパシタと、前記強誘電体キャパシタに対してデータの読み出し書き込みを行う第３および第４のトランジスタとからなり、前記第１および第２のトランジスタを、前記ワード線に共通に接続させるとともに前記第１および第２のビット線にそれぞれ接続させ、前記フリップフロップの入出力端子を一対の第１および第２の出力線にそれぞれ接続させ、かつ、前記第３および第４のトランジスタを、前記第１および第２の出力線にそれぞれ接続させ、さらに、前記複数のメモリセルが有する前記第１および第２の出力線に共通に設け、前記両出力線の電位を同一にする出力線同電位手段を備えるようにしたことを特徴とするものである。
【００１０】
請求項２に記載の発明は、請求項１に記載のフィールド・プログラマブル・ゲート・アレイにおいて、前記出力線同電位手段は、前記第１のビット線とアースとの間に設けた第１のスイッチ素子と、前記第２のビット線とアースとの間に設けた第２のスイッチ素子とからなり、前記両スイッチ素子のオンオフ制御を同一の制御信号で行うようにしたことを特徴とするものである。
【００１１】
請求項３に記載の発明は、請求項１または請求項２に記載のフィールド・プログラマブル・ゲート・アレイにおいて、前記複数のメモリセルが有する前記各フリップフロップの電源の制御を同時に行う電源制御回路を備えたことを特徴とするものである。
請求項４に記載の発明は、論理ゲートまたはマルチプレクサ等からなる論理ブロックを基板上に多数搭載し、これらの論理ブロックの間の配線を、前記基板上に搭載させたＦｅＲＡＭを使用してプログラムできるフィールド・プログラマブル・ゲート・アレイであって、前記ＦｅＲＡＭは、複数のメモリセルと、前記メモリセルを選択するワード線と、前記メモリセルへのデータの読み出しまたは書き込みを行うビット線とを含み、前記各メモリセルは、ＳＲＡＭセルと複数のＦｅＲＡＭセルとを含み、前記ＳＲＡＭセルは、データを記憶するフリップフロップと、前記フリップフロップに対してデータの読み出し書き込みを行う第１のトランジスタとからなり、前記各ＦｅＲＡＭセルは、データを記憶する２つの強誘電体キャパシタと、前記強誘電体キャパシタに対してデータの読み出し書き込みを行う第２および第３のトランジスタとからなり、前記第１のトランジスタを、前記ワード線に接続させるとともに前記ビット線に接続させ、前記フリップフロップの入出力端子を一対の第１および第２の出力線にそれぞれ接続させ、かつ、前記第２および第３のトランジスタを、前記第１および第２の出力線にそれぞれ接続させ、さらに、前記複数のメモリセルが有する前記第１の出力線に共通に設けるとともに、前記複数のメモリセルが有する前記第２の出力線に個別に設け、前記両出力線の電位を同一にする出力線同電位手段を備えるようにしたことを特徴とするものである。
【００１２】
請求項５に記載の発明は、請求項４に記載のフィールド・プログラマブル・ゲート・アレイにおいて、前記出力線同電位手段は、前記ビット線とアースとの間に設けた第１のスイッチ素子と、前記第２の出力線とアースとの間に設けた第２のスイッチ素子とからなり、前記両スイッチ素子のオンオフ制御を同一の制御信号で行うようにしたことを特徴とするものである。
【００１３】
請求項６に記載の発明は、請求項４または請求項５に記載のフィールド・プログラマブル・ゲート・アレイにおいて、前記複数のメモリセルが有する前記各フリップフロップの電源の制御を同時に行う電源制御回路を備えたことを特徴とするものである。
このような構成からなる請求項１〜請求項６に記載の各発明では、各メモリセルは自己の第１および第２の出力線を同電位にする出力線同電位手段を、各出力線に個別に持つ必要がなく共有できる。このため、ＦＰＧＡに複数のプログラムを格納すべきＦｅＲＡＭを搭載するに際して、ＦｅＲＡＭの省スペース化が図れる。
【００１４】
また、本発明の第２目的を達成するために、請求項７〜請求項１２に記載の各発明は、以下のように構成した。
すなわち、請求項７に記載の発明は、論理ゲートまたはマルチプレクサ等からなる論理ブロックを基板上に多数搭載し、これらの論理ブロックの間の配線を、前記基板上に搭載させたＦｅＲＡＭを使用してプログラムできるフィールド・プログラマブル・ゲート・アレイの使用方法であって、前記ＦｅＲＡＭは、複数のメモリセルから構成するとともに、前記各メモリセルは複数のＦｅＲＡＭセルを含むように構成しておき、前記複数のＦｅＲＡＭセルのうちの１つに前記プログラムを格納するとともに、その残りのＦｅＲＡＭセルに前記プログラムと同一のプログラムを格納しておくようにしたことを特徴とするものである。
【００１５】
請求項８に記載の発明は、請求項７に記載のフィールド・プログラマブル・ゲート・アレイの使用方法において、前記残りのＦｅＲＡＭセルに格納される前記プログラムを、バックアップ用プログラムとして使用するようにしたことを特徴とするものである。
請求項９に記載の発明は、請求項７に記載のフィールド・プログラマブル・ゲート・アレイの使用方法において、前記複数のＦｅＲＡＭセルのうちの１つに格納される前記プログラムと、前記残りのＦｅＲＡＭセルに格納されるプログラムとを、所定の順序で使用するようにしたことを特徴とするものである。
【００１６】
請求項１０に記載の発明は、論理ゲートまたはマルチプレクサ等からなる論理ブロックを基板上に多数搭載し、これらの論理ブロックの間の配線を、前記基板上に搭載させたＦｅＲＡＭを使用してプログラムできるフィールド・プログラマブル・ゲート・アレイの使用方法であって、前記ＦｅＲＡＭは、複数のメモリセルで構成するとともに、前記各メモリセルは複数のＦｅＲＡＭセルを含むように構成しておき、前記複数のＦｅＲＡＭセルのうちの一部に前記プログラムとして複数種類のプログラムをそれぞれ格納するとともに、その残りのＦｅＲＡＭセルに前記複数種類のプログラムと同一のプログラムを格納しておくようにしたことを特徴とするものである。
【００１７】
請求項１１に記載の発明は、請求項１０に記載のフィールド・プログラマブル・ゲート・アレイの使用方法において、前記残りのＦｅＲＡＭセルに格納される前記プログラムを、バックアップ用プログラムとして使用するようにしたことを特徴とするものである。
請求項１２に記載の発明は、請求項１０に記載のフィールド・プログラマブル・ゲート・アレイの使用方法において、前記複数のＦｅＲＡＭセルのうちの一部に格納される前記複数種類のプログラムと、前記残りのＦｅＲＡＭセルに格納される複数種類のプログラムとを、交互に使用するようにしたことを特徴とするものである。
【００１８】
このように請求項７〜請求項９に記載の各発明では、複数のＦｅＲＡＭセルに対して同一のプログラムを複数個格納しておくようにした。このため、複数個のプログラムのうちの一部をバックアップ用プログラムとして使用したり、またはその複数個のプログラムを所定の順序で使用できる。従って、ＦＰＧＡの信頼性の向上や長寿命化を図ることができる。
【００１９】
また、請求項１０〜請求項１２に記載の各発明では、複数のＦｅＲＡＭセルのうちの一部に複数種類のプログラムをそれぞれ格納するとともに、その残りのＦｅＲＡＭセルにその複数種類のプログラムと同一のプログラムを格納しておくようにした。
このため、残りのＦｅＲＡＭセルに格納される複数種類のプログラムをバックアップ用プログラムとして使用したり、または複数のＦｅＲＡＭセルのうちの一部に格納される複数種類のプログラムと、残りのＦｅＲＡＭセルに格納される複数種類のプログラムとを交互に使用できる。従って、ＦＰＧＡの信頼性の向上や長寿命化を図ることができる。
【００２０】
さらに、本発明の第３の目的を達成するために、請求項１３〜請求項１５に記載の各発明は、以下のように構成した。
すなわち、請求項１３に記載の発明は、論理ゲートまたはマルチプレクサ等からなる論理ブロックを基板上に多数搭載し、これらの論理ブロックの間の配線を、前記基板上に搭載させたＦｅＲＡＭを使用してプログラムできるフィールド・プログラマブル・ゲート・アレイの使用方法であって、前記フィールド・プログラマブル・ゲート・アレイを、外部とデータの授受ができるカードに認証のためのソフトウエアキーとして搭載し、前記ＦｅＲＡＭは、複数のメモリセルで構成するとともに、前記各メモリセルは複数のＦｅＲＡＭセルを含むように構成しておき、かつ、前記ＦｅＲＡＭには、前記複数のＦｅＲＡＭセルに前記プログラムとして１つまたは複数種類のプログラムを書き込んでおき、または必要に応じて前記プログラムを書き換えるようにしたことを特徴とするものである。
【００２１】
請求項１４に記載の発明は、請求項１３に記載のフィールド・プログラマブル・ゲート・アレイの使用方法において、前記カードの使用時に、前記フィールド・プログラマブル・ゲート・アレイは、その予め書き込んであるプログラムに対応する所定のデータを認証装置から受け取り、この受け取った入力データを変換し、この変換データを前記認証装置に送出するようにし、前記認証装置は、前記変換データと期待するデータとを比較し、この比較に基づいてユーザの正当性を判断するようにしたことを特徴とするものである。
【００２２】
請求項１５に記載の発明は、請求項１３または請求項１４に記載のフィールド・プログラマブル・ゲート・アレイの使用方法において、前記複数のＦｅＲＡＭセルに複数種類のプログラムが予め書き込んである場合には、前記ユーザの正当性の判断は、前記フィールド・プログラマブル・ゲート・アレイが前記複数種類のプログラムのうちの任意のプログラムに対応して得られる変換データと期待データの一致、または前記フィールド・プログラマブル・ゲート・アレイが前記複数種類のプログラムのうちの２以上のプログラムに対応して得られる各変換データと各期待データの一致に基づいて行うことを特徴とするものである。
【００２３】
このように請求項１３〜請求項１５に記載の各発明では、フィールド・プログラマブル・ゲート・アレイをソフトウエアキーとして使用できるので、ユーザの認証の識別性を高めることが可能となる。
【００２４】
【発明の実施の形態】
以下、本発明のＦＰＧＡの第１実施形態の構成について、図面を参照して説明する。
第１実施形態に係るＦＰＧＡは、論理ゲートまたはマルチプレクサ等からなる論理ブロックを基板上に多数搭載し、これらの論理ブロックの間の配線を、基板上に搭載させたＦｅＲＡＭ（強誘電体メモリ）を使用してプログラムできるものであり、そのＦｅＲＡＭの構成の概要を図１に示す。
【００２５】
第１実施形態に係るＦＰＧＡに搭載されるプログラム用のＦｅＲＡＭ１は、図１に示すように、複数のメモリセルＭ００〜Ｍｎｎが２次元マトリクス状に配置され、そのメモリセルＭ００〜Ｍｎｎに対応して、図中の縦方向にメモリセルＭ００〜Ｍｎｎにしてデータの読み書きを行うためのビット線ＢＬ０、ＸＢＬ０、ＢＬ１、ＸＢＬ１・・・・ＢＬｎ、ＸＢＬｎがそれぞれ配置され、かつ、図中の横方向にメモリセルＭ００〜Ｍｎｎを選択するためのワード線ＷＬ０〜ＷＬｎがそれぞれ配置されている。
【００２６】
ビット線ＢＬ０、ＸＢＬ０、ビット線ＢＬ１、ＸＢＬ１、・・・・ビット線ＢＬｎ、ＸＢＬｎの各一端側は、対応する差動変換器２−０、２−１、・・・・２−ｎの各出力側にそれぞれ接続されている。また、ビット線ＢＬ０、ＸＢＬ０、ビット線ＢＬ１、ＸＢＬ１、・・・・ビット線ＢＬｎ、ＸＢＬｎの各他端側は、対応する差動アンプ３−０、３−１、・・・・３−ｎの各入力側にそれぞれ接続されている。
【００２７】
従って、差動変換器２−０〜２−ｎは、書き込みデータＤｉｎ０〜Ｄｉｎｎを反転させた反転データと非反転データとをそれぞれ出力するようになっており、非反転データがビット線ＢＬ０、ＢＬ１・・・・ＢＬｎに出力され、反転データがビット線ＸＢＬ０、ＸＢＬ１・・・・ＸＢＬｎに出力されるようになっている。
ここで、差動変換器２−０〜２−ｎは、イネーブル信号ＥＮＢＡによりその動作が制御されるようになっている。
【００２８】
また、差動アンプ３−０〜３−ｎは、ビット線ＢＬ０とビット線ＸＢＬ０の出力差、ビット線ＢＬ１とビット線ＸＢＬ１の出力差、・・・・ビット線ＢＬｎとビット線ＸＢＬｎの出力差をそれぞれ差動増幅し、出力データＤｏｕｔ０〜Ｄｏｕｔｎとして取り出すようになっている。
ビット線ＢＬ０、ＸＢＬ０、ビット線ＢＬ１、ＸＢＬ１、・・・・ビット線ＢＬｎ、線ＸＢＬｎは、対応するＯＳトランジスタＱ０、Ｑ０’、ＭＯＳトランジスタＱ１、Ｑ１’・・・・ＭＯＳトランジスタＱｎ、Ｑｎ’のオン動作により、同時に接地されるようになっている。
【００２９】
また、ＭＯＳトランジスタＱ０、Ｑ０、Ｑ１、Ｑ１’・・・・Ｑｎ、Ｑｎ’の各ゲートには、同一の制御信号ＰＲＥＧが供給されるようになっている。
このように構成されるＦｅＲＡＭにおける複数のメモリセルＭ００〜Ｍｎｎは、ＦＰＧＡ内に設けられている所望の論理回路を形成するための各スイッチに対応する。
【００３０】
次に、図１に示すメモリセルＭ００〜Ｍｎｎは同様に構成されるので、その一例としてメモリセルＭ００の構成について、図２を参照して説明する。
メモリセルＭ００は、図２に示すように、一点鎖線で囲まれたＳＲＡＭセル４と、複数のＦｅＲＡＭセル５−０〜５−ｎとから構成されている。
また、メモリセルＭ００は、ＳＲＡＭセル４に外部からデータをいったん書き込み、そのデータをＦｅＲＡＭセル５−０〜５−ｎのうちの１つに選択的に書き込んで保持できるようになっている。従って、ＦｅＲＡＭセル５−０〜５−ｎには、ＦＰＧＡに係るｎ個またはｎ種類のプログラムのデータを保持できるようになっている。
【００３１】
さらに、メモリセルＭ００は、ＳＲＡＭセル４に書き込んだデータを外部に読み出したり、またはＦｅＲＡＭセル５−０〜５−ｎに保持されるデータのうちの１つを選択的に読み出してＳＲＡＭセル４に格納することができるようになっている。
また、メモリセルＭ００は、出力線ＯＵＴＨと出力線ＯＵＴＬとを同電位（接地電位）とするために、上記のようにビットラインＢＬはＭＯＳトランジスタＱ０を介して接地され、ビットラインＸＢＬはＭＯＳトランジスタＱ０’を介して接地されている。また、ＭＯＳトランジスタＱ０、Ｑ０’の各ゲートには、制御信号ＰＲＥＧが供給されるようになっている。
【００３２】
このような構成により、ＭＯＳトランジスタＱ０、Ｑ０’をオンにさせ、ＭＯＳトランジスタＱ８、Ｑ９をオンにすることを条件に、メモリセルＭ００の出力線ＯＵＴＨと出力線ＯＵＴＬの電位を同時に接地電位にできるのみならず、他のメモリセルＭ１０、Ｍ２０・・・・Ｍｎ０の出力線ＯＵＴＨと出力線ＯＵＴＬの電位を同時に接地電位にできる（図１参照）。
【００３３】
さらに詳述すると、ＳＲＡＭセル４は、逆接続されるインバータ６、７から構成され１ビットのデータを記憶するフリップフロップと、このフリップフロップに対してデータを読み書きするための２つのＮ型のＭＯＳトランジスタ８、９とで構成され、電源がオフにならなければ、フリップフロップに１ビットのデータを保持できるようになっている。
【００３４】
このために、ビット線ＢＬ０とビット線ＸＢＬ０との間に、ＭＯＳトランジスタ８、インバータ６、およびＭＯＳトランジスタ９が直列に接続されるとともに、インバー６にインバータ７が逆接続されている。また、ＭＯＳトランジスタＱ８、Ｑ９の各ゲートは、ワード線ＷＬ０にそれぞれ接続されている。さらに、インバータ６、７の一方の共通接続部は出力線ＯＵＴＨに接続され、その他方の共通接続部は出力線ＯＵＴＬに接続されている。
【００３５】
インバータ６、７は、電源電圧線ＰＷＲＨおよび接地電圧線ＰＷＲＬとで図３に示す電源制御回路１０と接続され、電源制御回路１０により電源がオンオフ制御されるようになっている。この点については後述する。
次に、ＦｅＲＡＭセル５−０は、２つの強誘電体キャパタＣ０１、Ｃ０２と、これに対応する２つのスイッチ素子としてのＭＯＳトランジスタＱ０１、Ｑ０２とから構成され、これらによって１ビットのデータを保持できるようになっている。
【００３６】
また、同様に、ＦｅＲＡＭセル５−１は、強誘電体キャパタＣ１１、Ｃ１２と、ＭＯＳトランジスタＱ１１、Ｑ１２とから構成され、・・・・ＦｅＲＡＭセル５−ｎは、強誘電体キャパタＣｎ１、Ｃｎ２と、ＭＯＳトランジスタＱｎ１、Ｑｎ２とから構成されている。
さらに詳述すると、ポンプ線ＰＵＭＰ１と出力線ＯＵＴＨとの間に、強誘電体キャパシタＣ０１とＭＯＳトランジスタＱ０１とが直列に接続されている。ポンプ線ＰＵＭＰ１と出力線ＯＵＴＬとの間に、強誘電体キャパシタＣ０２とＭＯＳトランジスタＱ０２とが直列に接続されている。ＭＯＳトランジスタＱ０１、Ｑ０２の各ゲートには、キャパシタ線ＣＬＯ１が接続されている。
【００３７】
また、ポンプ線ＰＵＭＰ２と出力線ＯＵＴＨとの間に、強誘電体キャパシタＣ１１とＭＯＳトランジスタＱ１１とが直列に接続されている。ポンプ線ＰＵＭＰ２と出力線ＯＵＴＬとの間に、強誘電体キャパシタＣ１２とＭＯＳトランジスタＱ１２とが直列に接続されている。ＭＯＳトランジスタＱ１１、Ｑ１２の各ゲートには、キャパシタ線ＣＬＯ２が接続されている。
【００３８】
さらに、ポンプ線ＰＵＭＰｎと出力線ＯＵＴＨとの間に、強誘電体キャパシタＣｎ１とＭＯＳトランジスタＱｎ１とが直列に接続されている。ポンプ線ＰＵＭＰｎと出力線ＯＵＴＬとの間に、強誘電体キャパシタＣｎ２とＭＯＳトランジスタＱｎ２とが直列に接続されている。ＭＯＳトランジスタＱｎ１、Ｑｎ２の各ゲートには、キャパシタ線ＣＬＯｎが接続されている。
【００３９】
次に、インバータ６、７の電源を制御する電源制御回路１０の構成について、図３を参照して説明する。
この電源制御回路１０は、図３に示すように、インバータ１１と、Ｐ型のＭＯＳトランジスタ１２と、Ｎ型のＭＯＳトランジスタ１３とからなる。そして、この電源制御回路１０は、イネーブルパワー信号ＥＮＢＰにより、ＭＯＳトランジスタＱ１２、１３が同時にオンすると、電源電圧線ＰＷＲＨを介してインバータ６、７に電源電圧ＶＤＤが供給され、ＭＯＳトランジスタＱ１２、１３が同時にオフすると、電源電圧ＶＤＤの供給が停止されるようになっている。
【００４０】
このように、インバータ６、７の電源のオンオフを制御するのは、後述のように、ＦｅＲＡＭセル５−０〜５−ｎからデータを読み出すときに、オフにする必要があるからである。
なお、電源制御回路１０は、図１に示す複数のメモリセルＭ００〜Ｍｎｎに個別に設けるようにしても良いが、その配置面積を減らために、複数のメモリセルＭ００〜Ｍｎｎに共通に使用するのが好ましい。
【００４１】
次に、このような構成からなる第１実施形態に係るＦＰＧＡに搭載されるプログラム用のＦｅＲＡＭ１の動作例に、図４〜図６を参照して説明する。
まず、図２に示すメモリセルＭ００のＳＲＡＭセル４にデータを書き込み、その書き込んだデータをＦｅＲＡＭセル５−０に保持する場合の動作について、図４を参照して説明する。
【００４２】
ここで、電源投入時の各部の状態は重要ではないので、図４に示すように、ビット線ＢＬ、ＸＢＬおよび出力線ＯＵＴＬ、ＯＵＴＨのデータは不定とし、他の部分の信号はＬレベル（ローレベル）にしている。
この動作では、ＦｅＲＡＭセル５−１〜５−ｎにはアクセスしないので、キャパシタ線ＣＬＯ２〜ＣＬＯｎ、およびポンプ線ＰＵＭＰ２〜ＰＵＭＰｎはＬレベルとする。また、ＦｅＲＡＭセル５−０からのデータの読み出しも行わないので、制御信号ＰＲＥＧもＬレベルとする。
【００４３】
いま、図４に示すように、時刻ｔ１において電源が投入されると、電源電圧ＶＤＤが立ち上がる。その後、時刻ｔ２において、イネーブルパワー信号ＥＮＢＰがＨレベル（ハイレベル）に立ち上がると、ＭＯＳトランジスタ１２がオンして、電源電圧ＶＤＤが電源電圧線ＰＷＲＨを介してインバータ６、７に供給される。
【００４４】
次に、データＤｉｎ０をＳＲＡＭセル４に書き込む。ここでは、データＤｉｎ０としてＨレベルを書き込むので、時刻ｔ３において、データＤｉｎ０をＨレベルにする。その後、時刻ｔ４において、イネーブル信号ＥＮＢＡをＨレベルにし、差動変換器２−０をアクティブの状態にする。
ここで、差動変換器２−０は、入力としてＨレベルが入力されると、＋出力端子からはＨレベルが出力され、−出力端子からはＬレベルが出力されるようになっている。この結果、図４に示すように、ビット線ＢＬ０はＨレベル、ビット線ＸＢＬ０はＬレベルとなる。
【００４５】
次に、時刻ｔ５において、ワード線ＷＬ０をＨレベルとするので、ＭＯＳトランジスタ８、９がオンとなる。この結果、ビット線ＢＬ０と出力線ＯＵＴＨが接続され、ビット線ＸＢＬ０と出力線ＯＵＴＬが接続される。
ここで、差動変換器２−０は、インバータ６、７のよりも、出力インピーダンスが低い（ドライブ能力が高い）ように設計されている。このため、差動変換器２−０の出力に基づき、出力線ＯＵＴＨ側はＨレベル、出力線ＯＵＴＬ側はＬレベルとなる（図４参照）。
【００４６】
その後、時刻ｔ６においてワード線ＷＬ０をＨレベルからＬレベルとし、時刻ｔ７においてイネーブル信号ＥＮＢＡをＨレベルからＬレベルとする。
ここで、ワード線ＷＬ０をＬレベルにさせ、ビット線ＢＬ０と出力線ＯＵＴＨを切断するとともに、ビット線ＸＢＬ０と出力線ＯＵＴＬを切断しても、インバータ６、７は逆接続されてデータを保持しているので、出力線ＯＵＴＨはＨレベルを保持し、出力線ＯＵＴＬはＬレベルを保持する。この状態は、ＳＲＡＭセル４にデータを新たに書き換えるか、または電源がオフとならない限り維持される。
【００４７】
その後、時刻ｔ８において、データＤｉｎ０をＨレベルからＬレベルに変化させる。
次に、このようにＳＲＡＭセル４に書き込まれたデータを、ＦｅＲＡＭセル５−０に格納（保管）しておくことにより、ＦＰＧＡ内に回路を構築できるので、そのＦｅＲＡＭセル５−０へのデータの格納動作について以下に説明する。
【００４８】
この場合には、時刻ｔ９において、キャパシタ線ＣＬＯ１をＨレベルとする。この結果、ＭＯＳトランジスタＱ０１、Ｑ０２がいずれもオンするので、強誘電体キャパシタＣ０１に出力線ＯＵＴＨのＨレベルの電位が印加され、強誘電体キャパシタＣ０２に出力線ＯＵＴＬのＬレベルの電位が印加される。このときには、強誘電体キャパシタＣ０１、Ｃ０２に接続されているポンプ線ＰＵＭＰ１の電位はＬレベルである。
【００４９】
ここで、強誘電体キャパシタＣ０１、Ｃ０２の分極方向は、図４に示すように矢印で示すものとし、矢印の向きはＨレベルからＬレベルの方向に一致するものとする。
時刻ｔ９〜時刻ｔ１０の期間Ｔ１では、強誘電体キャパシタＣ０１は、上側の電極にＨレベルの電位が印加され、下側の電極にＬレベルの電位が印加されるので、その分極方向は図４に示すように下向きの矢印となる。このとき、強誘電体キャパシタＣ０２は、上側の電極にＬレベルの電位が印加され、下側の電極にＬレベルの電位が印加されるので、その分極方向は初期状態の不安定のままとなり、この状態を図４では記号「−」で表す。
【００５０】
時刻ｔ１０において、ポンプ線ＰＵＭＰ１をＨレベルとする。この結果、強誘電体キャパシタＣ０１は、上側の電極にＨレベルの電位が印加され、下側の電極にＨレベルの電位が印加されて同電位となるので、その分極方向は図４に示すように下向きの矢印のままになる。このとき、強誘電体キャパシタＣ０２は、上側の電極にＬレベルの電位が印加され、下側の電極にＨレベルの電位が印加されるので、その分極方向は図４に示すように上向きの矢印になる。
【００５１】
その後、時刻ｔ１１においてポンプ線ＰＵＭＰ１をＨレベルからＬレベルとし、時刻ｔ１２においてキャパシタ線ＣＬＯ１をＨレベルからＬレベルとする。
このような動作により、強誘電体キャパシタＣ０１、Ｃ０２に分極が残り、データの保存が完了する。この分極の方向は電源がオフされても残るので、メモリセルＭ００は、不揮発性ＲＡＭとなる。
【００５２】
なお、以上の説明は、ＦｅＲＡＭセル５−０へのデータの格納動作であるが、他のＦｅＲＡＭセル５−１〜５〜ｎについても同様な動作によりデータを格納することができる。
次に、上記のように、メモリセルＭ００のＳＲＡＭセル４にデータを書き込み、その書き込んだデータをＦｅＲＡＭセル５−０に保持したのち、ＳＲＡＭセル４に書き込んだデータを外部に読み出してチェックする場合の動作について、図５を参照して説明する。
【００５３】
このときには、インバータ６、７からなるフリップフロップにデータが格納されており、出力線ＯＵＴＨはＨレベル、出力線ＯＵＴＬはＬレベルとする。また、メモリセルＭ００の各部の状態は、図５に示すものとする。
図５に示すように、時刻ｔ１においてワード線ＷＬ０をＨレベルにすると、ＭＯＳトランジスタ８、９がいずれもオンとなる。この結果、ビット線ＢＬ０と出力線ＯＵＴＨが接続され、ビット線ＸＢＬ０と出力線ＯＵＴＬが接続されるので、出力線ＯＵＴＨと出力線ＯＵＴＬの各電位が、ビット線ＢＬ０とビット線ＸＢＬ０に伝達される。
【００５４】
このため、時刻ｔ１〜ｔ２の期間Ｔ１において、差動アンプ３−０は、ビット線ＢＬ０とビット線ＸＢＬ０との電位差を検出し、それに応じた出力データＤｏｕｔ０を読み出す。その後、時刻ｔ２にワード線ＷＬ０をＨレベルからＬレベルにすると、読み出し動作を終了する。
ここで、データの高速な読み出しのために、予め制御信号ＰＲＥＧをＨレベル、すなわちビット線ＢＬ０とビット線ＸＢＬ０をＬレベルにしておき、その後にワード線ＷＬ０をＨレベルにする直前に制御信号ＰＲＥＧをＬレベルにするようにしても良い。なお、このときには、ワード線ＷＬ０をＨレベルにする直前に、制御信号ＰＲＥＧをＬレベルからＨレベル、更にＬレベルにするようにしてもかまわない。
【００５５】
次に、上記のように、メモリセルＭ００のＦｅＲＡＭセル５−０に保持させたデータを、出力線ＯＵＴＨ、ＯＵＴＬに読み出す場合の動作について、図６を参照しながら説明する。
まず、インバータ６、７をオフ（ハイインピーダンス状態）にするために、時刻ｔ１において、イネーブルパワー信号ＥＮＢＰをＬレベルにする。これにより、電源電圧ＶＤＤのインバータ６、７への供給が停止されて、インバータ６、７がオフの状態になる。
【００５６】
また、時刻ｔ１では、制御信号ＰＲＥＧをＨレベルにするので、ＭＯＳトランジスタＱ０、Ｑ０’がいずれもオンになる。この結果、ビット線ＢＬ０およびビット線ＸＢＬ０はいずれも接地され、Ｌレベルとなる。
次に、時刻ｔ２では、ワード線ＷＬ０をＨレベルにするので、ＭＯＳトランジスタ８、９がいずれもオンとなる。この結果、ビット線ＢＬ０と出力線ＯＵＴＨが接続され、ビット線ＸＢＬ０と出力線ＯＵＴＬが接続されるので、出力線ＯＵＴＨと出力線ＯＵＴＬの各電位はＬレベルとなる。
【００５７】
また、時刻ｔ２では、キャパシタ線ＣＬＯ１をＨレベルとするので、ＭＯＳトランジスタＱ０１、Ｑ０２がいずれもオンになる。この結果、強誘電体キャパシタＣ０１と出力線ＯＵＴＨが接続され、強誘電体キャパシタＣ０２と出力線ＯＵＴＬが接続される。
引き続き、時刻ｔ３において、ワード線ＷＬ０をＨレベルからＬレベルとし、ビット線ＢＬ０と出力線ＯＵＴＨを切断させ、ビット線ＸＢＬ０と出力線ＯＵＴＬを切断させる。このときには、出力線ＯＵＴＨと出力線ＯＵＴＬは、図６に示すようにＬレベルを維持している。
【００５８】
次に、時刻ｔ４において、ポンプ線ＰＵＭＰ１をＨレベルにし、強誘電体キャパシタＣ０１、Ｃ０２とに電圧を印加させ、電荷を注入する。このときの電荷量と分極に着目すると、図６に示すように、強誘電体キャパシタＣ０１は分極と逆の電位が印加されるので、分極方向が逆になる。また、強誘電体キャパシタＣ０２は、同方向であるので、分極に変化が起こらない。
【００５９】
この動作を電荷で考えると、強誘電体キャパシタＣ０１は分極方向が変わることにより、出力線ＯＵＴＨに変化に応じた電荷を排出することになる。これに対して、強誘電体キャパシタＣ０２は分極方向の変化がないので、出力線ＯＵＴＬに電荷の排出はない。ただし、電荷の排出は、分極によるものだけではないが、ここでは、電荷の排出量の差をデータとして取り出すので、他の影響は少ないためにその記述は省略する。
【００６０】
この電荷の排出量の差によって、図６の時刻ｔ４〜ｔ５の期間Ｔ１では、出力線ＯＵＴＨの電位と出力線ＯＵＴＬの電位とでは、その差が現れる。すなわち、最終的に、出力線ＯＵＴＨの電位が、出力線ＯＵＴＬの電位よりも高くなる。
ここで、図６では、時刻ｔ４においてポンプ線ＰＵＭＰ１をＨレベルにするときに、制御信号ＰＲＥＧをＬレベルとしているが、特にこのようにする必要はない。従って、ビット線ＢＬ０とビット線ＸＢＬ０との電位を固定させるために、制御信号ＰＲＥＧをＨレベルのままにしておいても良い。
【００６１】
時刻ｔ５において、イネーブルパワー信号ＥＮＢＰをＨレベルにすると、インバータ６、７がアンプとして動作し、出力線ＯＵＴＨと出力線ＯＵＴＬとの電位差をさらに広げて、出力線ＯＵＴＨをＨレベルにさせ、出力線ＯＵＴＬをＬレベルにさせる。このときには、ポンプ線ＰＵＭＰ１はＬレベルにしておく。
以上により、ＦｅＲＡＭセル５−０からのデータの読み出し動作は終了する。しかし、実際には、時刻ｔ４から時刻ｔ６の期間Ｔ２では、強誘電体キャパシタＣ０１、Ｃ０２は、特に強誘電体キャパシタＣ０２は、分極方向が同じでも、その分極量が変化している。
【００６２】
このため、ポンプ線ＰＵＭＰ１を、時刻ｔ６においてＨレベルにしたのち時刻ｔ７においてＬレベルに変化させ、強誘電体キャパシタＣ０１、Ｃ０２の分極方向を、もう一度ＳＲＡＭセル４に書き込む（リライト）ようにしている。
このようにしてＦｅＲＡＭセル５−０からＳＲＡＭセル４に読み出したデータを、外部に読み出したい場合には、図５に示した動作により行う。
【００６３】
このような動作によれば、電源投入後であっても、強誘電体キャパシタＣ０１、Ｃ０２からデータを読み出すことができる。
また、ＦｅＲＡＭセル５−０〜５−ｎに保持される各データのうちの任意のデータの読み出しは、キャパシタ線ＣＬＯ１〜ＣＬＯｎ、および電源線ＰＵＭＰ１〜ＰＵＭＰｎの選択的な動作により行うことができる。
【００６４】
ここで、ＦｅＲＡＭセル５−０〜５−ｎからのデータの読み出しは、図１に示す全てのメモリセルＭ００〜Ｍｎｎについて同時にできるので、図６に示すような制御動作を一度行うだけで良い。
また、電源投入後のメモリセルＭ００〜Ｍｎｎへのプログラミング、その保持されたプログラムの切り替えも一度に制御できるので、高速である。
【００６５】
以上説明したように、本発明のＦＰＧＡの第１実施形態では、プログラム用のＦｅＲＡＭ１を、図１に示すように複数のメモリセルＭ００〜Ｍｎｎから構成し、そのメモリセルＭ００〜Ｍｎｎは、ＳＲＡＭセル４と、複数のＦｅＲＡＭセル５−０〜５−ｎとから構成するようにした。
さらに、メモリセルＭ００〜Ｍｎｎの各出力線ＯＵＴＨ、ＯＵＴＬを同時に同電位（接地電位）にするために、複数のメモリセルに共通に使用する一対のビット線を、それぞれＭＯＳトランジスタを介して接地させるようにした。
【００６６】
このため、メモリセルＭ００〜Ｍｎｎの各出力線ＯＵＴＨ、ＯＵＴＬを同電位にするための構成を簡略化でき、省スペース化を実現できる。
また、メモリセルＭ００〜Ｍｎｎは、複数のＦｅＲＡＭセル５−０〜５−ｎを備えているので、複数のプログラムを書き込むことができ、１つのＦＰＧＡで複数の論理回路を構成してその使い分けができる。
【００６７】
従って、例えばこのＦＰＧＡを無線通信に使用する場合には、データの処理方法が違う通信を、１つのＦＰＧＡでプログラムを切り替えながらデータの処理をすることができる。また、そのプログラムの切り替えも高速にできる。
さらに、この第１実施形態では、メモリセルＭ００〜Ｍｎｎが、複数のＦｅＲＡＭセル５−０〜５−ｎを含むようにしたので、製品の仕様に対して、余分にＦｅＲＡＭセルを確保しておくようにすれば、不良メモリを良メモリに置き換えて仕様を満足することができる。このため、歩留りの改善となり、製品のコストダウンに寄与できる。
【００６８】
さらにまた、この第１実施形態では、メモリセルＭ００〜Ｍｎｎが、それぞれ複数のＦｅＲＡＭセル５−０〜５−ｎを含むようにしたので、その全てのＦｅＲＡＭセル５−０〜５−ｎに同一のデータを書き込み、ＦｅＲＡＭセル群（プログラム）毎にデータを比較し、同じであれば良品、違いがあるときには不良品と判断できる。
【００６９】
次に、第１実施形態に係るＦＰＧＡの使用方法の例について説明する。
まず、第１実施形態に係るＦＰＧＡの第１の使用方法について説明する。
この第１の使用方法は、複数のメモリセルＭ００〜Ｍｎｎに含まれる複数のＦｅＲＡＭセル５−０〜５−ｎのうち、例えばＦｅＲＡＭセル５−０にＦＰＧＡのプログラムを予め格納するとともに、ＦｅＲＡＭセル５−１にその同じプログラムをバックアップ用プログラムとして予め格納しておくものとする。
【００７０】
そして、ＦｅＲＡＭセル５−０に格納されるプログラムと、ＦｅＲＡＭセル５−１に格納されるバックアップ用プログラムとを随時または定期的に比較し、両者の内容が正しかい否かを判断する。
このようにすると、その判断の結果により適切処理ができ、ＦＰＧＡの信頼性を向上できる。
【００７１】
ここで、ＦＰＧＡを書き換え可能なハードウエアキーとして使用するような場合には、ＦｅＲＡＭセル５−１、５−２・・・などに２以上のバックアップ用プログラムを予め格納しておくようにする。
そして、ＦｅＲＡＭセル５−０に格納されるプログラムと、ＦｅＲＡＭセル５−１、５−２・・・・に格納される２以上のバックアップ用プログラムとそれぞれ比較し、多数決によりプログラムの内容が正しかい否かを決定する。
【００７２】
このようにすると、ＦＰＧＡを書き換え可能なハードウエアキーとして使用するような場合に、より高い信頼性を確保できる。
なお、第１の使用例の変形例として、複数のＦｅＲＡＭセル５−０〜５−ｎのうち、例えばＦｅＲＡＭセル５−０、５−１にＦＰＧＡの２種類類のプログラムというように、複数種類のプログラムを予め格納するとともに、ＦｅＲＡＭセル５−２、５−３にその同じ複数種類のプログラムを、バックアップ用プログラムとして予め格納しておくようにしてもよい。
【００７３】
このようにすると、ＦＰＧＡで複数種類のプログラムを使用する場合に、上記と同様に使用できる上に、上記と同様な効果が得られる。
次に、第１実施形態に係るＦＰＧＡの第２の使用方法について説明する。
この第２の使用方法は、複数のメモリセルＭ００〜Ｍｎｎに含まれる複数のＦｅＲＡＭセル５−０〜５−ｎのうち、例えばＦｅＲＡＭセル５−０にＦＰＧＡのプログラムを予め格納するとともに、ＦｅＲＡＭセル５−１にその同じプログラムを予め格納しておくものとする。
【００７４】
そして、ＦＰＧＡの使用時には、ＦｅＲＡＭセル５−０に格納されるプログラムと、ＦｅＲＡＭセル５−１に格納されるプログラムとを、例えば交互というように、所定の順序で読み出して使用するようにした。
このように、複数のＦｅＲＡＭセル５−０〜５−ｎのうちの２以上に、同一のプログラムを格納しておき、ＦＰＧＡの使用時に、その各プログラムを所定の順番に読み出して使用すれば、ＦｅＲＡＭの寿命を延ばすことができる。それは、強誘電体キャパシタは、その材料の特性上、使用回数とデータの保持時間に制限があるためである。
【００７５】
なお、第２の使用例の変形例として、複数のＦｅＲＡＭセル５−０〜５−ｎのうち、例えばＦｅＲＡＭセル５−０、５−１にＦＰＧＡの２種類類のプログラムというように、複数種類のプログラムを予め格納するとともに、ＦｅＲＡＭセル５−２、５−３にその同じ複数種類のプログラムを予め格納しておくようにしてもよい。
【００７６】
このようにすると、ＦＰＧＡで複数種類のプログラムを使用する場合に、上記と同様に使用できる上に、上記と同様な効果が得られる。
次に、第１実施形態に係るＦＰＧＡの第３の使用方法について説明する。
この第３の使用方法は、ＦＰＧＡをカードなどに搭載して認証用のハードウエアキーとして使用するものであり、その具体的な使用例を図１２に示す。
【００７７】
この使用例では、図１２に示すように、カード３１内に、ハードウエアキーとして「プログラムＡ」で回路構成されたＦＰＧＡ３２を実装させておく。
ここで、ＦＰＧＡ３２の内蔵されるＦｅＲＡＭは、図１および図２に示すように構成されている。
利用者（ユーザ）は、コンピュータなどからなる認証装置３３に対してユーザ名とパスワード（暗証番号）を入力し、そのカード３１を認証装置３３に接続する。
【００７８】
認証装置３３は、ユーザ名とパスワードに基づいて、カード３１の種類（個人の識別の正確性を高めるためにＦＰＧＡ３２を複数種類用意した場合）とＦＰＧＡ３２内のプログラムの内容を判断し、送信データと期待する受信データとをそれぞれ用意し、その送信データを送信する。
その送信データはカード３１に送られ、カード３１が受信する。この受信データは、「プログラムＡ」で回路構成されたＦＰＧＡ３２で変換（処理）され、この変換されたデータを認証装置３３に返送する。
【００７９】
認証装置３３は、「期待する受信データ」と受信した「変換データ」とを比較し、その比較結果に基づいて利用者の正当性、すなわち利用者が正当使用であるか不正使用であるかを判断する。すなわち、その両者が一致の場合には正当使用と判断し、その両者が不一致の場合には不正使用と判断する。
ここで、ＦＰＧＡ３２が複数のプログラムを格納する場合には、複数のプログラムについて上記の処理を行ってその不一致をもって不正使用を判断したり、またはその複数のプログラムのうちの任意のプログラムの不一致をもって不正使用を判断すれば、さらに不正使用の判断の正確性を高めることができる。
【００８０】
ところで、ＦＰＧＡ３２のプログラムは、ハードウエアキーとしての機能を高めるために書き換える。そのプログムの書き換えは、通信時に随時行うか、上記の使用時に同じ手続により自動で行うようにすれば、利用者も第３者もその中身（内容）を知ることができないので、機密性が高い。
ここで、ＦＰＧＡ３２に使用されるＦｅＲＡＭは、強誘電体キャパシタを使用しているので、ＦＰＧＡ３２のパッケージを剥がそうとすると、強誘電体が薬品で腐食されるので、プログラムを解析できず、機密性が高い。
【００８１】
次に、本発明のＦＰＧＡの第２実施形態の構成について説明する。
この第２実施形態に係るＦＰＧＡは、上記の第２実施形態に係るＦＰＧＡと基本的な構成はほぼ同一であり、図１に示すＦｅＲＡＭ１を図７に示すようなＦｅＲＡＭ２１に置き換えたものである。
第２実施形態に係るＦＰＧＡに搭載されるプログラム用のＦｅＲＡＭ２１は、図７に示すように、複数のメモリセルＭＥ００〜ＭＥｎｎが２次元マトリクス状に配置され、そのメモリセルＭＥ００〜ＭＥｎｎに対応して、図中の縦方向にメモリセルＭＥ００〜ＭＥｎｎに対するデータの読み書きを行うためのビット線ＢＬ００〜ＢＬｎが配置され、かつ、図中の横方向にメモリセルＭＥ００〜ＭＥｎｎを選択するためのワード線ＷＬ０〜ＷＬｎが配置されている。
【００８２】
ビット線ＢＬ００、ＢＬ１、・・・・ＢＬｎの各一端側は、対応する入力用のバッファ２２−０、２２−１、・・・・２２−ｎの各出力側にそれぞれ接続されている。また、ビット線ＢＬ００、ＢＬ１、・・・・ＢＬｎの各他端側は、対応する出力用のバッファ２３−０、２３−１、・・・・２３−ｎの各入力側にそれぞれ接続されている。
【００８３】
ワード線ＷＬ０は、メモリセルＭＥ００、ＭＥ０１・・・・ＭＥ０ｎを選択できるようになっている。ワード線ＷＬ１は、メモリセルＭＥ１０、ＭＥ１１・・・・ＭＥ１ｎを選択できるようになっている。同様に、ワード線ＷＬｎは、メモリセルＭＥｎ０、ＭＥｎ１・・・・ＭＥｎｎを選択できるようになっている。
ビット線ＢＬ００、ＢＬ１、・・・・ＢＬｎは、対応するＭＯＳトランジスタＱ０、Ｑ１、・・・・Ｑｎを介して接地されるようになっている。すなわち、ビット線ＢＬ００、ＢＬ１、・・・・ＢＬｎは、ＭＯＳトランジスタＱ０、Ｑ１、・・・・Ｑｎのオン動作により、同時に接地されるようになっている。
【００８４】
このように構成されるＦｅＲＡＭ２１における複数のメモリセルＭＥ００〜ＭＥｎｎは、ＦＰＧＡ内に設けられている所望の論理回路を形成するための各スイッチに対応する。
次に、図７に示すメモリセルＭＥ００〜ＭＥｎｎは同様に構成されるので、その一例としてメモリセルＭＥ００の構成について、図８を参照して説明する。
【００８５】
メモリセルＭＥ００は、図８に示すように、一点鎖線で囲まれたＳＲＡＭセル２４と、複数のＦｅＲＡＭセル５−０〜５−ｎとから構成されている。
また、メモリセルＭＥ００は、ＳＲＡＭセル２４に外部からデータをいったん書き込み、そのデータをＦｅＲＡＭセル５−０〜５−ｎのうちの１つに選択的に書き込んで保持できるようになっている。従って、ＦｅＲＡＭセル５−０〜５−ｎには、ＦＰＧＡに係るｎ個またはｎ種類のプログラムのデータを保持できるようになっている。
【００８６】
さらに、メモリセルＭＥ００は、ＳＲＡＭセル２４に書き込んだデータを読み出すことができるとともに、ＦｅＲＡＭセル５−０〜５−ｎに保持されるデータのうちの１つを選択的に読み出すことができるようになっている。
また、メモリセルＭＥ００は、出力線ＯＵＴＨと出力線ＯＵＴＬとを同電位（接地電位）とするために、ビットラインＢＬ０がＭＯＳトランジスタＱ０を介して接地され、出力線ＯＵＴＬがＭＯＳトランジスタ２５を介して接地されている。また、ＭＯＳトランジスタＱ０とＭＯＳトランジスタ２５の各ゲートには、制御信号ＰＲＥＧが供給されるようになっている。
【００８７】
このような構成により、ＭＯＳトランジスタＱ０、２５をオンにさせると、ＭＯＳトランジスタ８をオンにさせることを条件に、メモリセルＭＥ００の出力線ＯＵＴＨと出力線ＯＵＴＬの電位を同時に接地電位にできるのみならず、他のメモリセルＭＥ１０、ＭＥ２０・・・・ＭＥｎ０の出力線ＯＵＴＨと出力線ＯＵＴＬの電位を同時に接地電位にできる（図７参照）。
【００８８】
さらに詳述すると、ＳＲＡＭセル２４は、互いに逆接続されるインバータ６、７から構成されるフリップフロップと、このフリップフロップに対して読み書きを行うＮ型のＭＯＳトランジスタ８とで構成され、電源がオフにならなければ、１ビットのデータを保持できるようになっている。
このために、ビット線ＢＬ０にＭＯＳトランジスタ８が接続され、これにインバータ６が直列に接続されるとともに、インバー６にインバータ７が逆接続されている。また、ＭＯＳトランジスタ８ゲートは、ワード線ＷＬ０に接続されている。さらに、インバータ６、７の一方の共通接続部は出力線ＯＵＴＨに接続され、その他方の共通接続部は出力線ＯＵＴＬに接続されている。
【００８９】
インバータ６、７は、電源電圧線ＰＷＲＨおよび接地電圧線ＰＷＲＬとで図３に示す電源制御回路１０と接続され、電源制御回路１０により電源がオンオフ制御するようになっている。
なお、ＦｅＲＡＭセル５−０〜５−ｎの構成は、出力線ＯＵＴＨがＭＯＳトランジスタＱ２５により接地される点を除けば、図２に示すＦｅＲＡＭセル５−０〜５−ｎの構成と同一であるので、その説明は省略する。
【００９０】
次に、このような構成からなる第２実施形態に係るＦＰＧＡに搭載されるプログラム用のＦｅＲＡＭ２１の動作例について、図９〜図１１を参照しながら説明する。
まず、図８に示すメモリセルＭＥ００のＳＲＡＭセル２４にデータを書き込み、その書き込んだデータをＦｅＲＡＭセル５−０に保持する場合の動作について、図９を参照して説明する。
【００９１】
ここで、電源投入時の各部の状態は重要ではないので、図９に示すように、ビット線ＢＬ０および出力線ＯＵＴＬ、ＯＵＴＨのデータは不定とし、他の部分の信号はＬレベルにしている。
この動作では、ＦｅＲＡＭセル５−１〜５−ｎにはアクセスしないので、キャパシタ線ＣＬＯ２〜ＣＬＯｎ、およびポンプ線ＰＵＭＰ２〜ＰＵＭＰｎはＬレベルとする。また、ＦｅＲＡＭセル５−０からのデータの読み出しも行わないので、制御信号ＰＲＥＧもＬレベルとする。
【００９２】
いま、図９に示すように、時刻ｔ１において電源が投入されると、電源電圧ＶＤＤが立ち上がる。その後、時刻ｔ２において、イネーブルパワー信号ＥＮＢＰがＨレベルに立ち上がると、図３に示す電源制御回路１０のＭＯＳトランジスタ１２、１３がオンして、電源電圧ＶＤＤが電源電圧線ＰＷＲＨ、ＰＷＲＬを介してインバータ６、７に供給される。
【００９３】
次に、データＤｉｎ０をＳＲＡＭセル２４に書き込む。ここでは、データＤｉｎ０としてＨレベルを書き込むので、時刻ｔ３において、データＤｉｎ０をＨレベルにする。その後、時刻ｔ４において、イネーブル信号ＥＮＢＡをＨレベルにし、バッファ２２−０をアクティブの状態にする。ここで、バッファ２２−０がアクティブになると、ビット線ＢＬ０はＨレベルになる。
【００９４】
次に、時刻ｔ５において、ワード線ＷＬ０をＨレベルとするので、ＭＯＳトランジスタ８がオンとなる。この結果、ビット線ＢＬ０と出力線ＯＵＴＨとが接続される。
ここで、バッファ２２−０は、インバータ６、７のよりも、出力インピーダンスが低い（ドライブ能力が高い）ように設計されている。このため、バッファ２２−０の出力に基づき、出力線ＯＵＴＨ側はＨレベル、出力線ＯＵＴＬ側はＬレベルとなる（図９参照）。
【００９５】
その後、時刻ｔ６においてワード線ＷＬ０をＨレベルからＬレベルとし、時刻ｔ７においてイネーブル信号ＥＮＢＡをＨレベルからＬレベルとする。
ここで、ワード線ＷＬをＬレベルにさせ、ビット線ＢＬ０と出力線ＯＵＴＨを切断しても、フリップフロップを構成するインバータ６、７はデータを保持しているので、出力線ＯＵＴＨはＨレベルを保持し、出力線ＯＵＴＬはＬレベルを保持する。この状態は、ＳＲＡＭセル２４にデータを新たに書き換えるか、または電源がオフとならない限り維持される。
【００９６】
その後、時刻ｔ８において、データＤｉｎ０をＨレベルからＬレベルに変化させる。
次に、上記のようにしてＳＲＡＭセル２４に書き込まれたデータを、ＦｅＲＡＭセル５−０にあらかじめ格納（保管）しておくことにより、ＦＰＧＡ内に回路を構築できるので、そのＦｅＲＡＭセル５−０へのデータの格納動作について以下に説明する。
【００９７】
この場合には、時刻ｔ９において、キャパシタ線ＣＬＯ１をＨレベルとする。この結果、ＭＯＳトランジスタＱ０１、Ｑ０２がいずれもオンするので、強誘電体キャパシタＣ０１に出力線ＯＵＴＨのＨレベルの電位が印加され、強誘電体キャパシタＣ０２に出力線ＯＵＴＬのＬレベルの電位が印加される。このときには、強誘電体キャパシタＣ０１、Ｃ０２に接続されているポンプ線ＰＵＭＰ１の電位はＬレベルである。
【００９８】
ここで、強誘電体キャパシタＣ０１、Ｃ０２の分極方向は、図９に示すように矢印で示すものとし、矢印の向きは電位がＨレベルからＬレベルの方向に一致するものとする。
時刻ｔ９〜時刻ｔ１０の期間ｔ１では、強誘電体キャパシタＣ０１は、上側の電極にＨレベルの電位が印加され、下側の電極にＬレベルの電位が印加されるので、その分極方向は図９に示すように下向きの矢印となる。このとき、強誘電体キャパシタＣ０２は、上側の電極にＬレベルの電位が印加され、下側の電極にＬレベルの電位が印加されるので、その分極方向は初期状態の不安定のままとなり、この状態を図９では記号「−」で表す。
【００９９】
時刻ｔ１０において、ポンプ線ＰＵＭＰ１をＨレベルとする。この結果、強誘電体キャパシタＣ０１は、上側の電極にＨレベルの電位が印加され、下側の電極にＨレベルの電位が印加されて同電位となるので、その分極方向は図９に示すように下向きの矢印のままになる。このとき、強誘電体キャパシタＣ０２は、上側の電極にＬレベルの電位が印加され、下側の電極にＨレベルの電位が印加されるので、その分極方向は図９に示すように上向きの矢印になる。
【０１００】
その後、時刻ｔ１１においてポンプ線ＰＵＭＰ１をＨレベルからＬレベルとし、時刻ｔ１２においてキャパシタ線ＣＬＯ１をＨレベルからＬレベルとする。
このような動作により、強誘電体キャパシタＣ０１、Ｃ０２に分極が残り、データの保存が完了する。この分極の方向は電源がオフされても残るので、メモリセルＭＥ００は、不揮発性ＲＡＭとなる。
【０１０１】
なお、以上の説明は、ＦｅＲＡＭセル５−０へのデータの格納動作であるが、他のＦｅＲＡＭセル５−１〜５〜ｎについても同様な動作によりデータを格納することができる。
次に、上記のように、メモリセルＭＥ００のＳＲＡＭセル２４にデータを書き込み、その書き込んだデータをＦｅＲＡＭセル５−０に保持したのち、ＳＲＡＭセル２４に書き込んだデータを外部に読み出してチェックする場合の動作について、図１０を参照して説明する。
【０１０２】
このときには、インバータ６、７からなるフリップフロップにデータが格納されており、出力線ＯＵＴＨはＨレベル、出力線ＯＵＴＬはＬレベルとする。また、メモリセルＭＥ００の各部の状態は、図１０に示すものとする。
図１０に示すように、時刻ｔ１においてワード線ＷＬをＨレベルにすると、ＭＯＳトランジスタ８がオンとなる。この結果、ビット線ＢＬ０と出力線ＯＵＴＨが接続されるので、出力線ＯＵＴＨの電位がビット線ＢＬ０に伝達される。
【０１０３】
このため、時刻ｔ１〜ｔ２の期間ｔ１において、バッファ２３−０は、ビット線ＢＬ０の電位を検出し、それに応じた出力データＤｏｕｔ、この場合ＤｏｕｔはＨレベルを読み出す。その後、時刻ｔ２にワード線ＷＬをＨレベルからＬレベルにすると、読み出し動作を終了する。
次に、上記のように、ＦｅＲＡＭセル５−０に保持させたデータを、出力線ＯＵＴＨ、ＯＵＴＬ上に読み出す場合の動作について、図１１を参照しながら説明する。
【０１０４】
まず、インバータ６、７をオフ（ハイインピーダンス状態）にするために、時刻ｔ１において、イネーブルパワー信号ＥＮＢＰをＬレベルにする。これにより、電源電圧ＶＤＤのインバータ６、７への供給が停止されて、インバータ６、７がオフの状態になる。
次に、時刻ｔ２では、制御信号ＰＲＥＧをＨレベルにするので、ＭＯＳトランジスタＱ０とＭＯＳトランジスタ２５がいずれもオンになる。この結果、ビット線ＢＬ０および出力線ＯＵＴＬはいずれも接地され、Ｌレベルとなる。
【０１０５】
その後、時刻ｔ３では、ワード線ＷＬをＨレベルにするので、ＭＯＳトランジスタ８がオンとなる。この結果、ビット線ＢＬ０と出力線ＯＵＴＨが接続され、出力線ＯＵＴＨの電位もＬレベルとなる。
また、時刻ｔ３では、キャパシタ線ＣＬＯ１をＨレベルとするので、ＭＯＳトランジスタＱ０１、Ｑ０２がいずれもオンになる。この結果、強誘電体キャパシタＣ０１と出力線ＯＵＴＨが接続され、強誘電体キャパシタＣ０２と出力線ＯＵＴＬが接続される。
【０１０６】
引き続き、時刻ｔ４において、ワード線ＷＬ０と制御信号ＰＲＥＧをＨレベルからＬレベルとし、ビット線ＢＬ０と出力線ＯＵＴＨを切断させると同時に、出力線ＯＵＴＬの接地状態を解除する。このときには、出力線ＯＵＴＨと出力線ＯＵＴＬは、図１１に示すようにＬレベルを維持している。
次に、時刻ｔ５において、ポンプ線ＰＵＭＰ１をＨレベルにし、強誘電体キャパシタＣ０１、Ｃ０２とに電圧を印加させ、電荷を注入する。このときの電荷量と分極に着目すると、図１１に示すように、強誘電体キャパシタＣ０１は分極と逆の電位が印加されるので、分極方向が逆になる。また、強誘電体キャパシタＣ０２は、同方向であるので、分極に変化が起こらない。
【０１０７】
この動作を電荷で考えると、強誘電体キャパシタＣ０１は分極方向が変わることにより、出力線ＯＵＴＨに変化に応じた電荷を排出することになる。これに対して、強誘電体キャパシタＣ０２は分極方向の変化がないので、出力線ＯＵＴＬに電荷の排出はない。
この電荷の排出量の差によって、図１１の時刻ｔ５〜ｔ６の期間Ｔ１においては、出力線ＯＵＴＨの電位と出力線ＯＵＴＬの電位とでは、その差が現れる。すなわち、最終的に、出力線ＯＵＴＨの電位が、出力線ＯＵＴＬの電位よりも高くなる。
【０１０８】
時刻ｔ６において、イネーブルパワー信号ＥＮＢＰをＨレベルにすると、インバータ６、７がアンプとして動作し、出力線ＯＵＴＨと出力線ＯＵＴＬとの電位差をさらに広げて、出力線ＯＵＴＨをＨレベルにさせ、出力線ＯＵＴＬをＬレベルにさせる。このときには、ポンプ線ＰＵＭＰ１もＬレベルにしておく。
以上により、ＦｅＲＡＭセル５−０からのデータの読み出し動作は終了する。しかし、実際には、時刻ｔ５から時刻ｔ７の期間Ｔ２では、強誘電体キャパシタＣ０１、Ｃ０２は、特に強誘電体キャパシタＣ０２は、分極方向が同じでも、その分極量が変化している。
【０１０９】
このため、ポンプ線ＰＵＭＰ１を、時刻ｔ７においてＨレベルにしたのち時刻ｔ８においてＬレベルにし、強誘電体キャパシタＣ０１、Ｃ０２の分極方向を、もう一度ＳＲＡＭセル２４に書き込む（リライト）ようにしている。
このようにしてＦｅＲＡＭセル５−０からＳＲＡＭセル２４に読み出したデータを、外部に読み出したい場合には、図１０に示した動作により行う。
【０１１０】
このような動作によれば、電源投入後であっても、強誘電体キャパシタＣ０１、Ｃ０２からデータを読み出すことができる。
また、ＦｅＲＡＭセル５−０〜５−ｎに保持される各データのうちの任意のデータの読み出しは、キャパシタ線ＣＬＯ１〜ＣＬＯｎ、および電源線ＰＵＭＰ１〜ＰＵＭＰｎの選択的な動作により行うことができる。
【０１１１】
ここで、ＦｅＲＡＭセル５−０〜５−ｎからのデータの読み出しは、図７に示す全てのメモリセルＭＥ００〜ＭＥｎｎについて同時にできるので、図１１に示すような制御動作を一度行うだけで良い。
また、電源投入後のメモリセルＭＥ００〜ＭＥｎｎへのプログラミング、その保持されたプログラムの切り替えも一度に制御できるので、高速である。
【０１１２】
以上説明したように、本発明のＦＰＧＡの第２実施形態では、プログラム用のＦｅＲＡＭ２１を、図７に示すように複数のメモリセルＭＥ００〜ＭＥｎｎから構成し、そのメモリセルＭＥ００〜ＭＥｎｎは、ＳＲＡＭセル２４と、複数のＦｅＲＡＭセル５−０〜５−ｎとから構成するようにした。
さらに、メモリセルＭＥ００〜ＭＥｎｎの各出力線ＯＵＴＨ、ＯＵＴＬを同時に同電位（接地電位）にするために、複数のメモリセルに共通に使用するビット線を、ＭＯＳトランジスタを介して接地させるようにした。
【０１１３】
このため、メモリセルＭＥ００〜ＭＥｎｎの各出力線ＯＵＴＨ、ＯＵＴＬを同電位にするための構成を簡略化でき、省スペース化を実現できる。
また、メモリセルＭＥ００〜ＭＥｎｎは、複数のＦｅＲＡＭセル５−０〜５−ｎを備えているので、複数のプログラムを書き込むことができ、１つのＦＰＧＡで複数の論理回路を構成してその使い分けができる。
【０１１４】
さらに、この第２実施形態では、メモリセルＭＥ００〜ＭＥｎｎが、複数のＦｅＲＡＭセル５−０〜５−ｎを含むようにしたので、製品の仕様に対して、余分にＦｅＲＡＭセルを確保しておくようにすれば、不良メモリを良メモリに置き換えて仕様を満足することができる。このため、歩留りの改善となり、製品のコストダウンに寄与できる。
【０１１５】
さらにまた、この第２実施形態では、メモリセルＭＥ００〜ＭＥｎｎが、それぞれ複数のＦｅＲＡＭセル５−０〜５−ｎを含むようにしたので、その全てのＦｅＲＡＭセル５−０〜５−ｎに同一のデータを書き込み、ＦｅＲＡＭセル群（プログラム）毎にデータを比較し、同じであれば良品、違いがあるときには不良品と判断できる。
【０１１６】
なお、第２実施形態に係るＦＰＧＡは、第１実施形態に係るＦＰＧＡの使用方法と同様の使用方法が適用できること勿論であり、その説明は重複するので、ここではその説明は省略する。
【０１１７】
【発明の効果】
以上説明したように、本発明のＦＰＧＡによれば、ＦＰＧＡに複数のプログラムを格納すべきＦｅＲＡＭを内蔵する際に、ＦｅＲＡＭの省スペース化を図ることができる。
本発明のＦＰＧＡの使用方法によれば、１つのプログラムにより１つの論理回路を構成して使用し、または複数種類のプログラムにより複数の論理回路を構成してその論理回路を選択的に使用するような場合に、信頼性の向上または長寿命化を図ることができる。
【０１１８】
さらに、本発明のＦＰＧＡの使用方法によれば、ＦＰＧＡをハードウエアキーとして使用した場合に、その機能を高めることがきる。
【図面の簡単な説明】
【図１】本発明のＦＰＧＡの第１実施形態に搭載されるＦｅＲＡＭの構成を示す図である。
【図２】図１に示すＦｅＲＡＭのメモリセルの具体的な構成を示す回路図である。
【図３】図２に示すインバータの電源を制御する電源制御回路の回路図である。
【図４】第１実施形態に係るＦｅＲＡＭの動作例を説明するための各部の波形例を示す図である。
【図５】第１実施形態に係るＦｅＲＡＭの他の動作例を説明するための各部の波形例を示す図である。
【図６】第１実施形態に係るＦｅＲＡＭのさらに他の動作例を説明するための各部の波形例を示す図である。
【図７】本発明のＦＰＧＡの第２実施形態に搭載されるＦｅＲＡＭの構成を示す図である。
【図８】図７に示すＦｅＲＡＭのメモリセルの具体的な構成を示す回路図である。
【図９】第２実施形態に係るＦｅＲＡＭの動作例を説明するための各部の波形例を示す図である。
【図１０】第２実施形態に係るＦｅＲＡＭの他の動作例を説明するための各部の波形例を示す図である。
【図１１】第２実施形態に係るＦｅＲＡＭのさらに他の動作例を説明するための各部の波形例を示す図である。
【図１２】第１実施形態に係るＦＰＧＡの使用方法を説明する図である。
【符号の説明】
Ｍ００〜Ｍｎｎ、ＭＥ００〜ＭＥｎｎはメモリセル、ＢＬ０、ＸＢＬ０、ＢＬ１、ＸＢＬ１・・・・ＢＬｎ、ＸＢＬｎはビット線、ＷＬ０〜ＷＬｎはワード線、Ｑ０、Ｑ０’、Ｑ１、Ｑ１’・・・・Ｑｎ、Ｑｎ’はＭＯＳトランジスタ、１、２１はＦｅＲＡＭ、４、２４はＳＲＡＭセル、５−１〜５−ｎはＦｅＲＡＭセル、６、７はインバータ、８、９はＭＯＳトランジスタ、１０は電源制御回路である。
【図１】
2004153700.tif 000003
【図２】
2004153700.tif 000004
【図３】
2004153700.tif 000005
【図４】
2004153700.tif 000006
【図５】
2004153700.tif 000007
【図６】
2004153700.tif 000008
【図７】
2004153700.tif 000009
【図８】
2004153700.tif 000010
【図９】
2004153700.tif 000011
【図１０】
2004153700.tif 000012
【図１１】
2004153700.tif 000013
【図１２】
2004153700.tif 000014