JP6575390B2 - パラレル・シリアル変換回路、情報処理装置、およびタイミング調整方法 - Google Patents

パラレル・シリアル変換回路、情報処理装置、およびタイミング調整方法 Download PDF

Info

Publication number
JP6575390B2
JP6575390B2 JP2016029831A JP2016029831A JP6575390B2 JP 6575390 B2 JP6575390 B2 JP 6575390B2 JP 2016029831 A JP2016029831 A JP 2016029831A JP 2016029831 A JP2016029831 A JP 2016029831A JP 6575390 B2 JP6575390 B2 JP 6575390B2
Authority
JP
Japan
Prior art keywords
data
flip
flop
output
clock
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.)
Expired - Fee Related
Application number
JP2016029831A
Other languages
English (en)
Other versions
JP2017147679A (ja
Inventor
祐紀 尾形
祐紀 尾形
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2016029831A priority Critical patent/JP6575390B2/ja
Priority to US15/385,546 priority patent/US9755663B1/en
Publication of JP2017147679A publication Critical patent/JP2017147679A/ja
Application granted granted Critical
Publication of JP6575390B2 publication Critical patent/JP6575390B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M9/00Parallel/series conversion or vice versa
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/17Interprocessor communication using an input/output type connection, e.g. channel, I/O port
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/10Distribution of clock signals, e.g. skew
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L25/00Baseband systems
    • H04L25/02Details ; arrangements for supplying electrical power along data transmission lines
    • H04L25/0264Arrangements for coupling to transmission lines
    • H04L25/0272Arrangements for coupling to multiple lines, e.g. for differential transmission
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L7/00Arrangements for synchronising receiver with transmitter
    • H04L7/0008Synchronisation information channels, e.g. clock distribution lines
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L7/00Arrangements for synchronising receiver with transmitter
    • H04L7/02Speed or phase control by the received code signals, the signals containing no special synchronisation information
    • H04L7/033Speed or phase control by the received code signals, the signals containing no special synchronisation information using the transitions of the received signal to control the phase of the synchronising-signal-generating means, e.g. using a phase-locked loop
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L7/00Arrangements for synchronising receiver with transmitter
    • H04L7/02Speed or phase control by the received code signals, the signals containing no special synchronisation information
    • H04L7/033Speed or phase control by the received code signals, the signals containing no special synchronisation information using the transitions of the received signal to control the phase of the synchronising-signal-generating means, e.g. using a phase-locked loop
    • H04L7/0334Processing of samples having at least three levels, e.g. soft decisions

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)
  • Pulse Circuits (AREA)
  • Time-Division Multiplex Systems (AREA)

Description

