(57)【要約】【課題】コストが低く、ボード面積の縮小が可能なプログラマブル論理デバイスを提供する。【解決手段】フリップフロップ５７はイネーブル状態において組み合わせ論理回路ブロック（ルックアップテーブル５６）の出力状態を蓄積する。マルチプレクサ５８は、組み合わせ論理回路ブロックの出力またはフリップフロップ５７の出力を選択して出力する。そして、コンフィギュレーション情報に含まれる情報により、マルチプレクサ５８の出力としてフリップフロップ５７の出力が選択された場合に、フリップフロップ５７がイネーブル状態となり、組み合わせ論理回路の出力が選択された場合に、フリップフロップ５７がディセーブル状態になる。これにより、コンフィギュレーションを切り換える前の組み合わせ論理回路ブロックの出力状態を蓄積可能になり、前のコンフィギュレーションの結果を蓄積するメモリを新たに設ける必要がなくなる。【選択図】図１３
2007184959.tif 000002
【特許請求の範囲】
【請求項１】
コンフィギュレーション情報に応じて論理動作が設定されるプログラマブル論理デバイスにおいて、
組み合わせ論理回路ブロックと、
イネーブル端子を有し、イネーブル状態において前記組み合わせ論理回路ブロックの出力状態を蓄積するフリップフロップと、
前記組み合わせ論理回路ブロックの出力、または前記フリップフロップの出力を選択して出力するマルチプレクサとを備え、
前記コンフィギュレーション情報は、前記マルチプレクサの出力として前記フリップフロップの出力が選択された場合に、前記フリップフロップを前記イネーブル状態にし、前記マルチプレクサの出力として前記組み合わせ論理回路の出力が選択された場合に、前記フリップフロップをディセーブル状態にする情報を含むことを特徴とするプログラマブル論理デバイス。
【請求項２】
前記コンフィギュレーション情報を蓄積するコンフィギュレーションメモリを有することを特徴とする請求項１記載のプログラマブル論理デバイス。
【請求項３】
前記フリップフロップの出力が、前記組み合わせ論理回路ブロックの入力に接続されていることを特徴とする請求項１または２記載のプログラマブル論理デバイス。
【請求項４】
前記コンフィギュレーション情報が複数であることを特徴とする請求項１乃至３のいずれか一項に記載のプログラマブル論理デバイス。
【請求項５】
前記コンフィギュレーションメモリは、強誘電体メモリを含むことを特徴とする請求項２乃至４記載のいずれか一項に記載のプログラマブル論理デバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はプログラマブル論理デバイスに関し、特に論理状態を任意に規定するための情報（以下、コンフィギュレーション情報と呼ぶ）を蓄積するコンフィギュレーションメモリとして不揮発性の強誘電体メモリを使用し、単一のＬＳＩ（Large-Scale Integration）だけでなく、単一のＬＳＩ上に搭載された１個のプログラマブル論理ブロックとして利用が可能なプログラマブル論理デバイスに関する。
【背景技術】
【０００２】
プログラマブル論理デバイスは、その基本構成要素として、ルックアップテーブルと呼ばれるメモリあるいはマルチプレクサあるいは基礎的なゲート、および、フリップフロップで構成される論理ブロックと、内部配線を規定することができるプログラマブル配線と、入出力状態を規定するプログラマブルＩ／Ｏ（Input/Output）ブロックとを有し、さらに、論理ブロックの論理動作、プログラマブル配線の結線およびプログラマブルＩ／Ｏブロックの入出力状態を規定するコンフィギュレーション情報を蓄積しているコンフィギュレーションメモリを有している。
【０００３】
一般的に、プログラマブル論理デバイスには下記の３つのカテゴリが存在している。
第１は、ルックアップテーブルと呼ばれるメモリとマルチプレクサ、あるいは基礎的なゲート、および、フリップフロップで構成される論理ブロックと、プログラマブル配線、および、プログラマブルＩ／Ｏブロックを持ち、電源が遮断された後にコンフィギュレーション情報が消失するものである。
【０００４】
第２は、ルックアップテーブルと呼ばれるメモリとマルチプレクサ、あるいは基礎的なゲート、および、フリップフロップで構成される論理ブロックと、プログラマブル配線、および、プログラマブルＩ／Ｏブロックを持ち、電源が遮断された後にコンフィギュレーション情報が消失しないものである。
【０００５】
第３は、プログラマブル論理アレイを基本とする論理ブロックを持ち、電源が遮断された後にコンフィギュレーション情報が消失しないものである。
ここで、第１のカテゴリに属するプログラマブル論理デバイスとして、コンフィギュレーションメモリに、ＳＲＡＭ（Static Random Access Memory）型のメモリを使用した例が公知である（米国特許第４６４２４８７号）。
【０００６】
このＳＲＡＭ型メモリセルを利用したプログラマブル論理デバイスでは、電源を遮断した際に、ＳＲＡＭ型メモリセルに蓄積されたコンフィギュレーション情報が消失するため、電源が遮断された後も、コンフィギュレーション情報を蓄積することができるような不揮発メモリにコンフィギュレーション情報を蓄積しておくことが必要になる。そのため、ＳＲＡＭ型メモリセルを用いたプログラマブル論理デバイスでは、電源が遮断された後も、プログラマブル論理デバイスの動作を規定するコンフィギュレーション情報を記憶しておくために、このデバイスの外部に不揮発性のメモリ、例えばＰＲＯＭ（Programmable Read-Only Memory）やＥＰＲＯＭ（Erasable Programmable Read-Only Memory）を設置して、電源が印加された際には、これらのＰＲＯＭ、ＥＰＲＯＭからコンフィギュレーション情報を読み出すようにしている。
【０００７】
プログラマブル論理デバイスのコンフィギュレーション情報が、電源電圧の遮断とともに消失してしまうということに対して第２のカテゴリに属するプログラマブル論理デバイスが提案されている。このプログラマブル論理デバイスでは、コンフィギュレーション情報を強誘電体メモリやＭＲＡＭ（Magnetic Random Access Memory）などの不揮発性メモリに蓄積するようにしている。ここで、一例としては、強誘電体メモリを使用したプログラマブル論理デバイスが公知である（特許第３１２１８６２号）。強誘電体メモリは、ＰＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ（Electrically Erasable Programmable Read-Only Memory）、フラッシュメモリといった高耐圧トランジスタを必要とする不揮発メモリでは実現不可能な、高速性を実現できるため、プログラマブル論理デバイスには特に望ましい技術である。
【０００８】
第３のカテゴリに属するプログラマブル論理デバイスとしては、コンフィギュレーションメモリが第２のカテゴリに属するプログラマブル論理デバイスと同じ不揮発性であるが、コンフィギュレーションメモリにＥＰＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリを使用している。この第３のカテゴリに属するプログラマブル論理デバイスは、例えば、Stephen D. Brown et al., “Field Programmable Gate Arrays,” [Kluwar Academic Publishers] に詳細な説明がなされており、ＣＰＬＤ（Complex Programmable Logic Device）と称されて、第２のカテゴリに属するプログラマブル論理デバイスと区別されている。なお、ＥＰＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリが第２のカテゴリに属するプログラマブル論理デバイスに使用されない理由は、高速性が得られないためである。
【０００９】
なお、本発明が対象としているのは、第１および第２のカテゴリに属するプログラマブル論理デバイスであり、これらは、一般的に、ＦＰＧＡ（Field Programmable Gate Array）と総称されている。
【００１０】
従来のＦＰＧＡの欠点は、単位面積当たりに得られる論理ゲートの数が少ないことである。本欠点を補うために、複数のコンフィギュレーション情報を蓄積できるアーキテクチャが検討されており、これは、ＦＰＧＡと区別するためＤＰＧＡ（Dynamically Programmable Gate Array）と呼称されている（A. DeHon, “Dynamically Programmable Gate Arrays: A Step Toward Increased Computational Density,” Fourth Canadian Workshop of Field-Programmable Devices, 1996）。このＤＰＧＡでは、コンフィギュレーションメモリにＤＲＡＭ（Dynamic Random-Access Memory）が採用されており、したがって、このＤＰＧＡは、コンフィギュレーション情報が電源電圧の遮断とともに消去されてしまうので、第１のカテゴリに属するプログラマブル論理デバイスである。なお、このＤＰＧＡでは、複数のコンフィギュレーション情報を切り換えて使用することにより、少ない論理ゲートを見かけ上増やすことができるが、上記のＤＰＧＡに関する文献には、各コンフィギュレーション情報の切り換え手法に関する記述はない。
【００１１】
また、プログラマブル論理デバイスでは、電源立ち上げ時にコンフィギュレーション情報が未設定の場合には、本来接続されるべきではない配線が接続されてしまうことがある。このとき、この配線が別々のドライバによって異なる論理状態に駆動されると、配線上の電圧が不安定（配線信号のコンフリクト）になり、大きな電流消費を生じる可能性がある。この対策として、毎回電源を立ち上げ、コンフィギュレーション情報を書き込む前に、論理プロックの出力ドライバをディスエーブルする手法がとられている（P. Chow et al., IEEE Transaction on Very Large Scale Integration Systems, vol. 7, No. 3, pp. 321-330, September 1999）。
【発明の開示】
【発明が解決しようとする課題】
【００１２】
しかしながら、従来のプログラマブル論理デバイスでは以下のような問題があった。
従来のプログラマブル論理デバイスでは、単位面積あたりの論理ゲートの数が小さく、かつ、コンフィギュレーション情報が、電源が遮断されたときに消失してしまう。このため、プログラマブル論理デバイスを使うには、プログラマブル論理デバイスおよび不揮発性メモリの少なくとも２つのチップが必要であり、デバイス点数の増加によるコスト増加や、ボード面積の増大という問題を生じていた。
【００１３】
本発明はこのような点に鑑みてなされたものであり、コストが低く、ボード面積の縮小が可能なプログラマブル論理デバイスを提供することを目的とする。
【課題を解決するための手段】
【００１４】
本発明者らは、組み合わせ論理回路ブロックと、イネーブル端子を有し、イネーブル状態において前記組み合わせ論理回路ブロックの出力状態を蓄積するフリップフロップと、前記組み合わせ論理回路ブロックの出力、または前記フリップフロップの出力を選択して出力するマルチプレクサとを備え、論理動作を設定するためのコンフィギュレーション情報は、前記マルチプレクサの出力として前記フリップフロップの出力が選択された場合に、前記フリップフロップを前記イネーブル状態にし、前記マルチプレクサの出力として前記組み合わせ論理回路の出力が選択された場合に、前記フリップフロップをディセーブル状態にする情報を含むことを特徴とするプログラマブル論理デバイスを提案する。
【００１５】
上記の構成によれば、フリップフロップはイネーブル状態において組み合わせ論理回路ブロックの出力状態を蓄積する。マルチプレクサは、組み合わせ論理回路ブロックの出力またはフリップフロップの出力を選択して出力する。そして、コンフィギュレーション情報に含まれる情報により、マルチプレクサの出力としてフリップフロップの出力が選択された場合に、フリップフロップがイネーブル状態となり、組み合わせ論理回路の出力が選択された場合に、フリップフロップがディセーブル状態になる。
【発明の効果】
【００１６】
本発明では、イネーブル状態において組み合わせ論理回路ブロックの出力状態を蓄積するフリップフロップを設け、コンフィギュレーション情報に含まれる情報により、マルチプレクサの出力としてフリップフロップの出力が選択された場合に、フリップフロップがイネーブル状態となり、組み合わせ論理回路の出力が選択された場合に、フリップフロップがディセーブル状態になるようにしたので、コンフィギュレーションを切り換える前の組み合わせ論理回路ブロックの出力状態を蓄積しておくことができるようになり、前のコンフィギュレーションの結果を蓄積しておくメモリを新たに設ける必要がなくなる。
【発明を実施するための最良の形態】
【００１７】
まず、本発明の実施の形態のプログラム論理デバイスの概略について図面を参照して説明する。
図１は、本実施の形態のプログラマブル論理デバイスの概略の構成を示す図である。
【００１８】
本実施の形態のプログラマブル論理デバイスは、各種論理機能を実現できる論理ブロック１と、結線状態を変更できるプログラマブル配線２と、入出力状態を変更できるプログラマブルＩ／Ｏブロック３と、これら論理ブロック１、プログラマブル配線２およびプログラマブルＩ／Ｏブロック３の動作を規定するコンフィギュレーション情報を蓄積する強誘電体メモリ４，５，６と、強誘電体メモリ４，５，６に蓄積された複数のコンフィギュレーション情報の１つを論理ブロック１、プログラマブル配線２およびプログラマブルＩ／Ｏブロック３にそれぞれ設定する情報選択手段７，８，９とを備え、それぞれ複数個組み合わされて１つのＤＰＧＡあるいはＦＰＧＡ用ＬＳＩを構成している。
【００１９】
強誘電体メモリ４，５，６は、コンフィギュレーション情報を蓄積する不揮発性のコンフィギュレーションメモリとして利用している。コンフィギュレーション情報をＬＳＩ内部の不揮発メモリに蓄積する構成にしたことにより、従来、ＦＰＧＡに必要であった外付けのＰＲＯＭ、ＥＥＰＲＯＭを除去することが可能になり、安価なボードシステムを実現することができる。
【００２０】
また、各強誘電体メモリ４，５，６は、複数のコンフィギュレーション情報を有し、これら複数のコンフィギュレーション情報を、論理ブロック１で発生した制御信号、あるいは、プログラマブル論理デバイスの外部から供給された制御信号を受ける情報選択手段７，８，９が選択して論理ブロック１、プログラマブル配線２およびプログラマブルＩ／Ｏブロック３の構成を規定する構成にした。複数のコンフィギュレーション情報を１つのＬＳＩ上に実装したことにより、１つの論理ブロック１、プログラマブル配線２およびプログラマブルＩ／Ｏブロック３で、複数種の論理動作が実現可能になり、単位面積あたりの論理ゲートの数が小さくても、論理ゲートの数を実質的に大きくすることができ、より効率的な論理ゲートが実現可能になる。
【００２１】
また、プログラマブル論理デバイスの論理ブロック１は、組み合わせ論理回路ブロック（ルックアップテーブル）、フリップフロップおよびマルチプレクサで構成し、このフリップフロップにはイネーブル端子を持たせ、このイネーブル端子に供給するイネーブル信号とマルチプレクサの出力選択信号とを同時に制御することによって、論理ブロック１をより有効に活用できる。
【００２２】
さらに、強誘電体メモリ４，５，６をリードオンリーメモリとすることで、小さな面積で論理ブロックに必要とされるデータの提供が可能となる。このリードオンリーメモリのアドレス空間を、異なるコンテキストでも読み出せるような回路を付加することによって、さらに自由度の高い構成にすることができる。
【００２３】
本実施の形態のプログラマブル論理デバイスでは、電源の立ち上げ、および、遮断時に強誘電体メモリ４，５，６に蓄積されたコンフィギュレーション情報の破壊が生じない回路構成にしている。つまり、プログラマブル論理デバイスに、電源電圧の検出回路を持ち、電源が立ち上がる際には、まず初めに電源電圧が強誘電体メモリ４，５，６への制御信号の印加や、データリコール動作の実行に必要な電圧以上になったことを検知した後、電源電圧が所定の電圧以上になった場合は、強誘電体メモリ４，５，６が誤再生されない制御電圧と電源の印加を行い、これらシーケンスの実行後にプログラマブル論理デバイスの論理動作を開始する。
【００２４】
また、電源が遮断される際には、まず初めに電源電圧が所定の値以下になったことの検知を行い、強誘電体メモリ４，５，６の電源が遮断された後も、それに書き込まれた情報が、短期、あるいは、長期的に破壊されることがないような制御信号の印加による書き込みを実行してから電源を遮断する。
【００２５】
このように、強誘電体メモリ４，５，６の電源が立ち上がる時、あるいは、電源が遮断される時に、強誘電体メモリ４，５，６に印加される制御電圧を適切に制御することによって、コンフィギュレーション情報の破壊をなくし、安定したＬＳＩ動作を可能とする。
【００２６】
また、本発明のプログラマブル論理デバイスでは、論理状態を規定するコンフィギュレーション情報を書き込み済みか、否かの情報を、強誘電体メモリに蓄積するようにしている。これにより、コンフィギュレーション情報の書き込み前における配線のコンフリクト、あるいは、周辺論理回路の動作不安定性をなくすことができる。
【００２７】
さらに、本実施の形態のプログラマブル論理デバイスでは、複数のコンフィギュレーション情報を強誘電体メモリ４，５，６に書き込まなければならないが、この複数のコンフィギュレーション情報を、複数のデータストリームによって同時に書き込みできるように構成している。また、特定の論理動作を実行中に、バックグラウンドでコンフィギュレーション情報を変更できるように構成している。複数のデータパスを設けることによってコンフィギュレーション情報の書き込みが高速化され、また論理実行中の書き込みを可能とすることによって、デバイス中の実効的な論理ゲート数を増加させることができる。
【００２８】
最後に、本実施の形態のプログラマブル論理デバイスでは、不揮発性を持つ強誘電体メモリに固有の情報を蓄積できる構成にしている。これにより、コンフィギュレーション情報の書き込みまたは読み出しを実行する際に、プログラマブル論理デバイス内に蓄積された固有の情報との認証を行い、認証結果が正しい場合にのみ、書き込みまたは読み出しが可能となるため、コンフィギュレーション情報の盗難や書き換えを防止することができる。また、論理動作を実行する際に、プログラマブル論理デバイス内に蓄積された固有の情報との認証を行い、認証結果が正しい場合にのみ、論理動作を実行可能とすることで、認証されない者の不正使用を防止することができる。
【００２９】
次に、本実施の形態を、プログラマブル論理デバイスのＬＳＩに適用した場合を例に詳細に説明する。
図２は強誘電体メモリを使用したプログラマブル論理デバイスの全体回路を例示した模式図である。
【００３０】
図示のプログラマブル論理デバイス１０は、その中央部にマトリックス状に配置されてそれぞれ所望の組み合わせ論理回路を構成することができる複数の論理ブロックアレイ１１を備えている。これら論理ブロックアレイ１１の周囲には、所望の結線を自由に行うことができる複数のプログラマブル配線（ＰＩＣ）１２が配置されている。ＬＳＩチップの外周には、ＬＳＩの外部端子に対応して設けられたパッドに対して信号入力とするか信号出力とするかを設定できる複数のプログラマブルＩ／Ｏブロック１３が配置され、その内側には、コンフィギュレーションメモリで構成されたリードオンリーメモリ１４が配置されている。このコンフィギュレーションメモリが強誘電体メモリで構成されている。
【００３１】
次に、各構成要素の詳細について説明する。
図３は論理ブロックアレイをより詳細に示した模式図例である。
論理ブロックアレイ１１は、複数の、図示の例では、１６個の論理ブロック２１と、メモリ制御回路２２とで構成される。それぞれの論理ブロック２１は、図３の左側に示されるように、強誘電体メモリセルで作られた複数の、図示の例では、８つのコンフィギュレーションメモリ２３０〜２３７と、このコンフィギュレーションメモリ２３０〜２３７にコンフィギュレーション情報を書き込むロード回路２４と、論理的なブロックを構成する４入力ルックアップテーブル２５およびフリップフロップおよび出力マルチプレクサ２６とで構成される。
【００３２】
ロード回路２４は、たとえば１７ビットのシフトレジスタから構成され、外部から供給されたコンフィギュレーション情報を１ビットずつシフトし、シフトが終了したら蓄積されたコンフィギュレーション情報をコンフィギュレーションメモリ２３０に書き込む。このロード回路２４による書き込みは、８番目のコンフィギュレーションメモリ２３７に書き込むまで順次繰り返して行われる。
【００３３】
８つのコンフィギュレーションメモリ２３０〜２３７を備えていることにより、例えば最初に使用されるコンフィギュレーション情報を最初のコンフィギュレーションメモリ２３０に書き込むようにすれば、書き込み終了時点でそのコンフィギュレーション情報によって規定された論理動作を直ちに実行することができ、その動作中に残りのコンフィギュレーション情報をバックグラウンドで書き込むようにすることができるので、書き込み時間および起動時間を短縮できる利点がある。
【００３４】
図４は４入力ルックアップテーブルの構成例を示す図である。
４入力ルックアップテーブル２５は、原理的には図３に示すように、合計で８種類の論理動作に対応可能なコンフィギュレーションメモリ２３０〜２３７から供給される１６ビットのメモリ２７と、１６対１のマルチプレクサ２８とで構成される。１６ビットのメモリ２７は、ＳＲＡＭ型セルまたは強誘電体メモリセルで構成することができる。マルチプレクサ２８は、１６ビットのメモリ２７の出力のうちの１つを選択する機能を有し、論理ブロック入力となる４つの入力Ａ，Ｂ，Ｃ，Ｄを有している。
【００３５】
ここで、１６ビットのメモリ２７の内容を変更することにより、ＡＮＤゲート、ＮＡＮＤゲート、反転入力付きＡＮＤゲート、ＯＲゲート、ＮＯＲゲート、排他的論理和ゲート、ＡＮＤ−ＯＲゲートなどの組み合わせ論理回路が構成できる。例えば、コンフィギュレーションメモリ２３０において、入力がすべて１の際に出力が１で、それ以外の入力が０となるような内容が供給されていれば、４入力ルックアップテーブル２５を、４入力ＡＮＤとしての動作を実行するように設定できる。また、コンフィギュレーションメモリ２３１に切り換えられることによって４入力ＯＲを実行するように設定したり、さらには、コンフィギュレーションメモリ２３２に切り換えられることにより２つの入力に対してＡ＋Ｂという機能を実行するように設定したりできる。一般に、コンフィギュレーションメモリの大きさは、プログラマブル論理デバイス１０の中で最も大きな領域を占める配線領域と比較して非常に小さいため、コンフィギュレーションメモリを増加することによる面積の増加分は、実質的な論理ゲートの増加分に比べて遥かに小さいために、この手法の採用が有利となる。
【００３６】
図５はロード回路およびコンフィギュレーションメモリのより詳細な構成例を示す図である。
ロード回路２４およびコンフィギュレーションメモリ２３０〜２３７は、コンフィギュレーション情報を転送するためのシフトレジスタ３０と、このシフトレジスタ３０からのデータを強誘電体メモリに書き込むための書き込み回路３１と、強誘電体メモリセルアレイ３２と、この強誘電体メモリセルアレイ３２に書き込まれたデータを４入力ルックアップテーブル２５に出力する出力バッファ３３と、メモリの内容をシフトレジスタに読み出すことができる読み出しパス３４で構成される。なお、出力バッファ３３には、必要に応じてメモリ読み出し用のセンスアンプを備えていてもよい。
【００３７】
ここでは、論理ブロック２１のためのロード回路２４およびコンフィギュレーションメモリ２３０〜２３７の構成を示したが、他のプログラマブル配線１２およびプログラマブルＩ／Ｏブロック１３におけるロード回路およびコンフィギュレーションメモリについても同じ構成をしている。プログラマブル配線１２のコンフィギュレーションメモリでは、配線の結線の制御、プログラマブルＩ／Ｏブロック１３では、Ｉ／Ｏポートの入出力制御に使用される。
【００３８】
強誘電体メモリセルへの書き込みや、これらで構成されるコンフィギュレーションメモリを制御するため、強誘電体メモリセルアレイ３２にはワード線ＷＬとプレート線ＰＬが、書き込み回路３１には書き込み線ＷＥが、図３で示した論理ブロックアレイ１１の中のメモリ制御回路２２に接続されている。なお、ワード線ＷＬは、コンフィギュレーション情報の数（８個）と同じ数だけ用意されている。
【００３９】
図６は強誘電体メモリセルの第１の構成例を示す回路図である。
この強誘電体メモリセルの第１の構成例によれば、トランジスタＭ１，Ｍ２およびトランジスタＭ３，Ｍ４は、それぞれインバータを構成し、それぞれが、クロスカップルに結合されることによって、メモリセルを構成する。トランジスタＭ１，Ｍ３のソースは、電源電圧ＰＷＲの線に接続され、トランジスタＭ２，Ｍ４のソースは、グランド電圧ＶＳＳの線に接続されている。これらインバータの出力には、それぞれトランジスタＭ５，Ｍ６が接続されている。これらのトランジスタＭ５，Ｍ６は、また、ビット線ＢＬ，ＸＢＬに接続されていて、蓄積された情報を外部に取り出したり、書き込みデータを取り入れたりするためのアクセストランジスタを構成している。トランジスタＭ５，Ｍ６のゲートは、ワード線ＷＬ［ｘ］（ｘ：０〜７）に接続されている。なお、１ビットの非反転情報のみを取り出したい場合には、トランジスタＭ６は省略することができる。強誘電体キャパシタＦＣ１，ＦＣ２は、その一方の端子がメモリセルのストレージノードＳ１，Ｓ２にそれぞれ接続され、他方の端子はプレート線ＰＬに接続されている。このプレート線ＰＬは、メモリセルへの書き込み制御を行い、同時に、データ保持状態でメモリセルの高い電圧が加わって、強誘電体の特性が劣化することを防ぐための制御を行うために使用される。なお、強誘電体キャパシタとしては、ＰＺＴ（チタン酸ジルコン酸鉛）を主な組成とする強誘電体材料や、ＳＢＴ（タンタル酸ビスマスストロンチウム）などのビスマス層状ペロブスカイト構造を持つ強誘電体材料が利用できる。
【００４０】
図７は強誘電体メモリセルの第２の構成例を示す回路図である。この図７において、図６と同じ構成要素については同じ符号を付してある。
この強誘電体メモリセルの第２の構成例は、図６の構成例と類似しているが、強誘電体キャパシタＦＣ３，ＦＣ４が追加され、ストレージノードＳ１，Ｓ２と対抗する電極として第２のプレート線ＰＬ２を設置している。この強誘電体キャパシタＦＣ３，ＦＣ４が追加された強誘電体メモリセルは、図６の強誘電体メモリセルと比較して、電源を遮断した後の電源立ち上がり時に、強誘電体メモリセルに記憶していたデータを正しく読み出すことができるかを表すデータリコール特性が優れている。
【００４１】
図８は強誘電体メモリの各動作における制御信号の状態を示す図である。
上記第１および第２の構成の強誘電体メモリセルの書き込み・読み出しの動作は、通常のＳＲＡＭと同様であり、異なるのは、プレート線ＰＬ（図７ではプレート線ＰＬ１，ＰＬ２）の設定である。
【００４２】
まず、書き込み時には、書き込み線ＷＥおよびワード線ＷＬにＨｉｇｈの制御信号を印加し、プレート線ＰＬ（ＰＬ１，ＰＬ２）にＨｉｇｈ→Ｌｏｗというパルス電圧を印加する。ここで、プレート線ＰＬ（ＰＬ１，ＰＬ２）にＨｉｇｈ→Ｌｏｗというパルス電圧を印加するシーケンスを加えた点が通常のＳＲＡＭの動作と異なる。これによって、強誘電体キャパシタに所定の書き込み電圧を印加し、書き込みを行う。
【００４３】
なお、コンフィギュレーション情報の切り換えは、異なる書き込み線ＷＬ（図３の例では８本の書き込み線ＷＬが存在する）を選択して、読み出しを行うことによって実行される。読み出し動作時は、通常のＳＲＡＭと同様であり、書き込み線ＷＥにＬｏｗの制御信号を印加し、ワード線ＷＬにＨｉｇｈの制御信号を印加し、プレート線ＰＬ（ＰＬ１，ＰＬ２）は、インプリントと呼ばれる強誘電体メモリの特性変動を防止するために電源電圧Ｖｄｄの半分に設定される。これによって強誘電体メモリの読み出しを行う。
【００４４】
そして、データ保持状態の論理動作のときは、書き込み線ＷＥおよびワード線ＷＬにＬｏｗの制御信号を印加し、プレート線ＰＬ（ＰＬ１，ＰＬ２）には、電源電圧Ｖｄｄの半分の電圧が印加される。
【００４５】
次に、プログラマブル論理デバイスを構成するプログラマブル配線１２の構成について説明する。
図９はプログラマブル配線の構成を示す図である。
【００４６】
プログラマブル配線１２は、強誘電体メモリセルを使用したコンフィギュレーションメモリ４０と、パストランジスタ４１とから構成され、コンフィギュレーションメモリ４０の出力をパストランジスタ４１のゲートに接続している。
【００４７】
コンフィギュレーションメモリ４０は、図５に示した論理ブロック用のコンフィギュレーションメモリと同じ構成にすることができる。パストランジスタ４１は、配線のカラム線とロー線との交点に配置されて、ドレインおよびソースの一方をカラム線に、他方をロー線に接続される。
【００４８】
パストランジスタ４１は、コンフィギュレーションメモリ４０から出力されたデータのＨｉｇｈ・Ｌｏｗの各レベルによってオン・オフが制御され、ドレインおよびソース間が導通または遮断することにより配線の接続を制御する。なお、コンフィギュレーションメモリの容量を削減するためには、A. DeHon “Dynamically Programmable Gate Arrays: A Step Toward Increased Computational Density" （Fourth Canadian Workshop of Field-Programmable Devices, 1996）が使用したマルチプレクサ型のクロスバーを使用することもできる。
【００４９】
次に、プログラマブル論理デバイス１０を構成するプログラマブルＩ／Ｏブロック１３の構成について説明する。
図１０はプログラマブルＩ／Ｏブロックの構成を示す図である。
【００５０】
プログラマブルＩ／Ｏブロック１３は、データの入出力に使われるパッド４２に入力が接続されたバッファ４３と、このバッファ４３の出力に接続されてパッド４２に入力されたデータをプログラマブル論理デバイス１０に取り込むフリップフロップ４４と、プログラマブル論理デバイス１０からデータを取り出すフリップフロップ４５と、このフリップフロップ４５の出力に接続されてパッド４２に出力するデータを制御するトライステートバッファ４６と、強誘電体メモリセルを使用したコンフィギュレーションメモリ４７と、このコンフィギュレーションメモリ４７の内容に応じてトライステートバッファ４６に出力イネーブルの反転信号を供給するフリップフロップ４８とを備えている。コンフィギュレーションメモリ４７は、図５に示した論理ブロック用のコンフィギュレーションメモリと同じ構成にすることができる。
【００５１】
以上の構成において、フリップフロップ４８がクロックに同期してコンフィギュレーションメモリ４７の内容をトライステートバッファ４６の出力イネーブルの反転入力に供給する。このとき、出力イネーブルの反転信号が、たとえばＨｉｇｈのときは、トライステートバッファ４６の出力はハイインピーダンスになるので、パッド４２はデータ入力用に設定される。したがって、パッド４２に供給されたデータは、バッファ４３を介してフリップフロップ４４に供給されるので、フリップフロップ４４は、クロックに同期してパッド４２に入力されたデータをプログラマブル論理デバイス１０に取り込むよう作用する。逆に、出力イネーブルの反転信号が、Ｌｏｗのときには、トライステートバッファ４６の入力と出力の論理状態が等しくなるので、フリップフロップ４５は、プログラマブル論理デバイス１０の出力データをクロックに同期してパッド４２に供給するように作用する。このように、プログラマブルＩ／Ｏブロック１３は、コンフィギュレーションメモリ４７の出力によって、Ｉ／Ｏポートの入出力を規定することができる。
【００５２】
次に、プログラマブル論理デバイス１０が複数個のコンフィギュレーション情報を有しているが、そのコンフィギュレーション情報をどのように切り換えるかについて説明する。
【００５３】
図１１はコンフィギュレーション情報の切り換え動作を説明する図である。
プログラマブル論理デバイス１０は、コンフィギュレーションＩＤ（IDentifier）・コマンド分配回路５０を備えている。このコンフィギュレーションＩＤ・コマンド分配回路５０は、プログラマブル論理デバイス１０の外部からコンフィギュレーション情報を切り換えるコマンドＣＩＤＥＸＴまたはプログラマブル論理デバイス１０の内部の論理ブロック２１からコンフィギュレーション情報を切り換えるコマンドＣＩＤＩＮＴを受けて、強誘電体メモリベースのコンフィギュレーションメモリが存在している論理ブロック２１、プログラマブル配線１２およびプログラマブルＩ／Ｏブロック１３のそれぞれに供給するように構成されている。
【００５４】
コンフィギュレーション情報の切り換えは、プログラマブル論理デバイス１０の外部からコマンドＣＩＤＥＸＴによって与えることもできるし、コマンドＣＩＤＩＮＴによって内部から与えることもできる。内部のコマンドＣＩＤＩＮＴは、論理ブロック２１内に構成されたシーケンサによって生成される（途中プログラマブル配線１２を通過する可能性もあるが、コマンドＣＩＤＩＮＴは論理ブロック２１で作られる）。
【００５５】
論理ブロック２１、プログラマブル配線１２およびプログラマブルＩ／Ｏブロック１３のコンフィギュレーションメモリは、８個（種類）存在しているので、各コンフィギュレーションを特定するため３ビットのコンフィギュレーションＩＤ（ＣＩＤ［０：２］）が定義される。コマンドＣＩＤＥＸＴまたはコマンドＣＩＤＩＮＴは、コンフィギュレーション情報の切り換え先を表すＣＩＤ［０：２］の値とコンフィギュレーション情報切り換えコマンドとを含んでいる。
【００５６】
コンフィギュレーションＩＤ・コマンド分配回路５０は、コマンドＣＩＤＥＸＴまたはコマンドＣＩＤＩＮＴを受けると、ＣＩＤ［０：２］の値とコンフィギュレーション情報切り換えコマンドとを、論理ブロック２１、プログラマブル配線１２およびプログラマブルＩ／Ｏブロック１３の各コンフィギュレーションメモリに送り、これによって、８個のコンフィギュレーションメモリの１つが選択され、論理ブロック２１、プログラマブル配線１２またはプログラマブルＩ／Ｏブロック１３は、選択されたコンフィギュレーションメモリに蓄積されたコンフィギュレーション情報に従って論理機能が切り換えられることになる。
【００５７】
次に、論理ブロック２１の具体的な構成例について説明する。
図１２は従来の論理ブロックの構成を示す回路図、図１３は本発明のプログラマブル論理デバイスに用いられる論理ブロックの構成を示す回路図である。
【００５８】
従来の論理ブロックをモデル化した図１２の構成によれば、１つのコンフィギュレーション情報を蓄積するコンフィギュレーションメモリ５１と、組み合わせ論理ブロックをなすルックアップテーブル５２と、フリップフロップ５３と、ルックアップテーブル５２またはフリップフロップ５３の出力の切り換えを行うための２：１のマルチプレクサ５４とで構成される。この構成は、ＦＰＧＡで採用されていた一般的な構成である。
【００５９】
これに対し、本発明のプログラマブル論理デバイスに用いられる論理ブロック２１は、複数のコンフィギュレーション情報を蓄積するコンフィギュレーションメモリ５５と、ルックアップテーブル５６と、イネーブル端子ＥＮを有するフリップフロップ５７と、ルックアップテーブル５６またはフリップフロップ５７の出力の切り換えを行うための２：１のマルチプレクサ５８とで構成され、コンフィギュレーションメモリ５５からマルチプレクサ５８の切り換えを行う制御信号をフリップフロップ５７のイネーブル端子ＥＮに供給するとともに、フリップフロップ５７の出力を外部に供給できるように構成している。フリップフロップ５７は、イネーブル端子ＥＮを設けたことにより、コンフィギュレーションを切り換える前の情報を蓄積しておくことができるため、フリップフロップ機能の他にメモリ機能を持たせることができる。
【００６０】
マルチプレクサ５８がフリップフロップ５７の出力を選択する場合には、マルチプレクサ５８の選択制御端子およびフリップフロップ５７のイネーブル端子ＥＮにＨｉｇｈレベルの制御信号を供給する。このとき、フリップフロップ５７は、イネーブル状態となり、クロック入力によって読み込まれた情報をラッチしてマルチプレクサ５８に出力し、マルチプレクサ５８がこれを選択して出力するので、従来の論理ブロックと同じ動作をする。
【００６１】
また、マルチプレクサ５８がルックアップテーブル５６の出力を選択する場合には、コンフィギュレーションメモリ５５からマルチプレクサ５８の選択制御端子およびフリップフロップ５７のイネーブル端子ＥＮにＬｏｗレベルの制御信号が供給される。これにより、フリップフロップ５７はディセーブル状態になる。こうすることによって、ルックアップテーブル５６の従来と同様の動作を可能にするだけでなく、その前のコンフィギュレーションでの実行結果を蓄積したフリップフロップ５７の情報を当該のコンフィギュレーションで利用できることになる。特に、フリップフロップ５７の出力を入力側にフィードバック可能（ルックアップテーブル５６の論理ブロック入力のいずれかに結線可能）な回路構成にしておけば、前のコンフィギュレーションの結果を蓄積しておくメモリを新たに設けることなく、前のコンフィギュレーションの結果を入力として、組み合わせ論理回路で処理した計算結果出力を得ることができるようになる。
【００６２】
次に、強誘電体メモリの電源の立ち上がり時と遮断時におけるコンフィギュレーション情報を破壊から保護する方法について説明する。従来技術でも述べたが、図６に示したような強誘電体メモリセルに、ただそのままの電源を供給しても、蓄積された情報の正常な回復（データリコール）は困難である。電源が立ち上がる際には、図６のラッチ回路のＮＭＯＳトランジスタＭ２、Ｍ４のターンオンが先に始まった側に従ってストレージノードＳ１、Ｓ２の電圧が決まるが、このとき、強誘電体キャパシタＦＣ１、ＦＣ２の両端にかかる電圧はせいぜい０．５Ｖであり、強誘電体キャパシタＦＣ１、ＦＣ２の相対的な容量比はほとんどなく、データリコール時の誤読み出し（これはデータ破壊と等価である）が生じる可能性がある。また、電源の遮断前には、図６のプレート線ＰＬや図７のプレート線ＰＬ１、ＰＬ２は、Ｖｄｄ／２に設定されており、強誘電体メモリの長期的な信頼性を確保するためには、一度、強誘電体キャパシタＦＣ１、ＦＣ２にフル電源電圧を印加する（データストア）ことが望ましい。ここでは、データリコールとデータストアとをプログラマブル論理デバイスの内部で自動的に実行する手法について説明する。
【００６３】
図１４は強誘電体メモリの電源制御回路の一例を示す図、図１５は強誘電体メモリベースのコンフィギュレーションメモリにおける電源制御を説明する図である。
電源制御回路は、外部電源端子に接続された平滑コンデンサ６０に並列に電源電圧検出・供給回路６１を備えている。この電源電圧検出・供給回路６１は、入力された電源電圧Ｖｄｄを電源電圧ＰＷＲとしてメモリ制御回路６２に供給するとともに電源電圧の立ち上がりおよび遮断を検出した電源電圧検出信号ＰＤＥＴをメモリ制御回路６２に出力するよう構成されている。また、メモリ制御回路６２は、強誘電体メモリベースのコンフィギュレーションメモリ６３に電源制御信号ＥＮＸおよびグランド制御信号ＥＮと、強誘電体メモリセル制御信号とを出力するよう構成されている。なお、図３に示した論理ブロック２１の場合には、ここのメモリ制御回路６２は、メモリ制御回路２２に対応し、コンフィギュレーションメモリ６３は、コンフィギュレーションメモリ２３０〜２３７に対応する。
【００６４】
また、コンフィギュレーションメモリ６３は、図１５に示すように、図６および図７に示したタイプの強誘電体メモリセルをコンフィギュレーションメモリとしてアレイ配置されており、このコンフィギュレーションメモリ６３の電源電圧ＰＷＲの制御（供給）用にトランジスタＰＴ１が設けられ、グランド電圧ＶＳＳの制御（供給）用にトランジスタＮＴ１が設けている。
【００６５】
電源の立ち上げ時には、メモリ制御回路６２は、あらかじめトランジスタＰＴ１，ＮＴ１をＯＦＦ状態とし、電源電圧検出・供給回路６１が充分な電圧を検出した後に、図６のタイプの強誘電体メモリセルにおいては、プレート線ＰＬをＬｏｗからＨｉｇｈに、図７のタイプの強誘電体メモリセルでは、プレート線ＰＬ２はグランド電位ＧＮＤに固定したまま、プレート線ＰＬ１をＬｏｗからＨｉｇｈにドライブする。この結果、各強誘電体メモリセルのストレージノードＳ１，Ｓ２には、電源遮断前に蓄積された電圧を反映した電圧が誘起される。図６のタイプの強誘電体メモリセルの場合は、ストレージノードＳ１にはもともと０Ｖ、ストレージノードＳ２には３．３Ｖが蓄積されていると仮定すると、プレート線ＰＬをＬｏｗからＨｉｇｈにドライブすると、ストレージノードＳ１には３．００Ｖ、ストレージノードＳ２には３．２２Ｖの電圧が誘起される。図７のタイプの強誘電体メモリセルの場合は、ストレージノードＳ１にはもともと０Ｖ、ストレージノードＳ２には３．３Ｖが蓄積されていると仮定すると、プレート線ＰＬ１をＬｏｗからＨｉｇｈにドライブすると、ストレージノードＳ１には０．６５Ｖ、ストレージノードＳ２には２．５９Ｖの電圧が誘起される。この後、メモリ制御回路６２が電源制御信号ＥＮＸおよびグランド制御信号ＥＮによってトランジスタＰＴ１，ＮＴ１をオンして電源電圧ＰＷＲを供給すると、コンフィギュレーションメモリ６３の各強誘電体メモリセルは、ラッチ動作を行って、もともと蓄積されていたデータを回復させる。この後、チップのリセットを解除してプログラマブル論理デバイス１０の論理動作を実行すれば、もともと蓄積されていたコンフィギュレーション情報を利用した論理動作の実行が可能となる。
【００６６】
電源の遮断時には、電源電圧検出・供給回路６１が電源電圧の低下を検知した後、もともとはＶｄｄ／２に設定されていたプレート線ＰＬ（ＰＬ１、ＰＬ２）をＨｉｇｈからＬｏｗと変化させ、すべての強誘電体メモリセルに書き込みを行った後に、トランジスタＰＴ１，ＮＴ１をオフする。この際、ワード線ＷＬは、すべてＬｏｗにして選択を行わないか、１本のみ選択する。
【００６７】
図１６は電源電圧検出・供給回路の電源電圧検出部の一構成例を示す回路図である。
電源電圧検出部は、電源電圧の立ち上がりを検出する立ち上がり検出回路６４と、電源電圧の立ち下がりを検出する立ち下がり検出回路６５と、２つのＮＡＮＤゲート６６，６７からなるＲＳフリップフロップ回路とからなり、電源電圧Ｖｄｄよりも十分に低い電圧で、例えば１Ｖ以上で動作する。
【００６８】
立ち上がり検出回路６４は、直列接続された２つの抵抗６４ａ，６４ｂと、比較器６４ｃとから構成され、比較器６４ｃが図１４に示した平滑コンデンサ６０にかかっている電源電圧Ｖｄｄを抵抗６４ａ，６４ｂで分圧した電圧と基準電圧Ｖｒｅｆとを比較して電源電圧Ｖｄｄが３．０Ｖ以上になったらＬｏｗを出力する。立ち下がり検出回路６５は、直列接続された２つの抵抗６５ａ，６５ｂと、比較器６５ｃとから構成され、比較器６５ｃが電源電圧Ｖｄｄを抵抗６５ａ，６５ｂで分圧した電圧と基準電圧Ｖｒｅｆとを比較して電源電圧Ｖｄｄが２．７Ｖ以下になったらＬｏｗを出力する。ここで、基準電圧Ｖｒｅｆは、例えばバンドギャップリファレンス回路を採用し、１．１Ｖの安定した（電源の変動、温度の変動に対して特性変動の極めて少ない）電圧を得ている。
【００６９】
この電源電圧検出部は、３．０Ｖを検出したら電源電圧検出信号ＰＤＥＴとしてＨｉｇｈを出力し、一旦、電圧が上がった以降は、２．７Ｖ以下になるまで電源電圧検出信号ＰＤＥＴとしてＨｉｇｈを保持するというヒステリシス特性を備えており、負荷の増大にともなう電源の瞬間的な低下に対して、余裕を持たせた回路にしてある。
【００７０】
次に、コンフィギュレーション情報の未書き込み時の問題とその対策について説明する。
図１７は強誘電体メモリセルベースのコンフィギュレーションメモリを使用したプログラマブル配線の模式図、図１８は本発明におけるプログラマブル配線の構成例を示す図である。
【００７１】
プログラマブル論理デバイスのプログラマブル配線は、図１７に示したように、複数の配線トラック７０，７１を有し、これらの配線トラック７０，７１にはパストランジスタ７２，７４およびパストランジスタ７３，７５が接続され、各パストランジスタ７２〜７５にはコンフィギュレーションメモリの第１ないし第４の出力が接続され、さらに出力バッファ７６〜７９を介してルックアップテーブルからの第１ないし第４の出力が接続されている。
【００７２】
強誘電体メモリセルのデータの書き込みを行う前は、コンフィギュレーションメモリの第１ないし第４の出力は不定の状態になっている。このため、ある場合には、例えばコンフィギュレーションメモリの第１および第３の出力が同じ配線トラック７０に繋がっているパストランジスタ７２，７４を同時にオンさせる可能性がある。また、ルックアップテーブルの第１ないし第４の出力も、同様に規定されていないため、第１の出力がＨｉｇｈで、第３の出力がＬｏｗとなる可能性がある。この結果、配線トラック７０には、Ｈｉｇｈの出力とＬｏｗの出力とが競合することになる。この結果、この配線トラック７０の電位は中間電位に保たれ、大きな電流が流れることになる。
【００７３】
これを防止するために、従来型のＳＲＡＭセルベースのプログラム論理デバイスでは、デバイスの電源が供給された後、コンフィギュレーション情報の書き込みが終わるまで、ルックアップテーブルからの出力をディセーブルする構成をとっている。しかし、強誘電体メモリを使用したプログラマブル論理デバイスでは、コンフィギュレーション情報の書き込みは（理想的には）一度行えば良いので、毎回電源の立ち上げ毎に、ルックアップテーブルからの出力をディセーブルする必要はない。
【００７４】
そこで、本発明では、図１８に示す構成により、プログラマブル配線のコンフリクトを防止するようにしている。この構成では、各パストランジスタ７２〜７５のゲートにＡＮＤゲート８０〜８３を設け、ＡＮＤゲート８０〜８３の第１の入力にコンフィギュレーションメモリの第１ないし第４の出力が接続され、ＡＮＤゲート８０〜８３の第２の入力には、コンフィギュレーションメモリの第５の出力が接続されている。このコンフィギュレーションメモリの第５の出力に関連する強誘電体メモリセルには、コンフィギュレーション情報を書き込み済みか否かを表す情報が蓄積されている。
【００７５】
電源の立ち上げの時には、コンフィギュレーションメモリの第５の出力に関連する強誘電体メモリセルに蓄積された情報を基にコンフィギュレーションメモリの第１ないし第４の出力をパストランジスタ７２〜７５に供給するか否かを制御している。すなわち、コンフィギュレーションメモリの第５の出力に関連する強誘電体メモリセルに蓄積された情報が書き込み前の情報であれば、すべてのＡＮＤゲート８０〜８３を閉じてコンフィギュレーションメモリの第１ないし第４の出力を強制的にディスエーブルし、書き込み済みの情報であれば、イネーブルすることによって、配線トラック７０，７１がバスコンフリクトを生じないようにしている。
【００７６】
ここでは、コンフィギュレーション情報の未書き込み時の問題をプログラマブル配線の場合について説明したが、このようなコンフィギュレーション未実施の対策は、例えば、図１１に示したコンフィギュレーション情報の切り換えを行う回路でも必要である。なぜなら、コンフィギュレーション情報が未書き込みの状態では、チップ内部からコンフィギュレーション変更のコマンドが出力され続ける可能性があるからである。この場合も、コンフィギュレーションが未実施であれば、コンフィギュレーションＩＤ・コマンド分配回路５０は、内部信号からの入力を無視する回路構成としている。
【００７７】
なお、コンフィギュレーション情報を書き込んだかどうかの情報は、すべてのコンフィギュレーション情報（ＩＤ）に対して必要である。また、コンフィギュレーション情報が未書き込みであることは、プログラマブル論理デバイスの製造者によって書き込まれて、ユーザに出荷される。製造者において、コンフィギュレーション情報が未書き込みの際に生じる上記のバスコンフリクトや、論理回路の不正動作を防ぐために、テストピンを用意して、外部からコンフィギュレーション未実施を指定することが可能である。
【００７８】
次に、コンフィギュレーションメモリをベースとしたリードオンリーメモリ１４について説明する。一般的な論理回路において、リードオンリーメモリは定数の蓄積などに使用され、単位面積あたりの論理ゲートの数を向上することが可能である。
【００７９】
図１９はコンフィギュレーションメモリをベースとしたリードオンリーメモリの構成例を示す図である。
コンフィギュレーションメモリ９０は、その出力側にマルチプレクサ９１が接続され、このマルチプレクサ９１はアドレス線およびデータ線を介して論理ブロック９２に接続されている。また、コンフィギュレーションメモリ９０には、リードオンリーメモリ制御回路９３が接続されている。このリードオンリーメモリ制御回路９３は、コンフィギュレーションＩＤ・コマンド分配回路からコンフィギュレーションを特定するための３ビットのコンフィギュレーションＩＤ（ＣＩＤ［０：２］）と、論理ブロック９２からのＲＯＭモード選択信号とを受けるよう構成されている。
【００８０】
コンフィギュレーションメモリ９０は、例えば３２ビットを単位とした構成をとっている。したがって、コンフィギュレーションＩＤによるコンフィギュレーションに従った論理動作を実行しているときには、マルチプレクサ９１は、論理ブロック９２から送られたアドレスにより３２ビットのデータから必要なデータを選択して論理ブロック９２に送る。この場合、選択できるのは、コンフィギュレーションＩＤにより特定されたコンフィギュレーションメモリ９０の１個の出力である３２ビットからのみである。このとき、論理ブロック９２からのＲＯＭモード選択信号は、例えばＬｏｗになっている。
【００８１】
ＲＯＭモード選択信号がＨｉｇｈのときは、論理ブロック９２から一緒に３ビットのアドレス信号が送られる。この３ビットのアドレス信号は、８つのコンフィギュレーションのいずれか１つを選択するためのものである。この場合、リードオンリーメモリ制御回路９３は、３ビットのアドレス信号によりコンフィギュレーションメモリ９０から１つのコンフィギュレーションを選択する。選択されたコンフィギュレーションの３２ビットのデータは、マルチプレクサ９１に送られ、論理ブロック９２から送られたアドレスにより３２ビットのデータから必要なデータを選択して論理ブロック９２に送る。
【００８２】
このようにして、ＲＯＭモード選択信号がＬｏｗのときには、実行中の論理動作を規定しているコンフィギュレーション情報に含まれたデータを読み出すことができ、ＲＯＭモード選択信号がＨｉｇｈとなるＲＯＭモードのときには、論理ブロック９２から送られる３ビットのアドレス信号で選択されたコンフィギュレーションのデータを読み出すことができる。
【００８３】
次に、コンフィギュレーション情報の書き込みおよび読み出しについて説明する。
図２０はコンフィギュレーション情報のデータ転送を説明する図、図２１はチップ外部から供給されるコンフィギュレーション情報のデータストリームの例を示す図、図２２はコンフィギュレーション情報のデータ書き込みを説明する図である。
【００８４】
プログラマブル論理デバイスは、複数の論理ブロック、プログラマブル配線、プログラマブルＩ／Ｏブロックを含むが、これらに共通に含まれるコンフィギュレーションメモリに対するコンフィギュレーション情報の書き込みおよび読み出しは、複数の論理ブロック、プログラマブル配線、プログラマブルＩ／Ｏブロックを複数のグループに分けて行われる。図示の例では、第１のグループは、第１の論理ブロック１００、第１のプログラマブル配線１０１、第２の論理ブロック１０２および第１のプログラマブルＩ／Ｏブロック１０３で構成し、これに１つのコンフィギュレーション回路１０４が設けられている。また、第２のグループでは、第３の論理ブロック１０５、第２のプログラマブル配線１０６、第４の論理ブロック１０７および第２のプログラマブルＩ／Ｏブロック１０８で構成し、これに１つのコンフィギュレーション回路１０９が設けられている。第１のグループの第１の論理ブロック１００、第１のプログラマブル配線１０１、第２の論理ブロック１０２および第１のプログラマブルＩ／Ｏブロック１０３のコンフィギュレーションメモリには、それぞれコンフィギュレーション情報を転送するための、図５のシフトレジスタ３０に対応するシフトレジスタ１００ａ，１０１ａ，１０２ａ，１０３ａが含まれ、第２のグループの第３の論理ブロック１０５、第２のプログラマブル配線１０６、第４の論理ブロック１０７および第２のプログラマブルＩ／Ｏブロック１０８のコンフィギュレーションメモリには、それぞれコンフィギュレーション情報を転送するためのシフトレジスタ１０５ａ，１０６ａ，１０７ａ，１０８ａが含まれている。コンフィギュレーション回路１０４およびシフトレジスタ１００ａ，１０１ａ，１０２ａ，１０３ａは縦列接続され、第１のプログラマブルＩ／Ｏブロック１０３のコンフィギュレーションメモリからは読み出しパスによってコンフィギュレーション回路１０４に接続されている。コンフィギュレーション回路１０９およびシフトレジスタ１０５ａ，１０６ａ，１０７ａ，１０８ａは縦列接続され、第２のプログラマブルＩ／Ｏブロック１０８のコンフィギュレーションメモリからは読み出しパスによってコンフィギュレーション回路１０９に接続されている。
【００８５】
このように、このコンフィギュレーション情報の書き込みおよび読み出しのために、コンフィギュレーションメモリを複数のグループに分けてこれらを同時に実行できる構成にしている。この構成にすることによって、コンフィギュレーション情報の書き込みおよび読み出しを高速にしている。
【００８６】
コンフィギュレーション回路１０４，１０９は、コンフィギュレーション情報書き込みまたは読み出しのコマンドが入力されると、そのコマンドを解釈してコンフィギュレーション情報の書き込みまたは読み出しを行う。
【００８７】
コンフィギュレーション情報は、ＬＳＩ外部からピンを通じて、コンフィギュレーション回路１０４，１０９にそれぞれ送られる。コンフィギュレーション回路１０４は、第１の論理ブロック１００のシフトレジスタ１００ａ、第１のプログラマブル配線１０１のシフトレジスタ１０１ａ、第２の論理ブロック１０２のシフトレジスタ１０２ａおよび第１のプログラマブルＩ／Ｏブロック１０３のシフトレジスタ１０３ａへコンフィギュレーション情報を順次送る。各シフトレジスタ１００ａ，１０１ａ，１０２ａ，１０３ａでは、転送されたデータから必要なコンフィギュレーション情報を書き込み回路によって強誘電体メモリセルアレイに書き込むことになる。また、コンフィギュレーション回路１０９も同様にして、ＬＳＩ外部から入力されたコンフィギュレーション情報をシフトレジスタ１０５ａ，１０６ａ，１０７ａ，１０８ａへ順次送る。このようにして、ＬＳＩ全体のコンフィギュレーションメモリにコンフィギュレーション情報を供給する。
【００８８】
ＬＳＩ外部から供給されるコンフィギュレーション情報のデータストリームは、図２１に示したように、同期信号と、コマンド、書き込みデータおよびＣＲＣ（Cyclic Redundancy Check：エラーチェック符号）で構成され、コンフィギュレーション回路１０４，１０９に供給されて、必要なコンフィギュレーション情報のみが、シフトレジスタ列に送られる。ＣＲＣはエラーチェックのために使用され、エラーが発生した場合には、ＬＳＩの外部システムに再度データの送信を要求することになる。
【００８９】
シフトレジスタ１００ａ，１０１ａ，１０２ａ，１０３ａ，１０５ａ，１０６ａ，１０７ａ，１０８ａに送られたコンフィギュレーション情報は、直ちにコンフィギュレーションメモリに書き込まれるわけではない。１つの理由は、コンフィギュレーション情報の送信時にエラーが混入した場合に備えるためである。もう１点は、ＬＳＩが論理実行中に、コンフィギュレーション情報を書き換えることができれば、８個のＬＳＩに蓄積された８個のコンフィギュレーション情報以上の論理動作を実行できることになる。そこで、図２２に示したように、論理実行中に、コンフィギュレーションＩＤ・コマンド分配回路１１０は、ＬＳＩ外部から入力されたコマンド（コンフィギュレーション切り替えおよびコンフィギュレーション情報書き込みコマンド）とコンフィギュレーションＩＤ（ＣＩＤ）とに従って、コンフィギュレーションメモリ１１１のシフトレジスタ１１２に蓄積されたコンフィギュレーション情報を、書き込み回路１１３を使って強誘電体メモリセルアレイ１１４の所定位置に書き込む。書き込みを行う際、データは、図６および図７に示した強誘電体メモリセルのビット線ＢＬ，ＸＢＬに供給されるが、コンフィギュレーションメモリ１１１の出力バッファ１１５は、ビット線ＢＬ，ＸＢＬから切り離されているため、書き込み時のデータが、実行中の論理動作に影響を与えることはない。なお、内部の論理ブロックから発生したコンフィギュレーション情報の変更コマンドと、外部からのコンフィギュレーション情報書き込みコマンドとが同じタイミングで発生した場合は、前者を優先する。このような回路構成にすることによって、プログラマブル論理回路の動作中に、コンフィギュレーション情報をバックグラウンドで書き換えることによって、ＬＳＩの単位面積あたりの論理ゲート数を飛躍的に向上できる。
【００９０】
最後に、プログラマブル論理デバイスのセキュリティについて説明する。従来の揮発性のメモリを使用したＦＰＧＡでは、コンフィギュレーション情報は誰にでも読み出したり、書き込みしたりすることができた。なぜなら、各ＬＳＩに固有の情報を蓄積することができないためである。このため、開発したコンフィギュレーション情報を他社に読み出されたり、悪意のある他者によって書き換えられたりする可能性があった。本発明においては、強誘電体メモリベースの不揮発性のメモリを使用することにより、各ＬＳＩに固有の情報を蓄積することができ、これによって、コンフィギュレーション情報を他社に読み出されたり、悪意のある他者によって書き換えられたりする可能性をなくし、同時に、認証されていない者による不正使用を防ぐことができる。
【００９１】
図２３はセキュリティ回路の一例を示す図、図２４はセキュリティを考慮したコンフィギュレーション情報のデータストリームの例を示す図である。
セキュリティ回路は、コンフィギュレーション情報の書き込みおよび読み出しを行う回路に設けられ、ここでは、例として図２０の左側に示した回路に適用した場合を示している。セキュリティ回路は、不揮発メモリ１２１と、動作認証回路１２２と、リセット回路１２３とを有している。不揮発メモリ１２１は、ＬＳＩまたはユーザに固有なセキュリティＩＤを蓄積する。この不揮発メモリ１２１は、図３に示したコンフィギュレーションメモリを使用することも可能である。複数のコンフィギュレーション情報を持ったプログラマブル論理デバイスにおいては、各コンフィギュレーションＩＤ毎に、独自のセキュリティＩＤを設けることができる。各コンフィギュレーションＩＤ毎のセキュリティＩＤを蓄積するには、コンフィギュレーションメモリを使用することが適している。動作認証回路１２２は、不揮発メモリ１２１に蓄積しておいたセキュリティＩＤと動作要求コマンドに含まれたセキュリティＩＤとの照合を行う。リセット回路１２３は、プログラマブル論理デバイスが論理動作の実行を開始する前にチップのリセット信号を出力する。
【００９２】
まず、コンフィギュレーション情報の書き込みおよび読み出しでは、図２４に例示したようなデータストリームを使用する。このデータストリームには、セキュリティＩＤが含まれている。コンフィギュレーション回路１０４は、データストリームが入力されると、そのデータストリームに含まれるセキュリティＩＤと不揮発メモリ１２１に蓄積されているセキュリティＩＤとを照合し、一致しない場合には、書き込みまたは読み出しコマンドを受け付けないようにする。これにより、悪意のある第三者によってコンフィギュレーション情報が読み出されたり書き換えられたりすることが防止される。
【００９３】
また、動作認証回路１２２は、ＬＳＩ外部から動作要求コマンドを受け付けるようにして、受け付けた動作要求コマンドに含まれるセキュリティＩＤが不揮発メモリ１２１に蓄積されているセキュリティＩＤと一致した場合にのみ、リセット回路１２３に解除要求を送り、リセット回路１２３はリセット信号を出し、回路のリセット状態を解除する。複数のコンフィギュレーション情報を持ったプログラマブル論理デバイスにおいては、各コンフィギュレーションＩＤ毎に、独自のセキュリティＩＤを設け、管理することができる。各セキュリティＩＤを蓄積するためには、コンフィギュレーションメモリを使用し、許容されたコンフィギュレーションＩＤのみ、動作実行を可能とする。これによって、プログラマブル論理デバイスの不正使用を防ぐことができる。
【００９４】
（付記１）  外部からコンフィギュレーションを設定して所望の論理動作を可能にするプログラマブル論理デバイスにおいて、
任意の論理動作を可能にする１つの回路に対して複数個のコンフィギュレーション情報を蓄積して複数個の論理状態を規定するようにした複数個のコンフィギュレーションメモリと、
前記複数個のコンフィギュレーション情報を選択して複数種の論理動作を実行可能にする情報選択手段と、
を備え、前記コンフィギュレーションメモリを不揮発性の強誘電体メモリセルで構成したことを特徴とするプログラマブル論理デバイス。
【００９５】
（付記２）  前記情報選択手段は、ＬＳＩの動作中に、前記ＬＳＩの内部で発生された制御信号によって、前記コンフィギュレーション情報を変更可能にしたことを特徴とする付記１記載のプログラマブル論理デバイス。
【００９６】
（付記３）  前記情報選択手段は、ＬＳＩの動作中に、前記ＬＳＩの外部から供給された制御信号によって、前記コンフィギュレーション情報を変更可能にしたことを特徴とする付記１記載のプログラマブル論理デバイス。
【００９７】
（付記４）  組み合わせ論理回路ブロックと、前記組み合わせ論理回路ブロックの出力状態を蓄積するフリップフロップと、前記組み合わせ論理回路ブロックの出力および前記フリップフロップの出力を入力し前記コンフィギュレーション情報によって前記組み合わせ論理回路ブロックの出力または前記フリップフロップの出力を選択して出力するマルチプレクサとを有する論理ブロックを備え、
前記フリップフロップは、前記コンフィギュレーション情報によって前記マルチプレクサの出力として前記フリップフロップの出力が選択された場合にイネーブル状態にし、前記コンフィギュレーション情報によって前記マルチプレクサの出力として前記組み合わせ論理回路ブロックの出力が選択された場合にディセーブル状態にするイネーブル端子を有していることを特徴とする付記１記載のプログラマブル論理デバイス。
【００９８】
（付記５）  電源が立ち上がる際に電源電圧が第１の所定の電圧以上になったことを検出する第１の電源電圧検出手段と、前記第１の電源電圧検出手段による前記第１の所定の電圧の検出に応答して前記強誘電体メモリセルのプレート線に高レベルの電圧を印加して前記強誘電体メモリセルが誤再生されないようにしてから前記強誘電体メモリセルに電源電圧を印加するよう制御する第１の電源制御手段とを備えていることを特徴とする付記１記載のプログラマブル論理デバイス。
【００９９】
（付記６）  電源が遮断される際に電源電圧が第２の所定の電圧以下になったことを検出する第２の電源電圧検出手段と、前記第２の電源電圧検出手段による前記第２の所定の電圧の検出に応答して前記強誘電体メモリセルのプレート線に初めに高レベルの電圧を印加し、続いて低レベルの電圧を印加するか、あるいは逆に低レベルの電圧を印加した後高レベルの電圧を印加し前記強誘電体メモリセルがデータストアを実行した後に前記強誘電体メモリセルへの電源電圧を遮断するよう制御する第２の電源制御手段とを備えていることを特徴とする付記１記載のプログラマブル論理デバイス。
【０１００】
（付記７）  前記強誘電体メモリセルは、論理状態を規定する前記コンフィギュレーション情報を書き込み済みか否かの情報を蓄積していることを特徴とする付記１記載のプログラマブル論理デバイス。
【０１０１】
（付記８）  複数個のコンフィギュレーション情報を持つ前記コンフィギュレーションメモリは、その出力を前記論理ブロックで活用できるリードオンリーメモリとして機能させるようにしたことを特徴とする付記４記載のプログラマブル論理デバイス。
【０１０２】
（付記９）  前記論理ブロックからの制御信号に従って動作中のコンフィギュレーションとは異なる任意のコンフィギュレーション情報を前記リードオンリーメモリとして機能している前記コンフィギュレーションメモリから自由に読み出しできるよう制御するリードオンリーメモリ制御手段を備えていることを特徴とする付記８記載のプログラマブル論理デバイス。
【０１０３】
（付記１０）  前記コンフィギュレーションメモリを複数のグループにグループ化し、前記複数のグループで複数のデータストリームからの前記コンフィギュレーション情報の同時書き込みと、前記複数のデータストリームの同時読み出しとを行うようにしたことを特徴とする付記１記載のプログラマブル論理デバイス。
【０１０４】
（付記１１）  特定の論理動作を実行中に、コンフィギュレーション情報を時間的に切り換え変更して複数種の論理動作を実行できるようにしたことを特徴とする付記１記載のプログラマブル論理デバイス。
【０１０５】
（付記１２）  不揮発性の前記コンフィギュレーションメモリに固有の情報を蓄積した固有情報蓄積手段と、前記コンフィギュレーション情報の書き込みまたは読み出しの要求時に前記固有の情報との認証を行い、認証結果が正しい場合にのみ、書き込みまたは読み出しを許可する認証手段とを備えていることを特徴とする付記１記載のプログラマブル論理デバイス。
【０１０６】
（付記１３）  不揮発性の前記コンフィギュレーションメモリに各コンフィギュレーションに対して固有の情報を蓄積した固有情報蓄積手段と、複数種の論理動作の時間的な切り換えに伴う前記コンフィギュレーション情報の書き込みまたは読み出しの要求時に前記固有の情報との認証を行い、認証結果が正しい場合にのみ、書き込みまたは読み出しを許可する認証手段とを備えていることを特徴とする付記１記載のプログラマブル論理デバイス。
【０１０７】
（付記１４）  不揮発性の前記コンフィギュレーションメモリに固有の情報を蓄積した固有情報蓄積手段と、論理動作の要求時に前記固有の情報との認証を行い、認証結果が正しい場合にのみ、論理動作の実行を許可する認証手段とを備えていることを特徴とする付記１記載のプログラマブル論理デバイス。
【０１０８】
（付記１５）  不揮発性の前記コンフィギュレーションメモリに各コンフィギュレーションに対して固有の情報を蓄積した固有情報蓄積手段と、複数種の論理動作の時間的な切り換えに伴う論理動作の要求時に前記固有の情報との認証を行い、認証結果が正しい場合にのみ、論理動作の実行を許可する認証手段とを備えていることを特徴とする付記１記載のプログラマブル論理デバイス。
【図面の簡単な説明】
【０１０９】
【図１】本実施の形態のプログラマブル論理デバイスの概略の構成を示す図である。
【図２】強誘電体メモリを使用したプログラマブル論理デバイスの全体回路を例示した模式図である。
【図３】論理ブロックアレイをより詳細に示した模式図例である。
【図４】４入力ルックアップテーブルの構成例を示す図である。
【図５】ロード回路およびコンフィギュレーションメモリのより詳細な構成例を示す図である。
【図６】強誘電体メモリセルの第１の構成例を示す回路図である。
【図７】強誘電体メモリセルの第２の構成例を示す回路図である。
【図８】強誘電体メモリの各動作における制御信号の状態を示す図である。
【図９】プログラマブル配線の構成を示す図である。
【図１０】プログラマブルＩ／Ｏブロックの構成を示す図である。
【図１１】コンフィギュレーション情報の切り換え動作を説明する図である。
【図１２】従来の論理ブロックの構成を示す回路図である。
【図１３】本発明のプログラマブル論理デバイスに用いられる論理ブロックの構成を示す回路図である。
【図１４】強誘電体メモリの電源制御回路の一例を示す図である。
【図１５】強誘電体メモリベースのコンフィギュレーションメモリにおける電源制御を説明する図である。
【図１６】電源電圧検出・供給回路の電源電圧検出部の一構成例を示す回路図である。
【図１７】強誘電体メモリセルベースのコンフィギュレーションメモリを使用したプログラマブル配線の模式図である。
【図１８】本発明におけるプログラマブル配線の構成例を示す図である。
【図１９】コンフィギュレーションメモリをベースとしたリードオンリーメモリの構成例を示す図である。
【図２０】コンフィギュレーション情報のデータ転送を説明する図である。
【図２１】チップ外部から供給されるコンフィギュレーション情報のデータストリームの例を示す図である。
【図２２】コンフィギュレーション情報のデータ書き込みを説明する図である。
【図２３】セキュリティ回路の一例を示す図である。
【図２４】セキュリティを考慮したコンフィギュレーション情報のデータストリームの例を示す図である。
【符号の説明】
【０１１０】
１  論理ブロック
２  プログラマブル配線
３  プログラマブルＩ／Ｏブロック
４，５，６  強誘電体メモリ
７，８，９  情報選択手段
１０  プログラマブル論理デバイス
１１  論理ブロックアレイ
１２  プログラマブル配線
１３  プログラマブルＩ／Ｏブロック
１４  リードオンリーメモリ
２１  論理ブロック
２２  メモリ制御回路
２４  ロード回路
２５  入力ルックアップテーブル
２６  フリップフロップおよび出力マルチプレクサ
２７  メモリ
２８、５４、５８  マルチプレクサ
３０  シフトレジスタ
３１  書き込み回路
３２  強誘電体メモリセルアレイ
３３  出力バッファ
３４  読み出しパス
４０、５１、５５、６３  コンフィギュレーションメモリ
４１  パストランジスタ
５０  コンフィギュレーションＩＤ・コマンド分配回路
５２  ルックアップテーブル
５３、５７  フリップフロップ
５６  ルックアップテーブル
６０  平滑コンデンサ
６１  電源電圧検出・供給回路
６２  メモリ制御回路
６４  立ち上がり検出回路
６５  立ち下がり検出回路
２３０〜２３７  コンフィギュレーションメモリ
【図１】
2007184959.tif 000003
【図２】
2007184959.tif 000004
【図３】
2007184959.tif 000005
【図４】
2007184959.tif 000006
【図５】
2007184959.tif 000007
【図６】
2007184959.tif 000008
【図７】
2007184959.tif 000009
【図８】
2007184959.tif 000010
【図９】
2007184959.tif 000011
【図１０】
2007184959.tif 000012
【図１１】
2007184959.tif 000013
【図１２】
2007184959.tif 000014
【図１３】
2007184959.tif 000015
【図１４】
2007184959.tif 000016
【図１５】
2007184959.tif 000017
【図１６】
2007184959.tif 000018
【図１７】
2007184959.tif 000019
【図１８】
2007184959.tif 000020
【図１９】
2007184959.tif 000021
【図２０】
2007184959.tif 000022
【図２１】
2007184959.tif 000023
【図２２】
2007184959.tif 000024
【図２３】
2007184959.tif 000025
【図２４】
2007184959.tif 000026