(57)【要約】  【課題】  非同期式で設計されたＣＰＵ等の回路を内蔵する半導体集積回路において、外部メモリとの間でアクセスのタイミングを得るための遅延時間を、消費電力や電磁ノイズを抑えながら安定して生成する。  【解決手段】  この半導体集積回路は、クロック信号よりも高い周波数を有する発振信号を生成するリングオシレータ２０と、クロック信号に同期してリングオシレータの発振信号をカウントすることにより計測カウント値を得るカウンタ３０と、カウンタによって得られた計測カウント値に基づいて、所望の遅延時間を得るために必要な発振信号の設定カウント値を求める遅延制御回路４０と、遅延制御回路によって求められた設定カウント値に基づいて発振信号をカウントすることにより、イベント開始のタイミングを所望の遅延時間だけ遅延させてイベント終了のタイミングを生成する遅延生成回路５０とを具備する。【選択図】  図１
2006314006.tif 000002
【特許請求の範囲】
【請求項１】
クロック信号よりも高い周波数を有する発振信号を生成するリングオシレータと、
前記クロック信号に同期して前記リングオシレータの発振信号をカウントすることにより計測カウント値を得るカウンタと、
前記カウンタによって得られた計測カウント値に基づいて、所望の遅延時間を得るために必要な発振信号の設定カウント値を求める遅延制御回路と、
前記遅延制御回路によって求められた設定カウント値に基づいて前記リングオシレータの発振信号をカウントすることにより、イベント開始のタイミングを所望の遅延時間だけ遅延させてイベント終了のタイミングを生成する遅延生成回路と、
を具備する半導体集積回路。
【請求項２】
前記カウンタが、前記クロック信号生成回路によって生成されるクロック信号に同期して前記リングオシレータの発振信号をカウントすることにより得られた計測カウント値を保持する保持回路を含む、請求項１記載の半導体集積回路。
【請求項３】
前記遅延制御回路が、前記カウンタによって得られる複数の計測カウント値と所望の遅延時間を得るために必要な発振信号の複数の設定カウント値との対応関係を格納するテーブルを含む、請求項１又は２記載の半導体集積回路。
【請求項４】
前記テーブルが、複数の所望の遅延時間について、前記カウンタによって得られる複数の計測カウント値と所望の遅延時間を得るために必要な発振信号の複数の設定カウント値との対応関係を格納する、請求項３記載の半導体集積回路。
【請求項５】
前記リングオシレータが、制御信号に従って発振周波数が可変のリングオシレータを含む、請求項１〜４のいずれか１項記載の半導体集積回路。
【請求項６】
前記リングオシレータが、制御信号に従って停止するように制御可能である、請求項１〜５のいずれか１項記載の半導体集積回路。
【請求項７】
前記クロック信号を生成するクロック信号生成回路をさらに具備する、請求項１〜６のいずれか１項記載の半導体集積回路。
【請求項８】
前記クロック信号生成回路が、制御信号に従って停止するように制御可能である、請求項７記載の半導体集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、ＩＣやＬＳＩ等の半導体集積回路に関し、特に、クロック信号を用いない非同期式で設計されたＣＰＵ（中央演算装置）等の回路を内蔵する半導体集積回路に関する。
【背景技術】
【０００２】
非同期式で設計されたＣＰＵを外部メモリに接続する際には、一般的なメモリのインタフェースが非同期式ハンドシェイクではないので、接続方式を変換するための変換回路が必要となる。そのような変換回路においては、メモリのインタフェースで規定されたアクセスのタイミングを生成するために用いられるクロック信号を発生する必要がある。
【０００３】
しかしながら、クロック信号を発生するために高速なクロック信号発生回路を使用すると、クロック信号発生回路による消費電力が大きくなると共に、クロック信号発生回路から発生する電磁ノイズも大きくなってしまう。また、ＣＰＵの停止状態においてクロック信号の発生を停止すると、クロック信号の発生を再開するまでに時間がかかってしまう。一方、メモリのインタフェースで規定されたアクセスのタイミングを、ゲート遅延又は受動素子の遅延を用いて生成することも可能であるが、半導体集積回路の製造プロセスのばらつきや電源電圧等の動作条件によって遅延時間が変化するので、遅延時間の制御が困難である。
【０００４】
関連する技術として、下記の特許文献１には、より小さな回路規模で、非同期回路に近い高速性を有する回路の構成方式と、その構成方式の回路の設計手法が開示されている。この回路構成は、回路モジュールと、回路モジュールの動作終了信号と、制御信号により遅延時間を制御できる遅延回路とから成っている。遅延回路の入力と回路モジュールの動作開始信号、遅延回路の出力と動作終了信号、遅延回路の制御信号と回路モジュールのデータ入力が接続される。遅延回路の遅延時間は、回路モジュール内をデータが伝播して出力が安定するまでの時間と等しいか、その時間を越えてできるだけその時間に近くなるように設計される。特許文献１の回路構成方式は、非同期回路の動作時間よりも大きな遅延時間を別途用意して非同期回路の動作終了を判断するものであるが、この遅延時間を生成するための具体的な手段が開示されていない。また、特許文献１の図７においては、遅延時間を生成するためにクロックパルスが用いられているが、このクロックパルスを生成するための具体的な手段が開示されていない。
【特許文献１】特開平８−９６００８号公報（第１頁、図１）
【発明の開示】
【発明が解決しようとする課題】
【０００５】
そこで、上記の点に鑑み、本発明は、非同期式で設計されたＣＰＵ等の回路を内蔵する半導体集積回路において、外部メモリとの間でアクセスのタイミングを得るための遅延時間を、消費電力や電磁ノイズを抑えながら安定して生成することを目的とする。
【課題を解決するための手段】
【０００６】
以上の課題を解決するため、本発明に係る半導体集積回路は、クロック信号よりも高い周波数を有する発振信号を生成するリングオシレータと、クロック信号に同期してリングオシレータの発振信号をカウントすることにより計測カウント値を得るカウンタと、カウンタによって得られた計測カウント値に基づいて、所望の遅延時間を得るために必要な発振信号の設定カウント値を求める遅延制御回路と、遅延制御回路によって求められた設定カウント値に基づいてリングオシレータの発振信号をカウントすることにより、イベント開始のタイミングを所望の遅延時間だけ遅延させてイベント終了のタイミングを生成する遅延生成回路とを具備する。
【０００７】
ここで、カウンタが、クロック信号生成回路によって生成されるクロック信号に同期してリングオシレータの発振信号をカウントすることにより得られた計測カウント値を保持する保持回路を含むようにしても良い。
【０００８】
また、遅延制御回路が、カウンタによって得られる複数の計測カウント値と所望の遅延時間を得るために必要な発振信号の複数の設定カウント値との対応関係を格納するテーブルを含むようにしても良い。その場合に、テーブルが、複数の所望の遅延時間について、カウンタによって得られる複数の計測カウント値と所望の遅延時間を得るために必要な発振信号の複数の設定カウント値との対応関係を格納するようにしても良い。
【０００９】
さらに、リングオシレータは、制御信号に従って発振周波数が可変のリングオシレータであっても良いし、制御信号に従って停止するように制御可能であっても良い。
また、半導体集積回路が、クロック信号を生成するクロック信号生成回路をさらに具備しても良く、そのクロック信号生成回路は、制御信号に従って停止するように制御可能であっても良い。
【発明の効果】
【００１０】
以上の様に構成した本発明によれば、計測によって求められた設定カウント値に基づいてリングオシレータの発振信号をカウントすることにより、イベント開始のタイミングを所望の遅延時間だけ遅延させてイベント終了のタイミングを生成するようにしたので、外部メモリとの間でアクセスのタイミングを得るための遅延時間を、消費電力や電磁ノイズを抑えながら安定して生成することができる。
【発明を実施するための最良の形態】
【００１１】
以下、本発明を実施するための最良の形態について、図面を参照しながら詳しく説明する。なお、同一の要素には同一の番号を付して、説明を省略する。
図１は、本発明の第１の実施形態に係る半導体集積回路の構成を示す図である。本実施形態に係る半導体集積回路は、非同期方式で設計されたＣＰＵ等の回路を外部メモリに接続する際に、メモリのインタフェースで規定されたアクセスのタイミングを生成する機能を有している。
【００１２】
図１に示すように、この半導体集積回路は、低周波クロック信号を生成する低周波クロック信号生成回路１０と、低周波クロック信号よりも高い周波数を有する発振信号を生成するリングオシレータ２０と、低周波クロック信号に同期してリングオシレータ２０の発振信号をカウントすることにより計測カウント値を得るカウンタ３０と、カウンタ３０によって得られた計測カウント値に基づいて、所望の遅延時間を得るために必要な発振信号の設定カウント値を求める遅延制御回路４０と、遅延制御回路４０によって求められた設定カウント値に基づいてリングオシレータ２０の発振信号をカウントすることにより、イベント開始のタイミングを所望の遅延時間だけ遅延させてイベント終了のタイミングを生成する遅延生成回路５０とを有している。
【００１３】
低周波クロック信号生成回路１０は、水晶振動子等を用いており、正確かつ安定した周波数のクロック信号、例えば、計時用の３２ｋＨｚの低周波クロック信号を生成する。なお、低周波クロック信号が外部から供給される場合には、この半導体集積回路において、低周波クロック信号生成回路１０を省略することができる。
【００１４】
一方、リングオシレータ２０は、低周波クロック信号生成回路１０によって生成される低周波クロック信号よりも高い周波数、例えば、２００ＭＨｚ程度の周波数を有する発振信号を生成する。リングオシレータ２０が生成する発振信号の周波数は、それほど正確ではなく、半導体集積回路の製造プロセスのばらつきや、電源電圧の変動や、温度等の要因によって変化する。
【００１５】
そこで、カウンタ３０が、遅延制御回路４０の制御の下で、リングオシレータ２０における発振周波数を計測するために、低周波クロック信号の周期に同期してリングオシレータ２０の発振信号をカウントすることにより計測カウント値を得る。この計測カウント値は、保持回路としてのレジスタ３１に保持される。
【００１６】
図２は、図１に示すカウンタの動作を説明するためのタイミングチャートである。カウンタ３０は、低周波クロック信号の１つの周期に同期してリングオシレータ２０の発振信号のカウントを開始する。図２に示すように、カウント値が、４９９５、４９９６、・・・と増加して５０００になったときに低周波クロック信号が立ち上がって次の周期に移行した場合に、カウンタ３０は、低周波クロック信号の立上がりに同期してカウント値をラッチすることにより、このカウント値をレジスタ３１に保持し、レジスタ３１に保持されたカウント値を計測カウント値として出力する。その結果、以前の計測カウント値「５００２」が、新たな計測カウント値「５０００」に変更される。その後、カウント値がリセットされて「００００」になる。
【００１７】
図１に示すように、遅延制御回路４０は、カウンタ３０によって得られる複数の計測カウント値と所望の遅延時間を得るために必要な発振信号の複数の設定カウント値との対応関係を格納する変換テーブル４１を含んでおり、実際にカウンタ３０によって得られた計測カウント値に基づいて、遅延コードによって指定された所望の遅延時間を得るために必要な発振信号の設定カウント値を求める。
【００１８】
以下においては、低周波クロック信号の周波数が３２ｋＨｚである場合について説明する。例えば、低周波クロック信号の１周期（約３１μｓ）における計測カウント値が５０００であったとすると、リングオシレータ２０の発振信号の周期は約６．２ｎｓであり、発振信号の周波数は約１６０ＭＨｚである。また、低周波クロック信号の１周期における計測カウント値が１００００であったとすると、発振信号の周期は約３．１ｎｓであり、発振信号の周波数は約３２０ＭＨｚである。
【００１９】
図３は、変換テーブルに格納される計測カウント値と設定カウント値との対応関係の第１の例を示す図である。この例においては、複数の所望の遅延時間について、複数の計測カウント値に対応して複数の設定カウント値が格納されている。
【００２０】
例えば、所望の遅延時間が６０ｎｓである場合には、計測カウント値４０００に対して設定カウント値８を読み出し、計測カウント値５０００に対して設定カウント値１０を読み出し、計測カウント値６０００に対して設定カウント値１２を読み出し、計測カウント値７５００に対して設定カウント値１４を読み出し、計測カウント値１００００に対して設定カウント値１９を読み出す。
【００２１】
また、所望の遅延時間が９０ｎｓである場合には、計測カウント値４０００に対して設定カウント値１２を読み出し、計測カウント値５０００に対して設定カウント値１５を読み出し、計測カウント値６０００に対して設定カウント値１７を読み出し、計測カウント値７５００に対して設定カウント値２１を読み出し、計測カウント値１００００に対して設定カウント値２９を読み出す。
【００２２】
図３においては、説明の簡単のために５種類の計測カウント値のみが示されているが、もっと多くの計測カウント値について変換テーブルを作成することにより、計測カウント値の精度を上げることができる。実際にカウンタ３０から出力された計測カウント値が変換テーブルに存在しない場合には、変換テーブルに存在する計測カウント値の内で実際の計測カウント値に最も近い計測カウント値に対応する設定カウント値を読み出しても良いし、実際の計測カウント値を切り上げ、切り捨て、又は、四捨五入することにより求められた計測カウント値に対応する設定カウント値を読み出しても良い。あるいは、変換テーブルに存在する計測カウント値の内で実際の計測カウント値に最も近い２つの計測カウント値に対応する２つの設定カウント値を読み出して、これらに基づく補間により目的の設定カウント値を求めても良い。
【００２３】
図４は、変換テーブルに格納される計測カウント値と設定カウント値との対応関係の第２の例を示す図である。この例においては、複数の所望の遅延時間に対応して、計測カウント値を設定カウント値に変換するための係数が格納されている。
【００２４】
例えば、所望の遅延時間が３０ｎｓである場合には、計測カウント値に係数０．０００９６を掛ければ設定カウント値が求められ、所望の遅延時間が６０ｎｓである場合には、計測カウント値に係数０．００１９を掛ければ設定カウント値が求められ、所望の遅延時間が９０ｎｓである場合には、計測カウント値に係数０．００２９を掛ければ設定カウント値が求められる。
【００２５】
このような変換テーブルを用いた計算は、本実施形態に係る半導体集積回路に内蔵されているＣＰＵによって実行することが可能である。即ち、半導体集積回路に内蔵されているＣＰＵが、図１の計測カウント値を保持するレジスタ３１の値を読み出して、半導体集積回路に内蔵されているメモリに記憶されている変換テーブルを用いて設定カウント値を算出し、算出された設定カウント値を遅延生成回路５０に出力することも可能である。
【００２６】
以上の例において、所望の遅延時間はイベントの種類に応じて定められるので、所望の遅延時間を表す遅延コードの替わりにイベントの種類を表すイベントコードを用いて、変換テーブルにおける所望の遅延時間をイベントの種類を表す情報に置き換えても良い。例えば、データの書込みに９０ｎｓを要し、データの読出しに６０ｎｓを要する場合には、遅延時間「９０ｎｓ」の替わりにイベントの種類「書込み」を表す情報を格納し、遅延時間「６０ｎｓ」の替わりにイベントの種類「読出し」を表す情報を格納する。
【００２７】
再び図１を参照すると、遅延生成回路５０には、メモリインタフェースからイベント開始のタイミングを表すイベント要求信号が入力される。遅延生成回路５０はカウンタ５１を含んでおり、イベント要求信号が活性化されると、カウンタ５１が、設定カウント値に基づいてリングオシレータ２０の発振信号をカウントすることによりイベント開始のタイミングを所望の遅延時間だけ遅延させて、イベント終了のタイミングを表すイベント確認信号を活性化する。
【００２８】
図５は、図１に示す遅延生成回路の動作を説明するためのタイミングチャートである。遅延コードに従って、所望の遅延時間が６０ｎｓに設定され、遅延制御回路４０は、設定カウント値を「１０」とする。非同期方式のＣＰＵ等の回路がイベント要求信号をハイレベルに活性化すると、遅延生成回路５０のカウンタ５１は、リングオシレータ２０によって生成される発振信号のカウントを開始し、１０パルスの周期が経過するとイベント確認信号をハイレベルに活性化する。イベント要求信号を出力している回路は、イベント確認信号がハイレベルになると、イベント要求信号をローレベルに非活性化する。これに対応して、遅延生成回路４０は、イベント確認信号をローレベルに非活性化する。
【００２９】
図６は、メモリにアクセスする際の動作を説明するためのタイミングチャートである。図６の（ａ）は、一般的なクロック同期方式におけるタイミングチャートである。クロック同期方式のＣＰＵは、例えばメモリからデータを読み出すために、クロック信号に同期してアドレス信号及びチップイネーブル信号（負論理）を確定し、その後、クロック信号に同期してリード信号（負論理）をアサートする。メモリからは、リード信号がアサートされてからアクセス時間ＴＡが経過した後に、有効なデータが出力される。従って、クロック同期方式のＣＰＵは、クロック信号に基づいて、リード信号をアサートしてからアクセス時間ＴＡが経過した後のタイミングで、リード信号をデアサートすると共にデータを読み出す。
【００３０】
図６の（ｂ）は、本実施形態におけるタイミングチャートである。非同期方式のＣＰＵは、例えばメモリからデータを読み出すために、アドレス信号及びチップイネーブル信号（負論理）を確定し、その後、イベント要求信号を活性化すると共にリード信号（負論理）をアサートする。メモリからは、リード信号がアサートされてからアクセス時間ＴＡが経過した後に、有効なデータが出力される。従って、非同期方式のＣＰＵは、イベント要求信号が再び非活性化されるのに基づいて、リード信号をアサートしてからアクセス時間ＴＡが経過した後のタイミングで、リード信号をデアサートすると共にデータを読み出す。
【００３１】
次に、本発明の第２の実施形態について説明する。
図７は、本発明の第２の実施形態に係る半導体集積回路の構成を示す図である。第２の実施形態においては、図１に示す第１の実施形態における低周波クロック信号生成回路１０及びリングオシレータ２０に替えて、低周波クロック信号生成回路１１及び周波数可変リングオシレータ２１が用いられている。その他の点に関しては、第１の実施形態と同一である。
【００３２】
周波数可変リングオシレータ２１は、制御信号Ａに従って発振周波数が可変となっている。周波数可変リングオシレータ２１においては、所定の遅延時間を有する奇数個のインバータが直列に接続されているが、例えば、これらのインバータに供給される電源電圧を下げたり、あるいは、リングオシレータのループに複数のゲート遅延素子を設けてそれらを選択したりすることによって、インバータの遅延時間を増加させ、発振周波数を低下させて、消費電力を低減することができる。
【００３３】
また、カウンタ３０において、低周波クロック信号に同期した発振信号のカウントは、低周波クロック信号の１周期毎に行う必要はなく、例えば、１秒間に１回計測してカウント値を求め、そのカウント値をレジスタ３１に保持しておけば良い。これにより、カウンタ３０における消費電力を低減することができる。
【００３４】
さらに、周波数可変リングオシレータ２１は、制御信号Ｂに従って停止するように制御可能である。スリープモード（スタンバイ状態）等においては、周波数可変リングオシレータ２１を停止することにより、周波数可変リングオシレータ２１における消費電力を低減することができる。一般的に、リングオシレータは、短時間に発振開始が可能なので、スタンバイ状態から通常動作状態に直ちに移行することができる。
【００３５】
また、クロック信号生成回路１１は、制御信号Ｃに従って停止するように制御可能である。スリープモード（スタンバイ状態）等においては、クロック信号生成回路１１を停止することにより、クロック信号生成回路１１における消費電力を低減することができる。クロック信号生成回路１１がスタンバイ状態から復帰して通常動作を行うようになるまでの間は、カウンタ３０のレジスタ３１に保持されているカウント値を用いれば良い。
【００３６】
以上説明した実施形態によれば、低周波（３２ｋＨｚ）のクロック信号を基本として動作し、リングオシレータの発振信号で動作する回路の負荷が小さいので、高周波のクロック信号を基本として動作する回路よりも消費電力が小さくなる。また、他の回路において３２ｋＨｚのクロック信号を計時用に使用している場合には、これを共用することができる。
【図面の簡単な説明】
【００３７】
【図１】本発明の第１の実施形態に係る半導体集積回路の構成を示す図。
【図２】図１に示すカウンタの動作を説明するためのタイミングチャート。
【図３】変換テーブルに格納される計測カウント値と設定カウント値を示す図。
【図４】変換テーブルに格納される対応関係を示す図。
【図５】図１に示す遅延生成回路の動作を説明するためのタイミングチャート。
【図６】メモリにアクセスする際の動作を説明するためのタイミングチャート。
【図７】本発明の第２の実施形態に係る半導体集積回路の構成を示す図。
【符号の説明】
【００３８】
１０、１１  低周波クロック信号生成回路、  ２０  リングオシレータ、  ２１  周波数可変リングオシレータ、  ３０  カウンタ、  ３１  レジスタ、  ４０  遅延制御回路、  ４１  変換テーブル、  ５０  遅延生成回路、  ５１  カウンタ
【図１】
2006314006.tif 000003
【図２】
2006314006.tif 000004
【図３】
2006314006.tif 000005
【図４】
2006314006.tif 000006
【図５】
2006314006.tif 000007
【図６】
2006314006.tif 000008
【図７】
2006314006.tif 000009