(57)【特許請求の範囲】
【請求項１】
入力する基準クロック信号の立ち上がりまたは立ち下がりのレベル変化に同期したパルス幅が２倍のパルス信号と、該パルス信号からパルスを間引いた少なくとも１つのパルス信号とを生成するパルス生成回路と、
入力する選択信号に応じて、上記パルス生成回路で生成されたパルス信号を少なくとも１つ含む複数の信号から一の信号を選択して出力する選択回路と、
上記基準クロック信号と上記選択回路の出力信号とを入力し、該入力した基準クロック信号の上記レベル変化の時点における上記選択回路の出力信号のレベルに応じて、上記入力した基準クロック信号の当該パルス変化の時点におけるパルスを間引いた第１のクロック信号を出力する第１のゲート回路と、
上記第１のクロック信号に同期して所定の処理を実行する第１の処理回路と、
上記基準クロック信号と上記パルス生成回路で生成されたパルス信号とを入力し、該入力した基準クロック信号の上記レベル変化の時点における上記入力したパルス信号のレベルに応じて、上記入力した基準クロック信号の当該パルス変化の時点におけるパルスを間引いた少なくとも１つの第２のクロック信号を生成する第２のゲート回路と、
上記第２のクロック信号に同期して所定の処理を実行する処理部と、当該処理した結果を上記第１のクロック信号に同期して格納するレジスタとを有し、上記第１のクロック信号に同期してデータを、該レジスタと上記第１の処理回路との間で交換する少なくとも１つの第２の処理回路と
を有するデータ処理システム。
【請求項２】
上記パルス生成回路は、上記基準クロック信号のレベル変化を計数し、当該計数による各ビットの桁上げまたは桁下げの発生に応じた上記パルス信号をビットごとに生成する、
請求項１に記載のデータ処理システム。
【請求項３】
上記第１および第２のクロック信号のハイレベルのパルス幅は、上記基準クロック信号のハイレベルのパルス幅と同じである
請求項１に記載のデータ処理システム。
【請求項４】
上記パルス生成回路は、
初段が、入力端子に固定電位が供給され、クロック端子に上記基準クロック信号が供給される第１のラッチ回路のみで構成され、
次段から単位回路が縦続接続されて構成され、
上記単位回路は、
入力端子が上記第１のラッチ回路または前段の単位回路の出力端子に接続され、クロック端子に上記基準クロック信号が供給される第２のラッチ回路と、
該第２のラッチ回路の出力端子に一方の入力端子が接続され、他方の入力端子が上記第１のラッチ回路または上記前段の単位回路の出力端子に接続され、出力端子が当該単位回路の出力端子を構成するアンド回路を有する
請求項２に記載のデータ処理システム。
【請求項５】
上記選択回路は、選択信号を入力し、該選択信号に応じて、一定のレベルを有する信号を含む上記複数の信号から一の信号を選択して出力する、
請求項１に記載のデータ処理システム。
【請求項６】
上記第１のゲート回路は、
上記基準クロック信号の上記レベル変化に同期して、上記選択回路の出力信号レベルを保持するラッチ回路と、
当該ラッチ回路に保持されたレベルと、上記基準クロック信号のレベルとの論理積に応じたレベルを有する上記第１のクロック信号を出力するアンド回路を含む、
請求項１または４に記載のデータ処理システム。
【請求項７】
上記第２のゲート回路は、
上記基準クロック信号の上記レベル変化に同期して、上記生成されたパルス信号のレベルを保持するラッチ回路と、
当該ラッチ回路に保持されたレベルと、上記基準クロック信号のレベルとの論理積に応じたレベルを有する上記第２のクロック信号を出力するアンド回路を含む、
請求項６に記載のデータ処理システム。
【請求項８】
上記第１の処理回路または上記第２の処理回路は、処理に応じて上記選択信号を生成し、上記選択回路に出力する、
請求項５に記載のデータ処理システム。
【請求項９】
上記第１の処理回路は、マイクロコンピュータを有し、該マイクロコンピュータの出力端子がバスを介して上記第２の処理回路のレジスタに接続され、上記第１のクロック信号に同期してデータを、該レジスタと上記マイクロコンピュータとの間で交換する
請求項１に記載のデータ処理システム。
【請求項１０】
上記第１のクロック信号は、上記第２のクロック信号より周波数が高い
請求項１に記載のデータ処理システム。
【請求項１１】
上記第２の処理回路が少なくとも２個で構成され、該複数の第２の処理回路の上記レジスタを除く信号処理部は、上記第２のゲート回路から上記第２のクロック信号と周期が異なり、かつ、お互い周期の異なるクロック信号が供給されてそれぞれ所定の処理を実行する
請求項１に記載のデータ処理システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、周波数の制御が可能なクロック信号を生成するクロック生成回路およびこれを有したデータ処理システムに係り、例えば、ＣＰＵおよびその周辺回路に供給されるクロック信号を生成するとともに、当該ＣＰＵからの制御信号に応じてクロック信号の周波数を制御できるクロック生成回路、およびこれを有したコンピュータ・システムに関するものである。
【０００２】
【従来の技術】
例えば携帯電話や情報携帯端末装置など、限られた容量のバッテリーによってシステムが駆動される装置においては、一度の充電でなるべく長時間システムを動作させることや、バッテリーを小型化して装置の重量や体積をなるべく小さくすることが要請されている。このため、これらの装置においては、システムの低消費電力化を図ることがとりわけ重要な課題となっている。
また、エネルギーをめぐる環境問題の要請からも、システムの低消費電力化は電子機器一般の課題となっている。
【０００３】
システムの低消費電力化を図る手法として、マイクロプロセッサとその周辺回路に供給されるクロック信号の周波数を処理モードに応じて切り替える手法が、一般的に用いられている。クロック信号の周波数が高くなるとシステムの単位時間あたりの処理能力は一般的に高くなるが、逆に消費電力も大きくなるので、処理が正常に実行される限度内でできるだけ低くなるようにクロック信号の周波数を適切に設定することで、システムの消費電力を低減させることができる。
【０００４】
【発明が解決しようとする課題】
クロック信号の周波数を制御する方法として、例えば基準となるクロック信号を分周器を用いて分周して複数のクロック信号を生成し、これらのクロック信号をセレクタを用いて切り換えて出力する方法がある。しかしながら、分周されたクロック信号を単純にセレクタで切り換えると、セレクタの出力するクロック信号にグリッジが発生する場合があるため、ＣＰＵの動作中にクロック信号をセレクタで切り換えるためには、クロック信号にグリッジが発生しないように切り換えのタイミングを制御しなくてはならず、そのための回路やシーケンスが複雑になる問題がある。
【０００５】
そこで、例えば文献”特開平８−５４９５５号公報”においては、基準となるクロック信号からパルスを間欠的に間引いた複数のクロック信号を生成し、これらのクロック信号をセレクタを用いて切り換えて出力する方法が示されている。
【０００６】
図８は、この従来のクロック生成回路の構成例を示す図である。図８に示すクロック生成回路は、３ビットのカウンタ１、アンド回路２〜アンド回路４、セレクタ５、およびセレクタ６を有する。
【０００７】
カウンタ１は、３ビット出力のバイナリ・カウンタであり、基準クロック信号ＳＣＬＫの立ち下がりに同期して計数値が１ずつ増大する。計数値が最大値７に達した後は、次の基準クロック信号ＳＣＬＫの立ち下がりで計数値は最小値０に戻り、再び計数が反復される。
カウンタ１の最下位ビット信号ｂ０はアンド回路２〜アンド回路４にそれぞれ出力され、第２ビット信号ｂ１はアンド回路３およびアンド回路４にそれぞれ出力され、最上位ビットｂ２はアンド回路４に出力されている。
【０００８】
アンド回路２は、最下位ビット信号ｂ０の反転値および基準クロック信号ＳＣＬＫを入力し、これらの論理積をセレクタ５およびセレクタ６に出力している。
アンド回路３は、最下位ビット信号ｂ０の反転値、第２ビット信号ｂ１の反転値、および基準クロック信号ＳＣＬＫを入力し、これらの論理積をセレクタ５およびセレクタ６に出力している。
アンド回路４は、最下位ビット信号ｂ０の反転値、第２ビット信号ｂ１の反転値、最上位ビットｂ２の反転値、および基準クロック信号ＳＣＬＫを入力し、これらの論理積をセレクタ５およびセレクタ６に出力している。
【０００９】
セレクタ５は、アンド回路２〜アンド回路４の出力信号を受けて、これらの出力信号から選択信号ＳＥＬ１に応じて１の出力信号を選択し、これをクロック信号ＣＬＫ１として出力する。
セレクタ６は、アンド回路２〜アンド回路４の出力信号を受けて、これらの出力信号から選択信号ＳＥＬ２に応じて１の出力信号を選択し、これをクロック信号ＣＬＫ２として出力する。
【００１０】
アンド回路２は基準クロック信号ＳＣＬＫに対するゲート回路を構成しており、最下位ビット信号ｂ０が論理値”０”の場合にゲートが導通し、論理値”１”の場合にゲートが非導通となる。したがってアンド回路２から出力されるクロック信号は、基準クロック信号ＳＣＬＫのパルスの２分の１が間引かれたクロック信号となり、周波数が基準クロック信号ＳＣＬＫの２分の１になる。またパルス幅のデューティ比は、基準クロック信号ＳＣＬＫの半分になる。
【００１１】
アンド回路３による基準クロック信号ＳＣＬＫのゲート回路は、最下位ビット信号ｂ０および第２ビット信号ｂ１がともに論理値”０”のとき導通し、その他の場合に非導通となる。したがってアンド回路３から出力されるクロック信号は、基準クロック信号ＳＣＬＫのパルスの４分の３が間引かれたクロック信号となり、周波数が基準クロック信号ＳＣＬＫの４分の１になる。またパルス幅のデューティ比は、アンド回路２の出力クロック信号の更に半分になる。
【００１２】
アンド回路４による基準クロック信号ＳＣＬＫのゲート回路は、最下位ビット信号ｂ０、第２ビット信号ｂ１、および最上位ビットｂ２が何れも論理値”０”のとき導通し、その他の場合に非導通となる。したがってアンド回路４から出力されるクロック信号は、基準クロック信号ＳＣＬＫのパルスの８分の７が間引かれたクロック信号となり、周波数が基準クロック信号ＳＣＬＫの８分の１になる。またパルス幅のデューティ比は、アンド回路３の出力クロック信号の更に半分になる。
【００１３】
上述したアンド回路２〜アンド回路４のうちの何れか１つの出力クロック信号が、セレクタ５およびセレクタ６において選択されて、それぞれクロック信号ＣＬＫ１およびクロック信号ＣＬＫ２として出力される。すなわち、クロック信号ＣＬＫ１およびクロック信号ＣＬＫ２の周波数は、それぞれ選択信号ＳＥＬ１および選択信号ＳＥＬ２に応じて、基準クロック信号ＳＣＬＫの２分の１、４分の１または８分の１となるように可変できる。
【００１４】
図８に示したクロック生成回路では、基準クロック信号ＳＣＬＫの立ち下がりに同期してカウンタ１の出力が変化するので、この立ち下がり直後にカウンタ１の出力にグリッジが発生しても、アンド回路２〜アンド回路４の出力はローレベルとなり、この出力におけるグリッジの発生が抑えられる。また同様に、選択信号ＳＥＬ１および選択信号ＳＥＬ２を基準クロック信号ＳＣＬＫの立ち下がりに同期して変化させれば、切り換えによるクロック信号ＣＬＫ１およびクロック信号ＣＬＫ２のグリッジの発生が抑えられる。
【００１５】
しかしながら、図８に示すクロック生成回路では、クロック信号ＣＬＫ１で動作する回路ブロックとクロック信号ＣＬＫ２で動作する回路ブロックとの間でデータを交換する場合に、これらのクロック信号間に発生するクロック・スキューが問題となる。すなわち、基準クロック信号ＳＣＬＫが幾段ものゲート回路を通過することによりクロック信号ＣＬＫ１およびクロック信号ＣＬＫ２が生成されているため、基準クロック信号ＳＣＬＫが通過するゲート回路の遅延をクロック・スキューが許容範囲内となるように合わせ込む必要がある。
【００１６】
例えば、これらのゲート回路の段数を一致させることで遅延を合わせ込む方法も考えられるが、この場合、一定周波数のクロック信号で動作し、選択信号による切り換えが不要な回路（例えばＣＰＵの周辺回路）のクロック信号に対しても遅延時間を合わせ込むためのゲート回路を挿入しなくてはならなくなるので、冗長な回路が多くなる問題がある。また、生成するクロック信号の数が増えるほどセレクタにおけるゲート回路の段数が増えるので、こうした冗長な回路が増大してしまう問題がある。
【００１７】
また、クロック・スキューが同期回路での許容範囲に入らない場合でも、非同期回路によって回路ブロック間のインターフェース部を設計し、データの受け渡しのタイミングをあわせ込むことも可能である。しかしながら、タイミング解析を行う場合や、スキャンテスト用の回路を自動合成する場合、タイミングドリブンなレイアウトを行う場合などにおいて、非同期回路は同期回路に比べて解析が必要なステップの数が増大する傾向がある。また、同期回路において必要ないテスト用の回路を追加しなくてならない場合もある。このため、設計する回路に非同期な回路が含まれていると、設計期間の長期化や設計品質の低下を招く問題がある。
【００１８】
本発明はかかる事情に鑑みてなされたものであり、その目的は、生成するクロック信号の周波数が制御可能でありながら、簡易な回路によってグリッジの発生を抑止でき、冗長な回路を挿入することなく複数の同期したクロック信号を生成できるクロック生成回路、およびこれを有したデータ処理システムを提供することにある。
【００２１】
【課題を解決するための手段】
上記目的を達成するため、本発明のデータ処理システムは、入力する基準クロック信号の立ち上がりまたは立ち下がりのレベル変化に同期したパルス幅が２倍のパルス信号と、該パルス信号からパルスを間引いた少なくとも１つのパルス信号とを生成するパルス生成回路と、入力する選択信号に応じて、上記パルス生成回路で生成されたパルス信号を少なくとも１つ含む複数の信号から一の信号を選択して出力する選択回路と、上記基準クロック信号と上記選択回路の出力信号とを入力し、該入力した基準クロック信号の上記レベル変化の時点における上記選択回路の出力信号のレベルに応じて、上記入力した基準クロック信号の当該パルス変化の時点におけるパルスを間引いた第１のクロック信号を出力する第１のゲート回路と、上記第１のクロック信号に同期して所定の処理を実行する第１の処理回路と、上記基準クロック信号と上記パルス生成回路で生成されたパルス信号とを入力し、該入力した基準クロック信号の上記レベル変化の時点における上記入力したパルス信号のレベルに応じて、上記入力した基準クロック信号の当該パルス変化の時点におけるパルスを間引いた少なくとも１つの第２のクロック信号を生成する第２のゲート回路と、上記第２のクロック信号に同期して所定の処理を実行する処理部と、当該処理した結果を上記第１のクロック信号に同期して格納するレジスタとを有し、上記第１のクロック信号に同期してデータを、該レジスタと上記第１の処理回路との間で交換する少なくとも１つの第２の処理回路とを有する。
【００２２】
本発明のデータ処理システムによれば、上記パルス生成回路において、例えば、初段が、入力端子に固定電位が供給され、クロック端子に上記基準クロック信号が供給される第１のラッチ回路のみで構成され、次段から単位回路が縦続接続されて構成され、上記単位回路は、入力端子が上記第１のラッチ回路または前段の単位回路の出力端子に接続され、クロック端子に上記基準クロック信号が供給される第２のラッチ回路と、該第２のラッチ回路の出力端子に一方の入力端子が接続され、他方の入力端子が上記第１のラッチ回路または上記前段の単位回路の出力端子に接続され、出力端子が当該単位回路の出力端子を構成するアンド回路を有し、上記単位回路が縦続接続されて上記アンド回路の出力端子から上記パルス信号を出力するカウンタ回路を構成し、入力する基準クロック信号の立ち上がりまたは立ち下がりのレベル変化に同期したパルス幅が２倍のパルス信号と、該パルス信号からパルスを間引いた少なくとも１つのパルス信号とが生成される。
この生成されたパルス信号を少なくとも１つ含む上記複数の信号から、入力する選択信号に応じて一の信号が上記選択回路において選択される。
上記第１のゲート回路において、上記基準クロック信号と上記選択回路の出力信号とを入力し、該入力した基準クロック信号の上記レベル変化の時点における上記選択回路の出力信号のレベルに応じて、上記入力した基準クロック信号の当該パルス変化の時点におけるパルスを間引いた第１のクロック信号が生成される。
上記第１の処理回路においては、この生成された第１のクロック信号に同期して所定の処理が実行される。
また、上記第２のゲート回路において、上記基準クロック信号と上記パルス生成回路で生成されたパルス信号とを入力し、該入力した基準クロック信号の上記レベル変化の時点における上記入力したパルス信号のレベルに応じて、上記入力した基準クロック信号の当該パルス変化の時点におけるパルスを間引いた少なくとも１つの第２のクロック信号が生成される。
上記第２の処理回路においては、この生成された第２のクロック信号に同期して所定の処理が実行され、当該処理に応じて、上記第１の処理回路との間でデータが交換される。また、第１の処理回路は、マイクロコンピュータを有し、該マイクロコンピュータの出力端子がバスを介して上記第２の処理回路のレジスタに接続され、上記第１のクロック信号に同期してデータを、該レジスタと上記マイクロコンピュータとの間で交換する。また、上記第２の処理回路が少なくとも２個で構成され、該複数の第２の処理回路の上記レジスタを除く信号処理部は、上記第２のゲート回路から上記第２のクロック信号と周期が異なり、かつ、お互い周期の異なるクロック信号が供給されてそれぞれ所定の処理を実行する。
【００２３】
【発明の実施の形態】
以下、本発明の実施形態について、図面を参照しながら説明する。
図１は、本発明に係るクロック生成回路１０の実施形態を説明するための概略的な構成図である。図１に示すクロック生成回路１０は、発振回路１１、ＰＬＬ回路１２、ｎビットのカウンタ１３（ｎは１以上の整数を示す）、セレクタ１４、クロック・ゲート回路１５およびクロックゲート回路１６を有する。
なお、カウンタ１３は、本発明のパルス生成回路の一実施形態である。
セレクタ１４は、本発明の選択回路の一実施形態である。
クロック・ゲート回路１５は、本発明の第１のゲート回路の一実施形態である。
クロック・ゲート回路１６は、本発明の第２のゲート回路の一実施形態である。
【００２４】
まず、図１に示すクロック生成回路１０の各構成要素について説明する。
発振回路１１は、生成するクロック信号の元となる発振信号を生成し、これをＰＬＬ回路１２に出力する。
ＰＬＬ回路１２は、発振回路１１が出力する発振信号に位相が同期し、周波数が逓倍されたクロック信号ＰＳ０を生成して、これをカウンタ１３、クロック・ゲート回路１５およびクロック・ゲート回路１６に出力する。
【００２５】
カウンタ１３は、ＰＬＬ回路１２からのクロック信号ＰＳ０に同期してカウント値を増大させるｎビットのバイナリ・カウンタであり、下位の桁から上位の桁に対して桁上がり（キャリ）が発生する場合にアクティブとなるキャリ信号ＣＴ１〜キャリ信号ＣＴｎを生成して、これをセレクタ１４およびクロック・ゲート回路１６に出力する。
【００２６】
このカウンタ１３の構成例について、図２を参照しながら説明する。
図２は、カウンタ１３の構成の一例を示す図であり、この例において、カウンタ１３は、Ｔフリップフロップ１３１〜Ｔフリップフロップ１３ｎおよびアンド回路３２〜アンド回路３ｎを有する。
【００２７】
Ｔフリップフロップ１３１〜Ｔフリップフロップ１３ｎは、入力が論理値”１”の場合、クロック信号ＰＳ０の立ち上がり同期して出力の論理値が反転し、入力が論理値”０”の場合、クロック信号ＰＳ０の変化に係わらず出力の論理値を保持する。
【００２８】
初段のＴフリップフロップ１３１の入力には、論理値”１”となるハイレベル電圧Ｖｄｄが入力されており、次段のＴフリップフロップ１３２にはＴフリップフロップ１３１の出力信号Ｑ１が入力されている。さらに次段のＴフリップフロップ１３３には、Ｔフリップフロップ１３１の出力信号Ｑ１とＴフリップフロップ１３２の出力信号Ｑ２との論理積であるアンド回路３２の出力信号ＣＴ２が入力されている。さらに次段のＴフリップフロップ１３４には、アンド回路３２の出力信号ＣＴ２とＴフロップ１３３の出力Ｑ３との論理積であるアンド回路３３の出力信号ＣＴ３が入力されている。以降同様にして、Ｔフリップフロップ１３（ｋ＋１）（ｋは３≦ｋ≦ｎ−１の整数を示す）には、アンド回路３（ｋ−１）の出力信号ＣＴ（ｋ−１）とＴフロップ１３ｋの出力Ｑｋとの論理積であるアンド回路３ｋの出力信号ＣＴｋが入力されている。
【００２９】
次に、図２に示すカウンタ１３の動作を、図３に示すタイミング図を参照しながら説明する。
Ｔフリップフロップ１３１の入力には論理値”１”が入力されているので、その出力Ｑ１（図３ｂ）はクロック信号ＰＳ０（図３ａ）の立ち上がり信号に同期して交互に反転している。
【００３０】
Ｔフリップフロップ１３２の入力には、カウンタ１３の最下位ビットであるＴフリップフロップ１３１の出力Ｑ１からの桁上げを示すキャリ信号ＣＴ１（図３ｅ）が入力されている。キャリ信号ＣＴ１は、最下位ビットから桁上げが生じる場合に論理値”１”になる信号であり、Ｔフリップフロップ１３１の出力Ｑ１と等しい信号である。
【００３１】
このキャリ信号ＣＴ１が論理値”１”の状態でクロック信号ＰＳ０が立ち上がると、Ｔフリップフロップ１３２の出力Ｑ２（図３ｃ）は論理が反転する。例えば、クロック信号ＰＳ０の立ち上がり時点である時刻Ｔ３１において出力Ｑ１は論理値”１”となっているので、この時刻Ｔ３１で出力Ｑ２は論理値”０”から論理値”１”に反転している。
【００３２】
Ｔフリップフロップ１３３の入力には、カウンタ１３の第２ビットであるＴフリップフロップ１３２の出力Ｑ２からの桁上げを示すキャリ信号ＣＴ２（図３ｆ）が入力されている。キャリ信号ＣＴ２は、第２ビットから桁上げが生じる場合に論理値”１”になる信号であり、Ｔフリップフロップ１３１の出力Ｑ１とＴフリップフロップ１３２の出力Ｑ２との論理積に等しい信号である。すなわち最下位ビットおよび第２ビットがともに論理値”１”となった状態で、桁上げを示す論理値”１”となる。
【００３３】
このキャリ信号ＣＴ２が論理値”１”の状態でクロック信号ＰＳ０が立ち上がると、Ｔフリップフロップ１３３の出力Ｑ３（図３ｄ）は論理が反転する。例えば、クロック信号ＰＳ０の立ち上がり時点である時刻Ｔ３２において出力Ｑ１および出力Ｑ２はともに論理値”１”であるので、このときキャリ信号ＣＴ２は論理値”１”となっている。したがって、この時刻Ｔ３２で出力Ｑ３は論理値”０”から論理値”１”に反転している。
【００３４】
Ｔフリップフロップ１３４の入力には、カウンタ１３の第３ビットであるＴフリップフロップ１３３の出力Ｑ３からの桁上げを示すキャリ信号ＣＴ３（図３ｇ）が入力されている。キャリ信号ＣＴ３は、第３ビットからの桁上げが生じる場合に論理値”１”になる信号であり、キャリ信号ＣＴ２とＴフリップフロップ１３３の出力Ｑ３との論理積に等しい信号である。すなわち最下位ビット、第２ビットおよび第３ビットが何れも論理値”１”となった状態で、桁上げを示す論理値”１”となる。
【００３５】
このように、図２に示すカウンタ１３において生成されるキャリ信号は、クロック信号ＰＳ０の立ち上がり時点において桁上げが発生する場合に論理値”１”となるパルス信号であり、クロック信号ＰＳ０の１周期分のパルス幅を有している。最下位ビットからのキャリ信号ＣＴ１はクロック信号ＰＳ０の半分の周波数を有しており、桁が一桁上位になるごとにキャリ信号の周波数は半分になる。すなわち第ｉ桁（ｉは１≦ｉ≦ｎの整数を示す）からのキャリ信号ＣＴｉの周波数は、クロック信号ＰＳ０に対して２i 分の１になる。
以上が、図２に示すカウンタ１３の動作である。
【００３６】
図１のセレクタ１４は、論理値”１”である一定のハイレベル電圧Ｖｄｄと、上述したカウンタ１３のキャリ信号ＣＴ１〜キャリ信号ＣＴｎを入力しており、これらの信号から選択信号ＳＥＬに応じて選択した１の信号Ｃ−ＳＥＬをクロック・ゲート回路１５に入力する。
【００３７】
クロック・ゲート回路１５は、クロック信号ＰＳ０の立ち上がりにおけるセレクタ１４の出力信号Ｃ−ＳＥＬのレベルに応じて、クロック信号ＰＳ０の導通または非導通を制御する。クロック信号ＰＳ０の立ち上がり時に出力信号Ｃ−ＳＥＬが論理値”１”の場合、ゲートは導通状態となり、この立ち上がり時点におけるクロック信号ＰＳ０のパルスをクロック信号ＢＣＬＫとして出力する。また、クロック信号ＰＳ０の立ち上がり時に出力信号Ｃ−ＳＥＬが論理値”０”の場合、ゲートは非導通状態となり、この立ち上がり時点におけるクロック信号ＰＳ０のパルスを遮断する。すなわちクロック・ゲート回路１５は、クロック信号ＰＳ０の立ち上がり時点における出力信号Ｃ−ＳＥＬのレベルに応じて、当該立ち上がり時点におけるクロック信号ＰＳ０のパルスを間引いた信号をクロック信号ＢＣＬＫとして出力する。
【００３８】
このクロック・ゲート回路１５の構成例について、図４を参照しながら説明する。
図４は、クロック・ゲート回路１５の構成の一例を示す図である。図４に示すクロック・ゲート回路１５は、Ｄラッチ１５１およびアンド回路１５２を有する。
【００３９】
Ｄラッチ１５１は、クロック信号ＰＳ０の立ち上がりに同期して信号Ｃ−ＳＥＬのレベルを保持し、この保持されたレベルをアンド回路１５２に出力する。
アンド回路１５２は、Ｄラッチ１５１の出力とクロック信号ＰＳ０との論理積に応じた信号を、クロック信号ＢＣＬＫとして出力する。
【００４０】
信号Ｃ−ＳＥＬが論理値”１”の状態でクロック信号ＰＳ０が立ち上がると、Ｄラッチ１５１の出力に論理値”１”が保持されて、アンド回路１５２が導通状態になり、この立ち上がり時点におけるクロック信号ＰＳ０のパルスがクロックＢＣＬＫとして出力される。また、信号Ｃ−ＳＥＬが論理値”０”の状態でクロック信号ＰＳ０が立ち上がると、Ｄラッチ１５１の出力に論理値”０”が保持されて、アンド回路１５２が非導通状態になり、この立ち上がり時点におけるクロック信号ＰＳ０のパルスは遮断される。
以上が、図４に示すクロック・ゲート回路１５の動作である。
【００４１】
図１のクロック・ゲート回路１６は、クロック・ゲート回路１５の集合で構成されるブロックであり、クロック信号ＰＳ０の立ち上がりにおけるキャリ信号ＣＴ１〜キャリ信号ＣＴｎのレベルに応じて、クロック信号ＰＳ０の導通または非導通を制御する。クロック信号ＰＳ０の立ち上がり時にキャリ信号ＣＴ１〜キャリ信号ＣＴｎが論理値”１”の場合、ゲートは導通状態となり、この立ち上がり時点におけるクロック信号ＰＳ０のパルスをクロック信号ＰＳ１〜クロック信号ＰＳｎとしてそれぞれ出力する。また、クロック信号ＰＳ０の立ち上がり時にキャリ信号ＣＴ１〜キャリ信号ＣＴｎが論理値”０”の場合、ゲートは非導通状態となり、この立ち上がり時点におけるクロック信号ＰＳ０のパルスを遮断する。すなわちクロック・ゲート回路１６は、クロック信号ＰＳ０の立ち上がり時点におけるキャリ信号ＣＴ１〜キャリ信号ＣＴｎのレベルに応じて、当該立ち上がり時点におけるクロック信号ＰＳ０のパルスを間引いた信号をクロック信号ＰＳ１〜クロック信号ＰＳｎとしてそれぞれ出力する。
【００４２】
クロック・ゲート回路１６はクロック・ゲート回路１５と同等の構成を有しており、例えば図４に示すＤラッチとアンド回路とによるクロック信号ＰＳ０のゲート回路を、キャリ信号ＣＴ１〜キャリ信号ＣＴｎのそれぞれに対して有している。
【００４３】
次に、上述した構成を有するクロック回路１０の動作について、図５および図６のタイミング図を参照しながら説明する。
【００４４】
図５ａはカウンタ１３の計数値を示しており、クロック信号ＰＳ０（図６ｈ）の立ち上がりに同期して計数値が１づつカウントアップしている。
最下位ビットからのキャリ信号ＣＴ１（図５ｂ）は、最下位ビットが論理値”１”になった場合に論理値”１”となる信号であり、最下位ビットと等しい。第２ビットからのキャリ信号ＣＴ２（図５ｃ）は、最下位ビットおよび第２ビットがともに論理値”１”となった場合に論理値”１”となる信号であり、例えば計数値が３（２進数で”１１”）のときに論理値”１”になっている。第３ビットからのキャリ信号ＣＴ３（図５ｄ）は、最下位ビット、第２ビットおよび第３ビットが何れも論理値”１”となった場合に論理値”１”となる信号であり、例えば計数値が７（２進数で”１１１”）のときに論理値”１”になっている。
【００４５】
セレクタ１４に入力される選択信号ＳＥＬ（図５ｅ）は値”０”になっており、これに応じて論理値”１”に相当するハイレベル電圧Ｖｄｄが選択されて信号Ｃ−ＳＥＬ（図５ｆ）としてクロック・ゲート回路１５に入力されている。したがって、クロック・ゲート回路１５のゲートは常に導通状態となり、クロック信号ＰＳ０（図５ｈ）と等しい信号がクロック信号ＢＣＬＫ（図５ｇ）として出力されている。
【００４６】
クロック・ゲート回路１６から出力されるクロック信号ＰＳ１（図５ｉ）は、クロック信号ＰＳ０が立ち上がり時点におけるキャリ信号ＣＴ１のレベルに応じてクロック信号ＰＳ０のパルスが間引かれた信号である。例えばクロック信号ＰＳ０の立ち上がり時点である時刻Ｔ５１においてキャリ信号ＣＴ１は論理値”０”であるため、この立ち上がり時点のクロック信号ＰＳ０のパルスはクロック信号ＰＳ１において間引かれている。また、時刻Ｔ５２においてキャリ信号ＣＴ１は論理値”１”であるため、この立ち上がり時点のクロック信号ＰＳ０のパルスはクロック信号ＰＳ１において間引かれておらず、そのまま出力されている。
【００４７】
同様に、クロック信号ＰＳ２（図５ｉ）はクロック信号ＰＳ０が立ち上がり時点におけるキャリ信号ＣＴ２のレベルに応じて、クロック信号ＰＳ３（図５ｋ）はクロック信号ＰＳ０が立ち上がり時点におけるキャリ信号ＣＴ３のレベルに応じて、それぞれクロック信号ＰＳ０のパルスが間引かれた信号である。例えば時刻Ｔ５４および時刻Ｔ５８においてキャリ信号ＣＴ２は論理値”１”であるため、この立ち上がり時点のクロック信号ＰＳ０のパルスはクロック信号ＰＳ２においてそのまま出力されているが、その他の立ち上がり時刻においてキャリ信号ＣＴ２は論理値”０”であるため、クロック信号ＰＳ０のパルスはクロック信号ＰＳ２から間引かれている。また、時刻Ｔ５８においてキャリ信号ＣＴ３は論理値”１”であるため、この立ち上がり時点のクロック信号ＰＳ０のパルスはクロック信号ＰＳ３においてそのまま出力されているが、その他の立ち上がり時刻においてキャリ信号ＣＴ３は論理値”０”であるため、クロック信号ＰＳ０のパルスはクロック信号ＰＳ２から間引かれている。
【００４８】
図６は、選択信号ＳＥＬによってクロック信号ＢＣＬＫの周波数が切り換えられる前後における各信号の状態を示すタイミング図である。選択信号ＳＥＬ（図６ｄ）は時刻Ｔ６２において値”１”から値”２”に切り換えられており、これにより、セレクタ１４からの出力信号Ｃ−ＳＥＬ（図６ｅ）はキャリ信号ＣＴ１からキャリ信号ＣＴ２に切り換えられている。すなわち、時刻Ｔ６１から時刻Ｔ６２までの間、信号Ｃ−ＳＥＬはキャリ信号ＣＴ１と等しく、時刻Ｔ６２以降ではキャリ信号ＣＴ２と等しくなっている。これにより、クロック・ゲート回路１５から出力されるクロック信号ＢＣＬＫ（図６ｆ）の周波数は、選択信号ＳＥＬの切り換え後において切り換え前の半分に低下している。図６からも分かるように、周波数の切り換え時においてクロック信号ＢＣＬＫにグリッジは発生していない。
【００４９】
クロックゲート回路１５は、一般的なＥＤＡ（Electronic Design Automation）ツールでクロックの属性が出力に通過するように取り扱うことができる。つまり、クロック生成回路１０に示すクロックシステムは全てクロック信号ＰＳ０のクロック系として取り扱えるため、例えばクロックツリーシンセシスツール等を用いてクロック生成回路１０において生成されるクロック信号ＢＣＬＫおよびクロック信号ＰＳ１〜クロック信号ＰＳｎの、遅延によるクロック信号間のクロック・スキューを低く抑えることは、簡単に実現可能である。
【００５０】
次に、本発明の他の実施形態について説明する。
図７は、本発明に係るクロック生成回路１０を用いたコンピュータシステムの例を示す図である。図７に示すコンピュータシステムは、クロック生成回路１０、ＣＰＵ２０、および周辺回路３１〜周辺回路３３を有する。
なお、ＣＰＵ２０は、本発明の第１の処理回路の一実施形態である。
周辺回路３１〜周辺回路３３は、本発明の第２の処理回路の一実施形態である。
【００５１】
ＣＰＵ２０は、クロック生成回路１０からのクロック信号ＢＣＬＫを供給されて動作し、内部または周辺回路の図示しないメモリに記憶されたプログラムに応じて種々の処理を実行する。また、処理モードに応じて選択信号ＳＥＬを設定し、クロック生成回路１０により生成されるクロック信号ＢＣＬＫの周波数を制御する。
周辺回路３１〜周辺回路３３は、クロック生成回路１０からのクロック信号ＢＣＬＫ、および周辺回路用に生成されたクロック信号ＰＳ０〜クロック信号ＰＳ７を供給されて動作し、バスＢＵＳを介してＣＰＵ２０とデータを交換しながら種々の処理を実行する。図７の例において、周辺回路３１はクロック信号ＰＳ５を供給されており、周辺回路３２および周辺回路３３はクロック信号ＰＳ６を供給されている。
【００５２】
クロック信号ＢＣＬＫで動作するＣＰＵ２０とデータを交換するために、周辺回路３１〜周辺回路３３とバスＢＵＳとのインターフェース部には、クロック信号ＢＣＬＫに同期してデータを入出力するためのレジスタが一般的に設けられている。また、周辺回路３１〜周辺回路３３はＣＰＵ２０ほどの処理速度が通常必要ないため、ＣＰＵ２０のクロック信号ＢＣＬＫより低い周波数のクロック信号でカウンタ等の回路を動作させている。したがって、周辺回路３１〜周辺回路３３の内部においては、異なる周波数のクロック信号で動作する回路ブロックの間でデータを交換する必要がある。上述したクロック生成回路１０で生成されるクロック信号ＢＣＬＫおよびクロック信号ＰＳ１〜クロック信号ＰＳ７はクロック・スキューが低く抑えられているので、非同期回路を特別に設けることなく、同期回路のみでこれらの回路ブロックの間のデータ交換が可能になっている。
【００５３】
以上説明したように、図１に示すクロック生成回路１０によれば、カウンタ１３において、クロック信号ＰＳ０の立ち上がりのレベル変化が計数され、当該計数による各ビットのキャリの発生に応じて、クロック信号ＰＳ０の立ち上がりのレベル変化に同期した、所定周波数を有するキャリ信号ＣＴ１〜キャリ信号ＣＴｎが各ビットごとに生成される。この生成されたキャリ信号を含む所定の信号から、選択信号ＳＥＬに応じて一の信号がセレクタ１４において選択され、信号Ｃ−ＳＥＬとして出力される。クロック・ゲート回路１５において、クロック信号ＰＳ０の立ち上がりのレベル変化時点における信号Ｃ−ＳＥＬのレベルに応じて、クロック信号ＰＳ０の当該レベル変化時点におけるパルスが間引かれた信号がクロック信号ＢＣＬＫとして生成される。したがって、カウンタ１３やセレクタ１４から出力される信号に多少のグリッジが発生していても、クロック信号ＢＣＬＫのグリッジを抑えることができる。
また、カウンタ１３やセレクタ１４は生成されるクロック信号ＢＣＬＫの遅延に関与しないので、カウンタ１３やセレクタ１４の動作タイミングに関する制約が緩くなり、これらの回路の構成やレイアウトの自由度を増すことができる。これにより、開発者の設計にかかる負担を軽減できる。
【００５４】
また、クロック・ゲート回路１６において、クロック信号ＰＳ０の立ち上がりのレベル変化時点におけるキャリ信号ＣＴ１〜キャリ信号ＣＴｎに応じてクロック信号ＰＳ０の当該レベル変化時点におけるパルスが間引かれた信号が、クロック信号ＰＳ１〜クロック信号ＰＳｎとして生成される。このクロック信号ＰＳ１〜クロック信号ＰＳｎおよびクロック信号ＢＣＬＫは、同一の構成を有するクロック・ゲート回路１６およびクロック・ゲート回路１５において生成されるので、これらのクロック信号間におけるクロック・スキューを低く抑えることができる。したがって、これらのクロック信号が供給される回路ブロックの間に非同期回路を設けてデータ交換を行う必要がなくなるので、設計期間を短縮でき、設計品質を向上できる。
また、このクロック・ゲート回路の他に遅延時間を合わせ込むためのゲート回路を追加する必要が無くなるので、こうした冗長な回路を削減でき、回路規模を小さくすることができる。
【００５５】
また、セレクタ１４には、論理値”１”に相当する一定のハイレベル電圧Ｖｄｄが入力されており、選択信号ＳＥＬによってこのハイレベル電圧Ｖｄｄが選択された場合、クロック信号ＰＳ０をそのままクロック信号ＢＣＬＫとして出力させることができる。また、論理値”０”に相当する一定のローレベルレベル電圧を選択させて出力させることもでき、この場合にはクロック信号の供給を停止させることができる。
【００５６】
なお、本発明は上述した実施形態に限定されない。
例えば、上述した実施形態においてカウンタ１３やクロック・ゲート回路１５、クロック・ゲート回路１６はクロック信号ＰＳ０の立ち上がりに同期して動作するものとして説明しているが、この例に限定されず、立ち下がりに同期して動作させることもできる。
【００５７】
また、上述した実施形態においてカウンタ１３はアップカウンタを例に説明しているが、この例に限定されず、例えばダウンカウンタでも良い。あるいはクロック信号ＰＳ０のレベル変化に同期したパルス信号を生成する他の回路でも良い。
【００５８】
また、上述した実施形態においては、クロック信号ＢＣＬＫのみが周波数の制御が可能な構成となっているが、この例に限定されず、セレクタ１４およびクロック・ゲート回路１５と同様な構成を追加することにより、周波数の制御が可能なクロック信号を任意の数だけ生成することができる。この場合においても、生成される各クロック信号間のクロック・スキューは低く抑えられる。
【００５９】
【発明の効果】
本発明によれば、生成するクロック信号の周波数が制御可能でありながら、簡易な回路によってグリッジの発生を抑止できるとともに、生成したクロック信号間のクロック・スキューを低く抑えることができる。また、クロック・スキューを抑えるために冗長な回路を挿入する必要がないので、回路規模を小さくすることができる。
【図面の簡単な説明】
【図１】本発明に係るクロック生成回路の実施形態を説明するための概略的な構成図である。
【図２】カウンタの構成例を示す図である。
【図３】カウンタの動作を説明するためのタイミング図である。
【図４】クロック・ゲート回路の構成例を示す図である。
【図５】クロック生成回路の動作を説明するための第１のタイミング図である。
【図６】クロック生成回路の動作を説明するための第２のタイミング図である。
【図７】本発明に係るクロック生成回路を用いたコンピュータシステムの例を示す図である。
【図８】従来のクロック生成回路の構成例を示す図である。
【符号の説明】
１…カウンタ、２〜４…アンド回路、５，６…セレクタ、１１…発振回路、１２…ＰＬＬ回路、１３…カウンタ、１４…セレクタ、１５，１６…クロック・ゲート回路、３２〜３ｎ…アンド回路、１３１〜１３ｎ…Ｔフリップフロップ、１５１…Ｄラッチ、１５２…アンド回路
【図１】
0004691791.tif 000002
【図２】
0004691791.tif 000003
【図３】
0004691791.tif 000004
【図４】
0004691791.tif 000005
【図５】
0004691791.tif 000006
【図６】
0004691791.tif 000007
【図７】
0004691791.tif 000008
【図８】
0004691791.tif 000009