(57)【要約】【課題】ＦＰＧＡにおいて、コンフィギュレーションメモリの不良を回避可能とする。【解決手段】第１の実施形態の再構成可能な半導体集積回路は、複数のメモリと、複数のメモリが並列に接続され、複数のメモリのデータ出力に応じて論理が決定されるロジック回路とを備える。信号出力部は、複数のメモリ毎に、ロジック回路に対するデータ出力を行う選択信号と、データ出力を閉じる非選択信号とのうち一方を出力する複数の出力端を備え、複数の出力端を巡回して選択信号および非選択信号を出力する。スイッチ部は、複数の出力端のうち第１出力端と、第１出力端に対して少なくとも１の出力端を飛ばして巡回される第２出力端との間の経路の開閉を決定する。【選択図】図５
2015061238.tif 000002
【特許請求の範囲】
【請求項１】
複数のメモリと、
前記複数のメモリが並列に接続され、前記複数のメモリのデータ出力に応じて論理が決定されるロジック回路と、
前記複数のメモリ毎に、前記ロジック回路に対する前記データ出力を行う選択信号と、前記ロジック回路に対する前記データ出力を閉じる非選択信号とのうち一方を出力する複数の出力端を備え、前記複数の出力端を巡回して前記選択信号および前記非選択信号を出力する信号出力部と、
前記複数の出力端のうち第１出力端と、該第１出力端に対して少なくとも１の出力端を飛ばして巡回される第２出力端との間の経路の開閉を決定するスイッチ部と
を有する
ことを特徴とする再構成可能な半導体集積回路。
【請求項２】
前記スイッチ部は、
一端に第１電源が接続され、書き込みにより一端と他端とが導通状態となる第１書込部と、
一端に第２電源が接続され、他端が前記第１書込部の他端と接続され、書き込みにより一端と他端とが導通状態となる第２書込部と、
前記第１書込部と前記第２書込部との接続点の電圧に応じて前記第１出力端と前記第２出力端との接続の開閉を決定する第１スイッチ素子と
を備える
ことを特徴とする請求項１に記載の再構成可能な半導体集積回路。
【請求項３】
前記スイッチ部は、
さらに、前記接続点と第３電源との接続を開閉する第２スイッチ素子を備え、
前記第１電源および前記第２電源のうち一方に、書き込みを行う閾値以上の電圧を供給し、他方に該閾値未満の電圧を供給し、且つ、前記第２スイッチ素子を閉状態として、前記第１書込部および前記第２書込部のうち、前記閾値以上の電圧が供給された側を前記導通状態とし、前記閾値未満の電圧が供給された側を非導通状態とする
ことを特徴とする請求項２に記載の再構成可能な半導体集積回路。
【請求項４】
前記スイッチ部は、
さらに、前記接続点と前記第１スイッチ素子との間に挿入される第３スイッチ素子を備え、
前記第１書込部および前記第２書込部のうち一方に、書き込みを行う閾値以上の電圧を印加し、他方に、該閾値未満の電圧を印加し、且つ、前記第２スイッチ素子を閉状態とした場合に、前記第３スイッチ素子を開状態とする
ことを特徴とする請求項３に記載の再構成可能な半導体集積回路。
【請求項５】
前記スイッチ部は、
前記第１電源と前記第１書込部の一端との間に挿入される第４スイッチ素子と、
前記第２電源と前記第２書込部の一端との間に挿入される第５スイッチ素子と
をさらに備え、
前記第４スイッチ素子と接続される前記第１書込部と、前記第５スイッチ素子と接続される前記第２書込部とが書き込み対象として選択されていない場合に、前記第４スイッチ素子および前記第５スイッチ素子を開状態とする
ことを特徴とする請求項４に記載の再構成可能な半導体集積回路。
【請求項６】
前記複数のメモリを複数備え、複数の該複数のメモリそれぞれに含まれる、前記複数の出力端にそれぞれ対応する各メモリに対して、該複数の出力端毎に有効および無効を決定する制御部をさらに有し、
前記制御部は、
前記複数の出力端毎の有効および無効の決定状態を不揮発に記憶する
ことを特徴とする請求項１乃至請求項５の何れか１項に記載の再構成可能な半導体集積回路。
【請求項７】
前記スイッチ部は、
前記経路の開閉の状態を不揮発に記憶する
ことを特徴とする請求項１乃至請求項６の何れか１項に記載の再構成可能な半導体集積回路。
【請求項８】
請求項１乃至請求項７の何れか１項に記載の再構成可能な半導体集積回路と、
プログラムを記憶する記憶部と、
前記記憶部に記憶される前記プログラムに従い、前記再構成可能な半導体集積回路に対して予め定められた処理を実行させるプロセッサと
を有する
ことを特徴とする電子機器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、再構成可能な半導体集積回路および電子機器に関する。
【背景技術】
【０００２】
ＦＰＧＡ(Field-Programmable  Gate  Array)は、任意の論理機能を、再構成可能に実現することができる集積回路（ＩＣ：Integrated  Circuit）である。一般的には、ＦＰＧＡは、基本的な論理情報を出力するロジックブロック（ＬＢ）と、各ＬＢを任意に接続するスイッチブロック（ＳＢ）とを含む基本タイルが配置されて構成される。また、ＬＢおよびＳＢの各ブロックを構成する回路は、コンフィギュレーションメモリが含まれており、このコンフィギュレーションメモリの内容を書き換えることで、ＦＰＧＡ全体で所望の論理を実現することができる。
【０００３】
ここで、このコンフィギュレーションメモリの書き換えをＦＰＧＡの動作周波数よりも高速に行うダイナミックリコンフィギャラブルができれば、本来複数のＦＰＧＡを用いて計算される大きな論理を、１のＦＰＧＡにより計算することが可能となる。実際には、メモリ素子に対する書き込み速度やメモリ素子の消費電力の制約から、高速のコンフィギュレーションメモリの書き換えは困難である。そこで、従来から、ＦＰＧＡは、予め書き込みがなされた複数のコンフィギュレーションメモリを実装し、この複数のコンフィギュレーションメモリをＦＰＧＡの動作周波数よりも高速に切り替えることで、ダイナミックリコンフィギャラブルと同等の機能を実現していた。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】米国特許第７，１９３，４３７号明細書
【特許文献２】米国特許第７，３１７，３３１号明細書
【特許文献３】特開２００５−３３２９９７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
従来、ＦＰＧＡのコンフィギュレーションメモリは、ＳＲＡＭ(Static  Random  Access  Memory)が多く用いられていた。ＣＭＯＳ(Complementary  Metal  Oxide  Semiconductor)により構成されるＳＲＡＭは、ゲート長およびゲート幅の調整により、作製時の不良率を抑えることが可能である。これに対し、製造プロセスがＳＲＡＭとは異なる不揮発性メモリは、電源を常時供給すること無くデータを保持可能である一方で、ＳＲＡＭと比較してメモリ不良率が高い。
【０００６】
ＦＰＧＡ内のコンフィギュレーションメモリに不良が存在する場合、そのチップ全体を廃棄することが考えられる。しかしながら、チップ歩留まりを考慮すると、ＦＰＧＡ内にコンフィギュレーションメモリの不良がある程度存在する場合であっても、ＦＰＧＡの全体動作には影響しないようにすることが望ましい。
【０００７】
本発明が解決しようとする課題は、コンフィギュレーションメモリの不良を回避可能な再構成可能な半導体集積回路および電子機器を提供することにある。
【課題を解決するための手段】
【０００８】
第１の実施形態の再構成可能な半導体集積回路は、複数のメモリと、複数のメモリが並列に接続され、複数のメモリのデータ出力に応じて論理が決定されるロジック回路とを備える。信号出力部は、複数のメモリ毎に、ロジック回路に対するデータ出力を行う選択信号と、データ出力を閉じる非選択信号とのうち一方を出力する複数の出力端を備え、複数の出力端を巡回して選択信号および非選択信号を出力する。スイッチ部は、複数の出力端のうち第１出力端と、第１出力端に対して少なくとも１の出力端を飛ばして巡回される第２出力端との間の経路の開閉を決定する。
【図面の簡単な説明】
【０００９】
【図１】図１は、ＦＰＧＡの構成例を概略的に示すブロック図である。
【図２】図２は、ＳＢおよびＬＢを構成する回路の例を示す図である。
【図３】図３は、第１の実施形態に係る、マルチコンテキスト技術を適用した場合のＳＢおよびＬＢを構成する回路の例を示す図である。
【図４】図４は、第１の実施形態に適用可能なＦＰＧＡの構成例を概略的に示すブロック図である。
【図５】図５は、第１の実施形態に係るメモリ切替回路の一例の構成を示すブロック図である。
【図６】図６は、第１の実施形態に係る、ＳＢやＬＢと、メモリ切替回路との関係の例を示す図である。
【図７】図７は、第１の実施形態に係る、ＦＰＧＡ全体におけるブロックＬＢ／ＳＢおよびメモリ切替回路の配列の例を示す図である。
【図８】図８は、第１の実施形態による動作の例を示す図である。
【図９】図９は、第１の実施形態に係るメモリ切替回路のより具体的な構成の例を示すブロック図である。
【図１０】図１０は、第１の実施形態に係るＦＦ出力制御回路の一例の構成をより詳細に示す回路図である。
【図１１】図１１は、第１の実施形態に係るＰＳメモリの一例の構成を示す回路図である。
【図１２】図１２は、第１の実施形態に係るＰＳメモリの基本タイル内での接続の例を示す回路図である。
【図１３】図１３は、第１の実施形態に係る各ＰＳメモリに対する書き込み処理を説明するための回路図である。
【図１４】図１４は、第１の実施形態に係るＰＳメモリの別の例の構成を示す回路図である。
【図１５】図１５は、第１の実施形態の第１の変形例に係るＰＳメモリの一例の構成を示す回路図である。
【図１６】図１６は、第１の実施形態の第１の変形例によるＰＳメモリの動作時の各電圧の例を示す回路図である。
【図１７】図１７は、第１の実施形態の第１の変形例によるＰＳメモリの書き込み時の各電圧の例を示す回路図である。
【図１８】図１８は、第１の実施形態の第１の変形例によるＰＳメモリの書き込み時の各電圧の別の例を示す回路図である。
【図１９】図１９は、第１の実施形態の第２の変形例によるブロックＬＢ／ＳＢの接続の例を示すブロック図である。
【図２０】図２０は、第１の実施形態の第２の変形例に係る、制御回路を含むＦＰＧＡ全体の構成の例を示すブロック図である。
【図２１】図２１は、第２の実施形態に係る電子機器の一例の構成を示すブロック図である。
【発明を実施するための形態】
【００１０】
（第１の実施形態）
以下、第１の実施形態に係る、再構成可能な半導体集積回路および電子機器について説明する。図１は、再構成可能な半導体集積回路としてのＦＰＧＡ(Field-Programmable  Gate  Array)の構成例を概略的に示す。図１において、ＦＰＧＡ１０００は、１以上の基本タイル１０、１０、…と、各基本タイル１０、１０、…とＦＰＧＡ１０００外部とを接続するためのＩ／Ｏ(Input/Output)１１、１１、…とを含む。また、各基本タイル１０、１０、…は、スイッチブロック２０（以下、ＳＢ２０と記述する）と、ロジックブロック２１（以下、ＬＢ２１と記述する）とを含む。ＬＢ２１は、基本的な論理情報を実現する。ＳＢ２０は、各ＬＢ２１、２１、…を任意に接続する。
【００１１】
図２は、ＳＢ２０およびＬＢ２１を構成する回路の例を示す。図２（ａ）および図２（ｂ）は、ＳＢ２０の構成例を示す。図２（ａ）は、入力＃１、＃２、…に従い、セレクタ３０によりメモリ＃１、＃２、…の出力のうち何れかを選択して出力するＳＢ２０の構成例を示す。図２（ｂ）は、メモリ＃１、＃２、…の出力に従い、セレクタ３０により入力＃１、＃２、…のうち何れかを選択して出力するＳＢ２０の構成例を示す。図２（ｃ）は、ＬＢ２１の構成例を示す。メモリ＃１、＃２の出力をスイッチ素子３１1、３１2のゲートにそれぞれ入力してスイッチ素子３１1、３１2の開閉状態を切り替えて、メモリ＃１、＃２の内容に従った信号を出力する。
【００１２】
なお以下では、あるスイッチ素子が通電している場合を閉状態もしくはオン状態、遮断されている場合を開状態もしくはオフ状態とする。
【００１３】
メモリ＃１、＃２、…をコンフィグレーションメモリと呼び、このコンフィグレーションメモリ＃１、＃２、…の内容を書き換えることで、ＦＰＧＡ１０００全体で任意の論理を実現する。
【００１４】
ここで、コンフィグレーションメモリ＃１、＃２、…の内容を、ＦＰＧＡ１０００を含む処理系統の動作周波数よりも高速に書き換えるダイナミックリコンフィギャラブルが実現できれば、通常は複数のＦＰＧＡ１０００を用いて計算するような大きな論理を、１のＦＰＧＡで計算することが可能となる。しかしながら、コンフィグレーションメモリ＃１、＃２、…として書き換え速度が高速のＳＲＡＭ(Static  Random  Access  Memory)を用いた場合であっても、書き込み速度や消費電力の点から、実現は困難である。
【００１５】
そのため、図３（ａ）、図３（ｂ）および図３（ｃ）に例示するように、例えばコンフィグレーションメモリ＃１’は、複数のコンフィグレーションメモリを用いて構成され、コンフィグレーションメモリ＃１’内で複数のコンフィグレーションメモリを切り替えて使用する、マルチコンテキスト技術が既に知られている。このような構成において、各コンフィグレーションメモリ＃１’、＃２’、…内でのコンフィグレーションメモリの切り替えを動作周波数よりも高速に実行することで、ダイナミックリコンフィギャラブルと同等の機能を実現することができる。第１の実施形態に係るＦＰＧＡは、このマルチコンテキスト技術を採用している。
【００１６】
図４は、マルチコンテキスト技術を採用した、第１の実施形態に適用可能なＦＰＧＡの構成例を概略的に示す。図４において、第１の実施形態に係るＦＰＧＡ１は、上述したＦＰＧＡ１０００に対し、各基本タイル１０、１０、…に、コンフィグレーションメモリ＃１’内で複数のコンフィグレーションメモリを切り替えるメモリ切替回路４０、４０、…をさらに含む。
【００１７】
以下では、複数のコンフィグレーションメモリを用いて構成される１の例えばコンフィグレーションメモリ＃１’を、マルチコンフィグレーションメモリ＃１’と呼ぶ。
【００１８】
以下、第１の実施形態に係るＦＰＧＡ１の構成について、より詳細に説明する。図５は、第１の実施形態に係るメモリ切替回路４０の一例の構成を示す。図５において、１のマルチコンフィグレーションメモリを構成する複数のコンフィグレーションメモリ１００1、…、１００n-1、１００nが、ロジック回路１１０に対して並列に接続される。コンフィグレーションメモリ１００1、…、１００n-1、１００nは、冗長性を考慮して要求される数より多く設けることが好ましい。
【００１９】
各コンフィグレーションメモリ１００1、…、１００n-1、１００nは、後述するシフトレジスタ回路から選択信号が与えられると、格納されているデータをロジック回路１１０に出力する。また、各コンフィグレーションメモリ１００1、…、１００n-1、１００nは、シフトレジスタ回路から非選択信号が与えられると、出力を閉じる。ロジック回路１１０は、各コンフィグレーションメモリ１００1、…、１００n-1、１００nから出力されたデータによって動作する。
【００２０】
なお、ロジック回路１１０は、トランジスタで構成されていてもよいし、インバータ回路やバッファ回路であってもよい。また、ロジック回路１１０を構成するトランジスタは、ｎ形ＭＯＳ(metal-oxide-semiconductor)トランジスタでもｐ形ＭＯＳトランジスタでもよい。さらに、メモリ出力の接続先はゲートであってもソース／ドレインであってもよい。
【００２１】
図５において、複数のフリップフロップ（ＦＦ）回路１０２1、…、１０２n-1、１０２nが直列に接続され、シフトレジスタ回路が構成される。各ＦＦ回路１０２1、…、１０２n-1、１０２nの出力が、上述した選択信号または非選択信号として各コンフィグレーションメモリ１００1、…、１００n-1、１００nに供給される。
【００２２】
シフトレジスタ回路は、図示されないリセット信号によりリセットされ、各ＦＦ回路１０２1、…、１０２n-1、１０２nの出力のうち１の出力が選択信号とされ、他の出力が非選択信号とされる。そして、その後クロックに従い出力が遷移し、選択信号および非選択信号が各ＦＦ回路１０２1、…、１０２n-1、１０２nから巡回的に出力される。
【００２３】
図５において、各ＦＦ回路１０２1、…、１０２n-1、１０２nの出力間には、プログラマブルスイッチ（ＰＳ）１０１1、…、１０１n-1、１０１nがそれぞれ接続される。プログラマブルスイッチ（ＰＳ）１０１1、…、１０１n-1、１０１nは、閉状態および開状態のうち一方の状態を、不揮発に記憶する。
【００２４】
すなわち、各プログラマブルスイッチ１０１1、…、１０１n-1、１０１nは、シフトレジスタ回路を構成するあるＦＦ回路の出力端と、当該出力端に対してＦＦ回路を１つ飛ばして巡回されるＦＦ回路の入力端、換言すれば、当該出力端に対して２つ先のＦＦ回路入力端との間に設けられる。各プログラマブルスイッチ１０１1、…、１０１n-1、１０１nは、閉状態となることで、各ＦＦ回路１０２1、…、１０２n-1、１０２nのうち対応するＦＦ回路がスキップされる。
【００２５】
なお、ここでは、プログラマブルスイッチは、シフトレジスタ回路を構成するあるＦＦ回路の出力端と、当該出力端に対してＦＦ回路を少なくとも１つ飛ばして巡回されるＦＦ回路の出力端との間に設けられるように説明したが、これはこの例に限定されない。例えば、プログラマブルスイッチは、シフトレジスタ回路を構成するあるＦＦ回路の出力端と、当該出力端に対してＦＦ回路を２以上飛ばして巡回されるＦＦ回路の出力端との間に設けられるようにしてもよい。
【００２６】
図５では、メモリ切替回路に対して１のマルチコンフィグレーションメモリが接続されるように示したが、実際には、ＳＢ２０やＬＢ２１において、マルチコンフィグレーションメモリおよびロジック回路１１０の組が複数、含まれる。図６は、第１の実施形態に係る、ＳＢ２０やＬＢ２１と、メモリ切替回路との関係の例を示す。なお、図６では、ＳＢ２０およびＬＢ２１を、ブロックＬＢ／ＳＢ２２として纏めて示してある。また図６において、上述の図５と共通する部分には同一の符号を付して、詳細な説明を省略する。
【００２７】
図６において、メモリ切替回路４０は、図５の例と同様に、ＦＦ回路１０２1、…、１０２n-1、１０２nからなるシフトレジスタ回路と、各ＦＦ回路１０２1、…、１０２n-1、１０２nに対応するプログラマブルスイッチ１０１1、…、１０１n-1、１０１nを含む。
【００２８】
ブロックＬＢ／ＳＢ２２は、複数のロジック回路１１０1、１１０2、１１０3、…と、各ロジック回路１１０1、１１０2、１１０3に対応する複数のマルチコンフィグレーションメモリとを含む。図６の例では、ロジック回路１１０1に対してコンフィグレーションメモリ１００11、…、１００1(n-1)、１００1nが並列に接続される。また、ロジック回路１１０2に対してコンフィグレーションメモリ１００21、…、１００2(n-1)、１００2nが、ロジック回路１１０3に対してコンフィグレーションメモリ１００31、…、１００3(n-1)、１００3nがそれぞれ並列に接続される。
【００２９】
一方、メモリ切替回路４０の各ＦＦ回路１０２1、…、１０２n-1、１０２nの出力は、複数のマルチコンフィグレーションメモリを跨いで、各コンフィグレーションメモリに供給される。図６の例では、ＦＦ回路１０２1の出力が、コンフィグレーションメモリ１００11、１００21、１００31、…に供給される。同様に、例えばＦＦ回路１０２n-1の出力が、コンフィグレーションメモリ１００1(n-1)、１００2(n-1)、１００3(n-1)、…に供給される。
【００３０】
図７は、第１の実施形態に係る、ＦＰＧＡ１全体におけるブロックＬＢ／ＳＢ２２、２２、…およびメモリ切替回路４０、４０、…の配列の例を示す。なお、図７において、上述した図５および図６と共通する部分には同一の符号を付して、詳細な説明を省略する。図７の例では、１のブロックＬＢ／ＳＢ２２と、１のメモリ切替回路４０とを含んで基本タイル１０が構成されている。ここで、ブロックＬＢ／ＳＢ２２は、それぞれ複数のＳＢ２０およびＬＢ２１を含むことができる。この基本タイル１０が複数配置されて、ＦＰＧＡ１が構成される。
【００３１】
次に、第１の実施形態に係る動作について説明する。図８は、上述の図５の構成において、マルチコンフィグレーションメモリに含まれるあるコンフィグレーションメモリが不良である場合の、第１の実施形態による動作の例を示す。図８において、コンフィグレーションメモリ１００n-1が不良であるものとする。この場合、不良であるコンフィグレーションメモリ１００n-1に対して選択信号および非選択信号を出力するＦＦ回路１０２n-1に対応するプログラマブルスイッチ１０１n-1を閉状態とし、ＦＦ回路１０２n-1の出力をスキップする。これにより、コンフィグレーションメモリ１００n-1に対して選択信号および非選択信号が出力されない。
【００３２】
このため、不良であるコンフィグレーションメモリ１００n-1のデータがロジック回路１１０に供給されることがなく、ロジック回路１１０が誤動作することが防がれる。
【００３３】
これを上述した図６および図７の例に適用した場合について考える。図６の例において、コンフィグレーションメモリ１００21が不良である場合には、プログラマブルスイッチ１０１1が閉状態とされる。したがって、ＦＦ回路１０２1の出力が共通に接続される各コンフィグレーションメモリ１００11、１００21、１００31、…に対する選択信号および非選択信号が出力されない。したがって、各コンフィグレーションメモリ１００11、１００31、…は、正常であっても選択信号および非選択信号が出力されないことになる。
【００３４】
また、図７に示されるように、基本タイル１０、１０、…は、それぞれメモリ切替回路４０を有している。そのため、１の基本タイル１０内のコンフィグレーションメモリの不良が、他の基本タイル１０、１０、…に影響を与えることが防がれる。
【００３５】
なお、各プログラマブルスイッチ１０１1、…、１０１n-1、１０１nは、例えばＦＰＧＡ１の工場出荷時などに予め閉状態および開状態が設定される。例えば、ＦＰＧＡ１の工場出荷時において、ＦＰＧＡ１に含まれる各コンフィグレーションメモリの不良の有無がチェックされる。そして、不良があるとされたコンフィグレーションメモリに選択信号および非選択信号を出力するＦＦ回路に対応するプログラマブルスイッチの状態を閉状態に設定しておく。
【００３６】
次に、上述したメモリ切替回路４０のより具体的な構成について説明する。上述した図５の構成では、各ＦＦ回路１０１1、…、１０１n-1、１０１nの出力が直接的に各コンフィグレーションメモリ１００1、…、１００n-1、１００nに供給されるようになっている。この構成において、例えばプログラマブルスイッチ１０１1が閉状態である場合のＦＦ回路１０２1の出力が不定となり、ＦＦ回路１０２1からのリークなどにより、コンフィグレーションメモリ１００1に対して所望の信号が供給されない可能性がある。したがって、メモリ切替回路４０の実際の構成には、リーク防止などの対策のための回路が設けられる。
【００３７】
図９は、第１の実施形態に係るメモリ切替回路４０のより具体的な構成の例を示す。図９において、コンフィグレーションメモリ１００m、１００m+1、…がロジック回路１１０に並列に接続される。以下では、例として、選択信号は、電源電圧（ＶＤＤ）、非選択信号は、接地電圧であるものとする。また、プログラマブルスイッチ１０１m、１０１m+1、…が閉状態の場合に、対応するコンフィグレーションメモリ１００m、１００m+1、…に対して接地電圧が供給されるものとする。
【００３８】
なお、コンフィギュレーションメモリ１００mは、コンフィギュレーションメモリ１００1〜１００n中の任意の１つであるものとし、この添字表記は、他の同様の添字表記全てに適用されるものとする。
【００３９】
図９において、プログラマブルスイッチ１０１m、１０１m+1、…は、それぞれプログラマブルスイッチ（ＰＳ）メモリ１０３m、１０３m+1、…と、第１スイッチ素子としてのトランジスタ１０４m、１０４m+1、…とを含む。ＰＳメモリ１０３m、１０３m+1、…は、ハイ(High)状態およびロー(Low)状態の何れかの状態が不揮発に記憶され、状態に応じた信号が出力される。トランジスタ１０４m、１０４m+1、…は、ＰＳメモリ１０３m、１０３m+1、…の出力に従いオンオフ状態が制御される。すなわち、例えばＰＳメモリ１０３mがハイ状態でトランジスタ１０４mがオン状態とされてプログラマブルスイッチ１０１mが閉となり、ＦＦ回路１０２mのコンフィグレーションメモリ１００mに対する出力がスキップされる。
【００４０】
ＰＳメモリ１０３m、１０３m+1、…の出力は、さらに、ＦＦ出力制御回路１０５m、１０５m+1、…に供給される。ＦＦ出力制御回路１０５m、１０５m+1、…は、それぞれ、ＰＳメモリ１０３m、１０３m+1、…がハイ状態の場合に、コンフィグレーションメモリ１００m、１００m+1、…に一定電圧を供給すると共に、直前のＦＦ回路１０２m、１０２m+1、…からのリークを抑止する。
【００４１】
また、ＦＦ出力制御回路１０５ｍ、１０５ｍ＋１、…は、ＰＳメモリ１０３mがハイ状態でトランジスタ１０４mがオン状態となり、前段のＦＦ回路の出力が次段のＦＦ回路に入力されるようなった場合に、前段のＦＦ回路の出力がリークすることを抑止する。
【００４２】
図１０は、第１の実施形態に係るＦＦ出力制御回路１０５mの一例の構成をより詳細に示す。図１０において、上述の図９と共通する部分には同一の符号を付して、詳細な説明を省略する。ＦＦ出力制御回路１０５ｍは、トランジスタ１０５１〜１０５７とインバータ回路１０５８および１０５９とを含む。なお、インバータ回路１０５８および１０５９は省略可能である。
【００４３】
トランジスタ１０５２および１０５３、ならびに、トランジスタ１０５４および１０５５は、それぞれインバータ回路１０６０および１０６１を構成する。トランジスタ１０５１は、ＰＳメモリ１０３mの出力がゲートに供給され、ＰＳメモリ１０３mの出力がロー状態で、インバータ回路１０６０に対して電源ＶＤＤを供給する。同様に、トランジスタ１０５４は、ＰＳメモリ１０３mの出力がゲートに供給され、ＰＳメモリ１０３mの出力がロー状態で、インバータ回路１０６１に対して電源ＶＤＤを供給する。
【００４４】
ＦＦ出力制御回路１０５mの直前のＦＦ回路１０２mの出力は、インバータ回路１０６０および１０６１を介して次のＦＦ回路１０２m＋１に入力される。インバータ回路１０６０の出力とインバータ回路１０６１の入力との接続点が、インバータ回路１０５８および１０５９を介してコンフィグレーションメモリ１００mに接続される。また、当該接続点が、トランジスタ１０５７を介して接地電圧（ＧＮＤ）に接続される。トランジスタ１０５７は、ゲートにＰＳメモリ１０３mの出力が供給される。さらに、ＰＳメモリ１０３mの出力がトランジスタ１０５１および１０５４、ならびに、トランジスタ１０５７のゲートに供給される。
【００４５】
このような構成において、ＰＳメモリ１０３mがハイ状態になると、トランジスタ１０５７がオン状態となり、トランジスタ１０５７とインバータ回路１０６０および１０６１との接続点が接地電圧となる。これにより、当該接続点と、インバータ回路１０５８および１０５９を介して接続されるコンフィグレーションメモリ１００mに対し、接地電圧が入力される。コンフィグレーションメモリ１００mにおいて、非選択信号が接地電圧であれば、コンフィグレーションメモリ１００mの出力が閉じられる。
【００４６】
また、トランジスタ１０５１が、ＰＳメモリ１０３mのハイ状態の出力によりオフ状態とされてインバータ回路１０６０への電源供給が遮断される。これにより、ＦＦ回路１０２mからのリークが抑止される。
【００４７】
同様に、トランジスタ１０５４がＰＳメモリ１０３mのハイ状態の出力によりオフ状態とされてインバータ回路１０６１への電源供給が遮断される。それと共に、ＰＳメモリ１０３mがハイ状態でトランジスタ１０４mがオン状態となり、ＦＦ回路１０２mの前段のＦＦ回路（図示しない）の出力がＦＦ回路１０２mをスキップして、ＦＦ回路１０２mの次段のＦＦ回路１０２m+1に供給される。インバータ回路１０６１への電源供給は遮断されており、さらに、オン状態となったトランジスタ１０５７によってトランジスタ１０５７とインバータ回路１０６０および１０６１との接続点が接地電圧となっている。したがって、インバータ回路１０６１内のトランジスタ１０５６もオフ状態となっているため、ＦＦ回路１０２mの前段のＦＦ回路の出力は、そのまま、ＦＦ回路１０２mの次段のＦＦ回路に供給される。
【００４８】
次に、第１の実施形態に係るＰＳメモリ１０３m、１０３m+1、…の一例の構成について、より詳細に説明する。以下では、特に記載のない限り、ＰＳメモリ１０３m、１０３m+1、…をＰＳメモリ１０３mで代表させて説明を行う。
【００４９】
図１１は、第１の実施形態に係るＰＳメモリ１０３mの一例の構成を示す。上述したように、ＰＳメモリ１０３mは、ＦＰＧＡ１の工場出荷時などにおいて、各コンフィギュレーションメモリ１００1〜１００nの良／不良状態に応じてロー／ハイ状態が記憶される。そのため、ＰＳメモリ１０３mは、このロー／ハイ状態を不揮発に記憶するための構成を含む。
【００５０】
図１１において、ＰＳメモリ１０３mは、第２スイッチ素子としてのトランジスタ１０３１mと、第１および第２書込部としてのヒューズ１０３２m1および１０３２m2とを含む。ヒューズ１０３２m1および１０３２m2は、それぞれ一端に電源Ｖ1およびＶ2が供給される。ヒューズ１０３２m1および１０３２m2の他端は、互いに接続される。
【００５１】
トランジスタ１０３１mは、書き込み選択信号を供給するための書き込み選択信号線がゲートに接続される。また、電源Ｖ3がトランジスタ１０３１mを介してヒューズ１０３２m1および１０３２m2の接続点に接続される。当該接続点は、さらに、トランジスタ１０４mのゲートが接続される。なお、図示は省略するが、当該接続点に対して、上述したＦＦ出力制御回路１０５m内のトランジスタ１０５７のゲートが接続される。
【００５２】
ヒューズ１０３２m1および１０３２m2は、所定以上の電圧（破壊電圧と呼ぶ）が印加されることで破壊導通される。ヒューズ１０３２m1および１０３２m2は、非開示のリーク電流が無視できるほど小さく、破壊導通後の非破壊状態に対する抵抗差は、十分に大きいものとする。ヒューズ１０３２m1、１０３２m2が破壊導通された状態を、書き込み状態と呼び、ヒューズ１０３２m1、１０３２m2に対して破壊電圧を供給して破壊導通とすることを書き込みを行うと呼ぶ。ヒューズ１０３２m1および１０３２m2において、この書き込み状態は、不揮発に保持される。
【００５３】
ヒューズ１０３２m1および１０３２m2のうち一方だけを書き込み状態とすることで、書き込み状態にされた側のヒューズの一端に供給された電圧が、例えばトランジスタ１０４mのゲートに供給されることになる。例えば、ヒューズ１０３２m1を書き込み状態とした場合、トランジスタ１０４mのゲートには、電源Ｖ1が供給されることになる。同様に、ヒューズ１０３２m2を書き込み状態とした場合、トランジスタ１０４mのゲートには、電源Ｖ2が供給される。したがって、例えばトランジスタ１０４mのオン電圧およびオフ電圧を、それぞれ電源Ｖ1およびＶ2の電圧とすることで、ヒューズ１０３２m1および１０３２m2それぞれの書き込み状態によって、トランジスタ１０４mの開閉状態を設定でき、ＦＦ回路１０２mの出力をスキップするか否かを制御できる。
【００５４】
図１２は、第１の実施形態に係るＰＳメモリ１０３m、１０３m+1、…の基本タイル１０内での接続の例を示す。このように、各ＰＳメモリ１０３m、１０３m+1、…は、基本タイル１０内においてマトリクス状に配置され、マトリクスの各列および行単位で各電源等が接続される。図１２の例では、各ＰＳメモリ１０３m、１０３m+1、…は、マトリクス内において、列方向に電源Ｖ1および電源Ｖ2を共通とし、行方向に電源Ｖ3および書き込み選択信号線を共通として接続されている。
【００５５】
このような接続において、電源Ｖ3として接地電圧ＶＳＳが供給され、各行の書き込み選択信号線には、トランジスタ１０３１mをオフさせる電圧Ｖｏｆｆが供給される。また、電源Ｖ1として電源電圧ＶＤＤが、電源Ｖ2として接地電圧ＶＳＳが、それぞれ供給される。これにより、例えばＰＳメモリ１０３mにおいて、ヒューズ１０３２m1および１０３２m2の状態に応じて、トランジスタ１０４mに、電源電圧ＶＤＤおよび接地電圧ＶＳＳのうち何れかが供給され、トランジスタ１０４mのオンオフ状態が制御される。
【００５６】
図１２のように接続された各ＰＳメモリ１０３m、１０３m+1、…に対する書き込み処理について、図１３を用いて説明する。ここでは、ＰＳメモリ１０３x内のヒューズ１０３２x1に書き込みを行う場合について説明する。ＰＳメモリ１０３xが配置される列において、書き込み対象のヒューズ１０３２x1に接続される電源Ｖ1に対して書き込み電圧Ｖｗｒｉｔｅを供給し、書き込み対象ではないヒューズ１０３２x2に接続される電源Ｖ2に対して非破壊電圧Ｖｉｎｈｉｂｉｔを供給する。
【００５７】
ここで、書き込み電圧Ｖｗｒｉｔｅは、電圧値がヒューズ１０３２x1を破壊導通する破壊閾値電圧以上の電圧である。また、非破壊電圧Ｖｉｎｈｉｂｉｔは、電圧値が当該破壊閾値電圧を超えない電圧である。なお、書き込み電圧Ｖｗｒｉｔｅと、破壊閾値電圧と、電源電圧ＶＤＤとの関係は、例えば、書き込み電圧Ｖｗｒｉｔｅ＞破壊閾値電圧＞電源電圧ＶＤＤといった関係とすることが考えられる。
【００５８】
このように書き込み電圧Ｖｗｒｉｔｅおよび非破壊電圧Ｖｉｎｈｉｂｉｔを、書き込み対象のヒューズ１０３２x1が配置される列にそれぞれ供給する。そして、当該ヒューズ１０３２x1が配置される行の書き込み選択信号線に、トランジスタ１０３１xをオンとさせる電圧Ｖｏｎを供給する。これにより、ＰＳメモリ１０３xにおける書き込み対象のヒューズ１０３２x1に対して書き込み電圧Ｖｗｒｉｔｅの電位差が与えられて当該ヒューズ１０３２x1が書き込み状態とされる。一方、ＰＳメモリ１０３xにおける、書き込み対象ではないヒューズ１０３２x2には、非破壊電圧Ｖｉｎｈｉｂｉｔが与えられ、書き込みがなされない。
【００５９】
ここで、図１２に示すマトリクスの、書き込み選択信号線に電圧Ｖｏｎが供給されていない行のヒューズ間（例えば図１３のヒューズ１０３２m1とヒューズ１０３２m2との接続点）は、フローティングとなっており、電圧Ｖｗｒｉｔｅと電圧Ｖｉｎｈｉｂｉｔとの中間の電位になっていると考えられる。すなわち、この場合、ヒューズ１０３２m1および１０３２m2に対して破壊閾値電圧以上の電位差が与えられないため、これらヒューズ１０３２m1および１０３２m2は、破壊導通状態にはならない。
【００６０】
しかしながら、この中間電位において、当該接続点に接続される例えばトランジスタ１０４mが破壊されてしまう可能性がある。この場合、図１４にＰＳメモリ１０３m’として例示されるように、当該接続点とトランジスタ１０４mのゲートとの間に、第３のスイッチ素子としての遮断用のトランジスタ１０３３mを挿入することが考えられる。トランジスタ１０３３mのゲートには、当該ＰＳメモリ１０３m’のマトリクス上の配列における行方向に共通して、第１遮断信号線が接続される。書き込み選択信号線に電圧Ｖｏｎを供給するタイミングで、第１遮断信号線からトランジスタ１０３３mのゲートに対して、トランジスタ１０３３mを閉状態とする電圧Ｖｏｆｆを供給する。これにより、書き込み動作時にトランジスタ１０４mが破壊されてしまう事態を回避できる。
【００６１】
ヒューズ１０３２m1および１０３２m2は、抵抗変化型の不揮発性メモリを用いることができる。ヒューズ１０３２m1および１０３２m2に適用可能な抵抗変化型の不揮発性メモリとしては、例えば、２つの磁性層の間にトンネルバリア層を挟んだ構造を有するＭＴＪ(Magnetic  Tunnel  Junction)素子、２つの電極の間に遷移金属酸化物層を挟み遷移金属酸化物の酸素欠損の移動を利用する構造の酸化還元型抵抗変化素子、または２つの電極の間に例えば半導体層を挟み半導体層内部の金属等のイオンの移動を利用するイオン伝導型抵抗変化素子、相変化材料で構成され電流によるジュール熱によって書き換えを行う相変化素子などが考えられる。
【００６２】
また、このような抵抗変化型の不揮発性メモリを用いたＦＰＧＡ１において、ＦＰＧＡ１内に形成されるこれらの抵抗変化型の不揮発性メモリを破壊導通させることで、ヒューズ１０３２m1および１０３２m2として用いることが考えられる。ＦＰＧＡ１全体で用いるメモリを統一することで余計なプロセスを導入する必要が無く、また、ＦＰＧＡ１の面積増加を抑えることができる。
【００６３】
（第１の実施形態の第１の変形例）
上述では、ヒューズ１０３２m1および１０３２m2の非破壊時のリーク電流が無視できるほど小さいものとして説明した。ここで、このヒューズの非破壊時のリークが所定以上である場合について考える。この場合、各ＰＳメモリ１０３m、１０３m+1、…を、図１２に例示するようにマトリクス状のアレイとして構成すると、書き込み対象のヒューズ以外にも貫通リーク電流が発生してしまい、各所で電圧降下が起きることで、書き込み対象のヒューズに書き込み電圧が印加されない可能性がある。
【００６４】
また、ＦＰＧＡ１において用いる抵抗変化型の不揮発性メモリは、一般的なヒューズに対してリーク電流が大きい可能性がある。このようなリーク電流が大きな抵抗変化型の不揮発性メモリをヒューズ１０３２m1および１０３２m2として用いる場合、このリーク電流への対策が必要となる。
【００６５】
第１の実施形態の第１の変形例では、ヒューズ１０３２m1および１０３２m2と、電源Ｖ1およびＶ2との間に遮断用のスイッチ素子を挿入する。このスイッチ素子により、これらヒューズ１０３２m1および１０３２m2が書き込み対象ではない場合に、ヒューズ１０３２m1および１０３２m2と電源Ｖ1およびＶ2との接続を遮断する。
【００６６】
図１５は、第１の実施形態の第１の変形例に係るＰＳメモリ１０３m”の一例の構成を示す。なお、図１５において、上述の図９と共通する部分には同一の符号を付して、詳細な説明を省略する。
【００６７】
図１５において、ヒューズ１０３２m1の一端と電源Ｖ1との間に、第４または第５スイッチ素子としての遮断用のトランジスタ１０３４m1が挿入される。同様に、ヒューズ１０３２m2の一端と電源Ｖ２との間に、第４または第５スイッチ素子としての遮断用のトランジスタ１０３４m2が挿入される。トランジスタ１０３４m1および１０３４m2のゲートには、当該ＰＳメモリ１０３m”のマトリクス上の配列における行方向に共通して、第２遮断信号線が接続される。
【００６８】
図１６は、第１の実施形態の第１の変形例による、ＰＳメモリ１０３m”の動作時の各電圧の例を示す。ＰＳメモリ１０３m”の動作時は、図１６に例示されるように、各行の書き込み選択信号線より電圧Ｖｏｆｆが供給されると共に、各行の第２遮断信号線により、接続されるトランジスタをオン状態とする電圧Ｖｏｎが供給される。ＰＳメモリ１０３m”の例では、第２遮断信号線から供給される電圧Ｖｏｎにより、トランジスタ１０３４m1および１０３４m2がオン状態とされ、ヒューズ１０３２m1と電源Ｖ1（電圧ＶＤＤ）との間、ヒューズ１０３２m2と電源Ｖ2（電圧ＶＳＳ）との間がそれぞれ導通される。
【００６９】
図１７は、第１の実施形態の第１の変形例による、ＰＳメモリ１０３m”の書き込み時の各電圧の例を示す。図１７は、ＰＳメモリ１０３yにおいて、ヒューズ１０３２y1および１０３２y2のうちヒューズ１０３２y1に書き込みを行う例である。
【００７０】
ヒューズ１０３２y1の書き込み時には、上述したように、ＰＳメモリ１０３yにおいて書き込み対象のヒューズ１０３２y1に接続される電源Ｖ1に対して書き込み電圧Ｖｗｒｉｔｅを供給する。また、この図１７の例では、ＰＳメモリ１０３yにおいて書き込み対象ではないヒューズ１０３２y2に対して、上述の電圧Ｖｉｎｈｉｂｉｔではなく、電圧ＶＳＳが供給されている。また、当該ヒューズ１０３２y1が配置される行の書き込み選択信号線に、トランジスタ１０３１yをオン状態とさせる電圧Ｖｏｎを供給する。書き込み対象のヒューズを含まない行の書き込み選択信号線には、電圧Ｖｏｆｆが供給される。
【００７１】
第１の実施形態の第１の変形例では、さらに、書き込み対象のヒューズ１０３２y1が接続される行の第２遮断信号線に、トランジスタ１０３４y1および１０３４y2をオン状態とする電圧Ｖｏｎが供給される。また、書き込み対象のヒューズが接続されない行の第２遮断信号線には、接続されるトランジスタをオフ状態とする電圧Ｖｏｆｆが供給される。これにより、書き込み電圧Ｖｗｒｉｔｅのリークが防がれ、書き込み対象のヒューズ１０３２y1に対して所定の書き込み電圧が供給される。
【００７２】
なお、図１７の構成において、書き込みを行わないヒューズ間（例えばヒューズ１０３２m1およびヒューズ１０３２m2の接続点）がフローティングになってしまう。そのため、図１８に例示されるように、全ての書き込み選択信号線に電圧Ｖｏｎを供給して書き込みを行わないヒューズ間の接続点を電圧ＶＳＳとしてもよい。
【００７３】
（第１の実施形態の第２の変形例）
次に、第１の実施形態の第２の変形例について説明する。上述したような、抵抗変化型の不揮発性メモリをヒューズとして用いてプログラマブルスイッチを構成する場合、ヒューズとして用いる当該メモリにも、例えばメモリの作製時から導通または断線しているようなメモリ不良が発生する可能性がある。この不良が、例えば図１１の例で、電源電圧ＶＤＤが供給される電源Ｖ1側のヒューズ１０３２m1に発生した、作製時から導通状態である導通系の不良であれば、ヒューズ１０３２m1は、書き込み動作を行うこと無く当該ヒューズが導通状態となっているため、問題にはならない可能性が高い。
【００７４】
一方、メモリ不良が、接地電圧である電圧ＶＳＳが供給される電源Ｖ2側のヒューズ１０３２m2に発生した導通系の不良である場合、ＰＳメモリ１０３mは、所望の出力が得られない可能性が高い。また、ヒューズ１０３２m1および１０３２m2が、書き込み動作を行なっても導通状態にならない断線系の不良の場合も、同様にして、ＰＳメモリ１０３mは、所望の出力を得られない可能性が高い。
【００７５】
そこで、第１の実施形態の第２の変形例では、マルチコンフィギュレーションメモリに含まれる全てのコンフィギュレーションメモリを無効とすることで、プログラマブルスイッチに含まれる各ヒューズの不良に対応する。
【００７６】
図１９は、第１の実施形態の第２の変形例によるブロックＬＢ／ＳＢの接続の例を示す。図１９において、ブロック６０1は、メモリ切替回路４０に含まれるシフトレジスタ回路を構成する各ＦＦ回路のうち１のＦＦ回路の出力が接続される複数のコンフィグレーションメモリ２００11、２００12、…を含む。ブロック６０2も同様に、メモリ切替回路４０に含まれるシフトレジスタ回路を構成する各ＦＦ回路のうち、ブロック６０1に出力が接続されるＦＦ回路の次段のＦＦ回路の出力が接続される複数のコンフィグレーションメモリ２００21、２００22、…を含む。
【００７７】
制御回路５０は、各ブロックＬＢ／ＳＢ２２1’、２２2’、…を跨いで一連に接続される各コンフィギュレーションメモリ２００11、２００21、…、および、コンフィギュレーションメモリ２００12、２００22、…それぞれの有効／無効を制御する。
【００７８】
例えばコンフィギュレーションメモリ２００11は、図１５で説明したＰＳメモリ１０３m”と対応する構成を有している。図１９に示される各コンフィギュレーションメモリ２００11、２００12、…、２００21、２００22、…について、コンフィギュレーションメモリ２００11を例にとって説明する。
【００７９】
図１９において、制御回路５０は、２のヒューズと、２のヒューズに選択が制御される３のセレクタとを含む回路を複数含む。図１９の例では、制御回路５０において、ヒューズ３００11および３００12と、セレクタ３０１1、３０２1および３０３1とを含む第１の回路と、ヒューズ３００21および３００22と、セレクタ３０１2、３０２2および３０３2とを含む第２の回路とが示されている。
【００８０】
制御回路５０について、第１の回路を例にとって説明する。ヒューズ３００11および３００12は、ＦＰＧＡ１においてある一定数毎に別途作製した信頼性の高いヒューズである。セレクタ３０１1は、一方の選択入力端に電源電圧ＶＤＤが接続され、他方の選択入力端に接地電圧ＶＳＳが接続される。セレクタ３０２1は、一方の選択入力端にトランジスタを閉状態とする電圧Ｖｏｎが接続され、他方の入力端にトランジスタを開状態とする電圧Ｖｏｆｆが接続される。また、セレクタ３０３1は、一方の選択入力端に電圧Ｖｏｆｆが接続され、他方の入力端に電圧Ｖｏｎが接続される。
【００８１】
各セレクタ３０１1、３０２1および３０３1は、何れか一方が書き込み状態、他方が非破壊状態とされたヒューズ３００11および３００12により、一方の選択入力端および他方の選択入力端が共通に選択される。選択結果に従った各セレクタ３０１1、３０２1および３０３1の出力に応じて、各セレクタ３０１1、３０２1および３０３1に各ブロックＬＢ／ＳＢ２２1’、２２2’、…を跨いで一連に接続される全てのコンフィギュレーションメモリ２００11、２００21、…の有効／無効を決定する。
【００８２】
コンフィギュレーションメモリ２００11は、図１５で説明したＰＳメモリ１０３m”と対応する構成を有している。すなわち、ヒューズ２０１２11の一端がトランジスタ２０１１11を介して電源電圧ＶＤＤに接続される。同様に、ヒューズ２０１２12の一端がトランジスタ２０１１12を介して接地電圧ＶＳＳに接続される。トランジスタ２０１１11および２０１１12のゲートは、それぞれセレクタ３０２1の出力に接続される。ヒューズ２０１２11および２０１２12の接続点が、コンフィグレーションメモリ２００11の出力となる。また、当該接続点が、トランジスタ２００１1を介してセレクタ３０１1の出力に接続される。トランジスタ２００１1のゲートは、セレクタ３０２1の出力に接続される。
【００８３】
コンフィグレーションメモリ２００11の出力は、ロジック回路を構成するトランジスタ２０１０1のゲートに接続される。
【００８４】
このような構成において、例えば一連に接続されるコンフィギュレーションメモリ２００11、２００21、…を有効とする場合、セレクタ３０１1で電圧ＶＳＳ、セレクタ３０２1で電圧Ｖｏｆｆ、セレクタ３０３1で電圧Ｖｏｎをそれぞれ選択する。これにより、例えばコンフィグレーションメモリ２００11において、トランジスタ２０１１11および２０１１12がそれぞれ閉状態とされ、ヒューズ２０１２11の一端およびヒューズ２０１２12の一端がそれぞれ電源電圧ＶＤＤおよび接地電圧ＶＳＳに接続される。また、トランジスタ２００１1が開状態とされ、ヒューズ２０１２11およびヒューズ２０１２12の接続点、すなわちコンフィグレーションメモリ２００11の出力の電位が、ヒューズ２０１２11およびヒューズ２０１２12の状態に応じて電源電圧ＶＤＤおよび接地電圧ＶＳＳの何れかとなる。
【００８５】
一方、一連に接続されるコンフィギュレーションメモリ２００11、２００21、…を無効とする場合、セレクタ３０１1で電圧ＶＤＤ、セレクタ３０２1で電圧Ｖｏｎ、セレクタ３０３1で電圧Ｖｏｆｆをそれぞれ選択する。これにより、例えばコンフィグレーションメモリ２００11において、トランジスタ２０１１11および２０１１12がそれぞれ開状態とされ、ヒューズ２０１２11の一端およびヒューズ２０１２12の一端がそれぞれ電源電圧ＶＤＤおよび接地電圧ＶＳＳから遮断される。トランジスタ２００１1が閉状態とされ、ヒューズ２０１２11およびヒューズ２０１２12の接続点、すなわちコンフィグレーションメモリ２００11の出力が電源電圧ＶＤＤに固定される。
【００８６】
一連に接続される各コンフィギュレーションメモリ２００11、２００21、…において、全ての出力が電源電圧ＶＤＤに固定される。これにより、各コンフィギュレーションメモリ２００11、２００21、…がスキップされ、無効とされる。
【００８７】
図２０は、第１の実施形態の第２の変形例に係る、制御回路５０を含むＦＰＧＡ２全体の構成の例を示す。各ブロックＬＢ／ＳＢ２２’、２２’、…は、例えば図６のブロックＬＢ／ＳＢ２２に含まれる各コンフィグレーションメモリに対して、制御回路５０が含む各セレクタ３０１1、３０２1、３０３1、…の出力が、上述の図１９の如く接続された構成を有する。このように、制御回路５０が含む各セレクタ３０１1、３０２1、３０３1、…の出力は、ＦＰＧＡ２においてマトリクス状に配置される各基本タイル１０11、１０12、…、１０21、１０22、…について、各メモリ切替回路４０、４０、…に含まれる各ＦＦ回路の配列と交差する方向に配列される各コンフィグレーションメモリに対して接続される。
【００８８】
第１の実施形態の第２の変形例による制御回路５０を設けない場合において、コンフィグレーションメモリを切り替える各シフトレジスタ回路を構成するＦＦ回路をスキップするためのプログラマブルスイッチに上述したような導通系や断線系の不良があると、プログラマブルスイッチに対する書き込み動作を行っても、コンフィグレーションメモリの不良に対する対処がなされないおそれがある。この場合、そのＦＰＧＡのチップを破棄する必要があり、コンフィグレーションメモリの不良率に対するチップの不良率を向上させることが困難である。
【００８９】
これに対して、第１の実施形態の第２の変形例に係る制御回路５０を設けた場合は、不良のあるプログラマブルスイッチを含む列のみを無効とし、ＦＰＧＡのチップを破棄する必要が無い。そのため、制御回路５０を設けない場合に比べて、コンフィグレーションメモリの不良率に対するチップの不良率を向上できる。
【００９０】
（第２の実施形態）
次に、第２の実施形態について説明する。第２の実施形態は、上述した第１の実施形態および第１の実施形態の各変形例によるＦＰＧＡ１やＦＰＧＡ２を電子機器に適用した例である。
【００９１】
図２１は、第２の実施形態に係る電子機器の一例の構成を示す。図２１において、電子機器５００は、バス５１０に対してＩＣ(Integrated  Circuit)５２０と、ＭＰＵ(Micro-Processing  Unit)５２１と、メモリ５２２と、インターフェイス（Ｉ／Ｆ）５２３とを含む。
【００９２】
ＩＣ５２０は、上述した第１の実施形態および第１の実施形態の各変形例によるＦＰＧＡ１やＦＰＧＡ２である。ここでは、ＩＣ５２０は、ＦＰＧＡ１であるものとする。ＦＰＧＡ１は、図１を用いて説明したように、それぞれＳＢ２０およびＬＢ２１を含む複数の基本タイル１０、１０、…を備えると共に、外部とのデータのやり取りを行う複数のＩ／Ｏ１１、１１、…を備える。
【００９３】
ＭＰＵ５２１は、プログラムに従い動作する。メモリ５２２は、ＭＰＵ５２１が動作するためのプログラムが予め記憶される。また、メモリ５２２は、ＭＰＵ５２１が動作する際のワークメモリとしても用いられる。インターフェイス５２３は、ＭＰＵ５２１の制御に従い外部の機器と通信を行う。
【００９４】
ＩＣ５２０は、例えば製品出荷時に、ＩＣ５２０に含まれる各プログラマブルスイッチおよびコンフィグレーションメモリの検査が実行される。そして、検査結果に従い、第１の実施形態および第１の実施形態の第１の変形例で説明したように、不良とされたコンフィグレーションメモリをスキップすべく各プログラマブルスイッチに対する書き込み動作が行われる。また、各プログラマブルスイッチの検査結果によっては、第１の実施形態の第２の変形例で説明したように、一連のコンフィグレーションメモリを無効とする書き込み動作がなされる。その上で、内部のコンフィグレーションメモリに対して、所定の演算を行う構成を実現するための書き込み動作が実行される。
【００９５】
ＭＰＵ５２１は、例えば、実行されるプログラムにおいてＩＣ５２０における演算処理が必要な場合、ＩＣ５２０に対してバス５１０を介してコマンドおよびデータを転送し、ＩＣ５２０に当該演算処理を実行させる。ＩＣ５２０による演算結果は、バス５１０を介してＭＰＵ５２１に転送される。ＭＰＵ５２１は、プログラムの実行結果などを、例えばインターフェイス５２３を介して外部に出力する。
【００９６】
第２の実施形態に係る電子機器５００は、上述したように、ＦＰＧＡ１やＦＰＧＡ２であるＩＣ５２０の不良率を抑制できるため、製造コストを低く抑えることが可能である。
【００９７】
なお、本発明は上述した各実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、各実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、各実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【符号の説明】
【００９８】
１，２  ＦＰＧＡ
１０，１０11，１０12，１０21，１０22  基本タイル
１１  Ｉ／Ｏ
２０  ＳＢ
２１  ＬＢ
２２，２２’  ブロックＬＢ／ＳＢ
４０  メモリ切替回路
５０  制御回路
１００1，１００n-1，１００n，１００11，１００21，１００31，１００m，１００m+1，１００1(n-1)，１００2(n-1)，１００3(n-1)，１００1n，１００2n，１００3n，２００11，２００12，２００21，２００22  コンフィグレーションメモリ
１０１m，１０１m+1，１０１1，１０１n-1，１０１n  プログラマブルスイッチ
１０２1，１０２n-1，１０２n  ＦＦ回路
１０３m，１０３m’，１０３m”，１０３m+1，１０３x，１０３y  ＰＳメモリ
１０４m，１０４m+1，１０３１m，１０３１x，１０３１y，１０３３m，１０３４m1，１０３４m2，１０３４y1，１０３４y2，１０５１〜１０５７，２００１1，２００１2，２０１０1，２０１１11，２０１１12  トランジスタ
１０５m，１０５m+1  ＦＦ出力制御回路
１１０1，１１０2，１１０3  ロジック回路
３００11，３００12，１０３２m1，１０３２m2，１０３２x1，１０３２x2，１０３２y1，１０３２y2，２０１２11，２０１２12  ヒューズ
３０１1，３０１2，３０２1，３０２2，３０３1，３０３2  セレクタ
５００  電子機器
５２０  ＩＣ
５２１  ＭＰＵ
５２２  メモリ
５２３  Ｉ／Ｆ
【図１】
2015061238.tif 000003
【図２】
2015061238.tif 000004
【図３】
2015061238.tif 000005
【図４】
2015061238.tif 000006
【図５】
2015061238.tif 000007
【図６】
2015061238.tif 000008
【図７】
2015061238.tif 000009
【図８】
2015061238.tif 000010
【図９】
2015061238.tif 000011
【図１０】
2015061238.tif 000012
【図１１】
2015061238.tif 000013
【図１２】
2015061238.tif 000014
【図１３】
2015061238.tif 000015
【図１４】
2015061238.tif 000016
【図１５】
2015061238.tif 000017
【図１６】
2015061238.tif 000018
【図１７】
2015061238.tif 000019
【図１８】
2015061238.tif 000020
【図１９】
2015061238.tif 000021
【図２０】
2015061238.tif 000022
【図２１】
2015061238.tif 000023