本発明は、パラレル・シリアル変換回路、情報処理装置、およびタイミング調整方法に関する。
Large−Scale Integrated curcuit(LSI)内やLSI間のデータの送受信において、シリアル通信を用いる場合、送信側では、パラレル・シリアル変換でパラレルデータをシリアルデータに変換して送信し、受信側では、受信したシリアルデータをシリアル・パラレル変換してパラレルデータを生成する。送受信回路を有するLSIには、シリアル・パラレル変換を行うシリアライザおよびパラレル・シリアル変換を行うデシリアライザが搭載されている。
パラレル・シリアル変換では、複数のマルチプレクサ(MUX)間でデータを転送して、パラレルデータをシリアルデータに変換している。
クロックの高速化に伴い、クロック乗り換えのあるMUX間のデータ転送が難しくなってきている。特に、送信回路において最速のクロックを使用する2入力1出力のMUXへのデータ転送を正しく行うのが難しくなっている。
データ送信部が出力するデータの位相とデータ受信部がデータを受信するタイミングを規定するクロックの位相を比較し、その比較結果に応じて、前記データ送信部がデータを送信するタイミングを規定するクロックの位相を調整する技術が知られている(例えば、特許文献1参照)。
特開2007−82147号公報 特開昭58−56553号公報
従来のタイミング調整回路は、受信側が正しくデータを受信できているかをチェックしていない。そのため、タイミング調整の結果、必ずしも正しくデータを受信できるようになるとは限らないという問題がある。
本発明は、マルチプレクサがデータを正しく受信できたか判定しつつ、マルチプレクサが正しくデータを受信できるように受信タイミングを調整することを目的とする。
実施の形態に係るパラレル・シリアル変換回路は、データ送信部と、第1のフリップフロップと、第2のフリップフロップと、セレクタと、調整部と、を備える。
前記データ送信部は、所定のパターンの第1のデータと前記所定のパターンの第2のデータを、第1のクロックが分周された第2のクロックに応じて出力する。
前記第1のフリップフロップは、前記第1のデータを受け取り、前記第1のデータを前記第1のクロックに応じて出力する。
前記第2のフリップフロップは、前記第2のデータを受け取り、前記第2のデータを前記第1のクロックに応じて出力する。
前記セレクタは、前記第1のフリップフロップから出力された前記第1のデータまたは前記第2のフリップフロップから出力された前記第2のデータのいずれかを選択し、選択したデータを前記第1のクロックに応じて出力する。
前記調整部は、前記第2のフリップフロップが受け取る前記第2のデータと前記第1のフリップフロップから出力された前記第1のデータとを比較し、比較結果に基づいて、前記第1のフリップフロップが前記第1のデータを受け取るタイミングを調整する。
実施の形態のパラレル・シリアル変換回路によれば、マルチプレクサがデータを正しく受信できたか判定しつつ、マルチプレクサが正しくデータを受信できるように受信タイミングを調整することができる。
実施の形態に係る情報処理装置の構成図である。 実施の形態に係る送信回路の構成図(その1)である。 実施の形態に係る送信回路の構成図(その2)である。 データの送受信が正常に行われる場合のタイミングチャートである。 データの送受信が正常に行われない場合のタイミングチャートである。 シングルエンド信号を用いる場合の可変遅延回路の構成図である。 差動信号を用いる場合の可変遅延回路の構成図である。 制御回路の構成図(その1)である。 制御回路の構成図(その2)である。 制御回路の構成図(その3)である。 LPFを用いた場合のタイミングチャートである。 実施の形態に係るタイミング調整方法のフローチャートである。 実施の形態に係るタイミング調整方法のフローチャートである。
以下、図面を参照しながら実施の形態について説明する。
図1は、実施の形態に係る情報処理装置の構成図である。
情報処理装置101は、CPUパッケージ201−a(a=1,2)およびメモリモジュール301を備える。
CPUパッケージ201−1とCPUパッケージ201−2は、シリアルバスにより接続し、シリアルデータを用いたシリアル通信を行う。CPUパッケージ201−1とメモリモジュール301は、シリアルバスにより接続し、シリアルデータを用いたシリアル通信を行う。尚、図1に示していないが、CPUパッケージ201−2とメモリモジュール301は、シリアルバスにより接続し、シリアルデータを用いたシリアル通信を行う。
CPUパッケージ201−aは、プロセッサ(CPU)コア211−aとSERializer/DESerializer(SerDes)221−aを備える。
プロセッサコア211−aは、種々の処理を行う演算装置である。プロセッサコア211−1、211−2は、それぞれM、M’ビット幅のパラレルデータを送受信する。
SerDes221−1は、プロセッサコア211−1から受信したMビット幅のパラレルデータを1ビット幅のシリアルデータに変換して、CPUパッケージ201−2またはメモリモジュール301に送信する。また、SerDes221−1は、CPUパッケージ201−2またはメモリモジュール301から受信した1ビット幅のシリアルデータをMビット幅のパラレルデータに変換して、プロセッサコア211−1に送信する。
SerDes221−1は、送信回路222−a、受信回路223−a、制御回路224、およびクロック生成回路225を備える。
送信回路222−1は、プロセッサコア211−1から受信したMビット幅のパラレルデータを1ビット幅のシリアルデータに変換して、CPUパッケージ201−2に送信する。送信回路222−2は、プロセッサコア211−1から受信したMビット幅のパラレルデータを1ビット幅のシリアルデータに変換して、メモリモジュール301に送信する。送信回路222−aは、パラレル・シリアル変換回路(Serializer)の一例である。
受信回路223−1は、CPUパッケージ201−2から受信したシリアルデータをMビット幅のパラレルデータに変換して、プロセッサコア211−1に送信する。受信回路223−2は、メモリモジュール301から受信したシリアルデータをMビット幅のパラレルデータに変換して、プロセッサコア211−1に送信する。受信回路223−aは、シリアル・パラレル変換回路(Deserializer)の一例である。
制御回路224は、送信回路222−a、受信回路223−a、およびクロック生成回路225を制御する。
クロック生成回路225は、送信回路222−aおよび受信回路223−aの動作クロック信号(駆動クロック)を生成する。
SerDes221−2は、プロセッサコア211−2から受信したM’ビット幅のパラレルデータを1ビット幅のシリアルデータに変換して、CPUパッケージ201−1に送信する。また、SerDes221−2は、CPUパッケージ201−1から受信した1ビット幅のシリアルデータをM’ビット幅のパラレルデータに変換して、プロセッサコア211−2に送信する。
メモリモジュール301は、プロセッサコア211−aで使用されるデータを格納する記憶装置である。メモリモジュール301は、メモリチップ311およびSerDes321を備える。
メモリチップ311は、プロセッサコア211−aで使用されるデータを格納する。メモリチップ311は、M’’ビット幅のパラレルデータを送受信する。
SerDes321は、メモリチップ311から受信したM’’ビット幅のパラレルデータを1ビット幅のシリアルデータに変換して、CPUパッケージ201−aに送信する。また、SerDes221−2は、CPUパッケージ201−aから受信した1ビット幅のシリアルデータをM’’ビット幅のパラレルデータに変換して、メモリチップ311に送信する。
尚、図1の情報処理装置101の構成は、一例であり、CPUパッケージ201−a、メモリジュール301、プロセッサコア211−a、送信回路、および受信回路等の数は、適宜変更可能である。
図2は、実施の形態に係る送信回路の構成図(その1)である。
図2では、送信回路222−1について説明する。尚、送信回路222−2の構成も同様である。
送信回路222−1は、パターン発生器231、M入力4出力マルチプレクサ(M:4MUX)241、4入力2出力マルチプレクサ(4:2MUX)251、可変遅延回路261−b(b=0,1)、制御回路271−b、XOR回路281−b、2入力1出力マルチプレクサ(2:1MUX)291、分周器295を備える。
パターン発生器231は、所定のパターンのデータを生成し、4:2MUX251に出力する。所定のパターンのデータは、例えば、0011を繰り返すデータである。尚、パターン発生器231は、所定のパターンのデータをMビット幅のパラレルデータとして出力する。尚、パターン発生器231は、送信回路221−1の外にあっても良く、例えば、制御回路224に具備されていても良い。また、プロセッサコア211−1がパターン発生器221−1として動作しても良い。
M:4MUX241は、Mビット幅のパラレルデータを4ビット幅のパラレルデータに変換して4:2MUX251に出力する。M:4MUX241は、4ビット幅のパラレルデータをそれぞれ出力部0〜3からフリップフロップ(FF)252−1〜252−3に出力する。尚、M:4MUX241は、不図示のプロセッサコア211−1とも接続している。
4:2MUX251は、4ビット幅のパラレルデータを2ビット幅のパラレルデータに変換して2:1MUX291に出力する。4:2MUX251は、フリップフロップ(FF)252−c(c=0〜3)およびセレクタ253−bを備える。4:2MUX251は、データ送信部の一例である。
FF252−cおよびセレクタ253−bには、クロック生成回路225で生成されたクロック信号(2:1MUX駆動クロック)の周波数を半分にしたクロック信号(4:2駆動クロック)が入力される。
FF252−0は、クロック信号の入力部にインバータを具備する。よって、FF252−0には4:2MUX駆動クロックを反転した信号が入力される。FF252−0は、4:2MUX駆動クロックの立ち下りエッジに応じて、入力されているデータを出力する。図2において、FF252−0は、は、4:2MUX駆動クロックの立ち下りエッジに応じて、M:4MUX241の出力部0からの入力データをセレクタ253−0に出力する。
FF252−1は、クロック信号の入力部にインバータを具備する。よって、FF252−1には4:2MUX駆動クロックを反転した信号が入力される。FF252−1は、4:2MUX駆動クロックの立ち下りエッジに応じて、入力されているデータを出力する。図2において、FF252−1は、4:2MUX駆動クロックの立ち下りエッジに応じて、M:4MUX241の出力部1からの入力データをセレクタ253−0に出力する。
FF252−2は、4:2MUX駆動クロックが入力され、4:2MUX駆動クロックの立ち上がりエッジに応じて、入力されているデータを出力する。図2において、FF252−2は、4:2MUX駆動クロックの立ち上がりエッジに応じて、M:4MUX241の出力部2からの入力データをセレクタ253−0に出力する。
FF252−3は、4:2MUX駆動クロックが入力され、4:2MUX駆動クロックの立ち上がりエッジに応じて、入力されているデータを出力する。図2において、FF252−3は、4:2MUX駆動クロックの立ち上がりエッジに応じて、M:4MUX241の出力部3からの入力データをセレクタ253−1に出力する。
また、FF252−0〜FF252−3をそれぞれFF0〜FF3と表記する場合がある。
セレクタ253−0には、4:2MUX駆動クロック、およびFF252−0,252−2の出力データが入力される。セレクタ253−0は、4:2MUX駆動クロックが1(H)のとき、FF252−0からの入力データを出力し、4:2MUX駆動クロックが0(L)のとき、FF252−2からの入力データを出力する。セレクタ253−0から出力されるデータは、第1のデータの一例である。
セレクタ253−1には、4:2MUX駆動クロック、およびFF252−1,252−3の出力データが入力される。セレクタ253−1は、4:2MUX駆動クロックが1(H)のとき、FF252−1からの入力データを出力し、4:2MUX駆動クロックが0(L)のとき、FF252−3からの入力データを出力する。セレクタ253−1から出力されるデータは、第2のデータの一例である。
また、セレクタ253−0、セレクタ253−1をそれぞれセレクタ0、セレクタ1と表記する場合がある。
可変遅延回路261−bは、セレクタ253−bの出力データの位相を設定値に基づいて、調整する。詳細には、可変遅延回路261−bは、セレクタ253−bの出力データを設定値に基づいて、遅延させてFF292−bに出力する。また、可変遅延回路261−0、可変遅延回路261−1をそれぞれ、可変遅延回路0、可変遅延回路1と表記する場合がある。可変遅延回路261−bは、遅延部の一例である。
制御回路271−bは、XOR回路281−bの出力結果に応じて、可変遅延回路261−bの設定値を設定する。すなわち、制御回路271−bは、可変遅延回路261−bの遅延時間の設定を行う。
XOR回路281−0は、FF292−0の出力とFF292−1の入力の排他的論理和(XOR)を制御回路271−0に出力する。
XOR回路281−1は、FF292−1の出力とFF292−0の入力の排他的論理和(XOR)を制御回路271−1に出力する。
また、XOR回路281−0、XOR回路281−0をそれぞれXOR0、XOR1と表記する場合がある。制御回路271−bおよびXOR回路281−bは、調整部の一例である。
2:1MUX291は、FF292−bおよびセレクタ293を備える。
FF292−0は、クロック信号の入力部にインバータを具備する。よって、FF292−0には、クロック生成回路225で生成されたクロック信号(2:1MUX駆動クロック)を反転した信号が入力される。そのため、FF292−0は、2:1MUX駆動クロックの立ち下りエッジに応じて、入力されているデータを出力する。図2において、FF292−0は、2:1MUX駆動クロックの立ち下りエッジに応じて、可変遅延回路261−0からの入力データをセレクタ293に出力する。また、FF292−0は、可変遅延回路261−0からの入力データをXOR281−0に出力する。
FF292−1は、2:1MUX駆動クロックが入力され、2:1MUX駆動クロックの立ち上がりエッジに応じて、入力されているデータを出力する。図2において、FF292−1は、2:1MUX駆動クロックの立ち上がりエッジに応じて、可変遅延回路261−1からの入力データをセレクタ293に出力する。また、FF292−1は、可変遅延回路261−1からの入力データをXOR281−1に出力する。
セレクタ293には、2:1MUX駆動クロック、およびFF292−0,292−1の出力データが入力される。セレクタ293は、2:1MUX駆動クロックが1(H)のとき、FF292−0からの入力データを出力し、2:1MUX駆動クロックが0(L)のとき、FF292−1からの入力データを出力する。
また、FF292−0、FF292−1をそれぞれFF0,FF1と表記する場合がある。FF292−0、292−1は、第1のフリップフロップおよび第2のフリップフロップの一例である。
分周器295は、ラッチ296−1、296−2を含み、入力されたクロック信号(2:1MUX駆動クロック)の周波数を半分にしたクロック信号(4:2MUX駆動クロック)を4:2MUXに出力する。4:2MUX駆動クロックのうち一方はFF252−0,252−2、およびセレクタ253−0に入力される。4:2MUX駆動クロックのうち他方はFF252−1,252−3、およびセレクタ253−1に入力される。また、2つの4:2MUX駆動クロックのうち一方は他方より位相が90度ずれている。
図3は、実施の形態に係る送信回路の構成図(その2)である。
送信回路222−1は、図3に示すような構成としても良い。
図3の送信回路222−1は、パターン発生器231、M:4MUX241、4:2MUX251、可変遅延回路261’−b(b=0,1)、制御回路271−b、XOR回路281−b、2:1MUX291、分周器295を備える。
パターン発生器231、M:4MUX241、4:2MUX251、制御回路271−b、XOR回路281−b、2:1MUX291、および分周器295の機能および構成は、図2で説明したものと同様であるため、説明は省略する。
図2の送信回路221−1と図3の送信回路221−1とを比較すると、図3の送信回路221−1は、図2の可変遅延回路261−bが削除され、可変遅延回路261’−bが4:2MUX251と分周器295の間に挿入されている。
制御回路271−bは、XOR回路281−bの出力結果に応じて、可変遅延回路261’−bの設定値を設定する。
可変遅延回路261’−bは、分周器から出力されるクロック信号(4:2駆動クロック)の位相を設定値に基づいて、調整する。詳細には、可変遅延回路261’−0は、4:2駆動クロックを設定値に基づいて遅延させてFF252−0、252−2、およびセレクタ253−0に出力する。可変遅延回路261’−1は、4:2駆動クロックを設定値に基づいて遅延させてFF252−1、252−3、およびセレクタ253−1に出力する。可変遅延回路261’−bは、遅延部の一例である。
図2の可変遅延回路261−bは、4:2MUX251の出力データを遅延させており、図3の可変遅延回路261’−bは、4:2駆動クロックを遅延させている。4:2MUX251の出力データまたは4:2駆動クロックを遅延させることにより、2:1MUX291への入力データのタイミングを調整することが出来る。それにより、2:1MUX291は、正しくデータを受信可能となる。
図4は、データの送受信が正常に行われる場合のタイミングチャートである。
図4は、上から順に4:2MUX駆動クロック、2:1MUX駆動クロック、2:1MUX291のFF0の入力、2:1MUX291のFF1の入力、2:1MUX291のFF0の出力、2:1MUX291のFF1の出力、2:1MUX291の出力、XOR0の出力、およびXOR1の出力を示す。4:2MUX駆動クロックの2本のラインのうち上側のラインは4:2MUX251のセレクタ0とFF0とFF2の駆動クロックを示し、下側のラインは4:2MUX251のセレクタ1とFF1とFF3の駆動クロックを示す。
図4において、パターン発生器231から0011の繰り返しのデータD0〜D7が送信されたとする。パターン発生器231から送信されたデータD0〜D7は、それぞれ0,0,1,1,0,0,1,1となる。
4:2MUX251のセレクタ0からは、4:2MUX駆動クロック(上側)の1(H)と0(L)に応じて、データD0=0,D2=1,D4=0,D6=1が順に出力され、2:1MUXのFF0の入力となる。4:2MUX251のセレクタ0から出力されるデータD0=0,D2=1,D4=0,D6=1は、第1のデータの一例である。
4:2MUX251のセレクタ1からは、4:2MUX駆動クロック(下側)の1(H)と0(L)に応じて、データD1=0,D3=1,D5=0,D7=1が順に出力され、2:1MUXのFF1の入力となる。4:2MUX251のセレクタ1から出力されるデータD1=0,D3=1,D5=0,D7=1は、第2のデータの一例である。
2:1MUXのFF0は、2:1MUXの駆動クロックの立ち下がりエッジに応じて、入力されているデータを出力する。2:1MUXのFF0は、データD0=0,D2=1,D4=0,D6=1を出力する。
2:1MUXのFF1は、2:1MUXの駆動クロックの立ち上がりエッジに応じて、入力されているデータを出力する。2:1MUXのFF1は、データD1=0,D3=1,D5=0,D7=1を出力する。
2:1MUXのセレクタは、2:1MUXの駆動クロックが1(H)とき、2:1MUXのFF0の出力を出力する。2:1MUXのセレクタは、2:1MUXの駆動クロックが0(L)とき、2:1MUXのFF1の出力を出力する。図4に示すように、2:1MUXが正しくデータを受信できていれば、2:1MUXからは、パターン発生器231から送信されたデータと同じデータD0〜D7=00110011が出力される。
図4に示すように、2:1MUXが正しくデータを受信できている場合、2:1MUXのFF1の入力と2:1MUXのFF0の出力は同じ値となる。そのため、2:1MUXのFF1の入力と2:1MUXのFF0の出力の排他的論理和を出力するXOR0の出力は、0となる。
また、図4に示すように、2:1MUXが正しくデータを受信できている場合、2:1MUXのFF0の入力と2:1MUXのFF1の出力は異なる値となる。そのため、2:1MUXのFF0の入力と2:1MUXのFF1の出力の排他的論理和を出力するXOR1の出力は、1となる。
図5は、データの送受信が正常に行われない場合のタイミングチャートである。
図5は、上から順に4:2MUX駆動クロック、2:1MUX駆動クロック、2:1MUX291のFF0の入力、2:1MUX291のFF1の入力、2:1MUX291のFF0の出力、2:1MUX291のFF1の出力、2:1MUX291の出力、XOR0の出力、およびXOR1の出力を示す。4:2MUX駆動クロックの2本のラインのうち上側のラインは4:2MUX251のセレクタ0とFF0とFF2の駆動クロックを示し、下側のラインは4:2MUX251のセレクタ1とFF1とFF3の駆動クロックを示す。
図5において、図4と同様にパターン発生器231から0011の繰り返しのデータD0〜D7が送信されたとする。パターン発生器231から送信されたデータD0〜D7は、それぞれ0,0,1,1,0,0,1,1となる。
4:2MUX251のセレクタ0からは、4:2MUX駆動クロック(上側)の1(H)と0(L)に応じて、データD0=0,D2=1,D4=0,D6=1が順に出力され、2:1MUXのFF0の入力となる。
4:2MUX251のセレクタ1からは、4:2MUX駆動クロック(下側)の1(H)と0(L)に応じて、データD1=0,D3=1,D5=0,D7=1が順に出力され、2:1MUXのFF1の入力となる。
2:1MUXのFF0は、2:1MUXの駆動クロックの立ち下がりエッジに応じて、入力されているデータを出力する。ここで、2:1MUXのFF0は、データD0=0を正しく受信できず、データD0=1を出力するとする。よって、2:1MUXのFF0は、データD0=1,D2=1,D4=0,D6=1を出力する。
2:1MUXのFF1は、2:1MUXの駆動クロックの立ち上がりエッジに応じて、入力されているデータを出力する。ここで、2:1MUXのFF0は、データD5=0を正しく受信できず、データD5=1を出力するとする。よって、2:1MUXのFF1は、データD1=0,D3=1,D5=1,D7=1を出力する。
図5に示すように、2:1MUXが正しくデータを受信できていない場合、2:1MUXのFF1の入力と2:1MUXのFF0の出力は異なる値となる。そのため、2:1MUXのFF1の入力と2:1MUXのFF0の出力の排他的論理和を出力するXOR0の出力は、1となる。
また、図5に示すように、2:1MUXが正しくデータを受信できていない場合、2:1MUXのFF0の入力と2:1MUXのFF1の出力は同じ値となる。そのため、2:1MUXのFF0の入力と2:1MUXのFF1の出力の排他的論理和を出力するXOR1の出力は、0となる。
まとめると、2:1MUXのFF0が正しくデータを受信できている場合、XOR0の出力は0となり、正しくデータを受信できていない場合、XOR0の出力は1となる。また、2:1MUXのFF1が正しくデータを受信できている場合、XOR1の出力は1となり、正しくデータを受信できていない場合、XOR1の出力は0となる。
図6は、シングルエンド信号を用いる場合の可変遅延回路の構成図である。
送信回路222−1がシングルエンド信号を用いて動作する場合、例えば、セレクタ253−bの出力データをシングルエンド信号を用いて送信する場合、可変遅延回路261−bは図6に示すような構成となる。
可変遅延回路261−bは、インバータ262−b−d(d=1〜6)およびセレクタ263−bを備える。
インバータ262−b−1の出力はインバータ262−b−2の入力と接続している。
インバータ262−b−3の出力はインバータ262−b−4の入力と接続し、インバータ262−b−4の出力はインバータ262−b−5の入力と接続し、インバータ262−b−5の出力はインバータ262−b−6の入力と接続している。
可変遅延回路261−bに入力されるセレクタ253−bから出力データは、3つに分岐され、分岐されたデータはそれぞれ、そのままセレクタ263−bに入力、インバータ262−b−1、262−b−2を介してセレクタ263−bに入力、インバータ262−b−3〜262−b−6を介してセレクタ263−bに入力される。
そのままセレクタ263−bに入力されたデータは遅延(位相が変化)しておらず、インバータ262−b−1、262−b−2を介して入力されたデータは2つのインバータ262−b−1、262−b−2により遅延(位相が変化)している。また、インバータ262−b−3〜262−b−6を介して入力されたデータは、4つのインバータ262−b−3〜262−b−6により、インバータ262−b−1、262−b−2を介して入力されたデータよりもさらに遅延(さらに位相が変化)している。
セレクタ263−bは、制御回路271−bから入力される制御信号(経路切り替えコード)に基づいて、入力されたデータのうちのいずれかを出力する。例えば、セレクタ263−bは、経路切り替えコード=0の場合、そのままセレクタ263−bに入力されたデータを出力する。セレクタ263−bは、経路切り替えコード=1の場合、インバータ262−b−1、262−b−2を介して入力されたデータを出力する。セレクタ263−bは、経路切り替えコード=2の場合、インバータ262−b−3〜262−b−6を介して入力されたデータを出力する。セレクタ263−bは、経路切り替えコードに基づいて、遅延時間が異なる3つの入力データのいずれかを出力する。
セレクタ263−bから出力されたデータはFF292−bに入力される。
尚、図3の可変遅延回路261’−bも図6に示す可変遅延回路261−bと同様の構成とすることが出来る。
図7は、差動信号を用いる場合の可変遅延回路の構成図である。
送信回路222−1が差動信号を用いて動作する場合、例えば、セレクタ253−bの出力データを差動信号を用いて送信する場合、可変遅延回路は図7に示すような構成となる。
可変遅延回路261−bは、インバータ264−b−e(e=1〜3)、266−b−e、およびセレクタ265−b、267−bを備える。
インバータ264−b−2の入力はインバータ264−b−1の入力と接続している。インバータ264−b−2の出力は、インバータ264−b−3の入力と接続している。
インバータ266−b−1の入力はインバータ266−b−2の入力と接続している。インバータ266−b−2の出力は、インバータ266−b−3の入力と接続している。
差動信号を用いる場合、セレクタ253−bは、シングルエンド信号と同様のポジティブ信号と、ポジティブ信号を反転させたネガティブ信号と、を出力する。ポジティブ信号およびネガティブ信号は、可変遅延回路261−bに入力される。
可変遅延回路261−bに入力されるセレクタ253−bからのポジティブ信号は、3つに分岐され、分岐されたデータはそれぞれ、そのままセレクタ265−bに入力、インバータ264−b−1を介してセレクタ267−bに入力、インバータ264−b−2、264−b−3を介してセレクタ265−bに入力される。
可変遅延回路261−bに入力されるセレクタ253−bからのネガティブ信号は、3つに分岐され、分岐されたデータはそれぞれ、そのままセレクタ267−bに入力、インバータ266−b−1を介してセレクタ265−bに入力、インバータ266−b−2、266−b−3を介してセレクタ267−bに入力される。
セレクタ265−bは、制御回路271−bから入力される制御信号(経路切り替えコード)に基づいて、入力されたデータのうちのいずれかを出力する。例えば、セレクタ265−bは、経路切り替えコード=0の場合、そのままセレクタ265−bに入力されたポジティブ信号を出力する。セレクタ265−bは、経路切り替えコード=1の場合、インバータ266−b−1を介して入力されたネガティブ信号を出力する。セレクタ265−bは、経路切り替えコード=2の場合、インバータ264−b−2、264−b−3を介して入力されたポジティブ信号を出力する。
セレクタ267−bは、制御回路271−bから入力される制御信号(経路切り替えコード)に基づいて、入力されたデータのうちのいずれかを出力する。例えば、セレクタ267−bは、経路切り替えコード=0の場合、そのままセレクタ267−bに入力されたネガティブ信号を出力する。セレクタ267−bは、経路切り替えコード=1の場合、インバータ264−b−1を介して入力されたポジティブ信号を出力する。セレクタ265−bは、経路切り替えコード=2の場合、インバータ266−b−2、266−b−3を介して入力されたネガティブ信号を出力する。
セレクタ265−b、267−bからそれぞれ出力されたポジティブ信号とネガティブ信号はFF292−bに入力される。FF292−bは、ポジティブ信号とネガティブ信号の差分を入力データとして使用する。
図8は、制御回路の構成図(その1)である。
制御回路271−bは、XOR回路272−b、カウンタ273−b、測定結果格納レジスタ274−b、経路設定格納レジスタ275−b、および経路切り替え制御部276−b、セレクタ277−bを備える。
XOR回路272−bは、XOR回路281−bの出力と期待値の排他的論理和をカウンタ273−bに出力する。期待値は、制御回路271−bにより設定され、FF292−bが正しくデータを受信できている場合にXOR回路281−bから出力される値が設定される。すなわち、XOR回路272−bは、FF292−bが正しくデータを受信できている場合に0、FF292−bが正しくデータを受信できていない場合に1を出力する。
カウンタ273−bは、XOR回路272−bが1を出力した回数をカウントする。カウンタ273−bは、経路切り替え制御部276−bからカウンタリセット信号が入力されるとカウント数を0にする。カウンタ273−bは、カウント数cnt_iとカウント数cnt_iに対応する経路切り替えコード=iを測定結果格納レジスタ274−bに出力する。
測定結果格納レジスタ274−bは、カウント数cnt_iと経路切り替え制御部276−bから入力される経路切り替えコード=iを格納する。
経路設定格納レジスタ275−bは、現在までに測定したカウント数のうち、最小のカウント数cnt_minとカウント数cnt_minに対応する経路切り替えコード=iを格納する。
経路切り替え制御部276−bは、経路切り替えコード=iを測定結果格納レジスタ274−bはおよびセレクタ277−bに出力する。
セレクタ277−bは、タイミング調整イネーブル信号が0の場合、経路設定格納レジスタ275−bに格納されている経路切り替えコード=iをセレクタ263−bに出力する。セレクタ277−bは、タイミング調整イネーブル信号が1の場合、経路切り替え制御部276−bから入力される経路切り替えコード=iを出力する。
図9は、制御回路の構成図(その2)である。
図2に示す送信回路221−1において、制御回路271−0と制御回路271−1とは別々になっているが、図9に示すように、制御回路271−0と制御回路271−1とを含む制御回路1271を用いても良い。制御回路271−0と制御回路271−1の構成は、図8で説明したものと同様であるので、詳細な説明は省略する。
図10は、制御回路の構成図(その3)である。
制御回路271−bとして、図10に示すような制御回路271’−bを用いても良い。
制御回路271’−bは、XOR回路272−b、カウンタ273−b、測定結果格納レジスタ274−b、経路設定格納レジスタ275−b、および経路切り替え制御部276−b、セレクタ277−bを備える。また、制御回路271’−bは、1入力n出力デマルチプレクサ(1:nDEMUX)278−b、FIFO279−bを備える。また、XOR回路281−bと1:nDEMUX278−bとの間に、1次ローパスフィルタ(LPF)282−bが配置される。
図10に示す制御回路271’−bは、図8の制御回路271−bと比べて、1:nDEMUX278−b、およびFIFO279−bが追加されている。また、XOR回路281−bと1:nDEMUX278−bとの間に、LPF282−bが配置されている。
LPF282−bは、XOR回路281−bの出力の高周波成分をカットして1:nDEMUX278−bに出力する。
1:nDEMUX278−bは、1ビット幅のLPF282−bの出力データをnビット幅のパラレルデータに変換してFIFO279−bに出力する。
FIFO279−bは、1:nDEMUX278−bの出力データを格納し、1ビット幅のデータでXOR回路272−bに出力する。
XOR回路272−bは、FIFO279−bの出力と期待値の排他的論理和をカウンタ273に出力する。XOR回路272−bは、FIFO279−bの出力と期待値の排他的論理和をカウンタ273−bに出力する。
カウンタ273−b、測定結果格納レジスタ274−b、経路設定格納レジスタ275−b、および経路切り替え制御部276−b、およびセレクタ277−bの機能および構成は、図8で説明したものとどうようであるため説明は省略する。
図11は、LPFを用いた場合のタイミングチャートである。
図11は、上から順に4:2MUXの駆動クロック、2:1MUXの駆動クロック、2:1MUXのFF0の入力、2:1MUXのFF1の入力、2:1MUXのFF0の出力、2:1MUXのFF1の出力、2:1MUXの出力、XOR0の出力、およびLPFの出力を示す。4:2MUXの駆動クロックの2本のラインのうち上側のラインは4:2MUXのセレクタ0とFF0とFF2の駆動クロックを示し、下側のラインは4:2MUXのセレクタ1とFF1とFF3の駆動クロックを示す。
図11では、図4と同様に、パターン発生器231から0011の繰り返しのデータD0〜D7が送信されたとする。パターン発生器231から送信されたデータD0〜D7は、それぞれ0,0,1,1,0,0,1,1となる。
図11では、2:1MUXが正しくデータを受信できているため、XOR0の出力は、0となることが望ましい。しかしながら、2:1MUXクロックのエッジが2:1MUX入力データ中心に来ていない等、フリップフロップの入出力データの位相が理想状態(例えば、図4)に対してずれている場合、XOR0、XOR1の出力にグリッジが発生する。例えば、XOR0の出力において、値が1の細いパルス(グリッチ)が発生する。
LPFは、このようなグリッチを低減するために用いられる。XOR0の出力がLPFを通過すると、図11の一番下のLPF出力に示すようにグリッチが低減され、LPFの後段では値が0として処理される。
図12A,12Bは、実施の形態に係るタイミング調整方法のフローチャートである。
ステップS501において、制御回路224は、初期化シーケンスを行う。
ステップS502において、制御回路224は、タイミング調整イネーブル信号を1に設定する。
ステップS503において、パターン発生器231は、0011を繰り返すMビット幅のデータを出力する。パターン発生器231から出力されたデータは、M:4MUX241に入力され、M:4MUX241は、Mビット幅のデータを4ビット幅のデータに変換して4:2MUX251に出力する。4:2MUX251は、4ビット幅のデータを2ビット幅のデータに変換して、出力する。送信回路221−1が図2に示す構成の場合、4:2MUX251は、2ビット幅のデータを可変遅延回路261−bに出力する。詳細には、セレクタ253−0,253−1は、それぞれ1ビット幅のデータを可変遅延回路261−0、261−1に出力する。送信回路222−1が図3に示す構成の場合、4:2MUX251は、2ビット幅のデータを2:1MUX291に出力する。詳細には、セレクタ253−0,253−1は、それぞれ1ビット幅のデータをFF292−0,292−1に出力する。尚、4:2MUX251のセレクタ253−bから出力されるデータは0101のような0と1を繰り返すデータである。
ステップS504は、FF292−jをスイープするループの開始点である。変数jの初期値は0であり、ループを実行する条件はjが1以下であり、ループの終了毎にjは1ずつインクリメントされる。
ステップS505は、FF292−jのデータ受信を判定するループの開始点である。変数iの初期値は0であり、当該ループを実行する条件はiが可変遅延回路261−jの経路切り替え数−1以下であり、当該ループの終了毎にiは1ずつインクリメントされる。可変遅延回路261−jの経路切り替え数は、可変遅延回路261−jが出力可能な遅延時間の異なるデータ(またはクロック信号)の種類の数である。言い換えれば、可変遅延回路261−jが入力されたデータ(またはクロック信号)に対して、調整可能な遅延時間の種類である。例えば、可変遅延回路261−jが図6に示すような構成となっている場合、可変遅延回路261−jのセレクタ263−jは、3種類の遅延時間の異なるデータいずれかを出力するので、経路切り替え数は3となる。よって、当該ループを実行する条件はiが2以下の場合となる。
ステップS506において、制御回路271−jは、jの値を判定する。j=0の場合、制御はステップS507に進み、j=1の場合、制御はステップS508に進む。
ステップS507において、制御回路271−jは、期待値を0に設定する。
ステップS508において、制御回路271−jは、期待値を1に設定する。
ステップS509において、経路切り替え制御部276−jは、経路切り替えコード=iをセレクタ277−jに出力する。セレクタ277−jは、経路切り替えコード=iを可変遅延回路261−jのセレクタ263−jに出力する。セレクタ263−jは、入力された経路切り替えコード=iに基づいて、入力されたデータのうちのいずれかを出力する。
ステップS510において、経路切り替え制御部276−jは、カウンタリセット信号をカウンタに出力する。カウンタ273−jは、カウント数cnt_iを0に初期化する。
ステップS511において、制御回路271−jは、測定期間t_measを設定する。
ステップS512において、制御回路271−jは、計測を開始する。
ステップS513において、XOR回路272−jは、XOR回路281−jの出力と期待値と比較する。XOR回路281−jの出力と期待値とが一致する場合、制御はステップS515に進み、一致しない場合、制御はステップS514に進む。詳細には、XOR回路272−jは、XOR回路281−jの出力と期待値とのXORを出力する。すなわち、XOR回路281−jの出力と期待値とが一致する場合は、0を出力し、XOR回路281−jの出力と期待値とが一致しない場合は、1を出力する。
ステップS514において、カウンタ273−jは、カウント数cnt_iを1インクリメントする。すなわち、カウンタ273−jは、XOR回路272−jから1が出力されると、カウント数cnt_iを1インクリメントする。
ステップS515において、制御回路271−jは、ステップS512の計測開始からの経過時間が測定期間t_measを超えているか否か判定する。経過時間が測定期間t_measを超えている場合、制御はステップS516に進み、経過時間が測定期間t_measを超えていない場合、制御はステップS513に進む。
ステップS516において、測定結果格納レジスタ274−jは、経路切り替えコード=iとカウント数cnt_iを格納する。
ステップS517において、制御回路271−jは、iの値を判定する。iが0より大きい場合、制御はステップS518に進み、iが0の場合、制御はステップS519に進む。
ステップS518において、制御回路271−jは、カウント数cnt_iと経路設定格納レジスタ275−jに格納されているカウント数cnt_minとを比較する。カウント数cnt_iがカウント数cnt_min未満の場合、制御はステップS519に進み、カウント数cnt_iがカウント数cnt_min以上の場合、制御はステップS520に進む。
ステップS519において、経路設定格納レジスタ275−jは、経路切り替えコード=iとカウント数cnt_iを格納する。ここで、経路設定格納レジスタ275−jに格納されたカウント数cnt_iはカウント数cnt_minとする。
ステップS520は、FF292−jのデータ受信を判定するループの終了点である。制御回路271−jは、iを1インクリメントする。iが可変遅延回路261−jの経路切り替え数−1以下の場合、制御は当該ループの開始点のステップS505に戻り、iが可変遅延回路261−jの経路切り替え数−1より大きい場合、制御はステップS521に進む。
ステップS521は、FF292−jをスイープするループの終了点である。制御回路271−jは、jを1インクリメントする。jが1以下の場合、制御は当該ループの開始点のステップS504に戻り、jが1より大きい場合、制御はステップS522に進む。
ステップS522において、制御回路224は、タイミング調整イネーブル信号を0に設定する。
ここで、2:1MUX291の入力データが1UI(Unit Interval)以上遅れている場合の対応について説明する。
例えば、図2に示すFF292−0は、4:2MUX251からデータが出力されて後の2:1MUX駆動クロックの立ち下がりエッジで入力データを取り込む。
実施の形態の送信回路222−1は、4:2MUX251から出力されたデータの位相が進んでいるか遅れているかの判定はしておらず、可変遅延回路261−bは、データを遅延させる制御しか出来ない。そのため、可変遅延回路261−1による遅延処理によっては、FF292−0は、本来の入力データを取り込むべきクロックの立ち下がりエッジより1サイクル後ろのクロックの立ち下がりエッジで入力データを取り込んでしまう可能性がある。2:1MUX291の入力データが1UI以上遅れている場合に、FF292−0は、本来の入力データを取り込むべきクロックの立ち下がりエッジより1サイクル後ろのクロックの立ち下がりエッジで入力データを取り込んでしまう可能性がある。これは、同期回路の設計思想に反する禁止された動作である。
このような場合、図2に示す送信回路222−1を以下のように変更する。
FF292−0のクロック信号の入力部にインバータを削除する。これにより、FF292−0は、2:1MUX駆動クロックの立ち上がりエッジに応じて、入力されているデータを取り込んで出力する。
FF292−1は、クロック信号の入力部にインバータを具備する。これにより、FF292−1は、2:1MUX駆動クロックの立ち下りエッジに応じて、入力されているデータを取り込んで出力する。
セレクタ291のデータ出力の制御論理を反転させる。すなわち、セレクタ291は、2:1MUX駆動クロックが0(L)のとき、FF292−0からの入力データを出力し、2:1MUX駆動クロックが1(H)のとき、FF292−1からの入力データを出力する。
上記のような構成とすることで、2:1MUX291の入力データが1UI以上遅れている場合でも、送信回路222−1は正しい動作を行うことが出来る。
実施の形態のパラレル・シリアル変換回路によれば、マルチプレクサがデータを正しく受信できたか判定しつつ、マルチプレクサが正しくデータを受信できるように受信タイミングを調整することができる。
以上、実施形態を説明したが、ここに記載したすべての例や条件は、発明および技術に適用する発明の概念の理解を助ける目的で記載されたものである。特に記載された例や条件は発明の範囲を制限することを意図するものではなく、明細書のそのような例の構成は発明の利点および欠点を示すものではない。発明の実施形態を詳細に記載したが、各種の変更、置き換え、変形が発明の精神および範囲を逸脱することなく行えることが理解されるべきである。
以上の実施の形態に関し、さらに以下の付記を開示する。
(付記1)
所定のパターンの第1のデータと前記所定のパターンの第2のデータを、第1のクロックが分周された第2のクロックに応じて出力するデータ送信部と、
前記第1のデータを受け取り、前記第1のデータを前記第1のクロックに応じて出力する第1のフリップフロップと、
前記第2のデータを受け取り、前記第2のデータを前記第1のクロックに応じて出力する第2のフリップフロップと、
前記第1のフリップフロップから出力された前記第1のデータまたは前記第2のフリップフロップから出力された前記第2のデータのいずれかを選択し、選択したデータを前記第1のクロックに応じて出力するセレクタと、
前記第2のフリップフロップが受け取る前記第2のデータと前記第1のフリップフロップから出力された前記第1のデータとを比較し、比較結果に基づいて、前記第1のフリップフロップが前記第1のデータを受け取るタイミングを調整する調整部と、
を備えるパラレル・シリアル変換回路。
(付記2)
前記データ送信部から出力された前記第1のデータを設定時間遅延させる遅延部をさらに備え、
前記調整部は、前記設定時間を複数の遅延時間のいずれかに設定し、前記第2のフリップフロップが受け取る前記第2のデータと前記第1のフリップフロップから出力された前記第1のデータとを比較する処理を繰り返し、複数の比較結果のうちで、最も多く前記第1のフリップフロップが正しく前記第1のデータを受信できていたことを示す比較結果に対応する遅延時間を前記設定時間に設定することを特徴とすることを特徴とする付記1記載のパラレル・シリアル変換回路。
(付記3)
前記第2のクロックを設定時間遅延させる遅延部をさらに備え、
前記調整部は、前記設定時間を複数の遅延時間のいずれかに設定し、前記第2のフリップフロップが受け取る前記第2のデータと前記第1のフリップフロップから出力された前記第1のデータとを比較する処理を繰り返し、複数の比較結果のうちで、最も多く前記第1のフリップフロップが正しく前記第1のデータを受信できていたことを示す比較結果に対応する遅延時間を前記設定時間に設定することを特徴とすることを特徴とする付記1記載のパラレル・シリアル変換回路。
(付記4)
前記所定のパターンは、0と1の繰り返しであることを特徴とする付記1乃至3のいずれか1項に記載のパラレル・シリアル変換回路。
(付記5)
0011の繰り返しである他のパターンの第3のデータを生成するパターン生成部をさらに備え、
前記データ送信部は、前記第3のデータに基づいて、前記所定のパターンを送信することを特徴とする付記4記載のパラレル・シリアル変換回路。
(付記6)
パラレル・シリアル変換回路を備える情報処理装置であって、
前記パラレル・シリアル変換回路は、
所定のパターンの第1のデータと前記所定のパターンの第2のデータを、第1のクロックが分周された第2のクロックに応じて出力するデータ送信部と、
前記第1のデータを受け取り、前記第1のデータを前記第1のクロックに応じて出力する第1のフリップフロップと、
前記第2のデータを受け取り、前記第2のデータを前記第1のクロックに応じて出力する第2のフリップフロップと、
前記第1のフリップフロップから出力された前記第1のデータまたは前記第2のフリップフロップから出力された前記第2のデータのいずれかを選択し、選択したデータを前記第1のクロックに応じて出力するセレクタと、
前記第2のフリップフロップが受け取る前記第2のデータと前記第1のフリップフロップから出力された前記第1のデータとを比較し、比較結果に基づいて、前記第1のフリップフロップが前記第1のデータを受け取るタイミングを調整する調整部と、
を備えることを特徴とする情報処理装置。
(付記7)
前記データ送信部から出力された前記第1のデータを設定時間遅延させる遅延部をさらに備え、
前記調整部は、前記設定時間を複数の遅延時間のいずれかに設定し、前記第2のフリップフロップが受け取る前記第2のデータと前記第1のフリップフロップから出力された前記第1のデータとを比較する処理を繰り返し、複数の比較結果のうちで、最も多く前記第1のフリップフロップが正しく前記第1のデータを受信できていることを示す比較結果に対応する遅延時間を前記設定時間に設定することを特徴とすることを特徴とする付記6記載の情報処理装置。
(付記8)
前記第2のクロックを設定時間遅延させる遅延部をさらに備え、
前記調整部は、前記設定時間を複数の遅延時間のいずれかに設定し、前記第2のフリップフロップが受け取る前記第2のデータと前記第1のフリップフロップから出力された前記第1のデータとを比較する処理を繰り返し、複数の比較結果のうちで、最も多く前記第1のフリップフロップが正しく前記第1のデータを受信できていることを示す比較結果に対応する遅延時間を前記設定時間に設定することを特徴とすることを特徴とする付記6記載の情報処理装置。
(付記9)
前記所定のパターンは、0と1の繰り返しであることを特徴とする付記6乃至8のいずれか1項に記載の情報処理装置。
(付記10)
0011の繰り返しである他のパターンの第3のデータを生成するパターン生成部をさらに備え、
前記データ送信部は、前記第3のデータに基づいて、前記所定のパターンを送信することを特徴とする付記9記載の情報処理装置。
(付記11)
パラレル・シリアル変換回路のタイミング調整方法であって、
データ送信部が所定のパターンの第1のデータと前記所定のパターンの第2のデータを、第1のクロックが分周された第2のクロックに応じて出力し
第1のフリップフロップが前記第1のデータを受け取り、前記第1のデータを前記第1のクロックに応じて出力し、
第2のフリップフロップが前記第2のデータを受け取り、前記第2のデータを前記第1のクロックに応じて出力し、
セレクタが前記第1のフリップフロップから出力された前記第1のデータまたは前記第2のフリップフロップから出力された前記第2のデータのいずれかを選択し、選択したデータを前記第1のクロックに応じて出力し、
調整部が前記第2のフリップフロップが受け取る前記第2のデータと前記第1のフリップフロップから出力された前記第1のデータとを比較し、比較結果に基づいて、前記第1のフリップフロップが前記第1のデータを受け取るタイミングを調整する、
処理を備えることを特徴とするタイミング調整方法。
(付記12)
遅延部が前記データ送信部から出力された前記第1のデータを設定時間遅延させ、
前記調整部が前記設定時間を複数の遅延時間のいずれかに設定し、前記第2のフリップフロップが受け取る前記第2のデータと前記第1のフリップフロップから出力された前記第1のデータとを比較する処理を繰り返し、複数の比較結果のうちで、最も多く前記第1のフリップフロップが正しく前記第1のデータを受信できていることを示す比較結果に対応する遅延時間を前記設定時間に設定する付記11記載のタイミング調整方法。
(付記13)
前記第2のクロックを設定時間遅延させる遅延部をさらに備え、
前記調整部が前記設定時間を複数の遅延時間のいずれかに設定し、前記第2のフリップフロップが受け取る前記第2のデータと前記第1のフリップフロップから出力された前記第1のデータとを比較する処理を繰り返し、複数の比較結果のうちで、最も多く前記第1のフリップフロップが正しく前記第1のデータを受信できていることを示す比較結果に対応する遅延時間を前記設定時間に設定することを特徴とすることを特徴とする付記11記載のタイミング調整方法。
(付記14)
前記所定のパターンは、0と1の繰り返しであることを特徴とする付記11乃至13のいずれか1項に記載のタイミング調整方法。
(付記15)
パターン生成部が0011の繰り返しである他のパターンの第3のデータを生成し、
前記データ送信部は、前記第3のデータに基づいて、前記所定のパターンを送信することを特徴とする付記14記載のタイミング調整方法。
101 情報処理装置
201 CPUパッケージ
221 SerDes
222 送信回路
223 受信回路
224 制御回路
225 クロック生成回路
231 パターン発生器
241 M入力4出力マルチプレクサ
251 4入力2出力マルチプレクサ
252 フリップフロップ
253 セレクタ
261,261’ 可変遅延回路
271 制御回路
281 XOR回路
291 2入力1出力マルチプレクサ
292 フリップフロップ
293 セレクタ
295 分周器
301 メモリモジュール
311 メモリチップ
321 SerDes

