(57)【要約】【課題】不揮発性メモリを備えた半導体装置において、高速動作の場合と低速動作の場合とに切替え可能にするとともに、低速動作時の消費電力を従来よりも削減する。【解決手段】半導体装置１において、クロック生成回路４０は、高周波モード時には低周波モード時よりも周波数の高いクロックを生成する。中央処理装置２０は、データバス１１を介して不揮発性メモリ１０から読み出された読出データを取得する。クロック遅延部５０Ａは、縦続接続された複数段のバッファ５５を介した第１の経路５１と複数段のバッファ５５を迂回した第２の経路５２とを含む。クロック遅延部５０Ａは、高周波モード時には、クロック生成回路４０からのクロックを第１の経路５１を介して中央処理装置２０に供給し、低周波モード時には、クロック生成回路４０からのクロックを第２の経路５２を介して中央処理装置２０に供給する。【選択図】図１
2013088916.tif 000002
【特許請求の範囲】
【請求項１】
動作モードとして低周波モードと高周波モードとを有し、前記高周波モード時には前記低周波モード時よりも周波数の高いクロックを生成するクロック生成回路と、
前記クロック生成回路で生成されたクロックに基づいて動作する不揮発性メモリと、
前記不揮発性メモリに接続されたデータバスと、
前記クロック生成回路で生成されたクロックに基づいて動作し、前記データバスを介して前記不揮発性メモリから読み出された読出データを取得する中央処理装置と、
前記クロック生成回路から前記中央処理装置へ至るクロックの供給経路に設けられたクロック遅延部とを備え、
前記クロック遅延部は、縦続接続された複数段のバッファを介した第１の経路と前記複数段のバッファを迂回した第２の経路とを含み、前記高周波モード時には、前記クロック生成回路からのクロックを前記第１の経路を介して前記中央処理装置に供給し、
前記クロック遅延部は、前記低周波モード時には、前記クロック生成回路からのクロックを前記第２の経路を介して前記中央処理装置に供給する、半導体装置。
【請求項２】
前記クロック遅延部は、
前記第１の経路の初段に設けられた第１の論理ゲートと、
前記第２の経路の初段に設けられた第２の論理ゲートとをさらに含み、
前記高周波モード時には、前記第１の論理ゲートは前記クロック生成回路からのクロックを通過させ、前記第２の論理ゲートは一定の論理レベルの信号を出力し、
前記低周波モード時には、前記第２の論理ゲートは前記クロック生成回路からのクロックを通過させ、前記第１の論理ゲートは一定の論理レベルの信号を出力する、請求項１に記載の半導体装置。
【請求項３】
前記半導体装置は、前記複数段のバッファおよび前記第１の論理ゲートへの電源電圧の供給経路に設けられた電源スイッチをさらに備え、
前記低周波モード時には、前記電源スイッチはオフ状態になる、請求項２に記載の半導体装置。
【請求項４】
前記半導体装置は、さらに、前記中央処理装置から書換え可能な第１および第２のレジスタを備え、
前記クロック生成回路は、前記第１のレジスタから出力された第１の制御信号の論理レベルに応じて前記低周波モードまたは前記高周波モードに切替わり、
前記第１および第２の論理ゲートは、前記第２のレジスタから出力された第２の制御信号の論理レベルに応じて、前記クロック生成回路からのクロックを通過させるか、または一定の論理レベルの信号を出力するかを切替える、請求項２に記載の半導体装置。
【請求項５】
半導体装置であって、
クロック生成回路と、
前記クロック生成回路で生成されたクロックに基づいて動作する不揮発性メモリと、
前記不揮発性メモリに接続されたデータバスと、
前記クロック生成回路で生成されたクロックに基づいて動作し、前記データバスを介して前記不揮発性メモリから読み出された読出データを取得する中央処理装置とを備え、
前記中央処理装置は、前記読出データを所定のウェイトサイクルの経過後に取得する低速読出モードと、前記読出データをノーウェイトで取得する高速読出モードとを有し、
前記半導体装置は、さらに、前記クロック生成回路から前記中央処理装置へ至るクロックの供給経路に設けられたクロック遅延部を備え、
前記クロック遅延部は、縦続接続された複数段のバッファを介した第１の経路と前記複数段のバッファを迂回した第２の経路とを含み、前記高速読出モード時には、前記クロック生成回路からのクロックを前記第１の経路を介して前記中央処理装置に供給し、
前記クロック遅延部は、前記低速読出モード時には、前記クロック生成回路からのクロックを前記第２の経路を介して前記中央処理装置に供給する、半導体装置。
【請求項６】
半導体装置であって、
動作モードとして低周波モードと高周波モードとを有し、前記高周波モード時には前記低周波モード時よりも周波数の高いクロックを生成するクロック生成回路と、
前記クロック生成回路で生成されたクロックに基づいて動作する不揮発性メモリと、
前記不揮発性メモリに接続されたデータバスと、
前記クロック生成回路で生成されたクロックに基づいて動作し、前記データバスを介して前記不揮発性メモリから読み出された読出データを取得する中央処理装置とを備え、
前記中央処理装置は、前記読出データを所定のウェイトサイクルの経過後に取得する低速読出モードと、前記読出データをノーウェイトで取得する高速読出モードとを有し、
前記半導体装置は、さらに、前記クロック生成回路から前記中央処理装置へ至るクロックの供給経路に設けられたクロック遅延部を備え、
前記クロック遅延部は、縦続接続された複数段のバッファを介した第１の経路と前記複数段のバッファを迂回した第２の経路とを含み、前記高周波モードかつ前記高速読出モードのときには、前記クロック生成回路からのクロックを前記第１の経路を介して前記中央処理装置に供給し、
前記クロック遅延部は、前記低周波モードまたは前記低速読出モードのときには、前記クロック生成回路からのクロックを前記第２の経路を介して前記中央処理装置に供給する、半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、クロック発生回路およびクロック分配回路を備えた半導体装置に関する。
【背景技術】
【０００２】
クロック発生回路で発生したクロックを分配する際には、配線容量や遅延時間などによるタイミングのずれ、すなわち、クロックスキュー（Clock  Skew）による誤動作を防止する必要がある。たとえば、特開２０００−１２２７５１号公報（特許文献１）に記載のクロック分配回路は、クロックツリー構造に接続した複数のクロックラインと、各クロックラインに挿入した複数のバッファとからなる。各クロックラインを構成するバッファの出力分岐数が異なるように接続して、各クロックラインにおけるクロックの遅延時間を微少に変化させるようにしたことにより、他の半導体素子や配線長による遅延時間のばらつきによるスキューのマージンを、動作上取れるようにしている。
【０００３】
クロック分配に直接関係したものではないが、クロックの遅延量を制御するための技術が以下の各文献に開示されている。
【０００４】
国際公開第００／４５２４６号（特許文献２）は、遅延回路、セレクタ及びコントロール回路を有するクロック生成回路を開示する。ここで、遅延回路は、入力クロック信号を遅延させる縦続接続された複数のバッファと、異なる遅延時間だけ遅延されたクロック信号をそれぞれ出力する複数の出力端子を有する。セレクタは、コントロール回路からの出力に基づいて、遅延回路の複数の出力端子の中から一つを選択する。
【０００５】
特開２００７−２４１４４１号公報（特許文献３）は、入力されたクロックに基づいて、データ受け取り側の装置に適した遅延量でデータを出力するデータ出力装置について開示している。具体的に、この文献に記載のデータ出力装置は、多段に接続された複数の遅延手段と、この遅延手段を通る個数の異なるクロックのうちいずれかのクロックを選択する遅延量選択手段と、選択されたクロックに合わせてデータを出力するデータ出力手段とを含む。
【０００６】
クロックスキューによる誤動作を防止するために、クロック周波数を制御する方法も知られている。たとえば、特開平９−２４４７７０号公報（特許文献４）に記載の電子機器は、電源電圧が降下電圧まで低下したとき誤動作防止のためにＣＰＵ（中央処理装置：Central  Processing  Unit)のアクセス周波数を所定量遅くし、降下電圧よりも低いリセット電圧まで低下したときＣＰＵをリセットする。
【０００７】
特開２００４−８６５３１号公報（特許文献５）に記載のマイクロコントローラでは、高い性能が要求されるときにのみクロック周波数を高くして高速で動作させ、それ以外は低速で動作させることで、高性能化と、低消費電力化との両立が図られている。特にこの文献の場合には、さらなる低消費電力化を図るために、クロック周波数に応じて遅延回路に設けられたバッファの駆動能力を調整している。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２０００−１２２７５１号公報
【特許文献２】国際公開第００／４５２４６号
【特許文献３】特開２００７−２４１４４１号公報
【特許文献４】特開平９−２４４７７０号公報
【特許文献５】特開２００４−８６５３１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
ところで、フラッシュメモリなどの不揮発性メモリは一般に、ＤＲＡＭ（Dynamic  Random  Access  Memory）などの揮発性メモリに比べてアクセス時間が長い。このため、ＣＰＵを高クロック周波数で動作させている状態で、ＣＰＵが不揮発性メモリからノーウェイト（待ち時間０）でデータを読み出す場合には、タイミングのずれが生じないようにＣＰＵへ供給するクロックの位相を多数段のバッファによって大幅に遅延させる必要が生じる。
【００１０】
これに対して、ＣＰＵを低クロック周波数で動作させる場合やＣＰＵが読出データを取り込む際にウェイトサイクルを挿入する場合には上記のような位相調整の必要はない。しかしながら、高周波数かつノーウェイトの場合に合わせて多数段のバッファを設けているので、低速読出時またはウェイトサイクル挿入時には多数段のバッファによって無駄な電力消費が生じていることになる。
【００１１】
この発明は、上記の問題点を考慮してなされたものであり、その目的は、不揮発性メモリを備えた半導体装置において、高速動作の場合と低速動作の場合とに切替え可能にするとともに、低速動作時の消費電力を従来よりも削減することである。
【課題を解決するための手段】
【００１２】
この発明の実施の一形態による半導体装置は、クロック生成回路と、不揮発性メモリと、データバスと、中央処理装置と、クロック遅延部とを備える。クロック生成回路は、動作モードとして低周波モードと高周波モードとを有し、高周波モード時には低周波モード時よりも周波数の高いクロックを生成する。不揮発性メモリは、クロック生成回路で生成されたクロックに基づいて動作する。データバスは、不揮発性メモリに接続される。中央処理装置は、クロック生成回路で生成されたクロックに基づいて動作し、データバスを介して不揮発性メモリから読み出された読出データを取得する。クロック遅延部は、クロック生成回路から中央処理装置へ至るクロックの供給経路に設けられる。クロック遅延部は、縦続接続された複数段のバッファを介した第１の経路と複数段のバッファを迂回した第２の経路とを含み、高周波モード時には、クロック生成回路からのクロックを第１の経路を介して中央処理装置に供給する。クロック遅延部は、低周波モード時には、クロック生成回路からのクロックを第２の経路を介して中央処理装置に供給する。
【発明の効果】
【００１３】
上記の実施の形態によれば、高周波モードにおいて不揮発性メモリからデータを読み出すときには、複数段のバッファを介してクロックが中央処理装置に供給される。一方、低周波モードにおいて不揮発性メモリからデータを読み出すときには、複数段のバッファを迂回してクロックが供給される。これにより、高速動作の場合と低速動作の場合とに切替え可能であるとともに、低速動作時の消費電力を従来よりも削減することができる。
【図面の簡単な説明】
【００１４】
【図１】この発明の実施の形態１による半導体装置１の構成を示すブロック図である。
【図２】低周波モードの場合における、図１の半導体装置１の各部の信号波形を示すタイミング図である。
【図３】高周波モードの場合における、図１の半導体装置１の各部の信号波形を示すタイミング図である。
【図４】この発明の実施の形態２による半導体装置２の構成を示すブロック図である。
【図５】図４のライトイネーブル端子付きのＤフリップフロップ回路の構成例を示す回路図である。
【図６】低速読出モードの場合における、図４の半導体装置２の各部の信号波形を示すタイミング図である。
【図７】高速読出モードの場合において、半導体装置２の各部の信号波形を示すタイミング図である。
【図８】この発明の実施の形態３による半導体装置３の構成を示すブロック図である。
【図９】この発明の実施の形態４による半導体装置４の構成を示すブロック図である。
【発明を実施するための形態】
【００１５】
以下、この発明の実施の形態について図面を参照して詳しく説明する。なお、同一または相当する部分には同一の参照符号を付して、その説明を繰返さない。
【００１６】
＜実施の形態１＞
［半導体装置１の構成］
図１は、この発明の実施の形態１による半導体装置１の構成を示すブロック図である。図１を参照して、半導体装置１は、ＣＰＵ２０、フラッシュメモリ１０、ＳＲＡＭ（Static  Random  Access  Memory）、および通信インターフェースなどの多数の機能モジュールを内蔵したマイクロコンピュータチップである（ＣＰＵ２０およびフラッシュメモリ１０以外の機能モジュールの多くについては図示を省略している）。これらの機能モジュールはバス１１を介して接続される。ＣＰＵ２０内の論理回路２２は、バスインターフェース（Bus  I/F）２１を介してバス１１と接続される。バス１１には、制御バス、アドレスバス、およびデータバスが含まれる。
【００１７】
半導体装置１は、さらに、制御レジスタ群３０と、クロック生成回路４０と、クロックの位相を調整するための複数の位相調整部（クロック遅延部とも称する）５０Ａ，５０Ｂとを含む。
【００１８】
制御レジスタ群３０は、クロック生成回路４０で生成するクロックの周波数を切替えるための制御レジスタ３１と、位相調整部５０Ａ，５０Ｂの動作を制御するための制御レジスタ３２とを含む。制御レジスタ３１，３２の設定値はＣＰＵ２０から読み出したり書き換えたりすることができる。
【００１９】
クロック生成回路４０は、半導体装置１全体の動作基準となるクロックを生成する。クロック生成回路４０は、動作モードとして高周波モードと低周波モードとを有する。高周波モードの場合のほうが低周波モードの場合よりも高い周波数のクロックが生成される。実施の形態１の場合、制御レジスタ３１から出力された制御信号ＣＳ１がハイレベル（Ｈレベル）のときクロック生成回路４０は高周波モードで動作し、制御信号ＣＳ１がローレベル（Ｌレベル）のときクロック生成回路４０は低周波モードで動作する。クロック生成回路４０で生成されたクロックは、半導体装置１の各部に分配される。
【００２０】
クロック分配方式としてクロックツリーを用いる場合、通常の方法では、クロックの起点から各フリップフロップ（ＦＦ：Flip-Flop）のクロック入力端子までの遅延が均一（ゼロスキュー）になるように調整される。ゼロスキューを実現するために、各フリップフロップまでの配線の長さを均一化するとともに、各フリップフロップまでのバッファの個数を等しくする。
【００２１】
一方、ゼロスキューでは動作周波数の仕様を満たせなくなる回路では、所定の位相差を与えるユースフルスキューが用いられる。具体的には、データレシーバ側のフリップフロップに接続されるクロックラインにバッファを追加する。これによって、データ送出側のフリップフロップやメモリなどのクロックの位相に対して、データレシーバ側のクロックの位相を遅らせて、動作周波数の仕様を満たすようにする。
【００２２】
図１の場合には、フラッシュメモリ１０に供給されるクロックＣＬＫ１に対して、ＣＰＵ２０内のフリップフロップ２３に供給するクロックＣＬＫ４の位相を遅らせるために位相調整部５０Ａが設けられている。なお、図１には、ＣＰＵ２０内に設けられるフリップフロップの代表としてフリップフロップ２３が示されている。フリップフロップ２３のデータ端子には論理回路２２からデータＤＴ２が入力される。
【００２３】
位相調整部５０Ａは、多数段のバッファ５５からなる遅延回路５６を含む第１のクロック経路５１と、遅延回路５６を迂回した第２のクロック経路５２とを含む。第１のクロック経路５１の遅延量は、第２のクロック経路５２の遅延量よりも大きい。
【００２４】
第１のクロック経路５１は高周波モードのとき用いられる。これによって、データアクセスが遅いフラッシュメモリ１０からノーウェイトでデータを読み出すことができる。一方、第２のクロック経路５２は低周波モードのとき用いられる。第２のクロック経路５２には複数段のバッファが設けられていないので、消費電力を削減することができる。
【００２５】
位相調整部５０Ａは、上記の第１および第２のクロック経路５１，５２の切替えを行なうための構成として、クロックセレクタ（Clock  Selector）５８と、ゲーティングセル（gating  cell）５３，５４と、インバータ５７とを含む。クロックセレクタ５８およびゲーティングセル５３，５４は、クロック経路切替用の制御レジスタ３２から出力される制御信号ＣＳ２によって制御される。
【００２６】
ＣＰＵ２０内のフリップフロップ２３には、クロックセレクタ５８からクロックＣＬＫ４が供給される。クロックセレクタ５８は、遅延大のクロック経路５１からの信号ＣＬＫ２と遅延小のクロック経路５２からの信号ＣＬＫ３の一方を選択的に出力する。
【００２７】
遅延大のクロック経路５１は、高周波モード時にフリップフロップ２３のクロック端子にクロックＣＬＫ４を供給するための経路である。クロック経路５１の初段にクロックゲーティングセル５３が設けられ、クロックゲーティングセル５３の後段に遅延回路５６が設けられる。遅延回路５６によってクロックの位相を遅らせて、高周波モード時におけるフリップフロップ２３のセットアップタイムを確保している。
【００２８】
遅延小のクロック経路５２は、低周波モード時にフリップフロップ２３のクロック端子にクロックＣＬＫ４を供給するための経路である。クロック経路５２の初段にクロックゲーティングセル５４が設けられる。クロック経路５２は、遅延大のクロック経路５１よりバッファの段数が少ないので、クロック経路５２の遅延量はクロック経路５１よりも小さい。
【００２９】
クロック経路切替用の制御レジスタ３２の設定値に応じたクロック制御信号ＣＳ２によって、遅延大のクロック経路５１と遅延小のクロック経路５２とが切替えられる。高周波モード時にはクロック制御信号ＣＳ２をＨレベルに設定することによって遅延大のクロック経路５１が選択され、低周波モード時にはクロック制御信号ＣＳ２をＬレベルに設定することによって遅延小のクロック経路５２が選択される。
【００３０】
クロック生成回路４０、制御レジスタ３２、およびゲーティングセル５３，５４の間の接続関係は次のとおりである。制御レジスタ３２からの制御信号ＣＳ２がゲーティングセル５３の第１の入力端子に入力され、インバータ５７によって制御信号ＣＳ２の論理レベルを反転させた信号がゲーティングセル５４の第１の入力端子に入力される。ゲーティングセル５３，５４の各第２の入力端子には、クロック生成回路４０によって生成されたクロックがバッファ４１，４２Ａ，４４Ａを介して入力される。ゲーティングセル５３，５４の各々は、第１および第２の入力端子に入力された信号の論理積を出力する。
【００３１】
したがって、高周波モード時には制御信号ＣＳ２をＨレベルに設定することによって、ゲーティングセル５３は入力されたクロックを通過させ、ゲーティングセル５４はＬレベルの信号を出力する。一方、低周波モード時には制御信号ＣＳ２をＬレベルに設定することによって、ゲーティングセル５４は入力されたクロックを通過させ、ゲーティングセル５３はＬレベルの信号を出力する。
【００３２】
高周波モード時には、フラッシュメモリ１０からデータ読出を行なう他の機能モジュールに設けられたフリップフロップへ供給されるクロックも、位相を大幅に遅らせる必要がある。このため、ＣＰＵ２０用のクロックラインに設けられた位相調整部５０Ａと同様の構成の位相調整部が、他のフリップフロップへのクロック供給経路にも設けられる。図１には、フリップフロップ１２，１３へのクロック供給経路に設けられた位相調整部５０Ｂが一例として示されている。位相調整部５０Ｂに設けられたゲーティングセル５３，５４へは、クロック生成回路４０で生成されたクロックがバッファ４１，４２Ｂ，４４Ｂを介して入力される。
【００３３】
［半導体装置１の動作］
図２は、低周波モードの場合における、図１の半導体装置１の各部の信号波形を示すタイミング図である。図２のタイミング図は、上から順に、クロック周波数切替用の制御レジスタ３１から出力されるクロック制御信号ＣＳ１、フラッシュメモリ１０用のクロックＣＬＫ１、遅延大の第１のクロック経路５１を通過してクロックセレクタ５８に入力されるクロックＣＬＫ２、遅延小の第２のクロック経路５２を通過してクロックセレクタ５８に入力されるクロックＣＬＫ３、フリップフロップ２３のクロック端子に入力されるクロックＣＬＫ４、アドレスバスを介してフラッシュメモリに入力されるアドレス信号、フラッシュメモリ１０からバス１１に出力される読出データＤＴ１、およびＣＰＵ２０内のフリップフロップ２３のデータ端子に入力される読出データＤＴ２の各電圧波形を示す。
【００３４】
図１、図２を参照して、制御信号ＣＳ１をＬレベルに設定することによってクロック生成回路４０は低周波モードで動作する。図２では、一例として低周波モードでのクロック周波数を５０ＭＨｚ（周期：２０ｎｓ）とし、フラッシュメモリ１０のアクセス時間Ｔａｃ１（時刻ｔ１から時刻ｔ５まで）を約９ｎｓとし、フラッシュメモリ１０からフリップフロップ２３までのパス遅延（path  delay）Ｔｄ１（時刻ｔ５から時刻ｔ７まで）を約４ｎｓとしている。
【００３５】
低周波モード時には、遅延大のクロック経路５１で位相を遅らせたクロックを使用しなくても、フラッシュメモリ１０からの読出データＤａｔａ１をノーウェイトでフリップフロップ２３に取り込むことが可能である。このため、Ｌレベルの制御信号ＣＳ２によって遅延小のクロック経路５２を選択する。このとき、ＣＰＵ２０のフリップフロップ２３に入力されるクロックＣＬＫ４は、フラッシュメモリ１０に入力されるクロックＣＬＫ１とほぼ同位相になる（クロックセレクタ５８からフリップフロップ２３までの若干のパス遅延が加わる）。遅延大のクロック経路５１と遅延小のクロック経路５２は互いに排他的にクロックセレクタ５８で選択される。選択されなかった方のクロック経路５１は初段のゲーティングセル５３にてゲーティングされるのでクロックＣＬＫ２はトグルせずにＬレベルを示す。結果として、読出データＤａｔａ１は、アドレスＡｄｄｒ１がフラッシュメモリ１０に入力された時刻ｔ１から約２０ｎｓ経過した時刻ｔ１０にフリップフロップ２３に取り込まれる。
【００３６】
図３は、高周波モードの場合における、図１の半導体装置１の各部の信号波形を示すタイミング図である。図３には、図２の場合と同一箇所の電圧波形が示されている。
【００３７】
図１、図３を参照して、制御信号ＣＳ１をＨレベルにすることによってクロック生成回路４０は高周波モードで動作する。図３では、高周波モードでのクロック周波数の一例として１００ＭＨｚ（周期：１０ｎｓ）の場合が示されている。時刻ｔ１からｔ６までと時刻ｔ６からｔ９までとがそれぞれ１周期に対応する。フラッシュメモリ１０のアクセス時間Ｔａｃ１（時刻ｔ１から時刻ｔ５まで）およびフラッシュメモリ１０からフリップフロップ２３までデータが伝送される間のパス遅延Ｔｄ１（時刻ｔ５から時刻ｔ７まで）は、図２の場合と同じにしている。
【００３８】
高周波モード時には、クロック周期１０ｎｓに対して、フラッシュメモリ１０のアクセス時間Ｔａｃ１が９ｎｓ近くあり、フラッシュメモリ１０からＣＰＵ２０内のフリップフロップ２３までのパス遅延を含めると合計１０ｎｓ以上かかる。このため、ノーウェイトでフラッシュメモリ１０からの読出データＤａｔａ１をフリップフロップ２３に取り込むためには、フリップフロップ２３に入力されるクロックＣＬＫ４をフラッシュメモリ１０に入力されるクロックＣＬＫ１よりも４ｎｓ程度遅延させなければならない。
【００３９】
したがって、高周波モード時には、Ｈレベルの制御信号ＣＳ２によって遅延大のクロック経路５１が選択される。遅延大のクロック経路５１を通過したクロックＣＬＫ２は、フラッシュメモリ１０に入力されるクロックＣＬＫ１よりも遅延回路５６に応じた遅延時間Ｔｄ２（時刻ｔ１から時刻ｔ３まで）だけ遅れる。フリップフロップ２３に入力されるクロックＣＬＫ４は、遅延大のクロック経路５１を通過したクロックＣＬＫ２とほぼ同位相になる。選択されなかった方のクロック経路５２は初段のゲーティングセル５４にてゲーティングされるのでクロックＣＬＫ３はトグルせずにＬレベルを示す。結果として、読出データＤａｔａ１は、アドレスＡｄｄｒ１がフラッシュメモリ１０に入力された時刻ｔ１から約１３ｎｓ経過した時点（時刻ｔ８）でフリップフロップ２３に取り込まれる。
【００４０】
［効果］
以上のとおり、実施の形態１による半導体装置１は、遅延大のクロック経路５１と遅延小のクロック経路５２とが選択可能に構成される。動作周波数の上限で半導体装置１を動作させる高周波モード時には遅延大のクロック経路５１を選択することによって、フラッシュメモリ１０に供給されるクロックＣＬＫ１とＣＰＵ２０内のフリップフロップ２３に供給されるクロックＣＬＫ４とに位相差をつける。これによって、ＣＰＵ２０がフラッシュメモリ１０からノーウェイトでデータを読み出せるようになる。
【００４１】
一方、低消費電力化のためにクロックの周波数を下げた低周波モードで半導体装置１を動作させる場合には、フラッシュメモリ１０に供給されるクロックＣＬＫ１とＣＰＵ２０内のフリップフロップ２３に供給されるクロックＣＬＫ４とに位相差をつける必要はない。この場合、消費電力を削減するために遅延小のクロック経路５２を選択する。
【００４２】
遅延大のクロック経路５１を選択した場合には、遅延回路５６を構成する各バッファ５５がトグル動作を繰返すために消費電力が大きくなる。上記のように低周波モード時にゲーティングセル５３，５４によって遅延小のクロック経路５２を選択することによって、遅延大のクロック経路５１に設けられた遅延回路５６にはＬレベルの信号が入力され、各バッファ５５の出力はＨレベルまたはＬレベルに固定される。この結果、遅延回路５６がトグル動作をしないので、消費電力が削減できる。
【００４３】
なお、高周波モードと低周波モードとの切替えおよびクロック経路５１，５２の選択は、ＣＰＵ２０から制御レジスタ３１，３２の値を設定することによって容易に行なうことができる。
【００４４】
＜実施の形態２＞
［半導体装置２の構成］
図４は、この発明の実施の形態２による半導体装置２の構成を示すブロック図である。
【００４５】
図４の半導体装置２は、クロック周波数を切替えるための制御レジスタ３１に代えて、ウェイトサイクル（wait  cycle）を制御するための制御レジスタ３３を含む点で、図１の半導体装置１と異なる。図４の場合、クロック生成回路４０は高周波モードに固定される。
【００４６】
図４の半導体装置２は、さらに、図１のＣＰＵ２０内に設けられたフリップフロップ２３に代えて、ライトイネーブル（ＷＥ：Write  Enable）端子付きのフリップフロップ２３Ａが設けられている点で図１の半導体装置１と異なる。
【００４７】
ウェイトサイクルを制御するための制御レジスタ３３は、フラッシュメモリ１０と、ＣＰＵ２０Ａ内のバスインターフェース２１Ａとに接続される。制御レジスタ３３は、ＣＰＵ２０Ａによって読み書きが可能である。フラッシュメモリ１０からのデータ読出時に、制御レジスタ３３の設定値に応じた所定数のウェイトサイクルが挿入される。より詳細には、制御レジスタ３３の設定値に応じて、バスインターフェース２１Ａからフリップフロップ２３ＡのＷＥ端子に出力されるＷＥ信号が活性化する（Ｈレベルになる）タイミングが変化する。ＷＥ信号を活性化するタイミングによって、フリップフロップ２３がデータを取り込むタイミングを制御する。
【００４８】
以下、ＣＰＵ２０Ａがノーウェイトでフラッシュメモリ１０からデータを読み出す場合を高速読出モードと称し、ＣＰＵ２０Ａが所定数のウェイトサイクルの経過後にフラッシュメモリ１０からデータを読み出す場合を低速読出モードと称する。実施の形態２の場合には、制御レジスタ３３から出力される制御信号ＣＳ３がＨレベルのときＣＰＵ２０Ａは高速読出モードになり、制御信号ＣＳ３がＬレベルのときＣＰＵ２０Ａは低速読出モードになるものとする。
【００４９】
高速読出モード時には、実施の形態１の高周波モード時の場合と同様に、フラッシュメモリ１０に供給されるクロックＣＬＫ１とＣＰＵ２０Ａ内のフリップフロップ２３Ａに供給するクロックＣＬＫ４とに位相差をつける必要がある。このため、制御レジスタ３２をＨレベルに設定することにより、遅延大のクロック経路５１を選択する。
【００５０】
低速読出モード時には、実施の形態１の低周波モード時の場合と同様に、フラッシュメモリ１０に供給されるクロックＣＬＫ１とＣＰＵ２０Ａ内のフリップフロップ２３Ａに供給するクロックＣＬＫ４とに位相差をつける必要はない。そこで、消費電力を削減するために、制御レジスタ３２をＬレベルに設定することにより遅延小のクロック経路５２を選択する。
【００５１】
図４のその他の構成は図１の場合と同じであるので、同一または相当する部分には同一の参照符号を付して説明を繰返さない。
【００５２】
図５は、図４のライトイネーブル端子付きのＤフリップフロップ回路の構成例を示す回路図である。図５（Ａ）の回路例では、ＷＥ端子付きのフリップフロップ２３Ａは、ＷＥ端子のない通常のフリップフロップ６０とセレクタ６１とを含む。セレクタ６１は、フリップフロップ６０の出力信号とフラッシュメモリ１０からの読出データＤＴ２とを受け、ＷＥ信号に応じて選択された一方の信号をフリップフロップ６０のデータ端子Ｄに入力する。図５の場合、セレクタ６１は、ＷＥ信号がＨレベル（“１”）のときは読出データＤＴ２を出力し、ＷＥ信号がＬレベル（“０”）のときはフリップフロップ６０の出力信号をデータ端子Ｄに再入力する。フリップフロップ６０のクロック端子ＣＫにはクロックＣＬＫ４が入力され、フリップフロップ６０の出力信号は後段の論理回路２４に与えられる。
【００５３】
図５（Ｂ）の回路例では、ＷＥ端子付きのフリップフロップ２３Ａは、ＷＥ端子のない通常のフリップフロップ６０とＡＮＤゲート６２とを含む。フリップフロップ６０のデータ端子Ｄにはフラッシュメモリ１０から読出データＤＴ２が入力される。ＡＮＤゲート６２の第１および第２の入力端子にはＷＥ信号とクロックＣＬＫ４とが入力される。ＡＮＤゲート６２の出力信号はフリップフロップ６０のクロック端子ＣＫに入力される。フリップフロップ６０の出力信号は後段の論理回路２４に与えられる。
【００５４】
［半導体装置２の動作］
図６は、低速読出モードの場合における、図４の半導体装置２の各部の信号波形を示すタイミング図である。図６のタイミング図は、上から順に、ウェイトサイクル制御用の制御レジスタ３３から出力される制御信号ＣＳ３、フラッシュメモリ１０用のクロックＣＬＫ１、遅延大のクロック経路５１を通過してクロックセレクタ５８に入力されるクロックＣＬＫ２、遅延小のクロック経路５２を通過してクロックセレクタ５８に入力されるクロックＣＬＫ３、フリップフロップ２３Ａのクロック端子ＣＫに入力されるクロックＣＬＫ４、アドレスバスを介してフラッシュメモリに入力されるアドレス信号、フラッシュメモリ１０からバス１１に出力される読出データＤＴ１、ライトイネーブル（ＷＥ）信号、およびＣＰＵ２０内のフリップフロップ２３Ａのデータ端子Ｄに入力された読出データＤＴ２の各電圧波形を示す。
【００５５】
図６の場合のクロック周波数は、一例として、実施の形態１の高周波モードの場合と同じ１００ＭＨｚ（周期：１０ｎｓ）である。図６において、時刻ｔ１からｔ６までと時刻ｔ６からｔ９までとがそれぞれ１周期に対応する。低速読出モード（制御信号ＣＳ３がＬレベル）でのフラッシュメモリのアクセス時間Ｔａｃ２（時刻ｔ１から時刻ｔ２１まで）は、高速読出モード（制御信号ＣＳ３がＨレベル）の場合よりもやや長くなっている。具体的に図６の場合、アクセス時間Ｔａｃ２を約１２ｎｓとしている。フラッシュメモリ１０からフリップフロップ２３までデータが転送されるときのパス遅延（path  delay）Ｔｄ１（時刻ｔ２１から時刻ｔ２２まで）は、実施の形態１の場合と同じ約４ｎｓにしている。
【００５６】
ＣＰＵ２０Ａがフラッシュメモリ１０からデータを読み出すときにウェイトサイクルが挿入される低速読出モード時（制御信号ＣＳ３がＬレベルのとき）には、遅延大のクロック経路５１で位相を遅らせたクロックＣＬＫ２を使用しなくても、フラッシュメモリ１０からの読出データＤａｔａ１をフリップフロップ２３Ａに取り込むことが可能である。このため、Ｌレベルの制御信号ＣＳ２によって遅延小のクロック経路５２を選択する。このとき、ＣＰＵ２０Ａのフリップフロップ２３Ａに入力されるクロックＣＬＫ４は、フラッシュメモリ１０に入力されるクロックＣＬＫ１とほぼ同位相になる（クロックセレクタ５８からフリップフロップ２３Ａまでの若干のパス遅延が加わる）。選択されなかった方のクロック経路５１は初段のゲーティングセル５３にてゲーティングされるのでクロックＣＬＫ２はトグルせずに一定の論理レベル（すなわち、Ｌレベル）を示す。
【００５７】
低速読出モードの場合のＷＥ信号は、ＣＰＵ２０Ａからフラッシュメモリ１０に読出アドレスが入力されてから２周期目のクロックＣＬＫ４の立下がりエッジ（時刻ｔ２３）に応答して、Ｈレベルに変化する（時刻ｔ２４）。この後、ＷＥ信号は、クロックＣＬＫ４の３周期目の立下がりエッジ（時刻ｔ２５）に応答してＬレベルに変化する（時刻ｔ２６）。フリップフロップ２３Ａは、ＷＥ信号がＨレベルとなっている活性状態の間で、クロックＣＬＫ４がＨレベルに立上がった時刻ｔ１０にフラッシュメモリ１０からの読出データＤａｔａ１を取り込む。結果として、読出データＤａｔａ１は、アドレスＡｄｄｒ１がフラッシュメモリ１０に入力された時刻ｔ１から約２０ｎｓ経過した時刻ｔ１０にフリップフロップ２３Ａに取り込まれる。
【００５８】
図７は、高速読出モードの場合において、半導体装置２の各部の信号波形を示すタイミング図である。図７には、図６の場合と同一箇所の電圧波形が示されている。
【００５９】
図７の場合のクロック周波数は図６の場合と同じ１００ＭＨｚ（周期１０ｎｓ）であり、時刻ｔ１からｔ６までと時刻ｔ６からｔ９までとがそれぞれ１周期に対応する。高速読出モード（制御信号ＣＳ３がＨレベル）でのフラッシュメモリのアクセス時間Ｔａｃ１（時刻ｔ１から時刻ｔ５まで）は、実施の形態１の場合と同じ約９ｎｓにしている。フラッシュメモリ１０からフリップフロップ２３までデータが伝送される間のパス遅延（path  delay）Ｔｄ１（時刻ｔ５から時刻ｔ７まで）も、実施の形態１の場合と同じ約４ｎｓである。
【００６０】
フラッシュメモリ１０からノーウェイトでＣＰＵ２０Ａにデータが読み込まれる高速読出モード（制御信号ＣＳ３がＨレベルのとき）の場合には、遅延大のクロック経路５１で位相を遅らせたクロックＣＬＫ２を使用する必要がある。クロックＣＬＫ２は、フラッシュメモリ１０に入力されるクロックＣＬＫ１よりも遅延回路５６に応じた遅延時間Ｔｄ２（時刻ｔ１から時刻ｔ３までの約４ｎｓ）だけ遅れる。フリップフロップ２３に入力されるクロックＣＬＫ４は、遅延大のクロック経路５１を通過したクロックＣＬＫ２とほぼ同位相である。選択されなかった方のクロック経路５２は初段のゲーティングセル５４にてゲーティングされるのでクロックＣＬＫ３はトグルせずにＬレベルを示す。
【００６１】
高速読出モードの場合には、ＷＥ信号は、ＣＰＵ２０Ａからフラッシュメモリ１０に読出アドレスが入力されてから１周期目のクロックＣＬＫ４の立下がりエッジ（時刻ｔ３１）に応答して、Ｈレベルに変化する（時刻ｔ３２）。その後、ＷＥ信号は、クロックＣＬＫ４の２周期目の立下がりエッジ（時刻ｔ３３）に応答してＬレベルに変化する（時刻ｔ３４）。フリップフロップ２３Ａは、ＷＥ信号がＨレベルとなっている活性状態の間で、クロックＣＬＫ４がＨレベルに立上がった時刻ｔ８にフラッシュメモリ１０からの読出データＤａｔａ１を取り込む。この結果、読出データＤａｔａ１は、アドレスＡｄｄｒ１がフラッシュメモリ１０に入力された時刻ｔ１から約１４ｎｓ経過した時点でフリップフロップ２３Ａに取り込まれる。
【００６２】
［効果］
以上のとおり、実施の形態２による半導体装置２は、実施の形態１の場合と同様に、遅延大のクロック経路５１と遅延小のクロック経路５２とが選択可能に構成される。ＣＰＵ２０Ａがフラッシュメモリ１０からノーウェイトでデータを読み出す高速読出モード時には遅延大のクロック経路５１が選択される。フラッシュメモリ１０に供給されるクロックＣＬＫ１とＣＰＵ２０内のフリップフロップ２３Ａに供給されるクロックＣＬＫ４とに位相差をつけることによって、データ読出のタイミングを調整する。
【００６３】
一方、ＣＰＵ２０Ａがフラッシュメモリ１０からデータを読み出すときにウェイトサイクルを挿入した場合には、フラッシュメモリ１０に供給されるクロックＣＬＫ１とＣＰＵ２０内のフリップフロップ２３Ａに供給されるクロックＣＬＫ４とに位相差をつける必要はない。この場合、遅延小のクロック経路５２を選択することによって、遅延回路５６を構成する各バッファ５５がトグル動作をしないようにして消費電力を削減する。
【００６４】
＜実施の形態３＞
［半導体装置３の構成］
図８は、この発明の実施の形態３による半導体装置３の構成を示すブロック図である。  
【００６５】
図８の半導体装置３は、図１の半導体装置１と図４の半導体装置２とを組み合せたものである。すなわち、図８の半導体装置３の制御レジスタ群３０Ｂは、クロック生成回路４０の動作モードを低周波モードまたは高周波モードに切替えるための制御レジスタ３１をさらに含む点で、図４に示した半導体装置２の制御レジスタ群３０Ａと異なる。図１で説明したように、クロック生成回路４０は、高周波モードの場合のほうが低周波モードの場合よりも高い周波数のクロックを生成する。制御レジスタ３１から出力された制御信号ＣＳ１がＨレベルのときクロック生成回路４０は高周波モードで動作し、制御信号ＣＳ１がＬレベルのときクロック生成回路４０は低周波モードで動作する。
【００６６】
図８のその他の点は図１、図４の場合と同様であるので、同一または相当する部分には同一の参照符号を付して説明を繰返さない。
【００６７】
［半導体装置３の動作］
制御レジスタ３１，３３の設定値に応じて次の４通りの動作状態が考えられる。
【００６８】
（ｉ）高周波モードかつ高速読出モードの場合
制御レジスタ３１がＨレベルに設定され、制御レジスタ３３がＨレベルに設定されている場合、クロック生成回路４０は高周波モードで動作し、ＣＰＵ２０Ａは高速読出モードで動作する。この場合、ＣＰＵ２０Ａはフラッシュメモリ１０からの読出データをノーウェイトで取り込むので、フラッシュメモリ１０に供給されるクロックＣＬＫ１とＣＰＵ２０Ａ内のフリップフロップ２３Ａに供給するクロックＣＬＫ４とに位相差をつける必要がある。このため、制御レジスタ３２をＨレベルに設定することにより、遅延大のクロック経路５１が選択される。半導体装置３の各部の電圧波形は、たとえば、図７で説明したものと同様になる。
【００６９】
（ｉｉ）高周波モードかつ低速読出モードの場合
制御レジスタ３１がＨレベルに設定され、制御レジスタ３３がＬレベルに設定されている場合、クロック生成回路４０は高周波モードで動作し、ＣＰＵ２０Ａは低速読出モードで動作する。この場合、ＣＰＵ２０Ａは所定のウェイトサイクルの経過後にフラッシュメモリ１０からの読出データを取り込むので、フラッシュメモリ１０に供給されるクロックＣＬＫ１とＣＰＵ２０Ａ内のフリップフロップ２３Ａに供給するクロックＣＬＫ４とに位相差をつける必要はない。そこで、消費電力を削減するために、制御レジスタ３２をＬレベルに設定することにより遅延小のクロック経路５２が選択される。半導体装置３の各部の電圧波形は、たとえば、図６で説明したものと同様になる。
【００７０】
（ｉｉｉ）低周波モードかつ高速読出モードの場合
制御レジスタ３１がＬレベルに設定され、制御レジスタ３３がＨレベルに設定されている場合、クロック生成回路４０は低周波モードで動作し、ＣＰＵ２０Ａは高速読出モードで動作する。この場合、ＣＰＵ２０Ａはフラッシュメモリ１０からの読出データをノーウェイトで取り込むが動作周波数が遅いので、フラッシュメモリ１０に供給されるクロックＣＬＫ１とＣＰＵ２０Ａ内のフリップフロップ２３Ａに供給するクロックＣＬＫ４とに位相差をつける必要がない。そこで、消費電力を削減するために、制御レジスタ３２をＬレベルに設定することにより遅延小のクロック経路５２が選択される。半導体装置３の各部の電圧波形は、たとえば、図２で説明したものと同様になる。
【００７１】
（ｉｖ）低周波モードかつ低速読出モードの場合
制御レジスタ３１がＬレベルに設定され、制御レジスタ３３がＬレベルに設定されている場合、クロック生成回路４０は低周波モードで動作し、ＣＰＵ２０Ａは低速読出モードで動作する。この場合、ＣＰＵ２０Ａは所定のウェイトサイクルの経過後にフラッシュメモリ１０からの読出データを取り込み、しかも動作周波数も遅いので、フラッシュメモリ１０に供給されるクロックＣＬＫ１とＣＰＵ２０Ａ内のフリップフロップ２３Ａに供給するクロックＣＬＫ４とに位相差をつける必要はない。そこで、消費電力を削減するために、制御レジスタ３２をＬレベルに設定することにより遅延小のクロック経路５２が選択される。
【００７２】
＜実施の形態４＞
［半導体装置４の構成および動作］
図９は、この発明の実施の形態４による半導体装置４の構成を示すブロック図である。
【００７３】
図９の半導体装置４は、位相調整部５０Ａ，５０Ｂにそれぞれ対応して電源スイッチ７０Ａ，７０Ｂを含む点で図８の半導体装置３と異なる。電源スイッチ７０Ａ，７０Ｂの各々は、電源ノードＶＤＤからゲーティングセル５３および各バッファ５５に至る電源電圧の供給経路に設けられる。電源スイッチ７０Ａ，７０Ｂのオン・オフは、制御レジスタ３２から出力される制御信号ＣＳ２によって制御される。制御信号ＣＳ２がＨレベルのとき、電源スイッチ７０Ａ，７０Ｂはオン状態になり、制御信号ＣＳ２がＬレベルのとき電源スイッチ７０Ａ，７０Ｂはオフ状態になる。
【００７４】
なお、図１で説明した実施の形態１の半導体装置１および図４で説明した実施の形態２の半導体装置２にも、図９と同様の構成の電源スイッチ７０Ａ，７０Ｂを設けることができる。図９のその他の点は図１、図４および図８の場合と同様であるので、同一または相当する部分には同一の参照符号を付して説明を繰返さない。
【００７５】
［効果］
上記の構成によれば、制御信号ＣＳ２によって遅延小のクロック経路５２を選択する場合には、選択されていない遅延大のクロック経路５２に設けられたゲーティングセル５３および遅延回路５６への電源が遮断される。したがって、実施の形態１〜３の各々で説明した効果に加えて、さらに消費電力を削減することができる。
【００７６】
今回開示された実施の形態はすべての点で例示であって制限的なものでないと考えられるべきである。この発明の範囲は上記した説明ではなくて請求の範囲によって示され、請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【００７７】
１，２，３，４  半導体装置、１０  フラッシュメモリ、１１  バス、１２，１３，２３，２３Ａ  フリップフロップ、２１Ａ  バスインターフェース、３０，３０Ａ，３０Ｂ  制御レジスタ群、３１，３２，３３  制御レジスタ、４０  クロック生成回路、５０Ａ，５０Ｂ  位相調整部、５１  第１のクロック経路、５２  第２のクロック経路、５３，５４  クロックゲーティングセル、５５  バッファ、５６  遅延回路、５８  クロックセレクタ、７０Ａ，７０Ｂ  電源スイッチ、ＣＬＫ１，ＣＬＫ２，ＣＬＫ３，ＣＬＫ４  クロック、ＣＳ１〜ＣＳ３  制御信号。
【図１】
2013088916.tif 000003
【図２】
2013088916.tif 000004
【図３】
2013088916.tif 000005
【図４】
2013088916.tif 000006
【図５】
2013088916.tif 000007
【図６】
2013088916.tif 000008
【図７】
2013088916.tif 000009
【図８】
2013088916.tif 000010
【図９】
2013088916.tif 000011