IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ローム株式会社の特許一覧

特開2024-116820パリティビット生成回路及びバイナリカウンタ
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024116820
(43)【公開日】2024-08-28
(54)【発明の名称】パリティビット生成回路及びバイナリカウンタ
(51)【国際特許分類】
   G06F 11/10 20060101AFI20240821BHJP
   H03K 21/40 20060101ALI20240821BHJP
【FI】
G06F11/10 632
H03K21/40 510
【審査請求】未請求
【請求項の数】9
【出願形態】OL
(21)【出願番号】P 2023022630
(22)【出願日】2023-02-16
(71)【出願人】
【識別番号】000116024
【氏名又は名称】ローム株式会社
(74)【代理人】
【識別番号】110001933
【氏名又は名称】弁理士法人 佐野特許事務所
(72)【発明者】
【氏名】井置 一哉
(57)【要約】
【課題】小さなサイズでパリティビット生成回路を構成する。
【解決手段】カウントアップ処理又はカウントダウン処理によりカウント値(CV)を更新するバイナリカウンタ(1)のパリティビットを生成するパリティビット生成回路(6)であって、パリティビットの値(PRT)は、カウント値の全ビットの内、1の値を有するビットの総数の偶奇性を表し、カウント値の更新前におけるパリティビットの値と、カウント値の更新前におけるカウント値の各ビットの値と、に基づき、カウント値の更新後におけるパリティビットの値を決定する。
【選択図】図1
【特許請求の範囲】
【請求項1】
カウントアップ処理又はカウントダウン処理によりカウント値を更新するバイナリカウンタのパリティビットを生成するパリティビット生成回路であって、前記パリティビットの値は、前記カウント値の全ビットの内、1の値を有するビットの総数の偶奇性を表し、
前記カウント値の更新前における前記パリティビットの値と、
前記カウント値の更新前における前記カウント値の各ビットの値と、に基づき、
前記カウント値の更新後における前記パリティビットの値を決定する
、パリティビット生成回路。
【請求項2】
更新前における前記カウント値が所定の第1数値パターンに該当するかの判定及び更新前における前記カウント値が所定の第2数値パターンに該当するかの判定の内、少なくとも一方を行うよう構成された判定回路と、
前記カウント値の更新前における前記パリティビットの値と、前記判定回路の判定結果と、に基づき、前記カウント値の更新後における前記パリティビットの値を決定するよう構成された決定回路と、を備える
、請求項1に記載のパリティビット生成回路。
【請求項3】
更新前における前記カウント値が前記第1数値パターンに該当する場合において前記カウント値が更新されるとき前記偶奇性が変化し、更新前における前記カウント値が前記第2数値パターンに該当する場合において前記カウント値が更新されるとき前記偶奇性は不変である
、請求項2に記載のパリティビット生成回路。
【請求項4】
前記パリティビットは第1の値又は第2の値を有し、
前記第1の値を有する前記パリティビットは、前記カウント値の全ビットの内、1の値を有するビットの総数が偶数であることを表し、前記第2の値を有する前記パリティビットは、前記カウント値の全ビットの内、1の値を有するビットの総数が奇数であることを表し、
前記カウント値の更新前における前記パリティビットが前記第1の値を有し且つ更新前における前記カウント値が前記第1数値パターンに該当する場合において、前記カウント値の更新が行われるとき、前記決定回路は、前記カウント値の更新に伴って前記パリティビットの値を前記第1の値から前記第2の値に変更し、
前記カウント値の更新前における前記パリティビットが前記第2の値を有し且つ更新前における前記カウント値が前記第1数値パターンに該当する場合において、前記カウント値の更新が行われるとき、前記決定回路は、前記カウント値の更新に伴って前記パリティビットの値を前記第2の値から前記第1の値に変更し、
前記カウント値の更新前における前記パリティビットが前記第1の値を有し且つ更新前における前記カウント値が前記第2数値パターンに該当する場合において、前記カウント値の更新が行われるとき、前記決定回路は、前記カウント値の更新前後において前記パリティビットの値を前記第1の値にて維持し、
前記カウント値の更新前における前記パリティビットが前記第2の値を有し且つ更新前における前記カウント値が前記第2数値パターンに該当する場合において、前記カウント値の更新が行われるとき、前記決定回路は、前記カウント値の更新前後において前記パリティビットの値を前記第2の値にて維持する
、請求項3に記載のパリティビット生成回路。
【請求項5】
前記バイナリカウンタは前記カウントアップ処理により前記カウント値を1ずつ増加させるNビットのアップカウンタであって、Nは2以上の整数を表し、
対象ビット列は、前記カウント値の更新前における前記カウント値のビット列であり、
前記判定回路は、前記対象ビット列に関して第1条件の成否に基づき、更新前における前記カウント値が前記第1数値パターンに該当するかを判定する第1判定処理、及び、前記対象ビット列に関して第2条件の成否に基づき、更新前における前記カウント値が前記第2数値パターンに該当するかを判定する第2判定処理の内、少なくとも一方を実行し、
前記対象ビット列において、最下位ビットが0の値を有する場合、前記最下位ビットから連続する偶数個のビットが1の値を有し且つ前記偶数個のビットの直近上位ビットが0の値を有する場合、又は、Nが奇数であって且つ前記対象ビット列の全ビットが1の値を有する場合、前記第1条件が成立し、
前記対象ビット列において、前記最下位ビットから連続する奇数個のビットが1の値を有し且つ前記奇数個のビットの直近上位ビットが0の値を有する場合、又は、Nが偶数であって且つ前記対象ビット列の全ビットが1の値を有する場合、前記第2条件が成立する
、請求項2~4の何れかに記載のパリティビット生成回路。
【請求項6】
前記バイナリカウンタは前記カウントダウン処理により前記カウント値を1ずつ減少させるNビットのダウンカウンタであって、Nは2以上の整数を表し、
対象ビット列は、前記カウント値の更新前における前記カウント値のビット列であり、
前記判定回路は、前記対象ビット列に関して第1条件の成否に基づき、更新前における前記カウント値が前記第1数値パターンに該当するかを判定する第1判定処理、及び、前記対象ビット列に関して第2条件の成否に基づき、更新前における前記カウント値が前記第2数値パターンに該当するかを判定する第2判定処理の内、少なくとも一方を実行し、
前記対象ビット列において、最下位ビットが1の値を有する場合、前記最下位ビットから連続する偶数個のビットが0の値を有し且つ前記偶数個のビットの直近上位ビットが1の値を有する場合、又は、Nが奇数であって且つ前記対象ビット列の全ビットが0の値を有する場合、前記第1条件が成立し、
前記対象ビット列において、前記最下位ビットから連続する奇数個のビットが0の値を有し且つ前記奇数個のビットの直近上位ビットが1の値を有する場合、又は、Nが偶数であって且つ前記対象ビット列の全ビットが0の値を有する場合、前記第2条件が成立する
、請求項2~4の何れかに記載のパリティビット生成回路。
【請求項7】
前記バイナリカウンタは前記カウントアップ処理及び前記カウントダウン処理を選択的に実行するNビットのアップダウンカウンタであって、Nは2以上の整数を表し、前記バイナリカウンタは第1モードにて前記カウントアップ処理により前記カウント値を1ずつ増加させる一方、第2モードにて前記カウントダウン処理により前記カウント値を1ずつ減少させ、
対象ビット列は、前記カウント値の更新前における前記カウント値のビット列であり、
前記第1モードにおいて、前記判定回路は、前記対象ビット列に関して第1条件の成否に基づき、更新前における前記カウント値が前記第1数値パターンに該当するかを判定する第1判定処理、及び、前記対象ビット列に関して第2条件の成否に基づき、更新前における前記カウント値が前記第2数値パターンに該当するかを判定する第2判定処理の内、少なくとも一方を実行し、
前記対象ビット列において、最下位ビットが0の値を有する場合、前記最下位ビットから連続する偶数個のビットが1の値を有し且つ前記偶数個のビットの直近上位ビットが0の値を有する場合、又は、Nが奇数であって且つ前記対象ビット列の全ビットが1の値を有する場合、前記第1条件が成立し、
前記対象ビット列において、前記最下位ビットから連続する奇数個のビットが1の値を有し且つ前記奇数個のビットの直近上位ビットが0の値を有する場合、又は、Nが偶数であって且つ前記対象ビット列の全ビットが1の値を有する場合、前記第2条件が成立する
、請求項2~4の何れかに記載のパリティビット生成回路。
【請求項8】
前記第2モードにおいて、前記判定回路は、前記対象ビット列に関して第3条件の成否に基づき、更新前における前記カウント値が前記第1数値パターンに該当するかを判定する第3判定処理、及び、前記対象ビット列に関して第4条件の成否に基づき、更新前における前記カウント値が前記第2数値パターンに該当するかを判定する第4判定処理の内、少なくとも一方を実行し、
前記対象ビット列において、前記最下位ビットが1の値を有する場合、前記最下位ビットから連続する偶数個のビットが0の値を有し且つ0の値を持つ前記偶数個のビットの直近上位ビットが1の値を有する場合、又は、Nが奇数であって且つ前記対象ビット列の全ビットが0の値を有する場合、前記第3条件が成立し、
前記対象ビット列において、前記最下位ビットから連続する奇数個のビットが0の値を有し且つ0の値を持つ前記奇数個のビットの直近上位ビットが1の値を有する場合、又は、Nが偶数であって且つ前記対象ビット列の全ビットが0の値を有する場合、前記第4条件が成立する
、請求項7に記載のパリティビット生成回路。
【請求項9】
請求項1~4の何れかに記載のパリティビット生成回路と、
入力信号に同期して前記カウント値を更新するカウント回路と、を備える
、バイナリカウンタ。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、パリティビット生成回路及びバイナリカウンタに関する。
【背景技術】
【0002】
バイナリカウンタにおいてエラー検出等のためにパリティビットが生成されることがある。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開平11-031084号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
パリティビットを生成するための回路は、なるだけ小さなサイズで形成されるべきである。
【0005】
本開示は、小さなサイズでパリティビットを生成可能なパリティビット生成回路及びバイナリカウンタを提供することを目的とする。
【課題を解決するための手段】
【0006】
本開示に係るパリティビット生成回路は、カウントアップ処理又はカウントダウン処理によりカウント値を更新するバイナリカウンタのパリティビットを生成するパリティビット生成回路であって、前記パリティビットの値は、前記カウント値の全ビットの内、1の値を有するビットの総数の偶奇性を表し、前記カウント値の更新前における前記パリティビットの値と、前記カウント値の更新前における前記カウント値の各ビットの値と、に基づき、前記カウント値の更新後における前記パリティビットの値を決定する。
【発明の効果】
【0007】
本開示によれば、小さなサイズでパリティビットを生成可能なパリティビット生成回路及びバイナリカウンタを提供することが可能となる。
【図面の簡単な説明】
【0008】
図1図1は、本開示の実施形態に係るバイナリカウンタの全体構成図である。
図2図2は、本開示の実施形態に係り、バイナリカウンタにて計数されるカウント値のビット配列を示す図である。
図3図3は、本開示の実施形態に係り、N個のフリップフロップの入出力値を示す図である。
図4図4は、本開示の実施形態に係り、カウント値、パリティ値及び演算値が順次更新される様子を示す図である。
図5図5は、本開示の実施形態に係り、パリティビット生成回路の構成図である。
図6図6は、本開示の実施形態に係り、4つのケースの夫々におけるカウント値及びパリティ値の関係図である。
図7図7は、本開示の第1実施形態に係り、アップカウンタにおいて、パリティビットに関わる偶奇性の変化/非変化を説明するための図である。
図8図8は、本開示の第1実施形態に属する実施例EX1_1に係り、パリティビットを生成するための構成図である。
図9図9は、本開示の第1実施形態に属する実施例EX1_2に係り、パリティビットを生成するための構成図である。
図10図10は、参考構成に係るパリティビット生成回路を示す図である。
図11図11は、参考構成と第1実施形態の構成との間において、パリティビット生成回路の回路面積を比較する図である。
図12図12は、本開示の第1実施形態に属する実施例EX1_3に係り、パリティビットを生成するための構成図である。
図13図13は、本開示の第1実施形態に属する実施例EX1_3に係り、パリティビットを生成するための構成図である。
図14図14は、本開示の第1実施形態に属する実施例EX1_4に係り、パリティビットを生成するための構成図である。
図15図15は、本開示の第1実施形態に属する実施例EX1_4に係り、パリティビットを生成するための構成図である。
図16図16は、本開示の第1実施形態に属する実施例EX1_5に係り、図8の回路の一部の変形図である。
図17図17は、本開示の第1実施形態に属する実施例EX1_5に係り、図8の回路の一部の変形図である。
図18図18は、本開示の第2実施形態に係り、ダウンカウンタにおいて、パリティビットに関わる偶奇性の変化/非変化を説明するための図である。
図19図19は、本開示の第2実施形態に属する実施例EX2_1に係り、パリティビットを生成するための構成図である。
図20図20は、本開示の第2実施形態に属する実施例EX2_2に係り、パリティビットを生成するための構成図である。
図21図21は、本開示の第2実施形態に属する実施例EX2_3に係り、パリティビットを生成するための構成図である。
図22図22は、本開示の第2実施形態に属する実施例EX2_3に係り、パリティビットを生成するための構成図である。
図23図23は、本開示の第2実施形態に属する実施例EX2_4に係り、パリティビットを生成するための構成図である。
図24図24は、本開示の第2実施形態に属する実施例EX2_4に係り、パリティビットを生成するための構成図である。
図25図25は、本開示の第3実施形態に属する実施例EX3_1に係り、パリティビットを生成するための構成図である。
図26図26は、本開示の第3実施形態に属する実施例EX3_2に係り、パリティビットを生成するための構成図である。
【発明を実施するための形態】
【0009】
以下、本開示の実施形態の例を、図面を参照して具体的に説明する。参照される各図において、同一の部分には同一の符号を付し、同一の部分に関する重複する説明を原則として省略する。尚、本明細書では、記述の簡略化上、情報、信号、物理量、機能部、回路、素子又は部品等を参照する記号又は符号を記すことによって、該記号又は符号に対応する情報、信号、物理量、機能部、回路、素子又は部品等の名称を省略又は略記することがある。
【0010】
図1に本開示の実施形態に係るバイナリカウンタ1の全体構成を示す。バイナリカウンタ1を半導体集積回路により形成することができる。バイナリカウンタ1は、パリティ付きバイナリカウンタであり、カウント回路2及びパリティビット生成回路6を備える。カウント回路2は保持回路3及び処理回路4を備える。保持回路3はN個のフリップフロップ5を備える。パリティビット生成回路6はパリティ演算回路7及びフリップフロップ8を備える。フリップフロップは、以下、FFと略記され得る。Nは2以上の任意の整数を表す。
【0011】
カウント回路2はNビットの値を計数する。カウント回路2により計数される値をカウント値と称し、記号“CV”にて表す。カウント値CVはNビットの値である。故に、カウント値CVは0以上且つ(2-1)以下の範囲内の整数値を持つ。
【0012】
図2を参照し、Nビット分の記憶回路の記憶値にてカウント値CVが表現される。Nビット分の記憶回路はビットb[0]~b[N-1]の記憶回路である。ビットb[0]~b[N-1]の夫々はバイナリ値を記憶する。バイナリ値は0及び1の何れかである。ビットb[i]に記憶されるバイナリ値を、単語“Data”の頭文字“D”をとり、記号“D[i]”にて表す。iは任意の整数を表す。任意の整数iに関し、ビットb[i+1]はビットb[i]よりも上位側のビットであるとする。従って、ビットb[0]~b[N-1]の内、ビットb[0]が最下位ビットであり、ビットb[N-1]が最上位ビットである。保持回路3内のN個のFF5がNビット分の記憶回路に相当する。
【0013】
図3を参照し、以下では、保持回路3内のN個のFF5を互いに区別する場合、当該N個のFF5を、FF5[0]~5[N-1]と称する。FF5[i]は、バイナリ値D[i]を記憶及び保持し、保持するバイナリ値D[i]を出力する。故に、保持回路3からバイナリ値D[0]~D[N-1]が出力される。
【0014】
保持回路3の出力値D[0]~D[N-1](従ってカウント値CV)は、所望の外部回路(不図示)に出力されると共に、処理回路4にも出力される。処理回路4は、カウント値CVに基づきカウント値CVに応じた入力値IVを生成する組み合わせ回路である。入力値IVは、カウント値CVと同様、Nビットの値であり、詳細には、バイナリ値E[0]~E[N-1]にて表される。バイナリ値E[0]~E[N-1]の内、バイナリ値E[i+1]はバイナリ値E[i]よりも上位側のビットの値である。カウント値CV及び入力値IVは下記式(1)及び(2)にて表される。
【0015】
【数1】
【0016】
信号CLKはローレベルの信号レベル及びハイレベルの信号レベルを交互にとる矩形波信号である。任意の注目した信号又は電圧において、ローレベルからハイレベルへの切り替わりをアップエッジと称し、ハイレベルからローレベルへの切り替わりをダウンエッジと称する。アップエッジをライジングエッジに読み替えて良い。ダウンエッジをフォーリングエッジに読み替えて良い。
【0017】
信号CLKはバイナリカウンタ1に対する入力信号である。バイナリカウンタ1の外部に設けられた信号供給回路(不図示)からバイナリカウンタ1に対して信号CLKが入力される。カウント回路2は入力信号CLKに同期してカウント値CVを更新する。ここでは、信号CLKのアップエッジを契機にカウント値CVが更新されるものとする。変形として、信号CLKのダウンエッジを契機にカウント値CVが更新されるようにしても良い。FF5[0]~5[N-1]に対し、夫々、処理回路4から出力されるバイナリ値E[0]~E[N-1]が入力される。FF5[0]~5[N-1]の夫々は、信号CLKのアップエッジを契機に自身へ入力されるバイナリ値を取り込み、自身の記憶値を取り込んだ値にて更新する。従って、FF5[i]は信号CLKのアップエッジを契機に自身へ入力されるバイナリ値E[i]を取り込み、自身の記憶値D[i]を取り込んだ値(E[i])にて更新する。
【0018】
処理回路4においてカウント値CVを1だけ増加させるカウントアップ処理を行うことができる。この場合、処理回路4は、“IV=CV+1”が成立するようカウント値CVに基づき入力値IVを生成する。故に、処理回路4にてカウントアップ処理が行われる場合、信号CLKのアップエッジが生じるごとにカウント値CVが1ずつ増加してゆく。但し、“CV=2-1”が成立する場合(即ち全ビットb[0]~b[N-1]が1の値を有する場合)、カウントアップ処理に係る処理回路4は、オーバーフロー処理により“IV=0”を成立させる入力値IVを生成する(即ち、バイナリ値E[0]~E[N-1]の全てに0を設定する)。故に、処理回路4がカウントアップ処理を行う場合において、“CV=2-1”が成立する状態にて信号CLKにアップエッジが生じると、カウント値CVは(2-1)からカウント値CVが取り得る最小値(即ち0)に変化する。
【0019】
処理回路4においてカウント値CVを1だけ減少させるカウントダウン処理を行うことができる。この場合、処理回路4は、“IV=CV-1”が成立するようカウント値CVに基づき入力値IVを生成する。故に、処理回路4にてカウントダウン処理が行われる場合、信号CLKのアップエッジが生じるごとにカウント値CVが1ずつ減少してゆく。但し、“CV=0”が成立する場合(即ち全ビットb[0]~b[N-1]が0の値を有する場合)、カウントダウン処理に係る処理回路4は、アンダーフロー処理により“IV=2-1”を成立させる入力値IVを生成する(即ち、バイナリ値E[0]~E[N-1]の全てに1を設定する)。故に、処理回路4がカウントダウン処理を行う場合において、“CV=0”が成立する状態にて信号CLKにアップエッジが生じると、カウント値CVは0からカウント値CVが取り得る最大値(即ち2-1)に変化する。
【0020】
パリティビット生成回路6はバイナリカウンタ1のパリティビットを生成する。パリティビットが表すバイナリ値をパリティ値と称し、記号“PRT”にて参照する。バイナリカウンタ1のパリティビットを生成するとは、パリティ値PRTを導出することに等しい。パリティ値PRTを用いて保持回路3の記憶内容に関するエラー検出等を行うことができる。
【0021】
パリティビットの値であるパリティ値PRTは、ビットb[0]~b[N-1]の内、1の値を有するビットの総数の偶奇性を表す。以下、説明の便宜上、ビットb[0]~b[N-1]の内、1の値を有するビットの総数を、対象数と称し、記号“TG”にて参照する。パリティ値PRTは対象数TGの偶奇性を表す、即ち、対象数TGが偶数及び奇数の何れであるのかを表す。パリティビット生成回路6は、対象数TGが偶数であるときにはパリティ値PRTに0を設定し、対象数TGが奇数であるときにはパリティ値PRTに1を設定する。従って、“0”のパリティ値PRTは対象数TGが偶数であることを指し示し、“1”のパリティ値PRTは対象数TGが奇数であることを指し示す。
【0022】
例えば、バイナリ値D[0]~D[3]が1であって且つバイナリ値D[4]~D[N-1]が0である場合、“TG=4”である。この場合、パリティビット生成回路6はパリティ値PRTに0を設定する。或いは例えば、バイナリ値D[0]~D[3]及びD[N-1]が1であって且つバイナリ値D[4]~D[N-2]が0である場合、“TG=5”である。この場合、パリティビット生成回路6はパリティ値PRTに1を設定する。
【0023】
保持回路3から出力されるバイナリ値D[0]~D[N-1]がパリティ演算回路7に入力される。加えて、パリティビット生成回路6から出力されるパリティ値PRTがパリティ演算回路7に帰還入力される。パリティ演算回路7は、バイナリ値D[0]~D[N-1]とパリティ値PRTとに基づき演算値NEXTを生成及び出力する。FF8に対して演算値NEXTが入力される。FF8は信号CLKのアップエッジを契機に自身への入力値(従って演算値NEXT)を取り込み、自身の記憶値を取り込んだ値にて更新する。FF8は自身の記憶値をパリティ値PRTとして出力する。このように、パリティ値PRTは信号CLKのアップエッジごとに更新される。演算値NEXTは次回の更新にてパリティ値PRTに代入される値を示す。
【0024】
図4を参照する。時刻t1にて信号CLKに第i回目のアップエッジが生じ、その後、時刻t2にて信号CLKに第(i+1)回目のアップエッジが生じるものとする。時刻t2に注目して、パリティビット生成回路6によるパリティビットの生成方法の概略を説明する。時刻t1及びt2の夫々にてカウント値CVは更新され、時刻t1及びt2の夫々にてパリティ値PRTは更新される。但し、パリティ値PRTは更新前後で変化しないこともある。
【0025】
時刻t1の直後におけるカウント値CVをカウント値CV_t1と称し、時刻t2の直後におけるカウント値CVをカウント値CV_t2と称する。即ち、時刻t2における信号CLKのアップエッジを契機にカウント値CVはカウント値CV_t1からカウント値CV_t2に更新される。時刻t1の直後におけるパリティ値PRTをパリティ値PRT_t1と称し、時刻t2の直後におけるパリティ値PRTをパリティ値PRT_t2と称する。即ち、時刻t2における信号CLKのアップエッジを契機にパリティ値PRTはパリティ値PRT_t1からパリティ値PRT_t2に更新される。
【0026】
演算値NEXTはカウント値CV及びパリティ値PRTの更新に連動して更新される。時刻t1の直後における演算値NEXTを演算値NEXT_t1と称し、時刻t2の直後における演算値NEXTを演算値NEXT_t2と称する。演算値NEXT_t1は、カウント値CV_t1とパリティ値PRT_t1とに基づき決定される演算値NEXTである。演算値NEXT_t2は、カウント値CV_t2とパリティ値PRT_t2とに基づき決定される演算値NEXTである。
【0027】
即ち、パリティ演算回路7は、時刻t1及びt2間の期間において、当該期間におけるカウント値CV_t1と当該期間におけるパリティ値PRT_t1とに基づき、演算値NEXT_t1を導出する。そして、時刻t2における信号CLKのアップエッジを契機に、FF8により演算値NEXT_t1がパリティ値PRT_t2に設定され、以後、信号CLKに次回のアップエッジが生じるまで“PRT_t2=NEXT_t1”となる。
【0028】
以下では、説明の具体化のため、時刻t2におけるカウント値CVの更新に注目する。時刻t2におけるカウント値CVの更新に注目したとき、更新前のカウント値CVはカウント値CV_t1であり、更新後のカウント値CVはカウント値CV_t2であり、カウント値CVの更新前におけるパリティ値PRTはパリティ値PRT_t1であり、カウント値CVの更新後におけるパリティ値PRTはパリティ値PRT_t2である。
【0029】
パリティビット生成回路6は、カウント値CVの更新前におけるパリティ値(即ちPRT_t1)と、カウント値CVの更新前におけるビットb[0]~b[N-1]の値(即ちCV_t1)とに基づき、カウント値CVの更新後におけるパリティ値(即ちPRT_t2)を決定する。
【0030】
図5に示す如く、パリティ演算回路7は判定回路11及び決定回路12を備える。判定回路11は、更新前のカウント値CV(CV_t1)に基づき、更新前におけるカウント値CVが所定の第1数値パターン又は所定の第2数値パターンに該当するかを判定する。判定回路11による判定結果を示す信号は決定回路12に供給される。決定回路12は、カウント値CVの更新前におけるパリティ値PRT(PRT_t1)と、判定回路11の判定結果と、に基づき、カウント値CVの更新後におけるパリティ値PRT(PRT_t2)を決定し、決定値を演算値NEXT(NEXT_t1)として出力する。これにより、次回の信号CLKのアップエッジが生じたとき、決定回路12による決定値(NEXT_t1)にてパリティ値PRTが更新される。つまり、決定回路12は、カウント値CVが更新されるとき、FF8と協働して、パリティ値PRTを自身の決定値(NEXT_t1)にて更新することができる。FF8から出力されるパリティ値PRTは決定回路12に帰還入力される。
【0031】
第1数値パターンは対象数TGの偶奇性に変化をもたらすパターンであり、第2数値パターンは対象数TGの偶奇性に変化をもたらさないパターンである。即ち、更新前におけるカウント値CV(CV_t1)が第1数値パターンに該当する場合においてカウント値CVが更新されるとき、対象数TGの偶奇性が変化する。一方、更新前におけるカウント値CV(CV_t1)が第2数値パターンに該当する場合においてカウント値CVが更新されるとき、対象数TGの偶奇性は不変である。
【0032】
故に(図6参照)、“PRT_t1=0”であって且つカウント値CV_t1が第1数値パターンに該当する第1ケースにおいて、カウント値CVがカウント値CV_t1からカウント値CV_t2へと更新されるとき、決定回路12は、カウント値CVの更新に伴ってパリティ値PRTを“0”から“1”に変更する(即ち“PRT_t2=1”に設定する)。
また、“PRT_t1=1”であって且つカウント値CV_t1が第1数値パターンに該当する第2ケースにおいて、カウント値CVがカウント値CV_t1からカウント値CV_t2へと更新されるとき、決定回路12は、カウント値CVの更新に伴ってパリティ値PRTを“1”から“0”に変更する(即ち“PRT_t2=0”に設定する)。
また、“PRT_t1=0”であって且つカウント値CV_t1が第2数値パターンに該当する第3ケースにおいて、カウント値CVがカウント値CV_t1からカウント値CV_t2へと更新されるとき、決定回路12は、カウント値CVの更新前後においてパリティ値PRTを“0”にて維持する(即ち“PRT_t2=0”に設定する)。
また、“PRT_t1=1”であって且つカウント値CV_t1が第2数値パターンに該当する第4ケースにおいて、カウント値CVがカウント値CV_t1からカウント値CV_t2へと更新されるとき、決定回路12は、カウント値CVの更新前後においてパリティ値PRTを“1”にて維持する(即ち“PRT_t2=1”に設定する)。
【0033】
尚、パリティ値PRTにおける初期値は、バイナリカウンタ1の初期状態におけるバイナリ値D[0]~D[N-1]に依存して定まる。初期状態におけるバイナリ値D[0]~D[N-1]は定まっているため、初期状態におけるバイナリ値D[0]~D[N-1]に応じてパリティ値PRTの初期値(即ち初期状態におけるパリティ値PRT)を定めれば良い。例えば、バイナリカウンタ1の初期状態においてバイナリ値D[0]~D[N-1]が全て0であれば、バイナリカウンタ1の初期状態でのパリティ値PRTは“0”の初期値を有する。また例えば、Nが偶数である場合、バイナリカウンタ1の初期状態においてバイナリ値D[0]~D[N-1]が全て1であれば、バイナリカウンタ1の初期状態でのパリティ値PRTは“0”の初期値を有する。或いは例えば、Nが奇数である場合、バイナリカウンタ1の初期状態においてバイナリ値D[0]~D[N-1]が全て1であれば、バイナリカウンタ1の初期状態でのパリティ値PRTは“1”の初期値を有する。
【0034】
以下、バイナリカウンタ1に関する第1~第3実施形態を説明する。上述した事項は、特に記述無き限り且つ矛盾無き限り、以下の第1~第3実施形態に適用される。第1~第3実施形態において、上述の事項と矛盾する事項がある場合には、第1~第3実施形態での記載が優先されて良い。また矛盾無き限り、以下に示す第1~第3実施形態の内、任意の実施形態に記載した事項を、他の任意の実施形態に適用することもできる。
【0035】
<<第1実施形態>>
第1実施形態を説明する。第1実施形態に係る処理回路4はカウントアップ処理を行う。従って、第1実施形態に係るバイナリカウンタ1は、カウントアップ処理によりカウント値CVを1ずつ増加させるNビットのアップカウンタである。Nビットのアップカウンタにおいて、カウント値CVの更新に伴い、対象数TG(ビットb[0]~b[N-1]の内、1の値を有するビットの総数)の偶奇性が変化するかには規則がある。
【0036】
図7を参照し、Nビットのアップカウンタにおいて、対象数TGの偶奇性が変化する状況と変化しない状況とを説明する。以下では、カウント値CVを構成するビットb[0]~b[N-1]を総称してビット列と称する(後述の他の実施形態でも同様)。
【0037】
更新前のカウント値CVのビット列において、最下位ビットb[0]が0の値を有する場合、最下位ビットb[0]から連続する偶数個のビットb[0]~b[2k+1]が1の値を有し且つ当該偶数個のビットの直近上位ビットb[2k+2]が0の値を有する場合、又は、Nが奇数であって且つ全ビットb[0]~b[N-1]が1の値を有する場合、所定の条件Cu1が成立する。それら以外の場合、条件Cu1は不成立である。条件Cu1が成立するとき、カウント値CVの更新に伴って対象数TGの偶奇性が変化する。対象数TGの偶奇性の変化では、対象数TGが偶数から奇数に変化する又は奇数から偶数に変化する。尚、kは“2k+2<N”を満たす0以上且つ任意の整数を表す。
【0038】
更新前のカウント値CVのビット列が条件Cu1を満たすとき、更新前におけるカウント値CVは上述の第1数値パターンに該当する。従って判定回路11(図5参照)は、更新前のカウント値CVのビット列が条件Cu1を満たすか否かに基づき、更新前のカウント値CVが第1数値パターンに該当するかを判定できる。判定回路11は、更新前のカウント値CVのビット列が条件Cu1を満たすとき、更新前のカウント値CVは第1数値パターンに該当すると判定する。第1数値パターンの該当時におけるパリティ値PRTの更新方法は上述した通りである(図6参照)。
【0039】
例えば、更新前のカウント値CVのビット列において“D[0]=0”であれば、カウント値CVの更新により“D[0]=1”に変化するので、対象数TGの偶奇性が変化する。
また例えば、更新前のカウント値CVのビット列において“(D[2],D[1],D[0])=(0,1,1)”であるケースは、最下位ビットb[0]から連続する偶数個のビット(b[1]及び b[0])が1の値を有し、且つ、当該偶数個のビットの直近上位ビット(b[2])が0の値を有するケースである。当該ケースではカウント値CVの更新によりビットb[2]~ b[0]における1の数が2つから1つに変化するので、対象数TGの偶奇性が変化する。
また更新前のカウント値CVのビット列においてNが奇数であって且つ全ビットb[0]~b[N-1]が1の値を有する場合、カウント値CVの更新によりオーバーフロー処理を通じて対象数TGが奇数(N)から偶数(0)に変化するので、対象数TGの偶奇性が変化する。
【0040】
更新前のカウント値CVのビット列において、最下位ビットb[0]から連続する奇数個のビットb[0]~b[2k]が1の値を有し且つ当該奇数個のビットの直近上位ビットb[2k+1]が0の値を有する場合、又は、Nが偶数であって且つ全ビットb[0]~b[N-1]が1の値を有する場合、所定の条件Cu2が成立する。それら以外の場合、条件Cu2は不成立である。条件Cu2が成立するとき、カウント値CVの更新に伴って対象数TGの偶奇性が変化しない、即ちカウント値CVの更新前後において対象数TGの偶奇性は不変である。尚、kは“2k+1<N”を満たす0以上且つ任意の整数を表す。
【0041】
更新前のカウント値CVのビット列が条件Cu2を満たすとき、更新前におけるカウント値CVは上述の第2数値パターンに該当する。従って判定回路11(図5参照)は、更新前のカウント値CVのビット列が条件Cu2を満たすか否かに基づき、更新前のカウント値CVが第2数値パターンに該当するかを判定できる。判定回路11は、更新前のカウント値CVのビット列が条件Cu2を満たすとき、更新前のカウント値CVは第2数値パターンに該当すると判定する。第2数値パターンの該当時におけるパリティ値PRTの更新方法は上述した通りである(図6参照)。
【0042】
例えば、更新前のカウント値CVのビット列において“(D[3],D[2],D[1], b[0])=(0,1,1,1)”であるケースは、最下位ビットb[0]から連続する奇数個のビット(b[2]~ b[0])が1の値を有し、且つ、当該奇数個のビットの直近上位ビット(b[3])が0の値を有するケースである。当該ケースではカウント値CVの更新によりビットb[3]~ b[0]における1の数が3つから1つに変化するが、このとき対象数TGの偶奇性は変化しない。
また更新前のカウント値CVのビット列においてNが偶数であって且つ全ビットb[0]~b[N-1]が1の値を有する場合、カウント値CVの更新によりオーバーフロー処理を通じて対象数TGがNから0に変化するが、Nも0も偶数であるので対象数TGの偶奇性は変化しない。
【0043】
第1実施形態は、以下の実施例EX1_1~EX1_5を含む。第1実施形態にて上述した事項は、特に記述無き限り且つ矛盾無き限り、以下の実施例EX1_1~EX1_5に適用される。但し、各実施例において、第1実施形態で上述した事項と矛盾する事項については各実施例での記載が優先されて良い。また矛盾無き限り、実施例EX1_1~EX1_5の内、任意の実施例に記載した事項を、他の任意の実施例に適用することもできる(即ち複数の実施例の内の任意の2以上の実施例を組み合わせることも可能である)。
【0044】
[実施例EX1_1]
実施例EX1_1を説明する。実施例EX1_1では、バイナリカウンタ1が8ビットのアップカウンタであることが想定される(即ち“N=8”である)。
【0045】
図8に実施例EX1_1に係る判定回路110及び決定回路120を示す。実施例EX1_1では、判定回路110及び決定回路120を図5の判定回路11及び決定回路12として用いることができる。
【0046】
判定回路110は要素判定回路111a~111i並びに論理和回路112及び113を備える。要素判定回路111a~111iは、現在のカウント値CV(D[0]~D[N-1])に基づき、夫々、信号a1~i1を生成及び出力する。現在のカウント値CVは更新前のカウント値CVに相当する。信号a1~i1の夫々は0又は1の値を持つ二値信号である(後述の信号A1~G1も同様)。尚、図8及び後述の他の図において、D[j:0]は、D[j]~D[0]をまとめたjビット値を表す(ここにおけるjは1以上の整数)。
【0047】
回路111aは、“D[0]=0”であるときに限り“1”の信号a1を出力し、それ以外のときに“0”の信号a1を出力する。
回路111bは、“(D[2],D[1],D[0])=(0,1,1)”であるときに限り“1”の信号b1を出力し、それ以外のときに“0”の信号b1を出力する。
回路111cは、“(D[4],D[3],D[2],D[1],D[0])=(0,1,1,1,1)”であるときに限り“1”の信号c1を出力し、それ以外のときに“0”の信号c1を出力する。
回路111dは、“(D[6],D[5],D[4],D[3],D[2],D[1],D[0])=(0,1,1,1,1,1,1)”であるときに限り“1”の信号d1を出力し、それ以外のときに“0”の信号d1を出力する。
【0048】
回路111eは、“(D[1],D[0])=(0,1)であるときに限り“1”の信号e1を出力し、それ以外のときに“0”の信号e1を出力する。
回路111fは、“(D[3],D[2],D[1],D[0])=(0,1,1,1)”であるときに限り“1”の信号f1を出力し、それ以外のときに“0”の信号f1を出力する。
回路111gは、“(D[5],D[4],D[3],D[2],D[1],D[0])=(0,1,1,1,1,1)”であるときに限り“1”の信号g1を出力し、それ以外のときに“0”の信号g1を出力する。
回路111hは、“(D[7],D[6],D[5],D[4],D[3],D[2],D[1],D[0])=(0,1,1,1,1,1,1,1)”であるときに限り“1”の信号h1を出力し、それ以外のときに“0”の信号h1を出力する。
回路111iは、“(D[7],D[6],D[5],D[4],D[3],D[2],D[1],D[0])=(1,1,1,1,1,1,1,1)”であるときに限り“1”の信号i1を出力し、それ以外のときに“0”の信号i1を出力する。
【0049】
論理和回路112は、信号a1~d1の論理和信号を信号A1として生成及び出力する。信号a1、b1、c1及びd1の何れかが“1”の値を有するときにのみ信号A1は“1”の値を持ち、それ以外のときにおいて信号A1は“0”の値を持つ。回路111a~111d及び112により、現在のカウント値CVが第1数値パターンに該当するかが判定される。現在のカウント値CVが第1数値パターンに該当する場合にのみ(換言すれば条件Cu1を満たす場合にのみ)信号A1の値が“1”となる。
【0050】
論理和回路113は、信号e1~i1の論理和信号を信号B1として生成及び出力する。信号e1、f1、g1、h1及びi1の何れかが“1”の値を有するときにのみ信号B1は“1”の値を持ち、それ以外のときにおいて信号B1は“0”の値を持つ。回路111e~111i及び113により、現在のカウント値CVが第2数値パターンに該当するかが判定される。現在のカウント値CVが第2数値パターンに該当する場合にのみ(換言すれば条件Cu2を満たす場合にのみ)信号B1の値が“1”となる。
【0051】
決定回路120は回路121及び122と論理積回路123及び124と論理和回路125を備える。回路121は現在のパリティ値PRTに基づき信号C1を生成及び出力する。回路122は現在のパリティ値PRTに基づき信号D1を生成及び出力する。現在のパリティ値PRTはカウント値CVの更新前におけるパリティ値PRTに相当する。回路121は、現在のパリティ値PRTが“0”であるときに“1”の信号C1を出力し、現在のパリティ値PRTが“1”であるときに“0”の信号C1を出力する。回路122は、現在のパリティ値PRTが“1”であるときに“1”の信号D1を出力し、現在のパリティ値PRTが“0”であるときに“0”の信号D1を出力する。
【0052】
論理積回路123は、信号A1及びC1の論理積信号を信号E1として生成及び出力する。信号A1及びC1の双方が“1”の値を有するときにのみ信号E1は“1”の値を持ち、それ以外のときにおいて信号E1は“0”の値を持つ。論理積回路124は、信号B1及びD1の論理積信号を信号F1として生成及び出力する。信号B1及びD1の双方が“1”の値を有するときにのみ信号F1は“1”の値を持ち、それ以外のときにおいて信号F1は“0”の値を持つ。論理和回路125は、信号E1及びF1の論理和信号を信号G1として生成及び出力する。信号E1及びF1の何れかが“1”の値を有するときにのみ信号G1は“1”の値を持ち、それ以外のときにおいて信号G1は“0”の値を持つ。実施例EX1_1において信号G1の値が演算値NEXTである。即ち、次回に信号CLKにアップエッジが生じたとき、パリティ値PRTは信号G1の値にて更新される。
【0053】
[実施例EX1_2]
実施例EX1_2を説明する。実施例EX1_2では、バイナリカウンタ1が7ビットのアップカウンタであることが想定される(即ち“N=7”である)。
【0054】
図9に実施例EX1_2に係る判定回路130及び決定回路140を示す。実施例EX1_2では、判定回路130及び決定回路140を図5の判定回路11及び決定回路12として用いることができる。
【0055】
判定回路130は要素判定回路131a~131h並びに論理和回路132及び133を備える。要素判定回路131a~131hは、現在のカウント値CV(D[0]~D[N-1])に基づき、夫々、信号a2~h2を生成及び出力する。現在のカウント値CVは更新前のカウント値CVに相当する。信号a2~h2の夫々は0又は1の値を持つ二値信号である(後述の信号A2~G2も同様)。
【0056】
回路131aは、“D[0]=0”であるときに限り“1”の信号a2を出力し、それ以外のときに“0”の信号a2を出力する。
回路131bは、“(D[2],D[1],D[0])=(0,1,1)”であるときに限り“1”の信号b2を出力し、それ以外のときに“0”の信号b2を出力する。
回路131cは、“(D[4],D[3],D[2],D[1],D[0])=(0,1,1,1,1)”であるときに限り“1”の信号c2を出力し、それ以外のときに“0”の信号c2を出力する。
回路131dは、“(D[6],D[5],D[4],D[3],D[2],D[1],D[0])=(0,1,1,1,1,1,1)”であるときに限り“1”の信号d2を出力し、それ以外のときに“0”の信号d2を出力する。
回路131eは、“(D[6],D[5],D[4],D[3],D[2],D[1],D[0])=(1,1,1,1,1,1,1)”であるときに限り“1”の信号e2を出力し、それ以外のときに“0”の信号e2を出力する。
【0057】
回路131fは、“(D[1],D[0])=(0,1)”であるときに限り“1”の信号f2を出力し、それ以外のときに“0”の信号f2を出力する。
回路131gは、“(D[3],D[2],D[1],D[0])=(0,1,1,1)”であるときに限り“1”の信号g2を出力し、それ以外のときに“0”の信号g2を出力する。
回路131hは、“(D[5],D[4],D[3],D[2],D[1],D[0])=(0,1,1,1,1,1)”であるときに限り“1”の信号h2を出力し、それ以外のときに“0”の信号h2を出力する。
【0058】
論理和回路132は、信号a2~e2の論理和信号を信号A2として生成及び出力する。信号a2、b2、c2、d2及びe2の何れかが“1”の値を有するときにのみ信号A2は“1”の値を持ち、それ以外のときにおいて信号A2は“0”の値を持つ。回路131a~131e及び132により、現在のカウント値CVが第1数値パターンに該当するかが判定される。現在のカウント値CVが第1数値パターンに該当する場合にのみ(換言すれば条件Cu1を満たす場合にのみ)信号A2の値が“1”となる。
【0059】
論理和回路133は、信号f2~h2の論理和信号を信号B2として生成及び出力する。信号f2、g2及びh2の何れかが“1”の値を有するときにのみ信号B2は“1”の値を持ち、それ以外のときにおいて信号B2は“0”の値を持つ。回路131f~131h及び133により、現在のカウント値CVが第2数値パターンに該当するかが判定される。現在のカウント値CVが第2数値パターンに該当する場合にのみ(換言すれば条件Cu2を満たす場合にのみ)信号B2の値が“1”となる。
【0060】
決定回路140は回路141及び142と論理積回路143及び144と論理和回路145を備える。回路141は現在のパリティ値PRTに基づき信号C2を生成及び出力する。回路142は現在のパリティ値PRTに基づき信号D2を生成及び出力する。現在のパリティ値PRTはカウント値CVの更新前におけるパリティ値PRTに相当する。回路141は、現在のパリティ値PRTが“0”であるときに“1”の信号C2を出力し、現在のパリティ値PRTが“1”であるときに“0”の信号C2を出力する。回路142は、現在のパリティ値PRTが“1”であるときに“1”の信号D2を出力し、現在のパリティ値PRTが“0”であるときに“0”の信号D2を出力する。
【0061】
論理積回路143は、信号A2及びC2の論理積信号を信号E2として生成及び出力する。信号A2及びC2の双方が“1”の値を有するときにのみ信号E2は“1”の値を持ち、それ以外のときにおいて信号E2は“0”の値を持つ。論理積回路144は、信号B2及びD2の論理積信号を信号F2として生成及び出力する。信号B2及びD2の双方が“1”の値を有するときにのみ信号F2は“1”の値を持ち、それ以外のときにおいて信号F2は“0”の値を持つ。論理和回路145は、信号E2及びF2の論理和信号を信号G2として生成及び出力する。信号E2及びF2の何れかが“1”の値を有するときにのみ信号G2は“1”の値を持ち、それ以外のときにおいて信号G2は“0”の値を持つ。実施例EX1_2において信号G2の値が演算値NEXTである。即ち、次回に信号CLKにアップエッジが生じたとき、パリティ値PRTは信号G2の値にて更新される。
【0062】
ここで、参考構成に係るパリティビット生成回路を説明する。参考構成では、複数ビット分のFFに対するパリティビットをXORツリーにて形成する。XORは排他的論理和の略称である。8ビット分のFFに対するパリティビットをXORツリーにて形成する際の参考構成を図10に示す。図10では、8ビット分のFFにてパリティグループが形成される。参考構成により任意のパリティグループに対するパリティビットを生成できるが、ビット数の増大に伴ってXORの必要数が大きく増える。XORの総数の増大によりパリティビット生成回路の回路面積が増大する。パリティビット生成回路の回路面積を極力小さくすることが望まれる。
【0063】
バイナリカウンタ1では、XORツリーを要さないため、比較的小さな回路面積にてパリティビットを生成することができる。図11において、破線波形610は、参考構成におけるビット数とパリティビット生成回路の回路面積との関係を表し、実線波形620は、第1実施形態のバイナリカウンタ1におけるビット数(Nの値)とパリティビット生成回路の回路面積との関係を表す。参考構成との比較において、バイナリカウンタ1によれば、ビット数が増大するほど面積削減効果が大きくなることが分かる。
【0064】
[実施例EX1_3]
実施例EX1_3を説明する。実施例EX1_1及びEX1_2に示した構成においては、カウント値CVの更新に際し、更新前のカウント値CVが第1数値パターンに該当するかを判定する処理(以下、判定処理α1と称する)と、更新前のカウント値CVが第2数値パターンに該当するかを判定する処理(以下、判定処理α2と称する)と、を別個に実行する。実施例EX1_1に示した構成(図8)においては、判定処理α1による判定結果が信号A1にて示され、判定処理α2による判定結果が信号B1にて示される。但し、判定処理α1及びα2の内、判定処理α1のみ行うことで演算値NEXT(図1及び図8参照)が導出されるようにしても良い。
【0065】
図12に実施例EX1_3に係る判定回路110_A及び決定回路120_Aを示す。実施例EX1_3では、判定回路110_A及び決定回路120_Aを図5の判定回路11及び決定回路12として用いることができる。図12の構成は図8の構成を変形したものに相当する。
【0066】
判定回路110_Aは、図8の判定回路110の内、判定処理α1を行う回路のみを有する。即ち、判定回路110_Aは上述の回路111a~111d及び112のみを有する。回路111a~111d及び112の動作は実施例EX1_1で示した通りである。従って、更新前のカウント値CVに相当する現在のカウント値CVが第1数値パターンに該当する場合にのみ(換言すれば条件Cu1を満たす場合にのみ)信号A1の値が“1”となる。
【0067】
決定回路120_Aは否定回路126_A及びセレクタ127_Aを有する。否定回路126_Aは、現在のパリティ値PRTを有する信号H1_Aの反転信号である信号I1_Aを生成及び出力する。現在のパリティ値PRTが“1”であれば信号I1_Aは“0”の値を有し、現在のパリティ値PRTが“0”であれば信号I1_Aは“1”の値を有する。上述したように、現在のパリティ値PRTはカウント値CVの更新前におけるパリティ値PRTに相当する。
【0068】
セレクタ127_Aは、判定回路110_Aからの信号A1に応じて信号H1_A又はI1_Aを信号G1_Aとして出力する。具体的には、セレクタ127_Aは、信号A1が“1”の値を有するときには信号I1_Aを信号G1_Aとして出力し、信号A1が“0”の値を有するときには信号H1_Aを信号G1_Aとして出力する。実施例EX1_3において信号G1_Aの値が演算値NEXTである。即ち、次回に信号CLKにアップエッジが生じたとき、パリティ値PRTは信号G1_Aの値にて更新される。
【0069】
故に、図12の構成が採用される場合、更新前のカウント値CVが第1数値パターンに該当するときには(即ち“A1=1”のときには)信号CLKのアップエッジを契機にパリティ値PRTが変化し、更新前のカウント値CVが第1数値パターンに該当しないときには(即ち“A1=0”のときには)信号CLKにアップエッジが生じてもパリティ値PRTは変化しない。更新前のカウント値CVが第1数値パターンに該当しないことは、更新前のカウント値CVが第2数値パターンに該当することを意味するからである。
【0070】
バイナリカウンタ1が8ビットのアップカウンタであることが想定して実施例EX1_3に係る構成を説明したが、アップカウンタのビット数が8ビット以外でも実施例EX1_3に係る構成を適用可能である。即ち例えば“N=7”のアップカウンタを構成する場合、図9の構成を基準に、信号A2を生成するための回路のみを判定回路130を設け且つ決定回路140にて信号A2と現在のパリティ値PRTとに基づき演算値NEXTが導出されるよう変形すれば良い。図13の判定回路130_A及び決定回路140_Aは当該変形後の判定回路130及び決定回路140であり、決定回路140_Aから演算値NEXTを有する信号G2_Aが出力される。
【0071】
[実施例EX1_4]
実施例EX1_4を説明する。実施例EX1_3とは逆に、判定処理α1及びα2の内、判定処理α2のみ行うことで演算値NEXT(図1及び図8参照)が導出されるようにしても良い。
【0072】
図14に実施例EX1_4に係る判定回路110_B及び決定回路120_Bを示す。実施例EX1_4では、判定回路110_B及び決定回路120_Bを図5の判定回路11及び決定回路12として用いることができる。図14の構成は図8の構成を変形したものに相当する。
【0073】
判定回路110_Bは、図8の判定回路110の内、判定処理α2を行う回路のみを有する。即ち、判定回路110_Bは上述の回路111e~111i及び113のみを有する。回路111e~111i及び113の動作は実施例EX1_1で示した通りである。従って、更新前のカウント値CVに相当する現在のカウント値CVが第2数値パターンに該当する場合にのみ(換言すれば条件Cu2を満たす場合にのみ)信号B1の値が“1”となる。
【0074】
決定回路120_Bは否定回路126_B及びセレクタ127_Bを有する。否定回路126_Bは、現在のパリティ値PRTを有する信号H1_Bの反転信号である信号I1_Bを生成及び出力する。現在のパリティ値PRTが“1”であれば信号I1_Bは“0”の値を有し、現在のパリティ値PRTが“0”であれば信号I1_Bは“1”の値を有する。上述したように、現在のパリティ値PRTはカウント値CVの更新前におけるパリティ値PRTに相当する。
【0075】
セレクタ127_Bは、判定回路110_Bからの信号B1に応じて信号H1_B又はI1_Bを信号G1_Bとして出力する。具体的には、セレクタ127_Bは、信号B1が“1”の値を有するときには信号H1_Bを信号G1_Bとして出力し、信号B1が“0”の値を有するときには信号I1_Bを信号G1_Bとして出力する。実施例EX1_4において信号G1_Bの値が演算値NEXTである。即ち、次回に信号CLKにアップエッジが生じたとき、パリティ値PRTは信号G1_Bの値にて更新される。
【0076】
故に、図14の構成が採用される場合、更新前のカウント値CVが第2数値パターンに該当するときには(即ち“B1=1”のときには)アップエッジが生じてもパリティ値PRTは変化せず、更新前のカウント値CVが第2数値パターンに該当しないときには(即ち“B1=0”のときには)信号CLKのアップエッジを契機にパリティ値PRTが変化する。更新前のカウント値CVが第2数値パターンに該当しないことは、更新前のカウント値CVが第1数値パターンに該当することを意味するからである。
【0077】
バイナリカウンタ1が8ビットのアップカウンタであることが想定して実施例EX1_4に係る構成を説明したが、アップカウンタのビット数が8ビット以外でも実施例EX1_4に係る構成を適用可能である。例えば“N=7”のアップカウンタを構成する場合、図9の構成を基準に、信号B2を生成するための回路のみを判定回路130を設け且つ決定回路140にて信号B2と現在のパリティ値PRTとに基づき演算値NEXTが導出されるよう変形すれば良い。図15の判定回路130_B及び決定回路140_Bは当該変形後の判定回路130及び決定回路140であり、決定回路140_Bから演算値NEXTを有する信号G2_Bが出力される。
【0078】
[実施例EX1_5]
実施例EX1_5を説明する。第1実施形態における上述の各説明では、カウント値CVが(2-1)まで増加可能であって、“CV=2-1”であるときに信号CLKにアップエッジが生じるとカウント値CVが規定値の“0”に設定及び更新されることが想定されている。カウント値CVが規定値に設定される処理をリセット処理と称する。実施例EX1_5に係るリセット処理において規定値は“0”である。
【0079】
設計によっては、カウント値CVが(2-1)に達する前にリセット処理を行う場合がある。実施例EX1_5では、カウント値CVが(2-1)に達する前にリセット処理が行われるものとする。実施例EX1_5に係るカウント回路2は、カウント値CVが所定のリセット値CRST1を有する状態でカウントアップ処理が行われるとき、カウント値CVに規定値(0)を設定するリセット処理を実行する。リセット値CRST1は(2-1)より小さい、即ち、ビットb[0]~b[N-1]が全て1の値を有するときのカウント値CVよりも小さい。
【0080】
具体的には、実施例EX1_5に係る処理回路4は、“CV=CRST1”であるときに“IV=0”の入力値IVを出力すれば良い。これにより“CV=CRST1”であるときに信号CLKにアップエッジが生じると、カウント値CVがリセット値CRST1から規定値(0)に更新される。
【0081】
但し、カウント値CVが(2-1)に達する前にリセット処理を行う場合、“CV=CRST1”であるときの対象数TGによっては、回路追加が必要となる。これについて、“N=8”である状況を想定し、図8の回路構成を例にとり説明する。
【0082】
まずリセット値CRST1が2進数表記で“11010011”であるケースCS1_3aを考える。ケースCS1_3aでは、カウント値CVが2進数表記で“11010011”である状態からリセット処理により2進数表記で“00000000”である状態に更新されるとき、対象数TGの偶奇性が変化する。一方で、“11010011”のパターンは元々第1数値パターンに該当し、カウント値CVが2進数表記で“11010011”であるときには、図8の回路111bが“1”の信号b1を出力する。このため、ケースCS1_3aでは、図8の回路に対して特段の変更は不要である。
【0083】
次にリセット値CRST1が2進数表記で“11000011”であるケースCS1_3bを考える。ケースCS1_3bでは、カウント値CVが2進数表記で“11000011”である状態からリセット処理により2進数表記で“00000000”である状態に更新されるとき、対象数TGの偶奇性は変化しない。このため、ケースCS1_3bでは、図8の回路111bを図16の回路111b’へと変形する必要がある。回路111b’は、“(D[2],D[1],D[0])=(0,1,1)”が成立し且つ“(D[7],D[6],D[5],D[4],D[3])=(1,1,0,0,0)”が不成立のときに限り“1”の信号b1を出力し、それ以外のときに“0”の信号b1を出力する。加えて、ケースCS1_3bでは、判定回路110に対して信号j1を出力する要素判定回路111jを追加する(図16参照)。回路111jは、“(D[7],D[6],D[5],D[4],D[3],D[2],D[1],D[0])=(1,1,0,0,0,0,1,1)”の成立時においてのみ“1”の信号j1を出力し、それ以外では“0”の信号j1を出力する。そして、ケースCS1_3bに係る論理和回路113は、図16に示す如く、信号e1~j1の論理和信号を信号B1として生成及び出力する。即ち、ケースCS1_3bでは信号e1、f1、g1、h1、i1及びj1の何れかが“1”の値を有するときにのみ信号B1は“1”の値を持ち、それ以外のときにおいて信号B1は“0”の値を持つ。
【0084】
つまり、ケースCS1_3bでは、最下位ビットb[0]から連続する偶数個のビットb[1]及び b[0]が1の値を有し、且つ、当該偶数個のビットの直近上位ビットb[2]が0の値を有する場合であっても、更新前のカウント値CVがリセット値CRST1と一致する場合にあっては、更新前のカウント値CVは第1数値パターンに該当しないと判定され且つ第2数値パターンに該当すると判定される。結果、ケースCS1_3bにおいて、カウント値CVが2進数表記で“00000000”へと更新される直前にて“(A1,B1,C1,D1)=(0,1,1,0)”となるので、更新前後間においてパリティ値PRTは変化しない。
【0085】
またリセット値CRST1が2進数表記で“11010111”であるケースCS1_3cを考える。ケースCS1_3cでは、カウント値CVが2進数表記で“11010111”である状態からリセット処理により2進数表記で“00000000”である状態に更新されるとき、対象数TGの偶奇性が変化しない。一方で、“11010111”のパターンは元々第2数値パターンに該当し、カウント値CVが2進数表記で“11010111”であるときには、図8の回路111fが“1”の信号f1を出力する。このため、ケースCS1_3cでは、図8の回路に対して特段の変更は不要である。
【0086】
一方、リセット値CRST1が2進数表記で“11000111”であるケースCS1_3dを考える。ケースCS1_3dでは、カウント値CVが2進数表記で“11000111”である状態からリセット処理により2進数表記で“00000000”である状態に更新されるとき、対象数TGの偶奇性が変化する(奇数から偶数へと変化する)。このため、ケースCS1_3dでは、図8の回路111fを図17の回路111f’へと変形する必要がある。回路111f’は、“(D[3],D[2],D[1],D[0])=(0,1,1,1)”が成立し且つ“(D[7],D[6],D[5],D[4])=(1,1,0,0)が不成立のときに限り“1”の信号f1を出力し、それ以外のときに“0”の信号f1を出力する。加えて、ケースCS1_3dでは、判定回路110に対して信号k1を出力する要素判定回路111kを追加する(図17参照)。回路111kは、“(D[7],D[6],D[5],D[4],D[3],D[2],D[1],D[0])=(1,1,0,0,0,1,1,1)”の成立時においてのみ“1”の信号k1を出力し、それ以外では“0”の信号k1を出力する。そして、ケースCS1_3dに係る論理和回路112は、図17に示す如く、信号a1~d1及びk1の論理和信号を信号A1として生成及び出力する。即ち、ケースCS1_3dでは信号a1、b1、c1、d1及びk1の何れかが“1”の値を有するときにのみ信号A1は“1”の値を持ち、それ以外のときにおいて信号A1は“0”の値を持つ。
【0087】
つまり、ケースCS1_3dでは、最下位ビットb[0]から連続する奇数個のビットb[2]~ b[0]が1の値を有し、且つ、当該奇数個のビットの直近上位ビットb[3]が0の値を有する場合であっても、更新前のカウント値CVがリセット値CRST1と一致する場合にあっては、更新前のカウント値CVは第2数値パターンに該当しないと判定され且つ第1数値パターンに該当すると判定される。結果、ケースCS1_3dにおいて、カウント値CVが2進数表記で“00000000”へと更新される直前にて“(A1,B1,C1,D1)=(1,0,0,1)”となるので、更新によりパリティ値PRTは変化する。
【0088】
このように、実施例EX1_5に係る判定回路11は、更新前におけるカウント値CVが第1数値パターン又は第2数値パターンに該当するかを判定するにあたり、必要に応じて、更新前におけるカウント値CVとリセット値CRST1との関係(一致性)を考慮する。
【0089】
<<第2実施形態>>
第2実施形態を説明する。第2実施形態に係る処理回路4はカウントダウン処理を行う。従って、第2実施形態に係るバイナリカウンタ1は、カウントダウン処理によりカウント値CVを1ずつ減少させるNビットのダウンカウンタである。Nビットのアップカウンタと同様に、Nビットのダウンカウンタにおいて、カウント値CVの更新に伴い、対象数TG(ビットb[0]~b[N-1]の内、1の値を有するビットの総数)の偶奇性が変化するかには規則がある。アップカウンタでの規則において“1”と“0”の関係を逆転させて考えれば、ダウンカウンタでの規則が得られる。
【0090】
図18を参照し、Nビットのダウンカウンタにおいて、対象数TGの偶奇性が変化する状況と変化しない状況とを説明する。
【0091】
更新前のカウント値CVのビット列において、最下位ビットb[0]が1の値を有する場合、最下位ビットb[0]から連続する偶数個のビットb[0]~b[2k+1]が0の値を有し且つ当該偶数個のビットの直近上位ビットb[2k+2]が1の値を有する場合、又は、Nが奇数であって且つ全ビットb[0]~b[N-1]が0の値を有する場合、所定の条件Cd1が成立する。それら以外の場合、条件Cd1は不成立である。条件Cd1が成立するとき、カウント値CVの更新に伴って対象数TGの偶奇性が変化する。対象数TGの偶奇性の変化では、対象数TGが偶数から奇数に変化する又は奇数から偶数に変化する。尚、kは“2k+2<N”を満たす0以上且つ任意の整数を表す。
【0092】
更新前のカウント値CVのビット列が条件Cd1を満たすとき、更新前におけるカウント値CVは上述の第1数値パターンに該当する。従って判定回路11(図5参照)は、更新前のカウント値CVのビット列が条件Cd1を満たすか否かに基づき、更新前のカウント値CVが第1数値パターンに該当するかを判定できる。判定回路11は、更新前のカウント値CVのビット列が条件Cd1を満たすとき、更新前のカウント値CVは第1数値パターンに該当すると判定する。第1数値パターンの該当時におけるパリティ値PRTの更新方法は上述した通りである(図6参照)。
【0093】
例えば、更新前のカウント値CVのビット列において“D[0]=1”であれば、カウント値CVの更新により“b[0]=0”に変化するので、対象数TGの偶奇性が変化する。
また例えば、更新前のカウント値CVのビット列において“(D[2],D[1],D[0])=(1,0,0)”であるケースは、最下位ビットb[0]から連続する偶数個のビット(b[1]及び b[0])が0の値を有し、且つ、当該偶数個のビットの直近上位ビット(b[2])が1の値を有するケースである。当該ケースではカウント値CVの更新によりビットb[2]~ b[0]における1の数が1つから2つに変化するので、対象数TGの偶奇性が変化する。
また更新前のカウント値CVのビット列においてNが奇数であって且つ全ビットb[0]~b[N-1]が0の値を有する場合、カウント値CVの更新によりアンダーフロー処理を通じて対象数TGが偶数(0)から奇数(N)に変化するので、対象数TGの偶奇性が変化する。
【0094】
更新前のカウント値CVのビット列において、最下位ビットb[0]から連続する奇数個のビットb[0]~b[2k]が0の値を有し且つ当該奇数個のビットの直近上位ビットb[2k+1]が1の値を有する場合、又は、Nが偶数であって且つ全ビットb[0]~b[N-1]が0の値を有する場合、所定の条件Cd2が成立する。それら以外の場合、条件Cd2は不成立である。条件Cd2が成立するとき、カウント値CVの更新に伴って対象数TGの偶奇性が変化しない、即ちカウント値CVの更新前後において対象数TGの偶奇性は不変である。尚、kは“2k+1<N”を満たす0以上且つ任意の整数を表す。
【0095】
更新前のカウント値CVのビット列が条件Cd2を満たすとき、更新前におけるカウント値CVは上述の第2数値パターンに該当する。従って判定回路11(図5参照)は、更新前のカウント値CVのビット列が条件Cd2を満たすか否かに基づき、更新前のカウント値CVが第2数値パターンに該当するかを判定できる。判定回路11は、更新前のカウント値CVのビット列が条件Cd2を満たすとき、更新前のカウント値CVは第2数値パターンに該当すると判定する。第2数値パターンの該当時におけるパリティ値PRTの更新方法は上述した通りである(図6参照)。
【0096】
例えば、更新前のカウント値CVのビット列において“(D[3],D[2],D[1],D[0])=(1,0,0,0)”であるケースは、最下位ビットb[0]から連続する奇数個のビット(b[2]~ b[0])が0の値を有し、且つ、当該奇数個のビットの直近上位ビット(b[3])が1の値を有するケースである。当該ケースではカウント値CVの更新によりビットb[3]~ b[0]における1の数が1つから3つに変化するが、このとき対象数TGの偶奇性は変化しない。
また更新前のカウント値CVのビット列においてNが偶数であって且つ全ビットb[0]~b[N-1]が0の値を有する場合、カウント値CVの更新によりアンダーフロー処理を通じて対象数TGが0からNに変化するが、0もNも偶数であるので対象数TGの偶奇性は変化しない。
【0097】
第2実施形態は、以下の実施例EX2_1~EX2_5を含む。第2実施形態にて上述した事項は、特に記述無き限り且つ矛盾無き限り、以下の実施例EX2_1~EX2_5に適用される。但し、各実施例において、第2実施形態で上述した事項と矛盾する事項については各実施例での記載が優先されて良い。また矛盾無き限り、実施例EX2_1~EX2_5の内、任意の実施例に記載した事項を、他の任意の実施例に適用することもできる(即ち複数の実施例の内の任意の2以上の実施例を組み合わせることも可能である)。
【0098】
[実施例EX2_1]
実施例EX2_1を説明する。実施例EX2_1では、バイナリカウンタ1が8ビットのダウンカウンタであることが想定される(即ち“N=8”である)。
【0099】
図19に実施例EX2_1に係る判定回路210及び決定回路220を示す。実施例EX2_1では、判定回路210及び決定回路220を図5の判定回路11及び決定回路12として用いることができる。
【0100】
判定回路210は要素判定回路211a~211i並びに論理和回路212及び213を備える。要素判定回路211a~211iは、現在のカウント値CV(D[0]~D[N-1])に基づき、夫々、信号a3~i3を生成及び出力する。現在のカウント値CVは更新前のカウント値CVに相当する。信号a3~i3の夫々は0又は1の値を持つ二値信号である(後述の信号A3~G3も同様)。
【0101】
回路211aは、“D[0]=1”であるときに限り“1”の信号a3を出力し、それ以外のときに“0”の信号a3を出力する。
回路211bは、“(D[2],D[1],D[0])=(1,0,0)”であるときに限り“1”の信号b3を出力し、それ以外のときに“0”の信号b3を出力する。
回路211cは、“(D[4],D[3],D[2],D[1],D[0])=(1,0,0,0,0)”であるときに限り“1”の信号c3を出力し、それ以外のときに“0”の信号c3を出力する。
回路211dは、“(D[6],D[5],D[4],D[3],D[2],D[1],D[0])=(1,0,0,0,0,0,0)”であるときに限り“1”の信号d3を出力し、それ以外のときに“0”の信号d3を出力する。
【0102】
回路211eは、“(D[1],D[0])=(1,0)であるときに限り“1”の信号e3を出力し、それ以外のときに“0”の信号e3を出力する。
回路211fは、“(D[3],D[2],D[1],D[0])=(1,0,0,0)”であるときに限り“1”の信号f3を出力し、それ以外のときに“0”の信号f3を出力する。
回路211gは、“(D[5],D[4],D[3],D[2],D[1],D[0])=(1,0,0,0,0,0)”であるときに限り“1”の信号g3を出力し、それ以外のときに“0”の信号g3を出力する。
回路211hは、“(D[7],D[6],D[5],D[4],D[3],D[2],D[1],D[0])=(1,0,0,0,0,0,0,0)”であるときに限り“1”の信号h3を出力し、それ以外のときに“0”の信号h3を出力する。
回路211iは、“(D[7],D[6],D[5],D[4],D[3],D[2],D[1],D[0])=(0,0,0,0,0,0,0,0)”であるときに限り“1”の信号i3を出力し、それ以外のときに“0”の信号i3を出力する。
【0103】
論理和回路212は、信号a3~d3の論理和信号を信号A3として生成及び出力する。信号a3、b3、c3及びd3の何れかが“1”の値を有するときにのみ信号A3は“1”の値を持ち、それ以外のときにおいて信号A3は“0”の値を持つ。回路211a~211d及び212により、現在のカウント値CVが第1数値パターンに該当するかが判定される。現在のカウント値CVが第1数値パターンに該当する場合にのみ(換言すれば条件Cd1を満たす場合にのみ)信号A3の値が“1”となる。
【0104】
論理和回路213は、信号e3~i3の論理和信号を信号B3として生成及び出力する。信号e3、f3、g3、h3及びi3の何れかが“1”の値を有するときにのみ信号B3は“1”の値を持ち、それ以外のときにおいて信号B3は“0”の値を持つ。回路211e~211i及び213により、現在のカウント値CVが第2数値パターンに該当するかが判定される。現在のカウント値CVが第2数値パターンに該当する場合にのみ(換言すれば条件Cd2を満たす場合にのみ)信号B3の値が“1”となる。
【0105】
決定回路220は回路221及び222と論理積回路223及び224と論理和回路225を備える。回路221は現在のパリティ値PRTに基づき信号C3を生成及び出力する。回路222は現在のパリティ値PRTに基づき信号D3を生成及び出力する。現在のパリティ値PRTはカウント値CVの更新前におけるパリティ値PRTに相当する。回路221は、現在のパリティ値PRTが“0”であるときに“1”の信号C3を出力し、現在のパリティ値PRTが“1”であるときに“0”の信号C3を出力する。回路222は、現在のパリティ値PRTが“1”であるときに“1”の信号D3を出力し、現在のパリティ値PRTが“0”であるときに“0”の信号D3を出力する。
【0106】
論理積回路223は、信号A3及びC3の論理積信号を信号E3として生成及び出力する。信号A3及びC3の双方が“1”の値を有するときにのみ信号E3は“1”の値を持ち、それ以外のときにおいて信号E3は“0”の値を持つ。論理積回路224は、信号B3及びD3の論理積信号を信号F3として生成及び出力する。信号B3及びD3の双方が“1”の値を有するときにのみ信号F3は“1”の値を持ち、それ以外のときにおいて信号F3は“0”の値を持つ。論理和回路225は、信号E3及びF3の論理和信号を信号G3として生成及び出力する。信号E3及びF3の何れかが“1”の値を有するときにのみ信号G3は“1”の値を持ち、それ以外のときにおいて信号G3は“0”の値を持つ。実施例EX2_1において信号G3の値が演算値NEXTである。即ち、次回に信号CLKにアップエッジが生じたとき、パリティ値PRTは信号G3の値にて更新される。
【0107】
[実施例EX2_2]
実施例EX2_2を説明する。実施例EX2_2では、バイナリカウンタ1が7ビットのダウンカウンタであることが想定される(即ち“N=7”である)。
【0108】
図20に実施例EX2_2に係る判定回路230及び決定回路240を示す。実施例EX2_2では、判定回路230及び決定回路240を図5の判定回路11及び決定回路12として用いることができる。
【0109】
判定回路230は要素判定回路231a~231h並びに論理和回路232及び233を備える。要素判定回路231a~231hは、現在のカウント値CV(D[0]~D[N-1])に基づき、夫々、信号a4~h4を生成及び出力する。現在のカウント値CVは更新前のカウント値CVに相当する。信号a4~h4の夫々は0又は1の値を持つ二値信号である(後述の信号A4~G4も同様)。
【0110】
回路231aは、“D[0]=1”であるときに限り“1”の信号a4を出力し、それ以外のときに“0”の信号a4を出力する。
回路231bは、“(D[2],D[1],D[0])=(1,0,0)”であるときに限り“1”の信号b4を出力し、それ以外のときに“0”の信号b4を出力する。
回路231cは、“(D[4],D[3],D[2],D[1],D[0])=(1,0,0,0,0)”であるときに限り“1”の信号c4を出力し、それ以外のときに“0”の信号c4を出力する。
回路231dは、“(D[6],D[5],D[4],D[3],D[2],D[1],D[0])=(1,0,0,0,0,0,0)”であるときに限り“1”の信号d4を出力し、それ以外のときに“0”の信号d4を出力する。
回路231eは、“(D[6],D[5],D[4],D[3],D[2],D[1],D[0])=(0,0,0,0,0,0,0)”であるときに限り“1”の信号e4を出力し、それ以外のときに“0”の信号e4を出力する。
【0111】
回路231fは、“(D[1],D[0])=(1,0)”であるときに限り“1”の信号f4を出力し、それ以外のときに“0”の信号f4を出力する。
回路231gは、“(D[3],D[2],D[1],D[0])=(1,0,0,0)”であるときに限り“1”の信号g4を出力し、それ以外のときに“0”の信号g4を出力する。
回路231hは、“(D[5],D[4],D[3],D[2],D[1],D[0])=(1,0,0,0,0,0)”であるときに限り“1”の信号h4を出力し、それ以外のときに“0”の信号h4を出力する。
【0112】
論理和回路232は、信号a4~e4の論理和信号を信号A4として生成及び出力する。信号a4、b4、c4、d4及びe4の何れかが“1”の値を有するときにのみ信号A4は“1”の値を持ち、それ以外のときにおいて信号A4は“0”の値を持つ。回路231a~231e及び232により、現在のカウント値CVが第1数値パターンに該当するかが判定される。現在のカウント値CVが第1数値パターンに該当する場合にのみ(換言すれば条件Cd1を満たす場合にのみ)信号A4の値が“1”となる。
【0113】
論理和回路233は、信号f4~h4の論理和信号を信号B4として生成及び出力する。信号f4、g4及びh4の何れかが“1”の値を有するときにのみ信号B4は“1”の値を持ち、それ以外のときにおいて信号B4は“0”の値を持つ。回路231f~231h及び233により、現在のカウント値CVが第2数値パターンに該当するかが判定される。現在のカウント値CVが第2数値パターンに該当する場合にのみ(換言すれば条件Cd2を満たす場合にのみ)信号B4の値が“1”となる。
【0114】
決定回路240は回路241及び242と論理積回路243及び244と論理和回路245を備える。回路241は現在のパリティ値PRTに基づき信号C4を生成及び出力する。回路242は現在のパリティ値PRTに基づき信号D4を生成及び出力する。現在のパリティ値PRTはカウント値CVの更新前におけるパリティ値PRTに相当する。回路241は、現在のパリティ値PRTが“0”であるときに“1”の信号C4を出力し、現在のパリティ値PRTが“1”であるときに“0”の信号C4を出力する。回路242は、現在のパリティ値PRTが“1”であるときに“1”の信号D4を出力し、現在のパリティ値PRTが“0”であるときに“0”の信号D4を出力する。
【0115】
論理積回路243は、信号A4及びC4の論理積信号を信号E4として生成及び出力する。信号A4及びC4の双方が“1”の値を有するときにのみ信号E4は“1”の値を持ち、それ以外のときにおいて信号E4は“0”の値を持つ。論理積回路244は、信号B4及びD4の論理積信号を信号F4として生成及び出力する。信号B4及びD4の双方が“1”の値を有するときにのみ信号F4は“1”の値を持ち、それ以外のときにおいて信号F4は“0”の値を持つ。論理和回路245は、信号E4及びF4の論理和信号を信号G4として生成及び出力する。信号E4及びF4の何れかが“1”の値を有するときにのみ信号G4は“1”の値を持ち、それ以外のときにおいて信号G4は“0”の値を持つ。実施例EX2_2において信号G4の値が演算値NEXTである。即ち、次回に信号CLKにアップエッジが生じたとき、パリティ値PRTは信号G4の値にて更新される。
【0116】
[実施例EX2_3]
実施例EX2_3を説明する。実施例EX2_1及びEX2_2に示した構成においては、カウント値CVの更新に際し、更新前のカウント値CVが第1数値パターンに該当するかを判定する処理(以下、判定処理β1と称する)と、更新前のカウント値CVが第2数値パターンに該当するかを判定する処理(以下、判定処理β2と称する)と、を別個に実行する。実施例EX2_1に示した構成(図19)においては、判定処理β1による判定結果が信号A3にて示され、判定処理β2による判定結果が信号B3にて示される。但し、判定処理β1及びβ2の内、判定処理β1のみ行うことで演算値NEXT(図1及び図19参照)が導出されるようにしても良い。
【0117】
図21に実施例EX2_3に係る判定回路210_A及び決定回路220_Aを示す。実施例EX2_3では、判定回路210_A及び決定回路220_Aを図5の判定回路11及び決定回路12として用いることができる。図21の構成は図19の構成を変形したものに相当する。
【0118】
判定回路210_Aは、図19の判定回路210の内、判定処理β1を行う回路のみを有する。即ち、判定回路210_Aは上述の回路211a~211d及び212のみを有する。回路211a~211d及び212の動作は実施例EX2_1で示した通りである。従って、更新前のカウント値CVに相当する現在のカウント値CVが第1数値パターンに該当する場合にのみ(換言すれば条件Cd1を満たす場合にのみ)信号A3の値が“1”となる。
【0119】
決定回路220_Aは否定回路226_A及びセレクタ227_Aを有する。否定回路226_Aは、現在のパリティ値PRTを有する信号H3_Aの反転信号である信号I3_Aを生成及び出力する。現在のパリティ値PRTが“1”であれば信号I3_Aは“0”の値を有し、現在のパリティ値PRTが“0”であれば信号I3_Aは“1”の値を有する。上述したように、現在のパリティ値PRTはカウント値CVの更新前におけるパリティ値PRTに相当する。
【0120】
セレクタ227_Aは、判定回路210_Aからの信号A3に応じて信号H3_A又はI3_Aを信号G3_Aとして出力する。具体的には、セレクタ227_Aは、信号A3が“1”の値を有するときには信号I3_Aを信号G3_Aとして出力し、信号A3が“0”の値を有するときには信号H3_Aを信号G3_Aとして出力する。実施例EX2_3において信号G3_Aの値が演算値NEXTである。即ち、次回に信号CLKにアップエッジが生じたとき、パリティ値PRTは信号G3_Aの値にて更新される。
【0121】
故に、図21の構成が採用される場合、更新前のカウント値CVが第1数値パターンに該当するときには(即ち“A3=1”のときには)信号CLKのアップエッジを契機にパリティ値PRTが変化し、更新前のカウント値CVが第1数値パターンに該当しないときには(即ち“A3=0”のときには)信号CLKにアップエッジが生じてもパリティ値PRTは変化しない。更新前のカウント値CVが第1数値パターンに該当しないことは、更新前のカウント値CVが第2数値パターンに該当することを意味するからである。
【0122】
バイナリカウンタ1が8ビットのダウンカウンタであることが想定して実施例EX2_3に係る構成を説明したが、ダウンカウンタのビット数が8ビット以外でも実施例EX2_3に係る構成を適用可能である。即ち例えば“N=7”のダウンカウンタを構成する場合、図20の構成を基準に、信号A4を生成するための回路のみを判定回路230を設け且つ決定回路240にて信号A4と現在のパリティ値PRTとに基づき演算値NEXTが導出されるよう変形すれば良い。図22の判定回路230_A及び決定回路240_Aは当該変形後の判定回路230及び決定回路240であり、決定回路240_Aから演算値NEXTを有する信号G4_Aが出力される。
【0123】
[実施例EX2_4]
実施例EX2_4を説明する。実施例EX2_3とは逆に、判定処理β1及びβ2の内、判定処理β2のみ行うことで演算値NEXT(図1及び図19参照)が導出されるようにしても良い。
【0124】
図23に実施例EX2_4に係る判定回路210_B及び決定回路220_Bを示す。実施例EX2_4では、判定回路210_B及び決定回路220_Bを図5の判定回路11及び決定回路12として用いることができる。図23の構成は図19の構成を変形したものに相当する。
【0125】
判定回路210_Bは、図19の判定回路210の内、判定処理β2を行う回路のみを有する。即ち、判定回路210_Bは上述の回路211e~211i及び213のみを有する。回路211e~211i及び213の動作は実施例EX2_1で示した通りである。従って、更新前のカウント値CVに相当する現在のカウント値CVが第2数値パターンに該当する場合にのみ(換言すれば条件Cd2を満たす場合にのみ)信号B3の値が“1”となる。
【0126】
決定回路220_Bは否定回路226_B及びセレクタ227_Bを有する。否定回路226_Bは、現在のパリティ値PRTを有する信号H3_Bの反転信号である信号I3_Bを生成及び出力する。現在のパリティ値PRTが“1”であれば信号I3_Bは“0”の値を有し、現在のパリティ値PRTが“0”であれば信号I3_Bは“1”の値を有する。上述したように、現在のパリティ値PRTはカウント値CVの更新前におけるパリティ値PRTに相当する。
【0127】
セレクタ227_Bは、判定回路210_Bからの信号B3に応じて信号H3_B又はI3_Bを信号G3_Bとして出力する。具体的には、セレクタ227_Bは、信号B3が“1”の値を有するときには信号H3_Bを信号G3_Bとして出力し、信号B3が“0”の値を有するときには信号I3_Bを信号G3_Bとして出力する。実施例EX2_4において信号G3_Bの値が演算値NEXTである。即ち、次回に信号CLKにアップエッジが生じたとき、パリティ値PRTは信号G3_Bの値にて更新される。
【0128】
故に、図23の構成が採用される場合、更新前のカウント値CVが第2数値パターンに該当するときには(即ち“B3=1”のときには)アップエッジが生じてもパリティ値PRTは変化せず、更新前のカウント値CVが第2数値パターンに該当しないときには(即ち“B3=0”のときには)信号CLKのアップエッジを契機にパリティ値PRTが変化する。更新前のカウント値CVが第2数値パターンに該当しないことは、更新前のカウント値CVが第1数値パターンに該当することを意味するからである。
【0129】
バイナリカウンタ1が8ビットのダウンカウンタであることが想定して実施例EX2_4に係る構成を説明したが、ダウンカウンタのビット数が8ビット以外でも実施例EX2_4に係る構成を適用可能である。例えば“N=7”のダウンカウンタを構成する場合、図20の構成を基準に、信号B4を生成するための回路のみを判定回路230を設け且つ決定回路240にて信号B4と現在のパリティ値PRTとに基づき演算値NEXTが導出されるよう変形すれば良い。図24の判定回路230_B及び決定回路240_Bは当該変形後の判定回路230及び決定回路240であり、決定回路240_Bから演算値NEXTを有する信号G4_Bが出力される。
【0130】
[実施例EX2_5]
実施例EX2_5を説明する。第2実施形態における上述の各説明では、カウント値CVが0まで減少可能であって、“CV=0”であるときに信号CLKにアップエッジが生じるとカウント値CVが規定値の“2-1”に設定及び更新されることが想定されている。カウント値CVが規定値に設定される処理をリセット処理と称する。実施例EX2_5に係るリセット処理において規定値は“2-1”である。
【0131】
設計によっては、カウント値CVが0に達する前にリセット処理を行う場合がある。実施例EX2_5では、カウント値CVが0に達する前にリセット処理が行われるものとする。実施例EX2_5に係るカウント回路2は、カウント値CVが所定のリセット値CRST2を有する状態でカウントダウン処理が行われるとき、カウント値CVに規定値(2-1)を設定するリセット処理を実行する。リセット値CRST2は0より大きい、即ち、ビットb[0]~b[N-1]が全て0の値を有するときのカウント値CVよりも大きい。
【0132】
具体的には、実施例EX2_5に係る処理回路4は、“CV=CRST2”であるときに“IV=2-1”の入力値IVを出力すれば良い。これにより“CV=CRST2”であるときに信号CLKにアップエッジが生じると、カウント値CVがリセット値CRST2から規定値(2-1)に更新される。
【0133】
但し、カウント値CVが0に達する前にリセット処理を行う場合、“CV=CRST2”であるときの対象数TGによっては、回路追加が必要となる。必要な回路の追加方法は実施例EX1_5と同様であるため、図示を省略する。
【0134】
例えば、“N=8”である場合において、リセット値CRST2が2進数表記で“11010100”であるケースCS2_3bを考える。ケースCS2_3bでは、カウント値CVが2進数表記で“11010100”である状態からリセット処理により2進数表記で“11111111”である状態に更新されるとき、対象数TGの偶奇性は変化しない。故にケースCS2_3bに係る回路211bは、“(D[2],D[1],D[0])=(1,0,0)”が成立し且つ“(D[7],D[6],D[5],D[4],D[3])=(1,1,0,1,0)”が不成立のときに限り“1”の信号b3を出力し、それ以外のときに“0”の信号b3を出力するよう、変形される(図19参照)。更に、ケースCS2_3bでは、信号e3~i3の何れかが“1”の値を有するときだけではなく、“(D[7],D[6],D[5],D[4],D[3],D[2],D[1],D[0])=(1,1,0,1,0,1,0,0)”の成立時にも信号B3に“1”持たせる回路が判定回路210に追加される。結果、ケースCS2_3bでは、“11010100”のカウント値CVは第1数値パターンに該当しない(条件Cd1を成立させない)と判定され且つ第2数値パターンに該当する(条件Cd2を成立させる)と判定される。そうすると、ケースCS2_3bにおいて、カウント値CVが2進数表記で“11010100”から“11111111”へと更新される直前にて“(A3,B3,C3,D3)=(0,1,1,0)”となるので、更新前後間においてパリティ値PRTは変化しない。
【0135】
また例えば、“N=8”である場合において、リセット値CRST2が2進数表記で“11001000”であるケースCS2_3dを考える。ケースCS2_3dでは、カウント値CVが2進数表記で“11001000”である状態からリセット処理により2進数表記で“11111111”である状態に更新されるとき、対象数TGの偶奇性が変化する(奇数から偶数へと変化する)。故にケースCS2_3dに係る回路211fは、“(D[3],D[2],D[1],D[0])=(1,0,0,0)”が成立し且つ“(D[7],D[6],D[5],D[4])=(1,1,0,0)が不成立のときに限り“1”の信号f3を出力し、それ以外のときに“0”の信号f3を出力するよう、変形される(図19参照)。更に、ケースCS2_3dでは、信号a3~d3の何れかが“1”の値を有するときだけではなく、“(D[7],D[6],D[5],D[4],D[3],D[2],D[1],D[0])=(1,1,0,0,1,0,0,0)”の成立時にも信号A3に“1”持たせる回路が判定回路210に追加される。結果、ケースCS2_3dでは、“11001000”のカウント値CVは第2数値パターンに該当しない(条件Cd2を成立させない)と判定され且つ第1数値パターンに該当する(条件Cd1を成立させる)と判定される。そうすると、ケースCS2_3dにおいて、カウント値CVが2進数表記で“11001000”から“11111111”へと更新される直前にて“(A3,B3,C3,D3)=(1,0,0,1)”となるので、更新によりパリティ値PRTは変化する。
【0136】
このように、実施例EX2_5に係る判定回路11は、更新前におけるカウント値CVが第1数値パターン又は第2数値パターンに該当するかを判定するにあたり、必要に応じて、更新前におけるカウント値CVとリセット値CRST2との関係(一致性)を考慮する。
【0137】
<<第3実施形態>>
第3実施形態を説明する。第3実施形態に係るバイナリカウンタ1はNビットのアップダウンカウンタである。第3実施形態に係る処理回路4はカウントアップ処理又はカウントダウン処理を選択的に実行する。第3実施形態に係るバイナリカウンタ1は、カウントアップモード及びカウントダウンモードの何れかの動作モードにて動作する。バイナリカウンタ1に供給されるモード指定信号に基づき動作モードが決定されても良いし、バイナリカウンタ1に設けられるメモリ内のモード指定データに基づき動作モードが決定されても良い。
【0138】
カウントアップモードにおけるバイナリカウンタ1は、カウントアップ処理によりカウント値CVを1ずつ増加させるNビットのアップカウンタとして動作する。カウントダウンモードにおけるバイナリカウンタ1は、カウントダウン処理によりカウント値CVを1ずつ減少させるNビットのダウンカウンタとして動作する。
【0139】
カウントアップモードにおけるカウント回路2の動作は第1実施形態におけるそれと同じである。従って、カウントアップモードにおいて処理回路4はカウントアップ処理を行う。カウントアップモードにおいて、処理回路4は、“IV=CV+1”が成立するようカウント値CVに基づき入力値IVを生成する。故に、カウントアップモードでは信号CLKのアップエッジが生じるごとにカウント値CVが1ずつ増加してゆく。但し、カウントアップモードにおける処理回路4は、“CV=2-1”が成立するときには、オーバーフロー処理により“IV=0”を成立させる入力値IVを生成する(即ち、バイナリ値E[0]~E[N-1]の全てに0を設定する)。故に、カウントアップモードにおいて、“CV=2-1”が成立する状態にて信号CLKにアップエッジが生じると、カウント値CVは(2-1)からカウント値CVが取り得る最小値(即ち0)に変化する。
【0140】
カウントダウンモードにおけるカウント回路2の動作は第2実施形態におけるそれと同じである。従って、カウントダウンモードにおいて処理回路4はカウントダウン処理を行う。カウントダウンモードにおいて、処理回路4は、“IV=CV-1”が成立するようカウント値CVに基づき入力値IVを生成する。故に、カウントダウンモードでは信号CLKのアップエッジが生じるごとにカウント値CVが1ずつ減少してゆく。但し、カウントダウンモードにおける処理回路4は、“CV=0”が成立するときには、アンダーフロー処理により“IV=2-1”を成立させる入力値IVを生成する(即ち、バイナリ値E[0]~E[N-1]の全てに1を設定する)。故に、カウントダウンモードにおいて、“CV=0”が成立する状態にて信号CLKにアップエッジが生じると、カウント値CVは0からカウント値CVが取り得る最大値(即ち2-1)に変化する。
【0141】
カウントアップモードにおけるパリティビット生成回路6の動作は第1実施形態におけるそれと同じである。カウントダウンモードにおけるパリティビット生成回路6の動作は第2実施形態におけるそれと同じである。実際には例えば、第1実施形態におけるパリティ演算回路7及び第2実施形態におけるパリティ演算回路7を第1及び第2パリティ演算回路としてパリティビット生成回路6に設けておき、カウントアップモードにおいては第1パリティ演算回路を用いて、カウントダウンモードにおいては第2パリティ演算回路を用いて、パリティ値PRTを導出すれば良い。第3実施形態における面積削減効果は第1又は第2実施形態のそれより小さいものの、ビット数の増大につれて面積削減効果が顕著となる。
【0142】
カウントアップモードにおいて、第3実施形態に係る判定回路11は、更新前のカウント値CVのビット列が上述の条件Cu1(図7参照)を満たすか否かに基づき更新前のカウント値CVが第1数値パターンに該当するかを判定でき、条件Cu1の成立時に更新前のカウント値CVが第1数値パターンに該当すると判定すれば良い。第1数値パターンの該当時におけるパリティ値PRTの更新方法は上述した通りである(図6参照)。カウントアップモードにおいて、第3実施形態に係る判定回路11は、更新前のカウント値CVのビット列が上述の条件Cu2(図7参照)を満たすか否かに基づき更新前のカウント値CVが第2数値パターンに該当するかを判定でき、条件Cu2の成立時に更新前のカウント値CVが第2数値パターンに該当すると判定すれば良い。第2数値パターンの該当時におけるパリティ値PRTの更新方法は上述した通りである(図6参照)。
【0143】
同様に、カウントダウンモードにおいて、第3実施形態に係る判定回路11は、更新前のカウント値CVのビット列が上述の条件Cd1(図18参照)を満たすか否かに基づき更新前のカウント値CVが第1数値パターンに該当するかを判定でき、条件Cd1の成立時に更新前のカウント値CVが第1数値パターンに該当すると判定すれば良い。第1数値パターンの該当時におけるパリティ値PRTの更新方法は上述した通りである(図6参照)。カウントダウンモードにおいて、第3実施形態に係る判定回路11は、更新前のカウント値CVのビット列が上述の条件Cd2(図18参照)を満たすか否かに基づき更新前のカウント値CVが第2数値パターンに該当するかを判定でき、条件Cd2の成立時に更新前のカウント値CVが第2数値パターンに該当すると判定すれば良い。第2数値パターンの該当時におけるパリティ値PRTの更新方法は上述した通りである(図6参照)。
【0144】
第3実施形態は、以下の実施例EX3_1~EX3_5を含む。第3実施形態にて上述した事項は、特に記述無き限り且つ矛盾無き限り、以下の実施例EX3_1~EX3_5に適用される。但し、各実施例において、第3実施形態で上述した事項と矛盾する事項については各実施例での記載が優先されて良い。また矛盾無き限り、実施例EX3_1~EX3_5の内、任意の実施例に記載した事項を、他の任意の実施例に適用することもできる(即ち複数の実施例の内の任意の2以上の実施例を組み合わせることも可能である)。
【0145】
[実施例EX3_1]
実施例EX3_1を説明する。実施例EX3_1では、バイナリカウンタ1が8ビットのアップダウンカウンタであることが想定される(即ち“N=8”である)。実施例EX1_1及びEX2_1の組み合わせにより、8ビットのアップダウンカウンタ用のパリティビット生成回路6を構成できる。
【0146】
図25に実施例EX3_1に係るパリティビット生成回路6の構成を示す。実施例EX3_1に係るパリティビット生成回路6は、実施例EX1_1における判定回路110及び決定回路120(図8参照)と、実施例EX2_1における判定回路210及び決定回路220(図19参照)と、セレクタ330と、FF8と、を備える。実施例EX3_1では、判定回路110及び210により判定回路11が構成され、決定回路120及び220により決定回路12が構成される(図5も参照)。
【0147】
セレクタ330は、モード選択信号MODEに応じて、決定回路120から供給される信号G1の値又は決定回路220から供給される信号G3の値を演算値NEXTとして出力する。モード選択信号MODEはバイナリカウンタ1の動作モードを表す信号である。バイナリカウンタ1の動作モードがカウントアップモードに設定されているとき、セレクタ330は信号G1の値を演算値NEXTとして出力する。バイナリカウンタ1の動作モードがカウントダウンモードに設定されているとき、セレクタ330は信号G3の値を演算値NEXTとして出力する。FF8に対してセレクタ330からの演算値NEXTが入力される。FF8は信号CLKのアップエッジを契機に自身への入力値(従って演算値NEXT)を取り込み、自身の記憶値を取り込んだ値にて更新する。FF8は自身の記憶値をパリティ値PRTとして出力する。FF8から出力されるパリティ値PRTは決定回路120及び220に帰還入力される。
【0148】
これにより、カウントアップモードでは実施例EX1_1と同じ動作にてパリティ値PRTが導出され、カウントダウンモードでは実施例EX2_1と同じ動作にてパリティ値PRTが導出される。
【0149】
[実施例EX3_2]
実施例EX3_2を説明する。実施例EX3_2では、バイナリカウンタ1が7ビットのアップダウンカウンタであることが想定される(即ち“N=7”である)。実施例EX1_2及びEX2_2の組み合わせにより、7ビットのアップダウンカウンタ用のパリティビット生成回路6を構成できる。
【0150】
図26に実施例EX3_2に係るパリティビット生成回路6の構成を示す。実施例EX3_2に係るパリティビット生成回路6は、実施例EX1_2における判定回路130及び決定回路140(図9参照)と、実施例EX2_2における判定回路230及び決定回路240(図20参照)と、セレクタ350と、FF8と、を備える。実施例EX3_2では、判定回路130及び230により判定回路11が構成され、決定回路140及び240により決定回路12が構成される(図5も参照)。
【0151】
セレクタ350は、モード選択信号MODEに応じて、決定回路140から供給される信号G2の値又は決定回路240から供給される信号G4の値を演算値NEXTとして出力する。モード選択信号MODEはバイナリカウンタ1の動作モードを表す信号である。バイナリカウンタ1の動作モードがカウントアップモードに設定されているとき、セレクタ350は信号G2の値を演算値NEXTとして出力する。バイナリカウンタ1の動作モードがカウントダウンモードに設定されているとき、セレクタ350は信号G4の値を演算値NEXTとして出力する。FF8に対してセレクタ350からの演算値NEXTが入力される。FF8は信号CLKのアップエッジを契機に自身への入力値(従って演算値NEXT)を取り込み、自身の記憶値を取り込んだ値にて更新する。FF8は自身の記憶値をパリティ値PRTとして出力する。FF8から出力されるパリティ値PRTは決定回路140及び240に帰還入力される。
【0152】
これにより、カウントアップモードでは実施例EX1_2と同じ動作にてパリティ値PRTが導出され、カウントダウンモードでは実施例EX2_2と同じ動作にてパリティ値PRTが導出される。
【0153】
[実施例EX3_3]
実施例EX3_3を説明する。アップダウンカウンタに対しても実施例EX1_3又はEX2_3に示した構成を採用できる。即ちアップダウンカウンタにおいて、カウントアップモードでは上述の判定処理α1及びα2の内、判定処理α1のみを行い、カウントダウンモードでは上述の判定処理β1及びβ2の内、判定処理β1のみを行うようにしても良い。
【0154】
従って、“N=8”が想定された図25の構成において、判定回路110及び決定回路120として図12の判定回路110_A及び決定回路120_Aを用い、決定回路120_Aの出力信号G1_Aを信号G1としてセレクタ330に供給して良い。また図25の構成において、判定回路210及び決定回路220として図21の判定回路210_A及び決定回路220_Aを用い、決定回路220_Aの出力信号G3_Aを信号G3としてセレクタ330に供給して良い。
【0155】
同様に、“N=7”が想定された図26の構成において、判定回路130及び決定回路140として図13の判定回路130_A及び決定回路140_Aを用い、決定回路140_Aの出力信号G2_Aを信号G2としてセレクタ350に供給して良い。また図26の構成において、判定回路230及び決定回路240として図22の判定回路230_A及び決定回路240_Aを用い、決定回路240_Aの出力信号G4_Aを信号G4としてセレクタ350に供給して良い。
【0156】
[実施例EX3_4]
実施例EX3_4を説明する。アップダウンカウンタに対しても実施例EX1_4又はEX2_4に示した構成を採用できる。即ちアップダウンカウンタにおいて、カウントアップモードでは上述の判定処理α1及びα2の内、判定処理α2のみを行い、カウントダウンモードでは上述の判定処理β1及びβ2の内、判定処理β2のみを行うようにしても良い。
【0157】
従って、“N=8”が想定された図25の構成において、判定回路110及び決定回路120として図14の判定回路110_B及び決定回路120_Bを用い、決定回路120_Bの出力信号G1_Bを信号G1としてセレクタ330に供給して良い。また図25の構成において、判定回路210及び決定回路220として図23の判定回路210_B及び決定回路220_Bを用い、決定回路220_Bの出力信号G3_Bを信号G3としてセレクタ330に供給して良い。
【0158】
同様に、“N=7”が想定された図26の構成において、判定回路130及び決定回路140として図15の判定回路130_B及び決定回路140_Bを用い、決定回路140_Bの出力信号G2_Bを信号G2としてセレクタ350に供給して良い。また図26の構成において、判定回路230及び決定回路240として図24の判定回路230_B及び決定回路240_Bを用い、決定回路240_Bの出力信号G4_Bを信号G4としてセレクタ350に供給して良い。
【0159】
[実施例EX3_5]
実施例EX3_5を説明する。アップダウンカウンタに対しても実施例EX1_5又はEX2_5に示したリセット処理を適用できる。バイナリカウンタ1がカウントアップモードで動作するときにおいてリセット処理が実行されるのであれば、実施例EX1_5に示した方法に従ってパリティ値PRTを生成するための回路を適宜変形すれば良い。バイナリカウンタ1がカウントダウンモードで動作するときにおいてリセット処理が実行されるのであれば、実施例EX2_5に示した方法に従ってパリティ値PRTを生成するための回路を適宜変形すれば良い。
【0160】
<<変形等>>
任意の信号又は電圧に関して、上述の主旨を損なわない形で、それらのハイレベルとローレベルの関係は上述したものの逆とされ得る。
【0161】
本開示において、パリティビットが有するパリティ値PRTは“0”又は“1”の値を有する。上述の各実施形態では、“0”のパリティ値PRTを対象数TGが偶数であることに対応付け且つ“1”のパリティ値PRTを対象数TGが奇数であることに対応付けているが、それらの関係は逆であっても良い。即ち、“0”のパリティ値PRTは対象数TGが奇数であることを指し示し、且つ、“1”のパリティ値PRTは対象数TGが偶数であることを指し示すようにしても良い。
【0162】
カウントアップ処理にてカウント値CVを1ずつ増大させる構成を上述したが、カウントアップ処理にてカウント値CVをmずつ増大させる構成に対して本開示に係る技術を適用しても良い。同様に、カウントダウン処理にてカウント値CVを1ずつ減少させる構成を上述したが、カウントダウン処理にてカウント値CVをmずつ減少させる構成に対して本開示に係る技術を適用しても良い。mは2以上の任意の整数を表す。
【0163】
本開示の実施形態は、特許請求の範囲に示された技術的思想の範囲内において、適宜、種々の変更が可能である。以上の実施形態は、あくまでも、本開示の実施形態の例であって、本開示ないし各構成要件の用語の意義は、以上の実施形態に記載されたものに制限されるものではない。上述の説明文中に示した具体的な数値は、単なる例示であって、当然の如く、それらを様々な数値に変更することができる。
【0164】
<<付記>>
上述の実施形態にて具体的構成例が示された本開示について付記を設ける。
【0165】
本開示の一側面に係るパリティビット生成回路は、カウントアップ処理又はカウントダウン処理によりカウント値(CV)を更新するバイナリカウンタ(1)のパリティビットを生成するパリティビット生成回路(6)であって、前記パリティビットの値(PRT)は、前記カウント値の全ビットの内、1の値を有するビットの総数の偶奇性を表し、前記カウント値の更新前における前記パリティビットの値と、前記カウント値の更新前における前記カウント値の各ビットの値と、に基づき、前記カウント値の更新後における前記パリティビットの値を決定する構成(第1の構成)である。
【0166】
これにより、小さなサイズでバイナリカウンタのパリティビットを生成することができる。
【0167】
上記第1の構成に係るパリティビット生成回路において、更新前における前記カウント値が所定の第1数値パターンに該当するかの判定及び更新前における前記カウント値が所定の第2数値パターンに該当するかの判定の内、少なくとも一方を行うよう構成された判定回路(11)と、前記カウント値の更新前における前記パリティビットの値と、前記判定回路の判定結果と、に基づき、前記カウント値の更新後における前記パリティビットの値を決定するよう構成された決定回路(12)と、を備える構成(第2の構成)であっても良い。
【0168】
上記第2の構成に係るパリティビット生成回路において、更新前における前記カウント値が前記第1数値パターンに該当する場合において前記カウント値が更新されるとき前記偶奇性が変化し、更新前における前記カウント値が前記第2数値パターンに該当する場合において前記カウント値が更新されるとき前記偶奇性は不変である構成(第3の構成)であっても良い。
【0169】
上記第3の構成に係るパリティビット生成回路において、前記パリティビットは第1の値(例えば“0”)又は第2の値(例えば“1”)を有し、前記第1の値を有する前記パリティビットは、前記カウント値の全ビットの内、1の値を有するビットの総数が偶数であることを表し、前記第2の値を有する前記パリティビットは、前記カウント値の全ビットの内、1の値を有するビットの総数が奇数であることを表し、
図6の第1ケース:前記カウント値の更新前における前記パリティビットが前記第1の値を有し且つ更新前における前記カウント値が前記第1数値パターンに該当する場合において、前記カウント値の更新が行われるとき、前記決定回路は、前記カウント値の更新に伴って前記パリティビットの値を前記第1の値から前記第2の値に変更し、
図6の第2ケース:前記カウント値の更新前における前記パリティビットが前記第2の値を有し且つ更新前における前記カウント値が前記第1数値パターンに該当する場合において、前記カウント値の更新が行われるとき、前記決定回路は、前記カウント値の更新に伴って前記パリティビットの値を前記第2の値から前記第1の値に変更し、
図6の第3ケース:前記カウント値の更新前における前記パリティビットが前記第1の値を有し且つ更新前における前記カウント値が前記第2数値パターンに該当する場合において、前記カウント値の更新が行われるとき、前記決定回路は、前記カウント値の更新前後において前記パリティビットの値を前記第1の値にて維持し、
図6の第4ケース:前記カウント値の更新前における前記パリティビットが前記第2の値を有し且つ更新前における前記カウント値が前記第2数値パターンに該当する場合において、前記カウント値の更新が行われるとき、前記決定回路は、前記カウント値の更新前後において前記パリティビットの値を前記第2の値にて維持する構成(第4の構成)であっても良い。
尚、第1の値に対して“0”が対応付けられ且つ第2の値に対して“1”が対応付けられても良いし、第1の値に対して“1”が対応付けられ且つ第2の値に対して“0”が対応付けられても良い。
【0170】
上記第2~第4の構成の何れかに係るパリティビット生成回路において、前記バイナリカウンタは前記カウントアップ処理により前記カウント値を1ずつ増加させるNビットのアップカウンタであって、Nは2以上の整数を表し、対象ビット列は、前記カウント値の更新前における前記カウント値のビット列であり、前記判定回路は、前記対象ビット列に関して第1条件(Cu1)の成否に基づき、更新前における前記カウント値が前記第1数値パターンに該当するかを判定する第1判定処理(α1)、及び、前記対象ビット列に関して第2条件(Cu2)の成否に基づき、更新前における前記カウント値が前記第2数値パターンに該当するかを判定する第2判定処理(α2)の内、少なくとも一方を実行し、前記対象ビット列において、最下位ビットが0の値を有する場合、前記最下位ビットから連続する偶数個のビットが1の値を有し且つ前記偶数個のビットの直近上位ビットが0の値を有する場合、又は、Nが奇数であって且つ前記対象ビット列の全ビットが1の値を有する場合、前記第1条件が成立し、前記対象ビット列において、前記最下位ビットから連続する奇数個のビットが1の値を有し且つ前記奇数個のビットの直近上位ビットが0の値を有する場合、又は、Nが偶数であって且つ前記対象ビット列の全ビットが1の値を有する場合、前記第2条件が成立する構成(第5の構成)であっても良い。
【0171】
上記第2~第4の構成の何れかに係るパリティビット生成回路において、前記バイナリカウンタは前記カウントダウン処理により前記カウント値を1ずつ減少させるNビットのダウンカウンタであって、Nは2以上の整数を表し、対象ビット列は、前記カウント値の更新前における前記カウント値のビット列であり、前記判定回路は、前記対象ビット列に関して第1条件(Cd1)の成否に基づき、更新前における前記カウント値が前記第1数値パターンに該当するかを判定する第1判定処理(β1)、及び、前記対象ビット列に関して第2条件(Cd2)の成否に基づき、更新前における前記カウント値が前記第2数値パターンに該当するかを判定する第2判定処理(β2)の内、少なくとも一方を実行し、前記対象ビット列において、最下位ビットが1の値を有する場合、前記最下位ビットから連続する偶数個のビットが0の値を有し且つ前記偶数個のビットの直近上位ビットが1の値を有する場合、又は、Nが奇数であって且つ前記対象ビット列の全ビットが0の値を有する場合、前記第1条件が成立し、前記対象ビット列において、前記最下位ビットから連続する奇数個のビットが0の値を有し且つ前記奇数個のビットの直近上位ビットが1の値を有する場合、又は、Nが偶数であって且つ前記対象ビット列の全ビットが0の値を有する場合、前記第2条件が成立する構成(第6の構成)であっても良い。
【0172】
上記第2~第4の構成の何れかに係るパリティビット生成回路において、前記バイナリカウンタは前記カウントアップ処理及び前記カウントダウン処理を選択的に実行するNビットのアップダウンカウンタであって、Nは2以上の整数を表し、前記バイナリカウンタは第1モード(カウントアップモード)にて前記カウントアップ処理により前記カウント値を1ずつ増加させる一方、第2モード(カウントダウンモード)にて前記カウントダウン処理により前記カウント値を1ずつ減少させ、対象ビット列は、前記カウント値の更新前における前記カウント値のビット列であり、前記第1モードにおいて、前記判定回路は、前記対象ビット列に関して第1条件(Cu1)の成否に基づき、更新前における前記カウント値が前記第1数値パターンに該当するかを判定する第1判定処理(α1)、及び、前記対象ビット列に関して第2条件(Cu2)の成否に基づき、更新前における前記カウント値が前記第2数値パターンに該当するかを判定する第2判定処理(α2)の内、少なくとも一方を実行し、前記対象ビット列において、最下位ビットが0の値を有する場合、前記最下位ビットから連続する偶数個のビットが1の値を有し且つ前記偶数個のビットの直近上位ビットが0の値を有する場合、又は、Nが奇数であって且つ前記対象ビット列の全ビットが1の値を有する場合、前記第1条件が成立し、前記対象ビット列において、前記最下位ビットから連続する奇数個のビットが1の値を有し且つ前記奇数個のビットの直近上位ビットが0の値を有する場合、又は、Nが偶数であって且つ前記対象ビット列の全ビットが1の値を有する場合、前記第2条件が成立する構成(第7の構成)であっても良い。
【0173】
上記第7の構成に係るパリティビット生成回路において、前記第2モードにおいて、前記判定回路は、前記対象ビット列に関して第3条件(Cd1)の成否に基づき、更新前における前記カウント値が前記第1数値パターンに該当するかを判定する第3判定処理(β1)、及び、前記対象ビット列に関して第4条件(Cd2)の成否に基づき、更新前における前記カウント値が前記第2数値パターンに該当するかを判定する第4判定処理(β2)の内、少なくとも一方を実行し、前記対象ビット列において、前記最下位ビットが1の値を有する場合、前記最下位ビットから連続する偶数個のビットが0の値を有し且つ0の値を持つ前記偶数個のビットの直近上位ビットが1の値を有する場合、又は、Nが奇数であって且つ前記対象ビット列の全ビットが0の値を有する場合、前記第3条件が成立し、前記対象ビット列において、前記最下位ビットから連続する奇数個のビットが0の値を有し且つ0の値を持つ前記奇数個のビットの直近上位ビットが1の値を有する場合、又は、Nが偶数であって且つ前記対象ビット列の全ビットが0の値を有する場合、前記第4条件が成立する構成(第8の構成)であっても良い。
【0174】
本開示の一側面に係るバイナリカウンタは、上記第1~第8の構成の何れかに係るパリティビット生成回路と、入力信号に同期して前記カウント値を更新するカウント回路と、を備える構成(第9の構成)である。
【符号の説明】
【0175】
1 バイナリカウンタ
2 カウント回路
3 保持回路
4 処理回路
5、5[0]~5[N-1]、8 FF(フリップフロップ)
6 パリティビット生成回路
7 パリティ演算回路
CV カウント値
IV 入力値
PRT パリティ値
b[0]~b[N-1] ビット
11 判定回路
12 決定回路
110、130、110_A、130_A、110_B、130_B 判定回路
120、140、120_A、140_A、120_B、140_B 決定回路
111a~111k、131a~131h 要素判定回路
112、113、125、132、133、145 論理和回路
121、122、141、142 回路
123、124、143、144 論理積回路
126_A 126_B 否定回路
127_A 127_B セレクタ
210、230、210_A、230_A、210_B、230_B 判定回路
220、240、220_A、240_A、220_B、240_B 決定回路
211a~211i、231a~231h 要素判定回路
212、213、225、232、233、245 論理和回路
221、222、241、242 回路
223、224、243、244 論理積回路
226_A 226_B 否定回路
227_A 227_B セレクタ
330、350 セレクタ
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23
図24
図25
図26