Claims (7)

  1. 所定のパターンの第1のデータと前記所定のパターンの第2のデータを、第1のクロックが分周された第2のクロックに応じて出力するデータ送信部と、
    前記第1のデータを受け取り、前記第1のデータを前記第1のクロックに応じて出力する第1のフリップフロップと、
    前記第2のデータを受け取り、前記第2のデータを前記第1のクロックに応じて出力する第2のフリップフロップと、
    前記第1のフリップフロップから出力された前記第1のデータまたは前記第2のフリップフロップから出力された前記第2のデータのいずれかを選択し、選択したデータを前記第1のクロックに応じて出力するセレクタと、
    前記第2のフリップフロップが受け取る前記第2のデータと前記第1のフリップフロップから出力された前記第1のデータとを比較し、比較結果に基づいて、前記第1のフリップフロップが前記第1のデータを受け取るタイミングを調整する調整部と、
    を備えるパラレル・シリアル変換回路。
  2. 前記データ送信部から出力された前記第1のデータを設定時間遅延させる遅延部をさらに備え、
    前記調整部は、前記設定時間を複数の遅延時間のいずれかに設定し、前記第2のフリップフロップが受け取る前記第2のデータと前記第1のフリップフロップから出力された前記第1のデータとを比較する処理を繰り返し、複数の比較結果のうちで、最も多く前記第1のフリップフロップが正しく前記第1のデータを受信できていることを示す比較結果に対応する遅延時間を前記設定時間に設定することを特徴とすることを特徴とする請求項1記載のパラレル・シリアル変換回路。
  3. 前記第2のクロックを設定時間遅延させる遅延部をさらに備え、
    前記調整部は、前記設定時間を複数の遅延時間のいずれかに設定し、前記第2のフリップフロップが受け取る前記第2のデータと前記第1のフリップフロップから出力された前記第1のデータとを比較する処理を繰り返し、複数の比較結果のうちで、最も多く前記第1のフリップフロップが正しく前記第1のデータを受信できていることを示す比較結果に対応する遅延時間を前記設定時間に設定することを特徴とすることを特徴とする請求項1記載のパラレル・シリアル変換回路。
  4. 前記所定のパターンは、0と1の繰り返しであることを特徴とする請求項1乃至3のいずれか1項に記載のパラレル・シリアル変換回路。
  5. 0011の繰り返しである他のパターンの第3のデータを生成するパターン生成部をさらに備え、
    前記データ送信部は、前記第3のデータに基づいて、前記所定のパターンを送信することを特徴とする請求項4記載のパラレル・シリアル変換回路。
  6. パラレル・シリアル変換回路を備える情報処理装置であって、
    前記パラレル・シリアル変換回路は、
    所定のパターンの第1のデータと前記所定のパターンの第2のデータを、第1のクロックが分周された第2のクロックに応じて出力するデータ送信部と、
    前記第1のデータを受け取り、前記第1のデータを前記第1のクロックに応じて出力する第1のフリップフロップと、
    前記第2のデータを受け取り、前記第2のデータを前記第1のクロックに応じて出力する第2のフリップフロップと、
    前記第1のフリップフロップから出力された前記第1のデータまたは前記第2のフリップフロップから出力された前記第2のデータのいずれかを選択し、選択したデータを前記第1のクロックに応じて出力するセレクタと、
    前記第2のフリップフロップが受け取る前記第2のデータと前記第1のフリップフロップから出力された前記第1のデータとを比較し、比較結果に基づいて、前記第1のフリップフロップが前記第1のデータを受け取るタイミングを調整する調整部と、
    を備えることを特徴とする情報処理装置。
  7. パラレル・シリアル変換回路のタイミング調整方法であって、
    データ送信部が所定のパターンの第1のデータと前記所定のパターンの第2のデータを、第1のクロックが分周された第2のクロックに応じて出力し
    第1のフリップフロップが前記第1のデータを受け取り、前記第1のデータを前記第1のクロックに応じて出力し、
    第2のフリップフロップが前記第2のデータを受け取り、前記第2のデータを前記第1のクロックに応じて出力し、
    セレクタが前記第1のフリップフロップから出力された前記第1のデータまたは前記第2のフリップフロップから出力された前記第2のデータのいずれかを選択し、選択したデータを前記第1のクロックに応じて出力し、
    調整部が前記第2のフリップフロップが受け取る前記第2のデータと前記第1のフリップフロップから出力された前記第1のデータとを比較し、比較結果に基づいて、前記第1のフリップフロップが前記第1のデータを受け取るタイミングを調整する、
    処理を備えることを特徴とするタイミング調整方法。
