説明

移動平均値算出回路および移動平均値算出方法

【課題】正確な移動平均値を算出することが可能な移動平均値算出回路を提供する。
【解決手段】入力データ記憶回路11は、最新の入力データを記憶する。平均値記憶回路17は、過去の移動平均値を記憶する。減算器13は、その入力データおよび移動平均値の差分を算出する。2分の1演算器は、その差分の2分の1の値を算出する。演算器15は、その差分の2分の1の値にその移動平均値を加算して新しい移動平均値を算出する。絶対値演算器23は、その差分の絶対値を算出する。選択器16は、その差分の絶対値がしきい値より大きいと、平均値記憶回路17による移動平均値の記憶を保持し、その差分の絶対値がしきい値より小さいと、その新しい移動平均値に平均値記憶回路17に記憶された移動平均値を更新する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、デジタルデ−タ値の移動平均値を算出する移動平均値算出回路および移動平均値算出方法に関する。
【背景技術】
【0002】
従来、移動平均値を算出する回路が知られている。
【0003】
図7は、従来の移動平均値を算出する移動平均値算出回路の構成を示した回路図である。
【0004】
図7において、記憶回路71ないし77は、シフトレジスタ回路を構成する。また、記憶回路71ないし77は、リセット信号、クロック信号およびデ−タ確定信号を受け付ける。
【0005】
記憶回路71ないし77は、クロック信号の立ち上がりエッジに同期してデ−タ確定信号をサンプルする。
【0006】
そのサンプルされたデ−タ確定信号が論理1であると、記憶回路77は、記憶回路76が記憶しているデータを記憶し、記憶回路76は、記憶回路75が記憶しているデータを記憶し、記憶回路75は、記憶回路74が記憶しているデータを記憶し、記憶回路74は、記憶回路73が記憶しているデータを記憶し、記憶回路73は、記憶回路72が記憶しているデータを記憶し、記憶回路72は、記憶回路71が記憶しているデータを記憶し、記憶回路71は、デジタル入力データを記憶する。
【0007】
これにより、記憶回路71ないし77のそれぞれは、1ないし7周期前のデ−タ確定信号と共に記憶回路71が受け付けたデジタル入力デ−タを記憶する。
【0008】
8入力加算器78は、現在のデジタル入力デ−タと、記憶回路71ないし77のそれぞれに記憶されたデ−タと、の8個のデ−タを全て加算する。
【0009】
8分の1演算器79は、8入力加算器78の加算結果の8分の1の値を算出する。
【0010】
有効デ−タ数計数器80は、リセット信号、クロック信号およびデ−タ確定信号を受け付ける。有効デ−タ計数器80は、そのリセット信号が論理0の場合、有効数初期値(以下、1とする)を保持する。また、有効デ−タ計数器80は、そのリセット信号が論理1の場合、クロック信号の立ち上がりエッジに同期してデ−タ確定信号をサンプルする。
【0011】
そのサンプルされたデ−タ確定信号が論理0であると、有効デ−タ数計数器80は、現在保持している値の保持を継続する。一方、そのデ−タ確定信号が論理1であると、有効デ−タ数係数器80は、現在保持している値に1をカウントアップする。
【0012】
有効数計数器80は、1が加えられた値が8になると、その後のカウントアップを停止する。これにより、有効数計数器80は、1ないし8のいずれかの値を保持する。
【0013】
選択器81は、有効デ−タ数計数器80が保持している値が7以下の場合、デジタル入力デ−タを平均値記憶回路82に出力する。また、選択器81は、有効デ−タ数計数器80が保持している値が8の場合、8分の1演算器79が算出した値を平均値記憶回路82に出力する。
【0014】
平均値記憶回路82は、リセット信号、クロック信号、デ−タ確定信号および選択器81の出力デ−タを受け付ける。
【0015】
平均値記憶回路82は、そのリセット信号が論理0の場合、平均記憶初期値「1」を記憶する。また、平均値記憶回路82は、そのリセット信号が論理1の場合、クロック信号の立ち上がりエッジに同期してデ−タ確定信号をサンプルする。平均値記憶回路82は、そのサンプルされたデ−タ確定信号が論理1であると、選択器81の出力デ−タを移動平均値として記憶し、その移動平均値を平均値出力デ−タとして出力する。
【0016】
これにより、この移動平均値算出回路では、現在のデジタル入力デ−タと、7周期前までのデジタル入力デ−タとが、全て加算され、その加算結果の8分の1が移動平均値として算出される。
【0017】
この移動平均値算出回路では、7つのデ−タを記憶する記憶回路と、8つのデ−タが入力される加算器とが必要になるため、構成が大きくなる。
【0018】
特許文献1(特開昭59−221769号公報)には、移動平均値算出回路を小さくすることが可能な平均値の演算方式が記載されている。この演算方式は、演算回路と、記憶回路とを含む。
【0019】
記憶回路は、移動平均値を記憶する。演算回路は、外部からデータが入力されるたびに、そのデータと、記憶回路に記憶された移動平均値と、そのデータが過去に入力された回数に基づいて、新しい移動平均値を算出し、その新しい移動平均値を記憶回路に記憶する。
【0020】
このため、過去に入力されたデータを7つ記憶しなくても、移動平均値さえ記憶されれば、新たな移動平均値を算出することが可能になる。したがって、移動平均値算出回路の規模を小さくすることが可能になる。
【特許文献1】特許昭59−221769号公報
【発明の開示】
【発明が解決しようとする課題】
【0021】
例えば、移動平均値算出回路に入力されるデータの測定にエラーが発生して、そのデータが異常な値になった場合、そのデータが用いられて移動平均値が算出されると、その移動平均値も異常な値になる可能性が高い。
【0022】
特に、特許文献1に記載の平均値の演算方式では、入力されたデータおよび過去に算出された移動平均値に基づいて新しい移動平均値を算出しているので、そのデータの移動平均値への追従性が大きい。このため、そのデータが異常な値になった場合、移動平均値は、正しい値から大きく異なる可能性がある。
【0023】
この平均値の演算方式では、新しい移動平均値が所定のしきい値より大きくなると、異常が発生したと判定しているが、そのときに算出された移動平均値に、過去の移動平均値を更新している。
【0024】
したがって、データが異常な値になった場合に、正確な移動平均値を算出することができない可能性がある。
【0025】
本発明の目的は、正確な移動平均値を算出することが可能な平均値算出回路および平均値算出方法を提供することである。
【課題を解決するための手段】
【0026】
上記の目的を達成するために、本発明の移動平均値算出回路は、最新の入力データを記憶する入力データ記憶回路と、過去の入力データの移動平均値を記憶する平均値記憶回路と、しきい値を記憶するしきい値記憶回路と、前記最新の入力データおよび前記移動平均値の差分を算出する減算器と、前記減算器にて算出された差分の2分の1の値を算出する2分の1演算器と、前記2分の1演算器にて算出された値に前記移動平均値を加算して新しい移動平均値を算出する演算器と、前記減算器にて算出された差分の絶対値を算出する絶対値演算器と、前記絶対値演算器にて算出された絶対値が前記しきい値より大きいか否かを判定する管理回路と、 前記管理回路が前記絶対値は前記しきい値より大きいと判定すると、前記新しい平均値を無効と判定し、前記管理回路が前記絶対値は前記しきい値以下と判定すると、前記新しい平均値を有効と判定する判定器と、前記判定器が前記新しい平均値は有効と判定すると、前記平均値記憶回路に記憶されている移動平均値を前記新しい移動平均値に更新し、前記判定器が前記新しい平均値は無効と判定すると、前記平均値記憶回路による移動平均値の記憶を保持する選択器と、を含む。
【0027】
また、本発明の移動平均値算出方法は、最新の入力データを記憶する入力データ記憶回路と、過去の入力データの移動平均値を記憶する平均値記憶回路と、しきい値を記憶する記憶回路と、を含む移動平均値算出方法であって、前記最新の入力データおよび移動平均値の差分を算出する減算ステップと、前記算出された差分の2分の1の値を算出する2分の1演算ステップと、前記算出された差分の2分の1の値に前記移動平均値を加算して新しい移動平均値を算出する演算ステップと、前記算出された差分の絶対値を算出する絶対値演算ステップと、前記算出された絶対値が前記しきい値より大きいか否かを判定する管理ステップと、前記絶対値が前記しきい値より小さいと判定されると、前記新しい平均値を有効と判定する有効判定ステップと、前記新しい平均値が有効と判定されると、前記平均値記憶回路に記憶されている移動平均値を前記新しい移動平均値に更新する更新ステップと、前記絶対値が前記しきい値より大きいと判定されると、前記新しい平均値を無効と判定する無効判定ステップと、前記新しい平均値が無効と判定されると、前記平均値記憶回路による移動平均値の記憶を保持する保持ステップと、を含む。
【0028】
上記の発明によれば、最新の入力デ−タおよび過去の入力デ−タの移動平均値の差分と、その差分の絶対値とが算出される。その絶対値がしきい値より大きくなると、新しい移動平均値が無効と判定され、その絶対値がしきい値以下になると、新しい移動平均値が有効と判定される。新しい移動平均値が有効であると、過去の入力デ−タの移動平均値が新しい移動平均値に更新される。また、新しい移動平均値が無効であると、過去の入力デ−タの移動平均値の記憶が保持される。
【0029】
このため、正確な移動平均値を算出することが可能になる。
【0030】
また、前記管理回路は、前記絶対値が前記しきい値より大きいと連続して判定した判定回数を計数し、前記判定器は、前記判定回数が予め定められた最大回数になると、前記新しい平均値を有効と判定することが望ましい。
【0031】
差分の絶対値が何度も連続してしきい値より大きくなった場合、そのしきい値が適切な値に設定されていない可能性がある。このため、正常な値の移動平均値が算出されても、その移動平均値が無効と判定される可能性がある。
【0032】
上記の発明によれば、差分の絶対値がしきい値より大きいと判定されると、その絶対値がしきい値より大きいと連続して判定された判定回数が計数される。また、その判定回数が最大回数になると、新しい移動平均値が有効と判定される。
【0033】
このため、しきい値が適切な値に設定されていない場合でも、正常な値の新しい移動平均値が算出されると、その新しい移動平均値を有効と判定することが可能になる。
【0034】
また、前記しきい値記憶回路は、前記絶対値に所定の数を乗算して新しいしきい値を生成し、前記判定器が前記新しい移動平均値は有効と判定すると、前記しきい値を前記新しいしきい値に更新することが望ましい。
【0035】
適切なしきい値を予め知ることは、困難な場合がある。
【0036】
上記の発明によれば、その絶対値に所定の数が乗算されて新しいしきい値が生成される。また、新しい移動平均値が有効と判定されると、記憶されているしきい値がその新しいしきい値に更新される。
【0037】
このため、予め適切なしきい値を知ることが困難な場合でも、入力データに応じてそのしきい値を決定することが可能になる。
【0038】
また、前記しきい値記憶回路は、前記新しいしきい値が予め定められた最大値より大きい場合、前記判定器が前記新しい移動平均値は有効と判定すると、前記しきい値を前記最大値に更新することが望ましい。
【0039】
しきい値が大きくなりすぎると、異常な値の移動平均値が算出されても、その移動平均値が有効と判定される可能性がある。
【0040】
上記の発明によれば、新しいしきい値が予め定められた最大値より大きい場合、新しい移動平均値が有効と判定されると、記憶されているしきい値がその最大値に更新される。
【0041】
このため、しきい値が大きくなりすぎるのを防止することが可能になり、正確な移動平均位置を算出することが可能になる。
【0042】
また、前記しきい値記憶回路は、前記新しいしきい値が予め定められた最小値より小さい場合、前記判定器が前記新しい移動平均値は有効と判定すると、前記しきい値を前記最小値に更新することが望ましい。
【0043】
しきい値が小さくなりすぎると、正常な値の移動平均値が算出されても、その移動平均値が無効と判定される可能性がある。
【0044】
上記の発明によれば、新しいしきい値が予め定められた最小値より小さい場合、新しい移動平均値が有効と判定されると、記憶されているしきい値がその最小値に更新される。
【0045】
このため、しきい値が小さくなりすぎるのを防止することが可能になり、正確な移動平均位置を算出することが可能になる。
【0046】
また、前記減算器にて算出された差分から、該最新の入力データの増減方向を示す差分の符号を抽出する抽出器と、前記過去の入力データの増減方向および増減度合を示す増減値を記憶し、かつ、前記抽出器にて抽出された差分の符号が示す増減方向に応じて、前記増減値を更新する符号動向管理回路と、をさらに含み、前記判定器は、前記抽出器にて抽出された差分の符号が示す最新の入力データの増減方向が、前記符号動向管理回路にて更新された増減値が示す増減方向と異なるか否かを検査し、該差分の符号が示す増減方向が該増減値が示す増減方向と異なると、前記新しい移動平均値を無効と判定することが望ましい。
【0047】
差分の絶対値がしきい値より小さくても、例えば、入力データが時間と共に増加しているときに、最新の入力データが減少すると、その最新の入力データは、異常な値である可能性が高い。
【0048】
上記の発明によれば、その差分から最新の入力データの増減方向を示す差分の符号が抽出される。また、その差分の符号が示す増減方向が、増減値が示す増減方向と異なると、新しい移動平均値が無効とされる。
【0049】
このため、差分の絶対値がしきい値より小さくても、異常な値の移動平均値を無効と判定することが可能になる。
【発明の効果】
【0050】
本発明によれば、正確な移動平均値を算出することが可能になる。
【発明を実施するための最良の形態】
【0051】
以下、本発明の実施例について図面を参照して説明する。
【0052】
図1は、本発明の一実施例の移動平均値算出回路の構成を示したブロック図である。
【0053】
図1において、移動平均値算出回路は、入力端子10aと、出力端子10bと、入力デ−タ記憶回路11と、計数回路12と、減算器13と、2分の1演算器14と、演算器15と、選択器16と、平均値記憶回路17および18と、生成回路19とを含む。
【0054】
入力端子10aは、入力デ−タを受け付ける。なお、入力デ−タは、デジタル信号である。
【0055】
入力デ−タ(以下、測定値と称する)は、例えば、半導体集積回路の内部温度である。なお、測定値は、半導体集積回路の内部温度に限らず適宜変更可能である。測定値が半導体集積回路の内部温度の場合、入力端子10aは、その内部温度を測定するセンサ(図示せず)から内部温度を受け付ける。
【0056】
出力端子10bは、平均値記憶回路18が記憶している過去の測定値の移動平均値を出力する。以下、移動平均値を、単に平均値と称する。
【0057】
入力デ−タ記憶回路11は、入力端子10aが受け付けた測定値を定期的にサンプルし、最後にサンプルした測定値を記憶することで、最新の測定値を記憶する。
【0058】
計数回路12は、入力デ−タ記憶回路11が過去に測定値を記憶した回数(以下、記憶回数と称する)を計数する。具体的には、計数回路12は、その記憶回数を2になるまで計数する。
【0059】
減算器13は、入力デ−タ記憶回路11が記憶した測定値および平均値記憶回路17が記憶した平均値の差分を算出する。具体的には、減算器13は、その測定値からその平均値を減算して、その測定値およびと平均値の差分を算出する。
【0060】
2分の1演算器14は、減算器13が算出した差分の2分の1の値(以下、半数と称する)を算出する。
【0061】
演算器15は、その半数に平均値記憶回路17が記憶した平均値を加算して、新しい平均値を算出する。
【0062】
選択器16は、計数回路12が計数した記憶回数が2未満であると、入力デ−タ記憶回路11が記憶した最新の測定値を、平均値記憶回路17および18に記憶する。
【0063】
また、選択器16は、計数回路12が計数した記憶回数が2以上であると、生成回路19による新しい平均値が有効か否かの判定に応じて、平均値記憶回路17が記憶した平均値をその新しい平均値に更新するか否かを判定する。
【0064】
具体的には、生成回路19にて新しい平均値が有効と判定されると、選択器16は、その新しい平均値に平均値記憶回路17および18に記憶した平均値を更新する。
【0065】
一方、生成回路19にて新しい平均値が無効と判定されると、選択器16は、その新しい平均値に平均値記憶回路17および18に記憶した平均値を更新せずに、平均値記憶回路17および18による平均値の記憶を保持する。
【0066】
生成回路19は、新しい平均値が有効か否かを判定する。
【0067】
生成回路19は、符号抽出器20と、局面管理回路21と、符号動向管理回路22と、絶対値演算器23と、しきい値記憶回路24と、超過回数管理回路25と、選択信号生成器26とを含む。
【0068】
符号抽出器20は、抽出器の一例である。符号抽出器20は、減算器13が算出した差分から、その差分の符号を抽出する。差分の符号は、最新の測定値の増減方向を示す。また、差分の符号は、正であると、最新の測定値の増加方向を示し、負であると、最新の測定値の減少方向を示す。なお、本実施例では、差分が0の場合、その差分の符号は、正とする。
【0069】
局面管理回路21は、生成回路19の動作を制御するための状態値を記憶する。
【0070】
符号動向管理回路22は、増減値を記憶する。増減値は、過去の測定値の増減方向および増減度合を示す数値である。増減値は、正であると、過去の測定値が増加傾向であることを示し、負であると、過去の測定値が減少傾向であることを示す。また、増減値は、所定の数値範囲に含まれることが望ましい。
【0071】
絶対値演算器23は、減算器13が算出した差分の絶対値を算出する。
【0072】
しきい値記憶回路24は、新しい平均値が有効か否かを判定するためのしきい値を記憶する。
【0073】
また、しきい値記憶回路24は、絶対値演算器23が算出した絶対値に基づいて、そのしきい値を更新する。
【0074】
具体的には、先ず、しきい値記憶回路24は、減算器13が算出した差分の絶対値に所定の数を乗算して新しいしきい値を生成する。続いて、しきい値記憶回路24は、選択信号生成器26にて新しい平均値が有効と判定されると、記憶しているしきい値をその新しいしきい値に更新する。以下、所定の数は、4とする。なお、所定の数は、4に限らず適宜変更可能である。また、所定の数は、正の整数であることが望ましい。
【0075】
超過回数管理回路25は、管理回路の一例である。
【0076】
超過回数管理回路25は、絶対値演算器23が算出した絶対値と、しきい値記憶回路24が記憶しているしきい値とを比較して、その絶対値がそのしきい値より大きいか否かを判定する。また、超過回数管理回路25は、その絶対値がそのしきい値より大きいと判定すると、その絶対値がそのしきい値より大きいと連続して判定した判定回数を計数し、その判定回数を記憶する。
【0077】
なお、超過回数管理回路25は、その判定回数が予め定められた最大回数になり、続いて、その絶対値がそのしきい値より大きいと判定すると、その判定回数を1にすることが望ましい。
【0078】
選択信号生成器26は、判定器の一例である。
【0079】
選択信号生成器26は、演算器15が算出した新しい平均値が有効か否かを判定する。
【0080】
具体的には、先ず、選択信号生成器26は、符号抽出器20が抽出した差分の符号が示す増減方向が、符号動向管理回路22が記憶している増減値が示す増減方向と異なるか否かを判定する。
【0081】
選択信号生成器26は、その差分の符号が示す増減方向が、その増減値が示す増減方向と異なると、新しい平均値を無効と判定する。
【0082】
一方、選択信号生成器26は、その差分の符号が示す増減方向が、その増減値が示す増減方向と同じであると、以下の条件に応じて、新しい平均値が有効か否かを判定する。
【0083】
具体的には、選択信号生成器26は、超過回数管理回路25がその絶対値はそのしきい値より小さいと判定すると、新しい平均値を有効と判定する。
【0084】
また、選択信号生成器26は、超過回数管理回路25がその絶対値はそのしきい値より大きいと判定し、かつ、超過回数管理回路25にて計数された判定回数がその最大回数であると、新しい平均値を有効と判定する。
【0085】
さらに、選択信号生成器26は、超過回数管理回路25がその絶対値はそのしきい値より大きいと判定し、かつ、超過回数管理回路25にて計数された判定回数がその最大回数より小さいと、新しい平均値を無効と判定する。
【0086】
次に、動作を説明する。
【0087】
図2aないし図3bは、平均値算出回路の動作の一例を説明するためのプログラムを示した説明図である。図2bは、図2aで示したプログラムの続きであり、図3bは、図3aで示したプログラムの続きである。なお、各行の左端に記載された数字は、プログラムの行番号を示す。
【0088】
このプログラムは、VerilogHDLで記載されている。なお、VerilogHDLの言語仕様は、当業者には自明であるため、詳細な説明は省略する。
【0089】
本実施例では、各種の値をVerilogHDLの2進数表記を用いて記すこともある。例えば、VerilogHDLの2進数表記では、論理0は、「1'b0」で示され、論理1は、「1'b1」で示される。
【0090】
なお、入力デ−タ記憶回路11、計数回路12、平均値記憶回路17および18、局面管理回路21、符号動向管理回路22、絶対値演算器23、しきい値記憶回路24および超過回数管理回路25は、レジスタを有する回路であり、そのレジスタに記憶しているデ−タを常に出力する。また、減算器13、2分の1演算器14、演算器15、選択器16、符号抽出器20、絶対値演算器23および選択信号生成器26は、常に演算を行う組み合わせ回路であり、その演算結果を常に出力する。
【0091】
図2aないし図3bにおいて、clockは、内部クロック信号(以下、クロック信号と称する)を示す。また、reset_zは、リセット信号を示す。また、c_valid_pは、デ−タ確定信号を示す。x_data_inは、入力端子10aが受け付けた測定値を示す。c_ave_outは、出力端子10bから出力される平均値を示す。
【0092】
デ−タ確定信号は、論理0の場合、所定の時間が経過すると、論理1に変更される。また、デ−タ確定信号は、論理1の場合、クロック信号の一周期分の時間が経過すると、論理0に変更される。
【0093】
なお、本実施例では、デ−タ確定信号に限らず各種信号は、低レベル電圧であるとき論理0であるとし、高レベル電圧であるとき論理1であるとする。
【0094】
入力端子10aは、測定値を受け付け、その測定値を入力デ−タ記憶回路11に出力する。測定値は、8ビットの符号付2進数であるとする。なお、測定値は、8ビットの符号付2進数に限らず適宜変更可能である。また、本実施例では、測定値に限らず各種の値の負数は、2の補数で示されるとする。
【0095】
図4は、10進数表記および2の補数で負数を示した2進数表記の関係を示した説明図である。
【0096】
2の補数で負数を示した2進数表記されたデータは、最上位ビットが1であると、負数を示し、最上ビットが0であると、正数または零を示す。
【0097】
入力端子10aは、測定値を受け付け、その測定値を入力デ−タ記憶回路11に出力する。
【0098】
入力デ−タ記憶回路11は、図2aにおいて、行番号33でc_rcv_reg[7:0]としてレジスタ宣言され、行番号35ないし42に論理記述されている。
【0099】
入力デ−タ記憶回路11は、リセット信号、クロック信号およびデ−タ確定信号を受け付け、入力端子10aから測定値を受け付ける。
【0100】
そのリセット信号が論理0の場合、入力デ−タ記憶回路11は、測定初期値「0」(ZERO_VALUE=8’h00)を測定値として記憶する。
【0101】
一方、そのリセット信号が論理1の場合、入力デ−タ記憶回路11は、そのデ−タ確定信号および測定値を、クロック信号のエッジに同期してサンプルする。なお、エッジは、立ち上がりエッジでも良いし、立下りエッジでも良い。以下、エッジは立ち上がりエッジとする。
【0102】
そのデ−タ確定信号が論理0であると、入力デ−タ記憶回路11は、クロック信号が次のエッジを示すまで待機する。
【0103】
一方、そのデ−タ確定信号が論理1であると、入力デ−タ記憶回路11は、その測定値を記憶する。
【0104】
また、入力デ−タ記憶回路11は、記憶している測定値を常に減算器13および選択器16に出力する。なお、出力された測定値は、8ビットの符号付2進数である。
【0105】
計数回路12は、図2aにおいて、行番号48でc_flg_1st_rcv[2:1]としてレジスタ宣言され、行番号50ないし57に論理記述されている。
【0106】
計数回路12は、例えば、二つのD型フリップフロップ(以下、D−FFと称する)で構成される。以下、計数回路12は、二つのD−FFで構成されるとする。また、二つのD−FFを、それぞれ、第一D−FF(c_flg_1st_rcv[1])および第二D−FF(c_flg_1st_rcv[2])と称する。
【0107】
第一および第二D−FFは、直列に接続されて、第一D−FFは、記憶している値を常に第二D−FFおよび選択器16に出力する。また、第二D−FFは、記憶している値を常に選択器16に出力する。
【0108】
計数回路12(具体的には、第一D−FFおよび第二D−FF)は、クロック信号、デ−タ確定信号およびリセット信号を受け付ける。
【0109】
そのリセット信号が論理0の場合、第一D−FFおよび第二D−FFは、計数初期値「論理0」を記憶する。
【0110】
一方、そのリセット信号が論理1の場合、第一D−FFおよび第二D−FFは、そのデ−タ確定信号を、クロック信号のエッジに同期してサンプルする。
【0111】
そのデ−タ確定信号が論理0であると、第一D−FFおよび第二D−FFは、クロック信号が次のエッジを示すまで待機する。
【0112】
一方、そのデ−タ確定信号が論理1であると、第一D−FFは、論理1を記憶する。第二D−FFは、第一D−FFから受け付けている値を記憶することで、第一D−FFがデ−タ確定信号をサンプルする直前まで記憶していた値を記憶する。以下、第一D−FFが記憶している値を、第一FF値と称し、第二D−FFが記憶している値を、第二FF値と称する。
【0113】
これにより、第一および第二FF値が共に論理0であると、記憶回数が0であることを示す。また、第一FF値が論理1であり、第二FF値が論理0であると、記憶回数が1であることを示す。さらに、第一および第二FF値が共に論理1であると、記憶回数が2以上であることを示す。したがって、計数回路12は、記憶回数を2になるまで計数することになり、第一FF値および第二FF値からなる情報が記憶回数となる。また、計数回路12は、記憶している記憶回数を常に選択器16出力することになる。
【0114】
減算器13は、図2aにおいて、行番号25でc_delta_w[8:0]としてワイヤ宣言され、行番号65ないし72に論理記述されている。
【0115】
減算器13は、入力デ−タ記憶回路11から測定値(c_rcv_reg)を受け付け、平均値記憶回路17から平均値(c_shadow_ave)を受け付ける。なお、その平均値は、8ビットの符号付2進数である。
【0116】
減算器13は、その測定値および平均値を、9ビットの符号付2進数に符号拡張する。
【0117】
なお、減算器13は、符号拡張を行う拡張回路を含む。この拡張回路は、図2aにおいて、行番号67でfn_8to9bitとして関数宣言され、行番号68ないし72に論理記述されている。この拡張回路は、8ビットの符号付2進数のデ−タ(exp[7:0])を受け付け、そのデ−タの最上位ビット(ビット「7」)を、その8ビットの符号付2進数のデ−タに連結して、その8ビットの符号付2進数のデ−タを9ビット符号付2進数のデ−タに符号拡張する。
【0118】
減算器13は、その測定値からその平均値を減算して、その測定値および平均値の差分を算出する。減算器13は、その差分を2分の1演算器14と、符号抽出器20と、絶対値演算器23とに出力する。
【0119】
2分の1演算器14は、図2aにおいて、行番号26でc_hf_delta_w[7:0]としてワイヤ宣言され、行番号78に論理記述されている。
【0120】
2分の1演算器14は、減算器13から差分を受け付け、その差分の2分の1を算出する。具体的には、2分の1演算器14は、その差分(9ビット符号付2進数)の上位8ビットを、その差分の2分の1として算出する。以下、この差分の2分の1を半数と称する。2分の1演算器14は、半数を算出すると、その半数を演算器15に出力する。
【0121】
演算器15は、図2aにおいて、行番号27でc_results_w[8:0]としてワイヤ宣言され、行番号84および85に論理記述されている。
【0122】
演算器15は、2分の1演算器14から半数(c_hf_delta_w)を受け付け、平均値記憶回路17から平均値を受け付ける。
【0123】
演算器15は、その半数および平均値を9ビットの符号付き2進数に符号拡張する。演算器15は、符号拡張した半数および平均値を加算して新しい平均値(以下、新平均値と称する)を算出する。なお、演算器15は、符号拡張を行う拡張回路を含む。
【0124】
演算器15は、その新平均値を算出すると、その新平均値を選択器16に出力する。
【0125】
選択器16は、図2bにおいて、行番号104でfn_selectorとして関数宣言され、行番号104ないし121に論理記述されている。
【0126】
選択器16は、選択生成信号器26から選択条件信号(c_add0hold1_w)を受け付け、計数回路12から記憶回数(c_flg_1st_rcv[2:1])を受け付け、入力デ−タ記憶回路11から測定値を受け付け、演算器15から新平均値(c_results_w)を受け付け、かつ、平均値記憶回路17から平均値を受け付ける。
【0127】
選択条件信号は、新平均値が無効か否かを示す。なお、選択条件信号は、論理1であると、新平均値の無効を示し、論理0であると、新平均値の有効を示す。
【0128】
選択器16は、その記憶回数が2以上か否かを判定する。
【0129】
その記憶回数が2未満であると、選択器16は、その測定値を平均値記憶回路17および18に記憶する平均値として選択する。
【0130】
一方、その記憶回数が2以上であると、選択器16は、その選択条件信号が新平均値の無効を示すか否かを確認する。
【0131】
その選択条件信号が新平均値の無効を示すと、選択器16は、その平均値を平均値記憶回路17および18に記憶する平均値として選択する。
【0132】
一方、その選択条件信号が新平均値の有効を示すと、選択器16は、その新平均値を平均値記憶回路17および18に記憶する平均値として選択する。
【0133】
なお、新平均値は、9ビットの符号付2進数であり、平均値記憶回路17および18に記憶する平均値は、8ビットの符号付2進数である。このため、選択器16は、平均値記憶回路17および18に記憶する平均値として新平均値を選択する際、その新平均値を8ビット符号付2進数に変換する。
【0134】
具体的には、その新平均値の最上位ビット(ビット「8」)が論理0、かつ、その新平均値の最上位ビットの一桁下のビット(ビット「7」)が論理1の場合、選択器16は、その新平均値を、8ビット符号付2進数の正の最大値(MAX_VALUE=8’h7F)に変換する。
【0135】
また、その新平均値の最上位ビットが論理1、かつ、その新平均値の最上位ビットの一桁下のビットが論理0の場合、選択器16は、その新平均値を、8ビット符号付2進数の負の最小値(MIN_VALUE=8’h80)に変換する。
【0136】
また、その新平均値の最上位ビットが論理0、かつ、その新平均値の最上位ビットの一桁下のビットが論理0の場合、選択器16は、その新平均値を、最上位ビットが論理0であり、下位7桁のビットがその新平均値の下位7桁のビットと等しい8ビット符号付2進数に変換する。
【0137】
また、その新平均値の最上位ビットが論理1、かつ、その新平均値の最上位ビットの一桁下のビットが論理1の場合、選択器16は、その新平均値を、最上位ビットが論理1であり、下位7桁のビットがその新平均値の下位7桁のビットと等しい8ビット符号付2進数に変換する。
【0138】
選択器16は、平均値を選択すると、その平均値を平均値記憶回路17および18に出力する。
【0139】
平均値記憶回路17は、図2bにおいて、行番号63でc_shadow_ave[7:0]としてレジスタ宣言され、平均値記憶回路18は、図2bにおいて、行番号127でc_ave_outとしてレジスタ宣言される。また、平均値記憶回路17および18は、図2bにおいて、行番号129ないし150に論理記述されている。
【0140】
平均値記憶回路17および18は、リセット信号およびクロック信号を受け付け、かつ、選択器16から平均値を受け付ける。
【0141】
そのリセット信号が論理0の場合、平均値記憶回路17および18は、平均初期値「0」(ZERO_VALUE=8’h00)を平均値として記憶する。
【0142】
一方、そのリセット信号が論理1の場合、平均値記憶回路17および18は、選択器16から受け付けた平均値をクロック信号のエッジに同期してサンプルし、そのサンプルした平均値を記憶する。
【0143】
なお、図2bでは、平均値記憶回路17および18のそれぞれは、選択器16を個別に呼び出す。しかしながら、平均値記憶回路18が呼び出す選択器16(行番号135ないし141)と、平均値記憶回路17が呼び出す選択器16(行番号142ないし148)とは、共に同じ信号が入力されているので、平均値記憶回路17および18が受け付ける平均値は、同じ値になる。
【0144】
平均値記憶回路17は、記憶している平均値を常に減算器13、演算器15および選択器16に出力する。平均値記憶回路18は、記憶している平均値を常に出力端子10bに出力する。
【0145】
生成回路19は、図2bでは、行番号91ないし98で、図3aおよび図3bに記載されたプログラムを呼び出すように記載されている。以下、図3aおよび図3bを参照しながら、生成回路19の動作を説明する。
【0146】
図3aおよび図3bにおいて、c_deltaは、減算器13から出力された差分を示す。また、c_add0hold1は、選択条件信号を示す。
【0147】
符号抽出器20は、減算器13から差分を受け付け、その差分からその差分の符号(c_sign_delta)を抽出する。差分の符号は、その差分の最上位ビットである。
【0148】
符号抽出器は、その差分の符号を符号動向管理回路22および選択信号生成器26に出力する。
【0149】
局面管理回路21は、図3aにおいて、行番号36でc_curt_state[2:1]としてレジスタ宣言され、行番号38ないし52に論理記述されている。
【0150】
局面管理回路21は、リセット信号と、クロック信号と、デ−タ確定信号とを受け付ける。
【0151】
そのリセット信号が論理0の場合、局面管理回路21は、局面初期値(HC_IDLE=2’b00)を状態値として記憶する。
【0152】
一方、そのリセット信号が論理1の場合、局面管理回路21は、記憶している状態値およびデ−タ確定信号を、クロック信号のエッジに同期してサンプルする。
【0153】
そのサンプルされた状態値が局面初期値であり、かつ、そのデ−タ確定信号が論理0であると、局面管理回路21は、その状態値の記憶を保持する。
【0154】
また、そのサンプルされた状態値が局面初期値であり、かつ、そのデ−タ確定信号が論理1であると、局面管理回路21は、局面初期値と異なる局面第一値(2’b01)を状態値として記憶する。
【0155】
また、そのサンプルされた状態値が局面第一値であると、局面管理回路21は、局面初期値および局面第一値と異なる局面第二値(2’b10)を状態値として記憶する。
【0156】
さらに、そのサンプルされた状態値が局面第二値であると、局面管理回路21は、局面初期値を状態値として記憶する。
【0157】
局面管理回路21は、記憶している状態値を常に、符号動向管理回路22、超過回数管理回路25および選択信号生成器26に出力する。
【0158】
符号動向管理回路22は、図3aにおいて、行番号64でc_dir_man_count[2:0]としてレジスタ宣言され、行番号66ないし86に論理記述されている。
【0159】
符号動向管理回路22は、リセット信号およびクロック信号を受け付け、局面管理回路21から状態値(c_curt_state[2:1])を受け付け、符号抽出器20から差分の符号(c_sign_delta)を受け付ける。
【0160】
そのリセット信号が論理0の場合、符号動向管理回路22は、増減初期値(3’b011)を増減値として記憶する。
【0161】
一方、そのリセット信号が論理1の場合、符号動向管理回路22は、その増減値、差分の符号および状態値を、クロック信号のエッジに同期してサンプルする。
【0162】
その状態値が局面第一値でないと、符号動向管理回路22は、クロック信号が次のエッジを示すまで待機する。
【0163】
一方、その状態値が局面第一値であると、符号動向管理回路22は、その増減値に基づいて、過去の測定値の増減方向を確認する。なお、過去の測定値の増減方向は、増減値の符号である。増減値の符号は、その増減値の最上位ビット(c_dir_man_count_msb)である。
【0164】
符号動向管理回路22は、その差分の符号および増減値の符号に基づいて、その増減値を更新する。
【0165】
具体的には、その差分の符号および増減値の符号が共に増加傾向を示すと、符号動向管理回路22は、その増減値を最大増加傾向値(MAX_POS_NUM=3’b011)に更新する。また、その差分の符号および増減値の符号が共に減少傾向を示すと、符号動向管理回路22は、その状態値を最大減少傾向値(MIN_POS_NUM=3’b100)に更新する。
【0166】
なお、本実施例では、増減初期値および最大増加傾向値を同じ値「3」であるが、実際には、異なる値でもよい。
【0167】
また、その差分の符号が増加傾向を示し、かつ、その増減値の符号が減少傾向を示すと、符号動向管理回路22は、その増減値に1を加算する。また、その差分の符号が減少傾向を示し、その増減値の符号が増加傾向を示すと、その増減値から1を減算する。
【0168】
なお、本実施例では、増減値は、3ビットの符号付2進数としているが、3ビットの符号付2進数に限らず適宜変更可能である。
【0169】
増減値のビット幅を大きくなるほど、最新の測定値の増加傾向の、過去の測定値の増加傾向への追従性が鈍くなり、増減値のビット幅を小さくなるほど、最新の測定値の増加傾向の、過去の測定値の増加傾向への追従性が鋭くなる。
【0170】
本実施例の場合、例えば、増減値が最大増加傾向値になると、その増減値が測定値の減少傾向を示すためには、その差分の符号が4回連続して負になる必要がある。
【0171】
符号動向管理回路22は、記憶している増減値を常に選択信号生成器26に出力する。
【0172】
絶対値演算器23は、図3bにおいて、行番号19でc_abs_delta[7:0]としてワイヤ宣言され、行番号92ないし102に論理記述されている。さらに言えば、絶対値演算器23は、図3bにおいて、行番号94にfn_abs関数の呼び出しにて論理記述され、fn_abs関数は、行番号96で関数宣言され、行番号97ないし102に論理記述されている。
【0173】
絶対値演算回路23は、減算器13から差分を受け付け、その差分の絶対値を算出する。
【0174】
具体的には、先ず、絶対値演算回路23は、その差分から符号を確認する。続いて、絶対値演算回路23は、その符号が正であると、その差分を、その差分の絶対値として算出する。また、絶対値演算回路23は、その符号が負であると、その差分の全ビットを反転した値に1を加えて、その差分の絶対値を算出する。
【0175】
絶対値演算回路23は、差分の絶対値を算出すると、その差分の絶対値をしきい値記憶回路24および超過回数管理回路25に出力する。
【0176】
しきい値記憶回路24は、図3bにおいて、行番号111でc_abs_threshold_reg[9:0]としてレジスタ宣言され、行番号115ないし127に論理記述されている。
【0177】
しきい値記憶回路24は、リセット信号およびクロック信号を受け付け、選択信号生成器26から選択条件信号を受け付け、絶対値演算器23から差分の絶対値(c_abs_delta[7:0])を受け付ける。
【0178】
しきい値記憶回路24は、差分の絶対値を受け付けると、その差分の絶対値に4を乗算して新しいしきい値を生成する。
【0179】
そのリセット信号が論理0の場合、しきい値記憶回路24は、しきい値初期値「3」(MIN_TH_VAL[9:0]=10’b0000001100)をしきい値として記憶する。なお、しきい初期値は、3に限らず適宜変更可能である。
【0180】
一方、そのリセット信号が論理1の場合、しきい値記憶回路24は、その選択条件信号および新しいしきい値(c_calc_threshold_w)を、クロック信号のエッジに同期してサンプルする。
【0181】
その選択条件信号が新平均値の無効(論理1)を示すと、しきい値記憶回路24は、クロック信号の次のエッジまで待機する。
【0182】
一方、その選択条件信号が新平均値の有効(論理0)を示すと、しきい値記憶回路24は、記憶しているしきい値を、その新しいしきい値に更新する。
【0183】
なお、その新しいしきい値が予め定めた最大値より大きい場合、しきい値記憶回路24は、記憶しているしきい値を、その最大値に更新する。その最大値は、本実施例では、64(MAX_TH_VAL[9:0]=10’b0001000000)であるが、実際には64に限らず、適宜変更可能である。
【0184】
また、その新しいしきい値が予め定めた最小値より小さい場合、しきい値記憶回路24は、記憶しているしきい値を、その最小値に更新する。最小値は、本実施例では、しきい値初期値と同じ値であるが、実際には、しきい値初期値に限らず、適宜変更可能である。
【0185】
しきい値記憶回路24は、記憶しているしきい値を常に超過回数管理回路25に出力する。
【0186】
超過回数管理回路25は、図3bにおいて、行番号139でc_overflow_count[1:0]としてレジスタ宣言され、行番号141ないし154に論理記述されている。
【0187】
超過回数管理回路25は、リセット信号およびクロック信号を受け付け、局面管理回路21から状態値を受け付け、絶対値演算器23から差分の絶対値(c_abs_delta[7:0])を受け付け、しきい値記憶回路24からしきい値を受け付ける。
【0188】
超過回数管理回路25は、その差分の絶対値を受け付けると、その差分の絶対値がそのしきい値よりも大きいか否かを判定する。なお、超過回数管理回路25は、この判定を行う判定回路を含む。その判定回路は、図3aにおいて、行番号23でc_overflow_flgとしてワイヤ宣言され、図3bにおいて、行番号141に論理記述されている。
【0189】
そのリセット信号が論理0の場合、超過回数管理回路25は、判定初期値「0」(OVF_CNT_INIT=2’d0)を判定回数として記憶する。
【0190】
一方、そのリセット信号が論理1の場合、超過回数管理回路25は、その判定回数および状態値を、クロック信号のエッジに同期してサンプルする。
【0191】
その状態値が局面第一値でないと、超過回数管理回路25は、クロック信号が次のエッジを示すまで待機する。
【0192】
一方、その状態値が局面第一値であると、超過回数管理回路25は、判定回路の判定結果(c_overflow_flg)に基づいて、その判定回数を更新する。なお、判定結果は、論理1であると、その差分の絶対値がしきい値より大きいことを示し、論理0であると、差分の絶対値がしきい値以下であることを示す。
【0193】
具体的には、超過回数管理回路25は、その判定結果が論理1であり、かつ、その判定回数が予め定められた最大回数(OVF_CNT_MAX)であると、判定第一値「1」(OVF_CNT_ONE=2’d1)を判定回数として記憶する。最大回数(OVF_CNT_MAX)は、本実施例では、3(2’d3)とする。
【0194】
また、超過回数管理回路25は、その判定結果が論理1であり、かつ、その判定回数がその最大回数でないと、その判定回数に1を加算する。
【0195】
また、超過回数管理回路25は、その判定結果が論理0であると、判定初期値を判定回数として記憶する。
【0196】
超過回数管理回路25は、記憶している判定回数を常に選択信号生成器26に出力する。
【0197】
選択信号生成器26は、図3bにおいて、行番号160ないし168に論理記述されている。
【0198】
選択信号生成器26は、符号抽出器20から差分の符号を受け付け、局面管理回路21から状態値を受け付け、符号動向回路22から増減値を受け付け、超過回数管理回路25から判定回数を受け付ける。
【0199】
選択信号生成器26は、その増減値からその増減値の符号(最上位ビット)を抽出する。選択信号生成器26は、その差分の符号および増減値の符号の論理状態が異なるか否かを検査することで、その差分の符号が示す増減方向がその増減値が示す増減方向と異なるか否かを検査する(行番号160)。なお、この検査結果は、差分の符号が示す増減方向が増減値が示す増減方向と異なると、論理1であり、差分の符号が示す増減方向が増減値が示す増減方向と同じであると、論理0であるとする。
【0200】
また、選択信号生成器26は、その判定回数が、最大回数および判定初期値と異なるか否かを判断する(行番号162および163)。なお、この判断結果は、その判定回数が、最大回数および判定初期値と異なると、論理1であり、その判定回数が、最大回数または判定初期値と同じであると、論理0であるとする。
【0201】
なお、その判定回数が最大回数と同じであると、その判定回数が最大回数になったことを示す。また、その判定回数が判定初期値と同じであると、差分の絶対値がしきい値以下であることを示す。
【0202】
選択信号生成器26は、その検査結果、判断結果および状態値に応じて、選択条件信号を生成する。
【0203】
具体的には、選択信号生成器26は、その状態値が局面第二値でないと、新平均値の無効を示す選択条件信号を生成する。
【0204】
また、選択信号生成器26は、その状態値が局面第二値であっても、その検査結果および判断結果のすくなくともどちらか一方が論理1であると、新平均値の無効を示す選択条件信号を生成する。
【0205】
また、選択信号生成器26は、その状態値が局面第二値であり、かつ、その検査結果および判断結果が論理0であると、新平均値の有効を示す選択条件信号を生成する。
【0206】
次に、移動平均値算出回路内の各種の値の時間変化について説明する。
【0207】
図5aおよび図5bは、移動平均値算出回路内の各種の値およびデ−タの時間変化の一例を説明するためのステ−ト図である。なお、図5bは、図5aの続きである。
【0208】
図5aおよび図5bにおいて、reset_zは、リセット信号を示す。clockは、クロック信号を示す。c_valid_pは、デ−タ確定信号を示す。x_data_in[7:0]は、入力端子10aから出力された測定値を示す。
【0209】
時刻0ないし75において、リセット信号は、論理0である。このため、リセット信号を受け付けるレジスタ回路は初期化される。
【0210】
具体的には、入力デ−タ記憶回路11(c_rcv_reg[7:0])は、測定値「0」を記憶する。また、計数回路12(c_flg_1st_rcv[2:1])は、記憶回数「0」(2'b00)を記憶する。また、局面管理回路21「c_curt_state[2:1]」は、局面初期値「2’b00」を状態値として記憶する。符号動向管理回路22(c_dir_man_count[2:0])は、増減初期値「3」を増減値として記憶する。しきい値記録回路24(c_abs_threshold_reg[9:0])は、しきい値初期値「12」をしきい値として記憶する。超過回数管理回路25(c_overflow_count[1:0])は、判定初期値「0」を判定回数として記憶する。平均値記憶回路17(c_shadow_ave[7:0])および平均値記憶回路18(c_ave_out[7:0])は、初期平均値「0」を平均値として記憶する。
【0211】
なお、図5aおよび図5bにおいて、計数回路12および局面管理回路21が記憶する値のVerilogHDLの2進数表記の「2'b」は、省略している。
【0212】
その後、時刻420において、そのリセット信号が論理1になり、入力端子10aから出力された測定値が「5」になったとする。
【0213】
この時、選択信号生成器26は、局面管理回路21(c_curt_state[2:1])から局面初期値の状態値を受け付けるので、論理1の選択条件信号(c_add0hold1_w)を選択器16に出力する。
【0214】
また、計数回路12(c_flg_1st_rcv[2:1])は、記憶回数「0」を選択器16に出力する。
【0215】
選択器16は、その選択条件信号および記憶回数を受け付けると、その記憶回数が「0」のため、入力デ−タ記憶回路11(c_rcv_reg[7:0])から受け付けた測定値「0」を、平均値として平均値記憶回路17(c_shadow_ave[7:0])および平均値記憶回路18(c_ave_out[7:0])に出力する。
【0216】
その後、時刻435において、クロック信号が立ち上がりエッジを示す。
【0217】
この時、入力デ−タ記憶回路11(c_rcv_reg[7:0])は、論理1のデ−タ確定信号をサンプルするため、入力端子10aが時刻420以降に出力している測定値「5」を記憶する。
【0218】
また、計数回路12(c_flg_1st_rcv[2:1])の第二D−FFは、第一FFから受け付けている第一FF値(論理0)を記憶し、第一D−FFは、論理1を記憶する。
【0219】
また、局面管理回路21(c_curt_state[2:1])は、局面初期値(2'b00)の状態値をサンプルするため、局面第一値(2'b01)を記憶する。
【0220】
また、平均値記憶回路17(c_shadow_ave[7:0])および平均値記憶回路18(c_ave_out[7:0])は、選択器16が時刻420以降に出力している平均値「0」を記憶する。
【0221】
なお、時刻435において、選択信号生成器26は、局面管理回路21(c_curt_state[2:1])から局面初期値の状態値を受け付けるので、論理1の選択条件信号(c_add0hold1_w)を選択器16に出力する。
【0222】
その後、時刻450において、入力デ−タ記憶回路11(c_rcv_reg[7:0])が選択器16に出力する測定値は、「5」に変化する。
【0223】
また、計数回路12(c_flg_1st_rcv[2:1])が選択器16に出力する記憶回数は、「1」(2’b01)に変化する。
【0224】
また、選択信号生成器26は、局面管理回路21(c_curt_state[2:1])から局面第一値の状態値を受け付けるため、論理1の選択条件信号(c_add0hold1_w)を選択器16に出力する。
【0225】
選択器16は、その選択条件信号および記憶回数を受け付けると、その記憶回数が「1」のため、入力デ−タ記憶回路11(c_rcv_reg[7:0])から受け付けた測定値を、平均値として平均値記憶回路17(c_shadow_ave[7:0])および平均値記憶回路18(c_ave_out[7:0])に出力する。
【0226】
その後、時刻465において、クロック信号が立ち上がりエッジを示す。
【0227】
この時、平均値記憶回路17(c_shadow_ave[7:0])および平均値記憶回路18(c_ave_out[7:0])は、選択器16が時刻450以降に出力している平均値「5」を記憶する。
【0228】
また、局面管理回路21(c_curt_state[2:1])は、局面第一値をサンプルするので、局面第二値(2'b10)を記憶する。
【0229】
なお、時刻465において、選択信号生成器16は、局面管理回路21(c_curt_state[2:1])から局面第一値の状態値を受け付けるので、論理1の選択条件信号(c_add0hold1_w)を選択器16に出力する。また、計数回路12(c_flg_1st_rcv[2:1])は、記憶回数「1」を選択器16に出力する。
【0230】
選択器16は、その選択条件信号および記憶回数を受け付けると、その記憶回数が「1」のため、入力デ−タ記憶回路11(c_rcv_reg[7:0])から受け付けた測定値「5」を、平均値として平均値記憶回路17(c_shadow_ave[7:0])および平均値記憶回路18(c_ave_out[7:0])に出力する。
【0231】
その後、時刻480において、選択信号生成器26は、局面管理回路21(c_curt_state[2:1])から受け付けている状態値が局面第二値になり、論理0の選択条件信号(c_add0hold1_w)を選択器16に出力する。また、計数回路12(c_flg_1st_rcv[2:1])は、記憶回数「1」を選択器16に出力する。
【0232】
選択器16は、その選択条件信号および記憶回数を受け付けると、その記憶回数が「1」のため、入力デ−タ記憶回路11(c_rcv_reg[7:0])から受け付けた測定値「5」を、平均値として平均値記憶回路17(c_shadow_ave[7:0])および平均値記憶回路18(c_ave_out[7:0])に出力する。
【0233】
その後、時刻495において、クロック信号が立ち上がりエッジを示す。
【0234】
この時、局面管理回路21(c_curt_state[2:1])は、局面第二値の状態値をサンプルするので、局面初期値を記憶する。
【0235】
また、平均値記憶回路17(c_shadow_ave[7:0])および平均値記憶回路18(c_ave_out[7:0])は、選択器16が時刻480以降に出力している平均値「5」を記憶する。
【0236】
なお、時刻495において、計数回路12(c_flg_1st_rcv[2:1])が出力する記憶回数は「1」である。このため、選択器16は、入力デ−タ記憶回路11(c_rcv_reg[7:0])から受け付けた測定値「5」を平均値として出力する。
【0237】
その後、時刻900において、入力端子10aから出力された測定値が「−2」に変化したとする。
【0238】
この時、選択信号生成器26は、局面管理回路21(c_curt_state[2:1])から局面初期値の状態値を受け付け、論理1の選択条件信号(c_add0hold1_w)を選択器16に出力する。また、計数回路12(c_flg_1st_rcv[2:1])は、記憶回数「1」を選択器16に出力する。
【0239】
選択器16は、その選択条件信号および記憶回数を受け付けると、その記憶回数が「1」のため、入力デ−タ記憶回路11(c_rcv_reg[7:0])から受け付けた測定値「5」を、平均値として平均値記憶回路17(c_shadow_ave[7:0])および平均値記憶回路18(c_ave_out[7:0])に出力する。
【0240】
その後、時刻915において、クロック信号が立ち上がりエッジを示す。
【0241】
その時、入力デ−タ記憶回路11(c_rcv_reg[7:0])は、論理1のデ−タ確定信号(c_valid_p)をサンプルするため、入力端子10aが時刻900以降に出力している測定値「−2」を記憶する。
【0242】
また、計数回路12(c_flg_1st_rcv[2:1])の第二D−FFは、第一FFから受け付けている第一FF値(論理1)を記憶し、第一D−FFは、論理1を記憶する。
【0243】
また、局面管理回路21(c_curt_state[2:1])は、局面初期値の状態値をサンプルするため、局面第一値を記憶する。
【0244】
また、平均値記憶回路17(c_shadow_ave[7:0])および平均値記憶回路18(c_ave_out[7:0])は、選択器16が時刻900以降に出力している平均値「5」を記憶する。
【0245】
なお、時刻915において、選択信号生成器26は、局面管理回路21(c_curt_state[2:1])から局面初期値の状態値を受け付け、論理1の選択条件信号(c_add0hold1_w)を選択器16に出力する。
【0246】
その後、時刻930において、入力デ−タ記憶回路11(c_rcv_reg[7:0])が選択器16に出力する測定値は、「−2」に変化する。
【0247】
また、計数回路12(c_flg_1st_rcv[2:1])が選択器16に出力する記憶回数は、「2」(2'b11)に変化する。なお、その後、計数回路12(c_flg_1st_rcv[2:1])は、そのリセット信号が論理0になるまで、記憶回数「2」を出力する。
【0248】
また、局面管理回路21(c_curt_state[2:1])が出力する状態値は、局面第一値に変化する。
【0249】
減算器13(c_delta_w[8:0])は、入力デ−タ記憶回路11(c_rcv_reg[7:0])から受け付けた測定値「−2」から、平均値記憶回路17(c_shadow_ave[7:0])から受け付けた平均値「5」を減算して差分「−7」を算出し、その差分を出力する。
【0250】
符号抽出器20は、その差分を受け付け、その差分の符号(c_sign_delta)を抽出する。符号抽出器20は、その差分の符号を出力する。
【0251】
選択信号生成器26は、その差分の符号を受け付ける。また、選択信号生成器26は、符号動向管理回路22(c_dir_man_count[2:0])が出力した増減値(増減初期値「3」)を受け付け、その増減値の符号(c_dir_man_count_msb)を抽出する。
【0252】
また、その増減値の符号と差分の符号とが異なるので、選択信号生成器26の検査結果(c_rev_dir_flg)は論理1である。また、選択信号生成器26は、局面管理回路21(c_curt_state[2:1])から局面第一値の状態値を受け付ける。このため、選択信号生成器26は、論理1の選択条件信号(c_add0hold1_w)を選択器16に出力する。
【0253】
また、計数回路12(c_flg_1st_rcv[2:1])は、記憶回数「2」を選択器16に出力する。
【0254】
選択器16は、その選択条件信号および記憶回数を受け付けると、その記憶回数が「2」であり、かつ、その選択条件信号が論理1であるため、平均値記憶回路17(c_shadow_ave[7:0])から受け付けた平均値「5」を、平均値記憶回路17(c_shadow_ave[7:0])および平均値記憶回路18(c_ave_out[7:0])に出力する。
【0255】
なお、以降、選択器16は、計数回路12から記憶回数「2」を受け付け続けるので、選択器16は、論理1の選択条件信号を受け付けているときには、平均値記憶回路17(c_shadow_ave[7:0])から受け付けた平均値を出力し、論理0の選択条件信号を受け付けているときには、演算器15から受け付けた新平均値を平均値として出力することになる。
【0256】
その後、時刻945において、クロック信号が立ち上がりエッジを示す。
【0257】
この時、符号抽出器20は、減算器13から受け付けた差分「−7」からその差分の符号(c_sign_delta)を抽出し、その差分の符号を出力する。
【0258】
符号動向管理回路22は、その差分の符号が負であり、記憶している増減値の符号(c_dir_man_count_msb)が正であり、さらに、局面管理回路21(c_curt_state[2:1])から受け付けた状態値が局面第一値であるため、その記憶している増減値から「1」を減算する。
【0259】
また、局面管理回路21(c_curt_state[2:1])は、局面第一値の状態値をサンプルするので、局面第二値を状態値として記憶する。
【0260】
平均値記憶回路17(c_shadow_ave[7:0])および平均値記憶回路18(c_ave_out[7:0])は、選択器16が時刻930以降に出力している平均値「5」を記憶する。
【0261】
なお、時刻945において、差分の符号(c_sign_delta)と増減値の符号(c_dir_man_count_msb)とが異なるので、選択信号生成器26の検査結果(c_rev_dir_flg)は論理1である。また、選択信号生成器26は、局面管理回路21(c_curt_state[2:1])から局面第一値の状態値を受け付ける。このため、選択信号生成器26は、論理1の選択条件信号(c_add0hold1_w)を選択器16に出力する。
【0262】
また、計数回路12(c_flg_1st_rcv[2:1])は、記憶回数「2」を選択器16に出力する。
【0263】
選択器16は、その選択条件信号および記憶回数を受け付けると、その選択条件信号が論理1のため、平均値記憶回路17(c_shadow_ave[7:0])から受け付けた平均値「5」を、平均値記憶回路17(c_shadow_ave[7:0])および平均値記憶回路18(c_ave_out[7:0])に出力する。
【0264】
その後、時刻960において、平均値記憶回路17(c_shadow_ave[7:0])および平均値記憶回路18(c_ave_out[7:0])は、選択器16が時刻945以降に出力している平均値「5」を記憶する。
【0265】
また、局面管理回路21(c_curt_state[2:1])が出力する状態値は、局面第二値に変化する。また、符号動向管理回路22(c_dir_man_count[2:0])が出力する増減値は、「2」に変化する。
【0266】
また、差分の符号(c_sign_delta)と増減値の符号(c_dir_man_count_msb)とが異なるので、選択信号生成器26の検査結果は、論理1である。このため、選択信号生成器26は、論理1の選択条件信号(c_add0hold1_w)を出力する。
【0267】
また、計数回路12(c_flg_1st_rcv[2:1])は、記憶回数「2」を選択器16に出力する。
【0268】
選択器16は、その選択条件信号および記憶回数を受け付けると、その選択条件信号が論理1のため、平均値記憶回路17(c_shadow_ave[7:0])から受け付けた平均値「5」を、平均値記憶回路17(c_shadow_ave[7:0])および平均値記憶回路18(c_ave_out[7:0])に出力する。
【0269】
その後、時刻975において、クロック信号が立ち上がりエッジを示す。
【0270】
この時、局面管理回路21(c_curt_state[2:1])は、局面第二値の状態値をサンプルするので、局面初期値を記憶する。
【0271】
平均値記憶回路17(c_shadow_ave[7:0])および平均値記憶回路18(c_ave_out[7:0])は、選択器16が時刻960以降に出力している平均値「5」を記憶する。
【0272】
なお、時刻975において、差分の符号(c_sign_delta)と増減値の符号(c_dir_man_count_msb)とが異なるので、選択信号生成器26の検査結果(c_rev_dir_flg)は論理1である。このため、選択信号生成器26は、論理1の選択条件信号(c_add0hold1_w)を出力する。また、計数回路12(c_flg_1st_rcv[2:1])は、記憶回数「2」を選択器16に出力する。
【0273】
選択器16は、その選択条件信号および記憶回数を受け付けると、その選択条件信号が論理1のため、平均値記憶回路17(c_shadow_ave[7:0])から受け付けた平均値「5」を平均値記憶回路17(c_shadow_ave[7:0])および平均値記憶回路18(c_ave_out[7:0])に出力する。
【0274】
その後、時刻1860において、入力端子10aから出力された測定値が「−10」に変化したとする。
【0275】
この時、選択信号生成器26は、局面管理回路21(c_curt_state[2:1])から局面初期値の状態値を受け付けるので、論理1の選択条件信号(c_add0hold1_w)を選択器16に出力する。また、計数回路12(c_flg_1st_rcv[2:1])は、記憶回数「2」を選択器16に出力する。
【0276】
選択器16は、その選択条件信号および記憶回数を受け付けると、その選択条件信号が論理1のため、平均値記憶回路17(c_shadow_ave[7:0])から受け付けた平均値「5」を、平均値として平均値記憶回路17(c_shadow_ave[7:0])および平均値記憶回路18(c_ave_out[7:0])に出力する。
【0277】
その後、時刻1875において、クロック信号が立ち上がりエッジを示す。
【0278】
その時、入力デ−タ記憶回路11(c_rcv_reg[7:0])は、論理1のデ−タ確定信号(c_valid_p)をサンプルするため、入力端子10aが時刻1860以降に出力している測定値「−10」を記憶する。
【0279】
また、局面管理回路21(c_curt_state[2:1])は、局面初期値の状態値をサンプルするため、局面第一値を記憶する。
【0280】
また、平均値記憶回路17(c_shadow_ave[7:0])および平均値記憶回路18(c_ave_out[7:0])は、選択器16が時刻1860以降に出力している平均値「5」を記憶する。
【0281】
なお、時刻1875において、選択信号生成器26は、局面管理回路21(c_curt_state[2:1])から局面初期値の状態値を受け付けるので、論理1の選択条件信号(c_add0hold1_w)を選択器16に出力する。
【0282】
その後、時刻1890において、入力デ−タ記憶回路11(c_rcv_reg[7:0])が選択器16に出力する測定値は、「−10」に変化する。
【0283】
また、局面管理回路21(c_curt_state[2:1])が出力する状態値は、局面第一値に変化する。
【0284】
減算器13(c_delta_w[8:0])は、入力デ−タ記憶回路11(c_rcv_reg[7:0])から受け付けた測定値「−10」から、平均値記憶回路17(c_shadow_ave[7:0])から受け付けた平均値「5」を減算して差分「−15」を算出し、その差分を出力する。
【0285】
絶対値演算器23(c_abs_delta[7:0])は、その差分を受け付け、その差分の絶対値「15」を算出する。
【0286】
また、超過回数管理回路25(c_overflow_count[1:0])は、その差分の絶対値を受け付け、また、しきい値記憶回路24(c_abs_threshold_reg[9:0])からしきい値(しきい値初期値「12」)を受け付ける。
【0287】
超過回数管理回路25(c_overflow_count[1:0])は、その差分の絶対値「15」がそのしきい値より大きいか否かを判定する。この場合、その差分の絶対値「15」がそのしきい値「12」より大きいので、その判定結果(c_overflow_flg)は、論理1である。
【0288】
また、選択信号生成器26は、局面管理回路21(c_curt_state[2:1])から局面初期値の状態値を受け付けるので、論理1の選択条件信号(c_add0hold1_w)を選択器16に出力する。また、計数回路12(c_flg_1st_rcv[2:1])は、記憶回数「2」を選択器16に出力する。
【0289】
選択器16は、その選択条件信号および記憶回数を受け付けると、その選択条件信号が論理1のため、平均値記憶回路17(c_shadow_ave[7:0])から受け付けた平均値「5」を、平均値記憶回路17(c_shadow_ave[7:0])および平均値記憶回路18(c_ave_out[7:0])に出力する。
【0290】
その後、時刻1905において、クロック信号が立ち上がりエッジを示す。
【0291】
この時、符号抽出器20は、減算器13(c_delta_w[8:0])から受け付けた差分「−7」からその差分の符号(c_sign_delta)を抽出し、その差分の符号を出力する。
【0292】
符号動向管理回路22(c_dir_man_count[2:0])は、その差分の符号を受け付け、記憶している増減値「1」からその増減値の符号(c_dir_man_count_msb)を抽出する。
【0293】
また、符号動向管理回路22は、その差分の符号が負であり、その増減値の符号が正であり、さらに、局面管理回路21(c_curt_state[2:1])から受け付けた状態値が局面第一値であるため、記憶している増減値から1を減算する。
【0294】
また、超過回数管理回路25(c_overflow_count[1:0])は、局面管理回路21(c_curt_state[2:1])から受け付ける状態値が局面第一値であり、時刻1890にて判定された判定結果が(c_overflow_flg)が論理1であり、さらに、記憶している判定回数が最大回数「3」と異なるので、その判定回数に1を加算する。
【0295】
また、局面管理回路21(c_curt_state[2:1])は、局面第一値の状態値をサンプルするので、局面第二値を状態値として記憶する。
【0296】
平均値記憶回路17(c_shadow_ave[7:0])および平均値記憶回路18(c_ave_out[7:0])は、選択器16が時刻1890以降に出力している平均値「5」を記憶する。
【0297】
なお、時刻1905において、増減値の符号(c_dir_man_count_msb)と差分の符号(c_sign_delta)とが異なるので、選択信号生成器26の検査結果(c_rev_dir_flg)は論理1である。また、選択信号生成器26は、局面管理回路21(c_curt_state[2:1])から局面第一値の状態値を受け付けるので、論理1の選択条件信号(c_add0hold1_w)を選択器16に出力する。また、計数回路12(c_flg_1st_rcv[2:1])は、記憶回数「2」を選択器16に出力する。
【0298】
選択器16は、その選択条件信号および記憶回数を受け付けると、その選択条件信号が論理1のため、平均値記憶回路17(c_shadow_ave[7:0])から受け付けた平均値「5」を、平均値記憶回路17(c_shadow_ave[7:0])および平均値記憶回路18(c_ave_out[7:0])に出力する。
【0299】
その後、時刻1920において、平均値記憶回路17(c_shadow_ave[7:0])および平均値記憶回路18(c_ave_out[7:0])が記憶している平均値は「5」である。
【0300】
また、局面管理回路21(c_curt_state[2:1])が出力する状態値は、局面第二値に変化する。また、符号動向管理回路22(c_dir_man_count[2:0])が出力する増減値は「0」に変化する。また、超過回数管理回路25(c_overflow_count[1:0])が出力する判定回数は、「1」に変化する。
【0301】
また、その増減値の符号(c_dir_man_count_msb)と差分の符号(c_sign_delta)とは異なるため、選択信号生成器26の検査結果(c_rev_dir_flg)は、論理1である。
【0302】
また、選択信号生成器26は、超過回数管理回路25(c_overflow_count[1:0])から受け付けた判定回数が、判定初期値「0」および最大回数「3」と異なるか否かを判断する。この場合、その判定回数は、判定初期値および最大回数と異なるので、その判断結果は、論理1である。
【0303】
その検査結果および判断結果が共に論理1のため、選択信号生成器26は、論理1の選択条件信号(c_add0hold1_w)を出力する。また、計数回路12(c_flg_1st_rcv[2:1])は、記憶回数「2」を出力する。
【0304】
選択器16は、その選択条件信号および記憶回数を受け付けると、その選択条件信号が論理1のため、平均値記憶回路17(c_shadow_ave[7:0])から受け付けた平均値「5」を、平均値記憶回路17(c_shadow_ave[7:0])および平均値記憶回路18(c_ave_out[7:0])に出力する。
【0305】
その後、時刻1935において、クロック信号が立ち上がりエッジを示す。
【0306】
この時、局面管理回路21(c_curt_state[2:1])は、局面第二値の状態値をサンプルするので、局面初期値を記憶する。
【0307】
平均値記憶回路17(c_shadow_ave[7:0])および平均値記憶回路18(c_ave_out[7:0])は、選択器16が時刻1920以降に出力している平均値「5」を記憶する。
【0308】
なお、時刻1935において、増減値の符号(c_dir_man_count_msb)と差分の符号(c_sign_delta)とが異なるので、選択信号生成器26の検査結果(c_rev_dir_flg)は論理1である。
【0309】
また、超過回数管理回路25(c_overflow_count[1:0])において、記憶している判定回数が、判定初期値および最大回数と異なるので、その判断結果(c_valid_ovf_flg)は論理1となる。このため、選択信号生成器26は、論理1の選択条件信号(c_add0hold1_w)を出力する。
【0310】
また、計数回路12(c_flg_1st_rcv[2:1])は、記憶回数「2」を選択器16に出力する。
【0311】
選択器16は、その選択条件信号および記憶回数を受け付けると、その選択条件信号が論理1のため、平均値記憶回路17(c_shadow_ave[7:0])から受け付けた平均値「5」を平均値記憶回路17(c_shadow_ave[7:0])および平均値記憶回路18(c_ave_out[7:0])に出力する。
【0312】
その後、時刻2340において、入力端子10aから出力された測定値が「−7」に変化したとする。
【0313】
この時、選択信号生成器26は、局面管理回路21(c_curt_state[2:1])から局面初期値の状態値を受け付けるので、論理1の選択条件信号(c_add0hold1_w)を選択器16に出力する。また、計数回路12(c_flg_1st_rcv[2:1])は、記憶回数「2」を選択器16に出力する。
【0314】
選択器16は、その選択条件信号および記憶回数を受け付けると、その選択条件信号が論理1のため、平均値記憶回路17(c_shadow_ave[7:0])から受け付けた平均値「5」を、平均値として平均値記憶回路17(c_shadow_ave[7:0])および平均値記憶回路18(c_ave_out[7:0])に出力する。
【0315】
その後、時刻2355において、クロック信号が立ち上がりエッジを示す。
【0316】
その時、入力デ−タ記憶回路11(c_rcv_reg[7:0])は、論理1のデ−タ確定信号(c_valid_p)をサンプルするため、入力端子10aが時刻2340以降に出力している測定値「−7」を記憶する。
【0317】
また、局面管理回路21(c_curt_state[2:1])は、局面初期値の状態値をサンプルするため、局面第一値を記憶する。
【0318】
また、平均値記憶回路17(c_shadow_ave[7:0])および平均値記憶回路18(c_ave_out[7:0])は、選択器16が時刻2340以降に出力している平均値「5」を記憶する。
【0319】
なお、時刻2355において、選択信号生成器26は、局面管理回路21(c_curt_state[2:1])から局面初期値の状態値を受け付けるので、論理1の選択条件信号(c_add0hold1_w)を選択器16に出力する。
【0320】
その後、時刻2370において、入力デ−タ記憶回路11(c_rcv_reg[7:0])が選択器16に出力する測定値は、「−7」に変化する。
【0321】
また、局面管理回路21(c_curt_state[2:1])が出力する状態値は、局面第一値に変化する。
【0322】
減算器13(c_delta_w[8:0])は、入力デ−タ記憶回路11(c_rcv_reg[7:0])から受け付けた測定値「−7」から、平均値記憶回路17(c_shadow_ave[7:0])から受け付けた平均値「5」を減算して差分「−12」を算出し、その差分を出力する。
【0323】
絶対値演算器23(c_abs_delta[7:0])は、その差分を受け付け、その差分の絶対値「12」を算出する。
【0324】
符号抽出器20は、減算器13から受け付けた差分「−12」からその差分の符号(c_sign_delta)を抽出し、その差分の符号を出力する。
【0325】
符号動向管理回路22は、その差分の符号(c_sign_delta)を受け付け、記憶している増減値の符号(c_dir_man_count_msb)を抽出する。
【0326】
符号動向管理回路22は、その差分の符号が負であり、その増減値の符号が正であり、さらに、局面管理回路21(c_curt_state[2:1])から受け付けた状態値が局面第一値であるため、その記憶している増減値から「1」を減算する。
【0327】
また、増減値の符号と差分の符号とが異なるので、選択信号生成器26の検査結果(c_rev_dir_flg)は論理1である。
【0328】
超過回数管理回路25(c_overflow_count[1:0])は、その差分の絶対値「12」がそのしきい値「12」より大きいか否かを判定する。この場合、その差分の絶対値がそのしきい値「12」と同じであるため、その判定結果(c_overflow_flg)は、論理0である。
【0329】
また、選択信号生成器26は、局面管理回路21(c_curt_state[2:1])から局面初期値の状態値を受け付けるので、論理1の選択条件信号(c_add0hold1_w)を選択器16に出力する。また、計数回路12(c_flg_1st_rcv[2:1])は、記憶回数「2」を選択器16に出力する。
【0330】
選択器16は、その選択条件信号および記憶回数を受け付けると、その選択条件信号が論理1のため、平均値記憶回路17(c_shadow_ave[7:0])から受け付けた平均値「5」を、平均値記憶回路17(c_shadow_ave[7:0])および平均値記憶回路18(c_ave_out[7:0])に出力する。
【0331】
その後、時刻2385において、クロック信号が立ち上がりエッジを示す。
【0332】
この時、符号抽出器20は、減算器13から受け付けた差分「−12」からその差分の符号(c_sign_delta)を抽出し、その差分の符号を出力する。
【0333】
符号動向管理回路22は、その差分の符号が負であり、記憶している増減値の符号(c_dir_man_count_msb)が正であり、さらに、局面管理回路21(c_curt_state[2:1])から受け付けた状態値が局面第一値であるため、その記憶している増減値から「1」を減算する。
【0334】
また、超過回数管理回路25(c_overflow_count[1:0])は、局面管理回路21(c_curt_state[2:1])から局面第一値の状態値を受け付け、時刻2370における判定結果(c_overflow_flg)が論理0なので、判定初期値「0」を判定回数をとして記憶する。
【0335】
また、局面管理回路21(c_curt_state[2:1])は、局面初期値の状態値をサンプルするため、局面第一値を記憶する。
【0336】
また、平均値記憶回路17(c_shadow_ave[7:0])および平均値記憶回路18(c_ave_out[7:0])は、選択器16が時刻2370以降に出力している平均値「5」を記憶する。
【0337】
なお、時刻2385において、差分の符号(c_sign_delta)と増減値の符号(c_dir_man_count_msb)とが異なるので、選択信号生成器26の検査結果(c_rev_dir_flg)は論理1である。また、選択信号生成器26は、局面管理回路21(c_curt_state[2:1])から局面第一値の状態値を受け付けるので、論理1の選択条件信号(c_add0hold1_w)を選択器16に出力する。
【0338】
また、計数回路12(c_flg_1st_rcv[2:1])は、記憶回数「2」を選択器16に出力する。
【0339】
選択器16は、その選択条件信号および記憶回数を受け付けると、その選択条件信号が論理1のため、平均値記憶回路17(c_shadow_ave[7:0])から受け付けた平均値「5」を、平均値記憶回路17(c_shadow_ave[7:0])および平均値記憶回路18(c_ave_out[7:0])に出力する。
【0340】
時刻2400において、平均値記憶回路17(c_shadow_ave[7:0])および平均値記憶回路18(c_ave_out[7:0])が記憶している平均値は「5」である。
【0341】
また、局面管理回路21(c_curt_state[2:1])が出力する状態値は、局面第二値に変化する。また、符号動向管理回路22(c_dir_man_count[2:0])が出力する増減値は「−1」に変化する。
【0342】
また、超過回数管理回路25(c_overflow_count[1:0])が出力する判定回数は、0に変化する。
【0343】
減算器13(c_delta_w[8:0])は、入力デ−タ記憶回路11(c_rcv_reg[7:0])から受け付けた測定値「−7」から、平均値記憶回路17(c_shadow_ave[7:0])から受け付けた平均値「5」を減算して差分「−12」を算出し、その差分を出力する。
【0344】
2分の1演算器14(c_hf_delta_w[7:0])は、減算器13(c_delta_w[8:0])から差分を受け付け、その差分を2分の1にして半数「−6」を算出する。
【0345】
演算器15(c_results_w[8:0])は、平均値記憶回路17(c_shadow_ave[7:0])から受け付けた平均値「5」および2分の1演算器14(c_hf_delta_w[7:0])から受け付けた半数「−6」のそれぞれを、9ビットの符号付き2進数に符号拡張する。演算器15は、その符号拡張した平均値および半数を加算して新平均値「−1」を算出する。
【0346】
絶対値演算器23(c_abs_delta[7:0])は、減算器13(c_delta_w[8:0])から差分「−12」を受け付け、その差分の絶対値「12」を算出する。絶対値演算器23は、その差分の絶対値を出力する。
【0347】
しきい値記憶回路24は、その差分の絶対値を受け付けると、その差分の絶対値に4を乗算して、新しいしきい値(c_calc_threshold_w[9:0])「48」を生成する。
【0348】
選択信号生成器26は、その差分「−12」を受け付け、その差分の符号(c_sign_delta)を抽出する。また、選択信号生成器26は、符号動向管理回路22(c_dir_man_count[2:0])が出力した増減値「−1」を受け付け、その増減値の符号(c_dir_man_count_msb)を抽出する。
【0349】
選択信号生成器26は、その差分の符号および増減値の符号の論理状態が同じか否かを検査する。この場合、その差分の符号と増減値の符号が同じなので、論理0の検査結果(c_rev_dir_flg)を得る。
【0350】
選択信号生成器26は、超過回数管理回路25(c_overflow_count[1:0])から受け付けた判定回数が、判定初期値「0」と同じなので、選択信号生成器26の判断結果(c_valid_ovf_flg)は論理0である。
【0351】
また、選択信号生成器26は、局面管理回路21(c_curt_state[2:1])局面第一値の状態値を受け付ける。また、その検査結果(c_rev_dir_flg)および判断結果(c_valid_ovf_flg)が共に論理0なので、選択信号生成器26は、論理0の選択条件信号(c_add0hold1_w)を選択器26に出力する。また、計数回路12(c_flg_1st_rcv[2:1])は、記憶回数「2」を選択器16に出力する。
【0352】
選択器16は、その選択条件信号および記憶回数を受け付けると、その選択条件信号が論理0のため、演算器15(c_results_w[8:0])から受け付けた新平均値「−1」を、平均値として平均値記憶回路17(c_shadow_ave[7:0])および平均値記憶回路18(c_ave_out[7:0])に出力する。
【0353】
さらに言えば、先ず、選択器16は、その新平均値「−1」の最上位ビットおよびその最上位ビットの一桁下のビットが共に論理1なので、最上位ビットが論理1であり、下位7桁のビットがその新平均値の下位7桁のビットと等しい8ビット符号付2進数に変換する。続いて、選択器16は、その変換した新平均値を、平均値として平均値記憶回路17(c_shadow_ave[7:0])および平均値記憶回路18(c_ave_out[7:0])に出力する。
【0354】
その後、時刻2415において、クロック信号が立ち上がりエッジを示す。
【0355】
この時、局面管理回路21(c_curt_state[2:1])は、局面第二値の状態値をサンプルするので、局面初期値を記憶する。
【0356】
また、平均値記憶回路17(c_shadow_ave[7:0])と平均値記憶回路18(c_ave_out[7:0])は、選択器16が時刻2400以降に出力している平均値「−1」を記憶する。
【0357】
また、しきい値記憶回路24(c_abs_threshold_reg[9:0])は、論理0の選択条件信号(c_add0hold1_w)を受け付ける。また、時刻2400以降に生成している新しいしきい値「48」が、最小値「12」より大きく、かつ、最大値「64」より小さい。このため、しきい値記憶回路24は、記憶しているしきい値を、その新しいしきい値「48」に更新する。
【0358】
なお、時刻2415において、差分の符号(c_sign_delta)と増減値の符号(c_dir_man_count_msb)とが同じなので、選択信号生成器26の検査結果(c_rev_dir_flg)は論理0である。
【0359】
また、選択信号生成器26は、超過回数管理回路25(c_overflow_count[1:0])から受け付けた判定回数が、判定初期値「0」と同じなので、論理0の判断結果(c_valid_ovf_flg)を得る。
【0360】
また、選択信号生成器26は、局面管理回路21(c_curt_state[2:1])から局面第二値の状態値を受け付ける。選択信号生成器26は、その検査結果および判断結果が共に論理0なので、論理0の選択条件信号(c_add0hold1_w)を選択器16に出力する。
【0361】
また、計数回路12(c_flg_1st_rcv[2:1])は、記憶回数「2」を選択器16に出力する。
【0362】
選択器16は、その選択条件信号および記憶回数を受け付けると、その選択条件信号が論理0のため、演算器15(c_results_w[8:0])から受け付けた新平均値「−1」を、平均値として平均値記憶回路17(c_shadow_ave[7:0])および平均値記憶回路18(c_ave_out[7:0])に出力する。
【0363】
さらに言えば、先ず、選択器16は、その新平均値「−1」の最上位ビットおよびその最上位ビットの一桁下のビットが共に論理1なので、最上位ビットが論理1であり、下位7桁のビットがその新平均値の下位7桁のビットと等しい8ビット符号付2進数に変換する。続いて、選択器16は、その変換した新平均値を、平均値として平均値記憶回路17(c_shadow_ave[7:0])および平均値記憶回路18(c_ave_out[7:0])に出力する。
【0364】
その後、時刻2820において、しきい値記憶回路24(c_abs_threshold_reg[9:0])が出力するしきい値が「48」に変化する。
【0365】
なお、平均値記憶回路17(c_shadow_ave[7:0])と平均値記憶回路18(c_ave_out[7:0])が記憶している平均値は、「−1」である。
【0366】
次に、符号動向管理回路22(c_dir_man_count[2:0])が記憶する増減値の変化の一例を説明する。
【0367】
時刻4305において、クロック信号が立ち上がりエッジを示す。
【0368】
この時、符号動向管理回路22(c_dir_man_count[2:0])は、局面管理回路21(c_curt_state[2:1])から、局面第一値の状態値を受け付ける。
【0369】
符号動向管理回路22(c_dir_man_count[2:0])は、符号抽出器20から「正」の差分の符号(c_sign_delta)を受け付ける。
【0370】
また、符号同行管理回路22は、記憶している増減値「0」からその増減値の符号(c_dir_man_count_msb)を抽出する。
【0371】
符号動向管理回路22は、その差分の符号と増減値の符号とが同じなので、最大増加傾向値「3」を増減値として記憶する。
【0372】
その後、時刻4320において、符号動向管理回路22(c_dir_man_count[2:0])は、増減値「3」を出力する。
【0373】
次に、しきい値記憶回路24(c_abs_threshold_reg[9:0])が記憶するしきい値の変化の一例について説明する。
【0374】
時刻45135において、クロック信号が立ち上がりエッジを示す。
【0375】
この時、しきい値記憶回路24(c_abs_threshold_reg[9:0])は、選択信号生成器26から論理0の選択条件信号を受け付け、絶対値演算器23(c_abs_delta[7:0])から、差分の絶対値「29」を受け付ける。
【0376】
また、しきい値記憶回路24は、その差分の絶対値に4を乗算して新しいしきい値「116」を生成する。しきい値記憶回路24は、その新しいしきい値が最大値「64」より大きいので、記憶しているしきい値を、しきい値最大値「64」に更新する。
【0377】
その後、時刻45540において、しきい値記憶回路24(c_abs_threshold_reg[9:0])は、しきい値「64」を出力する。
【0378】
図6は、移動平均値算出回路内の各種の値およびデ−タの時間変化の一例を説明するためのグラフである。図6において、横軸は、時間を示し、縦軸は、データの値を示す。
【0379】
また、入力デ−タ100は、入力データ記憶回路11が記憶した測定値の時間変化を示すグラフである。また、平均値200は、平均値記憶回路17および18が記憶した平均値の時間変化を示すグラフである。
【0380】
本実施例では、入力データ記憶回路11は、最新の入力データを記憶する。平均値記憶回路17は、過去の入力データの移動平均値を記憶する。しきい値記憶回路24は、しきい値を記憶する。減算器13は、最新の入力データおよびその移動平均値の差分を算出する。2分の1演算器は、その差分の2分の1の値を算出する。演算器15は、その差分の2分の1の値にその移動平均値を加算して新しい移動平均値を算出する。絶対値演算器23は、その差分の絶対値を算出する。超過回数管理回路25は、その差分の絶対値がしきい値より大きいか否かを判定する。選択信号生成器26は、その差分の絶対値がしきい値より大きいと判定されると、新しい移動平均値を無効と判定し、その差分の絶対値がしきい値以下と判定されると、新しい移動平均値を有効と判定する。選択器16は、新しい移動平均値が有効と判定されると、その移動平均値に平均値記憶回路17に記憶されている移動平均値を更新し、その移動平均値が無効と判定されると、平均値記憶回路17による移動平均値の記憶を保持する。
【0381】
この場合、最新の入力デ−タおよび過去の入力デ−タの移動平均値の差分が算出される。また、その差分の絶対値が算出される。その絶対値がしきい値より大きくなると、新しい移動平均値が無効と判定され、その絶対値がしきい値以下になると、新しい移動平均値が有効と判定される。新しい移動平均値が有効であると、過去の入力デ−タの移動平均値が新しい移動平均値に更新される。また、新しい移動平均値が無効であると、過去の入力デ−タの移動平均値の記憶が保持される。
【0382】
このため、正確な移動平均値を算出することが可能になる。
【0383】
また、本実施例では、超過回数管理回路25は、その絶対値がしきい値より大きいと連続して判定した判定回数を計数する。選択信号生成器26は、その判定回数が予め定められた最大回数になると、その新しい平均値を有効と判定する。
【0384】
この場合、しきい値が適切な値に設定されていない場合でも、正常な値の新しい移動平均値が算出されると、その新しい移動平均値を有効と判定することが可能になる。
【0385】
また、本実施例では、しきい値記憶回路24は、その絶対値に所定の数を乗算して新しいしきい値が生成される。選択信号生成器26が新しい移動平均値を有効と判定すると、しきい値記憶回路24は、記憶しているしきい値を、その新しいしきい値に更新する。
【0386】
この場合、予め適切なしきい値を知ることが困難な場合でも、入力データに応じてそのしきい値を決定することが可能になる。
【0387】
また、しきい値記憶回路24は、その新しいしきい値が予め定められた最大値より大きい場合、選択信号生成器26が新しい移動平均値を有効と判定すると、記憶しているしきい値をその最大値に更新する。
【0388】
この場合、しきい値が大きくなりすぎるのを防止することが可能になり、正確な移動平均位置を算出することが可能になる。
【0389】
また、しきい値記憶回路24は、その新しいしきい値が予め定められた最小値より小さい場合、選択信号生成器26が新しい移動平均値を有効と判定すると、記憶しているしきい値をその新しいしきい値に更新する。
【0390】
この場合、しきい値が小さくなりすぎるのを防止することが可能になり、正確な移動平均位置を算出することが可能になる。
【0391】
また、符号抽出器20は、減算器13にて算出された差分から、最新の入力データの増減方向を示す差分の符号を抽出する。符号動向管理回路22は、過去の入力データの増減方向および増減度合を示す増減値を記憶し、その差分の符号が示す増減方向に応じて、その増減値を更新する。選択信号生成器26は、その差分の符号が示す増減方向が、その増減値が示す増減方向と異なるか否かを検査する。選択信号生成器26は、その差分の符号が示す増減方向が、その増減値が示す増減方向と異なると、新しい移動平均値を無効と判定する。
【0392】
この場合、差分の絶対値がしきい値より小さくても、異常な値の移動平均値を無効と判定することが可能になる。
【0393】
以上説明した実施例において、図示した構成は単なる一例であって、本発明はその構成に限定されるものではない。
【0394】
例えば、符号動向管理回路22および選択信号生成器26が個別に符号抽出器20を含んでも良い。
【0395】
また、差分の絶対値に所定の数を乗算して新しいしきい値を生成していたが、固定のしきい値を用いても良い。
【図面の簡単な説明】
【0396】
【図1】本発明の一実施例の移動平均値算出回路の構成を示したブロック図である。
【図2a】平均値算出回路の動作の一例を説明するためのプログラムを示した説明図である。
【図2b】平均値算出回路の動作の一例を説明するためのプログラムを示した説明図である。
【図3a】生成回路の動作の一例を説明するためのプログラムを示した説明図である。
【図3b】生成回路の動作の一例を説明するためのプログラムを示した説明図である。
【図4】10進数表記および2の補数で負数を示した2進数表記の関係を示した説明図である。
【図5a】移動平均値算出回路内の各種の値およびデ−タの時間変化の一例を説明するためのステ−ト図である。
【図5b】移動平均値算出回路内の各種の値およびデ−タの時間変化の一例を説明するためのステ−ト図である。
【図6】移動平均値算出回路内の各種の値およびデ−タの時間変化の一例を説明するためのグラフである。
【図7】従来の移動平均値を算出する平均値算出回路の構成を示した回路図である。
【符号の説明】
【0397】
10a 入力端子
10b 出力端子
11 入力デ−タ記憶回路
12 計数回路
13 減算器
14 2分の1演算器
15 演算器
16 選択器
17 平均値記憶回路
18 平均値記憶回路
19 生成回路
20 符号抽出器
21 局面管理回路
22 符号動向管理回路
23 絶対値演算器
24 しきい値記憶回路
25 超過回数管理回路
26 選択信号生成器

【特許請求の範囲】
【請求項1】
最新の入力データを記憶する入力データ記憶回路と、
過去の入力データの移動平均値を記憶する平均値記憶回路と、
しきい値を記憶するしきい値記憶回路と、
前記最新の入力データおよび前記移動平均値の差分を算出する減算器と、
前記減算器にて算出された差分の2分の1の値を算出する2分の1演算器と、
前記2分の1演算器にて算出された値に前記移動平均値を加算して新しい移動平均値を算出する演算器と、
前記減算器にて算出された差分の絶対値を算出する絶対値演算器と、
前記絶対値演算器にて算出された絶対値が前記しきい値より大きいか否かを判定する管理回路と、
前記管理回路が前記絶対値は前記しきい値より大きいと判定すると、前記新しい平均値を無効と判定し、前記管理回路が前記絶対値は前記しきい値以下と判定すると、前記新しい平均値を有効と判定する判定器と、
前記判定器が前記新しい平均値は有効と判定すると、前記平均値記憶回路に記憶されている移動平均値を前記新しい移動平均値に更新し、前記判定器が前記新しい平均値は無効と判定すると、前記平均値記憶回路による移動平均値の記憶を保持する選択器と、を含む移動平均値算出回路。
【請求項2】
請求項1に記載の移動平均値算出回路において、
前記管理回路は、前記絶対値が前記しきい値より大きいと連続して判定した判定回数を計数し、
前記判定器は、前記判定回数が予め定められた最大回数になると、前記新しい平均値を有効と判定する、移動平均値算出回路。
【請求項3】
請求項1または2に記載の移動平均値算出回路において、
前記しきい値記憶回路は、前記絶対値に所定の数を乗算して新しいしきい値を生成し、前記判定器が前記新しい移動平均値は有効と判定すると、前記しきい値を前記新しいしきい値に更新する、移動平均値算出回路。
【請求項4】
請求項3に記載の移動平均値算出回路において、
前記しきい値記憶回路は、前記新しいしきい値が予め定められた最大値より大きい場合、前記判定器が前記新しい移動平均値は有効と判定すると、前記しきい値を前記最大値に更新する、移動平均値算出回路。
【請求項5】
請求項3または4に記載の移動平均値算出回路において、
前記しきい値記憶回路は、前記新しいしきい値が予め定められた最小値より小さい場合、前記判定器が前記新しい移動平均値は有効と判定すると、前記しきい値を前記最小値に更新する、移動平均値算出回路。
【請求項6】
請求項1ないし5のいずれか1項に記載の移動平均値算出回路において、
前記減算器にて算出された差分から、該最新の入力データの増減方向を示す差分の符号を抽出する抽出器と、
前記過去の入力データの増減方向および増減度合を示す増減値を記憶し、かつ、前記抽出器にて抽出された差分の符号が示す増減方向に応じて、前記増減値を更新する符号動向管理回路と、をさらに含み、
前記判定器は、前記抽出器にて抽出された差分の符号が示す最新の入力データの増減方向が、前記符号動向管理回路にて更新された増減値が示す増減方向と異なるか否かを検査し、該差分の符号が示す増減方向が該増減値が示す増減方向と異なると、前記新しい移動平均値を無効と判定する、移動平均値算出回路。
【請求項7】
最新の入力データを記憶する入力データ記憶回路と、過去の入力データの移動平均値を記憶する平均値記憶回路と、しきい値を記憶するしきい値記憶回路と、を含む移動平均値算出回路が行う移動平均値算出方法であって、
前記最新の入力データおよび移動平均値の差分を算出する減算ステップと、
前記算出された差分の2分の1の値を算出する2分の1演算ステップと、
前記算出された差分の2分の1の値に前記移動平均値を加算して新しい移動平均値を算出する演算ステップと、
前記算出された差分の絶対値を算出する絶対値演算ステップと、
前記算出された絶対値が前記しきい値より大きいか否かを判定する管理ステップと、
前記絶対値が前記しきい値より小さいと判定されると、前記新しい平均値を有効と判定する有効判定ステップと、
前記新しい平均値が有効と判定されると、前記平均値記憶回路に記憶されている移動平均値を前記新しい移動平均値に更新する更新ステップと、
前記絶対値が前記しきい値より大きいと判定されると、前記新しい平均値を無効と判定する無効判定ステップと、
前記新しい平均値が無効と判定されると、前記平均値記憶回路による移動平均値の記憶を保持する保持ステップと、を含む移動平均値算出方法。
【請求項8】
請求項7に記載の移動平均値算出方法において、
前記絶対値が前記しきい値より大きいと連続して判定された判定回数を計数する計数ステップと、
前記判定回数が予め定められた最大回数になると、前記新しい平均値を有効と判定する有効判断ステップと、をさらに含む移動平均値算出方法。
【請求項9】
請求項7または8に記載の移動平均値算出方法において、
前記絶対値に所定の数を乗算して新しいしきい値を生成する乗算ステップと、
前記新しい移動平均値が有効と判定されると、前記しきい値を前記新しいしきい値に更新するしきい値更新ステップと、をさらに含む移動平均値算出方法。
【請求項10】
請求項9に記載の移動平均値算出方法において、
前記新しいしきい値が予め定められた最大値より大きい場合、前記新しい移動平均値が有効と判定されると、前記しきい値を前記最大値に更新する最大値更新ステップ、をさらに含む移動平均値算出方法。
【請求項11】
請求項9または10に記載の移動平均値算出方法において、
前記新しいしきい値が予め定められた最小値より小さい場合、前記新しい移動平均値が有効と判定されると、前記しきい値を前記最小値に更新する最小値更新ステップ、をさらに含む移動平均値算出方法。
【請求項12】
請求項7ないし11のいずれか1項に記載の移動平均値算出方法において、
前記移動平均値算出回路は、前記過去の入力データの増減方向および増減度合を示す増減値を記憶する符号動向管理回路をさらに含み、
前記算出された差分から、該最新の入力データの増減方向を示す差分の符号を抽出する抽出ステップと、
前記抽出された差分の符号が示す増減方向に応じて、前記増減値を更新する符号動向管理ステップと、
前記抽出された差分の符号が示す最新の入力データの増減方向が、前記符号動向管理回路にて更新された増減値が示す増減方向と異なるか否かを検査する検査ステップと、
前記差分の符号が示す増減方向が前記増減値が示す増減方向と異なると、前記新しい移動平均値を無効と判定する無効判断ステップと、を含む移動平均値算出方法。

【図1】
image rotate

【図2a】
image rotate

【図2b】
image rotate

【図3a】
image rotate

【図3b】
image rotate

【図4】
image rotate

【図5a】
image rotate

【図5b】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2008−9610(P2008−9610A)
【公開日】平成20年1月17日(2008.1.17)
【国際特許分類】
【出願番号】特願2006−178086(P2006−178086)
【出願日】平成18年6月28日(2006.6.28)
【出願人】(390001395)NECシステムテクノロジー株式会社 (438)
【Fターム(参考)】