JP2018006863A - 受信回路、受信装置および受信方法 - Google Patents
受信回路、受信装置および受信方法 Download PDFInfo
- Publication number
- JP2018006863A JP2018006863A JP2016127796A JP2016127796A JP2018006863A JP 2018006863 A JP2018006863 A JP 2018006863A JP 2016127796 A JP2016127796 A JP 2016127796A JP 2016127796 A JP2016127796 A JP 2016127796A JP 2018006863 A JP2018006863 A JP 2018006863A
- Authority
- JP
- Japan
- Prior art keywords
- data
- unit
- data signal
- receiving circuit
- bit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Synchronisation In Digital Transmission Systems (AREA)
Abstract
【課題】受信したデータを簡単かつ精度良くタイミング調整できること。【解決手段】受信したデータを複数に分配し、分配した複数のデータのそれぞれに異なる遅延量を与える遅延素子103と、遅延素子103で遅延させた複数のデータを共通のクロックCLKで打ち抜き、打ち抜かれたデータをそれぞれ出力する複数のFF104と、複数のFF104が出力するデータ信号に基づき、データ信号にビットスリップが生じたFF104を特定し、特定したFF104と異なる遅延量のFF104が出力するデータを受信データの再生用として選択するビットスリップ検出/セレクタ部115と、を備える。【選択図】図1
Description
本発明は、データ信号を受信する受信回路、受信装置および受信方法に関する。
複数バス等により高速な複数のデータ信号を受信する受信回路では、各データについてフリップフロップ(以降、FFと表記する)等を使用してクロックで打ち抜いて、データ信号間の位相を合わせている。各FFに対して一つの共通クロックで打ち抜く場合、クロックを各FF毎に分けて入力し、各クロックのタイミングを、受信するデータ信号に応じてずらすことで、データ信号の受信を安定させることができる。但し、データ信号の同期については、位相ズレがそのまま後段回路へ送られることになる。
後段回路に出力する各データ信号間の位相を合わせるためには、各データ信号に、それぞれ所定の時間遅延を与え、各データ信号を適宜遅延させている(例えば、下記特許文献1参照。)。また、クロック側を遅延させることでデータの取り込みタイミングを調整する技術がある(例えば、下記特許文献2参照。)。このほか、データ信号を複数の遅延量で遅延させ、セレクタで順次変更してデータ信号を正常に取り込む技術がある(例えば、下記特許文献3参照。)。
しかし、上記従来の技術では、複数の高速なデータ信号を受信する際に、データ信号間で位相が異なる場合、データ信号間の位相合わせを適切に行えない場合が生じる。
特許文献1の技術では、データ信号の取り込みを行い、データ誤りを検出した回数や頻度に応じて、追加する遅延量を決めて実際にデータ誤りを発生させている。このため、データの転送効率が悪化するとともに、データ誤りを許容しない通信には適用できない。
また、特許文献2の技術では、各データに対応するクロック側の遅延を変えた調整を行うため、クロックの波形を劣化させるとともに、クロックを複数生成しなければならない。例えば、ASIC(Application Specific Integrated Circuit)を用いる場合、クロックを多く必要とするにしたがい配線面積が増大し、新たにクロストーク等の対処を施す必要が生じる。また、FPGA(Field−Programmable Gate Array)を用いる場合、クロック用の配線リソース(グローバル配線)数に制限(16,32等)がある。一つのチップに非常に多数のクロックが必要な現状において、さらに複数のクロックを使用することが困難である。なお、一般配線をクロック配線に使用する場合には、本来の使用方法と異なるため新たに様々な制限や問題が発生するおそれがある。また、PLL(Phase Locked Loop)を用いる場合、データのビット幅分の個数のPLLが必要となり、個数に制限のあるASICやFPGAでは実現は難しい。
また、特許文献2の技術では、タイミング調整用のパターンを送信側から電源投入後等の最初のみ送出するため、運用中の電源変動や温度変動に対応できない。例えば、送信側の送出時の遅延量、途中の伝送路の遅延量、受信側の遅延量や取り込みセットアップタイミング等の変化に対応できず、最適な取り込みタイミングにズレが生じて、データエラーを起こすおそれがある。
また、特許文献3の技術では、データ信号をFFで取り込んでから遅延させ、また、PLLを用いるため、上記同様に回路リソースおよびクロック用のグローバル配線リソースを消費する。
一つの側面では、本発明は、受信したデータを簡単かつ精度良くタイミング調整できることを目的とする。
一つの案では、受信回路は、受信したデータ信号を複数に分配し、分配した複数の前記データ信号のそれぞれに異なる遅延量を与える遅延部と、前記遅延部で遅延させた複数の前記データ信号を共通クロックで打ち抜き、打ち抜かれた前記データ信号をそれぞれ出力する複数のデータ保持部と、複数の前記データ保持部が出力するデータ信号に基づき、当該データ信号にビットスリップが生じた前記データ保持部を特定し、特定した前記データ保持部と異なる遅延量の前記データ保持部が出力する前記データ信号を受信データの再生用として選択するビットスリップ検出部と、を備えたことを要件とする。
一つの実施形態によれば、受信したデータを簡単かつ精度良くタイミング調整できるという効果を奏する。
(実施の形態)
以下、本発明の実施の形態を説明する。実施の形態の受信回路は、対向デバイスからの入力データを分岐させて異なる遅延量を与えた複数のFFで受信し、各FFの出力データを比較することでビットスリップしたFFを特定する。そして、ビットスリップしたFFに対し遅延量が離れた安定してデータ受信可能なFFのデータを選択する。選択したFFはビットスリップしたFFと異なる配線遅延を持つ。クロックは、対向する送信側デバイスからの入力、あるいは受信回路内で生成されたもの(但し周波数はほぼ同じ)をいずれでも用いることができる。
以下、本発明の実施の形態を説明する。実施の形態の受信回路は、対向デバイスからの入力データを分岐させて異なる遅延量を与えた複数のFFで受信し、各FFの出力データを比較することでビットスリップしたFFを特定する。そして、ビットスリップしたFFに対し遅延量が離れた安定してデータ受信可能なFFのデータを選択する。選択したFFはビットスリップしたFFと異なる配線遅延を持つ。クロックは、対向する送信側デバイスからの入力、あるいは受信回路内で生成されたもの(但し周波数はほぼ同じ)をいずれでも用いることができる。
実施の形態では、データ側の遅延で入力タイミングを調整し、クロック側での調整を不要にする。これにより、クロックは単一のもので良く、複数用意する必要が無い。また、クロック位相調整用のPLLが無くても実現できる。また、必要な回路はすべてユーザー回路(FPGA内の一般回路)で実現できる。
また、複数ビット(bit)幅のデータ(バス)の場合、各bitの値が変化していない安定した値を選択するだけでは、bit間のクロック1周期単位でのスリップが生じる可能性がある。このため、実施の形態では、送信側と受信側とで取り決めたコードを所定のタイミングで送受信することにより、コードの特定bitのスリップを検出し、スリップ分を他のbitより早める/あるいは遅らせることで解消する。
また、データのスリップする頻度を監視し、スリップの頻度に基づきコードを送受信する頻度を動的に変化させる。また、デバイスの温度や電圧の変動の大きさを監視し、これらの変動の大きさに基づきコードを送受信する頻度を動的に変化させる。
図1は、実施の形態の受信回路の構成例を示す回路図である。図1に示す受信回路100は、説明の便宜上、入力されるデータ(DATA)が1ビットの例を示している。入力されるクロック(CLK)も、単一のクロックである。なお、受信回路100はPLLを含まない。
受信回路100は、データ入力端子101と、クロック入力端子102と、複数の遅延部(遅延素子)103と、複数のデータ保持部(データ保持素子:FF)104と、受信部105と、を含む。この受信回路100は、例えば、FPGAを用いることができる。
受信回路100は、受信装置110において、外部の伝送路からデータ信号(データ)が入力される箇所に配置される。受信装置110は、受信回路100から出力されたデータを処理するデータ処理部(不図示)を含む。
データが入力されるデータ入力端子101に接続された内部の信号経路上には、複数の遅延素子103が縦列配置される。また、各遅延素子103の出力は、それぞれFF104のデータ端子に入力される。
クロック入力端子102に接続された一つのグローバルラインは、各FF104のクロック端子と、受信部105のクロック端子に接続される。
図1の例では、遅延素子103とFF104をそれぞれ8個設けた構成例であり、各FF104の出力端子は、受信部105に接続される。
受信部105は、ビットスリップ検出/セレクタ部115を含み、ビットスリップ検出/セレクタ部115には、各FF104の出力およびクロックが入力され、ビットスリップを検出する。受信部105には、トリガーが外部入力される。
図1には、不図示であるが、受信部105は、ビットスリップ検出/セレクタ部115の後段にコードチェック/補正部を含む。このコードチェック/補正部は、ビットスリップ検出/セレクタ部115が取り込んだデータに対するコードチェックとデータ補正を行う。受信部105が出力するデータは、図示しないデータ再生部により受信データが再生される。
図2は、実施の形態の受信回路の入力端子からみた遅延量を示す図表である。図1に示すデータ入力端子101から各FF104での遅延量の例を示す。各遅延素子103の遅延量がいずれも500ps、クロック1サイクルが4000ps(1bitのデータの速度が250Mbps)のときの各FF104に入力される遅延量を示している。
例えば、1段目のFF104(FF1)は1個の遅延素子103の遅延量が500psであり、FF1に入力される遅延量は500psである。2段目のFF104(FF2)は2個の遅延素子103を通過するため遅延量が1000psであり、FF2に入力される遅延量は1000psである。8段目のFF104(FF8)は8個の遅延素子103を通過するため遅延量が4000psであり、FF8に入力される遅延量は4000psである。
そして、実施の形態の受信回路100は、データ変化の無い安定したタイミングでデータを取り込む。すなわち、データの変化点を避けて、データの安定しているタイミングでデータを取り込む。そして、各FF104の出力データを受信部105(ビットスリップ検出/セレクタ部115)にて比較し、ビットスリップするFF104の境目を検出し、その結果から、最も安定していると思われるFF104をセレクタにより選択する。後述するが、入力データが複数bitの場合、各bitのデータを独立して処理する。
詳細は後述するが、この受信回路100は、温度や電圧の変動に伴って遅延量の変動が起こった場合に、随時、変動による結果を基に最適なタイミングを探し出すことができる。これにより、入力されるデータが高速でスイートスポットが小さくても追従してタイミングを細かく調整できる。
図3は、実施の形態の受信回路による安定したFFでのデータ取り込みを説明するタイミングチャートである。横軸は時間を示す。図1の構成において、ビットスリップ検出/セレクタ部115は、下記[1]、[2]の処理を実行することで、ビットスリップの無い安定したFFを決定する。
[1]各FF104の出力を常時比較し、クロック1サイクル分スリップするFF104を特定する。
[2]ビットスリップしたFFから離れた位置のFF104をセレクトし、データを取り込む。例えば、ビットスリップしたFFからみて最も離れたFF104のデータを取り込む。また、図3の例に示すように、総FF個数の半分手前(遅延量が少ない側)のFF104のデータを取り込んでも良い。
[2]ビットスリップしたFFから離れた位置のFF104をセレクトし、データを取り込む。例えば、ビットスリップしたFFからみて最も離れたFF104のデータを取り込む。また、図3の例に示すように、総FF個数の半分手前(遅延量が少ない側)のFF104のデータを取り込んでも良い。
図3には、各箇所でのタイミング(位相)を示す。(a)はクロック入力端子102に入力されるクロック、(b)はグローバルライン上での遅延によるクロックである。(c)はデータ入力端子101に入力されるデータである。(d)〜(i)はそれぞれ、FF1〜FF6に対する入力データと出力データである(FF7,FF8の記載は省略)。
図3には、FF4とFF5との間でスリップが生じた例を示してある。(h)FF5の入力データが(b)グローバルライン上のクロックの変化点と同じであるため、FF5は、セットアップ/ホールド動作の際、入力データの取り込みが不定となる(FF5がデータを取り込む場合と取り込まない場合が生じる)。
そして、ビットスリップ検出/セレクタ部115は、[1]8個のFF1〜FF8の出力を常時比較し、クロック1サイクル分スリップしたFF5を特定する。この際、ビットスリップ検出/セレクタ部115は、FF4,FF5の出力は取り込まない。
この後、ビットスリップ検出/セレクタ部115は、[2]ビットスリップしたFFから離れた位置のFF104をセレクトする。例えば、ビットスリップしたFF5から総FF個数(8個)の半分の個数である4個手前のFF1をセレクトし、FF1のデータを取り込む。このFF1は、ビットスリップの無い安定してデータを取り込んだFF104である。
例えば、ビットスリップ検出/セレクタ部115は、定期的に入力されるトリガー(図1参照)毎に上記[1][2]の処理を実行することにより、各FF104でのビットスリップを常時監視することができる。トリガーは、後述するが、送信装置から入力される構成とすることもできる。
図4は、実施の形態のビットスリップ検出のタイミングを送信する送信回路の構成例を示す図である。この送信回路400は、受信回路100が受信する上記データを伝送路に送信する。
送信回路400は、送信装置410において、データを出力する箇所に配置される。送信装置410は、送信回路400に対し送信するデータを処理するデータ処理部(不図示)を含む。この送信回路400は、例えば、FPGAを用いることができる。
送信回路400は、主信号生成部401と、送信部402と、データ出力端子403と、トリガー生成部404と、コード挿入タイミング検出部405と、タイミング調整用コード生成部406と、を含む。
主信号生成部401は、送信装置410内から出力され、送信するデータを生成する。送信部402は、データをバス幅に対応した複数ビット(図1の例では1ビット)の送信データとしてデータ出力端子403から送信する。
トリガー生成部404は、受信装置110側の受信部105(ビットスリップ検出/セレクタ部115)におけるビットスリップ検出用のトリガーを生成する。コード挿入タイミング検出部405は、主信号生成部401が生成した主信号(送信データ)に基づき、ビットスリップ検出のトリガーを出力するタイミングを決定する。
タイミング調整用コード生成部406は、ビットスリップ検出のトリガーとして、特定のタイミング調整用コードを生成する。送信部402は、送信データにタイミング調整用コードを含ませて送信する。タイミング調整用コードは、複数bitの組み合わせからなる(詳細は後述する)。
そして、送信回路400は、特定のタイミング調整用コードを特定のタイミングで送信し、受信回路100では、そのタイミング調整用コードを受信した際に、ビットスリップを検出し、補正する。例えば、送信装置410と受信装置110間において、フレームパルスを利用しているインタフェースでは、フレームの余剰スロットを利用してタイミング調整用コードを送受信することができる。
タイミング調整用コードの送信タイミングは、例えば、送信装置410のリセット時等である。送信装置410のリセット時や、送信装置410が起動された場合等には、送信装置410側、および受信装置110側が共に調整モードとなる。この際、送信装置410(送信回路400)は、タイミング調整用コードを送信する。
このほか、bit間のクロック1周期単位でのスリップが生じる可能性もあるため、送信装置410側と受信装置110側とで取り決めたタイミング調整用コードを所定のタイミングで送受信しても良い。これにより、受信装置110(受信回路100)側でタイミング調整用コードの特定bitのスリップを検出し、スリップ分を他のbitより早める/遅らせる位相調整が行えるようになる。
さらには、受信装置110(受信回路100)側でデータのスリップする頻度を監視し、送信装置410(送信回路400)が送信するタイミング調整用コードの出力頻度を動的に変化させることもできる。例えば、送信装置410や受信装置110で検出した温度や電圧の変動の大きさに基づき、タイミング調整用コードの出力頻度を動的に変化させることもできる。
これにより、送信装置410や受信装置110の電源変動や温度変動によって、送信装置410側のデータ送出時の遅延量、途中の伝送路の遅延量、受信装置110側の遅延量や取り込みセットアップタイミング等の変化に対応できるようになる。すなわち、温度や電圧の変動に伴って遅延量の変動が起こっても、随時、変動による結果を基に最適なタイミングを探し出す。これにより、入力されるデータが高速でスイートスポットが小さくても追従してタイミングを細かく調整できる。そして、最適な取り込みタイミングでデータを取り込むことができ、受信したデータのデータエラーを防ぐことができる。
図5は、実施の形態のビットスリップ検出用のトリガーとして用いるタイミング調整用コードの内容例を示すタイミングチャートである。横軸は時間を示す。
図5の(a)は、送信回路400による通常のデータ送信時の内容を示す。例えば、送信回路400は、2048bitの周期でフレームパルスを送信する。
図5の(b)は、送信回路400によるタイミング調整用コード送信時の内容を示す。送信回路400は、タイミング調整用コードの送信時には、このタイミング調整用コード500の送信期間(code期間)T1だけフレームパルスの送信タイミングをずらす(2048bit+α(code期間))。
受信回路100は、通常時のフレームパルスの出力時期t1と、タイミング調整用コードの送信時のフレームパルスの出力時期t2とに基づき、これら時期t2−t1の期間がタイミング調整用コード500の送信期間(code期間)T1と判断できる。そして、送信期間(code期間)T1でタイミング調整用コード500を抽出しタイミング調整に用いる。
すなわち、受信回路100は、毎フレームパルスから数えて2048bit(2048クロック)の間は、主信号データとして扱う。そして、2049bit以降でフレームパルスが無い場合は、タイミング調整用コード500が有効な期間と判断し、タイミング調整を行う。
タイミング調整用コード500の内容(コード例)は、送信装置410と受信装置110との間であらかじめ取り決めた特定のコードであれば良く、例えば、’111’’000’’000’000’’111’とする。この例では、送信装置410(送信回路400)と受信装置110(受信回路100)間のシリアル通信を示し、タイミング調整用コード500のデータ幅は3bitである。
上記のタイミング調整用コード500は、送信回路400のタイミング調整用コード生成部406が生成し、送信部402が送信データに含ませて送信する。このため、送信装置410と受信装置110との間のデータ用の伝送路を介してタイミング調整用コード500を送受信することができ、他の伝送路等を用いる必要が無い。
図6は、実施の形態の受信回路の他の構成例を示す回路図である。上述した説明(図1)では、便宜上、受信するデータ幅を1ビットとしたが、図6には、データ幅が複数ビットである例を示している。
図6の例では、受信するデータが16ビットのバス幅を有している(bit0〜bit15)。対応して、データ入力端子101は、バス幅に対応して16個設けられる。また、受信回路100の内部においても、図1に示した8個の遅延素子103と8個のFF104からなる各ビット回路601が、16組設けられる。
また、受信部105は、各bitに対応して16個のビットスリップ検出/セレクタ部115が設けられ、それぞれ1bit中でのビットスリップを検出する。各ビットスリップ検出/セレクタ部115の後段には、コードチェック/補正部602が設けられ、複数bitで構成されるコードのチェック、およびコードのズレがある場合の補正を行う。
ビットスリップ検出/セレクタ部115は、各bitのビットスリップ検出と安定したデータの選択を各ビットで独立して行う。
図7は、実施の形態の受信回路のコードチェック/補正部の内部構成例を示す回路図である。図6に示したコードチェック/補正部602の回路構成例を示す。コードチェック/補正部602は、入力される16ビットのデータの各bit毎に複数個の第2のデータ保持部(FF)701(図7の例では、3個のFF1〜FF3)を直列接続してなる。入力されるクロックは、各FF701にクロック出力される。
1ビット(DATA[0])当たりの構成例を説明すると、1段目のFF1の(データ)出力は、コードチェック/セレクタ部702に出力すると共に、2段目のFF2に出力する。2段目のFF2の(データ)出力は、コードチェック/セレクタ部702に出力すると共に、3段目のFF3に出力する。3段目のFF3の(データ)出力は、コードチェック/セレクタ部702に出力する。
なお、データの遅延特性は穏やかに変化し、クロックの1サイクルで温度や電圧が急激に変わることは無い。このため、上記のように、常時微調整(例えば、選択するFF±1個変更)を行っていれば、データを取りこぼすことは無い。
図8は、実施の形態の受信回路のコードチェック/補正部の動作内容を説明するタイミングチャートである。横軸は時間を示す。縦軸には各部のデータの出力タイミングを示す。図8の(a)は送信回路400の最終段FF(FF8)、(b)は送信回路のデータ出力端子403、(c)は受信回路100のデータ入力端子101、(d)はビットスリップ検出/セレクタ部115の出力、のタイミングをそれぞれ示す。
送信回路400は、上述したように、タイミング調整用コード500として、データ幅が3bit(FF701の個数に対応)、コード送信期間は5クロック期間(5回コードを送れる期間)を有している(図5参照)。
ビットスリップ検出/セレクタ部115の出力について、ビット間のズレとしては、時間的に前側へのズレ1bit、あるいは後ろ側へのズレ1bitが生じる可能性がある。
図9は、実施の形態の受信回路におけるビット間のデータの位相ズレを説明するタイミングチャートである。横軸は時間を示す。図示のように、(d)DATA[14]について、データ入力端子101へ入力されるデータに遅延が加わった後、FF104(FF1)がデータの安定期にクロック(グローバルライン)で取り込む。この際、図示のように、FF1では、データ取り込みタイミングに他のbitと1サイクル分ズレが生じることがある。
図8に戻り、ビット間のデータ取り込みのタイミングのズレに対応する構成を説明する。コードチェック/セレクタ部702は、フレームパルスから特定の期間後付近で(1bit前後にズレが生じている可能性があるため)、各bitの変遷が ’1’ ’0’ ’0’ ’0’ ’1’の区間を見つける。そして、他のbitとのコード(本コード例では3bit)を生成し、’000’のタイミング前後で’0’のbitに混じって’1’があれば、その’1’があるbitはズレを生じていると判断する。
例えば、コードチェック/セレクタ部702は、(e1)に示すように、’000’のタイミングの前側で’0’bitに混じって’1’があれば、そのbitは他のbitより1クロック分後側にズレが生じていると判断する。また、コードチェック/セレクタ部702は、(e2)に示すように、’000’のタイミングの後側で’0’bitに混じって’1’があれば、そのbitは他のbitより1クロック分前側にズレが生じていると判断する。
そして、コードチェック/セレクタ部702は、通常時は図7のFF2の信号を使用し、前側へズレが生じていた場合(e2)は、FF3を使用するように回路内のセレクタを切り替える。また、後側へズレが生じていた場合(e1)は、FF1を使用するように回路内のセレクタを切り替える。
このようにして、送信回路400から送信される特定のタイミング調整用コードを用いて、bit間のコード内容のズレを検出することで、複数ビット(16ビット)間のデータの位相を補正できる。
図10は、実施の形態の受信回路のビット間のデータ位相のズレを補正する処理内容を示すフローチャートである。図10に示す処理は、受信回路100が行う処理の流れを示したものである。この処理は、例えばASICやFPGAで実現できる。また、必要な処理手順をプログラム化してメモリに記憶しておき、プロセッサがプログラムを実行することにより、コードチェック/補正部602の機能を実現することもできる。
はじめに、ビットスリップ検出/セレクタ部115は、入力されるデータDATA(例えばDATA[0])のbit毎に各遅延素子103での遅延量を加えた複数データをFF104(FF1〜FF8)で取り込む(ステップS1001a)。次に、ビットスリップ検出/セレクタ部115は、複数FF104(FF1〜FF8)間でのbitスリップの検出の有無を判断する(ステップS1002a)。
ステップS1002aにおいて、ビットスリップ検出/セレクタ部115は、ビットスリップの検出時には(ステップS1002a:Yes)、ステップS1003aに移行する。ビットスリップを検出しなければ(ステップS1002a:No)、ステップS1004に移行する。
ステップS1003aでは、ビットスリップ検出/セレクタ部115は、タイミング的にスリップ付近でない(離れた)FF104からのデータを取り込むよう、セレクタを変更する(ステップS1003a)。
ステップS1001a〜ステップS1003aは、ある一つのbitについての処理である。図6に示したように、入力される複数bitに対応して、ステップS1001a〜ステップS1003aと同様の処理は、各bitでも個別にbit幅分同時並行して行う(ステップS1001n〜1003n)。
ステップS1004では、コードチェック/補正部602により、複数bitで構成されるタイミング調整用コード500のチェックを行い(ステップS1004)、コードズレの検出の有無を判断する(ステップS1005、図8参照)。
コードチェック/補正部602が複数bit間のコードのズレを検出したときには(ステップS1005:Yes)、コードチェック/セレクタ部702によりズレのあるbitのセレクタを変更し、ズレを打ち消す処理を行う(ステップS1006)。コードチェック/補正部602が複数bit間のコードのズレを検出しなければ(ステップS1005:No)、ステップS1006の処理は行わない。
図11は、実施の形態の送信回路の他の構成例を示す図である。図4の構成の変形例を示し、同一の構成には同一の符号を付してある。送信回路400は、上述したタイミング調整用コード500を送信するタイミングを外部入力に基づき行っても良い。
図11に示す例では、送信回路400にリクエスト入力端子1101を設け、このリクエスト入力端子1101を介して入力されたコード送信リクエストをタイミング調整用コード生成部406に出力する。これにより、タイミング調整用コード生成部406は、コード送信リクエストを受信したタイミングでタイミング調整用コード500を送信部402を介して受信回路100(受信装置110)に送信することができる。
図12は、実施の形態の受信装置の構成例を示す図である。受信装置110は、上述した受信回路100の他に、図11で説明したコード送信リクエストを送信するコード送信部1200を含んでも良い。
コード送信部1200は、温度センサ1201と、温度監視部1202と、電圧センサ1203と、電圧監視部1204と、記憶部1205と、コード送信リクエスト部1206と、リクエスト出力端子1207と、を含む。温度監視部1202、電圧監視部1204、記憶部1205、コード送信リクエスト部1206は、例えば、FPGAを用いることができる。
温度センサ1201は、受信装置110内部の温度の変化を検出する。温度監視部1202は、温度センサ1201が検出した温度を監視し、所定の温度(例えば温度範囲)毎に対応した周期等でリクエストのトリガーをコード送信リクエスト部1206に出力する。
電圧センサ1203は、受信装置110内の各部の電圧の変化を検出する。電圧監視部1204は、電圧センサ1203が検出した電圧を監視し、所定の電圧(例えば各部の電圧範囲)毎に対応した周期等でリクエストのトリガーをコード送信リクエスト部1206に出力する。
記憶部1205には、例えば、ビットスリップ頻度情報が更新可能に記憶される。この記憶部1205には、例えば、受信部105(ビットスリップ検出/セレクタ部115)がビットスリップを検出した都度、スリップ検出のトリガーが入力される。記憶部1205は、トリガー入力毎にこのスリップ検出の頻度を時刻とともに記憶保持する。そして、記憶部1205は、記憶されたスリップ検出の頻度が高い時刻にリクエストのトリガーをコード送信リクエスト部1206に出力する。
また、記憶部1205は、時刻と共に、温度監視部1202の温度や、電圧監視部1204の電圧の変化の状態に基づき、スリップ検出の発生を予測してトリガーをコード送信リクエスト部1206に出力する機能を有しても良い。この予測は、過去の頻度を含めて行ってもよい。
コード送信リクエスト部1206は、温度監視部1202、電圧監視部1204、あるいは記憶部1205のいずれかからトリガーが出力されると、コード送信リクエストをリクエスト出力端子1207から出力する。このコード送信リクエストは、図11に記載の送信回路400に送信される。
図12の構成によれば、受信装置110の温度や電圧に変動が生じたときや、変動が起きつつある(例えば変動が大きい)とき、送信回路400にコード送信リクエストを通知する。これにより、コード送信リクエストを受信した送信回路400は、タイミング調整用コードの送信頻度を高めて送信し、変動が落ち着いたときはタイミング調整用コードの送信頻度を下げることができ、タイミング調整用コードの送信を動的に変更できるようになる。
図13は、実施の形態の送信回路の他の構成例を示す図である。図11に示した送信回路400のより詳細な構成例を示す。図13に示すように、送信部402は、タイミング調整用コード生成部406と、フレームパルス生成部1301と、出力部1302と、を含んでも良い。
フレームパルス生成部1301は、通常時とタイミング調整用コード送出時とで異なるビット数の送信データのフレームパルスを生成する(図5参照)。出力部1302は、データをデータ出力端子403aから出力し、フレームパルスをフレームパルス出力端子403bから出力する。
送信装置410内に供給されるクロックは、主信号生成部401、送信部402に供給される他に、クロック端子1303から受信装置110(受信回路100のクロック入力端子102)に伝送路を介して伝送しても良い。
以上説明した実施の形態によれば、対向デバイスからの入力データを分岐して異なる遅延量を与えた複数のFFで受信し、各FFの出力データを比較することでビットスリップしたFFを特定する。そして、ビットスリップしたFFから遅延量が離れ、安定してデータ受信可能なFFのデータを選択する。クロックは、対向する送信回路からの入力、あるいは受信回路内で生成されたいずれを用いてもよい。
そして、実施の形態では、データ側の遅延で入力タイミングを調整するため、クロック側での調整を不要にできる。これにより、クロックは単一のもので良く、複数用意する必要が無い。また、クロック位相調整用のPLLが無くても実現できる。また、必要な回路はすべてユーザー回路(FPGA内の一般回路)で実現できる。
また、複数ビット(bit)幅のデータ(バス)の場合、各bitの値が変化していない安定した値を選択するだけでは、bit間のクロック1周期単位でのスリップに対応できる。実施の形態では、送信側と受信側とで取り決めたタイミング調整用コードを所定のタイミングで送受信することにより、タイミング調整用コードの特定bitのスリップを検出し、スリップ分を他のbitより早める/あるいは遅らせることで解消できる。
また、データのスリップする頻度を監視し、スリップの頻度に基づきタイミング調整用コードを送受信する頻度を動的に変化させることができる。また、デバイスの温度や電圧の変動の大きさを監視し、これらの変動の大きさに基づきタイミング調整用コードを送受信する頻度を動的に変化させることができる。これにより、受信装置さらには送信装置における環境変化等に対応でき、受信回路がデータを常に安定して取り込むことができるようになる。
そして、以上の実施の形態によれば、高速なデータを受信する受信回路において、設計者等が外部データの受信タイミングの規格値を算出する作業や、受信回路の配置配線時の受信タイミング調整を行う作業を容易に行うことができるようになる。また、受信回路にPLLを用いず、複数のクロックのリソースを浪費することなしに設計できる。また、高速なサンプリングクロックを使用する為の高速なデバイスを用意する必要がなく低消費電力化が可能となる。
また、受信回路の運用時は、常時、最適なデータの受信タイミングを探し出す自動調整を行うため、高速なインタフェースであっても安定したデータ受信が行えるようになる。また、受信データに対して故意にエラーを発生させることなしに、受信データのタイミングのズレを検出することができるようになる。さらに、複数bit幅を持つデータ(バス)に対してもbit間のズレを検出でき、高速なインタフェースの実現を推進する。また、複数bit幅を持つデータ(バス)に対しても、クロック1系統のみで受信データのズレを検出できる。また、タイミング調整用コードの送信頻度を環境変化等に応じて動的に変更することで、環境変化等に影響されることなく本来のデータレートを維持してデータを受信できるようになる。
なお、本実施の形態で説明したタイミング調整にかかる方法は、あらかじめ用意された制御プログラムを対象となる機器(受信回路および送信回路)のコンピュータ(プロセッサ等)で実行することにより実現することもできる。本制御プログラムは、磁気ディスク、光ディスク、USB(Universal Serial Bus)フラッシュメモリなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、制御プログラムは、インターネット等のネットワークを介して配布しても良い。
上述した実施の形態に関し、さらに以下の付記を開示する。
(付記1)受信したデータ信号を複数に分配し、分配した複数の前記データ信号のそれぞれに異なる遅延量を与える遅延部と、
前記遅延部で遅延させた複数の前記データ信号を共通クロックで打ち抜き、打ち抜かれたデータ信号をそれぞれ出力する複数のデータ保持部と、
複数の前記データ保持部が出力するデータ信号に基づき、当該データ信号にビットスリップが生じた前記データ保持部を特定し、特定した前記データ保持部と異なる遅延量の前記データ保持部が出力する前記データ信号を受信データの再生用として選択するビットスリップ検出部と、
を備えたことを特徴とする受信回路。
前記遅延部で遅延させた複数の前記データ信号を共通クロックで打ち抜き、打ち抜かれたデータ信号をそれぞれ出力する複数のデータ保持部と、
複数の前記データ保持部が出力するデータ信号に基づき、当該データ信号にビットスリップが生じた前記データ保持部を特定し、特定した前記データ保持部と異なる遅延量の前記データ保持部が出力する前記データ信号を受信データの再生用として選択するビットスリップ検出部と、
を備えたことを特徴とする受信回路。
(付記2)前記ビットスリップ検出部は、
定期的、あるいは環境変化に基づき生成されたトリガーの入力毎に前記ビットスリップを検出することを特徴とする付記1に記載の受信回路。
定期的、あるいは環境変化に基づき生成されたトリガーの入力毎に前記ビットスリップを検出することを特徴とする付記1に記載の受信回路。
(付記3)前記ビットスリップ検出部は、
前記ビットスリップが生じた前記データ保持部に対し、遅延量が最も離れた前記データ保持部が出力するデータ信号を選択することを特徴とする付記1または2に記載の受信回路。
前記ビットスリップが生じた前記データ保持部に対し、遅延量が最も離れた前記データ保持部が出力するデータ信号を選択することを特徴とする付記1または2に記載の受信回路。
(付記4)複数ビットの前記データ信号に対応して、前記遅延部と、前記データ保持部と、前記ビットスリップ検出部と、が前記複数ビットの数分、複数組設けられ、
複数の前記ビットスリップ検出部が出力する前記データ信号を用いて、前記複数ビット間における前記データ信号の位相ズレを検出するコードチェック部を備えたことを特徴とする付記1〜3のいずれか一つに記載の受信回路。
複数の前記ビットスリップ検出部が出力する前記データ信号を用いて、前記複数ビット間における前記データ信号の位相ズレを検出するコードチェック部を備えたことを特徴とする付記1〜3のいずれか一つに記載の受信回路。
(付記5)前記データ信号には、前記ビットスリップ検出の要求時にのみフレームに特定コードが含まれ、前記ビットスリップ検出の要求時には、受信するフレームパルスの間隔が通常時と異なり、
前記コードチェック部は、前記フレームのフレームパルスの間隔の変化に基づき、前記ビットスリップ検出の要求の有無を判断し、前記ビットスリップ検出の要求時には、前記フレームに含まれる前記特定コードに基づき、前記複数ビット間における前記データ信号の位相ズレを検出することを特徴とする付記4に記載の受信回路。
前記コードチェック部は、前記フレームのフレームパルスの間隔の変化に基づき、前記ビットスリップ検出の要求の有無を判断し、前記ビットスリップ検出の要求時には、前記フレームに含まれる前記特定コードに基づき、前記複数ビット間における前記データ信号の位相ズレを検出することを特徴とする付記4に記載の受信回路。
(付記6)前記コードチェック部は、
前記特定コードのビット数に対応した個数を有し、それぞれが直列接続された複数の第2のデータ保持部と、
複数の前記第2のデータ保持部の出力に基づき、前記複数ビット間における前記データ信号の位相ズレを検出し、前記位相ズレに対応して前記第2のデータ保持部が出力する前記データ信号を選択出力するコードチェック部と、
を備えたことを特徴とする付記4または5に記載の受信回路。
前記特定コードのビット数に対応した個数を有し、それぞれが直列接続された複数の第2のデータ保持部と、
複数の前記第2のデータ保持部の出力に基づき、前記複数ビット間における前記データ信号の位相ズレを検出し、前記位相ズレに対応して前記第2のデータ保持部が出力する前記データ信号を選択出力するコードチェック部と、
を備えたことを特徴とする付記4または5に記載の受信回路。
(付記7)前記特定コードは、対向する送信装置が前記データ信号に含ませて送信したものを受信することを特徴とする付記5または6に記載の受信回路。
(付記8)自装置内の温度、動作回路の電圧の変動に基づき、前記特定コードの送信を要求するリクエストを前記送信装置に送信するリクエスト部を備えたことを特徴とする付記5〜7のいずれか一つに記載の受信回路。
(付記9)前記共通クロックは、自装置内部、あるいは外部入力されたクロックであることを特徴とする付記1〜8のいずれか一つに記載の受信回路。
(付記10)付記1〜9のいずれか一つに記載した受信回路と、
前記受信回路から出力されるデータ信号を再生するデータ再生部と、
を備えたことを特徴とする受信装置。
前記受信回路から出力されるデータ信号を再生するデータ再生部と、
を備えたことを特徴とする受信装置。
(付記11)受信したデータ信号を複数に分配し、分配した複数の前記データ信号のそれぞれに異なる遅延量を与え、
遅延させた複数の前記データ信号を共通クロックで打ち抜き、打ち抜かれた複数の前記データ信号に基づき、複数の前記データ信号のうちビットスリップが生じた前記データ信号と異なる遅延量の前記データ信号を受信データの再生用として選択する、
ことを特徴とする受信方法。
遅延させた複数の前記データ信号を共通クロックで打ち抜き、打ち抜かれた複数の前記データ信号に基づき、複数の前記データ信号のうちビットスリップが生じた前記データ信号と異なる遅延量の前記データ信号を受信データの再生用として選択する、
ことを特徴とする受信方法。
(付記12)定期的、あるいは環境変化に基づき生成されたトリガーの入力毎に前記ビットスリップを検出することを特徴とする付記11に記載の受信方法。
(付記13)さらに、入力された複数ビットの前記データ信号のビット間における前記データ信号の位相ズレを検出することを特徴とする付記11に記載の受信方法。
100 受信回路
101 データ入力端子
102 クロック入力端子
103 遅延素子
104 FF
105 受信部
110 受信装置
115 ビットスリップ検出/セレクタ部
400 送信回路
401 主信号生成部
402 送信部
403 データ出力端子
404 トリガー生成部
405 コード挿入タイミング検出部
406 タイミング調整用コード生成部
410 送信装置
500 タイミング調整用コード
602 コードチェック/補正部
702 コードチェック/セレクタ部
1101 リクエスト入力端子
1200 コード送信部
1201 温度センサ
1202 温度監視部
1203 電圧センサ
1204 電圧監視部
1205 記憶部
1206 コード送信リクエスト部
1207 リクエスト出力端子
101 データ入力端子
102 クロック入力端子
103 遅延素子
104 FF
105 受信部
110 受信装置
115 ビットスリップ検出/セレクタ部
400 送信回路
401 主信号生成部
402 送信部
403 データ出力端子
404 トリガー生成部
405 コード挿入タイミング検出部
406 タイミング調整用コード生成部
410 送信装置
500 タイミング調整用コード
602 コードチェック/補正部
702 コードチェック/セレクタ部
1101 リクエスト入力端子
1200 コード送信部
1201 温度センサ
1202 温度監視部
1203 電圧センサ
1204 電圧監視部
1205 記憶部
1206 コード送信リクエスト部
1207 リクエスト出力端子
Claims (12)
- 受信したデータ信号を複数に分配し、分配した複数の前記データ信号のそれぞれに異なる遅延量を与える遅延部と、
前記遅延部で遅延させた複数の前記データ信号を共通クロックで打ち抜き、打ち抜かれた前記データ信号をそれぞれ出力する複数のデータ保持部と、
複数の前記データ保持部が出力するデータ信号に基づき、当該データ信号にビットスリップが生じた前記データ保持部を特定し、特定した前記データ保持部と異なる遅延量の前記データ保持部が出力する前記データ信号を受信データの再生用として選択するビットスリップ検出部と、
を備えたことを特徴とする受信回路。 - 前記ビットスリップ検出部は、
定期的、あるいは環境変化に基づき生成されたトリガーの入力毎に前記ビットスリップを検出することを特徴とする請求項1に記載の受信回路。 - 前記ビットスリップ検出部は、
前記ビットスリップが生じた前記データ保持部に対し、遅延量が最も離れた前記データ保持部が出力するデータ信号を選択することを特徴とする請求項1または2に記載の受信回路。 - 複数ビットの前記データ信号に対応して、前記遅延部と、前記データ保持部と、前記ビットスリップ検出部と、が前記複数ビットの数分、複数組設けられ、
複数の前記ビットスリップ検出部が出力する前記データ信号を用いて、前記複数ビット間における前記データ信号の位相ズレを検出するコードチェック部を備えたことを特徴とする請求項1〜3のいずれか一つに記載の受信回路。 - 前記データ信号には、前記ビットスリップ検出の要求時にのみフレームに特定コードが含まれ、前記ビットスリップ検出の要求時には、受信するフレームパルスの間隔が通常時と異なり、
前記コードチェック部は、前記フレームのフレームパルスの間隔の変化に基づき、前記ビットスリップ検出の要求の有無を判断し、前記ビットスリップ検出の要求時には、前記フレームに含まれる前記特定コードに基づき、前記複数ビット間における前記データ信号の位相ズレを検出することを特徴とする請求項4に記載の受信回路。 - 前記コードチェック部は、
前記特定コードのビット数に対応した個数を有し、それぞれが直列接続された複数の第2のデータ保持部と、
複数の前記第2のデータ保持部の出力に基づき、前記複数ビット間における前記データ信号の位相ズレを検出し、前記位相ズレに対応して前記第2のデータ保持部が出力する前記データ信号を選択出力するコードチェック部と、
を備えたことを特徴とする請求項4または5に記載の受信回路。 - 前記特定コードは、対向する送信装置が前記データ信号に含ませて送信したものを受信することを特徴とする請求項5または6に記載の受信回路。
- 自装置内の温度、動作回路の電圧の変動に基づき、前記特定コードの送信を要求するリクエストを前記送信装置に送信するリクエスト部を備えたことを特徴とする請求項5〜7のいずれか一つに記載の受信回路。
- 前記共通クロックは、自装置内部、あるいは外部入力されたクロックであることを特徴とする請求項1〜8のいずれか一つに記載の受信回路。
- 請求項1〜9のいずれか一つに記載した受信回路と、
前記受信回路から出力されるデータ信号を再生するデータ再生部と、
を備えたことを特徴とする受信装置。 - 受信したデータ信号を複数に分配し、分配した複数の前記データ信号のそれぞれに異なる遅延量を与え、
遅延させた複数の前記データ信号を共通クロックで打ち抜き、打ち抜かれた複数の前記データ信号に基づき、複数の前記データ信号のうちビットスリップが生じた前記データ信号と異なる遅延量の前記データ信号を受信データの再生用として選択する、
ことを特徴とする受信方法。 - さらに、入力された複数ビットの前記データ信号のビット間における前記データ信号の位相ズレを検出することを特徴とする請求項11に記載の受信方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016127796A JP2018006863A (ja) | 2016-06-28 | 2016-06-28 | 受信回路、受信装置および受信方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016127796A JP2018006863A (ja) | 2016-06-28 | 2016-06-28 | 受信回路、受信装置および受信方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2018006863A true JP2018006863A (ja) | 2018-01-11 |
Family
ID=60949947
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016127796A Pending JP2018006863A (ja) | 2016-06-28 | 2016-06-28 | 受信回路、受信装置および受信方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2018006863A (ja) |
-
2016
- 2016-06-28 JP JP2016127796A patent/JP2018006863A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8842794B2 (en) | Semiconductor device, a parallel interface system and methods thereof | |
EP1723534B1 (en) | Data sampling clock edge placement training for high speed gpu-memory interface | |
EP2384474B1 (en) | Active calibration for high-speed memory devices | |
US7495487B2 (en) | Delay-locked loop (DLL) system for determining forward clock path delay | |
US8489912B2 (en) | Command protocol for adjustment of write timing delay | |
US7342521B1 (en) | System and method for multi-channel delay cell based clock and data recovery | |
JP2012514393A (ja) | 高速シグナリングシステムにおける過渡事象時の位相誤差を補正する方法および装置 | |
KR20090061595A (ko) | 통신 시스템, 수신 장치, 및 수신 방법 | |
US8588357B2 (en) | Phase selector capable of tolerating jitter and method thereof, and clock and data recovery circuit | |
JP2017135506A (ja) | スキュー調整回路、半導体装置およびスキューキャリブレーション方法 | |
US20110057691A1 (en) | Receiving apparatus and receiving method thereof | |
US20130099835A1 (en) | Calibration apparatus for performing phase detection/edge distance detection upon signals and related calibration method thereof | |
KR20090088556A (ko) | 데이터 송수신 시스템 | |
US8311173B2 (en) | Frame pulse signal latch circuit and phase adjustment method | |
JP4598872B2 (ja) | タイミングリカバリ回路、通信ノード、ネットワークシステム、及び電子機器 | |
US8054927B2 (en) | Synchronous circuit and method for receiving data | |
JP2018006863A (ja) | 受信回路、受信装置および受信方法 | |
JPWO2010150624A1 (ja) | 等化装置、等化方法及びプログラム | |
KR100903132B1 (ko) | 병렬 수신 장치 및 방법 | |
US20100215134A1 (en) | Clock recovery circuit and clock data recovery circuit having the same | |
US20110309866A1 (en) | Delay-locked loop having a loop bandwidth dependency on phase error | |
US10033525B2 (en) | Transmission device and signal processing method | |
US6519218B2 (en) | Receiving apparatus and method of same, recording apparatus and method of same, and data recording system | |
JP2003218847A (ja) | データ受信方式 | |
JP2004096217A (ja) | 通信装置及び通信方法 |