(57)【特許請求の範囲】
【請求項１】
複数の書き込みイネーブル信号のそれぞれに応答して分周比を設定可能な複数の分周器と、
前記複数の分周器のそれぞれに設定する分周比を格納する複数のプリセットレジスタを含むプリセットレジスタ群と、
前記プリセットレジスタ群の内、１つの前記プリセットレジスタを選択し、選択したプリセットレジスタに格納されている複数の前記分周比を出力する第１のセレクタと、
前記複数の分周器の分周比を同時に切り替える第１状態、または前記複数の分周器の分周比を個別に切り替える第２状態のいずれかを示す、第１の外部回路から供給される第１の制御信号に応じて、第１の選択信号を生成する第１の制御回路と、
前記第１のセレクタから出力される複数の前記分周比のそれぞれ、または前記第１の外部回路から供給される分周比のいずれかを前記第１の選択信号に応じて選択し、選択した分周比を前記選択した分周比に対応する前記分周器に出力する複数の第２のセレクタを含む第２のセレクタ群と、
前記第１の制御信号が前記第１状態を示す場合、前記複数の分周器のそれぞれに前記書き込みイネーブル信号を出力し、前記第１の制御信号が前記第２状態を示す場合、前記複数の分周器のうちの分周比が切り替えられる分周器に前記書き込みイネーブル信号を出力するとともに、前記複数の分周器のうちの分周比が切り替えられる分周器を除く他の分周器への前記書き込みイネーブル信号の出力を禁止する第２の制御回路と
を含むことを特徴とするクロック分周回路。
【請求項２】
前記分周器の各々は、
前記第２のセレクタから出力される分周比を保持する分周比設定レジスタを有し、
前記分周比設定レジスタに設定された分周比に基づいて、外部から入力されたクロックを分周する
ことを特徴とする請求項１記載のクロック分周回路。
【請求項３】
前記プリセットレジスタは、前記分周比設定レジスタの各々に対応する分周比を保持し、
前記プリセットレジスタに保持されている分周比は、前記第１のセレクタおよび前記第２のセレクタを介して、前記プリセットレジスタに保持されている分周比に対応する前記分周比設定レジスタに供給される
ことを特徴とする請求項２記載のクロック分周回路。
【請求項４】
前記第１の制御信号をデコードし、前記第２状態を示す第１の書き込み要求、または前記第１状態を示す前記プリセットレジスタの選択要求を出力するデコーダを含み、
前記第１のセレクタは、前記選択要求に基づいて、１つの前記プリセットレジスタを選択し、
前記第１の制御回路は、前記選択要求に基づいて、前記第１のセレクタから出力される複数の分周比のそれぞれを選択させる前記第１の選択信号を生成し、前記第１の書き込み要求に基づいて、前記第１の外部回路から供給される分周比を選択させる前記第１の選択信号を生成する
ことを特徴とする請求項１ないし請求項３のいずれか１項記載のクロック分周回路。
【請求項５】
前記第１の外部回路から供給される１つの前記プリセットレジスタを示す値を格納するプリセット選択レジスタを含み、
前記第１のセレクタは、前記プリセット選択レジスタに格納された値が示す１つの前記プリセットレジスタを選択する
ことを特徴とする請求項１ないし請求項４のいずれか１項記載のクロック分周回路。
【請求項６】
第２の外部回路から周波数変更要求を受けたときに、前記複数のプリセットレジスタの内、予め決められた１つを示す第２の選択信号を出力し、前記周波数変更要求を受けていないときに、前記第１の外部回路から供給される１つの前記プリセットレジスタを示す前記第２の選択信号を出力する第３の制御回路を含み、
前記第１のセレクタは、前記第２の選択信号に応じて１つの前記プリセットレジスタを選択する
ことを特徴とする請求項１ないし請求項５のいずれか１項記載のクロック分周回路。
【請求項７】
前記デコーダは、前記第１の制御信号をデコードし、分周比を個別に切り替える分周器を示す分周器選択信号を出力し、
前記第２の制御回路は、前記分周器選択信号が示す分周器に前記書き込みイネーブル信号を出力する
ことを特徴とする請求項４記載のクロック分周回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クロックの周波数を分周するクロック分周回路に関する。
【背景技術】
【０００２】
クロック分周回路は、レジスタに設定される分周比に応じて基準クロックの周波数を分周器により分周し、所望の周波数のクロックを生成する（例えば、特許文献１−５参照。）。システムの動作モードに応じてレジスタを書き換えてクロックの周波数を切り替えることで、システムの消費電力は最小限になる。例えば、システム内の複数の回路ブロックが、周波数の異なる複数のクロックをそれぞれ使用するとき、各回路ブロックに供給されるクロックの周波数は、対応する分周器の分周比を決めるレジスタを設定することで変更される。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００３−２４８５２４号公報
【特許文献２】特開２００７−２５９１２５号公報
【特許文献３】特開昭５６−１４７５８号公報
【特許文献４】特開昭６３−７０３２１号公報
【特許文献５】特開平２−２０２６０９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、複数のクロックの周波数を切り替えるとき、対応するレジスタを順次に書き換える必要があり、クロックの周波数の切り替えが完了するまでに時間が掛かる。回路ブロックは、クロックが切り替わるまでは動作できないため、システムの性能は低下してしまう。
【課題を解決するための手段】
【０００５】
本発明の一形態では、クロック分周回路は、クロックの分周比を外部より設定可能な複数の分周器と、複数の分周器に設定する分周比を格納するプリセットレジスタ群と、プリセットレジスタ群の内、１つのプリセットレジスタを選択し、選択したプリセットレジスタに格納されている分周比を複数の分周器に与えるセレクタとを含んでいる。
【発明の効果】
【０００６】
セレクタの選択動作により複数のクロックの分周比を同時に切り替えることができる。この結果、クロック分周回路が供給される回路ブロックの動作効率を向上でき、クロック分周回路が搭載される半導体集積回路およびシステムの性能を向上できる。
【図面の簡単な説明】
【０００７】
【図１】一実施形態におけるクロック分周回路の例を示している。
【図２】別の実施形態におけるクロック分周回路の例を示している。
【図３】図２に示したクロック分周回路を有するシステムの例を示している。
【図４】図２に示したクロック分周回路の動作の例を示している。
【図５】別の実施形態におけるクロック分周回路有するシステムの例を示している。
【図６】図５に示したクロック分周回路の例を示している。
【図７】図５に示したクロック分周回路の動作の例を示している。
【発明を実施するための形態】
【０００８】
以下、実施形態を、図面を用いて説明する。図中、太線で示した信号線は、複数本で構成されている。また、太線が接続されているブロックの一部は、複数の回路で構成されている。信号が伝達される信号線には、信号名と同じ符号を使用する。
【０００９】
図１は、一実施形態におけるクロック分周回路ＣＤＣの例を示している。例えば、クロック分周回路ＣＤＣは、周波数が異なる複数のクロックＩＣＬＫ（ＩＣＬＫ０、ＩＣＬＫ１、...、ＩＣＬＫｎ）に同期して動作する複数の回路ブロックとともに、半導体集積回路に搭載される。クロック分周回路ＣＤＣは、複数のプリセットレジスタＲＥＧ（ＲＥＧ０、ＲＥＧ１、...）を有するプリセットレジスタ群ＲＥＧＧと、セレクタＳＥＬと、複数の分周器ＤＩＶ（ＤＩＶ０、ＤＩＶ１、...ＤＩＶｎ）とを有している。
【００１０】
プリセットレジスタＲＥＧ０は、分周器ＤＩＶ０、ＤＩＶ１、...ＤＩＶｎにそれぞれ設定する分周比ＤＲ（ＤＲ０−０、ＤＲ０−１、...、ＤＲ０−ｎ）を格納している。プリセットレジスタＲＥＧ１は、分周器ＤＩＶ０、ＤＩＶ１、...ＤＩＶｎにそれぞれ設定する分周比ＤＲ（ＤＲ１−０、ＤＲ１−１、...、ＤＲ１−ｎ）を格納している。各プリセットレジスタＲＥＧは、分周比ＤＲを予め保持している。例えば、分周比ＤＲは、半導体集積回路の製造に使用される金属配線層のフォトマスクのパターンとして設計されている。あるいは、分周比ＤＲは、半導体集積回路が搭載されるシステムのパワーオンシーケンス中に、ＣＰＵ等のコントローラにより設定される。各プリセットレジスタＲＥＧが保持する分周比ＤＲの数は、分周器ＤＩＶの数に対応する。
【００１１】
セレクタＳＥＬは、プリセット選択信号ＰＳＳＥＬの値に応じて、プリセットレジスタ群ＲＥＧＧの内、１つのプリセットレジスタＲＥＧを選択し、選択したプリセットレジスタＲＥＧに格納されている分周比ＤＲを分周器ＤＩＶ０−ＤＩＶｎにそれぞれ与える。具体的には、セレクタＳＥＬは、選択したプリセットレジスタＲＥＧから出力される分周比ＤＲ（例えば、ＤＲ０−０、ＤＲ０−１、...、ＤＲ０−ｎ）を選択し、分周比ＤＲ＃（ＤＲ＃−０、ＤＲ＃−１、...、ＤＲ＃−ｎ）として出力する。特に限定されないが、分周比ＤＲ＃は、対応する分周器ＤＩＶ０、ＤＩＶ１、...ＤＩＶｎ内に形成される分周比設定レジスタに設定される。例えば、プリセットレジスタ群ＲＥＧＧが８個のプリセットレジスタＲＥＧを有するとき、プリセット選択信号ＰＳＳＥＬは３ビットである。
【００１２】
分周器ＤＩＶ０は、分周比ＤＲ＃−０を受け、分周比ＤＲ＃−０に応じてクロックＣＬＫの周波数を分周し、クロックＩＣＬＫ０として出力する。分周器ＤＩＶ１は、分周比ＤＲ＃−１を受け、分周比ＤＲ＃−１に応じてクロックＣＬＫの周波数を分周し、クロックＩＣＬＫ１として出力する。分周器ＤＩＶｎは、分周比ＤＲ＃−ｎを受け、分周比ＤＲ＃−ｎに応じてクロックＣＬＫの周波数を分周し、クロックＩＣＬＫｎとして出力する。このように、各分周器ＤＩＶ０−ＤＩＶｎは、セレクタＳＥＬを介して外部から供給される分周比ＤＲ＃−０、ＤＲ＃−１、...ＤＲ＃−ｎを設定可能である。
【００１３】
この実施形態では、プリセット選択信号ＰＳＳＥＬに応答して複数の分周器ＤＩＶ０−ＤＩＶｎの分周比ＤＲ＃を同時に変更でき、クロックＩＣＬＫ０−ＣＬＫｎの周波数を同時に変更できる。複数のクロックＩＣＬＫの周波数の切り替えを短時間で完了できるため、複数の回路ブロックにおいて、クロックＩＣＬＫの周波数が定まらない期間（すなわち、回路ブロックが動作できない期間）を最小限にできる。
【００１４】
例えば、クロック分周回路ＣＤＣが搭載される半導体集積回路のパワーオンシーケンスおいて、プリセット選択信号ＰＳＳＥＬによりセレクタＳＥＬの選択動作を実施するだけで、半導体集積回路内で使用する全てのクロックＩＣＬＫの周波数を同時に設定できる。あるいは、クロック分周回路ＣＤＣが搭載される半導体集積回路の動作モードが切り替わるときに、セレクタＳＥＬの選択動作を実施するだけで、半導体集積回路内で使用する全てのクロックＩＣＬＫの周波数を同時に切り替えできる。特に限定されないが、プリセット選択信号ＰＳＳＥＬの論理値を設定するプリセット選択レジスタを設けることで、プリセット選択レジスタの１回の書き換えにより、半導体集積回路内で使用する全てのクロックＩＣＬＫの周波数を同時に切り替えできる。
【００１５】
以上、この実施形態では、セレクタＳＥＬの選択動作により複数のクロックＩＣＬＫの周波数を同時に切り替えることができる。この結果、互いに異なる周波数のクロックＩＣＬＫが供給される複数の回路ブロックの動作効率を向上でき、クロック分周回路ＣＤＣが搭載される半導体集積回路およびシステムの性能を向上できる。
【００１６】
図２は、別の実施形態におけるクロック分周回路ＣＤＣの例を示している。上述した実施形態で説明した要素と同一の要素については、同一の符号を付し、これ等については、詳細な説明を省略する。例えば、クロック分周回路ＣＤＣは、周波数が異なる複数のクロックＩＣＬＫ（ＩＣＬＫ０、ＩＣＬＫ１、...、ＩＣＬＫ１５）に同期して動作する複数の回路ブロックとともに、半導体集積回路に搭載される。
【００１７】
クロック分周回路ＣＤＣは、プリセットレジスタ部ＰＳＲＥＧ、レジスタ制御回路ＲＥＧＣＮＴ、クロック生成回路ＣＬＫＧＥＮ、１６個の分周器ＤＩＶ０−ＤＩＶ１５およびバスインターフェースＢＵＳＩＦを有している。例えば、各分周器ＤＩＶ０−１５の分周比は、各データ選択回路ＤＳＥＬ（ＤＳＥＬ０、ＤＳＥＬ１、...、ＤＳＥＬ１５）から出力される４ビットの信号により１６通りに設定可能である。
【００１８】
プリセットレジスタ部ＰＳＲＥＧは、４つのプリセットレジスタＲＥＧ０−ＲＥＧ３を含むプリセットレジスタ群ＲＥＧＧと、プリセット選択信号ＰＳＳＥＬを出力するプリセット選択レジスタＰＳＥＴＳＥＬとを有している。各プリセットレジスタＲＥＧ０−３は、１６個の分周器ＤＩＶ０−１５の分周比を格納するために６４ビット（４ビット×１６個）を有している。各プリセットレジスタＲＥＧ０−３に格納されている分周比は、上述した実施形態と同様に、半導体集積回路の製造に使用される金属配線層のフォトマスクのパターンとして設計されている。あるいは、分周比は、半導体集積回路が搭載されるシステムのパワーオンシーケンス中に、ＣＰＵ等のコントローラにより設定される。
【００１９】
プリセット選択レジスタＰＳＥＴＳＥＬは、２ビットのプリセット選択信号ＰＳＳＥＬの各ビットに対応する２ビットの記憶領域を有している。プリセット選択レジスタＰＳＥＴＳＥＬは、プリセット書き込みイネーブル信号ＷＥＰＳＥＬとともに供給される書き込みデータＰＷＤＡＴＡに応じて設定される。プリセット書き込みイネーブル信号ＷＥＰＳＥＬは、クロック信号ＩＣＬＫ０−１５の周波数を初期設定または変更するときに生成される。
【００２０】
バスインターフェースＢＵＳＩＦは、プリセット書き込みイネーブル信号ＷＥＰＳＥＬおよび書き込みイネーブル信号ＷＥＤ０−１５を生成するためのデコーダＤＥＣを有している。デコーダＤＥＣは、クロック分周回路ＣＤＣ用の選択信号ＰＳＥＬ１のアサート中に動作する。デコーダＤＥＣは、選択信号ＰＳＥＬ１および書き込みイネーブル信号ＰＷＲＩＴＥがアサートされているときに、イネーブル信号ＰＥＮＡＢＬＥに応答してアドレス信号ＰＡＤＤＲをデコードし、プリセット書き込みイネーブル信号ＷＥＰＳＥＬまたは書き込みイネーブル信号ＷＥＤ０−１５を所定の期間に高レベルに設定する。
【００２１】
レジスタ制御回路ＲＥＧＣＮＴは、セレクタＳＥＬ、１６個のデータ選択回路ＤＳＥＬ（ＤＳＥＬ０−１５）、タイミング生成回路ＴＧＥＮおよび１６個のＯＲ回路を有している。セレクタＳＥＬは、２ビットのプリセット選択信号ＰＳＳＥＬに応じて、プリセットレジスタＲＥＧ０−３のいずれかを選択し、選択したプリセットレジスタＲＥＧに格納されている値を６４ビットの書き込みデータＷＤＡＬＬとして出力する。
【００２２】
各データ選択回路ＤＳＥＬは、全書き込みイネーブル信号ＷＥＡＬＬが高レベルのときに書き込みデータＷＤＡＬＬのうちの対応する４ビットを選択し、全書き込みイネーブル信号ＷＥＡＬＬが低レベルのときに４ビットの書き込みデータＰＷＤＡＴＡを選択する。各データ選択回路ＤＳＥＬは、選択した４ビットのデータを対応する分周器ＤＩＶ（ＤＩＶ０−１５のいずれか）に出力する。
【００２３】
タイミング生成回路ＴＧＥＮは、プリセット書き込みイネーブル信号ＷＥＰＳＥＬに応答して、全書き込みイネーブル信号ＷＥＡＬＬを所定の期間高レベルにアサートする。また、全書き込みイネーブル信号ＷＥＡＬＬがアサートされて分周比設定レジスタＰＳＥＴ（ＰＳＥＴ０−ＰＳＥＴ１５）に分周比が書き込まれている間に、バスインターフェースＢＵＳＩＦが次の書き込み要求を受けたとき、タイミング生成回路ＴＧＥＮは、ウエイト要求信号ＰＲＥＡＤＹを所定の期間低レベルにアサートし、次の書込み要求を保留する。ＯＲ回路は、全書き込みイネーブル信号ＷＥＡＬＬまたは書き込みイネーブル信号ＷＥＤ０−１５を、書き込みイネーブル信号ＷＥＮ０−１５として分周器ＤＩＶ０−ＤＩＶ１５に出力する。
【００２４】
クロック生成回路ＣＬＫＧＥＮは、ＰＬＬ回路および分周回路１／ｎ、１／ｍを有しており、例えば、基準クロックＣＫ０の波形を成形してクロックＣＬＫとして出力する。各分周器ＤＩＶ０−ＤＩＶ１５は、分周比設定レジスタＰＳＥＴ（ＰＳＥＴ０−ＰＳＥＴ１５のいずれか）および分周回路１／Ｌ（１／Ｌ０−１／Ｌ１５）を有している。なお、クロック生成回路ＣＬＫＧＥＮは、クロック分周回路ＣＤＣの外部に形成されてもよい。
【００２５】
各分周比設定レジスタＰＳＥＴは、書き込みイネーブル信号ＷＥＮ（ＷＥＮ０−１５のいずれか）に応答してデータ選択回路ＤＳＥＬから出力される４ビットの値（分周比を示す）を記憶する。各分周回路１／Ｌは、対応する分周比設定レジスタＰＳＥＴに記憶されている分周比に応じてクロックＣＬＫの周波数を分周し、クロック信号ＩＣＬＫ（ＩＣＬＫ０−１５のいずれか）を生成する。
【００２６】
図３は、図２に示したクロック分周回路ＣＤＣを有するシステムＳＹＳの例を示している。例えば、システムＳＹＳは、クロック分周回路ＣＤＣが搭載される半導体集積回路ＬＳＩおよびＤＲＡＭを有している。半導体集積回路ＬＳＩは、高速バスＨＳ−ＢＵＳに接続されたＣＰＵ、メモリコントローラＭＣＮＴおよびＳＲＡＭと、低速バスＳ−ＢＵＳに接続されたタイマＴＩＭＥＲ、ＵＡＲＴ（Universal Asynchronous Receiver Transmitter）およびクロック分周回路ＣＤＣと、高速バスＨＳ−ＢＵＳおよび低速バスＳ−ＢＵＳを接続するバスブリッジＢＢとを有している。例えば、高速バスＨＳ−ＢＵＳおよび低速バスＳ−ＢＵＳは、それぞれＡＲＭ社（ＡＲＭ Ｌｉｍｉｔｅｄ）が提唱するＡＨＢおよびＡＰＢであり、バスブリッジＢＢは、ＡＨＢ−ＡＰＢブリッジである。ＣＰＵ、メモリコントローラＭＣＮＴおよびタイマＴＩＭＥＲ等は、クロック分周回路ＣＤＣの外部回路である。
【００２７】
書き込みイネーブル信号ＰＷＲＩＴＥ、アドレス信号ＰＡＤＤＲおよび書き込みデータＰＷＤＡＴＡは、高速バスＨＳ−ＢＵＳ、バスブリッジＢＢおよび低速バスＳ−ＢＵＳを介してＣＰＵから供給される。ウエイト要求信号ＰＲＥＡＤＹは、低速バスＳ−ＢＵＳ、バスブリッジＢＢおよび高速バスＨＳ−ＢＵＳを介してＣＰＵに供給される。基準クロックＣＫ０は、半導体集積回路ＬＳＩの外部から供給される。この例では、クロックＩＣＬＫ０はＣＰＵに供給され、クロックＩＣＬＫ１は高速バスＨＳ−ＢＵＳに供給される。クロックＩＣＬＫ２はメモリコントローラＭＣＮＴに供給され、クロックＩＣＬＫ３はＳＲＡＭに供給される。クロックＩＣＬＫ４はバスブリッジＢＢに供給され、クロックＩＣＬＫ１５はタイマＴＩＭＥＲに供給される。クロックＩＣＬＫ５−ＩＣＬＫ１４は、他の回路ブロックに供給される。
【００２８】
図４は、図２に示したクロック分周回路ＣＤＣの動作の例を示している。この例では、システムＳＹＳの動作モードの変更により、クロック信号ＩＣＬＫ０−１５の周波数が同時に切り替えられ、さらにクロック信号ＩＣＬＫ０の周波数が単独で切り替えられる。クロック分周回路ＣＤＣの１回のアクセスは、バスブリッジＢＢに供給されるクロックＣＬＫ４で２クロックサイクルを要する。クロック分周回路ＣＤＣは、ＣＰＵにより２回書き込みアクセスされるため、バスブリッジＢＢは、４クロックサイクルの間、選択信号ＰＳＥＬ１を高レベルにアサートするが、クロックサイクルＴ３にてウエイト要求信号ＰＲＥＡＤＹがアサートされることによりウエイトサイクルが挿入されるため、選択信号ＰＳＥＬ１は、合計５クロックサイクルＴ０−Ｔ４の間アサートされることになる（図４（ａ））。
【００２９】
クロックサイクルＴ０−Ｔ１において、ＣＰＵは、バスブリッジＢＢを介して、プリセット選択レジスタＰＳＥＴＳＥＬを示すアドレス信号ＰＡＤＤＲ（ＰＳＲＥＧ）と、プリセットレジスタＲＥＧ０を選択することを示す書き込みデータＰＷＤＡＴＡ（ＲＥＧ０）を出力する（図４（ｂ））。また、ＣＰＵは、バスブリッジＢＢを介して、書き込み制御信号ＰＷＲＩＴＥを高レベルにアサートする（図４（ｃ））。選択信号ＰＳＥＬ１、アドレス信号ＰＡＤＤＲ（ＰＳＲＥＧ）および書き込み制御信号ＰＷＲＩＴＥは、外部回路からのプリセットレジスタＲＥＧ０−３のいずれかの選択要求である。クロック分周回路ＣＤＣのタイミング生成回路ＴＧＥＮは、書き込みアクセスされないスタンバイ中にウエイト要求信号ＰＲＥＡＤＹを高レベル（ネゲートレベル）に保持する（図４（ｄ））。
【００３０】
クロックサイクルＴ１において、バスブリッジＢＢは、ＣＰＵからの制御に基づいて、イネーブル信号ＰＥＮＡＢＬＥを１クロックサイクルの間、高レベルにアサートする（図４（ｅ））。クロック分周回路ＣＤＣのデコーダＤＥＣは、イネーブル信号ＰＥＮＡＢＬＥのアサートに応答して書き込み要求を認識する。
【００３１】
クロックサイクルＴ１において、アドレス信号ＰＡＤＤＲがプリセット選択レジスタＰＳＥＴＳＥＬを示しているため、デコーダＤＥＣは、プリセット書き込みイネーブル信号ＷＥＰＳＥＬを２クロックサイクルの間、高レベルにアサートする（図４（ｆ））。プリセットレジスタ部ＰＳＲＥＧのプリセット選択レジスタＰＳＥＴＳＥＬは、プリセット書き込みイネーブル信号ＷＥＰＳＥＬのアサート中に書き込みデータ信号ＰＷＤＡＴＡ（ＲＥＧ０）を受け、プリセットレジスタＲＥＧ０を選択するためのプリセット選択信号ＰＳＳＥＬ（ＲＥＧ０）を出力する（図４（ｇ））。
【００３２】
一方、クロックサイクルＴ２−Ｔ３において、ＣＰＵは、分周器ＤＩＶ０のみの分周比を変更するために、クロック分周回路ＣＤＣにアクセスする。具体的には、ＣＰＵは、バスブリッジＢＢを介して、分周器ＤＩＶ０の分周比設定レジスタＰＳＥＴ０を示すアドレス信号ＰＡＤＤＲ（ＰＳＥＴ０）と、所定の分周比ＤＲ０ａを示す書き込みデータＰＷＤＡＴＡ（ＤＲ０ａ）を出力する（図４（ｈ））。このとき、ＣＰＵは、バスブリッジＢＢを介して、書き込み制御信号ＰＷＲＩＴＥをアサートし続ける（図４（ｉ））。選択信号ＰＳＥＬ１、アドレス信号ＰＡＤＤＲ（ＰＳＥＴ０）および書き込み制御信号ＰＷＲＩＴＥは、外部回路からの分周比設定レジスタＰＳＥＴ０−１５のいずれかへの分周比の書き込み要求である。
【００３３】
クロックサイクルＴ３において、クロック分周回路ＣＤＣのセレクタＳＥＬは、選択したプリセットレジスタＲＥＧ０から分周比を示す６４ビットのデータを受け、書き込みデータＷＤＡＬＬ（ＲＥＧ０）として出力する（図４（ｊ））。クロック分周回路ＣＤＣのタイミング生成回路ＴＧＥＮは、プリセット書き込みイネーブル信号ＷＥＰＳＥＬに応答して、全書き込みイネーブル信号ＷＥＡＬＬを高レベルにアサートする（図４（ｋ））。
【００３４】
クロック分周回路ＣＤＣのデータ選択回路ＤＳＥＬ０−１５は、全書き込みイネーブル信号ＷＥＡＬＬのアサート中に、書き込みデータＷＤＡＬＬ（ＲＥＧ０）を４ビットずつ分周器ＤＩＶ０−ＤＩＶ１５に出力する。ＯＲ回路は、全書き込みイネーブル信号ＷＥＡＬＬに応答して、全ての書き込みイネーブル信号ＷＥＮ０−１５をアサートする（図４（ｌ））。そして、書き込みデータＷＤＡＬＬ（ＲＥＧ０−０、ＲＥＧ０−１、...、ＲＥＧ０−１５）が、分周器ＤＩＶ０−ＤＩＶ１５の分周比設定レジスタＰＳＥＴ０−ＰＳＥＴ１５に書き込まれる。分周器ＤＩＶ０−ＤＩＶ１５の分周比は、書き込みイネーブル信号ＷＥＮ０−１５が高レベルになっているクロックサイクルＴ４のクロック信号ＩＣＬＫ４の立ち上がりエッジに同期して確定する（図４（ｍ））。これにより、各分周器ＤＩＶ０−ＤＩＶ１５は、クロック信号ＩＣＬＫ０−１５の周波数を切り替える。
【００３５】
なお、プリセットレジスタ部ＰＳＲＥＧにより全ての分周器ＤＩＶ０−ＤＩＶ１５の分周比を切り替えるとき、セレクタＳＥＬおよびデータ選択回路ＤＳＥＬ（ＤＳＥＬ０−１５）によりデータパスの論理段数が多くなる。このため、実際には、セレクタＳＥＬの出力信号をフリップフロップで受けることにより、動作タイミングの改善を図っている。これにより、書き込みイネーブル信号ＷＥＤ０−１５を用いて各分周器ＤＩＶ０−ＤＩＶ１５の分周比を単独で切り替えるときに比べて１クロックサイクル遅れる。したがって、プリセットレジスタ部ＰＳＲＥＧにより分周比を設定している最中に、分周比設定レジスタＰＳＥＴ０−１５のいずれかへの書き込みアクセスが発生するときに、誤動作を防止する必要がある。このため、タイミング生成回路ＴＧＥＮは、プリセット書き込みイネーブル信号ＷＥＰＳＥＬを受けた次のクロックサイクル（この例ではＴ３）に、ウエイト要求信号ＰＲＥＡＤＹをアサートする（図４（ｎ））。ウエイト要求信号ＰＲＥＡＤＹのアサートを受けて、ＣＰＵは、アドレス信号ＰＡＤＤＲおよび書き込みデータＰＷＤＡＴＡの出力期間を１クロックサイクル延ばす（図４（ｏ））。
【００３６】
クロックサイクルＴ３において、バスブリッジＢＢは、ＣＰＵからの制御に基づいて、イネーブル信号ＰＥＮＡＢＬＥをアサートする（図４（ｐ））。なお、ウエイト要求信号ＰＲＥＡＤＹのアサートにより、イネーブル信号ＰＥＮＡＢＬＥをアサート期間は、１クロックサイクル延ばされる。デコーダＤＥＣは、高レベルのイネーブル信号ＰＥＮＡＢＬＥに応答して書き込み要求を認識する。
【００３７】
クロックサイクルＴ４において、アドレス信号ＰＡＤＤＲが分周比設定レジスタＰＳＥＴ０を示しているため、デコーダＤＥＣは、書き込みイネーブル信号ＷＥＤ０を１クロックサイクルの間、高レベルにアサートする（図４（ｑ））。これにより、書き込みイネーブル信号ＷＥＮ０が高レベルにアサートされる（図４（ｒ））。そして、書き込みイネーブル信号ＷＥＮ０に応答して、分周比ＤＲ０ａを示す書き込みデータＰＷＤＡＴＡが、分周器ＤＩＶ０の分周比設定レジスタＰＳＥＴ０に書き込まれる。分周器ＤＩＶ０の分周比は、書き込みイネーブル信号ＷＥＮ０の立ち下がりエッジに同期して確定する（図４（ｓ））。これにより、分周器ＤＩＶ０は、単独でクロック信号ＩＣＬＫ０の周波数を切り替える。
【００３８】
以上、この実施形態においても、上述した実施形態と同様の効果を得ることができる。さらに、選択するプリセットレジスタＲＥＧ０−３を示す値を格納するプリセット選択レジスタＰＳＥＴＳＥＬをプリセットレジスタ部ＰＳＲＥＧに形成することで、少ないビット数の書き込みデータ信号ＰＷＤＡＴＡにより、分周器ＤＩＶ０−１５の分周比を同時に切り替えできる。また、データセレクタＤＳＥＬ０−１５およびＯＲ回路により、各分周器ＤＩＶ０−１５の分周比を個別に変更できる。例えば、システムＳＹＳのある動作モードにおいて、１つの回路ブロックに供給されるクロックＩＣＬＫの周波数のみを頻繁に切り替える必要があるとき、プリセットレジスタＲＥＧ０−３の数を増やすことなく、クロックＩＣＬＫの周波数を効率よく切り替えられる。この結果、互いに異なる周波数のクロックＩＣＬＫが供給される複数の回路ブロックの動作効率を向上でき、クロック分周回路ＣＤＣが搭載される半導体集積回路およびシステムの性能を向上できる。
【００３９】
図５は、別の実施形態におけるクロック分周回路ＣＤＣを有するシステムＳＹＳの例を示している。上述した実施形態で説明した要素と同一の要素については、同一の符号を付し、これ等については、詳細な説明を省略する。この実施形態では、タイマＴＩＭＥＲからクロック分周回路ＣＤＣに周波数変更要求ＦＣＲＥＱが出力される。例えば、タイマＴＩＭＥＲは、減算カウンタを用いて所定の時間を計測し、カウンタ値がゼロになったときに周波数変更要求ＦＣＲＥＱをアサートする。クロック分周回路ＣＤＣは、周波数変更要求ＦＣＲＥＱを受けたときに、クロックＩＣＬＫ０−１５の周波数を、予め決められた値に切り替える。例えば、クロックＩＣＬＫ０−１５の周波数が、タイマＴＩＭＥＲからの周波数変更要求ＦＣＲＥＱに基づいて切り替えられることで、システムＳＹＳの動作モードは低電力モードにエントリする。システムＳＹＳのその他の構成は、クロック分周回路ＣＤＣが異なることを除き、図３と同様である。
【００４０】
図６は、図５に示したクロック分周回路ＣＤＣの例を示している。クロック分周回路ＣＤＣは、図２に示したクロック分周回路ＣＤＣにフリップフロップＦＦおよびセレクタＴＳＥＬを追加している。クロック分周回路ＣＤＣのその他の構成は、図２と同様である。
【００４１】
フリップフロップＦＦは、例えば、クロックＩＣＬＫ４に同期して周波数変更要求ＦＣＲＥＱを受け、周波数変更要求ＦＣＲＥＱｉとして出力する。セレクタＴＳＥＬは、周波数変更要求ＦＣＲＥＱｉが低レベルにネゲートされているときに、プリセット選択レジスタＰＳＥＴＳＥＬの出力をプリセット選択信号ＰＳＳＥＬとして出力する。セレクタＴＳＥＬは、周波数変更要求ＦＣＲＥＱｉが高レベルにアサートされているときに、２進数の固定値”００”をプリセット選択信号ＰＳＳＥＬとして出力する。固定値”００”は、プリセットレジスタＲＥＧ０を選択するために供給される。なお、セレクタＴＳＥＬに供給される固定値は、他のプリセットレジスタＲＥＧ１−３のいずれかを選択するために、２進数で”０１”、”１０”、”１１”のいずれかに設定されてもよい。
【００４２】
また、タイミング生成回路ＴＧＥＮは、プリセット書き込みイネーブル信号ＷＥＰＳＥＬおよび周波数変更要求ＦＣＲＥＱのオア論理を生成する回路を有している。そして、タイミング生成回路ＴＧＥＮは、プリセット書き込みイネーブル信号ＷＥＰＳＥＬまたは周波数変更要求ＦＣＲＥＱに応答して、全書き込みイネーブル信号ＷＥＡＬＬを所定の期間高レベルに設定する。タイミング生成回路ＴＧＥＮのその他の構成および動作は、図２および図４と同様である。
【００４３】
図７は、図５に示したクロック分周回路の動作の例を示している。図４と同じ動作については、詳細な説明は省略する。この例では、周波数変更要求ＦＣＲＥＱに応答して、クロックＩＣＬＫ０−１５の周波数が切り替えられる。
【００４４】
例えば、タイマＴＩＭＥＲは、クロックサイクルＴ１でカウンタ値がゼロになり、周波数変更要求ＦＣＲＥＱをアサートする（図７（ａ））。図６に示したフリップフロップＦＦは、次のクロックサイクルＴ２で周波数変更要求ＦＣＲＥＱを受け、周波数変更要求ＦＣＲＥＱｉをアサートする（図７（ｂ））。
【００４５】
セレクタＴＳＥＬは、高レベルにアサートされた周波数変更要求ＦＣＲＥＱを受け、２進数の固定値”００”をプリセット選択信号ＰＳＳＥＬとして出力する（図７（ｃ））。これにより、図４と同様に、プリセットレジスタＲＥＧ０に保持されている書き込みデータＷＤＡＬＬ（ＲＥＧ０）が出力され（図７（ｄ））、全書き込みイネーブル信号ＷＥＡＬＬに同期して４ビットずつ分周器ＤＩＶ０−ＤＩＶ１５に供給される。（図７（ｅ））。そして、タイマＴＩＭＥＲからの周波数変更要求ＦＣＲＥＱに応答して、各分周器ＤＩＶ０−ＤＩＶ１５により生成されるクロック信号ＩＣＬＫ０−１５の周波数は切り替えられる。
【００４６】
以上、この実施形態においても、上述した実施形態と同様の効果を得ることができる。さらに、タイマＴＩＭＥＲ等のシステムＳＹＳ内のモジュールからの周波数切り替え要求に応じて、分周器ＤＩＶ０−１５の分周比を切り替えることで、ＣＰＵを介さずにクロック信号ＩＣＬＫ０−１５の周波数の切り替えを行うことができる。
【００４７】
以上の詳細な説明により、実施形態の特徴点および利点は明らかになるであろう。これは、特許請求の範囲がその精神および権利範囲を逸脱しない範囲で前述のような実施形態の特徴点および利点にまで及ぶことを意図するものである。また、当該技術分野において通常の知識を有する者であれば、あらゆる改良および変更に容易に想到できるはずであり、発明性を有する実施形態の範囲を前述したものに限定する意図はなく、実施形態に開示された範囲に含まれる適当な改良物および均等物に拠ることも可能である。
【符号の説明】
【００４８】
ＢＢ‥バスブリッジ；ＢＵＳＩＦ‥バスインターフェース；ＣＤＣ‥クロック分周回路；ＣＬＫＧＥＮ‥クロック生成回路；ＤＥＣ‥デコーダ；ＤＩＶ‥分周器；ＤＲ、ＤＲ＃‥分周比；ＤＳＥＬ‥データ選択回路；ＦＣＲＥＱ、ＦＣＲＥＱｉ‥周波数変更要求；ＬＳＩ‥半導体集積回路；ＭＣＮＴ‥メモリコントローラ；ＰＳＥＴ‥分周比設定レジスタ；ＰＳＲＥＧ‥プリセット選択レジスタ；ＰＳＳＥＬ‥プリセット選択信号；ＲＥＧ‥プリセットレジスタ；ＲＥＧＣＮＴ‥レジスタ制御回路；ＲＥＧＧ‥プリセットレジスタ群；ＳＥＬ‥セレクタ；ＳＥＴＳＥＬ‥プリセット選択レジスタ；ＴＧＥＮ‥タイミング生成回路；ＷＤＡＬＬ‥書き込みデータ；ＷＥＡＬＬ‥全書き込みイネーブル信号；ＷＥＤ０−１５‥書き込みイネーブル信号；ＷＥＮ０−１５‥書き込みイネーブル信号；ＷＥＰＳＥＬ‥プリセット書き込みイネーブル信号
【図１】
0005609326.tif 000002
【図２】
0005609326.tif 000003
【図３】
0005609326.tif 000004
【図４】
0005609326.tif 000005
【図５】
0005609326.tif 000006
【図６】
0005609326.tif 000007
【図７】
0005609326.tif 000008