(57)【要約】【課題】汎用的なメモリ回路に構成された複数のＬＵＴを柔軟な入出力構造でカスケード接続し、構成と制御が簡素なルックアップテーブルカスケード回路等を提供する。【解決手段】所望の論理関数を実現するＮ個のＬＵＴ（ルックアップテーブル）がカスケード接続され、各段の単位ＬＵＴ回路は、メモリセルアレイからなるＬＵＴ１０と、入力変数に基づきＬＵＴ１０の読み出し対象の各メモリセルを選択する入力選択回路（メインロウデコーダ１１、サブデコーダ１２、カラムデコーダ１３）と、入力選択回路により選択されたデータを入出力経路と選択的に接続して出力変数Ｙとして出力する出力回路（出力スイッチ回路１５、出力ラッチ回路１６）と、外部入力変数ＥＩと前段の出力変数Ｙとを入力し、外部出力変数ＥＯと後段の入力変数の全部又は一部とを、予め設定された接続情報に応じて選択的に分配出力する接続回路（セレクタ回路１４）とを備えて構成される。【選択図】図１０
2008129824.tif 000002
【特許請求の範囲】
【請求項１】
所望の論理関数を実現するＮ個のルックアップテーブルがカスケード接続されたルックアップテーブルカスケード回路であって、
複数のワード線と複数のビット線の交点に形成された複数のメモリセルに前記ルックアップテーブルのデータを記憶保持するＮ個のメモリセルアレイと、
前記ルックアップテーブルの入力変数に基づいて、前記メモリセルアレイの読み出し対象の各メモリセルが属する前記ワード線及び前記ビット線を選択するＮ個の入力選択回路と、
前記入力選択回路により選択された各メモリセルの所定ビット数のデータを入出力経路と選択的に接続し、前記ルックアップテーブルの出力変数として出力するＮ個の出力回路と、
前記カスケード接続された各段のうち前段の前記出力回路と後段の前記入力選択回路の間に配置され、外部入力変数と前記前段の出力回路から出力される前記出力変数とを入力し、外部出力変数と前記後段の入力選択回路に供給すべき前記入力変数の全部又は一部とを、予め設定された接続情報に応じて選択的に分配出力するＮ−１個の接続回路と、
を備えることを特徴とするルックアップテーブルカスケード回路。
【請求項２】
各々の前記接続回路は、
入力された前記外部入力変数及び前記出力変数を保持する入力レジスタと、
前記入力レジスタに保持されるデータを、前記接続情報に含まれるシフト量だけシフトするシフタ回路と、
前記シフタ回路によりシフトされたデータを保持して前記外部出力変数及び前記入力変数を出力する出力レジスタと、
を含むことを特徴とする請求項１に記載のルックアップテーブルカスケード回路。
【請求項３】
各々の前記入力選択回路は、
前記複数のワード線を選択的に活性化するロウデコーダと、
前記読み出し対象の各メモリセルが属する所定数のビット線を選択するカラムデコーダと、
を含むことを特徴とする請求項１に記載のルックアップテーブルカスケード回路。
【請求項４】
前記メモリセルアレイには、複数のメインワード線と複数のサブワード線とからなるワード線階層構造が形成され、
前記ロウデコーダは、前記複数のメインワード線を選択的に活性化するメインロウデコーダと、前記複数のサブワード線を選択的に活性化するサブデコーダを含むことを特徴とする請求項３に記載のルックアップテーブルカスケード回路。
【請求項５】
前記入力変数は、前記接続回路から前記カラムデコーダに入力される第１の入力変数と、前記接続回路から前記サブデコーダに入力される第２の入力変数と、外部から前記メインロウデコーダに入力される第３の入力変数とからなることを特徴とする請求項４に記載のルックアップテーブルカスケード回路。
【請求項６】
各々の前記メモリセルアレイのワード線延伸方向の両端部に２つの前記サブデコーダが略対称的に配置され、それぞれの前記サブデコーダに前記複数のサブワード線が互い違いに接続されることを特徴とする請求項４に記載のルックアップテーブルカスケード回路。
【請求項７】
前記出力回路は、前記入力選択回路により選択された所定数のビット線を前記入出力経路に選択的に接続する出力スイッチ回路と、前記入出力経路を経由して前記出力変数を保持する出力ラッチ回路とを含むことを特徴とする請求項１に記載のルックアップテーブルカスケード回路。
【請求項８】
前記メモリセルアレイに対し、前記入出力経路を経由して前記出力ラッチ回路とは異なる経路でデータの入出力が可能であることを特徴とする請求項７に記載のルックアップテーブルカスケード回路。
【請求項９】
前記メモリセルアレイの入出力ビット構成は、前記入出力経路のビット幅の範囲内で変更可能であることを特徴とする請求項７に記載のルックアップテーブルカスケード回路。
【請求項１０】
前記Ｎ個のルックアップテーブルは、Ｎ個のＤＲＡＭ回路を用いて構成されることを特徴とする請求項１に記載のルックアップテーブルカスケード回路。
【請求項１１】
請求項１に記載のＮ個のルックアップテーブルカスケード回路をワード線延伸方向にＭ系統アレイ状に並べて配置したルックアップテーブルカスケードアレイ回路であって、
異なる前記ルックアップテーブルカスケード回路の同位置のＭ個の前記メモリセルアレイにおいては、前記外部入力変数が共通の経路を介して伝送され、前記外部出力変数が共通の経路を介して伝送されることを特徴とするルックアップテーブルカスケードアレイ回路。
【請求項１２】
請求項４に記載のＮ個のルックアップテーブルカスケード回路をワード線延伸方向にＭ系統アレイ状に並べて配置したルックアップテーブルカスケードアレイ回路であって、
異なる前記ルックアップテーブルカスケード回路の同位置のＭ個の前記メモリセルアレイにおいては、前記複数のメインワード線が共有され、外部から入力される共通の前記入力変数に応じて選択されたメインワード線が活性化されることを特徴とするルックアップテーブルカスケードアレイ回路。
【請求項１３】
請求項１１又は１２に記載のルックアップテーブルカスケードアレイ回路に対し、所定の順に従ってパイプライン制御を実行するパイプライン制御方法であって、
前記所定の順のうち連続する２系統の前記ルックアップテーブルカスケード回路における同位置の２つの前記ルックアップテーブルに対し、
第１のタイミングで、第１のルックアップテーブルを選択して前記入力選択回路を動作させ、前記第１のタイミングから所定の遅延時間の経過後に前記出力回路から前記出力変数を出力して後段に伝送する第１の動作を実行し、
前記所定の遅延時間が経過する前の第２のタイミングで、第２のルックアップテーブルを選択して前記入力選択回路を動作させ、前記第２のタイミングから所定の遅延時間の経過後に前記出力回路から前記出力変数を出力して後段に伝送する第２の動作を実行し、
全ての前記ルックアップテーブルに関し、同様の手順で先行するルックアップテーブルに対し前記第１の動作を実行し、後続のルックアップテーブルに対し前記第２の動作を実行することを特徴とするルックアップテーブルカスケードアレイ回路のパイプライン制御方法。
【請求項１４】
前記Ｍ個のルックアップテーブルカスケード回路の各々における前記第１の動作及び前記第２の動作は、所定の周期を有するクロック信号に同期して制御され、前記第１のタイミングと前記第２のタイミングの時間差は前記クロック信号の１周期分に相当することを特徴とする請求項１３に記載のルックアップテーブルカスケードアレイ回路のパイプライン制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、所望の論理関数を実現する複数のルックアップテーブルがカスケード接続されたルックアップテーブルカスケード回路に関し、特に、汎用的なメモリ回路を用いて構成されたルックアップテーブルカスケード回路、及びそれをアレイ状に配置したルックアップテーブルカスケードアレイ回路に関するものである。
【背景技術】
【０００２】
近年、ＬＳＩに多様な論理機能を持たせるために、所望の論理関数を実現するルックアップテーブル（ＬＵＴ：Look-Up Table）をメモリ上に構成する構成が提案されている（例えば、非特許文献１参照）。非特許文献１においては、複雑な論理機能を実現するため、メモリ回路に構成された複数のＬＵＴを多段にカスケード接続したＬＵＴカスケード回路の構成が提案されている。このようなＬＵＴカスケード回路を採用すれば、入出力数が多い大規模の論理関数を比較的規模が小さい複数の論理関数に分解してＬＵＴを構成することができるので、ＬＵＴのデータ量を抑えるとともにチップ面積を小さくすることができる。
【０００３】
非特許文献１によれば、上記ＬＵＴカスケード回路のアーキテクチャとして、順序回路方式と組合せ回路方式の２つが知られている。順序回路方式は、複数のＬＵＴをまとめて１つのメモリで実現し、シーケンサによりカスケードの段数分だけメモリに繰り返しアクセスする手法である。例えば、特許文献１に開示された構成が提案されている。一方、組合せ回路方式は、多数のＬＵＴを直列多段に接続して順番に信号を伝送し、最終段から目的の信号を取り出すものである。順序回路方式は柔軟な制御が可能であるが、シーケンサを用いているので高速化が難しいという問題がある。よって、高速化が必要とされる場合は、組合せ回路方式によるＬＵＴカスケード回路の採用が望ましい。
【０００４】
上記組合せ回路方式に基づくＬＵＴカスケード回路を用いる場合、隣接するＬＵＴ間を結ぶ信号線数を柔軟に可変できる構造が望ましい。そのため、非特許文献１において、ＬＵＴを直列多段に接続し、隣接するＬＵＴ間に配置した接続回路により、前段の出力と外部入力を合わせた信号線数のうち、後段に伝送する信号線数と外部出力する信号線数を自在に切り替え可能な構成が開示されている。これにより、ＬＵＴ間で自在に信号を受け渡すことができ、かつ演算途中の信号を自由に外部に引き出すことができ、ＬＵＴカスケード回路の自由度の高い構造を実現可能となる。
【非特許文献１】「ＬＵＴカスケード・アーキテクチャについて」、井口幸洋、笹尾勤（平成１５年電気学会電子・情報・システム部門大会）
【特許文献１】特開２００４−２５８７９９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記従来の組合せ回路方式に基づくＬＵＴカスケード回路を実際に構成する場合、カスケード接続される各々のＬＵＴは、汎用的な入出力インターフェースに対応していないため、上述の入出力構造を有する専用のメモリ回路を構築する必要がある。また、上述の接続回路を用いて自由度の高い構造を実現するには、多数の入出力信号を切り替え可能に接続するための構成及び制御が複雑になる。さらに、ＬＵＴカスケード回路を構成する各々のＬＵＴの読み出し動作を前提とした構成であるため、所望のデータの書き込み動作によりＬＵＴを書き換えることは容易でない。特に、ＬＵＴカスケード回路の段数が多くなる場合、多数のＬＵＴと多数の接続回路から構成される全体回路の規模の増加と制御の複雑化を招くことが問題となる。
【０００６】
一方、より多機能のＬＳＩにおいては、１系統のＬＵＴカスケード回路を配置するだけでなく、複数系統のＬＵＴカスケード回路を並列配置させて多様な論理機能を実現可能とすることが望ましい。しかし、上記従来の組合せ回路方式では、外部との間の信号線や制御信号を共用する場合、異なるＬＵＴカスケード回路を同時に動作させることは困難である。従って、複数系統のＬＵＴカスケード回路を配置する場合、動作速度の面でメリットがあるパイプライン制御を採用することは困難である。
【０００７】
そこで、本発明はこれらの問題を解決するためになされたものであり、組合せ回路方式に基づくＬＵＴカスケード回路を構成する場合、汎用的なメモリ回路に構成された複数のＬＵＴを柔軟な入出力構造を持たせてカスケード接続し、回路構成と制御をともに簡素化でき、自在に書き込み可能な利便性の高いＬＵＴカスケード回路を提供するとともに、ＬＵＴカスケードアレイ回路をパイプライン制御により並列動作させ、高速処理が可能なＬＵＴカスケードアレイ回路を提供することを目的としている。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、本発明のルックアップテーブルカスケード回路は、所望の論理関数を実現するＮ個のルックアップテーブルがカスケード接続されたルックアップテーブルカスケード回路であって、複数のワード線と複数のビット線の交点に形成された複数のメモリセルに前記ルックアップテーブルのデータを記憶保持するＮ個のメモリセルアレイと、前記ルックアップテーブルの入力変数に基づいて、前記メモリセルアレイの読み出し対象の各メモリセルが属する前記ワード線及び前記ビット線を選択するＮ個の入力選択回路と、前記入力選択回路により選択された各メモリセルの所定ビット数のデータを入出力経路と選択的に接続し、前記ルックアップテーブルの出力変数として出力するＮ個の出力回路と、前記カスケード接続された各段のうち前段の前記出力回路と後段の前記入力選択回路の間に配置され、外部入力変数と前記前段の出力回路から出力される前記出力変数とを入力し、外部出力変数と前記後段の入力選択回路に供給すべき前記入力変数の全部又は一部とを、予め設定された接続情報に応じて選択的に分配出力するＮ−１個の接続回路と、を備えて構成される。
【０００９】
このような構成において、ルックアップテーブルカスケード回路の各段では、入力選択回路と、メモリセルアレイと、出力回路とによりルックアップテーブルを構成し、各段の間に配置された接続回路により、外部の入出力信号と内部の入力変数の選択的な分配が行われる。これにより、汎用的なメモリ回路の構成要素を基本として若干の回路を付加することで、自由度の高い入出力構造を持つ組合せ回路方式に基づくルックアップテーブルカスケード回路を構成することができる。この場合、接続回路に付与される接続情報を適切に設定することで、所定位置のルックアップテーブルの出力変数のうち、外部出力するデータと後段に伝送するデータを柔軟に調整することができる。特に、ルックアップテーブルの段数が多くなる場合は、複雑な論理演算を小さい回路規模で高速に処理可能な構成を実現する場合に適している。
【００１０】
本発明において、各々の前記接続回路は、入力された前記外部入力変数及び前記出力変数を保持する入力レジスタと、前記入力レジスタに保持されるデータを、前記接続情報に含まれるシフト量だけシフトするシフタ回路と、前記シフタ回路によりシフトされたデータを保持して前記外部出力変数及び前記入力変数を出力する出力レジスタとを含む構成としてもよい。
【００１１】
本発明において、各々の前記入力選択回路は、前記複数のワード線を選択的に活性化するロウデコーダと、前記読み出し対象の各メモリセルが属する所定数のビット線を選択するカラムデコーダとを含む構成としてもよい。
【００１２】
本発明において、前記メモリセルアレイに、複数のメインワード線と複数のサブワード線とからなるワード線階層構造を形成し、前記ロウデコーダは、前記複数のメインワード線を選択的に活性化するメインロウデコーダと、前記複数のサブワード線を選択的に活性化するサブデコーダを含む構成としてもよい。
【００１３】
本発明において、前記接続回路から前記カラムデコーダに入力される第１の入力変数と、前記接続回路から前記サブデコーダに入力される第２の入力変数と、外部から前記メインロウデコーダに入力される第３の入力変数とからなる前記入力変数を用いてもよい。
【００１４】
本発明において、各々の前記メモリセルアレイのワード線延伸方向の両端部に２つの前記サブデコーダを略対称的に配置し、それぞれの前記サブデコーダに前記複数のサブワード線を互い違いに接続してもよい。
【００１５】
本発明において、前記出力回路は、前記入力選択回路により選択された所定数のビット線を前記入出力経路に選択的に接続する出力スイッチ回路と、前記入出力経路を経由して前記出力変数を保持する出力ラッチ回路とを含む構成としてもよい。
【００１６】
本発明において、前記メモリセルアレイに対し、前記入出力経路を経由して前記出力ラッチ回路とは異なる経路でデータを入出力可能に構成してもよい。
【００１７】
本発明において、前記メモリセルアレイの入出力ビット構成は、前記入出力経路のビット幅の範囲内で変更可能に構成してもよい。
【００１８】
本発明において、前記Ｎ個のルックアップテーブルは、Ｎ個のＤＲＡＭ回路を用いて構成してもよい。
【００１９】
一方、本発明のルックアップテーブルカスケードアレイ回路は、上述のＮ個のルックアップテーブルカスケード回路がワード線延伸方向にＭ系統アレイ状に並べて配置され、異なる前記ルックアップテーブルカスケード回路の同位置のＭ個の前記メモリセルアレイにおいて、前記外部入力変数が共通の経路を介して伝送され、前記外部出力変数が共通の経路を介して伝送されるように構成される。
【００２０】
また、本発明のルックアップテーブルカスケードアレイ回路は、上述のＮ個のルックアップテーブルカスケード回路がワード線延伸方向にＭ系統アレイ状に並べて配置され、異なる前記ルックアップテーブルカスケード回路の同位置のＭ個の前記メモリセルアレイにおいて、前記複数のメインワード線が共有され、外部から入力される共通の前記入力変数に応じて選択されたメインワード線が活性化されるように構成される。
【００２１】
本発明のパイプライン制御方法は、上述のルックアップテーブルカスケードアレイ回路に対し、所定の順に従ってパイプライン制御を実行するものであり、前記所定の順のうち連続する２系統の前記ルックアップテーブルカスケード回路における同位置の２つの前記ルックアップテーブルに対し、第１のタイミングで、第１のルックアップテーブルを選択して前記入力選択回路を動作させ、前記第１のタイミングから所定の遅延時間の経過後に前記出力回路から前記出力変数を出力して後段に伝送する第１の動作を実行し、前記所定の遅延時間が経過する前の第２のタイミングで、第２のルックアップテーブルを選択して前記入力選択回路を動作させ、前記第２のタイミングから所定の遅延時間の経過後に前記出力回路から前記出力変数を出力して後段に伝送する第２の動作を実行し、全ての前記ルックアップテーブルに関し、同様の手順で先行するルックアップテーブルに対し前記第１の動作を実行し、後続のルックアップテーブルに対し前記第２の動作を実行する。
【００２２】
この場合、前記Ｍ個のルックアップテーブルカスケード回路の各々における前記第１の動作及び前記第２の動作を、所定の周期を有するクロック信号に同期して制御し、前記第１のタイミングと前記第２のタイミングの時間差を前記クロック信号の１周期分に相当するようにしてもよい。
【発明の効果】
【００２３】
本発明によれば、一般的なメモリ回路及びその付加回路を用い、メモリセルアレイ、入力選択回路、出力回路、接続回路をそれぞれ複数配置して組合せ回路方式に基づくルックアップテーブルカスケード回路が構成される。各々のメモリセルの読み出し対象のデータは、前段の出力変数と外部入力変数に応じて接続回路により分配出力された入力変数に基づき、ビット線とワード線が選択される。この場合、ルックアップテーブルの各段は入出力構造が柔軟であり、接続回路への接続情報の設定に応じて自在に可変できる。従って、回路構成及び制御を複雑にすることなく、効率的かつ高集積なルックアップテーブルカスケード回路を構成することができるとともに、接続回路と異なるメモリ回路の入出力経路を利用することで、ルックアップテーブルへの書き込み動作も自在に行うことができる。
【００２４】
また、本発明のルックアップテーブルカスケード回路をアレイ状に配置することで、多様な論理機能を並列に実行可能なルックアップテーブルカスケードアレイ回路を実現することができる。この場合、異なるカスケード接続の同位置に配置された各ルックアップテーブルは、互いにワード線や信号線の経路を共有することができ、これによりパイプライン制御による動作を実現することができる。従って、異なるルックアップテーブルカスケード回路を並列に動作させることができ、実効的な演算速度の向上が可能となる。
【発明を実施するための最良の形態】
【００２５】
以下、本発明の実施形態について図面を参照しながら説明する。ここでは、複数のルックアップテーブル（以下、ＬＵＴと呼ぶ）を多段に接続してＬＵＴカスケード回路をＤＲＡＭ等のメモリ回路を用いて構成する場合の２つの実施形態を説明する。
【００２６】
（第１実施形態）
第１実施形態では、複数のＬＵＴを多段に接続した１つのＬＵＴカスケード回路を構成する場合の一形態を説明する。図１は、第１実施形態のＬＵＴカスケード回路に含まれる単位ＬＵＴ回路の基本構成を示すブロック図である。図１に示す単位ＬＵＴ回路は、例えば、一般的なＤＲＡＭの構成要素に、ＬＵＴの機能に必要な回路を付加して構成される。
【００２７】
図１に示すように、メモリセルアレイに構成されたＬＵＴ１０と、メインロウデコーダ１１と、２つのサブデコーダ１２と、カラムデコーダ１３と、セレクタ回路１４と、出力スイッチ回路１５と、出力ラッチ回路１６とを含んで単位ＬＵＴ回路が構成されている。また、単位ＬＵＴ回路の周辺には、接続情報を保持する接続メモリ２０と、ＬＵＴ構成情報を保持するＬＵＴ構成メモリ２１が配置されている。
【００２８】
図１の単位ＬＵＴ回路は所定の論理関数として機能する。ＬＵＴカスケード回路の前段から伝送された１６ビットの出力変数は、セレクタ回路１４の入力信号Ｉとして入力されるとともに、外部から９ビットの外部入力変数ＥＩがセレクタ回路１４に入力される。セレクタ回路１４では入力された２５ビットは、後述するように、１６ビットの外部出力変数ＥＯと６ビットの入力変数Ｘ１（第１の入力変数）と３ビットの入力変数Ｘ２（第２の入力変数）に分配出力される。また、外部から５ビットの外部入力変数ＥＸ（第３の入力変数）がメインロウデコーダ１１に入力される。これらの入力変数Ｘ１、Ｘ２及び外部入力変数ＥＸは、一体的にＬＵＴ１０に供給される１４ビットの入力変数となる。一方、出力ラッチ回路１６からは、１６ビットの出力変数ＹがＬＵＴカスケード回路の後段に出力される。
【００２９】
ＬＵＴ１０が構成されるメモリセルアレイは、複数のビット線とこれに直交する複数のワード線の交点に形成された多数のメモリセルからなる。各々のメモリセルには、論理関数に応じたＬＵＴデータの１ビット分が記憶保持されている。ＬＵＴ１０内におけるアクセス対象のワード線は、ワード線階層構造に基づいてメインロウデコーダ１１及び２つのサブデコーダ１２により選択される。また、ＬＵＴ１０内におけるアクセス対象のビット線は、カラムデコーダ１３により選択される。これらのメインロウデコーダ１１、サブデコーダ１２、カラムデコーダ１３は一体的に本発明の入力選択回路として機能する。なお、メモリセルアレイ及び各デコーダの具体的な構成及び動作については後述する。
【００３０】
本発明の接続回路として機能するセレクタ回路１４は、上述の入力信号Ｉ及び外部入力変数ＥＩを合わせた２５ビットを入力し、接続メモリ２０から供給される接続情報に基づき所定のシフト量だけシフトした後のデータを選択的に分配出力する。シフト後のデータのうち、１６ビットの外部出力変数ＥＯが外部に出力され、６ビットの入力変数Ｘ１がカラムデコーダ１３に出力され、３ビットの入力変数Ｘ２が２つのサブデコーダ１２に出力される。
【００３１】
出力スイッチ回路１５は、ＬＵＴ１０におけるアクセス対象の１６ビット分のデータの入出力経路をＬＵＴ構成メモリ２１から供給されるＬＵＴ構成情報に基づきスイッチ制御し、１６ビットの入出力バスと選択的に接続する回路である。また、出力ラッチ回路１６は、出力スイッチ回路１５から入出力バスに出力された１６ビットのデータをラッチし、後段の回路に出力する回路である。なお、第１実施形態においては、メモリセルアレイのアクセス時の入出力ビット構成（データ幅）を４ビット構成、８ビット構成、１６ビット構成の中から選択的に設定可能であり、後述の制御に従って設定された入出力ビット構成で後段のＬＵＴ１０にデータが出力される。これらの出力スイッチ回路１５及び出力ラッチ回路１６は、一体的に本発明の出力回路として機能する。
【００３２】
ここで、図１には示していないが、出力スイッチ回路１５から出力ラッチ回路１６を経由して後段に伝送される経路とは別に、入出力バスを経由して出力スイッチ１５と接続される経路を設けることができる。このような経路を用いて外部からの書き込みデータを入出力バスから出力スイッチ１５を経由して、メモリセルアレイに書き込むことができる。これにより、各々のＬＵＴ１０の内容を自在に書き換えることができる。
【００３３】
図１に示す単位ＬＵＴ回路により、１４入力１６出力の論理関数を実現することができる。この論理関数の１４ビットの入力変数には、６ビットの入力変数Ｘ１、３ビットの入力変数Ｘ２、５ビットの外部入力変数ＥＸが含まれる。このうち、入力変数Ｘ１、Ｘ２の９ビット分については、セレクタ回路１４により前段の出力変数Ｙと外部入力変数ＥＩが任意のビット数で分配される。また、この論理関数の１６ビットの出力変数は、出力ラッチ回路１６から出力される出力変数Ｙに対応し、このうち任意のビット数を後段のセレクタ回路１４から外部出力変数ＥＯとして取り出すことができる。
【００３４】
次に、ＬＵＴ１０の入力側のセレクタ回路１４の構成及び動作について図２及び図３を参照して説明する。図２に示すセレクタ回路１４は、シフタ回路３０と、シフタ回路３０の入力側の第１入力レジスタ３１及び第２入力レジスタ３２と、シフタ回路３０の出力側の第１出力レジスタ３３及び第２出力レジスタ３４とにより構成される。第１入力レジスタ３１は、前段から入力される１６ビットの入力信号Ｉを保持する１６ビットのレジスタであり、第２入力レジスタ３２は、外部から入力される９ビットの外部入力変数ＥＩを保持する９ビットのレジスタである。
【００３５】
シフタ回路３０は、第１入力レジスタ３１に保持される１６ビットと第２入力レジスタ３２に保持される９ビットを合わせた２５ビットを入力し、接続メモリ２０からの接続情報としてのシフト量に応じて、入力された２５ビットを所定のタイミングで図２の下部方向にシフトする。シフタ回路３０によるシフト動作が行われると、シフト後の２５ビットのうちの１６ビットが第１出力レジスタ３３に出力され、９ビットが第２出力レジスタ３４に出力される。第１出力レジスタ３３の１６ビットは外部出力変数ＥＯとして外部出力される。一方、第２出力レジスタ３４の９ビットは、６ビットが入力変数Ｘ１としてカラムデコーダ１３に出力され、３ビットが入力変数Ｘ２として２つのサブデコーダ１２に共通に出力される。
【００３６】
ここで、シフタ回路３０によるシフト動作の例について図３を用いて説明する。図３は、シフト量が４ビットに設定される場合の例を示している。なお、シフト量が０に設定されている場合は、シフタ回路３０を介して、第１入力レジスタ３１の保持データがそのまま第１出力レジスタ３３に送られ、第２入力レジスタ３２の保持データがそのまま第２出力レジスタ３４に送られることになる。図３に示すように、入力信号Ｉが１６ビットのＡ０〜Ａ１５により構成され、外部入力変数ＥＩが９ビットのＢ０〜Ｂ８により構成されるものとする。この場合、シフタ回路３０で４ビットのシフト動作が行われると、第１出力レジスタ３３では、下位１２ビットに入力信号Ｉの上位１２ビットＡ４〜Ａ１５が保持され、上位４ビットはドントケアとなる。また、第２出力レジスタ３４では、上位４ビットに入力信号Ｉの下位４ビットＡ０〜Ａ３が保持され、下位５ビットに外部入力変数ＥＩの上位５ビットＢ４〜Ｂ８が保持されるが、外部入力変数ＥＩの下位４ビットＢ０〜Ｂ３については、シフタ回路３０のシフト動作により消失する。
【００３７】
次に、ＬＵＴ１０の構成例について図４を参照して説明する。図４の例では、一般的なＤＲＡＭのメモリセルアレイ１０Ｍと、メモリセルアレイ１０Ｍの両側に配置されるセンスアンプ列１０Ｌ、１０Ｒの具体的な構成を示している。メモリセルアレイ１０Ｍは、複数のワード線ＷＬとそれに直交する複数のビット線ＢＬが配置され、ワード線ＷＬとビット線ＢＬの交点には多数のメモリセルＭＣが形成されている。ビット線ＢＬは２本１組となってビット線ペアＢＰを構成する。図４の例では、各ビット線ペアＢＰと１本のワード線ＷＬの２つの交点のうち、いずれかの交点にのみ１つのメモリセルＭＣが形成される。なお、図４のメモリセルＭＣの各交点への配置パターンは一例であり、同様のデータを記憶保持し得る多様な配置パターンを採用することができる。
【００３８】
図４のビット線ペアＢＰに番号を付して示すように、２５６組のビット線ペアＢＰ０〜ＢＰ２５５が両側のセンスアンプ列１０Ｌ、１０Ｒの各センスアンプＳＡと互い違いに接続されている。すなわち、偶数番号の１２８組のビット線ペアＢＰが左側のセンスアンプ列１０ＬのセンスアンプＳＡに接続され、奇数番号の１２８組のビット線ペアＢＰが右側のセンスアンプ列１０ＲのセンスアンプＳＡに接続される。各々のセンスアンプＳＡは、２つの入力端子がビット線ペアＢＰの２本のビット線ＢＬの間に接続され、メモリセルＭＣの電荷により生じるビット線ペアＢＰの微小電位を増幅してメモリセルＭＣに再書き込みするように動作する。
【００３９】
メモリセルアレイ１０Ｍのワード線延伸方向の両端部には、上述の２つのサブデコーダ１２が対称的に配置されている。ワード線ＷＬに番号を付して示すように、２５６本のワード線ＷＬが両側のサブデコーダ１２と互い違いに接続されている。すなわち、偶数番号の１２８本のワード線ＷＬが上側のサブデコーダ１２に接続され、奇数番号の１２８本のワード線ＷＬが下側のサブデコーダ１２に接続される。上側及び下側の２つのサブデコーダ１２では、後述するように、３２本のメインワード線ＭＷＬ（図９参照）が接続され、上記の入力変数Ｘ２に応じて８本ごとのワード線（サブワード線）ＷＬのいずれかを選択的にメインワード線ＭＷＬと接続するように動作する。
【００４０】
また、図４の例ではＤＲＡＭを用いたＬＵＴ１０を想定しているが、他のメモリ回路を用いたＬＵＴ１０を構成してもよい。図５は、図４に対応するＬＵＴ１０の変形例であり、図４のセンスアンプＳＡが設けられないメモリ回路を用いたメモリセルアレイ１０の構成を示している。図５のメモリセルアレイ１０Ｍにおいては、ビット線ＢＬの両側のセンスアンプＳＡが設けられない点を除き、ワード線ＷＬ、ビット線ＢＬ、ビット線ペアＢＰ、メモリセルＭＣのそれぞれの配置が図４と同様である。上述したように図４の構成は、例えばＤＲＡＭを用いる場合を想定しているのに対し、図５の構成は、例えばＳＲＡＭを用いる場合を想定したものである。ＳＲＡＭのメモリセルＭＣを読み出す場合、ビット線ＢＬを介して出力ラッチ回路１６を直接駆動するのに十分な信号を供給できるので、センスアンプＳＡを設ける必要がない。
【００４１】
次に、ＬＵＴ１０の出力側の出力スイッチ回路１５の構成及び動作について、カラムデコーダ１３及び出力ラッチ回路１６との関係を含め、図６及び図７を参照して説明する。図６は、出力スイッチ回路１５の概略構成を示す図であり、図７は、カラムデコーダ１３の選択動作を示す図である。図６に示すように、出力スイッチ回路１５は、番号を付して示される２５６本のビット線ＢＬ（ＢＬ０〜ＢＬ２５５と表記する）のうちの連続する４本ごとに接続される６４個のスイッチＳＷ（ＳＷ０〜ＳＷ６３と表記する）を含んでいる。ここで、２５６本のビット線ＢＬ０〜ＢＬ２５５は、ＬＵＴ１０が図４に示す構成を有する場合、２５６組のビット線ペアＢＰ０〜ＢＰ２５５の各相補対のいずれか一方のビット線ＢＬに対応する。なお、２５６組のビット線ペアＢＰの各相補対の双方のビット線ＢＬが接続される構成については後述する。
【００４２】
２５６本のビット線ＢＬ０〜ＢＬ２５５は配置順に連続する１６本が１組となって、１６本の配線群からなる１６ビットの入出力バスＢに接続される関係にある。一方、入出力バスＢの１６本の配線群は、順に１６ビットの出力ラッチ回路１６と接続される。従って、出力ラッチ回路１６には、スイッチＳＷ０〜ＳＷ６３のうちの連続する４個を経由する１６本のビット線ＢＬのデータを取り込むことができる。
【００４３】
図６において、６４個のスイッチＳＷ０〜ＳＷ６３は、それぞれ異なる６４個の選択信号ＹＳ（ＹＳ０〜ＹＳ６３と表記する）に応じてオン・オフが切り替え制御される。カラムデコーダ１３は、セレクタ回路１４から出力される入力変数Ｘ１に基づいて６４個の選択信号ＹＳを選択的に活性化する。上述したように、図１の単位ＬＵＴ回路においては、ＬＵＴ構成メモリ２１から供給されるＬＵＴ構成情報に基づき、３通りの入出力ビット幅（４ビット構成、８ビット構成、１６ビット構成）の中から選択的に設定することができる。よって、カラムデコーダ１３では、設定された入出力ビット幅に対応して異なる選択動作が実行される。
【００４４】
図７は、入出力ビット幅の３通りの設定に対応するカラムデコーダ１３の選択動作を示している。４ビット構成の設定時は、カラムアドレスとしての入力変数Ｘ１の全６ビットに基づき１つの選択信号ＹＳが活性化される。８ビット構成の設定時は、入力変数Ｘ１の最下位ビットを除く上位５ビットに基づき連続する２つの選択信号ＹＳが活性化される。１６ビット構成の設定時は、入力変数Ｘ１の下位２ビットを除く上位４ビットに基づき連続する４つの選択信号ＹＳが活性化される。これにより、活性化された選択信号ＹＳと同数のスイッチＳＷがオンに制御され、その４倍の連続する最大１６本のビット線ＢＬを入出力バスＢの１６本の配線群に接続することができる。
【００４５】
さらに、カラムデコーダ１３は、選択信号ＹＳに加えて、入力変数Ｘ１の下位２ビットに基づき４つのセット選択信号ＳＳ０〜ＳＳ３を生成して選択的に活性化する。このセット選択信号ＳＳ０〜ＳＳ３は、出力ラッチ回路１６を４ビットごとに区分し、ビット線ＢＬの配置順に各４ビットをセットＳ０、Ｓ１、Ｓ２、Ｓ３により表し、いずれのセットＳ０〜Ｓ３を選択すべきかを通知する信号である。図７に示すように、入力変数Ｘ１の下位２ビットのパターンが００、０１、１０、１１の順に、セット選択信号Ｓ０、Ｓ１、Ｓ２、Ｓ３が活性化され、この４パターンが繰り返される。
【００４６】
図６の出力ラッチ回路１６の例では、下側から順に番号が付記され、セットＳ０（０〜３）、セットＳ１（４〜７）、セットＳ２（８〜１１）、セットＳ３（１２〜１５）と区分されている。まず、４ビット構成の設定時は、活性化されたセット選択信号Ｓ０〜Ｓ３の１つに対応するセットＳ０〜Ｓ４の１つにより、アクセス対象の４本のビット線ＢＬのデータが出力される。８ビット構成の設定時は、セット選択信号ＳＳ０、ＳＳ１のいずれかが活性化されたときは２つのセットＳ０、Ｓ１により、セット選択信号ＳＳ２、ＳＳ３のいずれかが活性化されたときは２つのセットＳ２、Ｓ３により、それぞれアクセス対象の８本のビット線ＢＬのデータが出力される。１６ビット構成の設定時は、セット選択信号Ｓ０〜Ｓ３の活性化に関わらず、４つのセットＳ０〜Ｓ３全てにより、アクセス対象の１６本のビット線ＢＬのデータが出力される。従って、出力ラッチ回路１６から出力されるデータを取り込む場合、４ビット又は８ビット構成の設定時はセット選択信号ＳＳ０〜ＳＳ３に基づきデータを選択する付加回路が必要であるが、１６ビット構成の設定時は付加回路が不要となる。なお、第１実施形態においては、主に１６ビット構成が設定される場合を説明するものとする。
【００４７】
図８は、図６の出力スイッチ回路１５の具体的な構成例を示している。図８の構成例では、出力スイッチ回路１５の下側の２つのスイッチＳＷ０、ＳＷ１に対応する回路部分のみを示している。図８に示すように、ビット線ペアＢＰの相補対をなす２本のビット線ＢＰの双方にスイッチトランジスタＳＷＴが接続されている。例えば、最初のビット線ペアＢＰに対応して１本置きに配置されたＴ（ツルー）側のビット線ＢＰ０（Ｔ）とＢ（バー）側のビット線ＢＰ０（Ｂ）のそれぞれにスイッチトランジスタＳＷＴが接続されている。他のビット線ペアＢＰについても同様の関係で配置され、スイッチＳＷ０、ＳＷ１の各々は８個のスイッチトランジスタＳＷＴにより構成されている。スイッチＳＷ０の各スイッチトランジスタＳＷのゲートには選択信号ＹＳ０が印加され、スイッチＳＷ１の各スイッチトランジスタＳＷのゲートには選択信号ＹＳ１が印加されている。一方、入出力バスＢについても相補対をなすビット線ペアＢＰに対応して、図６の２倍の３２本の配線群からなる。ただし、入出力バスＢにおいて実際に伝送されるデータは１６ビットであり、最終的には相補対の一方側の１６ビットのみを取り込めばよい。一方、この構成を用いると、入出力バスＢを直接経由して論理関数のデータとは異なる経路でメモリセルアレイ１０Ｍの読み出し又は書き込みを実行できるので、汎用ＤＲＡＭと同様にメモリセルアレイ１０Ｍにアクセスすることが可能である。
【００４８】
次に、ＬＵＴ１０に付随する２つのサブデコーダ１２の回路構成について図９を参照して説明する。図９に示すように、上側のサブデコーダ１２は、偶数番号の１２８本のワード線ＷＬに接続された１２８個の選択トランジスタＳＴから構成され、下側のサブデコーダ１２は、奇数番号の１２８本のワード線ＷＬが接続された１２８個の選択トランジスタＳＴから構成される。図９では、各サブデコーダ１２の一部の回路のみを示しているが、４個の選択トランジスタＳＴが１組をなし、各選択トランジスタＳＴが異なるワード線ＷＬと共通のメインワード線ＭＷＬ０の間に接続されて導通制御される。図９の例においては、２つのサブデコーダ１２により、共通のメインワード線ＭＷＬ０と８本のワード線ＷＬ０〜ＷＬ７の間の接続を導通制御することができる。各サブデコーダ１２の全体で、同様の配置が繰り返され、全部で３２本のメインワード線ＭＷＬをそれぞれ４本ずつ計２５６本のワード線ＷＬと接続可能に構成されている。
【００４９】
２つのサブデコーダ１２の端部には、２つのプリデコーダＰＤが配置されている。これらのプリデコーダＰＤは、セレクタ回路１４から出力される３ビットの入力変数Ｘ２に基づき、８本のデコード信号Ｄ０〜Ｄ７を選択的に活性化する。デコード信号Ｄ０〜Ｄ３の各々は、下側のサブデコーダ１２の各組の異なる１個の選択トランジスタＳＴのゲートに接続され、それぞれ３２個の選択トランジスタＳＴの導通制御に用いられる。同様に、デコード信号Ｄ４〜Ｄ７の各々は、上側のサブデコーダ１２の各組の異なる１個の選択トランジスタＳＴのゲートに接続され、それぞれ３２個の選択トランジスタＳＴの導通制御に用いられる。
【００５０】
２つのサブデコーダ１２において、入力変数Ｘ２のうち１ビットが上側と下側のサブデコーダ１２の選択に用いられ、残りの２ビットが各配置中の４個の選択トランジスタＳＴの選択に用いられる。よって、所定の入力変数Ｘ２に対応して８本のデコード信号Ｄ０〜Ｄ７の１本のみが活性化される。この場合、１本のメインワード線ＭＷＬがメインロウデコーダ１１により選択されるので、２つのサブデコーダ１２により、選択されたメインワード線ＭＷＬに対応する１本のワード線ＷＬが選択されることになる。なお、２つのサブデコーダ１２をワード線延伸方向の一端のみに集約することもできるが、ワード線ＷＬのピッチに対して回路配置を緩和するためには、図９の構成が有利となる。
【００５１】
次に、第１実施形態の単位ＬＵＴ回路が多段にカスケード接続されたＬＵＴカスケード回路について説明する。図１０は、Ｎ個の単位ＬＵＴ回路を順番に接続して構成されるＬＵＴカスケード回路の構成例を示している。ＬＵＴカスケード回路の任意の単位ＬＵＴ回路には、それぞれ外部から９ビットの外部入力変数ＥＩがセレクタ回路１４に入力され、５ビットの外部入力変数ＥＸがメインロウデコーダ１１に入力される。また、２段目以降の単位ＬＵＴ回路のセレクタ回路１４は、前段の出力ラッチ回路１６からの１６ビットの出力変数Ｙを順次入力し、１６ビットの外部出力変数ＥＯを外部出力する。最終段の単位ＬＵＴ１０から、１６ビットの出力変数Ｙを取り出すことができる。
【００５２】
図１０においては、図示されない接続メモリ２０から各々の単位ＬＵＴ回路に接続情報が供給される。各単位ＬＵＴ回路に対しては、接続情報に含まれるシフト量を独自に設定可能であり、各セレクタ回路１４の動作により論理関数の所望の接続形態を自在に実現することができる。例えば、セレクタ回路１４のシフト量が１６に設定される場合、前段の単位ＬＵＴ回路から出力される１６ビットのデータのうち上位９ビットを後段の単位ＬＵＴ回路に伝送することができる。逆に、セレクタ回路１４のシフト量が０に設定される場合は、前段の単位ＬＵＴ回路から後段の単位ＬＵＴ回路にデータが伝送されず、カスケード接続が途切れ、その段で論理関数が完結することを表す。
【００５３】
次に、第１実施形態のＬＵＴカスケード回路を用いて論理機能を実現する半導体装置にについて説明する。図１１は、このような半導体装置の一例としてのプログラマブルロジックＬＳＩの全体構成を示すブロック図である。図１１に示すプログラマブルロジックＬＳＩは、それぞれが所定の論理機能を担う複数の論理ブロック１と、これらの論理ブロック１に入出力されるデータの接続経路を切り替える複数の接続回路２と、半導体装置の内部と外部の間でデータを入出力する２つの入出力回路３を備えている。また、各論理ブロック１と接続回路２の間を接続する入出力バス４と、各接続回路２同士又は各接続回路２と入出力回路３の間を接続する接続バス５が配線されている。図１１の構成のうち、論理ブロック１と接続回路２の構成を図１２及び図１３に示している。
【００５４】
論理ブロック１は、第１実施形態のＬＵＴカスケード回路により実現される論理関数を用いて所定の論理機能を実現する回路である。図１２に示すように、論理ブロック１は、複数の単位ＬＵＴ回路からなるＬＵＴカスケード回路６と、所定の論理演算を実行する論理回路７から構成される。ＬＵＴカスケード回路６は、例えば図１０のように構成される。論理ブロック１においては、論理回路７がＬＵＴカスケード回路６を制御して所望の論理関数の演算を実行する。また、論理ブロック１は入出力線４を介して外部との間で、所定ビット数の入出力データを伝送可能に構成されている。なお、図１２では、入出力線４に８本の配線が含まれる例を示しているが、実際のビット幅は回路構成に応じて変わる。
【００５５】
図１３に示すように、接続回路２は、コンフィギュレーションデータを記憶するコンフィギュレーションメモリ８と、マトリクス状に配置された多数のスイッチからなるスイッチングマトリクス９から構成される。コンフィギュレーションメモリ８に記憶されるコンフィギュレーションデータに基づいて、スイッチングマトリクス９における接続状態が指定される。スイッチングマトリクス９では、指定された接続状態に応じて多数のスイッチを水平接続バス５ｈ又は垂直接続バス５ｖと選択的に接続することができる。それぞれ、水平接続バス５ｈは水平方向に延伸される配線群であり、垂直接続バス５ｖは垂直方向に延伸される配線群である。この場合、コンフィギュレーションメモリ８のコンフィギュレーションデータを書き換えることにより、スイッチングマトリクス９の接続状態を自在に変更することができる。
【００５６】
図１１に戻って、２０個の接続回路２のうち、１０個は水平方向に隣接する論理ブロック１と入出力線４を介して接続され、残りの１０個は、水平方向又は垂直方向に隣接する接続回路２又は入出力回路３と接続バス５を介して接続される。このような接続により、任意の論理ブロック１から、複数の接続回路２及び入出力回路３を経由して外部との間でデータを入出力することができる。
【００５７】
なお、図１１のプログラマブルロジックＬＳＩの例は、８個の論理ブロック１と、２０個の接続回路２が含まれるが、論理ブロック１の個数と接続回路２の個数は自在に選択することができる。また、論理ブロック１、接続回路２、入出力回路３の配置と接続形態についても、図１１に限られることなく多様な選択が可能である。
【００５８】
以上説明した第１実施形態のＬＵＴカスケード回路を用いることにより、ＤＲＡＭ等の汎用的なメモリ回路が有する仕組みを利用して、各々のＬＵＴ１０に所望の入力変数を与え、かつ所望の出力変数を取り出すことができる。入力変数はメインロウデコーダ１１、サブデコーダ１２、カラムデコーダ１３にそれぞれ振り分けられ、選択されたメモリセルＭＣから読み出された出力変数は出力スイッチ回路１５と出力ラッチ回路１６を経由して選択的に取り出すことができ、既存のメモリ回路に小規模の回路を付加して構成可能である。また、隣接する単位ＬＵＴ間にセレクタ回路１４を配置したので、シフタ回路３０のシフト量に応じて、内部の信号の受け渡しと外部入出力の関係を柔軟に切り替え制御することができる。例えば、一般的なＤＲＡＭを用いて単位ＬＵＴ回路を構成する場合、大容量・高集積度のＬＵＴが多段に接続されたＬＵＴカスケード回路を小面積で実現することができる。また、ＬＵＴカスケード回路内では最短のパスで信号が伝送されるので、レイテンシを短縮することができる。さらに、出力スイッチ回路１５に接続される入出力バスＢを用いて、論理関数のデータとは異なる経路でメモリセルアレイ１０Ｍへの書き込みを実行できるので、ＬＵＴの内容を迅速かつ簡単に変更することができる。
【００５９】
（第２実施形態）
第２実施形態では、複数のＬＵＴを多段に接続したＬＵＴカスケード回路を複数系統配置し、パイプライン制御を実行する場合の一形態を説明する。第２実施形態においては、単位ＬＵＴ回路の基本的な形態の多くは第１実施形態と共通であり、図１〜図８については同様の構成及び動作となるので、説明を省略する。一方、第２実施形態の単位ＬＵＴ回路においては、ＬＵＴ１０に付随する２つのサブデコーダ１２の周辺の回路構成が第１実施形態とは異なる。
【００６０】
図１４は、第２実施形態の２つのサブデコーダ１２とその周辺の回路構成を示す図である。２つのサブデコーダ１２そのものの回路構成と２つのプリデコーダＰＤの機能については、第１実施形態と同様である。一方、図１４においては、２つのサブデコーダ１２に隣接する２つのリセット回路１７が設けられている。各々のリセット回路１７は、共通接続されたゲートにリセット信号ＲＳＴが印加された複数のリセット用トランジスタＲＴから構成されている。リセット信号ＲＳＴは、単位ＬＵＴ回路の図示しない制御回路から供給される。２つのリセット回路１７において、リセット用トランジスタＲＳＴは選択トランジスタと同数の２５６個が並列に配置されている。各々のリセットトランジスタＲＴは、互いに異なるワード線ＷＬとグランドの間に接続され、リセット信号ＲＳＴに応じて導通制御される。
【００６１】
リセット信号ＲＳＴがローのときは、各リセット用トランジスタＲＴがオフとなり、各ワード線ＷＬの状態に影響を与えない。リセット信号ＲＳＴがハイのときは、各リセット用トランジスタＲＴがオンとなり、各ワード線ＷＬが強制的にローになる。このようにリセット回路１７の役割は、１本のメインワード線ＭＷＬに対応する１本のワード線ＷＬが活性化された状態にあるとき、パイプライン制御に基づく所定のタイミングで、活性化されているワード線ＷＬをリセットすることである。これにより、複数のワード線ＷＬを順次活性化する場合の制御を迅速に実行可能となる。
【００６２】
次に、第２実施形態の単位ＬＵＴ回路が多段にカスケード接続されたＬＵＴカスケード回路をアレイ状に配置したＬＵＴカスケードアレイ回路について説明する。図１５は、Ｎ個の単位ＬＵＴ回路を順番に接続したＬＵＴカスケード回路を２系統アレイ状に配置したＬＵＴカスケードアレイ回路の構成例を示している。第２実施形態ではパイプライン制御を実行するため、異なる論理機能を担う複数系統のＬＵＴカスケード回路を配置することが前提となる。図１５の２つのＬＵＴカスケード回路Ｃ０、Ｃ１には、初段の単位ＬＵＴ回路にそれぞれカスケード選択信号ＳＣ０、ＳＣ１が供給され、ＬＵＴカスケード回路Ｃ０、Ｃ１のいずれかをカスケード選択信号ＳＣ０、ＳＣ１に応じて選択することができる。なお、実際には、Ｍ系統のＬＵＴカスケード回路を配置することができるが、簡単のためＭ＝２の場合を説明する。
【００６３】
図１５の構成では、各々の単位ＬＵＴ回路に入力される外部入力変数ＥＩと外部入力変数ＥＸを保持する入力信号レジスタ４１と、２段目以降の単位ＬＵＴ回路から出力される外部出力変数ＥＯ及び最終段の単位ＬＵＴ回路から出力される出力変数Ｙを保持する出力信号レジスタ４２が設けられている。図１５の縦方向の２つの単位ＬＵＴ回路では、共通の経路を介して上記の外部入力変数ＥＩ及び外部入力変数ＥＸが伝送されるとともに、共通の経路を介して上記の外部出力変数ＥＯ及び最終段の出力変数Ｙが伝送される。よって、縦方向の２つの単位ＬＵＴ回路は異なるタイミングで入出力を制御する必要がある。
【００６４】
また、図１５の横方向に配置されたＮ個のＬＵＴ１０は、共通のＬＵＴカスケード回路Ｃ０又はＣ１に属する構成要素であり、図１０と同様の接続関係となる。一方、図１５の縦方向の同位置に配置された２つのＬＵＴ１０は、互いが属するＬＵＴカスケード回路Ｃ０、Ｃ１は異なるが、１つのメインロウデコーダ１１を共有し、複数のメインワード線ＭＷＬが共通に配置されている。よって、各々のメインワード線ＭＷＬは、上側のＬＵＴ１０の８本のワード線ＷＬと、下側のＬＵＴ１０の８本のワード線ＷＬに選択的に接続することができる。ただし、上下のＬＵＴカスケード回路に付与する外部入力変数ＥＩと外部入力変数ＥＸは異なるので、縦方向の２つのＬＵＴ１０に対して同時にアクセスすることはできない。このように、図１５の構成は、２つのＬＵＴカスケード回路Ｃ０、Ｃ１を異なる制御タイミングで動作させるようなパイプライン制御に適している。
【００６５】
次に、図１５の２つのＬＵＴカスケード回路Ｃ０、Ｃ１に対するパイプライン制御について説明する。図１６は、図１５において縦方向に隣接する２つのＬＵＴ１０に対する読み出し動作を例にとり、パイプライン制御に対応する動作波形図を示している。第２実施形態のパイプライン制御は、所定の周期Ｔ０を有するクロック信号ＣＫに同期して行われる。時刻ｔ＝０において、ＬＵＴカスケード回路Ｃ０の側のＬＵＴ１０に対する読み出し動作の実行が開始されるものとする。
【００６６】
時刻ｔ＝０では、外部入力変数ＥＸに応じた所定のメインワード線ＭＷＬが活性化されるとともに、セレクタ回路１４からのアドレス信号に応じた所定のデコード信号Ｄが活性化される。これにより、ＬＵＴ１０のアクセス対象のワード線ＷＬが活性化される。このとき、リセット回路１７に供給されるリセット信号ＲＳＴがローに変化し、ワード線ＷＬのリセット状態が解除される。そして、時刻ｔ＝０．５Ｔ０において、メインワード線ＭＷＬとデコード信号Ｄがローに変化するが、この時点のワード線ＷＬのレベルは寄生容量により保持される。
【００６７】
その後、所定のタイミングで各センスアンプＳＡによるメモリセルＭＣの増幅動作が完了し、アクセス対象のメモリセルＭＣから読み出される１６ビットのデータが確定し、続いて所定の時間が経過した後に、出力スイッチ回路１５に供給される所定の選択信号ＹＳがハイに変化し、連続する４個のスイッチＳＷがオンに制御される。これにより、アクセス対象の１６本のビット線ＢＬが入出力バスＢに接続され、１６ビットの出力変数Ｙとして後段に伝送される。時刻ｔ＝３Ｔ０において、ＬＵＴ１０に対する次の読み出し動作のためにリセット信号ＲＳＴがハイに変化してワード線Ｗがリセットされ、選択信号ＹＳが非活性状態に戻る。
【００６８】
一方、ＬＵＴカスケード回路Ｃ０の読み出し動作から１サイクル遅れた時刻ｔ＝Ｔ０において、ＬＵＴカスケード回路Ｃ１の側のＬＵＴ１０に対する読み出し動作の実行が開始される。ＬＵＴカスケード回路Ｃ１の各信号波形は、ＬＵＴカスケード回路Ｃ０から１サイクル遅れるだけであり、同様のパターンで変化する。図１６からわかるように、時刻ｔ＝Ｔ０において、ＬＵＴカスケード回路Ｃ０の側では、ＬＵＴ１０の読み出し動作が終了していないが、メインワード線ＭＷＬ及びデコード信号Ｄが非活性状態に戻っている。よって、２つのＬＵＴカスケード回路Ｃ０、Ｃ１の各ＬＵＴ１０では、互いの動作を１サイクルずらせば、互いに異なるワード線ＷＬを選択することができる。入出力バスＢについても、互いの動作を１サイクルずらせば、異なるデータを伝送することができる。
【００６９】
図１６では、２つのＬＵＴカスケード回路Ｃ０、Ｃ１に対するパイプライン制御を示しているが、さらに多数のＬＵＴカスケード回路を配置する場合であっても同様に考えることができる。すなわち、縦方向の同位置のＬＵＴ１０に対する読み出し動作は、順番に１サイクルずつ遅延させながら読み出し動作を実行すればよい。このようなパイプライン制御を導入することにより、単独のＬＵＴカスケード回路のみを動作させる場合に比べ、ＬＵＴ１０に対する実質的な読み出し速度を高くし、スループットの向上が可能となる。
【００７０】
次に、パイプライン制御を実行する場合、複数系統のＬＵＴカスケード回路を構成する各単位ＬＵＴ回路に対する読み出し動作の時間的推移について、図１７〜図１９を参照して説明する。以下では、４系統のＬＵＴカスケード回路のそれぞれに４つの単位ＬＵＴ回路が含まれ、全部で１６個のＬＵＴ１０を読み出す場合を例にとって説明する。図１７〜図１９では簡単のため、４系統のＬＵＴカスケード回路Ｃ０、Ｃ１、Ｃ２、Ｃ３が縦方向に並列配置され、各々のＬＵＴカスケード回路Ｃ０〜Ｃ３には、横方向に配置された４つのＬＵＴＬ０、Ｌ１、Ｌ２、Ｌ３が含まれる構成をマトリクス状に表している。また、時刻ｔ＝０から開始して、周期Ｔ０ごとに増加する各時刻における８段階の制御状態を表している。
【００７１】
図１７は、比較のためにパイプライン制御を行わない場合の制御状態の推移を示している。ｔ＝０では、ＬＵＴカスケード回路Ｃ０の先頭のＬＵＴＬ０がアクセスされる。これ以降、ｔ＝Ｔ０、２Ｔ０、３Ｔ０と経過するごとに、ＬＵＴカスケード回路Ｃ０のＬＵＴＬ１、Ｌ２、Ｌ３の順でアクセスされ、最終段のＬＵＴＬ３の出力変数Ｙが確定する。一方、ＬＵＴカスケード回路Ｃ１は、ｔ＝０〜３Ｔ０の範囲内ではアクセスされることなく、ＬＵＴカスケード回路Ｃ０の読み出し完了後のｔ＝４Ｔ０で先頭のＬＵＴＬ０がアクセスされる。よって、時刻ｔ＝４Ｔ０〜７Ｔ０の範囲内ではＬＵＴカスケード回路Ｃ１のアクセスのみ実行される。これ以降の制御も同様であり、同時に２つのＬＵＴカスケード回路がアクセスされることはなく、４つのＬＵＴカスケード回路Ｃ０〜Ｃ３のアクセスが完了するのは時刻ｔ＝１６Ｔ０となる。
【００７２】
図１８は、パイプライン制御を行ってＬＵＴカスケード回路Ｃ０〜Ｃ３を１回ずつ動作させる場合の制御状態の推移を示している。ｔ＝０では、図１７と同様、ＬＵＴカスケード回路Ｃ０の先頭のＬＵＴＬ０がアクセスされる。一方、ｔ＝Ｔ０では、ＬＵＴカスケード回路Ｃ０の２段目のＬＵＴＬ１と、ＬＵＴカスケード回路Ｃ１の先頭のＬＵＴＬ０の２つが同時にアクセスされる。同様に、ｔ＝２Ｔ０では、３つのＬＵＴカスケード回路Ｃ０、Ｃ１、Ｃ２の位置が異なる３つのＬＵＴ１０が同時にアクセスされ、ｔ＝３Ｔ０では、４つのＬＵＴカスケード回路Ｃ０〜Ｃ３の位置が異なる４つのＬＵＴ１０が同時にアクセスされる。これ以降、ｔ＝４Ｔ０〜７Ｔ０の範囲内ではＬＵＴカスケード回路Ｃ０、Ｃ１、Ｃ２、Ｃ３の順番に動作が完了し、同時にアクセスされるＬＵＴの数は３個、２個、１個と減少し、ｔ＝７Ｔ０では全体のアクセスが終了している。
【００７３】
図１９は、パイプライン制御を行ってＬＵＴカスケード回路Ｃ０〜Ｃ３を繰り返し動作させる場合の制御状態の推移を示している。この場合、ｔ＝０〜３Ｔ０の範囲内では、図１８と同様の推移になる。一方、ｔ＝４Ｔ０では、ｔ＝３Ｔ０で１回目の動作が完了したＬＵＴカスケード回路Ｃ０の２回目の動作が開始され、先頭のＬＵＴＬ０がアクセスされる。これ以降、ＬＵＴカスケード回路Ｃ１、Ｃ２、Ｃ３についても、１回目の動作が完了した次のタイミングで、２回目の動作が順次開始される。よって、ｔ＝３Ｔ０以降においては、常に４つのＬＵＴカスケード回路の４つのＬＵＴ１０がアクセスされる状態となる。図１９の制御は、所定のコマンド等により強制的に動作を終了させるまで繰り返される。
【００７４】
図１８及び図１９のパイプライン制御を図１７と比較すると、ＬＵＴカスケード回路Ｃ０〜Ｃ３の各々の動作には４サイクル要する点では共通であるが、４つのＬＵＴカスケード回路Ｃ０〜Ｃ４を全て動作させる場合のサイクル数を十分に短縮することができる。すなわち、各タイミングでは、４つのＬＵＴカスケード回路Ｃ０〜Ｃ３の互いに位置が異なる４つのＬＵＴＬ０〜Ｌ３に対して並列アクセスが可能となるため、平均のサイクル数は４分の１に収斂していく。特に、それぞれＮ個のＬＵＴ１０を含むＬＵＴカスケード回路をＭ系統配置する場合、規模が大きくなるほど、パイプライン制御の導入が有利になる。なお、ＬＵＴカスケード回路をＭ系統配置しパイプライン制御を行う場合には、前述の入力信号レジスタ４１及び出力信号レジスタ４２も、これに合せてＭ系統配置することが、制御の容易性の点から望ましい。
【００７５】
以上説明した第２実施形態のＬＵＴカスケードアレイ回路を用いることにより、第１実施形態のＬＵＴカスケード回路を複数系統配置し、並列に動作させるパイプライン制御を実現することができる。この場合、各々のＬＵＴカスケード回路の同位置の単位ＬＵＴ回路同士は、ワード線階層構造により１つのメインロウデコーダ１１を配置し、メインワード線ＭＷＬを共有することができ、効率的な回路を小面積で実現することができる。また、各々のＬＵＴカスケード回路をパイプライン制御に従って並列動作させることにより、論理演算の実効的な処理速度を向上させることができる。
【００７６】
以上、上記２つの実施形態に基づいて本発明の内容を具体的に説明したが、本発明は上述の２つの実施形態に限定されるものではなく、その要旨を逸脱しない範囲で種々の変更を施すことができる。上記の各実施形態では、メモリ回路としてのＤＲＡＭ回路を用いて本発明を適用する場合を説明したが、ＤＲＡＭ回路に限られず、ＳＲＡＭ回路や不揮発ＲＡＭ回路を用いて広く本発明を適用することができる。また、本発明の構成を備える回路は、用途及び機能が多様な各種半導体装置において実現することができる。
【図面の簡単な説明】
【００７７】
【図１】第１実施形態のＬＵＴカスケード回路に含まれる単位ＬＵＴ回路の基本構成を示すブロック図である。
【図２】単位ＬＵＴ回路のセレクタ回路の構成を示す図である。
【図３】セレクタ回路におけるシフタ回路のシフト動作の例を説明する図である。
【図４】ＬＵＴの構成例を示す図である。
【図５】図５のＬＵＴの変形例を示す図である。
【図６】出力スイッチ回路の概略構成を示す図である。
【図７】カラムデコーダの選択動作を示す図である。
【図８】図６の出力スイッチ回路の具体的な構成例を示す図である。
【図９】サブデコーダの回路構成について示す図である。
【図１０】Ｎ個の単位ＬＵＴ回路を順番に接続して構成されるＬＵＴカスケード回路の構成例を示す図である。
【図１１】第１実施形態の半導体装置の一例としてのプログラマブルロジックＬＳＩの全体構成を示すブロック図である。
【図１２】図１１の論理ブロックの構成を示すブロック図である。
【図１３】図１１の接続回路の構成を示すブロック図である。
【図１４】第２実施形態のサブデコーダの回路構成について示す図である。
【図１５】第２実施形態において、Ｎ個の単位ＬＵＴ回路を順番に接続して構成されるＬＵＴカスケード回路を２系統アレイ状に配置したＬＵＴカスケードアレイ回路の構成例を示す図である。
【図１６】図１５において縦方向に隣接する２つのＬＵＴに対する読み出し動作を例にとり、パイプライン制御に対応する動作波形図を示す図である。
【図１７】第２実施形態の複数系統のＬＵＴカスケード回路を構成する各単位ＬＵＴ回路に対する読み出し動作の時間的推移について、パイプライン制御を行わない場合の制御状態を表す図である。
【図１８】第２実施形態の複数系統のＬＵＴカスケード回路を構成する各単位ＬＵＴ回路に対する読み出し動作の時間的推移について、パイプライン制御を行って各カスケード回路を１回ずつ動作させる場合の制御状態の推移を表す図である。
【図１９】第２実施形態の複数系統のＬＵＴカスケード回路を構成する各単位ＬＵＴ回路に対する読み出し動作の時間的推移について、パイプライン制御を行って各カスケード回路を繰り返し動作させる場合の制御状態の推移を表す図である。
【符号の説明】
【００７８】
１…論理ブロック
２…接続回路
３…入出力回路
４…入出力線
５…接続バス
６…ＬＵＴカスケード回路
７…論理回路
８…コンフィギュレーションメモリ
９…スイッチングマトリクス
１０…ＬＵＴ
１０Ｍ…メモリセルアレイ
１０Ｌ、１０Ｒ…センスアンプ列
１１…メインロウデコーダ
１２…サブデコーダ
１３…カラムデコーダ
１４…セレクタ回路
１５…出力スイッチ回路
１６…出力ラッチ回路
１７…リセット回路
２０…接続メモリ
２１…ＬＵＴ構成メモリ
３０…シフタ回路
３１…第１入力レジスタ
３２…第２入力レジスタ
３３…第１出力レジスタ
３４…第２出力レジスタ
４１…入力信号レジスタ
４２…出力信号レジスタ
Ｘ１、Ｘ２…入力変数
Ｙ…出力変数
ＥＸ、ＥＩ…外部入力変数
ＥＯ…外部出力変数
Ｉ…（セレクタ回路の）入力信号
ＷＬ…ワード線
ＢＬ…ビット線
ＢＰ…ビット線ペア
ＭＣ…メモリセル
ＳＡ…センスアンプ
Ｓ１、Ｓ２、Ｓ３、Ｓ４…セット
Ｂ…入出力バス
ＰＤ…プリデコーダ
ＳＴ…選択トランジスタ
ＳＷ…スイッチ
ＳＷＴ…スイッチトランジスタ
Ｄ０、Ｄ１、Ｄ２、Ｄ３…デコード信号
ＹＳ…選択信号
ＳＳ０、ＳＳ１、ＳＳ２、ＳＳ３…セット選択信号
Ｃ０、Ｃ１、Ｃ２、Ｃ３…ＬＵＴカスケード回路
Ｌ０、Ｌ１、Ｌ２、Ｌ３…ＬＵＴ
ＳＣ０、ＳＣ１…カスケード選択信号
【図１】
2008129824.tif 000003
【図２】
2008129824.tif 000004
【図３】
2008129824.tif 000005
【図４】
2008129824.tif 000006
【図５】
2008129824.tif 000007
【図６】
2008129824.tif 000008
【図７】
2008129824.tif 000009
【図８】
2008129824.tif 000010
【図９】
2008129824.tif 000011
【図１０】
2008129824.tif 000012
【図１１】
2008129824.tif 000013
【図１２】
2008129824.tif 000014
【図１３】
2008129824.tif 000015
【図１４】
2008129824.tif 000016
【図１５】
2008129824.tif 000017
【図１６】
2008129824.tif 000018
【図１７】
2008129824.tif 000019
【図１８】
2008129824.tif 000020
【図１９】
2008129824.tif 000021