(57)【要約】【課題】  ジッタが同期型カウンタと同等であり、出力信号の出力波のパルス幅を変えることを可能にするカウンタ回路を提供する。【解決手段】  分周設定データＤＢを生成するシフトレジスタ１１１〜１１１０と、信号ＣＯＵＴのパルス幅を決めるためのデータＤＣを生成するシフトレジスタ１１〜１１０と、信号ＬＳが入力されるとデータＤＢをロードし、このデータを基にダウンカウントをするレジスタ部と、ダウンカウントの値が所定値になったときなどに、信号ＬＳを出力する第１の信号作成部と、信号ＣＯＵＴを出力するとき、信号ＬＳが出力されるタイミングで、信号ＣＯＵＴのパルスの始めとする出力作成回路３と、データＤＣとカウント値ＱＤとの比較結果から、カウント値ＱＤが所定値になった後から現時点の値ＱＤを得るまでの期間が、決められたパルス幅に該当すると、パルス信号を出力する比較回路２とを備え、出力作成回路３は、パルス信号の変化を検出すると、出力信号ＣＯＵＴのパルスの終わりとする。【選択図】  図１
2012039296.tif 000002
【特許請求の範囲】
【請求項１】
入力されたパルスをダウンカウントするときの分周数を設定するための第１の設定データを生成する第１の設定部と、
分周結果を表す出力信号のパルス幅を設定するための第２の設定データを生成する第２の設定部と、
ロード信号が入力されると、前記第１の設定部から第１の設定データをロードし、この第１の設定データを基に、入力されたパルスのダウンカウントをするレジスタ部と、
クリア信号が入力されたとき、または、前記レジスタ部でのダウンカウントの値が所定値になったとき、前記第１の設定データをロードするための前記ロード信号を前記レジスタ部に出力する第１の信号作成部と、
分周結果を表す前記出力信号を出力するとき、前記第１の信号作成部がロード信号を出力するタイミングで、この出力信号のパルスの始めとする出力作成部と、
前記第２の設定部が生成した第２の設定データと前記レジスタ部によるダウンカウントの値との比較結果から、このダウンカウントの値が所定値になった後から現時点のダウンカウントの値を得るまでの期間が、この第２の設定データで設定されたパルス幅に該当すると判定すると、レベルが変化するパルス信号を出力する第２の信号作成部と、
を備え、
前記出力作成部は、第２の信号作成部が出力するパルス信号の変化を検出したタイミングで、前記出力信号のパルスの終わりとすることを特徴とするカウンタ回路。
【請求項２】
前記入力されたパルスはクロックであり、
前記出力作成部は、前記第１の信号作成部がロード信号を出力するタイミングで、かつ、前記クロックの立上りで、この出力信号のパルスの始めとし、第２の信号作成部が出力するパルス信号の変化を検出したタイミングで、かつ、前記クロックの立上りで、前記出力信号のパルスの終わりとする、
ことを特徴とする請求項１に記載のカウンタ回路。
【請求項３】
前記出力作成部は、前記出力信号のパルスの立上りを始めとし、前記出力信号のパルスの立下りを終わりとする、
ことを特徴とする請求項２に記載のカウンタ回路。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、カウンタ回路に関し、詳しくは、非同期式カウンタ回路に関する。
【背景技術】
【０００２】
カウンタはパルス数を計測する回路であるが、見方を変えればカウンタの動作クロックの分周を行っているとも言える。カウンタにはクロックに同期して動作する同期式カウンタがある。同期式カウンタは、例えばＡＤ／ＤＡコンバータの動作クロック生成に用いられている。同期式カウンタの動作クロックの立上り、立下りの両エッジを用いて動作する場合は、Ｄｕｔｙ５０％（デュティ比５０％）が最も高速にＡＤ／ＤＡコンバータを動作できる。一般的に、高機能な回路に用いる場合は、同期式カウンタを用いる。一方、カウンタには、クロックとは非同期で動作する非同期式カウンタがある（例えば、特許文献１参照。）。非同期式カウンタは同期式カウンタに比べて消費電力が少ない、という特徴がある。
【０００３】
こうした非同期式カウンタの一例を図４に示す。このカウンタは、データ設定付き非同期式１０ｂｉｔダウンカウンタである。ダウンカウンタは１ｂｉｔシフトレジスタ（ＳＲＥＧ）１１１〜１１１０（以下、「シフトレジスタ１１１〜１１１０」という）を備えている。前段の１ｂｉｔシフトレジスタのＱ端子と、次段の１ｂｉｔシフトレジスタのＤ端子とが接続されている。つまり、シフトレジスタ１１１〜１１１０がシリアルに接続されている。これにより、１０段のシフトレジスタ１１１〜１１１０で１０ｂｉｔ（ビット）のシフトレジスタが構成されている。
【０００４】
シフトレジスタ１１１〜１１１０は、ＣＫ端子に入力されるシフトレジスタ用クロックＳＣの立上りエッジで、Ｄ端子に入力される設定データＤＴをＱ端子からデータＳＤ１〜ＳＤ１０として出力する。シフトレジスタ１１１〜１１１０は、Ｌ端子に入力されるロード信号ＬＰが「Ｈ」（ハイレベル）のとき、Ｑ端子のデータＳＤ１〜ＳＤ１０をＯ端子にそれぞれ出力する。なお、ロード信号ＬＰは、「Ｈ」でＯ端子にデータを出力するための信号である。シフトレジスタ１１１〜１１１０のＬ端子が「Ｌ」（ローレベル）のとき、シフトレジスタ１１１〜１１１０はＯ端子から出力されるデータを保持する。
【０００５】
ここで、１０段のシフトレジスタ１１１〜１１１０で構成される１０ｂｉｔのシフトレジスタの動作について、図５を用いて説明する。設定データＤＴはシリアルデータであり、シフトレジスタ用クロックＳＣの立上りエッジで、シフトレジスタ１１１〜１１１０はシリアルデータをシフトする。シフトレジスタ１１１〜１１１０にデータが揃ったところで、シフトレジスタ１１１〜１１１０はロード信号ＬＰにより分周データＤＢ１〜ＤＢ１０を出力する。図５のチャートでは、分周データＤＢ１〜ＤＢ１０は２進数の「０００００００１１０」（２進数が分周データＤＢ１〜ＤＢ１０と一致するが、分周データＤＢ１が最下位ｂｉｔ）であり、分周設定データＤＢは分周データＤＢ１〜ＤＢ１０で表される値「６」である。そして、図５は、これらの値による動作例を示す。
【０００６】
シフトレジスタ１１１〜１１１０では、シフトレジスタ用クロックＳＣの立上りエッジで、設定データＤＴがデータＳＤ１として送られる。つまり、データの送りは、
設定データＤＴ→データＳＤ１→データＳＤ２→データＳＤ３→…→データＳＤ１０
である。ロード信号ＬＰが「Ｈ」のとき、シフトレジスタ１１１〜１１１０のＯ端子からは、データＳＤ１が分周データＤＢ１として出力され、データＳＤ２が分周データＤＢ２として出力され、データＳＤ３が分周データＤＢ３として出力され、というようになる。
【０００７】
非同期式１０ｂｉｔダウンカウンタはデータロード付きＴフリップフロップ（ＴＦＦＬ）１２１〜１２１０（以下、「Ｔフリップフロップ１２１〜１２１０」という）を備えている。前段のＴフリップフロップのＱ端子およびＱＸ端子が次段のＴフリップフロップのＣ端子およびＣＸ端子にそれぞれ接続されている。これにより、１０段のＴフリップフロップ１２１〜１２１０がシリアルに接続されている。Ｔフリップフロップ１２１〜１２１０のそれぞれは、カウンタの１ｂｉｔに相当し（左が下位ｂｉｔ）、初段のＴフリップフロップ１２１のＣ端子（ＣＸ端子はＣ端子の反転）はクロックＣＬＫの入力用である。つまり、Ｔフリップフロップ１２１〜１２１０は、クロックＣＬＫを入力とし、クロックＣＬＫをダウンカウント（分周）する。
【０００８】
Ｔフリップフロップ１２１〜１２１０は、クロックＣＬＫの立上りエッジにより、Ｑ端子（ＱＸ端子はＱ端子の反転）から出力されるデータが反転する。Ｔフリップフロップ１２１〜１２１０のＰＩ端子は分周データＤＢ１〜ＤＢ１０の入力用である。そして、Ｌ端子が「Ｈ」のとき、Ｔフリップフロップ１２１〜１２１０はＰＩ端子のデータをロードする。Ｌ端子が「Ｌ」のときは、Ｔフリップフロップ１２１〜１２１０は通常のＴフリップフロップ（ＴＦＦ）としての動作を行う。
【０００９】
非同期式１０ｂｉｔダウンカウンタは、８入力ＮＯＲ回路（ＮＲ８）１３１（以下、「ＮＯＲ回路１３１」という）と、２入力ＮＡＮＤ回路（ＮＤ２）１３２（以下、「ＮＡＮＤ回路１３２」という）とを備えている。ＮＯＲ回路１３１のＩ１端子〜Ｉ８端子には、Ｔフリップフロップ１２１０〜１２３のＱ端子からのカウントデータＱ１０〜データＱ３が入力される。ＮＡＮＤ回路１３２のＩ１端子には、ＮＯＲ回路１３１の演算結果を表す、Ｏ端子からの出力が入力され、Ｉ２端子には、Ｔフリップフロップ１２１のＱＸ端子の出力が入力される。ＮＯＲ回路１３１とＮＡＮＤ回路１３２とは、ダウンカウンタのカウント値ＱＤ（２進数がカウントデータＱ１〜Ｑ１０と一致するがカウントデータＱ１が最下位ｂｉｔ）が値「２」（２進数で「００００００００１０」）になることを検出する。そして、このときに、ＮＡＮＤ回路１３２はＯ端子から出力するデータを「Ｌ」にする。
【００１０】
非同期式１０ｂｉｔダウンカウンタはリセット付Ｄフリップフロップ（ＤＦＦ）１４１（以下、「Ｄフリップフロップ１４１」という）を備えている。Ｄフリップフロップ１４１は、入力端子としてＤ端子、Ｃ端子、ＣＸ端子およびＩ端子を備え、出力端子としてＱ端子とＱＸ端子とを備えている。そして、クロックＣＬＫがＣ端子に入力され、クロックＣＬＫの反転がＣＸ端子に入力されている。また、ＮＡＮＤ回路１３２のＯ端子からの出力がＤ端子に入力され、クリア信号ＣＬＲがＩ端子に入力されている。
【００１１】
Ｄフリップフロップ１４１はクロックＣＬＫに同期して動作し、Ｄフリップフロップ１４１のＩ端子に入力されるクリア信号ＣＬＲが「Ｈ」のときに、Ｄフリップフロップ１４１のＱ端子（ＱＸ端子はＱ端子の反転）の出力が「Ｌ」になる。Ｄフリップフロップ１４１のＣ端子（ＣＸ端子はＣ端子の反転）はクロックＣＬＫの入力用であり、クロックＣＬＫの立上りエッジにより、Ｄフリップフロップ１４１はＤ端子からデータをＱ端子に出力する。クリア信号ＣＬＲが「Ｌ」であるときに、ＮＡＮＤ回路１３２のＯ端子からの出力の「Ｌ」により、Ｄフリップフロップ１４１は、Ｔフリップフロップ１２１〜１２１０にデータロードをするための、「Ｈ」のデータロード信号ＬＳを生成して、ＱＸ端子から出力する。
【００１２】
非同期式１０ｂｉｔダウンカウンタはＮＯＴ回路（ＩＮＶ）１５１、１５２を備えている。ＮＯＴ回路１５１はクロックＣＬＫを反転して出力し、ＮＯＴ回路１５２はＮＡＮＤ回路１３２のＯ端子からの出力を反転し、出力信号ＣＯＵＴとする。
【００１３】
次に、データ設定付き非同期式１０ｂｉｔダウンカウンタの動作について説明する。このダウンカウンタの分周設定データＤＢは、図６に示すように、分周データＤＢ１〜ＤＢ１０の「０００００００１１０」により値「６」である。クリア信号ＣＬＲが「Ｈ」のときは、Ｔフリップフロップ１２１〜１２１０にデータロードをするための、Ｄフリップフロップ１４１から出力されるデータロード信号ＬＳが「Ｈ」である。これにより、Ｔフリップフロップ１２１〜１２１０から成るカウンタは、シフトレジスタ１１１〜１１１０からのデータを得るデータロード状態になっているため、入力信号であるクロックＣＬＫが入ってきても動作しない。この状態のときのＮＯＴ回路１５２からの出力信号ＣＯＵＴは「Ｌ」を保持する。
【００１４】
クリア信号ＣＬＲが「Ｌ」になると、クロックＣＬＫの立上りエッジでデータロード信号ＬＳは「Ｌ」となる。これにより、次のクロックＣＬＫの立上りエッジから、カウンタは分周動作を開始する。Ｔフリップフロップ１２１〜１２１０がクロックＣＬＫによりダウンカウントを行い、カウント結果を２進のカウントデータＱ１〜Ｑ１０（カウントデータＱ４〜Ｑ１０は常に「０」）として出力する。２進のカウントデータＱ１〜Ｑ１０で表されるカウント値ＱＤが値「２」になったとき、ＮＡＮＤ回路１３２の端子Ｏの出力が「Ｌ」となり、ＮＯＴ回路１５２がこの出力を反転し、出力信号ＣＯＵＴが「Ｈ」になる。
【００１５】
次のクロックＣＬＫ（番号「１」のパルス）の立上りエッジで、カウント値ＱＤが値「１」となり、出力信号ＣＯＵＴは「Ｌ」となる。さらに、Ｔフリップフロップ１２１〜１２１０にデータロードをするためのデータロード信号ＬＳを、Ｄフリップフロップ１４１が「Ｈ」にするために、Ｔフリップフロップ１２１〜１２１０はデータＤＢをロードし（カウント値ＱＤは値「６」）、次のクロックＣＬＫ（番号「２」のパルス）の立上りエッジでＤフリップフロップ１４１がデータロード信号ＬＳを「Ｌ」とする。さらに、次のクロックＣＬＫ（番号「３」のパルス）の立上りエッジから、カウンタは分周動作（ダウンカウント）を繰り返す。出力信号ＣＯＵＴのパルスの１周期は、クロックＣＬＫのパルス６個（番号「１」〜「６」のパルス）であり、分周設定データＤＢの値「６」でクロックＣＬＫが分周されている。
【００１６】
しかし、データ設定付き非同期式１０ｂｉｔダウンカウンタには、次の問題点がある。つまり、クロックＣＬＫに対して、カウントデータＱ１はＴフリップフロップ１の１段分として時間ａ２１だけ遅延する。１段分の遅延には、波形の揺らぎ（ジッタ）がある。カウントデータＱ１をクロックとして動作する次段のＴフリップフロップ１２２が出力するカウントデータＱ２は、さらに時間ａ２２だけ遅延し、ジッタが加算される。同様にして、カウントデータＱ２をクロックとして動作する次段のＴフリップフロップ１２３のカウントデータＱ３は、さらに時間ａ２３だけ遅延し、ジッタが加算される。
【００１７】
この結果、出力信号ＣＯＵＴは、分周動作するＴフリップフロップ（ＴＦＦＬ）の段数分だけ、つまり時間ａ２０だけ遅延し、ジッタが加算される、という問題がデータ設定付き非同期式１０ｂｉｔダウンカウンタにはある。
【００１８】
こうした問題点に対して、ジッタ対応型のデータ設定付き非同期１０ｂｉｔダウンカウンタがある。このダウンカウンタを図７に示す。図７では、１０段のシフトレジスタ１１１〜１１１０と、１０段のＴフリップフロップ１２１〜１２１０と、ＮＯＲ回路１３１と、ＮＡＮＤ回路１３２と、Ｄフリップフロップ１４１と、ＮＯＴ回路１５１、１５２とは、図４の非同期カウンタと同じ構成であり、動作も同じであるので、これらの説明を省略する。
【００１９】
図７のダウンカウンタには、リセット付Ｄフリップフロップ（ＤＦＦ）１６１（以下、「Ｄフリップフロップ１６１」という）と、ＮＯＴ回路（ＩＮＶ）１６２と、２入力ＮＡＮＤ回路（ＮＤ２）１６３（以下、「ＮＡＮＤ回路１６３」という）が付け加えられている。
【００２０】
また、図７のダウンカウンタでは、Ｄフリップフロップ１４１を次のようにして用いている。Ｄフリップフロップ１４１のＩ端子が「Ｈ」のときに、Ｑ端子（ＱＸ端子はＱ端子の反転）の出力が「Ｌ」になる。この出力は、ＮＯＴ回路１６２を経て、Ｄフリップフロップ１６１のＤ端子に加えられている。なお、図４と同様に、クリア信号ＣＬＲが「Ｌ」であるときに、ＮＡＮＤ回路１３２のＯ端子から出力されるデータＣ４１の「Ｌ」により、Ｄフリップフロップ１４１は、Ｔフリップフロップ１２１〜１２１０にデータロードをするための、「Ｈ」のデータロード信号ＬＳを生成する。
【００２１】
Ｄフリップフロップ１６１は、リセット付Ｄフリップフロップ（ＤＦＦ）であり、入力端子としてＤ端子、Ｃ端子、ＣＸ端子およびＩ端子を備え、出力端子としてＱ端子とＱＸ端子とを備えている。Ｄフリップフロップ１６１はクロックＣＬＫに同期して動作し、Ｉ端子に入力されるクリア信号ＣＬＲが「Ｈ」のときに、Ｑ端子（ＱＸ端子はＱ端子の反転）の出力が「Ｌ」になる。Ｃ端子（ＣＸ端子はＣ端子の反転）は、クロックＣＬＫの入力用であり、クロックＣＬＫの立上りエッジにより、Ｄ端子に入力されるデータＣ４２をＱ端子から出力する。Ｄフリップフロップ１６１は、Ｄフリップフロップ１４１のＱ端子の出力をＮＯＴ回路１６２で反転して得たデータＣ４２を、Ｄ端子に入力するデータとしている。そして、Ｄフリップフロップ１６１は、このデータＣ４２をＱＸ端子からデータＣ４３として出力する。
【００２２】
ＮＡＮＤ回路１６３はＮＯＴ回路１５２と共に、データＣ４２とデータＣ４３とのＡＮＤ論理の演算で得たデータを、出力信号ＣＯＵＴとして生成する。
【００２３】
次に、ジッタ対応型のデータ設定付き非同期式１０ｂｉｔダウンカウンタの動作について説明する。このダウンカウンタの分周設定データＤＢは、図８に示すように、「０００００００１１０」の分周データＤＢ１〜ＤＢ１０により値「６」である。クリア信号ＣＬＲが「Ｈ」のときは、Ｔフリップフロップ１２１〜１２１０にデータロードをするための、Ｄフリップフロップ１４１から出力されるデータロード信号ＬＳが「Ｈ」である。これにより、Ｔフリップフロップ１２１〜１２１０から成るカウンタは、シフトレジスタ１１１〜１１１０からデータを得るデータロード状態になっているため、入力信号であるクロックＣＬＫが入ってきても動作しない。この状態のときの、ＮＯＴ回路１５２からの出力信号ＣＯＵＴは「Ｌ」を保持する。
【００２４】
クリア信号ＣＬＲが「Ｌ」になると、クロックＣＬＫの立上りエッジでデータロード信号ＬＳは「Ｌ」となる。これにより、次のクロックＣＬＫの立上りエッジから、カウンタは分周動作を開始する。Ｔフリップフロップ１２１〜１２１０がクロックＣＬＫによりダウンカウントを行い、カウント値ＱＤをカウントデータＱ１〜Ｑ１０（カウントデータＱ４〜Ｑ１０は常に「０」）として出力する。カウント値ＱＤが値「２」になったとき、ＮＡＮＤ回路１３２の端子Ｏの出力つまりデータＣ４１が「Ｌ」となる。
【００２５】
次のクロックＣＬＫ（番号「１」のパルス）の立上りエッジで、カウント値ＱＤが値「１」となり、ＮＡＮＤ回路１３２からのデータＣ４１は「Ｌ」である。これにより、Ｄフリップフロップ１４１が、データロードをするためのデータロード信号ＬＳを「Ｈ」とするため、Ｔフリップフロップ１２１〜１２１０はデータ分周データＤＢ１〜ＤＢ１０（カウント値ＱＤの値「６」）をロードし、ＮＡＮＤ回路１６２はデータＣ４２を「Ｈ」とする。Ｄフリップフロップ１６１は、データＣ４２を基に出力するデータＣ４３を「Ｈ」にする。そして、データＣ４２とデータＣ４３とを基にした、ＮＡＮＤ回路１６３とＮＯＴ回路１５２とによるＡＮＤ論理の演算で、データＣ４２の立上りで「Ｈ」となる出力信号ＣＯＵＴが生成される。
【００２６】
次のクロックＣＬＫ（番号「２」のパルス）の立上りエッジで、ＮＡＮＤ回路１３２が出力するデータＣ４１が「Ｈ」であるので、Ｄフリップフロップ１４１はデータロードをするためのデータロード信号ＬＳを「Ｌ」とし、ＮＯＴ回路１６２は出力するデータＣ４２を「Ｌ」とする。Ｄフリップフロップ１６１は、データＣ４２を基に出力するデータＣ４３を「Ｌ」にする。そして、データＣ４２とデータＣ４３とを基にした、ＮＡＮＤ回路１６３とＮＯＴ回路１５２とによるＡＮＤ論理の演算で、データＣ４３の立下りで「Ｌ」となる出力信号ＣＯＵＴが生成される。
【００２７】
こうして生成される出力信号ＣＯＵＴの１周期は、クロックＣＬＫの６パルス（例えば番号「１」〜「６」のパルス）であり、分周設定データＤＢの値「６」に分周されている。
【００２８】
同時に、クロックＣＬＫに対して、分周動作するＴフリップフロップ１２１〜１２１０の段数分だけ遅延しているが、データＣ４１を入力するＤフリップフロップ１４１のＱ端子から出力されて反転されるデータＣ４２は、クロックＣＬＫに対して、Ｄフリップフロップ１４１の１段分の遅延（ジッタ）つまり時間ａ１の遅延になる。同じように、データＣ４２を入力するＤフリップフロップ１６１のＱＸ端子から出力されるデータＣ４３は、クロックＣＬＫに対して、Ｄフリップフロップ１６１の１段分の遅延（ジッタ）つまり時間ａ１の遅延になる。出力信号ＣＯＵＴは、ＮＡＮＤ回路１６３により、データＣ４２の立上りでのジッタａ１と、データＣ４３での立下りでのジッタａ１とが加算され、同期型のダウンカウンタと同等のジッタになる。
【先行技術文献】
【特許文献】
【００２９】
【特許文献１】特開平８−８４０７０号公報
【発明の概要】
【発明が解決しようとする課題】
【００３０】
先に述べたジッタ対応型のデータ設定付き非同期式１０ｂｉｔダウンカウンタには、次の課題がある。つまり、先の図４に示すダウンカウンタに比べて、先の図７に示すジッタ対応型のダウンカウンタではジッタが大幅に改善されている。しかし、先の図８に示すように、ジッタ対応型のダウンカウンタには、出力信号ＣＯＵＴのパルス幅ＴＰが、ダウンカウンタに入力されるクロックＣＬＫの１パルス分の出力となる欠点がある。
【００３１】
例えば、先に述べたように、ＡＤ／ＤＡコンバータは動作クロックとしてカウンタ出力信号ＣＯＵＴのＤｕｔｙ５０％（デュティ比５０％）が最も高速で動作をする。これに対して、ジッタ対応型のデータ設定付き非同期式１０ｂｉｔダウンカウンタの出力信号ＣＯＵＴは入力クロックＣＬＫ１クロック分のパルス幅「Ｈ」であり、Ｄｕｔｙは分周データによって変わる。分周データ「６」の場合、Ｄｕｔｙは１７％となり、設定する分周データが大きくなると、ＤＵＴＹはさらに小さくなる。そのため、このカウンタはＡＤ／ＤＡコンバータでの使用には不向きである。
【００３２】
この発明の目的は、前記の課題を解決し、ジッタが同期型カウンタと同等であり、出力信号の出力波のパルス幅を変えることを可能にするカウンタ回路を提供することにある。
【課題を解決するための手段】
【００３３】
前記の課題を解決するために、請求項１の発明は、入力されたパルスをダウンカウントするときの分周数を設定するための第１の設定データを生成する第１の設定部と、分周結果を表す出力信号のパルス幅を設定するための第２の設定データを生成する第２の設定部と、ロード信号が入力されると、前記第１の設定部から第１の設定データをロードし、この第１の設定データを基に、入力されたパルスのダウンカウントをするレジスタ部と、クリア信号が入力されたとき、または、前記レジスタ部でのダウンカウントの値が所定値になったとき、前記第１の設定データをロードするための前記ロード信号を前記レジスタ部に出力する第１の信号作成部と、分周結果を表す前記出力信号を出力するとき、前記第１の信号作成部がロード信号を出力するタイミングで、この出力信号のパルスの始めとする出力作成部と、前記第２の設定部が生成した第２の設定データと前記レジスタ部によるダウンカウントの値との比較結果から、このダウンカウントの値が所定値になった後から現時点のダウンカウントの値を得るまでの期間が、この第２の設定データで設定されたパルス幅に該当すると判定すると、レベルが変化するパルス信号を出力する第２の信号作成部と、を備え、前記出力作成部は、第２の信号作成部が出力するパルス信号の変化を検出したタイミングで、前記出力信号のパルスの終わりとすることを特徴とするカウンタ回路である。
【００３４】
請求項１の発明では、入力されたパルスをダウンカウントするときの分周数を設定するための第１の設定データを第１の設定部が生成し、分周結果を表す出力信号のパルス幅を設定するための第２の設定データを第２の設定部が生成する。レジスタ部は、ロード信号が入力されると、第１の設定部から第１の設定データをロードし、この第１の設定データを基に、入力されたパルスのダウンカウントをする。
【００３５】
また、請求項１の発明では、第１の信号作成部は、クリア信号が入力されたとき、または、レジスタ部でのダウンカウントの値が所定値になったとき、第１の設定データをロードするためのロード信号をレジスタ部に出力する。第２の信号作成部は、第２の設定部が生成した第２の設定データとレジスタ部によるダウンカウントの値との比較結果から、このダウンカウントの値が所定値になった後から現時点のダウンカウントの値を得るまでの期間が、この第２の設定データで設定されたパルス幅に該当すると判定すると、レベルが変化するパルス信号を出力する。
【００３６】
そして、請求項１の発明では、出力作成部は、分周結果を表す出力信号を出力するとき、第１の信号作成部がロード信号を出力するタイミングで、この出力信号のパルスの始めとする。また、出力作成部は、第２の信号作成部が出力するパルス信号の変化を検出したタイミングで、出力信号のパルスの終わりとする。
【００３７】
請求項２の発明は、請求項１に記載のカウンタ回路において、前記入力されたパルスはクロックであり、前記出力作成部は、前記第１の信号作成部がロード信号を出力するタイミングで、かつ、前記クロックの立上りで、この出力信号のパルスの始めとし、第２の信号作成部が出力するパルス信号の変化を検出したタイミングで、かつ、前記クロックの立上りで、前記出力信号のパルスの終わりとする、ことを特徴とする。
【００３８】
請求項３の発明は、請求項２に記載のカウンタ回路において、前記出力作成部は、前記出力信号のパルスの立上りを始めとし、前記出力信号のパルスの立下りを終わりとする、ことを特徴とする。
【発明の効果】
【００３９】
請求項１の発明によれば、第２の設定データを変更することにより、出力信号のパルスの終わりの位置が変わるので、出力信号のパルス幅を変えることを可能にする。
【００４０】
請求項２の発明によれば、クロックに同期した出力信号を出力することができる。この結果、クロックの立上りで、出力信号のパルスを生成するので、レジスタ部によるダウンカウントの遅延の影響を除いて、出力信号におけるジッタを低減することが可能である。
【００４１】
請求項３の発明によれば、第２の設定部の設定データで設定された幅に対応してハイレベルとなり、残りがローレベルであるパルス周期の出力信号を生成することができ、例えばＡＤ／ＤＡコンバータでの使用を可能にする。
【図面の簡単な説明】
【００４２】
【図１】この発明の一実施の形態によるカウンタ回路を示す回路図である。
【図２】実施の形態１によるシフトレジスタの動作を説明するためのチャートである。
【図３】実施の形態１によるカウンタの動作を説明するためのチャートである。
【図４】従来のデータ設定付き非同期式１０ｂｉｔダウンカウンタの一例を示す回路図である。
【図５】シフトレジスタの動作を説明するためのチャートである。
【図６】データ設定付き非同期式１０ｂｉｔダウンカウンタの動作を説明するためのチャートである。
【図７】従来のジッタ対応型のデータ設定付き非同期式１０ｂｉｔダウンカウンタの一例を示す回路図である。
【図８】ジッタ対応型のデータ設定付き非同期式１０ｂｉｔダウンカウンタの動作を説明するためのチャートである。
【発明を実施するための形態】
【００４３】
次に、この発明の実施の形態について、図面を用いて詳しく説明する。
【００４４】
（実施の形態１）
この実施の形態によるカウンタ回路を図１に示す。この実施の形態によるカウンタ回路は、データ設定付き非同期１０ｂｉｔダウンカウンタである。このカウンタ回路は、シフトレジスタ（ＳＲＥＧ）１１１〜１１１０、Ｔフリップフロップ（ＴＦＦＬ）１２１〜１２１０、ＮＯＲ回路（ＮＲ８）１３１、ＮＡＮＤ回路（ＮＤ２）１３２、Ｄフリップフロップ（ＤＦＦ）１４１およびＮＯＴ回路（ＩＮＶ）１５１を備えている。さらに、カウンタ回路は、シフトレジスタ（ＳＲＥＧ）１１〜１１０と、カウントデータ比較回路（ＣＯＭＰ）２と、出力作成回路（ＰＧ）３とを備えている。なお、この実施の形態では、先に説明した図４および図７のデータ設定付き非同期式１０ｂｉｔダウンカウンタと同一もしくは同一と見なされる構成要素には、それと同じ参照符号を付けて、その説明を省略する。
【００４５】
カウンタ回路のシフトレジスタ１１〜１１０は、１ｂｉｔシフトレジスタである。前段の１ｂｉｔシフトレジスタのＱ端子と、次段の１ｂｉｔシフトレジスタのＤ端子とが接続されている。さらに、シフトレジスタ１１のＤ端子がシフトレジスタ１１０のＱ端子に接続されている。こうした接続により、シフトレジスタ１１〜１１０とシフトレジスタ１１１〜１１１０とは、２０ｂｉｔのシフトレジスタを構成している。なお、シフトレジスタの接続方法はシリーズに接続されていればよく、図１はその一例である。シフトレジスタ１１〜１１０は、シフトレジスタ１１１〜１１１０と同様に、ＣＫ端子に入力されるシフトレジスタ用クロックＳＣの立上りエッジで、Ｄ端子に入力されるデータをＱ端子から出力する。シフトレジスタ１１〜１１０のＬ端子に入力されるロード信号ＬＰが「Ｈ」（ハイレベル）のとき、シフトレジスタ１１〜１１０はＱ端子のデータをＯ端子に出力する。Ｌ端子が「Ｌ」（ローレベル）であるとき、シフトレジスタ１１〜１１０はＯ端子から出力されるデータを保持する。
【００４６】
ここで、シフトレジスタ１１１〜１１１０とシフトレジスタ１１〜１１０とで構成される２０ｂｉｔのシフトレジスタの動作について、図２を用いて説明する。設定データＤＴは、シリアルデータであり、所定の間隔で「Ｈ」になる。設定データＤＴにより、分周設定データＤＢの値とハイレベル設定データＤＣの値とが変化する。つまり、設定データＤＴが「Ｈ」である期間と、設定データＤＴの「Ｈ」と次ぎの「Ｈ」までの期間とを調整することで、分周設定データＤＢの値とハイレベル設定データＤＣの値とを変えることができる。こうした設定データＤＴがシフトレジスタに入力されると、２０ｂｉｔシフトレジスタは、シフトレジスタ用クロックＳＣの立上りエッジで、シリアルデータをシフトしていく。この様子については、先の図５に示されている。なお、図２では、データＳＤ１とデータＳＤ１９とを例示し、他のデータは省略している。
【００４７】
２０ｂｉｔシフトレジスタにデータが揃ったところで、このシフトレジスタは、ロード信号ＬＰにより、シフトレジスタ１１１〜１１１０のＯ端子から分周データＤＢ１〜ＤＢ１０を出力し、シフトレジスタ１１０〜１１のＯ端子からデータＤＣ１〜ＤＣ１０を出力する。分周データＤＢ１〜ＤＢ１０により、分周数が分周設定データＤＢとして表され、データＤＣ１〜ＤＣ１０により、出力信号ＣＯＵＴの「Ｈ」部分の検出数がハイレベル設定データＤＣとして表される。図２では、分周設定データＤＢは、分周データＤＢ１〜ＤＢ１０の「０００００００１１０」で表される値「６」である。また、ハイレベル設定データＤＣは、データＤＣ１〜ＤＣ１０の「００００００００１１」で表される値「３」である。以下では、値「６」の分周設定データＤＢと、値「３」のハイレベル設定データＤＣとを用いた場合を例として説明する。なお、２進数「０００００００１１０」が分周データＤＢ１〜ＤＢ１０と一致し、分周データＤＢ１が最下位ｂｉｔである。また、２進数「００００００００１１」がデータＤＣ１〜ＤＣ１０と一致し、データＤＣ１が最下位ｂｉｔである。
【００４８】
具体的に、２０ｂｉｔシフトレジスタでは、シフトレジスタ用クロックＳＣの立上りエッジで、設定データＤＴがデータＳＤ１に送られる。そして、データの送りは、
設定データＤＴ→データＳＤ１→データＳＤ２→データＳＤ３→・・・→データＳＤ１０→データＳＤ１１→データＳＤ１２→・・・→データＳＤ１９
である。ロード信号ＬＰが「Ｈ」であるとき、データＳＤ１が分周データＤＢ１として出力され、データＳＤ２が分周データＤＢ２として出力され、データＳＤ３が分周データＤＢ３として出力され、というようにデータＳＤ１０が分周データＤＢ１０として出力されるまで同様である。さらに、２０ｂｉｔシフトレジスタでは、ロード信号ＬＰに応じて、データＳＤ１０がデータＤＣ１０として出力され、データＳＤ１１がデータＤＣ９として出力され、というようにデータＳＤ１９がデータＤＣ１として出力されるまで同様である。
【００４９】
カウンタ回路では、先に述べたように、Ｔフリップフロップ（ＴＦＦＬ）１２１〜１２１０、ＮＡＮＤ回路（ＮＤ２）１３２、ＮＯＲ回路（ＮＲ８）１３１、Ｄフリップフロップ（ＤＦＦ）１４１は、図７と同じ構成であり、動作も同じである。
【００５０】
カウンタ回路のカウントデータ比較回路（ＣＯＭＰ）２は、入力端子としてＣ１〜Ｃ１０端子とＤ１〜Ｄ１０端子とを備え、出力端子としてＯ端子を備えている。カウントデータ比較回路２は、シフトレジスタ１１０〜１１からのデータＤＣ１〜ＤＣ１０をＤ１〜Ｄ１０端子から得る。データＤＣ１〜ＤＣ１０で表されるハイレベル設定データＤＣは、出力信号ＣＯＵＴの「Ｈ」部分の数に相当する。この場合の「Ｈ」部分の数は、クロックＣＬＫの１周期を基準としたものであり、値「３」のハイレベル設定データＤＣはクロックＣＬＫの３周期に相当する。この実施の形態では、回路を小規模にするため、各値の関係は、ハイレベル設定データＤＣの値＝分周設定データＤＢの値−出力信号ＣＯＵＴの「Ｈ」部分の数とする。
【００５１】
カウントデータ比較回路２は、Ｔフリップフロップ１２１〜１２１０のＱ端子から出力される、２進のカウントデータＱ１〜Ｑ１０を、Ｃ１〜Ｃ１０端子から得る。なお、カウントデータＱ１〜Ｑ１０は先の図６に示されている。そして、この実施の形態では、カウントデータ比較回路２は、２進のカウントデータＱ１〜Ｑ１０で表されるカウント値ＱＤが生成されたときの「Ｈ」部分の数と、Ｄ１〜Ｄ１０端子のデータＤＣ１〜ＤＣ１０で表されるハイレベル設定データＤＣの値「３」とが一致したところで、Ｏ端子に「Ｌ」を出力する。こうした動作をするカウントデータ比較回路２には、例えば次のものがある。このカウントデータ比較回路では、２進のカウントデータＱ１〜Ｑ１０で表されるカウント値ＱＤが値「１」になってからの経過時間とクロックＣＬＫの周期とを比較して、この経過時間に含まれるクロックＣＬＫの数を調べる。そして、経過時間に含まれるクロックＣＬＫの数が「３」である時間は、カウントデータ比較回路２はＯ端子から「Ｌ」のデータＣ３を出力する。また、カウント値ＱＤと、この経過時間に含まれるクロックＣＬＫの数とが不一致であると、カウントデータ比較回路２は「Ｈ」のデータＣ３を出力する。
【００５２】
また、カウントデータ比較回路２としては、カウント値ＱＤが変化した数がハイレベル設定データＤＣの値「３」と一致したときに、カウントデータ比較回路２はＯ端子から「Ｌ」のデータＣ３を出力する。この場合、カウント値ＱＤが「１」に変化して、「６」に変化し、この後、「５」に変化した時点で、つまり、カウント値ＱＤの変化が３つになった時点で、カウントデータ比較回路２は、「Ｌ」のデータＣ３を出力する。そして、カウント値ＱＤが「４」に変化した時点で、カウントデータ比較回路２は「Ｈ」のデータＣ３を出力する。この他にも、カウントデータ比較回路２には各種のものがある。
【００５３】
カウンタ回路の出力作成回路（ＰＧ）３は、入力端子としてＣ端子およびＣＸ端子と、Ｉ１端子およびＩ２端子と、Ｒ端子とを備え、出力端子としてＱ端子を備えている。出力作成回路３では、Ｄフリップフロップ１４１から出力されるデータＣ２がＩ１端子に入力され、カウントデータ比較回路２のＯ端子から出力されるデータＣ３がＩ２端子に入力される。また、出力作成回路３では、クロックＣＬＫがＣ端子に入力され、ＮＯＴ回路１５１によるクロックＣＬＫの反転がＣＸ端子に入力される。さらに、出力作成回路３では、クリア信号ＣＬＲがＲ端子に入力される。
【００５４】
出力作成回路３は、クロックＣＬＫに同期して動作し、データＣ２、Ｃ３と、クロックＣＬＫと、クリア信号ＣＬＲとにより、出力信号ＣＯＵＴを生成する。つまり、出力作成回路３は、Ｒ端子に入力されるクリア信号ＣＬＲが「Ｈ」であるときに、この他の入力端子に対する入力によらず、常に、Ｑ端子からの出力信号ＣＯＵＴを「Ｌ」にする。
【００５５】
また、出力作成回路３は、Ｒ端子に入力されるクリア信号ＣＬＲが「Ｌ」であるときには、次の動作を行う。出力作成回路３は、Ｄフリップフロップ１４１から出力されるデータＣ２の立下りを検出し、この立下りのタイミングつまり立下り時点を出力信号ＣＯＵＴの立上りとする。さらに、出力作成回路３は、カウントデータ比較回路２のＯ端子から出力されるデータＣ３の「Ｌ」を、クロックＣＬＫの立上りエッジで検出し、この立上りのタイミングつまり立上り時点を出力信号ＣＯＵＴの立下りとする。こうして、出力作成回路３は出力信号ＣＯＵＴを生成する。
【００５６】
次に、この実施の形態によるカウンタ回路の動作について、カウンタ回路の分周設定データＤＢが値「６」（２進数では「０００００００１１０」）であり、ハイレベル設定データＤＣが値「３」（２進数では「００００００００１１」）である場合を例として説明する。これは、出力信号ＣＯＵＴにおいて、「Ｈ」期間がクロックＣＬＫの３クロック（３周期）に相当し、「Ｌ」期間がクロックＣＬＫの３クロックに相当する。
【００５７】
図３に示すように、クリア信号ＣＬＲが「Ｈ」のときは、Ｔフリップフロップ１２１〜１２１０にデータロードをするためのデータロード信号ＬＳが「Ｈ」となり、カウンタ回路はシフトレジスタ１１１〜１１１０からのデータをロードする状態になっている。このため、入力信号としてクロックＣＬＫが入ってきても、カウンタ回路は動作しない。出力信号ＣＯＵＴは「Ｌ」を保持する。クリア信号ＣＬＲが「Ｌ」になると、クロックＣＬＫの立上りエッジで、Ｔフリップフロップ１２１〜１２１０にデータロードをするためのデータロード信号ＬＳは「Ｌ」となり、次のクロックＣＬＫの立上りエッジから、カウンタ回路は分周動作を開始する。
【００５８】
Ｔフリップフロップ１２１〜１２１０がクロックＣＬＫによりダウンカウントを行い、カウント値ＱＤをカウントデータＱ１〜Ｑ１０（カウントデータＱ４〜Ｑ１０は常に「０」）として出力する。カウント値ＱＤが値「２」になったとき、ＮＡＮＤ回路１３２の端子Ｏの出力つまりデータＣ１が「Ｌ」となる。
【００５９】
次のクロックＣＬＫ（番号「１」のパルス）の立上りエッジで、カウント値ＱＤが「１」となる。さらに、ＮＡＮＤ回路１３２が出力する、「Ｌ」のデータＣ１がＤフリップフロップ１４１のＤ端子に加えられている。この結果、クロックＣＬＫ（番号「１」のパルス）の立上りエッジで、Ｔフリップフロップ１２１〜１２１０にデータロードをするためのデータロード信号ＬＳ、つまり、ＱＸ端子からの出力を、Ｄフリップフロップ１４１が「Ｈ」にする。これにより、Ｔフリップフロップ１２１〜１２１０は、分周データＤＢ１〜ＤＢ１０をロードする。
【００６０】
さらに、クロックＣＬＫ（番号「１」のパルス）の立上りエッジで、「Ｌ」のデータＣ１がＤフリップフロップ１４１のＤ端子に加えられているので、Ｄフリップフロップ１４１は、Ｑ端子からの出力、つまり、データＣ２を「Ｌ」にする。これにより、出力作成回路３は、データＣ２の立下りを検出し、データＣ２の立下りを出力信号ＣＯＵＴの立上りとする。
【００６１】
次のクロックＣＬＫ（番号「２」のパルス）の立ち上がりエッジで、カウント値ＱＤが値「６」になっているので、ＮＯＲ回路１３１と共にカウント値ＱＤの値「２」を検出するＮＡＮＤ回路１３２が「Ｈ」のデータＣ１を出力する。これにより、Ｄフリップフロップ１４１は、Ｑ端子からの出力、つまり、データＣ２を「Ｈ」とする。
【００６２】
この後、クロックＣＬＫ（番号「３」のパルス）で、カウントデータ比較回路２は次ぎの動作を行う。カウント値ＱＤが値「１」になってからの経過時間に含まれるクロックＣＬＫの数が「３」になると、カウントデータ比較回路２は、データＤＣ１〜ＤＣ１０で表されるハイレベル設定データＤＣの値「３」にクロックＣＬＫの数が同じになったことを検出し、Ｏ端子から「Ｌ」のデータＣ３を出力する。カウントデータ比較回路２は、経過時間に含まれるクロックＣＬＫの数が「３」である間、Ｏ端子から「Ｌ」のデータＣ３を出力する。
【００６３】
次のクロックＣＬＫ（番号「４」のパルス）の立上りエッジで、カウントデータ比較回路２は、経過時間に含まれるクロックＣＬＫの数が「４」であるので、Ｏ端子から「Ｈ」のデータＣ３を出力する。出力作成回路３は、データＣ３の立上りを検出し、出力信号ＣＯＵＴの立下りとする。
【００６４】
この後、Ｔフリップフロップ１２１〜１２１０はダウンカウントを続け、カウントデータＱ１〜Ｑ１０が表すカウント値ＱＤが「２」になったとき、ＮＡＮＤ回路１３２はデータＣ１を「Ｌ」にする。このときの動作については、先に説明した通りである。
【００６５】
このように、カウンタ回路は、分周設定データＤＢの値「６」に応じて、カウント値ＱＤを「１」、「６」、「５」、…、「２」のようなダウンカウントを行い、出力信号ＣＯＵＴを生成する。このとき、クロックＣＬＫに対して、分周動作するＴフリップフロップ１２１〜１２１０の段数分だけ遅延が発生するが、データＣ１を入力とするＤフリップフロップ１４１のＱ端子から出力されるデータＣ２は、クロックＣＬＫに対して、このＤフリップフロップ１４１の１段分の遅延時間ａ１（ジッタ）になる。つまり、データＣ２の立下りエッジを出力信号ＣＯＵＴの立上りエッジに用いることで、出力信号ＣＯＵＴは、Ｄフリップフロップ１４１の１段分の遅延時間ａ１（ジッタ）となる。また、データＣ３の立上りエッジとクロックＣＬＫで作る出力信号ＣＯＵＴの立下りエッジは、Ｄフリップフロップ１４１の１段分の遅延時間ａ１（ジッタ）になる。これらの遅延時間ａ１（ジッタ）は同期型カウンタと同等のジッタとなる。
【００６６】
また、この実施の形態では、出力信号ＣＯＵＴは、「Ｈ」の期間がクロックＣＬＫの３クロック（３周期）であり、「Ｌ」の期間がクロックＣＬＫの３クロックである波形、つまり、ｄｕｔｙ５０％の波形であり、非同期型（低消費電力）で同期型と同等な分周波形を生成することができる。また、シリアルデータ（設定データ）の設定によって、出力信号ＣＯＵＴのｄｕｔｙ比を変えることもできる。
【００６７】
さらに、この実施の形態によれば、カウンタ回路に対する入力は、
ａ．シフトレジスタ用クロックＳＣ
ｂ．ロード信号ＬＰ
ｃ．設定データＤＴ
ｄ．クロックＣＬＫ
ｅ．クリア信号ＣＬＲ
の５種類である。これらのａ〜ｅの入力は、図４や図７に示す、従来のカウンタと同じである。つまり、この実施の形態によれば、カウンタ回路を各種回路に実装する際に、上記ａ〜ｅの入力以外は用いないので、各種回路の変更を不要にすることができる。
【００６８】
（実施の形態２）
実施の形態１では、Ｔフリップフロップ１２１〜１２１０の出力カウントデータＱ１〜Ｑ１０を、カウントデータ比較回路２のＣ１〜Ｃ１０端子に入力し、Ｄ１〜Ｄ１０端子に入力される値と一致したところで、Ｏ端子に「Ｌ」を出力する。この実施の形態では、分周設定データＤＢを表す分周データＤＢ１〜ＤＢ１０と、ハイレベル設定データＤＣを表すデータＤＣ１〜ＤＣ１０の両方を、カウントデータ比較回路２に入力する。つまり、分周設定データＤＢが分周数を表し、ハイレベル設定データＤＣが出力信号ＣＯＵＴの「Ｈ」部分の数を表すので、ユーザに対する利便性を向上することができる。なお、この場合はカウントデータ比較回路２に対しては、分周設定データＤＢとハイレベル設定データＤＣとカウント値ＱＤとを基にデータＣ３を生成する演算回路が追加されることになる。
【符号の説明】
【００６９】
１１〜１１０  シフトレジスタ（第２の設定部）
１１１〜１１１０  シフトレジスタ（第１の設定部）
２  カウントデータ比較回路（第２の信号作成部）
３  出力作成回路（出力作成部）
１２１〜１２１０  Ｔフリップフロップ（レジスタ部）
１３１  ＮＯＲ回路（第１の信号作成部）
１３２  ＮＡＮＤ回路（第１の信号作成部）
１４１  Ｄフリップフロップ（第１の信号作成部）
１５１  ＮＯＴ回路
【図１】
2012039296.tif 000003
【図２】
2012039296.tif 000004
【図３】
2012039296.tif 000005
【図４】
2012039296.tif 000006
【図５】
2012039296.tif 000007
【図６】
2012039296.tif 000008
【図７】
2012039296.tif 000009
【図８】
2012039296.tif 000010