(57)【要約】【課題】非同期メモリをアクセスする場合のアクセス時間を最適化するために、クロック信号の動作周波数を測定する周波数測定回路を提供する。【解決手段】周波数測定回路は、クロック信号の動作周波数を測定するもので、クロック信号に同期して制御信号を保持する第１の保持回路と、直列に接続された複数の遅延素子を有し、各々の遅延素子から第１の保持回路の出力信号を各々所定時間ずつ遅延した遅延信号を出力する遅延回路と、遅延素子選択信号に応じて、各々の遅延素子から出力される遅延信号のうちの１つを選択的に出力するセレクタ回路と、クロック信号に同期してセレクタ回路の出力信号を保持する第２の保持回路と、第１および第２のフリップフロップの出力信号の論理をとって、所定論理レベルのイネーブル信号を出力するゲート回路と、クロック信号に同期して、イネーブル信号が所定論理レベルである期間のクロック信号の数をカウントするカウンタとを備える。【選択図】図１
2007121063.tif 000002
【特許請求の範囲】
【請求項１】
クロック信号の動作周波数を測定する周波数測定回路であって、
前記クロック信号に同期して動作し、該クロック信号の動作周波数の測定の開始および停止を制御する制御信号を保持する第１の保持回路と、
直列に接続された複数の遅延素子を有し、前記第１の保持回路の出力信号が初段の遅延素子に入力され、各々の前記遅延素子から前記第１の保持回路の出力信号を各々所定時間ずつ遅延した遅延信号を出力する遅延回路と、
各々の前記遅延素子に対応する遅延素子選択信号に応じて、各々の前記遅延素子から出力される遅延信号のうちの１つを選択的に出力するセレクタ回路と、
前記クロック信号に同期して動作し、前記セレクタ回路の出力信号を保持する第２の保持回路と、
前記第１および第２の保持回路の出力信号の論理をとって、前記第１の保持回路の出力信号の論理レベルが変化してから、前記第２の保持回路の論理レベルが変化するまでの期間のパルス幅を持つ、所定論理レベルのイネーブル信号を出力するゲート回路と、
前記クロック信号に同期して動作し、前記イネーブル信号が所定論理レベルである期間の前記クロック信号の数をカウントするカウンタとを備えることを特徴とする周波数測定回路。
【請求項２】
前記セレクタ回路は、各々の前記遅延素子から出力される遅延信号をワイヤードＯＲ接続して構成されたものであることを特徴とする請求項１に記載の周波数測定回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クロック信号に同期して動作するディジタル回路が非同期メモリをアクセスする場合のアクセス時間を最適化するために、クロック信号の動作周波数を測定する周波数測定回路に関するものである。
【背景技術】
【０００２】
例えば、ＳＲＡＭ（スタティックＲＡＭ）やフラッシュメモリなどを含む、各種の非同期メモリのアクセス時間はあらかじめ決定されている。ところが、上記非同期メモリをアクセスするためのディジタル回路は、クロック信号に同期して動作するため、クロック信号の動作周波数が変化する毎に、ディジタル回路から非同期メモリをアクセスするために必要となるクロック信号のサイクル数も変わる。
【０００３】
これに対し、従来は、ディジタル回路で非同期低速メモリをアクセスする場合、非同期メモリのアクセス時間を満足させるように、クロック信号の所定サイクル数分の遅延時間を挿入することで実現している。
【０００４】
例えば、ディジタル回路から、アクセス時間が１００ｎｓの非同期メモリにアクセスする場合を例に挙げて説明する。ディジタル回路が５０ＭＨｚ（２０ｎｓ周期）のクロック信号で動作する場合、クロック信号の５サイクル分の遅延時間を挿入することになる。また、同じディジタル回路を４０ＭＨｚ（２５ｎｓ周期）のクロック信号で動作させる場合には４サイクル分の遅延時間を挿入すれば良い。
【０００５】
上記のように、ディジタル回路すなわちクロック信号の動作周波数があらかじめ分かっている場合であれば、非同期メモリをアクセスするための遅延時間の挿入量（クロック信号のサイクル数）を外部から与えることが可能である。
【０００６】
しかし、同じディジタル回路を様々な周波数のクロック信号で動作させる可能性があり、しかもその動作周波数をあらかじめ知ることができない場合、動作させる可能性のある、クロック信号の最大動作周波数に対応してディジタル回路を設計しておく必要がある。上記例の場合、５０ＭＨｚがディジタル回路の最大動作周波数であれば、５０ＭＨｚの周波数で動作可能なように設計を行う必要がある。
【０００７】
しかし、非同期メモリをアクセスする時の遅延時間の挿入サイクル数を５サイクルに固定すると、このディジタル回路を４０ＭＨｚで動作させた場合、非同期メモリのアクセス時間は１２５ｎｓとなり、システムの性能を低下させることになる。
【０００８】
上記のように、ディジタル回路に供給されるクロック信号の動作周波数をあらかじめ知ることができない場合、動作時にクロック信号の動作周波数を知ることができる手段を持っていないことが上記問題を引き起こしている。
【０００９】
これに対し、一般的な解決策として、測定対象のクロック信号の動作周波数よりも高い動作周波数の別のクロック信号を用いて測定対象のクロック信号、すなわち非同期メモリをアクセスするためのディジタル回路の動作周波数を測定する方法が考えられる。しかし、この方法では、本来不要である、高い動作周波数のクロック信号を発生させなければならず、コストアップにつながるという問題があった。
【００１０】
なお、本発明の出願時に、本発明に関わる先行技術文献は存在していない。
【発明の開示】
【発明が解決しようとする課題】
【００１１】
本発明の目的は、前記従来技術に基づく問題点を解消し、非同期メモリをアクセスする場合のアクセス時間を最適化するために、クロック信号の動作周波数を測定することができる周波数測定回路を提供することにある。
【課題を解決するための手段】
【００１２】
上記目的を達成するために、本発明は、クロック信号の動作周波数を測定する周波数測定回路であって、
前記クロック信号に同期して動作し、該クロック信号の動作周波数の測定の開始および停止を制御する制御信号を保持する第１の保持回路と、
直列に接続された複数の遅延素子を有し、前記第１の保持回路の出力信号が初段の遅延素子に入力され、各々の前記遅延素子から前記第１の保持回路の出力信号を各々所定時間ずつ遅延した遅延信号を出力する遅延回路と、
各々の前記遅延素子に対応する遅延素子選択信号に応じて、各々の前記遅延素子から出力される遅延信号のうちの１つを選択的に出力するセレクタ回路と、
前記クロック信号に同期して動作し、前記セレクタ回路の出力信号を保持する第２の保持回路と、
前記第１および第２の保持回路の出力信号の論理をとって、前記第１の保持回路の出力信号の論理レベルが変化してから、前記第２の保持回路の論理レベルが変化するまでの期間のパルス幅を持つ、所定論理レベルのイネーブル信号を出力するゲート回路と、
前記クロック信号に同期して動作し、前記イネーブル信号が所定論理レベルである期間の前記クロック信号の数をカウントするカウンタとを備えることを特徴とする周波数測定回路を提供するものである。
【００１３】
ここで、前記セレクタ回路は、各々の前記遅延素子から出力される遅延信号をワイヤードＯＲ接続して構成されたものであることが好ましい。
【発明の効果】
【００１４】
本発明によれば、クロック信号の動作周波数が変わった場合であっても、その概略動作周波数をリアルタイムに測定することができる。このため、非同期メモリのアクセス時間を測定されたクロック信号の概略動作周波数で除算することによって、非同期メモリをアクセスするためのクロック信号の最適なサイクル数を算出して、これを設定することができ、そのアクセス時間を最適化することができる。
【発明を実施するための最良の形態】
【００１５】
以下に、添付の図面に示す好適実施形態に基づいて、本発明の周波数測定回路を詳細に説明する。
【００１６】
図１は、本発明の周波数測定回路の構成を表す一実施形態の概略回路図である。同図に示す周波数測定回路１０は、測定対象のクロック信号から、その概略動作周波数を測定するもので、第１のフリップフロップ（Ｄ−ＦＦ）１２と、遅延回路１４と、セレクタ回路１６と、第２のフリップフロップ（Ｄ−ＦＦ）１８と、ＡＮＤ回路２０と、カウンタ２２とによって構成されている。
【００１７】
ここで、第１のフリップフロップ１２のデータ入力端子Ｄはクリア信号に接続され、そのクロック入力端子は、測定対象のクロック信号に接続されている。第１のフリップフロップ１２は、クロック信号の立ち上がりに同期して、クロック信号の動作周波数の測定の開始および停止を制御するクリア信号（制御信号）を保持し、その論理レベル（ハイレベルまたはローレベル）をデータ出力端子Ｑから出力する。
【００１８】
本実施形態において、周波数測定回路１０は、クリア信号がローレベルの時に停止状態となる。一方、クリア信号がハイレベルになると、周波数測定回路１０では、クロック信号の動作周波数の測定が開始される。
【００１９】
続いて、遅延回路１４は、直列に接続された、ｎ個（ｎは１以上の整数）の遅延素子１〜ｎによって構成されている。遅延素子１の入力は、第１のフリップフロップ１２の出力端子Ｑに接続されている。また、それぞれの遅延素子１〜ｎの出力からは、第１のフリップフロップ１２の出力信号を、自分自身の遅延素子までの合計の遅延素子による遅延時間だけ遅延した遅延信号が出力される。
【００２０】
例えば、遅延素子１からは、第１のフリップフロップ１２の出力信号が遅延素子１による遅延時間だけ遅延された遅延信号が出力される。また、遅延素子２からは、遅延素子１の出力信号が、遅延素子２による遅延時間だけ遅延された遅延信号、つまり、第１のフリップフロップ１２の出力信号が、遅延素子１，２による合計の遅延時間だけ遅延された遅延信号が出力される。遅延素子３〜ｎについても同様である。
【００２１】
続いて、セレクタ回路１６は、ｎ個のスリーステートバッファによって構成されている。各々のスリーステートバッファの入力は、各々遅延素子１〜ｎから出力される遅延信号に接続され、その選択入力端子は、各々遅延素子１〜ｎ選択信号に接続されている。また、全てのスリーステートバッファの出力はワイヤードＯＲ接続されている。セレクタ回路１６は、遅延素子１〜ｎ選択信号に応じて、遅延素子１〜ｎから出力される遅延信号のうちの１つを選択的に出力する。
【００２２】
遅延素子１〜ｎ選択信号は、いずれか１つのみがハイレベルとされ、残りは全てローレベルとされる。例えば、遅延素子１選択信号のみがハイレベルとされ、その他の遅延素子２〜ｎ選択信号が全てローレベルとされた場合、セレクタ回路１６からは、遅延素子１から出力される遅延信号が出力される。遅延素子２〜ｎ選択信号のうちの他の１つのみがハイレベルとされた場合の動作も同様である。
【００２３】
続いて、第２のフリップフロップ１８のデータ入力端子Ｄはセレクタ回路１６の出力信号に接続され、そのクロック入力端子はクロック信号に接続されている。第２のフリップフロップ１８は、クロック信号の立ち上がりに同期して、セレクタ回路１６の出力信号を保持し、それを反転データ出力端子Ｑ￣から出力する。つまり、セレクタ回路１６の出力信号は、第２のフリップフロップ１８によって反転出力される。
【００２４】
続いて、ＡＮＤ回路２０の入力は、第１のフリップフロップ１２の出力信号と、第２のフリップフロップ１８の出力信号（反転出力）とに接続されている。ＡＮＤ回路２０は、第１のフリップフロップ１２の出力信号と第２のフリップフロップ１８の出力信号との論理積をとることによってクリア信号の立ち上がり検出を行い、遅延素子による遅延時間に応じて、所定パルス幅を持つハイレベルのイネーブル信号を出力する。
【００２５】
最後に、カウンタ２２のイネーブル入力端子ＥＮはＡＮＤ回路２０から出力されるイネーブル信号に接続され、そのクロック入力端子はクロック信号に接続され、そのクリア入力端子ＣＬＲはクリア信号に接続されている。カウンタ２２は、クロック信号の立ち上がりに同期して動作し、ＡＮＤ回路２０から出力されるイネーブル信号がハイレベルである期間、クロック信号をカウントして、そのカウント値を出力端子ＯＵＴから出力する。
【００２６】
本実施形態の周波数検出回路１０の構成は以上の通りである。
【００２７】
なお、図１に示す周波数検出回路１０は、クリア信号の立ち上がりを検出する回路であるが、逆に立ち下がりを検出する回路を構成することも可能である。また、クリア信号の極性を逆にして周波数測定回路１０を構成することも可能である。すなわち、周波数測定回路１０は、クリア信号がハイレベルの時に停止状態となり、クリア信号がローレベルになると、クロック信号の動作周波数の測定が開始されるように構成してもよい。
【００２８】
また、各々の遅延素子１〜ｎは、図１では、概念的に各々１つのバッファで示されているが、実際には、所望の遅延出力を得るために、複数のゲート回路を直列接続したものなどであってもよい。例えば、遅延素子１は、２以上のバッファを直列接続したものでもよい。遅延素子２〜ｎについても同じである。また、詳細は後述するが、各々の遅延素子１〜ｎによる遅延時間は、設計の段階であらかじめ把握しておく必要がある。
【００２９】
また、セレクタ回路１６は、図１に示すように、複数のスリーステートバッファの出力をワイヤードＯＲ接続した構造のものに限らず、同様の機能を果たす各種構成の回路を使用しても実現可能である。例えば、ゲート回路を使用したスタティック構造のセレクタ回路でも実現可能であるが、セレクタ回路自身による遅延時間を考慮すれば、高速動作が可能なワイヤードＯＲ接続構成のものを使う方が好ましい。
【００３０】
また、第１および第２のフリップフロップ１２，１８は、クロック信号の立ち上がり、立ち下がり、ハイレベル、ローレベルなどに同期して、その入力信号を保持することができる、例えばラッチやレジスタなどのどのような構成の保持回路であってもよい。
【００３１】
また、第２のフリップフロップ１８は、セレクタ回路１６の出力信号を反転出力することに限定されず、例えばセレクタ回路１６の出力信号を反転入力して第２のフリップフロップ１８に保持するとともに、これをそのまま出力してもよい。また、本実施形態では、第２のフリップフロップ１８の出力信号を反転出力しているが、逆に、第１のフリップフロップ１２の出力信号を反転出力してもよい。
【００３２】
また、ＡＮＤ回路２０は、クリア信号の立ち上がりを検出するゲート回路の一例であって、これに限定されるわけではない。つまり、ＡＮＤ回路２０に入力される信号の極性や、ＡＮＤ回路２０から出力されるイネーブル信号の極性などに応じて、カウンタ２２が必要とするイネーブル信号を発生するための別のゲート回路を使用してもよい。また、クリア信号の立ち下がりを検出する場合も同様である。
【００３３】
また、カウンタ２２は、本実施形態では、アップカウンタであるが、これに限らず、ダウンカウンタを使用することも可能である。また、カウンタ２２は、２ビットのカウンタで十分であり、同様の機能を果たす別の構成の回路を使用することもできる。
【００３４】
以上のように、本発明の周波数測定回路は、図１に示す構成のものに限定されず、同等の機能を果たす各種構成の回路で実現可能である。また、クリア信号や、第１および第２のフリップフロップ１２，１８の出力信号、遅延信号、セレクタ回路の出力信号、イネーブル信号などの信号極性、カウンタ２２の出力信号（カウント値）の実際の数値などは、適宜変更しても構わない。
【００３５】
次に、周波数測定回路１０の動作について説明する。
【００３６】
前述の通り、本実施形態の周波数測定回路１０は、クリア信号がローレベルの時に停止状態となり、クリア信号がハイレベルになると、クロック信号の動作周波数の測定を開始する。
【００３７】
クリア信号がローレベルの時、第１のフリップフロップ１２の出力信号はローレベルである。従って、遅延素子１〜ｎの出力、セレクタ回路１６の出力信号もローレベル、第２のフリップフロップ１８の出力信号（反転出力）はハイレベル、ＡＮＤ回路２０の出力であるイネーブル信号はローレベルである。また、カウンタ２２は、クリア信号のローレベルによってリセットされており、そのカウント値は０である。
【００３８】
すなわち、クリア信号がローレベルの時は、イネーブル信号の論理レベルに関わらず、カウンタ２２のカウント値は０固定であり、前述の通り、周波数測定回路１０は停止状態である。
【００３９】
続いて、クリア信号がハイレベルとなる場合の動作を説明する。
【００４０】
本実施形態では、まず、例えば遅延素子１選択信号だけがハイレベル、かつ残りの全ての遅延素子２〜ｎ選択信号がローレベルとされ、その後、クロック信号の立ち上がりに同期して、クリア信号がローレベルからハイレベルとされる。クリア信号のハイレベルは、次のクロック信号の立ち上がりで第１のフリップフロップ１２に保持され、その出力信号はハイレベルとなる。
【００４１】
第１のフリップフロップ１２の出力信号がハイレベルになると、遅延素子１の出力は、自分自身による遅延時間だけ遅延された後にハイレベルとなる。また、遅延素子２の出力は、遅延素子１の出力がハイレベルとなってから、遅延素子２による遅延時間だけ遅延された後にハイレベルとなる。つまり、遅延素子２の出力は、第１のフリップフロップ１２の出力信号がハイレベルとなってから、遅延素子１，２による合計の遅延時間だけ遅延された後にハイレベルとなる。遅延素子３〜ｎについても同様である。
【００４２】
上記の通り、ここでは、遅延素子１選択信号だけがハイレベルとされているので、セレクタ回路１６からは、スリーステートバッファによる遅延時間を無視するとすれば、遅延素子１がハイレベルとなるタイミングでハイレベルが出力される。そして、セレクタ回路１６の出力であるハイレベルは、次のクロック信号の立ち上がりで第２のフリップフロップ１８に保持され、第２のフリップフロップ１８の出力信号（反転出力）はローレベルとなる。
【００４３】
第１のフリップフロップ１２の出力であるハイレベルと、第２のフリップフロップ１８の出力であるローレベルは、ＡＮＤ回路２０によって論理積がとられる。ＡＮＤ回路２０からは、ＡＮＤ回路２０自身の遅延時間を無視するとすれば、第１のフリップフロップ１２の出力信号がハイレベルとなってから、第２のフリップフロップ１８の出力信号がローレベルとなるまでの間、ハイレベルのイネーブル信号が出力される。
【００４４】
ここで、図２（ａ）のタイミングチャートに示すように、遅延素子ｉ選択信号（ｉは、１≦ｉ≦ｎの整数）の設定状況に応じて、第１のフリップフロップ１２の出力信号がローレベルからハイレベルとなってから、クロック信号の１サイクル以内のうちにセレクタ回路１６の出力信号がローレベルからハイレベルに変化すると、イネーブル信号のパルス幅は、クロック信号の１サイクル分となり、カウンタ２２のカウント値は１になる。
【００４５】
これに対し、図２（ｂ）のタイミングチャートに示すように、遅延素子ｉ選択信号の設定状況に応じて、第１のフリップフロップ１２の出力信号がローレベルからハイレベルとなってから、クロック信号の１サイクルを超えてセレクタ１６の出力信号がローレベルからハイレベルに変化すると、イネーブル信号のパルス幅は、クロック信号の２サイクル分となり、カウンタ２２のカウント値は２になる。
【００４６】
従って、ｉの値を１〜ｎまで１つずつ増加させながら、上記動作を繰り返し行うことによって、カウンタ２２のカウント値が１から２に変化する境界のｉの値（遅延素子の段数）を検出できる。従って、遅延素子１段分の遅延時間が分かれば、境界のｉの値×遅延素子１段分の遅延時間から、クロック信号の概略１サイクル分のパルス幅を算出することができる。つまり、クロック信号の動作周波数を測定することができる。
【００４７】
なお、遅延素子１段分の遅延時間は、動作条件により、ある程度の幅（誤差）はあるが、周波数測定回路１０を搭載する半導体装置の設計段階で、ある程度正確な値を知ることができる。また、例えばソフトウェアプログラムを利用して、ｉの値を１からｎまで１つずつ増加させながら、上記動作を繰り返し行わせることによって、カウンタ２２のカウント値が１から２に変化する境界のｉの値を容易に算出することができる。
【００４８】
上記のように、周波数測定回路１０を用いることによって、クロック信号の動作周波数が変わった場合であっても、その概略動作周波数をリアルタイムに測定することができる。このため、非同期メモリのアクセス時間を、測定されたクロック信号の概略動作周波数で除算することによって、非同期メモリをアクセスするためのクロック信号の最適なサイクル数を設定することができ、そのアクセス時間を最適化することができる。
【００４９】
なお、上記説明から分かるように、遅延回路１４は、第１のフリップフロップ１２の出力信号を、クロック信号の１サイクル分以上遅延させることができるだけの遅延素子が必要である。また、遅延素子の段数は何ら制限はないが、遅延素子の段数を増やし、個々の遅延素子による遅延時間を小さくすることによって、測定の分解能を上げることができるので、クロック信号の概略動作周波数を、より正確に測定することができる。
【００５０】
また、上記実施形態では、説明を分かりやすくするために、遅延回路１４の各遅延素子から、セレクタ回路１６の各スリーステートバッファまでの配線による遅延時間、セレクタ回路１６の各スリーステートバッファによる遅延時間、ＡＮＤ回路２０による遅延時間などを無視しているが、実際には、これらの遅延時間も考慮してクロック信号の動作周波数を測定する方が好ましい。
【００５１】
本発明は、基本的に以上のようなものである。
以上、本発明の周波数測定回路について詳細に説明したが、本発明は上記実施形態に限定されず、本発明の主旨を逸脱しない範囲において、種々の改良や変更をしてもよいのはもちろんである。
【図面の簡単な説明】
【００５２】
【図１】本発明の周波数測定回路の構成を表す一実施形態の概略回路図である。
【図２】（ａ）および（ｂ）は、図１に示す周波数測定回路の動作を表すタイミングチャートである。
【符号の説明】
【００５３】
１０  周波数測定回路
１２，１８  フリップフロップ
１４  遅延回路
１６  セレクタ回路
２０  ＡＮＤ回路
２２  カウンタ
【図１】
2007121063.tif 000003
【図２】
2007121063.tif 000004