JP5481836B2 - カウンタ回路、カウンタ回路の制御方法 - Google Patents

カウンタ回路、カウンタ回路の制御方法 Download PDF

Info

Publication number
JP5481836B2
JP5481836B2 JP2008284409A JP2008284409A JP5481836B2 JP 5481836 B2 JP5481836 B2 JP 5481836B2 JP 2008284409 A JP2008284409 A JP 2008284409A JP 2008284409 A JP2008284409 A JP 2008284409A JP 5481836 B2 JP5481836 B2 JP 5481836B2
Authority
JP
Japan
Prior art keywords
counter
value
gray code
circuit
output
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2008284409A
Other languages
English (en)
Other versions
JP2010114581A (ja
Inventor
一正 鈴木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2008284409A priority Critical patent/JP5481836B2/ja
Publication of JP2010114581A publication Critical patent/JP2010114581A/ja
Application granted granted Critical
Publication of JP5481836B2 publication Critical patent/JP5481836B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Detection And Prevention Of Errors In Transmission (AREA)

Description

本発明は、カウンタ回路のソフトエラーを検出する技術に関する。
半導体メモリ回路においては、α線の照射等によって生じる電荷によって記憶していた内容が変化してしまう現象が従来から知られている。この結果、動作不良(ソフトエラー)が生じることがある。その対策としてパリティビットやエラー訂正コードなど、エラー検出用の冗長なビットをメモリに記憶しておき、これらのビットを使用してエラーの検出や補正をすることが一般に行われている。
近年は、半導体の微細化によって、メモリ素子だけでなく、ロジック回路を構成するフリップフロップにおいてもソフトエラーが発生することが懸念されている。このロジック回路においても、数ビットのデータに対して1ビットのパリティビットを設けることなどによって、ソフトエラーの検出が可能である。
このロジック回路では、様々な機能を実現するためにカウンタ回路がよく使用される。特に、カウンタ回路はシステム内の秩序を保つために使われることが多いので、カウンタ回路が持つ役割は重要である。カウンタ回路は数値を保持するために内部にフリップフロップからなるレジスタを有する。もし、このレジスタにソフトエラーが発生するとシステム内の秩序が失われ、システムが致命的な誤動作を起こす可能性がある。従って、カウンタ回路のソフトエラーを検出することが重要となる。
パリティ信号でカウンタ回路のソフトエラーを検出する回路の一例を図24に示す。同図に記載の回路は、カウンタ内の内部信号(インクリメンタの出力値または初期値)を使用してパリティ信号を生成する。そして、このパリティ信号を使用してカウンタのソフトエラーを検出する。
特許文献1に記載された回路は、インクリメンタの出力信号と並列にパリティ信号を生成している。
特開2007−208380号公報
しかしながら、これらのカウンタ回路では、ソフトエラー検出確率が低いという問題がある。
詳細には、これらの回路において、クロックの立ち上がりでレジスタが更新された直後にインクリメンタがカウントアップし、そのカウント値に基づいてパリティ生成回路がパリティ信号を生成する。そして、カウンタ回路は、カウント値のビットエラーを、パリティ信号を使用して検出する。
この構成では、インクリメンタの出力値(カウント値)を保持するレジスタにソフトエラーが生じたとき、そのエラー発生のタイミングが遅く、エラー後の値を使用した増分処理が完了する前に、次のクロックが立ち上がれば、増分後の値がレジスタに保持されないので、カウンタ回路は、正常なカウント値を出力できる。
エラーの発生タイミングが比較的早く、増分処理完了後、パリティ生成処理完了前に次のクロックの立ち上がると、カウンタ回路は、エラー後のカウント値と、エラー後の値に基づかないパリティ信号とを使用してパリティチェックを行う。このパリティチェックの処理が、次のクロックの立ち上がりまでに完了すれば、パリティチェック回路は、そのクロックにおいてエラーを検出できる。但し、次のクロックにおいては、エラーチェック回路はエラー後の値から生成された正常値のパリティ信号を使用するので、次のクロック以降は、ビットエラーが生じたにも関わらず、エラーチェック回路においてエラーが検出されない。
エラーを示すパリティ信号が出力されとき、この信号を破棄しないで非同期RS(Set-Reset)フリップフロップで保持する構成が考えられる。ところが、この構成では、パリティチェックの処理中に一時的にエラーとなるグリッチがでた場合に、レジスタにエラーが生じなくともエラーが検出されてしまう。
さらに、ソフトエラーが生じたにも関わらず、全くエラーが検出されないときもある。例えば、図5(a)に示すように、増分処理およびパリティ生成処理よりもパリティチェック処理に時間がかかる構成について考える。この構成では、エラー発生のタイミングが早いと、次のクロックの立ち上がり前に、増分処理およびパリティ生成処理(白抜き部分)が完了するが、エラー後のカウント値を使用したパリティチェック処理(白抜き部分)が完了していないことがある。このときは、ビットエラーが生じたにも関わらず、エラーチェック回路においてエラーが検出されない。そして、次のクロック以降においても、エラー後の値を使用した正常値のパリティ信号がレジスタに書き込まれているので、ソフトエラーが生じているにも関わらず、全くエラーが検出されない。
パリティ値をレジスタ値から直接生成する構成としても、パリティチェックより早く次のパリティが生成されたならば、同様に、検出できないエラー発生のタイミングが存在する。
このように、ソフトエラーが生じても、カウンタ回路は、エラー検出信号を全く出力しなかったり、1クロックしか出力しなかったりすることがあったので、エラー検出率が低いという問題があった。
本発明は、エラー検出率が高いカウンタ回路を提供することを目的とする。
上記目的を達成するために、本発明のカウンタ回路は、数値をカウントし、カウント値を出力する第1のカウンタと、前記第1のカウンタにより出力された前記カウント値のビットエラーを検出するためのチェック信号を、自身の内部信号を使用することにより、前記第1のカウンタと同期して生成する第2のカウンタと、前記第2のカウンタにより生成された前記チェック信号を使用して前記第1のカウンタにより出力された前記カウント値のビットエラーを検出する検出手段と、を有する。
本発明のカウンタ回路の制御方法は、第1のカウンタが数値をカウントし、カウント値を出力し、第2のカウンタが、前記第1のカウンタにより出力された前記カウント値のビットエラーを検出するためのチェック信号を、自身の内部信号を使用することにより、前記第1のカウンタと同期して生成し、検出手段が、前記第2のカウンタにより生成された前記チェック信号を使用して前記第1のカウンタにより出力された前記カウント値のビットエラーを検出する、方法である。
本発明によれば、カウンタ回路は、第1のカウンタおよび第2のカウンタを有し、第2のカウンタが自身の内部信号を使用することにより生成したチェック信号を用いて、第1のカウンタによるカウント値のビットエラーを検出する。従って、カウンタ回路は、ビットエラー後のカウント値に基づいてチェック信号を生成せず、ソフトエラーが生じてから、確実にエラー検出信号を出力するので、エラー検出率が高くなる。
(第1の実施形態)
本発明の第1の実施形態について図面を参照して詳細に説明する。
図1は、本実施形態のカウンタ回路1の構成を示すブロック図である。同図を参照すると、カウンタ回路1は、カウンタ10(第1のカウンタ)、チェック用カウンタ20(第2のカウンタ)、およびパリティチェック回路30を有する。
カウンタ10は、インクリメンタ11、セレクタ13、およびレジスタ14を有する。インクリメンタ11には、レジスタ14の出力値(バイナリ値)が入力される。インクリメンタ11は、この入力値を1増分してセレクタ13に出力する。
セレクタ13には、リセット信号、インクリメンタの出力値(カウント値)、および所定の初期値が入力される。セレクタ13は、リセット信号の値に応じて、インクリメンタの出力値または初期値のいずれかをレジスタ14に出力する。
レジスタ14には、クロック信号、イネーブル信号、およびセレクタ13の出力値(カウント値)が入力される。レジスタ14は、カウント値を保持し、イネーブル信号がアサート時に、クロック信号の値に同期して入力値で保持値を更新する。そしてレジスタ13は、保持値をパリティチェック回路30に出力する。
チェック用カウンタ20は、インクリメンタ21、セレクタ23、およびレジスタ24を有する。インクリメンタ21には、レジスタ24の出力値(バイナリ値)が入力される。インクリメンタ21は、この入力値を1増分してセレクタ23に出力する。
セレクタ23には、リセット信号、インクリメンタ21の出力値(バイナリ値)、および所定の初期値が入力される。セレクタ22は、リセット信号の値に応じて、インクリメンタ21の出力値または初期値のいずれかをレジスタ24に出力する。
レジスタ24には、クロック信号、イネーブル信号、およびセレクタ22の出力値(バイナリ値)が入力される。レジスタ24は、カウント値を保持し、イネーブル信号がアサート時に、クロック信号の値に同期して入力値で保持値を更新する。そしてレジスタ24は、保持値をパリティチェック回路30に出力する。
パリティチェック回路30には、カウンタ10およびチェック用カウンタ20の出力値が入力される。パリティチェック回路30は、カウンタ10からの出力値のビットエラーを、チェック用カウンタ20から出力値を使用して検出する。例えば、両方のカウンタからの出力値の排他的論理和を求め、「0」の値であれば、ビットエラーが生じていないと判断し、「1」の値であれば、ビットエラーが生じていないと判断する。
カウンタ回路1の動作について説明する。図2は、カウンタ回路1にソフトエラーが生じていないときの動作を示す表である。同図を参照すると、各クロックにおいて、カウンタ10の出力値(Cn)と、チェック用カウンタ20の出力値(C’n)とは、同じ値なので、パリティチェック回路30は、エラーを検出せず、排他的論理和として「0」の値(P)を出力する。
図3は、レジスタ14にソフトエラーが生じた場合のカウンタ回路1の動作を示す表である。同図を参照すると、16進数で「5」の値に対応するバイナリ値の2桁目にビットエラーが生じ、本来「0101」であるところ、「0111」が出力されている。同図において、色つきのマスはエラーが生じたビットまたはエラーを検出したビットを示すものである。一方、チェック用カウンタ20の出力値は「0101」であり、1の数が奇数個となるので、パリティチェック回路30は、エラーを検出し、排他的論理和として「1」の値を出力する。
インクリメンタ11は、前回の出力値をフィードバックしてカウントするので、これ以降も正常な値を出力しない。このため、パリティチェック回路30は、頻繁にエラーを検出する。
図4に示すように、レジスタ24の方にソフトエラーが生じた場合も、パリティチェック回路30は、エラーを検出する。
図5(a)は、インクリメンタの出力値からパリティ信号を生成する回路の動作を示すタイミングチャートである。同図(b)は本実施形態のカウンタ回路1の動作を示すタイミングチャートである。
図5(a)に示すように、エラー発生のタイミングが早いと、次のクロックの立ち上がり前に、増分処理およびパリティ生成処理(白抜き部分)が完了して、エラー後のカウント値を使用したパリティチェック処理(白抜き部分)が完了する前に、次のクロックが立ち上がる。この結果、ビットエラーが生じたにも関わらず、エラーチェック回路においてエラーが検出されない。そして、エラー後の値から生成されたパリティ信号がレジスタに保持されるので、次のクロック以降でも、カウンタ回路は、全くエラーを検出できない。
これに対して図5(b)に示すように、カウンタ回路1では、カウント用のインクリメンタ11と独立したインクリメンタ21を設けている。この構成でも、エラー発生のタイミングが早く、次のクロックの立ち上がり前に、エラー後のカウント値を使用したパリティチェック処理(白抜き部分)が完了しないと、そのクロックにおいてエラーが検出されない。しかし、次のクロックにおいては、インクリメンタ11がエラー後の値を増分するのに対し、インクリメンタ21は、エラー後のカウント値を使用しないので、エラーチェック回路30は、エラー検出信号を出力できる。
このように、本実施形態のカウンタ回路1は、確実に、エラー検出信号を出力できる。また、図3で示したように、複数のクロックにわたってエラー検出信号を出力するので、エラー検出率が向上する。
以上説明したように、本実施形態によれば、カウンタ回路1は、チェック用カウンタ20(第2のカウンタ)がレジスタ24の出力値(内部信号)を使用することにより、生成したカウント値(チェック信号)を使用してカウンタ10(第1のカウンタ)のビットエラーを検出する。カウンタ回路1は、ビットエラー後のカウント値に基づいてチェック信号を生成することがなくなり、ソフトエラーが生じたとき、確実にエラー検出信号を出力するので、エラー検出率が高くなる。
(第2の実施形態)
本発明の第2の実施形態について図面を参照して説明する。
図6は、本実施形態のカウンタ回路1aの構成を示すブロック図である。同図を参照すると、カウンタ回路1aは、インクリメンタ11および21の代わりに、シフタ11aおよび21aを使用する点で、第1の実施形態のカウンタ回路1と異なる。
シフタ11aは、ワンホットカウンタまたはリングカウンタであり、任意のビット長(例えば8ビット)のレジスタ24の出力のうち最大値と最小値とをつないで環状にし、1ビットだけ他のビットと異なる値にし、このビットの位置をカウントすることに1ビットずつ変化させる。シフタ21aも、所定のビット数(例えば、2ビット)のリングカウンタであり、シフタ11aと同期してカウントする。
図7は、カウンタ回路1aにソフトエラーが生じていないときの動作を示す表である。同図を参照すると、各クロックにおいて、カウンタ10(シフタ11a)の出力値(Cn)における「1」値のビット数は、チェック用カウンタ20(シフタ21a)の出力値(C’n)における「1」の値のビット数と同じなので、パリティチェック回路30は、エラーを検出せず、排他的論理和として「0」の値(P)を出力する。
図8は、レジスタ14にソフトエラーが生じた場合のカウンタ回路1aの動作を示す表である。同図を参照すると、16進数で「2」の値に対応するカウント値の7桁目にビットエラーが生じ、本来「000000100」であるところ、「01000100」が出力されている。同図において、色つきのマスはエラーが生じたビットまたはエラーを検出したビットを示すものである。一方、チェック用カウンタ20の出力値は「01」であり、1の数が奇数個となるので、パリティチェック回路30は、エラーを検出し、排他的論理和として「1」の値を出力する。
シフタ11aは、前回の出力値をフィードバックしてカウントするので、これ以降も正常な値を出力しない。このため、パリティチェック回路30は、エラーを検出し続ける。
図9に示すように、レジスタ14に1から0への方向にビット化けが生じた場合も、1の数が奇数個となるので、パリティチェック回路30は、エラーを検出できる。図10に示すように、レジスタ24の方にソフトエラーが生じた場合も、同様に、パリティチェック回路30は、エラーを検出できる。
以上、説明したように、本実施形態によれば、カウンタ回路1aは、リングカウンタに生じたソフトエラーについても高い確率で検出できる。
特に、本実施形態のカウンタ回路1aは、小規模なハードウェア構成でエラー検出率を向上させることができる。具体的には、カウンタのエラー検出率を向上させるには、カウンタ用のレジスタ14を2重化する構成が考えられるが、この構成では、同じサイズのレジスタを2つ設けなくてはならず、オーバーヘッドが大きくなる。
これに対して、本実施形態のカウンタ回路1aでは、パリティ信号用のレジスタ24は、カウンタ用のレジスタ14以下のサイズで足りるので、ハードウェア規模は比較的小さくなる。
(第3の実施形態)
本発明の第3の実施形態について図面を参照して説明する。
図11は、本実施形態のカウンタ回路1bの構成を示すブロック図である。同図を参照すると、カウンタ回路1bは、カウンタとしてグレイコードカウンタ(第1のカウンタ)およびトグルカウンタ(第2のカウンタ)を使用する点で、第1の実施形態のカウンタ回路1と異なる。
カウンタ回路1bは、グレイコードカウンタ10b、トグルカウンタ20b、パリティチェック回路30、グレイコード変換回路40、および二進変換回路50を有する。
グレイコード変換回路40は、所定の初期値のバイナリ値を、グレイコードに変換する。そして、グレイコード変換回路40は、変換したグレイコードをグレイコードカウンタ10bおよびトグルカウンタ20bへ出力する。
グレイコードカウンタ10bは、インクリメンタ11の代わりにグレイコードインクリメンタ11bを有するほかは、カウンタ10と同様の構成である。グレイコードインクリメンタ11bには、レジスタ14の出力値が入力される。グレイコードインクリメンタ11bは、入力値を、グレイコード形式で増分し、セレクタ13に出力する。レジスタ14は、パリティチェック回路30および二進変換回路50に保持値を出力する。
トグルカウンタ20bは、インクリメンタ21の代わりに、インバータ21bを有するほかは、チェック用カウンタ20と同様の構成である。インバータ21bには、レジスタ24の出力値が入力される。インバータ21bは、入力値を反転した値をセレクタ23に出力する。
二進変換回路50は、グレイコードカウンタ10bの出力値を、二進数に変換する。
このように、回路を構成することにより、グレイコードカウンタ11bは、初期値からグレイコード形式でカウントした値を出力する。また、トグルカウンタ20bは、0と1とのトグル値を交互に出力する。
図12は、カウンタ回路1bの動作を説明するための表である。同図において、色の異なるマスは、増分前の値と異なる値となったビットを示すものである。同図を参照すると、2進数では、値が増分されるたびに、複数のビットが変化することがある。例えば、16進表記で「7」の値に対応する2進数「0111」を1増分すると、「1000」となり、4ビットが変化している。
これに対して、グレイコードでは、値を1変化させるたびに、コードの中のビットは、1ビットだけしか変化しない。例えば、16進表記で「7」の値に対応するグレイコード「0100」を1増分すると、「1100」となり、1ビットしか変化しない。このため、値を1変化するたびに、コードの中における、値が1のビット数は、偶数の値と奇数の値とを交互にとることになる。
従って、グレイコードについて値が変化するたびにパリティビットを生成すると、そのパリティビットの値は0と1とを交互にとることになる。よって、0と1との値を交互に出力するトグルカウンタ20bの出力をそのままパリティビットとして使用することで、カウンタ回路1bは、グレイコード中の1ビットのエラーを検出することができる。
図13は、カウンタ回路1bの回路図の一例である。ここでは、4ビットのカウンタの例を示す。
グレイコード変換回路40は、XORゲート401、402、および403を有する。XORゲート401には、4ビットの2進数(初期値)のうち、4桁目(I3)と3桁目(I2)との値が入力される。XORゲート401は、入力値の排他的論理和を、グレイコードの3桁目としてグレイコードカウンタ10bへ出力する。
XORゲート402には、4ビットの2進数(初期値)のうち、3桁目(I2)と2桁目(I1)との値が入力される。XORゲート402は、入力値の排他的論理和を、グレイコードの2桁目としてグレイコードカウンタ10bへ出力する。
XORゲート403には、4ビットの2進数(初期値)のうち、2桁目(I1)と1桁目(I0)との値が入力される。XORゲート401は、入力値の排他的論理和を、グレイコードの1桁目としてグレイコードカウンタ10bへ出力する。グレイコード変換回路40は、4ビットの2進数(初期値)の4ケタ目(I3)を、そのまま、グレイコードの4桁目としてグレイコードカウンタ10bへ出力する。
グレイコードカウンタ10bは、グレイコードインクリメンタ11bと、セレクタ131、132、133、および134と、Dフリップフロップ141、142、143、および144とを有する。
グレイコードインクリメンタ11bは、XORゲート111、112、113、117、118、および119と、ANDゲート114、115、および116と、インバータ120とを有する。
XORゲート111は、Dフリップフロップ141の出力値と、Dフリップフロップ142の出力値との排他的論理和をANDゲート114に入力する。XORゲート112は、Dフリップフロップ141の出力値と、Dフリップフロップ142の出力値との排他的論理和をANDゲート115に入力する。
XORゲート113は、Dフリップフロップ141の出力値と、Dフリップフロップ142および143の出力値との排他的論理和をANDゲート116およびインバータ120に入力する。
ANDゲート114は、Dフリップフロップ143の出力を反転した値と、Dフリップフロップ144の出力を反転した値と、XORゲート111の出力値との論理積をXORゲート117に入力する。
ANDゲート115は、Dフリップフロップ143の出力値と、Dフリップフロップ144の出力を反転した値と、XORゲート112の出力を反転した値との論理積をXORゲート118に入力する。ANDゲート116は、Dフリップフロップ144の出力値と、XORゲート113の出力を反転した値との論理積をXORゲート119に入力する。
XORゲート117は、Dフリップフロップ141の出力値と、ANDゲート114の出力値との排他的論理和をセレクタ131に入力する。XORゲート118は、Dフリップフロップ142の出力値と、ANDゲート115の出力値との排他的論理和をセレクタ132に入力する。XORゲート119は、Dフリップフロップ143の出力値と、ANDゲート116の出力値との排他的論理和をセレクタ133に入力する。インバータ120は、XORゲート113の出力を反転した値をセレクタ134に入力する。
セレクタ131は、リセット信号がONの場合、グレイコード変換回路40の出力値の4桁目の値を、OFFの場合、XORゲート117の出力値をDフリップフロップ141に入力する。セレクタ132は、リセット信号がONの場合、グレイコード変換回路40の出力値の3桁目の値を、OFFの場合、XORゲート118の出力値をDフリップフロップ142に入力する。
セレクタ133は、リセット信号がONの場合、グレイコード変換回路40の出力値の2桁目の値を、OFFの場合、XORゲート119の出力値をDフリップフロップ143に入力する。セレクタ134は、リセット信号がONの場合、グレイコード変換回路40の出力値の1桁目の値を、OFFの場合、インバータ120の出力値をDフリップフロップ144に入力する。
Dフリップフロップ141は、カウント値の4桁目を保持し、イネーブル信号がアサート時にクロック信号に同期して保持値を更新する。Dフリップフロップ141は、保持値を、グレイコードの4桁目の値(C3)としてXORゲート111、112、113、および117と、パリティチェック回路30と、二進変換回路50とに入力する。
Dフリップフロップ142は、カウント値の3桁目を保持し、イネーブル信号がアサート時にクロック信号に同期して保持値を更新する。Dフリップフロップ142は、保持値を、グレイコードの3桁目の値(C2)としてXORゲート111、112、113、および118と、パリティチェック回路30と、二進変換回路50とに入力する。
Dフリップフロップ143は、カウント値の2桁目を保持し、イネーブル信号がアサート時にクロック信号に同期して保持値を更新する。Dフリップフロップ143は、保持値を、グレイコードの2桁目の値(C1)としてANDゲート114、115と、XORゲート113、119と、パリティチェック回路30と、二進変換回路50とに入力する。
Dフリップフロップ144は、カウント値の1桁目を保持し、イネーブル信号がアサート時にクロック信号に同期して保持値を更新する。Dフリップフロップ144は、保持値を、グレイコードの1桁目の値(C0)としてANDゲート114、115、および116と、パリティチェック回路30と、二進変換回路50とに入力する。
トグルカウンタ20bにおいてレジスタ24は、Dフリップフロップであり、イネーブル信号がアサート時に、クロック信号に同期して入力されたパリティ信号の値に保持値を更新する。そしてレジスタ24は、保持値(Cp)をパリティチェック回路30に出力する。
パリティチェック回路30は、XORゲート301を有する。XORゲート301は、Dフリップフロップ141、142、143、および144の値(C3、C2、C1、およびC0)と、レジスタ24の出力値(パリティ信号:Cp)との排他的論理和を、エラー検出信号として出力する。
二進変換回路50は、XORゲート501、502、および503を有する。二進変換回路50は、Dフリップフロップ141の出力値(C3)をそのまま、二進数の4桁目の値(B3)として出力する。
XORゲート501は、Dフリップフロップ141および142の出力値(C3およびC2)の排他的論理和を二進数の3桁目の値(B2)として出力する。XORゲート502は、Dフリップフロップ141、142、および143の出力値(C3、C2、およびC1)の排他的論理和を二進数の2桁目の値(B1)として出力する。XORゲート503は、Dフリップフロップ141、142、143、および144の出力値(C3、C2、C1、およびC0)の排他的論理和を二進数の1桁目の値(B0)として出力する。
このように回路を構成することにより、Dフリップフロップ141、142、143、および144は、それぞれ、グレイコードのカウント値の4桁目、3桁目、2桁目、および1桁目の値(C3、C2、C1、およびC0)を保持する。
そして、パリティチェック回路30は、グレイコードの各桁の値(C3、C2、C1、およびC0)、およびパリティ信号(Cp)の値において、1の値の数が偶数である場合、ビットエラーが生じていないことを意味する「0」のエラー検出信号を出力する。パリティチェック回路30は、1の値の数が奇数である場合、ビットエラーが生じたことを意味する「1」のエラー検出信号を出力する。
図14は、ソフトエラーが生じない場合のカウンタ回路1bの動作を示す表である。同図を参照すると、グレイコードカウンタ10bは、グレイコード形式で、カウント動作を行い、4ビットのカウント値(Cn)を出力する。一方、トグルカウンタ20bは、グレイコードカウンタ10aに同期して、1と0との値を交互にパリティ信号(Cp)として出力する。グレイコード(Cn)の各ビット値と、パリティ信号(Cp)の値にソフトエラーが生じない場合、これらの値において、1の値は偶数個なので、パリティチェック回路30は、0の値のエラー検出信号(Err)を出力する。
図15は、グレイコードカウンタ10bにソフトエラーが生じた場合の、カウンタ回路1aの動作を示す表である。グレイコードのいずれかのビットにビットエラーが生じた場合、グレイコードの各ビット値とパリティ信号の値とにおいて、1の値の総数は奇数個となる。このため、パリティチェック回路30は、ソフトエラーを検出し、1の値のエラー検出信号を出力する。
例えば、16進数「A」に対応するグレイコード(Cn)の3桁目にビットエラーが生じた場合について考える。グレイコードカウンタ10bにより、正常値であれば「1111」であるところ、「1011」のカウント値が出力される。一方、トグルカウンタ20bは、グレイコードカウンタ10bとは別に、「0」の値のパリティ信号(Cp)を出力する。
そして、カウント値「1011」、およびパリティ信号の値「0」において、1の値の総数が奇数となるので、パリティチェック回路30は、ソフトエラーを検出し、1の値のエラー検出信号(Err)を出力する。
グレイコードカウンタ10bは、ソフトエラーが生じたDフリップフロップの出力値をフィードバックして、グレイコードをカウントするので、以降は、グレイコードカウンタ10bから正しい値が出力されない。一方で、トグルカウンタ20bは、独立して0、1の値を交互に出力し続けるので、カウント値およびパリティにおいて、1の値が偶数個とならない。このため、パリティチェック回路30は、1の値のエラー検出信号(Err)を出力し続ける。
図16は、トグルカウンタ20aにソフトエラーが生じた場合の、カウンタ回路1aの動作を示す表である。同図を参照すると、トグルカウンタ20bにソフトエラーが生じた場合も、1の値が奇数個となるので、パリティチェック回路30は、1の値のエラー検出信号(Err)を出力する。
なお、本実施形態では、グレイコード変換回路40により2進数の初期値をグレイコードに変換する構成としているが、グレイコードを直接初期値として入力するのであれば、グレイコード変換回路40を設けない構成とすることもできる。
また、本実施形態では、二進変換回路50によりグレイコードのカウンタ出力を二進数に変換する構成としているが、二進変換が必要でないのであれば、二進変換回路50を設けない構成とすることもできる。
以上説明したように、本実施形態によれば、グレイコードカウンタのソフトエラーを小規模な回路で確実に検出することができる。
カウンタ回路1bは、パリティ信号を使用してエラーチェックするので、カウント値について所定数のビットごとに1ビットのソフトエラーを検出できる。
グレイコード変換回路40で2進数をグレイコードに変換し、二進変換回路50でグレイコードを2進数に変換するので、カウンタ回路1bは、二進数を使用する回路で使用できる。
特に、本実施形態のカウンタ回路1bは、小規模なハードウェア構成でエラー検出率を向上させることができる。カウンタ用のレジスタ14を2重化する構成では、同じサイズのレジスタを2つ設けなくてはならず、オーバーヘッドが大きくなるところ、本実施形態のカウンタ回路1bでは、パリティ信号用のレジスタ24は、1ビットを保持できるサイズで足りるので、ハードウェア規模は比較的小さくなる。
(第4の実施形態)
本発明の第4の実施形態について説明する。
図17は、本実施形態のカウンタ回路1cの構成を示す回路図である。同図を参照すると、カウンタ回路1cは、補助ビットを使用するグレイコードカウンタのソフトエラーを検出する点で、第2の実施形態のカウンタ回路1bと異なる。
カウンタ回路1cは、グレイコード変換回路40の代わりにグレイコード変換回路40cを、グレイコードカウンタ10bの代わりにグレイコードカウンタ10cを、パリティチェック回路30の代わりにパリティチェック回路30cを有する以外は、カウンタ回路1bと同様の構成である。
グレイコード変換回路40cは、インバータ404を更に有する以外は、グレイコード変換回路40と同様の構成である。インバータ404は、2進数の初期値の1桁目の値(I0)を反転して、グレイコードカウンタ10cへ出力する。
グレイコードカウンタ10cは、補助ビットを保持するためのDフリップフロップ145およびインバータ101を更に有し、グレイコードインクリメンタ11bの代わりにグレイコードインクリメンタ11cを有する以外は、グレイコードカウンタ10bと同様の構成である。
グレイコードインクリメンタ11cは、XORゲート111、112、および113を有さず、ANDゲート114、115、および116と、XORゲート117、118、および119と、インバータ120のほか、セレクタ135およびXORゲート121を更に有する。
ANDゲート114は、Dフリップフロップ143、144、および145の各出力を反転した値の論理積をXORゲート117に入力する。XORゲート117は、ANDゲート114の出力値と、Dフリップフロップ141の出力値との排他的論理和を、セレクタ131に入力する。
ANDゲート115は、Dフリップフロップ143の出力値と、Dフリップフロップ144および145の各出力を反転した値との論理積をXORゲート118に入力する。XORゲート118は、ANDゲート115の出力値と、Dフリップフロップ142の出力値との排他的論理和を、セレクタ132に入力する。
ANDゲート116は、Dフリップフロップ144の出力値と、Dフリップフロップ145の出力を反転した値との論理積をXORゲート119に入力する。XORゲート119は、ANDゲート116の出力値と、Dフリップフロップ143の出力値との排他的論理和を、セレクタ133に入力する。
XORゲート121は、Dフリップフロップ144および145の出力値の排他的論理和をセレクタ134に入力する。インバータ120は、Dフリップフロップ145の出力値を反転してセレクタ135に入力する。
セレクタ135は、リセット信号がONの場合、インバータ404の出力値を、OFFの場合、インバータ120の出力値をDフリップフロップ145に入力する。
Dフリップフロップ145は、補助ビット(Cx)を保持し、イネーブル信号がアサート時にクロック信号に同期して保持値を更新する。Dフリップフロップ145は、保持値を、インバータ101および120と、ANDゲート114、115、および116と、XORゲート121とに入力する。
インバータ101は、Dフリップフロップ145の出力値(Cx)を反転してパリティチェック回路30cに入力する。
パリティチェック回路30cは、XORゲート301に加えて、XORゲート302およびORゲート303を有する。
XORゲート301は、グレイコード(Cn)とパリティ(Cp)との排他的論理和(Err0)をORゲート303に入力する。XORゲート302は、インバータ101の出力値とDフリップフロップ24の出力値(パリティ信号:Cp)との排他的論理和(Err1)を、ORゲート303に入力する。ORゲート303は、XORゲート301および302の各出力値の排他的論理和をエラー検出信号として出力する。
このように回路を構成することにより、カウンタ回路1cは、カウント値を保持するDフリップフロップ(141、142、143、および144)、パリティを保持するDフリップフロップ(24)のみならず、補助ビットを保持するDフリップフロップ(145)に生じたソフトエラーも監視することができる。
図18は、カウンタ回路1cの動作を示す表である。同図を参照すると、グレイコードカウンタ10cは、グレイコード形式で、カウント動作を行い、4ビットのカウント値(Cn)と補助ビット(Cx)を出力する。一方、トグルカウンタ20bは、グレイコードカウンタ10cに同期して、1と0との値を交互にパリティ信号(Cp)として出力する。
グレイコード(Cn)の各ビット値と、パリティ信号(Cp)の値にソフトエラーが生じない場合、これらの値において、1の値は偶数個なので、パリティチェック回路30は、0の値のエラー検出信号(Err0)を生成する。また、補助ビット(Cx)およびパリティビット(Cp)の値にソフトエラーが生じない場合、これらの値において、1の値は偶数個なので、パリティチェック回路30は、0の値のエラー検出信号(Err1)を生成する。そして、XORゲート301および302の出力値(Err0,Err1)がいずれもエラーを検出した値でない場合、パリティチェック回路30は、0の値のエラー検出信号を出力する。
図19は、グレイコードカウンタ10cにソフトエラーが生じた場合の、カウンタ回路1cの動作を示す表である。グレイコードのいずれかのビットにビットエラーが生じた場合、XORゲート301は、1の値のエラー検出信号Err0を出力する。
例えば、16進数「A」に対応するグレイコード(Cn)の3桁目にビットエラーが生じた場合について考える。この場合、グレイコードは「1011」、パリティ信号の値は「0」となり、1の値が奇数個となるので、XORゲート301は、1の値のエラー検出信号(Err0)を出力する。
図20は、トグルカウンタ20bにソフトエラーが生じた場合の、カウンタ回路1cの動作を示す表である。同図に示すように、トグルカウンタ20bにソフトエラーが生じた場合も、1の値が奇数個となるので、XORゲート301は、1の値のエラー検出信号(Err0)を出力する。また、Cxの反転とCpが異なるので、XORゲート302は1の値のエラー検出信号(Err1)を出力する。
図21は、グレイコードのサブコード(補助ビット:Cx)にビットエラーが生じた場合のカウンタ回路1cの動作を示す表である。同図を参照すると、Dフリップフロップ145にソフトエラーが生じた場合、Cxの反転とCpが異なるので、XORゲート302は、1の値のエラー検出信号(Err1)を出力する。
以上説明したように、本実施形態によれば、カウンタ回路1cは、補助ビットも監視するので、グレイコードカウンタのソフトエラーをより確実に検出できる。
(第5の実施形態)
本発明の第5の実施形態について説明する。
図22は、本実施形態のカウンタ回路の構成を示すブロック図である。同図を参照すると、本実施形態のカウンタ回路は、4ビットカウンタを複数設けて長ビットカウンタを実現した点で、第2の実施形態のカウンタ回路1bと異なる。
本実施形態のカウンタ回路は、カウンタ回路1d、3、5、および7と、ORゲート31とを有する。カウンタ1d、3、5、および7は、それぞれ、4ビットのグレイコードカウンタを有し、全体で16ビットのグレイコードをカウントする回路として動作する。また、各カウンタ回路は、1ビットのエラーを検出するエラー検出信号をORゲート31へ出力する。ORゲート31は、各カウンタ回路からのエラー検出信号の論理和を出力する。
図23は、カウンタ回路1dの構成を示す回路図である。同図を参照すると、カウント回路1cは、ANDゲート60を更に有するほかは、第2の実施形態のカウント回路1bと同様の構成である。
ANDゲート60は、Dフリップフロップ141の出力値と、Dフリップフロップ142、143、および144の出力を反転した値との論理積をカウントアップ信号として出力する。
このように回路を構成することにより、グレイコードが最大値(「1000」)となったとき、カウンタ回路1dはカウントアップ信号を出力し、このカウントアップ信号に応じて、上位の桁のカウンタ回路3がカウント動作を行う。
カウンタ回路3、5、および7の構成は、カウンタ回路1dの構成と同様である。
以上説明したように、本実施形態によれば、4ビットよりも長ビットのカウンタ回路に生じたソフトエラーを簡易な回路で確実に検出することができる。
本発明の第1の実施形態のカウンタ回路の構成を示すブロック図である。 本発明の第1の実施形態のカウンタ回路の動作を示す表である。 本発明の第1の実施形態のカウンタ回路の動作を示す表である。 本発明の第1の実施形態のカウンタ回路の動作を示す表である。 (a)従来のカウンタ回路の動作を示すタイミングチャートである。(b)本発明の第1の実施形態のカウンタ回路を示すタイミングチャートである。 本発明の第2の実施形態のカウンタ回路の構成を示すブロック図である。 本発明の第2の実施形態のカウンタ回路の動作を示す表である。 本発明の第2の実施形態のカウンタ回路の動作を示す表である。 本発明の第2の実施形態のカウンタ回路の動作を示す表である。 本発明の第2の実施形態のカウンタ回路の動作を示す表である。 本発明の第3の実施形態のパリティビット生成回路の構成を示すブロック図である。 本発明の第3の実施形態のカウンタ回路の動作を説明するための図である。 本発明の第3の実施形態のカウンタ回路の構成を示す回路図である。 本発明の第3の実施形態のカウンタ回路の動作を示す表である。 本発明の第3の実施形態のカウンタ回路の動作を示す表である。 本発明の第3の実施形態のカウンタ回路の動作を示す表である。 本発明の第4の実施形態のカウンタ回路の構成を示す回路図である。 本発明の第4の実施形態のカウンタ回路の動作を示す表である。 本発明の第4の実施形態のカウンタ回路の動作を示す表である。 本発明の第4の実施形態のカウンタ回路の動作を示す表である。 本発明の第4の実施形態のカウンタ回路の動作を示す表である。 本発明の第5の実施形態のカウンタ回路の構成を示すブロック図である。 本発明の第5の実施形態のカウンタ回路の構成を示す回路図である。 従来のカウンタ回路の構成を示すブロック図である。
符号の説明
1、1a、1b、1c、1d、3、5、7 カウンタ回路
10 カウンタ
10b、10c グレイコードカウンタ
11、21 インクリメンタ
11b、11c グレイコードインクリメンタ
11a、21a シフタ
13、23 セレクタ
14、24 レジスタ
20 チェック用カウンタ
20b トグルカウンタ
30 パリティチェック回路
40 グレイコード変換回路
50 二進変換回路
15 パリティビット生成回路
111、112、113、117、118、119、121、301、302、401、402、403、501、502、503 XORゲート
101、120、404、21b インバータ
31、303 ORゲート
60、114、115、116 ANDゲート
141、142、143、144、145 Dフリップフロップ

Claims (8)

  1. グレイコードカウンタであり、カウント値を出力する第1のカウンタと、
    前記第1のカウンタと同期した、0と1とを交互に出力するトグルカウンタである第2のカウンタと、
    前記第2のカウンタから出力された値をチェック信号として使用して前記第1のカウンタにより出力された前記カウント値のビットエラーを検出する検出手段と、
    を有するカウンタ回路。
  2. 所定の2進値をグレイコードに変換し、変換した該グレイコードを初期値として前記グレイコードカウンタに入力し、変換した該グレイコードの最下位の値を初期値として前記トグルカウンタに入力する、グレイコード変換回路を更に有する、請求項に記載のカウンタ回路。
  3. 前記グレイコードカウンタにより出力された前記グレイコードを2進値に変換する2進変換回路を更に有する、請求項又はに記載のカウンタ回路。
  4. 前記グレイコードカウンタは、
    入力値を保持し、所定の周期のクロック信号に応じて保持値を更新し、該保持値を出力するカウンタ用レジスタと、
    前記カウンタ用レジスタにより出力された前記保持値をグレイコード形式で所定値だけ増分するグレイコードインクリメンタと、
    所定の制御信号に従って、前記グレイコードインクリメンタにより増分された値、又は前記初期値のいずれか一方を前記入力値として前記カウンタ用レジスタに入力するセレクタと、
    を有する、請求項又はに記載のカウンタ回路。
  5. 前記トグルカウンタは、
    入力値を保持し、前記クロック信号に応じて保持値を更新し、該保持値を出力するパリティ用レジスタと、
    前記パリティ用レジスタにより出力された前記保持値を反転するインバータと、
    前記制御信号に従って、前記インバータにより反転された値、又は前記初期値のいずれか一方を前記入力値として前記パリティ用レジスタに入力するパリティ用セレクタと、
    を有する、請求項に記載のカウンタ回路。
  6. 前記グレイコードインクリメンタは、
    前記クロック信号に同期して交互に値を変える1ビットの補助ビットを保持し、保持値を出力する補助レジスタを更に有し、
    前記検出手段は、前記チェック信号を使用して、前記グレイコードカウンタにより出力された前記カウント値のビットエラーと、前記補助レジスタにより出力された前記保持値のビットエラーとを検出する、請求項又はに記載のカウンタ回路。
  7. 前記カウンタ回路は、複数の桁に対応する複数の前記第1のカウンタを有し、
    それぞれの第1のカウンタは、下位桁に対応する第1のカウンタにより桁上げ信号が出力されたときに数値をカウントし、前記カウント値が最大値であれば、上位桁に対応する第1のカウンタへ桁上げ信号を出力する、請求項1乃至のいずれか1項に記載のカウンタ回路。
  8. 前記検出手段は、複数の前記第1のカウンタにより出力された前記カウント値のいずれかに生じたビットエラーを検出する、請求項に記載のカウンタ回路。
JP2008284409A 2008-11-05 2008-11-05 カウンタ回路、カウンタ回路の制御方法 Expired - Fee Related JP5481836B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008284409A JP5481836B2 (ja) 2008-11-05 2008-11-05 カウンタ回路、カウンタ回路の制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008284409A JP5481836B2 (ja) 2008-11-05 2008-11-05 カウンタ回路、カウンタ回路の制御方法

Publications (2)

Publication Number Publication Date
JP2010114581A JP2010114581A (ja) 2010-05-20
JP5481836B2 true JP5481836B2 (ja) 2014-04-23

Family

ID=42302805

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008284409A Expired - Fee Related JP5481836B2 (ja) 2008-11-05 2008-11-05 カウンタ回路、カウンタ回路の制御方法

Country Status (1)

Country Link
JP (1) JP5481836B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5954077B2 (ja) * 2012-09-25 2016-07-20 株式会社ソシオネクスト カウンタ回路
JP6312575B2 (ja) * 2014-10-27 2018-04-18 三菱電機株式会社 カウント装置
US10063238B1 (en) * 2017-09-18 2018-08-28 Qualcomm Incorporated Apparatus and method for a permutation sequencer
GB2592401B (en) * 2020-02-27 2024-06-05 Cmr Surgical Ltd Watchdog circuitry of a surgical robot arm

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0348720Y2 (ja) * 1984-12-11 1991-10-17
JP2659186B2 (ja) * 1987-03-17 1997-09-30 日本電気株式会社 デイジタル可変分周回路
JPH01286609A (ja) * 1988-05-13 1989-11-17 Nec Ic Microcomput Syst Ltd D型フリップフロップ回路
JP2000013195A (ja) * 1998-06-24 2000-01-14 Nec Corp 低消費電力回路及びこれを含む集積回路
JP2001051062A (ja) * 1999-08-12 2001-02-23 Aloka Co Ltd 放射線測定装置及びノイズ除去方法
JP2001127618A (ja) * 1999-10-26 2001-05-11 Yokogawa Electric Corp クロック信号発生回路
US6675326B1 (en) * 2000-07-11 2004-01-06 Matsushita Electric Industrial Co., Ltd. Method and apparatus for detecting a data receiving error
JP2003283331A (ja) * 2002-03-25 2003-10-03 Oki Electric Ind Co Ltd グレイコード・カウンタ

Also Published As

Publication number Publication date
JP2010114581A (ja) 2010-05-20

Similar Documents

Publication Publication Date Title
US7702992B2 (en) Semiconductor integrated circuit with flip-flops having increased reliability
US8510503B2 (en) Ring buffer circuit and control circuit for ring buffer circuit
US10187082B1 (en) Systems and methods for gray coding based error correction in an asynchronous counter
US5331645A (en) Expandable digital error detection and correction device
US10725841B1 (en) Method and apparatus for error detection and correction
US20130086444A1 (en) Error detection code enhanced self-timed/asynchronous nanoelectronic circuits
JP5481836B2 (ja) カウンタ回路、カウンタ回路の制御方法
JP2010045610A (ja) 半導体集積回路
JP4793741B2 (ja) 誤り訂正回路、誤り訂正方法
JP2016080364A (ja) 半導体装置
JP2010273322A (ja) 多数決回路付きフリップフロップ回路
JP5724408B2 (ja) 半導体装置
US20230384374A1 (en) Method and circuit for performing error detection on a clock gated register signal
US8185572B2 (en) Data correction circuit
US9292378B2 (en) Single event upset protection circuit and method
US9218239B2 (en) Apparatuses and methods for error correction
JP2003316599A (ja) 集積回路
US8005880B2 (en) Half width counting leading zero circuit
GB2617177A (en) Method and circuit for performing error detection on a clock gated register signal
JP6600146B2 (ja) データ処理回路及びエラー訂正方法
JP3895118B2 (ja) シングルイベントアップセット補償回路
US20140372837A1 (en) Semiconductor integrated circuit and method of processing in semiconductor integrated circuit
US7107515B2 (en) Radiation hard divider via single bit correction
Bhattacharryya et al. An efficient class of SEC-DED-AUED codes
US20110013741A1 (en) Counting circuit and address counter using the same

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110905

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130424

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130507

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130626

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131029

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131210

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140121

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140203

R150 Certificate of patent or registration of utility model

Ref document number: 5481836

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees