(57)【要約】【課題】回路規模を低減させつつ、高桁数の累積加算が可能であり、かつ高速動作可能な全加算回路の提案。【解決手段】非同期相関演算回路１００において、受信データが受信データ２線符号化部１３０で２線符号化される。また、加算結果記憶部１７０の記憶値が加算結果２線符号化部１８０で２線符号化される。非同期全加算部１５０は、加算結果２線符号化部１８０の出力値に、レプリカデータ２線符号化部１４０の出力値に応じた符号で受信データ２線符号化部１３０の出力値を加算する。オーバーフロー検知部１９０は、非同期全加算部１５０の最上位桁の１ビット非同期全加算器のキャリー出力と、その１つ下の桁の１ビット非同期全加算器のキャリー出力とに基づいて非同期全加算部１５０のオーバーフローの発生を検知する。そして、オーバーフローカウンタ部１９５が、オーバーフロー検知部１９０の検知回数を符号ビットの値に従い加算又は減算して計数する。【選択図】図２
2014021762.tif 000002
【特許請求の範囲】
【請求項１】
所与の入力データを２線符号化する第１の２線符号化部と、
入力される加算結果を記憶する記憶部と、
前記記憶部の記憶値を２線符号化する第２の２線符号化部と、
Ｍ個の１ビット非同期全加算器が縦続接続されて構成され、前記第２の２線符号化部の出力値に前記第１の２線符号化部の出力値を加算して最上位桁を符号ビットとするＭビットの加算結果を出力する非同期全加算部と、
前記非同期全加算部による２線符号の出力値を復号して前記記憶部に出力する２線復号部と、
前記非同期全加算部の最上位桁の前記１ビット非同期全加算器のキャリー出力と、最上位桁の１つ下の桁の前記１ビット非同期全加算器のキャリー出力とに基づいて前記非同期全加算部のオーバーフローの発生を検知するオーバーフロー検知部と、
前記オーバーフロー検知部の検知回数を前記符号ビットの値に従って加算或いは減算して計数するカウンタと、
を備えた非同期全加算回路。
【請求項２】
前記オーバーフロー検知部は、前記非同期全加算部の最上位桁の前記１ビット非同期全加算器のキャリー出力と、最上位桁の１つ下の桁の前記１ビット非同期全加算器のキャリー出力との排他的論理和に基づいてオーバーフローの発生を検知する、
請求項１に記載の非同期全加算回路。
【請求項３】
前記１ビット非同期全加算器全ての演算完了を検知する演算完了検知部を更に備え、
前記オーバーフロー検知部は、前記演算完了検知部による検知がなされた際の、最上位桁の前記１ビット非同期全加算器のキャリー出力と最上位桁の１つ下の桁の前記１ビット非同期全加算器のキャリー出力とに基づいて、オーバーフローの発生を検知する、
請求項１又は２に記載の非同期全加算回路。
【請求項４】
所与の１ビットデータを２線符号化する第３の２線符号化部と、
請求項１〜３の何れか一項に記載の非同期全加算回路と、
を備え、
前記非同期全加算部が、前記第２の２線符号化部の出力値に、前記第３の２線符号化部の出力値に応じた符号で前記第１の２線符号化部の出力値を加算することで、前記非同期全加算回路が前記所与の入力データと前記所与の１ビットデータとの相関値を算出することを特徴とする非同期相関演算回路。
【請求項５】
請求項１〜３の何れか一項に記載の非同期全加算回路と、
前記１ビット非同期全加算器の個数Ｍ、前記カウンタの計数値及び前記記憶部の記憶値を用いて、前記非同期全加算回路での累積加算値を算出する算出部と、
を備えた演算装置。
【請求項６】
請求項４に記載の非同期相関演算回路と、
前記１ビット非同期全加算器の個数Ｍ、前記カウンタの計数値及び前記記憶部の記憶値を用いて、前記非同期全加算回路での累積加算値を、前記所与の入力データと前記所与の１ビットデータとの相関値として算出する算出部と、
を備えた相関演算装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、非同期で全加算を行う非同期全加算回路等に関する。
【背景技術】
【０００２】
所与の入力データの加算を行うための演算器として全加算器が広く知られている。１ビットの全加算器を縦続接続した全加算回路はリプルキャリー型と呼ばれ、下位桁からのキャリー出力を上位桁のキャリー入力に接続することによって、任意の桁数のデータの加算を可能にしている（例えば特許文献１，２）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平１１−１４３６８４号公報
【特許文献２】特開２００４−２６５２０４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
通常、演算桁数分の全加算器を縦続接続するため、桁数が増えれば回路規模が増大するのが一般的である。例えば、所与の入力データを累積的に加算する全加算回路を構成する場合、最終的な累積値として想定される桁数分の全加算器を縦続接続する。しかし、最終的な累積値の桁数が大きくなればなるほど回路規模が増大してしまう。回路規模の増大は、消費電力の増加やコスト増につながるため、できるだけ抑制したい。また、例えば相関演算回路のような駆動率が高く、最終的な累積値に比べて１回の加算に係る桁数が小さい回路であれば、回路規模を低減させる要請は尚強いと言える。
【０００５】
加えて、全加算回路を含む従来の回路は、所定のクロック信号に同期して動作する同期式が一般的である。同期式における回路規模の増大はクロック信号の大電流化やクロックスキューの問題も生じる。また、何よりも、同期式では、クロック周波数以上の回路動作の高速化は図れない。
本発明は上述した課題に鑑みてなされたものである。
【課題を解決するための手段】
【０００６】
以上の課題を解決するための第１の形態は、所与の入力データを２線符号化する第１の２線符号化部と、入力される加算結果を記憶する記憶部と、前記記憶部の記憶値を２線符号化する第２の２線符号化部と、Ｍ個の１ビット非同期全加算器が縦続接続されて構成され、前記第２の２線符号化部の出力値に前記第１の２線符号化部の出力値を加算して最上位桁を符号ビットとするＭビットの加算結果を出力する非同期全加算部と、前記非同期全加算部による２線符号の出力値を復号して前記記憶部に出力する２線復号部と、前記非同期全加算部の最上位桁の前記１ビット非同期全加算器のキャリー出力と、最上位桁の１つ下の桁の前記１ビット非同期全加算器のキャリー出力とに基づいて前記非同期全加算部のオーバーフローの発生を検知するオーバーフロー検知部と、前記オーバーフロー検知部の検知回数を前記符号ビットの値に従って加算或いは減算して計数するカウンタと、を備えた非同期全加算回路である。
【０００７】
この第１の形態によれば、所与の入力データが第１の２線符号化部によって２線符号化される。また、記憶部の記憶値が第２の２線符号化部によって２線符号化される。非同期全加算部は、Ｍ個の１ビット非同期全加算器が縦続接続されて構成され、第２の２線符号化部の出力値に第１の２線符号化部の出力値を加算して最上位桁を符号ビットとするＭビットの加算結果を出力する。この非同期全加算部による２線符号の出力値は２線復号部で復号されて記憶部に出力される。
【０００８】
オーバーフロー検知部は、非同期全加算部の最上位桁の１ビット非同期全加算器のキャリー出力と、最上位桁の１つ下の桁の１ビット非同期全加算器のキャリー出力とに基づいて非同期全加算部のオーバーフローの発生を検知する。カウンタは、オーバーフロー検知部の検知回数を符号ビットの値に従って加算或いは減算して計数する。符号ビットの値が正の値を表すビット値であれば検知回数を加算し、符号ビットの値が負の値を表すビット値であれば検知回数を減算することで、オーバーフローが正の数値範囲と負の数値範囲との何れで発生した場合であっても、計数値を適切に求めることができる。
【０００９】
１ビット非同期全加算器の個数とカウンタの計数値とがあれば、記憶部の記憶値から累積値を正しく算出することができる。そのため、最終的な累積値として想定される桁数分の全加算器は必ずしも必要ではなく、縦続接続する全加算器の個数を減らすことができるため、回路規模を低減させつつ、高桁数の累積加算が可能となる。また、本形態の非同期全加算回路は非同期式で作動するため、クロック信号による動作上の上限速度が無く、高速動作が可能である。さらに、クロック信号が不要であるため、クロック信号に伴う電力も不要である。
【００１０】
また、第２の形態として、第１の形態の非同期全加算回路におけるオーバーフロー検知部は、前記非同期全加算部の最上位桁の前記１ビット非同期全加算器のキャリー出力と、最上位桁の１つ下の桁の前記１ビット非同期全加算器のキャリー出力との排他的論理和に基づいてオーバーフローの発生を検知する、非同期全加算回路を構成することとしてもよい。
【００１１】
符号付きの数値表現では、ＭＳＢ（Most Significant Bit）２ビットに対応する１ビット非同期全加算器からのキャリー出力を用いることで、オーバーフローの発生を検知することができる。つまり、オーバーフローが発生する場合、非同期全加算部の最上位桁の１ビット非同期全加算器のキャリー出力と、最上位桁の１つ下の桁の１ビット非同期全加算器のキャリー出力とは異なる値となる。そのため、第２の形態のように、最上位桁の１ビット非同期全加算器のキャリー出力と、最上位桁の１つ下の桁の１ビット非同期全加算器のキャリー出力との排他的論理和に基づくことで、オーバーフローの検知を簡易且つ適切に行うことができる。
【００１２】
また、第３の形態として、第１又は第２の形態の非同期全加算回路において、前記非同期全加算器全ての演算完了を検知する演算完了検知部を更に備え、前記オーバーフロー検知部は、前記演算完了検知部による検知がなされた際の、最上位桁の前記１ビット非同期全加算器のキャリー出力と最上位桁の１つ下の桁の前記１ビット非同期全加算器のキャリー出力とに基づいて、オーバーフローの発生を検知する、非同期全加算回路を構成することとしてもよい。
【００１３】
この第３の形態によれば、演算完了検知部は、１ビット非同期全加算器全ての演算完了を検知する。そして、オーバーフロー検知部は、演算完了検知部による検知がなされた際の、最上位桁の１ビット非同期全加算器のキャリー出力と最上位桁の１つ下の桁の１ビット非同期全加算器のキャリー出力とに基づいて、オーバーフローの発生を検知する。これにより、１ビット非同期全加算器の個々の動作タイミングの違いを考慮した上で、適切なタイミングでオーバーフローの発生を検知することができる。
【００１４】
また、第４の形態として、所与の１ビットデータを２線符号化する第３の２線符号化部と、第１〜第３の何れかの形態の非同期全加算回路と、を備え、前記非同期全加算部が、前記第２の２線符号化部の出力値に、前記第３の２線符号化部の出力値に応じた符号で前記第１の２線符号化部の出力値を加算することで、前記非同期全加算回路が前記所与の入力データと前記所与の１ビットデータとの相関値を算出することを特徴とする非同期相関演算回路を構成することとしてもよい。
【００１５】
この第４の形態によれば、所与の１ビットデータが第３の２線符号化部によって２線符号化される。そして、非同期全加算回路の非同期全加算部は、第２の２線符号化部の出力値に、第３の２線符号化部の出力値に応じた符号で第１の２線符号化部の出力値を加算することで、非同期全加算回路が所与の入力データと所与の１ビットデータとの相関値を算出する。つまり、上記の形態の非同期全加算回路を用いて、非同期で動作する相関演算回路を構成することができる。
【００１６】
また、第５の形態として、第１〜第３の何れかの形態の非同期全加算回路と、前記１ビット非同期全加算器の個数Ｍ、前記カウンタの計数値及び前記記憶部の記憶値を用いて、前記非同期全加算回路での累積加算値を算出する算出部と、を備えた演算装置を構成することとしてもよい。
【００１７】
この第５の形態によれば、上記の形態の非同期全加算回路を備え、当該非同期全加算回路が備える１ビット非同期全加算器の個数Ｍ、カウンタの計数値及び記憶部の記憶値を用いて、非同期全加算回路での累積加算値を算出する演算装置を構成することができる。
【００１８】
また、第６の形態として、第４の形態の非同期相関演算回路と、前記１ビット非同期全加算器の個数Ｍ、前記カウンタの計数値及び前記記憶部の記憶値を用いて、前記非同期全加算回路での累積加算値を、前記所与の入力データと前記所与の１ビットデータとの相関値として算出する算出部と、を備えた相関演算装置を構成することとしてもよい。
【００１９】
この第６の形態によれば、上記の形態の非同期相関演算回路を備え、当該非同期相関演算回路の１ビット非同期全加算器の個数Ｍ、カウンタの計数値及び記憶部の記憶値を用いて、非同期全加算回路での累積加算値を、所与の入力データと所与の１ビットデータとの相関値として算出する相関演算装置を構成することができる。
【図面の簡単な説明】
【００２０】
【図１】ＧＰＳ受信機の機能構成の一例を示すブロック図。
【図２】非同期相関演算回路の回路構成の一例を示す図。
【図３】非同期全加算部の回路構成の一例を示す図。
【図４】２線復号部の回路構成の一例を示す図。
【図５】演算完了検知部及びオーバーフロー検知部の回路構成の一例を示す図。
【図６】オーバーフローカウンタ部の構成の一例を示す図。
【図７】相関値の算出処理の流れを示すフローチャート。
【図８】相関値の算出の原理の説明図。
【発明を実施するための形態】
【００２１】
以下、図面を参照して、本発明を適用した好適な実施形態の一例について説明する。本実施形態は、衛星測位システムの一種であるＧＰＳの受信機に本発明を適用した実施形態である。本発明を適用可能な形態が以下説明する実施形態に限定されるわけでないことは勿論である。
【００２２】
ＧＰＳ衛星から送出されるＧＰＳ衛星信号は、Ｃ／Ａ（Coarse and Acquisition）コードと呼ばれるＧＰＳ衛星毎に異なる拡散符号で変調されている。ＧＰＳ受信機は、微弱な受信信号の中からＧＰＳ衛星信号を捕捉するために、受信信号とＣ／Ａコードを模擬したレプリカコードとの相関演算を行ってＧＰＳ衛星信号を捕捉する。そして、捕捉したＧＰＳ衛星信号を利用して、例えば擬似距離を利用した位置計算を行って、ＧＰＳ受信機の位置を算出する。
【００２３】
１．ＧＰＳ受信機
図１は、ＧＰＳ衛星信号を受信する衛星信号受信装置の一種であるＧＰＳ受信機１の機能構成の一例を示すブロック図である。ＧＰＳ受信機１は、不図示のＧＰＳアンテナで受信されたＲＦ（Radio Frequency）信号からＧＰＳ衛星信号を捕捉し、捕捉したＧＰＳ衛星信号を利用して、位置を算出可能に構成された装置である。本実施形態では、ＧＰＳ受信機はＧＰＳ衛星信号の受信信号とレプリカコードとの相関演算を行う相関演算装置として機能する。
【００２４】
ＧＰＳ受信機１は、ＲＦ受信回路部１０と、ベースバンド処理回路部２０とを備えて構成される。なお、ＲＦ受信回路部１０と、ベースバンド処理回路部２０とは、それぞれ別のＬＳＩ（Large Scale Integration）として製造することも、１チップとして製造することも可能である。
【００２５】
ＲＦ受信回路部１０は、ＧＰＳアンテナから出力されるＲＦ信号を受信する受信回路と、受信した信号（アナログ信号）を所与のサンプル時間間隔でサンプリングすることでＡ／Ｄ変換するＡ／Ｄ変換回路とを有し、受信信号を受信系列データとして出力する。
【００２６】
本実施形態では、１ミリ秒分の受信信号をＮ個にサンプリングして、Ｄ１〜ＤＮのＮ個の受信データを得るものとして説明する。受信データＤ１〜ＤＮはそれぞれ、量子化によってＭビットのデジタルデータに変換される。但し、最上位のビットは符号ビットである。すなわち、２の補数表現により、符号ビットが“０”であれば正の数を表し、符号ビットが“１”であれば負の数を表す。本実施形態では、受信データの番号を“ｉ”を用いて表記する。すなわち、“Ｄｉ”は第ｉ番目の受信データであることを意味する。
【００２７】
ベースバンド処理回路部２０は、ＲＦ受信回路部１０から出力される受信系列データに対して、搬送波（キャリア）の除去や相関演算等を行ってＧＰＳ衛星信号を捕捉する。そして、捕捉したＧＰＳ衛星信号から抽出した時刻情報や衛星軌道情報等を利用して、位置や時計誤差を算出する。
【００２８】
本実施形態において、ベースバンド処理回路部２０は、主要な構成として、非同期相関演算回路１００と、レプリカコード生成部２００と、処理部３００と、記憶部４００とを有して構成される。
【００２９】
非同期相関演算回路１００は、ＲＦ受信回路部１０から出力される受信系列データと、レプリカコード生成部２００から出力されるレプリカコードとの相関演算を行う非同期式の相関演算回路である。非同期相関演算回路１００の構成及び動作については、詳細に後述する。
【００３０】
レプリカコード生成部２００は、ＧＰＳ衛星信号の拡散符号であるＣ／Ａ（Coarse and Acquisition）コードを模擬した擬似的なコードであるレプリカコードを生成する回路である。レプリカコード生成部２００は、処理部３００から出力されるＰＲＮ番号（衛星番号）に従って、当該ＰＲＮ番号が割り当てられたＧＰＳ衛星に係るレプリカコードを生成する。レプリカコード生成部２００は、コードＮＣＯ（Numerical Controlled Oscillator）等の発振器を有して構成される。
【００３１】
本実施形態において、レプリカコードは、受信信号と同じサンプリングレートでサンプリングされる。具体的には、１ミリ秒分のレプリカコードは、受信データと同数のＮ個のレプリカデータＣ１〜ＣＮにサンプリングされる。本実施形態では、レプリカデータの番号を“ｊ”を用いて表記する。すなわち、“Ｃｊ”は第ｊ番目のレプリカデータであることを意味する。レプリカデータは“０”又は“１”の１ビットで表される。
【００３２】
処理部３００は、ベースバンド処理回路部２０の各機能部を統括的に制御する制御装置及び演算装置であり、ＣＰＵ（Central Processing Unit）やＤＳＰ（Digital Signal Processor）等のプロセッサーを有して構成される。
【００３３】
処理部３００は、本実施形態に関わる主要な機能部として、受信データ読出制御部３１０と、レプリカデータ読出制御部３２０と、相関値算出部３３０とを有する。これらの機能部については後述する。
【００３４】
記憶部４００は、ベースバンド処理回路部２０のシステムプログラムや、衛星捕捉・追尾制御機能、位置算出機能といった各種機能を実現するための各種プログラム、データ等を記憶する。また、各種処理の処理中データ、処理結果などを一時的に記憶するワークエリアを有する。
【００３５】
２．非同期相関演算回路
図２は、非同期相関演算回路１００の回路構成の一例を示す図である。以下参照する図面では、２線符号化されたデータの流れを太線で図示し、２線符号化されていないデータと区別する。
【００３６】
非同期相関演算回路１００は、受信データ記憶部１１０と、レプリカデータ記憶部１２０と、受信データ２線符号化部１３０と、レプリカデータ２線符号化部１４０と、非同期全加算部１５０と、２線復号部１６０と、加算結果記憶部１７０と、加算結果２線符号化部１８０と、演算完了検知部１８５と、オーバーフロー検知部１９０と、オーバーフローカウンタ部１９５とを有して構成される。
【００３７】
受信データ２線符号化部１３０と、非同期全加算部１５０と、２線復号部１６０と、加算結果記憶部１７０と、加算結果２線符号化部１８０と、演算完了検知部１８５と、オーバーフロー検知部１９０と、オーバーフローカウンタ部１９５とによって、非同期全加算回路１００Ａが構成される。
【００３８】
受信データ記憶部１１０は、ＲＦ受信回路部１０から出力される受信系列データを構成するＭビットの受信データＤｉを記憶する記憶回路である。受信データ記憶部１１０は、例えば、受信データＤｉそれぞれに対応して、当該受信データＤｉを記憶する受信データレジスタ群を有して構成される。
【００３９】
レプリカデータ記憶部１２０は、レプリカコード生成部２００から出力されるレプリカコードを構成する１ビットのレプリカデータＣｊを記憶する記憶装置である。レプリカデータ記憶部１２０は、例えば、レプリカデータＣｊそれぞれに対応して、当該レプリカデータＣｊを記憶するレプリカデータレジスタ群を有して構成される。
【００４０】
受信データ２線符号化部１３０は、受信データ記憶部１１０から出力される受信データＤｉを２線符号化方式に従って２線符号化する。受信データ２線符号化部１３０は、例えば、受信データ記憶部１１０を構成する受信データレジスタそれぞれに対応する２線符号化器を有して構成される。受信データ２線符号化部１３０は、第１の２線符号化部に相当する。
【００４１】
レプリカデータ２線符号化部１４０は、レプリカデータ記憶部１２０から出力されるレプリカデータＣｊを２線符号化方式に従って２線符号化する。レプリカデータ２線符号化部１４０は、例えば、レプリカデータ記憶部１２０を構成するレプリカデータレジスタそれぞれに対応する２線符号化器を有して構成される。レプリカデータ２線符号化部１４０は、第３の２線符号化部に相当する。
【００４２】
表１に、２線符号化方式の真理値表を示す。
【表１】
2014021762.tif 000003
【００４３】
２線符号化方式は、１ビットのデータｂを２本の信号線対“（ｂ＿１，ｂ＿０）”を用いて表現する方式である。“ｂ＿１”が肯定の信号線に対応し、“ｂ＿０”が否定の信号線に対応する。
【００４４】
２線符号化方式では、データｂは、有効符号語である“１”或いは“０”、又は無効符号語である“Ｎｕｌｌ”の何れかをとる。２線符号化により、有効符号語である“０”は“（０，１）”に変換され、有効符号語である“１”は“（１，０）”に変換される。無効符号語である“Ｎｕｌｌ”は“（０，０）”に変換される。なお、“（１，１）”は“Ｉｎｈｉｂｉｔ”と呼び、動作上とり得ない不正値である。
【００４５】
非同期回路では、この２線符号化方式に従って２線符号化したビット値を用いて、回路ブロック間でのデータの入出力を行う。データの入出力は、有効符号語“１”或いは“０”を用いて行われる。無効符号語“Ｎｕｌｌ”は、非演算時や、各データ間の区切りに用いられる。同一の有効符号語が連続して送信されると、受信側ではデータの区切りを識別することができないため、有効符号語と無効符号語とを交互に伝送することで、有効符号語の識別を可能にしている。
【００４６】
本明細書及び図面では、Ｍビットで表されるデータのビットに下位のビットから順に１からＭまでの番号を割り当て、データや信号を表す文字の直後に括弧書きで表記する。例えば、受信データＤｉのうちの最下位のビットはＤｉ（１）と表記し、最上位のビットはＤｉ（Ｍ）と表記する。これは、２線符号化されたデータについても同様である。例えば、２線符号化された受信データＤｉのうちの最下位のビットを（Ｄｉ（１）＿１，Ｄｉ（１）＿０）と表記し、最上位のビットを（Ｄｉ（Ｍ）＿１，Ｄｉ（Ｍ）＿０）と表記する。他のデータや信号についても同様である。
【００４７】
非同期全加算部１５０は、加算結果２線符号化部１８０の出力値に、受信データ２線符号化部１３０の出力値を、レプリカデータ２線符号化部１４０の出力値に応じた符号で加算して出力する。非同期全加算部１５０は、Ｍ個の１ビット非同期全加算器が縦続接続されて構成される。非同期全加算部１５０は、第１の入力ポートＸと、第２の入力ポートＹと、キャリー入力ポートＣｉｎと、出力ポートＺと、キャリー出力ポートＣｏｕｔとを有する。
【００４８】
第１の入力ポートＸには、受信データ２線符号化部１３０によって２線符号化された受信データ（Ｄｉ＿１，Ｄｉ＿０）が入力される。受信データＤｉはＭビットであるため、より具体的には、（Ｄｉ（１）＿１，Ｄｉ（１）＿０），（Ｄｉ（２）＿１，Ｄｉ（２）＿０），・・・，（Ｄｉ（Ｍ）＿１，Ｄｉ（Ｍ）＿０）のＭ個の２線符号化された受信データの組が入力される。
【００４９】
第２の入力ポートＹには、加算結果２線符号化部１８０によって２線符号化された加算結果記憶部１７０の記憶値（ＡＣＣ＿１，ＡＣＣ＿０）がフィードバック入力される。記憶値ＡＣＣもＭビットであるため、より具体的には、（ＡＣＣ（１）＿１，ＡＣＣ（１）＿０），（ＡＣＣ（２）＿１，ＡＣＣ（２）＿０），・・・，（ＡＣＣ（Ｍ）＿１，ＡＣＣ（Ｍ）＿０）のＭ個の２線符号化された記憶値の組が入力される。
【００５０】
キャリー入力ポートＣｉｎには、レプリカデータ２線符号化部１４０によって２線符号化されたレプリカデータ（Ｃｊ＿１，Ｃｊ＿０）が入力される。
【００５１】
非同期全加算部１５０は、１ビットのレプリカデータＣｊをキャリー入力とし、加算結果２線符号化部１８０によって２線符号化された記憶値ＡＣＣに、受信データＤｉを、レプリカデータＣｊに応じた符号で加算する。つまり、レプリカデータＣｊが“０”である場合は、記憶値ＡＣＣに受信データＤｉを足し込み（すなわち加算する）、レプリカデータＣｊが“１”である場合は、記憶値ＡＣＣに受信データＤｉの符号を反転して足し込む（すなわち減算する）。そして、加算結果である加算値Ｂを出力ポートＺから出力し、キャリー出力値（桁上げ出力値）Ｃｏｕｔをキャリー出力ポートＣｏｕｔから出力する。
【００５２】
処理部３００の機能部である受信データ読出制御部３１０及びレプリカデータ読出制御部３２０は、それぞれ受信データＤｉ及びレプリカデータＣｊを受信データ記憶部１１０及びレプリカデータ記憶部１２０から順次に読み出して、受信データ２線符号化部１３０及びレプリカデータ２線符号化部１４０にそれぞれ出力させるように制御する。これにより、２線符号化された受信データＤｉ及びレプリカデータＣｊが順次に非同期全加算部１５０に供給され、非同期全加算部１５０では、受信データＤｉとレプリカデータＣｊとの相関演算が行われる。
【００５３】
２線復号部１６０は、非同期全加算部１５０から出力される２線符号化された加算値Ｂとキャリー出力値Ｃｏｕｔとを２線符号化方式に従って復号する。非同期全加算部１５０では、２線符号化されたデータを用いた演算が行われ、その演算結果も２線符号化されているため、表１の真理値表に従って加算値Ｂを復号して、加算結果記憶部１７０に出力する。また、２線復号部１６０は、後述する復号完了信号ＲＣＶを演算完了検知部１８５に出力する。
【００５４】
加算結果記憶部１７０は、２線復号部１６０によって２線復号された加算値Ｂを記憶する記憶回路であり、例えばアキュムレーターによって構成される。本実施形態では、加算結果記憶部１７０の有効桁数をＭ桁として説明する。加算結果記憶部１７０に記憶された加算値Ｂは、記憶値ＡＣＣとして処理部３００に出力されるとともに、加算結果２線符号化部１８０にフィードバック出力される。
【００５５】
加算結果２線符号化部１８０は、加算結果記憶部１７０から入力した記憶値ＡＣＣを２線符号化する。２線符号化された記憶値ＡＣＣは、非同期全加算部１５０の第２の入力ポートＹに出力される。加算結果２線符号化部１８０は、第２の２線符号化部に相当する。
【００５６】
演算完了検知部１８５は、２線復号部１６０から出力される復号完了信号ＲＣＶに基づいて、非同期全加算部１５０による１回分の演算が完了したことを検知する。演算完了検知部１８５は、非同期全加算部１５０を構成する１ビット非同期全加算器全ての演算完了を検知した場合に、演算完了信号ＤａｔａＲｅａｄｙをオーバーフロー検知部１９０に出力する。
【００５７】
オーバーフロー検知部１９０は、非同期全加算部１５０から出力される最上位桁の１ビット非同期全加算器のキャリー出力と、最上位桁の１つ下の桁の１ビット非同期全加算器のキャリー出力とに基づいて非同期全加算部１５０のオーバーフローの発生を検知する。そして、演算完了検知部１８５から出力される演算完了検知信号ＤａｔａＲｅａｄｙに従って、オーバーフロー検知信号ＯｖｅｒＦｌｏｗをオーバーフローカウンタ部１９５に出力する。
【００５８】
オーバーフローカウンタ部１９５は、加算結果記憶部１７０から出力される加算値ＡＣＣの最上位ビットＡＣＣ（Ｍ）と、オーバーフロー検知部１９０から出力されるオーバーフロー検知信号ＯｖｅｒＦｌｏｗとに基づいて、オーバーフロー検知部１９０の検知回数を計数するカウンタを有して構成される。オーバーフローカウンタ部１９５は、計数値Ｃｏｕｎｔを処理部３００に出力する。また、オーバーフローカウンタ部１９５は、処理部３００から出力されるリセット信号Ｒｅｓｅｔに従ってリセット制御される。
【００５９】
３．非同期全加算部
図３は、非同期全加算部１５０の回路構成の一例を示す図である。非同期全加算部１５０は、Ｍ個の１ビット非同期全加算器１５０（１）〜１５０（Ｍ）を縦続接続して構成される。各１ビット非同期全加算器１５０（１）〜１５０（Ｍ）には、受信データＤｉの対応する番号の２線符号化されたデータと、記憶値ＡＣＣの対応する番号の２線符号化されたデータとが入力される。各１ビット非同期全加算器１５０（１）〜１５０（Ｍ）で演算された２線符号化された加算値Ｂは２線復号部１６０に出力され、キャリー出力値Ｃｏｕｔは１つ上位の１ビット非同期全加算器にキャリー出力される。
【００６０】
最下位桁の１ビット非同期全加算器１５０（１）には、２線符号化された受信データ（Ｄｉ（１）＿１，Ｄｉ（１）＿０）と、２線符号化された記憶値（ＡＣＣ（１）＿１，ＡＣＣ（１）＿０）とが入力される。また、２線符号化されたレプリカデータ（Ｃｊ＿１，Ｃｊ＿０）がキャリー入力される。そして、加算結果である加算値（Ｂ（１）＿１，Ｂ（１）＿０）が２線復号部１６０に出力される。また、キャリー出力値（Ｃｏｕｔ（１）＿１，Ｃｏｕｔ（１）＿０）が、その上位桁の１ビット非同期全加算器１５０（２）にキャリー出力される。
【００６１】
以下同様であるが、第（Ｍ−１）桁の１ビット非同期全加算器１５０（Ｍ−１）のキャリー出力値（Ｃｏｕｔ（Ｍ−１）＿１，Ｃｏｕｔ（Ｍ−１）＿０）は、第Ｍ桁（最上位桁）の１ビット非同期全加算器１５０（Ｍ）にキャリー出力される。また、肯定の信号線を伝送するキャリー出力値Ｃｏｕｔ（Ｍ−１）＿１は、オーバーフロー検知部１９０に出力される。
【００６２】
第Ｍ桁（最上位桁）の１ビット非同期全加算器１５０（Ｍ）のキャリー出力値（Ｃｏｕｔ（Ｍ）＿１，Ｃｏｕｔ（Ｍ）＿０）は、当該非同期全加算部１５０のキャリー出力値Ｃｏｕｔとして２線復号部１６０に出力される。また、肯定の信号線を伝送するキャリー出力値Ｃｏｕｔ（Ｍ）＿１は、オーバーフロー検知部１９０に出力される。
【００６３】
４．２線復号部
図４は、２線復号部１６０の回路構成の一例を示す図である。
２線復号部１６０は、非同期全加算部１５０から出力される２線符号化されたＭ組の加算値（Ｂ（１）＿１，Ｂ（１）＿０）〜（Ｂ（Ｍ）＿１，Ｂ（Ｍ）＿０）をそれぞれ２線復号するＭ組の加算値用の２線復号器１６０（１）〜１６０（Ｍ）と、非同期全加算部１５０から出力されるキャリー出力値（Ｃｏｕｔ（Ｍ）＿１，Ｃｏｕｔ（Ｍ）＿０）を２線復号するキャリー出力値用の２線復号器１６０（Ｃｏｕｔ）との、全部でＭ＋１個の２線復号器を有して構成される。
【００６４】
加算値用の２線復号器１６０（１）〜１６０（Ｍ）は、加算値（Ｂ（１）＿１，Ｂ（１）＿０）〜（Ｂ（Ｍ）＿１，Ｂ（Ｍ）＿０）をそれぞれ２線復号し、その復号結果である加算値Ｂ（１）〜Ｂ（Ｍ）を加算結果記憶部１７０にそれぞれ出力する。また、２線復号器１６０（１）〜１６０（Ｍ）は、復号の完了を示す復号完了信号ＲＣＶ（１）〜ＲＣＶ（Ｍ）を演算完了検知部１８５にそれぞれ出力する。
【００６５】
キャリー出力値用の２線復号器１６０（Ｃｏｕｔ）は、キャリー出力値（Ｃｏｕｔ（Ｍ）＿１，Ｃｏｕｔ（Ｍ）＿０）を２線復号し、その復号結果であるキャリー出力値Ｃｏｕｔ（Ｍ）を加算結果記憶部１７０に出力する。また、２線復号器１６０（Ｃｏｕｔ）は、復号の完了を示す復号完了信号ＲＣＶ（Ｃｏｕｔ）を演算完了検知部１８５に出力する。
【００６６】
表２に、２線復号部１６０の復号に係る真理値表を示す。
【表２】
2014021762.tif 000004
【００６７】
加算値及びキャリー出力値に対する復号は、表１に示した２線符号化の真理値表に準じて行われる。つまり、入力が（０，０）の場合は“Ｎｕｌｌ”に復号し、入力が（０，１）の場合は“０”に復号し、入力が（１，０）の場合は“１”に復号する。なお、（１，１）は不正値であるため、この値が入力された場合は、例えば回路動作に異常が発生していることをシステムに通知するなどすると好適である。
【００６８】
復号完了信号ＲＣＶは、入力が（０，０）の場合は“０”を出力し、入力が（０，１）或いは（１，０）の場合は“１”を出力するように定められている。つまり、有効符号語を入力した場合は復号完了信号ＲＣＶを“ＨＩＧＨ”とし、無効符号語を入力した場合は復号完了信号ＲＣＶを“ＬＯＷ”とする。
【００６９】
５．演算完了検知部及びオーバーフロー検知部
図５は、演算完了検知部１８５及びオーバーフロー検知部１９０の回路構成の一例を示す図である。
演算完了検知部１８５は、Ｍ＋１入力のランデブー回路１８５Ａを有して構成される。具体的には、２線復号器１６０（１）〜１６０（Ｍ）からそれぞれ出力される復号完了信号ＲＣＶ（１）〜ＲＣＶ（Ｍ）と、２線復号器１６０（Ｃｏｕｔ）から出力される復号完了信号ＲＣＶ（Ｃｏｕｔ）とのＭ＋１個の復号完了信号ＲＣＶがランデブー回路１８５Ａに入力される。
【００７０】
このランデブー回路１８５Ａは、全ての入力値が“０”で揃った場合に“０”を出力し、全ての入力値が“１”で揃った場合に“１”を出力する回路である。内部に記憶素子を有しており、１つでも異なる入力値が存在する場合は、直前の値を保持し、その出力を変化させない。従って、演算完了検知部１８５は、２線復号部１６０の全ての２線復号器から出力される復号完了信号ＲＣＶが“ＨＩＧＨ”となった場合に、出力値として“１”を出力することになる。演算完了検知部１８５からの出力は、演算完了検知信号ＤａｔａＲｅａｄｙとしてオーバーフロー検知部１９０の保持回路１９０Ｂに出力される。
【００７１】
オーバーフロー検知部１９０は、ＥＸＯＲ（EXclusive OR）回路１９０Ａと、保持回路１９０Ｂとを有して構成される。ＥＸＯＲ回路１９０Ａは、２入力の排他的論理和を演算する回路であり、最上位桁の１ビット非同期全加算器１５０（Ｍ）のキャリー出力値Ｃｏｕｔ（Ｍ）＿１と、最上位桁の１つ下の桁の１ビット非同期全加算器１５０（Ｍ−１）のキャリー出力値Ｃｏｕｔ（Ｍ−１）＿１とが入力される。
【００７２】
２の補数表現を用いる場合、非同期全加算部１５０のオーバーフローは、ＭＳＢ２ビットからのキャリー出力値を用いて検出することができる。例えば、４ビットの全加算器を想定し、負の数値範囲でオーバーフローが発生する場合を例示する。
【００７３】
４ビットの全加算器で扱える数値範囲は「−８〜＋７」である。この場合、例えば「−８」と「−１」とを加算するとオーバーフローが発生する。符号付きの２進数で「−８」は「１０００」であり、「−１」は「１１１１」である。この２つの数値を加算すると「１０１１１」となり、４ビットの全加算器で扱える数値範囲を超えるため、オーバーフローとなる。
【００７４】
この場合、最上位桁の１ビット非同期全加算器からのキャリー出力値は「１」となり、最上位桁の１つ下の桁の１ビット非同期全加算器からのキャリー出力値は「０」となる。２つのキャリー出力値が異なっていることから、オーバーフローが発生したと判断することができる。正の値同士の加算によってオーバーフローが発生する場合も同様に考えることができる。従って、ＭＳＢ２ビットからのキャリー出力値の排他的論理和により、オーバーフローの発生を簡単に検知することができる。
【００７５】
なお、本実施形態では、ＥＸＯＲ回路１９０Ａに、非同期全加算部１５０から出力される肯定の信号線を伝送するキャリー出力値Ｃｏｕｔ（Ｍ）＿１及びＣｏｕｔ（Ｍ−１）＿１を入力してオーバーフローの発生を検知することとしているが、否定の信号線を伝送するキャリー出力値Ｃｏｕｔ（Ｍ）＿０及びＣｏｕｔ（Ｍ−１）＿０を入力してオーバーフローの発生を検知するように構成してもよい。
【００７６】
保持回路１９０Ｂは、ＥＸＯＲ回路１９０Ａの出力値を、演算完了検知部１８５から出力される演算完了検知信号ＤａｔａＲｅａｄｙの立ち上がりで保持するラッチ回路である。つまり、保持回路１９０Ｂは、演算完了検知信号ＤａｔａＲｅａｄｙが“０”から“１”に立ち上がった際に、ＥＸＯＲ回路１９０Ａの演算値をラッチし、オーバーフロー検知信号ＯｖｅｒＦｌｏｗとしてオーバーフローカウンタ部１９５に出力する。
【００７７】
６．オーバーフローカウンタ部
図６は、オーバーフローカウンタ部１９５の回路構成の一例を示す図である。
オーバーフローカウンタ部１９５は、所定数のビットのカウンタ１９５Ａを有して構成される。カウンタ１９５Ａには、処理部３００から出力されるリセット信号Ｒｅｓｅｔと、加算結果記憶部１７０から出力される記憶値の最上位ビットＡＣＣ（Ｍ）と、オーバーフロー検知部１９０から出力されるオーバーフロー検知信号ＯｖｅｒＦｌｏｗとが入力される。
【００７８】
カウンタ１９５Ａは、正論理のオーバーフロー検知信号ＯｖｅｒＦｌｏｗを入力する毎に計数値を１ずつ増減させる。計数値の増減は、記憶値の最上位ビットＡＣＣ（Ｍ）によって決定する。ＡＣＣ（Ｍ）は符号ビットであるため、ＡＣＣ（Ｍ）が“０”であれば正の数値範囲でオーバーフローが発生したと判断し、計数値を増加させる。それに対し、ＡＣＣ（Ｍ）が“１”である場合は、負の数値範囲でオーバーフローが発生したと判断し、計数値を減少させる。カウンタ１９５Ａは、計数値を処理部３００に出力する。
【００７９】
７．相関値の算出処理
図７は、ベースバンド処理回路部２０の処理部３００が実行する相関値の算出処理の流れを示すフローチャートである。処理部３００は、記憶部４００に記憶されたプログラムに従ってこの処理を行う。
【００８０】
最初に、処理部３００は、受信データ及びレプリカデータの読出開始位置をそれぞれ初期設定する（ステップＡ１）。第１回目の相関演算では、例えば、Ｎ個の受信データＤｉのうちの第１番目のデータＤ１の記憶位置を読出開始位置とし、Ｎ個のレプリカデータＣｊのうちの第１番目のデータＣ１の記憶位置を読出開始位置とする。
【００８１】
次いで、受信データ読出制御部３１０は、受信データ記憶部１１０の現在設定されている読出位置から受信データＤｉを読み出し、受信データ２線符号化部１３０に出力させる（ステップＡ３）。同様に、レプリカデータ読出制御部３２０は、レプリカデータ記憶部１２０の現在設定されている読出位置からレプリカデータＣｊを読み出し、レプリカデータ２線符号化部１４０に出力させる（ステップＡ３）。
【００８２】
次いで、処理部３００は、演算完了検知部１８５から演算完了検知信号を入力するまで待機し（ステップＡ５；Ｎｏ）、演算完了検知信号を入力したならば（ステップＡ５；Ｙｅｓ）、受信データＤｉ及びレプリカデータＣｊのＮ個全てのデータについて非同期全加算部１５０での演算が完了したかを判定する（ステップＡ７）。
【００８３】
まだ演算が完了していないと判定した場合は（ステップＡ７；Ｎｏ）、処理部３００は、受信データ及びレプリカデータの読出位置を１データ分シフトする（ステップＡ９）。そして、ステップＡ３に戻る。
【００８４】
一方、全てのデータについて非同期全加算部１５０での演算が完了したと判定した場合は（ステップＡ７；Ｙｅｓ）、相関値算出部３３０が、受信系列データとレプリカコードとの相関値を算出する（ステップＡ１１）。
【００８５】
図８は、相関値の算出方法の説明図である。図８において、横軸は時間軸であり、縦軸は非同期全加算部１５０の積和演算値を示す。時間軸と平行に示した２本の破線のラインで囲まれる数値範囲は、加算結果記憶部１７０の有効桁数を表す数値範囲である。本実施形態では加算結果記憶部１７０の有効桁数をＭ桁としているため、数値範囲は「−２M-1〜２M-1−１」となる。
【００８６】
図８には、受信データＤｉとレプリカデータＣｊとの積和演算を行うことで得られる積和演算値の時間変化の一例を示している。図中の太点線が、積和演算値である。また、図中に太実線は、加算結果記憶部１７０に記憶される記憶値ＡＣＣである。
【００８７】
図８では、最初に積和演算値が減少していき、加算結果記憶部１７０の数値範囲を下回ると、非同期全加算部１５０ではオーバーフローが発生し、計数値は「−１」となる。この場合、負の数値範囲でオーバーフローが発生したことで、負の値であるはずの積和演算値は、加算結果記憶部１７０では正の値として記憶される。
【００８８】
その後、積和演算値が増加していき、加算結果記憶部１７０の数値範囲内になると、再び非同期全加算部１５０においてオーバーフローが発生し、計数値は「−１」から「０」となる。その後、積和演算値が増加していき、加算結果記憶部１７０の数値範囲を上回ると、非同期全加算部１５０においてオーバーフローが発生し、計数値は「＋１」となる。この場合、正の数値範囲でオーバーフローが発生したことで、正の値であるはずの積和演算値は、加算結果記憶部１７０では負の値として記憶される。
【００８９】
その後、例えば、積和演算値が減少する方向に変化し、加算結果記憶部１７０の数値範囲を下回ることで計数値が「−１」となり、その後も積和演算値が減少する方向に変化し続けたことで、更にもう１回オーバーフローが発生し、計数値が「−２」になったとする。そして、その後、全てのデータについて演算が完了したとする。
【００９０】
この場合、相関値算出部３３０は、加算結果記憶部１７０に記憶された記憶値ＡＣＣ（図中の黒丸）から相関値Ｃｏｒｒ（図中の白丸）を算出する。図８では、記憶値ＡＣＣと相関値Ｃｏｒｒとの差は、加算結果記憶部１７０の数値範囲２個分、つまり「２×（２M−１）」である。このため、相関値Ｃｏｒｒは「Ｃｏｒｒ＝ＡＣＣ＋（−２）×（２M−１）」と計算することができる。
【００９１】
これを一般化すると、相関値Ｃｏｒｒは、非同期全加算器１５０の個数Ｍ、オーバーフローカウンタ部１９５の計数値Ｃｏｕｎｔ及び加算結果記憶部１７０の記憶値ＡＣＣを用いて、次式（１）のように算出することができる。
【数１】
2014021762.tif 000005
【００９２】
図７の説明に戻り、処理部３００は、算出した相関値を記憶部４００に記憶させる（ステップＡ１３）。そして、処理部３００は、リセット信号をオーバーフローカウンタ部１９５に出力することでカウンタ１９５Ａをリセット制御する（ステップＡ１５）。ここまでの処理で、１回分の相関演算が終了となる。
【００９３】
受信データに対するレプリカデータのずらし量を“ｋ”とする場合、相関値“Ｃｏｒｒ（ｋ）”は次式（２）のように定式化することができる。
【数２】
2014021762.tif 000006
【００９４】
第１回目の相関演算では、受信データに対するレプリカデータのずらし量をゼロとするため（ｋ＝０）、算出される相関値“Ｃｏｒｒ（０）”は次式（３）のようになる。
【数３】
2014021762.tif 000007
【００９５】
その後、処理部３００は、次の相関演算を行うか否かを判定する（ステップＡ１７）。次の相関演算を行うと判定した場合は（ステップＡ１７；Ｙｅｓ）、処理部３００は、受信データ及びレプリカデータの読出開始位置を再設定する（ステップＡ１９）。
【００９６】
具体的には、受信系列データとレプリカコードとの相関演算を位相をずらして行うために、受信データ及びレプリカデータの何れか一方のデータの読出開始位置を１データ分だけシフトさせ、他方のデータの読出開始位置は変化させずにそのままとする。そして、処理部３００は、ステップＡ３に戻る。
【００９７】
例えば、レプリカコードの位相をずらすこととし、レプリカデータの読出開始位置を１データ分シフトさせることで、次回の相関演算のステップＡ１１では、次式（４）で与えられる相関値“Ｃｏｒｒ（１）”が算出されることになる。
【数４】
2014021762.tif 000008
【００９８】
一方、ステップＡ１７において次の相関演算を行わないと判定した場合は（ステップＡ１７；Ｎｏ）、処理部３００は、相関値の算出処理を終了する。
【００９９】
８．作用効果
非同期相関演算回路１００において、ＧＰＳ衛星信号の受信データが受信データ２線符号化部１３０（第１の２線符号化部）によって２線符号化される。また、加算結果記憶部１７０の記憶値が加算結果２線符号化部１８０（第２の２線符号化部）によって２線符号化される。非同期全加算部１５０は、Ｍ個の１ビット非同期全加算器１５０（１）〜１５０（Ｍ）が縦続接続されて構成される。そして、加算結果２線符号化部１８０の出力値に、レプリカデータ２線符号化部１４０の出力値に応じた符号で受信データ２線符号化部１３０の出力値を加算することで、受信データとレプリカデータとの積和演算を行う。
【０１００】
１ビット全加算器を縦続接続して構成されるリプルキャリー型の全加算回路では、キャリー出力が最下位ビットから最上位ビットまで順番に伝搬していく。このため、キャリー出力の伝搬経路がクリティカル・パスとなり、最上位ビットの演算結果及びそのキャリー出力が確定するまでに、加算対象とするデータのビット長に比例した遅延時間が生じてしまう。しかし、本実施形態の非同期全加算部１５０は非同期式であるため、遅延時間の期待値は、個々の１ビット非同期全加算器の平均的な演算時間によって決定付けられる。従って、本実施形態の非同期全加算回路１００Ａでは、同期式の全加算回路と比べて遅延時間を短縮する効果が期待できる。
【０１０１】
また、本実施形態の非同期相関演算回路１００では、オーバーフロー検知部１９０が、非同期全加算部１５０の最上位桁の非同期全加算器のキャリー出力と、最上位桁の１つ下の桁の非同期全加算器のキャリー出力とに基づいて非同期全加算部１５０のオーバーフローの発生を検知する。そして、オーバーフローカウンタ部１９５が、オーバーフロー検知部１９０の検知回数を符号ビットの値に従って加算或いは減算して計数する。
【０１０２】
具体的には、オーバーフローは正の数値範囲及び負の数値範囲の何れにおいても発生し得るため、符号ビットの値が“０”（すなわち正数）であれば計数値を増加させ、符号ビットの値が“１”（すなわち負数）であれば計数値を減少させる。これにより、処理部３００は、１ビット非同期全加算器の個数Ｍ、カウンタ１９０Ａの計数値及び加算結果記憶部１７０の記憶値を用いることで、式（１）から受信データとレプリカデータとの相関値を正しく算出することができる。
【０１０３】
従って、最終的な相関値として想定される桁数分の全加算器は必ずしも必要ではなく、縦続接続する全加算器の個数を減らすことができるため、回路規模を低減させつつ、高桁数の相関演算が可能となる。また、同期設計手法で相関演算回路を構成した場合は、クロック信号の周波数に比例して消費電力が増大する傾向がある。しかし、本実施形態の非同期相関演算回路１００はクロックを持たないため、クロック信号に伴う電力消費が存在しない分、消費電力の削減になる。また、クロック周波数による高速動作の上限がなく、高速動作が可能である。
【０１０４】
９．変形例
本発明を適用可能な実施例は、上記の実施例に限定されることなく、本発明の趣旨を逸脱しない範囲で適宜変更可能であることは勿論である。以下、変形例について説明する。
【０１０５】
９−１．適用例
上記の実施形態では、本発明の非同期全加算回路を、ＧＰＳ衛星信号の受信信号とレプリカコードとの相関演算を行う非同期相関演算回路に備えて利用する場合の実施形態について説明したが、非同期全加算回路の適用例はこれに限られない。本発明の非同期全加算回路では、非同期で入力データの累積加算を行うことが可能である。
【０１０６】
例えば、非同期全加算回路を備える演算装置を構成することが可能である。この場合、非同期全加算回路の非同期全加算部は、所与の入力データの累積加算を行う。非同期全加算回路のオーバーフロー検知部は、上記の実施形態と同様に、非同期全加算部のオーバーフローの発生を検知し、その検知回数をオーバーフローカウンタ部が計数する。そして、演算装置の処理部（算出部）は、非同期全加算器の個数Ｍ、カウンタの計数値及び加算結果記憶部の記憶値を用いて、上記の実施形態と同様の手法で、非同期全加算回路での累積加算値を算出する。
【０１０７】
また、ＣＤＭＡ（Code Division Multiple Access）方式でデータ通信を行うシステムでは、送信機側で拡散符号を用いて送信データを拡散変調し、受信機側で拡散変調されたデータを逆拡散して送信データを復調する。逆拡散では、受信信号の拡散符号の位相を知る必要があるため、受信信号と擬似的な拡散符号との相関演算が必要となる。従って、衛星測位システム以外の通信システムに本発明の非同期相関演算回路を適用することも可能である。
【０１０８】
９−２．回路の並列化
上記の実施形態では、非同期相関演算回路の個数を１つとし、受信データ或いはレプリカデータの読出開始位置をずらして、１つの非同期相関演算回路で相関演算を繰り返し実行することとして説明した。しかし、複数個の非同期相関演算回路を配置構成し、それぞれの非同期相関演算回路に異なる位相で受信信号とレプリカコードとの相関演算を並列的に行わせることとしてもよい。
【０１０９】
これは、非同期全加算回路についても同様である。つまり、複数個の非同期全加算回路を配置構成し、それぞれの非同期全加算回路に入力データの累積加算を並列的に行わせ、これらの加算値を用いて最終的な累積加算値を算出するように回路を構成することとしてもよい。
【０１１０】
９−３．電子機器
上記の実施形態の非同期全加算回路や非同期相関演算回路は、種々の演算装置や相関演算装置に備えて利用することが可能である。また、このような演算装置や相関演算装置を具備する電子機器として、例えば、携帯型電話機やカーナビゲーション装置、携帯型ナビゲーション装置、パソコン、ＰＤＡ（Personal Digital Assistance）、歩数計、腕時計といった種々の電子機器を想定することが可能である。
【０１１１】
９−４．衛星測位システム
上記の実施形態では、衛星測位システムとしてＧＰＳを適用した場合の実施形態について説明したが、ＷＡＡＳ（Wide Area Augmentation System）やＱＺＳＳ（Quasi Zenith Satellite System）、ＧＬＯＮＡＳＳ（GLObal NAvigation Satellite System）、ＧＡＬＩＬＥＯ等の他の衛星測位システムとしてもよいことは勿論である。
【符号の説明】
【０１１２】
１  ＧＰＳ受信機、  １０  ＲＦ受信回路部、  ２０  ベースバンド処理回路部、  １００  非同期相関演算回路、  １００Ａ  非同期全加算回路、  １１０  受信データ記憶部、  １２０  レプリカデータ記憶部、  １３０  受信データ２線符号化部、  １４０  レプリカデータ２線符号化部、  １５０  非同期全加算部、  １６０  ２線復号部、  １７０  加算結果記憶部、  １８０  加算結果２線符号化部、  １８５  演算完了検知部、  １９０  オーバーフロー検知部、  １９５  オーバーフローカウンタ部、  ２００  レプリカコード生成部、  ３００  処理部、  ３１０  受信データ読出制御部、  ３２０  レプリカデータ読出制御部、  ３３０  相関値算出部、  ４００  記憶部
【図１】
2014021762.tif 000009
【図２】
2014021762.tif 000010
【図３】
2014021762.tif 000011
【図４】
2014021762.tif 000012
【図５】
2014021762.tif 000013
【図６】
2014021762.tif 000014
【図７】
2014021762.tif 000015
【図８】
2014021762.tif 000016