(57)【特許請求の範囲】
【請求項１】
部分的に回路機能を再構成可能なプログラマブル論理回路装置における回路機能の再構成方法であって、
再構成される回路機能が配置された領域のクロックラインを、他の領域のクロックラインと分離し、
再構成時に、当該再構成される回路機能が配置された領域のクロックラインのみ、クロック信号の供給を停止して、回路機能を再構成する、
ことを特徴とする回路機能の再構成方法。
【請求項２】
多数の論理セルを備え、回路機能を再構成可能な複数の領域に分割されたプログラマブル論理回路と、
前記複数の領域の各々に独立してクロック信号を供給可能に接続されたクロックラインと、
前記クロックライン毎にクロック信号の供給及び停止を行うクロック信号供給停止手段と、
再構成時に、当該再構成される回路機能が配置された領域のクロックラインのみ、前記クロック信号供給停止手段によるクロック信号の供給を停止して、回路機能を再構成する制御を行う制御手段と、
を有するプログラマブル論理回路装置。
【請求項３】
多数の論理セルを備えたプログラマブル論理回路と、
前記論理セルの各々に対してクロック信号を供給可能に設けられたクロックラインと、
前記クロックラインに設けられ、前記論理セルの各々に対して、クロック信号の供給及び停止の何れか一方の状態に切替えて、クロックラインを複数に分割可能にする切替手段と、
前記切替手段によって分割されたクロックライン毎にクロック信号の供給及び停止を行うクロック信号供給停止手段と、
を有するプログラマブル論理回路装置。
【請求項４】
前記クロック信号供給停止手段によるクロック信号供給時の駆動能力を、前記切替手段によって分割されたクロックライン毎に、当該クロックラインにより前記クロック信号を供給する論理セルの数に応じて設定する設定手段を更に有する、
ことを特徴とする請求項３に記載のプログラマブル論理回路装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、回路機能の再構成方法、及びプログラマブル論理回路装置に係わり、特に、部分的に回路機能を再構成可能なプログラマブル論理回路装置における回路機能の再構成方法、及びプログラマブル論理回路装置に関する。
【０００２】
【従来の技術】
近年、デジタル論理回路製品、特に特定用途向け集積回路(ASIC)の分野において、製品の開発期間を短縮するために、フィールドプログラマブルゲートアレイ(FPGA)やプログラマブルロジックデバイス(PLD)などのプログラマブル論理回路装置が広く使われている。
【０００３】
これらの装置は、論理回路を記述する回路情報を読み込ませることで、内部の論理回路と論理回路間の結線を自由に構成することができる。これにより、プログラマブル論理回路の使用以前に必要とされていた、回路設計終了後に数週間から数か月にも及ぶ集積回路の作製時間が不要となった。特に、米国特許第4,700,187号に開示されている発明のように、電気的に再構成可能なプログラマブル論理装置は、一度作製した回路を必要に応じて自由に何度でも変更できるという利点があり、ますます広く使われるようになってきた。
【０００４】
ところで、最近の論理回路は複雑さが増し、一つのプログラマブル論理回路装置では実現できない規模にまで回路規模が大きくなってきている。
【０００５】
この問題を解決するための一つの方法は、複数個のプログラマブル論理回路装置を接続して使用することである。しかしながら、プログラマブル論理回路装置の入出力接続の数が制限されているので、この方法ですべての回路を実現することは困難である。また、たとえ実現できたとしても、使用するプログラマブル論理回路装置数の増加に伴い、消費電力が増加するという新たな欠点を引き起こす。
【０００６】
別の解決方法は、プログラマブル論理回路装置を処理の途中で再度構成し直し、同一のプログラマブル論理回路装置に異なる論理回路を実現させることである。この場合は、再構成する時に、回路情報を内部の記憶装置（SRAM）に再度読み込む必要があり、このために余分な時間がかかるという欠点がある。さらに、処理の途中で再構成することは、処理を一時中断して、その時のデータをプログラマブル論理回路装置の外部の記憶装置に記憶させてから、新たな回路情報を読み込んで再構成しなければならない。すなわち、再構成の前後に、外部の記憶装置との間でデータを入出力させるという余分な処理が必要になる。
【０００７】
この問題を解決するために、例えば、米国アトメル社製の型番ＡＴ４０Ｋや型番ＡＴ６０００で示されるプログラマブル論理回路装置では、再構成を行う時のデータを記憶するためのデータ記憶装置を有し、回路の動作中でも外部の記憶装置から回路情報の一部を読み込んで部分的に再構成を行うことで、再構成に要する時間を最小に留めている（米国アトメル社のデータブック「CONFIGURABLE LOGIC」参照）。
【０００８】
【発明が解決しようとする課題】
しかしながら、上記の部分的再構成を行う場合、チップ内のごく一部の回路を再構成する場合でも、チップ全体のクロックを止めて、再構成用の回路情報をSRAMにロードしなければならない。また、再構成後の回路に入力するデータはレジスタに保持しておく必要があり、このレジスタのクロックも止めておかなければならない。このときチップ内の他の部分において処理を進めておこうとしてもクロックが停止しているので不可能で、回路データのロード時間分のオーバーヘッドが生じる。
【０００９】
本発明は上記問題点を解消するためになされたもので、動作中に回路機能を部分的に再構成する際に、再構成領域以外では処理を継続することができる回路機能の再構成方法、及びプログラマブル論理回路装置を提供することを目的とする。
【００１０】
【課題を解決するための手段】
上記目的を達成するために、請求項１に記載の回路機能の再構成方法は、部分的に回路機能を再構成可能なプログラマブル論理回路装置における回路機能の再構成方法であって、再構成される回路機能が配置された領域のクロックラインを、他の領域のクロックラインと分離し、再構成時に、当該再構成される回路機能が配置された領域のクロックラインのみ、クロック信号の供給を停止して、回路機能を再構成する、ことを特徴としている。
【００１１】
請求項１に記載の回路機能の再構成方法では、再構成される回路機能が配置された領域（以下、「再構成領域」という）のクロックラインが、他の領域クロックラインから分離されており、再構成を行う際には、当該再構成領域のクロックラインのみクロック信号の供給が停止されて、回路機能が再構成される。すなわち、再構成領域以外の領域に対するクロック信号の供給は停止されずに済み、部分的に回路機能を再構成しているときに、再構成領域以外の領域に構成されている回路機能では処理を継続して行うことができる。
【００１２】
請求項２に記載のプログラマブル論理回路装置は、多数の論理セルを備え、回路機能を再構成可能な複数の領域に分割されたプログラマブル論理回路と、前記複数の領域の各々に独立してクロック信号を供給可能に接続されたクロックラインと、前記クロックライン毎にクロック信号の供給及び停止を行うクロック信号供給停止手段と、再構成時に、当該再構成される回路機能が配置された領域のクロックラインのみ、前記クロック信号供給停止手段によるクロック信号の供給を停止して、回路機能を再構成する制御を行う制御手段と、を有している。
【００１３】
請求項２に記載のプログラマブル論理回路装置では、多数の論理セルを備えたプログラマブル論理回路が、回路機能を再構成可能な複数の領域に分割されている。この分割された各領域には、それぞれ独立してクロック信号を供給できるようにクロックラインが接続されている。クロック信号供給停止手段では、このクロックライン毎にクロック信号の供給や停止を行うので、分割された領域毎に、クロック信号の供給を制御することができる。
【００１４】
制御手段は、回路機能を再構成する際に、再構成する回路機能が配置された領域に対するクロック信号の供給のみを停止制御して、回路機能を再構成する制御を行うので、再構成領域以外の領域に構成されている回路機能では処理を継続して行うことができる。
【００１５】
請求項３に記載のプログラマブル論理回路装置は、多数の論理セルを備えたプログラマブル論理回路と、前記論理セルの各々に対してクロック信号を供給可能に設けられたクロックラインと、前記クロックラインに設けられ、前記論理セルの各々に対して、クロック信号の供給及び停止の何れか一方の状態に切替えて、クロックラインを複数に分割可能にする切替手段と、前記切替手段によって分割されたクロックライン毎にクロック信号の供給及び停止を行うクロック信号供給停止手段と、を有している。
【００１６】
請求項３に記載のプログラマブル論理回路装置では、プログラマブル論理回路に備えられている多数の論理セルの各々に対して、クロック信号が供給できるようにクロックラインが設けられている。このクロックラインは、切替手段によって、各論理セルに対してクロック信号を供給状態又は停止状態に切替えることで複数に分割され、この分割されたクロックライン毎に、クロック信号供給停止手段によってクロック信号の供給や停止が行われる。
【００１７】
なお、全ての論理セルと接続されたクロックラインを切替手段によって任意のポイントで切断することで、クロックラインを複数に分割してもよいし、クロックラインを断片化しておいて、切替手段によって任意のポイントで接続することで、クロックラインを複数に分割するようにしてもよい。
【００１８】
これにより、切替手段によって、再構成する回路機能が配置された領域毎にクロックラインを分割すれば、再構成する回路機能が配置された領域に対するクロック信号の供給のみを停止制御して再構成を行うことができ、再構成領域以外の領域に構成されている回路機能では処理を継続して行うことができる。また、回路設計に応じて、プログラマブル論理回路上に再構成領域を任意に設定することができる。
【００１９】
ただし、回路設計によって、分割されたクロックラインがクロック信号を供給する論理セルの個数が変わるので、請求項４に記載されているように、前記クロック信号供給停止手段によるクロック信号供給時の駆動能力を、前記切替手段によって分割されたクロックライン毎に、当該クロックラインにより前記クロック信号を供給する論理セルの数に応じて設定する設定手段を更に有するようにするとよい。
【００２０】
【発明の実施の形態】
次に、図面を参照して本発明に係る実施形態の１例を詳細に説明する。
【００２１】
（第１の実施の形態）
図１には、本発明が適用されたプログラマブル論理回路装置の概略構成が示されている。図１に示すように、プログラマブル論理回路装置１０は、二次元に配列された複数の論理セル１２と、配線領域１４と、入出力端子１６とを備えている。これら論理セル１２、配線領域１４、入出力端子１６により、本発明のプログラマブル論理回路を構成している（請求項２、３参照）。
【００２２】
論理セル１２では、内部の回路構成を変化させて、任意の論理関数を生成可能となっている。配線領域１４では、各論理セル１２間や、各論理セル１２と入出力端子１６の間を任意に結線可能となっている。
【００２３】
また、論理セル１２や配線領域１４内には、SRAM、DRAM等の書き換え可能なメモリ素子が備えられており、プログラマブル論理回路装置１０は、これらのメモリ素子で構成されたコンフィギュレーションメモリ（図示省略）を備えている。
【００２４】
このコンフィギュレーションメモリ（図示省略）にアドレスを与えて、新しい回路情報のデータが格納されると、この回路情報に従って論理セル１２内の回路構成と、各論理セル１２間や各論理セル１２と入出力端子１６間を相互に接続する配線領域１４の接続状態とが、すなわちプログラマブル論理回路装置１０の回路機能（以下、単に「回路」という）が再構成される。この一連の動作をコンフィギュレーションと呼ぶ。
【００２５】
プログラマブル論理回路装置１０では、コンフィギュレーションメモリ（図示省略）の一部分を書き換えることで、プログラマブル論理回路装置１０が動作中であっても、回路を部分的に再構成することができるようになっている。
【００２６】
なお、このコンフィギュレーション動作は、外部から入力されるコンフィギュレーションイネーブル信号（Config_enable）がイネーブル状態のときのみ実施可能となっている。
【００２７】
次に、プログラマブル論理回路装置１０内のクロック信号の供給に係わる構成について詳しく説明する。図２には、このプログラマブル論理回路装置１０内のクロック信号供給機構の詳細構成が示されている。
【００２８】
図２に示されるように、プログラマブル論理回路装置１０には、各論理セル１２にクロック信号を供給するために、クロックライン１８がツリー状に巡らされている。このツリー状のクロックライン１８は、プログラマブル論理回路装置１０上の回路形成領域３０を２分割した一方の領域３０Ａ内の各論理セル１２と接続しているクロックライン１８Ａと、他方の領域３０Ｂ内の各論理セル１２と接続しているクロックライン１８Ｂとで構成されている。
【００２９】
本実施の形態では、この領域３０Ａ、３０Ｂ毎に、回路機能を再構成するようになっている。すなわち、領域３０Ａ、３０Ｂが、本発明の「回路機能を再構成可能な複数の領域」に対応し、クロックライン１８Ａ、１８Ｂが「複数のクロックライン」に対応する（請求項２参照）。
【００３０】
また、本実施の形態では、外部から当該プログラマブル論理回路装置１０に対するクロック信号の供給は１系統となっており（複数系統にしても可）、クロックパッド２０に外部からのクロック信号が入力される。このクロックパッド２０の出力はＰＬＬ（Phase Lock Loop）回路２２に接続され、ＰＬＬ回路２２の出力は２つに分岐されている。
【００３１】
分岐された一方はクロック制御回路２４Ａを介して、クロックバッファ２６Ａに接続され、他方はクロック制御回路２４Ｂを介して、クロックバッファ２６Ｂに接続されている。これにより、外部からのクロック信号がクロックバッファ２６Ａ、２６Ｂに供給されるようになっている。
【００３２】
クロックライン１８Ａは、クロックバッファ２６Ａと接続されており、当該クロックバッファ２６Ａから出力されたクロック信号を領域３０Ａ内の各論理セル１２に供給するようになっている。クロックライン１８Ｂは、クロックバッファ２６Ｂと接続されており、当該クロックバッファ２６Ｂから出力されたクロック信号を領域３０Ｂ内の各論理セル１２に供給するようになっている。
【００３３】
また、ＰＬＬ回路２２の出力をクロックバッファ２６Ａ、２６Ｂに中継するクロック制御回路２４Ａ、２４Ｂは、それぞれイネーブル信号入力端子２８Ａ、２８Ｂと接続されている。
【００３４】
クロック制御回路２４Ａには、イネーブル信号入力端子２８Ａを介して、外部からのクロック制御用信号（Clk_Ctrl_A）が入力される。クロック制御回路２４は、このクロック制御用信号（Clk_Ctrl_A）に基づいて、クロックライン１８Ａによる論理セル１２へのクロック信号（Clk_A）の供給をイネーブル状態／停止状態に切替える。
【００３５】
同様に、クロック制御回路２４Ｂには、イネーブル信号入力端子２８Ｂを介して、外部からのクロック制御用信号（Clk_Ctrl_B）が入力され、このクロック制御用信号（Clk_Ctrl_B）に基づいて、クロックライン１８Ｂによる論理セル１２へのクロック信号（Clk_B）の供給をイネーブル状態／停止状態に切替える。
【００３６】
すなわち、プログラマブル論理回路装置１０では、領域３０Ａ内の各論理セル１２へのクロック信号の供給と、領域３０Ｂ内の各論理セル１２へのクロック信号の供給とを、独立して制御することが可能となっている。
【００３７】
このように、本実施の形態では、クロックパッド２０、ＰＬＬ回路２２、クロック制御回路２４Ａ、２４Ｂ、クロックバッファ２６Ａ、２６Ｂ、イネーブル信号入力端子２８Ａ、２８Ｂによって、本発明のクロック信号供給停止手段が構成されている（請求項２参照）。
【００３８】
（システム構成例）
上記構成のプログラマブル論理回路装置１０は、例えば、図３に示すような情報処理システムに組み込まれて使用される。図３に示す情報処理システム５０では、ＣＰＵ５２のホストバス５４に、チップセット５６に含まれるメインコントローラ（図示省略）を介して、例えばＤＲＡＭで構成される主記憶メモリ５８が接続されている。
【００３９】
また、ホストバス５４は、チップセット５６に含まれるホスト−ＰＣＩブリッジ（図示省略）を介して、ＰＣＩバス６０にも接続されている。このＰＣＩバス６０には、インタフェース６２を介して、プログラマブル論理回路装置１０が接続されている。また、ＰＣＩバス６０には、インタフェース６４を介して、ハードディスクドライブ６６が接続されており、このハードディスクドライブ６６には、アプリケーションプログラムや回路情報が記憶されている。
【００４０】
ＣＰＵ５２は、ハードディスクドライブ６６から主記憶メモリ５８にアプリケーションプログラムをロードして実行する。また、アプリケーションプログラム実行中に、必要に応じて、ハードディスクドライブ６６から回路情報を読み出して、プログラマブル論理回路装置１０のコンフィギュレーションメモリ（図示省略）にロードし、プログラマブル論理回路装置１０上に所望の回路を構成し、当該回路においてデータ処理を行うようになっている（以下、プログラマブル論理回路装置１０におけるデータ処理のことを「ハードウェア処理」という）。
【００４１】
すなわち、ＣＰＵ５２によって、プログラマブル論理回路装置１０におけるコンフィギュレーションや、当該プログラマブル論理回路装置１０上に構成された回路への入力データや出力データの入出力を制御するようになっている。
【００４２】
（作用）
次に、第１の実施の形態の作用について説明する。図４には、プログラマブル論理回路装置１０を動作させてハードウェア処理を行う場合の制御ルーチンが示されている。この制御ルーチンは、例えばＣＰＵ５２により実行される。
【００４３】
なお、以下では、図５に示すように、プログラマブル論理回路装置１０上に構成する回路を「回路ａプラス回路ｂ」の回路７０と「回路ａプラス回路ｃ」の回路７２とで切替えて使用する場合で、且つ図６に示すように、領域３０Ａ内の領域７４に回路ａ、領域３０Ｂ内の領域７６に回路ｂ又は回路ｃが配置されるように設計されている場合を例に説明する。
【００４４】
このときのデータ処理の流れは、プログラマブル論理回路装置１０上に回路７０を構成しているときは、入力データを回路ａに入力し、回路ａ→回路ｂ→回路ａの順で処理して回路ａから出力データを得るようになっており、回路７２を構成しているときは、入力データを回路ａに入力し、回路ａ→回路ｃ→回路ａの順で処理して回路ａから出力データを得るようになっている。
【００４５】
図４に示すように、プログラマブル論理回路装置１０を動作させる際には、まず、ステップ１００において、初期回路の情報をコンフィギュレーションメモリ（図示省略）にロードし、初期回路のコンフィグレーションを行って、プログラマブル論理回路装置１０上に初期回路を構成する。
【００４６】
具体的には、コンフィギュレーションイネーブル信号（Config_enable）をイネーブル状態、クロック制御回路２４Ａ、２４Ｂに入力するクロック信号制御信号（Clk_Ctrl_A 、Clk_Ctrl_B）を停止状態として、「回路ａプラス回路ｂ」の回路情報をコンフィギュレーションメモリ（図示省略）にロードする。これにより、プログラマブル論理回路装置１０では、「回路ａプラス回路ｂ」の回路７０の機能を実行できるようになる。
【００４７】
次いで、ステップ１０２において、ハードウェア処理の途中で、プログラマブル論理回路装置１０上の回路を、再構成する必要があるか否かを判断する。
【００４８】
途中で再構成する必要が有る場合は、ステップ１０４に進む。本例も、回路７０から回路７２に切替えるときに、再構成する必要があるので、ステップ１０４に進む。
【００４９】
ステップ１０４では、プログラマブル論理回路装置１０への入力データの入力を開始する（ハードウェア処理開始）。詳しくは、コンフィギュレーションイネーブル信号（Config_enable）をディセーブル状態、クロック制御回路２４Ａ、２４Ｂへのクロック信号制御信号（Clk_Ctrl_A 、Clk_Ctrl_B）をイネーブル状態とし、プログラマブル論理回路装置１０に入力データを入力する。
【００５０】
その後、プログラマブル論理回路装置１０上に構成されている回路のうち、再構成する回路での処理が完了したら（ステップ１０６で肯定判定）、ステップ１０８に移行する。ステップ１０８では、当該再構成する領域（部分回路）のみ、回路情報をロードし直すことによって、部分的にコンフィギュレーションを行って、プログラマブル論理回路装置１０上の回路構成を部分的に再構成する。
【００５１】
具体的には、「回路ａプラス回路ｂ」の回路７０において処理される最後のデータに対する回路ｂでの処理が終了したら、ステップ１０８に移行し、コンフィギュレーションイネーブル信号（Config_enable）をイネーブル状態とし、クロック制御回路２４Ｂへのクロック信号制御信号（Clk_Ctrl_B）を停止状態とする。これにより、クロックライン１８Ｂによる論理セル１２へのクロック信号（Clk_B）の供給が停止される。
【００５２】
コンフィギュレーションイネーブル信号がイネーブル状態になると、外部からの再構成用の回路情報の送信が可能となり、領域３０Ｂに対応するコンフィギュレーションメモリ（図示省略）のアドレスに、回路ｃの回路情報がロードされる。これにより、領域３０Ｂ内に回路ｃが構成され、プログラマブル論理回路装置１０では「回路ａプラス回路ｃ」、すなわち回路７２の機能を実行できるようになる。
【００５３】
この再構成の処理の間、クロック制御回路２４Ａへのクロック信号制御信号（Clk_Ctrl_A）は、イネーブル状態のままである。したがって、クロックライン１８Ａによる領域３０Ａ内の各論理セル１２へのクロック信号（Clk_A）の供給は継続されており、回路の再構成中も回路ａは動作可能となっている。
【００５４】
回路の再構成が完了するとコンフィギュレーションイネーブル信号（Config_enable）をディセーブル状態とし、クロック制御回路２４Ｂへのクロック制御用信号（Clk_Ctrl_B）をイネーブル状態に戻す。
【００５５】
次いで、ステップ１１０では、再構成する回路が残っているか否かを判断し、再構成する回路が残っている場合は、次の再構成のためにステップ１０６に戻る。なお、本例では、再構成は１回のみなので、必要な再構成が全て終了したと判断される（ステップ１１０で否定判定）。
【００５６】
必要な再構成が全て終了した（ステップ１１０で否定判定）後、プログラマブル論理回路装置１０への入力データの入力が全て終了し（ステップ１１２）、その結果（出力データ）の出力が終了したら（ステップ１１４）、処理が終了される。
【００５７】
一方、途中で再構成する必要がない場合は、ステップ１１６に進み、プログラマブル論理回路装置への入力データの入力を開始する（ハードウェア処理開始）。その後、入力データの入力が全て終了し（ステップ１１２）、その結果（出力データ）の出力が終了したら（ステップ１１４）、処理が終了される。
【００５８】
次に、図７のタイミングチャートを用いて上記の動作の一例を具体的に説明する。
【００５９】
プログラマブル論理回路装置１０が「回路aプラス回路b」の回路が構成されると、まず、回路ａに入力データＤ10が入力され(t1)、４サイクル後に(t5)、回路ｂの入力レジスタに処理結果Ｄ11が現れる。これを受けて、次の回路ｂにおいてＤ11の処理が行われる。
【００６０】
回路ｂがこのＤ11の処理をしている間に、回路ａには、次の入力データＤ20が入力される(t6)。回路ｂでの処理は、２サイクルで終わり、回路ｂの出力レジスタにＤ12が現れる(t7)。
【００６１】
これと同時に(t7)、コンフィギュレーションイネーブル信号（Config_enable）がイネーブル状態に変化し、クロック制御回路２４Ｂへのクロック制御用信号(Clk_Ctrl_B)が停止状態に変化する。
【００６２】
回路ｃのコンフィギュレーションは２サイクルで終了し、コンフィギュレーションイネーブル信号（Config_enable）と、クロック制御回路２４Ｂへのクロック制御用信号(Clk_Ctrl_B)はもとに戻る(t9)。
【００６３】
この間（t7〜t9）、領域３０Ｂ内の各論理セル１２へのクロック信号（Clk_B）は停止しているが、領域３０Ａ内の各論理セル１２へのクロック信号（Clk_A）は動作している。
【００６４】
これにより、回路ａでは、入力されていたＤ20の処理を継続して行うことができ、回路ｃの入力レジスタにその出力結果のＤ21が現れる(t10)。また、回路ｂの出力レジスタの値Ｄ12の処理も行って、４サイクル後に回路ａの出力レジスタにＤ13が出力される(t11)。
【００６５】
また、新たにプログラマブル論理回路装置１０上に構成された回路ｃでは、回路ｃの入力レジスタの値Ｄ21に対して処理を施し(t10)、２サイクル後に、回路ｃの出力レジスタに結果Ｄ22が出力される(t12)。なお、Ｄ22が出力されるまでの期間（t10〜t12）は、回路ｃの出力レジスタは不定状態になっている。
【００６６】
回路ｃの出力レジスタにＤ22が出力されると、前述のＤ12と同様に、回路ａでこのＤ22に対する処理が開始され、４サイクル後に、回路ａの出力レジスタにＤ23が出力される(t16)。
【００６７】
このように、第１の実施の形態では、プログラマブル論理回路装置１０上に巡らされたツリー状のクロックライン１８が、領域３０Ａの各論理セル１２にクロック信号を供給するクロックライン１８Ａと、領域３０Ｂの各論理セル１２にクロック信号を供給するクロックライン１８Ｂとの２系統に分割されており、クロック信号の供給を領域３０Ａと領域３０Ｂとで独立して制御することができるようになっている。
【００６８】
これにより、領域３０Ａ又は領域３０Ｂの何れか一方の領域に構成されている回路を再構成するときに、当該再構成領域に対してのみクロック信号の供給を停止することができ、他方の領域へのクロック信号の供給を継続して、当該他方の領域に構成されている回路での処理を継続させることができる。
【００６９】
なお、上記では、クロックライン１８を２系統に分割した場合について説明したが、３系統以上の場合についても、同様に本発明を適用することができる。
【００７０】
(第２の実施の形態)
次に、本発明の第２の実施の形態について説明する。なお、第２の実施の形態に係わるプログラマブル論理回路装置の概略構成は、第１の実施の形態と同一であり（図１参照）、ここでは概略構成の説明を省略し、クロック信号供給機構についてのみ説明する。
【００７１】
図８には、第２の実施の形態に係わるプログラマブル論理回路装置８０内のクロック信号供給機構の詳細構成が示されている。なお、図８では、第１の実施の形態で説明したプログラマブル論理回路装置１０（図２参照）と同一の部材については、同一の符号を付与しており、ここでは詳細な説明を省略する。
【００７２】
図８に示すプログラマブル論理回路装置８０では、外部から当該プログラマブル論理回路装置８０に対するクロック信号の供給は１系統となっており（複数系統にしても可）、クロックパッド２０に外部からのクロック信号が入力される。このクロックパッド２０の出力はＰＬＬ回路２２に接続され、ＰＬＬ回路２２の出力は３つに分岐されて、それぞれクロック制御回路２４Ａ、２４Ｂ、２４Ｃを介して、クロックバッファ２６Ａ、２６Ｂ、２６Ｃに接続されている。
【００７３】
このクロックバッファ２６Ａ、２６Ｂ、２６Ｃには、プログラマブル論理回路装置８０上の全ての論理セル１２と接続し、各論理セル１２にクロック信号を供給するためのツリー状のクロックライン１８が接続されている。
【００７４】
このクロックライン１８上には、複数の切断可能ポイント８２が設けられており、任意の個所でクロックライン１８を切断可能となっている。この切断可能ポイント８２が、本発明の切替手段に対応する（請求項３参照）。
【００７５】
各切断可能ポイント８２での切断の可否によって、各クロックバッファ２６Ａ、２６Ｂ、２６Ｃがクロック信号を供給する論理セル１２が決まる。クロックバッファ２６Ａ、２６Ｂ、２６Ｃは、各々が駆動するクロックライン１８の規模（クロック信号を供給する論理セル１２の個数）に基づいて、その駆動能力がプログラム可能（可変）となっている。すなわち、各クロックバッファ２６Ａ、２６Ｂ、２６Ｃが、本発明の設定手段に対応する（請求項４参照）。
【００７６】
また、ＰＬＬ回路２２の出力をクロックバッファ２６Ａ、２６Ｂ、２６Ｃに中継するクロック制御回路２４Ａ、２４Ｂ、２４Ｃは、それぞれイネーブル信号入力端子２８Ａ、２８Ｂ、２８Ｃと接続されている。クロック制御回路２４Ａ、２４Ｂ、２４Ｃは、イネーブル信号入力端子２８Ａ、２８Ｂ、２８Ｃを介して外部から各々に入力されたクロック制御信号に基づいて、クロック信号の供給をイネーブル状態／停止状態に切替えるようになっている。
【００７７】
このように、本実施の形態では、クロックパッド２０、ＰＬＬ回路２２、クロック制御回路２４Ａ、２４Ｂ、２４Ｃ、クロックバッファ２６Ａ、２６Ｂ、２６Ｃ、イネーブル信号入力端子２８Ａ、２８Ｂ、２８Ｃによって、本発明のクロック信号供給停止手段が構成されている（請求項３参照）。
【００７８】
なお、クロックバッファとクロック制御回路を３つずつにしたのは、ライン状のクロックライン１８を３つまで分割可能な例を示すためである。クロックバッファとクロック制御回路の個数は、複数個であればいくつでも構わない。
【００７９】
次に、第２の実施の形態の作用を説明する。なお、以下では、第１の実施の形態と同じ例（図５、図６参照）を用いて、プログラマブル論理回路装置８０を動作させる場合について説明する。
【００８０】
設計者は、レイアウト設計時に、部分的な再構成によって、回路ｂと回路ｃの機能を入れ替えることができるように、プログラマブル論理回路装置８０上の回路ａ、回路ｂ、回路ｃのレイアウトを決定する。例えば、領域９０に回路ａ、領域９２に回路ｂと回路ｃが入れ替えるように、レイアウトを決定する（図９参照）。
【００８１】
このレイアウト結果により、構成用回路データ、ツリー状のクロックライン１８を分割する領域、各領域のクロックライン１８を駆動するクロックバッファ２６とその駆動能力が決まる。
【００８２】
プログラマブル論理回路装置８０を使う前に、クロックライン１８の分割データに基づいて、切断可能ポイント８２を切断する。この切断方法はPROMの書き込みやアンチフューズタイプのプログラマブル論理回路装置（FPGA）の回路構成時などに用いられる公知の手法と同一であり、場所を示すアドレスと、切断／接続を示すビットデータに応じて、ポリシリコンなどで作られた配線を溶断するものである。
【００８３】
図９には、切断可能ポイント８２の切断結果が示されている。なお、図９では、切断可能ポイント８２を示す黒点にXを付加して、切断した切断可能ポイント８２を示している。
【００８４】
図９に示されているように、クロックバッファ２６Ｃと論理セル１２とをつなぐクロックライン１８が切断可能ポイント８２で切断され、ＰＬＬ回路２２とクロック制御回路２４Ｃとの間も切断される。また、クロックバッファ２６Ｂと領域９０の論理セル１２とをつなぐクロックライン１８も、切断可能ポイント８２で切断される。
【００８５】
これにより、クロックライン１８が２系統に分割され、領域９０内の論理セル１２にはクロックバッファ２６Ａからのクロック信号、領域９２内の論理セル１２にはクロックバッファ２６Ｂからのクロック信号が供給される。
【００８６】
また、各領域９０、９２内においても、使用する論理セル１２にだけクロック信号が供給されるように、クロックライン１８が切断され、クロックバッファ２６Ａでは８つの論理セル１２、クロックバッファ２６Ｂでは６つの論理セル１２にクロック信号を供給するようになる。この供給先の論理セル１２の個数に応じて、各クロックバッファの駆動能力がプログラムされる。
【００８７】
これにより、領域９０と領域９２とでクロックライン１８を分割することができ、その後は、第１の実施の形態と同様に、プログラマブル論理回路装置８０の動作させれば、プログラマブル論理回路装置８０を「回路ａ＋回路ｂ」の回路７０と、「回路ａ＋回路ｃ」の回路７２とで切替えて機能させることができる。
【００８８】
このように、第２の実施の形態では、クロックライン１８が最初は１つであり、回路設計時に再構成する回路の領域に応じて、クロックライン１８を分割することができる。すなわち、再構成する領域（領域９２）と再構成が不要な領域（領域９０）とで、クロックライン１８の系統を分けることができる。これにより、再構成時に当該再構成領域のクロック信号のみを停止させることができ、第１の実施の形態と同様の効果を得るとともに、プログラマブル論理回路装置８０上の任意の領域を再構成領域とすることもできる（自由度が高い）。
【００８９】
なお、この場合、設計者により設計された回路によって、各クロックバッファ２６Ａ、２６Ｂ、２６Ｃが駆動するクロックライン１８の規模（クロック信号を供給する論理セル１２の数）が変わるので、各々が駆動するクロックライン１８の規模に応じて、その駆動能力を設定することが好ましい。
【００９０】
なお、ツリー状のクロックライン１８を予めダイオードなどで断片化しておき、このダイオードをクロックライン１８の分割データに基づいて、短絡させることによっても、第２の実施の形態と同様の効果を得ることができる。
【００９１】
【発明の効果】
上記に示したように、本発明は、動作中に回路を部分的に再構成する際に、再構成領域以外では処理を継続することができるという優れた効果を有する。
【図面の簡単な説明】
【図１】  第１の実施の形態に係わるプログラマブル論理回路装置の概略構成図である。
【図２】  第１の実施の形態に係わるプログラマブル論理回路装置のクロック信号の供給機構の詳細構成図である。
【図３】  プログラマブル論理回路装置が組み込まれる情報処理システムの一例を示す図である。
【図４】  プログラマブル論理回路装置を動作させる際の制御ルーチンを示すフローチャートである。
【図５】  プログラマブル論理回路装置に機能させる回路構成の一例を示す図である。
【図６】  第１の実施の形態に係わるプログラマブル論理回路装置に図５で示した回路構成を適用した例である。
【図７】  プログラマブル論理回路装置の動作の一例を示すタイミングチャートである。
【図８】  第２の実施の形態に係わるプログラマブル論理回路装置のクロック信号の供給機構の詳細構成図である。
【図９】  第２の実施の形態に係わるプログラマブル論理回路装置に図５で示した回路構成を適用した例である。
【符号の説明】
１０、８０  プログラマブル論理回路装置
１２ 論理セル
１８、１８Ａ、１８Ｂ      クロックライン
２４Ａ、２４Ｂ、２４Ｃ    クロック制御回路
２６Ａ、２６Ｂ、２６Ｃ    クロックバッファ
２８Ａ、２８Ｂ、２８Ｃ    イネーブル信号入力端子
３０Ａ、３０Ｂ     領域
７０、７２  回路
７４、７６  領域
８２ 切断可能ポイント
９０、９２  領域
【図１】
0003707360.tif 000002
【図２】
0003707360.tif 000003
【図３】
0003707360.tif 000004
【図４】
0003707360.tif 000005
【図５】
0003707360.tif 000006
【図６】
0003707360.tif 000007
【図７】
0003707360.tif 000008
【図８】
0003707360.tif 000009
【図９】
0003707360.tif 000010