(57)【要約】【課題】ソフトウェアの潜在的不具合を発見できない可能性がある。【解決手段】１チップで構成されるマイクロコンピュータであって、メインクロック信号を生成するメインクロック発振回路と、サブクロック信号を生成するオンチップの内蔵発振器と、前記メインクロックを第１の周波数に分周した第１の分周クロック信号を生成する第１の分周器と、前記メインクロックを前記第１の周波数より低い第２の周波数に分周した第２の分周クロック信号を生成する第２の分周器と、前記サブクロック信号、第１、第２の分周クロックのうち１つを選択する選択回路と、を有し、通常動作モードでは、前記選択回路が前記サブクロック信号を選択し、評価モードでは、前記選択回路が前記第１もしくは第２の分周クロックを選択するマイクロコンピュータ。【選択図】図１
2012088963.tif 000002
【特許請求の範囲】
【請求項１】
１チップで構成されるマイクロコンピュータであって、
メインクロック信号を生成するメインクロック発振回路と、
サブクロック信号を生成するオンチップの内蔵発振器と、
前記メインクロックを第１の周波数に分周した第１の分周クロック信号を生成する第１の分周器と、
前記メインクロックを前記第１の周波数より低い第２の周波数に分周した第２の分周クロック信号を生成する第２の分周器と、
前記サブクロック信号、第１、第２の分周クロックのうち１つを選択する選択回路と、を有し、
通常動作モードでは、前記選択回路が前記サブクロック信号を選択し、
評価モードでは、前記選択回路が前記第１もしくは第２の分周クロックを選択する
マイクロコンピュータ。
【請求項２】
前記第１の周波数は、製造ばらつきによりオンチップの前記内蔵発振器が生成する発振周波数の上限値であり、
前記第２の周波数は、製造ばらつきによりオンチップの前記内蔵発振器が生成する発振周波数の下限値である
請求項１に記載のマイクロコンピュータ。
【請求項３】
制御レジスタを更に有し、
前記選択回路は、前記制御レジスタの保持する値に応じて、前記サブクロック信号、第１、第２の分周クロックのうち１つを選択する
請求項１または請求項２に記載のマイクロコンピュータ。
【請求項４】
前記選択回路は、外部端子から入力する制御信号に応じて、前記サブクロック信号、第１、第２の分周クロックのうち１つを選択する
請求項１または請求項２に記載のマイクロコンピュータ。
【請求項５】
前記メインクロック発振回路は、外部の水晶振動子が接続され、前記水晶振動子の発振周波数に応じた発振周波数で発振する前記メインクロック信号を生成する
請求項１〜請求項４のいずれか１項に記載のマイクロコンピュータ。
【請求項６】
１チップで構成されるマイクロコンピュータの制御方法であって、
前記マイクロコンピュータは、メインクロック信号を生成するメインクロック発振回路と、サブクロック信号を生成するオンチップの内蔵発振器と、前記メインクロックを第１の周波数に分周した第１の分周クロック信号を生成する第１の分周器と、前記メインクロックを前記第１の周波数より低い第２の周波数に分周した第２の分周クロック信号を生成する第２の分周器と、を有し、
通常動作モードでは、前記選択回路が前記サブクロック信号を選択し、評価モードでは、前記選択回路が前記第１もしくは第２の分周クロックを選択し、その選択した分周クロックで所定条件下での評価を行う
マイクロコンピュータの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マイクロコンピュータ及びその制御方法に関する。
【背景技術】
【０００２】
発振器（ＲＣ発振回路）の発振周波数の補正を行うフェールセーフ機能を有する従来技術が特許文献１、２に開示されている。特許文献１には、高精度で発振する水晶振動子を用いてＲＣ発振器の発振周波数を補正する発明が記載されている。
【０００３】
図３に特許文献１のブロック構成図を示す。ＣＰＵ１０が、エッジ検出回路１４に検出許可信号を供給する。この検出許可信号に応答して、水晶発振器１２の高精度の発振周波数によるＲＣ発振回路１１の低精度の発振周波数の測定が開始される。検出許可信号の供給後、エッジ検出回路１４は、ＲＣ発振回路１１の発振信号の立ち上がりエッジを検出すると、それに応答してカウンタ起動信号を生成する。カウンタ起動信号は、カウンタ１３に供給される。
【０００４】
カウンタ１３は、エッジ検出回路１４からカウンタ起動信号が供給されると、水晶発振器１２から供給される発振信号のパルス数のカウントを開始する。その後エッジ検出回路１４は、ＲＣ発振回路１１の発振信号の立ち上がりエッジを検出すると、それに応答してカウンタ停止信号を生成する。カウンタ停止信号は、カウンタ１３に供給される。なおカウンタ起動信号及びカウンタ停止信号は、１つの信号のアサート状態及びネゲート状態により、起動指示と停止指示を示すものとしてよい。
【０００５】
カウンタ１３は、エッジ検出回路１４からカウンタ停止信号が供給されると、水晶発振器１２から供給される発振信号のパルス数のカウントを停止する。エッジ検出回路１４が出力するカウント停止信号はＣＰＵ１０にも供給されており、このカウント停止信号に応答して、ＣＰＵ１０はカウンタ１３の出力するカウント値を読み込む。このカウント値は、ＲＣ発振回路１１の発振信号のある立ち上がりから次の立ち上がりまでの期間、即ちＲＣ発振回路１１の発振信号の１周期の期間にカウントされた水晶発振器１２の発振信号パルス数である。従ってこのカウント値は、ＲＣ発振回路１１の発振信号の周期が、水晶発振器１２の発振信号の周期の何倍であるかを示すことになる。
【０００６】
ＣＰＵ１０は、読み込んだカウント値に基づいて、所望の周期を計時するのに必要なＲＣ発振回路１１の発振信号のサイクル数を算定し、求めた値をリロードレジスタ１５に格納する。ダウンカウンタ１６は、リロードレジスタ１５の格納値を初期値として読み取り、ＲＣ発振回路１１の発振信号をクロックとしてカウントダウン動作を行なう。カウント値がゼロになると、ダウンカウンタ１６はその出力を反転する（ＨＩＧＨからＬＯＷ又はＬＯＷからＨＩＧＨに切り替える）。ダウンカウンタ１６は更に、カウント値がゼロになった時点で再度リロードレジスタ１５の格納値を初期値として読み取り、ＲＣ発振回路１１の発振信号をクロックとしてカウントダウン動作を行なう。カウント値がゼロになると、ダウンカウンタ１６はその出力を反転する（ＨＩＧＨからＬＯＷ又はＬＯＷからＨＩＧＨに切り替える）。
【０００７】
このようにしてダウンカウンタ１６はトグル動作を実行する。従って、リロードレジスタ１５の格納値に等しい数だけＲＣ発振回路１１の発振周期を定数倍した周期で、ダウンカウンタ１６の出力はＨＩＧＨとＬＯＷとを繰り返すことになる。即ち、リロードレジスタ１５の格納値に等しい数でＲＣ発振回路１１の発振信号を分周した信号が得られる。結果として、上記所望の周期のクロック信号が、ＲＣ発振回路１１の発信信号に基づいて得られることになる。
【０００８】
特許文献２も、ＲＣ発振回路の発振周波数の補正を目的として外部から入力される精度の高いクロックを利用してＲＣ発振器の発振周波数を補正する技術が記載されている。図４に、特許文献２のブロック構成図を示す。特許文献２は、外部との通信手段を有するマイクロコンピュータである。この特許文献２のマイクロコンピュータは、クロック発生手段と、通信間隔計測手段と、補正手段とを有する。
【０００９】
クロック発生手段は、抵抗ＲとコンデンサＣを含むＲＣ発振回路２８を有し、自己動作クロックｃｌｋを発生する。通信間隔計測手段（カウンタタイマ３０）は、上記通信手段（入力データレジスタ２０、出力データレジスタ２４等）により外部からアクセスされる通信間隔を上記クロック発生手段により発生する動作クロックによって計測する。補正手段（処理部２２）は、計測手段によって計測した間隔をあらかじめ定められている値と比較し、比較結果に応じて上記クロック発生手段により発生される動作クロックを補正する。そして、マイクロコンピュータが、外部から所定周期でアクセスされて行う通信の間隔に基づいて、自己の動作クロックを補正する。
【００１０】
このように、特許文献２は、外部（例えばメインマイコン）からアクセスされる通信の間隔を自己（サブマイコン）のＲＣ発振回路からの動作クロックで計測する。そして、この計測結果から自己のクロックの誤差を検出し、これに基づいて自己のクロックを補正する。従って、自己のクロックによる時間計測を外部のクロックに時間計測に対し所定範囲内の誤差に抑えることができる。このため、外部と自己の両方が送信モードになったりすることが防止できる。また、通信間隔を毎回計測して、次回の補正に利用することで、製作時のロットばらつきだけでなく、温度変化によるクロックの変化も補償することができる。
【００１１】
また、特許文献３では、検証対象となる集積回路にテストパターンを入力した場合に、上記テストパターンに応じて出力される信号を用いて動作検証を行なう半導体集積回路の検証方法であって、テストサイクルにおける上記信号の変化時間と動作期待値とを用いて、上記信号の値と上記動作期待値との照合を行なうための期待値照合時間の抽出を行なうステップを含んでいる半導体集積回路の検証方法が開示されている。
【００１２】
この特許文献３では、プロセス、測定時の温度、電源電圧等のばらつきにより信号の変化時間がばらつく場合のばらつき範囲を期待値検証条件として用いる。そして、集積回路の検証時に予期される遅延ばらつきを網羅することにより、ばらつきに耐えうる安定したストローブを決定し、且つ安定したテストパターンを作成することが可能になる。
【先行技術文献】
【特許文献】
【００１３】
【特許文献１】特開２００６−２２９６０７号公報
【特許文献２】特開平１０−２４７１２１号公報
【特許文献３】特開２００５−１７２５４９号公報
【発明の概要】
【発明が解決しようとする課題】
【００１４】
近年、電子機器は高機能化に伴い高い信頼性を要求されている。その信頼性確保の一つとして内蔵発振器を用いたフェールセーフ機能がある。この場合、メイン・クロックとは別の監視機構が働くため信頼性を確保するという観点では非常に有用である。
【００１５】
但し、図５の表に示すように、オンチップの内蔵発振器は製造時の条件や温度条件などによって製造ばらつきが大きい。このため、機器の制御ソフトウェアは、この内蔵発振器の生成するクロックの大きなばらつきを考慮してソフトウェア設計を行う必要がある。
【００１６】
しかし、このようなばらつきを考慮して設計したにも関らず、ある特定の条件（使用するデバイス、温度等）が揃わない限り制御ソフトウェアの不具合が発生しない事が考えられる。つまり、図５の表のばらつき条件で説明すると、例えば、内蔵発振器のばらつきによる周波数が３００ｋＨｚ以下では問題が発生しないが、ばらつきによる周波数が３００ｋＨｚより高くなる場合で問題が発生する不具合では、特定の条件（使用するデバイス、温度等）が揃った場合にのみ、その不具合が顕在化する可能性がある。従って、機器の評価環境によっては不具合が潜在しているのに気が付かずに量産化してしまい、量産後に初めて不具合に気が付くという危険性が有る。
【００１７】
特許文献１では、上記のようなばらつきを補正しているが、実現する仕組みが精度の高いメイン・クロックを使用しているため、信頼性を確保するという観点で問題が有る。
【００１８】
特許文献１及び２のように、内蔵発振器の生成するクロック信号を外部の水晶発振子を用いて補正することによってソフトウェアの不具合が生じないようにすることもできるが、補正するための回路構成が必要となりコストがかかる。また、内蔵発振器の生成するクロック信号を外部の発振回路を用いて補正した場合、外部の発振回路の信号が何らかの原因で供給されなかったときには内蔵発振器を用いた機能（例えばフェールセーフ機能など）を動作させることができない。
【課題を解決するための手段】
【００１９】
本発明の一態様は、１チップで構成されるマイクロコンピュータであって、メインクロック信号を生成するメインクロック発振回路と、サブクロック信号を生成するオンチップの内蔵発振器と、前記メインクロックを第１の周波数に分周した第１の分周クロック信号を生成する第１の分周器と、前記メインクロックを前記第１の周波数より低い第２の周波数に分周した第２の分周クロック信号を生成する第２の分周器と、前記サブクロック信号、第１、第２の分周クロックのうち１つを選択する選択回路と、を有し、通常動作モードでは、前記選択回路が前記サブクロック信号を選択し、評価モードでは、前記選択回路が前記第１もしくは第２の分周クロックを選択するマイクロコンピュータである。
【００２０】
本発明の他の態様は、１チップで構成されるマイクロコンピュータの制御方法であって、前記マイクロコンピュータは、メインクロック信号を生成するメインクロック発振回路と、サブクロック信号を生成するオンチップの内蔵発振器と、前記メインクロックを第１の周波数に分周した第１の分周クロック信号を生成する第１の分周器と、前記メインクロックを前記第１の周波数より低い第２の周波数に分周した第２の分周クロック信号を生成する第２の分周器と、を有し、通常動作モードでは、前記選択回路が前記サブクロック信号を選択し、評価モードでは、前記選択回路が前記第１もしくは第２の分周クロックを選択し、その選択した分周クロックで所定条件下での評価を行うマイクロコンピュータの制御方法である。
【００２１】
本発明にかかるマイクロコンピュータは、製造ばらつきによりばらつきが発生するオンチップの内蔵発振器のサブクロック信号の変わりに、ばらつきの影響を受けにくいメインクロック発振回路のメインクロック信号を分周した第１もしくは第２の分周クロック信号を用いて所定の条件下での評価を行う。このことにより、製造ばらつきによりばらつくサブクロック信号の利用を避けて、ばらつきの少ない第１もしくは第２の分周クロック信号を擬似サブクロック信号として、評価することができる。例えば、このばらつきの少ない第１、第２の分周クロック信号を内蔵発振器が生成する発振周波数の上限値、下限値に設定して所定の条件下で評価を行えば、潜在的な不具合の有無を開発段階で顕在化させることができる。このため、量産化の段階で不具合が発見されるような重大なミスを防ぐことができる。
【発明の効果】
【００２２】
本発明にかかるマイクロコンピュータは、オンチップの内蔵発振器のばらつきに起因する潜在的な不具合を、開発段階で顕在化させることができる。
【図面の簡単な説明】
【００２３】
【図１】実施の形態１にかかるマイクロコンピュータの構成である。
【図２】実施の形態２にかかるマイクロコンピュータの構成である。
【図３】従来の半導体装置の構成である。
【図４】従来の半導体装置の構成である。
【図５】オンチップ発振器の発振周波数のばらつきの一例である。
【発明を実施するための形態】
【００２４】
発明の実施の形態１
【００２５】
以下、本発明を適用した具体的な実施の形態１について、図面を参照しながら詳細に説明する。この実施の形態１は、本発明を１チップ化されたＬＳＩのマイクロコンピュータに適用したものである。このマイクロコンピュータは、内蔵発振器ばらつきシミュレーション機能を備える。
【００２６】
図１に本実施の形態にかかるマイクロコンピュータ１００の構成の一例を示す。図１に示すように、マイクロコンピュータ１００は、メインクロック発振回路１０１と、内蔵発振器１０２と、制御レジスタ１０３と、セレクタ１０４と、分周器１０５、１０６とを有する。
【００２７】
メインクロック発振回路１０１は、高精度な発振周波数のクロック信号ＭＣＬＫを生成する。外部に接続される水晶振動子を利用することで、ＬＳＩの製造ばらつきを受けにくい高精度な発振周波数のクロック信号ＭＣＬＫを生成することが可能である。クロック信号ＭＣＬＫは、ＣＰＵや内部システムクロックとして、使用される。なお、高精度のクロック信号が生成できるならばメインクロック発振回路１０１として水晶発振器に限定されなくてよい。
【００２８】
内蔵発振器１０２は、オンチップの発振器である。内蔵発振器１０２の生成するクロック信号は、メインクロック信号とは別の監視機構が働くため信頼性を確保する観点では非常に有用で、マイクロコンピュータ１００のフェールセーフ機能用に用いられる。例えば、内蔵発振器１０２の生成するクロック信号は、メインクロック発振回路１０１に障害発生の監視、または、障害発生時の代替クロックとして、サブＣＰＵクロックやサブ内部システムクロックに利用される。内蔵発振器１０２は、製造プロセスにより例えば、図５で示したような発振周波数の精度にばらつきがある（環境温度は−４０〜＋８５度）。
【００２９】
分周器１０５は、内蔵発振器１０２の製造プロセスによりばらつく範囲の下限周波数まで、メインクロック発振回路１０１からのクロック信号ＭＣＬＫを分周する。
【００３０】
分周器１０６は、内蔵発振器１０２の製造プロセスによりばらつく範囲の上限周波数まで、メインクロック発振回路１０１からのクロック信号ＭＣＬＫを分周する。なお、分周器１０５、１０６から出力される周波数はプログラムによって設定されてもよい。その結果、製品によって異なる設計保証範囲で設定することも可能である。
【００３１】
セレクタ１０４は、分周器１０５、１０６の生成した周波数のクロック信号、及び、内蔵発振器１０２の生成したクロック信号を入力し、制御レジスタ１０３の保持する値に応じて、分周器１０５、１０６の生成した周波数のクロック信号、及び、内蔵発振器１０２の生成したクロック信号のいずれか１つの選択し、選択クロック信号ＳＣＬＫとして出力する。
【００３２】
この選択クロック信号ＳＣＬＫは、ウォッチドッグタイマー回路やクロックモニター回路に送られ、上述したフェールセーフ機能用のサブＣＰＵクロックやサブ内部システムクロックとして用いられる。
【００３３】
制御レジスタ１０３は、保持する値によりセレクタ１０４を上述したように制御する。この制御レジスタ１０３の値は、プログラムによって動的に書き換えが可能である。つまり、ソフトウェアの評価検証時のみ分周器１０５もしくは１０６の生成するクロック信号をセレクタ１０４に選択させ、それ以外では、保持する値を書き換えることで内蔵発振器１０２の生成したクロック信号をセレクタ１０４に選択させる。
【００３４】
以上のようなマイクロコンピュータ１００は、ソフトウェアの評価検証時において、内蔵発振器１０２の製造プロセスによりばらつく範囲の下限周波数を選択クロック信号ＳＣＬＫとして、評価検証１を行う。次に、内蔵発振器１０２の製造プロセスによりばらつく範囲の上限周波数を選択クロック信号ＳＣＬＫとして、評価検証２を行う。上記の評価検証１、２では、それぞれ環境温度や電源電圧変動等を変化させて行う。つまり、製造ばらつきによりばらつくオンチップ内蔵発振器１０２のサブクロック信号の利用を避けて、ばらつきの少ないメインクロック発振回路１０１からのクロック信号ＭＣＬＫの分周クロック信号を擬似サブクロック信号として、上記ソフトウェアの評価検証に用いることができる。そして、もし特定条件で顕在化する不具合、例えば、図５の例でばらつきが３００ｋＨｚ以上、温度が２７℃以上の時に問題が発生する様な不具合があれば、この検証段階でそのソフトウェアの不具合を発見することができる。
【００３５】
以上のことから、本実施の形態１のマイクロコンピュータ１００は、製造プロセスのばらつきが大きい内蔵発振器のクロック信号のシミュレーション用に、精度の高いメインクロック発振回路１０１のクロック信号を使用する。メインクロック発振回路１０１のクロック信号を内蔵発振器の設計保証範囲の下限値と上限値でシミュレーションする事で、ばらつきに起因する潜在的なソフトウェア不具合等を評価段階で顕在化させる事が容易になる。このため、結果として、上記不具合の発生が起こらないソフトウェアを開発することができる。
【００３６】
発明の実施の形態２
【００３７】
以下、本発明を適用した具体的な実施の形態２について、図面を参照しながら詳細に説明する。この実施の形態２は、実施の形態１と同様、本発明を１チップ化されたＬＳＩのマイクロコンピュータに適用したものである。また、内蔵発振器ばらつきシミュレーション機能を備えるのも同様である。
【００３８】
図２に本実施の形態２にかかるマイクロコンピュータ２００の構成の一例を示す。図２に示すように、マイクロコンピュータ２００は、メインクロック発振回路１０１と、内蔵発振器１０２と、セレクタ１０４と、分周器１０５、１０６と、ポート２０１、２０２とを有する。
【００３９】
なお、図２に示された符号のうち、図１と同じ符号を付した構成は、図１と同じか又は類似の構成を示している。実施の形態１と異なるのはポート２０１および２０２を設けた点と制御レジスタ１０３が削除されている点である。
【００４０】
セレクタ１０４は、ポート２０１、２０２から入力した選択制御信号に応じて、分周器１０５、１０６の生成した周波数のクロック信号、及び、内蔵発振器１０２の生成したクロック信号のいずれか１つの選択し、選択クロック信号ＳＣＬＫとして出力する。ポート２０１、２０２から入力する選択制御信号によって、ソフトウェアの評価段階では分周器１０５、１０６の生成した周波数のクロック信号を、また、実使用時は内蔵発振器１０２のクロック信号を選択することができる。
【００４１】
また、ポート２０１、２０２から入力する選択制御信号は、マイクロコンピュータ自身からプログラムで制御してもよい。
【００４２】
以上のような実施の形態２のマイクロコンピュータ２００では、実施の形態１と比較して制御レジスタを削除でき、その分の回路規模を削減することができる。また、セレクタ１０４を制御するためのプログラムを組み込む必要がなくなる。その他の効果は実施の形態１と同様である。
【００４３】
なお、本発明は上記実施の形態に限られたものでなく、趣旨を逸脱しない範囲で適宜変更することが可能である。実施の形態１、２では、内蔵発振器１０２の製造プロセスによりばらつく範囲の上限もしくは下限周波数を生成する分周器２個を用意しているが、更に複数の分周器を用意してもよい。
【符号の説明】
【００４４】
１００、２００  マイクロコンピュータ
１０１  メインクロック発振回路
１０２  内蔵発振器
１０３  制御レジスタ
１０４  セレクタ
１０５、１０６  分周器
【図１】
2012088963.tif 000003
【図２】
2012088963.tif 000004
【図３】
2012088963.tif 000005
【図４】
2012088963.tif 000006
【図５】
2012088963.tif 000007