(57)【要約】【課題】高速かつ効率的にＦＰＧＡの機能を変更することが可能な不揮発性記憶装置を提供する。【解決手段】ＦＰＧＡの機能を変更するスイッチ部において、接続制御に用いるデータラッチ回路を設ける。データラッチ回路は、予めプログラムデータが格納されているプログラム部ＭＵ１〜ＭＵ４と、ラッチユニット１００とを含む。機能を変更する際には、制御信号ＳＥＬ１〜ＳＥＬ４を選択的に入力することによりラッチユニット１００とプログラム部ＭＵとが電気的に結合され、プログラム部ＭＵに格納されているデータ信号はデータラッチ回路から出力される。これに伴い、プログラムデータを書換えることなく、容易にＦＰＧＡの機能を変更することができる。【選択図】        図３
2004206835.tif 000002
【特許請求の範囲】
【請求項１】
周辺回路に対して用いられるプログラム情報を保持して出力するデータラッチ回路を備え、
前記データラッチ回路は、
各々が、前記プログラム情報を構成するプログラムデータに応じたデータ書込電流の供給を受けて不揮発的なデータ記憶を実行する複数のプログラム部と、
データ読出時に、選択された前記複数のプログラム部のうちの選択プログラム部から生成されるデータ信号を保持するためのラッチ回路とを含む、不揮発性記憶装置。
【請求項２】
前記データラッチ回路は、前記複数のプログラム部と前記ラッチ回路との間にそれぞれ対応して設けられる複数のアクセス素子をさらに含み、
前記複数のアクセス素子は、外部からのアクセス指示に応答して選択的にターンオンする、請求項１記載の不揮発性記憶装置。
【請求項３】
前記ラッチ回路は、
第１の保持ノードに対して第２の保持ノードの電圧レベルに応じた動作電流を供給する第１の電流供給部と、
前記第２の保持ノードに対して前記第１の保持ノードの電圧レベルに応じた動作電流を供給する第２の電流供給部とを含み、
各前記プログラム部は、前記プログラムデータに応じた前記データ書込電流に基づいて互いに異なる電気抵抗を有する第１および第２の記憶素子を含み、
前記データ読出時に、第１の電圧と接続された前記第１および第２の電流供給部は、前記選択プログラム部における第２の電圧と接続された前記第１および第２の記憶素子と直列にそれぞれ電気的に結合される、請求項１記載の不揮発性記憶装置。
【請求項４】
前記ラッチ回路は、
第１の電圧と第２の電圧との間に設けられ、第１の保持ノードに対して第２の保持ノードの電圧レベルに応じた動作電流を供給する第１の電流供給部と、
前記第１の電圧と前記第２の電圧との間に設けられ、前記第２の保持ノードに対して前記第１の保持ノードの電圧レベルに応じた動作電流を供給する第２の電流供給部とを含み、
各前記プログラム部は、前記プログラムデータに応じた前記データ書込電流に基づいて互いに異なる電気抵抗を有する第１および第２の記憶素子を含み、
前記データ読出時に、前記選択プログラム部において、第３の電圧と各々電気的に接続された前記第１および第２の記憶素子は、前記第１および第２の保持ノードとそれぞれ電気的に結合される、請求項１記載の不揮発性記憶装置。
【請求項５】
前記ラッチ回路は、データ読出前において、前記第１および第２の保持ノードを電気的に結合するための制御回路をさらに含む、請求項３または請求項４に記載の不揮発性記憶装置。
【請求項６】
各前記プログラム部は、前記第１および第２の記憶素子の一方に対応して直列に接続され、固定的な電気抵抗を有する抵抗素子をさらに含み、
各前記第１および第２の記憶素子は、前記プログラムデータに応じた前記データ書込電流に基づいて第１および第２の抵抗値の一方および他方に設定され、
前記抵抗素子の前記電気抵抗は、前記第１の抵抗値と前記第２の抵抗値との差よりも小さい値に設定される、請求項３または請求項４に記載の不揮発性記憶装置。
【請求項７】
複数の回路ブロック間の信号伝送経路を設定する複数のスイッチ部と、
前記複数のスイッチ部にそれぞれ対応して設けられ、各々が対応するスイッチ部を制御する複数のスイッチ制御部とを備え、
前記複数のスイッチ制御部の各々は、前記信号伝送経路の設定に用いられるプログラムデータに応じたデータ書込電流の供給を受けて不揮発的なデータ記憶を実行する複数のプログラム部と、
データ読出時に、選択された前記複数のプログラム部のうちの選択プログラム部から生成されるデータ信号を保持するためのラッチ回路とを含む、不揮発性記憶装置。
【請求項８】
前記複数のスイッチ制御部の各々は、外部から入力される共通の指示に応答して、前記複数のプログラム部の１つを選択する、請求項７記載の不揮発性記憶装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、不揮発性記憶装置に関し、より特定的には、プログラム情報をラッチして出力するデータラッチ回路を備えた不揮発性記憶装置に関する。
【０００２】
【従来の技術】
近年、書換可能な大規模集積回路としてＦＰＧＡ（Field Programmable Gate Array）が注目されている。
【０００３】
ＦＰＧＡとは、内部回路に対して、外部からのデータ等を与えることにより所定の動作を実現するよう後から機能を変更することができる半導体装置である。
【０００４】
ＦＰＧＡは、ゲートアレイよりも開発期間が短い性質を利用し、機器の試作向けに用いられており、近年では、携帯電話やＥＴＣ（Electronic Toll Collection system）（高速道路料金の自動支払いシステム）の試作機器として利用されている。
【０００５】
このＦＰＧＡは、一般的に複数の論理ブロックと、複数の論理ブロックの接続関係（信号経路）を切替えるための複数のスイッチ回路と、複数のスイッチ回路を制御するための制御回路が設けられている。制御回路は、複数のスイッチ回路を制御するために、所定領域にプログラムされたプログラム情報をラッチして選択的にスイッチ回路に供給する。これに伴い、複数の論理ブロックの接続関係（信号経路）が切替えられ、ＦＰＧＡの機能が変更される。
【０００６】
このプログラム情報をラッチする回路として、種々のラッチ回路が提案されている。従来ではいわゆるＳＲＡＭ素子にプログラム情報を記憶させるとともに、その記憶データをラッチするデータラッチ回路を用いて切替制御を実行する構成が用いられてきた。
【０００７】
しかしながら、揮発性素子であるＳＲＡＭ素子を用いたデータラッチ回路は、電源供給停止後は、ラッチしたプログラム情報が消失してしまうため、電源投入毎にデータラッチ回路にラッチするプログラム情報を一旦ダウンロードする必要があるという問題がある。
【０００８】
そこで、近年においては、不揮発性素子を用いて、電源投入時に当該プログラム情報をダウンロードすることなく、記憶データをラッチして出力することが可能なデータラッチ回路が提案されている。（例えば、特許文献１参照）
【０００９】
【特許文献１】
特表２００２−５１１６３１号公報（Ｐ１５〜ｐ１７，図１）
【００１０】
【発明が解決しようとする課題】
しかしながら、ＦＰＧＡは、種々のパターンの切替制御を実行することにより種々の機能に変更することが求められており、機能を変更する際には、一旦格納されたデータラッチ回路のプログラム情報を書換える必要がある。
【００１１】
したがって、高速かつ効率的にＦＰＧＡの機能を変更することは困難であるという問題があった。
【００１２】
本発明の目的は、上記のような問題を解決するためのものであって、高速かつ効率的にＦＰＧＡの機能を変更することが可能な不揮発性記憶装置を提供する。
【００１３】
【課題を解決するための手段】
この発明に係る不揮発性記憶装置は、複数のプログラム部と、ラッチ回路とを含む。複数のプログラム部は、各々が、周辺回路に対して用いられるプログラムデータに応じたデータ書込電流の供給を受けて不揮発的なデータ記憶を実行する。ラッチ回路は、データ読出時に、選択された複数のプログラム部のうちの選択プログラム部から生成されるデータ信号を保持する。
【００１４】
また、不揮発性記憶装置は、複数のスイッチ部と、複数のスイッチ制御部とを含む。複数のスイッチ部は、複数の回路ブロック間の信号伝送経路を設定する。複数のスイッチ制御部は、複数のスイッチ部にそれぞれ対応して設けられ、各々が対応するスイッチ部を制御する。複数のスイッチ制御部の各々は、複数のプログラム部と、ラッチ回路とを含む。複数のプログラム部の各々は、信号伝送経路の設定に用いられるプログラムデータに応じたデータ書込電流の供給を受けて不揮発的なデータ記憶を実行する。ラッチ回路は、データ読出時に、選択された複数のプログラム部のうちの選択プログラム部から生成されるデータ信号を保持するためのラッチ回路とを含む。
【００１５】
【発明の実施の形態】
本発明の実施の形態について図面を参照しながら詳細に説明する。なお、図中同一または相当部分には同一符号を付しその説明は繰返さない。
【００１６】
（実施の形態１）
図１は、本発明の実施の形態１に従うＦＰＧＡの全体構成を示す概略ブロック図である。
【００１７】
図１を参照して、本発明の実施の形態１に従うＦＰＧＡは、行列状に配置された複数の論理ブロックＢＫを含み、これらのブロック間には配線領域が設けられている。また、配線領域には行方向に複数の水平配線群ＸＧと、列方向に複数の垂直配線群ＹＧとが設けられている。
【００１８】
論理ブロックＢＫの各々は、隣接する垂直配線群ＹＧからのデータ信号の入力を受ける入力インターフェイス部ＩＦと、隣接する水平配線群ＸＧに各論理ブロックの動作によって得られた出力結果を出力する出力インターフェイス部ＯＦとを含む。また、論理ブロックＢＫと配線領域とを電気的に接続するためのスイッチ部ＣＯＮが設けられている。このスイッチ部ＣＯＮの接続制御によって各論理ブロック間ＢＫの接続関係が決定される。また、ＦＰＧＡ全体を制御し、データ読出や書込等を指示するコマンドＣＭＤに応答して種々の動作を実行するための後述する制御信号（ＰＯＲ，ＳＥＬ１〜ＳＥＬ４，ＷＥ）等を出力するコントロール回路１が所定領域に設けられる。なお、コントロール回路１は、必要に応じて、入力されるクロック信号ＣＬＫに同期して動作する。また、コントロール回路１は、入力データＤＱに応答して書込データＰＤＩＮを生成する。
【００１９】
以下において明らかになるように、本例においては一つのスイッチ部ＣＯＮに含まれる後述する一つのデータラッチ回路についてのみ説明するが、他のスイッチ部および他のデータラッチ回路についても同様であり、コントロール回路１で制御されているものとする。
【００２０】
図２は、スイッチ部ＣＯＮの構成を示す概念図である。
図２を参照して、スイッチ部ＣＯＮは、行列状に配置された複数のトランジスタＰＴＲと、複数のトランジスタＰＴＲにそれぞれ対応して設けられた複数のデータラッチ回路ＰＭＵとを含む。ブロック間に設けられた配線領域には垂直配線および水平配線がそれぞれ設けられ、トランジスタのターンオンに応答して水平配線からの信号が選択的に垂直配線に伝達される。この水平配線から垂直配線への信号経路の切換を実行するトランジスタＰＴＲの接続制御にデータラッチ回路ＰＭＵが用いられる。
【００２１】
図３は、本発明の実施の形態１に従うデータラッチ回路ＰＭＵの回路構成図である。
【００２２】
図３を参照して、本発明の実施の形態１に従うデータラッチ回路ＰＭＵは、対応するトランジスタＰＴＲに伝達するプログラム情報を構成する複数のプログラムデータをそれぞれ格納するプログラム部ＭＵ１〜ＭＵ４と、プログラム部ＭＵ１〜ＭＵ４から選択的に供給されるプログラムデータをラッチして、対応するトランジスタＰＴＲに伝達するラッチユニット１００とを含む。
【００２３】
プログラム部ＭＵ１〜ＭＵ４は、全て同一の回路構成を有し、ここでは代表的にプログラム部ＭＵ１について説明する。
【００２４】
プログラム部ＭＵ１は、データ書込電流を供給するためのビット線ＳＢＬと、ビット線ＳＢＬの一端側および他端側にそれぞれ対応して設けられるビット線ドライバＷＷＲｂ，ＷＷＲａと、ビット線ＳＢＬの一端側に設けられ、接地電圧ＧＮＤとビット線ＳＢＬの接続ノードＮ３との間に配置されてプログラムデータを格納するための磁性体記憶素子であるトンネル磁気抵抗素子ＴＭＲｂと、ビット線ＳＢＬの他端側に設けられ、接地電圧ＧＮＤとビット線ＳＢＬの接続ノードＮ４との間に配置されてプログラムデータを格納するためのトンネル磁気抵抗素子ＴＭＲａと、トンネル磁気抵抗素子ＴＭＲａおよびＴＭＲｂにそれぞれ対応して設けられ、データ書込時にデータ書込電流が供給されるデジット線ＤＬａおよびＤＬｂとを含む。ここで、ビット線ＳＢＬは、トンネル磁気抵抗素子ＴＭＲａおよびＴＭＲｂに対して互いに異なる向きのデータ書込電流を供給するように配置される。なお、トンネル磁気抵抗素子ＴＭＲａおよびＴＭＲｂを総括してトンネル磁気抵抗素子ＴＭＲとも称する。
【００２５】
ここで、トンネル磁気抵抗素子ＴＭＲを利用したデータ書込について説明する。
【００２６】
図４は、トンネル磁気抵抗素子ＴＭＲに対するデータ書込動作を説明する概念図である。
【００２７】
図４を参照して、トンネル磁気抵抗素子ＴＭＲは、固定された一定の磁化方向を有する強磁性体層（以下、単に「固定磁化層」とも称する）ＦＬと、外部からの印加磁界に応じた方向に磁化される強磁性体層（以下、単に「自由磁化層」とも称する）ＶＬとを有する。固定磁化層ＦＬおよび自由磁化層ＶＬの間には、絶縁体膜で形成されるトンネルバリア（トンネル膜）ＴＢが設けられる。自由磁化層ＶＬは、書込まれる記憶データのレベルに応じて、固定磁化層ＦＬと同一方向または固定磁化層ＦＬと反対方向に磁化される。これらの固定磁化層ＦＬ、トンネルバリアＴＢおよび自由磁化層ＶＬによって、磁気トンネル接合が形成される。
【００２８】
トンネル磁気抵抗素子ＴＭＲの電気抵抗は、固定磁化層ＦＬおよび自由磁化層ＶＬのそれぞれの磁化方向の相対関係に応じて変化する。具体的には、トンネル磁気抵抗素子ＴＭＲの電気抵抗は、固定磁化層ＦＬの磁化方向と自由磁化層ＶＬの磁化方向とが同じ（平行）である場合に最小値Ｒｍｉｎとなり、両者の磁化方向が反対（反平行）方向である場合に最大値Ｒｍａｘとなる。
【００２９】
データ書込時においては、自由磁化層ＶＬを磁化するためのデータ書込電流は、ビット線ＢＬおよびデジット線ＤＬのそれぞれにおいて、書込データのレベルに応じた方向に流される。
【００３０】
図５は、データ書込時におけるデータ書込電流とトンネル磁気抵抗素子の磁化方向との関連を示す概念図である。
【００３１】
図５を参照して、横軸Ｈ（ＥＡ）は、トンネル磁気抵抗素子ＴＭＲ内の自由磁化層ＶＬにおいて磁化容易軸（ＥＡ：Easy Axis）方向に印加される磁界を示す。一方、縦軸Ｈ（ＨＡ）は、自由磁化層ＶＬにおいて磁化困難軸（ＨＡ：Hard Axis）方向に作用する磁界を示す。磁界Ｈ（ＥＡ）およびＨ（ＨＡ）は、ビット線ＢＬおよびデジット線ＤＬをそれぞれ流れる電流によって生じる２つの磁界の一方ずつにそれぞれ対応する。
【００３２】
トンネル磁気抵抗素子ＭＣにおいては、固定磁化層ＦＬの固定された磁化方向は、自由磁化層ＶＬの磁化容易軸に沿っており、自由磁化層ＶＬは、記憶データのレベル（“１”および“０”）に応じて、磁化容易軸方向に沿って、固定磁化層ＦＬと平行あるいは反平行（反対）方向に磁化される。トンネル磁気抵抗素子ＭＣは、自由磁化層ＶＬの２通りの磁化方向と対応させて、１ビットのデータ（“１”および“０”）を記憶することができる。
【００３３】
自由磁化層ＶＬの磁化方向は、印加される磁界Ｈ（ＥＡ）およびＨ（ＨＡ）の和が、図５に示されるアステロイド特性線の外側の領域に達する場合においてのみ新たに書換えることができる。すなわち、印加されたデータ書込磁界がアステロイド特性線の内側の領域に相当する強度である場合には、自由磁化層ＶＬの磁化方向は変化しない。
【００３４】
アステロイド特性線に示されるように、自由磁化層ＶＬに対して磁化困難軸方向の磁界を印加することによって、磁化容易軸に沿った磁化方向を変化させるのに必要な磁化しきい値を下げることができる。図５に示した例のようにデータ書込時の動作点を設計した場合には、データ書込対象であるトンネル磁気抵抗素子ＭＣにおいて、磁化容易軸方向のデータ書込磁界は、その強度がＨWRとなるように設計される。すなわち、このデータ書込磁界ＨWRが得られるように、ビット線ＢＬまたはデジット線ＤＬを流されるデータ書込電流の値が設計される。一般的に、データ書込磁界ＨWRは、磁化方向の切換えに必要なスイッチング磁界ＨSWと、マージン分ΔＨとの和で示される。すなわち、ＨWR＝ＨSW＋ΔＨで示される。
【００３５】
トンネル磁気抵抗素子ＭＣの記憶データ、すなわちトンネル磁気抵抗素子ＴＭＲの磁化方向を書換えるためには、デジット線ＤＬとビット線ＢＬとの両方に所定レベル以上のデータ書込電流を流す必要がある。これにより、トンネル磁気抵抗素子ＴＭＲ中の自由磁化層ＶＬは、磁化容易軸（ＥＡ）に沿ったデータ書込磁界の向きに応じて、固定磁化層ＦＬと平行もしくは、反対（反平行）方向に磁化される。トンネル磁気抵抗素子ＴＭＲに一旦書込まれた磁化方向、すなわちトンネル磁気抵抗素子ＭＣの記憶データは、新たなデータ書込が実行されるまでの間不揮発的に保持される。
【００３６】
再び、図３を参照して、ビット線ドライバＷＷＲａは、トランジスタ１１１，１１２と、ＡＮＤ回路１１３，１１４とを含む。トランジスタ１１１は、電源電圧Ｖｃｃとビット線ＳＢＬの他端側との間に配置され、そのゲートはＡＮＤ回路１１３の出力ノードと電気的に結合される。トランジスタ１１２は、ビット線ＳＢＬの他端側と接地電圧ＧＮＤとの間に配置され、そのゲートはＡＮＤ回路１１４の出力ノードと電気的に結合される。ＡＮＤ回路１１３は、書込制御信号ＷＤＴａおよびコントロール回路１から出力される制御信号ＷＥの入力に応じてＡＮＤ論理演算結果をトランジスタ１１１のゲートに出力する。ＡＮＤ回路１１４は、書込制御信号ＷＤＴｂおよび制御信号ＷＥの入力に応じてＡＮＤ論理演算結果をトランジスタ１１２のゲートに出力する。
【００３７】
ビット線ドライバＷＷＲｂは、トランジスタ１１５，１１６と、ＡＮＤ回路１１７，１１８とを含む。トランジスタ１１５は、電源電圧Ｖｃｃとビット線ＳＢＬの一端側との間に配置され、そのゲートはＡＮＤ回路１１７の出力ノードと電気的に結合される。トランジスタ１１６は、接地電圧ＧＮＤとビット線ＳＢＬの一端側との間に配置され、そのゲートはＡＮＤ回路１１８の出力ノードと電気的に結合される。ＡＮＤ回路１１７は、書込制御信号ＷＤＴｂおよび制御信号ＷＥの入力に応じてそのＡＮＤ論理演算結果をトランジスタ１１５のゲートに出力する。ＡＮＤ回路１１８は、書込制御信号ＷＤＴａおよび制御信号ＷＥの入力に応じてＡＮＤ論理演算結果をトランジスタ１１６のゲートに出力する。なお、トランジスタ１１１，１１２，１１５，１１６は、一例としてＮチャンネルＭＯＳトランジスタとする。
【００３８】
たとえば、書込制御信号ＷＤＴａが「Ｈ」レベルに設定され、制御信号ＷＥが「Ｈ」レベルの場合、ビット線ドライバＷＷＲａは、トランジスタ１１１をオンし、電源電圧Ｖｃｃとビット線ＳＢＬの他端側とを電気的に結合させる。一方、ビット線ドライバＷＷＲｂは、トランジスタ１１６をオンし、接地電圧ＧＮＤとビット線ＳＢＬの一端側とを電気的に結合させる。これに伴い、ビット線ＳＢＬの他端側から一端側への電流経路が形成され、データ書込電流−Ｉｗが流れる。なお、書込制御信号ＷＤＴｂが「Ｈ」レベルに設定される場合には、ビット線ＳＢＬの一端側から他端側への電流経路が形成され、データ書込電流＋Ｉｗが流れる。
【００３９】
また、プログラム部ＭＵ１は、ビット線ＳＢＬと接続されるトンネル磁気抵抗素子ＴＭＲａの接続ノードＮ４と、トンネル磁気抵抗素子ＴＭＲｂの接続ノードＮ３とを電気的に結合してイコライズするイコライズ回路１３０と、制御信号ＳＥＬ１に応答してラッチユニット１００とプログラム部ＭＵ１のトンネル磁気抵抗素子ＴＭＲａおよびＴＭＲｂをそれぞれ電気的に結合するためのアクセス素子であるトランジスタＳＧａおよびＳＧｂとを含む。
【００４０】
イコライズ回路１３０は、ＯＲ回路１１０と、トランスファゲート１０８と、インバータ１０９とを含む。トランスファゲート１０８は、ノードＮ３とノードＮ４との間に配置され、ＯＲ回路１１０およびインバータ１０９を介するＯＲ回路の出力信号の入力を受けてノードＮ３とノードＮ４とを電気的に結合する。ＯＲ回路１１０は、コントロール回路１から出力された制御信号ＰＯＲを反転した制御信号／ＰＯＲおよび制御信号ＷＥの入力に応答して、そのＯＲ論理演算結果をトランスファゲート１０８およびインバータ１０９に出力する。これに伴い、「Ｈ」レベルの制御信号／ＰＯＲもしくは制御信号ＷＥの入力に応答して、イコライズ回路１３０は活性化状態となり、ノードＮ３とノードＮ４とを電気的に接続する。一方、ともに「Ｌ」レベルの制御信号／ＰＯＲおよび制御信号ＷＥの入力に応答して、イコライズ回路１３０は非活性化状態となり、ノードＮ３とノードＮ４とを電気的に非接続とする。
【００４１】
上述したようにプログラム部ＭＵ１〜ＭＵ４は、各々同一の構成であり、コントロール回路１から出力される制御信号ＳＥＬ１〜ＳＥＬ４にそれぞれ応答してラッチユニット１００と対応するプログラム部ＭＵとが電気的に結合される。なお、制御信号ＳＥＬ１〜ＳＥＬ４は、他の図示しないデータラッチ回路ＰＭＣにおいて共通に用いられる制御信号である。
【００４２】
ラッチユニット１００は、出力ノードＮ０および出力ノードＮ１をイコライズするイコライズ回路１２０と、トランジスタ１０１〜１０４と、１０７とを含む。
【００４３】
トランジスタ１０７は、電源電圧ＶｃｃとノードＮ２との間に配置され、そのゲートは制御信号ＷＥの入力を受ける。トランジスタ１０１はノードＮ２とノードＮ０との間に配置され、そのゲートはノードＮ１と電気的に結合される。トランジスタ１０２はノードＮ０とトランジスタＳＧｂとの間に配置され、そのゲートはノードＮ１と電気的に結合される。トランジスタ１０３は、ノードＮ２とノードＮ１との間に配置され、そのゲートはノードＮ０と電気的に結合される。トランジスタ１０４は、ノードＮ１とトランジスタＳＧａとの間に配置され、そのゲートはノードＮ０と電気的に結合される。ここでは一例としてトランジスタ１０１，１０３，１０７は、ＰチャネルＭＯＳトランジスタとし、トランジスタ１０２，１０４は、ＮチャネルＭＯＳトランジスタとする。
【００４４】
イコライズ回路１２０は、インバータ１０６とトランスファゲート１０５とを含み、制御信号ＰＯＲの入力を受けてノードＮ０とノードＮ１とを電気的に結合する。一例として、「Ｈ」レベルの制御信号ＰＯＲの入力に応答して、イコライズ回路１２０は活性化状態となり、ノードＮ０とノードＮ１とを電気的に結合する。一方、「Ｌ」レベルの制御信号ＰＯＲの入力に応答して、イコライズ回路１２０は非活性化状態となり、ノードＮ０とノードＮ１とを電気的に非接続となる。
【００４５】
また、データラッチ回路ＰＭＵは、書込データＰＤＩＮに応答して書込制御信号ＷＤＴａ，ＷＤＴｂを生成する書込制御ユニット１４０と、データ書込時にデジット線ＤＬａおよびデジット線ＤＬｂに対してデータ書込電流を供給するデジット線ドライバ帯１６０と、ラッチユニット１００の出力ノードＮ０およびＮ１からそれぞれ出力されるデータ信号ＰＯ，／ＰＯを伝達するゲートトランジスタＴＲＧｂ，ＴＲＧａと、ゲートトランジスタＴＲＧａおよびＴＲＧｂのゲートと電気的に結合される選択線ＣＷＬと、制御信号ＰＯＲを所定期間遅延させるための遅延ユニットＩＶＧと、遅延ユニットＩＶＧからの出力信号と制御信号ＰＯＲとのＮＡＮＤ論理演算結果を制御信号ＰＯＲ＃として選択線ＣＷＬに伝達するＮＡＮＤ回路ＡＤとをさらに備える。
【００４６】
ここで、制御信号ＰＯＲは、必要に応じてデバイスの内部回路のリセット信号に用いられる。本例においては、コントロール回路１がいわゆるパワーオンリセット回路（図示せず）を有するものとする。当該パワーオンリセット回路から制御信号ＰＯＲを出力することができる。具体的には、パワーオンリセット回路は、一例として電源投入時に電源電圧が所定の閾値電圧を超えるまで「Ｌ」レベルに設定され、所定の閾値電圧を超えた場合には「Ｈ」レベルに設定する。なお、電源投入後、制御信号ＰＯＲは必要に応じてコントロール回路１により「Ｌ」レベルに設定される。また、ドライバＩＶＧは、偶数個のインバータ（本例では２個）で構成され、制御信号ＰＯＲの入力に応答して所定期間遅延させた信号を生成する。また、本例においては、デジット線ドライバ帯１６０が代表的にプログラム部ＭＵ１のデジット線にデータ書込電流を供給する構成について示しているが、他のプログラム部ＭＵ２〜ＭＵ４においても、同様の方式に従ってデジット線ドライバ帯１６０からそれぞれのプログラム部ＭＵが有するデジット線に対してデータ書込電流が供給される。
【００４７】
図６は、データラッチ回路ＰＭＵにおいて、プログラム部ＭＵ１に対するプログラムデータのデータ書込を実行する場合の概念図である。本例においては、プログラムデータ「０」を書込む場合について説明する。なお、データ書込時において制御信号ＷＥは、「Ｈ」レベルに設定されるものとする。
【００４８】
図６を参照して、書込制御ユニット１４０は、書込データＰＤＩＮに応じて書込制御信号ＷＤＴａおよびＷＤＴｂを生成する。ここでは、書込制御信号ＷＤＴａおよびＷＤＴｂは、それぞれ「Ｈ」レベルおよび「Ｌ」レベルに設定されるものとする。
【００４９】
これに伴い、ビット線ドライバＷＷＲａにおいてトランジスタ１１１がオンし、電源電圧Ｖｃｃとビット線ＳＢＬの他端側とが電気的に結合される。また、ビット線ドライバＷＷＲｂにおいてトランジスタ１１６がオンし、接地電圧ＧＮＤとビット線ＳＢＬの一端側とが電気的に結合される。また、イコライズ回路１３０は、データ書込時に「Ｈ」レベルに設定される制御信号ＷＥに応答してノードＮ３とノードＮ４とを電気的に結合している。
【００５０】
したがって、ビット線ＳＢＬにおいて他端側から一端側に対してデータ書込電流−Ｉｗが供給される。
【００５１】
また、同様のタイミングにおいて、コントロール回路１からの動作指示に応答してデジット線ドライバ帯１６０が活性化され、デジット線ＤＬａおよびＤＬｂに対してデータ書込電流が供給される。このビット線ＳＢＬおよびデジット線ＤＬａ，ＤＬｂにそれぞれ供給されたデータ書込電流に応じて、トンネル磁気抵抗素子ＴＭＲａおよびＴＭＲｂに対して所定磁界が印加され、磁化方向に応じたデータ書込を実行することができる。本例においては、トンネル磁気抵抗素子ＴＭＲａおよびＴＭＲｂを通過するビット線ＳＢＬのデータ書込電流の方向は互いに逆向きであるため、トンネル磁気抵抗素子ＴＭＲａの電気抵抗はＲｍｉｎとなり、トンネル磁気抵抗素子ＴＭＲｂの電気抵抗はＲｍａｘに設定される。これにより、このデータラッチ回路ＰＭＵのトンネル磁気抵抗素子を用いてプログラムデータ（「０」）を記憶させることができる。
【００５２】
図７は、データラッチ回路ＰＭＵにおいて、プログラム部ＭＵ１に対する別のプログラムデータのデータ書込を実行する場合の概念図である。本例においては、プログラムデータ（「１」）を書込む場合について説明する。なお、データ書込時に制御信号ＷＥは、「Ｈ」レベルに設定されるものとする。
【００５３】
図７を参照して、書込制御ユニット１４０は、書込データＰＤＩＮに応答して書込制御信号ＷＤＴａおよびＷＤＴｂを生成する。ここでは、書込制御信号ＷＤＴａおよびＷＤＴｂは、それぞれ「Ｌ」レベルおよび「Ｈ」レベルに設定されるものとする。
【００５４】
これに伴い、ビット線ドライバＷＷＲａにおいてトランジスタ１１２がオンし、接地電圧ＧＮＤとビット線ＳＢＬの他端側とが電気的に結合される。また、ビット線ドライバＷＷＲｂにおいてトランジスタ１１５がオンし、電源電圧Ｖｃｃとビット線ＳＢＬの一端側とが電気的に結合される。また、イコライズ回路１３０は、データ書込時に「Ｈ」レベルに設定される制御信号ＷＥに応答してノードＮ３とノードＮ４とを電気的に結合している。これによりビット線ＳＢＬにおいて一端側から他端側に対してデータ書込電流＋Ｉｗが供給される。
【００５５】
また、同様のタイミングにおいて、コントロール回路１の動作指示に応答してデジット線ドライバ帯１６０が活性化される。これに伴い、デジット線ＤＬａおよびＤＬｂに対してデータ書込電流が供給される。このビット線ＳＢＬおよびデジット線ＤＬａ，ＤＬｂにそれぞれ供給されたデータ書込電流に応じてトンネル磁気抵抗素子ＴＭＲａおよびＴＭＲｂに対して所定磁界が印加され、磁化方向に応じたデータ書込を実行することができる。本例においては、トンネル磁気抵抗素子ＴＭＲａおよびＴＭＲｂを通過するビット線ＳＢＬのデータ書込電流の方向は互いに逆向きであるため、トンネル磁気抵抗素子ＴＭＲａの電気抵抗はＲｍｉｎとなり、トンネル磁気抵抗素子ＴＭＲｂの電気抵抗はＲｍａｘに設定される。これにより、このデータラッチ回路ＰＭＵのトンネル磁気抵抗素子を用いてプログラムデータ（「１」）をプログラムすることができる。
【００５６】
図８は、データラッチ回路ＰＭＵにおいて、プログラム部ＭＵ１が保持するプログラムデータを電源投入時に自動的に読み出してラッチするデータ読出動作について説明する概念図である。
【００５７】
図８を参照して、本例においては、プログラム部ＭＵ１がプログラムデータ（「０」）を記憶している場合、すなわちトンネル磁気抵抗素子ＴＭＲａおよびＴＭＲｂがそれぞれ電気抵抗値ＲｍｉｎおよびＲｍａｘに設定されている場合について説明する。
【００５８】
図９のタイミングチャート図を用いて、電源投入時の本発明の実施の形態１に従うデータ読出動作について詳細に説明する。本例においては、電源投入時において、クロック信号ＣＬＫに同期することなくデータ読出動作を実行する構成について説明する。
【００５９】
図９を参照して、電源電圧Ｖｃｃが時刻Ｔ０に投入され、電源電圧Ｖｃｃの電圧レベルが上昇する。この時点においては、電源電圧Ｖｃｃは、所定の閾値電圧レベル以下であり、制御信号ＰＯＲは、「Ｌ」レベルに設定されている。したがって、イコライズ回路１２０は、制御信号ＰＯＲ（「Ｌ」レベル）に応答してノードＮ０とノードＮ１とを電気的に接続し、ラッチユニット１００の出力ノードをイコライズしている。また、イコライズ回路１３０は、制御信号／ＰＯＲ（「Ｈ」レベル）に応答してノードＮ３とノードＮ４とをイコライズするために電気的に接続している。また、電源投入時において、制御信号ＷＥは、「Ｌ」レベルに設定されているものとする。これに伴い、ラッチユニット１００は、制御信号ＷＥ（「Ｌ」レベル）に応答して活性化され、電源電圧ＶｃｃがノードＮ２に供給され、ノードＮ０およびノードＮ１に充電が開始される。
【００６０】
次に、電源投入後時刻Ｔ１において、電源電圧Ｖｃｃは所定の閾値電圧レベルに達し、制御信号ＰＯＲは、上述したように「Ｌ」レベルから「Ｈ」レベルに遷移し始める。これに応答してイコライズ回路１２０および１３０のイコライズが終了する。また、同様のタイミングにおいて、コントロール回路１は、制御信号ＳＥＬ１を活性化（「Ｈ」レベル）させる。
【００６１】
これに伴い、アクセス素子であるトランジスタＳＧａおよびＳＧｂがオンし、トンネル磁気抵抗素子ＴＭＲａおよびＴＭＲｂとラッチユニット１００とが電気的に結合される。具体的には、直列に接続されたトランジスタ１０１および１０２とトンネル磁気抵抗素子ＴＭＲｂとが直列に電気的に結合される。また、直列に接続されたトランジスタ１０３および１０４とトンネル磁気抵抗素子ＴＭＲａとが直列に電気的に結合される。これに伴い、電源電圧Ｖｃｃの供給を受けるノードＮ２からトンネル磁気抵抗素子ＴＭＲａおよびＴＭＲｂを介して接地電圧ＧＮＤへ流れる電流経路が形成される。すなわち、ラッチユニット１００からトンネル磁気抵抗素子ＴＭＲａおよびＴＭＲｂに対して電気抵抗に応じた動作電流が供給される。
【００６２】
次に、時刻Ｔ２において、ノードＮ０およびＮ１に対してトンネル磁気抵抗素子ＴＭＲａおよびＴＭＲｂを通過する電流差に応じた電位差が生じるようになる。この電位差がラッチユニット１００によりさらに増幅されて出力ノードＮ０の電圧レベルは「Ｈ」レベルに設定され、出力ノードＮ１の電圧レベルは「Ｌ」レベルに設定される。これに伴い、ラッチユニット１００において、プログラムデータがラッチされる。
【００６３】
次に、出力ノードＮ０およびＮ１の電圧レベルが十分に安定した時刻Ｔ３において、制御信号ＰＯＲ＃に基づいてゲートトランジスタＴＲＧａおよびＴＲＧｂがオンし、データ信号ＰＯ，／ＰＯがプログラムデータとして外部に出力される。具体的には、「Ｈ」レベルのデータ信号ＰＯがトランジスタＰＴＲに伝達される。
【００６４】
このようにして、データラッチ回路ＰＭＵのプログラム部ＭＵ１に予め記憶されたプログラムデータをラッチユニット１００で増幅するとともに、ラッチして出力することができる。また、電源投入時に所定期間経過後に「Ｈ」レベルに活性化される制御信号ＰＯＲに従い自動的にプログラムデータがトランジスタＰＴＲに伝達される。したがって、たとえば、プログラム部ＭＵ１が初期状態のＦＰＧＡの接続制御を実行するためのプログラムデータを記憶している場合には、プログラム部ＭＵ１を用いて容易に初期状態のＦＰＧＡの接続制御を実行することができる。すなわち、途中でプログラムがハングアップした場合等において、システムをリセットする制御信号ＰＯＲを用いることによって基本動作のプログラムデータを復号させる。これに伴い、初期状態に再設定することが可能となり、システムのフェールセーフと安定性の向上を図ることができる。
【００６５】
また、ＦＰＧＡの機能を変更したい場合には、他のプログラムデータが格納されているプログラム部ＭＵを用いてスイッチ部ＣＯＮの接続制御を実行する。なお、本例においては、プログラム部ＭＵ１を初期状態の接続制御を実行するプログラム部として説明したが他のプログラム部ＭＵにすることも可能である。
【００６６】
また、本例においては、一例としてプログラム部ＭＵ１〜ＭＵ４が１つのデータラッチ回路ＰＭＵに含まれている構成であり、制御信号ＳＥＬ１〜ＳＥＬ４を選択的に活性化されることにより４パターンの切替制御を実行することが可能である。このプログラム部ＭＵの個数に限定はなく、さらに複数のプログラム部ＭＵを設けて切替制御のバリーションを拡大することも可能である。
【００６７】
このように、複数のプログラム部をデータラッチ回路ＰＭＵに設けて、接続制御に用いるプログラムデータを各々のプログラム部に予め記憶させておくことにより、効率的にＦＰＧＡの機能の変更を実行することが可能となる。
【００６８】
図１０のタイミングチャート図を用いて、ＦＰＧＡの機能変更をする際の本発明の実施の形態１に従うデータラッチ回路ＰＭＵのデータ読出動作について説明する。すなわち、電源投入後において、クロック信号ＣＬＫに同期してデータ読出動作を実行する場合の構成について説明する。
【００６９】
クロック信号ＣＬＫの立上りに同期した時刻Ｔ４とほぼ同様のタイミングにおいて、コントロール回路１は、制御信号ＰＯＲを「Ｌ」レベルに設定する。また、制御信号ＷＥを「Ｈ」レベルに設定する。これに伴い、イコライズ回路１２０において、ノードＮ０とノードＮ１とが電気的に結合されてイコライズされる。また、イコライズ回路１３０において、制御信号ＰＯＲの反転信号である制御信号／ＰＯＲ（「Ｈ」レベル）に応答して、ノードＮ３とノードＮ４とが電気的に結合されてイコライズされる。これに伴い、前のラッチ（データ保持）していたデータが消失する（イコライズ）。すなわち、イコライズ回路を用いることにより、簡易にラッチしていたデータをクリアすることができる。
【００７０】
また、同様のタイミングである時刻Ｔ４において、制御信号ＳＥＬ１が「Ｈ」レベルに設定される。これに伴い、ラッチユニット１００とプログラム部ＭＵ１とが電気的に結合される。
【００７１】
次に、時刻Ｔ５の制御信号ＷＥの立下り（「Ｌ」レベル）に応答して、ラッチユニット１００のトランジスタ１０７がターンオンする。これに伴い、電源電圧Ｖｃｃからトンネル磁気抵抗素子ＴＭＲａおよびＴＭＲｂを介して接地電圧ＧＮＤへの電流経路が形成される（リード）。
【００７２】
次に、クロック信号ＣＬＫの立下りに同期した時刻Ｔ６において、制御信号ＰＯＲが「Ｈ」レベルに設定される。これに伴い、イコライズ回路１２０におけるノードＮ０とノードＮ１とのイコライズが終了する。また、イコライズ回路１３０におけるノードＮ３とノードＮ４とのイコライズも終了する。これにより、トンネル磁気抵抗素子ＴＭＲａおよびＴＭＲｂの抵抗差に応じた電流差が電圧差として増幅されてノードＮ０とノードＮ１に生成される。
【００７３】
次に、制御信号ＰＯＲの立上りの所定期間経過後の時刻Ｔ７に制御信号ＰＯＲ＃が「Ｈ」レベルに立ち上がる。これに伴い、制御信号ＰＯＲ＃（「Ｈ」レベル）に基づいてゲートトランジスタＴＲＧａおよびＴＲＧｂがオンし、データ信号ＰＯ，／ＰＯがプログラムデータとして外部に出力される。
【００７４】
次のクロック信号ＣＬＫの立ち上がりの時刻Ｔ８においては、ラッチ（データ保持）されたデータ信号ＰＯが安定的に出力されている。これに伴い、出力されたデータ信号ＰＯに基づいてＦＰＧＡの機能を変更することができる。
【００７５】
本例においては、ＦＰＧＡの機能変更時においてプログラム部ＭＵに記憶されたプログラムデータを１クロックサイクルの期間内において、イコライズし、読出し、増幅して出力するデータ読出動作について説明した。
【００７６】
次に、高周波クロック信号ＣＬＫ＃（以下、単にクロック信号ＣＬＫ＃とも称する）に同期して上記の機能変更のためのデータ読出動作を実行する場合の構成について説明する。
【００７７】
図１１のタイミングチャート図を用いて、本実施の形態１におけるクロック信号ＣＬＫ＃に同期した機能変更する際のデータ読出動作について説明する。
【００７８】
クロック信号ＣＬＫ＃の立上りに同期した時刻Ｔ１０とほぼ同様のタイミングにおいて、制御信号ＰＯＲが「Ｌ」レベルに設定される。これに伴い、イコライズ回路１２０において、ノードＮ０とノードＮ１とが電気的に結合されてイコライズされる。また、イコライズ回路１３０において、制御信号ＰＯＲの反転信号である制御信号／ＰＯＲ（「Ｈ」レベル）に応答して、ノードＮ３とノードＮ４とが電気的に結合されてイコライズされる。これに伴い、前のラッチ（データ保持）していたデータが消失する。また同様のタイミングにおいて、制御信号ＷＥが「Ｈ」レベルに設定される。これに伴い、トランジスタ１０７からの電源電圧Ｖｃｃの供給が停止する。
【００７９】
また、同様のタイミングである時刻Ｔ１０において、コントロール回路１から出力される制御信号ＳＥＬ１が「Ｈ」レベルに設定される。これに伴い、ラッチユニット１００とプログラム部ＭＵ１とが電気的に結合される。
【００８０】
次のクロック信号ＣＬＫ＃の立ち上がりに同期した時刻Ｔ１１において、制御信号ＷＥが「Ｌ」レベルに設定される。これに伴い、ラッチユニット１００のトランジスタ１０７がターンオンする。具体的には、電源電圧Ｖｃｃからトンネル磁気抵抗素子ＴＭＲａおよびＴＭＲｂを介して接地電圧ＧＮＤへの電流経路が形成される（リード）。
【００８１】
次のクロック信号ＣＬＫ＃の立ち上がりに同期した時刻Ｔ１２において、制御信号ＰＯＲが「Ｈ」レベルに設定される。これに伴い、イコライズ回路１２０におけるノードＮ０とノードＮ１とのイコライズが終了する。また、イコライズ回路１３０におけるノードＮ３とノードＮ４とのイコライズも終了する。これにより、トンネル磁気抵抗素子ＴＭＲａおよびＴＭＲｂの抵抗差に応じた電流差が電圧差に変換され、増幅されてノードＮ０とノードＮ１に生成される。
【００８２】
次に、クロック信号ＣＬＫ＃の立ち上がりに同期した時刻Ｔ１３において、制御信号ＰＯＲ＃が「Ｈ」レベルに立ち上がる。これに伴い、制御信号ＰＯＲ＃（「Ｈ」レベル）に基づいてゲートトランジスタＴＲＧａおよびＴＲＧｂがオンし、データ信号ＰＯ，／ＰＯがプログラムデータとして外部に出力される。
【００８３】
高周波クロック信号（例えば１ＧＨｚ）においては、図１０で説明した１クロックサイクル期間内において、データ読出動作を実行することは困難であるが、本例の如く、制御信号ＷＥ，ＰＯＲ，ＰＯＲ＃およびＳＥＬ１をクロック信号ＣＬＫ＃に同期したタイミングで出力することにより高速かつ効率的にデータ読出動作を実行することができる。これに伴い、最小のレイテンシでＦＰＧＡの機能の切替が可能となる。
【００８４】
また、トンネル磁気抵抗素子ＴＭＲ等をＦＰＧＡの機能を変更するために用いるプログラムデータを格納する記憶素子として用いることにより、フラッシュメモリ（Ｒ）等の如く書換回数の制限を考慮することなく、無限回のシステムの機能切換の接続制御が可能であり効率的である。
【００８５】
（実施の形態１の変形例１）
上記の実施の形態１のデータラッチ回路ＰＭＵにおいては、トンネル磁気抵抗素子ＴＭＲａおよびＴＭＲｂにデータ書込電流を供給することによりトンネル磁気抵抗素子の磁化方向に応じてプログラム部ＭＵにプログラムデータを記憶させる構成について説明した。
【００８６】
本実施の形態１の変形例１に従うデータラッチ回路ＰＭＵにおいては、固定的なプログラムデータをプログラム部ＭＵに記憶させる構成について説明する。
【００８７】
図１２は、本実施の形態１の変形例１に従うデータラッチ回路ＰＭＵのデータ書込を説明する回路構成図である。
【００８８】
図１２を参照して、本実施の形態１の変形例１に従うデータラッチ回路ＰＭＵの回路構成は、図３に示される本実施の形態１のデータラッチ回路ＰＭＵの回路構成と同様であるのでその詳細な説明は繰り返さない。
【００８９】
本例においては、トンネル磁気抵抗素子ＴＭＲを破壊することにより、固定的にプログラムデータを記憶させることを目的とする。
【００９０】
具体的には、トンネル磁気抵抗素子ＴＭＲに高電圧を印加する。すなわち、データ書込時にイコライズ回路１３０において、ノードＮ３およびノードＮ４を電気的に切断する。これに伴い、データ書込時に書込ドライバＷＷＲａから書込ドライバＷＷＲｂへの電流経路もしくは書込ドライバＷＷＲｂから書込ドライバＷＷＲａへの電流経路が形成されるのではなく、書込ドライバからトンネル磁気抵抗素子ＴＭＲａもしくはトンネル磁気抵抗素子ＴＭＲｂを通過する電流経路のみが形成される。
【００９１】
具体的には、上記において説明したデータ書込時において、制御信号ＷＥを「Ｌ」レベルに維持する。また、書込制御ユニット１４０は、書込データＰＤＩＮに応答して書込制御信号ＷＤＴａもしくはＷＤＴｂのいずれか一方を「Ｈ」レベルに設定する。これに伴い、トンネル磁気抵抗素子ＴＭＲａもしくはＴＭＲｂには、高電圧が印加され、トンネル磁気抵抗素子の薄膜磁性体が破壊される。破壊されたトンネル磁気抵抗素子の電気抵抗値はＲｍｉｎよりも小さいＲｍｉｎ＃（＜Ｒｍｉｎ）に固定的に設定される。
【００９２】
一例として、「Ｈ」レベルの書込制御信号ＷＤＴａが書込ドライバＷＷＲａおよびＷＷＲｂに入力された場合には、トンネル磁気抵抗素子ＴＭＲａが破壊される。一方、「Ｈ」レベルの書込制御信号ＷＤＴｂが書込ドライバＷＷＲａおよびＷＷＲｂに入力された場合には、トンネル磁気抵抗素子ＴＭＲｂが破壊される。
【００９３】
したがって、トンネル磁気抵抗素子ＴＭＲａおよびＴＭＲｂのいずれか一方を破壊することにより、プログラムデータをプログラム部ＭＵにおいて固定的に記憶させることができる。
【００９４】
したがって、破壊したトンネル磁気抵抗素子ＴＭＲ（抵抗値小）と破壊していないトンネル磁気抵抗素子ＴＭＲ（抵抗値大）との電気抵抗差に基づき上記実施の形態１で説明した抵抗ＲｍａｘとＲｍｉｎとの抵抗差に基づくデータ読出動作と同様のデータ読出動作を実行することができる。
【００９５】
当該方式により、磁気ノイズ等の影響により、プログラム部ＭＵに記憶したプログラムデータが書換わることはなく、安定的に所望のプログラムデータを固定的に記憶させることができる。
【００９６】
（実施の形態１の変形例２）
本実施の形態１の変形例２においては、プログラム部ＭＵとラッチユニットとの電気的な接続を変更したデータラッチ回路ＰＭＵ＃の構成について説明する。
【００９７】
図１３は、本実施の形態１の変形例２に従うデータラッチ回路ＰＭＵ＃の回路構成図である。
【００９８】
図１３を参照して、本実施の形態１の変形例２に従うデータラッチ回路ＰＭＵ＃は、図３に示されるデータラッチ回路ＰＭＵと比較して、ラッチユニット１００をラッチユニット１００＃に置換した点と、ラッチユニット１００＃の出力ノードＮ０およびＮ１とプログラム部ＭＵ１〜ＭＵ４とを電気的に接続した点とが異なる。その他の点は同様であるのでその詳細な説明は繰り返さない。
【００９９】
ラッチユニット１００＃は、ラッチユニット１００と比較してトランジスタ１０２および１０４がノードＮ０およびノードＮ１と接地電圧ＧＮＤの間にそれぞれ設けられる点が異なる。その他の点は同様であるので繰り返さない。
【０１００】
当該ラッチユニット１００＃は、いわゆるクロスラッチ回路に相当し、出力ノードＮ０およびＮ１の電圧レベルに応じた動作電流を供給することにより、出力ノードの電圧レベルを増幅してラッチする。
【０１０１】
データ読出動作およびデータ書込動作については、実施の形態１で説明したのと同様であるのでその説明は繰り返さない。
【０１０２】
（実施の形態２）
上記において説明したように、データラッチ回路ＰＭＵには複数のプログラム部ＭＵが含まれ、複数のパターンに基づく効率的なＦＰＧＡの機能変更をすることが可能であるが、システム状況においては、複数のプログラム部のうち機能変更に用いられる有効なプログラム部ＭＵを選別することが可能であればシステムの管理上効率的である。
【０１０３】
本発明の実施の形態２は、上記において説明した実施の形態１に従うデータラッチ回路ＰＭＵとともに所定領域に配置され、データラッチ回路ＰＭＵ各々が有する複数のプログラム部ＭＵのうち有効なプログラム部ＭＵを指し示す判定信号ＰＳを出力するデータラッチ回路ＰＭＵａについて説明する。
【０１０４】
図１４は、本発明の実施の形態２に従うデータラッチ回路ＰＭＵａの回路構成図である。
【０１０５】
図１４を参照して、本発明の実施の形態２に従うデータラッチ回路ＰＭＵａは、データラッチ回路ＰＭＵと比較して、プログラム部ＭＵ１〜ＭＵ４とプログラム部ＭＵ＃１〜ＭＵ＃４とを置換した点が異なる。その他の点は同様であるのでその詳細な説明は繰り返さない。なお、プログラム部ＭＵ＃１〜ＭＵ＃４の構成は各々同一であるので、ここでは、代表的にプログラム部ＭＵ＃１の構成について説明する。また、ラッチユニット１００は、プログラム部ＭＵ＃１〜ＭＵ＃４に記憶されたプログラムデータを判定信号ＰＳ，／ＰＳとして出力する。
【０１０６】
プログラム部ＭＵ＃１は、プログラム部ＭＵ１と比較して、固定抵抗ＲｆをトランジスタＳＧｂとノードＮ３との間に配置した点が異なる。その他の回路構成については同様であるのでその詳細な説明は繰り返さない。
【０１０７】
プログラム部ＭＵ＃１において、固定抵抗Ｒｆは、トンネル磁気抵抗素子の電気抵抗値ＲｍａｘとＲｍｉｎとの差の間の値、本例においては一例として中間抵抗値Ｒｍｉｄ（＝（Ｒｍａｘ−Ｒｍｉｎ）／２）を有するように設計されるものとする。
【０１０８】
図１５は、初期状態（データ無効状態）におけるデータラッチ回路ＰＭＵａを説明する概念図である。
【０１０９】
図１５を参照して、データ書込前の初期状態において、プログラム部ＭＵ＃１のトンネル磁気抵抗素子ＴＭＲａおよびＴＭＲｂはともに電気抵抗値Ｒｍｉｎに設定されているものとする。これに伴い、トンネル磁気抵抗素子ＴＭＲｂと固定抵抗Ｒｆとの合成抵抗値（Ｒｍｉｄ＋Ｒｍｉｎ）はトンネル磁気抵抗素子ＴＭＲａの電気抵抗値Ｒｍｉｎよりも大きい。
【０１１０】
したがって、この状態において、上記の実施の形態１で説明したデータ読出動作を実行した場合、ノードＮ０が「Ｈ」レベル、ノードＮ１が「Ｌ」レベルにラッチされる。すなわち、初期状態においては、「Ｈ」レベルの判定信号ＰＳがデータラッチ回路ＰＭＵａでラッチされて出力される。この状態をデータ無効状態とする。
【０１１１】
図１６は、データラッチ回路ＰＭＵａをデータ無効状態からデータ有効状態に設定する場合の概念図である。
【０１１２】
図１６を参照して、実施の形態１で説明したように、書込制御ユニット１４０において、書込制御信号ＷＤＴｂを「Ｈ」レベルに設定する。これに伴い、ビット線ＳＢＬにデータ書込電流＋Ｉｗが供給される。また、デジット線ＤＬａおよびＤＬｂに流れるデータ書込電流に応じてトンネル磁気抵抗素子ＴＭＲａの電気抵抗がＲｍｉｎからＲｍａｘに遷移する。一方、トンネル磁気抵抗素子ＴＭＲｂの電気抵抗は、Ｒｍｉｎに維持される。
【０１１３】
この場合、トンネル磁気抵抗素子ＴＭＲａの電気抵抗値Ｒｍａｘは、トンネル磁気抵抗素子ＴＭＲｂと固定抵抗Ｒｆとの合成抵抗値（Ｒｍｉｄ＋Ｒｍｉｎ）よりも大きくなる。
【０１１４】
したがって、この状態において、上記の実施の形態１で説明したデータ読出動作を実行した場合、ノードＮ０が「Ｌ」レベルに設定され、ノードＮ１が「Ｈ」レベルに設定されラッチされる。すなわち、「Ｌ」レベルの判定信号ＰＳがデータラッチ回路ＰＭＵａでラッチされて出力される。この状態をデータ有効状態とする。
【０１１５】
一方、トンネル磁気抵抗素子ＴＭＲａの電気抵抗をＲｍａｘからＲｍｉｎに遷移させた場合には、トンネル磁気抵抗素子ＴＭＲｂの電気抵抗はＲｍａｘとなり、トンネル磁気抵抗素子ＴＭＲａの電気抵抗値Ｒｍｉｎは、トンネル磁気抵抗素子ＴＭＲｂと固定抵抗Ｒｆとの合成抵抗値（Ｒｍａｘ＋Ｒｍｉｄ）よりも小さくなる。
【０１１６】
したがって、上述したように「Ｈ」レベルの判定信号ＰＳがデータラッチ回路ＰＭＵａでラッチされて出力される。すなわち、データ無効状態となる。
【０１１７】
本実施の形態の如く、判定信号ＰＳのデータレベルをコントロール回路１で検知することにより、データ有効状態かデータ無効状態かを判定し、これに基づいてデータ有効状態を示すプログラム部ＭＵを効率的に選択することができる。
【０１１８】
具体的には、データラッチ回路ＰＭＵａに含まれるプログラム部ＭＵ＃１〜ＭＵ＃４のデータ読出動作をそれぞれ実行して出力される判定信号ＰＳをコントロール回路１で検出する。この判定信号ＰＳに基づいて、データラッチ回路ＰＭＵにおいて、制御信号ＳＥＬ１〜ＳＥＬ４を選択的に活性化させる。
【０１１９】
これにより、システム状況に応じた有効なプログラム部ＭＵを容易に判定することができ、効率的なＦＰＧＡの機能の変更すなわちシステムを効率的に管理することが可能となる。
【０１２０】
また、本構成の如く、固定抵抗Ｒｆをトンネル磁気抵抗素子ＴＭＲｂと直列に接続することにより、初期状態のデータレベルを設定することができ、当該初期状態のデータレベルとの比較に基づいて有効、無効を判定することができるため簡易に判定信号を検出することができる。
【０１２１】
また、実施の形態２に従うデータラッチ回路ＰＭＵａにおいても、上記の実施の形態１の変形例２において説明したのと同様、トンネル磁気抵抗素子ＴＭＲを破壊することにより、恒久的に有効もしくは無効状態の判定信号を出力するように設定することも可能である。
【０１２２】
たとえば、本例においては、固定抵抗Ｒｆ側のトンネル磁気抵抗素子ＴＭＲｂを破壊することにより、固定抵抗Ｒｆとトンネル磁気抵抗素子ＴＭＲｂの合成抵抗（Ｒｍｉｄ＋Ｒｍｉｎ＃）は、一般的にトンネル磁気抵抗素子ＴＭＲａの電気抵抗よりも小さくなる。
【０１２３】
これに伴い、データ読出時においては、常に判定信号ＰＳは、「Ｌ」レベルに設定され、データ有効状態を示すこととなる。
【０１２４】
なお、本例においては、トンネル磁気抵抗素子ＴＭＲｂ側に固定抵抗Ｒｆを配置した構成について説明したが、トンネル磁気抵抗素子ＴＭＲａ側に固定抵抗Ｒｆを配置した構成とすることも可能である。
【０１２５】
また、固定抵抗Ｒｆを実施の形態１のデータラッチ回路ＰＭＵの構成に設けた点のみが異なり、簡易にデータラッチ回路ＰＭＵａを構成することが可能である。
【０１２６】
なお、上記において、説明したデータラッチ回路は、ＦＰＧＡの切替制御に用いられるプログラムデータを格納する場合について主に説明したが、ＦＰＧＡに限らず、他の内部回路の動作で用いられるプログラムデータを記憶することも可能である。また、データ有効状態もしくは無効状態を指し示す判定信号を出力するデータラッチ回路もＦＰＧＡ以外において用いることも可能である。
【０１２７】
また、上記の実施の形態においては、トンネル磁気抵抗素子を用いてデータ記憶を実行する構成について説明したが、薄膜のカルコゲナイドという材料を用いて結晶状態（低抵抗）およびアモルファス状態（高抵抗）のいずれか一方への相転移に従う特性を利用した可変抵抗素子によりデータ記憶を実行することも可能である。
【０１２８】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【０１２９】
【発明の効果】
この発明は以上説明したように、データラッチ回路において、複数のプログラム部のうちの選択プログラム部のデータ信号を保持して出力する。したがって、ラッチするデータを書換える必要がなく効率的に周辺回路に用いられるデータ信号を出力することができる。
【０１３０】
また、不揮発性記憶装置において、スイッチ制御部は、複数のプログラム部とラッチ回路とを含む。ラッチ回路は、複数のプログラム部のうちの選択プログラム部からのデータ信号を保持する。したがって、信号伝送経路の設定をするためにプログラム部のデータを書換える必要がなく、複数のプログラム部の中の選択プログラム部を用いて効率的に信号伝送経路を設定することができる。
【図面の簡単な説明】
【図１】本発明の実施の形態１に従うＦＰＧＡの全体構成を示す概略ブロック図である。
【図２】スイッチ部ＣＯＮの構成を示す概念図である。
【図３】本発明の実施の形態１に従うデータラッチ回路ＰＭＵの回路構成図である。
【図４】トンネル磁気抵抗素子ＴＭＲに対するデータ書込動作を説明する概念図である。
【図５】データ書込時におけるデータ書込電流とトンネル磁気抵抗素子の磁化方向との関連を示す概念図である。
【図６】データラッチ回路ＰＭＵにおいて、プログラム部ＭＵ１に対するプログラムデータのデータ書込を実行する場合の概念図である。
【図７】データラッチ回路ＰＭＵにおいて、プログラム部ＭＵ１に対する別のプログラムデータのデータ書込を実行する場合の概念図である。
【図８】データラッチ回路ＰＭＵにおいて、プログラム部ＭＵ１が保持するプログラムデータを電源投入時に自動的に読み出してラッチするデータ読出動作について説明する概念図である。
【図９】本発明の実施の形態１に従うデータ読出動作について詳細に説明するタイミングチャート図である。
【図１０】ＦＰＧＡの機能変更をする際の本発明の実施の形態１に従うデータラッチ回路ＰＭＵのデータ読出動作について説明するタイミングチャート図である。
【図１１】本実施の形態１におけるクロック信号ＣＬＫ＃に同期した機能変更する際のデータ読出動作について説明するタイミングチャート図である。
【図１２】本実施の形態１の変形例１に従うデータラッチ回路ＰＭＵのデータ書込を説明する回路構成図である。
【図１３】本実施の形態１の変形例２に従うデータラッチ回路ＰＭＵ＃の回路構成図である。
【図１４】本発明の実施の形態２に従うデータラッチ回路ＰＭＵａの回路構成図である。
【図１５】初期状態（データ無効状態）におけるデータラッチ回路ＰＭＵａを説明する概念図である。
【図１６】データラッチ回路ＰＭＵａをデータ無効状態からデータ有効状態に設定する場合の概念図である。
【符号の説明】
ＸＧ  水平配線群、ＹＧ  垂直配線群、ＢＫ  論理ブロック、ＩＦ  入力インターフェイス部、ＯＦ  出力インターフェイス部、ＣＯＮ  スイッチ部、ＰＭＵデータラッチ回路、ＭＵ  プログラム部、１  コントロール回路、１００  ラッチユニット、１４０  書込制御ユニット。
【図１】
2004206835.tif 000003
【図２】
2004206835.tif 000004
【図３】
2004206835.tif 000005
【図４】
2004206835.tif 000006
【図５】
2004206835.tif 000007
【図６】
2004206835.tif 000008
【図７】
2004206835.tif 000009
【図８】
2004206835.tif 000010
【図９】
2004206835.tif 000011
【図１０】
2004206835.tif 000012
【図１１】
2004206835.tif 000013
【図１２】
2004206835.tif 000014
【図１３】
2004206835.tif 000015
【図１４】
2004206835.tif 000016
【図１５】
2004206835.tif 000017
【図１６】
2004206835.tif 000018