JP2016029831A 2016-02-19 2016-02-19 パラレル・シリアル変換回路、情報処理装置、およびタイミング調整方法 Expired - Fee Related JP6575390B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2016029831A JP6575390B2 (ja) 2016-02-19 2016-02-19 パラレル・シリアル変換回路、情報処理装置、およびタイミング調整方法
US15/385,546 US9755663B1 (en) 2016-02-19 2016-12-20 Parallel-serial conversion circuit, information processing apparatus and timing adjustment method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016029831A JP6575390B2 (ja) 2016-02-19 2016-02-19 パラレル・シリアル変換回路、情報処理装置、およびタイミング調整方法

Publications (2)

Publication Number Publication Date
JP2017147679A JP2017147679A (ja) 2017-08-24
JP6575390B2 true JP6575390B2 (ja) 2019-09-18

Family

ID=59630318

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016029831A Expired - Fee Related JP6575390B2 (ja) 2016-02-19 2016-02-19 パラレル・シリアル変換回路、情報処理装置、およびタイミング調整方法

Country Status (2)

Country Link
US (1) US9755663B1 (ja)
JP (1) JP6575390B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6871509B2 (ja) * 2017-02-24 2021-05-12 株式会社ソシオネクスト 送信回路及び集積回路
CN112671414B (zh) * 2020-12-22 2023-08-29 北京时代民芯科技有限公司 一种新型并串转换电路
US11689201B2 (en) * 2021-07-26 2023-06-27 Qualcomm Incorporated Universal serial bus (USB) host data switch with integrated equalizer
CN116743184A (zh) * 2023-08-16 2023-09-12 合肥奎芯集成电路设计有限公司 一种四转二并串转换电路

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5856553A (ja) 1981-09-30 1983-04-04 Fujitsu Ltd 状態変化検出回路
JP4448076B2 (ja) 2005-09-16 2010-04-07 富士通株式会社 データ送受信回路のタイミング調整回路、lsi及びデータ送受信システム
JP2011109555A (ja) * 2009-11-20 2011-06-02 Fujitsu Ltd パラレル−シリアル変換回路

