【手続補正書】
【提出日】平成15年7月14日(2003.7.14)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の名称】シフトレジスタ及びプログラマブル論理回路並びにプログラマブル論理回路システム
【特許請求の範囲】
【請求項１】チェイン形式で順次的に接続された複数の回路セルを有するシフトレジスタであって、前記複数の回路セルの各々は、
第１の反転ゲートと、
前記第１の反転ゲートの出力に接続されクロックによってスイッチ動作する第１のトランスミッションゲートと、
前記第１のトランスミッションゲートの出力に接続された第２の反転ゲートと、
前記第２の反転ゲートの出力と前記第１の反転ゲートの入力の間に接続され前記クロックによってスイッチ動作する第１のＰチャネルトランジスタと、
前記第２の反転ゲートの出力に接続され反転クロックによってスイッチ動作する第２のトランスミッションゲートと、
前記第１のトランスミッションゲートの出力に接続され前記反転クロックによってスイッチ動作する第２のＰチャネルトランジスタと
を有し、
この回路セルの前記第１の反転ゲートの入力は、この回路セルの前段の回路セルの第２のトランスミッションゲートの出力に接続され、この回路セルの該第１の反転ゲートの出力は、この回路セルの該前段の回路セルの前記第２のＰチャネルトランジスタの出力に接続されて、前記複数の回路セルの各々が順次的に接続されたものであることを特徴とするシフトレジスタ。
【請求項２】  前記第１および第２の反転ゲートそれぞれは、インバータ、ＮＡＮＤゲート及びＮＯＲゲートのうちの何れか１つにより構成されたものであることを特徴とする請求項１記載のシフトレジスタ。
【請求項３】前記複数の回路セルの各々は、前記クロック及び前記反転クロックを供給するクロック供給回路をさらに含み、該クロック供給回路は、入力クロックをバッファリングし前記クロックを出力する第１のバッファ回路と、前記入力クロックを反転し前記反転クロックを出力する第２のバッファ回路とを有することを特徴とする請求項１又は２記載のシフトレジスタ。
【請求項４】前記第１および第２バッファ回路のうちの少なくとも一方は、Ｐチャネルトランジスタ側のドライブ能力がＮチャネル側のドライブ能力より実質的に同等以上になるようにトランジスタパラメータを調節したインバータ、及びＰチャネルトランジスタの数の方がＮチャネルトランジスタの数よりも多いインバータのうちの何れか一方を有することを特徴とする請求項３記載のシフトレジスタ。
【請求項５】前記複数の回路セルのうちの一部の回路セルの、前記第１のトランスミッションゲート、前記第２のトランスミッションゲート、前記第１のＰチャネルトランジスタ、及び第２のＰチャネルトランジスタそれぞれのクロック入力端子に接続され、第１のモードでは、前記クロック及び前記反転クロックを前記それぞれのクロック入力端子に供給し、第２のモードでは、前記一部の回路セルを残りの回路セルからアイソレートするために前記それぞれのクロック入力端子のうちの少なくとも一部のクロック入力端子に所定の信号を供給するクロック制御回路をさらに有することを特徴とする請求項１から４のうち何れか１項記載のシフトレジスタ。
【請求項６】前記クロック制御回路から前記一部のクロック入力端子に前記所定の信号が供給され、前記残りの回路セルからアイソレートされる前記一部の回路セルは、フリップフロップとして動作することを特徴とする請求項５項記載のシフトレジスタ。
【請求項７】機能決定用データが供給される機能決定用メモリと、前記機能決定用データに従って所望の論理回路を実現する少なくとも１つの論理セルとを有するプログラマブル論理回路であって、前記機能決定用メモリは、チェイン形式で順次的に接続された複数の回路セルを有するシフトレジスタを有し、前記複数の回路セルの各々は、
第１の反転ゲートと、
前記第１の反転ゲートの出力に接続されクロックによってスイッチ動作する第１のトランスミッションゲートと、
前記第１のトランスミッションゲートの出力に接続された第２の反転ゲートと、
前記第２の反転ゲートの出力と前記第１の反転ゲートの入力の間に接続され前記クロックによってスイッチ動作する第１のＰチャネルトランジスタと、
前記第２の反転ゲートの出力に接続され反転クロックによってスイッチ動作する第２のトランスミッションゲートと、
前記第１のトランスミッションゲートの出力に接続され前記反転クロックによってスイッチ動作する第２のＰチャネルトランジスタと
を有し、
前記回路セルの前記第１の反転ゲートの入力は前記回路セルの前段の回路セルの第２のトランスミッションゲートの出力に接続され、前記回路セルの前記第１の反転ゲートの出力は前記前段の回路セルの前記第２のＰチャネルトランジスタの出力に接続されて、前記複数の回路セルが順次的に接続されることを特徴とするプログラマブル論理回路。
【請求項８】前記第１及び第２の反転ゲートそれぞれは、ＮＡＮＤゲート及びＮＯＲゲートのうち何れか一方を有することを特徴とする請求項７記載のプログラマブル論理回路。
【請求項９】前記複数の回路セルのうちの一部の回路セルの、前記第１のトランスミッションゲート、前記第２のトランスミッションゲート、前記第１のＰチャネルトランジスタ、及び第２のＰチャネルトランジスタそれぞれのクロック入力端子に接続され、第１のモードでは、前記クロック及び前記反転クロックをそれぞれのクロック入力端子に供給し、第２のモードでは、前記一部の回路セルを残りの回路セルからアイソレートするために前記それぞれのクロック入力端子のうちの少なくとも一部のクロック入力端子には所定の信号を供給するクロック制御回路をさらに有することを特徴とする請求項７又は８記載のプログラマブル論理回路。
【請求項１０】前記クロック制御回路から前記一部のクロック入力端子に前記所定の信号が供給され、前記残りの回路セルからアイソレートされる前記一部の回路セルは、フリップフロップとして動作することを特徴とする請求項９項記載のプログラマブル論理回路。
【請求項１１】機能決定用データに従って所望の論理回路を実現するプログラマブル論理回路であって、複数の部分回路を有し、前記プログラマブル論理回路が動作中、少なくとも１つの部分回路に制御信号が供給されたとき、他の動作中の部分回路の動作に影響を与えることなく、前記少なくとも１つの部分回路において実現された回路機能が変更されることを特徴とするプログラマブル論理回路。
【請求項１２】前記部分回路は、
論理機能を実現する論理セル、複数の部分回路の接続機能を実現するスイッチ手段、データの入力及び出力の機能を実現するＩ／Ｏモジュールのうち少なくとも１つを含むことを特徴とする請求項１１記載のプログラマブル論理回路。
【請求項１３】機能決定用データを前記複数の部分回路のうちの少なくとも１つに専用線及びプログラマブル配線の何れかを介して供給する少なくとも１つの機能決定用データサーバをさらに含むことを特徴とする請求項１１又は１２記載のプログラマブル論理回路。
【請求項１４】前記部分回路は、
複数の機能決定用データを記憶する記憶回路を有することを特徴とする請求項１１から１３のうち何れか１項記載のプログラマブル論理回路。
【請求項１５】前記論理セルは、
出力データを保持する出力データ保持回路を有し、前記プログラマブル論理回路が動作中、前記論理セルの回路機能が変更されるとき、前記論理セルの出力が前記出力データ保持回路によって保持されることを特徴とする請求項１２記載のプログラマブル論理回路。
【請求項１６】前記論理セルは、
機能決定用データで設定できるシフトレジスタを有する機能決定用メモリと、前記機能決定用メモリに設定された機能決定用データに応じて論理機能を決定するプログラマブル機能ユニットと、
前記機能決定用メモリに前記機能決定用データを供給するメモリコントローラとを有し、
前記メモリコントローラにより前記機能決定用データが前記機能決定用メモリに供給されたとき、前記プログラマブル機能ユニットの論理機能が前記機能決定用データに応じて決定される論理機能に変更されることを特徴とする請求項１２又は１５記載のプログラマブル論理回路。
【請求項１７】機能決定用データに従って所望の論理回路を実現するプログラマブル論理回路システムであって、複数のプログラマブル論理回路を含む第２の部分回路を有し、前記プログラマブル論理回路システムが動作中、少なくとも１つの第２の部分回路に制御信号が供給されたとき、他の動作中の第２の部分回路の動作に影響を与えることなく、前記少なくとも１つの第２の部分回路において実現された回路機能が変更されることを特徴とするプログラマブル論理回路システム。
【請求項１８】前記第２の部分回路は、
前記複数のプログラマブル論理回路の接続機能を実現する複数のスイッチデバイスと、
データの入力機能又は出力機能を実現する複数のＩ／Ｏモジュールとを含むことを特徴とする請求項１７記載のプログラマブル論理回路システム。
【請求項１９】機能決定用データを前記第２の部分回路に専用線及びプログラマブル配線の何れかを介して供給する少なくとも１つの機能決定用データサーバをさらに含むことを特徴とする請求項１７又は１８記載のプログラマブル論理回路システム。
【請求項２０】前記第２の部分回路は、
複数の機能決定用データを記憶する記憶回路を有することを特徴とする請求項１７から１９のうち何れか１項記載のプログラマブル論理回路システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、シフトレジスタ及びプログラマブル論理回路並びにプログラマブル論理回路システムに関し、特に、小型化可能なシフトレジスタ及びプログラマブル論理回路並びにプログラマブル論理回路システムに関する。さらに、本発明は、実現できる論理回路のゲート数を増加したプログラマブル論理回路及びプログラマブル論理回路システムに関する。
【０００２】
【従来の技術】
プログラマブル論理回路として、例えば、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）が一般的に知られている。図６１は、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）の概略的構成図である。ＦＰＧＡは、所望の論理回路をプログラムできる複数の論理セル（Ｌｏｇｉｃ  Ｃｅｌｌ）と、その論理セル間を自由に接続可能な複数の配線とを有する。論理回路の構成を記述した機能決定用データ（コンフィギュレーションデータ）を各論理セルに供給することによって、大規模な論理回路を自由に実現することができる。機能決定用データを保持する方法に基づいて、下記に示すように主に３つのタイプのＦＰＧＡが存在する。
【０００３】
Ｉ．ＳＲＡＭプログラム型ＦＰＧＡ：機能決定用データは、ＳＲＡＭメモリセルに格納される。論理回路の機能を繰り返し変更することができる。製造時に特殊なプロセス技術を必要としない。
【０００４】
ＩＩ．不揮発性メモリプログラム型ＦＰＧＡ：機能決定用データは、ＥＥＰＲＯＭやフラッシュメモリなどの不揮発性メモリに格納される。ＳＲＡＭプログラム型ＦＰＧＡと同様に、論理回路の機能を繰り返し変更することができる。製造時に特殊なプロセスを必要とする。
【０００５】
ＩＩＩ．アンチヒューズプログラム型ＦＰＧＡ：機能決定用データに応じて、ＬＳＩチップ上に設けられたスイッチ（アンチヒューズ）の状態が恒久的に決定される。プログラムの後、論理回路の機能は変更できない。製造に特殊プロセスを要する。
【０００６】
また、複数のプログラマブル論理回路を自由に接続し組み合わせることによって、さらに大規模な論理回路を実現できるプログラマブル論理回路システムを構成できる。
【０００７】
さらに、近年、大規模論理回路の論理検証を実際に使用する回路上で行うためのハードウェアエミュレータが、開発されている。このハードウェアエミュレータでは、複数のＦＰＧＡがプログラマブルに相互に接続され、大規模論理回路が構成される。ワークステーション上などで動作するソフトウェアシミュレータに比べ、動作速度が１００倍以上高速である。従って、ハードウェアエミュレータは、マイクロプロセッサなどの開発によく用いられている。
【０００８】
ＳＲＡＭプログラム型ＦＰＧＡにおいて、機能決定用データは、一般的に機能決定用メモリ（コンフィギュレーションメモリ）にシリアルにロードされる。従って、機能決定用メモリは、一般的にシフトレジスタで構成される。
【０００９】
さらに、シフトレジスタは、一般的に、Ｄフリップフロップを縦続接続することによって実現される。図６２に、典型的なＣＭＯＳ型Ｄフリップフロップの回路構成図を示す。このＤフリップフロップでは、インバータＩＮＶとトランスミッションゲートＴＧを環状に接続することで閉路が構成されている。入力端子ＩＮに与えられた入力信号は、２つの閉路で構成されるマスタ・スレーブラッチを経て出力端子ＯＵＴに伝搬される。図６２に示したＤフリップフロップは、１６個のＭＯＳトランジスタを有している。従って、このようなＤフリップフロップで構成される従来のシフトレジスタは、ＬＳＩチップ上で比較的大きな面積を有する。
【００１０】
特に、ＳＲＡＭプログラム型ＦＰＧＡは、機能決定用データを記憶するため数十万段のシフトレジスタを必要とするので、ＦＰＧＡチップの大部分の面積がシフトレジスタで構成される機能決定用メモリに使用される。ＦＰＧＡの性能は、単位面積あたりの等価ゲート数（ある一定のチップ面積において、何ゲート数相当の論理回路が実現できるかを示す評価指標）によって一般的に評価される。従って、ＦＰＧＡの性能を向上するためには、シフトレジスタで構成される機能決定用メモリを小型化し、全体のチップ面積に対するメモリ用面積の割合を減らす必要がある。
【００１１】
シフトレジスタを小型化するためには、チェーンラッチ構成のシフトレジスタを使用した方が良いことが知られている。図６３は、従来のチェーンラッチ構成のシフトレジスタの回路構成図である。図６４は、図６３に示す従来のチェーンラッチ構成のシフトレジスタの動作を説明する図である。
【００１２】
図６４において、端子Ｋから供給された信号は、スイッチＣがオン、スイッチＥ及びＦがオフになった時、インバータＤを通り、その出力端子まで伝搬する。その後、スイッチＣがオフ、スイッチＥ及びＦがオンになった時、供給された信号の値が閉路Ａに保持される。閉路Ａ上の値が安定状態に遷移し固定された後、再度、スイッチＣはオン、スイッチＥ及びＦがオフ、さらにスイッチＨ及びＩがオンになる。この時、インバータＧの出力の値が変化しないうちに、スイッチＨを先に変化させインバータＪの出力を確定する必要がある。もし、先にスイッチＩが変化した場合、閉路Ａ’に保持されていた値によって閉路Ｂに保持されるべき値が失われる場合がある。
【００１３】
【発明が解決しようとする課題】
しかしながら、上述した従来のチェーンラッチ型シフトレジスタには次のような問題点がある。
【００１４】
上述のチェーンラッチ構成のシフトレジスタを実際に構成する場合、回路を構成するスイッチの性能、配線負荷容量、供給クロックのタイミングなどによって回路の動作がばらつき、従って、この回路の安定な動作を得ることが難しかった。
【００１５】
また、従来のプログラマブル論理回路の論理セルにおいても、以下に示す問題点があった。
【００１６】
論理セルでフリップフロップを実現する方法は、一般的に以下の２種類の方法が知られている。
【００１７】
Ｉ．独立フリップフロップ型：論理セル内において、フリップフロップが組合せ論理回路とは独立して設けられ、そのフリップフロップの入力及び出力を機能決定用データで制御する。
【００１８】
ＩＩ．プログラムフィードバック型：論理セル内に設けられた組合せ論理に、フィードバックパスが設けられ、機能決定用データからの接続指示によって、フリップフロップが形成される。
【００１９】
いずれの構成においても、実現できるフリップフロップの数は、論理セルの数によって決定される。従って、実現できるフリップフロップの数を増やすためには、論理セルの数を増加させる必要があり、これは、プログラマブル論理回路のチップ面積を増加させることになる。
【００２０】
また、従来のプログラマブル論理回路やプログラマブル論理回路システムでは、その回路を動作開始させる前に、機能決定用メモリに機能決定用データがロードされ、その後は、プログラマブル論理回路内の全ての機能決定用データが書き替えられるまで、機能決定用データによって決定される論理回路に従って動作する。
【００２１】
すなわち、プログラマブル論理回路上で実現される論理回路は、機能決定用データによって決定される論理回路に動作終了時まで固定される。従って、プログラマブル論理回路及びプログラマブル論理回路システムにおいて実現できる論理回路のゲート数を増やすためには、論理セルの規模を大きくしたり、論理セルの数を増加させる必要があり、この場合も、プログラマブル論理回路のチップ面積を増加させることになる。
【００２２】
本発明の目的は、小さなサイズのシフトレジスタを提供することにある。このシフトレジスタによって、多段のシフトレジスタを使用する回路、例えば、プログラマブル論理回路の機能決定用メモリ、を小型化できる。
【００２３】
また、本発明の他の目的は、実現できるフリップフロップの数を増加したプログラマブル論理回路を提供することにある。
【００２４】
さらに、本発明の他の目的は、機能決定用メモリの値が動作中に変更でき、また、プログラマブル論理回路の一部を自由に初期化でき、それによって、実現できる論理回路の実質的なゲート数を増加したプログラマブル論理回路及びプログラマブル論理回路システムを提供することにある。その結果、プログラマブル論理回路及びプログラマブル論理回路システムのコストを大幅に低減できる。
【００２５】
これらによって、上述した問題点を解決することができる。
【００２６】
【課題を解決するための手段】
上記課題を解決するために本発明では、下記の手段を講じたことを特徴とするものである。
【００２７】
請求項１記載の発明装置では、
チェイン形式で順次的に接続された複数の回路セルを有するシフトレジスタであって、前記複数の回路セルの各々は、
第１の反転ゲートと、
上記第１の反転ゲートの出力に接続されクロックによってスイッチ動作する第１のトランスミッションゲートと、
上記第１のトランスミッションゲートの出力に接続された第２の反転ゲートと、
上記第２の反転ゲートの出力と上記第１の反転ゲートの入力の間に接続され上記クロックによってスイッチ動作する第１のＰチャネルトランジスタと、
上記第２の反転ゲートの出力に接続され反転クロックによってスイッチ動作する第２のトランスミッションゲートと、
上記第１のトランスミッションゲートの出力に接続され上記反転クロックによってスイッチ動作する第２のＰチャネルトランジスタと
を有し、
この回路セルの上記第１の反転ゲートの入力は、この回路セルの前段の回路セルの第２のトランスミッションゲートの出力に接続され、この回路セルの該第１の反転ゲートの出力は、この回路セルの該前段の回路セルの上記第２のＰチャネルトランジスタの出力に接続されて、上記複数の回路セルの各々が順次的に接続されたものであることを特徴とする。
【００２８】
請求項２記載の発明装置では、
請求項１記載のシフトレジスタにおいて、上記第１および第２の反転ゲートそれぞれは、インバータ、ＮＡＮＤゲート及びＮＯＲゲートのうちの何れか１つにより構成されたものであることを特徴とする。
【００２９】
請求項３記載の発明装置では、
請求項１又は２記載のシフトレジスタにおいて、上記複数の回路セルの各々は、上記クロック及び上記反転クロックを供給するクロック供給回路をさらに含み、該クロック供給回路は、入力クロックをバッファリングし上記クロックを出力する第１のバッファ回路と、上記入力クロックを反転し上記反転クロックを出力する第２のバッファ回路とを有することを特徴とする。
【００３０】
請求項４記載の発明装置では、
請求項３記載のシフトレジスタにおいて、上記第１および第２バッファ回路のうちの少なくとも一方は、Ｐチャネルトランジスタ側のドライブ能力がＮチャネル側のドライブ能力より実質的に同等以上になるようにトランジスタパラメータを調節したインバータ、及びＰチャネルトランジスタの数の方がＮチャネルトランジスタの数よりも多いインバータのうちの何れか一方を有することを特徴とする。
【００３１】
請求項５記載の発明装置では、
請求項１から４のうち何れか１項記載のシフトレジスタにおいて、上記複数の回路セルのうちの一部の回路セルの、上記第１のトランスミッションゲート、上記第２のトランスミッションゲート、上記第１のＰチャネルトランジスタ、及び第２のＰチャネルトランジスタそれぞれのクロック入力端子に接続され、第１のモードでは、上記クロック及び上記反転クロックをそれぞれのクロック入力端子に供給し、第２のモードでは、上記一部の回路セルを残りの回路セルからアイソレートするために上記それぞれのクロック入力端子のうちの少なくとも一部のクロック入力端子に所定の信号を供給するクロック制御回路をさらに有することを特徴とする。
【００３２】
請求項６記載の発明装置では、
請求項５項記載のシフトレジスタにおいて、上記クロック制御回路から上記一部のクロック入力端子に上記所定の信号が供給され、上記残りの回路セルからアイソレートされる上記一部の回路セルは、フリップフロップとして動作することを特徴とする。
【００３３】
請求項７載の発明装置では、
機能決定用データが供給される機能決定用メモリと、上記機能決定用データに従って所望の論理回路を実現する少なくとも１つの論理セルとを有するプログラマブル論理回路であって、上記機能決定用メモリは、チェイン形式で順次的に接続された複数の回路セルを有するシフトレジスタを有し、上記複数の回路セルの各々は、
第１の反転ゲートと、
上記第１の反転ゲートの出力に接続されクロックによってスイッチ動作する第１のトランスミッションゲートと、
上記第１のトランスミッションゲートの出力に接続された第２の反転ゲートと、
上記第２の反転ゲートの出力と上記第１の反転ゲートの入力の間に接続され上記クロックによってスイッチ動作する第１のＰチャネルトランジスタと、
上記第２の反転ゲートの出力に接続され反転クロックによってスイッチ動作する第２のトランスミッションゲートと、
上記第１のトランスミッションゲートの出力に接続され上記反転クロックによってスイッチ動作する第２のＰチャネルトランジスタと
を有し、
上記回路セルの上記第１の反転ゲートの入力は上記回路セルの前段の回路セルの第２のトランスミッションゲートの出力に接続され、上記回路セルの上記第１の反転ゲートの出力は上記前段の回路セルの上記第２のＰチャネルトランジスタの出力に接続されて、上記複数の回路セルが順次的に接続されることを特徴とする。
【００３４】
請求項８載の発明装置では、
請求項７記載のプログラマブル論理回路において、上記第１及び第２の反転ゲートそれぞれは、ＮＡＮＤゲート及びＮＯＲゲートのうち何れか一方を有することを特徴とする。
【００３５】
請求項９載の発明装置では、
請求項７又は８記載のプログラマブル論理回路において、上記複数の回路セルのうちの一部の回路セルの、上記第１のトランスミッションゲート、上記第２のトランスミッションゲート、上記第１のＰチャネルトランジスタ、及び第２のＰチャネルトランジスタそれぞれのクロック入力端子に接続され、第１のモードでは、上記クロック及び上記反転クロックをそれぞれのクロック入力端子に供給し、第２のモードでは、上記一部の回路セルを残りの回路セルからアイソレートするために上記それぞれのクロック入力端子のうちの少なくとも一部のクロック入力端子には所定の信号を供給するクロック制御回路をさらに有することを特徴とする。
【００３６】
請求項１０載の発明装置では、
請求項９項記載のプログラマブル論理回路において、上記クロック制御回路から上記一部のクロック入力端子に上記所定の信号が供給され、上記残りの回路セルからアイソレートされる上記一部の回路セルは、フリップフロップとして動作することを特徴とする。
【００３７】
請求項１１載の発明装置では、
機能決定用データに従って所望の論理回路を実現するプログラマブル論理回路であって、複数の部分回路を有し、上記プログラマブル論理回路が動作中、少なくとも１つの部分回路に制御信号が供給されたとき、他の動作中の部分回路の動作に影響を与えることなく、上記少なくとも１つの部分回路において実現された回路機能が変更されることを特徴とする。
【００３８】
請求項１２載の発明装置では、
請求項１１記載のプログラマブル論理回路において、上記部分回路は、
論理機能を実現する論理セル、複数の部分回路の接続機能を実現するスイッチ手段、データの入力及び出力の機能を実現するＩ／Ｏモジュールのうち少なくとも１つを含むことを特徴とする。
【００３９】
請求項１３載の発明装置では、
請求項１１又は１２記載のプログラマブル論理回路において、機能決定用データを上記複数の部分回路のうちの少なくとも１つに専用線及びプログラマブル配線の何れかを介して供給する少なくとも１つの機能決定用データサーバをさらに含むことを特徴とする。
【００４０】
請求項１４載の発明装置では、
請求項１１から１３のうち何れか１項記載のプログラマブル論理回路において、上記部分回路は、
複数の機能決定用データを記憶する記憶回路を有することを特徴とする。
【００４１】
請求項１５載の発明装置では、
請求項１２記載のプログラマブル論理回路において、上記論理セルは、
出力データを保持する出力データ保持回路を有し、上記プログラマブル論理回路が動作中、上記論理セルの回路機能が変更されるとき、上記論理セルの出力が上記出力データ保持回路によって保持されることを特徴とする。
【００４２】
請求項１６載の発明装置では、
請求項１２又は１５記載のプログラマブル論理回路において、上記論理セルは、
機能決定用データで設定できるシフトレジスタを有する機能決定用メモリと、上記機能決定用メモリに設定された機能決定用データに応じて論理機能を決定するプログラマブル機能ユニットと、
上記機能決定用メモリに上記機能決定用データを供給するメモリコントローラとを有し、
上記メモリコントローラにより上記機能決定用データが上記機能決定用メモリに供給されたとき、上記プログラマブル機能ユニットの論理機能が上記機能決定用データに応じて決定される論理機能に変更されることを特徴とする。
【００４３】
請求項１７載の発明装置では、
機能決定用データに従って所望の論理回路を実現するプログラマブル論理回路システムであって、複数のプログラマブル論理回路を含む第２の部分回路を有し、上記プログラマブル論理回路システムが動作中、少なくとも１つの第２の部分回路に制御信号が供給されたとき、他の動作中の第２の部分回路の動作に影響を与えることなく、上記少なくとも１つの第２の部分回路において実現された回路機能が変更されることを特徴とする。
【００４４】
請求項１８載の発明装置では、
請求項１７記載のプログラマブル論理回路システムにおいて、上記第２の部分回路は、
上記複数のプログラマブル論理回路の接続機能を実現する複数のスイッチデバイスと、
データの入力機能又は出力機能を実現する複数のＩ／Ｏモジュールとを含むことを特徴とする。
【００４５】
請求項１９載の発明装置では、
請求項１７又は１８記載のプログラマブル論理回路システムにおいて、機能決定用データを上記第２の部分回路に専用線及びプログラマブル配線の何れかを介して供給する少なくとも１つの機能決定用データサーバをさらに含むことを特徴とする。
【００４６】
請求項２０載の発明装置では、
請求項１７から１９のうち何れか１項記載のプログラマブル論理回路システムにおいて、上記第２の部分回路は、
複数の機能決定用データを記憶する記憶回路を有することを特徴とする。
【００４７】
上記の発明は、以下のように作用する。
【００４８】
請求項１又は２記載のシフトレジスタにおいては、メイン信号パスにおける伝搬時間は、フィードバック回路における伝搬時間よりも短くなる。従って、チェーンラッチ構成のシフトレジスタの動作タイミングを安定に実現することができる。
【００４９】
チェーンラッチ構成のシフトレジスタを使用することによって、シフトレジスタを構成するゲート数やチップ面積も、従来の半分以下に低減できる。さらに、非常の多くの段数のシフトレジスタをメモリとして使用するプログラマブル論理回路においても、メモリのためのチップ面積を低減でき、チップ面積に対するプログラム可能な論理回路ゲート数を増加できる。
【００５０】
請求項３又は４項記載のシフトレジスタにおいては、Ｐチャネルトランジスタ側の駆動能力を、Ｎチャネルトランジスタ側の駆動能力よりも実質的に大きくすることができる。従って、回路セルにおけるスイッチの出力の立ち上がり時間及び立ち下がり時間を実質的に等しくできる。以上の条件によって、チェーンラッチ構成のシフトレジスタの動作をより安定化及び確実化することができる。
【００５１】
ここで、シフトレジスタにおいては、状態設定回路によってチェーンラッチ構成のシフトレジスタの内部状態を自由に設定することができる。また、デコーダ回路に任意の制御信号を供給することによって、メモリデータで決定された論理に応じた出力が得られる。即ち、デコーダ回路とシフトレジスタとによって、任意の論理回路を構成することができる。
【００５２】
請求項５又は６記載のシフトレジスタ及び請求項７乃至１０記載のプログラマブル論理回路においては、チェーンラッチ構成のシフトレジスタの一部の回路セルに所定の信号を供給することによって、その回路セルをフリップフロップとして動作させることができる。従って、このシフトレジスタをプログラマブル論理回路の機能決定用メモリに使用した場合、その機能決定用メモリの一部をフリップフロップとして使用でき、論理セルにおいて実現できるフリップフロップの数を増加させることができる。
【００５３】
請求項１１、１２及び１６のうちいずれか１項記載のプログラマブル論理回路、及び請求項１７又は１８記載のプログラマブル論理回路システムにおいては、プログラマブル論理回路或いはプログラマブル論理回路システムが動作中、他の動作中の部分回路の動作に影響を与えることなく、少なくとも１つの部分回路において実現された回路機能を変更することができる。この回路機能の変更によって、論理機能、接続機能、及びデータに入出力機能を変更することができる。
【００５４】
これにより、ゲート数で決定される構成可能回路数よりも多くの回路を実現することができる。
【００５５】
請求項１３記載のプログラマブル論理回路、及び請求項１９記載のプログラマブル論理回路システムにおいては、機能決定用データを供給するための機能決定用データサーバを含んでおり、該機能決定用データは、専用線及びプログラマブル配線のいづれかを介して部分回路に供給できる。従って、機能決定用データを効率良く部分回路に供給でき、プログラマブル論理回路及びプログラマブル論理回路システムの回路構成を簡易化できる。
【００５６】
請求項１４記載のプログラマブル論理回路、及び請求項２０記載のプログラマブル論理回路システムにおいては、部分回路は、複数の機能決定用データを格納する記憶回路を有している。従って、機能決定用データを切り換えることによって、部分回路において実現される回路機能を瞬時に変更することができる。
【００５７】
ここで、外部機能決定用データサーバを接続するためのインタフェースを有するプログラマブル論理回路、及びプログラマブル論理回路システムにおいては、機能決定用データサーバを接続するためのインタフェースが設けられている。従って、機能決定用データサーバは、外部に設けることができるので、プログラマブル論理回路及びプログラマブル論理回路システムを簡易化できる。さらに、機能決定用データサーバとして、パーソナルコンピュータ等の大型の高機能な装置を使用することができる。
【００５８】
また、上記複数の部分回路のうち特定の部分回路を専用線及びプログラマブル配線に何れかを介して該特定の部分回路の回路機能を選択的に変更する制御装置をさらに有するプログラマブル論理回路、及びプログラマブル論理回路システムにおいては、特定の部分回路の回路機能を選択的に変更する制御装置が設けられている。制御装置は、専用線及びプログラマブル配線のいづれかを介して部分回路に接続されている。従って、プログラマブル論理回路が動作中に、特定の部分回路のみの回路機能を効率よく変更できる。
【００５９】
さらに、上記複数の部分回路のうち特定の部分回路を指定して該特定の部分回路の回路機能を選択的に変更する制御装置を接続するインタフェースを有するプログラマブル論理回路、及びプログラマブル論理回路システムにおいては、制御装置を外部に設けることができるので、プログラマブル論理回路及びプログラマブル論理回路システムを簡易化できる。さらに、制御装置として、パーソナルコンピュータ等の大型の高機能な装置を使用することができる。
【００６０】
請求項１５又は１６項記載のプログラマブル論理回路においては、論理セルにおいて実現された回路機能が変更されるとき、論理セルの出力が出力データ保持回路によって保持される。従って、特定の論理セルの回路機能が変更されても、他の動作中の論理セルの動作に影響を与えることを防ぐことができる。
【００６１】
さらに、シフトレジスタが、チェーンラッチ構成のシフトレジスタにより構成されているプログラマブル論理回路においては、プログラマブル論理回路を小型化できる。また、メモリコントローラに供給される機能決定用データが他の論理セルからの出力信号を基に生成されるプログラマブル論理回路においては、外部から機能決定用データを供給する必要がないので、プログラマブル論理回路で構成できる回路機能規模をゲート数で定まる回路機能規模よりも自律的に増加することができる。
【００６２】
【発明の実施の形態】
始めに、本発明に係わるシフトレジスタの実施例について説明する。図１は、本発明に係わるシフトレジスタの実施例の回路構成図である。図２は、図１に示すシフトレジスタのクロック供給回路の回路構成図である。
【００６３】
図１に示すシフトレジスタは、チェーンラッチ構成を有しており、シフトレジスタの一部が図１に示されている。図１に示すシフトレジスタでは、回路セルａ〜ｆが縦続接続されている。１つの回路セルとその隣接の回路セルの一部の回路とで、フリップフロップが構成できる。本発明に係わるシフトレジスタの回路セルでは、メイン信号パスにおけるスイッチとして、トランスミッションゲート１ａ〜１ｆ及び２ａ〜２ｆが設けられており、さらに、フィードバックループにおけるスイッチとして、ＰチャネルＭＯＳトランジスタ３ａ〜３ｆ及び４ａ〜４ｆが設けられている。
【００６４】
また、各回路セルにおいて、トランスミッションゲート１ａ〜１ｆ及びＰチャネルトランジスタ３ａ〜３ｆには、クロックＣＫが供給され、トランスミッションゲート２ａ〜２ｆ及びＰチャネルトランジスタ４ａ〜４ｆには、クロックＸＣＫ（クロックＣＫを反転したクロック）が供給される。従って、トランスミッションゲート１ａ〜１ｆ及びＰチャネルトランジスタ３ａ〜３ｆが導通している時は、トランスミッションゲート２ａ〜２ｆ及びＰチャネルトランジスタ４ａ〜４ｆは非導通となり、それらの組は排他的に動作する。
【００６５】
上記の構成では、トランスミッションゲート１ａ〜１ｆ及び２ａ〜２ｆの伝搬遅延は、Ｐチャネルトランジスタ３ａ〜３ｆ及び４ａ〜４ｆの伝搬遅延よりも小さい。従って、メイン信号パスにおける伝搬時間は、フィードバック回路における伝搬時間よりも短くなる。以上の構成によって、前述したチェーンラッチ構成のシフトレジスタの動作タイミングを安定に実現することができる。
【００６６】
クロックＣＫ及びＸＣＫは、図２に示すクロック供給回路によって供給される。図２において、入力されたクロックは、インバータ７によって反転され、２つの信号に分割される。一方は、インバータ８（バッファ回路）によって再び反転されクロックＣＫを出力する。他方は、インバータ９によって反転された後、再度インバータ１０（バッファ回路）によって反転されクロックＸＣＫを出力する。
【００６７】
インバータは、一般的にＰチャネルトランジスタとＮチャネルトランジスタで構成される。しかし、Ｎチャネルトランジスタの駆動力は、Ｐチャネルトランジスタのそれよりも数倍大きいため、出力波形の立ち上がりエッジが急峻に遷移できない。この問題は、Ｐチャネルトランジスタ側の駆動能力を、Ｎチャネルトランジスタ側の駆動能力よりも実質的に大きくすることで解決できることが実験的にわかった。
【００６８】
上記の解決方法を達成するため、カスタムＬＳＩでは、Ｐチャネル側のトランジスタの駆動能力を増加させるために大きいサイズのＰチャネルトランジスタを使用することができる。また、ゲートアレイでは、トランジスタのサイズは一様なので、図２に示すように、インバータ８及び１０のＰチャネルトランジスタの数をＮチャネルトランジスタの数よりも多くする。
【００６９】
Ｐチャネルトランジスタの駆動能力をＤｐ、Ｎチャネルトランジスタの駆動能力をＤｎとすると、Ｐチャネルトランジスタの数とＮチャネルトランジスタの数の比は、Ｄｎ／Ｄｐよりも実質的に大きいことが望ましい。各トランジスタの絶対数は、クロック供給回路のクロックが接続される負荷の量（スイッチの数）に依存する。上記の条件を満足する時に、出力波形の立ち上がりエッジが急峻に遷移でき、クロックＣＫとクロックＸＣＫの波形が実質的に対称となる。
【００７０】
上述したように、本発明に係わるシフトレジスタでは、スイッチ回路として、トランスミッションゲート及びＰチャネルトランジスタが使用され、かつクロック供給回路からは実質的に対称性を有するクロックＣＫ及びＸＣＫが各スイッチに供給される。従って、回路セルにおけるスイッチの出力の立ち上がり時間及び立ち下がり時間を実質的に等しくできる。また、フィードバックループにおいても、種類の異なるトランスミッションゲートとＰチャネルトランジスタを使用し、信号の伝搬時間が適切に調整されている。以上の条件によって、カスタムＬＳＩだけでなくゲートアレイにおいても、前述したチェーンラッチ構成のシフトレジスタの動作をより安定化及び確実化することができる。
【００７１】
本発明に係わるシフトレジスタでは、１つのフリップフロップを図６２に示す従来のフリップフロップのゲート数の約半分以下で構成することができる。従って、シフトレジスタを構成するゲート数やチップ面積も、従来の半分以下に低減できる。さらに、非常に多くの段数のシフトレジスタをメモリとして使用するプログラマブル論理回路においても、メモリのためのチップ面積を低減でき、チップ面積に対するプログラム可能な論理回路ゲート数を増加できる。
【００７２】
図３は、図１に示す本発明に係わるシフトレジスタの実施例の変更例である。図３に示すシフトレジスタでは、図１に示すシフトレジスタと比較して、インバータ５ａ〜５ｆ及び６ａ〜６ｆの代わりに、ＮＡＮＤゲート１１ａ〜１１ｆ及び１２ａ〜１２ｆが用いられている。本回路では、ＮＡＮＤゲート１１ａ〜１１ｆ及び１２ａ〜１２ｆの残りの入力Ｓ及びＲに論理“１”を設定すれば、各ＮＡＮＤゲート１１ａ〜１１ｆ及び１２ａ〜１２ｆはそれぞれインバータとして動作する。この場合におけるこのシフトレジスタの動作は、図１に示したシフトレジスタと同じである。
【００７３】
一方、ＮＡＮＤゲート１１ａ〜１１ｆ及び１２ａ〜１２ｆの残りの入力Ｓ及びＲに論理“０”を設定すれば、ＮＡＮＤゲート１１ａ〜１１ｆ及び１２ａ〜１２ｆの出力は論理“１”に固定できる。従って、ＮＡＮＤゲートの残りの入力Ｓ及びＲを自由に設定することによって、閉路に保持される値を任意に設定できる。
【００７４】
図４は、図１に示す本発明に係わるシフトレジスタの実施例の変更例である。図４に示すシフトレジスタでは、図１に示すシフトレジスタと比較して、インバータ５ａ〜５ｆ及び６ａ〜６ｆの代わりに、ＮＯＲゲート１３ａ〜１３ｆ及び１４ａ〜１４ｆが用いられている。本回路では、ＮＯＲゲート１３ａ〜１３ｆ及び１４ａ〜１４ｆの残りの入力Ｓ及びＲに論理“０”を設定すれば、各ＮＯＲゲート１３ａ〜１３ｆ及び１４ａ〜１４ｆはそれぞれインバータとして動作する。この場合におけるこのシフトレジスタの動作は、図１に示したシフトレジスタと同じである。
【００７５】
一方、ＮＯＲゲート１３ａ〜１３ｆ及び１４ａ〜１４ｆの残りの入力Ｓ及びＲに論理“１”を設定すれば、ＮＯＲゲート１３ａ〜１３ｆ及び１４ａ〜１４ｆの出力は論理“０”に固定できる。従って、ＮＯＲゲートの残りの入力Ｓ及びＲを自由に設定することによって、閉路に保持される値を任意に設定できる。
【００７６】
図５は、任意の論理状態が設定可能な状態設定回路が設けられたシフトレジスタの構成例を示す図である。図５では、図３に示すシフトレジスタの回路セルａ〜ｃに、それぞれ状態設定回路１５ａ〜１５ｃが接続されている。この状態設定回路１５ａ〜１５ｃでは、入力信号ＷＲＩＴＥ及びＤＡＴＡの組合せにより、チェーンラッチの状態を変化させることができる。
【００７７】
図６は、図５に示す状態設定回路の構成例である。この状態設定回路は、ＮＡＮＤゲート１６ａ〜１６ｃ及び１８ａ〜１８ｃとインバータ２０ａ〜２０ｃとで構成されている。例えば、論理セルａにおいて、入力信号ＷＲＩＴＥが論理“０”のとき、入力信号ＤＡＴＡの値に係わらず、ＮＡＮＤゲート１６ａ及び１８ａの両方の出力共論理“１”になる。この場合、論理セルａのＮＡＮＤゲート１１ａ及び１２ａはインバータとして動作する。
【００７８】
一方、入力信号ＷＲＩＴＥが論理“１”のとき、ＮＡＮＤゲート１６ａ及び１８ａの出力は、入力信号ＤＡＴＡに応じて（論理“０”，論理“１”）か、（論理“１”，論理“０”）になる。前者の場合、論理セルａのＮＡＮＤゲート１１ａの出力が論理“１”に設定され、後者の場合、ＮＡＮＤゲート１２ａの出力が論理“１”に設定される。
【００７９】
図７は、図５に示す状態設定回路のその他の構成例である。この状態設定回路は、ＯＲゲート２２ａ〜２２ｃ及び２４ａ〜２４ｃとインバータ２６ａ〜２６ｃとで構成されている。例えば、論理セルａにおいて、入力信号ＷＲＩＴＥが論理“１”のとき、入力信号ＤＡＴＡの値に係わらず、ＯＲゲート２２ａ及び２４ａの両方の出力共論理“１”になる。この場合、論理セルａのＮＡＮＤゲート１１ａ及び１２ａはインバータとして動作する。
【００８０】
一方、入力信号ＷＲＩＴＥが論理“０”のとき、ＯＲゲート２２ａ及び２４ａの出力は、入力信号ＤＡＴＡに応じて（論理“０”，論理“１”）か、（論理“１”，論理“０”）になる。前者の場合、論理セルａのＮＡＮＤゲート１１ａの出力が論理“１”に設定され、後者の場合、ＮＡＮＤゲート１２ａの出力が論理“１”に設定される。
【００８１】
なお、状態設定回路は、上述した構成に限られない。即ち、状態設定回路が、ＮＡＮＤゲート１１ａ及び１２ａを双方ともインバータとして動作させたり、ある少なくとも１方の出力を固定したりする機能を有するならば、その状態設定回路は種々の回路構成を有することができる。
【００８２】
さらに、図４に示すシフトレジスタに対しても、同様の状態設定回路を付加することができる。この場合、典型的な状態設定回路は、ＡＮＤゲートとインバータとの組み合わせ、或いはＮＯＲゲートとインバータとの組み合わせによって構成することができる。
【００８３】
図８は、本発明に係わるシフトレジスタのルックアップテーブルへの応用例である。図８では、シフトレジスタはＲＡＭ２８として使用され、シフトレジスタの各回路セルは、メモリセルとして定義されている。各メモリセルの出力は、デコーダ回路３０に接続されている。デコーダ回路３０とＲＡＭ２８との組み合わせによって、３入力プログラマブル機能ユニット（ルックアップテーブル）を実現することができる。即ち、入力Ａ，Ｂ，Ｃに対して、メモリデータで決定された論理に応じた出力が得られる。
【００８４】
図９は、図８に示すデコーダ回路の構成例である。デコーダ回路の入力Ａ，Ｂ，Ｃは、それぞれ相補信号で供給される。図９のデコーダ回路は、入力Ａ，Ｂ，Ｃによって制御される３段のスイッチ群で構成されており、入力Ａによって制御される初段のスイッチグループは、それぞれ各メモリセルに接続されている。入力Ａ，Ｂ，Ｃの組み合わせによって、８つのメモリセルのデータのうち１つが選択される。この構成によって、３入力組合せ論理を実現できる。
【００８５】
図１０は、図８に示すデコーダ回路のその他の構成例である。図１０に示すデコーダ回路では、図９に示すデコーダ回路と比較して、それぞれのスイッチがトランスミッションゲートで構成されている。図１０に示すルックアップテーブルは、図９に示す回路と同様に動作する。
【００８６】
次に、本発明に係わるシフトレジスタのその他の実施例について説明する。
【００８７】
従来のプログラマブル論理回路では、フリップフロップは、論理セル内に予め用意されたフリップフロップ、或いは論理セルにフィードバックパスを付加することによって実現されていた。従って、実現できるフリップフロップの数は、予め決められており、さらに多くのフリップフロップを論理セル内に実現することは難しかった。本発明では、プログラマブル論理回路の機能決定用メモリとして上述したシフトレジスタを使用すると、このシフトレジスタの一部がフリップフロップとして使用することができる。
【００８８】
図１１は、チェーンラッチの一部をフリップフロップとして使用可能な本発明に係わるシフトレジスタの実施例のモデル図である。図１１において、ハッチングされた回路セルがフリップフロップとして使用できる。また、フリップフロップとして使用される回路セルには、スイッチＱ及びインバータＲがさらに付加される。回路セルの一部をフリップフロップとして使用する場合、スイッチＡ，Ｂ，Ｍ，Ｎがオフされ、フリップフロップとして使用される回路セルが、残りの回路セルとアイソレートされる。このアイソレーショによって、一部の回路セルがフリップフロップとして動作しているとき、それらの動作が残りの回路セルに保持されている機能決定用データに影響することが防止される。
【００８９】
ハッチングされた回路セルをフリップフロップとして使用する場合、スイッチＨ及びＧの制御タイミングは、スイッチＨがオフされたとき、帰還路ＯがスイッチＧのみで帰還路Ｐと接続されるよう（スイッチＧはオン）に設定される。また、スイッチＤ及びＪは常にオンされ、能動回路Ｆ及びＬの出力が常にインバータＣ及びＩの入力端に伝搬される。
【００９０】
スイッチＱ及びＫの組と、スイッチＥ及びＧ組は、排他的に制御される。入力端子Ｓに印加された信号は、スイッチＱ及びＫがオンでスイッチＥ及びＧがオフの時にインバータＦの出力端に伝搬し、更にインバータＣの出力端に伝搬する。次にスイッチＱ及びＫがオフでスイッチＥ及びＧがオンの時、インバータＦ及びＣの入出力状態は、閉路Ｏに保持される。次に、再度、スイッチＱ及びＫがオンでスイッチＥ及びＧがオフになった時、閉路Ｏに保持されていた信号は、閉路Ｐに遷移すると共に、出力端子Ｔから出力される。
【００９１】
上述したように、チェーンラッチ構成のシフトレジスタの一部の回路セルに所定の信号を供給することによって、その回路セルをフリップフロップとして動作させることができる。従って、このシフトレジスタをプログラマブル論理回路の機能決定用メモリに使用した場合、その機能決定用メモリの一部をフリップフロップとして使用でき、論理セルにおいて実現できるフリップフロップの数を増加させることができる。よって、プログラマブル論理回路の等価ゲート数を大幅に向上させることができる。
【００９２】
図１２は、図１１に示したシフトレジスタの実施例の具体的構成図である。図１２に示すシフトレジスタでは、図１に示すシフトレジスタと同様に、スイッチとしてトランスミッションゲートとＰチャンネルＭＯＳが使用されている。さらに、回路セルｂには、トランスミッションゲート４０が接続され、回路セルｃには、インバータ４２が接続されている。また、フリップフロップとして使用可能な回路セルｂ，ｃ及び回路セルａの一部には、図２で示したクロック供給回路の代わりにクロック制御回路（ｃｌｏｃｋ  ｄｉｓｔｒｉｂｕｔｏｒ）が接続されている。
【００９３】
このクロック制御回路は、回路セルがフリップフロップとして使用されない場合は、図１及び図２で示されるクロックＣＫ，ＸＣＫを回路セル内の各スイッチに供給する。一方、回路セルがＤフリップフロップとして使用される場合、クロック制御回路は、回路セルｂ，ｃを残りの回路からアイソレートするように所定のクロックを供給し、かつＤフリップフロップのためのクロックＤＣＫ，ＸＤＣＫを供給する。
【００９４】
図１３は、図１２に示すクロック制御回路の回路構成図である。クロック制御回路は、複数のセレクタを含んでおり、回路セルがシフトレジスタとして使用される場合、シフトレジスタのためのクロックＣＫ，ＸＣＫが選択及び出力され、回路セルがＤフリップフロップとして使用される場合、ＤフリップフロップのためのクロックＤＣＫ，ＸＤＣＫが選択及び出力される。回路セルがシフトレジスタとして使用されるか、或いはフリップフロップとして使用されるかは、制御信号ＰＧＭ及びＭＯＤＥの組み合わせによって決定される。
【００９５】
図１４は、図１２に示す本発明に係わるシフトレジスタの実施例の変更例である。図１４に示すシフトレジスタでは、スイッチとして、トランスミッションゲートとＰチャンネルトランジスタが使用され、インバータの代わりに、ＮＡＮＤ回路が使用されている。また、回路セルｂ，ｃには、クロック供給回路の代わりに図１３に示したクロック制御回路が設けられている。
【００９６】
クロック制御回路は、シフトレジスタのためのクロック信号（ＣＫ，ＸＣＫ）、Ｄフリップフロップのためのクロック信号（ＤＣＫ，ＸＤＣＫ）及び、２つの動作を選択するための制御信号（ＰＧＭとＭＯＤＥ）が入力として供給される。
【００９７】
図１４に示すシフトレジスタでは、ＮＡＮＤゲートの入力端子Ｒ及びＳに所定の信号を設定することで、図６及び図７のシフトレジスタと同様に、シフトレジスタの一部の状態を任意に設定できる。また、同様の原理によって、形成されたフリップフロップの状態も任意に設定することができる。
【００９８】
図１５は、図１２に示す本発明に係わるシフトレジスタの実施例のその他の変更例である。図１５に示すシフトレジスタでは、スイッチとして、トランスミッションゲートとＰチャンネルトランジスタが使用され、インバータの代わりに、ＮＯＲ回路が使用されている。また、回路セルｂ，ｃには、クロック供給回路の代わりに図１３に示したクロック制御回路が設けられている。
【００９９】
クロック制御回路は、シフトレジスタのためのクロック信号（ＣＫ，ＸＣＫ）、Ｄフリップフロップのためのクロック信号（ＤＣＫ，ＸＤＣＫ）及び、２つの動作を選択するための制御信号（ＰＧＭとＭＯＤＥ）が入力として供給される。
【０１００】
図１５に示すシフトレジスタでは、ＮＯＲゲートの入力端子Ｒ及びＳに所定の信号を設定することで、シフトレジスタの一部の状態を任意に設定できる。また、形成されたフリップフロップの状態も任意に設定することができる。
【０１０１】
次に、本発明のシフトレジスタをＦＰＧＡの機能決定用メモリに使用した場合について説明する。本発明のシフトレジスタは、図６１に示す一般的なＦＰＧＡに使用することができる。
【０１０２】
図１６は、本発明に係わるプログラマブル論理回路の論理セルの実施例のブロック構成図である。本プログラマブル論理回路の論理セルは、プログラマブル機能ユニットと、該プログラマブル機能ユニットの機能を決定するための機能決定用メモリ（コンフィギュレーションメモリ）を含んでいる。プログラマブル機能ユニットは、幾つかのフリップフロップを含むことができる。機能決定用メモリは、図１２に示すシフトレジスタで構成されている。このシフトレジスタは、回路セルＭ０，Ｍ１，ＭＦＦ，Ｍ２，Ｍ３を含んでいる。回路セルＭ０，Ｍ１，Ｍ２，Ｍ３は、上述した回路セルａと同じ回路構成を有する。また回路セルＭＦＦは、図１２に示す回路セルｂ，ｃと実質的に同じ構成を有する。従って、回路セルＭＦＦは、フリップフロップとして動作することができる。
【０１０３】
図１６に示すクロック制御回路ＣＫＤは、図１２に示すクロック制御回路と実質的に同じ構成を有している。このクロック制御回路ＣＫＤには、シフトレジスタ用クロックＣＫ，ＸＣＫ、フリップフロップ用クロックＦＦＣＫ，ＦＦＸＣＫ、及び制御信号ＦＦＭＯＤＥ，ＰＧＭが供給される。さらに、図１６に示すクロック制御回路ＣＫＤには、フリップフロップ用データＦＦＩＮが供給でき、またフリップフロップの出力ＦＦＯＵＴを引き出すことができる。
【０１０４】
図１６において、機能決定用データが論理セルにロードされるとき、制御信号ＰＧＭからの指示によって、回路セルＭＦＦはシフトレジスタとして動作させられる。従って、機能決定用データは、回路セルＭ０，Ｍ１，ＭＦＦ，Ｍ２，Ｍ３にその順番でロードされる。機能決定用データがロードされた後、そのデータに応じてプログラマブル機能ユニットはその機能が定められる。
【０１０５】
この時、回路セルＭＦＦ内にロードされた機能決定用データのうち出力ＯＵＴ０は、クロック制御回路ＣＫＤの制御信号ＦＦＭＯＤＥとして帰還される。この信号が、回路セルＭＦＦがフリップフロップとして使用されることを示していれば、クロック制御回路ＣＫＤから回路セルＭＦＦはフリップフロップとして動作するように制御される。この時、前述したように、回路セルＭＦＦは、残りの回路セルＭ０，Ｍ１，Ｍ２，Ｍ３とアイソレートされる。
【０１０６】
回路セルＭＦＦがフリップフロップとして設定された後、クロック制御回路を通して、フリップフロップ用クロックＦＦＣＫ，ＦＦＸＣＫ、及びフリップフロップ用データＦＦＩＮが供給される。この場合、フリップフロップ用データＦＦＩＮは、プログラマブル機能ユニットから供給することも可能である。さらに、フリップフロップの出力ＦＦＯＵＴをプログラマブル機能ユニットへ供給することも可能である。
【０１０７】
上述したように、本発明に係わるプログラマブル論理回路では、通常使用できるフリップフロップの他に、機能決定用メモリの一部をフリップフロップとして使用することができる。従って、使用できるフリップフロップの数を大幅に増加することができる。
【０１０８】
図１７は、図１６に示すプログラマブル論理回路の論理セルの変更例である。本プログラマブル論理回路の論理セルは、図１６に示した論理セルと同様に、プログラマブル機能ユニットと、該プログラマブル機能ユニットの機能を決定するための機能決定用メモリを含んでいる。図１７に示す論理セルでは、機能決定用メモリは、図１４或いは図１５に示すシフトレジスタで構成されている。このシフトレジスタは、回路セルＭ０，Ｍ１，ＭＦＦ，Ｍ２，Ｍ３を含んでいる。各回路セルは、回路セルの状態を設定するための入力端子Ｓ及びＲを有している。その他の回路は、図１６に示した論理セルと同様であり、回路セルＭＦＦは、図１６の回路の動作と同様にフリップフロップとして動作することができる。
【０１０９】
さらに、図１７に示す論理セルでは、入力端子Ｒ０〜Ｒ６及びＳ０〜Ｓ６に、任意に値を設定することによって、各回路セルを所望の状態に設定することができる。
【０１１０】
次に、本発明に係わるプログラマブル論理回路の実施例について説明する。従来のプログラマブル論理回路では、機能決定用データが機能決定用メモリに一度ロードされると、プログラマブル論理回路が別の目的で使用されるまで、ロードされた機能決定用データは固定される。
【０１１１】
しかし、回路が大規模になると、一部の回路は短時間の間のみ使用される場合がある。或いは、全体の動作の初期だけ使用される回路もある。そのような回路を常にプログラマブル論理回路中に保持しておくことは、回路の構成に対して非効率である。本発明に係わるプログラマブル論理回路では、プログラマブル論理回路の動作中に、一部の回路（例えば、一部の論理セル）を別の機能を有する回路に変更でき、構成可能な最大回路数を向上できる。
【０１１２】
まず、本発明に係わるプログラマブル論理回路の各部の回路について説明する。始めに、本発明に係わるプログラマブル論理回路を構成する論理セルについて説明する。
【０１１３】
図１８は、本発明に係わるプログラマブル論理回路を構成する論理セルの基本構成のブロック図である。本論理セル５０は、プログラマブル機能ユニット５１、制御ユニット５２、及び機能決定用メモリ（コンフィギュレーションメモリ）５３で構成される。機能決定用メモリ５３には、複数の機能決定用データが記憶されており、この機能決定用データは、制御ユニット５２の機能決定用入力５６から書き込まれ、また、その機能決定用出力端子５７から読み出すことができる。
【０１１４】
制御ユニット５２の制御入力５８によって、機能決定用メモリ５３内の１つの機能決定用データが、プログラマブル機能ユニット５１に供給される。そのとき、プログラマブル機能ユニット５１では、供給された機能決定用データに応じた論理回路がプログラムされる。このプログラムされた論理回路は、幾つかのフリップフロップも含むことができる。プログラマブル機能ユニット５１に入力された入力信号５４は、そのプログラムされた論理回路によって処理され、出力信号５５として出力される。
【０１１５】
さらに、プログラマブル論理回路が動作中に、制御ユニット５２の制御入力５８によって、一度プログラムしたプログラマブル機能ユニット５１に、他の機能決定用データをダイナミックに（動的に）再設定できる。その後、プログラマブル機能ユニット５１は、別の論理回路として動作を開始する。
【０１１６】
複数の論理セルを含むプログラマブル論理回路では、常に動作している論理セルは多くない。従って、一時的に動作を停止している論理セルを、ダイナミックに他の機能を有する論理回路に再プログラムすることによって、プログラマブルな論理回路の規模を大幅に増加することができる。
【０１１７】
図１９は、図１８に示した論理セル５０の一構成例である。図１８と同じ機能の要素には、同じ参照番号を付している。図１９に示す論理セル５０−１では、制御ユニット５２−１は、選択機能部５９を含んでいる。この選択機能部５９は、制御入力５８によって、機能決定用メモリ５３の複数の機能決定用データから１つを選択してプログラマブル機能ユニット５１に供給する。上述したように、プログラマブル論理回路が動作中においても、選択機能部５９は動作でき、所望の機能決定用データをダイナミックにプログラマブル機能ユニット５１に設定できる。
【０１１８】
また、図１８に示すプログラマブル論理回路では、プログラマブル機能ユニット５１に設定する機能決定用データとして、機能決定用メモリ５３に記憶されている機能決定用データだけでなく、他の論理セルの出力信号や、外部から供給された信号も使用できる。
【０１１９】
図２０は、図１８に示した論理セル５０のその他の構成例である。図１８と同じ機能の要素には、同じ参照番号を付している。図２０に示す論理セル５０−２では、制御ユニット５２−２によって、機能決定用メモリ５３−１は、縦列的に接続されたメモリで構成される。即ち、制御ユニット５２−２へ入力される機能決定用クロックによって、機能決定用データが機能決定用メモリ５３−２にシリアルに伝送される。
【０１２０】
シリアル機能決定用データが機能決定用メモリ５３−２に設定された後、トリガ信号（図示せず）によって、シリアル機能決定用データが、プログラマブル機能ユニット５１に供給される。その後、新たなシリアル機能決定用データが、機能決定用メモリ５３−２に設定できる。そして、プログラマブル論理回路が動作中に、前に設定した論理回路が使用されなくなったとき、トリガ信号（図示せず）によって、用意された新たなシリアル機能決定用データが、プログラマブル機能ユニット５１に供給され、新たな論理回路として動作を開始する。
【０１２１】
図２１は、図２０に示した論理セル５０−２の具体的構成例である。図２１に示す論理セル５０−３では、図２０に示した論理セル５０−２と比べて、表記上、機能決定用メモリ５３−２が、プログラマブル機能ユニット５１と制御ユニットとしてのメモリコントローラ５２−２との間に記載されている。機能決定用メモリ５３−２は、回路セルＭ０〜Ｍ８から成るシフトレジスタで構成されている。従って、図２０の論理セル５０−２と同様に、シリアル機能決定用データＤＩＮが、クロックＣＫによって、機能決定用メモリ５３−２に設定できる。
【０１２２】
また、回路セルＭ０〜Ｍ８が図３或いは図４に示すシフトレジスタで構成できる場合、各回路セルの入力端子Ｒ及びＳに、メモリコントローラ５２−２から任意の値を設定することによって各回路セルの状態を所望の値に設定することができる。回路セルの入力端子Ｒ０〜Ｒ７及びＳ０〜Ｓ７の値は、メモリコントローラ５２−２のコンフィグ入力に供給された信号によって決定される。即ち、機能決定用メモリ５３−２（Ｍ０〜Ｍ８）にデータをロードしプログラマブル機能ユニット５１の論理を決定した後においても、プログラマブル論理回路が動作中にコンフィグ入力に供給する信号を変更すると、プログラマブル機能ユニット５１の論理を変更することができる。
【０１２３】
次に、本発明に係わるプログラマブル論理回路を構成する論理セルのその他の構成例について説明する。
【０１２４】
図２２は、本発明に係わるプログラマブル論理回路を構成するルックアップテーブル型論理セルの構成例である。図２２に示す論理セル６０は、選択機能ユニット６１、メモリセルプレーン６２、及びデコーダ機能ユニット６３で構成されている。選択機能ユニット６１は、図８のデコーダ回路３０に相当し、メモリセルプレーン６２は、図８のメモリセル２８に相当し、これはルックアップテーブルを構成する。デコーダ機能ユニット６３は、機能決定用データをメモリに書き込む時に、メモリのアドレスを決定する。
【０１２５】
図１８に示す論理セルと比較すると、選択機能ユニット６１、メモリセルプレーン６２、及びデコーダ機能ユニット６３は、それぞれ、図１８におけるプログラマブル機能ユニット５１、機能決定用メモリ５３、及び制御ユニット５２に相当する。従って、図２２に示す論理セルにおいても、図１８に示す論理セルと同様に、プログラマブル論理回路が動作中に、メモリセルプレーン６２の機能決定用データを変更することによって、選択機能ユニット６１の機能を変更することができる。
【０１２６】
図２３は、図２２に示す論理セルの変更例である。図２３に示す論理セル６０−１は、選択機能ユニット６１−１及びメモリセルプレーン６２−１で構成されている。論理セル６０−１では、図２２に示すデコーダ機能ユニット６３の機能が、選択機能ユニット６１−１及びメモリセルプレーン６２−１に分散されている。
【０１２７】
即ち、論理セル６０−１では、選択機能ユニット６１−１を介して、機能決定用データがメモリセルプレーン６２−１に供給される。この場合、メモリセルプレーン６２−１に対するアドレス入力も、選択機能ユニット６１−１を介して入力される。従って、論理セル６０−１は、図２２に示す論理セル６０に比べて簡易な回路構成を有し、さらに実質的に同じダイナミック再プログラマブル機能を有することができる。
【０１２８】
図２４は、本発明に係わるプログラマブル論理回路を構成する論理セルのその他の構成例である。図２４に示す論理セル７０は、プログラマブル機能ユニット７１、メモリセルプレーン７２、及びデコーダ機能ユニット７３で構成されており、図１８に示す論理セルと実質的に同じ構成を有している。プログラマブル機能ユニット７１は、図１８のプログラマブル機能ユニット５１に相当し、論理選択型回路やＡＮＤ−ＯＲプレーン型回路で構成できる（後に詳細に説明）。メモリセルプレーン７２及びデコーダ機能ユニット７３は、図２２に示すメモリセルプレーン６２及びデコーダ機能ユニット６３と実質的に同じ機能を有する。従って、論理セル７０は、実質的に同じダイナミック再プログラマブル機能を有することができる。
【０１２９】
図２５は、図２４に示す論理セルのプログラマブル機能ユニット７１の実施例である。図２５に示すように、プログラマブル機能ユニット７１は、ＮＡＮＤ、ＯＲなどの論理ゲート、フィードバック回路、ゲート回路及び選択回路等で構成することができる。図２５に示すプログラマブル機能ユニット７１では、メモリセルプレート７２からの機能決定用データ７１−２が選択回路及びゲート回路に供給され、論理機能が決定される。入力信号７１−１は、プログラムされた論理機能に従って処理され、出力信号７１−３として出力される。
【０１３０】
図２６は、図２５に示すプログラマブル機能ユニット７１の変更例である。図２５と同じ機能を有する要素には同じ参照番号を付している。図２６に示すプログラマブル機能ユニット７１では、図２５に示すプログラマブル機能ユニット７１に比べて、出力側にラッチ回路７１−４が設けられている。このラッチ回路７１−４によって、論理セルが再プログラムされているときに、論理セルの出力値が変化するのを防止できる。
【０１３１】
また、上記の構成では、機能ユニット部７５−１においてフィードバックパスを有効に設定し、ラッチ回路７１−４の制御信号としてこのフィードバックパスを制御する信号と同一の信号（適宜反転させる）を用いると、マスタスレーブフリップフロップを構成することができる。
【０１３２】
図２７は、図２５に示すプログラマブル機能ユニット７１のその他の変更例である。図２５と同じ機能を有する要素には同じ参照番号を付している。図２７に示すプログラマブル機能ユニット７１では、図２５に示すプログラマブル機能ユニット７１に比べて、機能決定用データ７１−２を生成するために、２種類の機能決定用データを記憶できるメモリユニット７１−６が設けられている。
【０１３３】
２種類の機能決定用データは、予めメモリユニット７１−６に書き込まれている。従って、この２種類の機能決定用データは瞬時に切り換えることができる。よって、この２種類の機能決定用データを適宜切り換えることによって、物理的な論理回路規模よりも大きい論理回路を実現することができる。この場合、使用していないメモリの機能決定用データは自由に書き換えることができる。従って、さらに、実質的な回路規模を増加できる。
【０１３４】
次に、本発明に係わるプログラマブル論理回路を構成するＩ／Ｏモジュールについて説明する。
【０１３５】
図２８は、本発明に係わるプログラマブル論理回路を構成するＩ／Ｏモジュールの構成例である。（Ａ）は、基本構成を示し、（Ｂ）は、メモリユニットを有する構成例を示している。図２８（Ａ）に示すＩ／Ｏモジュール８０は、外部回路と通信するための端子８１、信号波形整形及びバッファ回路８２、論理セルや論理セル間バスに接続される信号線群８３、信号線群を自由に接続するＩ／Ｏ接続ユニット８４、および、制御／機能決定入力信号８５で構成される。
【０１３６】
制御／機能決定入力信号８５によって、プログラマブル論理回路が動作中においても、Ｉ／Ｏ接続ユニット８４の接続構造や、入出力信号の方向が変更できる。また、出力信号のみ制御することも可能である。この場合、本Ｉ／Ｏモジュールにおいて、さらにフリップフロップ等の他の回路を設けることもできる。
【０１３７】
図２８（Ｂ）に示すＩ／Ｏモジュールは、Ｉ／Ｏ接続ユニット８４、信号波形整形及びバッファ回路８２のためのメモリユニット８６−１、８６−２を有している。メモリユニット８６−１、８６−２の各々は、図２７に示した論理セルのメモリユニット７１−６と同様に、２種類の機能決定用データを有している。従って、この２種類の機能決定用データは瞬時に切り換えることができる。よって、この２種類の機能決定用データを適宜切り換えることによって、物理的な論理回路規模よりも大きい論理回路を実現することができる。
【０１３８】
次に、本発明に係わるプログラマブル論理回路を構成するスイッチボックスについて説明する。
【０１３９】
図２９は、本発明に係わるプログラマブル論理回路を構成するスイッチボックスの構成例である。スイッチボックスは、各論理セルの間に配置され、各論理セルを自由に接続するための回路である。図２９に示すスイッチボックス９０は、スイッチボックス本体９１、信号線群９２、及び接続構造決定データサーバ９３で構成される。
【０１４０】
図３０は、スイッチボックス本体９１の構成例を示す。（Ａ）は、大要構成例を示し、（Ｂ）は、メモリユニットを含むスイッチ部の構成例を示す。図３０（Ａ）において、スイッチボックス本体９１では、各信号線群９２は、複数のスイッチによって接続可能なように構成されている。これらのスイッチは、トランスミッションゲートやパストランジスタを用いて構成することができる。また、これらのスイッチは、接続構造決定データサーバ９３によって制御される。従って、接続構造決定データサーバ９３によって、プログラマブル論理回路が動作中においても、スイッチボックス本体９１における接続構造を自由に変更することができる。
【０１４１】
図３０（Ｂ）に示すスイッチ部は、メモリユニット９５を有している。メモリユニット９５は、図２７に示した論理セルのメモリユニット７１−６と同様に、２種類の機能決定用データＡ，Ｂを有している。従って、この２種類の機能決定用データは瞬時に切り換えることができる。よって、この２種類の機能決定用データを適宜切り換えることによって、物理的な論理回路規模よりも大きい論理回路を実現することができる。
【０１４２】
次に、本発明に係わるプログラマブル論理回路の構成例について説明する。
【０１４３】
図３１は、本発明に係わるプログラマブル論理回路の第１構成例である。本プログラマブル論理回路１１０（図では、プログラマブルデバイス“Ｐｒｏｇｒａｍａｂｌｅ  Ｄｅｖｉｃｅ”と記載している）は、図１８に示した複数の論理セル５０と、各論理セルを接続する図２９に示したスイッチボックス９０と、複数のＩ／Ｏモジュール８０（図示せず）とを有している。これらの構成要素の各々は、ダイナミックに再プログラマブルな回路である。
【０１４４】
この論理セル５０は、プログラマブル機能ユニット５１、制御ユニット５２、及び機能決定用メモリ５３を含んでいる。機能決定用メモリ５３は、一般的なメモリだけでなく、部分的に回路セルの状態を設定できる前述した本発明に係わるシフトレジスタでも構成できる。制御ユニット５２によって、プログラマブル論理回路の動作中に論理セル５０の状態を再設定することができる。図３１における論理セル５０のコンフィグ入力Ｃ ＩＯからの信号は、制御ユニット５２を介して機能決定用メモリ５３に入力される（図１８参照）。
【０１４５】
また、スイッチボックス９０は、トランスミッションゲートやパストランジスタを用いて構成することができる。
【０１４６】
図３１において、各論理セル５０のコンフィグ入力Ｃ ＩＯは、各論理セル５０の間に配列された配線１１１に接続されている。従って、プログラマブル論理回路の動作中においても、任意の論理セルの出力信号、或いは自分自身の論理セルの出力信号を、所望の論理セルに機能決定用データとして供給することができる。よって、任意の論理セルからの指令によって、所望の論理セルのプログラマブル機能ユニットの論理機能を随時変更することができる。
【０１４７】
さらに、論理セル５０からの出力信号でスイッチボックス９０を制御することによって、論理セル同志の接続状態も変更可能である。以上示したように、論理セル、スイッチボックス等のダイナミックな再プログラミングによって、ゲート数で決定される構成可能回路数よりも多くの回路を実現することができる。
【０１４８】
さらに、このような構造を持つプログラマブル論理回路を複数用いたハードウェアエミュレータを構成すると、従来のハードウェアエミュレータに比べ、少ないプログラマブル論理回路で、大きな論理回路のエミュレーションを行うことができる。また、必要とするプログラマブル論理回路の数を激減させることができるため、エミュレーションのコストを大幅に削減することができる。
【０１４９】
図３２は、本発明に係わるプログラマブル論理回路の第２構成例である。本プログラマブル論理回路１２０は、図１８に示した複数の論理セル５０と、各論理セルを接続する図２９に示したスイッチボックス９０と、複数のＩ／Ｏモジュール８０（図示せず）と、機能決定用データサーバ１２２とを有している。
【０１５０】
各論理セル５０のコンフィグ入力Ｃ ＩＯは、各論理セル５０の間に配列された配線１２１に接続されている。さらに、機能決定用データサーバ１２２のコンフィグ入力Ｃ ＩＯも、配線１２１に接続されている。
【０１５１】
従って、プログラマブル論理回路の動作中においても、任意の論理セルの出力信号、自分自身の論理セルの出力信号、或いは機能決定用データサーバ１２２の出力信号を、所望の論理セルに機能決定用データとして供給することができる。よって、任意の論理セル及び機能決定用データサーバ１２２からの指令によって、所望の論理セルのプログラマブル機能ユニットの機能を随時変更することができる。
【０１５２】
さらに、機能決定用データを機能決定用データサーバ１２２から、複数の論理セルに一度に供給することによって、プログラマブル論理回路の大幅な論理機能の更新もできる。
【０１５３】
図３３は、本発明に係わるプログラマブル論理回路の第３構成例である。本プログラマブル論理回路１３０は、図１８に示した複数の論理セル５０と、各論理セルを接続する図２９に示したスイッチボックス９０と、複数のＩ／Ｏモジュール８０（図示せず）と、機能決定用データサーバ１３３と、ローダ１３４と、複数の選択回路１３５とを有している。
【０１５４】
機能決定用データサーバ１３３とローダ１３４は、一部の論理セルの機能決定用メモリにエクストラデータを供給する。従って、図３２の第２構成例と同様に、各論理セルは、個々にコンフィグデータ及びローダを有する必要がない。
【０１５５】
このプログラマブル論理回路の第３構成例では、機能決定用データがロードされた後、選択回路１３５によって一部の論理セルの機能決定用メモリに、データサーバ１３３からエクストラデータを選択的にロードすることができる。従って、図３３に示すプログラマブル論理回路では、プログラマブル論理回路の動作中に、所望の論理セルのプログラマブル機能ユニットの機能を選択的に変更することができる。これにより、ゲート数で決定される構成可能回路数よりも多くの回路を実現することができる。
【０１５６】
図３４は、本発明に係わるプログラマブル論理回路の第４構成例である。本プログラマブル論理回路１４０は、図１８に示した複数の論理セル５０と、各論理セルを接続する図２９に示したスイッチボックス９０と、複数のＩ／Ｏモジュール８０（図示せず）と、機能決定用データサーバ１４２と、機能決定用データ転送用専用線１４３とを有している。機能決定用データサーバ１４２のコンフィグ入力Ｃ ＩＯは、各論理セル５０のコンフィグ入力Ｃ ＩＯに専用線１４３を介して直接接続されている。
【０１５７】
従って、プログラマブル論理回路の動作中においても、機能決定用データサーバ１４２から機能決定用データを、所望の論理セルに供給することができる。よって、自分自身の論理セル及び機能決定用データサーバ１４２からの指令によって、所望の論理セルのプログラマブル機能ユニットの機能を随時変更することができる。
【０１５８】
さらに、機能決定用データを機能決定用データサーバ１４２から、複数の論理セルに一度に供給することによって、プログラマブル論理回路の大幅な論理機能の更新もできる。
【０１５９】
図３５は、本発明に係わるプログラマブル論理回路の第５構成例である。本プログラマブル論理回路１５０は、図１８に示した複数の論理セル５０と、各論理セルを接続する図２９に示したスイッチボックス９０と、複数のＩ／Ｏモジュール８０（図示せず）と、機能決定用データ転送用専用線１５３とを有している。図３４に示した第４構成例と異なり、機能決定用データサーバ１５２は、プログラマブル論理回路の外部に設けられており、インタフェースを介して専用線１５３に接続できる。外部に設けられた機能決定用データサーバ１５２のコンフィグ入力Ｃ ＩＯは、各論理セル５０のコンフィグ入力Ｃ ＩＯに専用線１５３を介して直接接続されている。
【０１６０】
従って、プログラマブル論理回路の動作中においても、機能決定用データサーバ１５２から機能決定用データを、所望の論理セルに供給することができる。よって、自分自身の論理セル及び機能決定用データサーバ１５２からの指令によって、所望の論理セルのプログラマブル機能ユニットの機能を随時変更することができる。
【０１６１】
さらに、機能決定用データを機能決定用データサーバ１５２から、複数の論理セルに一度に供給することによって、プログラマブル論理回路の大幅な論理機能の更新もできる。
【０１６２】
本第５構成例では、機能決定用データサーバ１５２が、プログラマブル論理回路の外部に設けられているため、プログラマブル論理回路が小型化でき、かつ全体の構成設計の自由度を向上できる。
【０１６３】
図３６は、本発明に係わるプログラマブル論理回路の第６構成例である。本プログラマブル論理回路１６０は、図１８に示した複数の論理セル５０と、各論理セルを接続する図２９に示したスイッチボックス９０と、複数のＩ／Ｏモジュール８０（図示せず）と、複数の機能決定用データサーバ１６２とを有している。各機能決定用データサーバ１６２は、各論理セル５０毎に設けられており、各論理セル５０のＣ ＩＯ及び各論理セル５０の間に配列された配線１６１に接続されている。
【０１６４】
従って、プログラマブル論理回路の動作中においても、任意の論理セルの出力信号、自分自身の論理セルの出力信号、自分の論理セルに接続されている機能決定用データサーバ１６２の出力信号、或いは他の論理セルに接続されている機能決定用データサーバ１６２の出力信号を、所望の論理セルに機能決定用データとして供給することができる。よって、任意の論理セル及び機能決定用データサーバ１６２からの指令によって、所望の論理セルのプログラマブル機能ユニットの機能を随時変更することができる。
【０１６５】
図３６に示す第６構成例では、図３５に示した第５実施例と異なり、比較的太い専用線を設ける必要がない。従って、信号線の設計の自由度が向上できる。
【０１６６】
図３７は、本発明に係わるプログラマブル論理回路の第７構成例である。本プログラマブル論理回路１７０は、図１８に示した複数の論理セル５０と、各論理セルを接続する図２９に示したスイッチボックス９０と、複数のＩ／Ｏモジュール８０（図示せず）と、複数の機能決定用データサーバ１７２と、複数のローダ１７３とを有している。各機能決定用データサーバ１７２及びローダ１７３は、各論理セル５０毎に設けられており、各論理セル５０のＣ ＩＯに接続されている。また、各論理セル５０のＣ ＩＯは、各論理セル５０の間に配列された配線１７１にも接続されている。
【０１６７】
従って、プログラマブル論理回路の動作中においても、任意の論理セルの出力信号、自分自身の論理セルの出力信号、自分の論理セルに接続されている機能決定用データサーバ１７２の出力信号、或いは他の論理セルに接続されている機能決定用データサーバ１７２の出力信号を、所望の論理セルに機能決定用データとして供給することができる。よって、任意の論理セル及び機能決定用データサーバ１７２からの指令によって、所望の論理セルのプログラマブル機能ユニットの機能を随時変更することができる。
【０１６８】
図３７に示す第７構成例では、図３５に示した第５実施例と異なり、比較的太い専用線を設ける必要がない。従って、信号線の設計の自由度が向上できる。
【０１６９】
図３８は、本発明に係わるプログラマブル論理回路の第８構成例である。本プログラマブル論理回路１８０は、図１８に示した複数の論理セル５０と、各論理セルを接続する図２９に示したスイッチボックス９０と、複数のＩ／Ｏモジュール８０（図示せず）と、複数の機能決定用データサーバ１８２と、制御ユニット１８３と、専用制御線１８４とを有している。
【０１７０】
各機能決定用データサーバ１８２は、各論理セル５０毎に設けられており、各論理セル５０のＣ ＩＯに接続されている。また、制御ユニット１８３は、それぞれの機能決定用データサーバ１８２に専用制御線１８４を介して接続されており、それぞれの機能決定用データサーバ１８２を集中的に制御できる。また、制御ユニット１８３は、図３４に示した機能決定用データサーバ１４２を含むこともできる。
【０１７１】
従って、プログラマブル論理回路の動作中においても、自分の論理セルに接続された機能決定用データサーバ１８２の出力信号、或いは制御ユニット１８３からの出力信号を、所望の論理セルに機能決定用データとして供給することができる。よって、自分自身の論理セル、機能決定用データサーバ１８２、及び制御ユニット１８３からの指令によって、所望の論理セルのプログラマブル機能ユニットの機能を随時変更することができる。
【０１７２】
図３９は、本発明に係わるプログラマブル論理回路の第９構成例である。本プログラマブル論理回路１９０は、図１８に示した複数の論理セル５０と、各論理セルを接続する図２９に示したスイッチボックス９０と、複数のＩ／Ｏモジュール８０（図示せず）と、専用制御線１９４とを有している。図３８に示した第８構成例と異なり、制御ユニット１９３は、プログラマブル論理回路の外部に設けられており、インタフェースを介して専用制御線１９４に接続できる。
【０１７３】
各機能決定用データサーバ１９２は、各論理セル５０毎に設けられており、各論理セル５０のＣ ＩＯに接続されている。また、外部に設けられている制御ユニット１９３は、それぞれの機能決定用データサーバ１９２に専用制御線１９４を介して接続されており、それぞれの機能決定用データサーバ１９２を集中的に制御できる。また、制御ユニット１９３は、図３４に示した機能決定用データサーバ１４２を含むこともできる。
【０１７４】
従って、プログラマブル論理回路の動作中においても、自分の論理セルに接続された機能決定用データサーバ１９２の出力信号、或いは制御ユニット１９３からの出力信号を、所望の論理セルに機能決定用データとして供給することができる。よって、自分自身の論理セル、機能決定用データサーバ１９２、及び制御ユニット１９３からの指令によって、所望の論理セルのプログラマブル機能ユニットの機能を随時変更することができる。
【０１７５】
図４０は、本発明に係わるプログラマブル論理回路の第１０構成例である。本プログラマブル論理回路２００は、図３８に示した第８構成例と実質的に同じ構成を有している。しかし、図４０に示すプログラマブル論理回路２００では、図３８に示す第８構成例と異なり、各論理セル毎に設けられている機能決定用データサーバ２０２は、各論理セル５０のＣ ＩＯだけでなく、各論理セル５０の間に配置されている配線２０１にも接続されている。
【０１７６】
従って、この第１０構成例では、プログラマブル論理回路の動作中においても、任意の論理セルの出力信号、自分自身の論理セルの出力信号、自分の論理セルに接続された機能決定用データサーバ２０２の出力信号、他の論理セルに接続された機能決定用データサーバ２０２の出力信号、或いは制御ユニット２０３からの出力信号を、所望の論理セルに機能決定用データとして供給することができる。よって、任意の論理セル（自分の論理セルを含む）、機能決定用データサーバ２０２、及び制御ユニット２０３からの指令によって、所望の論理セルのプログラマブル機能ユニットの機能を随時変更することができる。
【０１７７】
図４１は、本発明に係わるプログラマブル論理回路の第１１構成例である。本プログラマブル論理回路２１０は、図３９に示した第９構成例と実質的に同じ構成を有している。しかし、図４１に示すプログラマブル論理回路２１０では、図３９に示す第９構成例と異なり、各論理セル毎に設けられている機能決定用データサーバ２１２は、各論理セル５０のＣ ＩＯだけでなく、各論理セル５０の間に配置されている配線２１１にも接続されている。
【０１７８】
従って、この第１１構成例では、プログラマブル論理回路の動作中においても、任意の論理セルの出力信号、自分自身の論理セルの出力信号、自分の論理セルに接続された機能決定用データサーバ２１２の出力信号、他の論理セルに接続された機能決定用データサーバ２１２の出力信号、或いは外部に設けられている制御ユニット２１３からの出力信号を、所望の論理セルに機能決定用データとして供給することができる。よって、任意の論理セル（自分の論理セルを含む）、機能決定用データサーバ２１２、及び外部に設けられている制御ユニット２１３からの指令によって、所望の論理セルのプログラマブル機能ユニットの機能を随時変更することができる。
【０１７９】
図４２は、本発明に係わるプログラマブル論理回路の第１２構成例である。本プログラマブル論理回路２２０は、図３８に示した第８構成例と実質的に類似の構成を有している。しかし、図４２に示すプログラマブル論理回路２２０では、図３８に示す第８構成例と異なり、各スイッチボックス９０に機能決定用データサーバ２２５がそれぞれ接続されている。さらに、制御ユニット２２３は、各論理セル５０に設けられた機能決定用データサーバ２２２及び各スイッチボックス９０に設けられた機能決定用データサーバ２２５に専用制御線２２４を介して接続されており、それぞれの機能決定用データサーバ２２２及び２２５を集中的に制御できる。
【０１８０】
従って、この第１２構成例では、プログラマブル論理回路の動作中においても、機能決定用データサーバ２２２の出力信号を、対応する論理セル５０に機能決定用データとして供給でき、機能決定用データサーバ２２５の出力信号を、対応するスイッチボックス９０に機能決定用データとして供給でき、かつ制御ユニット２２３からの出力信号を、所望の論理セル５０及び所望のスイッチボックス９０に機能決定用データとして供給することができる。よって、自分自身の論理セル、機能決定用データサーバ２２２、２２５、及び制御ユニット２２３からの指令によって、所望の論理セルのプログラマブル機能ユニットの機能、及び所望のスイッチボックスの接続構成を随時変更することができる。
【０１８１】
図４３は、本発明に係わるプログラマブル論理回路の第１３構成例である。本プログラマブル論理回路２３０は、図３９に示した第９構成例と実質的に類似の構成を有している。しかし、図４３に示すプログラマブル論理回路２３０では、図３９に示す第９構成例と異なり、各スイッチボックス９０に機能決定用データサーバ２３５がそれぞれ接続されている。さらに、制御ユニット２３３は、各論理セル５０に設けられた機能決定用データサーバ２３２及び各スイッチボックス９０に設けられた機能決定用データサーバ２３５に専用制御線２３４を介して接続されており、それぞれの機能決定用データサーバ２３２及び２３５を集中的に制御できる。
【０１８２】
従って、この第１３構成例では、プログラマブル論理回路の動作中においても、機能決定用データサーバ２３２の出力信号を、対応する論理セル５０に機能決定用データとして供給でき、機能決定用データサーバ２３５の出力信号を、対応するスイッチボックス９０に機能決定用データとして供給でき、かつ外部に設けられた制御ユニット２３３からの出力信号を、所望の論理セル５０及び所望のスイッチボックス９０に機能決定用データとして供給することができる。よって、自分自身の論理セル、機能決定用データサーバ２３２、２３５、及び外部に設けられた制御ユニット２３３からの指令によって、所望の論理セルのプログラマブル機能ユニットの機能、及び所望のスイッチボックスの接続構成を随時変更することができる。
【０１８３】
次に、複数のプログラマブル論理回路で構成される本発明に係わるプログラマブル論理回路システムの構成例について説明する。
【０１８４】
図４４は、本発明に係わるプログラマブル論理回路システムの第１構成例である。本プログラマブル論理回路システム１１０は、複数のダイナミック再プログラマブル論理回路３００（図では、プログラマブル論理デバイス“Ｐｒｏｇｒａｍ  ｄｅｖｉｃｅ”と記載している）と、各プログラマブル論理回路を接続するスイッチ装置３０１と、複数のＩ／Ｏモジュール３０２（図示せず）とを有している。
【０１８５】
ダイナミック再プログラマブル論理回路３００としては、図３１から図４３に示したプログラマブル論理回路のいづれかを使用することができる。スイッチ装置３０１は、図２９に示したスイッチボックス９０と実質的の同じ構成を有することができる。また、Ｉ／Ｏモジュール３０２も、図２８に示したＩ／Ｏモジュール８０と実質的に同じ構成を有することができる。これらの構成要素の各々は、ダイナミックに再プログラマブルなデバイスである。
【０１８６】
従って、例えば、プログラマブル論理回路システムの動作中にプログラマブル論理回路３００の論理機能を再設定することができる。図４４におけるプログラマブル論理回路３００のコンフィグ入力Ｃ ＩＯからの信号は、制御ユニット５２を介して機能決定用メモリ５３に入力される（図１８参照）。
【０１８７】
図４４において、各プログラマブル論理回路３００のコンフィグ入力Ｃ ＩＯは、各プログラマブル論理回路３００の間に配列された論理回路間配線３１１に接続されている。従って、プログラマブル論理回路システムの動作中においても、任意のプログラマブル論理回路の出力信号、或いは自分自身のプログラマブル論理回路の出力信号を、所望のプログラマブル論理回路に機能決定用データとして供給することができる。よって、任意のプログラマブル論理回路からの指令によって、所望のプログラマブル論理回路の一部或いは全ての論理機能を随時変更することができる。
【０１８８】
さらに、プログラマブル論理回路３００からの出力信号でスイッチ装置３０１を制御することによって、プログラマブル論理回路同志の接続状態も変更可能である。以上示したように、プログラマブル論理回路、スイッチ装置等のダイナミックな再プログラミングによって、ゲート数で決定される構成可能回路数よりも多くの回路を実現することができる。
【０１８９】
さらに、このような構造を持つプログラマブル論理回路システムを複数用いたハードウェアエミュレータを構成すると、従来のハードウェアエミュレータに比べ、少ないプログラマブル論理回路システムで、大きな論理回路のエミュレーションを行うことができる。また、必要とするプログラマブル論理回路システムの数を激減させることができるため、エミュレーション装置のコストを大幅に削減することができる。
【０１９０】
図４５は、本発明に係わるプログラマブル論理回路システムの第２構成例である。本プログラマブル論理回路システム３２０は、複数のプログラマブル論理回路３００と、各プログラマブル論理回路を接続する複数のスイッチ装置３０１と、複数のＩ／Ｏモジュール３０２（図示せず）と、機能決定用データサーバ３２２とを有している。
【０１９１】
各プログラマブル論理回路３００のコンフィグ入力Ｃ ＩＯは、各プログラマブル論理回路３００の間に配列された配線３２１に接続されている。さらに、機能決定用データサーバ３２２のコンフィグ入力Ｃ ＩＯも、配線３２１に接続されている。
【０１９２】
従って、プログラマブル論理回路システムの動作中においても、任意のプログラマブル論理回路の出力信号、自分自身のプログラマブル論理回路の出力信号、或いは機能決定用データサーバ３２２の出力信号を、所望のプログラマブル論理回路に機能決定用データとして供給することができる。よって、任意のプログラマブル論理回路及び機能決定用データサーバ３２２からの指令によって、所望のプログラマブル論理回路の一部或いは全ての論理機能を随時変更することができる。
【０１９３】
さらに、機能決定用データを機能決定用データサーバ３２２から、複数のプログラマブル論理回路に一度に供給することによって、プログラマブル論理回路システムの大幅な論理機能の更新もできる。
【０１９４】
図４６は、本発明に係わるプログラマブル論理回路システムの第３構成例である。本プログラマブル論理回路システム３３０は、複数のプログラマブル論理回路３００と、各プログラマブル論理回路を接続する複数のスイッチ装置３０１と、複数のＩ／Ｏモジュール３０２（図示せず）と、機能決定用データサーバ３３３と、ローダ３３４と、複数の選択回路３３５とを有している。
【０１９５】
機能決定用データサーバ３３３とローダ３３４は、一部のプログラマブル論理回路の機能決定用メモリにエクストラデータを供給する。従って、図４５の第２構成例と同様に、各プログラマブル論理回路は、個々にコンフィグデータ及びローダを有する必要がない。
【０１９６】
このプログラマブル論理回路システムの第３構成例では、機能決定用データがロードされた後、選択回路３３５によって一部のプログラマブル論理回路の機能決定用メモリに、データサーバ３３３からエクストラデータを選択的にロードすることができる。従って、図４６に示すプログラマブル論理回路システムでは、プログラマブル論理回路システムの動作中に、所望のプログラマブル論理回路の一部或いは全ての論理機能を選択的に変更することができる。これにより、ゲート数で決定される構成可能回路数よりも多くの回路を実現することができる。
【０１９７】
図４７は、本発明に係わるプログラマブル論理回路システムの第４構成例である。本プログラマブル論理回路システム３４０は、複数のプログラマブル論理回路３００と、各プログラマブル論理回路を接続する複数のスイッチ装置３０１と、複数のＩ／Ｏモジュール３０２（図示せず）と、機能決定用データサーバ３４２と、機能決定用データ転送用専用線３４３とを有している。機能決定用データサーバ３４２は、各プログラマブル論理回路３００のコンフィグ入力Ｃ ＩＯに専用線３４３を介して直接接続されている。
【０１９８】
従って、プログラマブル論理回路システムの動作中においても、機能決定用データサーバ３４２から機能決定用データを、所望のプログラマブル論理回路に供給することができる。よって、自分自身のプログラマブル論理回路及び機能決定用データサーバ３４２からの指令によって、所望のプログラマブル論理回路の一部或いは全ての論理機能を随時変更することができる。
【０１９９】
さらに、機能決定用データを機能決定用データサーバ３４２から、複数のプログラマブル論理回路に一度に供給することによって、プログラマブル論理回路システムの大幅な論理機能の更新もできる。
【０２００】
図４８は、本発明に係わるプログラマブル論理回路システムの第５構成例である。本プログラマブル論理回路システム３５０は、複数のプログラマブル論理回路３００と、各プログラマブル論理回路を接続する複数のスイッチ装置３０１と、複数のＩ／Ｏモジュール３０２（図示せず）と、機能決定用データ転送用専用線３５３とを有している。図４７に示した第４構成例と異なり、機能決定用データサーバ３５２は、プログラマブル論理回路システムの外部に設けられており、インタフェースを介して専用線３５３に接続できる。さらに、外部に設けられた機能決定用データサーバ３５２は、各プログラマブル論理回路３００のコンフィグ入力Ｃ ＩＯに専用線３４３を介して直接接続されている。
【０２０１】
従って、プログラマブル論理回路システムの動作中においても、機能決定用データサーバ３５２から機能決定用データを、所望のプログラマブル論理回路に供給することができる。この時、自分自身のプログラマブル論理回路及び機能決定用データサーバ３５２からの指令によって、所望のプログラマブル論理回路の一部或いは全ての論理機能を随時変更することができる。
【０２０２】
さらに、機能決定用データを機能決定用データサーバ３５２から、複数のプログラマブル論理回路に一度に供給することによって、プログラマブル論理回路システムの大幅な論理機能の更新もできる。
【０２０３】
本第５構成例では、機能決定用データサーバ３５２が、プログラマブル論理回路システムの外部に設けられているため、プログラマブル論理回路システムが小型化でき、かつ全体の構成設計の自由度を向上できる。
【０２０４】
図４９は、本発明に係わるプログラマブル論理回路システムの第６構成例である。本プログラマブル論理回路システム３６０は、複数のプログラマブル論理回路３００と、各プログラマブル論理回路を接続する複数のスイッチ装置３０１と、複数のＩ／Ｏモジュール３０２（図示せず）と、複数の機能決定用データサーバ３６２とを有している。各機能決定用データサーバ３６２は、各プログラマブル論理回路３００毎に設けられており、各プログラマブル論理回路３００のＣ ＩＯ及び各プログラマブル論理回路３００の間に配列された配線３６１に接続されている。
【０２０５】
従って、プログラマブル論理回路システムの動作中においても、任意のプログラマブル論理回路の出力信号、自分自身のプログラマブル論理回路の出力信号、自分のプログラマブル論理回路に接続されている機能決定用データサーバ３６２の出力信号、或いは他のプログラマブル論理回路に接続されている機能決定用データサーバ３６２の出力信号を、所望のプログラマブル論理回路に機能決定用データとして供給することができる。よって、任意のプログラマブル論理回路及び機能決定用データサーバ３６２からの指令によって、所望のプログラマブル論理回路の一部或いは全ての論理機能を随時変更することができる。
【０２０６】
図４９に示す第６構成例では、図４８に示した第５実施例と異なり、比較的太い専用線を設ける必要がない。従って、信号線の設計の自由度が向上できる。
【０２０７】
図５０は、本発明に係わるプログラマブル論理回路システムの第７構成例である。本プログラマブル論理回路システム３７０は、複数のプログラマブル論理回路３００と、各プログラマブル論理回路を接続する複数のスイッチ装置３０１と、複数のＩ／Ｏモジュール３０２（図示せず）と、複数の機能決定用データサーバ３７２と、複数のローダ３７３とを有している。各機能決定用データサーバ３７２及びローダ３７３は、各プログラマブル論理回路３００毎に設けられており、各プログラマブル論理回路３００のＣ ＩＯに接続されている。また、各プログラマブル論理回路３００のＣ ＩＯは、各プログラマブル論理回路３００の間に配列された配線３７１にも接続されている。
【０２０８】
従って、プログラマブル論理回路システムの動作中においても、任意のプログラマブル論理回路の出力信号、自分自身のプログラマブル論理回路の出力信号、自分のプログラマブル論理回路に接続されている機能決定用データサーバ３７２の出力信号、或いは他のプログラマブル論理回路に接続されている機能決定用データサーバ３７２の出力信号を、所望のプログラマブル論理回路に機能決定用データとして供給することができる。よって、任意のプログラマブル論理回路及び機能決定用データサーバ３７２からの指令によって、所望のプログラマブル論理回路の一部或いは全ての論理機能を随時変更することができる。
【０２０９】
図５０に示す第７構成例では、図４８に示した第５実施例と異なり、比較的太い専用線を設ける必要がない。従って、信号線の設計の自由度が向上できる。
【０２１０】
図５１は、本発明に係わるプログラマブル論理回路システムの第８構成例である。本プログラマブル論理回路システム３８０は、複数のプログラマブル論理回路３００と、各プログラマブル論理回路を接続する複数のスイッチ装置３０１と、複数のＩ／Ｏモジュール３０２（図示せず）と、複数の機能決定用データサーバ３８２と、制御ユニット３８３と、専用制御線３８４とを有している。
【０２１１】
各機能決定用データサーバ３８２は、各プログラマブル論理回路３００毎に設けられており、各プログラマブル論理回路３００のＣ ＩＯに接続されている。また、制御ユニット３８３は、それぞれの機能決定用データサーバ３８２に専用制御線３８４を介して接続されており、それぞれの機能決定用データサーバ３８２を集中的に制御できる。また、制御ユニット３８３は、図４７に示した機能決定用データサーバ３４２を含むこともできる。
【０２１２】
従って、プログラマブル論理回路システムの動作中においても、自分のプログラマブル論理回路に接続された機能決定用データサーバ３８２の出力信号、或いは制御ユニット３８３からの出力信号を、所望のプログラマブル論理回路に機能決定用データとして供給することができる。よって、自分自身のプログラマブル論理回路、機能決定用データサーバ３８２、及び制御ユニット３８３からの指令によって、所望のプログラマブル論理回路の一部或いは全ての論理機能を随時変更することができる。
【０２１３】
図５２は、本発明に係わるプログラマブル論理回路システムの第９構成例である。本プログラマブル論理回路システム３９０は、複数のプログラマブル論理回路３００と、各プログラマブル論理回路を接続する複数のスイッチ装置３０１と、複数のＩ／Ｏモジュール３０２（図示せず）と、専用制御線３９４とを有している。図５１に示した第８構成例と異なり、制御ユニット３９３は、プログラマブル論理回路システムの外部に設けられており、インタフェースを介して専用制御線３９４に接続できる。
【０２１４】
各機能決定用データサーバ３９２は、各プログラマブル論理回路３００毎に設けられており、各プログラマブル論理回路３００のＣ ＩＯに接続されている。また、外部に設けられている制御ユニット３９３は、それぞれの機能決定用データサーバ３９２に専用制御線３９４を介して接続されており、それぞれの機能決定用データサーバ３９２を集中的に制御できる。また、制御ユニット３９３は、図４７に示した機能決定用データサーバ３４２を含むこともできる。
【０２１５】
従って、プログラマブル論理回路システムの動作中においても、自分のプログラマブル論理回路に接続された機能決定用データサーバ３９２の出力信号、或いは制御ユニット３９３からの出力信号を、所望のプログラマブル論理回路に機能決定用データとして供給することができる。よって、自分自身のプログラマブル論理回路、機能決定用データサーバ３９２、及び制御ユニット３９３からの指令によって、所望のプログラマブル論理回路の一部或いは全ての論理機能を随時変更することができる。
【０２１６】
図５３は、本発明に係わるプログラマブル論理回路システムの第１０構成例である。本プログラマブル論理回路システム４００は、図５１に示した第８構成例と実質的に同じ構成を有している。しかし、図５３に示すプログラマブル論理回路システム４００では、図５１に示す第８構成例と異なり、各プログラマブル論理回路毎に設けられている機能決定用データサーバ４０２は、各プログラマブル論理回路３００のＣ ＩＯにだけでなく、各プログラマブル論理回路３００の間に配置されている配線４０１にも接続されている。
【０２１７】
従って、この第１０構成例では、プログラマブル論理回路システムの動作中においても、任意のプログラマブル論理回路の出力信号、自分自身のプログラマブル論理回路の出力信号、自分のプログラマブル論理回路に接続された機能決定用データサーバ４０２の出力信号、他のプログラマブル論理回路に接続された機能決定用データサーバ４０２の出力信号、或いは制御ユニット４０３からの出力信号を、所望のプログラマブル論理回路に機能決定用データとして供給することができる。よって、任意のプログラマブル論理回路（自分のプログラマブル論理回路を含む）、機能決定用データサーバ４０２、及び制御ユニット４０３からの指令によって、所望のプログラマブル論理回路の一部或いは全ての論理機能を随時変更することができる。
【０２１８】
図５４は、本発明に係わるプログラマブル論理回路システムの第１１構成例である。本プログラマブル論理回路システム４１０は、図５２に示した第９構成例と実質的に同じ構成を有している。しかし、図５４に示すプログラマブル論理回路システム４１０では、図５２に示す第９構成例と異なり、各プログラマブル論理回路毎に設けられている機能決定用データサーバ４１２は、各プログラマブル論理回路３００のＣ ＩＯにだけでなく、各プログラマブル論理回路３００の間に配置されている配線４１１にも接続されている。
【０２１９】
従って、この第１１構成例では、プログラマブル論理回路システムの動作中においても、任意のプログラマブル論理回路の出力信号、自分自身のプログラマブル論理回路の出力信号、自分のプログラマブル論理回路に接続された機能決定用データサーバ４１２の出力信号、他のプログラマブル論理回路に接続された機能決定用データサーバ４１２の出力信号、或いは外部に設けられている制御ユニット４１３からの出力信号を、所望のプログラマブル論理回路に機能決定用データとして供給することができる。よって、任意のプログラマブル論理回路（自分のプログラマブル論理回路を含む）、機能決定用データサーバ４１２、及び外部に設けられている制御ユニット４１３からの指令によって、所望のプログラマブル論理回路の一部或いは全ての論理機能を随時変更することができる。
【０２２０】
図５５は、本発明に係わるプログラマブル論理回路システムの第１２構成例である。本プログラマブル論理回路システム４２０は、図５１に示した第８構成例と実質的に類似の構成を有している。しかし、図５５に示すプログラマブル論理回路システム４２０では、図５１に示す第８構成例と異なり、各スイッチ装置３０１に機能決定用データサーバ４２５がそれぞれ接続されている。さらに、制御ユニット４２３は、各プログラマブル論理回路３００に設けられた機能決定用データサーバ４２２及び各スイッチ装置３０１に設けられた機能決定用データサーバ４２５に専用制御線４２４を介して接続されており、それぞれの機能決定用データサーバ４２２及び４２５を集中的に制御できる。
【０２２１】
従って、この第１２構成例では、プログラマブル論理回路システムの動作中においても、機能決定用データサーバ４２２の出力信号を、対応するプログラマブル論理回路３００に機能決定用データとして供給でき、機能決定用データサーバ４２５の出力信号を、対応するスイッチ装置３０１に機能決定用データとして供給でき、かつ制御ユニット４２３からの出力信号を、所望のプログラマブル論理回路３００及び所望のスイッチ装置３０１に機能決定用データとして供給することができる。よって、自分自身のプログラマブル論理回路、機能決定用データサーバ４２２、４２５、及び制御ユニット４２３からの指令によって、所望のプログラマブル論理回路の一部或いは全ての論理機能、及び所望のスイッチ装置の接続構成を随時変更することができる。
【０２２２】
図５６は、本発明に係わるプログラマブル論理回路システムの第１３構成例である。本プログラマブル論理回路システム４３０は、図５２に示した第９構成例と実質的に類似の構成を有している。しかし、図５６に示すプログラマブル論理回路システム４３０では、図５２に示す第９構成例と異なり、各スイッチ装置３０１に機能決定用データサーバ４３５がそれぞれ接続されている。さらに、制御ユニット４３３は、各プログラマブル論理回路３００に設けられた機能決定用データサーバ４３２及び各スイッチ装置３０１に設けられた機能決定用データサーバ４３５に専用制御線４３４を介して接続されており、それぞれの機能決定用データサーバ４３２及び４３５を集中的に制御できる。
【０２２３】
従って、この第１３構成例では、プログラマブル論理回路システムの動作中においても、機能決定用データサーバ４３２の出力信号を、対応するプログラマブル論理回路３００に機能決定用データとして供給でき、機能決定用データサーバ４３５の出力信号を、対応するスイッチ装置３０１に機能決定用データとして供給でき、かつ外部に設けられた制御ユニット４３３からの出力信号を、所望のプログラマブル論理回路３００及び所望のスイッチ装置３０１に機能決定用データとして供給することができる。よって、自分自身のプログラマブル論理回路、機能決定用データサーバ４３２、４３５、及び外部に設けられた制御ユニット４３３からの指令によって、所望のプログラマブル論理回路の一部或いは全ての論理機能、及び所望のスイッチ装置の接続構成を随時変更することができる。
【０２２４】
なお、図３１〜図５６に示すプログラマブル論理回路及びプログラマブル論理回路システムでは、各プログラマブル論理回路の機能決定用メモリのために、上述した本発明に係わるシフトレジスタだけでなく通常のセット・リセット付きシフトレジスタを使用することもできる。
【０２２５】
図５７は、図３１〜図５６に示したプログラマブル論理回路及びプログラマブル論理回路システムで使用する機能決定用データサーバの第１構成例である。図５７に示す機能決定用データサーバ５００は、計算機として実現されている。従って、機能決定用データを容易に生成し、所望の時刻に送出することができる。
【０２２６】
図５８は、図３１〜図５６に示したプログラマブル論理回路及びプログラマブル論理回路システムで使用する機能決定用データサーバの第２構成例である。図５８で示す機能決定用データサーバ５１０は、複数の機能決定用データを記憶するためのメモリユニット５１１と、メモリユニット５１１の複数の機能決定用データの１つを選択する選択機能ユニット５１２とで構成されている。従って、機能決定用データサーバ５１０を簡易に構成することができる。
【０２２７】
図５９は、図３１〜図５６に示したプログラマブル論理回路及びプログラマブル論理回路システムで使用する機能決定用データサーバの第３構成例である。図５９で示す機能決定用データサーバ５２０は、複数の機能決定用データを記憶するためのメモリユニット５２１と、メモリユニット５２１の複数の機能決定用データの１つを選択する選択機能ユニット５２２とで構成されている。しかし、図５８に示す機能決定用データサーバ５１０とは異なって、サーバデータセットアップ信号によって、外部から選択機能ユニット５２２を介して、機能決定用データ（サーバデータ）をメモリユニット５２１に選択的に書き込むことができる。
【０２２８】
図６０は、図５９で示した機能決定用データサーバの詳細な構成例である。図６０で示す機能決定用データサーバ５３０は、複数の機能決定用データを記憶するためのメモリユニット５３１と、読出し選択ユニット５３２−１と、メモリユニット５３１のいづれかのメモリにデータを書き込むための書き込み選択ユニット５３２−２とで構成されている。
【０２２９】
読出し選択ユニット５３２−１は、図５８で示した選択機能ユニット５１２と実質的に同じ機能を有し、サーバデータ選択信号によってメモリユニット５３１の複数の機能決定用データの１つを選択して外部に出力する。書き込み選択ユニット５３２−２は、サーバデータセットアップ信号によって、メモリユニット５３１の１つのメモリを選択し、機能決定用データ入力（サーバデータ入力）を選択したメモリに格納する。
【０２３０】
上記の機能決定用データサーバ５３０の構成では、図６０に示すように、機能決定用データが１つのメモリから読み出されている間に、新たな機能決定用データを別のメモリに書き込むことができる。従って、異なる機能決定用データを、ダイナミック再プログラマブル論理回路やダイナミック再プログラマブル論理回路システムに随時効率よく供給することができる。
【０２３１】
上述したシフトレジスタやプログラマブル論理回路は、ゲートアレイ上にも容易に構成可能である。また、高速動作も可能であるため、プログラマブル論理回路だけでなく、シフトレジスタを用いた一般的な順序回路にも用いることができる。また、動作中に、論理回路を再構成できるため、フォールトトレラントシステムや、マルチプロセッサシステムなど、セル構造オートマトンでモデル化できる全ての装置に応用できる。
【０２３２】
以上、本発明の実施例により説明したが、本発明はこれらの実施例に限定されるものではなく、本発明の範囲内で改良及び変形が可能であることは言うまでもない。
【０２３３】
【発明の効果】
上述したように、本発明によれば以下に示す効果を有する。
【０２３４】
請求項１又は２記載のシフトレジスタにおいては、メイン信号パスにおける伝搬時間は、フィードバック回路における伝搬時間よりも短くなる。従って、チェーンラッチ構成のシフトレジスタの動作タイミングを安定に実現することができる。
【０２３５】
チェーンラッチ構成のシフトレジスタを使用することによって、シフトレジスタを構成するゲート数やチップ面積も、従来の半分以下に低減できる。さらに、非常の多くの段数のシフトレジスタをメモリとして使用するプログラマブル論理回路においても、メモリのためのチップ面積を低減でき、チップ面積に対するプログラム可能な論理回路ゲート数を増加できる。
【０２３６】
請求項３又は４記載のシフトレジスタにおいては、Ｐチャネルトランジスタ側の駆動能力を、Ｎチャネルトランジスタ側の駆動能力よりも実質的に大きくすることができる。従って、回路セルにおけるスイッチの出力の立ち上がり時間及び立ち下がり時間を実質的に等しくできる。以上の条件によって、チェーンラッチ構成のシフトレジスタの動作をより安定化及び確実化することができる。
【０２３７】
請求項５又は６記載のシフトレジスタ及び請求項７乃至１０記載のプログラマブル論理回路においては、チェーンラッチ構成のシフトレジスタの一部の回路セルに所定の信号を供給することによって、その回路セルをフリップフロップとして動作させることができる。従って、このシフトレジスタをプログラマブル論理回路の機能決定用メモリに使用した場合、その機能決定用メモリの一部をフリップフロップとして使用でき、論理セルにおいて実現できるフリップフロップの数を増加させることができる。
【０２３８】
請求項１１、１２、又は１６記載のプログラマブル論理回路、及び請求項１７又は１８記載のプログラマブル論理回路システムにおいては、プログラマブル論理回路或いはプログラマブル論理回路システムが動作中、他の動作中の部分回路の動作に影響を与えることなく、少なくとも１つの部分回路において実現された回路機能を変更することができる。この回路機能の変更によって、論理機能、接続機能、及びデータに入出力機能を変更することができる。
【０２３９】
これにより、ゲート数で決定される構成可能回路数よりも多くの回路を実現することができる。
【０２４０】
請求項１３記載のプログラマブル論理回路、及び請求項１９記載のプログラマブル論理回路システムにおいては、機能決定用データを供給するための機能決定用データサーバを含んでおり、該機能決定用データは、専用線及びプログラマブル配線のいづれかを介して部分回路に供給できる。従って、機能決定用データを効率良く部分回路に供給でき、プログラマブル論理回路及びプログラマブル論理回路システムの回路構成を簡易化できる。
【０２４１】
請求項１４記載のプログラマブル論理回路、及び請求項２０記載のプログラマブル論理回路システムにおいては、部分回路は、複数の機能決定用データを格納する記憶回路を有している。従って、機能決定用データを切り換えることによって、部分回路において実現される回路機能を瞬時に変更することができる。
【図面の簡単な説明】
【図１】本発明に係わるシフトレジスタの実施例の回路構成図。
【図２】図１に示すシフトレジスタのクロック供給回路の回路構成図。
【図３】図１に示す本発明に係わるシフトレジスタの実施例の変更例。
【図４】図１に示す本発明に係わるシフトレジスタの実施例の変更例。
【図５】任意の論理状態が設定可能な状態設定回路が設けられたシフトレジスタの構成例を示す図。
【図６】図５に示す状態設定回路の構成例。
【図７】図５に示す状態設定回路の他の構成例。
【図８】本発明に係わるシフトレジスタのルックアップテーブルへの応用例。
【図９】図８に示すデコーダ回路の構成例。
【図１０】図８に示すデコーダ回路の他の構成例。
【図１１】チェーンラッチの一部をフリップフロップとして使用可能な本発明に係わるシフトレジスタの実施例のモデル図。
【図１２】図１１に示した本発明に係わるシフトレジスタの実施例の具体的構成図。
【図１３】図１２に示すクロック制御回路の回路構成図。
【図１４】図１２に示す本発明に係わるシフトレジスタの実施例の変更例。
【図１５】図１２に示す本発明に係わるシフトレジスタの実施例の他の変更例。
【図１６】本発明に係わるプログラマブル論理回路の論理セルの実施例のブロック構成図。
【図１７】図１６に示すプログラマブル論理回路の論理セルの変更例。
【図１８】本発明に係わるプログラマブル論理回路を構成する論理セルの基本構成のブロック図。
【図１９】図１８に示した論理セル５０の一構成例。
【図２０】図１８に示した論理セル５０のその他の構成例。
【図２１】図２０に示した論理セル５０−２の具体的構成例。
【図２２】本発明に係わるプログラマブル論理回路を構成するルックアップテーブル型論理セルの構成例。
【図２３】図２２に示す論理セルの変更例。
【図２４】本発明に係わるプログラマブル論理回路を構成する論理セルのその他の構成例。
【図２５】図２４に示す論理セルのプログラマブル機能ユニット７１の実施例。
【図２６】図２５に示すプログラマブル機能ユニット７１の変更例。
【図２７】図２５に示すプログラマブル機能ユニット７１のその他の変更例。
【図２８】本発明に係わるプログラマブル論理回路を構成するＩ／Ｏモジュールの構成例。（Ａ）は、基本構成、（Ｂ）は、メモリユニットを有する構成例を示す。
【図２９】本発明に係わるプログラマブル論理回路を構成するスイッチボックスの構成例。
【図３０】スイッチボックス本体９１の構成例。（Ａ）は、大要構成例、（Ｂ）は、メモリユニットを含むスイッチ部の構成例を示す。
【図３１】本発明に係わるプログラマブル論理回路の第１構成例。
【図３２】本発明に係わるプログラマブル論理回路の第２構成例。
【図３３】本発明に係わるプログラマブル論理回路の第３構成例。
【図３４】本発明に係わるプログラマブル論理回路の第４構成例。
【図３５】本発明に係わるプログラマブル論理回路の第５構成例。
【図３６】本発明に係わるプログラマブル論理回路の第６構成例。
【図３７】本発明に係わるプログラマブル論理回路の第７構成例。
【図３８】本発明に係わるプログラマブル論理回路の第８構成例。
【図３９】本発明に係わるプログラマブル論理回路の第９構成例。
【図４０】本発明に係わるプログラマブル論理回路の第１０構成例。
【図４１】本発明に係わるプログラマブル論理回路の第１１構成例。
【図４２】本発明に係わるプログラマブル論理回路の第１２構成例。
【図４３】本発明に係わるプログラマブル論理回路の第１３構成例。
【図４４】本発明に係わるプログラマブル論理回路システムの第１構成例。
【図４５】本発明に係わるプログラマブル論理回路システムの第２構成例。
【図４６】本発明に係わるプログラマブル論理回路システムの第３構成例。
【図４７】本発明に係わるプログラマブル論理回路システムの第４構成例。
【図４８】本発明に係わるプログラマブル論理回路システムの第５構成例。
【図４９】本発明に係わるプログラマブル論理回路システムの第６構成例。
【図５０】本発明に係わるプログラマブル論理回路システムの第７構成例。
【図５１】本発明に係わるプログラマブル論理回路システムの第８構成例。
【図５２】本発明に係わるプログラマブル論理回路システムの第９構成例。
【図５３】本発明に係わるプログラマブル論理回路システムの第１０構成例。
【図５４】本発明に係わるプログラマブル論理回路システムの第１１構成例。
【図５５】本発明に係わるプログラマブル論理回路システムの第１２構成例。
【図５６】本発明に係わるプログラマブル論理回路システムの第１３構成例。
【図５７】図３１〜図５６に示したプログラマブル論理回路及びプログラマブル論理回路システムで使用する機能決定用データサーバの第１構成例。
【図５８】図３１〜図５６に示したプログラマブル論理回路及びプログラマブル論理回路システムで使用する機能決定用データサーバの第２構成例。
【図５９】図３１〜図５６に示したプログラマブル論理回路及びプログラマブル論理回路システムで使用する機能決定用データサーバの第３構成例。
【図６０】図５９で示した機能決定用データサーバの詳細な構成例。
【図６１】フィールドプログラマブルゲートアレイ（ＦＰＧＡ）の概略的構成図。
【図６２】典型的なＣＭＯＳ型Ｄフリップフロップの回路構成図。
【図６３】従来のチェーンラッチ構成のシフトレジスタの回路構成図。
【図６４】従来のチェーンラッチ構成のシフトレジスタの動作を説明する図。
【符号の説明】
１ａ〜１ｆ、２ａ〜２ｆ  トランスミッションゲート
３ａ〜３ｆ、４ａ〜４ｆ  Ｐチャネルトランジスタ
５ａ〜５ｆ、６ａ〜６ｆ  インバータ
７、８、９、１０  インバータ
１１ａ〜１１ｆ、１２ａ〜１２ｆ  ＮＡＮＤゲート
１３ａ〜１３ｆ、１４ａ〜１４ｆ  ＮＯＲゲート
１５ａ、１５ｂ、１５ｃ  状態設定回路
１６ａ〜１６ｃ、１８ａ〜１８ｃ  ＮＡＮＤゲート
２０ａ〜２０ｃ  インバータ
２２ａ〜２２ｃ、２４ａ〜２４ｃ  ＮＯＲゲート
２６ａ〜２６ｃ  インバータ
２８  ＲＡＭ
３０  デコーダ回路
４０  トランスミッションゲート
４２  インバータ
５０，５０−１，５０−２，５０−３  論理セル
５１  プログラマブル機能ユニット
５２，５２−１，５２−２  制御ユニット
５３，５３−２  機能決定用メモリ
５４  入力信号
５５  出力信号
５６  機能決定用入力
５７  機能決定用出力
５８  制御入力
５９  選択機能部
６０，６０−１  論理セル
６１，６１−１  選択機能ユニット
６２，６２−１  メモリセルプレーン
６３  デコーダ機能ユニット
７０  論理セル
７１  プログラマブル機能ユニット
７１−１  入力信号
７１−２  機能決定用データ
７１−３  出力信号
７１−４  ラッチ回路
７１−５  機能ユニット部
７１−６  メモリユニット
７２  メモリセルプレーン
７３  デコーダ機能ユニット
８０  Ｉ／Ｏモジュール
８１  外部通信端子
８２  信号波形生成及びバッファ回路
８３  信号線群
８４  Ｉ／Ｏ接続ユニット
８５  制御／機能決定入力信号
８６−１，８６−２  メモリユニット
９０  スイッチボックス
９１  スイッチボックス本体
９２  信号線群
９３  接続構造決定データサーバ
９５  メモリユニット
１１０，１２０，１３０，１４０，１５０，１６０，１７０，１８０，１９０，２００，２１０，２２０，２３０  プログラマブル論理回路
１１１，１２１，１３１，１４１，１５１，１６１，１７１，１８１，１９１，２０１，２１１，２２１，２３１  配線
１２２，１３３，１４２，１５２，１６２，１７２，１８２，１９２，２０２，２１２，２２２，２２５，２３２，２３５  機能決定用データサーバ
１３４，１７３  ローダ
１３５  選択回路
１４３，１５３  機能決定用データ転送用専用線
１８３，１９３，２０３，２１３，２２３，２３３  制御ユニット
１８４，１９４，２０４，２１４，２２４，２３４  専用制御線
３００  プログラマブル論理回路
３１０，３２０，３３０，３４０，３５０，３６０，３７０，３８０，３９０，４００，４１０，４２０，４３０  プログラマブル論理回路システム
３１１，３２１，３３１，３４１，３５１，３６１，３７１，３８１，３９１，４０１，４１１，４２１，４３１  論理回路間配線
３０１  スイッチデバイス
３０２  Ｉ／Ｏモジュール
３２２，３３３，３４２，３５２，３６２，３７２，３８２，３９２，４０２，４１２，４２２，４２５，４３２，４３５  機能決定用データサーバ
３３４，３７３  ローダ
３３５  選択回路
３４３，３５３  機能決定用データ転送用専用線
３８３，３９３，４０３，４１３，４２３，４３３  制御ユニット
３８４，３９４，４０４，４１４，４２４，４３４  専用制御線
５００，５１０，５２０，５３０  機能決定用データサーバ
５１１，５２１，５３１  メモリユニット
５１２，５２２  選択機能ユニット
５３２−１  読出し選択ユニット
５３２−２  書き込み選択ユニット


【手続補正２】
【補正対象書類名】図面
【補正対象項目名】図２１
【補正方法】変更
【補正の内容】
【図２１】
1997231788.tif 000001
【手続補正３】
【補正対象書類名】図面
【補正対象項目名】図２３
【補正方法】変更
【補正の内容】
【図２３】
1997231788.tif 000002
【手続補正４】
【補正対象書類名】図面
【補正対象項目名】図２８
【補正方法】変更
【補正の内容】
【図２８】
1997231788.tif 000003
【手続補正５】
【補正対象書類名】図面
【補正対象項目名】図３０
【補正方法】変更
【補正の内容】
【図３０】
1997231788.tif 000004