(57)【特許請求の範囲】
【請求項１】
複数のクロックの内の１つを選択して複数の論理回路へ供給する処理をプログラミングにより可能なプログラマブルロジックデバイス（ＰＬＤ）のクロック分配回路において、入力された前記複数のクロックの内の１つを前記プログラミングにより選択して出力するセレクタと、前記複数の論理回路が分散接続された複数のクロックラインに前記セレクタから出力されたクロックを分配する複数のバッファ回路と、前記プログラミングに応じて、前記複数の論理回路の内の接続対象の論理回路と前記複数のクロックラインの１つを接続する複数の第１のプログラマブル接続素子と、前記複数のクロックラインのそれぞれに接続可能な複数の調整用負荷と、前記複数のクロックラインへの前記複数の論理回路の接続数に応じて、前記複数の調整用負荷を前記複数のクロックラインの１つに接続する第２の複数のプログラマブル接続素子を備えることを特徴とするプログラマブルロジックデバイスのクロック分配回路。
【請求項２】
前記第２の複数のプログラマブル接続素子は、前記複数の論理回路の後段の前記クロックライン上に配設されることを特徴とする請求項１記載のプログラマブルロジックデバイスのクロック分配回路。
【請求項３】
前記第２の複数のプログラマブル接続素子は、前記複数の論理回路の直近の前記クロックライン上に配設されることを特徴とする請求項１記載のプログラマブルロジックデバイスのクロック分配回路。
【請求項４】
前記複数の調整用負荷は、互いに負荷容量の異なる複数個が１つのクロックライン上に接続されることを特徴とする請求項１記載のプログラマブルロジックデバイスのクロック分配回路。
【請求項５】
前記複数の調整用負荷は、組み合わされる前記複数の論理回路と同一容量を持つ第１の調整用負荷と、前記組み合わされる前記複数の論理回路の２倍の容量を持つ第２の調整用負荷を備えることを特徴とする請求項４記載のプログラマブルロジックデバイスのクロック分配回路。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、プログラマブルロジックデバイス（ｐｒｏｇｒａｍａｂｌｅｌｏｇｉｃ  ｄｅｖｉｃｅ：ＰＬＤ）のクロック分配回路に関し、特に、１チップ（ｃｈｉｐ）に数種類のクロック（ｃｌｏｃｋ）  が入力されるプログラマブルロジックデバイスのクロック分配回路に関する。
【０００２】
【従来の技術】
プログラマブルロジックデバイス（ＰＬＤ）は、複数の論理回路の組み合わせをユーザーがプログラム（外部からの設定または書き換えによる）することにより、必要とする論理機能が得られるロジックＬＳＩである。近年、ゲート（ｇａｔｅ）規模が飛躍的に増大したため、１チップ構成のプログラマブルロジックデバイスによりシステムレベルの回路を実現することが可能になってきた。そのため、１チップに数種類のクロックを入力することが一般的に行われている。
プログラマブルロジックデバイスのクロック分配は、高速化を図るため、専用配線によって行われている。しかし、クロック数の増加に伴ってクロック配線領域が拡大しており、これがデバイスの集積度や性能の向上を妨げる要因になってきている。
【０００３】
図５は従来のプログラマブルロジックデバイスのクロック分配回路の第１例を示す。
図５に示す構成は、複数のクロック（ＣＬＫ−Ａ，ＣＬＫ−Ｂ，ＣＬＫ−Ｃ，ＣＬＫ−Ｄ）のそれぞれのクロックライン２０１ａ，２０１ｂ，２０１ｃ，２０１ｄは、複数のルート（ここでは３系統）に布線され、各ルートの入り口には、クロックバッファ２０２ａ〜２０２ｌが接続されている。クロックバッファ２０２ａ〜２０２ｄのクロックライン２０３ａ〜２０３ｄにはセレクタ（ｓｅｌｅｃｔｏｒ）２０４ａ〜２０４ｃが接続され、クロックライン２０３ｅ〜２０３ｈにはセレクタ２０４ｄ〜２０４ｆが接続され、クロックライン２０３ｉ〜２０３ｌにはセレクタ２０４ｇ〜２０４ｉが接続されている。さらに、セレクタ２０４ａ〜２０４ｉには、論理回路としてのフリップフロップ（ＦＦ）２０５ａ〜２０５ｉが接続されている。ユーザーはセレクタ２０４ａ〜２０４ｉをプログラムにより制御し、セレクタ２０４ａ〜２０４ｉの各４つの入力クロックの中から選ばれた１つをそれぞれのフリップフロップ２０５ａ〜２０５ｉにクロックとして入力する。共通のクロックライン上で共通のクロックにより動作するフリップフロップが１つの論理回路を構成する。
【０００４】
図６は従来のプログラマブルロジックデバイスのクロック分配回路の第２例を示す。この構成は、フリップフロップへのクロック供給を個別のセレクタを用いずに行えるようにしたもので、その詳細は、特開平６−１２０８１１号公報に示されている。ここに示す構成は、プログラム可能な接続素子が、図５のセレクタ２０４ａ〜２０４ｉに置き換えられたものとなっている。すなわち、セレクタ２０４ａに代えて接続素子２０６ａ〜２０６ｄが用いられ、セレクタ２０４ｂに代えて接続素子２０７ａ〜２０７ｄが用いられ、セレクタ２０４ｃに代えて接続素子２０８ａ〜２０８ｄが用いられ、セレクタ２０４ｄに代えて接続素子２０９ａ〜２０９ｄが用いられ、セレクタ２０４ｅに代えて接続素子２１０ａ〜２１０ｄが用いられ、セレクタ２０４ｆに代えて接続素子２１１ａ〜２１１ｄが用いられ、セレクタ２０４ｇに代えて接続素子２１２ａ〜２１２ｄが用いられ、セレクタ２０４ｈに代えて接続素子２１３ａ〜２１３ｄが用いられ、セレクタ２０４ｉに代えて接続素子２１４ａ〜２１４ｄが用いられる。
【０００５】
接続素子２０６ａ〜２１４ｄのそれぞれは、プログラムデータを保持するメモリセルとスイッチング素子として機能するトランジスタを用いて構成される。接続素子の２０６ａ〜２０６ｄ（２０７〜２１４の各ａ〜ｄも同様）の内の１つのみがオン状態になることでＣＬＫ−Ａ〜Ｄの内の選択された１つのみが対応するフリップフロップにクロックとして入力される。
【０００６】
従来よりプログラマブルロジックデバイスにおいては、クロックバッファ等のクロック供給手段に対してクロックを取り込む回路が複数存在し、さらに各回路とクロック供給手段までの配線長が不一致であるときには、クロックの到達時間に差異が生じる現象、所謂クロックスキューを生じることが知られている。クロックスキューは、クロック速度が上がるほど、また、プログラマブルアレイの密度が高くなるほど顕著になり、論理動作を高速化させる場合の障害になる。このため、クロックスキューは可能な限り低減する必要がある。
【０００７】
図５および図６の回路について検討してみると、図５の構成の場合、それぞれのフリップフロップの間近にセレクタが設けられ、このセレクタに全てのクロックラインが接続されているのでクロックスキューは小さくなる。しかし、全てのクロックラインの布線が必要になるため、クロックラインの配線領域が大きくなる。一方、図６の構成の場合、各フリップフロップと４本のクロックライン（２０３ａ〜２０３ｄ等）とは１本のクロック取り込み線で接続されるため、４本のクロックラインと各フリップフロップとの間の配線領域は小さくなるものの、クロックスキューが大きくなる。
【０００８】
従来より、クロックスキューを低減する手段として、幾つかの提案がなされている。例えば、特開平１１−３１７４５７号公報では、クロック供給手段としてのクロックドライバの出力側に基本論理回路に加えてダミー負荷を接続し、クロック信号の合計負荷を等しくするために必要な最小限のダミー負荷の容量を回路配置領域毎に算出し、これを回路配置領域に配置し、さらにクロック配線処理および信号配線処理を行って基本論理回路とダミー負荷の接続を行うようにしている。
【０００９】
【発明が解決しようとする課題】
しかし、従来のプログラマブルロジックデバイス（ＰＬＤ）のクロック分配回路によると、図５および図６の構成によるＰＬＤでは、クロック数分の複数のクロックラインが全てのフリップフロップに行き渡るように布線されているため、クロックラインのための配線領域が大きくなり、素子の実装スペースに制限が生じる。
【００１０】
さらに、特開平１１−３１７４５７号公報の場合、各クロックドライバまでの距離を厳密にしなければならず、また、クロックドライバ以降も厳密な精度が要求されるため、自由度に乏しい。さらに、クロックドライバに接続される回路総数（フリップフロップ＋ダミー負荷）Ｎを一定にし、各クロックドライバに均等にＮ個の回路が接続されるようにしたもので、ＰＬＤおよび複数クロックを対象にしたものではない。このため、複数のクロック信号分配路が均一でない素子において、ユーザーがプログラミングにより接続素子を制御するＰＬＤおよび複数のクロックを用いる構成の回路に適用するのは難しい。
【００１１】
したがって、本発明の目的は、クロックラインのための配線領域を小さくすることのできるプログラマブルロジックデバイスのクロック分配回路を提供することにある。
【００１２】
さらに、本発明の他の目的は、クロックラインの配線領域を小さくできるほか、スキューの増加を抑えることのできるプログラマブルロジックデバイスのクロック分配回路を提供することにある。
【００１５】
本発明は、上記の目的を達成するため、その特徴として、複数のクロックの内の１つを選択して前記複数の論理回路へ供給する処理をプログラミングにより可能なプログラマブルロジックデバイス（ＰＬＤ）のクロック分配回路において、入力された前記複数のクロックの内の１つを前記プログラミングにより選択して出力するセレクタと、前記複数の論理回路が分散接続された複数のクロックラインに前記セレクタから出力されたクロックを分配する複数のバッファ回路と、前記プログラミングに応じて、前記複数の論理回路の内の接続対象の論理回路と前記複数のクロックラインの１つを接続する複数の第１のプログラマブル接続素子と、前記複数のクロックラインのそれぞれに接続可能な複数の調整用負荷と、前記複数のクロックラインへの前記複数の論理回路の接続数に応じて、前記複数の調整用負荷を前記複数のクロックラインの１つに接続する第２の複数のプログラマブル接続素子を備えることを特徴とするプログラマブルロジックデバイスのクロック分配回路を提供する。
【００１６】
この構成によれば、論理回路が要求するクロックは、複数の入力クロックの中からセレクタにより選択され、セレクタから出力されたクロックは、複数のバッファ回路を介して複数のクロックラインへ送出され、さらにプログラミングに応じて動作する第１のプログラマブル接続素子を介して複数の論理回路に供給される。さらに、クロックラインへの論理回路の接続状態に応じて複数の調整用負荷が第２の複数のプログラマブル接続素子を介して接続され、複数のクロックラインの相互のクロックの遅延時間が等しくなる。この結果、クロックスキューの増加が抑えられ、また、クロックの配線領域を小さくすることができる。
【００１７】
【発明の実施の形態】
以下、本発明の実施の形態を図面に基づいて説明する。
図１は本発明によるプログラマブルロジックデバイスのクロック分配回路の第１の実施の形態を示す。
複数のクロック（ＣＬＫ−Ａ，ＣＬＫ−Ｂ，ＣＬＫ−Ｃ，ＣＬＫ−Ｄ）のそれぞれのクロックライン２０１ａ，２０１ｂ，２０１ｃ，２０１ｄには、セレクタ１０，１１が接続されている。セレクタ１０は電源（ＶＤＤ）ライン１４に接続されたプログラマブル接続素子１２ａ，１２ｃと接地（ＧＮＤ）ライン１５に接続されたプログラマブル接続素子１２ｂ，１２ｄのプログラミング結果に基づいてクロックＣＬＫ−Ａ〜Ｄの内の１つを選択する。また、セレクタ１１は電源（ＶＤＤ）ライン１４に接続されたプログラマブル接続素子１３ａ，１３ｃと接地（ＧＮＤ）ライン１５に接続されたプログラマブル接続素子１３ｂ，１３ｄのプログラミング結果に基づいてクロックＣＬＫ−Ａ〜Ｄの内の１つを選択する。セレクタ１０の出力端子に接続されたクロックライン１６には、クロックバッファ１８ａ，１８ｂ，１８ｃが並列接続され、セレクタ１１の出力端子に接続されたクロックライン１７には、クロックバッファ１８ｄ，１８ｅ，１８ｆが並列接続されている。
【００１８】
クロックバッファ１８ａ，１８ｄにはクロックライン１９ａ，１９ｂが接続され、クロックライン１９ａにはプログラマブル接続素子２０ａ，２１ａ，２２ａ，２３ａ，２４ａが接続され、クロックライン１９ｂにはプログラマブル接続素子２０ｂ，２１ｂ，２２ｂ，２３ｂ，２４ｂが接続されている。同様に、クロックバッファ１８ｂ，１８ｅにはクロックライン２５ａ，２５ｂが接続され、クロックライン２５ａにはプログラマブル接続素子２６ａ，２７ａ，２８ａ，２９ａ，３０ａが接続され、クロックライン２５ｂにはプログラマブル接続素子２６ｂ，２７ｂ，２８ｂ，２９ｂ，３０ｂが接続されている。さらに、クロックバッファ１８ｃ，１８ｆにはクロックライン３１ａ，３１ｂが接続され、クロックライン３１ａにはプログラマブル接続素子３２ａ，３３ａ，３４ａ，３５ａ，３６ａが接続され、クロックライン３１ｂにはプログラマブル接続素子３２ｂ，３３ｂ，３４ｂ，３５ｂ，３６ｂが接続されている。
【００１９】
プログラマブル接続素子２０ａ，２０ｂには論理回路としてのフリップフロップ３７が、プログラマブル接続素子２１ａ，２１ｂにはフリップフロップ３８が、プログラマブル接続素子２２ａ，２２ｂにはフリップフロップ３９が接続されている。さらに、プログラマブル接続素子２３ａ，２３ｂには調整用負荷４６が接続され、プログラマブル接続素子２４ａ，２４ｂには調整用負荷４７が接続されている。
同様に、プログラマブル接続素子２６ａ，２６ｂにはフリップフロップ４０が、プログラマブル接続素子２７ａ，２７ｂにはフリップフロップ４１が、プログラマブル接続素子２８ａ，２８ｂにはフリップフロップ４２が接続され、プログラマブル接続素子２９ａ，２９ｂには調整用負荷４８が接続され、プログラマブル接続素子３０ａ，３０ｂには調整用負荷４９が接続されている。
さらに、プログラマブル接続素子３２ａ，３２ｂにはフリップフロップ４３が、プログラマブル接続素子３３ａ，３３ｂにはフリップフロップ４４が、プログラマブル接続素子３４ａ，３４ｂにはフリップフロップ４５が接続され、プログラマブル接続素子３５ａ，３５ｂには調整用負荷５０が接続され、プログラマブル接続素子３６ａ，３６ｂには調整用負荷５１が接続されている。調整用負荷４６〜５１は、フリップフロップ３７〜４５と同一の負荷容量を持ち、クロックライン１９ａ，１９ｂ，２５ａ，２５ｂ，３１ａ，３１ｂの負荷を調整するように機能する。
【００２０】
図２はプログラマブル接続素子の詳細を示す。図１のプログラマブル接続素子１２ａ〜１３ｄ，２０ａ〜２４ｂ，２６ａ〜２９ｂ，３２ａ〜３６ｂは同一構成であり、ここではプログラマブル接続素子１２ａ，１２ｂについてのみ図示および説明する。
プログラマブル接続素子１２ａは、プログラムデータが入力されるメモリセル１０１と、このメモリセル１０１の出力信号によってオン／オフ動作をするトランジスタ１０２を備えて構成される。同様に、プログラマブル接続素子１２ｂは、プログラムデータが入力されるメモリセル１０３と、このメモリセル１０３の出力信号によってオン／オフ動作をするトランジスタ１０４を備えて構成される。トランジスタ１０２と１０４にはＰ型とＮ型のＭＯＳＦＥＴが用いられ、トランジスタ１０２のソースとトランジスタ１０４のドレインはセレクタ１０に接続され、トランジスタ１０２のドレインは電源（ＶＤＤ）ライン１４に接続され、トランジスタ１０４のソースは接地（ＧＮＤ）ライン１５に接続されている。
【００２１】
プログラムデータは、プログラマブルロジックデバイスの初期化時あるいは再構成時に外部から読み込まれ、メモリセル１０１，１０３に蓄積される。メモリセル１０１，１０３は１ビットの情報を蓄積するメモリであり、その情報に従ってトランジスタ１０２，１０４のＯＮ／ＯＦＦ動作が決定される。トランジスタ１０２がＯＮのときにはセレクタ１０と電源（ＶＤＤ）ライン１４が接続され、ＯＦＦのときには未接続となる。同様に、トランジスタ１０４がＯＮのときにはセレクタ１０と接地（ＧＮＤ）ライン１５が接続され、ＯＦＦのときには未接続となる。このようにして構成されている２組のプログラム接続素子１２ａ〜１２ｄに与えるプログラムデータを調整することにより、セレクタ１０のラインと電源（ＶＤＤ）ライン１４または接地（ＧＮＤ）ライン１５のいずれかに接続し、あるいはライン１４，１５の両方に末接続にすることができる。
【００２２】
次に、図１の構成によるクロック分配回路の動作について説明する。
セレクタ１０，１１の制御のほか、フリップフロップ３７〜４５および調整用負荷４６〜５１とクロックライン１９ａ，１９ｂ，２５ａ，２５ｂ，３１ａ，３１ｂとの接続は、図２で説明したように、ユーザーがプログラムした内容によってプログラマブル接続素子２０ａ〜３６ｂを制御することにより行われる。
【００２３】
まず、プログラムされた状態の動作について説明する。セレクタ１０，１１から出力される２つのクロックは、プログラマブル接続素子１２ａ〜１２ｄおよび１３ａ〜１３ｄによって選択される。セレクタ１０，１１からクロックライン１６，１７に出力されたクロックは、クロックバッファ１８ａ〜１８ｆを介してクロックライン１９ａと１９ｂ，２５ａと２５ｂ，３１ａと３１ｂのそれぞれに分配される。フリップフロップ３７〜４５は、プログラマブル接続素子２０ａ〜２２ｂ，２６ａ〜２８ｂ，３２ａ〜３４ｂによって各々２つのクロックライン（１９ａと１９ｂ、２５ａと２５ｂ、または３１ａと３１ｂ）と接続される。どちらのクロックラインに接続されるかは、ユーザーから与えられたプログラムデータによって決定される。プログラムによっては、セレクタ１０，１１のどちらのクロックも入力されないフリップフロップ（未使用のフリップフロップ）があり、このフリップフロップはクロックラインに接続されない。
【００２４】
調整用負荷４６〜５１は、プログラマブル接続素子２３ａ〜２４ｂ，２９ａ〜３０ｂ，３５ａ〜３６ｂによって対応する２つのクロックラインと接続可能であり、プログラムデータによって一方のクロックラインに接続され、あるいは両方のクロックラインに接続されないようになる。調整用負荷４６〜５１の内の所望数がクロックラインに接続されることにより、各クロックラインの負荷は均一化される。
【００２５】
次に、セレクタ１０及び１１の動作について説明する。セレクタを動作させる信号は、プログラマブル接続素子１２ａ〜１３ｄによって電源（ＶＤＤ）ライン１４または接地（ＧＮＤ）ライン１５に接続される。プログラムデータによってセレクタ１０及び１１の制御端子が電源（ＶＤＤ）ライン１４または接地（ＧＮＤ）ライン１５に接続されることにより、セレクタ１０及び１１はクロックＣＬＫ−Ａ〜Ｄの内の１つを選択する。
【００２６】
ここで、クロックライン１９ａ〜３１ｂの負荷を均一化するためのプログラムデータのデータ調整方法について説明する。一例として、ユーザーが所望した回路は、次のように接続されているものとする。
【表１】
0003555077.tif 000002
（フリップフロップ４５は未接続）
【００２７】
この場合、調整用負荷４６〜５１は、次のようにクロックラインに接続することにより、各クロックライン相互の負荷を等しくなり、クロックスキュー低減することができる。
【表２】
0003555077.tif 000003
（調整用負荷４７と４９はクロックラインに未接続）
【００２８】
負荷の調整において特に重要なことは、同一クロックが供給されるクロックライン１９ａ，２５ａ，３１ａの負荷を均一化することである。クロックライン毎に負荷が異なると、それぞれのクロック遅延時間が異なってくるため、クロックスキューが増加する。同様の理由により、他のクロックライン１９ｂ，２５ｂ，３１ｂにおいても、負荷を均一化する必要がある。
【００２９】
負荷の調整は、開発ツールを用いて行われる。一般に、ＰＬＤでユーザーが所望の回路を構築する場合、デバイスの開発ツールでデバイス内の各フリップフロップや論理ブロック等にユーザー回路を割り当てて配置し、プログラムデータを作成する。ユーザーが回路を割り当てた段階で、各クロックラインの負荷が決まる。そこで、このときに各クロックラインの負荷状況に応じて調整用負荷の接続を決定する。
【００３０】
チップ全体がかなりの種類のクロックを必要とする場合でも、或る部分領域に限定すれば、ほとんどの場合、必要なクロックは１〜２種類である。したがって、図１に示したように、或る部分領域に供給するクロックをセレクタ１０，１１で選択して供給することによりクロックラインの数を減らせるので、クロック配線領域を縮小することができる。
そして、調整用負荷の接続数をクロックラインに接続されるフリップフロップの数に応じて調整することにより、各クロックラインの負荷バランスが取られるので、ユーザーが回路をプログラムする場合、各クロックラインに接続されるフリップフロップの数が異なる状態になっても、クロックスキューの増加が抑えられる。このために用いられるスキュー調整用の負荷とプログラマブル接続素子は、従来の構成において用いられるセレクタに比べて面積が小さいため、クロック配線領域を縮小できる。クロック配線領域が縮小されることにより、論理ブロック間の平均的な配線長が短くなり、遅延時間が短縮される。
【００３１】
上記実施の形態においては、ＰＬＤの論理回路の組み合わせに使用するクロックの種類を２つ（セレクタ１０，１１の出力）としているが、クロック数は２つに限定されるものではない。例えば、論理回路の組み合わせに使用するクロック数を１つにすれば、配線領域縮小の効果はより大きくなるし、また、部分領域で使用するクロック数を３つにすれば、ユーザー回路の割り付けの自由度が増すことは明らかであろう。
【００３２】
図３は本発明の第２の実施の形態を示す。図３においては、セレクタ１０，１１用のプログラマブル接続素子１２ａ〜１３ｄと、電源（ＶＤＤ）ライン１４および接地（ＧＮＤ）ライン１５の図示を省略している。
本実施の形態は、図１の構成において、調整用負荷とフリップフロップを１対１に対応させて１つの基本セルを構成したところに特徴がある。フリップフロップ３７〜４５を接続したクロックラインと反対側のクロックラインのそれぞれには、フリップフロップと同じ負荷量を持つ調整用負荷６１〜６９が接続され、これにより各クロックラインの負荷は均一化される。調整用負荷６１，６２，６３はプログラマブル接続素子７１ａ，７１ｂ，７２ａ，７２ｂ，７３ａ，７３ｂを介してクロックライン１９ａ，１９ｂに接続され、調整用負荷６４，６５，６６はプログラマブル接続素子７４ａ，７４ｂ，７５ａ，７５ｂ，７６ａ，７６ｂを介してクロックライン２５ａ，２５ｂに接続され、調整用負荷６７，６８，６９はプログラマブル接続素子７７ａ，７７ｂ，７８ａ，７８ｂ，７９ａ，７９ｂを介してクロックライン３１ａ，３１ｂに接続されている。
【００３３】
図３の負荷調整方法以外の動作は、図１に示した実施の形態と同様であるので、説明を省略する。例えば、フリップフロップ３７がクロックライン１９ａに接続されるとき、調整用負荷６１をクロックライン１９ｂに接続する。また、フリップフロップ３７がクロックライン１９ｂに接続されるときには、調整用負荷６１をクロックライン１９ａに接続する。このようにすることで、クロックライン１６と１７に接続される負荷を均一化することができる。
第２の実施の形態によれば、フリップフロップと調整用負荷の物理的位置が近いため、クロックバッファ１８ａ〜１８ｆから各負荷までの距離差によって生じる遅延時間の差を無視できない場合でも、負荷を均一化しやすいという利点がある。
【００３４】
図４は本発明の第３の実施の形態を示す。図４においては、セレクタ１０，１１用のプログラマブル接続素子１２ａ〜１３ｄと、電源（ＶＤＤ）ライン１４および接地（ＧＮＤ）ライン１５の図示を省略している。
本実施の形態は、図１の構成において、クロックライン１９ａと１９ｂ、２５ａと２５ｂ、３１ａと３１ｂのライン上に接続される調整用負荷の容量を異ならせたところに特徴がある。すなわち、フリップフロップと同じ負荷量を持つ調整用負荷８１，８２，８３を図１の調整用負荷４６，４８，５０に代えて設置し、フリップフロップの２倍の負荷量を持つ調整用負荷９１，９２，９３を図１の調整用負荷４７，４９，５１に代えて設置している。
【００３５】
負荷調整方法以外の動作は図１の実施の形態で説明した通りであるので、重複する説明は省略する。ここでは、クロックライン１９ａ〜３１ｂの負荷を均一化するためのプログラムデータのデータ調整方法について説明する。一例として、ユーザーによる回路構成が〔表３〕の接続であるとする。
【表３】
0003555077.tif 000004
【００３６】
この場合、〔表４〕のように調整用負荷をクロックラインに接続する。
【表４】
0003555077.tif 000005
【００３７】
第３の実施の形態においては、負荷量の異なる調整用負荷を用意することにより、調整用負荷の占める領域を縮小することができる。さらに、クロックラインに接続されるプログラマブル接続素子の数を減らすことができるので、実装面積を縮小することができる。特に、１つのクロックラインに接続可能なフリップフロップの数が多い場合には、これらの面積縮小の効果は大きくなる。
【００３８】
前記各実施の形態においては、フリップフロップがクロックライン毎に最大３個が割り当てられ、接続可能な負荷容量も２個又は２種類としたが、この数に限定されるものでないことは言うまでもない。さらに、クロックも４種としたが、任意の数にすることができる。
【００３９】
【発明の効果】
以上説明した通り、本発明のプログラマブルロジックデバイスのクロック分配回路によれば、複数の論理回路へ複数のクロックの内の１つを選択して供給するプログラマブルロジックデバイス（ＰＬＤ）のクロック分配回路において、前記複数のクロックを発生するクロック発生源と、プログラムに基づいて前記複数のクロックの内の１つを選択するセレクト信号を発生するセレクト信号発生手段と、前記セレクト信号に基づいて前記複数のクロックの内の１つを選択して前記複数の論理回路へ供給するセレクタを備えたことを特徴とするプログラマブルロジックデバイスのクロック分配回路を提供する。
【００４０】
この構成によれば、複数のクロックの内の１つを選択するためのセレクト信号がセレクト信号発生手段により作られ、このセレクト信号により複数のクロックの内の１つがセレクタにより選択される。したがって、複数の論理回路にクロックを供給するためのクロックラインの数が低減されるので、クロックラインの配線領域を小さくすることができる。
【００４１】
以上説明した通り、本発明のプログラマブルロジックデバイスのクロック分配回路によれば、入力された複数のクロックの内の１つをセレクタにより選択してクロックラインへ出力し、このクロックラインに第１のプログラマブル接続素子を介して複数の論理回路を接続し、更に前記クロックラインに第２のプログラマブル接続素子を介して調整用負荷を接続できる構成にしたため、論理回路に導かれるクロックラインの数の低減によりクロックの配線領域を小さくできるようになり、調整用負荷を第２のプログラマブル接続素子により選択的に接続することにより、論理回路の接続数にかかわらず複数のクロックラインの相互のクロックの遅延時間が等しくなり、クロックライン間の負荷アンバランスが抑えられる結果、クロックスキューの増加が抑えられる。
【図面の簡単な説明】
【図１】本発明によるプログラマブルロジックデバイスのクロック分配回路の第１の実施の形態を示す回路図である。
【図２】図１のプログラマブル接続素子の詳細構成を示す回路図である。
【図３】本発明の第２の実施の形態を示す回路図である。
【図４】本発明の第３の実施の形態を示す回路図である。
【図５】従来のプログラマブルロジックデバイスのクロック分配回路の第１例を示す回路図である。
【図６】従来のプログラマブルロジックデバイスのクロック分配回路の第２例を示す回路図である。
【符号の説明】
１０，１１  セレクタ
１２ａ，１２ｃ，１２ｂ，１２ｄ  プログラマブル接続素子
１３ａ，１３ｂ，１３ｃ，１３ｄ，２０ａ，２０ｂ  プログラマブル接続素子
１４  電源（ＶＤＤ）ライン
１５  接地（ＧＮＤ）ライン
１６，１７，１９ａ，１９ｂ，２５ａ，２５ｂ  クロックライン
１８ａ〜１８ｆ  クロックバッファ
２１ａ，２１ｂ，２２ａ，２２ｂ  プログラマブル接続素子
２３ａ，２３ｂ，２４ａ，２４ｂ  プログラマブル接続素子
２６ａ，２６ｂ，２７ａ，２７ｂ  プログラマブル接続素子
２８ａ，２８ｂ，２９ａ，２９ｂ  プログラマブル接続素子
３０ａ，３０ｂ，３２ａ，３２ｂ  プログラマブル接続素子
３１ａ，３１ｂ，２０１ａ〜２０１ｄ  クロックライン
３３ａ，３３ｂ，３４ａ，３４ｂ  プログラマブル接続素子
３５ａ，３５ｂ，３６ａ，３６ｂ  プログラマブル接続素子
３７〜４５  フリップフロップ
４６〜５１，６１〜６９  調整用負荷
７１ａ，７１ｂ，７２ａ，７２ｂ  プログラマブル接続素子
７３ａ，７３ｂ，７４ａ，７４ｂ  プログラマブル接続素子
７５ａ，７５ｂ，７６ａ，７６ｂ  プログラマブル接続素子
７７ａ，７７ｂ，７８ａ，７８ｂ  プログラマブル接続素子
７９ａ，７９ｂ  プログラマブル接続素子
８１，８２，８３，９１，９２，９３  調整用負荷
【図１】
0003555077.tif 000006
【図２】
0003555077.tif 000007
【図３】
0003555077.tif 000008
【図４】
0003555077.tif 000009
【図５】
0003555077.tif 000010
【図６】
0003555077.tif 000011