(57)【要約】  【課題】  クロック信号を用いない非同期式で設計されたシステムを内蔵する半導体集積回路において、消費電力や電磁ノイズを抑えながら回路ブロックの動作終了のタイミングを安定して生成する。  【解決手段】  半導体集積回路は、発振信号を生成するリングオシレータ４０と、リングオシレータによって生成される発振信号に含まれているパルスをカウントすることにより計測カウント値を求め、計測カウント値を設定カウント値と比較することによりカウント終了信号を活性化するカウント回路５０と、被制御回路ブロックにおけるイベント開始のタイミングに同期してリングオシレータに供給すべき発振制御信号を活性化すると共に、カウント回路から出力されるカウント終了信号の活性化に同期して被制御回路ブロックにおけるイベント終了のタイミングを生成する遅延制御回路３０とを具備する。【選択図】  図１
2006332919.tif 000002
【特許請求の範囲】
【請求項１】
発振制御信号に従って発振することにより発振信号を生成するリングオシレータと、
前記リングオシレータによって生成される発振信号に含まれているパルスをカウントすることにより計測カウント値を求め、計測カウント値を設定カウント値と比較することによりカウント終了信号を活性化するカウント回路と、
被制御回路ブロックにおけるイベント開始のタイミングに同期して前記リングオシレータに供給すべき発振制御信号を活性化すると共に、前記カウント回路から出力されるカウント終了信号の活性化に同期して前記被制御回路ブロックにおけるイベント終了のタイミングを生成する遅延制御回路と、
を具備する半導体集積回路。
【請求項２】
前記カウント回路が、複数種類の遅延コードに対応して、複数種類の遅延量を得るためにそれぞれ必要な複数の設定カウント値を格納するテーブルを含む、請求項１記載の半導体集積回路。
【請求項３】
前記カウント回路が、供給される遅延コードに対応する設定カウント値を前記テーブルから読み出し、前記リングオシレータによって生成される発振信号に含まれているパルスをカウントすることにより求められる計測カウント値が前記テーブルから読み出された設定カウント値に達すると、発振信号に含まれている次のパルスに同期してカウント終了信号を活性化する、請求項２記載の半導体集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、ＩＣやＬＳＩ等の半導体集積回路に関し、特に、クロック信号を用いない非同期式で設計されたシステムを内蔵する半導体集積回路に関する。
【背景技術】
【０００２】
クロック信号を用いない非同期式で設計されたＣＰＵ（中央演算装置）は、１つの動作が終了すると直ちに次の動作を開始することができるので、同期式のＣＰＵと比較して高速動作が可能であるという利点を有している。しかしながら、クロック信号を用いないので、回路モジュール（被制御回路ブロック）の動作終了のタイミングをＣＰＵに知らせることが必要となる。
【０００３】
そのための代表的な構成として、２線式回路と呼ばれる構成が知られている。２線式回路においては、１ビットのデータが、２つの信号線におけるレベル（０又は１）で表される。即ち、データ「０」及び「１」が、それぞれ「０１」及び「１０」で表され、値が確定していない無効データは、「００」又は「１１」で表される。無効データ以外のデータは、有効データと呼ばれる。無効データが全て有効データに変化した時点で、回路モジュールの動作終了が認識される。
【０００４】
２線式回路によれば、１ビットのデータを表すために２つの信号線が用いられるので、同期式回路と比較して回路規模が２倍になってしまうという問題がある。そこで、非同期式において回路規模が増大することを避けるために、回路モジュールの動作終了のタイミングを別途生成することも行われている。
【０００５】
回路モジュールの動作終了のタイミングを生成するためには遅延回路が必要になるが、遅延を生成するためにゲート遅延又は受動素子を用いると、半導体集積回路の製造プロセスのばらつきや電源電圧等の動作条件によって遅延時間が変化するので、遅延時間の制御が困難である。
【０００６】
また、クロック信号に基づいて遅延を生成することも考えられるが、その場合には、クロック信号を用いない非同期式回路の利点が失われてしまう。特に、クロック信号を発生するために高速なクロック信号発生回路を使用すると、クロック信号発生回路による消費電力が大きくなると共に、クロック信号発生回路から発生する電磁ノイズも大きくなる。また、クロック信号を用いた集積回路において消費電力の削減のためクロック信号の発生を停止すると、クロック信号の発生を再開するまでに時間がかかるという問題がある。
【０００７】
関連する技術として、下記の特許文献１には、より小さな回路規模で、非同期回路に近い高速性を有する回路の構成方式と、その構成方式の回路の設計手法が開示されている。この回路構成は、回路モジュールと、回路モジュールの動作終了信号と、制御信号により遅延時間を制御できる遅延回路とから成っている。遅延回路の入力と回路モジュールの動作開始信号、遅延回路の出力と動作終了信号、遅延回路の制御信号と回路モジュールのデータ入力が接続される。遅延回路の遅延時間は、回路モジュール内をデータが伝播して出力が安定するまでの時間と等しいか、その時間を越えてできるだけその時間に近くなるように設計される。
【０００８】
特許文献１の回路構成方式は、非同期回路の動作時間よりも大きな遅延時間を別途用意して非同期回路の動作終了を判断するものであるが、この遅延時間を生成するための具体的な手段が開示されていない。また、特許文献１の図７においては、遅延時間を生成するためにクロックパルスが用いられているが、このクロックパルスを生成するための具体的な手段が開示されていない。
【特許文献１】特開平８−９６００８号公報（第１頁、図１）
【発明の開示】
【発明が解決しようとする課題】
【０００９】
そこで、上記の点に鑑み、本発明は、クロック信号を用いない非同期式で設計されたシステムを内蔵する半導体集積回路において、消費電力や電磁ノイズを抑えながら、被制御回路ブロックの動作終了のタイミングを安定して生成することを目的とする。
【課題を解決するための手段】
【００１０】
以上の課題を解決するため、本発明に係る半導体集積回路は、発振制御信号に従って発振することにより発振信号を生成するリングオシレータと、リングオシレータによって生成される発振信号に含まれているパルスをカウントすることにより計測カウント値を求め、計測カウント値を設定カウント値と比較することによりカウント終了信号を活性化するカウント回路と、被制御回路ブロックにおけるイベント開始のタイミングに同期してリングオシレータに供給すべき発振制御信号を活性化すると共に、カウント回路から出力されるカウント終了信号の活性化に同期して被制御回路ブロックにおけるイベント終了のタイミングを生成する遅延制御回路とを具備する。
【００１１】
ここで、カウント回路が、複数種類の遅延コードに対応して、複数種類の遅延量を得るためにそれぞれ必要な複数の設定カウント値を格納するテーブルを含むようにしても良い。その場合に、カウント回路が、供給される遅延コードに対応する設定カウント値をテーブルから読み出し、リングオシレータによって生成される発振信号に含まれているパルスをカウントすることにより求められる計測カウント値がテーブルから読み出された設定カウント値に達すると、発振信号に含まれている次のパルスに同期してカウント終了信号を活性化するようにしても良い。
【発明の効果】
【００１２】
以上の様に構成した本発明によれば、被制御回路ブロックにおけるイベント開始のタイミングに同期してリングオシレータに供給すべき発振制御信号を活性化すると共に、カウント回路から出力されるカウント終了信号の活性化に同期して被制御回路ブロックにおけるイベント終了のタイミングを生成するようにしたので、消費電力や電磁ノイズを抑えながら、被制御回路ブロックの動作終了のタイミングを安定して生成することができる。
【発明を実施するための最良の形態】
【００１３】
以下、本発明を実施するための最良の形態について、図面を参照しながら詳しく説明する。なお、同一の要素には同一の番号を付して、説明を省略する。
図１は、本発明の一実施形態に係る半導体集積回路の構成を示す図である。図１に示すように、本実施形態に係る半導体集積回路は、非同期方式で設計されたＣＰＵ１０と、ＣＰＵ１０によって制御される回路モジュールである被制御回路ブロック２０と、ＣＰＵ１０から出力されるイベント要求信号を遅延させてイベント確認信号を出力する遅延制御回路３０と、所望の遅延時間を生成するために用いられるリングオシレータ４０及び遅延カウント回路５０とを有している。
【００１４】
被制御回路ブロック２０としては、ＣＰＵ１０の制御の下で動作を行う様々な回路を用いることができる。ＣＰＵ１０は、被制御回路ブロック２０の動作を制御するためのイベント制御信号を、被制御回路ブロック２０に供給する。さらに、ＣＰＵ１０と被制御回路ブロック２０との間で、各種の信号が送受信される。例えば、被制御回路ブロック２０がメモリである場合には、ＣＰＵ１０が、アドレス信号等を被制御回路ブロック２０に送信し、書込みデータ又は読出しデータを送信又は受信する。
【００１５】
ＣＰＵ１０は、被制御回路ブロック２０に所望のイベントを行わせる際に、遅延カウント回路５０に遅延コードを供給してイベントを特定すると共に、遅延制御回路３０にイベント要求信号を出力する。これにより、ＣＰＵ１０は、遅延制御回路３０から出力されるイベント確認信号に基づいて、被制御回路ブロック２０において行われるイベントの終了に対応する遅延情報を得ることができる。ここで、イベント要求信号は、被制御回路ブロック２０におけるイベント開始のタイミングに同期して活性化され、イベント確認信号は、被制御回路ブロック２０におけるイベント終了のタイミング（設定値）に同期して活性化される。
【００１６】
遅延制御回路３０は、イベント要求信号が活性化されると、リングオシレータ４０に供給すべき発振制御信号をハイレベルに活性化する。リングオシレータ４０は、例えば、ＮＡＮＤ回路４１及び複数のインバータ４２によって構成されており、発振制御信号がハイレベルに活性化されると、発振を開始して発振信号を生成する。
【００１７】
遅延カウント回路５０は、ＲＡＭ又は不揮発性メモリ等に記憶されたテーブル５１を含んでいる。テーブル５１は、複数種類の遅延コードに対応して、複数種類の遅延量を得るためにそれぞれ必要な複数の設定カウント値を格納している。
【００１８】
遅延カウント回路５０は、発振制御信号がハイレベルに活性化されると、供給された遅延コードに対応する設定カウント値をテーブル５１から読み出すと共に、リングオシレータ４０によって生成される発振信号に含まれているパルスをカウントすることにより、計測カウント値を求める。
【００１９】
遅延カウント回路５０は、求めた計測カウント値をテーブル５１から読み出された設定カウント値と比較し、計測カウント値が設定カウント値に達すると、発振信号に含まれている次のパルスの立ち上がりエッジに同期してカウント終了信号を活性化する。遅延制御回路３０は、遅延カウント回路５０から出力されるカウント終了信号の活性化に同期して、被制御回路ブロック２０におけるイベント終了のタイミングを生成する。
【００２０】
次に、本発明の一実施形態に係る半導体集積回路の動作について説明する。
前提として、被制御回路ブロック２０を設計する際に、被制御回路ブロック２０における各種のイベントに要する最大遅延時間が評価され、その最大遅延時間にマージンの遅延時間を加算することにより、所望の遅延時間が求められる。また、リングオシレータ４０を設計する際に、リングオシレータ４０の発振周波数又は発振周期が評価され、発振信号の１周期に対応する遅延時間が求められる。
【００２１】
これらの値に基づいて、複数種類の被制御回路ブロック及び／又は複数種類のイベントの内の１つを特定するための複数種類の遅延コードに対応して、複数種類の遅延量を得るためにそれぞれ必要な複数の設定カウント値が、ＣＰＵ１０の制御の下で、遅延カウント回路５０のテーブル５１に予め格納される。
【００２２】
図２は、図１に示す半導体集積回路の動作を説明するためのタイミングチャートである。ここでは、ＣＰＵ１０から遅延カウント回路５０に供給された遅延コードに従って、発振信号の８周期分の遅延時間に対応する設定カウント値「８」がテーブル５１に格納されているものとする。
【００２３】
ＣＰＵ１０がイベント要求信号をハイレベルに活性化すると、遅延制御回路３０は、発振制御信号をハイレベルに活性化する。発振制御信号がハイレベルに活性化されると、リングオシレータ４０は、発振動作を開始して発振信号を生成する。また、遅延カウント回路５０は、ＣＰＵ１０から供給される遅延コードに対応する設定カウント値「８」をテーブル５１から読み出すと共に、リングオシレータ４０によって生成される発振信号に含まれているパルスのカウントを開始する。
【００２４】
発振信号に含まれているパルスをカウントすることにより求められる計測カウント値がテーブル５１から読み出された設定カウント値「８」に達すると、遅延カウント回路５０は、発振信号に含まれている次のパルスの立ち上がりエッジに同期してカウント終了信号をハイレベルに活性化し、これに応答して、遅延制御回路３０が、イベント確認信号をハイレベルに活性化する。これにより、被制御回路ブロック２０におけるイベントに要する最大遅延時間とマージンの遅延時間との和に対応する所望の遅延量を得ることができる。
【００２５】
ここで、被制御回路ブロック２０とリングオシレータ４０とは、同一の半導体集積回路に内蔵されており、さらに、両者を近傍に配置することにより、半導体集積回路の製造プロセスのばらつきや電源電圧等の動作条件等を揃えることができるので、両者における遅延時間の増減が追従することが期待され、安定した回路動作を実現することができる。なお、回路レイアウトの設計完了後、又は、半導体集積回路の試作終了後に、被制御回路ブロック２０のイベントに要する遅延時間又はリングオシレータ４０の発振周波数が予定されていた値と大きく異なっている場合には、ＣＰＵ１０の制御の下で、テーブル５１に格納されている設定カウント値を変更することにより、容易に対処可能である。
【００２６】
さらに、ＣＰＵ１０は、イベント確認信号がハイレベルに活性化されると、イベント要求信号をローレベルに非活性化する。遅延制御回路３０は、イベント要求信号がローレベルに非活性化されると、イベント確認信号及び発振制御信号をローレベルに非活性化する。発振制御信号がローレベルに非活性化されることにより、リングオシレータ４０が発振動作を停止すると共に、遅延カウント回路５０が、カウント終了信号をローレベルに非活性化し、計測カウント値を「０」にリセットする。
【００２７】
上記において、被制御回路ブロック２０がパイプライン構造を有する場合には、リングオシレータ４０によって生成される発振信号に基づいて、パイプライン構造における各段の回路を動作させるためのクロック信号を生成するようにしても良い。いずれの場合においても、本実施形態に係る半導体集積回路は、被制御回路ブロック２０がイベント終了時の応答信号を返さない場合に、適切な動作タイミングを生成するために利用することができる。
【００２８】
図３は、被制御回路ブロック２０がメモリである場合について、クロック同期方式における動作と本実施形態における動作とを比較して説明するためのタイミングチャートである。ここでは、メモリからデータを読み出すために、イベント制御信号としてリード信号が用いられる。
【００２９】
図３の（ａ）は、一般的なクロック同期方式におけるタイミングチャートである。クロック同期方式のＣＰＵは、メモリからデータを読み出すために、クロック信号に同期してアドレス信号及びチップイネーブル信号（負論理）を確定し、その後、クロック信号に同期してリード信号（負論理）をアサートする。メモリからは、リード信号がアサートされてからアクセス時間ＴＡが経過した後に、有効なデータが出力される。従って、クロック同期方式のＣＰＵは、クロック信号に基づいて、リード信号をアサートしてからアクセス時間ＴＡが経過した後のタイミングで、リード信号をデアサートすると共に、メモリからデータを読み出す。
【００３０】
図３の（ｂ）は、本実施形態におけるタイミングチャートである。非同期方式のＣＰＵは、メモリからデータを読み出すために、アドレス信号及びチップイネーブル信号（負論理）を確定し、メモリからデータを読み出すイベントを特定する遅延コードを出力した後に、イベント要求信号を活性化すると共に、リード信号（負論理）をアサートする。メモリからは、リード信号がアサートされてからアクセス時間ＴＡが経過した後に、有効なデータが出力される。従って、非同期方式のＣＰＵは、イベント要求信号が再び非活性化されるのに基づいて、リード信号をアサートしてからアクセス時間ＴＡが経過した後のタイミングで、リード信号をデアサートすると共に、メモリからデータを読み出す。
【００３１】
以上説明した実施形態によれば、リングオシレータを用いて局所的に発振信号を生成するので、半導体集積回路全体にクロック信号を供給するようなクロック同期式設計と比較して、消費電力や電磁ノイズを低減することができる。また、被制御回路ブロックを動作させるときにのみ発振信号を生成するので、非同期式設計の利点が損なわれない。さらに、ゲート遅延や受動素子の遅延を用いて遅延を発生させる場合と比較して、遅延量の調整が容易である。
【図面の簡単な説明】
【００３２】
【図１】本発明の一実施形態に係る半導体集積回路の構成を示す図。
【図２】図１に示す半導体集積回路の動作を説明するためのタイミングチャート。
【図３】クロック同期方式と本実施形態とを比較するためのタイミングチャート。
【符号の説明】
【００３３】
１０  ＣＰＵ、  ２０  被制御回路ブロック、  ３０  遅延制御回路、  ４０  リングオシレータ、  ４１  ＮＡＮＤ回路、  ４２  インバータ、  ５０  遅延カウント回路、  ５１  テーブル
【図１】
2006332919.tif 000003
【図２】
2006332919.tif 000004
【図３】
2006332919.tif 000005