(57)【要約】  抵抗変化型素子を用いたクロスバスイッチ回路において、ファンアウト数に依存して発生しうる伝搬遅延とエレクトロマイグレーションとを低減するために、第１の方向に配列された複数の第１の配線と、第１の方向に交差する第２の方向に配列された複数の第２の配線と、第１の配線と第２の配線とを接続する抵抗変化型素子とによって構成されるクロスバスイッチと、第２の配線の出力に接続される少なくとも一つの論理回路によって構成される論理回路群と、第１の配線の入力に接続され、異なる駆動力で動作する少なくとも二つの出力バッファによって構成される出力バッファ群とを備えるプログラマブル論理回路とする。
2019059119.tif 000002
【特許請求の範囲】
【請求項１】
第１の方向に配列された複数の第１の配線と、前記第１の方向に交差する第２の方向に配列された複数の第２の配線と、前記第１の配線と前記第２の配線とを接続する抵抗変化型素子とによって構成されるクロスバスイッチと、
異なる駆動力で動作する少なくとも二つの出力バッファによって構成される出力バッファ群と、
前記第２の配線の出力側に接続される少なくとも一つの論理回路によって構成される論理回路群とを備え、
前記出力バッファ群を構成する前記出力バッファは、
複数の前記第１の配線のうちいずれかの入力側に接続されるプログラマブル集積回路。
【請求項２】
複数の前記第２の配線は、
前記論理回路群を構成するいずれかの前記論理回路に接続されるフィードバック配線によって構成される内向き配線群と、隣接する回路に接続される配線によって構成される外向き配線群とを含み、
前記出力バッファ群は、
隣接する回路の出力を入力とする第１の出力バッファ群と、
前記フィードバック配線を介して、前記論理回路群を構成するいずれかの前記論理回路の出力を入力とする第２の出力バッファ群とを含む請求項１に記載のプログラマブル集積回路。
【請求項３】
前記論理回路は、
前記内向き配線群から入力される複数の入力信号の組を入力とし、内部メモリの値を参照して一つの信号を出力するルックアップテーブルと、
前記ルックアップテーブルの出力を入力とし、いずれかの信号を出力するフリップフロップと、
前記ルックアップテーブルおよび前記フリップフロップの出力を入力とし、いずれかの信号を選択して出力するマルチプレクサとによって構成される基本論理要素を含み、
前記マルチプレクサによって選択される信号を、前記フィードバック配線を介して前記第２の出力バッファ群に出力する請求項２に記載のプログラマブル集積回路。
【請求項４】
異なる駆動力で動作する少なくとも二つの前記出力バッファによって構成される第３の出力バッファ群を含み、
前記第３の出力バッファ群を構成する前記出力バッファは、
前記外向き配線群を構成するいずれかの配線に接続される請求項２または３に記載のプログラマブル集積回路。
【請求項５】
前記出力バッファは、
入力信号が入力される入力端子と、
前記第１の配線に接続される出力端子と、
駆動力の値を設定するための制御信号を入力とするイネーブル端子とを有する請求項１乃至４のいずれか一項に記載のプログラマブル集積回路。
【請求項６】
前記出力バッファは、
少なくとも一つのバッファ回路と、
前記バッファ回路と入力および出力を共通とし、前記イネーブル端子から入力される前記制御信号に応じた駆動力が設定される少なくとも一つのトライステートバッファ回路とを含む請求項５に記載のプログラマブル集積回路。
【請求項７】
前記出力バッファ群は、
異なる駆動力に固定された前記出力バッファを組み合わせた構成を有する請求項１乃至４のいずれか一項に記載のプログラマブル集積回路。
【請求項８】
請求項３乃至７のいずれか一項に記載されたプログラマブル集積回路に構成されるユーザ回路の構成を有する複数のクラスタ構造を、交点にスイッチボックスが配置されたセグメント配線網にアレイ状に配置することによって構成される回路。
【請求項９】
クロスバスイッチと、前記クロスバスイッチの入力に接続される少なくとも二つの駆動力が可変な出力バッファと、前記クロスバスイッチの出力のいずれかに接続される少なくとも一つの論理回路とを備え、前記論理回路の出力がいずれかの前記出力バッファにフィードバックされる構成を有するプログラマブル集積回路にユーザ回路をプログラムする制御装置であって、
前記ユーザ回路の動作記述ファイルを入力とする入力手段と、
前記動作記述ファイルを論理合成して第１レベルのネットリストを作成する論理合成手段と、
前記第１レベルのネットリストをマッピングして第２レベルのネットリストに変換するマッピング手段と、
前記第２レベルのネットリストに含まれる複数の論理要素をグループ化し、クラスタ化された基本論理要素の構成に即した第３レベルのネットリストを生成するクラスタ手段と、
クラスタ化された前記基本論理要素のアレイに対して前記第３レベルのネットリストの最適配置を計算し、クラスタ化された前記基本論理要素に接続された前記クロスバスイッチを結線してクラスタの内部および外部の配線を行うことによって前記ユーザ回路の構成情報を作成するレイアウト手段と、
前記クロスバスイッチのファンアウト数に対応する前記出力バッファの駆動力の値が格納される参照テーブルを記憶する記憶手段と、
前記ユーザ回路の前記構成情報に基づいて前記クロスバスイッチの入力ごとに前記ファンアウト数を計算し、前記参照テーブルを参照して前記ファンアウト数に対応する前記出力バッファの駆動力を決定する駆動力決定手段と、
前記出力バッファの駆動力を含めた前記ユーザ回路の前記構成情報に基づいて、前記プログラマブル集積回路に前記ユーザ回路をプログラムするためのコンフィグレーションデータを生成するデータ生成手段と、
前記コンフィグレーションデータに基づいて、前記プログラマブル集積回路に前記ユーザ回路をプログラムする回路設定手段とを有する制御装置。
【請求項１０】
クロスバスイッチと、前記クロスバスイッチの入力に接続される少なくとも二つの駆動力が固定された出力バッファと、前記クロスバスイッチの出力のいずれかに接続される少なくとも一つの論理回路とを備え、前記論理回路の出力がいずれかの前記出力バッファにフィードバックされる構成を有するプログラマブル集積回路にユーザ回路をプログラムする制御装置であって、
前記ユーザ回路の動作記述ファイルを入力とする入力手段と、
前記動作記述ファイルを論理合成して第１レベルのネットリストを作成する論理合成手段と、
前記第１レベルのネットリストをマッピングして第２レベルのネットリストに変換するマッピング手段と、
前記第２レベルのネットリストに含まれる複数の論理要素をグループ化し、クラスタ化された基本論理回路の構成に即した第３レベルのネットリストを生成するクラスタ手段と、
前記第３レベルのネットリストに基づいて前記クロスバスイッチの入力ごとにファンアウト数を計算し、ファンアウト数の大きい順に駆動力の高い前記出力バッファを前記クロスバスイッチの入力に割り当てて前記基本論理回路を再クラスタ化する割当手段と、
再クラスタ化された前記基本論理回路のアレイに対して前記第３レベルのネットリストの最適配置を計算し、再クラスタ化された前記基本論理回路に接続された前記クロスバスイッチを結線してクラスタの内部および外部の配線を行うことによって前記ユーザ回路の構成情報を作成するレイアウト手段と、
前記出力バッファの割り当てを含めた前記ユーザ回路の構成情報に基づいて、前記プログラマブル集積回路に前記ユーザ回路をプログラムするためのコンフィグレーションデータを生成するデータ生成手段と、
前記コンフィグレーションデータに基づいて、前記プログラマブル集積回路に前記ユーザ回路をプログラムする回路設定手段とを有する制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラマブル集積回路および制御装置に関する。特に、抵抗変化型不揮発素子を用いたプログラマブル集積回路およびそのプログラマブル集積回路にコンフィグレーションデータを設定する制御装置に関する。
【背景技術】
【０００２】
半導体集積回路の微細化に伴って、電界効果トランジスタは、３年で４倍のペースで高集積化がなされてきた。その結果、集積回路の製造に必要なフォトマスクや、回路の設計検証コストが増加し、ユーザが予め固定機能をカスタムで設計するＡＳＩＣ（Application Specific Integrated Circuit）の開発コストが増加した。このような状況から、ＦＰＧＡ（Field Programmable Gate Array）などのように、製造後の半導体チップに対して設計者が所望の回路を電気的にプログラムできる半導体装置が注目されている。【０００３】
ＦＰＧＡは、ＲＴＬ（Resistor Transfer Level）言語で記述されたユーザデザインを実装可能とするため、主要な構成要素としてプログラム可能な配線（以下、クロスバスイッチとも呼ぶ）を有する。クロスバスイッチの例としては、ＣＭＯＳ（Complementary Metal-Oxide-Semiconductor）回路やアンチヒューズ型素子、抵抗変化型素子を用いるものが挙げられる。【０００４】
ＣＭＯＳ回路を用いたクロスバスイッチは、配線の接続状態を記憶するＳＲＡＭ（Static Random Access Memory）と、ＳＲＡＭに蓄えられたスイッチ制御信号によってオン・オフが制御されるパストランジスタとを基本の構成要素とする。ＣＭＯＳ回路を用いたクロスバスイッチは、製造工程が容易である一方で、ＣＭＯＳ回路を用いたＦＰＧＡは、１つの切り替えスイッチにつき多数のトランジスタを必要とする。そのため、半導体ウエハ上に集積する際のレイアウト面積が増大して、コストや性能に制約が生じるという問題点がある。【０００５】
非特許文献１には、ＣＭＯＳ回路を用いたクロスバスイッチの一例が開示されている。非特許文献１のクロスバスイッチにおいては、トーナメント状にパストランジスタを配置する。そのため、非特許文献１のクロスバスイッチ用いたＦＰＧＡは、回路を大規模化するにつれてレイアウト面積が比例の関係以上に増大するため、大規模なクロスバスイッチを構成することは困難である。【０００６】
特許文献１には、アンチヒューズ型素子を用いたクロスバスイッチについて開示されている。【０００７】
抵抗変化型素子を用いたクロスバスイッチは、接続スイッチの基本構成要素が抵抗変化型素子だけである。そのため、抵抗変化型素子を用いたクロスバスイッチは、製造工程が複雑であるものの、素子サイズがＣＭＯＳと比べて同程度に小さければ、集積化される際のレイアウト面積の増大を抑えられる。例えば、抵抗変化型素子の一例としては、遷移金属酸化物を用いたＲｅＲＡＭ（Resistance Random Access Memory）や、イオン伝導体を用いたＮａｎｏ Ｂｒｉｄｇｅ（登録商標）などが挙げられる。【０００８】
特許文献２には、印加電圧極性を変えることによってイオン伝導体の抵抗値を変化させ、２つの電極間の導通状態を制御する抵抗変化型素子が開示されている。特許文献２には、抵抗変化型素子をＵＬＳＩ（Ultra-Large Scale Integration）に用いるクロスバスイッチが開示されている。【０００９】
図２５は、特許文献２の抵抗変化型素子を用いたＦＰＧＡのクロスバスイッチの構成例である。図２５のクロスバスイッチ１００は、複数の入力線１０１と複数の出力線１０２との交点に抵抗変化型素子１０３を配置した構成を有する。図２５のように、クロスバスイッチ１００の構成は単純であるため、多入力多出力のクロスバスイッチを比較的容易に構成し得る。【００１０】
図２６は、特許文献２の抵抗変化型素子を用いたクロスバスイッチ１００（図２５）の出力線１０２に論理回路（論理回路１０６ａ〜ｃ）を接続したクロスバスイッチ回路である。各入力線１０１には、抵抗変化型素子１０３がオン状態の場合、各出力線１０２の容量１０４と、論理回路１０６への入力容量１０５が負荷として接続される。なお、図２６においては、オン状態の抵抗変化型素子１０３（抵抗変化型素子１０３ａ〜ｄ）を黒く塗りつぶし、オフ状態の抵抗変化型素子１０３を白く塗りつぶしている。【００１１】
図２６において、入力線１０１ａには、オン状態の抵抗変化型素子１０３ａを介して、一つ出力線１０２ｂが接続される。また、入力線１０１ｂには、オン状態の抵抗変化型素子１０３ｂ〜ｄのそれぞれを介して、出力線１０２ａ、出力線１０２ｃおよび出力線１０２ｄが接続される。これ以降、入力線１０１に接続される出力線１０２の数のことをファンアウト数と呼ぶ。図２６の例では、入力線１０１ａのファンアウト数は１であり、入力線１０１ｂのファンアウト数は３である。【００１２】
図２６のように、入力線１０１ａには、抵抗変化型素子１０３ａを介して、容量１０４ｂと入力容量１０５ｂとが負荷として接続される。また、入力線１０１ｂには、抵抗変化型素子１０３ｂ〜ｄのそれぞれを介して、３つの容量（容量１０４ａ、容量１０４ｃ、容量１０４ｄ）と、３つの入力容量（入力容量１０５ａ、入力容量１０５ｃ、入力容量１０５ｄ）とを合わせた負荷が接続される。【００１３】
また、特許文献３には、電界を印加することによってイオンが自由に動くことのできるイオン伝導体中における金属イオンの移動と電気化学反応とを利用した抵抗変化型素子が開示されている。特許文献３には、抵抗変化型素子を直列に接続してユニット素子として利用することによって、オフ信頼性と低電圧での書き込みとを両立させる方法が開示されている。
【先行技術文献】
【特許文献】
【００１４】
【特許文献１】米国特許第５５３７０５６号明細書
【特許文献２】特開２００５−１０１５３５号公報
【特許文献３】国際公開第２０１３／１９０７４１号
【非特許文献】
【００１５】
【非特許文献１】I. Kuon et al., ”FPGA Architecture: Survey and Challenges, Foundations and Trends in Electronic Design Automation”, 第2巻, 第2版, 2008年2月, P.135-253
【発明の概要】
【発明が解決しようとする課題】
【００１６】
特許文献２の抵抗変化型素子を用いたクロスバスイッチ回路では、ファンアウト数が多いほど、出力線の容量と、次段の論理回路の入力容量とが大きくなる。そのため、特許文献２の抵抗変化型素子を用いたクロスバスイッチ回路には、等しい電流値でクロスバスイッチの入力を駆動した際に、ファンアウト数が多いほど信号の伝搬遅延が増加するという問題点があった。【００１７】
また、特許文献２の抵抗変化型素子を用いたクロスバスイッチ回路は、レイアウト面積の点で大規模化に有利であるが、クロスバのファンアウト数に依存して伝搬遅延が変化する。伝搬遅延が最も遅いケースを想定して設定すると、回路としての遅延性能が悪化する。駆動電流を大きくするためには、クロスバスイッチを駆動するバッファ回路の面積を増やすことになり、クロスバスイッチ回路の面積が大きくなってしまう。また、伝搬遅延が最も遅いケースを想定してクロスバスイッチ入力の駆動電流を増加させると、ファンアウト数が小さいクロスバスイッチの抵抗変化型素子には瞬間的に大きなパルス電流が流れる。瞬間的に大きなパルス電流が流れた抵抗変化型素子には、エレクトロマイグレーションによるストレスが増加する可能性がある。【００１８】
本発明の目的は、上述した課題を解決するために、抵抗変化型素子を用いたクロスバスイッチ回路において、ファンアウト数に依存して発生しうる伝搬遅延とエレクトロマイグレーションとを低減できるプログラマブル論理回路を提供することにある。
【課題を解決するための手段】
【００１９】
本発明の一態様のプログラマブル論理回路は、第１の方向に配列された複数の第１の配線と、第１の方向に交差する第２の方向に配列された複数の第２の配線と、第１の配線と第２の配線とを接続する抵抗変化型素子とによって構成されるクロスバスイッチと、第２の配線の出力に接続される少なくとも一つの論理回路によって構成される論理回路群と、第１の配線の入力に接続され、異なる駆動力で動作する少なくとも二つの出力バッファによって構成される出力バッファ群とを備える。【００２０】
本発明の一態様の制御装置は、クロスバスイッチと、クロスバスイッチの入力に接続される少なくとも二つの駆動力が可変な出力バッファと、クロスバスイッチの出力のいずれかに接続される少なくとも一つの論理回路とを備え、論理回路の出力がいずれかの出力バッファにフィードバックされる構成を有するプログラマブル集積回路にユーザ回路をプログラムする制御装置であって、ユーザ回路の動作記述ファイルを入力とする入力手段と、動作記述ファイルを論理合成して第１レベルのネットリストを作成する論理合成手段と、第１レベルのネットリストをマッピングして第２レベルのネットリストに変換するマッピング手段と、第２レベルのネットリストに含まれる複数の論理要素をグループ化し、クラスタ化された基本論理要素の構成に即した第３レベルのネットリストを生成するクラスタ手段と、クラスタ化された基本論理要素のアレイに対して第３レベルのネットリストの最適配置を計算し、クラスタ化された基本論理要素に接続されたクロスバスイッチを結線してクラスタの内部および外部の配線を行うことによってユーザ回路の構成情報を作成するレイアウト手段と、クロスバスイッチのファンアウト数に対応する出力バッファの駆動力の値が格納される参照テーブルを記憶する記憶手段と、ユーザ回路の構成情報に基づいてクロスバスイッチの入力ごとにファンアウト数を計算し、参照テーブルを参照してファンアウト数に対応する出力バッファの駆動力を決定する駆動力決定手段と、出力バッファの駆動力を含めたユーザ回路の構成情報に基づいて、プログラマブル集積回路にユーザ回路をプログラムするためのコンフィグレーションデータを生成するデータ生成手段と、コンフィグレーションデータに基づいて、プログラマブル集積回路にユーザ回路をプログラムする回路設定手段とを有する。【００２１】
本発明の一態様の制御装置は、クロスバスイッチと、クロスバスイッチの入力に接続される少なくとも二つの駆動力が固定された出力バッファと、クロスバスイッチの出力のいずれかに接続される少なくとも一つの論理回路とを備え、論理回路の出力がいずれかの出力バッファにフィードバックされる構成を有するプログラマブル集積回路にユーザ回路をプログラムする制御装置であって、ユーザ回路の動作記述ファイルを入力とする入力手段と、動作記述ファイルを論理合成して第１レベルのネットリストを作成する論理合成手段と、第１レベルのネットリストをマッピングして第２レベルのネットリストに変換するマッピング手段と、第２レベルのネットリストに含まれる複数の論理要素をグループ化し、クラスタ化された基本論理回路の構成に即した第３レベルのネットリストを生成するクラスタ手段と、第３レベルのネットリストに基づいてクロスバスイッチの入力ごとにファンアウト数を計算し、ファンアウト数の大きい順に駆動力の高い出力バッファをクロスバスイッチの入力に割り当てて基本論理回路を再クラスタ化する割当手段と、再クラスタ化された基本論理回路のアレイに対して第３レベルのネットリストの最適配置を計算し、再クラスタ化された基本論理回路に接続されたクロスバスイッチを結線してクラスタの内部および外部の配線を行うことによってユーザ回路の構成情報を作成するレイアウト手段と、出力バッファの割り当てを含めたユーザ回路の構成情報に基づいて、プログラマブル集積回路にユーザ回路をプログラムするためのコンフィグレーションデータを生成するデータ生成手段と、コンフィグレーションデータに基づいて、プログラマブル集積回路にユーザ回路をプログラムする回路設定手段とを有する。
【発明の効果】
【００２２】
本発明によれば、抵抗変化型素子を用いたクロスバスイッチ回路において、ファンアウト数に依存して発生しうる伝搬遅延とエレクトロマイグレーションとを低減できるプログラマブル論理回路を提供することが可能になる。
【図面の簡単な説明】
【００２３】
【図１】本発明の第１の実施形態に係るプログラマブル論理回路の構成を示す概念図である。
【図２】本発明の第１の実施形態に係るプログラマブル論理回路の構成を示す概念図である。
【図３】本発明の第１の実施形態に係るプログラマブル論理回路が備えるプログラマブル出力バッファの回路構成の一例を示す概念図である。
【図４】本発明の第１の実施形態に係るプログラマブル論理回路が備えるプログラマブル出力バッファに含まれるバッファ回路の真理値表である。
【図５】本発明の第１の実施形態に係るプログラマブル論理回路が備えるプログラマブル出力バッファに含まれるトライステートバッファ回路の真理値表である。
【図６】本発明の第１の実施形態に係るプログラマブル論理回路が備えるプログラマブル出力バッファのイネーブル端子の設定値に対する駆動力をまとめたテーブルである。
【図７】本発明の第１の実施形態に係るプログラマブル論理回路が備えるクロスバスイッチを構成する抵抗変化型素子の一例のバイポーラ型素子の記号である。
【図８】本発明の第１の実施形態に係るプログラマブル論理回路が備えるクロスバスイッチを構成する抵抗変化型素子の一例のユニポーラ型素子の記号である。
【図９】本発明の第１の実施形態に係るプログラマブル論理回路が備えるクロスバスイッチを構成する抵抗変化型素子の一例として二つのバイポーラ型素子を逆極性で直列に接続した素子の記号である。
【図１０】本発明の第１の実施形態に係るプログラマブル論理回路が備える出力線の容量および論理回路の入力容量に関して説明するための概念図である。
【図１１】本発明の第１の実施形態に係るプログラマブル論理回路と前段の回路の論理回路との接続関係について説明するための概念図である。
【図１２】本発明の第１の実施形態に係るプログラマブル論理回路の変形例の構成を示す概念図である。
【図１３】本発明の第２の実施形態に係るプログラマブル論理回路（クラスタ構造）の構成を示す概念図である。
【図１４】本発明の第２の実施形態に係るクラスタ構造をアレイ状に配列したプログラマブル論理回路の構成を示す概念図である。
【図１５】本発明の第２の実施形態に係るクラスタ構造をアレイ状に配列したプログラマブル論理回路に含まれるスイッチボックスの構成例を示す概念図である。
【図１６】本発明の第２の実施形態に係るクラスタ構造をアレイ状に配列したプログラマブル論理回路に含まれるスイッチボックスの別の構成例を示す概念図である。
【図１７】本発明の第３の実施形態に係るプログラマブル論理回路の構成を示す概念図である。
【図１８】本発明の第４の実施形態に係るプログラマブル論理回路の構成を示す概念図である。
【図１９】本発明の第５の実施形態に係る半導体装置の構成を示す概念図である。
【図２０】本発明の第６の実施形態に係る制御装置の構成を示すブロック図である。
【図２１】本発明の第６の実施形態に係る制御装置の動作について説明するためのフローチャートである。
【図２２】本発明の第７の実施形態に係る制御装置の構成を示すブロック図である。
【図２３】本発明の第７の実施形態に係る制御装置の動作について説明するためのフローチャートである。
【図２４】本発明の第６および第７の実施形態に係る制御装置を実現するハードウェア構成の一例を示すブロック図である。
【図２５】抵抗変化型素子を含む一般的なクロスバスイッチの構成を示す概念図である。
【図２６】抵抗変化型素子を含む一般的なクロスバスイッチの問題点について説明するための概念図である。
【発明を実施するための形態】
【００２４】
以下に、本発明を実施するための形態について図面を用いて説明する。ただし、以下に述べる実施形態には、本発明を実施するために技術的に好ましい限定がされているが、発明の範囲を以下に限定するものではない。なお、以下の実施形態の説明に用いる全図においては、特に理由がない限り、同様箇所には同一符号を付したり、符号を省略したりすることがある。また、以下の実施形態において、同様の構成・動作に関しては繰り返しの説明を省略する場合がある。
【００２５】
（第１の実施形態）
まず、本発明の第１の実施形態に係るプログラマブル論理回路について図面を参照しながら説明する。
【００２６】
図１は、本実施形態のプログラマブル論理回路１の構成を示す概念図である。図１のように、プログラマブル論理回路１は、出力バッファ群１１と、クロスバスイッチ１２と、論理回路群１６とを備える。
【００２７】
出力バッファ群１１は、少なくとも一つの出力バッファを含む。出力バッファ群１１に含まれる出力バッファの駆動力は、出力バッファに接続される入力線の接続先の出力線１４の数（ファンアウト数とも呼ぶ）に応じて設定される。
【００２８】
出力バッファ群１１は、互いに異なる駆動力で駆動できる複数の出力バッファを含む。本実施形態においては、駆動力を設定可能なプログラム出力バッファを用いる例を挙げる。例えば、プログラム出力バッファは、少なくとも一つのバッファ回路と、少なくとも一つのトライステートバッファ回路とを含む。
【００２９】
クロスバスイッチ１２は、ｙ方向（第１の方向とも呼ぶ）に沿って配される入力線１３と、ｘ方向（第２の方向とも呼ぶ）に沿って配される出力線１４と、入力線１３と出力線１４との交点に設置される抵抗変化型素子１５とによって構成される。本実施形態においては、複数の入力線１３と、複数の出力線１４と、複数の抵抗変化型素子１５によってクロスバスイッチ１２が構成される例について説明する。
【００３０】
入力線１３（第１の配線とも呼ぶ）は、出力バッファ群１１に含まれるいずれかの出力バッファに接続される。また、入力線１３は、抵抗変化型素子１５を介して出力線１４に接続される。なお、本実施形態においては、単線であるか複線であるかにかかわらず、入力線１３と記載する。
【００３１】
出力線１４（第２の配線とも呼ぶ）は、抵抗変化型素子１５を介して入力線１３に接続される。また、出力線１４は、論理回路群１６を構成するいずれかの論理回路に接続される。なお、本実施形態においては、単線であるか複線であるかにかかわらず、出力線１４と記載する。
【００３２】
抵抗変化型素子１５は、入力線１３と出力線１４との交点に設置される。抵抗変化型素子１５は、図示しない制御線によってオン・オフの状態が制御され。抵抗変化型素子１５がオン状態のとき、入力線１３と出力線１４とが接続され、出力バッファ群１１のいずれかの出力バッファから入力される信号は、論理回路群１６を構成するいずれかの論理回路に出力される。一方、抵抗変化型素子１５がオフ状態のとき、入力線１３と出力線１４とは接続されず、出力バッファ群１１から入力される信号は論理回路群１６に出力されない。
【００３３】
論理回路群１６は、少なくとも一つの論理回路を含む。論理回路群１６に含まれる論理回路は、種々の論理演算を行うように設定される回路である。論理回路群１６に含まれる論理回路は、いずれかの出力線１４に接続される。オン状態の抵抗変化型素子１５を介して信号が入力された論理回路は、入力された信号に関して論理演算を実行し、実行結果を出力する。
【００３４】
図２は、プログラマブル論理回路１に含まれる出力バッファ群１１について説明するために、プログラマブル論理回路１の一部の構成を抜き出した概念図である。図２には、出力バッファ群１１に含まれる複数の出力バッファのうち一つ（プログラマブル出力バッファ１１０）を示す。
【００３５】
図２のように、プログラマブル出力バッファ１１０は、入力端子１１７、出力端子１１８および駆動力設定端子１１９を有する。入力端子１１７は、前段の論理回路群１６を構成するいずれかの論理回路の出力に接続される。出力端子１１８は、入力線１３の一端に接続される。駆動力設定端子１１９は、図示しない制御装置に接続され、プログラマブル出力バッファ１１０の駆動力を設定するための制御信号を入力とする。プログラマブル出力バッファ１１０の駆動力は、制御信号に応じて設定される。
【００３６】
例えば、抵抗型変化素子１５ａがオン状態で、抵抗型変化素子１５ｂ〜ｆがオフ状態であるとする。この場合、プログラマブル出力バッファ１１０から入力線１３に入力される信号は、オン状態の抵抗型変化素子１５ａおよび出力線１４を介して論理回路１６ａに入力される。このとき、プログラマブル出力バッファ１１０に接続された入力線１３のファンアウト数は１であるため、プログラマブル出力バッファ１１０の駆動力は１倍に設定される。
【００３７】
また、例えば、抵抗型変化素子１５ａ〜ｃがオン状態で、抵抗型変化素子１５ｄ〜ｆがオフ状態であるとする。この場合、プログラマブル出力バッファ１１０から入力線１３に入力される信号は、オン状態の抵抗型変化素子１５ａ〜ｃおよび出力線１４を介して論理回路１６ａ〜ｂに入力される。このとき、プログラマブル出力バッファ１１０に接続された入力線１３のファンアウト数は３であるため、プログラマブル出力バッファ１１０の駆動力は３倍に設定される。
【００３８】
このように、本実施形態においては、入力線１３のファンアウト数に応じて、その入力線１３に接続されたプログラマブル出力バッファ１１０の駆動力を設定する。
【００３９】
〔プログラマブル出力バッファ回路〕
次に、プログラマブル出力バッファ１１０の回路構成について一例を挙げて説明する。図３は、プログラマブル出力バッファ１１０の一例の回路構成である。なお、図３は、プログラマブル出力バッファ１１０の回路構成の一例であって、プログラマブル出力バッファ１１０の回路構成を限定するものではない。
【００４０】
図３のように、プログラマブル出力バッファ１１０は、バッファ回路１１１と、トライステートバッファ回路１１２−１と、トライステートバッファ回路１１２−２とを有する。以下においては、トライステートバッファ回路１１２−１と、トライステートバッファ回路１１２−２とを区別せずに、トライステートバッファ回路１１２と記載することがある。
【００４１】
バッファ回路１１１は、入力端子ＢＡと、出力端子ＢＹとを有する。トライステートバッファ回路１１２−１は、入力端子ＴＡ１と、出力端子ＴＹ１と、イネーブル端子ＴＥ１とを有する。トライステートバッファ回路１１２−２は、入力端子ＴＡ２と、出力端子ＴＹ２と、イネーブル端子ＴＥ２とを有する。
【００４２】
バッファ回路１１１の入力端子ＢＡと、トライステートバッファ回路１１２−１の入力端子ＴＡ１と、トライステートバッファ回路１１２−２の入力端子ＴＡ２とは、入力端子１１７に接続される。また、バッファ回路１１１の出力端子ＢＹと、トライステートバッファ回路１１２−１の出力端子ＴＹ１と、トライステートバッファ回路１１２−２の出力端子ＴＹ２とは、出力端子１１８に接続される。すなわち、プログラマブル出力バッファ１１０は、バッファ回路１１１と、トライステートバッファ回路１１２−１と、トライステートバッファ回路１１２−２とを並列に接続した構成を有する。
【００４３】
トライステートバッファ回路１１２−１のイネーブル端子ＴＥ１には、トライステートバッファ回路１１２−１の駆動力を設定するための制御信号が入力される。トライステートバッファ回路１１２−１の駆動力は、設定信号に応じて０または１倍に設定される。
【００４４】
トライステートバッファ回路１１２−２のイネーブル端子ＴＥ２には、トライステートバッファ回路１１２−２の駆動力を設定するための制御信号が入力される。トライステートバッファ回路１１２−２の駆動力は、設定信号に応じて０または２倍に設定される。
【００４５】
図４は、バッファ回路１１１の真理値表１１０Ａである。すなわち、バッファ回路１１１は、入力端子ＢＡから０が入力されると出力端子ＢＹから０を出力し、入力端子ＢＡから１が入力されると出力端子ＢＹから１を出力する。
【００４６】
図５は、トライステートバッファ回路１１２の真理値表１１０Ｂである。すなわち、トライステートバッファ回路１１２は、イネーブル端子ＴＥが０に設定されると、入力端子ＴＡから０および１のいずれが入力されても、出力端子ＴＹが高インピーダンス状態（Ｈｉｇｈ−Ｚ）となり、信号を出力しない。一方、トライステートバッファ回路１１２は、イネーブル端子ＴＥが１に設定されると、入力端子ＴＡから０が入力されると出力端子ＴＹから０を出力し、入力端子ＴＡから１が入力されると出力端子ＴＹから１を出力する。
【００４７】
図６は、イネーブル端子ＴＥ１およびイネーブル端子ＴＥ２の設定値に応じたプログラマブル出力バッファ１１０の駆動力をまとめたテーブル１１０Ｃである。
【００４８】
イネーブル端子ＴＥ１に０、イネーブル端子ＴＥ２に０が設定されると、トライステートバッファ回路１１２−１およびトライステートバッファ回路１１２−２の出力が切り離され、バッファ回路１１１のみの駆動力となる。すなわち、プログラマブル出力バッファ１１０の駆動力は１倍となる。
【００４９】
イネーブル端子ＴＥ１に１、イネーブル端子ＴＥ２に０が設定されると、トライステートバッファ回路１１２−２の出力が切り離され、バッファ回路１１１およびトライステートバッファ回路１１２−１の駆動力の合計となる。すなわち、プログラマブル出力バッファ１１０の駆動力は２倍となる。
【００５０】
イネーブル端子ＴＥ１に０、イネーブル端子ＴＥ２に１が設定されると、トライステートバッファ回路１１２−１の出力が切り離され、バッファ回路１１１およびトライステートバッファ回路１１２−２の駆動力の合計となる。すなわち、プログラマブル出力バッファ１１０の駆動力は３倍となる。
【００５１】
イネーブル端子ＴＥ１に１、イネーブル端子ＴＥ２に１が設定されると、バッファ回路１１１、トライステートバッファ回路１１２−１およびトライステートバッファ回路１１２−２の駆動力の合計となる。すなわち、プログラマブル出力バッファ１１０の駆動力は４倍となる。
【００５２】
以上のように、プログラマブル出力バッファ１１０は、イネーブル端子ＴＥに設定される制御信号の設定値に応じた駆動力に設定される。
【００５３】
〔抵抗変化型素子〕
ここで、抵抗変化型素子１５の具体例について例を挙げて説明する。
【００５４】
図７は、ユニポーラ型の抵抗変化型素子の記号表現である（ユニポーラ型素子１５１）。ユニポーラ型素子１５１は、抵抗変化層が第１電極と第２電極とによって挟まれた構成を有する。ユニポーラ型素子１５１は、印加電圧値によって、オフ状態（高抵抗状態）とオン状態（低抵抗状態）とが切り替わるスイッチング素子である。
【００５５】
ユニポーラ型素子１５１の第１電極に正電圧を印加し、印加電圧が所定のセット電圧を超えると、ユニポーラ型素子１５１はオフ状態からオン状態に遷移する。このオン状態のユニポーラ型素子１５１にリセット電圧より大きな電圧を印加すると、ユニポーラ型素子１５１はオン状態からオフ状態に遷移する。さらに、印加している正電圧を大きくして電圧値がセット電圧を超えると、ユニポーラ型素子１５１は、再びオフ状態からオン状態に遷移する。
【００５６】
一方、ユニポーラ型素子１５１の第１電極に負電圧を印加し、その電圧値がセット電圧を超えると、ユニポーラ型素子１５１はオフ状態からオン状態に遷移する。このオン状態のユニポーラ型素子１５１の第１電極に印加している負電圧値がリセット電圧を超えると、ユニポーラ型素子１５１はオン状態からオフ状態に遷移する。さらに、ユニポーラ型素子１５１の第１電極に印加している負電圧値がセット電圧を超えると、ユニポーラ型素子１５１は、再びオフ状態からオン状態に遷移する。
【００５７】
このように、ユニポーラ型素子１５１は、印加する電圧の極性には依存せず、印加電圧値に依存した抵抗変化特性を示す。
【００５８】
図８は、バイポーラ型の抵抗変化型素子の記号表現である（バイポーラ型素子１５２）。バイポーラ型素子１５２は、抵抗変化層として機能するイオン伝導体が第１電極と第２電極とによって挟まれた構成を有する。バイポーラ型素子１５２は、印加電圧の極性に応じて、オフ状態とオン状態とが切替わるスイッチング素子である。なお、バイポーラ型素子１５２においては、第１電極に印加されている電圧が第２電極に印加されている電圧より高いときを正極とする。
【００５９】
バイポーラ型素子１５２の第１電極に正電圧を印加し、印加電圧値がセット電圧を超えると、バイポーラ型素子１５２はオフ状態からオン状態に遷移する。一方、バイポーラ型素子１５２の第１電極に負電圧を印加し、印加電圧値がリセット電圧を超えると、バイポーラ型素子１５２はオン状態からオフ状態に遷移する。
【００６０】
このように、バイポーラ型素子１５２は、印加電圧の極性に応じて、オフ状態とオン状態とを切り替えられる。
【００６１】
本実施形態においては、ユニポーラ型素子１５１とバイポーラ型素子１５２のどちらを用いてもよい。また、図９のように、スイッチの信頼性を高めるために、二つのバイポーラ型素子１５２を逆極性で直列に接続し抵抗変化型素子１５３を用いてもよい。
【００６２】
〔クロスバスイッチ〕
図１０は、図１のクロスバスイッチ１２の出力線１４および論理回路群１６の容量について説明するための概念図である。
【００６３】
入力線１３は、入力線１３に接続されるいずれかの抵抗変化型素子１５がオン状態の場合、オン状態の抵抗変化型素子１５を介していずれかの出力線１４に接続される。このとき、オン状態の抵抗変化型素子１５に接続された入力線１３には、出力線１４の容量１４０と、論理回路１０６への入力容量１６０とが負荷として接続される。
【００６４】
本実施形態においては、駆動力の調整が可能なプログラマブル出力バッファ１１０を入力線１３の入力側に接続する。そして、各入力線１３に接続されたプログラマブル出力バッファ１１０には、各入力線１３に接続される出力線１４の数（ファンアウト数とも呼ぶ）に応じた駆動力が設定される。例えば、プログラマブル出力バッファ１１０は、そのプログラマブル出力バッファ１１０に接続された入力線１３のファンアウト数が１のときは駆動力が１倍に設定され、ファンアウト数が３のときは駆動力が３倍に設定される。このように、入力線１３のファンアウト数に応じてプログラマブル出力バッファ１１０の駆動力を調整することによって、伝搬遅延の増加とエレクトロマイグレーションによるストレスとを改善することが可能になる。
【００６５】
図１１は、プログラマブル論理回路１（図１０）と、前段の回路に含まれる論理回路群１６との接続関係を明示的に示した構成図である。図１１のように、プログラマブル論理回路１には、前段の回路の論理回路群１６の出力が入力される。前段の回路の論理回路群１６からの出力は、出力バッファ群１１を構成する出力バッファの入力端子に接続される。
【００６６】
論理回路の種類によっては、出力信号の本数が複数になりうる。例えば、論理回路がＡＮＤ回路やＯＲ回路であれば出力は１つであるが、算術論理演算回路の場合には出力が多ビットとなる。図１１のように、前段の論理回路群１６を構成する論理回路は、多ビット出力であってもよいし、異なる種類の論理回路であってもよい。したがって、本実施形態において、クロスバスイッチ１２は、多入力多出力である。クロスバスイッチ１２が多入力多出力の場合は、クロスバスイッチ１２の複数の入力線１３のそれぞれに出力バッファを接続する構成にする。
【００６７】
以上のように、本実施形態においては、クロスバスイッチの入力側に出力バッファ群を設けることによって、クロスバスイッチの入力線への電流駆動能力を可変とする。本実施形態においては、クロスバスイッチを構成する抵抗変化型素子のオン／オフ状態によって、クロスバスイッチの入力容量は変化する。多くのオン状態の素子数に接続されるほど入力容量は増加するが、入力容量の増加に応じてプログラマブル出力バッファの駆動力を大きくすることで、信号の伝搬時間の増加を抑制できる。また、オン状態の素子数が少ない場合には、駆動力を小さくすることで、突入電流を不要に増加させず、抵抗変化型素子に掛かるエレクトロマイグレーションのストレスを抑制できる。
【００６８】
（変形例）
ここで、本実施形態の変形例について図面を参照しながら説明する。図１２は、駆動力が異なる値に固定された複数の出力バッファを組み合わせた出力バッファ群１１ｂを用いる構成例である。
【００６９】
図１２の構成では、出力バッファ群１１ｂは、互いに異なる駆動力の出力バッファを少なくとも一つずつ含む。図１２には、出力バッファ群１１ｂを構成するそれぞれの出力バッファに駆動力を示す数字を示している。ファンアウト数の多い接続を持つ信号は、駆動力の高い出力バッファに接続された入力線１３に優先して割り当てる。一方、ファンアウト数の少ない接続を持つ信号は、駆動力の低い出力バッファに接続された入力線１３に割り当てればよい。
【００７０】
図１２の構成では、出力バッファ群１１ｂを構成する出力バッファの駆動力は固定されているものの、ファンアウト数に応じて入力線１３を選択することによって、伝搬遅延の増加とエレクトロマイグレーションによるストレスを改善することができる。図１２の構成では、出力バッファ群１１ｂを構成する複数の出力バッファの駆動力をあらかじめ作り分けることによって、出力バッファ群１１ｂのレイアウト面積の増加を抑えることができる。
【００７１】
（第２の実施形態）
次に、本発明の第２の実施形態に係るプログラマブル論理回路について図面を参照しながら説明する。本実施形態は、論理回路群を構成する論理回路の出力をクロスバスイッチ回路にフィードバックしてクラスタ構造を構成する点で第１の実施形態とは異なる。以下において、第１の実施形態と同様の構成については、適宜説明を省略する。
【００７２】
図１３は、本実施形態のプログラマブル論理回路２の構成を示す概念図である。なお、図１３の構成のプログラマブル論理回路２のことをクラスタ構造とも呼ぶ。図１３のように、プログラマブル論理回路２は、クロスバスイッチ２２と、第１の出力バッファ群２１ａと、第２の出力バッファ群２１ｂと、論理回路群２６とを備える。なお、図１３には、第３の出力バッファ群２１ｃについても図示しているが、第３の出力バッファ群２１ｃは省略可能である。
【００７３】
クロスバスイッチ２２は、ｙ方向に沿って配される入力線（入力線２３ａおよび入力線２３ｂ）と、ｘ方向に沿って配される出力線（出力線２４ａおよび出力線２４ｂ）と、入力線と出力線との交点に設置される複数の抵抗変化型素子２５によって構成される。なお、本実施形態においては、単線であるか複線であるかにかかわらず、入力線２３ａや入力線２３ｂ、出力線２４ａ、出力線２４ｂと記載する。
【００７４】
入力線２３ａは、第１の出力バッファ群２１ａに含まれるいずれかの出力バッファに接続される。入力線２３ｂは、第２の出力バッファ群２１ｂに含まれるいずれかの出力バッファに接続される。また、入力線２３ａおよび入力線２３ｂは、抵抗変化型素子２５を介して、出力線２４ａおよび出力線２４ｂのいずれかに接続される。
【００７５】
出力線２４ａおよび出力線２４ｂは、抵抗変化型素子２５を介して、入力線２３ａおよび入力線２３ｂのいずれかに接続される。出力線２４ａは、論理回路群２６を構成するいずれかの論理回路に接続される。また、出力線２４ｂは、第３の出力バッファ群２１ｃを介して外部出力線２０３に接続される。
【００７６】
クロスバスイッチ２２は、隣接するクロスバスイッチ回路（図示しない）に信号を出力するための外部出力線２０３に接続される。なお、外部出力線２０３は、隣接するクロスバスイッチ回路のファンアウト数に応じた駆動力を提供するための第３の出力バッファ群２１ｃを介して信号を出力する。
【００７７】
第１の出力バッファ群２１ａは、少なくとも一つの出力バッファを含む。第１の出力バッファ群２１ａに含まれる出力バッファは、入力端子、出力端子、駆動力設定端子を有する。第１の出力バッファ群２１ａの出力バッファの入力端子は、前段の論理回路群２６の出力に接続される。第１の出力バッファ群２１ａの出力バッファの出力端子は、入力線２３ａに接続される。第１の出力バッファ群２１ａの出力バッファの駆動力設定端子は、図示しない制御装置に接続され、出力バッファの駆動力を設定するための制御信号を入力とする。
【００７８】
第２の出力バッファ群２１ｂは、少なくとも一つの出力バッファを含む。第２の出力バッファ群２１ｂに含まれる出力バッファは、入力端子、出力端子、駆動力設定端子を有する。第２の出力バッファ群２１ｂの出力バッファの入力端子は、フィードバック配線２０１を介して論理回路群２６の出力に接続される。第２の出力バッファ群２１ｂの出力バッファの出力端子は、入力線２３ｂに接続される。第２の出力バッファ群２１ｂの出力バッファの駆動力設定端子は、図示しない制御装置に接続され、第２の出力バッファ群２１ｂの出力バッファの駆動力を設定するための制御信号を入力とする。
【００７９】
論理回路群２６は、出力線２４ａに接続される。論理回路群２６には、オン状態の抵抗変化型素子２５を介して、信号が入力される。また、論理回路群２６は、フィードバック配線２０１を介して、第２の出力バッファ群２１ｂに接続される。そして、論理回路群２６の出力は、第２の出力バッファ群２１ｂを介して、クロスバスイッチ２２に入力される。
【００８０】
図１３に示す構成によれば、フィードバック配線２０１によって、プログラマブル論理回路２（クラスタ構造）の内部の論理回路群２６を相互に接続できる。そのため、図１３に示す構成によれば、単一のプログラマブル論理回路２において、より大規模なプログラマブル論理回路を構成できる。ここで、フィードバック配線２０１におけるクロスバスイッチ２２のファンアウト数は、ユーザデザインによって様々に変化しうる。クロスバスイッチ２２のファンアウト数が大きい場合には、第１の出力バッファ群２１ａの駆動力を大きくすることによって伝搬遅延の増加を抑制することができる。
【００８１】
〔クラスタ構造〕
図１４は、本実施形態のプログラマブル論理回路２の構成を有するクラスタ構造２００をアレイ状に配列したプログラマブル論理回路２０の構成を示す概念図である。
【００８２】
プログラマブル論理回路２０は、アレイ状に配列された複数のクラスタ構造２００と、隣接するクラスタ構造２００を接続するセグメント配線網２１０と、セグメント配線網２１０の交点に配置された複数のスイッチボックス２２０とによって構成される。
【００８３】
クラスタ構造２００のクロスバスイッチ２２（図１３）の入力線２３ａ（図１３）および外部出力線２０３（図１３）は、セグメント配線網２１０に接続される。隣接するクラスタ構造２００同士は、スイッチボックス２２０を介して接続される。
【００８４】
図１５は、スイッチボックス２２０の構成例のスイッチボックス２２０ａである。スイッチボックス２２０ａは、ｘ方向とｙ方向に張り巡らされた配線によって構成される配線網２２１の交点を抵抗変化型素子２２５で接続する構成を有する。スイッチボックス２２０ａは、入力線２３ａの接続先を変更することができる。
【００８５】
図１６は、スイッチボックス２２０の構成例のスイッチボックス２２０ｂである。スイッチボックス２２０ｂは、ｘ方向とｙ方向に張り巡らされた配線によって構成される配線網２２１の交点をビア２２６で接続する構成を有する。スイッチボックス２２０ｂにおいては、配線網２２１の交点がビア２２６で接続されるため、入力線２３ａの接続先を変更することができない。スイッチボックス２２０ｂは、入力線２３ａの接続先が限定されている場合に用いられる。
【００８６】
以上のように、本実施形態によれば、第１の実施形態と同様に、抵抗変化型素子を用いたクロスバスイッチ回路において、ファンアウト数に依存して発生しうる伝搬遅延とエレクトロマイグレーションとを低減できる。また、本実施形態によれば、クラスタ構造をアレイ化することによって、第１の実施形態よりも大規模なプログラマブル論理回路を構成できる。
【００８７】
（第３の実施形態）
次に、本発明の第３の実施形態に係るプログラマブル論理回路について図面を参照しながら説明する。本実施形態は、論理回路群を構成する論理回路の構成が第２の実施形態とは異なる。以下において、第２の実施形態と同様の構成については、適宜説明を省略する。
【００８８】
図１７は、本実施形態のプログラマブル論理回路３の構成を示す概念図である。図１７のように、プログラマブル論理回路３は、クロスバスイッチ３２と、第１の出力バッファ群３１ａと、第２の出力バッファ群３１ｂと、論理回路群３６とを備える。なお、図１７には、第３の出力バッファ群３１ｃについても図示しているが、第３の出力バッファ群３１ｃは省略可能である。
【００８９】
クロスバスイッチ３２は、ｙ方向に沿って配される入力線（入力線３３ａおよび入力線３３ｂ）と、ｘ方向に沿って配される出力線（出力線３４ａおよび出力線３４ｂ）と、入力線と出力線との交点に設置される複数の抵抗変化型素子３５によって構成される。なお、本実施形態においては、単線であるか複線であるかにかかわらず、入力線３３ａや入力線３３ｂ、出力線３４ａ、出力線３４ｂと記載する。
【００９０】
入力線３３ａは、第１の出力バッファ群３１ａに含まれるいずれかの出力バッファに接続される。入力線３３ｂは、第２の出力バッファ群３１ｂに含まれるいずれかの出力バッファに接続される。また、入力線３３ａおよび入力線３３ｂは、抵抗変化型素子３５を介して、出力線３４ａおよび出力線３４ｂのいずれかに接続される。
【００９１】
出力線３４ａおよび出力線３４ｂは、抵抗変化型素子３５を介して、入力線３３ａおよび入力線３３ｂのいずれかに接続される。出力線３４ａは、論理回路群３６を構成するいずれかの論理回路３６０に接続される。また、出力線３４ｂは、第３の出力バッファ群３１ｃを介して外部出力線３０３に接続される。
【００９２】
クロスバスイッチ３２は、隣接するクロスバスイッチ回路（図示しない）に信号を出力するための外部出力線３０３に接続される。なお、外部出力線３０３は、隣接するクロスバスイッチ回路のファンアウト数に応じた駆動力を提供するための第３の出力バッファ群３１ｃを介して信号を出力する。第３の出力バッファ群３１ｃは、第１の出力バッファ群３１ａや第２の出力バッファ群３１ｂと同様の構成にすればよい。
【００９３】
第１の出力バッファ群３１ａは、少なくとも一つの出力バッファを含む。第１の出力バッファ群３１ａに含まれる出力バッファは、入力端子、出力端子、駆動力設定端子を有する。第１の出力バッファ群３１ａの出力バッファの入力端子は、前段の論理回路群３６の出力に接続される。第１の出力バッファ群３１ａの出力バッファの出力端子は、入力線３３ａに接続される。第１の出力バッファ群３１ａの出力バッファの駆動力設定端子は、図示しない制御装置に接続され、出力バッファの駆動力を設定するための制御信号を入力とする。
【００９４】
第２の出力バッファ群３１ｂは、少なくとも一つの出力バッファを含む。第２の出力バッファ群３１ｂに含まれる出力バッファは、入力端子、出力端子、駆動力設定端子を有する。第２の出力バッファ群３１ｂの出力バッファの入力端子は、フィードバック配線３０１を介して論理回路群３６の出力に接続される。第２の出力バッファ群３１ｂの出力バッファの出力端子は、入力線３３ｂに接続される。第２の出力バッファ群３１ｂの出力バッファの駆動力設定端子は、図示しない制御装置に接続され、第２の出力バッファ群３１ｂの出力バッファの駆動力を設定するための制御信号を入力とする。
【００９５】
論理回路群３６は、出力線３４ａに接続される。論理回路群３６には、オン状態の抵抗変化型素子３５を介して、信号が入力される。また、論理回路群３６は、フィードバック配線３０１を介して、第２の出力バッファ群３１ｂに接続される。そして、論理回路群３６の出力は、第２の出力バッファ群３１ｂを介して、クロスバスイッチ３２に入力される。
【００９６】
論理回路群３６は、少なくとも一つの論理回路３６０を含む。論理回路３６０は、ルックアップテーブル回路３６１、フリップフロップ回路３６２、マルチプレクサ回路３６３を有する基本論理要素を含む。論理回路３６０は、ルックアップテーブルおよびフリップフロップを有しており、ルックアップテーブルのデータを書き換えることにより、プログラム可能な同期式論理回路を構成する。
【００９７】
クロスバスイッチ３２の出力線３４ａの出力は、４入力のルックアップテーブル回路３６１に入力される。ルックアップテーブル回路３６１は、出力線３４ａから入力される複数の入力信号の組から内部メモリの値を参照して一つの信号を出力する。
【００９８】
ルックアップテーブル回路３６１の出力は、フリップフロップ回路３６２に入力される。ルックアップテーブル回路３６１およびフリップフロップ回路３６２の出力は、マルチプレクサ回路３６３に入力される。マルチプレクサ回路３６３は、ルックアップテーブル回路３６１およびフリップフロップ回路３６２から入力された信号のうちいずれかを選択して出力する。マルチプレクサ回路３６３からの出力が論理回路３６０の出力となる。
【００９９】
論理回路３６０の出力は、フィードバック配線３０１を介して第２の出力バッファ群３１ｂを構成するいずれかの出力バッファに入力される。そして、論理回路３６０の出力は、第２の出力バッファ群３１ｂを構成するいずれかの出力バッファを介してクロスバスイッチ３２に入力される。
【０１００】
本実施形態のプログラマブル論理回路３では、フィードバック配線３０１によって複数の基本論理要素を互いに接続できる。そのため、単一のプログラマブル論理回路３において、より大規模なプログラマブル論理回路を構成することができる。また、フィードバック配線３０１は、外部出力線３０３にも接続される。そのため、プログラマブル論理回路３によって形成されるクラスタ構造をアレイ状に配置することによって、より大規模なプログラマブル論理回路を構成することが可能である。
【０１０１】
以上のように、本実施形態によれば、ルックアップテーブル回路を使用したプログラマブル論理回路において、抵抗変化型素子を有するクロスバスイッチのファンアウト数に依存した伝搬遅延の影響を小さくすることによって回路性能を向上させることができる。
【０１０２】
（第４の実施形態）
次に、本発明の第４の実施形態に係るプログラマブル論理回路について図面を参照しながら説明する。本実施形態は、出力バッファ群を構成する出力バッファの駆動力が固定されている点で第３の実施形態とは異なる。なお、以下において、第３の実施形態と同様の構成については、適宜説明を省略する。
【０１０３】
図１８は、本実施形態のプログラマブル論理回路４の構成を示す概念図である。図１８のように、プログラマブル論理回路４は、クロスバスイッチ４２と、第１の出力バッファ群４１ａと、第２の出力バッファ群４１ｂと、論理回路群４６とを備える。なお、図１８には、第３の出力バッファ群４１ｃについても図示しているが、第３の出力バッファ群４１ｃは省略可能である。
【０１０４】
クロスバスイッチ４２は、ｙ方向に沿って配される入力線（入力線４３ａおよび入力線４３ｂ）と、ｘ方向に沿って配される出力線（出力線４４ａおよび出力線４４ｂ）と、入力線と出力線との交点に設置される複数の抵抗変化型素子４５によって構成される。なお、本実施形態においては、単線であるか複線であるかにかかわらず、入力線４３ａや入力線４３ｂ、出力線４４ａ、出力線４４ｂと記載する。
【０１０５】
入力線４３ａは、第１の出力バッファ群４１ａに含まれるいずれかの出力バッファに接続される。入力線４３ｂは、第２の出力バッファ群４１ｂに含まれるいずれかの出力バッファに接続される。また、入力線４３ａおよび入力線４３ｂは、抵抗変化型素子４５を介して、出力線４４ａおよび出力線４４ｂのいずれかに接続される。
【０１０６】
出力線４４ａおよび出力線４４ｂは、抵抗変化型素子４５を介して、入力線４３ａおよび入力線４３ｂのいずれかに接続される。出力線４４ａは、論理回路群４６を構成するいずれかの論理回路に接続される。また、出力線４４ｂは、第３の出力バッファ群４１ｃを介して外部出力線４０３に接続される。
【０１０７】
クロスバスイッチ４２は、隣接するクロスバスイッチ回路（図示しない）に信号を出力するための外部出力線４０３に接続される。なお、外部出力線４０３は、隣接するクロスバスイッチ回路のファンアウト数に応じた駆動力を提供するための第３の出力バッファ群４１ｃを介して信号を出力する。第３の出力バッファ群４１ｃは、第１の出力バッファ群４１ａや第２の出力バッファ群４１ｂと同様の構成にすればよい。
【０１０８】
第１の出力バッファ群４１ａは、互いに異なる駆動力の少なくとも二つの出力バッファを含む。第１の出力バッファ群４１ａに含まれる出力バッファは、入力端子および出力端子を有する。第１の出力バッファ群４１ａの出力バッファの入力端子は、前段の論理回路群４６の出力に接続される。第１の出力バッファ群４１ａの出力バッファの出力端子は、入力線４３ａに接続される。
【０１０９】
第２の出力バッファ群４１ｂは、互いに異なる駆動力の少なくとも二つの出力バッファを含む。第２の出力バッファ群４１ｂに含まれる出力バッファは、入力端子および出力端子を有する。第２の出力バッファ群４１ｂの出力バッファの入力端子は、フィードバック配線４０１を介して論理回路群４６の出力に接続される。第２の出力バッファ群４１ｂの出力バッファの出力端子は、入力線４３ｂに接続される。
【０１１０】
論理回路群４６は、出力線４４ａに接続される。論理回路群４６には、オン状態の抵抗変化型素子４５を介して、信号が入力される。また、論理回路群４６は、フィードバック配線４０１を介して、第２の出力バッファ群４１ｂに接続される。そして、論理回路群４６の出力は、第２の出力バッファ群４１ｂを介して、クロスバスイッチ４２に入力される。なお、論理回路群４６に含まれる論理回路の構成や機能は、第３の実施形態と同様であるので、詳細な説明は省略する。
【０１１１】
クロスバスイッチ４２の出力線４４ａの出力は、論理回路群４６を構成するいずれかの基本論理要素の４入力のルックアップテーブルに入力される。ルックアップテーブルの出力は、フリップフロップに入力される。ルックアップテーブルおよびフリップフロップ回路の出力は、マルチプレクサに入力される。マルチプレクサは、ルックアップテーブルおよびフリップフロップから入力された信号のうちいずれかを選択して出力する。マルチプレクサからの出力が基本論理要素の出力となる。
【０１１２】
論理回路群４６を構成する基本論理要素の出力は、フィードバック配線４０１を介して第２の出力バッファ群４１ｂを構成するいずれかの出力バッファに入力される。そして、基本論理要素の出力は、第２の出力バッファ群４１ｂを構成するいずれかの出力バッファを介してクロスバスイッチ４２に入力される。
【０１１３】
本実施形態で示した基本論理要素は、プログラム可能な論理である。複数の基本論理要素を並べた構成とする場合、フィードバック配線に接続される出力バッファの種類を予め決めておけば、後でファンアウト数の多いユーザ論理に対して駆動力の高い出力バッファに接続された基本論理要素を割り当てることができる。このようにすれば、ファンアウト数の多い出力は駆動力の高い出力バッファで駆動することができる。そのため、本実施形態のように、プログラマブル出力バッファを用いなくても、第３の実施形態と実質的に同じ効果を得ることができる。
【０１１４】
プログラマブル出力バッファは、最大の駆動力を考慮して設計されることにより、最大の駆動力に対応したレイアウト面積が必要である。それに対し、予め駆動力の異なる出力バッファを用意しておけば、それぞれの駆動力に対応させてレイアウト面積を小さくすることが可能である。また、駆動力が同一の出力バッファを用いる場合と比較すると、等しいレイアウト面積でより大きく駆動力を変化させることができる。
【０１１５】
以上のように、本実施形態によれば、駆動力の異なる出力バッファを有するクロスバスイッチ回路を利用することによって、第３の実施形態よりもレイアウト面積を縮小することができる。また、本実施形態によれば、第３の実施形態と同様に、抵抗変化型素子を有するクロスバスイッチのファンアウト数に依存した伝搬遅延の影響を小さくすることによって回路性能を向上させることができる。
【０１１６】
（第５の実施形態）
次に、本発明の第１の実施形態に係る半導体装置について図面を参照しながら説明する。本実施形態の半導体装置は、第１〜第４の実施形態のプログラマブル論理回路が構成されるプログラマブル集積回路である。
【０１１７】
図１９は、本実施形態の半導体装置５の構成を示すブロック図である。半導体装置５は、出力バッファ群５１、クロスバスイッチ５２、論理回路群５６を有するプログラマブル論理回路５０（ユーザ回路とも呼ぶ）を備える。
【０１１８】
クロスバスイッチ５２は、第１の方向に配列された複数の第１の配線と、第１の方向に交差する第２の方向に配列された複数の第２の配線と、第１の配線と第２の配線とを接続する抵抗変化型素子とによって構成される。
【０１１９】
出力バッファ群５１は、異なる駆動力で動作する少なくとも二つの出力バッファによって構成される。出力バッファ群５１を構成する出力バッファは、複数の第１の配線のうちいずれかの入力側に接続される。
【０１２０】
論理回路群５６は、第２の配線の出力に接続される少なくとも一つの論理回路によって構成される。
【０１２１】
本実施形態のプログラマブル論理回路によれば、抵抗変化型素子を用いたクロスバスイッチ回路において、ファンアウト数に依存して発生しうる伝搬遅延とエレクトロマイグレーションとを低減できる。
【０１２２】
本実施形態の半導体装置は、クロスバ回路を用いた回路構成に限定されない。例えば、本実施形態の半導体装置は、ＤＲＡＭ（Dynamic Random Access Memory）や、ＳＲＡＭ（Static Random Access Memory）のようなメモリ回路を有する半導体装置として構成できる。また、本実施形態の半導体装置は、ＦｅＲＡＭ（Ferro Electric Random Access Memory）やＭＲＡＭ（Magnetic Random Access Memory）を有する半導体装置として構成できる。また、本実施形態の半導体装置は、フラッシュメモリやバイポーラトランジスタを有する半導体装置として構成できる。また、本実施形態の半導体装置は、マイクロプロセッサなどの論理回路を有する半導体装置として構成できる。また、本実施形態の半導体装置は、上述のようなメモリ回路や論理回路を混載した基板やパッケージなどの配線に対しても適用できる。
【０１２３】
（第６の実施形態）
次に、本発明の第６の実施形態の制御装置について図面を参照しながら説明する。本実施形態の制御装置は、第３の実施形態のプログラマブル論理回路３のコンフィグレーションデータを生成し、生成したコンフィグレーションデータに基づいてプログラマブル論理回路３をプログラマブル論理回路に実装する。
【０１２４】
（構成）
図２０は、本実施形態の制御装置６０の構成を示すブロック図である。図２０のように、制御装置６０は、入力部６１、論理合成部６２、マッピング部６３、クラスタ部６４、レイアウト部６５、駆動力決定部６６、記憶部６７、データ生成部６８、回路設定部６９を備える。制御装置６０は、第５の実施形態の半導体装置５と同様の構成を有する半導体装置６（プログラマブル集積回路とも呼ぶ）に接続される。
【０１２５】
入力部６１は、設計者が作成したユーザ回路の動作記述ファイルを入力とする。例えば、動作記述ファイルは、Ｖｅｒｉｌｏｇ−ＨＤＬ（Hardware Description Language）やＶＨＤＬ（Very high-speed integrated circuit HDL）などのハードウェア記述言語を用いて作成する。入力部６１は、入力した動作記述ファイルを論理合成部６２に出力する。
【０１２６】
論理合成部６２には、動作記述ファイルが入力部６１から入力される。論理合成部６２は、入力された動作記述ファイルを論理合成して、ユーザ回路に基づいたゲートレベルのネットリスト（第１レベルのネットリストとも呼ぶ）を作成する。論理合成部６２は、半導体装置６が備える基本論理回路を用いてゲートレベルのネットリストを作成する。論理合成部６２は、設計者が予め設定したタイミング制約情報を満たすように回路を最適化する。論理合成部６２は、作成したゲートレベルのネットリストをマッピング部６３に出力する。
【０１２７】
マッピング部６３には、ゲートレベルのネットリストが論理合成部６２から入力される。マッピング部６３は、設計者が予め設定したタイミング制約情報を満たすようにネットリストを最適化する。すなわち、マッピング部６３は、ユーザ回路に基づいたゲートレベルのネットリストをマッピングし、ＬＵＴ（Lookup Table）レベルのネットリスト（第２レベルのネットリストとも呼ぶ）に変換する。マッピング部６３は、ＬＵＴレベルに変換されたネットリストをクラスタ部６４に出力する。
【０１２８】
クラスタ部６４には、ＬＵＴレベルのネットリストがマッピング部６３から入力される。クラスタ部６４は、複数のＬＵＴおよびフリップフロップをグループ化し、実際のプログラマブル論理回路が有するクラスタ化した基本論理回路の構成に即したテクノロジーレベルのネットリスト（第３レベルのネットリストとも呼ぶ）を生成する。クラスタ部６４は、生成したテクノロジーレベルのネットリストをレイアウト部６５に出力する。
【０１２９】
レイアウト部６５には、テクノロジーレベルのネットリストがクラスタ部６４から入力される。レイアウト部６５は、クラスタ化された基本論理回路のアレイに対してテクノロジーレベルのネットリストの最適配置を計算する。そして、レイアウト部６５は、クラスタ化された基本論理回路に接続されたクロスバ回路を結線し、クラスタ内部および外部の配線を行う。すなわち、レイアウト部６５は、半導体装置６に実装するプログラマブル論理回路の配置配線処理を実行し、プログラマブル論理回路の構成情報を作成する。レイアウト部６５は、作成したプログラマブル論理回路の構成情報を駆動力決定部６６に出力する。
【０１３０】
駆動力決定部６６には、プログラマブル論理回路の構成情報がレイアウト部６５から入力される。駆動力決定部６６は、プログラマブル論理回路の構成情報からクロスバのファンアウト数を計算する。駆動力決定部６６は、記憶部６７に格納された参照テーブルを参照し、計算したファンアウト数に応じてプログラマブル出力バッファの駆動力を計算する。すなわち、駆動力決定部６６は、クロスバのファンアウト数に基づいてプログラマブル出力バッファの駆動力の最適化を行う。駆動力決定部６６は、算出したプログラマブル出力バッファの駆動力を含めたプログラマブル論理回路の構成情報をデータ生成部６８に出力する。
【０１３１】
記憶部６７には、クロスバのファンアウト数に対応するプログラマブル出力バッファの駆動力の値が格納される参照テーブルが記憶される。記憶部６７に格納される参照テーブルには、抵抗変化型素子のエレクトロマイグレーションの基準を満足する範囲で、ファンアウト数が大きい場合に遅延時間が小さくなるようにプログラマブル出力バッファの駆動力を大きくする条件が記憶される。
【０１３２】
データ生成部６８には、プログラマブル出力バッファの駆動力を含めたプログラマブル論理回路の構成情報が駆動力決定部６６から入力される。データ生成部６８は、構成情報に基づいて、半導体装置６にプログラマブル論理回路をプログラムするためのコンフィグレーションデータを生成する。データ生成部６８は、生成したコンフィグレーションデータを回路設定部６９に出力する。
【０１３３】
回路設定部６９には、コンフィグレーションデータがデータ生成部６８から入力される。回路設定部６９は、コンフィグレーションデータに基づいて、半導体装置６にプログラマブル論理回路をプログラムする。
【０１３４】
以上が、制御装置６０の構成についての説明である。次に、制御装置６０の動作について説明する。
【０１３５】
（動作）
図２１は、本実施形態の制御装置６０の動作について説明するためのフローチャートである。図２１のフローチャートに沿った説明においては、制御装置６０を動作主体として説明する。
【０１３６】
図２１において、まず、制御装置６０には、ユーザ回路の動作記述ファイルが入力される（ステップＳ６１）。
【０１３７】
次に、制御装置６０は、動作記述ファイルを論理合成して第１レベルのネットリストを作成する（ステップＳ６２）。
【０１３８】
次に、制御装置６０は、第１レベルのネットリストをマッピングして第２レベルのネットリストに変換する（ステップＳ６３）。
【０１３９】
次に、制御装置６０は、第２レベルのネットリストに含まれる複数のＬＵＴおよびフリップフロップからなる複数の論理要素をグループ化し、クラスタ化された基本論理要素の構成に即した第３レベルのネットリストを生成する（ステップＳ６４）。
【０１４０】
次に、制御装置６０は、クラスタ化された基本論理要素のアレイに対して第３レベルのネットリストの最適配置を計算する（ステップＳ６５）。
【０１４１】
次に、制御装置６０は、クラスタ化された基本論理要素に接続されたクロスバスイッチを結線し、クラスタの内部および外部の配線を行う（ステップＳ６６）。ステップＳ６５とステップＳ６６を経て、ユーザ回路の構成情報が作成される。
【０１４２】
次に、制御装置６０は、ユーザ回路の構成情報に基づいてクロスバスイッチの入力ごとにファンアウト数を計算し、ファンアウト数に応じてプログラマブル出力バッファの駆動力を決定する（ステップＳ６７）。
【０１４３】
次に、制御装置６０は、出力バッファの駆動力を含めたユーザ回路の構成情報に基づいて、半導体装置６にユーザ回路をプログラムするためのコンフィグレーションデータを生成する（ステップＳ６８）。
【０１４４】
そして、制御装置６０は、コンフィグレーションデータに基づいて、半導体装置６にユーザ回路をプログラムする。
【０１４５】
以上が、図２１のフローチャートに沿った制御装置６０の動作についての説明である。図２１のフローチャートに沿った処理を経ることによって、ユーザの回路記述を実現するプログラマブル論理回路がプログラマブル集積回路に設定される。
【０１４６】
以上のように、本実施形態によれば、クロスバスイッチ回路の交点に抵抗変化型素子を備えるプログラマブル集積回路にユーザの回路記述を実現するプログラマブル論理回路を実装できる。すなわち、本実施形態によれば、クロスバスイッチのファンアウト数に応じて、ファンアウト数の多い接続を持つ信号が入力されるクロスバ入力に接続されるバッファの駆動力を高めたコンフィグレーションパタンを生成できる。本実施形態の制御装置によって実装されるプログラマブル論理回路によれば、伝搬遅延の増加を改善するとともに、抵抗変化型素子のエレクトロマイグレーションによるストレスを改善できる。
【０１４７】
（第７の実施形態）
次に、本発明の第７の実施形態の制御装置について図面を参照しながら説明する。本実施形態の制御装置は、第４の実施形態のプログラマブル論理回路４のコンフィグレーションデータを生成し、生成したコンフィグレーションデータに基づいてプログラマブル論理回路４をプログラマブル論理回路に実装する。
【０１４８】
（構成）
図２２は、本実施形態の制御装置７０の構成を示すブロック図である。図２２のように、制御装置７０は、入力部７１、論理合成部７２、マッピング部７３、クラスタ部７４、割当部７５、レイアウト部７６、データ生成部７７、回路設定部７８を備える。制御装置６０は、第５の実施形態の半導体装置５と同様の構成を有する半導体装置７（プログラマブル集積回路とも呼ぶ）に接続される。
【０１４９】
入力部７１は、設計者が作成したユーザ回路の動作記述ファイルを入力とする。入力部７１は、第６の実施形態の入力部６１と同様の構成である。入力部７１は、入力した動作記述ファイルを論理合成部７２に出力する。
【０１５０】
論理合成部７２には、動作記述ファイルが入力部７１から入力される。論理合成部７２は、第６の実施形態の論理合成部６２と同様の構成である。論理合成部７２は、入力された動作記述ファイルを論理合成して、ユーザ回路に基づいたゲートレベルのネットリスト（第１レベルのネットリストとも呼ぶ）を作成する。論理合成部７２は、作成したゲートレベルのネットリストをマッピング部７３に出力する。
【０１５１】
マッピング部７３には、ゲートレベルのネットリストが論理合成部７２から入力される。マッピング部７３は、第６の実施形態のマッピング部６３と同様の構成である。マッピング部７３は、ユーザ回路に基づいたゲートレベルのネットリストをマッピングし、ＬＵＴレベルのネットリスト（第２レベルのネットリストとも呼ぶ）に変換する。マッピング部７３は、ＬＵＴレベルに変換されたネットリストをクラスタ部７４に出力する。
【０１５２】
クラスタ部７４には、ＬＵＴレベルのネットリストがマッピング部７３から入力される。クラスタ部７４は、第６の実施形態のクラスタ部６４と同様の構成である。クラスタ部７４は、複数のＬＵＴおよびフリップフロップをグループ化し、実際のプログラマブル論理回路が有するクラスタ化した基本論理回路の構成に即したテクノロジーレベルのネットリスト（第３レベルのネットリストとも呼ぶ）を生成する。クラスタ部７４は、生成したテクノロジーレベルのネットリストを割当部７５に出力する。
【０１５３】
割当部７５には、テクノロジーレベルのネットリストがクラスタ部７４から入力される。割当部７５は、テクノロジーレベルのネットリストからクロスバのファンアウト数を計算し、ファンアウト数の大きい順に駆動力の高い出力バッファに接続された基本論理要素回路にクロスバを割り当てる再クラスタ化する。割当部７５は、再クラスタ化したテクノロジーレベルのネットリストをレイアウト部７６に出力する。
【０１５４】
レイアウト部７６には、再クラスタ化されたテクノロジーレベルのネットリストが割当部７５から入力される。レイアウト部７６は、再クラスタ化された基本論理回路のアレイに対してテクノロジーレベルのネットリストの最適配置を計算する。そして、レイアウト部７６は、再クラスタ化された基本論理回路に接続されたクロスバ回路を結線し、クラスタ内部および外部の配線を行う。すなわち、レイアウト部７６は、半導体装置７に実装するプログラマブル論理回路の配置配線処理を実行し、プログラマブル論理回路の構成情報を作成する。レイアウト部７６は、作成したプログラマブル論理回路の構成情報をデータ生成部７７に出力する。
【０１５５】
データ生成部７７には、プログラマブル出力バッファの駆動力を含めたプログラマブル論理回路の構成情報がレイアウト部７６から入力される。データ生成部７７は、第６の実施形態のデータ生成部６８と同様の構成である。データ生成部７７は、構成情報に基づいて、半導体装置７にプログラマブル論理回路をプログラムするためのコンフィグレーションデータを生成する。データ生成部７７は、生成したコンフィグレーションデータを回路設定部７８に出力する。
【０１５６】
回路設定部７８には、コンフィグレーションデータがデータ生成部７７から入力される。回路設定部７８は、第６の実施形態の回路設定部６９と同様の構成である。回路設定部７８は、コンフィグレーションデータに基づいて、半導体装置７にプログラマブル論理回路をプログラムする。
【０１５７】
以上が、制御装置７０の構成についての説明である。次に、制御装置７０の動作について説明する。
【０１５８】
（動作）
図２３は、本実施形態の制御装置７０の動作について説明するためのフローチャートである。図２３のフローチャートに沿った説明においては、制御装置７０を動作主体として説明する。
【０１５９】
図２３において、まず、制御装置７０には、ユーザ回路の動作記述ファイルが入力される（ステップＳ７１）。
【０１６０】
次に、制御装置７０は、動作記述ファイルを論理合成して第１レベルのネットリストを作成する（ステップＳ７２）。
【０１６１】
次に、制御装置７０は、第１レベルのネットリストをマッピングして第２レベルのネットリストに変換する（ステップＳ７３）。
【０１６２】
次に、制御装置７０は、第２レベルのネットリストに含まれる複数のＬＵＴおよびフリップフロップからなる複数の論理要素をグループ化し、クラスタ化された基本論理要素の構成に即した第３レベルのネットリストを生成する（ステップＳ７４）。
【０１６３】
次に、制御装置７０は、第３レベルのネットリストに基づいてクロスバスイッチの入力ごとにファンアウト数を計算する。そして、制御装置７０は、ファンアウト数の大きい順に駆動力の高い出力バッファをクロスバスイッチの入力に割り当てて基本論理要素を再クラスタ化する（ステップＳ７５）。
【０１６４】
次に、制御装置７０は、再クラスタ化された基本論理回路のアレイに対して第３レベルのネットリストの最適配置を計算する（ステップＳ７６）。
【０１６５】
次に、制御装置７０は、再クラスタ化された基本論理回路に接続されたクロスバスイッチを結線し、クラスタの内部および外部の配線を行う（ステップＳ７７）。ステップＳ７６とステップＳ７７を経て、ユーザ回路の構成情報が作成される。
【０１６６】
次に、制御装置７０は、出力バッファの割り当てを含めたユーザ回路の構成情報に基づいて、半導体装置７にプユーザ回路をプログラムするためのコンフィグレーションデータを生成する（ステップＳ７８）。
【０１６７】
そして、制御装置７０は、コンフィグレーションデータに基づいて、半導体装置７にユーザ回路をプログラムする。
【０１６８】
以上が、図２３のフローチャートに沿った制御装置７０の動作についての説明である。図２３のフローチャートに沿った処理を経ることによって、ユーザの回路記述を実現するプログラマブル論理回路がプログラマブル集積回路に設定される。
【０１６９】
図２３のフローチャートに沿った処理は、駆動力が固定された複数の出力バッファを組み合わせた出力バッファ群を有するプログラマブル論理回路に適用する。図２３のフローチャートに沿った処理では、テクノロジーレベルのネットリストを参照し、ファンアウト数が多いネットに対して優先的に高い駆動力の出力バッファを有する基本論理回路を割り当てる。
【０１７０】
以上のように、本実施形態によれば、クロスバスイッチ回路の交点に抵抗変化型素子を備えるプログラマブル集積回路にユーザの回路記述を実現するプログラマブル論理回路を実装できる。すなわち、本実施形態によれば、クロスバスイッチのファンアウト数に応じて、ファンアウト数の多い接続を持つ信号を駆動能力の高いバッファを持つクロスバ入力に優先して割り当てるコンフィグレーションパタンを生成できる。本実施形態の制御装置によって実装されるプログラマブル論理回路によれば、伝搬遅延の増加を改善するとともに、抵抗変化型素子のエレクトロマイグレーションによるストレスを改善できる。
【０１７１】
（ハードウェア）
ここで、本発明の第６および第７の実施形態に係る制御装置を実現するハードウェア構成について、図２４の情報処理装置９０を一例として挙げて説明する。なお、図２４の情報処理装置９０は、各実施形態の制御装置を実現するための構成例であって、本発明の範囲を限定するものではない。
【０１７２】
図２４のように、情報処理装置９０は、プロセッサ９１、主記憶装置９２、補助記憶装置９３、入出力インターフェース９５および通信インターフェース９６を備える。図２４においては、インターフェースをＩ／Ｆ（Interface）と略して表記する。プロセッサ９１、主記憶装置９２、補助記憶装置９３、入出力インターフェース９５および通信インターフェース９６は、バス９９を介して互いにデータ通信可能に接続される。また、プロセッサ９１、主記憶装置９２、補助記憶装置９３および入出力インターフェース９５は、通信インターフェース９６を介して、インターネットやイントラネットなどのネットワークに接続される。
【０１７３】
プロセッサ９１は、補助記憶装置９３等に格納されたプログラムを主記憶装置９２に展開し、展開されたプログラムを実行する。本実施形態においては、情報処理装置９０にインストールされたソフトウェアプログラムを用いる構成とすればよい。プロセッサ９１は、本実施形態に係る制御装置による処理を実行する。
【０１７４】
主記憶装置９２は、プログラムが展開される領域を有する。主記憶装置９２は、例えばＤＲＡＭ（Dynamic Random Access Memory）などの揮発性メモリとすればよい。また、ＭＲＡＭ（Magnetoresistive Random Access Memory）などの不揮発性メモリを主記憶装置９２として構成・追加してもよい。
【０１７５】
補助記憶装置９３は、種々のデータを記憶する。補助記憶装置９３は、ハードディスクやフラッシュメモリなどのローカルディスクによって構成される。なお、種々のデータを主記憶装置９２に記憶させる構成とし、補助記憶装置９３を省略することも可能である。
【０１７６】
入出力インターフェース９５は、情報処理装置９０と周辺機器とを接続するためのインターフェースである。通信インターフェース９６は、規格や仕様に基づいて、インターネットやイントラネットなどのネットワークを通じて、外部のシステムや装置に接続するためのインターフェースである。入出力インターフェース９５および通信インターフェース９６は、外部機器と接続するインターフェースとして共通化してもよい。
【０１７７】
情報処理装置９０には、必要に応じて、キーボードやマウス、タッチパネルなどの入力機器を接続するように構成してもよい。それらの入力機器は、情報や設定の入力に使用される。なお、タッチパネルを入力機器として用いる場合は、表示機器の表示画面が入力機器のインターフェースを兼ねる構成とすればよい。プロセッサ９１と入力機器との間のデータ通信は、入出力インターフェース９５に仲介させればよい。
【０１７８】
また、情報処理装置９０には、情報を表示するための表示機器を備え付けてもよい。表示機器を備え付ける場合、情報処理装置９０には、表示機器の表示を制御するための表示制御装置（図示しない）が備えられていることが好ましい。表示機器は、入出力インターフェース９５を介して情報処理装置９０に接続すればよい。
【０１７９】
また、情報処理装置９０には、必要に応じて、ディスクドライブを備え付けてもよい。ディスクドライブは、バス９９に接続される。ディスクドライブは、プロセッサ９１と図示しない記録媒体（プログラム記録媒体）との間で、記録媒体からのデータ・プログラムの読み出し、情報処理装置９０の処理結果の記録媒体への書き込みなどを仲介する。記録媒体は、例えば、ＣＤ（Compact Disc）やＤＶＤ（Digital Versatile Disc）などの光学記録媒体で実現できる。また、記録媒体は、ＵＳＢ（Universal Serial Bus）メモリやＳＤ（Secure Digital）カードなどの半導体記録媒体や、フレキシブルディスクなどの磁気記録媒体、その他の記録媒体によって実現してもよい。
【０１８０】
以上が、本発明の各実施形態に係る制御装置を可能とするためのハードウェア構成の一例である。なお、図２４のハードウェア構成は、各実施形態に係る制御装置の演算処理を実行するためのハードウェア構成の一例であって、本発明の範囲を限定するものではない。また、各実施形態に係る制御装置に関する処理をコンピュータに実行させるプログラムも本発明の範囲に含まれる。さらに、各実施形態に係るプログラムを記録したプログラム記録媒体も本発明の範囲に含まれる。
【０１８１】
各実施形態の制御装置の構成要素は、任意に組み合わせることができる。また、各実施形態の制御装置の構成要素は、ソフトウェアによって実現してもよいし、回路によって実現してもよい。
【０１８２】
以上、実施形態を参照して本発明を説明してきたが、本発明は上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【０１８３】
この出願は、２０１７年９月２２日に出願された日本出願特願２０１７−１８２５７６を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【符号の説明】
【０１８４】
１、２、３、４、２０、５０    プログラマブル論理回路
５、６、７    半導体装置
１１、５１    出力バッファ群
１２、２２、３２、４２、５２    クロスバスイッチ
１３、２３ａ、２３ｂ、３３ａ、３３ｂ、４３ａ、４３ｂ    入力線
１４、２４ａ、２４ｂ、３４ａ、３４ｂ、４４ａ、４４ｂ    出力線
１５、２５、３５、４５    抵抗変化型素子
１６、２６、３６、４６、５６    論理回路群
２１ａ、３１ａ、４１ａ    第１の出力バッファ群
２１ｂ、３１ｂ、４１ｂ    第２の出力バッファ群
２１ｃ、３１ｃ、４１ｃ    第３の出力バッファ群
１１０    プログラマブル出力バッファ
１１１    バッファ回路
１１２    トライステートバッファ回路
１１７    入力端子
１１８    出力端子
１１９    駆動力設定端子
１４０    容量
１６０    入力容量
１５１    ユニポーラ型素子
１５２    バイポーラ型素子
１５３    抵抗変化型素子
２００    クラスタ構造
２０１、３０１、４０１    フィードバック配線
２０３、３０３、４０３    外部出力線
２１０    セグメント配線網
２２０    スイッチボックス
２２５    抵抗変化型素子
２２６    ビア
３６０    論理回路
３６１    ルックアップテーブル回路
３６２    フリップフロップ回路
３６３    マルチプレクサ回路
【図１】
2019059119.tif 000003
【図２】
2019059119.tif 000004
【図３】
2019059119.tif 000005
【図４】
2019059119.tif 000006
【図５】
2019059119.tif 000007
【図６】
2019059119.tif 000008
【図７】
2019059119.tif 000009
【図８】
2019059119.tif 000010
【図９】
2019059119.tif 000011
【図１０】
2019059119.tif 000012
【図１１】
2019059119.tif 000013
【図１２】
2019059119.tif 000014
【図１３】
2019059119.tif 000015
【図１４】
2019059119.tif 000016
【図１５】
2019059119.tif 000017
【図１６】
2019059119.tif 000018
【図１７】
2019059119.tif 000019
【図１８】
2019059119.tif 000020
【図１９】
2019059119.tif 000021
【図２０】
2019059119.tif 000022
【図２１】
2019059119.tif 000023
【図２２】
2019059119.tif 000024
【図２３】
2019059119.tif 000025
【図２４】
2019059119.tif 000026
【図２５】
2019059119.tif 000027
【図２６】
2019059119.tif 000028
【国際調査報告】
2019059119.tif 000029
2019059119.tif 000030
2019059119.tif 000031
2019059119.tif 000032
2019059119.tif 000033
2019059119.tif 000034
2019059119.tif 000035
2019059119.tif 000036