以下、本明細書で開示するカウンタ回路の好ましい第1実施形態を、図を参照して説明する。但し、本発明の技術範囲はそれらの実施形態に限定されず、特許請求の範囲に記載された発明とその均等物に及ぶものである。
図1は、本明細書に開示するカウンタ回路の第1実施形態を示す図である。
本実施形態のカウンタ回路10は、同一クロックに基づいて、同じデータを入力して保持する一対のデータ保持回路FF1,FF2と、一対のデータ保持回路FF1,FF2それぞれの出力に基づいて論理和を求めるOR回路OR0、OR1・・・ORnとを備える。
また、カウンタ回路10は、OR回路OR0、OR1・・・ORnから入力した論理和に基づいて、インクリメント演算を行って、演算した結果を出力するインクリメント回路11を備える。
カウンタ回路10は、クロック信号に基づいて所定の時間をカウントする際に、電磁ノイズ又は放射線等の影響によりビットデータの反転が生じた場合、カウントする時間が所定の時間よりも短くなることを許容する。しかし、カウンタ回路10は、電磁ノイズ又は放射線等の影響によりビットデータの反転が生じても、誤動作を訂正して、カウントする時間が所定の時間よりも長くなることを許容しない。
カウンタ回路10は、n+1ビットのデータをカウントする。
一対のデータ保持回路FF1,FF2それぞれは、同一クロックに基づいて、n+1個のデータを入力し、入力したn+1個のデータを保持する。
データ保持回路FF1は、n+1個の入力部D0〜Dnと、n+1個の出力部Q10〜Q1nとを有する。データ保持回路FF1の入力部D0に入力したデータは、保持された後、出力部Q10からOR回路OR0の一方の入力に出力される。データ保持回路FF1の入力部D1に入力したデータは、保持された後、出力部Q11からOR回路OR1の一方の入力に出力される。同様にして、データ保持回路FF1の入力部Dnに入力したデータは、保持された後、出力部Q1nからOR回路ORnの一方の入力に出力される。
データ保持回路FF2は、n+1個の入力部D0〜Dnと、n+1個の出力部Q20〜Q2nとを有する。データ保持回路FF2の入力部D0に入力したデータは、保持された後、出力部Q20からOR回路OR0の他方の入力に出力される。データ保持回路FF2の入力部D1に入力したデータは、保持された後、出力部Q21からOR回路OR1の他方の入力に出力される。同様にして、データ保持回路FF2の入力部Dnに入力したデータは、保持された後、出力部Q2nからOR回路ORnの他方の入力に出力される。
データ保持回路FF1,FF2は、例えば、n+1個のフリップフロップ回路を用いて形成され得る。
OR回路OR0は、データ保持回路FF1の出力部Q10から入力したデータとデータ保持回路FF2の出力部Q20から入力したデータとの論理和を求め、求めた論理和をインクリメント回路11に出力する。OR回路OR1は、データ保持回路FF1の出力部Q11から入力したデータとデータ保持回路FF2の出力部Q21から入力したデータとの論理和を求め、求めた論理和をインクリメント回路11に出力する。同様にして、OR回路ORnは、データ保持回路FF1の出力部Q1nから入力したデータとデータ保持回路FF2の出力部Q2nから入力したデータとの論理和を求めて、求めた論理和をインクリメント回路11に出力する。
このようにして、インクリメント回路11には、一対のデータ保持回路FF1,FF2の出力に基づいて求められたn+1個の論理和が入力される。
インクリメント回路11は、n+1個の論理和を入力して、インクリメント演算を行う。具体的には、インクリメント回路11は、n+1個のビットを有するデータを入力し、入力したデータに1を加算して、加算結果のn+1個のビットを有するデータを出力する。
図2は、4ビットをカウントするカウンタ回路10を実現する回路例を示す。上述した一対のデータ保持回路FF1,FF2それぞれは、並列に配置された4つのフリップフロップ回路を有する。4ビットのインクリメント回路11としては、図2に示すの回路を用いることができる。また、図2に示す例では、インクリメント回路11は、演算した結果であるn+1個のビットからなるデータを一対のデータ保持回路FF1,FF2それぞれに出力している。図2には、4ビットのインクリメント回路11の論理テーブルも示されている。
また、カウンタ回路10は、一対のデータ保持回路FF1,FF2それぞれに初期値を設定する初期値設定回路12を備える。初期値設定回路12は、カウンタ回路10が所定の時間をカウントする際の初期値を一対のデータ保持回路FF1,FF2それぞれに設定する。
n+1ビットの初期値が、図示しない制御回路から、初期値設定回路12に入力される。初期値設定回路12は、入力したn+1ビットの初期値を、一対のデータ保持回路FF1,FF2それぞれに出力する。
また、初期値設定回路12には、上述したインクリメント回路11から、n+1個のビットのデータが入力される。初期値設定回路12は、入力したn+1ビットのデータを、一対のデータ保持回路FF1,FF2それぞれに出力する。
初期値設定回路12には、図示しない制御回路から、選択信号Sが入力されており、初期値設定回路12は、この選択信号Sに基づいて、一対のデータ保持回路FF1,FF2それぞれに出力するデータを選択する。
一対のデータ保持回路FF1,FF2それぞれに初期値を設定する際には、初期値設定回路12には、図示しない制御回路から、n+1ビットの初期値を出力する選択信号Sが入力される。
一方、所定の時間をカウントしている際には、初期値設定回路12には、図示しない制御回路から、上述したインクリメント回路11から入力したn+1個のビットデータを出力する選択信号Sが入力される。
カウンタ回路10は、初期値として、n+1個の0(ゼロ)のデータが設定された場合には、一対のデータ保持回路FF1,FF2それぞれが保持するn+1個のビットデータが1になるまでの時間をカウントする。一方、カウンタ回路10は、初期値として、n+1個の0(ゼロ)以外のデータが設定された場合には、設定された値から、一対のデータ保持回路FF1,FF2それぞれが保持するビットデータが1になるまでの時間をカウントする。
このように、カウンタ回路10は、初期値設定回路12を備えることにより、ユーザが所望するカウント時間に応じて、カウントする時間を変更することができる。
次に、上述したカウンタ回路10の動作を、図面を参照して、以下に説明する。
図3(A)は、一対のデータ保持回路FF1,FF2において、誤動作が生じない場合の動作例を示す。
図3(A)は、クロックと、一対のデータ保持回路FF1,FF2それぞれの出力データと、インクリメント回路11の入力状態及び出力状態とを示す。
ここで、インクリメント回路11の入力状態及び出力状態は、入力状態kに対して、入力したデータがインクリメントされた出力データを出力する状態が出力状態k+1であることを意味する。例えば、図2に示す4ビットのインクリメント回路の論理テーブルでは、入力した数値が0(入力状態0)の場合には、数値1(出力状態1)が出力される。また、入力した数値が1(入力状態1)の場合には、数値2(出力状態2)が出力される。
図3(B)は、一対のデータ保持回路FF1,FF2において、誤動作が生じた場合の動作例を示す。
図3(B)では、鎖線の囲みで示すように、データ保持回路FF1の出力部Q11が出力するビットデータが1から0へ反転する誤動作が生じている。
一方、データ保持回路FF1の出力部Q11に対応するデータ保持回路FF2の出力部Q21が出力するビットデータは、1のままである。
従って、OR回路OR1は、出力部Q11が出力するビットデータが1から0へ反転しても、出力部Q21が出力するビットデータに基づいて、論理和として1を出力し続ける。
その結果、カウンタ回路10は、データ保持回路FF1の誤動作を訂正して、正常にカウントすることができる。
図3(C)は、一対のデータ保持回路FF1,FF2において、誤動作が生じた場合の他の動作例を示す。
図3(C)では、鎖線の囲みで示すように、データ保持回路FF1の出力部Q11が出力するビットデータが0から1へ反転する誤動作が生じている。
一方、データ保持回路FF1の出力部Q11に対応するデータ保持回路FF2の出力部Q21が出力するビットデータは0のままである。
従って、OR回路OR1が出力する論理和は、出力部Q11が出力するビットデータが1から0へ反転すると、0から1へ変化する。
その結果、インクリメント回路11は、入力状態がkからk+2に変化するのに伴って、出力状態がk+1からk+3に変化する。そのため、インクリメント回路11の出力状態は、データ保持回路FF1の誤動作によって、本来の出力状態k+1からk+3へとカウントが2つ進んだ状態へ変化することになる。
図2に示すインクリメント回路11の論理テーブルの具体例で説明すると、入力が数値1の時に、Di1はL状態にあり、出力は2である。ここで、Di1がH状態に反転すると、入力は数値3に変化して、出力は4に変化する。即ち、出力状態は、カウントが2つ進んだ状態へ変化する。
そして、カウンタ回路10は、カウントが2つ進んだ状態からカウントを続ける。
従って、カウンタ回路10は、図3(C)に示すような誤動作が生じた場合には、カウントする時間が、本来カウントするべき所定の時間よりも短くなることになる。
しかし、カウンタ回路10は、図3(B)に示すような誤動作が生じても、誤動作を訂正して本来カウントするべき所定の時間をカウントできるので、カウントする時間が所定の時間よりも長くなることはない。
上述した本実施形態のカウンタ回路10によれば、電磁ノイズ又は放射線等の影響によりビットデータの反転が生じた場合、カウントする時間が所定の時間よりも短くなることを許容する。しかし、カウンタ回路10は、電磁ノイズ又は放射線等の影響によりビットデータの反転が生じても、誤動作を訂正して、カウントする時間が所定の時間よりも長くなることを許容しない。
また、カウンタ回路10は、ECC回路又は複数のカウンタ回路又はノイズ等から保護する保護装置を有しておらず、簡単な構成でカウンタ回路の誤動作の訂正を行うことができる。
次に、上述したカウンタ回路の他の実施形態を、図4〜図11を参照しながら以下に説明する。他の実施形態について特に説明しない点については、上述の第1実施形態に関して詳述した説明が適宜適用される。また、同一の構成要素には同一の符号を付してある。
図4は、本明細書に開示するカウンタ回路の第2実施形態を示す図である。
本実施形態のカウンタ回路10は、同一クロックに基づいて、同じデータを入力して保持する一対のデータ保持回路FF1,FF2と、一対のデータ保持回路FF1,FF2それぞれの出力に基づいて論理積を求めるAND回路AND0、AND1・・・ANDnとを備える。
また、カウンタ回路10は、AND回路AND0、AND1・・・ANDnから入力した論理積に基づいて、デクリメント演算を行って、演算した結果を、初期値設定回路12を介して、一対のデータ保持回路FF1,FF2それぞれに出力するデクリメント回路13を備える。
AND回路AND0は、データ保持回路FF1の出力部Q10から入力したデータとデータ保持回路FF2の出力部Q20から入力したデータとの論理積を求め、求めた論理積をデクリメント回路13に出力する。AND回路AND1は、データ保持回路FF1の出力部Q11から入力したデータとデータ保持回路FF2の出力部Q21から入力したデータとの論理積を求め、求めた論理積をデクリメント回路13に出力する。同様にして、AND回路ANDnは、データ保持回路FF1の出力部Q1nから入力したデータとデータ保持回路FF2の出力部Q2nから入力したデータとの論理積を求めて、求めた論理積をデクリメント回路13に出力する。
このようにして、デクリメント回路13には、一対のデータ保持回路FF1,FF2の出力に基づいて求められたn+1個の論理積が入力される。
デクリメント回路13は、n+1個の論理積を入力して、デクリメント演算を行う。具体的には、デクリメント回路13は、n+1個のビットを有するデータを入力し、入力したデータから1を減算して、減算結果のn+1個のビットを有するデータを初期値設定回路12に出力する。
カウンタ回路10の他の構成は、上述した第1実施形態と同様である。
カウンタ回路10は、初期値として、n+1個の1のデータが設定された場合には、一対のデータ保持回路FF1,FF2それぞれが保持するn+1個のビットデータが0になるまでの時間をカウントする。一方、カウンタ回路10は、初期値として、上述したn+1個の初期値以外の値が設定された場合には、設定された値から、一対のデータ保持回路FF1,FF2それぞれが保持するビットデータが0になるまでの時間をカウントする。
上述した本実施形態のカウンタ回路10によれば、電磁ノイズ又は放射線等の影響によりビットデータの反転が生じた場合、カウントする時間が所定の時間よりも短くなることを許容する。しかし、カウンタ回路10は、電磁ノイズ又は放射線等の影響によりビットデータの反転が生じても、誤動作を訂正して、カウントする時間が所定の時間よりも長くなることを許容しない。
また、カウンタ回路10は、ECC回路又は複数のカウンタ回路又はノイズ等から保護する保護装置を有しておらず、簡単な構成でカウンタ回路の誤動作の訂正を行うことができる。
図5は、本明細書に開示するカウンタ回路の第3実施形態を示す図である。
本実施形態のカウンタ回路10は、一対のデータ保持回路FF1,FF2の内の第1のデータ保持回路FF1の出力に基づいて、インクリメント演算を行って、演算した結果をOR回路OR0、OR1・・・ORnに出力する第1インクリメント回路11aを備える。
また、カウンタ回路10は、一対のデータ保持回路FF1,FF2の内の第2のデータ保持回路FF2の出力に基づいて、インクリメント演算を行って、演算した結果をOR回路OR0、OR1・・・ORnに出力する第2インクリメント回路11bを備える。
OR回路OR0、OR1・・・ORnは、第1インクリメント回路11a及び第2インクリメント回路11bそれぞれから入力した演算した結果に基づいて論理和を求め、初期値設定回路12を介して、求めた論理和を一対のデータ保持回路FF1,FF2それぞれに出力する。
カウンタ回路10の他の構成は、上述した第1実施形態と同様である。
カウンタ回路10は、初期値として、n+1個の0(ゼロ)のデータが設定された場合には、一対のデータ保持回路FF1,FF2それぞれが保持するn+1個のビットデータが1になるまでの時間をカウントする。一方、カウンタ回路10は、初期値として、n+1個の0(ゼロ)以外のデータが設定された場合には、設定された値から、一対のデータ保持回路FF1,FF2それぞれが保持するビットデータが1になるまでの時間をカウントする。
上述した本実施形態のカウンタ回路10によれば、電磁ノイズ又は放射線等の影響によりビットデータの反転が生じた場合、カウントする時間が所定の時間よりも短くなることを許容する。しかし、カウンタ回路10は、電磁ノイズ又は放射線等の影響によりビットデータの反転が生じても、誤動作を訂正して、カウントする時間が所定の時間よりも長くなることを許容しない。
また、カウンタ回路10は、ECC回路又は複数のカウンタ回路又はノイズ等から保護する保護装置を有しておらず、簡単な構成でカウンタ回路の誤動作の訂正を行うことができる。
図6は、本明細書に開示するカウンタ回路の第4実施形態を示す図である。
本実施形態のカウンタ回路10は、一対のデータ保持回路FF1,FF2の内の第1のデータ保持回路FF1の出力に基づいて、デクリメント演算を行って、演算した結果をAND回路AND0、AND1・・・ANDnに出力する第1デクリメント回路13aを備える。
また、カウンタ回路10は、一対のデータ保持回路FF1,FF2の内の第2のデータ保持回路FF2の出力に基づいて、デクリメント演算を行って、演算した結果をAND回路AND0、AND1・・・ANDnに出力する第2デクリメント回路13bを備える。
AND回路AND0、AND1・・・ANDnは、第1デクリメント回路13a及び第2デクリメント回路13bそれぞれから入力した演算した結果に基づいて論理積を求め、初期値設定回路12を介して、求めた論理積を一対のデータ保持回路FF1,FF2それぞれに出力する。
カウンタ回路10の他の構成は、上述した第1実施形態と同様である。
カウンタ回路10は、初期値として、n+1個の1のデータが設定された場合には、一対のデータ保持回路FF1,FF2それぞれが保持するn+1個のビットデータが0になるまでの時間をカウントする。一方、カウンタ回路10は、初期値として、上述したn+1個の初期値以外の値が設定された場合には、設定された値から、一対のデータ保持回路FF1,FF2それぞれが保持するビットデータが0になるまでの時間をカウントする。
上述した本実施形態のカウンタ回路10によれば、電磁ノイズ又は放射線等の影響によりビットデータの反転が生じた場合、カウントする時間が所定の時間よりも短くなることを許容する。しかし、カウンタ回路10は、電磁ノイズ又は放射線等の影響によりビットデータの反転が生じても、誤動作を訂正して、カウントする時間が所定の時間よりも長くなることを許容しない。
また、カウンタ回路10は、ECC回路又は複数のカウンタ回路又はノイズ等から保護する保護装置を有しておらず、簡単な構成でカウンタ回路の誤動作の訂正を行うことができる。
図7は、本明細書に開示するカウンタ回路の第5実施形態を示す図である。
本実施形態のカウンタ回路10は、上述した第1〜4実施形態のカウンタ回路とは異なって、電磁ノイズ又は放射線等の影響によりビットデータの反転が生じた場合、カウントする時間が所定の時間よりも長くなることは許容する。しかし、カウンタ回路10は、電磁ノイズ又は放射線等の影響によりビットデータの反転が生じても、誤動作を訂正して、カウントする時間が所定の時間よりも短くなることを許容しない。この点は、後述する第6〜8実施形態のカウンタ回路も同様である。
カウンタ回路10は、同一クロックに基づいて、同じデータを入力して保持する一対のデータ保持回路FF1,FF2と、一対のデータ保持回路FF1,FF2それぞれの出力に基づいて論理積を求めるAND回路AND0、AND1・・・ANDnとを備える。
また、カウンタ回路10は、AND回路AND0、AND1・・・ANDnから入力した論理積に基づいて、インクリメント演算を行って、演算した結果を、初期値設定回路12を介して、一対のデータ保持回路FF1,FF2それぞれに出力するインクリメント回路11を備える。
AND回路AND0は、データ保持回路FF1の出力部Q10から入力したデータとデータ保持回路FF2の出力部Q20から入力したデータとの論理積を求め、求めた論理積をインクリメント回路11に出力する。AND回路AND1は、データ保持回路FF1の出力部Q11から入力したデータとデータ保持回路FF2の出力部Q21から入力したデータとの論理積を求め、求めた論理積をインクリメント回路11に出力する。同様にして、AND回路ANDnは、データ保持回路FF1の出力部Q1nから入力したデータとデータ保持回路FF2の出力部Q2nから入力したデータとの論理積を求めて、求めた論理積をインクリメント回路11に出力する。
このようにして、インクリメント回路11には、一対のデータ保持回路FF1,FF2の出力に基づいて求められたn+1個の論理積が入力される。
インクリメント回路11は、n+1個の論理積を入力して、インクリメント演算を行う。具体的には、インクリメント回路11は、n+1個のビットを有するデータを入力し、入力したデータに1を加算して、加算結果のn+1個のビットを有するデータを初期値設定回路12に出力する。
カウンタ回路10の他の構成は、上述した第1実施形態と同様である。
カウンタ回路10は、初期値として、n+1個の0(ゼロ)のデータが設定された場合には、一対のデータ保持回路FF1,FF2それぞれが保持するn+1個のビットデータが1になるまでの時間をカウントする。一方、カウンタ回路10は、初期値として、n+1個の0(ゼロ)以外のデータが設定された場合には、設定された値から、一対のデータ保持回路FF1,FF2それぞれが保持するビットデータが1になるまでの時間をカウントする。
次に、上述したカウンタ回路10の動作を、図面を参照して、以下に説明する。
図8(A)は、一対のデータ保持回路FF1,FF2において、誤動作が生じた場合の動作例を示す。
図8(A)では、鎖線の囲みで示すように、データ保持回路FF1の出力部Q11が出力するビットデータが0から1へ反転する誤動作が生じている。
一方、データ保持回路FF1の出力部Q11に対応するデータ保持回路FF2の出力部Q21が出力するビットデータは、0のままである。
従って、AND回路AND1は、出力部Q11が出力するビットデータが0から1へ反転しても、出力部Q21が出力するビットデータに基づいて、論理積として0を出力し続ける。
その結果、カウンタ回路10は、データ保持回路FF1の誤動作を訂正して、正常にカウントすることができる。
図8(B)は、一対のデータ保持回路FF1,FF2において、誤動作が生じた場合の他の動作例を示す。
図8(B)では、鎖線の囲みで示すように、データ保持回路FF1の出力部Q11が出力するビットデータが1から0へ反転する誤動作が生じている。
一方、データ保持回路FF1の出力部Q11に対応するデータ保持回路FF2の出力部Q21が出力するビットデータは1のままである。
従って、AND回路AND1が出力する論理積は、出力部Q11が出力するビットデータが1から0へ反転すると、0から1へ変化する。
その結果、インクリメント回路11は、入力状態がkからk-2に変化するのに伴って、出力状態がk+1からk-1に変化する。そのため、インクリメント回路11の出力状態は、データ保持回路FF1の誤動作によって、本来の出力状態k+1からk-1へとカウントが2つ戻った状態へ変化することになる。
図2に示すインクリメント回路11の論理テーブルの具体例で説明すると、入力が数値2の時に、Di1はH状態にあり、出力は3である。ここで、Di1がL状態に反転すると、入力は数値0に変化して、出力は1に変化する。即ち、出力状態は、カウントが2つ戻った状態へ変化する。
そして、カウンタ回路10は、カウントが2つ戻った状態からカウントを続ける。
従って、カウンタ回路10は、図8(B)に示すような誤動作が生じた場合には、カウントする時間が、本来カウントするべき所定の時間よりも長くなることになる。
しかし、カウンタ回路10は、図8(A)に示すような誤動作が生じても、誤動作を訂正して本来カウントするべき所定の時間をカウントできるので、カウントする時間が所定の時間よりも短くなることはない。
上述した本実施形態のカウンタ回路10によれば、電磁ノイズ又は放射線等の影響によりビットデータの反転が生じた場合、カウントする時間が所定の時間よりも長くなることは許容する。しかし、カウンタ回路10は、電磁ノイズ又は放射線等の影響によりビットデータの反転が生じても、誤動作を訂正して、カウントする時間が所定の時間よりも短くなることを許容しない。
また、カウンタ回路10は、ECC回路又は複数のカウンタ回路又はノイズ等から保護する保護装置を有しておらず、簡単な構成でカウンタ回路の誤動作の訂正を行うことができる。
図9は、本明細書に開示するカウンタ回路の第6実施形態を示す図である。
本実施形態のカウンタ回路10は、同一クロックに基づいて、同じデータを入力して保持する一対のデータ保持回路FF1,FF2と、一対のデータ保持回路FF1,FF2それぞれの出力に基づいて論理和を求めるOR回路OR0、OR1・・・ORnとを備える。
また、カウンタ回路10は、OR回路OR0、OR1・・・ORnから入力した論理和に基づいて、デクリメント演算を行って、初期値設定回路12を介して、演算した結果を一対のデータ保持回路FF1,FF2それぞれに出力するデクリメント回路13を備える。
OR回路OR0は、データ保持回路FF1の出力部Q10から入力したデータとデータ保持回路FF2の出力部Q20から入力したデータとの論理和を求め、求めた論理和をデクリメント回路13に出力する。OR回路OR1は、データ保持回路FF1の出力部Q11から入力したデータとデータ保持回路FF2の出力部Q21から入力したデータとの論理和を求め、求めた論理和をデクリメント回路13に出力する。同様にして、OR回路ORnは、データ保持回路FF1の出力部Q1nから入力したデータとデータ保持回路FF2の出力部Q2nから入力したデータとの論理和を求めて、求めた論理和をデクリメント回路13に出力する。
このようにして、デクリメント回路13には、一対のデータ保持回路FF1,FF2の出力に基づいて求められたn+1個の論理和が入力される。
デクリメント回路13は、n+1個の論理和を入力して、デクリメント演算を行う。具体的には、デクリメント回路13は、n+1個のビットを有するデータを入力し、入力したデータから1を減算して、減算結果のn+1個のビットを有するデータを初期値設定回路12に出力する。
カウンタ回路10の他の構成は、上述した第1実施形態と同様である。
カウンタ回路10は、初期値として、n+1個の1のデータが設定された場合には、一対のデータ保持回路FF1,FF2それぞれが保持するn+1個のビットデータが0になるまでの時間をカウントする。一方、カウンタ回路10は、初期値として、上述したn+1個の初期値以外の値が設定された場合には、設定された値から、一対のデータ保持回路FF1,FF2それぞれが保持するビットデータが0になるまでの時間をカウントする。
上述した本実施形態のカウンタ回路10によれば、電磁ノイズ又は放射線等の影響によりビットデータの反転が生じた場合、カウントする時間が所定の時間よりも長くなることは許容する。しかし、カウンタ回路10は、電磁ノイズ又は放射線等の影響によりビットデータの反転が生じても、誤動作を訂正して、カウントする時間が所定の時間よりも短くなることを許容しない。
また、カウンタ回路10は、ECC回路又は複数のカウンタ回路又はノイズ等から保護する保護装置を有しておらず、簡単な構成でカウンタ回路の誤動作の訂正を行うことができる。
図10は、本明細書に開示するカウンタ回路の第7実施形態を示す図である。
本実施形態のカウンタ回路10は、一対のデータ保持回路FF1,FF2の内の第1のデータ保持回路FF1の出力に基づいて、インクリメント演算を行って、演算した結果をAND回路AND0、AND1・・・ANDnに出力する第1インクリメント回路11aを備える。
また、カウンタ回路10は、一対のデータ保持回路FF1,FF2の内の第2のデータ保持回路FF2の出力に基づいて、インクリメント演算を行って、演算した結果をAND回路AND0、AND1・・・ANDnに出力する第2インクリメント回路11bを備える。
AND回路AND0、AND1・・・ANDnは、第1インクリメント回路11a及び第2インクリメント回路11bそれぞれから入力した演算した結果に基づいて論理積を求め、初期値設定回路12を介して、求めた論理積を一対のデータ保持回路FF1,FF2それぞれに出力する。
カウンタ回路10の他の構成は、上述した第1実施形態と同様である。
カウンタ回路10は、初期値として、n+1個の0(ゼロ)のデータが設定された場合には、一対のデータ保持回路FF1,FF2それぞれが保持するn+1個のビットデータが1になるまでの時間をカウントする。一方、カウンタ回路10は、初期値として、n+1個の0(ゼロ)以外のデータが設定された場合には、設定された値から、一対のデータ保持回路FF1,FF2それぞれが保持するビットデータが1になるまでの時間をカウントする。
上述した本実施形態のカウンタ回路10によれば、電磁ノイズ又は放射線等の影響によりビットデータの反転が生じた場合、カウントする時間が所定の時間よりも長くなることは許容する。しかし、カウンタ回路10は、電磁ノイズ又は放射線等の影響によりビットデータの反転が生じても、誤動作を訂正して、カウントする時間が所定の時間よりも短くなることを許容しない。
また、カウンタ回路10は、ECC回路又は複数のカウンタ回路又はノイズ等から保護する保護装置を有しておらず、簡単な構成でカウンタ回路の誤動作の訂正を行うことができる。
図11は、本明細書に開示するカウンタ回路の第8実施形態を示す図である。
本実施形態のカウンタ回路10は、一対のデータ保持回路FF1,FF2の内の第1のデータ保持回路FF1の出力に基づいて、デクリメント演算を行って、演算した結果をOR回路OR0、OR1・・・ORnに出力する第1デクリメント回路13aを備える。
また、カウンタ回路10は、一対のデータ保持回路FF1,FF2の内の第2のデータ保持回路FF2の出力に基づいて、デクリメント演算を行って、演算した結果をOR回路OR0、OR1・・・ORnに出力する第2デクリメント回路13bを備える。
OR回路OR0、OR1・・・ORnは、第1デクリメント回路13a及び第2デクリメント回路13bそれぞれから入力した演算した結果に基づいて論理和を求め、初期値設定回路12を介して、求めた論理和を一対のデータ保持回路FF1,FF2それぞれに出力する。
カウンタ回路10の他の構成は、上述した第1実施形態と同様である。
カウンタ回路10は、初期値として、n+1個の1のデータが設定された場合には、一対のデータ保持回路FF1,FF2それぞれが保持するn+1個のビットデータが0になるまでの時間をカウントする。一方、カウンタ回路10は、初期値として、上述したn+1個の初期値以外の値が設定された場合には、設定された値から、一対のデータ保持回路FF1,FF2それぞれが保持するビットデータが0になるまでの時間をカウントする。
上述した本実施形態のカウンタ回路10によれば、電磁ノイズ又は放射線等の影響によりビットデータの反転が生じた場合、カウントする時間が所定の時間よりも長くなることは許容する。しかし、カウンタ回路10は、電磁ノイズ又は放射線等の影響によりビットデータの反転が生じても、誤動作を訂正して、カウントする時間が所定の時間よりも短くなることを許容しない。
また、カウンタ回路10は、ECC回路又は複数のカウンタ回路又はノイズ等から保護する保護装置を有しておらず、簡単な構成でカウンタ回路の誤動作の訂正を行うことができる。
次に、上述した本明細書に開示するカウンタ回路を備えた電子装置の例を、図面を参照して以下に説明する。
図12は、本明細書に開示するカウンタ回路を備えたマイコンの一実施形態を示す図である。
マイコン20は、外部メモリ30に記憶されたデータを読み取って処理を行う。
マイコン20は、外部メモリ30への読み取り動作を制御するアクセスコントローラ21と、アクセスコントローラ21の処理時間を計測するタイマ22と、外部メモリ30から読み取ったデータを記憶するデータメモリ23とを備える。
アクセスコントローラ21は、外部メモリ30のアドレスデータを出力すると共に、指定したアドレスに記憶されたデータを読み取る信号であるリードストロボを外部メモリ30に出力する。また、アクセスコントローラ21は、アドレスデータ及びリードストロボを出力するのと共に、トリガ信号をタイマ22に出力する。
タイマ22は、アクセスコントローラ21からトリガ信号を入力すると、所定の時間を計測した後、タイムアウト信号を、アクセスコントローラ21及びデータメモリ23に出力する。
アクセスコントローラ21は、タイムアウト信号を入力すると、アドレスデータ及びリードストロボの出力を停止する。また、データメモリ23は、タイムアウト信号を入力すると、読み取りデータの記憶を停止する。
マイコン20のタイマ22は、上述した第5〜8実施形態の内の何れかのカウンタ回路を有している。従って、タイマ22は、電磁ノイズ又は放射線等の影響によりビットデータの反転が生じた場合、カウントする時間が所定の時間よりも長くなることは許容する。しかし、タイマ22は、電磁ノイズ又は放射線等の影響によりビットデータの反転が生じても、誤動作を訂正して、カウントする時間が所定の時間よりも短くなることを許容しない。
次に、上述したマイコン20の動作を、図面を参照して、以下に説明する。
図13(A)は、タイマ22において誤動作が生じない場合の動作例を示す。
アクセスコントローラ21は、アドレスデータ及びリードストロボを出力するのと共に、トリガ信号をタイマ22に出力する。
タイマ22は、アクセスコントローラ21からトリガ信号を入力すると、所定の時間を計測した後、タイムアウト信号を、アクセスコントローラ21及びデータメモリ23に出力する。
外部メモリ30から所定のデータDが読み取られて、読み取りデータDがデータメモリ23に記憶される。トリガ信号とタイムアウト信号との間である所定の時間は、通常、外部メモリ30からデータを読み出すのに要する時間が確保されるように設定される。
図13(B)は、タイマ22において、誤動作が生じた場合の動作例を示す。
アクセスコントローラ21は、アドレスデータ及びリードストロボを出力するのと共に、トリガ信号をタイマ22に出力する。
タイマ22は、アクセスコントローラ21からトリガ信号を入力すると、所定の時間の計測を開始する。ここで、タイマ22のカウンタ回路に誤動作が生じて、カウントする時間が本来カウントするべき所定の時間よりも長くなっている。そして、タイマ22は、タイムアウト信号を、アクセスコントローラ21及びデータメモリ23に出力する。
トリガ信号とタイムアウト信号との間の時間が、本来カウントするべき所定の時間よりも長くなっても、外部メモリ30からデータDを読み出すのに要する時間が確保されるので、外部メモリ30から正常にデータDを読み出すことができる。
図13(C)は、本明細書に開示するカウンタ回路を有していないタイマ22において、誤動作が生じた場合の動作例を示す。
アクセスコントローラ21は、アドレスデータ及びリードストロボを出力するのと共に、トリガ信号をタイマ22に出力する。
タイマ22は、アクセスコントローラ21からトリガ信号を入力すると、所定の時間の計測を開始する。ここで、タイマ22のカウンタ回路に誤動作が生じて、カウントする時間が本来カウントするべき所定の時間よりも短くなったとする。そして、タイマ22は、タイムアウト信号を、アクセスコントローラ21及びデータメモリ23に出力する。
トリガ信号とタイムアウト信号との間の時間が、本来カウントするべき所定の時間よりも短いので、外部メモリ30からデータを読み出すのに要する時間が確保されないため、外部メモリ30から正常にデータを読み出すことができない。
マイコン20によれば、本明細書に開示するカウンタ回路を有しており、カウントする時間が所定の時間よりも長くなることは許容するが、誤動作を訂正して、カウントする時間が所定の時間よりも短くなることを許容しない。そのため、図13(C)に示すような、外部メモリからのデータの読み取りエラーを防止できる。
本発明では、上述した実施形態のカウンタ回路は、本発明の趣旨を逸脱しない限り適宜変更が可能である。また、一の実施形態が有する構成要件は、他の実施形態にも適宜適用することができる。
例えば、上述した各実施形態のカウンタ回路では、一対のデータ保持回路FF1,FF2それぞれは、n+1ビットのデータを保持していたが、一対のデータ保持回路FF1,FF2それぞれは、少なくとも1ビットのデータを保持するものであれば良い。
また、上述した各実施形態のカウンタ回路は、初期値設定回路を有していたが、カウンタ回路は、図14に示すように、初期値設定回路を有しなくても良い。図14の例のカウンタ回路10では、一対のデータ保持回路FF1,FF2において、固定された初期値から全てのビットが1となるまでの時間がカウントされる。
ここで述べられた全ての例及び条件付きの言葉は、読者が、発明者によって寄与された発明及び概念を技術を深めて理解することを助けるための教育的な目的を意図する。ここで述べられた全ての例及び条件付きの言葉は、そのような具体的に述べられた例及び条件に限定されることなく解釈されるべきである。また、明細書のそのような例示の機構は、本発明の優越性及び劣等性を示すこととは関係しない。本発明の実施形態は詳細に説明されているが、その様々な変更、置き換え又は修正が本発明の精神及び範囲を逸脱しない限り行われ得ることが理解されるべきである。