Also Published As

Publication number Publication date
JP2017147679A (ja) 2017-08-24
US20170244426A1 (en) 2017-08-24
US9755663B1 (en) 2017-09-05

Similar Documents

Publication Publication Date Title
TWI622270B (zh) 用於平衡高速串列數位介面之信道之間的偏斜之方案
JP4998699B2 (ja) 半導体装置、及び通信制御方法
JP6575390B2 (ja) パラレル・シリアル変換回路、情報処理装置、およびタイミング調整方法
JP5027241B2 (ja) 高速シリアライザ/デシリアライザ送信アーキテクチャー
JP5484595B2 (ja) ビット生成装置及びビット生成方法
TWI723006B (zh) 使用經校準、單一時脈來源同步串列器-解串列器協定之高速資料傳輸
JP2006174460A (ja) データ伝送用のハード・インテレクチャル・プロパティ・ブロックの設計を最適化する技法
US8593313B2 (en) Parallel-to-serial conversion circuit, information processing apparatus, information processing system, and parallel-to-serial conversion method
JP5286845B2 (ja) データリカバリ回路
US9154291B2 (en) Differential signal skew adjustment method and transmission circuit
US20150089108A1 (en) Clock signals for dynamic reconfiguration of communication link bundles
JP2004260677A (ja) 通信装置
JP6687392B2 (ja) シリアライザ装置
US8675798B1 (en) Systems, circuits, and methods for phase inversion
US9684332B2 (en) Timing control circuit
JP2011061350A (ja) 受信装置及びその受信方法
JP5610540B2 (ja) シリアル通信用インターフェース回路及びパラレルシリアル変換回路
WO2020021919A1 (ja) 複数レーン・シリアライザ装置
US9467152B2 (en) Output circuit
JP6221857B2 (ja) 位相調整回路、データ伝送装置、データ伝送システム及び位相調整方法
US7321647B2 (en) Clock extracting circuit and clock extracting method
JP2010283816A5 (ja)
JP2017060050A (ja) 半導体装置、デマルチプレクサ、半導体回路、データ処理方法及び検査方法
JPH03240336A (ja) ビット位相同期回路
US8699550B2 (en) Phase alignment between phase-skewed clock domains

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20181011

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190723

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190805

R150 Certificate of patent or registration of utility model

Ref document number: 6575390

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees