(57)【要約】【課題】カウント動作の最中に異常が検出された場合でも、カウント動作を継続させることができる技術を提供すること。【解決手段】カウンタ回路は、Ｌ個のＮ／Ｍビットカウンタを備える。各カウンタは、入力信号に基づいてＮ／Ｍビットカウントする度に桁上がりを示す結果信号を出力する。制御回路は、カウント動作中に異常検知処理を行う。その異常検知処理において、制御回路は、Ｌ個のカウンタのうち２以上を比較対象カウンタとして選択し、比較対象カウンタに対して同じ信号が入力信号として入力されるように接続関係を設定し、更に、比較対象カウンタからの結果信号を比較することによって比較対象カウンタの中に異常カウンタが含まれているか否かを判定する。【選択図】図１
2014132251.tif 000002
【特許請求の範囲】
【請求項１】
Ｌ個のカウンタと、
前記Ｌ個のカウンタに接続された制御回路と
を備え、
前記Ｌ個のカウンタの各々は、Ｎ／Ｍビットカウンタであり、入力信号に基づいてＮ／Ｍビットカウントする度に桁上がりを示す結果信号を出力し、
Ｎは２以上の整数であり、
Ｍは２以上の整数であり、
ＬはＭ以上の整数であり、
前記制御回路は、
前記Ｌ個のカウンタの各々について、前記入力信号がクロック信号あるいは他のカウンタの前記結果信号となるように接続関係を制御する機能と、
カウント動作中に異常検知処理を行う機能と
を備え、
前記異常検知処理において、前記制御回路は、前記Ｌ個のカウンタのうち２以上を比較対象カウンタとして選択し、前記比較対象カウンタに対して同じ信号が前記入力信号として入力されるように前記接続関係を設定し、更に、前記比較対象カウンタからの前記結果信号を比較することによって前記比較対象カウンタの中に異常カウンタが含まれているか否かを判定し、
前記制御回路は、Ｎ／Ｍビットのカウント毎に前記異常検知処理を行い、
第１のＮ／Ｍビットのカウントに対する前記異常検知処理の結果、前記制御回路は、前記比較対象カウンタのうち前記異常カウンタ以外の少なくとも１つを、前記第１のＮ／Ｍビットのカウントを担当する第１カウンタとして設定し、
前記第１のＮ／Ｍビットに続く第２のＮ／Ｍビットのカウントに対する前記異常検知処理において、前記制御回路は、前記第１カウンタ以外のカウンタから前記比較対象カウンタを選択し、前記比較対象カウンタに対して前記第１カウンタからの前記結果信号が前記入力信号として入力されるように前記接続関係を設定する
カウンタ回路。
【請求項２】
請求項１に記載のカウンタ回路であって、
前記制御回路は、前記異常検知処理をＭ回繰り返すことによって、Ｎ／Ｍビット毎にカウントを担当するカウンタを決定する
カウンタ回路。
【請求項３】
クロック信号の分周比を可変に設定し、分周後のクロック信号を出力するプリスケーラと、
目標カウント値を保持するコントロールレジスタと、
前記分周後のクロック信号のカウント値と前記目標カウント値を比較することによってボーレートの設定を行うボーレートジェネレータと
を備え、
前記ボーレートジェネレータは、請求項１又は２に記載のカウンタ回路を備え、前記カウンタ回路を用いて前記分周後のクロック信号のカウントを行う
半導体集積回路。
【請求項４】
請求項３に記載の半導体集積回路であって、
前記カウンタ回路の前記Ｌ個のカウンタに前記異常カウンタが含まれており、前記カウンタ回路が前記目標カウント値までカウントできなくなった場合、前記ボーレートジェネレータは、前記分周比を増加させ、且つ、前記目標カウント値を減少させることにより、ボーレートの設定を継続する
半導体集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、カウンタ回路に関する。
【背景技術】
【０００２】
半導体集積回路においてカウンタ回路は広く利用されている。カウンタ回路の異常は半導体集積回路の動作不良の原因となるため、カウンタ回路の異常を検出することは重要である。特に車載用の電子制御装置の場合、安全性確保の観点から、カウンタ回路の異常を検出することは非常に重要である。
【０００３】
特許文献１（特開２００４−２９９９２号公報）は、２つのカウンタ回路を並列に動作させることによってクロック異常を検出する技術を開示している。より詳細には、監視ＣＰＵは、自身に入力されるクロック信号に基づいて一定周期でトリガ信号を生成し、そのトリガ信号を制御ＣＰＵに送信する。制御ＣＰＵは、自身に入力されるクロック信号に基づいて第１カウンタ回路を動作させ、且つ、監視ＣＰＵより入力されるトリガ信号に基づいて第２カウンタ回路を動作させる。そして、第１カウンタ回路と第２カウンタ回路のカウント値の差分を２つの異なるタイミングで比較し、その比較結果からクロック異常を検出する。
【０００４】
特許文献２（特開平１０−２０６５０８号公報）は、カウンタ回路が正常に動作するか否かを判断するテストに関する技術を開示している。より詳細には、通常動作とは異なるテスト時、テスト回路は、カウンタ回路を第１カウンタ回路と第２カウンタ回路とに分割し、クロック信号をそれら第１、第２カウンタ回路のそれぞれに入力する。そして、テスト回路は、第１カウンタ回路の出力信号と第２カウンタ回路の出力信号とを比較し、両信号が一致しているか否かにより、カウンタ回路が正常に動作しているか否かを判断する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００４−２９９９２号公報
【特許文献２】特開平１０−２０６５０８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上記の関連技術では、カウント動作の最中に異常が検出された場合に、カウント動作を継続させることができない。このことは、カウンタが搭載された半導体集積回路の動作信頼性の低下を招く。
【０００７】
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるだろう。
【課題を解決するための手段】
【０００８】
カウンタ回路は、Ｌ個のカウンタと、Ｌ個のカウンタに接続された制御回路と、を備える。Ｌ個のカウンタの各々は、Ｎ／Ｍビットカウンタであり、入力信号に基づいてＮ／Ｍビットカウントする度に桁上がりを示す結果信号を出力する。ここで、Ｎは２以上の整数であり、Ｍは２以上の整数であり、ＬはＭ以上の整数である。制御回路は、Ｌ個のカウンタの各々について、入力信号がクロック信号あるいは他のカウンタの結果信号となるように接続関係を制御する機能と、カウント動作中に異常検知処理を行う機能と、を備える。異常検知処理において、制御回路は、Ｌ個のカウンタのうち２以上を比較対象カウンタとして選択し、比較対象カウンタに対して同じ信号が入力信号として入力されるように接続関係を設定し、更に、比較対象カウンタからの結果信号を比較することによって比較対象カウンタの中に異常カウンタが含まれているか否かを判定する。
【０００９】
制御回路は、Ｎ／Ｍビットのカウント毎に異常検知処理を行う。第１のＮ／Ｍビットのカウントに対する異常検知処理の結果、制御回路は、比較対象カウンタのうち異常カウンタ以外の少なくとも１つを、第１のＮ／Ｍビットのカウントを担当する第１カウンタとして設定する。第１のＮ／Ｍビットに続く第２のＮ／Ｍビットのカウントに対する異常検知処理において、制御回路は、第１カウンタ以外のカウンタから比較対象カウンタを選択し、比較対象カウンタに対して第１カウンタからの結果信号が入力信号として入力されるように接続関係を設定する。
【発明の効果】
【００１０】
本開示によれば、カウント動作の最中に異常が検出された場合でも、カウント動作を継続させることが可能である。カウント動作が停止しないため、カウンタ回路が搭載された半導体集積回路の動作信頼性が向上する。
【図面の簡単な説明】
【００１１】
【図１】図１は、第１の実施の形態に係るカウンタ回路の構成を示すブロック図である。
【図２Ａ】図２Ａは、第１の実施の形態に係るカウンタ回路の第１の動作例を説明するための概念図である。
【図２Ｂ】図２Ｂは、第１の実施の形態に係るカウンタ回路の第１の動作例を説明するための概念図である。
【図２Ｃ】図２Ｃは、第１の実施の形態に係るカウンタ回路の第１の動作例を説明するための概念図である。
【図２Ｄ】図２Ｄは、第１の実施の形態に係るカウンタ回路の第１の動作例を説明するための概念図である。
【図３】図３は、第１の実施の形態に係るカウンタ回路の第１の動作例を説明するための概念図である。
【図４Ａ】図４Ａは、第１の実施の形態に係るカウンタ回路の第２の動作例を説明するための概念図である。
【図４Ｂ】図４Ｂは、第１の実施の形態に係るカウンタ回路の第２の動作例を説明するための概念図である。
【図４Ｃ】図４Ｃは、第１の実施の形態に係るカウンタ回路の第２の動作例を説明するための概念図である。
【図４Ｄ】図４Ｄは、第１の実施の形態に係るカウンタ回路の第２の動作例を説明するための概念図である。
【図５】図５は、第２の実施の形態に係るカウンタ回路に内蔵されるアラーム回路の構成を示すブロック図である。
【図６】図６は、アラームレジスタの一例を示す概念図である。
【図７】図７は、アラームレジスタの他の例を示す概念図である。
【図８】図８は、第３の実施の形態に係る構成を示すブロック図である。
【発明を実施するための形態】
【００１２】
添付図面を参照して、実施の形態に係るカウンタ回路を説明する。
【００１３】
１．第１の実施の形態
１−１．構成
図１は、第１の実施の形態に係るカウンタ回路１の構成を示すブロック図である。カウンタ回路１は、Ｎビット（２Ｎカウント）のカウント値を得るための回路である。ここで、Ｎは２以上の整数である。
【００１４】
本実施の形態に係るカウンタ回路１は、Ｌ個のカウンタ１０（カウンタ１０−１〜カウンタ１０−Ｌ）を備えている。各々のカウンタ１０はＮ／Ｍビットカウンタであり、Ｍ個のカウンタ１０をつなぐことによってＮビットのカウントが可能となる。ここで、Ｍは２以上且つＮ以下の整数であり、ＬはＭ以上の整数である（Ｌ≧Ｍ）。例えば、Ｎ＝１２、Ｍ＝３、Ｌ＝４の場合、１２ビットカウントのために４ビットカウンタが４個設けられる。この場合、１個の４ビットカウンタは予備となる。このようにＬがＭより大きい場合（Ｌ＞Ｍ）、予備のカウンタが発生するが、これは必須ではない。本実施の形態は、ＬがＭと同じである場合（Ｌ＝Ｍ）も含む。
【００１５】
各々のカウンタ１０は、入力信号に基づいてＮ／Ｍビットのカウント動作を行う。そして、各カウンタ１０は、Ｎ／Ｍビットカウントする度に、“桁上がり”を示す結果信号Ｄを出力する。以下の説明において、カウンタ１０−ｉ（ｉ＝１〜Ｌ）から出力される結果信号は、Ｄｉと参照される。
【００１６】
各カウンタ１０に入力される入力信号は、任意に設定可能である。そのために、カウンタ１０−１〜１０−Ｌの前段にスイッチ２０−１〜２０−Ｌがそれぞれ設けられている。例えば、あるカウンタ１０−ｉとスイッチ２０−ｉを考える（ｉは１〜Ｌのいずれか）。スイッチ２０−ｉは、発振器３０から出力されるクロック信号ＣＬＫと、カウンタ１０−ｉ以外のカウンタ１０−ｊ（ｊ＝１〜Ｌ、ｊ≠ｉ）から出力される結果信号Ｄｊを受け取る。そして、スイッチ２０−ｉは、スイッチ制御信号ＳＷに応じて、クロック信号ＣＬＫと結果信号Ｄｊの中から１つを選択し、その選択信号をカウンタ１０−ｉに出力する。すなわち、カウンタ１０−ｉに対する入力信号は、クロック信号ＣＬＫあるいは他のカウンタ１０−ｊからの結果信号Ｄｊであり、それはスイッチ制御信号ＳＷにより動的に制御可能である。
【００１７】
そのようなスイッチ制御信号ＳＷを生成するのが制御回路４０である。制御回路４０は、カウンタ１０−１〜１０−Ｌ及びスイッチ２０−１〜２０−Ｌに接続されている。この制御回路４０は、スイッチ制御信号ＳＷをスイッチ２０−１〜２０−Ｌのそれぞれに出力することによって、カウンタ１０−１〜１０−Ｌのそれぞれへの入力信号を動的に制御する。これは、制御回路４０が、カウンタ１０−１〜１０−Ｌの接続関係を動的に制御することと等価である。すなわち、制御回路４０は、カウンタ１０−１〜１０−Ｌの接続関係を動的に制御する機能を備えている。
【００１８】
更に、制御回路４０は、カウンタ回路１がカウント動作を行っている最中に「異常検知処理」を行う機能を備えている。異常検知処理において、制御回路４０は、カウンタ１０−１〜１０−Ｌの中に異常カウンタが含まれているか否かを判定する。ここで、異常カウンタとは、ノイズや回路劣化等の要因により正常なカウント動作ができなくなったカウンタ１０のことである。
【００１９】
より詳細には、異常検知処理において、制御回路４０は、Ｌ個のカウンタ１０−１〜１０−Ｌのうち２以上を「比較対象カウンタ１０−Ｓ」として選択する。そして、制御回路４０は、選択した比較対象カウンタ１０−Ｓに対して同じ信号が入力信号として入力されるように、接続関係を設定する。また、制御回路４０は、比較対象カウンタ１０−Ｓのそれぞれから結果信号ＤＳを受け取る。そして、制御回路４０は、比較対象カウンタ１０−Ｓのそれぞれからの結果信号ＤＳ同士を比較することによって、比較対象カウンタ１０−Ｓの中に異常カウンタが含まれているか否かを判定する。例えば、第１の比較対象カウンタ１０−Ｓ１からの結果信号ＤＳ１が“桁上がり”を示しているが、第２の比較対象カウンタ１０−Ｓ２からの結果信号ＤＳ２が“桁上がり”を示していない場合、第２の比較対象カウンタ１０−Ｓ２は異常カウンタであると判定される。尚、この異常検知処理については、後に具体例を用いて詳細に説明する。
【００２０】
制御回路４０は、出力信号ＯＵＴを出力する。出力信号ＯＵＴの例としては、カウント結果を示すカウント値データ、異常カウンタを検知した場合のエラー信号、ＣＰＵへの割り込み信号等が挙げられる。
【００２１】
１−２．動作例
１−２−１．第１の動作例
まず、図２Ａ〜図２Ｄを参照して、異常カウンタが無い場合を説明する。
【００２２】
図２Ａは、最初のＮ／Ｍビットのカウント動作（同時に１回目の異常検知処理）を説明するための概念図である。制御回路４０は、カウンタ１０−１〜１０−Ｌを比較対象カウンタ１０−Ｓとして選択する。また、制御回路４０は、カウンタ１０−１〜１０−Ｌに対してクロック信号ＣＬＫが入力信号として入力されるように、接続関係を設定する。
【００２３】
クロック信号ＣＬＫが供給されると、カウンタ１０−１〜１０−Ｌの各々は、そのクロック信号ＣＬＫに基づいてカウント動作を行う。そして、カウンタ１０−１〜１０−Ｌの各々は、Ｎ／Ｍビットのカウントが完了すると結果信号Ｄを出力する。
【００２４】
Ｎ／Ｍビットのカウントが完了するタイミングにおいて、制御回路４０は、カウンタ１０−１〜１０−Ｌのそれぞれからの出力される結果信号Ｄ１〜ＤＬ同士を比較する（１回目の比較処理）。この比較処理により、カウンタ１０−１〜１０−Ｌの中に異常カウンタが存在するか否かが判定される。本例において、異常カウンタは存在しない。
【００２５】
続いて、制御回路４０は、カウンタ１０−１〜１０−Ｌ（比較対象カウンタ）のうち少なくとも１つを、Ｎ／Ｍビットのカウントを担当するカウンタとして設定する。本例において、制御回路４０は、カウンタ１０−１を、Ｎ／Ｍビットのカウントを担当するカウンタとして設定するとする。その後、次の２Ｎ／Ｍビットのカウント動作に移行する。
【００２６】
図２Ｂは、２Ｎ／Ｍビットのカウント動作（同時に２回目の異常検知処理）を説明するための概念図である。制御回路４０は、Ｎ／Ｍビットのカウントを担当するカウンタ１０−１以外のカウンタ１０から、比較対象カウンタ１０−Ｓを選択する。例えば、制御回路４０は、カウンタ１０−２〜１０−Ｌを比較対象カウンタ１０−Ｓとして選択する。また、制御回路４０は、カウンタ１０−１に対してクロック信号ＣＬＫが入力信号として入力され、且つ、カウンタ１０−２〜１０−Ｌに対して「カウンタ１０−１からの結果信号Ｄ１」が入力信号として入力されるように、接続関係を設定する。桁上がりを示す結果信号Ｄ１が入力されることにより、カウンタ１０−２〜１０−Ｌの各々のカウント値は“１”となる。
【００２７】
続いて、２Ｎ／Ｍビットのカウント動作が開始する。クロック信号ＣＬＫが供給されると、カウンタ１０−１は、そのクロック信号ＣＬＫに基づいてカウント動作を行う。そして、カウンタ１０−１は、Ｎ／Ｍビットのカウントが完了する度に結果信号Ｄ１を出力する。カウンタ１０−２〜１０−Ｌ（比較対象カウンタ）の各々は、その結果信号Ｄ１を受け取り、その結果信号Ｄ１に基づいてカウント動作を行う。そして、カウンタ１０−２〜１０−Ｌの各々は、Ｎ／Ｍビットのカウントが完了すると結果信号Ｄを出力する。
【００２８】
２Ｎ／Ｍビットのカウントが完了するタイミングにおいて、制御回路４０は、カウンタ１０−２〜１０−Ｌのそれぞれからの出力される結果信号Ｄ２〜ＤＬ同士を比較する（２回目の比較処理）。この比較処理により、カウンタ１０−２〜１０−Ｌの中に異常カウンタが存在するか否かが判定される。本例において、異常カウンタは存在しない。
【００２９】
続いて、制御回路４０は、カウンタ１０−２〜１０−Ｌ（比較対象カウンタ）のうち少なくとも１つを、２Ｎ／Ｍビットのカウントを担当するカウンタとして設定する。本例において、制御回路４０は、カウンタ１０−２を、２Ｎ／Ｍビットのカウントを担当するカウンタとして設定するとする。その後、次の３Ｎ／Ｍビットのカウント動作に移行する。
【００３０】
図２Ｃは、３Ｎ／Ｍビットのカウント動作（同時に３回目の異常検知処理）を説明するための概念図である。制御回路４０は、カウンタ１０−１、１０−２以外のカウンタ１０から、比較対象カウンタ１０−Ｓを選択する。例えば、制御回路４０は、カウンタ１０−３〜１０−Ｌを比較対象カウンタ１０−Ｓとして選択する。また、制御回路４０は、カウンタ１０−１に対してクロック信号ＣＬＫが入力信号として入力され、カウンタ１０−２に対して「カウンタ１０−１からの結果信号Ｄ１」が入力信号として入力され、且つ、カウンタ１０−３〜１０−Ｌに対して「カウンタ１０−２からの結果信号Ｄ２」が入力信号として入力されるように、接続関係を設定する。桁上がりを示す結果信号Ｄ２が入力されることにより、カウンタ１０−３〜１０−Ｌの各々のカウント値は“１”となる。
【００３１】
続いて、３Ｎ／Ｍビットのカウント動作が開始する。クロック信号ＣＬＫが供給されると、カウンタ１０−１は、そのクロック信号ＣＬＫに基づいてカウント動作を行う。そして、カウンタ１０−１は、Ｎ／Ｍビットのカウントが完了する度に結果信号Ｄ１を出力する。カウンタ１０−２は、その結果信号Ｄ１を受け取り、その結果信号Ｄ１に基づいてカウント動作を行う。そして、カウンタ１０−２は、Ｎ／Ｍビットのカウントが完了する度に結果信号Ｄ２を出力する。カウンタ１０−３〜１０−Ｌ（比較対象カウンタ）の各々は、その結果信号Ｄ２を受け取り、その結果信号Ｄ２に基づいてカウント動作を行う。そして、カウンタ１０−３〜１０−Ｌの各々は、Ｎ／Ｍビットのカウントが完了すると結果信号Ｄを出力する。
【００３２】
３Ｎ／Ｍビットのカウントが完了するタイミングにおいて、制御回路４０は、カウンタ１０−３〜１０−Ｌのそれぞれからの出力される結果信号Ｄ３〜ＤＬ同士を比較する（３回目の比較処理）。この比較処理により、カウンタ１０−３〜１０−Ｌの中に異常カウンタが存在するか否かが判定される。本例において、異常カウンタは存在しない。
【００３３】
続いて、制御回路４０は、カウンタ１０−３〜１０−Ｌ（比較対象カウンタ）のうち少なくとも１つを、３Ｎ／Ｍビットのカウントを担当するカウンタとして設定する。本例において、制御回路４０は、カウンタ１０−３を、３Ｎ／Ｍビットのカウントを担当するカウンタとして設定するとする。
【００３４】
同様の処理が、Ｎ／Ｍビットのカウント毎に繰り返し実行される。
【００３５】
図２Ｄは、最後のＮビットのカウント動作（同時にＭ回目の異常検知処理）を説明するための概念図である。制御回路４０は、カウンタ１０−Ｍ〜１０−Ｌを比較対象カウンタ１０−Ｓとして選択する。また、制御回路４０は、カウンタ１０−１に対してクロック信号ＣＬＫが入力信号として入力され、カウンタ１０−ｋ（ｋ＝２〜Ｍ）に対して「カウンタ１０−（ｋ−１）からの結果信号Ｄ（ｋ−１）」が入力信号として入力されるように、接続関係を設定する。
【００３６】
Ｎビットのカウントが完了するタイミングにおいて、制御回路４０は、カウンタ１０−Ｍ〜１０−Ｌのそれぞれからの出力される結果信号ＤＭ〜ＤＬ同士を比較する（Ｍ回目の比較処理）。この比較処理により、カウンタ１０−Ｍ〜１０−Ｌの中に異常カウンタが存在するか否かが判定される。
【００３７】
このように、制御回路４０は、Ｎ／Ｍビットのカウント毎に、異常検知処理を繰り返し実行する。そして、制御回路４０は、異常検知処理をＭ回繰り返すことによって、Ｎ／Ｍビット毎にカウントを担当するカウンタ１０を決定する。尚、制御回路４０は、どのカウンタ１０がどのＮ／Ｍビットのカウンタを担当するかに関する情報（割り当てテーブル等）を保持していてもよい。その情報は、カウンタ回路１の外部から参照可能なように制御回路４０内に格納される。
【００３８】
次に、異常カウンタが有る場合を説明する。例えば、上記図２Ａで示された１回目の異常検知処理の結果、カウンタ１０−１が異常カウンタであることが判明したとする。
【００３９】
この場合、図３に示されるように、制御回路４０は、カウンタ１０−１〜１０−Ｌ（比較対象カウンタ）のうち異常カウンタ１０−１以外の少なくとも１つを、Ｎ／Ｍビットのカウントを担当するカウンタとして設定する。例えば、制御回路４０は、カウンタ１０−２を、Ｎ／Ｍビットのカウントを担当するカウンタとして設定する。
【００４０】
続いて、制御回路４０は、異常カウンタ１０−１とカウンタ１０−２以外のカウンタ１０から、比較対象カウンタ１０−Ｓを選択する。例えば、制御回路４０は、カウンタ１０−３〜１０−Ｌを比較対象カウンタ１０−Ｓとして選択する。また、制御回路４０は、カウンタ１０−２に対してクロック信号ＣＬＫが入力信号として入力され、且つ、カウンタ１０−３〜１０−Ｌに対して「カウンタ１０−２からの結果信号Ｄ２」が入力信号として入力されるように、接続関係を設定する。その後の処理は、図２Ａ〜図２Ｄの場合と同様である。
【００４１】
このように、カウント動作の最中に異常カウンタが検出された場合、制御回路４０は、その異常カウンタを除外することにより、カウント動作を継続させる。尚、異常カウンタが検出された場合にＮビットのカウントを完了するためには、その異常カウンタの代わりとなる予備のカウンタが必要である。この点では、ＬがＭより大きいことが好適である。但し、ＬがＭと同じであってもよい（Ｌ＝Ｍ）。この場合、制御回路４０は、異常カウンタを回避しつつ、可能な限り大きいビットまでカウント動作を継続させることができる。
【００４２】
１−２−２．第２の動作例
上記第１の動作例では、比較対象カウンタ１０−Ｓを１つずつ減らしていくような制御が行われている。しかし、制御方式はそれに限られない。異常検知処理とカウント動作の継続が実現されさえすれば、どのような制御方式でも構わない。図４Ａ〜図４Ｄを参照して、第２の動作例を説明する。尚、異常カウンタは無いとする。
【００４３】
図４Ａは、最初のＮ／Ｍビットのカウント動作（同時に１回目の異常検知処理）を説明するための概念図である。制御回路４０は、カウンタ１０−１、１０−２を比較対象カウンタ１０−Ｓとして選択する。また、制御回路４０は、カウンタ１０−１、１０−２に対してクロック信号ＣＬＫが入力信号として入力されるように、接続関係を設定する。その後、Ｎ／Ｍビットのカウント動作が開始する。
【００４４】
Ｎ／Ｍビットのカウントが完了するタイミングにおいて、制御回路４０は、カウンタ１０−１、１０−２のそれぞれからの出力される結果信号Ｄ１、Ｄ２を比較する（１回目の比較処理）。この比較処理により、カウンタ１０−１、１０−２の中に異常カウンタが存在するか否かが判定される。本例において、異常カウンタは存在しない。制御回路４０は、カウンタ１０−１、１０−２を、Ｎ／Ｍビットのカウントを担当するカウンタとして設定する。その後、次の２Ｎ／Ｍビットのカウント動作に移行する。
【００４５】
図４Ｂは、２Ｎ／Ｍビットのカウント動作（同時に２回目の異常検知処理）を説明するための概念図である。制御回路４０は、カウンタ１０−３〜１０−６を比較対象カウンタ１０−Ｓとして選択する。また、制御回路４０は、カウンタ１０−１、１０−２に対してクロック信号ＣＬＫが入力信号として入力され、且つ、カウンタ１０−３〜１０−Ｌに対して結果信号Ｄ２が入力信号として入力されるように、接続関係を設定する。桁上がりを示す結果信号Ｄ２が入力されることにより、カウンタ１０−３〜１０−６の各々のカウント値は“１”となる。その後、２Ｎ／Ｍビットのカウント動作が開始する。
【００４６】
２Ｎ／Ｍビットのカウントが完了するタイミングにおいて、制御回路４０は、カウンタ１０−３〜１０−６のそれぞれからの出力される結果信号Ｄ３〜Ｄ６同士を比較する（２回目の比較処理）。この比較処理により、カウンタ１０−３〜１０−６の中に異常カウンタが存在するか否かが判定される。本例において、異常カウンタは存在しない。制御回路４０は、カウンタ１０−３、１０−４を、２Ｎ／Ｍビットのカウントを担当するカウンタとして設定する。その後、次の３Ｎ／Ｍビットのカウント動作に移行する。
【００４７】
図４Ｃは、３Ｎ／Ｍビットのカウント動作（同時に３回目の異常検知処理）を説明するための概念図である。制御回路４０は、カウンタ１０−５、１０−６を比較対象カウンタ１０−Ｓとして選択する。また、制御回路４０は、カウンタ１０−１、１０−２に対してクロック信号ＣＬＫが入力信号として入力され、カウンタ１０−３、１０−４に対して結果信号Ｄ２が入力信号として入力され、且つ、カウンタ１０−５、１０−６に対して結果信号Ｄ４が入力信号として入力されるように、接続関係を設定する。桁上がりを示す結果信号Ｄ４が入力されることにより、カウンタ１０−５、１０−６の各々のカウント値は“１”となる。その後、３Ｎ／Ｍビットのカウント動作が開始する。
【００４８】
３Ｎ／Ｍビットのカウントが完了するタイミングにおいて、制御回路４０は、カウンタ１０−５、１０−６のそれぞれからの出力される結果信号Ｄ５、Ｄ６同士を比較する（３回目の比較処理）。この比較処理により、カウンタ１０−５、１０−６の中に異常カウンタが存在するか否かが判定される。本例において、異常カウンタは存在しない。制御回路４０は、カウンタ１０−６を、３Ｎ／Ｍビットのカウントを担当するカウンタとして設定する。その後、次の４Ｎ／Ｍビットのカウント動作に移行する。
【００４９】
図４Ｄは、４Ｎ／Ｍビットのカウント動作（同時に４回目の異常検知処理）を説明するための概念図である。制御回路４０は、カウンタ１０−３、１０−５を比較対象カウンタ１０−Ｓとして選択する。また、制御回路４０は、カウンタ１０−１、１０−２に対してクロック信号ＣＬＫが入力信号として入力され、カウンタ１０−４に対して結果信号Ｄ２が入力信号として入力され、カウンタ１０−６に対して結果信号Ｄ４が入力信号として入力され、且つ、カウンタ１０−３、１０−５に対して結果信号Ｄ６が入力信号として入力されるように、接続関係を設定する。桁上がりを示す結果信号Ｄ６が入力されることにより、カウンタ１０−３、１０−５の各々のカウント値は“１”となる。その後、４Ｎ／Ｍビットのカウント動作が開始する。
【００５０】
４Ｎ／Ｍビットのカウントが完了するタイミングにおいて、制御回路４０は、カウンタ１０−３、１０−５のそれぞれからの出力される結果信号Ｄ３、Ｄ５同士を比較する（４回目の比較処理）。この比較処理により、カウンタ１０−３、１０−５の中に異常カウンタが存在するか否かが判定される。
【００５１】
その後、同様の処理が、Ｎ／Ｍビットのカウント毎に繰り返し実行される。
【００５２】
１−３．効果
以上に説明されたように、本実施の形態によれば、カウンタ回路１がカウント動作を行っている最中に、異常検知処理が実施される。具体的には、Ｎビットのカウント動作のために複数のＮ／Ｍビットカウンタ１０が設けられ、それら複数のＮ／Ｍビットカウンタ１０のうち２以上の比較対象カウンタ１０−Ｓに対して同じ入力信号が入力される。そして、比較対象カウンタ１０−Ｓのそれぞれからの結果信号ＤＳ同士を比較することによって、異常カウンタの有無が判定される。
【００５３】
また、本実施の形態によれば、異常カウンタを検出するために必要なカウンタ面積（カウンタビット数）を削減することができる。それは、カウント回路１の構成要素であるＮ／Ｍビットカウンタ１０を利用して異常検知処理が実施されるからである。上記の特許文献１のようにカウント回路１を２セット用意して、それら２つのカウント回路１を並列に動作させる必要はない。従って、回路面積削減の効果が得られる。すなわち、本実施の形態によれば、回路面積の増大を抑えつつ、カウンタ回路１の異常を検出することが可能となる。
【００５４】
更に、カウント動作の最中に異常カウンタが検出された場合、制御回路４０は、その異常カウンタを除外することにより、カウント動作を継続させる。カウント動作が停止しないため、カウンタ回路１が搭載された半導体集積回路の動作信頼性が向上する。
【００５５】
尚、異常カウンタが検出された場合にＮビットのカウントを最後まで完了するためには、その異常カウンタの代わりとなる予備のカウンタが必要である。この点では、ＬがＭより大きいことが好適である。但し、ＬがＭと同じであってもよい（Ｌ＝Ｍ）。この場合、制御回路４０は、異常カウンタを回避しつつ、可能な限り大きいビットまでカウント動作を継続させることができる。これによっても、動作信頼性向上の効果は、ある程度得られる。また、異常カウンタの数が予備のカウンタの数を超える場合も同様であり、可能な限り大きいビットまでカウント動作を継続させることができる。
【００５６】
車載用の電子制御装置の分野においては、回路面積削減と動作信頼性向上は重要な課題である。従って、本実施の形態に係るカウンタ回路１は、車載用の電子制御装置に対して特に有効である。もちろん、汎用的な半導体集積回路においても、本実施の形態に係るカウンタ回路１は有用である。
【００５７】
２．第２の実施の形態
制御回路４０は、図５に示されるようなアラーム回路５０を搭載していてもよい。アラーム回路５０は、ロジック回路５１及びＳＰＩ（Serial Peripheral Interface）通信回路５５を備えている。
【００５８】
ロジック回路５１は、上述の比較処理の結果を受け取る。異常カウンタが検出された場合、ロジック回路５１は、アラーム信号を外部に出力する。また、ロジック回路５１は、カウンタ１０−１〜１０−Ｌのそれぞれの状態（正常／異常）を示す情報が格納されるアラームレジスタ５２を有していてもよい。ロジック回路５１は、上述の比較処理の結果に応じて、アラームレジスタ５２の内容を更新する。アラームレジスタ５２の内容は、ＳＰＩ通信回路５５を介して外部から参照することができる。
【００５９】
図６は、アラームレジスタ５２の一例を示す概念図である。アラームレジスタ５２は、カウンタ１０−１〜１０−Ｌのそれぞれに関連付けられたレジスタ５３−１〜５３−Ｌを有している。レジスタ５３−１〜５３−Ｌには、カウンタ１０−１〜１０−Ｌのそれぞれの状態（正常／異常）を示すフラグが格納される。例えば、正常の場合、フラグは“０”に設定され、異常の場合、フラグは“１”に設定される。
【００６０】
図７は、アラームレジスタ５２の他の例を示す概念図である。図６で示された例と比較して、バックアップビット５４が追加されている。バックアップビット５４は、Ｌ＞Ｍの場合に、予備のカウンタ１０の残存状況を示す。例えば、予備のカウンタ１０が無くなった場合、バックアップビット５４は“１”に設定される。これをＳＰＩ通信回路５５を介して参照することにより、早期の対応が可能となる。
【００６１】
３．第３の実施の形態
上述の実施の形態に係るカウンタ回路１の一適用例として、ボーレートジェネレータが考えられる。図８を参照して、カウンタ回路１がボーレートジェネレータに適用される場合を説明する。
【００６２】
プリスケーラ６０は、発振器３０からクロック信号ＣＬＫ（周波数：ｆＰＲＳ）を受け取る。プリスケーラ６０は、クロック信号ＣＬＫの分周を行い、分周後のクロック信号ＣＬＫ（周波数：ｆＣＬＫ）を出力する。ここで、分周比は可変に設定可能である。
【００６３】
ボーレートジェネレータ７０は、カウンタ回路１と一致検出回路７１を備えている。カウンタ回路１は、プリスケーラ６０から出力されるクロック信号ＣＬＫ（周波数：ｆＣＬＫ）に基づいてカウント動作を行う。つまり、ボーレートジェネレータ７０は、カウンタ回路１を用いてクロック信号ＣＬＫ（周波数：ｆＣＬＫ）のカウントを行う。
【００６４】
ボーレートジェネレータコントロールレジスタ８０は、所望のボーレートに対応する目標カウント値（１／２ビット期間に相当するクロック数の理論値）を保持する。この目標カウント値の設定は変更可能である。
【００６５】
一致検出回路７１は、カウンタ回路１によるカウント値と目標カウント値との比較を行う。そして、一致検出回路７１は、カウンタ回路１によるカウント値が目標カウント値に一致するタイミングで、一致検出信号をＩ／Ｏインタフェース９０に出力する。一致検出信号は、Ｉ／Ｏインタフェース９０の内部で分周回路によって分周され、それにより、データ送受信に必要なクロック信号（サンプリングクロック、シフトクロック）が生成される。
【００６６】
このように、ボーレートジェネレータ７０は、カウンタ回路１を用いることにより、データ送受信のボーレートの設定を行う。
【００６７】
ここで、カウンタ回路１のカウンタ１０−１〜１０−Ｌに異常カウンタが含まれており、カウンタ回路１が目標カウント値までカウントできない場合を考える。この場合であっても、カウント回路１は、上述の通り、異常カウンタを回避しつつ、可能な限り大きいビットまでカウント動作を継続させる。本実施の形態によれば、このような特徴を活かすため、最大カウント数の減少が発生した場合であってもボーレートの設定が継続するような制御が行われる。具体的には、ボーレートジェネレータ７０は、目標カウント値を減少させ、また、それに応じて、プリスケーラ６０における分周比を増加させる。これにより、ボーレートの設定精度は低下するものの、ボーレートの設定（補正）処理自体は継続させることが可能となる。
【００６８】
具体例として、目標ボーレート＝１９２００ｂｐｓ、ｆＰＲＳ＝２０ＭＨｚ、Ｎ＝１２、Ｍ＝Ｌ＝４（１２ビットカウンタを４個の３ビットカウンタ１０−１〜１０−４で構成する）の場合を考える。
【００６９】
異常カウンタが無い場合の設定は、次の通りである。
・分周比＝２３
・ｆＣＬＫ＝ｆＰＲＳ／２３＝２．５ＭＨｚ
・目標カウント値＝６５
この場合、設定ボーレートは１９２３０ｂｐｓとなり、設定誤差は０．１５６％となった。
【００７０】
次に、異常カウンタが２個発生した場合を考える。この場合、設定は次のように変更される。
・分周比＝２５
・ｆＣＬＫ＝ｆＰＲＳ／２５＝６２５ｋＨｚ
・目標カウント値＝１６
この場合、設定ボーレートは１９５３１ｂｐｓとなり、設定誤差は１．７２４％となった。このように、ボーレートの設定精度は低下するものの、ボーレート設定処理は２個のカウンタ１０を用いて継続させることが可能となる。
【００７１】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【符号の説明】
【００７２】
１    カウンタ回路
１０、１０−１〜１０−Ｌ    カウンタ
１０−Ｓ  比較対象カウンタ
２０、２０−１〜２０−Ｌ    スイッチ
３０    発振器
４０    制御回路
５０    アラーム回路
５１    ロジック回路
５２    アラームレジスタ
５３    レジスタ
５４    バックアップビット
５５    ＳＰＩ通信回路
６０    プリスケーラ
７０    ボーレートジェネレータ
７１    一致検出回路
８０    ボーレートジェネレータコントロールレジスタ
９０    Ｉ／Ｏインタフェース
ＣＬＫ    クロック信号
Ｄ、Ｄ１〜ＤＬ  結果信号
ＳＷ    スイッチ制御信号
ＯＵＴ    出力信号
【図１】
2014132251.tif 000003
【図２Ａ】
2014132251.tif 000004
【図２Ｂ】
2014132251.tif 000005
【図２Ｃ】
2014132251.tif 000006
【図２Ｄ】
2014132251.tif 000007
【図３】
2014132251.tif 000008
【図４Ａ】
2014132251.tif 000009
【図４Ｂ】
2014132251.tif 000010
【図４Ｃ】
2014132251.tif 000011
【図４Ｄ】
2014132251.tif 000012
【図５】
2014132251.tif 000013
【図６】
2014132251.tif 000014
【図７】
2014132251.tif 000015
【図８】
2014132251.tif 000016