(57)【要約】面積・コスト・論理変更機能・動作周波数・フレキシビリティ・スループット・消費電力の各要素全てを改善できる集積回路と命令機能の変更が可能なリコンフィギュアブルプロセッサとを提供する。Ａ，Ｂ，Ｌ，Ｒの４入力，Ｘ，Ｙの２出力の基本セルを煉瓦状に敷き詰めてリコンフィギュアブルアレイを構成する。選択情報に基づきＡ／Ｌの選択，Ｂ／Ｒの選択がなされ，設定情報に基づき，Ａ／ＬとＢ，Ｂ／ＲとＡを入力とする論理演算出力及び入力の正／反転出力を隣接する基本セルに出力する。
2013024751.tif 000002
【特許請求の範囲】
【請求項１】
所定の形状を有する複数の基本セルを行列状に配置して構成したアレイを有する集積回路において，
前記基本セルは，論理再構成素子と，当該論理再構成素子の論理を決めるための記憶素子と，当該論理再構成素子に接続する複数の入力端子と複数の出力端子を備え，
行列配置の前記基本セルについて，行毎に所定ピッチずらすことによって前記アレイを構成し，
前記アレイを構成する前記基本セル間の電気接続が，以下の構成からなることを特徴とする集積回路。
（１）１つの基本セルの入力端子を，当該１つの基本セルに対して列方向に所定ピッチずらして隣接配置した他の基本セルの出力端子と電気接続する。
（２）前記１つの基本セルの他の入力端子を，当該１つの基本セルに対して行方向に隣接配置した他の基本セルの出力端子と電気接続する。
（３）前記（１）の基本セル間の接続及び前記（２）の基本セル間の接続を，前記１つの基本セル以外の前記アレイを構成する他の基本セルに対して行う。
【請求項２】
前記アレイを複数有し，
前記アレイ間を電気接続するインタフェース回路を備え，
前記インターフェース回路を介して前記複数のアレイ間で信号通信を行うことを特徴とする請求項１に記載の集積回路。
【請求項３】
前記インターフェース回路は，前記アレイから出力されるデータを記憶する記憶素子を有し，当該記憶素子が有する所定端子に所定信号を印加した場合に当該記憶素子の入力端子に入る信号を当該記憶素子の出力端子にバイパスする機能を備え，
前記記憶素子の前記所定端子に前記所定信号を印加した場合，前記インターフェース回路によって電気接続される前記アレイ間における信号通信をバイパスし，バイパスしない場合は前記記憶素子は前記アレイから出力されるデータを記憶する順序回路として動作することを特徴とする請求項２に記載の集積回路。
【請求項４】
前記アレイを構成する前記基本セルの出力端子を，当該基本セルに対して一段下の行にあってその行方向に位置する任意の基本セルの入力端子に接続するようにしたことを特徴とする請求項１乃至３の何れかに記載の集積回路。
【請求項５】
前記論理再構成素子の論理を決めるための前記記憶素子は第１，第２のＰＭＯＳトランジスタと第１，第２のＮＭＯＳトランジスタからなり以下の構成からなることを特徴とする請求項１乃至４の何れか記載の集積回路。
（１）第１のＰＭＯＳトランジスタと第１のＮＭＯＳトランジスタのドレイン同士が接続され，このドレインが第２のＰＭＯＳトランジスタと第２のＮＭＯＳトランジスタのゲートに接続される。
（２）第２のＰＭＯＳトランジスタと第２のＮＭＯＳトランジスタのドレイン同士が接続され，このドレインが第１のＮＭＯＳトランジスタのゲートに接続され，且つ，出力端子となる。
（３）第１のＰＭＯＳトランジスタのソースが前記論理再構成素子の論理コンフィグレーションデータの入力端子となる。
（４）第１のＮＭＯＳトランジスタのソースはＧＮＤ接続され，第２のＰＭＯＳトランジスタのソースは電源に接続される。
（５）第１のＰＭＯＳトランジスタのゲートはデータ入力のコントロールゲートとして機能する。
（６）第２のＮＭＯＳトランジスタのソースは初期状態で電源レベルに接続される。
（７）第２のＮＭＯＳトランジスタのソースは保持データ確定後，電源レベルからＧＮＤレベルに電位が遷移する。
（８）前記（１）〜（７）によって前記記憶素子が構成される。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，一般に集積回路に関し，詳しくは論理の再構成可能な集積回路と機能変更が可能な命令セットを持つリコンフィギュアブルプロセッサ及びコンパイル処理方法に関する。本発明は，同一出願人によるＰＣＴ／ＪＰ２０１１／０５３２２５記載発明（以下「基本発明」という。）の改良発明に関する。
【背景技術】
【０００２】
従来，半導体集積回路は専用ＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）を設計することで高い性能と小さなチップ面積と量産化によって低い製品コストを実現できるがアプリケーション別に個々の開発が必要であり，その開発費は拡大傾向にある。また，専用ＬＳＩは機能の変更が容易ではなく通常は機能変更が必要な場合は設計と製造プロセスの一部あるいは全部をやり直す必要がある。【０００３】
ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）での機能変更は製造プロセスの再実行は必要としないが，ＲＴＬ（Ｒｅｇｉｓｔｅｒ  Ｔｒａｎｓｆｅｒ  Ｌｅｖｅｌ）設計以降の設計プロセスは再実行する必要がある。特にタイミング設計では論理素子相互を接続する配線チャネルの長さがレイアウトするまでわからず，一般に配線チャネル経路の回り込みも大きいために専用ＬＳＩやＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）と比較して一般に動作周波数が低くなってしまい，その最高動作周波数は再設計の都度変動してしまうという問題がある。さらに，論理素子の相互接続に必要なチャネル領域を大きく必要としてしまうためにチップ面積も専用ＬＳＩと比較して数倍〜１０倍程度となってしまいコストを抑えることが難しい。【０００４】
プロセッサおよびＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）でのソフトウェアによる処理では機能変更への柔軟な対応が可能であり，汎用性が高いために量産が可能で一般に低コストであるが，積和演算やレジスタ単位での論理演算に比較してビット単位での演算は一般的に苦手である。また，複雑な通信処理や高度な画像処理では専用ＬＳＩと比較して性能を十分に得ることが難しく，性能を高めるためには動作周波数を上げるアプローチが一般的であるがこれは消費電力が大きくなってしまう問題がある。【０００５】
ＤＲＰ（Ｄｙｎａｍｉｃ  Ｒｅｃｏｎｆｉｇｕｒｅａｂｌｅ  Ｐｒｏｃｅｓｓｏｒ）は機能変更への対応が可能であり，一般的なプロセッサによるソフトウェア処理に比べて高速な処理を期待できるが，これまでの製品は論理再構成素子の素子数が１６〜１０２４個程度とＦＰＧＡと比較して少ないためにフレキシビリティに問題がある。また，論理再構成素子相互の接続に比較的大きな配線チャネル領域を必要とし，この配線チャネルで接続する配線の回り込みが大きい場合があるためにクリティカルパスとなる信号の伝播遅延が大きく，専用ＬＳＩと比較して一般に動作周波数を上げることが難しいという問題もある。さらに論理再構成素子のコンフィグレーション用メモリと論理再構成素子とを接続する配線チャネル領域も必要であり専用ＬＳＩやＡＳＩＣと比較して一般に面積が大きくなるためにコストを抑えることが難しいという問題があった。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０００−２３２１６２号公報
【特許文献２】特開２０００−１３８５７９号公報
【特許文献３】特開平９−７４３５１号公報
【特許文献４】特開平５−７４９３５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
これまでの集積回路では種別によりそれぞれ次のような欠点があった。
（１）高いスループットを実現できるが機能変更の要求に応じてその都度再設計と半導体製造プロセスが必要な専用ＬＳＩ。
（２）アプリケーション毎の半導体製造プロセスは必要ないが動作周波数とコストに問題があるＦＰＧＡ。
（３）汎用性があり機能変更への柔軟な対応が可能であるがビット単位の演算効率とスループットと消費電力に問題があるプロセッサおよびＤＳＰ。
（４）機能変更への柔軟な対応が可能であるがフレキシビリティと動作周波数に問題があるＤＲＰ。【０００８】
これらのどれもが論理素子の論理可変性・論理再構成素子の素子数・動作周波数・チップ面積・汎用性・消費電力・コストにおいてそれぞれ長所と短所を併せ持つためにアプリケーションや開発コストやビジネス状況に応じて集積回路製品の種別を適宜選択せざるを得なかった。
本発明はこれらの問題点に鑑みなされたものであり，従来の集積回路を改良するものである。
特に，論理再構成素子を備えた基本セル同士の電気接続（論理再構成素子の相互の電気接続）に配線チャネル領域を最小化できる集積回路を提供することを第１目的とする。
また，論理再構成素子を備えた基本セルをアレイ上に配置してリーフセルモジュールを構成した場合に，大規模な組み合わせ回路を柔軟に実現可能な集積回路を提供することを第２目的とする。
また，論理再構成素子を備えた基本セルをアレイ上に配置してリーフセルモジュールを構成した場合に，効率的な回路機能の実装が可能な集積回路を提供することを第３目的とする。
また，論理再構成素子の論理を決定する記憶素子の回路規模の大型化を抑制することができるようにすることを第４目的とする。
【課題を解決するための手段】
【０００９】
上記課題を解決するため，本発明の請求項１における集積回路においては，
所定の形状を有する複数の基本セルを行列状に配置して構成したアレイを有する集積回路において，
前記基本セルは，論理再構成素子と，当該論理再構成素子の論理を決めるための記憶素子と，当該論理再構成素子に接続する複数の入力端子と複数の出力端子を備え，
行列配置の前記基本セルについて，行毎に所定ピッチずらすことによって前記アレイを構成し，
前記アレイを構成する前記基本セル間の電気接続が，以下の構成からなることを特徴とする。
（１）１つの基本セルの入力端子を，当該１つの基本セルに対して列方向に所定ピッチずらして隣接配置した他の基本セルの出力端子と電気接続する。
（２）前記１つの基本セルの他の入力端子を，当該１つの基本セルに対して行方向に隣接配置した他の基本セルの出力端子と電気接続する。
（３）前記（１）の基本セル間の接続及び前記（２）の基本セル間の接続を，前記１つの基本セル以外の前記アレイを構成する他の基本セルに対して行う。
このような構成を有する請求項１に記載の発明によれば，論理再構成素子を備えた基本セルを行毎に所定ピッチずらして配置したアレイにおいて，１つの基本セルの入力端子を，この１つの基本セルに対して列方向に隣接配置する他の基本セルの出力端子と電気接続し，かつ，この１つの基本セルの他の入力端子を，この１つの基本セルに対して行方向に隣接配置する他の基本セルの出力端子と電気接続するといった基本セル同士の電気接続を，アレイを構成する他の基本セルに対しても施すようにしているので，論理再構成素子を備えた基本セル同士の電気接続（論理再構成素子の相互の電気接続）に配線チャネル領域を最小化できる集積回路を実現することができる。
また，本発明の請求項２によれば，請求項１に記載の集積回路において，
前記アレイを複数有し，
前記アレイ間を電気接続するインタフェース回路を備え，
前記インターフェース回路を介して前記複数のアレイ間で信号通信を行うことを特徴とする。
このような請求項２に記載の発明によれば，複数のアレイをインタフェース回路にて電気接続して信号通信を行う集積回路として構成することができるので，容易に拡張可能な大規模集積回路を実現することが可能となる。
また，本発明の請求項３によれば，請求項２に記載の集積回路において，
前記インターフェース回路は，前記アレイから出力されるデータを記憶する記憶素子を有し，当該記憶素子が有する所定端子に所定信号を印加した場合に当該記憶素子の入力端子に入る信号を当該記憶素子の出力端子にバイパスする機能を備え，
前記記憶素子の前記所定端子に前記所定信号を印加した場合，前記インターフェース回路によって電気接続される前記アレイ間における信号通信をバイパスし，バイパスしない場合は前記記憶素子は前記アレイから出力されるデータを記憶する順序回路として動作することを特徴とする。
このような構成を有する請求項3に記載の発明によれば，記憶素子の所定端子に所定信号を印加した場合，インターフェース回路によって電気接続されるアレイ間における信号通信をバイパスし，バイパスしない場合は記憶素子はアレイから出力されるデータを記憶する順序回路として動作ようにしているので，論理再構成素子を備えた基本セルをアレイ上に配置してリーフセルモジュールを構成した場合に，大規模な組み合わせ回路を柔軟に実現可能な集積回路とすることが可能となる。
また，本発明の請求項４によれば，請求項１乃至３の何れかに記載の集積回路において，
前記アレイを構成する前記基本セルの出力端子を，当該基本セルに対して一段下の行にあってその行方向に位置する任意の基本セルの入力端子に接続するようにしたことを特徴とする。
このような請求項４に記載の発明によれば，アレイを構成する基本セルの出力端子を，当該基本セルに対して一段下の行にあってその行方向に位置する任意の基本セルの入力端子に接続するようにしたので，効率的な回路機能の実装が可能となる。
また，本発明の請求項５によれば，請求項１乃至５の何れか記載の集積回路において，
前記論理再構成素子の論理を決めるための前記記憶素子は第１，第２のＰＭＯＳトランジスタと第１，第２のＮＭＯＳトランジスタからなり以下の構成からなることを特徴とする。
（１）第１のＰＭＯＳトランジスタと第１のＮＭＯＳトランジスタのドレイン同士が接続され，このドレインが第２のＰＭＯＳトランジスタと第２のＮＭＯＳトランジスタのゲートに接続される。
（２）第２のＰＭＯＳトランジスタと第２のＮＭＯＳトランジスタのドレイン同士が接続され，このドレインが第１のＮＭＯＳトランジスタのゲートに接続され，且つ，出力端子となる。
（３）第１のＰＭＯＳトランジスタのソースが前記論理再構成素子の論理コンフィグレーションデータの入力端子となる。
（４）第１のＮＭＯＳトランジスタのソースはＧＮＤ接続され，第２のＰＭＯＳトランジスタのソースは電源に接続される。
（５）第１のＰＭＯＳトランジスタのゲートはデータ入力のコントロールゲートとして機能する。
（６）第２のＮＭＯＳトランジスタのソースは初期状態で電源レベルに接続される。
（７）第２のＮＭＯＳトランジスタのソースは保持データ確定後，電源レベルからＧＮＤレベルに電位が遷移する。
（８）前記（１）〜（７）によって前記記憶素子が構成される。
このような構成を有する求項５の記載の発明によれば，論理構成素子の論理を決めるための記憶素子を２つのＰＭＯＳトランジスタと２つのＮＭＯＳトランジスタから請求項５のように構成するようにしたので，論理再構成素子の回路規模の大型化を抑制することができるようになる。
【発明の効果】
【００１０】
本発明によれば，論理再構成素子を備えた基本セルを行毎に所定ピッチずらして配置したアレイにおいて，１つの基本セルの入力端子を，この１つの基本セルに対して列方向に隣接配置する他の基本セルの出力端子と電気接続し，かつ，この１つの基本セルの他の入力端子を，この１つの基本セルに対して行方向に隣接配置する他の基本セルの出力端子と電気接続するといった基本セル同士の電気接続を，アレイを構成する他の基本セルに対しても施すようにしているので，論理再構成素子を備えた基本セル同士の電気接続（論理再構成素子の相互の電気接続）に配線チャネル領域を最小化できる集積回路を実現することができる。
【図面の簡単な説明】
【００１１】
【図１】基本発明のリーフセルの回路例である。
【図２】基本発明のリーフセルを複数規則配置したリーフセルモジュールの回路例である。
【図３】基本発明の複数規則配置したリーフセルとフィードバック回路の例である。
【図４】基本発明のインタフェース回路を介した複合リーフセルモジュールの例である。
【図５】基本発明のリーフセルモジュールをバスに接続した集積回路例である。
【図６】基本発明のリコンフィギュアブルプロセッサのアーキテクチャの例である。
【図７】基本発明のリコンフィギュアブルプロセッサとリーフセルモジュールをバスに接続した集積回路例である。
【図８】基本発明のリコンフィギュアブルプロセッサのコンパイルの処理フローである。
【図９】基本発明の集積回路の具体例である。
【図１０】基本発明の原理を説明する論理式である。
【図１１】基本発明の論理再構成素子の概念図である。
【図１２】図１０の論理式を２つ用いた基本セルを示す図である。
【図１３】基本セルの動作を説明した図である。
【図１４】基本セルの動作を説明した図である。
【図１５】基本セルの動作を説明した図である。
【図１６】基本発明のアレイとその機能を説明した図である。
【図１７】基本発明の実施例にかかる論理素子ブロックのゲートレベルの回路図である。
【図１８】基本発明の実施例にかかる論理再構成素子の真理値表である。
【図１９】基本発明の実施例にかかる基本セルのゲートレベルの回路図である。
【図２０】基本発明の実施例にかかる基本セルのトランジスタレベルの回路図である。
【図２１】基本発明の実施例にかかるアレイのゲートレベルの回路図である。
【図２２】基本発明の実施例にかかるアレイのゲートレベルの回路図である。
【図２３】基本発明の変形例にかかる基本セルのゲートレベルの回路図である。
【図２４】基本発明の変形例にかかる基本セルのトランジスタレベルの回路図である。
【図２５】基本発明の変形例にかかるアレイのゲートレベルの回路図である。
【図２６】基本発明の変形例にかかるアレイのゲートレベルの回路図である。
【図２７】基本発明の変形例にかかるアレイのゲートレベルの回路図である。
【図２８】基本発明の実施例にかかるアレイ及びサブアレイの配置図である。
【図２９】基本発明の実施例の使用例である。
【図３０】基本発明の実施例の使用例である。
【図３１】基本発明の実施例の使用例である。
【図３２】本発明の実施例を示す図（基本発明の変形例）である。
【図３３Ａ】本発明の図３２に示す実施例の一使用形態である。
【図３３Ｂ】本発明の実施例の変形例である。
【図３３Ｃ】本発明の図３３Ｂの実施例に示される基本セルの詳細回路である。
【図３３Ｄ】本発明の図３３Ｃの真理値表である。
【図３３Ｅ】本発明の図３３Ｃの真理値表である。
【図３３Ｆ】基本発明の論理マッピングの例である。
【図３３Ｇ】本発明の図３３Ｂの回路構成に対する論理マッピングの例である。
【図３４】本発明のロジックセルコンパイラの処理フローである。
【図３５】図２０，２４の回路に対しトランジスタ数を削減した本発明の回路図である。
【図３６】本発明の図３５の真理値表である。
【図３７】本発明の図３５の回路を実現するためのトランジスタを示す図である。
【図３８Ａ】本発明の変形例の回路図である。
【図３８Ｂ】本発明の変形例の回路図である。
【図３８Ｃ】本発明の図３８Ａ，Ｂの回路構成に対する真理値表である。
【図３８Ｄ】本発明の図３８Ａ，Ｂの回路構成に対する真理値表である。
【図３９】本発明の実施例のさらなる変形例である。
【図４０】本発明の図３９の回路構成に対する真理値表である。
【図４１】本発明の図３８Ａ，Ｂの回路図のトランスファーゲートを変えた変形例である。
【図４２】本発明にかかるバイパス機能を持ったＤフリップフロップの図である。
【図４３】本発明の図４２の回路構成に対する真理値表である。
【図４４】本発明のサイドループ接続を示すアレイの配置図である。
【発明を実施するための形態】
【００１２】
１−１  基本発明の概要
【００１３】
以下基本発明の概要を説明する。
なお，以下で説明する図面における配線について，２本の線が十字状に交差（クロス）する場合（記載）は互いに電気接続していないことを示し，また，２本の線がＴ字状に交差する場合（記載）は互いに電気的に接続している状態を表している。
【００１４】
基本発明のリーフセル（基本セル）７と呼ばれる集積回路の基本構成単位は，図１に示されるように積和論理あるいは和積論理あるいは環和論理等の回路で構成される複数の論理再構成素子１と論理再構成素子１の論理を定義するためのラッチまたはフリップフロップまたはＳＲＡＭまたはＤＲＡＭまたはフラッシュメモリ等のメモリ素子で構成される複数の論理コンフィグレーション用（論理再構成用）メモリ素子２（論理再構成素子１の論理を決めるための記憶素子）と論理データ信号チャネル３と論理コンフィグレーション用データチャネル４と論理コンフィグレーション用メモリ素子２の制御信号チャネル５と入力および出力信号端子６とを基本構成単位とする。ここで論理再構成素子１と論理コンフィグレーション用メモリ素子２とを合わせて論理素子ブロックという。これをマニュアル設計またはＣＡＤツールを駆使した高度な設計をすることで高密度化し，論理データ信号の伝播遅延と消費電力と面積とを最適にする。また全ての論理データ入力信号をそれぞれ全ての論理再構成素子１の入力とすることでリーフセル７の入力端子と出力端子間の信号経路の変更と分岐とを実現し，論理コンフィグレーション用メモリ素子２の情報を書換えることで論理再構成素子１の論理の変更をも実現する。
【００１５】
マニュアル設計した論理再構成可能なリーフセル７を例えば図２に示すように複数煉瓦積みのように規則配置（リーフセル７を行毎にずらして行列状に敷き詰めたアレイとして配置）し，図示上下で隣接する論理再構成可能なリーフセル７の論理データ信号端子間の伝播遅延時間と論理コンフィグレーション用メモリ素子２のデータ信号端子間の距離が最小になるようにする。この煉瓦積みのように規則配置したリーフセル７の論理コンフィグレーション用メモリ素子２の情報を書換えることで論理の変更と信号経路の変更および分岐が可能となる。
【００１６】
図３において，規則配置した論理再構成可能なリーフセル７で構成された論理再構成可能なリーフセルモジュール（サブアレイ）７１の前後にそれぞれ信号セレクタとフリップフロッップ回路またはラッチ回路等の記憶素子を論理データ信号毎に配置する。リーフセルモジュール７１の論理データ出力信号をそれぞれ論理データ信号セレクタ８を介してフリップフロッップ回路またはラッチ回路等の記憶素子９の論理データ入力に接続する。フリップフロッップ回路またはラッチ回路等の記憶素子９の論理データ出力信号をフィードバック信号セレクタ１０を介して前段のフィードバック信号セレクタ１１までフィードバックする。前段の論理データ信号セレクタ１２を介して前段のフリップフロッップ回路またはラッチ回路等の記憶素子１３の論理データ入力にフィードバック接続する。記憶素子１３は論理回路を実現するための順序回路として機能するものであって，論理データ信号セレクタ１２の出力信号データを記憶するものである。
ここでフィードバック信号セレクタ１１，論理データ信号セレクタ１２，フリップフロッップ回路またはラッチ回路等の記憶素子（順序回路）１３によりフィードバック回路（リーフセルモジュールのインタフェース回路）が構成される。また，このフィードバック回路の図示上下に位置する（配置される）リーフセル７を各々列方向に並べた複数のリーフセルモジュール７１をサブアレイとして構成している。その結果，論理データ信号の記憶と論理データ信号のフィードバックとをリーフセルモジュール７１単位でスケーラブルに実現できる。すなわち，複数のサブアレイ７１をインタフェース回路にて電気接続して信号通信を行う集積回路として構成することができるので，容易に拡張可能な大規模集積回路を実現することが可能となる。
図３では，サブアレイ７１の行を４段として構成しているが，インタフェース回路の間に入れるサブアレイ７１の行を４段以外にすることもできる。このように，規則配置される論理再構成可能なリーフセル７とフリップフロッップ回路またはラッチ回路等の記憶素子９，１３との構成比率によって論理データ信号を記憶する記憶容量を任意に設定できる。
【００１７】
基本発明の集積回路は論理コンフィグレーション用メモリ素子の情報を書換えることで信号経路と論理とを同時に再構成できる。このことは専用のテスト回路を必要とせずにテスト回路をも再構成することが可能であり，自己診断回路を再構成して回路の自己テストをも行うことができる。回路テストの結果，故障が発見された場合にはやはり論理コンフィグレーション用メモリ素子２の情報を書換えることで故障回路を迂回する信号経路を再構成することで故障箇所が存在しても回路を動作させることが可能となる。
【００１８】
規則配置した論理再構成可能なリーフセル７で構成した複数の論理再構成可能なリーフセルモジュール群１４をリーフセルモジュール群インタフェース回路１５を介して論理再構成可能なリーフセルモジュール群１４を複数連続的に接続して機能を拡張する方式の例を示す。図４は論理再構成可能なリーフセルモジュール群１４を２つ接続した場合の複合的なモジュールの例である。，リーフセルモジュール群１４は図３におけるリーフセルモジュール７１とフィードバック回路（リーフセルモジュールのインタフェース回路）に相当する回路である。それぞれの論理再構成可能なリーフセルモジュール群１４には論理コンフィグレーション制御回路１６が接続される。リーフセル７内にあるコンフィグレーションメモリ素子への論理コンフィグレーション情報の書き込みと保持と消去の制御を行う。また，コンフィグレーションメモリ素子は構造的にリーフセルモジュール郡１４に分散配置されるため，論理コンフィグレーション制御回路１６とリーフセルモジュール群１４間の信号チャネル領域を一般的なＦＰＧＡやＤＲＰと比較して小さくすることが可能となる。
【００１９】
論理再構成可能なリーフセルモジュール郡１４はシステムバスまたはローカルバス１７にバスインタフェース回路１８とリーフセルモジュール群インタフェース回路１５を介して１つまたは複数の論理再構成可能なリーフセルモジュール群１４を接続することができる。図５は２つの論理再構成可能なリーフセルモジュール群１４で複合モジュールを構成し，これをバスに接続した回路構成例である。
【００２０】
規則配置した論理再構成可能なリーフセルモジュール群１９はプロセッサへの応用も可能であり，図６は論理再構成可能なリーフセルモジュール群１９をプロセッサの命令実行処理回路のデータパスに挿入し，各リーフセル７に配置された論理コンフィグレーション用メモリ素子２の情報を書換えることで命令セットの機能を変更できるようにしたリコンフィギュアブルプロセッサのアーキテクチャの例である。これは，ＡＬＵ（Ａｒｉｔｈｍｅｔｉｃ  Ｌｏｇｉｃ  Ｕｎｉｔ）２０で実行される命令とリーフセルモジュール群１４による機能変更可能な命令セットとを併せ持つプロセッサアーキテクチャである。このアーキテクチャの例では制御ユニット２１でデコードされたインストラクションに従い，機能変更可能な命令であればインストラクション機能変更制御回路２２が機能の変更情報と機能変更のタイミング情報とを生成し，これらの情報に従ってリーフセルモジュール群コンフィグレーション制御回路２３がリーフセルモジュール群１４の論理機能を再構成する。また機能変更を行わない通常の命令は従来通りＡＬＵ２０によって実行される。
【００２１】
基本発明の規則配置した論理再構成可能なリーフセルモジュール群１４と機能変更可能な命令セットを持つリコンフィギュアブルプロセッサ２５はどちらもシステムバスあるいはローカルバスにバスインタフェース回路を介してそれぞれ１つまたは複数接続できる。図７はシステムバス２４に機能変更可能な命令セットを持つリコンフィギュアブルプロセッサ２５と３つの複合リーフセルモジュール２６とメモリコントローラ２７を接続し，さらにバスブリッジ２８を介してローカルバス２９に論理再構成可能なリーフセルモジュール群３０とペリフェラル３１とを接続したシステム構成の例である。
【００２２】
図８は機能変更可能な命令セットを持つプロセッサのコンパイル方式のフローチャートである。Ｃ＋＋言語やＪＡＶＡ（登録商標）言語といった高級言語３２でプログラムされたソースプログラムコードをリコンフィギュアブルプロセッサの通常の命令セットあるいは機能変更可能な命令セットのデフォルトとして定義される命令セットのみを使った１次コンパイラ３３でコンパイルし，１次オブジェクト３４を生成する。この１次オブジェクトに現れるオブジェクトコードの出現頻度・機能・組合わせ・出現順等の情報とリコンフィギュアブルプロセッサの各レジスタ情報・スタック情報・レジスタファイル情報・プログラムカウンタ情報・パイプライン状態等の情報とを解析するオブジェクトコード解析処理３５を行って，機能変更可能命令の最適命令コード３６を生成する。またオブジェクトコード解析への入力としてサードパーティ製の１次オブジェクト３７を利用することも可能である。２次コンパイラ３８は最適に機能変更された最適命令コード３６と１次オブジェクト３４またはサードパーティ製の１次オブジェクト３７とを入力として最適に機能定義された最適命令コード３６を使ったよりステップ数の少ない最適オブジェクトコードへの置換えと，置換えにより削減されたコードのアドレスに対応した相対ジャンプアドレスまたは絶対ジャンプアドレスまたは参照データアドレス等のアドレスのリロケーションとを行い，２次オブジェクト３９を生成する。最後にリンカ４０によって２次オブジェクト３９がリンクされ，実行可能なバイナリコード４１が生成される。ここで生成された２次オブジェクトは１次オブジェクトよりもオブジェクトコードのステップ数が少ないことが特徴であり，これによってプロセッサのスループットが向上する。
【００２３】
基本発明の具体的なＳｏＣ（Ｓｙｓｔｅｍ  ｏｎ  Ｃｈｉｐ）の例を図９に示す。この例ではシステムバスに１つの機能変更可能な命令セットを持つリコンフィギュアブルプロセッサと２つの論理再構成可能なリーフセルモジュール群５０とメモリコントローラ５１とＵＳＢコントローラ５２とイーサネット（登録商標）コントローラ５３とを接続し，さらにバスブリッジ５４を介してローカルバス５５に論理再構成可能なリーフセルモジュールとペリフェラルとしてフラッシュメモリインタフェース５６とＩ２Ｃインタフェース５７とＧＰＩＯインタフェース５８を集積した集積回路を示している。
【００２４】
１−２  基本発明の別の観点からの説明
【００２５】
以下，基本発明をさらに別の観点から説明する。
【００２６】
基本発明の集積回路は，所定の形状を有する基本セルを行列状に敷き詰めて構成したアレイを有する集積回路である。基本セルは，第１の信号が供給される第１の入力端子と，第２の信号が供給される第２の入力端子と，第１及び第２の入力端子と対向する位置にある第１及び第２の出力端子と，第１の信号及び第２の信号をうけて，第１の設定情報に従い第１の信号及び第２の信号の論理演算結果にかかる信号，第１の信号若しくはその反転信号，又は第２の信号若しくはその反転信号のいずれかを第１の出力端子に供給する第１の論理素子ブロックと，第１の信号及び第２の信号をうけて，第２の設定情報に従い第１の信号及び第２の信号の論理演算結果にかかる信号，第１の信号若しくはその反転信号，又は第２の信号若しくはその反転信号のいずれかを第２の出力端子に供給する第２の論理素子ブロックと，を具備する。
【００２７】
基本セルは，さらに，第１の設定情報を記憶する第１の記憶素子群と，第２の設定情報を記憶する第２の記憶素子群とを具備することが望ましい。
【００２８】
第１の記憶素子群及び第２の記憶素子群はいずれも複数のフリップフロップ回路から構成され，これらフリップフロップに第１の設定情報及び第２の設定情報を供給するためのデータ配線群が列方向に形成され，これらフリップフロップに第１の設定情報及び第２の設定情報をラッチするための制御信号配線が行方向に形成されていることが望ましい。
【００２９】
第１の論理素子ブロックは４つの３入力論理ゲートと，これら３入力論理ゲートの各出力が入力される４入力論理ゲートとから構成され，３入力論理ゲートには，いずれも，第１の設定情報，第１の信号又はその反転信号，及び第２の信号又はその反転信号がそれぞれ入力され，第２の論理素子ブロックは４つの３入力論理ゲートと，これら３入力論理ゲートの各出力が入力される４入力論理ゲートとから構成され，３入力論理ゲートには，いずれも，第２の設定情報，第１の信号又はその反転信号，及び第２の信号又はその反転信号がそれぞれ入力されることが望ましい。
【００３０】
アレイは，基本セルを第１の行において所定のピッチで配列し，第１の行に隣接する第２の行において，半ピッチシフトさせつつ所定のピッチで配列することによって，第１の行の基本セルの第２の出力端子が第２の行の基本セルの第１の入力端子に接続され，第１の行の基本セルの第１の出力端子が第２の行の基本セルの第２の入力端子に接続されるように基本セルを敷き詰めて構成することが望ましい。
【００３１】
アレイは，基本セルをｎ行配列した基本セルを奇数行（１，３，・・・ｎ−１行）において所定のピッチで配列し，基本セルを偶数行（２，４，・・・ｎ行）において，半ピッチシフトさせつつ所定のピッチで配列することによって，奇数行の基本セルの第２の出力端子が偶数行の基本セルの第１の入力端子に接続され，奇数行の基本セルの第１の出力端子が偶数行の基本セルの第２の入力端子に接続されるように基本セルを敷き詰めて構成したサブアレイを有し，サブアレイの一端にはｎ行目の各基本セルの出力をラッチするラッチ回路からなるラッチ回路行を有することが望ましい。
【００３２】
アレイは，さらに，ラッチ回路の出力を１行の基本セルの第１の入力端子又は第２の入力端子に戻すためのフィードバック配線を有することが望ましい。
【００３３】
アレイは，基本セルをｍ行配列してなり，さらに，集積回路は，データの転送を行うバスと，アレイの第１辺に沿って形成され，バスから供給されるデータを，アレイ中の１行目の基本セルの第１の入力端子又は第２の入力端子若しくはその両者に供給する第１のバスインターフェース回路と，アレイ中のｍ行目の基本セルの第１の出力端子又は第２の出力端子若しくはその両者から供給されるデータを，バスに供給する第２のバスインターフェース回路とを有することが望ましい。
【００３４】
集積回路は，さらに，バスに接続された，所定の機能を有する機能ブロックを具備することが望ましい。
【００３５】
アレイは，基本セルをｍ行配列してなり，さらに，集積回路は，データの転送を行う第１のデータバス，第２のデータバス及び第３のデータバスを有し，第１のデータバス及び第２のデータバスをそれぞれ入力とし，第３のデータバスに論理演算結果を出力する論理演算回路と，アレイ中の１行目の基本セルの第１の入力端子又は第２の入力端子若しくはその両者は第１のデータバス又は第２のデータバスが接続され，アレイ中のｍ行目の基本セルの第１の出力端子又は第２の出力端子若しくはその両者は第３のデータバスに接続されていることが望ましい。
【００３６】
集積回路は，さらに，第１の設定情報及び第２の設定情報を，動的に再設定する制御回路を具備することが望ましい。
【００３７】
さらに，上記目的を達成するために，基本発明においては，さらに，集積回路の使用方法が提供される。
【００３８】
上記した集積回路の使用方法において，第１の論理素子ブロックが，第２の信号又はその反転信号のいずれかを第１の出力端子に供給するように，第１の設定情報を設定するか，又は，第２の論理素子ブロックが，第１の信号又はその反転信号のいずれかを第２の出力端子に供給するように，第１の設定情報を設定することにより，第１の論理素子ブロック又は第２の論理素子ブロックを，実質的に斜め方向に走る配線と同一の作用を呈させることが望ましい。  
上記した集積回路の使用方法において，第１の設定情報及び第２の設定情報を，動的に再設定することが望ましい。
【００３９】
上記した集積回路の使用方法において，基本セルの動作をテストすることによって不良セルを検出し，検出によって不良セルとされた基本セルを迂回するように第１の設定情報及び第２の設定情報を設定することが望ましい。
【００４０】
１−３  基本発明の数学的基礎及び基本発明の原理に関する説明
【００４１】
ブール代数においては，図１０に定義する論理式において，適切なＳ０，Ｓ１，Ｓ２，Ｓ３を選択することによって，すべての論理演算を実現することができる。
【００４２】
図１１に再構成可能な論理再構成素子のモデル（概念図）５９を示す。図１１は，入力信号ｘ１（Ｉｎｐｕｔ  ｘ１）及び入力信号ｘ２（Ｉｎｐｕｔ  ｘ２）を受けて，どのような論理演算結果でも出力可能な信号ｆ１（ｘ１，  ｘ２）を出力する論理再構成素子として示されている。そして，Ｓ０＝０，Ｓ１＝１，Ｓ２＝０，Ｓ３＝１を選択することによって，出力信号ｆ１（ｘ１，ｘ２）＝ｘ２とすることができる。この選択によって，入力信号ｘ２が，あたかも配線のように，出力信号出力信号ｆ１（ｘ１，ｘ２）に結び付けられている。言い換えれば，適切なＳ０，Ｓ１，Ｓ２，Ｓ３を選択することによって，論理再構成素子を配線として機能させることができる。
【００４３】
図１２は，図１０の論理式を２つ用い，２つの入力信号から２つの出力信号が得られる基本セルを示した図である。適切なＳ００，Ｓ０１，Ｓ０２，Ｓ０３，Ｓ１０，Ｓ１１，Ｓ１２，Ｓ１３を選択することによって，すべての論理演算の組み合わせを実現することができる。
【００４４】
図１３に示すように，２つの論理再構成素子を用いて，入力信号ｘ１（Ｉｎｐｕｔ  ｘ１）を受けて出力信号ｆ２（ｘ１，  ｘ２）＝ｘ１を出力し，入力信号ｘ２（Ｉｎｐｕｔ  ｘ２）を受けて出力信号ｆ１（ｘ１，  ｘ２）＝ｘ２を出力する信号の経路選択機能を基本セルに実装することができる。ここで，Ｓ００＝０，Ｓ０１＝１，Ｓ０２＝０，Ｓ０３＝１を選択し，Ｓ１０＝０，Ｓ１１＝０，Ｓ１２＝１，Ｓ１３＝１を選択することによって，出力信号ｆ１（ｘ１，ｘ２）＝ｘ２，出力信号ｆ２（ｘ１，ｘ２）＝ｘ１とすることができる。この選択によって，入力信号ｘ２が，あたかも配線のように，出力信号出力信号ｆ１（ｘ１，ｘ２）に結び付けられ，入力信号ｘ１が，あたかも配線のように，出力信号出力信号ｆ２（ｘ１，ｘ２）に結び付けられている。言い換えれば，適切なＳ００，Ｓ０１，Ｓ０２，Ｓ０３，Ｓ１０，Ｓ１１，Ｓ１２，Ｓ１３を選択することによって，２つの論理再構成素子交差配線として機能させることができる。
【００４５】
図１４は，２つの論理再構成素子を用いて，出力信号ｆ１（ｘ１，ｘ２）＝ｘ２，出力信号ｆ２（ｘ１，ｘ２）＝ｘ２とした例である。つまり，入力信号ｘ２（Ｉｎｐｕｔ  ｘ１）を受けて出力信号ｆ２（ｘ１，  ｘ２）＝ｘ２を出力し，かつ，入力信号ｘ２（Ｉｎｐｕｔ  ｘ２）を受けて出力信号ｆ１（ｘ１，  ｘ２）＝ｘ２を出力する信号の分岐機能を基本セルに実装することができる。Ｓ００＝０，Ｓ０１＝１，Ｓ０２＝０，Ｓ０３＝１を選択し，Ｓ１０＝１，Ｓ１１＝１，Ｓ１２＝０，Ｓ１３＝０を選択することによってこのような論理を実現することができる。言い換えれば，適切なＳ００，Ｓ０１，Ｓ０２，Ｓ０３，Ｓ１０，Ｓ１１，Ｓ１２，Ｓ１３を選択することによって，２つの論理再構成素子を入力信号ｘ２の分岐配線として機能させることができる。
【００４６】
図１５は，２つの論理再構成素子を用いて，出力信号ｆ１（ｘ１，ｘ２）＝ｘ１，出力信号ｆ２（ｘ１，ｘ２）＝ｘ１とした例である。つまり，入力信号ｘ１（Ｉｎｐｕｔ  ｘ１）を受けて出力信号ｆ２（ｘ１，  ｘ２）＝ｘ１を出力し，かつ，入力信号ｘ１（Ｉｎｐｕｔ  ｘ２）を受けて出力信号ｆ１（ｘ１，  ｘ２）＝ｘ１を出力する信号の分岐機能を基本セルに実装することができる。Ｓ００＝０，Ｓ０１＝０，Ｓ０２＝１，Ｓ０３＝１を選択し，Ｓ１０＝０，Ｓ１１＝０，Ｓ１２＝１，Ｓ１３＝１を選択することによってこのような論理を実現することができる。言い換えれば，適切なＳ００，Ｓ０１，Ｓ０２，Ｓ０３，Ｓ１０，Ｓ１１，Ｓ１２，Ｓ１３を選択することによって，２つの論理再構成素子を入力信号ｘ１の分岐配線として機能させることができる。
【００４７】
図１６は，図１２及び図１３に記載された基本セル（リーフセル）６０を敷き詰めてアレイ状に構成した例である。このアレイは，基本セルを１行目及び奇数行において所定のピッチ（同一ピッチ）で配列し，２行目及び偶数行において，半ピッチシフトさせつつ所定のピッチ（同一ピッチ）で配列している。
【００４８】
１行目及び奇数行の基本セルの出力信号ｆ２（ｘ１，ｘ２）が２行目及び偶数行の基本セルの入力信号ｘ１に，１行目及び奇数行の基本セルの出力信号ｆ１（ｘ１，ｘ２）が２行目及び偶数行の基本セルの入力信号ｘ２にそれぞれ接続されるように配列している。
【００４９】
このように構成し，かつ，基本セルのＳ００，Ｓ０１，Ｓ０２，Ｓ０３，Ｓ１０，Ｓ１１，Ｓ１２，Ｓ１３を適切に選択することによって，基本セルを交差配線（図１３），分岐配線（図１４，図１５），斜め配線などとして機能させることにより，斜め方向に信号を伝達することが可能になる。その結果，ＦＰＧＡ等で必要とされていた，基本セル間の配線領域をなくすことが可能になり，小さくすることが可能になる。
【実施例】
【００５０】
２−１  論理素子ブロックの構成【００５１】
図１７は，上記した論理再構成素子及び論理再構成素子の機能を設定するための設定情報を記憶する記憶素子群のゲートレベル回路構成図（すなわち論理素子ブロック）である。【００５２】
論理再構成素子１１０は，４つの３入力ＮＡＮＤゲート１０１，１０２，１０３及び１０４と，その出力すべてが入力される４入力ＮＡＮＤゲート１０５から構成されている。【００５３】
論理再構成素子１１０の出力の論理式は，図１７に示したとおりであり，端子Ｃ０，Ｃ１，Ｃ２，Ｃ３と端子Ａと端子Ｂに供給される信号ｃ０，ｃ１，ｃ２，ｃ３，ａ，ｂの論理演算に基づく出力ｘが端子Ｘに提供される。信号ｃ０，ｃ１，ｃ２，ｃ３は図１０〜１５で説明したＳ０，Ｓ１，Ｓ２，Ｓ３に，信号ａがＩｎｐｕｔ  ｘ１に，信号ｂがＩｎｐｕｔ  ｘ２にそれぞれ対応する。【００５４】
記憶素子群１１１（論理再構成素子１１０の論理を決めるための記憶素子）は，４つのフリップフロップ１０６，１０７，１０８及び１０９から構成されている。いずれも，端子Ｌに供給される制御信号が１（ハイレベル）から０（ロウレベル）に遷移するタイミングで，端子Ｃ０，Ｃ１，Ｃ２，Ｃ３のデータであるｃ０，ｃ１，ｃ２，ｃ３（設定情報）が４つのフリップフロップ１０６，１０７，１０８及び１０９にそれぞれ取り込まれる。取り込まれたデータｃ０，ｃ１，ｃ２，ｃ３は，論理再構成素子１１０に伝達される。【００５５】
図１８は設定情報ｃ０，ｃ１，ｃ２，ｃ３の組み合わせによって，論理再構成素子がどのような論理演算を行い，出力端子Ｘにいかなるデータが出力されるかを示した表である。設定情報が００００の場合は出力は常に０，１０００の場合はａとｂの論理積，０１００の場合は非ａとｂの論理積，１１００の場合はｂ（配線として作用する），００１０の場合はａと非ｂの論理積，１０１０の場合はａ（配線として作用する），０１１０の場合はａとｂの排他的論理和，１１１０の場合はａとｂの論理和，０００１の場合はａとｂの反転論理和（ＮＯＲ），１００１の場合はａとｂの反転排他的論理和，０１０１の場合は非ａ，１１０１の場合は非ａとｂの論理和，００１１の場合は非ｂ，１０１１の場合はａと非ｂの論理和，０１１１の場合はａとｂの反転論理積，１１１１の場合は常に１がそれぞれ出力される。【００５６】
２−２  基本セルの構成【００５７】
図１９は基本セル（リーフセル）６０のゲートレベル回路構成図である。【００５８】
基本セル６０は，２つの論理再構成素子１２１及び１２２と，記憶素子群１２３及び１２４（論理再構成素子１２１及び論理再構成素子１２２の論理を決めるための記憶素子）を有する。【００５９】
論理再構成素子１２１及び１２２は，いずれも，図１７と同様な４つの３入力ＮＡＮＤゲートと，その出力すべてが入力される４入力ＮＡＮＤゲートから構成されている。【００６０】
論理再構成素子１２１は端子Ｃ０，Ｃ１，Ｃ２，Ｃ３と端子Ａと端子Ｂに供給される信号ｃ０，ｃ１，ｃ２，ｃ３，ａ，ｂの論理演算に基づく出力ｘを端子Ｘに提供する。【００６１】
記憶素子群１２３は，４つのフリップフロップから構成されている。いずれも，端子Ｌに供給される制御信号が１（ハイレベル）から０（ロウレベル）に遷移し，端子／Ｌに供給される制御信号が０から１に遷移するタイミングで，端子Ｃ０，Ｃ１，Ｃ２，Ｃ３のデータであるｃ０，ｃ１，ｃ２，ｃ３（設定情報）が４つのフリップフロップにそれぞれ取り込まれる。とりこまれたデータｃ０，ｃ１，ｃ２，ｃ３は，論理再構成素子１２１に伝達される。【００６２】
論理再構成素子１２２は端子Ｃ４，Ｃ５，Ｃ６，Ｃ７と端子Ａと端子Ｂに供給される信号ｃ４，ｃ５，ｃ６，ｃ７，ａ，ｂの論理演算に基づく出力ｙを端子Ｙに提供する。【００６３】
記憶素子群１２４は，４つのフリップフロップから構成されている。いずれも，制御信号Ｌが１（ハイレベル）から０（ロウレベル）に遷移し，制御信号／Ｌが０から１に遷移するタイミングで，端子Ｃ４，Ｃ５，Ｃ６，Ｃ７のデータであるｃ４，ｃ５，ｃ６，ｃ７（設定情報）が４つのフリップフロップにそれぞれ取り込まれる（この点で，図１の回路とは異なる）。とりこまれたデータｃ４，ｃ５，ｃ６，ｃ７は，論理再構成素子１２２に伝達される。【００６４】
端子Ｃ０，Ｃ１，Ｃ２，Ｃ３は，基本セル６０を上下に貫通する配線によって，端子Ｑ０，Ｑ１，Ｑ２，Ｑ３に接続されており，これら端子Ｑ０，Ｑ１，Ｑ２，Ｑ３は，それぞれ，図示しない次の行の基本セル６０の端子Ｃ４，Ｃ５，Ｃ６，Ｃ７に接続される。【００６５】
端子Ｃ４，Ｃ５，Ｃ６，Ｃ７は，基本セル６０を上下に貫通する配線によって，端子Ｑ４，Ｑ５，Ｑ６，Ｑ７に接続されており，これら端子Ｑ４，Ｑ５，Ｑ６，Ｑ７は，それぞれ，図示しない次の行の基本セル６０の端子Ｃ０，Ｃ１，Ｃ２，Ｃ３に接続される。【００６６】
端子Ｌ及び端子／Ｌは，基本セル６０を左右に貫通する配線によって，端子Ｎ，端子／Ｎにそれぞれ接続されており，これら端子Ｎ，端子／Ｎは，同一行で右に隣接する図示しない基本セル６０の端子Ｌ及び端子／Ｌにそれぞれ接続される。【００６７】
基本セル６０はそのレイアウトが横長の略長方形状をしている。略長方形状の上辺には端子Ｃ０，Ｃ１，Ｃ２，Ｃ３，Ａ，Ｃ４，Ｃ５，Ｃ６，Ｃ７，Ｂが配列しており，下辺には端子Ｑ０，Ｑ１，Ｑ２，Ｑ３，Ｘ，Ｑ４，Ｑ５，Ｑ６，Ｑ７，Ｙが配列しており，左辺には端子Ｌ，／Ｌが配列しており，右片には端子Ｎ，／Ｎが配列している。【００６８】
図２０は図１９の基本セル６０のトランジスタレベルの回路図である。端子Ａにはインバータ１２５及びインバータ１２６がそれぞれ接続され，端子Ｂにはインバータ１２７及びインバータ１２８がそれぞれ接続されている。インバータ１２５は端子Ａに供給される信号ａの反転信号である／ａ＊を生成し，インバータ１２６は信号ａと同相でかつ増幅された信号ａ＊を生成する。インバータ１２７は端子Ｂに供給される信号ｂの反転信号である／ｂ＊を生成し，インバータ１２８は信号ｂと同相でかつ増幅された信号ｂ＊を生成する。そして，信号／ａ＊，ａ＊，／ｂ＊，ｂ＊が，多数の３入力ＮＡＮＤゲートに選択的に入力されるように構成される。【００６９】
２−３  アレイの構成【００７０】
図２１は，図２０の基本セル６０を図１６に示すように，行毎に半ピッチずらして行列状に配置したアレイのゲートレベルの回路図である。このように構成することによって，多種多様な組み合わせ論理回路を実現することができる。斜め方向の配線を論理素子ブロックによって実現するため，従来のような配線領域や結線領域を無くす又は最小化することが可能となり小さなリコンフィギュアブル回路を実現することができる。ここで配線領域や結線領域の最小化とは，論理再構成素子相互の接続に比較的大きな配線チャネル領域を必要しない回路構成（集積回路）とするために，基本セル６０同士を隣接配置し互いの端子を隣接接続する場合に必要とされる配線ラインを最短で配置することをいう。【００７１】
図２２は各基本セル６０にｃ０，ｃ１，ｃ２，ｃ３，ｃ４，ｃ５，ｃ６，ｃ７の論理再構成素子の論理を決定するコンフィギュレーション情報を供給するための回路が示されている。【００７２】
端子Ｃ０，Ｃ１，Ｃ２，Ｃ３，Ｃ４，Ｃ５，Ｃ６，Ｃ７に対応してフリップフロップ１３１・・・１３８・・・が設けられている。そして，これらフリップロフップは，シフトレジスタを構成し，左端のＣＤ（Ｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｄａｔａ）端子からシリアルに論理再構成素子の設定情報を供給する。データのシフトは図示しないクロック信号端子に供給されるクロック信号をトグルさせる（０から１，１から０にクロック信号を繰り返し供給する）ことによって行う。【００７３】
また，各行の端子Ｌ，／Ｌに対応して，フリップフロップ回路１４１，１４２，１４３・・・が設けられている。そして，これらフリップフロップ回路１４１，１４２，１４３・・・は，シフトレジスタを構成し，左端のＣＤＨ（Ｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｄａｔａ  Ｈｏｌｄ）端子からコンフィグレーションデータホールド信号をシフトレジスタ１４１，１４２，１４３・・・の下から上に向かって順次転送することによって，まずリーフセルモジュールにおける図示最下段の基本セル６０で構成された行の論理を設定し，次に図示一段上に位置する基本セル６０で構成された行の論理を設定し，更に図示一段上に位置する基本セル６０で構成された行の論理を設定する。このようにこの動作をリーフセルモジュール内に配置される全ての基本セル６０が構成された行について実行する（図２２では３行のみ図示している）。
この動作をより詳しく説明すると以下のようになる。
すなわち，図２２の回路構成において，まずシフトレジスタ１４１，１４２，１４３・・・をセットまたはリセットすることで全ての論理素子ブロックのラッチ回路（記憶素子）をスルーにする。次に，ＣＤ端子からシリアルにコンフィグレーション情報をシフトレジスタ１３１，１３２，１３３，１３４，１３５，１３６，１３７，１３８・・・に入力し，これらのシフトレジスタ１３１，１３２，１３３，１３４，１３５，１３６，１３７，１３８・・・をシフト動作させることにコンフィグレーション情報を各列の論理コンフィグレーションメモリに設定する。そして，ＣＤＨ端子にデータホールド信号（１ｏｒ０）を印加することで図示最下段の基本セル６０で構成された行の論理を設定する。そして再度，シフトレジスタ１４１，１４２，１４３・・・にクロック信号をシフトレジスタの数分のサイクル数を入力することで，図示一段上に位置する基本セル６０で構成される行のコンフィグレーション情報を設定する。
このような基本セル６０で構成された行の論理を設定する動作を，上記の全ての論理素子ブロックのラッチ回路をスルーにした後に説明した動作を繰り返し実行することにより，図示最下段から図示上の行へ順次行単位で論理再構成素子の論理を決定し最終的に全ての論理再構成素子の論理を確定させる。
これにより論理素子の再構成を可能としている。
この全ての論理再構成素子の論理を確定させる動作は，図２２のコンフィグレーション回路の順序回路のシフト動作の方向を変更することで，最上段から下の行へ順次行単位で論理再構成素子の論理を決定し最終的に全ての論理再構成素子の論理を確定させることもできる。【００７４】
２−４  基本セル及びアレイの変形例【００７５】
図２３は基本セル（リーフセル）６１の変形例のゲートレベル回路構成図である。【００７６】
図１９の回路と相違する点は，信号ｃ０，ｃ１，ｃ２，ｃ３を供給する端子が端子Ｃ０，／Ｃ０，Ｃ１，／Ｃ１，Ｃ２，／Ｃ２，Ｃ３，／Ｃ３からなり，相補信号が供給されることである。また，信号ｃ４，ｃ５，ｃ６，ｃ７を供給する端子が端子Ｃ４，／Ｃ４，Ｃ５，／Ｃ５，Ｃ６，／Ｃ６，Ｃ７，／Ｃ７からなり，相補信号が供給されることである。【００７７】
図２４は図２３の基本セル６１のトランジスタレベルの回路図である。設定情報の供給を相補信号で行うことによって，フリップフロップ回路のトランジスタ（Ｔｒ）数を減らすことができる。【００７８】
図２５は，図２３の基本セル６１を，行毎に半ピッチずらして行列状に配置したアレイのゲートレベルの回路図である。【００７９】
図２６は，図２３は各基本セル６１にｃ０，／ｃ０，ｃ１，／ｃ１，ｃ２，／ｃ２，ｃ３，／ｃ３，ｃ４，／ｃ４，ｃ５，／ｃ５，ｃ６，／ｃ６，ｃ７，／ｃ７の各設定情報を供給するためのゲートレベルの回路が示されている。フリップフロップ回路の相補的出力がそれぞれ供給される。【００８０】
図２７は，図２３は各基本セル６１にｃ０，／ｃ０，ｃ１，／ｃ１，ｃ２，／ｃ２，ｃ３，／ｃ３，ｃ４，／ｃ４，ｃ５，／ｃ５，ｃ６，／ｃ６，ｃ７，／ｃ７の各設定情報を供給するためのさらに別のゲートレベルの回路が示されている。Ｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｄａｔａは，基本セル６１の左側の記憶素子群の設定を行うライン（Ｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｄａｔａ１）と，基本セル６１の右側の記憶素子群の設定を行うライン（Ｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｄａｔａ２）とに分離されている。このように構成することによって，設定情報の更新を素早く行うことができる。【００８１】
２−５  フィードバック回路【００８２】
図３で説明したとおり，アレイを列方向に並んだ複数のサブアレイで構成し，各サブアレイの間に，フィードバック回路を挿入することが可能である。【００８３】
図２８は，このようなフィードバック回路ｂ００〜ｂ３１を挿入した例である。【００８４】
アレイ全体は，サブアレイ１５１，１５２，１５３によって構成されており，各サブアレイ１５１，１５２，１５３は，この例では１６行の基本セルから構成され（図２８ではサブアレイ１５１，１５３の基本セルの個数は一部省略している。）。フィードバック回路ｂ００〜ｂ３１の素子の個数は１行の基本セル（図２８の基本セル中の素子は２個）に含まれる論理素子ブロックの総和と同じであり，サブアレイ１５１，１５２の最終行の基本セルの出力端子Ｘ及び出力端子Ｙにそれぞれ接続される。フィードバック回路の構成は，図３で説明したものと同一であり，フリップフロップ回路（記憶素子）１３，前段の論理データ信号セレクタ１２，フィードバック信号セレクタ１１から構成される。さらに，セレクタを制御するために，設定情報を記憶するための素子群と，この設定情報を設定するための信号線等が存在する。【００８５】
図２９は，基本セル７，６０，６１を直下配線，斜め配線，分岐配線等として機能させ，フィードバック回路も利用した回路の例である。【００８６】
図３０は，基本セル７，６０，６１を直下配線，ＸＯＲ（排他的論理和）・ＡＮＤ（論理積），ＯＲ（論理和）等として機能させ，フィードバック回路も利用して，８ビットのキャリー付加算器を生成した例である。【００８７】
図３１は，基本セル７，６０，６１を直下配線及び斜め配線として機能させ，フィードバック回路も利用してシフトレジスタを生成した例である。
なお，図２９，３０，３１におけるサブアレイを構成する複数の基本セルにおいて，このサブアレイを通りサブアレイに対して図示上下に存在するフィードバック回路まで引かれた実線で示す太線が，各々の回路例に対する配線経路を示している。【００８８】
２−６  基本セル（リーフセル）を用いたシステム【００８９】
図４乃至図９で説明したリーフセルを用いたシステムは，本実施例においても同様である。【００９０】
２−７  基本セルのテスト【００９１】
上述した基本セル７，６０，６１を用いたアレイは，以下のように使用することが望ましい。【００９２】
はじめに，すべての基本セル７，６０，６１が動作するかどうかを以下のように確認する。【００９３】
各基本セル７，６０，６１にｃ０，ｃ１，ｃ２，ｃ３，ｃ４，ｃ５，ｃ６，ｃ７の各設定情報のすべてのパターン又は縮退したパターン（実質的にすべてのパターンを検出することができるような部分集合のパターン）を供給して基本セル７，６０，６１の動作を確認する。【００９４】
そして，動作が想定と異なる場合には，上記パターンと出力との関係から，不良セルを特定する。これが不良セル特定ルーチンである。【００９５】
実際に，回路生成を行う際には，不良セルと特定された基本セル７，６０，６１を迂回するように設定情報を設定する。そのように設定することによって，不良を含むセルアレイでも，実使用に用いることが可能となる。【００９６】
３−１  ３入力又は４入力論理素子ブロックを用いた例【００９７】
図３２は本発明の実施例を示すものであり，基本発明の変形例である。基本発明について上述した内容は，性質上可能な限り，以下の本発明について準用され適用される。【００９８】
図３１迄に示した例においては，２入力の論理素子ブロックを２つ組み合わせて基本セルを構成し，基本セルの一方（図２，３，１６，２１，２２，２５−３１における基本セルの図示上側に隣接位置する基本セル）から入力したデータに論理演算操作を加え（又は単なる配線としての役割をもたせ），基本セルの他方（図２，３，１６，２１，２２，２５−３１における基本セルの図示下側に隣接位置する基本セル）へ結果を出力する例であった。つまり基本セルを規則正しく配置することで，基本セル同士の上下接続を余分な配線を引き回すことなく互いに電気的接続を可能とする構成としたものである。このように図３１迄に示した例は，基本セルを隣接配置し，それら上下の基本セルを直接接続するといった技術思想の基，必要最小限の配線で相互の基本セルを電気接続すること（配線チャネル領域の最小化）を可能とするものである。
これに対し本発明の実施例を示す図３２の例においては，基本セル６２内に構成する３入力の論理素子ブロック６２１を２つ組み合わせて基本セル６２を構成している。すなわち，基本セル６２内の１個の論理素子ブロック６２１に対して，図示上側に隣接配置する基本セル６２からの２つの入力，及び，図示左右何れかの方向に隣接配置する基本セル６２からの１つの入力を合わせた合計３つの入力からの信号に論理演算操作を加え（又は単なる配線としての役割をもたせ），基本セル６２の図示下側及び基本セル６２の図示左右何れかの方向へ論理演算操作の結果を出力する例である。つまり基本セルを規則正しく配置することで，基本セル同士の上下および左右の接続を余分な配線を引き回すことなく互いに電気的接続を可能とする構成としたものである。このように図３２に示した例（図３３以降の図面にかかる回路例も同様）は，基本セルを上下及び左右に隣接配置し，それら上下及び左右の基本セルを直接接続するといった技術思想の基，必要最小限の配線で相互の基本セルを電気接続すること（配線チャネル領域のさらなる最小化）を可能とするものである。【００９９】
矩形状の基本セル６２は行毎に半ピッチずらして行列状に敷き詰めてられている。基本セル６２は，隣接前行（図示上側の行）の基本セル６２から信号ｘ１及び信号ｘ２が供給され，同一行に属し隣接する基本セル６２から信号ｘ３が供給される（基本セル６２の左右行側に隣接する基本セルが存在する場合は左右両側から信号ｘ３が供給される）。これら信号を受けて，論理設定情報に従い論理演算結果又はいずれかの信号の正又は反転信号を，隣接後行（図示下側の行）の基本セル６２又は同一行に属し隣接する（図示左右の）基本セル６２に供給する。
このように本発明の実施例は，基本セルの図示上下方向のみならず図示左右方向（行列方向）の基本セルとの信号授受を行うことができるよう構成される。これにより２入力の論理素子ブロックを用いた例よりも，より高密度な論理回路の実装が可能となる。【０１００】
図３３Ａは図３２に示した実施例の一使用形態である。この使用形態から理解されるように，基本セル６２を図示上下（列方向）のみでなく，図示左右（行方向）に接合させることができ，その結果，左右方向への論理演算結果の供給又は左右方向への配線を実現することが可能となり，２入力の論理素子ブロックを用いた例よりも，より高密度な論理回路の実装が可能となる。ここで図３３Ａにおいて，基本セル内の論理素子ブロック６２１を通り引かれた実線で示す太線が配線経路を示す。【０１０１】
図３３Ｂは本発明の実施例の変形例である。【０１０２】
図３３Ｂの例においては，４入力の論理素子ブロックを２つ組み合わせて基本セル６３を構成している。ただし，４つのＡ，Ｂ，Ｌ（左），Ｒ（右）の各入力は，そのすべての入力が論理演算に用いられるわけではなく，ＡとＬのいずれかが入力として選択され，ＢとＲのいずれかが入力として選択される。そして，それぞれ選択された各入力が図１１（論理再構成素子のモデル）におけるｘ１及びｘ２として用いられて論理又は配線が実現される。なお，配線は構成する回路によって設計的に決められるものであるので，図３３Ｂでは配線経路は省略している。【０１０３】
矩形状の基本セル６３は行毎に半ピッチずらして行列状に敷き詰めてられている。基本セル６３は，図示Ｘ側を出力する論理素子ブロック６３１と図示Ｙ側を出力する論理素子ブロック６３２とがある。隣接前行（図示上側の行）の基本セル６３からＡ，Ｂの各信号が供給され，同一行に属し隣接する（図示左右の）基本セルからＬ，Ｒの各信号が供給される。論理素子ブロック６３１はＸ側選択情報に従い，Ａ，Ｌのいずれかの信号が選択される。論理素子ブロック６３１は，Ｘ側設定情報に基づきＡ若しくはＬとＢ若しくはＲとの論理演算結果又はいずれかの信号の正又は反転信号を，隣接後行（図示下側の行）の基本セル６３又は同一行に属し隣接する（図示左右の）基本セル６３に供給する。論理素子ブロック６３２はＹ側選択情報に従い，Ｂ，Ｒのいずれかの信号が選択される。論理素子ブロック６３２は，Ｙ側設定情報に基づきＢ若しくはＲとＡ若しくはＬとの論理演算結果又はいずれかの信号の正又は反転信号を，隣接後行（図示下側の行）の基本セル６３又は同一行に属し隣接する（左右の）基本セル６３に供給する。【０１０４】
図３３Ｃは図３３Ｂの実施例で説明した基本セル６３のトランジスタレベルでの回路図（詳細回路図）である。論理演算を提供する部分は後述する図３８Ｂと同等であるが，ＡとＬ，ＢとＲの選択を行うための選択設定情報が記憶されるフリップフロップ回路１６１，１６２が追加されている。これらフリップフロップ１６１，１６２は，信号線Ｓ０，／Ｓｏ，Ｓ１，／Ｓ１によって，設定情報が供給される。さらに，フリップフロップ１６１，１６２に記憶された設定情報（ＡとＬ，ＢとＲの選択情報）にしたがって，一組の相補動作トランスファーゲート１６３，１６４が動作し，これによって，ＡとＬ及びＢとＲが選択される。【０１０５】
Ｘ側及びＹ側の論理素子ブロックは，複数のトランスファーゲートを組み合わせることによって論理演算回路を構成している。すなわち，Ｘ側の論理素子ブロックにおいては，設定情報を記憶する４つのフリップフロップ１６５〜１６８を，Ａ若しくはＬ及びＢ若しくはＲの各信号によって選択する複数のトランスファーゲートが配置されている。【０１０６】
図３３Ｄ及び３３Ｅは図３３Ｃの回路の真理値表である。Ｓ０が０のときはＬが入力として選択され，１のときはＡが入力として選択される。Ｓ１が０のときはＲが入力として選択され，１のときはＢが入力として選択される。このように選択された入力による論演演算ないし配線の実現は，後述する図３８Ｃと同様である。【０１０７】
以下，図３３Ｂで示した４入力２出力の基本セルの効果を，図１１〜図２２で示した２入力２出力の基本セルと対比して説明する。【０１０８】
図３３Ｆは基本発明の論理マッピングの例であって，２入力２出力の基本セルの相互接続モジュールによって，４ビット・リップルキャリー加算器を実現した例である。使用した基本セル６３の個数は４５セル，論理素子ブロックの総数は９０個（１セルに２つの論理素子ブロックが含まれる），論理素子ブロックの使用率は７２．２％，論理素子ブロックの論理素子としての使用率は２２．２％，論理素子ブロックの配線素子としての使用率は５０．０％であった。ここで図３３Ｆにおいて，基本セル６３内を通り引かれた実線で示す濃い色の線は配線経路を示す。【０１０９】
図３３Ｇは本発明の図３３Ｂの回路構成に対する論理マッピングの例であって，４入力２出力の基本セルの相互接続モジュールによって，４ビット・リップルキャリー加算器を実現した例である。ここで図３３Ｇにおいて，基本セル６３内を通り引かれた実線で示す濃い色の線は配線経路を示す。図３３Ｇの回路構成の場合，図３３Ｆの図示上下方向（縦方向，列方向）の基本セルを結線する回路構成に対して，基本セルの左右方向（横方向，行方向）にも信号の通信が行われるよう内部の論理素子ブロックを構成している。図３３Ｇにおいて，使用した基本セル６３の個数は１８セル，論理素子ブロックの総数は３６個，論理素子ブロックの使用率は８３．３％，論理素子ブロックの論理素子としての使用率は５５．６％，論理素子ブロックの配線素子としての使用率は２７．８％であった。このように，４入力２出力の基本セルを用いることによって，論理素子ブロックの使用率自体が向上するほか，配線素子としての使用率が低下することから，図３３Ｆの回路構成に比べてより効率的な論理マッピングが可能になる。４入力２出力の基本セルの面積の増加はたかだか２５％程度なので，４ビット・リップルキャリー加算器の例においては，図３３Ｆの回路構成のような２入力２出力の基本セルを図３３Ｇの回路構成のような４入力２出力の基本セルに変更することによって実装面積はほぼ半分になる。その結果，効率的なレイアウトが可能となる。【０１１０】
以上，２入力２出力の基本セルと４入力２出力の基本セルを対比して説明したが，これらの基本セルを混載しても構わない。例えば，奇数行は２入力２出力の基本セル，偶数行は４入力２出力の基本セルで配列しても構わないし，２入力２出力の基本セルの複数行と，４入力２出力の基本セルの複数行を交互に配置しても構わない。
また，上記各実施例及び変形例では，矩形の基本セルは全て同一のものを使用することを前提として，各基本セルを行毎に半ピッチずらして行列状に敷き詰めて配置した態様を示し説明したが，必ずしも半ピッチ配列でなくてもよい。ここでいうピッチとは敷き詰め配置した基本セルの偶数行と奇数行の行方向のずらし幅を指す。
例えば，同一の矩形の基本セルを行毎に１／３ピッチや１／４ピッチづつずらして敷き詰めて配置するような構成としてもよい。また，全て等間隔ピッチでなくてもよく，例えば半ピッチと１／３ピッチを組み合わせて矩形の基本セルを敷き詰め配置してもよいし，更に他のピッチを組み合わせて矩形の基本セルを敷き詰め配置してもよい。
また，論理素子ブロック及び論理素子ブロック数の異なる複数の基本セルを使用して隣接配置するようにしてもよい。この場合，隣接配置によってはピッチのズレ幅が複数存在する場合がある。
要するに，複数の基本セルをアレイ状（上下左右方向，行方向列方向）に規則正しく配置（上下左右方向つまり行方向列方向に，一定の配置法則で基本セルを敷き詰めること）でき，かつ，各基本セル間の電気的な接続のために専用の配線チャネルを無くす又は最小化可能な回路構成であれば，如何なる回路であっても本発明は適用可能である。
本発明を実際に製造する場合，基本セル間を接続するために入出力端子同士を直接接続困難な場合が考えられる。その場合は，配線を最小化して基本セル同士を近接配置して接続することで本発明にかかる製品の製造を実現することができる。本発明では，この場合を上記「配線チャネルの最小化」という意味として用いている。
また，上記全ての実施例では，基本セル内には２個の論理素子ブロックを構成して説明したが，これに限らず，１つの基本セル内に３個あるいはそれ以上の論理素子ブロックを構成するようにしてもよい。この場合，入力と出力の数が種々設計的に決まることになり，これら論理素子ブロックを有する基本セルを含んで隣接配置（つまり論理素子ブロックの数が異なる基本セルを混在させて隣接配置）して本発明のリーフセルモジュールを構成すれば，必然的に基本セルのピッチのズレ幅は複数存在することになる。【０１１１】
３−２  ロジックセルコンパイラの例【０１１２】
図３４は本発明のロジックセルコンパイラの処理フローである。設計者がＶｅｒｉｌｏｇ  ＶＨＤＬなどの言語で設計したデータ（ＳｙｓｔｅｍＣ，Ｃ，Ｃ＋＋等で設計されたデータが変換されることもある。）の入力を受取り，ネットリストを生成する。このネットリストをネットリストアナライザ（Ｎｅｔｌｉｓｔ  Ａｎａｌｙｚｅｒ）が分析し，組合せロジック（Ｃｏｍｂｉｎａｔｉｏｎ  Ｌｏｇｉｃ），フリップフロップ（Ｆｌｉｐ−Ｆｌｏｐ），フィードバックパス（Ｆｅｅｄｂａｃｋ  Ｐａｔｈ），セット・リセット・イニシャライザ（Ｓｅｔ／Ｒｅｓｅｔ  Ｉｎｉｔｉａｌｉｚｅｒ）などに分解し，これをロジックマッパ（Ｌｏｇｉｃ  Ｍａｐｐｅｒ）で統合する。このようにして得られたロジックマッピングデータ（Ｌｏｇｉｃ  Ｍａｐｐｉｎｇ  Ｄａｔａ）が本発明の論理再構成回路の論理設定情報に対応し，ラッチ回路等の再構成記憶素子（論理再構成素子の論理を決めるための記憶素子）に供給される（本発明の論理マッピング）。【０１１３】
３−３  基本セルの変形例【０１１４】
図３５は図２０，２４の回路に対しトランジスタ数を削減した本発明の基本セル６４の回路図である。図２０の回路においては，複数のＮＡＮＤを構成するトランジスタを用いて論理を実装していたところ，図３５においては，複数の転送ゲート（ＰＭＯＳトランジスタとＮＭＯＳトランジスタを並列に接続した回路構成：トランスファーゲート）を用いることによってトランジスタ数を著しく少なくしている。図３６に図３５の回路によって実現される論理演算の真理値表を示す。【０１１５】
図２０の回路においてはインバータを二段継続接続してフリップフロップを構成し２つの転送ゲートによってこの制御をすることによって記憶素子を実現し，設定情報が記憶されるところ，図３５の回路においてはそれぞれ２つのＰＭＯＳトランジスタとＮＭＯＳトランジスタによって構成される記憶素子を実現している。図３５の回路の動作は図３７に示すトランジスタ（Ｔｒ）によって構成される回路（４つのＴｒ１，２，３，４によってＳＲＡＭを構成）を用いて実現することができる。【０１１６】
図３７（ａ），（ｂ）は，図３５の回路を実現するためのトランジスタを示す図であって，論理再構成素子の論理を決めるための記憶素子を具体的に記載したものである。
図３７（ａ），（ｂ）において，第１のＰＭＯＳトランジスタ（Ｔｒ１）と第１のＮＭＯＳトランジスタ（Ｔｒ２）のドレイン同士が接続され，このドレインが第２のＰＭＯＳトランジスタ（Ｔｒ３）と第２のＮＭＯＳトランジスタ（Ｔｒ４）のゲートに接続される。また，第２のＰＭＯＳトランジスタ（Ｔｒ３）と第２のＮＭＯＳトランジスタ（Ｔｒ４）のドレイン同士が接続され，このドレインが第１のＮＭＯＳトランジスタ」（Ｔｒ２）のゲートに接続され，且つ，出力端子となる。さらに，第１のＰＭＯＳトランジスタ（Ｔｒ１）のソースが論理再構成素子の論理コンフィグレーションデータの入力端子となる。そして，第１のＮＭＯＳトランジスタ（Ｔｒ２）のソースはＧＮＤに接続され，第２のＰＭＯＳトランジスタ（Ｔｒ３）のソースは電源に接続される。また，第１のＰＭＯＳトランジスタ（Ｔｒ１）のゲートはデータ入力のコントロールゲート（Ｗ）として機能する。また，第２のＮＭＯＳトランジスタ（Ｔｒ４）のソースは初期状態で電源レベルに接続される。そして，第２のＮＭＯＳトランジスタ（Ｔｒ４）のソースは保持データ確定後，電源レベルからＧＮＤレベルに電位が遷移する。このような４つのＭＯＳトランジスタの接続構造によって記憶素子が構成される。
図３７（ａ）はデータを記憶する前の状態である。Ｔｒ４のソース（制御信号端子２）はＶＤＤ２（電源電圧ＶＤＤのレベルである。）に接続されている。Ｗ（制御信号端子１）は０（ロウレベル），ＤはＯＵＴにラッチするデータの反転データとする（ラッチ状態でＯＵＴに１が出力されるように動作させる場合は０，ラッチ状態でＯＵＴに０が出力されるように動作させる場合は１を供給する。）。ＶＤＤ１は１（ハイレベル，すなわち電源電圧ＶＤＤのレベルである。），ＧＮＤ１は０である。【０１１７】
続いて，図３７（ｂ）に示すとおり，Ｔｒ４のソース（制御信号端子２）をＶＤＤ２からＧＮＤ２（接地電圧ＧＮＤのレベル，すなわちロウレベル０である。）へと変化させる。その結果，Ｄの反転出力がＯＵＴから出力される。その後，Ｗを１にすると入力が遮断され，この状態でラッチ動作が完了する。なお，ＯＵＴに０を出力し続けるためにはＴｒ４のゲートが１であり続ける必要がある。ラッチ動作完了後はＤを１に維持し続けることによって，Ｔｒ１（Ｗが０なのでオフ状態である。）には，Ｄ（ソース）から反対ノード（ドレイン）へと供給されるサブ・スレッショルド・リーク電流が発生し，Ｔｒ４のゲート電位が１に維持される。このようにしてＯＵＴには１のみならず０のデータが出力され続ける。なお，上記例では，当初からＤにデータが供給されていたが，はじめは０，ついで，設定するデータの反転データを供給し，その後Ｗを０から１にしてもよい。また，上記例では，Ｔｒ１及びＴｒ３はいずれもＰＭＯＳ，Ｔｒ２及びＴｒ４はいずれもＮＭＯＳとしたが，極性を全て反転させ，入力データＤの極性を反転させても同様の動作が期待できる。
このように論理再構成素子のコンフィグレーション用メモリを４つのＴｒで構成される上記ＳＲＡＭで実現することができるので，論理再構成素子の論理を決定する記憶素子の回路規模の大型化を抑制することができる。【０１１８】
３−４  基本セルのさらなる変形例【０１１９】
図３８Ａは本発明の基本セル６５のトランジスタレベルでの回路図（詳細回路図）である。論理設定情報が記憶されるＳＲＡＭ回路は図２４のそれと同様の回路を用いつつ，論理演算部分は図３５と同様の回路を用いた例である。その真理値表は図３６に示したものと同様である。【０１２０】
図３８Ｂは本発明の基本セル６６のトランジスタレベルでの回路図（詳細回路図）である。図３８Ａと比べると入力段インバータ６６１，６６２の出力が逆転しており，これに応じて，この回路によって実現されるところの真理値が異なっている。その真理値表は図３８Ｃ及び３８Ｄに示した。【０１２１】
図３９は本発明の基本セル６７のさらなる変形例にかかる回路図である。論理設定情報が記憶されるＳＲＡＭ回路は図２４のそれと同様の回路を用いつつ，論理演算部分の回路構成を変更した例である。その図３９の回路構成に対する真理値表は図４０に示したとおりである。図４１は本発明の図３８Ａ，Ｂの基本セル６５，６６の回路図のトランスファーゲートを変えた変形例にかかる回路図である。論理設定情報が記憶されるＳＲＡＭ回路は図２４のそれと同様の回路を用いつつ，論理演算部分の回路構成について，Ａ，Ｂの入力段にインバータをそれぞれ一段ずつ，Ｘ，Ｙの出力段にインバータをそれぞれ一段ずつ配置した例である。その真理値表は図４０に示したとおりである。【０１２２】
３−５  論理再構成セルモジュールにＤフリップフロップを用いた例【０１２３】
図４２は，バイパス機能を持ったＤフリップフロップである。ＢＰ端子がＨＩＧＨ（すなわち“１”）のときにＤ端子からＱ端子への信号バイパス動作を行う機能を有し，ＢＰ端子がＬＯＷ（すなわち“０”）のときは通常のＤフリップフロップとして機能する。
図４３は図４２のＤフリップフロップの動作を示した真理値表である。ＢＰ端子入力が１のとき，Ｄ端子入力からＱ端子出力へのバイパスモードが実現され（Ｄ入力Ｑ出力が共に０又は１），ＢＰ端子入力が０のとき通常のＤフリップフロップ動作モードが実現されている。この真理値表により，図４２のＤフリップフロップはＢＰ端子の入力が１のときにバイパス動作を実行することが理解できる。
この図４２のＤフリップフロップを図３におけるフリップフロッップ回路の記憶素子１３として定義することができる。
図３において，例えば大規模な組み合わせ回路を必要とする場合，リーフセルモジュール７１を構成する複数の基本セル７の論理段数（図３では４段）が不足することが考えられる。そのため，図３中の記憶素子１３を図４２に示したＤフリップフロップに置き換えてバイパスモードとして使用することにより，図示上下に隣接するリーフセルモジュール７１を同一クロックで動作する論理回路として局所的に論理段数を増やして利用することができる。
このように，ＤフリップフロップのＤ端子入力からＱ端子出力へのバイパスモードを設けることにより，セル段数の局所的な変更を可能にし，論理段数の規模に柔軟に対応できるようになる。【０１２４】
３−６  横方向ループの例【０１２５】
図４４は，サイドループ接続を示すアレイの配置図である。
図４４において，偶数行の図示左右両端のセル７０，７１は論理素子ブロックを２つ備える基本セル７４に対し各々論理素子ブロックは１つしかない（セル７０に対する論理素子ブロックは７００，セル７１に対する論理素子ブロックは７１０）。
そこで，配線７２および配線７３によって図示横方向に相互に配線接続することでリーフセルモジュールの左右両端の信号を受け渡すことができるようにする。つまり，横方向へループする信号接続（サイドループ接続）を実現する。これにより，論理素子ブロックが１つしか存在しなかったセル７０及びセル７１を，１つの基本セル７４と論理を同等なものとすることができる。この構成により，効率的な回路機能の実装が可能になる。
なお，図４４ではリーフセルモジュールの左右両端に位置する基本セル７４を相互に接続する例を示して説明したが，これに限るものではない。
すなわち，リーフセルモジュールを構成する基本セルの出力端子を，この基本セルに対して一段下の行にあってその行方向に位置する任意（両端以外を含む）の基本セルの入力端子に接続するようにしてもよい。このような接続としても，図４４に示した接続と同様に，効率的な回路機能の実装が可能となる。
以上説明した各実施例，変形例では，基本セルは矩形形状を有するものであったが，必ずしも基本セルの形状はこれに限らない。すなわち，リーフセルモジュールを有する集積回路であって，リーフセルモジュールを構成する論理素子ブロックを備えた基本セル同士の電気接続（論理素子ブロックの相互の電気接続）の配線チャネル領域を最小化できる集積回路が実現可能であれば，例えば，何れかの角が曲率を有する矩形形状，ひし形形状，台形形状，その他の形状など，他の形状を有するものであってもよい。また，異なる形状を組み合わせて本発明のリーフセルモジュールを構成してもよい。
【産業上の利用可能性】
【０１２６】
面積・コスト・論理変更機能・動作周波数・フレキシビリティ・スループット・消費電力の各要素全てを改善できる集積回路と命令機能の変更が可能なリコンフィギュアブルプロセッサを提供することが可能になる。
【符号の説明】
【０１２７】
１６１，１６２，１６５〜１６８  フリップフロップ
１６３，１６４  トランスファーゲート
【図５】
2013024751.tif 000003
【図９】
2013024751.tif 000004
【図２４】
2013024751.tif 000005
【図３８Ａ】
2013024751.tif 000006
【図３８Ｂ】
2013024751.tif 000007
【図３８Ｃ】
2013024751.tif 000008
【図３８Ｄ】
2013024751.tif 000009
【図１】
2013024751.tif 000010
【図２】
2013024751.tif 000011
【図３】
2013024751.tif 000012
【図４】
2013024751.tif 000013
【図６】
2013024751.tif 000014
【図７】
2013024751.tif 000015
【図８】
2013024751.tif 000016
【図１０】
2013024751.tif 000017
【図１１】
2013024751.tif 000018
【図１２】
2013024751.tif 000019
【図１３】
2013024751.tif 000020
【図１４】
2013024751.tif 000021
【図１５】
2013024751.tif 000022
【図１６】
2013024751.tif 000023
【図１７】
2013024751.tif 000024
【図１８】
2013024751.tif 000025
【図１９】
2013024751.tif 000026
【図２０】
2013024751.tif 000027
【図２１】
2013024751.tif 000028
【図２２】
2013024751.tif 000029
【図２３】
2013024751.tif 000030
【図２５】
2013024751.tif 000031
【図２６】
2013024751.tif 000032
【図２７】
2013024751.tif 000033
【図２８】
2013024751.tif 000034
【図２９】
2013024751.tif 000035
【図３０】
2013024751.tif 000036
【図３１】
2013024751.tif 000037
【図３２】
2013024751.tif 000038
【図３３Ａ】
2013024751.tif 000039
【図３３Ｂ】
2013024751.tif 000040
【図３３Ｃ】
2013024751.tif 000041
【図３３Ｄ】
2013024751.tif 000042
【図３３Ｅ】
2013024751.tif 000043
【図３３Ｆ】
2013024751.tif 000044
【図３３Ｇ】
2013024751.tif 000045
【図３４】
2013024751.tif 000046
【図３５】
2013024751.tif 000047
【図３６】
2013024751.tif 000048
【図３７】
2013024751.tif 000049
【図３９】
2013024751.tif 000050
【図４０】
2013024751.tif 000051
【図４１】
2013024751.tif 000052
【図４２】
2013024751.tif 000053
【図４３】
2013024751.tif 000054
【図４４】
2013024751.tif 000055
【国際調査報告】
2013024751.tif 000056
2013024751.tif 000057
2013024751.tif 000058
2013024751.tif 000059