(57)【要約】【課題】  プロセス、電源電圧等の変動によらず、ＣＰＵから出力される制御信号のタイミングに同期し、ＣＰＵからのペリフェラルへのデータ書込み又はデータ読出しに最適なクロック及び制御信号を生成することが可能なＣＰＵ周辺装置用クロック生成回路及びそのクロック生成方法を提供する。【解決手段】  ＣＰＵに供給されているクロックを基に、複数の遅延されたクロックを生成するクロック遅延回路と、上記ＣＰＵから出力されるライトイネーブル信号の立上り又は立下りエッジを基に、複数の遅延されたクロックの中からどのクロックを選択するかを演算する選択演算回路と、この選択演算回路の出力結果を基に、上記複数の遅延されたクロックの中から２以上のクロックを選択するクロック選択回路と、この選択された２以上のクロック同士を演算するクロック演算回路とを設け、該クロック演算回路から出力されたクロック及びライトイネーブル信号を、ＣＰＵ周辺装置の動作クロック及びライトイネーブル信号とする。【選択図】  図１
2006039758.tif 000002
【特許請求の範囲】
【請求項１】
マイコンのＣＰＵに供給されているクロックを基に、複数の遅延されたクロックを生成するクロック遅延回路と、
前記ＣＰＵから出力されるライトイネーブル信号の立上り又は立下りエッジを基に、
前記複数の遅延されたクロックの中からどのクロックを選択するかを演算する選択演算回路と、
前記選択演算回路の出力結果を基に、前記複数の遅延されたクロックの中から２以上のクロックを選択するクロック選択回路と、
前記クロック選択回路により選択された２以上のクロック同士を演算するクロック演算回路と、を備えたＣＰＵ周辺装置用クロック生成回路であって、
前記クロック演算回路から出力されたクロック及びライトイネーブル信号を、ＣＰＵ周辺装置の動作クロック及びライトイネーブル信号とすることを特徴とするＣＰＵ周辺装置用クロック生成回路。
【請求項２】
前記クロック遅延回路は、同一の遅延を持つ遅延素子が複数個縦続接続され、該各遅延素子からそれぞれ出力することを特徴とする請求項１記載のＣＰＵ周辺装置用クロック生成回路。
【請求項３】
前記選択演算回路は、ＣＰＵから出力されるライトイネーブル信号の立上り又は立下りエッジにより、前記クロック遅延回路からの各遅延クロック出力をラッチし、該ラッチ出力の変化点を検出して、該変化点に対応する値を出力すると共に、ライトイネーブル信号の立上り又は立下りエッジがない場合は、前回の変化点に対応する値を保持することを特徴とする請求項１又は２に記載のＣＰＵ周辺装置用クロック生成回路。
【請求項４】
前記クロック選択回路は、前記選択演算回路から出力された変化点に対応する値に対応する、前記クロック遅延回路に設けられた各遅延素子からの出力のうち、２以上の出力を選択して出力することを特徴とする請求項１から３のいずれか１項に記載のＣＰＵ周辺装置用クロック生成回路。
【請求項５】
前記クロック演算回路は、前記クロック選択回路から出力された２以上のクロック出力同士を演算することで、前記ＣＰＵに供給されているクロックの１／ｎ倍の周期を有するクロック、及び、該クロックのクロックタイミングに基づいたライトイネーブル信号を生成することを特徴とする請求項１から４のいずれか１項に記載のＣＰＵ周辺装置用クロック生成回路。
【請求項６】
マイコンのＣＰＵに供給されているクロックを基に、複数の遅延されたクロックを生成するクロック遅延回路と、
前記ＣＰＵから出力されるリードイネーブル信号の立上り又は立下りエッジを基に、前記複数の遅延されたクロックの中からどのクロックを選択するかを演算する選択演算回路と、
前記選択演算回路の出力結果を基に、前記複数の遅延されたクロックの中から２以上のクロックを選択するクロック選択回路と、
前記クロック選択回路により選択された２以上のクロック同士を演算するクロック演算回路と、を備えたＣＰＵ周辺装置用クロック生成回路であって、
前記クロック演算回路から出力されたクロック及びリードイネーブル信号を、ＣＰＵ周辺装置の動作クロック及びリードイネーブル信号とすることを特徴とするＣＰＵ周辺装置用クロック生成回路。
【請求項７】
前記クロック遅延回路は、同一の遅延を持つ遅延素子が複数個縦続接続され、該各遅延素子からそれぞれ出力することを特徴とする請求項６記載のＣＰＵ周辺装置用クロック生成回路。
【請求項８】
前記選択演算回路は、ＣＰＵから出力されるリードイネーブル信号の立上り又は立下りエッジにより、前記クロック遅延回路からの各遅延クロック出力をラッチし、該ラッチ出力の変化点を検出して、該変化点に対応する値を出力すると共に、リードイネーブル信号の立上り又は立下りエッジがない場合は、前回の変化点に対応する値を保持することを特徴とする請求項６又は７に記載のＣＰＵ周辺装置用クロック生成回路。
【請求項９】
前記クロック選択回路は、前記選択演算回路から出力された変化点に対応する値に対応する、前記クロック遅延回路に設けられた各遅延素子からの出力のうち、２以上の出力を選択して出力することを特徴とする請求項６から８のいずれか１項に記載のＣＰＵ周辺装置用クロック生成回路。
【請求項１０】
前記クロック演算回路は、前記クロック選択回路から出力された２以上のクロック出力同士を演算することで、前記ＣＰＵに供給されているクロックの１／ｎ倍の周期を有するクロック、及び、該クロックのクロックタイミングに基づいたリードイネーブル信号を生成することを特徴とする請求項６から９のいずれか１項に記載のＣＰＵ周辺装置用クロック生成回路。
【請求項１１】
マイコンのＣＰＵに供給されているクロックを基に、複数の遅延されたクロックを生成するクロック遅延回路と、
前記ＣＰＵから出力される制御信号の立上り又は立下りエッジを基に、前記複数の遅延されたクロックの中からどのクロックを選択するかを演算する選択演算回路と、
前記選択演算回路の出力結果を基に、前記複数の遅延されたクロックの中から２以上のクロックを選択するクロック選択回路と、
前記クロック選択回路により選択された２以上のクロック同士を演算するクロック演算回路と、を備えたＣＰＵ周辺装置用クロック生成回路であって、
前記クロック演算回路から出力されたクロック及び制御信号を、ＣＰＵ周辺装置の動作クロック及び制御信号とすることを特徴とするＣＰＵ周辺装置用クロック生成回路。
【請求項１２】
前記クロック遅延回路は、同一の遅延を持つ遅延素子が複数個縦続接続され、該各遅延素子からそれぞれ出力することを特徴とする請求項１１記載のＣＰＵ周辺装置用クロック生成回路。
【請求項１３】
前記選択演算回路は、ＣＰＵから出力される制御信号の立上り又は立下りエッジにより、前記クロック遅延回路からの各遅延クロック出力をラッチし、該ラッチ出力の変化点を検出して、該変化点に対応する値を出力すると共に、制御信号の立上り又は立下りエッジがない場合は、前回の変化点に対応する値を保持することを特徴とする請求項１１又は１２に記載のＣＰＵ周辺装置用クロック生成回路。
【請求項１４】
前記クロック選択回路は、前記選択演算回路から出力された変化点に対応する値に対応する、前記クロック遅延回路に設けられた各遅延素子からの出力のうち、２以上の出力を選択して出力することを特徴とする請求項１１から１３のいずれか１項に記載のＣＰＵ周辺装置用クロック生成回路。
【請求項１５】
前記クロック演算回路は、前記クロック選択回路から出力された２以上のクロック出力同士を演算することで、前記ＣＰＵに供給されているクロックの１／ｎ倍の周期を有するクロック、及び、該クロックのクロックタイミングに基づいた制御信号を生成することを特徴とする請求項１１から１４のいずれか１項に記載のＣＰＵ周辺装置用クロック生成回路。
【請求項１６】
マイコンのＣＰＵに供給されているクロックを基に、クロック遅延回路により複数の遅延されたクロックを生成するクロック遅延工程と、
前記ＣＰＵから出力されるライトイネーブル信号の立上り又は立下りエッジを基に、選択演算回路により前記複数の遅延されたクロックの中からどのクロックを選択するかを演算する選択演算工程と、
前記選択演算工程の出力結果を基に、クロック選択回路により前記複数の遅延されたクロックの中から２以上のクロックを選択するクロック選択工程と、
前記クロック選択工程により選択された２以上のクロック同士を、クロック演算回路により演算するクロック演算工程と、を備えたＣＰＵ周辺装置用クロック生成方法であって、
前記クロック演算工程により出力されたクロック及びライトイネーブル信号を、ＣＰＵ周辺装置の動作クロック及びライトイネーブル信号とすることを特徴とするＣＰＵ周辺装置用クロック生成方法。
【請求項１７】
前記クロック遅延工程は、同一の遅延を持つ遅延素子が複数個縦続接続され、該各遅延素子からそれぞれ出力する工程を備えたことを特徴とする請求項１６記載のＣＰＵ周辺装置用クロック生成方法。
【請求項１８】
前記選択演算工程は、ＣＰＵから出力されるライトイネーブル信号の立上り又は立下りエッジにより、前記クロック遅延回路からの各遅延クロック出力をラッチし、該ラッチ出力の変化点を検出して、該変化点に対応する値を出力する工程と、ライトイネーブル信号の立上り又は立下りエッジがない場合は、前回の変化点に対応する値を保持する工程と、を備えたことを特徴とする請求項１６又は１７に記載のＣＰＵ周辺装置用クロック生成方法。
【請求項１９】
前記クロック選択工程は、前記選択演算工程により出力された変化点に対応する値に対応する、前記クロック遅延回路に設けられた各遅延素子からの出力のうち、２以上の出力を選択して出力する工程を備えたことを特徴とする請求項１６から１８のいずれか１項に記載のＣＰＵ周辺装置用クロック生成方法。
【請求項２０】
前記クロック演算工程は、前記クロック選択工程により出力された２以上のクロック出力同士を演算することで、前記ＣＰＵに供給されているクロックの１／ｎ倍の周期を有するクロック、及び、該クロックのクロックタイミングに基づいたライトイネーブル信号を生成する工程を備えたことを特徴とする請求項１６から１９のいずれか１項に記載のＣＰＵ周辺装置用クロック生成方法。
【請求項２１】
マイコンのＣＰＵに供給されているクロックを基に、クロック遅延回路により複数の遅延されたクロックを生成するクロック遅延工程と、
前記ＣＰＵから出力されるリードイネーブル信号の立上り又は立下りエッジを基に、選択演算回路により前記複数の遅延されたクロックの中からどのクロックを選択するかを演算する選択演算工程と、
前記選択演算工程の出力結果を基に、クロック選択回路により前記複数の遅延されたクロックの中から２以上のクロックを選択するクロック選択工程と、
前記クロック選択工程により選択された２以上のクロック同士を、クロック演算回路により演算するクロック演算工程と、を備えたＣＰＵ周辺装置用クロック生成方法であって、
前記クロック演算工程により出力されたクロック及びリードイネーブル信号を、ＣＰＵ周辺装置の動作クロック及びリードイネーブル信号とすることを特徴とするＣＰＵ周辺装置用クロック生成方法。
【請求項２２】
前記クロック遅延工程は、同一の遅延を持つ遅延素子が複数個縦続接続され、該各遅延素子からそれぞれ出力する工程を備えたことを特徴とする請求項２１記載のＣＰＵ周辺装置用クロック生成方法。
【請求項２３】
前記選択演算工程は、ＣＰＵから出力されるリードイネーブル信号の立上り又は立下りエッジにより、前記クロック遅延回路からの各遅延クロック出力をラッチし、該ラッチ出力の変化点を検出して、該変化点に対応する値を出力する工程と、リードイネーブル信号の立上り又は立下りエッジがない場合は、前回の変化点に対応する値を保持する工程と、を備えたことを特徴とする請求項２１又は２２に記載のＣＰＵ周辺装置用クロック生成方法。
【請求項２４】
前記クロック選択工程は、前記選択演算工程により出力された変化点に対応する値に対応する、前記クロック遅延回路に設けられた各遅延素子からの出力のうち、２以上の出力を選択して出力する工程を備えたことを特徴とする請求項２１から２３のいずれか１項に記載のＣＰＵ周辺装置用クロック生成方法。
【請求項２５】
前記クロック演算工程は、前記クロック選択工程により出力された２以上のクロック出力同士を演算することで、前記ＣＰＵに供給されているクロックの１／ｎ倍の周期を有するクロック、及び、該クロックのクロックタイミングに基づいたリードイネーブル信号を生成する工程を備えたことを特徴とする請求項２１から２４のいずれか１項に記載のＣＰＵ周辺装置用クロック生成方法。
【請求項２６】
マイコンのＣＰＵに供給されているクロックを基に、クロック遅延回路により複数の遅延されたクロックを生成するクロック遅延工程と、
前記ＣＰＵから出力される制御信号の立上り又は立下りエッジを基に、選択演算回路により前記複数の遅延されたクロックの中からどのクロックを選択するかを演算する選択演算工程と、
前記選択演算工程の出力結果を基に、クロック選択回路により前記複数の遅延されたクロックの中から２以上のクロックを選択するクロック選択工程と、
前記クロック選択工程により選択された２以上のクロック同士を、クロック演算回路により演算するクロック演算工程と、を備えたＣＰＵ周辺装置用クロック生成方法であって、
前記クロック演算工程により出力されたクロック及び制御信号を、ＣＰＵ周辺装置の動作クロック及び制御信号とすることを特徴とするＣＰＵ周辺装置用クロック生成方法。
【請求項２７】
前記クロック遅延工程は、同一の遅延を持つ遅延素子が複数個縦続接続され、該各遅延素子からそれぞれ出力する工程を備えたことを特徴とする請求項２６記載のＣＰＵ周辺装置用クロック生成方法。
【請求項２８】
前記選択演算工程は、ＣＰＵから出力される制御信号の立上り又は立下りエッジにより、前記クロック遅延回路からの各遅延クロック出力をラッチし、該ラッチ出力の変化点を検出して、該変化点に対応する値を出力する工程と、制御信号の立上り又は立下りエッジがない場合は、前回の変化点に対応する値を保持する工程と、を備えたことを特徴とする請求項２６又は２７に記載のＣＰＵ周辺装置用クロック生成方法。
【請求項２９】
前記クロック選択工程は、前記選択演算工程により出力された変化点に対応する値に対応する、前記クロック遅延回路に設けられた各遅延素子からの出力のうち、２以上の出力を選択して出力する工程を備えたことを特徴とする請求項２６から２８のいずれか１項に記載のＣＰＵ周辺装置用クロック生成方法。
【請求項３０】
前記クロック演算工程は、前記クロック選択工程により出力された２以上のクロック出力同士を演算することで、前記ＣＰＵに供給されているクロックの１／ｎ倍の周期を有するクロック、及び、該クロックのクロックタイミングに基づいた制御信号を生成する工程を備えたことを特徴とする請求項２６から２９のいずれか１項に記載のＣＰＵ周辺装置用クロック生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＣＰＵ周辺装置用クロック生成回路及びそのＣＰＵ周辺装置用クロック生成方法に関し、特に、ＣＰＵ、タイマー、及び、シリアルＩ／Ｆ等を有するマイコンシステムに好適なＣＰＵ周辺装置用クロック生成回路及びそのＣＰＵ周辺装置用クロック生成方法に関する。
【背景技術】
【０００２】
従来、特許文献１、２に開示されているように、ＣＰＵ、タイマー、及び、シリアルＩ／Ｆ等を有するマイコンシステムにおいて、ＣＰＵ周辺装置（ペリフェラル）に供給されるクロックがＣＰＵに供給されるクロックより高い周波数のクロックである場合、通常ＣＰＵに供給されるクロックには、このペリフェラルに供給されるクロックを分周したクロックが使用されている。
そして、ＣＰＵが各ペリフェラルへデータを書き込む場合、ＣＰＵが出力するライトイネーブル信号の立上り又は立下りを検出することにより、ペリフェラルへのデータの書込みを行なっている。
【特許文献１】特開平５−１２７７７３号公報
【特許文献２】特許第３１２１３９７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかし、従来のペリフェラルへのデータの書込み方法では、ＣＰＵから出力されるライトイネーブル信号は、ＣＰＵへの供給クロックを基にＣＰＵ内部で生成される信号であることから、ＣＰＵへの供給クロックから前記ライトイネーブル信号が出力されるまでのタイミング（遅延時間）は、プロセス、電源電圧、温度の変動により変化することとなる。このため、前記ペリフェラルへの供給クロックと前記ライトイネーブル信号とは非同期となってしまう。
【０００４】
そして、前記ペリフェラルへの供給クロックとライトイネーブル信号との非同期関係により、ＣＰＵが書込むデータに対して、ペリフェラルがＣＰＵからの書込みデータをロードするタイミングにおいて、セットアップエラー、ホールドエラーが発生する可能性が出てくる。
【０００５】
本発明は、上記のような問題点に鑑み、プロセス、電源電圧、温度の変動によらず、ＣＰＵから出力されるライトイネーブル信号等の制御信号のタイミングに同期し、ＣＰＵからのペリフェラルへのデータ書込み又はデータ読出しに最適なペリフェラル用クロック、及び、ライトイネーブル、リードイネーブル等の制御信号を生成することを可能としたＣＰＵ周辺装置用クロック生成回路及びそのＣＰＵ周辺装置用クロック生成方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
請求項１記載の発明は、マイコンのＣＰＵに供給されているクロックを基に、複数の遅延されたクロックを生成するクロック遅延回路と、前記ＣＰＵから出力されるライトイネーブル信号の立上り又は立下りエッジを基に、前記複数の遅延されたクロックの中からどのクロックを選択するかを演算する選択演算回路と、前記選択演算回路の出力結果を基に、前記複数の遅延されたクロックの中から２以上のクロックを選択するクロック選択回路と、前記クロック選択回路により選択された２以上のクロック同士を演算するクロック演算回路と、を備えたＣＰＵ周辺装置用クロック生成回路であって、前記クロック演算回路から出力されたクロック及びライトイネーブル信号を、ＣＰＵ周辺装置の動作クロック及びライトイネーブル信号とするＣＰＵ周辺装置用クロック生成回路としたことを特徴とする。
【０００７】
請求項２記載の発明は、前記クロック遅延回路は、同一の遅延を持つ遅延素子が複数個縦続接続され、該各遅延素子からそれぞれ出力する請求項１記載のＣＰＵ周辺装置用クロック生成回路としたことを特徴とする。
【０００８】
請求項３記載の発明は、前記選択演算回路は、ＣＰＵから出力されるライトイネーブル信号の立上り又は立下りエッジにより、前記クロック遅延回路からの各遅延クロック出力をラッチし、該ラッチ出力の変化点を検出して、該変化点に対応する値を出力すると共に、ライトイネーブル信号の立上り又は立下りエッジがない場合は、前回の変化点に対応する値を保持する請求項１又は２に記載のＣＰＵ周辺装置用クロック生成回路としたことを特徴とする。
【０００９】
請求項４記載の発明は、前記クロック選択回路は、前記選択演算回路から出力された変化点に対応する値に対応する、前記クロック遅延回路に設けられた各遅延素子からの出力のうち、２以上の出力を選択して出力する請求項１から３のいずれか１項に記載のＣＰＵ周辺装置用クロック生成回路としたことを特徴とする。
【００１０】
請求項５記載の発明は、前記クロック演算回路は、前記クロック選択回路から出力された２以上のクロック出力同士を演算することで、前記ＣＰＵに供給されているクロックの１／ｎ倍の周期を有するクロック、及び、該クロックのクロックタイミングに基づいたライトイネーブル信号を生成する請求項１から４のいずれか１項に記載のＣＰＵ周辺装置用クロック生成回路としたことを特徴とする。
【００１１】
請求項６記載の発明は、マイコンのＣＰＵに供給されているクロックを基に、複数の遅延されたクロックを生成するクロック遅延回路と、前記ＣＰＵから出力されるリードイネーブル信号の立上り又は立下りエッジを基に、前記複数の遅延されたクロックの中からどのクロックを選択するかを演算する選択演算回路と、前記選択演算回路の出力結果を基に、前記複数の遅延されたクロックの中から２以上のクロックを選択するクロック選択回路と、前記クロック選択回路により選択された２以上のクロック同士を演算するクロック演算回路とを備えたＣＰＵ周辺装置用クロック生成回路であって、前記クロック演算回路から出力されたクロック及びリードイネーブル信号を、ＣＰＵ周辺装置の動作クロック及びリードイネーブル信号とするＣＰＵ周辺装置用クロック生成回路としたことを特徴とする。
【００１２】
請求項７記載の発明は、前記クロック遅延回路は、同一の遅延を持つ遅延素子が複数個縦続接続され、該各遅延素子からそれぞれ出力する請求項６記載のＣＰＵ周辺装置用クロック生成回路としたことを特徴とする。
【００１３】
請求項８記載の発明は、前記選択演算回路は、ＣＰＵから出力されるリードイネーブル信号の立上り又は立下りエッジにより、前記クロック遅延回路からの各遅延クロック出力をラッチし、該ラッチ出力の変化点を検出して、該変化点に対応する値を出力すると共に、リードイネーブル信号の立上り又は立下りエッジがない場合は、前回の変化点に対応する値を保持する請求項６又は７に記載のＣＰＵ周辺装置用クロック生成回路としたことを特徴とする。
【００１４】
請求項９記載の発明は、前記クロック選択回路は、前記選択演算回路から出力された変化点に対応する値に対応する、前記クロック遅延回路に設けられた各遅延素子からの出力のうち、２以上の出力を選択して出力する請求項６から８のいずれか１項に記載のＣＰＵ周辺装置用クロック生成回路としたことを特徴とする。
【００１５】
請求項１０記載の発明は、前記クロック演算回路は、前記クロック選択回路から出力された２以上のクロック出力同士を演算することで、前記ＣＰＵに供給されているクロックの１／ｎ倍の周期を有するクロック、及び、該クロックのクロックタイミングに基づいたリードイネーブル信号を生成する請求項６から９のいずれか１項に記載のＣＰＵ周辺装置用クロック生成回路としたことを特徴とする。
【００１６】
請求項１１記載の発明は、マイコンのＣＰＵに供給されているクロックを基に、複数の遅延されたクロックを生成するクロック遅延回路と、前記ＣＰＵから出力される制御信号の立上り又は立下りエッジを基に、前記複数の遅延されたクロックの中からどのクロックを選択するかを演算する選択演算回路と、前記選択演算回路の出力結果を基に、前記複数の遅延されたクロックの中から２以上のクロックを選択するクロック選択回路と、前記クロック選択回路により選択された２以上のクロック同士を演算するクロック演算回路と、を備えたＣＰＵ周辺装置用クロック生成回路であって、前記クロック演算回路から出力されたクロック及び制御信号を、ＣＰＵ周辺装置の動作クロック及び制御信号とするＣＰＵ周辺装置用クロック生成回路としたことを特徴とする。
【００１７】
請求項１２記載の発明は、前記クロック遅延回路は、同一の遅延を持つ遅延素子が複数個縦続接続され、該各遅延素子からそれぞれ出力する請求項１１記載のＣＰＵ周辺装置用クロック生成回路としたことを特徴とする。
【００１８】
請求項１３記載の発明は、前記選択演算回路は、ＣＰＵから出力される制御信号の立上り又は立下りエッジにより、前記クロック遅延回路からの各遅延クロック出力をラッチし、該ラッチ出力の変化点を検出して、該変化点に対応する値を出力すると共に、制御信号の立上り又は立下りエッジがない場合は、前回の変化点に対応する値を保持する請求項１１又は１２に記載のＣＰＵ周辺装置用クロック生成回路としたことを特徴とする。
【００１９】
請求項１４記載の発明は、前記クロック選択回路は、前記選択演算回路から出力された変化点に対応する値に対応する、前記クロック遅延回路に設けられた各遅延素子からの出力のうち、２以上の出力を選択して出力する請求項１１から１３のいずれか１項に記載のＣＰＵ周辺装置用クロック生成回路としたことを特徴とする。
【００２０】
請求項１５記載の発明は、前記クロック演算回路は、前記クロック選択回路から出力された２以上のクロック出力同士を演算することで、前記ＣＰＵに供給されているクロックの１／ｎ倍の周期を有するクロック、及び、該クロックのクロックタイミングに基づいた制御信号を生成する請求項１１から１４のいずれか１項に記載のＣＰＵ周辺装置用クロック生成回路としたことを特徴とする。
【００２１】
請求項１６記載の発明は、マイコンのＣＰＵに供給されているクロックを基に、クロック遅延回路により複数の遅延されたクロックを生成するクロック遅延工程と、前記ＣＰＵから出力されるライトイネーブル信号の立上り又は立下りエッジを基に、選択演算回路により前記複数の遅延されたクロックの中からどのクロックを選択するかを演算する選択演算工程と、前記選択演算工程の出力結果を基に、クロック選択回路により前記複数の遅延されたクロックの中から２以上のクロックを選択するクロック選択工程と、前記クロック選択工程により選択された２以上のクロック同士を、クロック演算回路により演算するクロック演算工程と、を備えたＣＰＵ周辺装置用クロック生成方法であって、前記クロック演算工程により出力されたクロック及びライトイネーブル信号を、ＣＰＵ周辺装置の動作クロック及びライトイネーブル信号とするＣＰＵ周辺装置用クロック生成方法としたことを特徴とする。
【００２２】
請求項１７記載の発明は、前記クロック遅延工程は、同一の遅延を持つ遅延素子が複数個縦続接続され、該各遅延素子からそれぞれ出力する工程を備えた請求項１６記載のＣＰＵ周辺装置用クロック生成方法としたことを特徴とする。
【００２３】
請求項１８記載の発明は、前記選択演算工程は、ＣＰＵから出力されるライトイネーブル信号の立上り又は立下りエッジにより、前記クロック遅延回路からの各遅延クロック出力をラッチし、該ラッチ出力の変化点を検出して、該変化点に対応する値を出力する工程と、ライトイネーブル信号の立上り又は立下りエッジがない場合は、前回の変化点に対応する値を保持する工程とを備えた請求項１６又は１７に記載のＣＰＵ周辺装置用クロック生成方法としたことを特徴とする。
【００２４】
請求項１９記載の発明は、前記クロック選択工程は、前記選択演算工程により出力された変化点に対応する値に対応する、前記クロック遅延回路に設けられた各遅延素子からの出力のうち、２以上の出力を選択して出力する工程を備えた請求項１６から１８のいずれか１項に記載のＣＰＵ周辺装置用クロック生成方法としたことを特徴とする。
【００２５】
請求項２０記載の発明は、前記クロック演算工程は、前記クロック選択工程により出力された２以上のクロック出力同士を演算することで、前記ＣＰＵに供給されているクロックの１／ｎ倍の周期を有するクロック、及び、該クロックのクロックタイミングに基づいたライトイネーブル信号を生成する工程を備えた請求項１６から１９のいずれか１項に記載のＣＰＵ周辺装置用クロック生成方法としたことを特徴とする。
【００２６】
請求項２１記載の発明は、マイコンのＣＰＵに供給されているクロックを基に、クロック遅延回路により複数の遅延されたクロックを生成するクロック遅延工程と、前記ＣＰＵから出力されるリードイネーブル信号の立上り又は立下りエッジを基に、選択演算回路により前記複数の遅延されたクロックの中からどのクロックを選択するかを演算する選択演算工程と、前記選択演算工程の出力結果を基に、クロック選択回路により前記複数の遅延されたクロックの中から２以上のクロックを選択するクロック選択工程と、前記クロック選択工程により選択された２以上のクロック同士を、クロック演算回路により演算するクロック演算工程とを備えたＣＰＵ周辺装置用クロック生成方法であって、前記クロック演算工程により出力されたクロック及びリードイネーブル信号を、ＣＰＵ周辺装置の動作クロック及びリードイネーブル信号とするＣＰＵ周辺装置用クロック生成方法としたことを特徴とする。
【００２７】
請求項２２記載の発明は、前記クロック遅延工程は、同一の遅延を持つ遅延素子が複数個縦続接続され、該各遅延素子からそれぞれ出力する工程を備えた請求項２１記載のＣＰＵ周辺装置用クロック生成方法としたことを特徴とする。
【００２８】
請求項２３記載の発明は、前記選択演算工程は、ＣＰＵから出力されるリードイネーブル信号の立上り又は立下りエッジにより、前記クロック遅延回路からの各遅延クロック出力をラッチし、該ラッチ出力の変化点を検出して、該変化点に対応する値を出力する工程と、リードイネーブル信号の立上り又は立下りエッジがない場合は、前回の変化点に対応する値を保持する工程とを備えた請求項２１又は２２に記載のＣＰＵ周辺装置用クロック生成方法としたことを特徴とする。
【００２９】
請求項２４記載の発明は、前記クロック選択工程は、前記選択演算工程により出力された変化点に対応する値に対応する、前記クロック遅延回路に設けられた各遅延素子からの出力のうち、２以上の出力を選択して出力する工程を備えた請求項２１から２３のいずれか１項に記載のＣＰＵ周辺装置用クロック生成方法としたことを特徴とする。
【００３０】
請求項２５記載の発明は、前記クロック演算工程は、前記クロック選択工程により出力された２以上のクロック出力同士を演算することで、前記ＣＰＵに供給されているクロックの１／ｎ倍の周期を有するクロック、及び、該クロックのクロックタイミングに基づいたリードイネーブル信号を生成する工程を備えた請求項２１から２４のいずれか１項に記載のＣＰＵ周辺装置用クロック生成方法としたことを特徴とする。
【００３１】
請求項２６記載の発明は、マイコンのＣＰＵに供給されているクロックを基に、クロック遅延回路により複数の遅延されたクロックを生成するクロック遅延工程と、前記ＣＰＵから出力される制御信号の立上り又は立下りエッジを基に、選択演算回路により前記複数の遅延されたクロックの中からどのクロックを選択するかを演算する選択演算工程と、前記選択演算工程の出力結果を基に、クロック選択回路により前記複数の遅延されたクロックの中から２以上のクロックを選択するクロック選択工程と、前記クロック選択工程により選択された２以上のクロック同士を、クロック演算回路により演算するクロック演算工程とを備えたＣＰＵ周辺装置用クロック生成方法であって、前記クロック演算工程により出力されたクロック及び制御信号を、ＣＰＵ周辺装置の動作クロック及び制御信号とするＣＰＵ周辺装置用クロック生成方法としたことを特徴とする。
【００３２】
請求項２７記載の発明は、前記クロック遅延工程は、同一の遅延を持つ遅延素子が複数個縦続接続され、該各遅延素子からそれぞれ出力する工程を備えた請求項２６記載のＣＰＵ周辺装置用クロック生成方法としたことを特徴とする。
【００３３】
請求項２８記載の発明は、前記選択演算工程は、ＣＰＵから出力される制御信号の立上り又は立下りエッジにより、前記クロック遅延回路からの各遅延クロック出力をラッチし、該ラッチ出力の変化点を検出して、該変化点に対応する値を出力する工程と、制御信号の立上り又は立下りエッジがない場合は、前回の変化点に対応する値を保持する工程とを備えた請求項２６又は２７に記載のＣＰＵ周辺装置用クロック生成方法としたことを特徴とする。
【００３４】
請求項２９記載の発明は、前記クロック選択工程は、前記選択演算工程により出力された変化点に対応する値に対応する、前記クロック遅延回路に設けられた各遅延素子からの出力のうち、２以上の出力を選択して出力する工程を備えた請求項２６から２８のいずれか１項に記載のＣＰＵ周辺装置用クロック生成方法としたことを特徴とする。
【００３５】
請求項３０記載の発明は、前記クロック演算工程は、前記クロック選択工程により出力された２以上のクロック出力同士を演算することで、前記ＣＰＵに供給されているクロックの１／ｎ倍の周期を有するクロック、及び、該クロックのクロックタイミングに基づいた制御信号を生成する工程を備えた請求項２６から２９のいずれか１項に記載のＣＰＵ周辺装置用クロック生成方法としたことを特徴とする。
【発明の効果】
【００３６】
本発明によれば、プロセス、電源電圧、温度の変動によらず、ＣＰＵから出力されるライトイネーブル信号等の制御信号のタイミングに同期し、ＣＰＵからのペリフェラルへのデータ書込み又はデータ読出しに最適なペリフェラル用クロック、及び、ライトイネーブル、リードイネーブル等の制御信号を生成することが可能となる。
【発明を実施するための最良の形態】
【００３７】
本発明を実施するための最良の形態は、マイコンのＣＰＵに供給されているクロックを基に、複数の遅延されたクロックを生成するクロック遅延回路と、上記ＣＰＵから出力されるライトイネーブル信号の立上り又は立下りエッジを基に、複数の遅延されたクロックの中からどのクロックを選択するかを演算する選択演算回路と、この選択演算回路の出力結果を基に、上記複数の遅延されたクロックの中から２以上のクロックを選択するクロック選択回路と、該クロック選択回路により選択された２以上のクロック同士を演算するクロック演算回路とを設け、該クロック演算回路から出力されたクロック及びライトイネーブル信号を、ＣＰＵ周辺装置の動作クロック及びライトイネーブル信号とする機能を備えた、ＣＰＵ周辺装置用クロック生成回路を構成する。
【００３８】
以下に、本発明の好適な実施形態を添付図面に基づいて詳細に説明する。尚、以下に述べる実施形態は本発明の好適な具体例であるから、技術的に好ましい種々の限定が付されているが、本発明の範囲は、以下の説明において特に本発明を限定する旨の記載がない限り、これらの実施形態に限られるものではない。
【００３９】
（第１の実施形態）
図１は、本実施形態のＣＰＵ周辺装置用（ペリフェラル用）クロック生成回路の概略構成図である。図２は、図１に示すＣＰＵ周辺装置用クロック生成回路におけるクロック遅延回路について説明するための図である。図３は、図１に示すＣＰＵ周辺装置用クロック生成回路における選択演算回路について説明するための図である。
図４は、図１に示すＣＰＵ周辺装置用クロック生成回路におけるクロック選択回路について説明するための図である。
【００４０】
図５は、図１に示すＣＰＵ周辺装置用クロック生成回路におけるクロック演算回路について説明するための図である。図６は、図１に示すＣＰＵ周辺装置用クロック生成回路における選択演算回路の動作タイミングを説明するための図である。
【００４１】
図１に示すように、本実施形態のＣＰＵ周辺装置用クロック生成回路は、ＣＰＵ１、ＣＰＵに供給されるクロックを基に、複数の遅延されたクロックを生成するクロック遅延回路２、ＣＰＵから出力されるライトイネーブル信号の立上り又は立下りエッジを基に、前記複数の遅延されたクロックの中から、どのクロックを選択するかを演算する選択演算回路３、前記選択演算回路３の出力結果を基に、前記複数の遅延されたクロックの中から２以上のクロックを選択するクロック選択回路４、及び、前記クロック選択回路４により選択された２以上のクロック同士を演算するクロック演算回路５とを備えている。
【００４２】
図１に示すように、ＣＰＵ１に供給されるクロック（ＭＣＬＫ）は、ＣＰＵ１の他に、クロック遅延回路２にも供給される。そして、図２に示すように、クロック遅延回路２では、遅延セルが縦続接続されており、ＭＣＬＫを順次遅延した複数のクロック ｄｌ（１）からｄｌ（ｎ） までのｎ段のクロックが生成される（図１参照）。
【００４３】
そして、図１に示すように、このクロック遅延回路２から出力されるｍ段目（ｄｌ（ｍ））からｎ段目（ｄｌ（ｎ））の遅延クロックは、選択演算回路３に供給されるとともに、選択演算回路３には、ＣＰＵ１から出力されたライトイネーブル出力信号ＷＲＢが、クロック入力ＣＫＩＮとして供給される。
【００４４】
続いて、図３に示すように、選択演算回路５では、ｄｌ（ｍ）からｄｌ（ｎ）の各遅延クロックが、ＣＫＬＮをクロックとしてラッチされ、各ラッチ出力ｄｃ（ｍ）からｄｃ（ｎ）までが、図３に示す変化点検出回路６に入力される。
【００４５】
そして、図６に示すように、変化点検出回路６では、ｄｃ（ｍ）からｄｃ（ｎ）の信号において、何番目の出力が"Ｈ"から"Ｌ"へと変化するかを比較して、最後に"Ｈ"となっている、もしくは、最初に"Ｌ"となる信号に対応する番号（図３に示すｓｅｌ（ｋ））を出力するとともに、ＷＲＢの立上りタイミングとｄｌ（ｋ）の立上りとの中間で立ち上がる遅延信号に対応する番号（図３に示すｓｅｌ（ｋ／２））を演算して出力する。この選択演算回路５では、ＷＲＢの立上りが検出されない場合は前回出力されたｓｅｌ（ｋ）及びｓｅｌ（ｋ／２）の値が保持される。
【００４６】
また、図４に示すように、このクロック選択信号ｓｅｌ（ｋ）及びｓｅｌ（ｋ／２）は、クロック選択回路４に入力されるとともに、クロック選択回路４には、クロック遅延回路２からの出力ｄｌ（ｍ）からｄｌ（ｎ）も入力され、クロック選択信号ｓｅｌ（ｋ）及びｓｅｌ（ｋ／２）に対応した遅延クロックが、ｄｌ（ｍ）からｄｌ（ｎ）の中から選択され、それぞれＰＣＬＫ１、ＰＣＬＫ２として出力される。
【００４７】
また、このＰＣＬＫ１、ＰＣＬＫ２、及び、ＣＰＵ出力ライトイネーブル信号ＷＲＢは、図５に示すように、クロック演算回路に入力され、ＰＣＬＫ１とＰＣＬＫ２のエクスクルーシブノア演算を行って、ペリフェラル用クロック（ＰＣＬＫ）を、ＰＣＬＫ１とＷＲＢのオア演算を行ってペリフェラル用ライトイネーブル信号（ＰＷＲＢ）を生成する。
【００４８】
なお、図６は、各遅延クロック中、最後に"Ｈ"となっている遅延クロック（ｄｌ（ｋ））（図６の点線上での各ｄｌ（ｘ）信号の値が"Ｈ"か"Ｌ"かを見る）が選択されてＰＣＬＫとして出力されているとした場合の選択演算回路３の動作タイミングを記載したものである。
【００４９】
また、図７（ａ）、図７（ｂ）は、図１に示すＣＰＵ周辺装置用クロック生成回路において、生成されたＰＬＣＫによるペリフェラルへのライト動作タイミングを説明するための図である。図７（ａ）は、ライトイネーブル信号（ＷＲＢ）が早い場合の、ＣＰＵ周辺装置用クロック生成回路において生成されたＰＣＬＫを用いたペリフェラルへのライト動作タイミングを矢印Ａで示している。また、図７（ｂ）では、ライトイネーブル信号（ＷＲＢ）が遅い場合の、ＣＰＵ周辺装置用クロック生成回路において生成されたＰＣＬＫを用いたペリフェラルへのライト動作タイミングを矢印Ｂで示している。
【００５０】
他の実施形態としては、上記ライトイネーブル信号（ＷＲＢ）に変えて、リードイネーブル信号を用いる場合も同様にペリフェラル用クロックの生成が可能である。
また、他のＣＰＵから出力されている制御信号を用いる場合も同様にペリフェラル用クロックの生成が可能である。
【００５１】
以上説明した本実施形態のＣＰＵ周辺装置用（ペリフェラル用）クロック発生回路によれば、プロセス、電源電圧、温度の変動によらず、ＣＰＵから出力されるライトイネーブル信号等の制御信号のタイミングに同期し、ＣＰＵからのペリフェラルへのデータ書込み又はデータ読出しに最適なペリフェラル用クロック、及び、ライトイネーブル、リードイネーブル等の制御信号を生成することが可能となるという効果を得ることができる。
【００５２】
ここで、上述したような本実施形態のＣＰＵ周辺装置用（ペリフェラル用）クロック発生回路ではない、一般的なＣＰＵ周辺装置用クロック発生回路を備えたマイコンの動作について図８、図９を用いて以下に説明する。図８は、一般的なＣＰＵ周辺装置用クロック発生回路を備えたマイコンにおける、ペリフェラルへのデータ書き込み時の、ペリフェラルへの供給クロックとライトイネーブル信号の関係について示した図である。図９は、一般的なＣＰＵ周辺装置用クロック発生回路を備えたマイコンにおける、ペリフェラルからのデータ読出し時の、ペリフェラルへの供給クロックとリードイネーブル信号の関係について示した図である。
【００５３】
なお、図８、図９を用いた説明では、ペリフェラル供給クロック周波数がＣＰＵ供給クロックの２倍である場合を想定した。また、図９を用いた説明では、ペリフェラルとしてタイマーがペリフェラル供給クロックの立上りでカウントアップしている状態を例とした。
【００５４】
図８上段に示すようにＣＰＵ供給クロックからライトイネーブル信号が出力されるまでの時間が速い時は、ＣＰＵからの書込みデータをペリフェラルの立上りエッジ（図に示した上向き矢印Ｃ、Ｄのタイミング）で取り込むこととなるが、１つ目の矢印ＣではＣＰＵからの書込みデータは不確定であり、２つ目の矢印Ｄの所での書込みによりデータ確定となる。１つ目の矢印Ｃでの書込みデータが不確定であり、２つ目の矢印Ｄでの書込みデータのホールド時間が短いので、それぞれペリフェラル側で１つ目の矢印Ｃでの書込みデータは無視する、２つ目の矢印Ｄでの書込みデータには遅延素子等を用いることでホールド時間を保証する回路を付加する等の対処が必要である。
【００５５】
また、図８下段に示すようにＣＰＵ供給クロックからライトイネーブル信号が出力されるまでの時間が遅い場合、ＣＰＵからの書込みデータをペリフェラルの立上りエッジ（図に示した上向き矢印Ｅ、Ｆのタイミング）で取り込むこととなるが、１つ目の矢印ＥではＣＰＵからの書込みデータは不確定であり、２つ目の矢印Ｆの所での書込みによりデータ確定となる。１つ目の矢印Ｅでの書込みデータが不確定であり、２つ目の矢印Ｆでの書込みデータのセットアップ時間が短いので、それぞれペリフェラル側で１つ目の矢印Ｅでの書込みデータは無視する、２つ目の矢印Ｆでの書込みデータには、データ書込みにおいてはペリフェラルクロックの立下りで書込む等を行うことでセットアップ時間を保証する回路を付加する等の対処が必要であり、このように遅延時間の長短により対処方法が異なるため、書込みデータを一旦ラッチしておいてペリフェラル側で書込みタイミングを生成する等の処理を行っている。
【００５６】
一方、読出し方法では、ＣＰＵから出力されるリードイネーブル信号は、ライトイネーブル信号同様、ＣＰＵへの供給クロックからＣＰＵ内部で生成される信号であることから、ＣＰＵへの供給クロックからリードイネーブル信号が出力されるまでのタイミング（遅延時間）は、プロセス、電源電圧、温度の変動により変化することとなる。このため、ペリフェラルへの供給クロックとリードイネーブル信号とは非同期となってしまう。
【００５７】
そして、ペリフェラルへの供給クロックとリードイネーブル信号との非同期関係により、ＣＰＵがペリフェラルからデータを読み出すタイミングにおいて、セットアップエラーまたはホールドエラーが発生する可能性が出てくる。
【００５８】
図９上段に示すように、ＣＰＵ供給クロックからリードイネーブル信号が出力されるまでの時間が速い時は、ＣＰＵがペリフェラルからデータを読み出すタイミング（図９に示した矢印Ｇのタイミング）と、ペリフェラルのデータの変化が重なるため、セットアップエラーが発生し、正しくデータを取り込む事ができない可能性が出てくる。
【００５９】
また図９下段に示すようにＣＰＵ供給クロックからリードイネーブル信号が出力されるまでの時間が遅い時も、ＣＰＵがペリフェラルからデータを読み出すタイミング（図９に示した矢印Ｈのタイミング）と、ペリフェラルのデータの変化が重なるため、ホールドエラーが発生し、正しくデータを取り込むことができない可能性が出てくる。
【図面の簡単な説明】
【００６０】
【図１】本実施形態のＣＰＵ周辺装置用（ペリフェラル用）クロック生成回路の概略構成図である。
【図２】本実施形態のＣＰＵ周辺装置用クロック生成回路におけるクロック遅延回路について説明するための図である。
【図３】本実施形態のＣＰＵ周辺装置用クロック生成回路における選択演算回路について説明するための図である。
【図４】本実施形態のＣＰＵ周辺装置用クロック生成回路におけるクロック選択回路について説明するための図である。
【図５】本実施形態のＣＰＵ周辺装置用クロック生成回路におけるクロック演算回路について説明するための図である。
【図６】本実施形態のＣＰＵ周辺装置用クロック生成回路における選択演算回路の動作タイミングを説明するための図である。
【図７】（ａ）は、本実施形態のＣＰＵ周辺装置用クロック生成回路において、生成されたＰＬＣＫによるペリフェラルへのライト動作タイミング（ライトイネーブルが速い場合）を説明するための図である。（ｂ）は、本実施形態のＣＰＵ周辺装置用クロック生成回路において、生成されたＰＬＣＫによるペリフェラルへのライト動作タイミング（ライトイネーブルが遅い場合）を説明するための図である。
【図８】一般的なＣＰＵ周辺装置用クロック発生回路を備えたマイコンにおける、ペリフェラルへのデータ書き込み時の、ペリフェラルへの供給クロックとライトイネーブル信号の関係について示した図である。
【図９】一般的なＣＰＵ周辺装置用クロック発生回路を備えたマイコンにおける、ペリフェラルからのデータ読出し時の、ペリフェラルへの供給クロックとリードイネーブル信号の関係について示した図である。
【符号の説明】
【００６１】
１    ＣＰＵ
２    クロック遅延回路
３    選択演算回路
４    クロック選択回路
５    クロック演算回路
６    変化点検出回路
Ａ    生成されたＰＬＣＫによるペリフェラルへのライト動作タイミング
Ｂ    生成されたＰＬＣＫによるペリフェラルへのライト動作タイミング
Ｃ    ＣＰＵからの書込みデータをペリフェラルの立上りエッジで取り込むタイミング
Ｄ    ＣＰＵからの書込みデータをペリフェラルの立上りエッジで取り込むタイミング
Ｅ    ＣＰＵからの書込みデータをペリフェラルの立下がりエッジで取り込むタイミング
Ｆ    ＣＰＵからの書込みデータをペリフェラルの立下がりエッジで取り込むタイミング
Ｇ    ＣＰＵがペリフェラルからデータを読み出すタイミング
Ｈ    ＣＰＵがペリフェラルからデータを読み出すタイミング
【図１】
2006039758.tif 000003
【図２】
2006039758.tif 000004
【図３】
2006039758.tif 000005
【図４】
2006039758.tif 000006
【図５】
2006039758.tif 000007
【図６】
2006039758.tif 000008
【図７】
2006039758.tif 000009
【図８】
2006039758.tif 000010
【図９】
2006039758.tif 000011