(57)【要約】【課題】コンフィギュレーション時間、結線情報及び論理構成情報の書換え時間を短縮でき、さらに占有面積を縮小できるＦＰＧＡを提供する。【解決手段】ＦＰＧＡの結線情報を記憶するために、ＭＲＡＭのメモリセルである磁気記憶素子ＭＴＪ１〜ＭＴＪｎを設ける。磁気記憶素子ＭＴＪ１〜ＭＴＪｎには、シフトレジスタ７１を用いて結線情報を入力する。シフトレジスタ７１は、磁気記憶素子ＭＴＪ１〜ＭＴＪｎに対応するレジスタ素子ＳＲ１〜ＳＲｎを含む。結線情報はシリアルに入力され、レジスタ素子ＳＲ１〜ＳＲｎに記憶される。電源投入時には、磁気記憶素子ＭＴＪ１〜ＭＴＪｎの接続情報がラッチ素子ＬＴ１〜ＬＴｎにラッチされ、論理ブロックを相互に接続するためのスイッチ回路６に出力される。【選択図】　　　　図３
2004088597.tif 000002
【特許請求の範囲】
【請求項１】
プログラム可能な複数の論理ブロックと、
前記複数の論理ブロックを相互に接続するための結線情報を記憶する磁気記憶装置と、
前記複数の論理ブロック間に接続され、前記磁気記憶装置に記憶された結線情報に応じてオン又はオフになる複数のスイッチ手段とを備えたことを特徴とするフィールドプログラマブルゲートアレイ。
【請求項２】
請求項１に記載のフィールドプログラマブルゲートアレイであって、
前記磁気記憶装置は、前記論理ブロック及び前記スイッチ手段と同一チップ上に形成されたことを特徴とするフィールドプログラマブルゲートアレイ。
【請求項３】
請求項１又は請求項２に記載のフィールドプログラマブルゲートアレイであって、
前記磁気記憶装置は、
前記複数のスイッチ手段に対応して設けられ、前記結線情報を記憶する複数の磁気記憶素子を含むことを特徴とするフィールドプログラマブルゲートアレイ。
【請求項４】
請求項３に記載のフィールドプログラマブルゲートアレイであってさらに、
外部から前記結線情報をシリアルに受けるシフトレジスタを備え、
前記シフトレジスタは、
前記複数の磁気記憶素子に対応して設けられ、各々が前記結線情報を記憶しかつ対応する磁気記憶素子に出力する複数のレジスタ素子を含むことを特徴とするフィールドプログラマブルゲートアレイ。
【請求項５】
請求項３又は請求項４に記載のフィールドプログラマブルゲートアレイであってさらに、
前記複数の磁気記憶素子から出力された前記結線情報をラッチする複数のラッチ素子を備えたことを特徴とするフィールドプログラマブルゲートアレイ。
【請求項６】
請求項１〜請求項５のいずれか１項に記載のフィールドプログラマブルゲートアレイであって、
前記論理ブロックの各々は、
自身の論理構成を定義するための論理構成情報を記憶する磁気記憶素子を含むことを特徴とするフィールドプログラマブルゲートアレイ。
【請求項７】
プログラム可能な複数の論理ブロックと、
前記複数の論理ブロックを相互に接続するための結線情報を記憶する記憶装置と、
前記複数の論理ブロック間に接続され、前記記憶装置に記憶された結線情報に応じてオン又はオフになる複数のスイッチ手段とを備え、
前記論理ブロックの各々は、
自身の論理構成を定義するための論理構成情報を記憶する磁気記憶素子を含むことを特徴とするフィールドプログラマブルゲートアレイ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、フィールドプログラマブルゲートアレイ（Ｆｉｅｌｄ　Ｐｒｏｇｒａｍｍａｂｌｅ　Ｇａｔｅ　Ａｒｒａｙ：以下、ＦＰＧＡと称する）に関し、さらに詳しくは、磁気記憶素子を用いたＦＰＧＡに関する。
【０００２】
【従来の技術】
近年、半導体装置の微細化技術が発展し、製造プロセスが複雑になっている。このため、論理集積回路であるＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ　Ｓｐｅｃｉｆｉｃ　Ｉｎｔｅｇｒａｔｅｄ　Ｃｉｒｃｕｉｔ）のマスクや製造コストが増大している。したがって、ＡＳＩＣは大量生産しなければ製造コストを償却できない。よって、特定の論理回路が少量のみ必要な場合や、試作品として特定の論理回路を使用する場合は、ＡＳＩＣよりもＦＰＧＡが利用される。
【０００３】
ＦＰＧＡはユーザが設計した任意の論理回路を作成することが可能な大規模集積回路である。ＡＳＩＣはメーカに発注して作成してもらわなければならず、一度作成されたＡＳＩＣはその機能を変更することはできない。一方、ＦＰＧＡはユーザが論理回路の機能を書き込めるため、メーカに新たな集積回路を発注する必要がなく、ユーザは既存のＦＰＧＡの機能設計を変更することで新たな論理回路を得ることができる。
【０００４】
図６は、従来のＦＰＧＡの全体構成を示す機能ブロック図である。図６を参照して、ＦＰＧＡ４はスタティックランダムアクセスメモリ（Ｓｔａｔｉｃ　Ｒａｎｄｏｍ　Ａｃｃｅｓｓ　Ｍｅｍｏｒｙ：以下、ＳＲＡＭと称する）３と、複数の論理ブロック５と、複数のスイッチ回路６とを含む。
【０００５】
複数の論理ブロック５は、ユーザがプログラムできる論理回路である。各論理ブロック５は、１又は２以上のラッチ回路（図示せず）を含む。このラッチ回路は、論理ブロック５の論理構成を定義する論理構成情報を記憶する。ＳＲＡＭ３は、複数の論理ブロック５を互いに接続するための結線情報を記憶する。複数のスイッチ回路６は、複数の論理ブロック５の間に接続され、ＳＲＡＭ３に記憶された結線情報に応じてオン又はオフになる。これにより、複数の論理ブロック５が相互に接続されたり、切り離されたりする。
【０００６】
ＦＰＧＡ４が設置されるカード１上には、不揮発性の半導体記憶装置であるフラッシュメモリ（Ｆｌａｓｈ　Ｍｅｍｏｒｙ）２も設置される。フラッシュメモリ２には、上述した結線情報と論理構成情報とがユーザによりプログラムされる。電源投入時に、フラッシュメモリ２は記憶している結線情報をＳＲＡＭ３に転送する。ＳＲＡＭ３はフラッシュメモリ２から転送された結線情報を記憶し、その結線情報に基づいてＦＰＧＡ４内の各スイッチ回路６をオン／オフする。また、フラッシュメモリ２は電源投入時に、論理構成情報を複数の論理ブロック５に直接転送する。論理ブロック５はフラッシュメモリ２から転送された論理構成情報を記憶し、これによりユーザに要求された論理構成を備えることになる。ユーザは、フラッシュメモリ２に記憶させる結線情報及び論理構成情報を変更することにより、ＦＰＧＡ４で構成される論理回路を自由に変更することができる。
【０００７】
フラッシュメモリ２はＦＰＧＡ４内の回路素子とは製造工程が大きく異なり、ＦＰＧＡ４内の回路素子と比較して高電圧が必要である。そのため、フラッシュメモリ２をＦＰＧＡ４と同じチップ上に形成することは困難である。よって、フラッシュメモリ２の代わりにＳＲＡＭ３をＦＰＧＡ４と同じチップ上に形成し、フラッシュメモリ２をＦＰＧＡ４と別のチップ上に形成している。しかし、ＳＲＡＭ３は揮発性の半導体記憶装置であるから、従来のＦＰＧＡ４は、電源投入のたびに外部のフラッシュメモリ２から内部のＳＲＡＭ３に結線情報を読み出さなければならなかった。そのため、電源投入からＦＰＧＡ４が動作可能となるまでの時間であるコンフィギュレーション時間が長いという問題があった。
【０００８】
また、フラッシュメモリ２とＦＰＧＡ４とが別チップとなり、また、フラッシュメモリ２からＳＲＡＭ３に結線情報を伝達するための多数の配線が必要となることから、カード１の面積は必然的に大きくなるという問題があった。
【０００９】
さらに、フラッシュメモリ２は一部の変更であっても一度全データを消去して全データを書換える必要がある。よって、従来の結線情報や論理構成情報の一部を変更する場合であっても、データの書換えに時間がかかるという問題があった。
【００１０】
［特許文献１］
特開平７−３２１６４１号公報
［特許文献２］
特開２０００−３２３９８０号公報
［先行出願１］
特願２００１−１３０６５２号
［先行出願２］
特願２００１−３５８２２２号
【発明が解決しようとする課題】
本発明の１つの目的は、コンフィギュレーション時間を短縮することができるＦＰＧＡを提供することである。
【００１１】
本発明のもう１つの目的は、結線情報又は論理構成情報の書換時間を短縮することができるＦＰＧＡを提供することである。
【００１２】
本発明のさらにもう１つの目的は、占有面積を縮小することができるＦＰＧＡを提供することである。
【００１３】
【課題を解決するための手段】
本発明によるフィールドプログラマブルゲートアレイは、複数の論理ブロックと、磁気記憶装置と、スイッチ手段とを備える。複数の論理ブロックはプログラム可能である。磁気記憶装置は、複数の論理ブロックを相互に接続するための結線情報を記憶する。複数のスイッチ手段は、複数の論理ブロック間に接続され、磁気記憶装置に記憶された結線情報に応じてオン又はオフになる。
【００１４】
このフィールドプログラマブルゲートアレイでは、結線情報が磁気記憶装置に記憶され、これに応じてスイッチ手段がオン又はオフになる。これにより論理ブロックが接続されたり、切り離されたりし、所望の論理回路が構成される。ここでは、結線情報が磁気記憶装置に記憶されるため、電源を切っても結線情報が消失することはない。そのため、結線情報を磁気記憶装置に１回記憶させれば、同じ結線情報を再び記憶させる必要はない。したがって、電源が投入されると、結線情報は直ちに磁気記憶装置からスイッチ手段に与えられる。その結果、コンフィギュレーション時間が短縮される。また、磁気記憶装置はフラッシュメモリと異なり、データの部分的な書き換えが可能であるから、結線情報の書換時間が短縮される。さらに、従来のように外部にフラッシュメモリを必要としないので、占有面積が縮小される。
【００１５】
好ましくは、磁気記憶装置は、論理ブロック及びスイッチ手段と同一チップ上に形成される。
【００１６】
この場合、磁気記憶装置は、フラッシュメモリよりも容易に論理ブロック及びスイッチ手段と同一チップ上に形成することができる。その結果、占有面積がさらに縮小される。
【００１７】
好ましくは、磁気記憶装置は、複数の磁気記憶素子を含む。複数の磁気記憶素子は、複数のスイッチ手段に対応して設けられ、結線情報を記憶する。
【００１８】
この場合、結線情報は複数の磁気記憶素子から複数のスイッチ手段に一斉に与えられるので、コンフィギュレーション時間がさらに短縮される。
【００１９】
好ましくは、フィールドプログラマブルゲートアレイはさらに、外部から結線情報をシリアルに受けるシフトレジスタを備える。シフトレジスタは、複数のレジスタ素子を含む。複数のレジスタ素子は、複数の磁気記憶素子に対応して設けられる。レジスタ素子の各々は、結線情報を記憶し、かつ対応する磁気記憶素子に出力する。
【００２０】
この場合、結線情報はシフトレジスタにシリアルに入力され、磁気記憶素子にパラレルに出力される。したがって、結線情報を入力するために必要な端子数は少なくてもよく、占有面積がさらに縮小される。
【００２１】
好ましくは、フィールドプログラマブルゲートアレイはさらに、複数のラッチ素子を備える。複数のラッチ素子は、複数の磁気記憶素子から出力された結線情報をラッチする。
【００２２】
この場合、磁気記憶素子の出力はラッチ素子により増幅される。したがって、安定した結線情報が磁気記憶素子からスイッチ手段に与えられる。
【００２３】
好ましくは、論理ブロックの各々は、磁気記憶素子を含む。磁気記憶素子は、論理ブロックの論理構成を定義するための論理構成情報を記憶する。
【００２４】
この場合、論理構成情報が磁気記憶素子に記憶されるため、電源を切っても論理構成情報が消失することはない。そのため、論理構成情報を磁気記憶素子に１回記憶させれば、同じ論理構成情報を再び記憶させる必要はない。したがって、電源が投入されると、各論理ブロックの論理は、磁気記憶素子に記憶された論理構成情報に応じて直ちに構成される。その結果、コンフィギュレーション時間がさらに短縮される。
【００２５】
【発明の実施の形態】
以下、本発明の実施の形態を図面を参照して詳しく説明する。図中同一又は相当部分には同一符号を付してその説明を援用する。
【００２６】
図１は、本発明の実施の形態によるＦＰＧＡの全体構成を示す機能ブロック図である。図１を参照して、ＦＰＧＡ４１は、プログラム可能な複数の論理ブロック５１と、複数の論理ブロック５１を相互に接続するための複数のスイッチ回路６と、ユーザによりプログラムされた結線情報に応じて複数のスイッチ回路６をオン又はオフにするための設定回路７とを備える。図１では、２つの論理ブロック５１と１つのスイッチ回路６とのみが代表的に示されているが、実際のＦＰＧＡ４１はもっと多数の論理ブロック５１とそれらに対応する複数のスイッチ回路６とを備える。
【００２７】
論理ブロック５１は、複数のルックアップテーブル（Ｌｏｏｋｕｐ　Ｔａｂｌｅ：以下、ＬＵＴと称する）５２を含む。ＬＵＴ５２は、ユーザによりプログラムされた論理構成情報に応じて、ＮＡＮＤ回路、ＮＯＲ回路など、所望の論理回路となる。
【００２８】
図２は、図１中のＬＵＴ５２の一構成例を示す機能ブロック図である。図２を参照して、ＬＵＴ５２は、インバータＩＶ１，ＩＶ２と、トランスファゲートＴＧ１，ＴＧ２と、ワード線選択回路５２１と、ビット線選択回路５２２と、磁気記憶素子ＭＴＪ１０〜ＭＴＪ１３とを含む。磁気記憶素子は、たとえばＭＲＡＭ（Ｍａｇｎｅｔｉｃ　Ｒａｎｄｏｍ　Ａｃｃｅｓｓｅｓ　Ｍｅｍｏｒｙ）に用いられる磁気トンネル接合（Ｍａｇｎｅｔｉｃ　Ｔｕｎｎｅｌ　Ｊｕｎｃｔｉｏｎ）メモリセルである。
【００２９】
インバータＩＶ１は外部から入力されるアドレス信号Ａ０を受け、アドレス信号Ａ０を反転した信号／Ａ０をワード線選択回路５２１に出力する。ワード線選択回路５２１には、複数の書込ワード線ＷＷＬ０，ＷＷＬ１及び複数の読出ワード線ＲＷＬ０，ＲＷＬ１が接続されている。ワード線選択回路５２１は、ライトイネーブル信号／ＷＥが活性化されると、アドレス信号Ａ０及び／Ａ０に応答して複数の書込ワード線ＷＷＬ０，ＷＷＬ１のうち１つを選択する。具体的には、ワード線選択回路５２１は、アドレス信号Ａ０がＨ（論理ハイ）レベルになると書込ワード線ＷＷＬ０を選択し、アドレス信号Ａ０がＬ（論理ロー）レベルになると書込ワード線ＷＷＬ１を選択する。また、ワード線選択回路５２１は、ライトイネーブル信号／ＷＥが非活性化されると、アドレス信号Ａ０及び／Ａ０に応答して複数の読出ワード線ＲＷＬ０，ＲＷＬ１のうち１つを選択する。具体的には、ワード線選択回路５２１は、アドレス信号Ａ０がＨ（論理ハイ）レベルになると読出ワード線ＲＷＬ０を選択し、アドレス信号Ａ０がＬ（論理ロー）レベルになると読出ワード線ＲＷＬ１を選択する。
【００３０】
インバータＩＶ２は外部から入力されるアドレス信号Ａ１を受け、アドレス信号Ａ１を反転した信号／Ａ１をトランスファゲートＴＧ２に出力する。トランスファゲートＴＧ１はアドレス信号Ａ１に応答してオンになり、これにより磁気記憶素子ＭＴＪ１０，ＭＴＪ１２をビット線ＢＬ０を介してビット線選択回路５２２に接続する。同様に、トランスファゲートＴＧ２はアドレス信号／Ａ１に応答してオンになり、これにより磁気記憶素子ＭＴＪ１１，ＭＴＪ１３をビット線ＢＬ１を介してビット線選択回路５２２に接続する。ビット線選択回路５２２には、複数のビット線ＢＬ０及びＢＬ１と、データ入力線ＩＬと、データ出力線ＯＬとが接続される。ビット線選択回路５２２は、ライトイネーブル信号／ＷＥが活性化されると、データ信号ＤＩを入力する。また、ビット線選択回路５２２は、ライトイネーブル信号／ＷＥが非活性化されると、データ信号ＤＯを出力する。
【００３１】
ＬＵＴ５２を所望の論理回路に設定する際には、磁気記憶素子ＭＴＪ１０〜ＭＴＪ１３の中から１つを選択するためのアドレス信号Ａ１，Ａ２を外部から入力するとともに、その選択された磁気記憶素子に記憶させるべき論理構成情報をデータ入力線ＩＬから入力する。これを４回繰り返すことにより、全ての磁気記憶素子ＭＴＪ１０〜ＭＴＪ１３に論理構成情報を記憶させる。その結果、ＬＵＴ５２は所望の論理回路として機能する。すなわち、論理回路の入力信号としてあるアドレス信号Ａ１，Ａ２が入力されると、そのアドレス信号Ａ１，Ａ２に応じて１つの磁気記憶素子が選択される。そして、その選択された磁気記憶素子に記憶された論理構成情報が論理回路の出力信号としてデータ出力線ＯＬから出力される。
【００３２】
図２に示したＬＵＴ５２は４つの磁気記憶素子ＭＴＪ１０〜ＭＴＪ１３を備えているが、他のＬＵＴの中には、４つの磁気記憶素子を備えたものもあれば、それ以外の数の磁気記憶素子を備えたものもある。また、アドレス信号は磁気記憶素子を選択するためのものであるから、たとえば８（＝２３）つの磁気記憶素子を備えたＬＵＴには３ビットのアドレス信号が与えられる。
【００３３】
再び図１を参照して、設定回路７は、スイッチ回路６をオン又はオフにするための結線情報を記憶し、その結線情報に基づいて論理ブロック５１を相互に接続することによりＦＰＧＡ４１の論理構成を設定する。
【００３４】
図３は、図１中の設定回路７の構成を示す機能ブロック図である。図３を参照して、設定回路７は、シフトレジスタ７１と、磁気記憶装置７２と、ラッチ回路７３とを含む。
【００３５】
シフトレジスタ７１は複数のレジスタ素子ＳＲ１〜ＳＲｎ（ｎは自然数）を含む。レジスタ素子ＳＲ１〜ＳＲｎは直列に接続される。シフトレジスタ７１は、レジスタイネーブル信号／ＲＥが活性化されると、シフトクロック信号ＳＣに応答して外部からシリアルに入力される結線情報ＳＤを受け、かつこれらをレジスタ素子ＳＲ１〜ＳＲｎ上でシフトする。レジスタ素子ＳＲ１〜ＳＲｎは、結線情報を記憶しかつ磁気記憶装置７２に出力する。なお、レジスタイネーブル信号／ＲＥ、シフトクロック信号ＳＣなどの制御信号は外部に設置された制御回路（図示せず）から出力される。
【００３６】
磁気記憶装置７２は複数の磁気記憶素子ＭＴＪ１〜ＭＴＪｎを含む。磁気記憶素子ＭＴＪ１〜ＭＴＪｎは、レジスタ素子ＳＲ１〜ＳＲｎに対応して配置される。磁気記憶素子ＭＴＪ１〜ＭＴＪｎは、データライト信号／ＤＷに応答してレジスタ素子ＳＲ１〜ＳＲｎから結線情報を受けて記憶する。また、磁気記憶素子ＭＴＪ１〜ＭＴＪｎは、セット信号／ＳＥＴに応答して結線情報をラッチ回路７３に出力する。
【００３７】
ラッチ回路７３は複数のラッチ素子ＬＴ１〜ＬＴｎを含む。ラッチ素子ＬＴ１〜ＬＴｎは磁気記憶素子ＭＴＪ１〜ＭＴＪｎに対応して配置される。ラッチ素子ＬＴ１〜ＬＴｎは、磁気記憶素子ＭＴＪ１〜ＭＴＪｎから出力された結線情報をラッチする。ラッチ素子ＬＴ１〜ＬＴｎは、磁気記憶素子ＭＴＪ１〜ＭＴＪｎの出力を増幅するバッファとして機能する。
【００３８】
レジスタ素子ＳＲ１と磁気記憶素子ＭＴＪ１とラッチ素子ＬＴ１とはスイッチ信号線ＳＷＬ１及び／ＳＷＬ１を介して接続される。スイッチ信号線ＳＷＬ１及びスイッチ信号線／ＳＷ１はレジスタ素子ＳＲ１，磁気記憶素子ＭＴＪ１，ラッチ素子ＬＴ１に記憶された結線情報を伝達する。スイッチ信号線ＳＷＬ１及び／ＳＷＬ１は互いに相補の信号を対応するスイッチ回路６に伝達する。同様に、レジスタ素子ＳＲｎと磁気記憶素子ＭＴＪｎとラッチ回路ＬＴｎとはスイッチ信号線ＳＷＬｎ及び／ＳＷＬｎを介して接続される。
【００３９】
再び図１を参照して、複数のスイッチ回路６は、複数の論理ブロック５１の間に接続され、設定回路７に記憶された結線情報に応じてオン又はオフになる。これにより、複数の論理ブロック５１が相互に接続されたり、切り離されたりする。
【００４０】
次に、以上の回路構成を備えたＦＰＧＡ４１の動作について説明する。
【００４１】
初めに、外部から入力される論理構成情報に基づいてＬＵＴ５２が所望の論理回路に設定される場合の動作を説明する。ここでは、ＬＵＴ５２がＡＮＤ回路に設定される場合を例に説明する。
【００４２】
ＬＵＴ５２をＡＮＤ回路に設定するために、磁気記憶素子ＭＴＪ１０，ＭＴＪ１１，ＭＴＪ１２，ＭＴＪ１３にそれぞれ「１」，「０」，「０」，「０」のデータを論理構成情報として書込む。なお、データ「１」はデータ入力線ＩＬから入力されるデータ信号ＤＩがＨレベルの場合を示す。また、データ「０」はデータ入力線ＩＬから入力されるデータ信号ＤＩがＬレベルの場合を示す。
【００４３】
図４は、ＬＵＴ５２をＡＮＤ回路に設定する動作を示すタイミングチャートである。図４を参照して、ライトイネーブル信号／ＷＥは所定の周期でＨレベルとＬレベルを繰り返す。時刻ｔ１において、ライトイネーブル信号／ＷＥがＬレベルに活性化されたとき、アドレス信号Ａ０及びＡ１はともにＬレベルである。よって、ワード線選択回路５２１は書込ワード線ＷＷＬ１を選択し、また、トランスファゲートＴＧ１はオフになり、トランスファゲートＴＧ２はオンになる。この結果、磁気記憶素子ＭＴＪ１３が選択される。このとき、データ入力線ＩＬから入力されるデータ信号ＤＩはＬレベルであるから、磁気記憶素子ＭＴＪ１３には「０」のデータが書込まれる。時刻ｔ１から所定時間経過後の時刻ｔ１１にライトイネーブル信号／ＷＥはＨレベルに非活性化され、書込動作は一旦終了する。
【００４４】
時刻ｔ１１から所定時間経過後の時刻ｔ２において、再びライトイネーブル信号／ＷＥがＬレベルに活性化される。このとき、アドレス信号Ａ０はＨレベルであるから、ワード線選択回路５２１は書込ワード線ＷＷＬ０を選択する。また、アドレス信号Ａ１はＬレベルであるから、トランスファゲートＴＧ１はオフになり、トランスファゲートＴＧ２はオンになる。この結果、磁気記憶素子ＭＴＪ１１が選択される。このとき、データ入力線ＩＬから入力されるデータ信号ＤＩはＬレベルである。よって、磁気記憶素子ＭＴＪ１１には「０」のデータが入力される。
【００４５】
また、時刻ｔ２から所定の時間経過後の時刻ｔ３において、ライトイネーブル信号／ＷＥが再びＬレベルに活性化される。このとき、アドレス信号Ａ０はＬレベルであるから、ワード線選択回路５２１は書込ワード線ＷＷＬ１を選択する。また、アドレス信号Ａ１はＨレベルであるから、トランスファゲートＴＧ１はオンになり、トランスファゲートＴＧ２はオフになる。この結果、磁気記憶素子ＭＴＪ１２が選択される。このとき、データ入力線ＩＬから入力されるデータ信号ＤＩはＬレベルである。よって、磁気記憶素子ＭＴＪ１２には「０」のデータが入力される。
【００４６】
ライトイネーブル信号／ＷＥがＬレベルに活性化される時刻ｔ４では、アドレス信号Ａ０がＨレベルであるから、ワード線選択回路５２１は書込ワード線ＷＷＬ０を選択する。また、アドレス信号Ａ１がＨレベルであるから、トランスファゲートＴＧ１がオンになり、トランスファゲートＴＧ２がオフになる。この結果、磁気記憶素子ＭＴＪ１０が選択される。このとき、データ入力線ＩＬから入力されるデータ信号ＤＩはＨレベルである。よって、磁気記憶素子ＭＴＪ１０には「１」のデータが入力される。時刻ｔ４から所定時間経過後の時刻ｔ５にライトイネーブル信号／ＷＥがＨレベルとなるため、ＬＵＴ５２の論理設定動作は終了する。
【００４７】
以上の動作により、ＬＵＴ５２はＡＮＤ回路として機能する。すなわち、アドレス信号Ａ０及びアドレス信号Ａ１がともに「０」のとき、磁気記憶素子ＭＴＪ１３が選択される。よって、磁気記憶素子ＭＴＪ１３に記憶された「０」のデータがデータ出力線ＯＬから出力される。また、アドレス信号Ａ０が「０」で、アドレス信号Ａ１が「１」のとき、磁気記憶素子ＭＴＪ１２が選択され、「０」のデータがデータ出力線ＯＬから出力される。また、アドレス信号Ａ０が「１」で、アドレス信号Ａ１が「０」のとき、磁気記憶素子ＭＴＪ１１が選択され、「０」のデータがデータ出力線ＯＬから出力される。アドレス信号Ａ０が「１」で、アドレス信号Ａ１が「１」のとき、磁気記憶素子ＭＴＪ１０が選択され、「１」のデータがデータ出力線ＯＬから出力される。
【００４８】
このＦＰＧＡ４１は、ＬＵＴ５２内の磁気記憶素子ＭＴＪ１０〜ＭＴＪ１３に入力するデータを変更することで、論理ブロック５１の論理構成を変更することができる。図２のＬＵＴ５２の場合では、磁気記憶素子は４個ある。そのため、記憶可能なデータの組合せは１６（＝２４）通りとなる。よって、ＬＵＴ５２はその内部の磁気記憶素子に記憶するデータの組合せにより、ＮＡＮＤ回路、ＮＯＲ回路など、１６通りの論理回路に設定できる。同様に、たとえば８つの磁気記憶素子を備えているＬＵＴは、２５６（＝２８）通りの論理回路に設定できる。したがって、ＦＰＧＡ４１内の複数のＬＵＴのうち、同じ論理回路に設定されるＬＵＴには同じ論理構成情報が入力され、異なる論理回路に設定されるＬＵＴには異なる論理構成情報が入力される。
【００４９】
また、ＬＵＴ５２内の記憶素子として不揮発性の磁気記憶素子を使用するため、電源を切った場合でも各ＬＵＴ５２の論理構成情報は磁気記憶素子ＭＴＪ１０〜ＭＴＪ１３に保持される。その結果、従来のＦＰＧＡと比較して、コンフィギュレーション時間が短くなる。なぜなら、従来のＦＰＧＡは、電源投入のたびに論理構成情報を各ＬＵＴに送信して各ＬＵＴの機能を設定した後からでなければ動作できないが、このＦＰＧＡ４１はその必要がなく、電源投入後、直ちに動作できるからである。
【００５０】
次に、結線情報に基づいて各論理ブロック５１同士を接続する動作について説明する。図５は、ＦＰＧＡ４１内の設定回路７に結線情報を入力後、各論理ブロック５１を接続する動作を示すタイミングチャートである。
【００５１】
図５を参照して、時刻ｔ１０でレジスタイネーブル信号／ＲＥがＬレベルに活性化される。このとき、セット信号／ＳＥＴ及びデータライト信号／ＤＷはともに非活性状態（Ｈレベル）である。活性化されたレジスタイネーブル信号／ＲＥに応答して、レジスタ素子ＳＲ１〜ＳＲｎは書き込みが可能となる。
【００５２】
結線情報ＳＤはシフトデータ線ＳＤＬを介してシフトレジスタ７１にシリアルに入力される。結線情報はシフトクロック信号ＳＣがＨレベルへ立ち上がるときに各レジスタ素子に書き込まれ、シフトクロック信号ＳＣがＨレベルへ再び立ち上がるときに次段のレジスタ素子に出力される。
【００５３】
図５中の各レジスタ素子ＳＲ１〜ＳＲｎの波形図は、各レジスタ素子ＳＲ１〜ＳＲｎの入力ノードにおける電圧レベルを示す。時刻ｔ１１で、レジスタ素子ＳＲ１はシフトデータ線ＳＤＬから結線情報（ここではＬレベル）を受けてラッチする。また時刻ｔ１２で、レジスタ素子ＳＲ１はラッチした結線情報を次段のレジスタ素子ＳＲ２に出力する。各レジスタ素子ＳＲ１〜ＳＲｎは１ビットの結線情報をラッチする。結線情報としてｎビットのデータがシフトデータ線ＳＤＬを介してシフトレジスタ７１に入力された時刻ｔｍにおいて、レジスタ素子ＳＲ１〜ＳＲｎへの書き込みは終了する。このとき、全てのレジスタ素子ＳＲ１〜ＳＲｎは結線情報を記憶している。書き込み動作終了後にレジスタイネーブル信号／ＲＥはＨレベルに非活性化される。
【００５４】
続いて時刻ｔ２０で、ワンショットパルス信号であるデータライト信号／ＤＷがＬレベルに活性化される。このとき、レジスタ素子ＳＲ１〜ＳＲｎは記憶している結線情報をそれぞれ磁気記憶素子ＭＴＪ１〜ＭＴＪｎに同時に出力する。よって、磁気記憶素子ＭＴＪ１〜ＭＴＪｎはそれぞれ結線情報を記憶する。
【００５５】
以上の動作は、ＦＰＧＡ４１の製造時又はユーザが結線情報を変更するときのみ行われる。
【００５６】
電源投入時（時刻ｔ２１）においては、セット信号／ＳＥＴがＬレベルに活性化される。セット信号／ＳＥＴは電源が投入されるたびにワンショットパルスとして出力される。その結果、磁気記憶素子ＭＴＪ１〜ＭＴＪｎは記憶している結線情報をそれぞれラッチ素子ＬＴ１〜ＬＴｎに同時に出力する。
【００５７】
ラッチ素子ＬＴ１〜ＬＴｎの各々は、対応する磁気記憶素子ＭＴＪ１〜ＭＴＪｎから出力された結線情報をラッチし、その電圧レベルをＣＭＯＳレベルに増幅した後、対応するスイッチ回路６に結線情報を出力する。各スイッチ回路６は、対応するラッチ素子ＬＴ１〜ＬＴｎから結線情報を受け、オン又はオフになる。その結果、ユーザのプログラミング通りに論理ブロック５１同士が接続される。
【００５８】
以上の動作により、ＦＰＧＡ４１内への結線情報の入力は終了し、磁気記憶装置７２内に記憶された結線情報をもとに各論理ブロック５１同士が接続される。磁気記憶素子ＭＴＪ１〜ＭＴＪｎは不揮発性であるため、電源を切った場合でも、磁気記憶素子ＭＴＪ１〜ＭＴＪｎに記憶された結線情報は保持される。よって、このＦＰＧＡ４１では電源投入のたびに繰り返し結線情報を書き込む必要がない。したがって、このＦＰＧＡ４１は従来のものと比較して、コンフィギュレーション時間が短くなる。具体的には、従来のＦＰＧＡではコンフィギュレーション時間が数十ｍｓｅｃ必要であったが、このＦＰＧＡ４１ではコンフィギュレーション時間は数ｎｓｅｃ以下で十分である。
【００５９】
さらに、結線情報はシフトレジスタ７１にいったん入力された後に、各磁気記憶素子ＭＴＪ１〜ＭＴＪｎに伝達される。シフトレジスタ７１には、外部から結線情報を入力するための端子が少なくとも１つあればよい。よって、従来のＦＰＧＡのように、ＦＰＧＡ内部に結線情報を入力するための配線を多数配列する必要はない。その結果、ＦＰＧＡ４１の占有面積を縮小できる。
【００６０】
以上、本発明の実施の形態を説明したが、上述した実施の形態は本発明を実施するための例示に過ぎない。よって、本発明は上述した実施の形態に限定されることなく、その趣旨を逸脱しない範囲内で上述した実施の形態を適宜変形して実施することが可能である。
【図面の簡単な説明】
【図１】本発明の実施の形態によるＦＰＧＡの全体構成を示す機能ブロック図である。
【図２】図１中のＬＵＴの構成を示す機能ブロック図である。
【図３】図１中の設定回路の構成を示す機能ブロック図である。
【図４】図２に示したＬＵＴをＡＮＤ回路に設定する動作を示すタイミングチャートである。
【図５】図３に示した設定回路に結線情報を入力する動作を示すタイミングチャートである。
【図６】従来のＦＰＧＡの全体構成を示す機能ブロック図である。
【符号の説明】
６　スイッチ回路
７　設定回路
４１　ＦＰＧＡ
７１　シフトレジスタ
７２　磁気記憶装置
７３　ラッチ回路
５１　論理ブロック
５２　ＬＵＴ
ＭＴＪ１〜ＭＴＪｎ　磁気記憶素子
ＳＲ１〜ＳＲｎ　レジスタ素子
ＬＴ１〜ＬＴｎ　ラッチ素子
【図１】
2004088597.tif 000003
【図２】
2004088597.tif 000004
【図３】
2004088597.tif 000005
【図４】
2004088597.tif 000006
【図５】
2004088597.tif 000007
【図６】
2004088597.tif 000008