(57)【要約】【課題】ＰＬＬやＶＣＯといったクロック生成回路では、回路規模が大きくてコストが高く、消費電力が大きく、同期がとれないなどの不利益がある。【解決手段】基準クロック信号ＣＬＫＲのパルスを検出する検出部６１と、上記検出部６１の検出結果に基づいて発振し始める発振器６３と、上記発振器６３の発振信号ＧＥＮＣＫを入力してパルス数を計数し、当該パルス数が所定数に達すると発振の停止を上記発振器６３に指示するカウンタ６２と、を有する。【選択図】  図１
2004159071.tif 000002
【特許請求の範囲】
【請求項１】
基準クロック信号のパルスを検出する検出部と、
上記検出部の検出結果に基づいて発振し始める発振器と、
上記発振器の発振信号を入力してパルス数を計数し、当該パルス数が所定数に達すると発振の停止を上記発振器に指示するカウンタと、
を有する
クロック生成回路。
【請求項２】
上記発振器は、
ゲート回路と、
上記ゲート回路の出力と入力との間に接続され、遅延量に応じてゲート回路の上記出力のオンとオフとを切り替え、遅延量に応じたパルス長のクロック信号を上記ゲート回路の出力に生成させる遅延回路と、
を有する
請求項１に記載のクロック生成回路。
【請求項３】
上記発振器は、上記ゲート回路の入力に帰還される上記遅延回路の遅延量を選択する回路を、さらに有する
請求項２に記載のクロック生成回路。
【請求項４】
上記カウンタは、入力されたカウント数制御信号によってカウント数を設定し変更する手段を含む
請求項１に記載のクロック生成回路。
【請求項５】
上記カウンタは、入力されたカウント出力制御信号によってカウンタの出力を０または１に固定する制御入力を有する
請求項１に記載のクロック生成回路。
【請求項６】
上記発振器は、入力されたクロックバイパス制御信号により当該発振器出力と外部から入力した基準クロックのどちらかを選択して出力する手段を含む
請求項１に記載のクロック生成回路。
【請求項７】
複数の機能ブロックと、
複数の上記機能ブロックのクロック入力端子にそれぞれ接続され、接続された機能ブロックに適した周波数のクロック信号を外部から供給される基準信号に基づいて生成する複数のクロック生成回路と、を有する
半導体集積回路。
【請求項８】
上記複数のクロック生成回路のそれぞれが、
基準クロック信号のパルスを検出する検出部と、
上記検出部の検出結果に基づいて発振し始める発振器と、
上記発振器の発振信号を入力してパルス数を計数し、当該パルス数が所定数に達すると発振の停止を上記発振器に指示するカウンタと、を含む
請求項７に記載の半導体集積回路。
【請求項９】
上記クロック生成回路で生成されたクロック信号の周波数を確認するために当該クロック信号またはその分周信号を外部に出力する出力手段をさらに有する
請求項７に記載の半導体集積回路。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、必要な周波数のクロック信号を生成するクロック生成回路、および、クロック生成回路を有する半導体集積回路に関する。
【０００２】
【従来の技術】
例えばＣＰＵ（ｃｅｎｔｒａｌ  ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔ）を含む複数の機能ブロックを有する大規模半導体集積回路（ＬＳＩ）において、動作に必要な最高周波数が近年、益々高くなっている。
このため、ＬＳＩの多くでは外部から与えられた基準クロック信号を元に高い周波数のクロック信号を生成する信号源として、ＰＬＬ（Ｐｈａｓｅ−Ｌｏｃｋｅｄ  Ｌｏｏｐ）回路が使用されている。
さらに高速なクロックを用いたテストでは、外部のテスタから直接高速クロックを入力することが困難なため、上記ＰＬＬ回路あるいはＶＣＯ（ｖｏｌｔａｇｅ−ｃｏｎｔｒｏｌｌｅｄ  ｏｓｃｉｌｌａｔｏｒ）を用いてテストを行う場合も多い。
【０００３】
【発明が解決しようとする課題】
ところが、ＰＬＬ回路あるいはＶＣＯを用いる多くの半導体集積回路では、以下の課題を有している。
通常のＰＬＬ回路やＶＣＯはアナログ回路で構成され、ディジタル回路に比較して設計が難しく、設計や動作検証に時間がかかる。
また、ＰＬＬ回路は占有面積が大きい。半導体製造プロセスの進化によってディジタル回路の面積はどんどん縮小されてゆくが、アナログ回路の面積は縮小しにくい。
ＶＣＯのみの場合、ＰＬＬ回路に比べて相対的に面積は小さくなるが、ＶＣＯのみでは外部の基準クロックと同期がとれないため通常動作やテストにおいて何らかの外部データとの同期をとるための手段が必要になる。
また、複数の機能ブロックに異なる周波数のクロックを分配する場合にブロックごとにＶＣＯやＰＬＬ回路を用意することは面積的に不利なため、多くの場合、各ブロックで必要なクロック周波数の最小公倍数の周波数を持つ基準クロック信号を１つのＰＬＬで生成し、それを分周して分配する手法が採用されている。
最小公倍数の基準クロックの周波数が非常に高い場合は、基準クロック信号の生成が困難である、あるいは、消費電力が大きくなるなどの不利益がある。かかる不利益を避けて基準クロックの周波数（最小公倍数）を決定すると、選択できるクロック周波数の種類が狭められてしまう。
さらに、従来のＰＬＬ回路では発振周波数が安定するまでに時間がかかり、周波数を短時間で切り替えることができない。そのため高い周波数での動作テストを行う場合にＰＬＬ回路を用いると、テストに時間がかかる。
【０００４】
本発明の第１の目的は、ＰＬＬ回路やＶＣＯといった大規模な回路を用いることなく、小規模の回路により高速なクロック信号を生成することができるクロック生成回路を提供することにある。
本発明の第２の目的は、複数の機能ブロックに適した周波数のクロック信号を生成でき、高速のクロック信号の分配に伴う消費電力を低減した半導体集積回路を提供することにある。
【０００５】
【課題を解決するための手段】
本発明の第１の観点のクロック生成回路は、上記第１の目的を達成するためのものであり、基準クロック信号のパルスを検出する検出部と、上記検出部の検出結果に基づいて発振し始める発振器と、上記発振器の発振信号を入力してパルス数を計数し、当該パルス数が所定数に達すると発振の停止を上記発振器に指示するカウンタと、を有する。
好適に、上記発振器は、ゲート回路と、上記ゲート回路の出力と入力との間に接続され、遅延量に応じてゲート回路の上記出力のオンとオフとを切り替え、遅延量に応じたパルス長のクロック信号を上記ゲート回路の出力に生成させる遅延回路と、を有する。
【０００６】
本発明の第２の観点の半導体集積回路は、上記第２の目的を達成するためのものであり、複数の機能ブロックと、複数の上記機能ブロックのクロック入力端子にそれぞれ接続され、接続された機能ブロックに適した周波数のクロック信号を外部から供給される基準信号に基づいて生成する複数のクロック生成回路と、を有する。
好適に、上記複数のクロック生成回路のそれぞれが、基準クロック信号のパルスを検出する検出部と、上記検出部の検出結果に基づいて発振し始める発振器と、上記発振器の発振信号を入力してパルス数を計数し、当該パルス数が所定数に達すると発振の停止を上記発振器に指示するカウンタと、を含む。
【０００７】
第１の観点のクロック生成回路は、検出部と、発振器と、カウンタとを有する。
検出部は、入力される基準クロック信号のパルスを検出し、その結果を出力する。発振器は、検出部の検出結果に基づいて発振を開始し始める。カウンタは、発振器の出力をモニタすることにより発振信号のパルス数を計数する。このパルス数が予め決められた所定数に達すると、カウンタは発振の停止を発振器に指示する。これにより、発振器は発振を停止する。つぎに、基準クロックが検出されるたびに、上記した動作、即ち発振の開始、発振信号のカウント、発振の停止が繰り返される。この発振器は、好適に、ゲート回路と遅延回路からなる。この場合、遅延回路の遅延量に応じたパルスのクロック信号がゲート回路から出力される。カウンタにより当該クロック信号の発生と停止が制御され、カウンタは基準クロック信号に同期して動作しているため、ゲート回路から出力されるクロック信号は基準クロック信号に同期している。
【０００８】
第２の観点のクロック生成回路は、複数の機能ブロックと、それぞれのクロック入力端子に接続されたクロック生成回路とを有する。
クロック生成回路は、好適に、ゲート回路と、ゲート回路の出力と入力との間に接続されている遅延回路とを有するため、遅延回路の遅延量に応じてゲート回路の出力のオンとオフとが切り替えられ、これにより遅延量に応じたパルス長のクロック信号がゲート回路の出力に生成される。このクロック信号の生成は、共通の基準信号に基づいて生成される。複数のクロック生成回路のそれぞれは、接続された機能ブロックに適した周波数のクロック信号を生成し出力すると、すぐに、出力されたクロック信号がクロック入力端子から機能ブロック内に供給される。
【０００９】
【発明の実施の形態】
以下、本発明に係る半導体集積回路の実施の形態を、図面を参照して説明する。
【００１０】
［第１の実施の形態］
図１は、第１の実施の形態におけるクロック発生回路の構成を示すブロック図である。
図１に図解したクロック生成回路５６は、基準クロック信号ＣＬＫＲを入力し、基準クロック信号ＣＬＫＲの電圧変化を検出するエッジ検出器６１、カウンタ６２、および、イネーブル端子付き発振器６３を有する。
エッジ検出器６１の出力が、カウンタ６２のクリアの反転入力端子Ｃ＿Ｘに接続されている。カウンタ６２のリセットの反転入力端子Ｒ＿Ｘにリセット信号ＲＳＴ＿Ｘが入力される。
カウンタ６２の出力端子ＣＯ＿Ｘが発振器６３のイネーブル端子ＥＮに接続され、発振器６３の出力から生成したクロック信号ＧＥＮＣＫが出力される。このクロック信号ＧＥＮＣＫは、カウンタ６２のクロック入力ＣＫに入力され、カウンタ６２によりパルス数がカウントされる。
【００１１】
図２は、エッジ検出器の一構成例を示す回路図である。
エッジ検出器６１は、一方の入力に基準クロック信号ＣＬＫＲが入力されるＮＡＮＤゲート回路７１を有している。基準クロックの入力端子とＮＡＮＤゲート回路７１の他方端子との間に、インバータ７２と遅延回路７３が直列に接続されている。
【００１２】
基準クロック信号ＣＬＫＲが“Ｌ（ロー）”の初期状態では、遅延回路７３の出力（ＮＡＮＤゲート回路７１の他方入力）が“Ｈ”となっているから、基準クロックパルスが立ち上がるとＮＡＮＤゲート回路７１の出力信号（エッジ検出信号）ＣＮＴＳＴＡが“Ｌ”となる。この基準クロックのパルスの立ち上がりから、インバータ７２と遅延回路７３により遅延量に応じた時間が経過すると、ＮＡＮＤゲート回路７１の他方入力が“Ｌ”に変化するため、ＮＡＮＤゲート回路７１からのエッジ検出信号ＣＮＴＳＴＡが“Ｈ”に戻される。このようにエッジ検出器６１は、基準クロック信号ＣＬＫＲのパルスの立ち上がりを検出して、所定長さの負のパルスを出力する。
【００１３】
図３は、カウンタの一構成例を示す回路図である。
カウンタ６２は、直列接続された、例えば４個のフリップフロップ８１，８２，８３，８４と、最も後段のフリッププロップ８４のＱ端子とカウンタの出力端子ＣＯ＿Ｘとの間に接続されたインバータ８５とを有する。
初段のフリップフロップ８１のＤ端子に“Ｈ”レベルの電圧ＶＥが印加されている。４つのフリップフロップのセット端子Ｓにリセット信号ＲＳＴ＿Ｘの反転信号が印加可能であり、４つのフリップフロップのリセット端子Ｒにカウンタのエッジ検出信号ＣＮＴＳＴＡの反転信号が印加可能な構成となっている。
【００１４】
このカウンタ６２では、リセット信号ＲＳＴ＿Ｘが“Ｌ”となると、その反転信号により全てのフリップフロップが“Ｈ（１）”にセットされる。また、エッジ検出信号ＣＮＴＳＴＡが“Ｌ”となると、その反転信号（クリア信号）により全てのフリップフロップが“Ｌ（０）”にリセットされ、以後、クロック入力ＣＫにクロック信号ＧＥＮＣＫのパルスが立ち上がるたびに、初段のフリップフロップ８１のＤ端子に印加されている“Ｈ”レベルの電位をフリップフロップ８２のＤ端子、フリップフロップ８３のＤ端子、フリップフロップ８４のＤ端子、インバータ８５の入力に転送する。
インバータの出力、即ちカウンタ６２の出力信号ＯＳＣ＿ＥＮは上記クリア時に“Ｌ”から“Ｈ”に変化している。その後、クロック信号ＧＥＮＣＫの４パルス目の立ち上がりでインバータ８５に“Ｈ”電位が転送されると、この出力信号ＯＳＣ＿ＥＮが“Ｈ”から“Ｌ”に切り替わる。
以上のように、カウンタ６２は、クリア動作ごとに４つのパルスをカウントする。
【００１５】
図４は、イネーブル端子ＥＮ付きの発振器の一構成例を示す回路図である。
発振器６３において、イネーブル端子ＥＮとクロック信号ＧＥＮＣＫの出力端子との間に、ＮＡＮＤゲート回路８１、遅延回路８２、インバータ８３が直列に接続されている。ＮＡＮＤゲート回路８１の一方端子がイネーブル端子ＥＮに接続され、他方端子が遅延回路８２の出力に接続されている。
この発振器６３では、イネーブル端子ＥＮに入力される信号ＯＳＣ＿ＥＮが“Ｈ”の期間では、遅延回路８２の遅延量Ｄで決まるパルス幅で発振し、クロック信号ＧＥＮＣＫが出力される。
【００１６】
なお、図５に示すように、ＮＡＮＤゲート回路８１と遅延回路８２との接続中点から、インバータ８３を通してクロック信号ＧＥＮＣＫを取り出す構成でもよい。
イネーブル信号ＯＣＮ＿ＥＮが“Ｈ（ハイ）”レベルになると、ＮＡＮＤゲート回路８１の一方入力の電圧変化に応じてＮＡＮＤゲート回路８１の出力の電圧が変化し、この出力電圧の変化が遅延回路８２の遅延量Ｄだけ遅れてＮＡＮＤゲート回路８１の他方の入力に帰還される。このため、ＮＡＮＤゲート回路８１の出力は、遅延量Ｄにより決まるパルス幅で発振する。この発振信号の反転信号がインバータ８３の出力から、クロック信号ＧＥＮＣＫとして出力される。
【００１７】
図６（Ａ）〜図６（Ｅ）は、図１に示すクロック生成回路の各信号のタイミングチャートである。
図６（Ｂ）に示すように、比較的に低い周波数の基準クロック信号ＣＬＫＲが、図１に示すエッジ検出器６１に入力されているときに、図６（Ａ）に示すリセット信号ＲＳＴ＿Ｘが“Ｈ”から“Ｌ”に変化すると、前述したように図３の４つのフリップフロップに“Ｈ”がセットされる。その後の最初の基準クロック信号ＣＬＫＲのパルスの立ち上がりによって、前述したように図２のＮＡＮＤゲート回路７１の出力信号であるエッジ検出信号ＣＮＴＳＴＡが、インバータ７２と遅延回路７３の遅延量で決まる短い期間だけ“Ｈ”から“Ｌ”に変化する。
エッジ検出信号が“Ｈ”から“Ｌ”に変化すると、前述したように図３の４つのフリップフロップにリセットがかかり、それらの保持データが一斉に“Ｌ”に変化する。同時に、カウンタの出力信号ＯＳＣ＿ＥＮが“Ｌ”から“Ｈ”に変化して、図４または図５に示す発振器６３が発振を開始する。
前述したように、発振器６３からのクロック信号ＧＥＮＣＫの４パルス目の立ち上がりで図３に示すカウンタ６２から出力されるイネーブル信号ＯＳＣ＿ＥＮが“Ｈ”から“Ｌ”に変化する。このため、次にイネーブル信号ＯＳＣ＿ＥＮが“Ｈ”になるまで発振器６３が発振を停止する。
【００１８】
図６（Ａ）〜図６（Ｅ）に示すように、以上の一連の動作が基準クロック信号ＣＬＫＲのパルスが立ち上がるたびに繰り返される。その結果、本例では、基準クロック信号ＣＬＫＲの４倍の周波数のクロック信号ＧＥＮＣＫが生成される。
以上のクロック生成回路５６では、生成したいクロック信号ＧＥＮＣＫの周波数に応じてカウンタ６２のフリップフロップの段数を予め設定する。生成したいクロック信号ＧＥＮＣＫの周波数が高い場合は、発振器６３の遅延量を予め設計時に小さくして対処する。
【００１９】
図７（Ａ）〜図７（Ｅ）に、発振器６３の遅延量が予定より小さくなった場合の各信号のタイミングチャート、図８（Ａ）〜図８（Ｅ）に発振器６３の遅延量が予定より大きくなった場合の各信号のタイミングチャートを示す。
発振パルス長が短くなった場合は問題ないが、発振パルス長が長くなった場合は、図８（Ｅ）のように、これ以上パルス長が長くなると予定した周波数のクロック信号が得られなくなる可能性がある。この場合、発振器６３の遅延量を変更できれば便利である。
【００２０】
［第２の実施の形態］
第２の実施の形態は、クロック生成に用いる発振器の遅延量の変更に関する。
図９に、遅延量を変更できる発振器の一構成例を示す。
図９に示した発振器６３−１は、例えば３つの遅延回路８２−１，８２−２，８２−３を直列接続させ、その各々の遅延回路の出力ノードの電位を入力とするセレクタ８４を設ける。セレクタ８４は、制御信号Ｓ６により、入力の組み合わせを変化させてＮＡＮＤゲート回路８１の他方端子に与える遅延量を変化させる。これにより、遅延量の変更が可能となる。
【００２１】
なお、図１０に示すように、ＮＡＮＤゲート回路８１と遅延回路８２−３との接続中点から、インバータ８３を通してクロック信号ＧＥＮＣＫを取り出す構成でもよい。
図１０に示す発振器６３−１において、遅延回路８２−１は遅延量Ｄ１を有し、遅延回路８２−２は遅延量Ｄ２を有し、遅延回路８２−３は遅延量Ｄ３を有している。全体の遅延量は、この３つの遅延量Ｄ１、Ｄ２、Ｄ３の組み合わせにより決まる。
遅延量の組み合わせを決める手段としてのセレクタ８４が、各遅延回路の３つの出力と、ＮＡＮＤゲート回路８１の他方入力との間に接続されている。セレクタ８４は、外部から入力される制御信号Ｓ６により制御される。
【００２２】
発振器６３の遅延回路８２の遅延量Ｄは、回路のクリティカルパスを参考に若干のマージンを加えた値を目安とする。図９に示した発振器６３−１では、回路のマージンに合わせて全体の遅延量が変更できる。ところが、発振周波数自体は変わらない。
【００２３】
［第３の実施の形態］
クロック生成回路では、回路の最高動作可能周波数の測定やテストの高速化、その他の理由で意図的に発振器の出力周波数を変更したい場合がある。第３の実施の形態は、クロック生成回路の発振周波数の変更に関する。
【００２４】
図１１に、パルスのカウント数が変更可能なクロック生成回路の一構成例を示す。
図１１に示すクロック生成回路５６−１は、カウントパルス数を４ビットＹ０〜Ｙ３で出力するカウンタ６２−１と、４ビットデータの比較器６４を設ける。カウンタ６２−１の４ビットの出力を、一方の入力Ａ０〜Ａ３として比較器６４に入力し、比較器６４の他方の入力に４ビットの選択信号のビット列Ｂ０〜Ｂ３を入力する。この選択信号Ｂ０〜Ｂ３によって生成したいクロック信号ＧＥＮＣＫを設定する。比較器６４は、入力されるカウンタのパルスのカウンタ値Ａ０〜Ａ３を、選択信号のビット列Ｂ０〜Ｂ３と比較する。より詳細には、２つの入力の排他的論理和の反転を論理演算する。これにより、比較器６４の出力、即ちイネーブル信号ＯＳＣ＿ＥＮは、カウンタのパルスのカウンタ値Ａ０〜Ａ３が選択信号のビット列Ｂ０〜Ｂ３と一致するときは“１（Ｈ）”、一致しないときは“０（Ｌ）”となる。発振器６３は、このイネーブル信号ＯＳＣ＿ＥＮにより発振の開始と停止が制御される。
【００２５】
図１２に、クロック周波数を、パルスのカウント数を変えることにより変更するための発振器の構成例を示す。
図１２に示す発振器６２−１において、４つのフリップフロップ８１〜８４のそれぞれの出力を入力とする、４入力のセレクタ８６を有する。セレクタ８６は、入力されるカウント数制御信号Ｓ７に応じてセレクタ８６の４つの入力信号の何れかを選択し出力する。このため、インバータ８５から出力されるイネーブル信号ＯＳＣ＿ＥＮは、１〜４パルスの範囲内で任意のパルスのカウント数ごとに“Ｈ”から“Ｌ”に変化する。次の段の発振器６３の発振が、この１〜４の範囲内で選択された任意の数のパルスごとに停止する結果、発振周波数が変更できる。
【００２６】
［第４の実施の形態］
図１３は、第４の実施の形態におけるクロック生成回路の構成を示すブロック図である。
図１３に図解したクロック生成回路５６−２は、エッジ検出器６１の出力と、カウンタ６２のクリアの反転入力端子Ｃ＿Ｘとの間に、セット信号ＳＴ＿Ｘが入力可能になっている。このセット信号ＳＴ＿ＸおよびＲＳＴ＿Ｘは、ともにローアクティブであるが互いに反転した信号であり、その状態に応じてカウンタがセットまたはリセットされる。図３に示すカウンタ６２の構成例では、リセット信号ＲＳＴ＿Ｘが“Ｈ”から“Ｌ”となることによりフリップフロップ８１〜８４がセットされ、カウンタ自身がリセット、即ちカウンタ６２の出力が“Ｈ”から“Ｌ”となる。逆に、端子Ｃ＿Ｘに入力されるセット信号ＳＴ＿Ｘが“Ｈ”から“Ｌ”となることによりフリップフロップ８１〜８４がリセットされ、カウンタ自身がセット、即ちカウンタ６２の出力が“Ｌ”から“Ｈ”となる。
【００２７】
以上の構成および制御により、基準クロック信号ＣＬＫＲが入力されている場合でも、発振器６３を連続発振状態または連続停止状態に維持できる。これにより、発振器６３自体の発振周波数を出力クロック信号から判別できる利点がある。
なお、図１３におけるリセット信号ＲＳＴ＿Ｘおよびセット信号ＳＴ＿Ｘが、本発明における“カウント出力制御信号”の一例に該当する。
【００２８】
［第５の実施の形態］
図１４は、第５の実施の形態におけるクロック生成回路の構成を示すブロック図である。
図１４に図解したクロック生成回路５６−３においては、発振器６３から出力されるクロック信号ＧＥＮＣＫと、基準クロック信号ＣＬＫＲとを選択するセレクタ６４を有する。セレクタ６４は、クロックバイパス制御信号Ｓ８に応じてクロック信号ＧＥＮＣＫと基準クロック信号ＣＬＫＲとを切り替えて、外部に出力する。
【００２９】
以上の構成および制御により、生成したクロック信号ＧＥＮＣＫと基準クロック信号ＣＬＫＲとの双方を切り替えて出力できるため、発振周波数の自動検出が可能となる。
【００３０】
以上の第１から第５の実施の形態のクロック生成回路について、以下の利益が得られる。
第１の利益として、クロック生成回路が、基準クロック信号の検出部と、発振器と、簡単なカウンタで構成できることから、回路の占有面積がＰＬＬ回路等に比べ格段に小さい。
第２の利益として、特に第２の実施の形態のクロック生成回路では、発振器の遅延量を変更して発振周波数を変更できることから、発振器の発振周波数（あるいはパルス幅）が目標とする値と異なる場合でも、ＬＳＩを形成後に、電気的に発振周波数を変更できる。
第３の利益として、特に第３の実施の形態のクロック生成回路では、カウンタのカウント値を制御できることから、クロック生成回路から出力されるクロック信号の周波数を変更できる。例えば、周囲の温度環境などによりパルス長、即ち遅延回路の遅延量が多少なりとも変化する場合、基準クロック信号のエッジを検出してから一定の期間に必要数のパルスを生成する必要がある。このような場合、パルスのカウント値とパルス幅の双方が調整できると周波数の調整の自由度が格段に高まる。したがって、第２の実施の形態と第３の実施の形態の組み合わせは、特に好ましい。
第４の利益として、特に第４の実施の形態のクロック生成回路では、発振器の連続発振、連続停止の制御が出来ることから、発振周波数と同じまでクロック生成回路からのクロック信号の周波数を発振周波数と同じまで高くすることが出来る。また、発振周波数を調べるテストなどが容易である。
第５の利益として、特に第５の実施の形態のクロック生成回路では、クロック生成回路で生成したクロック信号と基準クロック信号との選択的な出力が可能であることから、発振周波数の自動検出が可能となる。
【００３１】
つぎに、以上のクロック生成回路を用いた半導体集積回路について、以下の第６〜第８の実施の形態にて説明する。
【００３２】
［第６の実施の形態］
図１５は、第６の実施の形態の半導体集積回路（ＬＳＩ）の概略構成を示すブロック図である。
図１５に図解したＬＳＩ５５は、複数の機能ブロック、ここではブロックＡ、ブロックＢおよびブロックＣを有している。このＬＳＩ５５では、ＰＬＬ回路等の高い周波数のクロック信号を生成する回路を省いて、その代わりに、複数のブロックＡ〜Ｃのそれぞれのクロック入力端子の直ぐ近くに、対応するブロックに適した周波数のクロック信号を生成するクロック生成回路５６Ａ，５６Ｂ，５６Ｃを設けている。
【００３３】
第６の実施の形態においては、複数の機能ブロックのそれぞれにクロック生成回路を設ける。クロック生成回路は、上述した第１〜第５の実施の形態に示すクロック生成回路を用いることができる。あるいは、第１〜第５の実施の形態を任意に組み合わせたクロック生成回路を用いることができる。
【００３４】
いずれの場合でも、基準クロックの検出回路、発振器およびカウンタを組み合わせた簡単で小規模な回路で構成できる。このような小規模なクロック生成回路は、機能ブロックと他の構成部分との隙間のスペースに容易に配置でき、ＬＳＩの面積をほとんど増大させない。
また、低い周波数の基準クロック信号を機能ブロックの近くまで配線により供給し、必要な機能ブロックの近くで、基準クロック信号より高い周波数のクロック信号を生成させるため、クロックの配線による遅延がなくまた、高い周波数のクロック信号により電力の消費も低減されている。
さらに、アナログ回路とディジタル回路が混在したＰＬＬ回路が不要であることから、プロセスコストが下がり、また電源をアナログ回路とディジタル回路で分ける必要もなく、占有面積の削減とともに、大幅なコスト低減が可能となる。
【００３５】
［第７の実施の形態］
図１６は、第７の実施の形態における半導体集積回路の構成を示すブロック図である。この図は、ＣＰＵの動作テスト時にテスタを接続した状態を示す。
図１６に図解した半導体集積回路（以下、ＬＳＩ）１は、複数の機能ブロックとして、第１ブロック２−１、第２ブロック２−２、および、ＣＰＵ（中央処理装置）３を有する。これら機能ブロック２−１，２−２，３は、内部バス４に接続されている。内部バス４に、さらに、記憶回路としてのＲＡＭ５、入出力（Ｉ／Ｏ）インターフェイス６が接続されている。
入出力インターフェイス６は、外部のテスタ１００のデータおよびプログラムの入出力端子に接続されている。また、ＣＰＵ３のリセット端子に供給されるリセット信号ＳＲが、外部のテスタ１００から与えられるようにＣＰＵ３とテスタ１００が接続されている。
ＲＡＭ５に、テスト用プログラムおよびデータ（テストパターン）を含む情報が記憶されている。
【００３６】
各機能ブロックに動作クロック信号供給するクロック供給部１０が接続されている。
クロック供給部１０は、ＰＬＬ回路１１、テスト用クロック生成回路１２、２つのセレクタ１３と１４、および、２つの分周器１５と１６を有する。
ＰＬＬ回路１１は、本例のテスト時には入力されないが、通常動作時に入力される基準クロック信号を基にＣＰＵ３の通常動作時の高い周波数の動作クロックＣＬＫ１を生成させる。このため、ＰＬＬ回路１１の入力は、第１の外部クロック入力端子１ａに接続されている。ＰＬＬ回路１１の出力は、セレクタ１３の一方の入力に接続されている。
【００３７】
図解したＬＳＩ１は、もう１つ、外部から入力される外部クロック信号ＣＬＫ２を入力する手段として、外部クロック入力端子１ｂを有している。外部クロック入力端子１ｂはセレクタ１３の他方の入力と接続されている。外部クロック信号ＣＬＫ２は、後述するテスト時のデータおよびプログラムロード時にテスタ１００から供給される、低い周波数の第１テストクロック信号である。なお、通常動作時に、外部クロック入力の手段を用いると、ＰＬＬ回路１１の動作を確認するために、ＰＬＬ回路１１から出力されるべき動作クロックＣＬＫ１と同じ高い周波数のクロック信号を外部クロック信号ＣＬＫ２として入力することも出来る。
セレクタ１３は、外部のテスタ１００から入力される制御信号Ｓ１により、２つの入力に入力されたクロック信号ＣＬＫ１またはＣＬＫ２の何れかを選択し、出力する。
【００３８】
セレクタ１３の出力が、セレクタ１４の一方の入力に接続されている。セレクタ１４の他方の入力は、テスト用クロック生成回路１２の出力に接続されている。
セレクタ１４の出力がＣＰＵ３のクロック入力に接続されている。セレクタ１４の出力と機能ブロック２−１との間に１／ｎ分周器１５が接続されている。セレクタの出力と機能ブロック２−２との間に１／ｍ分周器１６が接続されている。ＰＬＬ１１で生成された最高周波数、例えば１００〜２００ＭＨｚの周波数の動作クロック信号ＣＬＫ１によってＣＰＵ３が動作する。機能ブロック２−１は、動作クロック信号ＣＬＫ１の周波数を１／ｎに落とした動作クロック信号で動作し、機能ブロック２−２は、動作クロック信号ＣＬＫ１の周波数を１／ｍに落とした動作クロック信号で動作する。このように、クロック信号供給部１０は、ＣＰＵ３を含めた複数の機能ブロックにそれぞれ適したクロック信号を生成し、または外部から入力して供給する。
【００３９】
テスト用クロック生成回路１２は、本発明のクロック生成回路の一実施形態を構成する。テスト用クロック生成回路１２は、外部クロック信号ＣＬＫ２に同期した基準クロック信号（または制御信号）Ｓ２を外部のテスタ１００から入力し、これを基に、前述したＣＰＵ３の動作クロック信号と等価な、例えば１００〜２００ＭＨｚの高いテストクロック信号ＣＬＫ１Ｔを生成する。テストクロック信号ＣＬＫ１Ｔは、セレクタ１４の他方入力に入力される。
【００４０】
テスト用クロック生成回路１２としては、前述した第１から第５の実施の形態のクロック生成回路、あるいは、これらを組み合わせたクロック生成回路を用いることができる。
【００４１】
以下、図１６に図解したＬＳＩ１に対して、テスタ１００により、ＬＳＩ１の動作時と同じ高い周波数による動作テスト（動作周波数保証テスト）について説明する。
まず、低い周波数のテストクロック信号ＣＬＫ２をテスタ１００からＣＰＵ３に直接入力するために、テスタ１００から入力される制御信号Ｓ１とＳ２を共にディスイネーブル状態にする。これにより、セレクタ１３が第１のテストクロックＣＬＫ２の入力側を選択し、第１のテストクロックＣＬＫ２がセレクタ１４に送られる。また、セレクタ１４が通常クロック側、即ちテスタ１３の出力側を選択する。その結果、第１のテストクロック信号ＣＬＫ２がＣＰＵ３に入力される。ＣＰＵ３は、入力クロックの周波数に応じて低速の動作モードと高速の通常動作モードを選択できるように構成されている。今の場合、低速動作モードで動作する。より詳細には、テストクロック信号ＣＬＫ２に同期して動作周波数保証テスト用のプログラムおよびデータ（テストパターン）を、テスタ１００から、入出力インターフェイス６、内部バス４を経由してＲＡＭ５に一時記憶（ロード）させる。
【００４２】
つぎに、テストクロック信号ＣＬＫ２に同期して、テスタ１００が制御信号Ｓ２をイネーブル状態に変化させる。これによりテスト用クロック生成回路１２が動作し、テスト用クロック生成回路１２でテストクロック信号ＣＬＫ１Ｔが生成され、出力される。このとき、制御信号Ｓ２のイネーブル状態への変化によりセレクタ１４が切り替わっているため、生成されたテストクロック信号ＣＬＫ１Ｔは、セレクタ１４を経由してＣＰＵ３に入力される。高い周波数のテストクロック信号ＣＬＫ１Ｔが入力されると、ＣＰＵ３が低速の動作モードから高速の動作モードに切り替わる。
【００４３】
その後、リセット信号ＳＲがテスタ１００からＣＰＵ３に入力される。これにより、ＣＰＵ３がＲＡＭ５から動作周波数保証テスト用のプログラムおよびテストパターンを呼び出して、このプログラムを実行する。
動作周波数保証テストは、ＣＰＵ３自身の機能をチェックする、あるいは、ＣＰＵ３が他の機能ブロックを制御する機能をチェックするため、通常の動作クロック信号ＣＬＫ１と同じ高い周波数を有するテストクロック信号ＣＫＬ１Ｔの環境下で実行される。
テストの結果は、ＲＡＭ５内に、あるいは、入出力インターフェイス６内の記憶回路に一旦書き込まれる。
【００４４】
テスタ１００は、動作周波数保証テストが終了すると、制御信号Ｓ２をディスイネーブル状態に戻す。これにより、セレクタ１４の入力信号が切り替わり、第１のテストクロック信号ＣＬＫ２が、再度、ＣＰＵ３に入力されるようになる。
第１のテストクロック信号ＣＬＫ２による低速の動作モードにおいて、ＲＡＭ５あるいは入出力インターフェイス６から、内部バス４を経由してテスト結果をＣＰＵ３が読み取る。ＣＰＵ３は、読み取ったテスト結果から動作周波数保証テストの合否を判定する。
【００４５】
第７の実施の形態では、通常の動作と同じ高い周波数のテストクロック信号ＣＬＫ１Ｔを専用のテスト用クロック生成回路１２により生成する。このテスト用クロック生成回路１２は、ＰＬＬ回路やＶＣＯより小型で簡素な構成を有し、発振指令が出てから直ぐに所定の周波数のクロック信号ＣＬＫ１Ｔを出力できる利点がある。このため、低速の動作モードから高速の動作モードに切り替えられた場合でも、高速の動作モードに必要な上記テストクロック信号ＣＬＫ１Ｔが速やかに入力され、待ち時間が殆ど発生しない。
テスト時のプログラムやデータのロード、テスト結果の読み出しは、テスタ１００からのクロック信号ＣＬＫ２により実行されるが、このテストクロック信号ＣＬＫ２は、高速のテストクロック信号より、例えば１桁ほど周波数が低いため、内部のクロック生成部の構成が大規模で高精度な高価なテスタを用いる必要がない。
さらに、通常動作時に用いる内蔵のＰＬＬ回路１１を用いない。ＰＬＬ回路１１で生成する高速クロック信号ＣＬＫ１の代わりに、テストクロック信号ＣＬＫ２および基準クロック信号Ｓ２に同期がとれた信号としてテストクロック信号ＣＬＫ１Ｔが生成される。このようにテストクロック同士の同期がとれているため、テスト中の同期ずれの懸念がなく、テストがスムーズに、かつ正確に進行する。
【００４６】
なお、テスト用クロック生成回路１２は、基準クロック信号および／または選択信号Ｓ２による制御で必要なときだけ発振し、不必要なときは停止させることが消費電力の抑制の面から望ましい。このように発振の停止を頻繁に行っても、テスト用クロック生成回路１２は立ち上がり、即ち所定周波数が安定するまでの時間が短いため時間ロスとならない。
また、第７の実施の形態では、ＰＬＬ回路１１自体を省略し、通常の動作時も発振器１２を用いることが出来る。
【００４７】
［第８の実施の形態］
図１７は、第８の実施の形態における半導体集積回路の構成を示すブロック図である。この図は、ＣＰＵの動作テスト時にテスタを接続した状態を示す。
図１７に図解した半導体集積回路のクロック信号供給部３０は、テスト用クロック発振器（Ｔ．ＯＳＣ）１２で生成されたテストクロック信号ＣＬＫ１Ｔを入力するテストクロック出力部（Ｔ．ＣＫ出力部）３１を有する。テストクロック出力部３１は、内部にバッファまたは分周回路を有し、生成されたテストクロック信号ＣＬＫ１Ｔを、このバッファに保持し、あるいは分周する。テスタ１００は、テストクロック信号ＣＬＫ１Ｔの周波数を確認するための信号（あるいは、テストクロック信号ＣＬＫ１Ｔそのもの）を必要なときに取り出して、テストクロック信号ＣＬＫ１Ｔの周波数を直接的にあるいは間接的に測定する。テストクロック信号ＣＬＫ１Ｔの周波数が動作クロック信号ＣＬＫ１と大きく異なっている場合は、周波数を修正する指示を出す。なお、この場合のテスト用クロック生成回路１２は、前述したように発振周波数が可変となる構成をとり、テスタ１００は制御信号Ｓ３を制御してテストクロック信号ＣＬＫ１Ｔの発振周波数を変更する。
なお、本例のクロック信号供給部３０の他の構成は、図１に示すクロック信号供給部１０と同じである。
【００４８】
図１７に示す半導体集積回路において、内部バス４にＲＯＭ７が接続されている。テスト用のプログラムをＲＯＭ７に予め記憶させ、これにより、第７の実施の形態のように動作周波数保証テストのたびにプログラムをＲＡＭ５にロードする手間を省き、テスト時間を短縮できる。また、テスタ１００がプログラムをロードする機能を省略できる。なお、ＲＯＭ７は必須な構成ではなく、第７の実施の形態のように、ＲＡＭ５内にプログラムをダウンロードしてもよい。
【００４９】
図１７に示す半導体集積回路に、オンチップデバック用のアーキテクチャと、そのシリアルポートが組み込まれている。このアーキテクチャは、以下、ＣＰＵデバッグテストで説明するが、いわゆるバウンダリ・スキャンテストの実行もできる。バウンダリ・スキャンテストとは、各機能ブロックのＩ／Ｏ境界（バウンダリ）に対し、あたかもテスタが接続されているときと同じようにＩＣ内部からスキャンテストを実行でき、テスタを不要としたセルフ・スキャンテストを言う。
【００５０】
このようなセルフ・テストを実行するアーキテキチャおよびシリアルポートの代表的なものとして、いわゆるＪＴＡＧ（Ｊｏｉｎｔ  Ｔｅｓｔ  Ａｃｔｉｏｎ  Ｇｒｏｕｐ）仕様のものがある。
ＪＴＡＧに対応した構成として、ＤＵＴ（Ｄｅｂｕｇ  Ｓｕｐｐｏｒｔ  Ｕｎｉｔ）４０がＣＰＵ３内に予め組み込まれている。また、ＪＴＡＧテストのインターフェイス（Ｔ．Ｉ／Ｆ）４５が、ＣＰＵ３のリセット入力と、ＬＳＩのリセット端子１ｃとの間に接続されている。このテストインターフェイス４５は、発振およびセレクタの切り替えの許可のための制御信号Ｓ２および周波数を変更するための制御信号Ｓ４を供給するために、テスト用クロック生成回路１２およびセレクタ１４と接続されている。
一方、ＪＴＡＤデバッグ用のシリアルポートとして、ＪＴＡＧデバッガ１０１がテスタ１００内に予め設けられている。テスタ１００は、ＪＴＡＧデバッガ１０１を経由してＤＵＴ４０およびテストインターフェイス４５を制御し、これによって、動作周波数保証テストに必要なＬＳＩの初期化（リセット）、制御（プログラムおよびテストパターンの読み出し等）、結果の取り出しをＣＰＵ動作のバックグラウンドで実行する。このため、図１７の場合、低い周波数の第１のテストクロック信号ＣＬＫ１Ｔの入力自体を不要とし、テストクロック同士の同期をとる必要もなくなる。
【００５１】
図１８は、ＤＳＵ４０の内部構成とＣＰＵの一部の構成を示すブロック図である。
ＤＳＵ４０は、ＴＡＰ（Ｔｅｓｔ  Ａｃｃｅｓｓ  Ｐｏｒｔ）と称される制御ポート４１、データ保持用のレジスタ（Ｄ．ＲＥＧ、以下、ＤＳＵデータレジスタという）４２、制御部（ＣＯＮ）４３、および、命令コード保持用のレジスタ（Ｃ．ＲＥＧ、以下、ＤＳＵ命令レジスタという）４４を有する。ＴＡＰ４１は、外部の前記ＪＴＡＧデバッガ１０１に接続されている。また、ＴＡＰ４１に、ＤＳＵデータレジスタ４２、制御部４３およびＤＳＵ命令レジスタ４４が接続されている。
【００５２】
ＣＰＵ３は、汎用レジスタ（ＲＥＧ）５１、命令レジスタ（Ｃ．ＲＥＧ）５２、この命令レジスタ５２の入力と上記ＤＳＵ命令レジスタ４４の入力とを切り替えるためのセレクタ５３、セレクタ５３の出力に接続されている命令デコーダ（Ｃ．ＤＥＣ）５４を有する。
【００５３】
ＪＴＡＧアーキテクチャを用いた動作周波数保証テスト（ＪＴＡＧデバッグテスト）においては、まず、ＪＴＡＧデバッガ１０１がＪＴＡＧデバッグ制御入出力ラインＬＤＩ／Ｆを使って、テストインターフェイス４５に対し、動作周波数保証テストを行いたい高い周波数（１００〜２００ＭＨｚ）のクロック信号ＣＬＫ１Ｔを出力するよう指示（制御信号Ｓ２の発信指令）を出す。すると、制御信号Ｓ２を受けたテスト用クロック生成回路１２が、指示された周波数で発振を開始する。また、制御信号Ｓ２を受けたセレクタ１４の動作により、クロック信号ＣＬＫ１Ｔがセレクタ１４を経由してＣＰＵ３に入力される。
続いて、ＪＴＡＧデバッガ１０１が、リセット信号ＳＲを、テストインターフェイス４５を経由してＣＰＵ３に入力する。これにより、ＣＰＵ３がリセットされ、高速動作モードに入る。
【００５４】
つぎに、ＪＴＡＧデバッガ１０１から動作周波数保証テスト用のプログラムをダウンロードする。このダウンロードは、ＲＯＭ７内に既にプログラムが記憶されている場合は不要である。ＲＯＭ７が設けられていない場合、ＪＴＡＧデバッガ１０１から、ＪＴＡＧデバッグ制御入出力ラインＬＤＩ／Ｆ、ＤＳＵ４０、ＣＰＵ内部、内部バス４を経由して、プログラムがＲＡＭ５にダウンロードされる。
【００５５】
以下、このプログラムをＪＴＡＧデバッガからＲＡＭにダウンロードする手順を、図１８を用いて詳細に説明する。
最初に、ＪＴＡＧデバッガ１０１からＪＴＡＧデバッグ制御入出力ラインＬＤＩ／Ｆに出力されたプログラムデータが、ＴＡＰ４１を経由してＤＳＵデータレジスタ４２に書き込まれる。このＤＳＵデータレジスタは、通常、容量が小さいため動作周波数保証テスト用のプログラムを一度に書き込めない。したがって、このプログラムの一部がＤＳＵデータレジスタ４２に書き込まれる。
【００５６】
つぎに、ＪＴＡＧデバッガ１０１からＪＴＡＧデバッグ制御入出力ラインＬＤＩ／Ｆに出力されたデータ転送命令が、ＴＡＰ４１を経由してＤＳＵ命令レジスタ４４に書き込まれる。データ転送命令は、ＤＳＵレジスタ４２からＣＰＵ内の汎用レジスタ５１にデータを転送する命令である。この段階でデータ転送は未だ開始されない。
その後、ＪＴＡＧデバッガ１０１が、ＴＡＰ４１を経由して制御部４３に実行を指示する。これにより、制御信号Ｓ５が制御部４３からセレクタ５３に入力され、セレクタ５３の入力がＤＳＵ側に切り替わる。その結果、ＤＳＵ命令レジスタ内のデータ転送命令がセレクタ５３を経由して、ＣＰＵの命令デコーダ５４に送られ、ここでデータ転送命令が実行される。その結果、ＤＳＵデータレジスタ４２に書き込まれている動作周波数保証テスト用のプログラムがＣＰＵの汎用レジスタ５１に転送される。
【００５７】
同様にして、ＪＴＡＧデバッガ１０１が、ＴＡＰ４１を経由してストア命令をＤＳＵ命令レジスタ４４に書き込み、制御部４３に実行を指示する。これにより、制御信号Ｓ５によってセレクタ５３が切り替わり、ＤＳＵ命令レジスタ内のストア命令が命令デコーダ５４に送られ、ここでストア命令が実行される。その結果、汎用レジスタ５１に転送されて保持されていた動作周波数保証テスト用のプログラムがＣＰＵ３から内部バス４を経由してＲＡＭ５内の所定のアドレスに書き込まれ、ストアされる。
【００５８】
以上の手順、即ち、プログラムデータのＤＳＵレジスタ内への書き込み、データ転送命令の保持と実行によるプログラムデータの汎用レジスタへの転送、ストア命令の保持と実行によるプログラムデータのＲＡＭ内への転送とストアが、必要な回数繰り返され、動作周波数保証テスト用プログラムの全てがＲＡＭ５にダウンロードされる。
同様な手順を経て、ＪＴＡＧデバッガ１０１からＲＡＭ５内にテストの条件等を記述したデータ（テストパターン）がダウンロードされる。
【００５９】
プログラムおよびテストデータのダウンロードが終了すると、ＪＴＡＧデバッガがＤＳＵ４０を介してＣＰＵ３にプログラムの実行を指示する。この実行命令は、上述したプログラムの転送やストアの命令と同様な経路によりＣＰＵ３に伝達される。ＣＰＵ３は、実行命令をデコードすると、プログラムおよび必要なテストデータをＲＡＭ５から読み出し、プログラムを実行する。このテスト結果は、ＣＰＵ３によりＲＡＭ５内の所定のアドレスに書き込まれる。
【００６０】
プログラム実行終了後、テスト結果を、ＲＡＭ５からＪＴＡＧデバッガ１０１に読み出す。このとき、前述したプログラムデータのダウンロードと逆の手順、経路を経て、ＲＡＭ５からＪＴＡＧデバッガ１０１に読み出される。
ＪＴＡＤデバッガ１０１は、テスト結果を期待値と比較することによりテストの合否を判定する。このとき、テストクロック出力部３１から信号を出力させ、この信号によりテスト時のクロック信号ＣＬＫ１Ｔの周波数を確認し、テスト結果が適正なクロック周波数下で行われたかを判断する。
【００６１】
第８の実施の形態では、ＪＴＡＧ等のオンチップデバック用のアーキテクチャと、そのシリアルポートを利用して動作周波数保証テストをＣＰＵのバックグラウンドで実行する。ＪＴＡＧ動作は、ＣＰＵ３の動作周波数より、例えば１桁低度低い周波数をＪＴＡＧデバッガ１０１から供給し、これに同期して実行されるが、このＪＴＡＧ動作自身はＣＰＵ動作と同期をとる必要がない。また、低い周波数のクロック信号ＣＬＫ２をテスタ１００から入力することが不要で、その切り替えのためのセレクタ１３も不要となる。また、ＰＬＬ回路１１を省略した場合は、セレクタ１４も不要となる。
テスタ１００は、ＬＳＩの入出力インターフェイス６を介したデータのやり取りが不要で、制御信号Ｓ１の入力も必要ない。このため、第８の実施の形態におけるテスタ１００の必要な機能はＪＴＡＧデバッガ１０１に集約され、ＪＴＡＧデバッガ１０１さえあれば、テスタ１００自体は基本的に不要となる。その結果、高価な高速テスタを使わずにＬＳＩに内蔵されたＣＰＵの高周波動作テストが可能になる。
【００６２】
また、第７の実施の形態と同様に、ＰＬＬ回路などの大規模なクロック生成回路を不要とし、クロック信号の安定化のための待ち時間が殆ど必要なく、短時間でテストが可能である。
【００６３】
ところで、従来の動作周波数保証テストの場合、ＣＰＵと外部とのインターフェイスやＰＬＬ回路などクロック供給系の回路はＬＳＩ毎に異なるため、同じＣＰＵを用いＬＳＩでも、その高速動作テストのためのテストデータや期待値はＬＳＩ毎に用意しなければならない。
ところが、本実施の形態のように、ＪＴＡＧ仕様のオンチップデバッグを行うと、ＣＰＵ３に内蔵されたＤＳＵ４０およびそのインターフェイスを共通にすることで、ＣＰＵ３が同じならば、その高速動作テスト用のテストデータと期待値はチェックする機能ごとに１組用意すればよい。
【００６４】
【発明の効果】
本発明に係るクロック生成回路によれば、ＰＬＬ回路やＶＣＯより少ないゲート回路数で、小型で占有面積が狭くできる簡素な構成を有する。このため、このクロック生成回路をＬＳＩに搭載すれば、消費電力が低減され、コスト的に有利で、かつクロック信号が安定するまでの待ち時間が短いクロック信号の内部生成が出来る。また、ＶＣＯと異なり、基準クロック信号に同期が取れた信号を生成できる。さらに、アナログ回路を必要としないため、一般のディジタル論理回路と同様に設計ができ、アナログ回路とディジタル回路で電源分離の必要が無い。
【００６５】
本発明に係る半導体集積回路によれば、複数の機能ブロックそれぞれにクロック生成回路が設けられているため、大規模なＰＬＬ回路等が不要であり、占有面積、コスト、消費電力が低減され、クロックの同期ずれが解消される。また、共通の基準クロック信号で発振するため、複数の機能ブロック間で動作を同期させたい場合に都合がよい。基準クロック信号は、より低い周波数を有するため、配線遅延、配線での電力消費が少ない。
【図面の簡単な説明】
【図１】第１の実施の形態のクロック生成回路の一構成例を示す回路図である。
【図２】エッジ検出器の一構成例を示す回路図である。
【図３】カウンタの一構成例を示す回路図である。
【図４】イネーブル端子付きの発振器の一構成例を示す回路図である。
【図５】発振器の一構成例を示す回路図である。
【図６】（Ａ）〜（Ｅ）は、クロック生成回路の各信号のタイミングチャートである。
【図７】（Ａ）〜（Ｅ）は、クロック生成回路の遅延量が予定より小さくなった場合の各信号のタイミングチャートである。
【図８】（Ａ）〜（Ｅ）は、発振器の遅延量が予定より大きくなった場合の各信号のタイミングチャートである。
【図９】第２の実施の形態において、遅延量を変更できる発振器の回路図である。
【図１０】遅延量を変更できる他の構成の発振器の回路図である。
【図１１】第３の実施の形態において、パルスのカウント数が変更可能なクロック生成回路のブロック図である。
【図１２】第３の実施の形態において、パルスのカウント数が変更可能なカウンタの回路図である。
【図１３】第４の実施の形態におけるクロック生成回路の構成を示すブロック図である。
【図１４】第５の実施の形態におけるクロック生成回路の構成を示すブロック図である。
【図１５】第６の実施の形態の半導体集積回路の概略構成を示すブロック図である。
【図１６】第７の実施の形態における半導体集積回路の構成を示すブロック図である。
【図１７】第８の実施の形態における半導体集積回路の構成を示すブロック図である。
【図１８】ＤＳＵの内部構成とＣＰＵの一部の構成を示すブロック図である。
【符号の説明】
１…半導体集積回路、２−１等…機能ブロック、３…機能ブロックの１つとしてのＣＰＵ、４…内部バス、５…ＲＡＭ、６…入出力インターフェイス、７…ＲＯＭ、１０…クロック信号供給部、１１…ＰＬＬ回路、１２…テスト用クロック発振器、１３，１４…セレクタ、１５，１６…分周器、３０…クロック信号供給部、３１…出力手段としてのテストクロック出力部、４０…ＤＳＵ、４１…ＴＡＰ、４２…ＤＳＵデータレジスタ、４３…ＤＳＵ制御部、４４…ＤＳＵ命令レジスタ、４５…検査専用の入出力回路としてのＪＴＡＧテストのインターフェイス、５１…汎用レジスタ、５２…命令レジスタ、５３…セレクタ、５４…命令デコーダ、５５…半導体集積回路、５６，５６−１〜５６−３，５６Ａ〜５６Ｃ…クロック生成回路、６１…エッジ検出部、６２，６２−１…カウンタ、６３，６３−１…発振器、８１…ゲート回路、８２，８２−１〜８２−３…遅延回路、１００…テスタ、１０１…ＪＴＡＧデバッガ。
【図１】
2004159071.tif 000003
【図２】
2004159071.tif 000004
【図３】
2004159071.tif 000005
【図４】
2004159071.tif 000006
【図５】
2004159071.tif 000007
【図６】
2004159071.tif 000008
【図７】
2004159071.tif 000009
【図８】
2004159071.tif 000010
【図９】
2004159071.tif 000011
【図１０】
2004159071.tif 000012
【図１１】
2004159071.tif 000013
【図１２】
2004159071.tif 000014
【図１３】
2004159071.tif 000015
【図１４】
2004159071.tif 000016
【図１５】
2004159071.tif 000017
【図１６】
2004159071.tif 000018
【図１７】
2004159071.tif 000019
【図１８】
2004159071.tif 000020