(57)【特許請求の範囲】
【請求項１】
論理演算処理を行なう複数の論理ブロックと、
各論理ブロック間を接続するための配線と、
該配線による各論理ブロック間の配線状態をプログラムにより設定変更しうる配線変更手段と、
各論理ブロックに対して動作タイミングを与えるクロック信号を供給するための、該配線から独立したクロックネットと、
該複数の論理ブロックのうちの非動作論理ブロックへの上記クロック信号の供給を停止させるように各論理ブロックへの上記クロック信号の供給／停止を動的に切替制御するクロック制御手段とをそなえ、
前記クロックネットは、１本のクロック供給ラインが複数段に２分岐されて構成され、
該クロック制御手段が、該クロックネット上に設けられ、それぞれ、上記クロック信号の供給／停止の切換を行なう複数の切替部から構成され、
かつ、該切替部が、前記クロック供給ラインにおける各分岐段の直後に介設されていることを特徴とする、プログラマブル論理回路。
【請求項２】
論理演算処理を行なう複数の論理ブロックと、
各論理ブロック間を接続するための配線と、
該配線による各論理ブロック間の配線状態をプログラムにより設定変更しうる配線変更手段と、
各論理ブロックに対して動作タイミングを与えるクロック信号を供給するための、該配線から独立したクロックネットと、
該複数の論理ブロックのうちの非動作論理ブロックへの上記クロック信号の供給を停止させるように各論理ブロックへの上記クロック信号の供給／停止を動的に切替制御するクロック制御手段とをそなえ、
該クロック制御手段が、該クロックネット上に設けられ、それぞれ、上記クロック信号の供給／停止の切換を行なう複数の切替部から構成され、
かつ、上記クロック信号の供給を停止した切替部よりも下流側に切替部が存在する場合、該下流側の切替部が、上記クロック信号を供給する状態に設定されることを特徴とする、プログラマブル論理回路。
【請求項３】
各切替部が、該クロックネットを成すクロック供給ライン上において、該クロック供給ラインの分岐点直後に介設されていることを特徴とする、請求項２記載のプログラマブル論理回路。
【請求項４】
論理演算処理を行なう複数の論理ブロックと、各論理ブロック間を接続するための配線と、該配線による各論理ブロック間の配線状態をプログラムにより設定変更しうる配線変更手段と、各論理ブロックに対して動作タイミングを与えるためのクロック信号を供給するための、該配線から独立したクロックネットであって、１本の前記クロック供給ラインが複数段に２分岐されて構成されたクロックネットとを有してなるプログラマブル論理回路のクロック制御方法であって、
該複数の論理ブロックのうちの非動作論理ブロックへの上記クロック信号の供給を停止させるための制御信号を出力する制御信号出力ステップと、
該制御信号出力ステップにて出力された制御信号に応じて、該クロックネットを成す前記クロック供給ラインにおける各分岐段の直後において、該非動作論理ブロックへの上記クロック信号の供給を停止させる停止ステップとをそなえて構成されたことを
特徴とする、プログラマブル論理回路のクロック制御方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、例えばＦＰＧＡ(Field Programmable Gate Array) やＣＰＬＤ(Complex Programmable Logic Device)等の、プログラムにより機能を変更可能な論理回路にて用いて好適の、プログラマブル論理回路およびそのクロック制御方法に関する。
【０００２】
【従来の技術】
ＦＰＧＡやＣＰＬＤ等に代表されるプログラマブル論理回路はプログラムにより論理回路の動作が変更可能なデバイスであり、このプログラマブル論理回路は、製品の早期開発や仕様変更への柔軟な対応などに有利な性質を有しているため、近年において急速に技術開発が進展している。
【０００３】
すなわち、これまでは、実現できる回路規模や動作速度等が実用化の際の課題となって、実験開発段階の試作ＬＳＩ(Large Scale Integration)としての位置付けでの使用が主であったが、近年のデバイス技術の発達により、回路規模が増大し、動作速度が上昇したため実用化が促進され、特にプロセッサ（ＭＰＵ；Microprocessor Unit）や信号処理プロセッサ（ＤＳＰ；Digital Signal Processor）では実現が難しいシステム外部とのインターフェイス部分の開発に多く適用されつつある。
【０００４】
しかしながら、携帯端末のようなシステムにおいては、動作速度、回路規模に加え、消費電力がデバイス選定の重要なファクタとなる。従来のプログラマブル論理回路では、回路規模や動作速度を優先するため、消費電力という点では専用ＬＳＩと比較して満足のいくレベルには到達していない。
一般的に消費電力が大きい場合は発熱量も大きくなるが、この発熱量は回路動作に影響を与えるものである。例えば、電源から常時電気の供給を受けられるような定置された屋外の組み込みシステム等の場合には、上述した携帯端末等のシステムほど消費電力の低減は重要な課題ではないが、電力消費による発熱量の上昇を抑えることが、より重要な課題となってくる。
【０００５】
即ち、発熱量が高い回路デバイスを用いると、回路動作を保障するうえでは冷却装置が必要となり、システムコストを上昇させることになる。即ち、上述のごときシステムにプログラマブル論理回路を適用する場合には、適正な回路動作を保障するために発熱量を抑制した回路デバイスを用いたシステム設計を行なう必要がある。
【０００６】
図８は従来のプログラマブル論理回路の一例としてのＦＰＧＡの一部を示す回路図であるが、この図８に示すＦＰＧＡ１００は、複数個（図８中においては１６個）配列された論理ブロック１０１と、格子状に張られた配線１０２と、格子状に張られた配線１０２が交差する配線変更スイッチ１０３と、クロック信号を論理ブロック１０１に供給するクロックネット１０４とをそなえて構成されている。
【０００７】
ここで、配線１０２は各論理ブロック１０１に接続され、配線変更スイッチ１０３はプログラムにより配線１０２の結線関係を切り替えるものであり、この配線変更スイッチ１０３による結線によって、論理ブロック１０１間の接続を変更して、プログラムにより回路として得られる機能を変更可能とすることができるようになっている。また、クロックネット１０４は、上述の論理ブロック１０１間を接続する通常の配線１０２とは接続しないで独立して張られたものである。
【０００８】
ところで、論理ブロック１０１としては、順序回路を構成するためのフリップフロップと論理を実現するためのＡＮＤ，ＯＲゲート等の機能が集積されて構成さえているが、特にＣＭＯＳ(Complementary Metal Oxide Semiconductor)プロセスにより論理ブロック１０１内のフリップフロップ機能を構成する場合には、当該フリップフロップの回路部分において消費される電力が大きいことが知られている。従って、このフリップフロップにおける電力消費を低減することが、ＦＰＧＡ全体の省電力に寄与することが大きいといえる。
【０００９】
この点、上述の論理ブロック１０１内におけるフリップフロップの回路部分においてイネーブル端子をそなえている場合には、このイネーブル端子に入力される信号によって、クロック信号に同期したフリップフロップ動作のイネーブル／ディセーブルを制御することができるが、クロック信号の供給そのものを停止させることはできない。従って、フリップフロップで消費される電力はクロック信号をディセーブルしたとしても低減することはできない。
【００１０】
そこで、上述の図８に示すＦＰＧＡのごときプログラマブル論理回路においては、電力消費を低減させるために、論理ブロック１０１内のディセーブル状態のフリップクロップに対してクロック供給を行なわないようにすることが望ましい。また、上述のごときディセーブル状態のフリップフロップに対してクロック供給を行なわないようにするためには、以下の２つの手法が考えられる。
【００１１】
▲１▼第１の手法として、図８に示す論理ブロック１０１内のフリップフロップ対応部分に、イネーブル端子のないフリップフロップと当該フリップフロップへのクロック入力をイネーブル信号により制御するゲートとを配置して論理ブロックを構成する手法。
▲２▼第２の手法として、クロックネット１０４としての機能そのものも配線１０２に組み入れて、クロックネットとしての配線を品種に応じて変更して、クロック信号の供給停止を他の論理回路と同様に制御する手法。具体的には、配線１０２を通じたクロック信号供給そのものを通常の論理ブロック１０１を用いて停止可能にする。
【００１２】
【発明が解決しようとする課題】
しかしながら、上述のごときディセーブル状態のフリップフロップに対してクロック供給を行なわないようにするための２種類の手法においては、以下のような課題がある。
まず、▲１▼の第１の手法においては、フリップフロップ自身の消費電力は低減できるものの、各論理ブロックに供給するクロック信号のための配線長の調整が困難となり、クロックスキューが生じる場合がある。このクロックスキューを調整するために別途バッファをクロックネットに挿入する必要があるが、このバッファの電力についてまでは低減させることはできず、回路全体としての十分な省電力化ないし発熱量の低減を図ることができないという課題がある。
【００１３】
さらに、▲２▼の第２の手法においては、論理ブロック内のフリップフロップの消費電力は低減させることは可能であるが、クロックネットに変更可能な配線を用いているので、上述の場合と同様、クロックスキューを調整するために別途バッファを挿入する必要があり、この場合使用可能な論理回路や配線を低減させてしまうとともに、回路全体の処理速度を高速に保つことが困難となる。
【００１４】
本発明は、このような課題に鑑み創案されたもので、クロックスキューを発生させることなく回路の処理速度を保ちつつ、回路全体としての十分な省電力化ないし発熱量の低減を図ることができるようにした、プログラマブル論理回路およびその制御方法を提供することを目的とする。
【００１５】
【課題を解決するための手段】
このため、本発明のプログラマブル論理回路は、論理演算処理を行なう複数の論理ブロックと、各論理ブロック間を接続するための配線と、該配線による各論理ブロック間の配線状態をプログラムにより設定変更しうる配線変更手段と、各論理ブロックに対して動作タイミングを与えるためのクロック信号を供給するための、該配線から独立したクロックネットと、該複数の論理ブロックのうちの非動作論理ブロックへの上記クロック信号の供給を停止させるように各論理ブロックへの上記クロック信号の供給／停止を動的に切替制御するクロック制御手段とをそなえ、前記クロックネットは、１本のクロック供給ラインが複数段に２分岐されて構成され、該クロック制御手段が、該クロックネット上に設けられ、それぞれ、上記クロック信号の供給／停止の切換を行なう複数の切替部から構成され、かつ、該切替部が、前記クロック供給ラインにおける各分岐段の直後に介設されていることを特徴としている。
【００１７】
さらに、本発明のプログラマブル論理回路は、論理演算処理を行なう複数の論理ブロックと、各論理ブロック間を接続するための配線と、該配線による各論理ブロック間の配線状態をプログラムにより設定変更しうる配線変更手段と、各論理ブロックに対して動作タイミングを与えるクロック信号を供給するための、該配線から独立したクロックネットと、該複数の論理ブロックのうちの非動作論理ブロックへの上記クロック信号の供給を停止させるように各論理ブロックへの上記クロック信号の供給／停止を動的に切替制御するクロック制御手段とをそなえ、該クロック制御手段が、該クロックネット上に設けられ、それぞれ、上記クロック信号の供給／停止の切換を行なう複数の切替部から構成され、かつ、上記クロック信号の供給を停止した切替部よりも下流側に切替部が存在する場合、該下流側の切替部が、上記クロック信号を供給する状態に設定されることを特徴としている。
この場合においては、好ましくは、各切替部を、該クロックネットを成すクロック供給ライン上において、該クロック供給ラインの分岐点直後に介設することができる。
また、本発明のプログラマブル論理回路のクロック制御方法は、上述の場合と同様の論理ブロックと、配線と、配線変更手段とともに、各論理ブロックに対して動作タイミングを与えるためのクロック信号を供給するための、該配線から独立したクロックネットであって、１本の前記クロック供給ラインが複数段に２分岐されて構成されたクロックネットを有してなるプログラマブル論理回路のクロック制御方法であって、該複数の論理ブロックのうちの非動作論理ブロックへの上記クロック信号の供給を停止させるための制御信号を出力する制御信号出力ステップと、該制御信号出力ステップにて出力された制御信号に応じて、該クロックネットを成すクロック供給ラインにおける各分岐段の直後において、該非動作論理ブロックへの上記クロック信号の供給を停止させる停止ステップとをそなえて構成されたことを特徴としている。
【００１８】
【発明の実施の形態】
〔１〕本発明の一実施形態の説明
以下、図面を参照することにより、本発明の実施の形態を説明する。
図１は本発明の一実施形態にかかるプログラマブル論理回路としてのＦＰＧＡの一部を示す回路図であり、この図１に示すＦＰＧＡ１０は、前述の図８に示すものと同様、論理演算処理を行なう複数（図１中においては１６個）の論理ブロック１と、各論理ブロック１間を接続するための配線２と、配線２による各論理ブロック１間の配線状態（結線状態）をプログラムにより設定変更しうる配線変更手段としての配線変更スイッチ３とをそなえている。
【００１９】
また、各論理ブロック１はフリップフロップ等のごときクロック信号に同期して動作する素子を含んで構成されたものである。なお、論理ブロック１そのものの動作についても、プログラムにより設定変更できるようになっている。配線２は縦横に整列配置された論理ブロック間を格子状に複数本ずつ張られたものであって外部の電気配線と結線接続するための入出力端子としての図示しないプログラマブルな論理回路に接続される。さらに、４は配線２から固定的に独立して設けられたクロックネットであって、このクロックネット４は、各論理ブロック１に対して動作タイミングを与えるためのクロック信号を供給するためのものである。
【００２０】
具体的には、クロックネット４は、一本のクロックラインについて論理ブロック１の数に応じて分岐した構成を有するもので、外部に設けられた図示しない単一のクロック供給源からのクロック信号を分岐されたクロックラインにより分岐して、各論理ブロック１に対して同位相で供給するようになっている。換言すれば、図示しないクロック供給源から各論理ブロック１に対して供給されるクロック信号のルートはクロックネット４により一意に決定され、かつ、各論理ブロック１に到るクロックネット４を成すクロック供給ラインの長さを、それぞれほぼ均一とすることにより、クロックスキューを発生させないようにしている。
【００２１】
また、このクロックネット４上には、以下に詳述する複数の切替部としての切替回路５，５−１〜５−４が設けられている。即ち、クロックネット４は、クロック供給源に接続される一本のクロック供給ラインについて多段（図１の場合には４段）に分岐されているが、このクロック供給ライン上において、各分岐段における分岐直後（上述のクロック供給ラインの分岐点直後）に上述の切替回路５−１〜５−４が介設されている。
【００２２】
複数の（図１中においては３１個の）切替回路５，５−１〜５−４はそれぞれ、上述のクロック供給源からのクロック信号の供給／停止の切替を行なうものであって、これらの切替回路５，５−１〜５−４により、１６個の論理ブロック１のうちの非動作（ディセーブル状態）の論理ブロック１へのクロック信号の供給を停止させるように、各論理ブロック１への上記クロック信号の供給／停止を動的に切替制御するクロック制御手段として機能する。
【００２３】
例えば、図１中の中央左の切替回路５は、クロックネット４を成すクロック供給ラインの根元（クロック供給源側）に設けられたもので、ＦＰＧＡ１を構成する全ての論理ブロック１に対するクロック信号の供給／停止を動的に切替制御するものである。
また、図中の中央における上下２つの切替回路５−１は、クロックネット４を成すクロック供給ラインにおける第１段目の分岐点直後に介設されたもので、これら２つの切替回路５−１のうち、上側の切替回路５−１は、図中の上側に配置された８個の論理ブロック１に対するクロック信号について切替制御するもので、下側の切替回路５−１は、図中の下側に配置された８個の論理ブロック１のクロック信号についてまとめて一括に切替制御するものである。
【００２４】
同様に、クロック供給ラインにおける第２段目の各分岐点直後には、２つの切替回路５−２が介設されている。例えば、図中の中央下における左右２つの切替回路５−２は、クロックネット４を成すクロック供給ラインにおける第２段目の分岐点直後に介設されたもので、これら２つの切替回路５−２のうち、左側の切替回路５−２は、図中の左下側に配置された４個の論理ブロック１のクロック信号についてまとめて切替制御するもので、右側の切替回路５−１は、図中の右下側に配置された４個の論理ブロック１に対するクロック信号についてまとめて切替制御するものである。
【００２５】
さらに、クロック供給ラインにおける第３段目の各分岐点直後にも、２つの切替回路５−３が介設されている。例えば図中の右下における上下２つの切替回路５−３は、クロックネット４を成すクロック供給ラインにおける第３段目の分岐点直後に介設されたもので、これら２つの切替回路５−３のうち、上側の切替回路５−３は、図中の上から３行目の右側２個の論理ブロック１に対するクロック信号についてまとめて切替制御するもので、下側の切替回路５−３は、図中の上から４行目の右側２個の論理ブロック１に対するクロック信号についてまとめて切替制御するものである。
【００２６】
また、クロック供給ラインにおける末端部分、即ち第４段目の各分岐点直後にも、２つの切替回路５−４が介設されている。例えば図中の右下における左右２つの切替回路５−４は、クロックネット４を成すクロック供給ラインにおける第４段目の分岐点直後に介設されたもので、これら２つの切替回路５−４のうち、左側の切替回路５−４は、図中の上から４行目の右から２つめの論理ブロック１に対するクロック信号について切替制御するもので、右側の切替回路５−４は、図中の上から４行目の右端の論理ブロック１に対するクロック信号について切替制御するものである。
【００２７】
ところで、上述の各切替回路５，５−１〜５−４は、１６個の論理ブロックのうちの所定の論理ブロック１からの制御信号を、配線２および配線変更スイッチ３を介することにより受けて、論理ブロック１へのクロック信号の供給／停止の切替を行なうように構成されている。例えば、図２に示すように、切替回路５−３，５−４は、配線変更スイッチ３における切替設定により上述の図１に示す１６個の論理ブロック１のうちの所定の論理ブロック１からの制御信号を受けて、上述の切替を行なうものである。
【００２８】
さらに、上述の論理ブロック１からの制御信号により、クロック信号の供給を停止した切替回路よりも下流側に切替回路が存在する場合、該下流側の切替回路が、クロック信号を供給する状態に設定できるようになっている。
なお、ＦＰＧＡ１０を構成する論理ブロック１は、クロックネットとは別にＦＰＧＡ１０内に張られた電源ラインＧＮＤ〔アクティブロー制御の場合，アクティブハイ制御の場合はＶｃｃ（例えばＶｃｃ＞０ボルト）〕に接続されているが、上述の下流側の切替回路における制御信号としては、この電源ラインから常時アクティブ状態の信号を用いるように構成することもできる。即ち、当該切替回路近傍の電源ラインから制御信号の供給を受けることで配線リソースの効率化を図っている。
【００２９】
具体的には、図２における２つの切替回路５−３において、図中右側の切替回路５−３における切替制御によって、クロック信号の供給を停止した場合には、当該切替回路５−３よりも下流側の２つ（図中、４つの切替回路５−４のうちの右側２つ）の切替回路５−４では、クロック信号を供給状態に設定することができるのである。他の切替回路５，５−１〜５−４相互の関係においても同様である。
【００３０】
なお、各切替回路５，５−１〜５−４における切替制御のための制御信号を出力する機能は、例えば、それぞれが最も近接する論理ブロック１に分散して持たせたり、各分岐段の分岐点直後の切替回路毎に持たせたり、単一の論理ブロック１に持たせたりすることができるほか、ＦＰＧＡ１０の外部に持たせたりする等、回路の動作が最適となるような設定がなされる。また、上述の各切替回路５，５−１〜５−４，配線変更スイッチ３および論理ブロック１とを接続する配線については、論理ブロック１を接続する配線２と基本的に同等の公知の手法で配線設定することができる。
【００３１】
また、上述の各切替回路５，５−１〜５−４の構成としては、詳細には以下の［１］〜［４］の４種類のいずれかの態様において構成することができる。
［１］第１の態様としては、例えば図３（Ａ）に示すように、各切替回路５，５−１〜５−４を、上述した所定の論理ブロック１からの制御信号の反転入力とクロック信号との論理積を論理ブロック１側へ出力するＡＮＤゲート５１を用いて構成するものである。この図３（Ａ）の場合においては、制御信号を反転入力させることにより、制御信号が「１」（ハイレベル）となったときに、クロック信号を停止させるアクティブハイ(Active High)制御を行なうようになっている。なお、制御信号を反転させずに入力させることにより、制御信号が「０」（ローレベル）となったときに、クロック信号を停止させるアクティブロー(Active Low)制御を行なうこともできる。
【００３２】
［２］第２の態様としては、例えば図４（Ａ）に示すように、各切替回路５，５−１〜５−４を、上述した所定の論理ブロック１からの制御信号とクロック信号の反転入力との否定論理和を論理ブロック１側へ出力するＮＯＲゲート５２を用いて構成する態様〔図４（Ａ）参照〕。
［３］各切替回路５，５−１〜５−４を、上述した所定の論理ブロック１からの制御信号およびクロック信号に応じて出力をラッチするラッチ回路５３と、ラッチ回路５３の出力を反転したものとクロック信号との論理積を論理ブロック１側へ出力するＡＮＤゲート５４を用いて構成する態様〔図５（Ａ）参照〕。
【００３３】
［４］各切替回路５，５−１〜５−４を、上述した所定の論理ブロック１の制御信号およびクロック信号に応じて出力をラッチするラッチ回路５３と、ラッチ回路５３の出力とクロック信号の反転入力との否定論理和を論理ブロック１側へ出力するＮＯＲゲート５５を用いて構成する態様〔図６（Ａ）参照〕。
ここで、上述の［１］に示す態様によって各切替回路５，５−１〜５−４を構成した場合には、ＡＮＤゲート５１において、図示しないクロック供給源からのクロック信号〔入力クロック信号，図３（Ｂ）の（ａ）参照〕と、上述の制御信号〔同図の（ｂ）参照〕の反転入力との論理積を演算することにより、制御されたクロック信号〔同図の（ｃ）参照〕を出力することができる。これにより、制御信号が「１」（ハイレベル）となったときに、クロック信号を停止させるアクティブハイ(Active High)制御を行なうことができる〔同図の（ａ）〜（ｃ）における時点ｔ１〜ｔ２参照〕。即ち、制御信号がハイレベルとなっている間（時点ｔ１〜ｔ２）、換言すればクロック信号に対する半周期分の１の時間はクロック信号の供給を停止制御させることができるので、時間ｕ１において立ち上がっている入力クロック信号としてのパルスは出力されない。
【００３４】
また、上述の［２］に示す態様によって各切替回路５，５−１〜５−４を構成した場合には、ＮＯＲゲート５２において、入力クロック信号〔図４（Ｂ）の（ａ）参照〕の反転信号と、上述の制御信号〔同図の（ｂ）参照〕との論理和を演算した結果の反転信号を出力することにより、制御されたクロック信号〔同図の（ｃ）参照〕を出力することができる。これにより、上述の［１］の場合と同様に、制御信号がハイレベルとなっている間（時点ｔ１１〜ｔ１２）はクロック信号の供給を停止制御させることができるので、時間ｕ１１において立ち上がっている入力クロック信号としてのパルスは出力されない。
【００３５】
さらに、上述の［３］に示す態様によって各切替回路５，５−１〜５−４を構成した場合には、ラッチ回路５３において、入力クロック信号を反転入力されるとともに〔図５（Ｂ）の（ａ）および同図の（ｂ）参照〕、制御信号を入力され〔同図の（ｃ）参照〕、停止すべきクロック信号のタイミングで反転入力クロック信号の立ち下がりを停止させる信号を出力する〔同図の（ｄ）の時点ｔ２１〜時点２２参照〕。なお、この制御信号は、停止すべきクロック信号、即ち、図５（Ｂ）の（ａ）参照における時間ｕ２１において立ち上がっているクロックパルスの立ち上がりタイミングの部分を「１」としそれ以外を「０」とする信号である。
【００３６】
ＡＮＤゲート５４では、上述の入力クロック信号とラッチ回路５３からの信号の反転信号〔同図の（ｅ）参照〕との論理積を演算することにより、制御されたクロック信号〔同図の（ｆ）参照〕を出力する。これにより、上述の［１］の場合と同様に、制御信号がハイレベルとなっている間（時点ｔ１１〜ｔ１２）はクロック信号の供給を停止制御させることができるので、時間ｕ１１において立ち上がっている入力クロック信号としてのパルスは出力されない。
【００３７】
また、上述の［４］に示す態様によって各切替回路５，５−１〜５−４を構成した場合には、ラッチ回路５３において、入力クロック信号を反転入力されるとともに〔図６（Ｂ）の（ａ）および同図の（ｂ）参照〕、制御信号を入力され〔同図の（ｃ）参照〕、停止すべきクロック信号のタイミングで反転入力クロック信号の立ち下がりを停止させる信号を出力する〔同図の（ｄ）の時点ｔ３１〜時点３２参照〕。なお、この制御信号は、前述の図５（Ｂ）の場合と同様、停止すべきクロック信号、即ち、図６（Ｂ）の（ａ）参照における時間ｕ３１において立ち上がっているクロックパルスの立ち上がりタイミングの部分を「１」としそれ以外を「０」とする信号である。
【００３８】
ＯＲゲート５５では、上述の入力クロック信号の反転信号〔同図の（ｂ）参照〕とラッチ回路５３からの信号〔同図の（ｄ）参照〕との論理和を演算することにより、制御されたクロック信号〔同図の（ｅ）参照〕を出力する。これにより、上述の［１］の場合と同様に、制御信号がハイレベルとなっている間（時点ｔ１１〜ｔ１２）はクロック信号の供給を停止制御させることができるので、時間ｕ１１において立ち上がっている入力クロック信号としてのパルスは出力されない。
【００３９】
なお、上述の図４（Ａ）〜図６（Ａ）の場合においては、反転されていない制御信号を用いてアクティブハイ(Active High)制御を行なうようになっているが、反転された制御信号を用いることによりアクティブロー(Active Low)制御を行なうこととしてもよく、また、いずれの制御態様を選択する場合においても、クロック停止制御を行なわない場合は常にクロックを供給するよう制御信号の値を、電源ラインＧＮＤまたはＶｃｃからの値（常時「０」または常時「１」）とすることができるので、配線リソースを使用しないようにすることができる。
【００４０】
また、上述のごとく、クロックネット４が、一本のクロック供給ラインについて多段（図１の場合には４段）に分岐されてなり、各切替回路５，５−１〜５−４が、クロックネット４を成すクロック供給ライン上の分岐点直後に介設されている場合には、これらの切替回路５，５−１〜５−４のうちクロックネット４の下流側（例えば図７に示す切替回路５−３の下流側の切替回路５−４）に介設された切替回路を、上述の図３（Ａ）の態様のようにＡＮＤゲート５１を用いて構成したり、または図４（Ａ）の態様のようにＯＲゲート５２を用いて構成することにより、制御対象の切替回路に近接してに配置された論理ブロック１を用いることで配線遅延の発生を防止することができるほか、回路規模の増大を最小限にとどめている。
【００４１】
さらに、クロックネット４の上流側（例えば図７に示す切替回路５−４の上流側の切替回路５−３）に介設された切替回路を、上述の図５（Ａ）の態様のようにラッチ回路５３およびＡＮＤゲート５４、または図６（Ａ）の態様のようにラッチ回路５３およびＯＲゲート５５を用いて構成することで、制御信号のための配線遅延を上述の図３（Ａ）および図４（Ａ）の場合よりも許容できるので、これらの場合よりも制御信号の配線を長くすることができるので、制御信号を与える論理ブロック１として、制御対象の切替回路からは離れた位置に配置された論理ブロック１を用いることができ、回路設計の自由度を増加させることができる。
【００４２】
また、上述の論理ブロック１から切替回路５，５−１〜５−４に与えられる制御信号のための配線２は、クロック制御以外の制御と共用して使われることも多く、クロック制御以外の信号との共用を許すような極性や信号になっていれば配線リソースの効率的使用が可能となる。
上述の構成による、本発明の一実施形態にかかるＦＰＧＡ１０では、切替回路５，５−１〜５−４において、１６個の論理ブロック１（図１参照）のうちで動作状態（イネーブル状態）の論理ブロック１に対しては供給制御信号としての制御信号を出力することにより、図示しないクロック供給源からの入力クロック信号を当該動作状態の論理ブロック１へ供給する。また、非動作状態（ディセーブル状態）の論理ブロック１に対しては停止制御信号としての制御信号を出力することにより、当該非動作状態の論理ブロック１への入力クロック信号を停止させる。
【００４３】
すなわち、所定の論理ブロック１において、１６個の論理ブロックのうちの非動作論理ブロック１へのクロック信号の供給を停止させるための制御信号（停止制御信号）を出力し（制御信号出力ステップ）、この停止制御信号に応じて、上述の［１］〜［４］のいずれかの態様で構成された各切替回路５，５−１〜５−４において、非動作論理ブロック１へのクロック信号の供給を停止させる（停止ステップ）。これによりＦＰＧＡ１０内における論理ブロック１のうちで、非動作の論理ブロック１がある場合には、当該非動作の論理ブロック１に対してダイナミックにクロック供給を停止させて、回路全体としての消費電力ないし発熱量を低減させている。
【００４４】
このように、本発明の一実施形態にかかるＦＰＧＡによれば、切替回路５，５−１〜５−４により、１６個の論理ブロック１のうちの非動作論理ブロック１へのクロック信号の供給を停止させるように各論理ブロック１への上記クロック信号の供給／停止を動的に切替制御することができるので、回路全体としての十分な省電力化ないし発熱量の低減を図ることができる。
【００４５】
また、クロックネット４を成すクロック供給ラインの分岐点直後に複数の切替回路５，５−１〜５−４を固定的に配置しているため、クロック信号スキューの問題を発生させず、クロックネット４に配置されている既存のバッファを含めてクロック供給／停止を制御できる。更には、論理ブロック１から通常の配線２を介して制御信号を与えることにより、クロック供給／停止の制御を論理ブロック１の動作状態に応じて容易かつ自由度をもって行なうことができる。
【００４６】
さらに、本実施形態によれば、切替回路５，５−１〜５−４を、クロックネット４上における上流，下流の位置に応じて、上述の［１］〜［４］の態様で互いに異なる構成を有するものを混在させることにより、クロックネット４上の位置に応じて最適な動作を保障するとともに、切替回路５，５−１〜５−４による回路規模増加をできるだけ抑えつつ、大規模なチップにおいても安定したクロック信号の供給／停止制御が可能となる利点がある。
【００４７】
具体的には、クロック信号の供給を停止した切替回路よりも下流側に切替回路が存在する場合、下流側の切替回路をクロック信号を供給する状態に設定しておくことができるので、クロック信号の供給を停止する上流側の切替回路に対してのみアクティブ状態の制御信号を出力すれば足り、下流側に配置される複数の論理ブロックに対するクロック制御を単一の制御信号によりまとめて制御することができ、当該下流側に配置された切替回路に対しての制御信号をアクティブ状態にする必要がなく制御が容易となり、クロック制御のために使用する回路部分を削減させることができる利点がある。
【００４８】
さらに、切替回路５，５−１〜５−４として、図３（Ａ）に示すようにＡＮＤゲート５１を、または図４（Ａ）に示すようにＮＯＲゲート５２のみを使用することで、必要な回路規模増加を小さくすることが可能となり、チップサイズを小さくすることで、回路としての価格上昇を抑制させることができるほか、チップ実装面積を小さく抑えることができる利点もある。
【００４９】
また、切替回路５，５−１〜５−４として、図５（Ａ）に示すようにラッチ回路５３およびＡＮＤゲート５４を、または図６（Ａ）に示すようにラッチ回路５３およびＮＯＲゲート５５を用いることで、クロック信号の立ち上がり部分のみ制御信号を１にするだけでクロック信号を停止制御することができ、制御信号に対する制約が少なく、設計を容易にすることができ、回路としての性能向上を図ることができる。
【００５０】
これらの切替回路５，５−１〜５−４のうちクロックネット４の下流側に介設された切替回路を、上述の［１］または［２］の態様のように、制御信号とクロック信号との論理積または論理和を論理ブロック１側へ出力するＡＮＤゲート５１またはＮＯＲゲート５２を用いて構成することにより、制御対象の切替回路に近接してに配置された論理ブロック１を用いれば、配線遅延の発生を防止することができる。
【００５１】
さらに、クロックネット４の上流側に介設された切替回路を、上述の［３］または［４］の態様のように、制御信号およびクロック信号に応じて出力をラッチするラッチ回路５３と、ラッチ回路５３の出力とクロック信号との論理積または論理和を論理ブロック１側へ出力するＡＮＤゲート５４またはＮＯＲゲート５５とを用いて構成することで動作を安定化させることができ、制御信号のための配線遅延を上述の［１］および［２］の場合よりも許容できるので、これらの場合よりも制御信号の配線を長くすることができるので、制御信号を与える論理ブロック１として、制御対象の切替回路からは離れた位置に配置された論理ブロック１を用いることができ、回路設計の自由度を増加させることができる。
【００５２】
換言すれば、多数の論理ブロック１を含む大きな範囲でクロック信号の供給／停止制御をまとめて行なう上流側の切替回路としては、ラッチ回路５３とＡＮＤゲート５４またはＮＯＲゲート５５をそなえて構成することにより、離れた位置から制御信号を受けても動作を安定化させることができる一方、小さな範囲でクロック信号の供給制御をする場合は、ＡＮＤゲート５１またはＮＯＲゲート５２を用いることにより、回路規模増加を最小限におさえることが可能である。
〔２〕その他
上述の本実施形態においては、１６個の論理ブロックが縦横に整列配置されたＦＰＧＡについて詳述したが、本発明によれば、これ以外の個数の論理ブロックを配置したＦＰＧＡに適用することも可能である。
【００５３】
また、上述の本実施形態においては、本発明をＦＰＧＡに適用した場合について詳述したが、本発明によればこれに限定されず、例えばＣＰＬＤ等の、ＦＰＧＡ以外のプログラマブル論理回路に適用することも、もちろん可能である。
すなわち、ＦＰＧＡとＣＰＬＤでは構成に違いがあるが、論理ブロックとそれを接続する配線および配線変更手段としての配線変更スイッチから構成され、クロック信号のための配線であるクロック信号ネットが独立して張られていることは共通と言える。従って、本発明はＦＰＧＡにのみ特化したものではなく、ＣＰＬＤ等、その他のプログラマブル論理回路に大しても大きな変更なく広く実施することが可能である。
【００５４】
さらに、上述の本実施形態においては、切替回路として４つの態様で構成した場合について詳述しているが、本発明によればこれに限定されず、その他の公知の回路を用いることにより構成することも可能である。
また、上述した実施形態に関わらず、本発明の趣旨を逸脱しない範囲において種々変形して実施することも可能である。
【００５５】
さらに、上述のごとく開示された実施形態によって、本願発明にかかるプログラマブル論理回路を製造することは可能である。
〔３〕付記
（付記１）  論理演算処理を行なう複数の論理ブロックと、
各論理ブロック間を接続するための配線と、
該配線による各論理ブロック間の配線状態をプログラムにより設定変更しうる配線変更手段と、
各論理ブロックに対して動作タイミングを与えるクロック信号を供給するための、該配線から独立したクロックネットと、
該複数の論理ブロックのうちの非動作論理ブロックへの上記クロック信号の供給を停止させるように各論理ブロックへの上記クロック信号の供給／停止を動的に切替制御するクロック制御手段とをそなえて構成されたことを
特徴とする、プログラマブル論理回路。
【００５６】
（付記２）  該クロック制御手段が、該クロックネット上に設けられ、それぞれ、上記クロック信号の供給／停止の切換を行なう複数の切替部から構成されていることを特徴とする、付記１記載のプログラマブル論理回路。
（付記３）  各切替部が、該クロックネットを成すクロック供給ライン上において、該クロック供給ラインの分岐点直後に介設されていることを特徴とする、付記２記載のプログラマブル論理回路。
【００５７】
（付記４）  上記クロック信号の供給を停止した切替部よりも下流側に切替部が存在する場合、該下流側の切替部が、上記クロック信号を供給する状態に設定されることを特徴とする、付記２または付記３に記載のプログラマブル論理回路。
（付記５）  該クロック制御手段が、該複数の論理ブロックのうちの所定の論理ブロックからの制御信号に応じて、上記クロック信号の供給／停止の切替を行なうように構成されたことを特徴とする、付記１記載のプログラマブル論理回路。
【００５８】
（付記６）  該クロック制御手段が、上記の配線および配線変更手段を介して、上記制御信号を受けるように構成されたことを特徴とする、付記５記載のプログラマブル論理回路。
（付記７）  各切替部が、該複数の論理ブロックのうちの所定の論理ブロックからの制御信号に応じて、上記クロック信号の供給／停止の切替を行なうように構成されたことを特徴とする、付記２〜付記４のいずれか一項に記載のプログラマブル論理回路。
【００５９】
（付記８）  各切替部が、上記の配線および配線変更手段を介して、上記制御信号を受けるように構成されたことを特徴とする、付記７記載のプログラマブル論理回路。
（付記９）  各切替部が、上記の制御信号とクロック信号との論理積を該論理ブロック側へ出力するＡＮＤゲートを用いて構成されたことを特徴とする、付記７または付記８に記載のプログラマブル論理回路。
【００６０】
（付記１０）  各切替部が、上記の制御信号とクロック信号との論理和を該論理ブロック側へ出力するＯＲゲートを用いて構成されたことを特徴とする、付記７または付記８に記載のプログラマブル論理回路。
（付記１１）  各切替部が、上記制御信号およびクロック信号に応じて出力をラッチするラッチ回路と、該ラッチ回路の出力と上記クロック信号との論理積を該論理ブロック側へ出力するＡＮＤゲートを用いて構成されたことを特徴とする、付記７または付記８記載のプログラマブル論理回路。
【００６１】
（付記１２）  各切替部が、上記制御信号およびクロック信号に応じて出力をラッチするラッチ回路と、該ラッチ回路の出力と上記クロック信号との論理和を該論理ブロック側へ出力するＯＲゲートを用いて構成されたことを特徴とする、付記７または付記８記載のプログラマブル論理回路。
（付記１３）  該複数の切替部のうち該クロックネットの下流側に介設された切替部が、上記の制御信号とクロック信号との論理積または論理和を該論理ブロック側へ出力するＡＮＤゲートまたはＯＲゲートを用いて構成されるとともに、
該複数の切替部のうち該クロックネットの上流側に介設された切替部が、上記の制御信号およびクロック信号に応じて出力をラッチするラッチ回路と、該ラッチ回路の出力と上記クロック信号との論理積または論理和を該論理ブロック側へ出力するＡＮＤゲートまたはＯＲゲートとを用いて構成されたことを特徴とする、付記７または付記８記載のプログラマブル論理回路。
【００６２】
（付記１４）  各論理ブロックが、上記クロック信号に同期して動作する素子を含んで構成されたことを特徴とする、付記１〜付記１３のいずれか一項に記載のプログラマブル論理回路。
（付記１５）  論理演算処理を行なう複数の論理ブロックと、各論理ブロック間を接続するための配線と、該配線による各論理ブロック間の配線状態をプログラムにより設定変更しうる配線変更手段と、各論理ブロックに対して動作タイミングを与えるためのクロック信号を供給するための、該配線から独立したクロックネットとを有してなるプログラマブル論理回路のクロック制御方法であって、
該複数の論理ブロックのうちの非動作論理ブロックへの上記クロック信号の供給を停止させるための制御信号を出力する制御信号出力ステップと、
該制御信号出力ステップにて出力された制御信号に応じて、該クロックネットを成すクロック供給ラインにおける分岐点直後において、該非動作論理ブロックへの上記クロック信号の供給を停止させる停止ステップとをそなえて構成されたことを
特徴とする、プログラマブル論理回路のクロック制御方法。
【００６３】
（付記１６）  該プログラマブル論理回路が、ＦＰＧＡ(Field programmable Gate Array)であることを特徴とする、付記１５記載のプログラマブル論理回路のクロック制御方法。
（付記１７）  該プログラマブル論理回路が、ＣＰＬＤ(Complex Programmable Logic Device)であることを特徴とする、付記１５記載のプログラマブル論理回路のクロック制御方法。
【００６４】
【発明の効果】
以上詳述したように、本発明のプログラマブル論理回路によれば、クロック制御手段により、複数の論理ブロックのうちの非動作論理ブロックへのクロック信号の供給を停止させるように各論理ブロックへの上記クロック信号の供給／停止を動的に切替制御することができるので、回路全体としての十分な省電力化ないし発熱量の低減を図ることができる。
【００６５】
また、クロックネットを成すクロック供給ラインの分岐点直後に複数の切替部を介設しているため、クロック信号スキューの問題を発生させず、クロックネット上に既に配置されているバッファを含めてクロック供給／停止を制御できる。更には、論理ブロックから通常の配線を介して制御信号を与えることにより、クロック供給／停止の制御を論理ブロックの動作状態に応じて容易かつ自由度をもって行なうことができる。
【００６６】
さらに、クロック信号の供給を停止した切替回路よりも下流側に切替回路が存在する場合、下流側の切替回路をクロック信号を供給する状態に設定しておくことができるので、クロック信号の供給を停止する上流側の切替回路に対する制御信号のみアクティブ状態とすれば足り、下流側に配置される複数の論理ブロックに対するクロック制御を単一の制御信号によりまとめて制御することができ、当該下流側に配置された切替部に対する制御信号をアクティブ状態にする必要がなくなり、制御を容易とするとともにクロック制御のために使用する回路部分を削減させることができる利点がある。
【図面の簡単な説明】
【図１】本発明の一実施形態にかかるプログラマブル論理回路としてのＦＰＧＡの一部を示す回路図である。
【図２】図１に示すＦＰＧＡの要部を示す回路図である。
【図３】（Ａ）は第１の態様としての切替回路を示す回路図、（Ｂ）は第１の態様としての切替回路の動作を説明するためのタイムチャートである。
【図４】（Ａ）は第２の態様としての切替回路を示す回路図、（Ｂ）は第２の態様としての切替回路の動作を説明するためのタイムチャートである。
【図５】（Ａ）は第３の態様としての切替回路を示す回路図、（Ｂ）は第３の態様としての切替回路の動作を説明するためのタイムチャートである。
【図６】（Ａ）は第４の態様としての切替回路を示す回路図、（Ｂ）は第４の態様としての切替回路の動作を説明するためのタイムチャートである。
【図７】図１に示すＦＰＧＡの要部を示す回路図である。
【図８】従来のプログラマブル論理回路の一例としてのＦＰＧＡの一部を示す回路図である。
【符号の説明】
１  論理ブロック
２  配線
３  配線変更スイッチ（配線変更手段）
４  クロックネット
５，５−１〜５−４  切替回路（切替部）
１０  ＦＰＧＡ
５１，５４  ＡＮＤゲート
５２，５５  ＮＯＲゲート
５３  ラッチ回路
１０１  論理ブロック
１０２  配線
１０３  配線変更スイッチ
１０４  クロックネット
【図１】
0003851810.tif 000002
【図２】
0003851810.tif 000003
【図３】
0003851810.tif 000004
【図４】
0003851810.tif 000005
【図５】
0003851810.tif 000006
【図６】
0003851810.tif 000007
【図７】
0003851810.tif 000008
【図８】
0003851810.tif 000009