JP4336860B2 - シリアルインタフェース回路、及びシリアル受信器 - Google Patents

シリアルインタフェース回路、及びシリアル受信器 Download PDF

Info

Publication number
JP4336860B2
JP4336860B2 JP2007041169A JP2007041169A JP4336860B2 JP 4336860 B2 JP4336860 B2 JP 4336860B2 JP 2007041169 A JP2007041169 A JP 2007041169A JP 2007041169 A JP2007041169 A JP 2007041169A JP 4336860 B2 JP4336860 B2 JP 4336860B2
Authority
JP
Japan
Prior art keywords
circuit
data
output
serial
signal
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
JP2007041169A
Other languages
English (en)
Other versions
JP2008204284A (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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP2007041169A priority Critical patent/JP4336860B2/ja
Priority to US12/034,383 priority patent/US7881290B2/en
Publication of JP2008204284A publication Critical patent/JP2008204284A/ja
Application granted granted Critical
Publication of JP4336860B2 publication Critical patent/JP4336860B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • G06F13/4286Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using a handshaking protocol, e.g. RS232C link
    • 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/14Channel dividing arrangements, i.e. in which a single bit stream is divided between several baseband channels and reassembled at the receiver
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L25/00Baseband systems
    • H04L25/38Synchronous or start-stop systems, e.g. for Baudot code
    • H04L25/40Transmitting circuits; Receiving circuits
    • H04L25/49Transmitting circuits; Receiving circuits using code conversion at the transmitter; using predistortion; using insertion of idle bits for obtaining a desired frequency spectrum; using three or more amplitude levels ; Baseband coding techniques specific to data transmission systems
    • H04L25/4906Transmitting circuits; Receiving circuits using code conversion at the transmitter; using predistortion; using insertion of idle bits for obtaining a desired frequency spectrum; using three or more amplitude levels ; Baseband coding techniques specific to data transmission systems using binary codes
    • H04L25/4908Transmitting circuits; Receiving circuits using code conversion at the transmitter; using predistortion; using insertion of idle bits for obtaining a desired frequency spectrum; using three or more amplitude levels ; Baseband coding techniques specific to data transmission systems using binary codes using mBnB codes

Description

本発明は、複数のチャネルを使用したシリアルインタフェース回路に関する。
複数のチャネルを使用したシリアルインタフェース回路が知られている。例えば、特開2006−302277号公報の図3に示されるように、複数のチャネルを介したシリアル伝送では、ワード同期351とデスキュー3221(システムクロックとの同期)は、別のブロックであり、チャネル間の同期は、更に、そのブロックの後ろの構成部であるバイト直並列変換機3250や位相補償FIFO、または、その構成部の後ろの構成部で行われていた。これは、Infinibandや10Gbitイーサネット(登録商標)の標準規格が、ヘッダービット列であるコンマ信号の後に続くスキップ信号の数を増減してシリアル送信器とシリアル受信器のクロックのレートの差を補償するため、ヘッダービット列から実データまでのビット数が決まらないために分離している。
このような従来技術には次のような問題点がある。
第1の問題点は、ワード同期とデスキューとクロックのレート 差の補償とチャネル間の同期を別のブロックに分けていることである。その理由として、ワード同期のために、ヘッダー検出を行うが、検出した信号はワード同期に使われるのみであり、チャネル同期のための各チャネルのデータの先頭を検出するためには、別の検出回路を設け、時間をかけて検出する必要がある。このため、レーテンシが大きくなるという欠点がある。
第2の問題点は、デスキュー回路や、レート補正回路、チャネル間整列回路において、多数のレジスタを必要とするFIFOを使用していることである。このため、ハードウェアが大きくなるというという欠点がある。
第3の問題点は、複数のチャネルで構成されているシリアル伝送回路において、1ビットでもエラーが発生すると、全部のデータを再送することを前提に回路が構成されている。このため、エラーが発生したときに多大なレーテンシがかかるとともに、データを蓄積するメモリが必要とされるという欠点がある。
データの転送に関する技術について紹介する。
上記の特開2006−302277号公報(特許文献1)には“シリアルインタフェースの受信器”が記載されている。シリアルインタフェースの受信器は、プログラマブルロジックデバイスで用いる構成可能なものである。該シリアルインタフェースの受信器は、ワードアライメントした出力を提供する少なくとも1つのブロックを備えるワードアライメント段と、デスキュー出力を提供する少なくとも1つのブロックを備えるデスキュー段と、レートが整合された出力を提供する少なくとも1つのブロックを備えるレート整合段と、デコードした出力を提供する少なくとも1つのブロックを備える埋め込みプロトコルデコーダ段と、非直列化した出力を提供する少なくとも1つのブロックを備えるバイト直並列変換器段と、並び換えた出力を提供する少なくとも1つのブロックを備えるバイト並び替え段と、位相が補償された出力を提供する少なくとも1つのブロックを備える位相補償段とからなる群から選択される、複数の段と、該段の各々の周囲のバイパス回路と、該段の各々に関連し、該段に関して、該段の出力と該段の周囲の該バイパス回路とから選択する、セレクタ回路とを備えている。それによって、該複数の段の任意の1つの段を、該構成可能なシリアルインタフェースの受信器にプログラム可能に含めることができる。
特開平10−97481号公報(特許文献2)には“マイクロコンピュータ”が記載されている。マイクロコンピュータは、CPUと、外部回路から入力されるシリアルデータを順次受信する受信回路と、該受信回路によりすでに受信された部分データが所定のヘッダーに一致する部分を含むか否かを検出するヘッダー検出回路と、該受信回路によりすでに受信された部分データが該所定のヘッダーに一致する部分を含むと検出されたときには、その検出後にその部分データの後続の複数の部分データが該受信回路により受信されるごとに、該CPUに割り込み、該所定のヘッダーに対応して定められた所定の割り込み処理を該後続の部分データに対して実行することを要求する割り込みを該CPUに供給する割り込み回路とを有している。
特開平7−6130号公報(特許文献3)には“同期FIFO回路”が記載されている。同期FIFO回路は、データ入力と、データ出力と、制御出力を有している。この同期FIFO回路は、前記制御出力は前記同期FIFO回路が転送用にデータワードを内部に有していることを示すことと、制御入力と制御出力を有する同期回路であって、前記同期回路の制御入力が前記同期FIFO制御出力に接続してあることと、データ入力と、制御入力と、データ出力を有する非同期FIFO回路であって、前記非同期FIFO回路のデータ入力は前記同期FIFO回路のデータ出力へ接続し、前記非同期FIFO回路の制御入力が前記同期回路の制御出力へ接続してあることと、前記同期FIFO回路のデータ入力に前記非同期装置の一方から入力した非同期データ信号が伝播遅延の後前記非同期FIFO回路の出力から前記非同期装置の他方へ出力されることを特徴とする、データ速度を整合して2台の非同期装置間でデータを転送する。
特開平2−85950号公報(特許文献4)には“バス間転送方式”が記載されている。バス間転送方式は、マイクロプロセッサ、メモリ、ダイレクトメモリアクセスコントローラ、シリアルコントローラ、複数のI/O機能ブロック、ならびに前記各要素間を接続する共通バスを備えて構成している。このバス間転送方式は、前記シリアルコントローラと前記複数のI/O機能ブロックとの間でデータを転送する際に前記バス以外にデータ転送方向を任意に変換可能なローカルバスと、前記ローカルバスと前記シリアルコントローラとの間で前記データ転送の方向を変換するための第1の種類のレジスタファイルと、前記ローカルバスと前記複数のI/O機能ブロックとそれぞれとの間で前記データ転送の方向を変換するための複数の第2の種類のレジスタファイルとを具備して構成したことを特徴としている。
特開2006−302277号公報 特開平10−97481号公報 特開平7−6130号公報 特開平2−85950号公報
本発明の課題は、速いタイミングでヘッダーを検出できるシリアルインタフェース回路、及びシリアル受信器を提供することにある。
本発明の他の課題は、レーテンシを低減することができるシリアルインタフェース回路、及びシリアル受信器を提供することにある。
本発明の更に他の課題は、複数のチャネルが誤動作することを防止できるシリアルインタフェース回路、及びシリアル受信器を提供することにある。
以下に、発明を実施するための最良の形態・実施例で使用される符号を括弧付きで用いて、課題を解決するための手段を記載する。この符号は、特許請求の範囲の記載と発明を実施するための最良の形態・実施例の記載との対応を明らかにするために付加されたものであり、特許請求の範囲に記載されている発明の技術的範囲の解釈に用いてはならない。
本発明のシリアルインタフェース回路は、
複数のチャネルのそれぞれに対応する複数のシリアル送信器(1)と、
前記複数のチャネルのそれぞれに対応し、前記複数のシリアル送信器(1)のそれぞれに接続された複数のシリアル受信器(2)と
を具備し、
前記複数のシリアル送信器(1)の各々は、シリアル化されたデータをシリアル化データとして送信し、
前記複数のシリアル受信器(2)の各々は、
前記シリアル化データをデータ列に変換するレシーバ回路(20)と、
第1から第n(nは2以上の整数)までこの順に前記データ列をシフトするn個のレジスタ群(Reg_0、Reg_1、Reg_2、・・・Reg_(n−1))と、
第nのレジスタ群(Reg_(n−1))の出力と、検出結果とに応じて、前記データ列に対するデータ処理を行うデータ処理部(22〜29)と、
前記n個のレジスタ群(Reg_0、Reg_1、Reg_2、・・・Reg_(n−1))のうちの、第1から第b(bは、b<nを満たす整数)までのb個のレジスタ群(Reg_0、・・・Reg_(b−1))が前記データ列をシフトしたときに、前記データ列のヘッダーを検出して前記検出結果を前記データ処理部(22〜29)に出力するヘッダー検出回路(21)と
を具備する。
本発明のシリアルインタフェース回路において、
前記シリアル送信器(1)は、システムクロック(SCLK)に同期したcビット(cは2以上の整数)のデータTD[c−1:0]をシリアル化し、前記シリアル化信号として送信し、
前記レシーバ回路(20)は、前記シリアル化データを、m個(mは、1以上の整数)のデータを有するデータ列D[m−1:0]に変換し、
前記ヘッダー検出回路(21)は、前記b個のレジスタ群(Reg_0、・・・Reg_(b−1))の入力であるデータ列D[(b*m−1):((b−1)*m−a+1)]を入力し(aは、a<cを満たす整数)、前記データ列D[m−1:0]の先頭ビットを特定するaビットを表すヘッダービット列(comma)と、前記データ列D[(b*m−1):((b−1)*m−a+1)]の先頭ビットを表すビット列とを比較し、前記データ列D[(b*m−1):((b−1)*m−a+1)]が表すデータのうちの、データD[(b*m−1)]、D[(b*m−2)]、・・・D[(b−1)*m]の先頭ビットを表すビット列が前記ヘッダービット列(comma)に等しいとき、前記検出結果を前記データ処理部(22〜29)に出力する。
本発明のシリアルインタフェース回路において、
前記レシーバ回路(20)は、タイミングが異なるm個の第一のクロックRCLKにより前記シリアル化データをサンプリングし、前記第一のクロック(RCLK)と同じもしくはその整数倍の周期を有する第二のクロック(DCLK)に同期した前記m個のデータを有する前記データ列D[m−1:0]に変換し、
前記n個のレジスタ群(Reg_0、Reg_1、Reg_2、・・・Reg_(n−1))は、前記第二のクロック(DCLK)に応じて、第1から第nまでこの順に前記データ列をシフトし、
前記ヘッダー検出回路(21)は、前記b個のレジスタ群(Reg_0、・・・Reg_(b−1))の入力である前記データ列D[(b*m−1):((b−1)*m−a+1)]を入力して前記第二のクロック(DCLK)によりサンプリングする。
本発明のシリアルインタフェース回路において、
前記ヘッダー検出回路(21)は、
前記データ列D[(b*m−1):((b−1)*m−a+1)]が表すデータのうちの、データD[(b*m−1)]、D[(b*m−2)]、・・・D[(b−1)*m]の先頭ビットを表すビット列が前記ヘッダービット列(comma)に等しいとき、検出信号S[m−1:0]を前記検出結果として出力し、
前記検出信号S[m−1:0]に対して論理オアを施して、OR信号(Reset)を前記検出結果として出力し、
前記データ処理部(22〜29)は、
前記検出信号S[m−1:0]をラッチし、次に検出信号Sが変化するまで状態を保ち、前記第nのレジスタ群(Reg_(n−1))に前記aビットが出力されるのと同じタイミングで、選択信号Sel[(m−1):0]を出力するラッチ回路(22)と、
前記OR信号(Reset)によりリセットし、前記OR信号(Reset)の出力が無効である場合、パラレルデータ出力RD[c−1:0]のビット数cの1/mとなるd回を繰り返しカウントしている間、第三のクロック(TCLK)を出力するクロック作成回路(23)と、
前記第nのレジスタ群(Reg_(n−1))の出力であるデータ列D[((n+1)*m−1):n*m]と、前記第nのレジスタ群(Reg_(n−1))の入力であるデータ列D[n*m−1:(n−1)*m]と、第(n−1)から第(n−d+1)のレジスタ群(Reg_(n−2)、Reg_(n−3)、・・・Reg_(n−d))の入力であるデータD[((n−1)*m−1):(n−2)*m]、・・・D[((n+1−d)*m−1):((n−d)*m+1)]との(c+m−1)個を入力とし、前記ラッチ回路(22)から前記選択信号Sel[m−1]、Sel[m−2]、・・・Sel[0]が出力されたとき、それぞれ、前記第nのレジスタ群Reg_(n−1)からの前記データ列D[((n+1)*m−1):n*m]の最上位、2番目に上位、・・・最下位のデータD[((n+1)*m−1)]、D[((n+1)*m−2)]、・・・D[(n*m)]をデータの先頭ビットとして、前記第三のクロック(TCLK)によりcビットをサンプリングし、整列信号AD[(c−1):0]を出力する整列回路(24)と、
前記整列信号AD[(c−1):0]に基づいて、前記データ列D[((n+1)*m−1):n*m]に対する書込・読出処理部(25〜29)と
を具備する。
本発明のシリアルインタフェース回路において、
前記書込・読出処理部(25〜29)は、
前記第三のクロックTCLKによって繰り返し0から(WA−1)をカウントし(WAは、1以上の整数)、アドレスを有するWA個のライトアドレス出力(WADDR)を作成するライトアドレス発生回路(25)と、
前記ライトアドレス発生回路(25)からの前記ライトアドレス出力(WADDR)のアドレスに従って、前記整列回路(24)からの前記整列信号AD[(c−1):0]を前記第三のクロック(TCLK)によって書き込み、リードアドレス(RADDR)によって指定されたアドレスのデータを読み出し、リードデータ出力RD[c−1:0]を作成するレジスタファイル(26)と、
前記ヘッダー検出回路(21)からの前記OR信号(Reset)を前記第二のクロック(DCLK)でセットし、一定のパルス幅の頭出し検出信号(Detect)を作成し、前記第三のクロック(TCLK)の1周期分のパルス幅にしたロード信号(LOAD)を出力するパルス幅作成回路(27)と、
前記パルス幅作成回路(27)の出力の前記ロード信号(LOAD)に従い、データの先頭ビットを前記レジスタファイル(26)に書き込んだときの前記ライトアドレス出力(WADDR)を書き込み、ラッチする先頭アドレス記憶回路(28)と、
スタート信号(STR)が供給され、前記スタート信号(STR)が有効である場合、前記システムクロック(SCLK)により、前記先頭アドレス記憶回路(28)の出力である先頭アドレス信号(SADDR)を取り込み、スタート信号STRが非有効である場合、カウントを開始して0から(WA−1)までを繰り返し、前記リードアドレス(RADDR)を作成し、前記レジスタファイル(26)に出力するリードアドレスカウンタ(29)と
を具備する。
本発明のシリアルインタフェース回路は、
前記複数のシリアル受信器(2)に接続された共通部(3)
を更に具備し、
前記共通部(3)は、
前記複数のシリアル受信機(2)の前記パルス幅作成回路(27)からそれぞれ出力される複数の前記頭出し検出信号(Detect0、Detect1・・・・DetectL)を入力とし、前記複数の頭出し検出信号(Detect0、Detect1・・・・DetectL)に対して論理アンドを施し、読み出し開始信号(STRT)を出力するAND回路(31)と、
前記AND回路(31)の出力である前記読み出し開始信号(STRT)を、前記システムクロック(SCLK)により同期化し、1周期分のパルス幅にした前記スタート信号(STR)を、前記複数のシリアル受信機(2)の前記リードアドレスカウンタ(29)に出力する同期化回路(32)と
を具備する。
本発明のシリアルインタフェース回路において、
前記頭出し検出信号(Detect)のパルス幅が表す時間は、前記複数のシリアル送信器(1)の出力から前記複数のシリアル受信器(2)を経由して前記複数のチャネルの前記共通部(3)の前記AND回路(31)の出力までのチャネル間のスキュー分と、前記システムクロック(SCLK)の1周期分とを加えた時間よりも長い。
本発明のシリアルインタフェース回路は、
その出力が前記複数のシリアル送信器(1)(1−1〜1−L)の入力に接続され、1ビットエラーならびに1チャネルエラーを修復するエラー修正コーディング発生器(6)と、
その入力が前記複数のシリアル受信器(2)(2−1〜2−L)の出力に接続され、前記1ビットエラーならびに1チャネルエラーを修復するエラー修正コーディング器(7)と
を更に具備する。
本発明のシリアルインタフェース回路は、
前記複数のチャネルのそれぞれに対応し、それぞれ前記エラー修正コーディング発生器(6)と前記複数のシリアル送信器(1−1〜1−L)との間に接続され、実データ列と前記ヘッダービット列(comma)とを区別する8B10B変換回路(4−1〜4−L)と、
前記複数のチャネルのそれぞれに対応し、それぞれ、前記複数のシリアル受信器(2−1〜2−L)と前記エラー修正コーディング器(7)の間に接続され、実データ列と前記ヘッダービット列(comma)とを区別する10B8B変換回路(5−1〜5−L)と
を更に具備する。
本発明のシリアル受信器(2)(2−1〜2−L)は、上記のシリアルインタフェース回路に適用される。
本発明のシリアルインタフェース回路によれば、上記の構成により、ヘッダー検出回路(21)は、n個(nは2以上の整数)のレジスタ群(Reg_0、Reg_1、Reg_2、・・・Reg_(n−1))のうちの、第1から第b(bは、b<nを満たす整数)までのb個のレジスタ群(Reg_0、・・・Reg_(b−1)の入力であるデータ列D[(b*m−1):((b−1)*m−a+1)]が揃ったタイミングから動作する。即ち、第1から第bまでのb個のレジスタ群(Reg_0、・・・Reg_(b−1))がデータ列をシフトしたときに、データ列のヘッダーを検出して検出結果{検出信号S[m−1:0]、OR信号Reset}をデータ処理部(22〜29)に出力する。このため、速いタイミングでヘッダーを検出できる。
また、ヘッダー検出回路(21)の出力により、データ処理部(22〜29)において、整列回路(24)は、先頭ビットを特定し選択し、クロック作成回路(23)は、整列回路(24)でデータを取り込むクロック(TCLK)を作成し、パルス幅作成回路(27)は、頭出し検出信号(Detect)とロード信号(LOAD)を作成する。
また、パルス幅作成回路(27)の出力であるロード信号(LOAD)により、先頭アドレス記憶回路(28)は、データの先頭ビットをレジスタファイル(26)に書き込んだときのライトアドレス出力(WADDR)を書き込み、ラッチする。
また、パルス幅作成回路(27)の出力である頭出し検出信号(Detect)により、AND回路(31)と同期化回路(32)は、複数(L個)のチャネルの全部揃ったタイミングを検出し、その信号を、システムクロック(SCLK)で同期化し、同時に先頭ビット読み出すタイミングとしてスタート信号(STR)を作成する。
また、同期化回路(32)の出力であるスタート信号(STR)は、L個のチャネルに分配される。リードアドレスカウンタ(29)は、スタート信号(STR)が有効になると、システムクロック(SCLK)により、先頭アドレス記憶回路(28)の出力の先頭アドレス信号(SADDR)を取り込み、スタート信号(STR)が非有効になると、読み込んだ値から繰り返してカウントし、リードアドレス(RADDR)を作成する。
本発明のシリアルインタフェース回路では、これらの回路で使われるタイミングの作成も、早いタイミングでヘッダーを検出できているため、レーテンシを最短にすることができる。
本発明のシリアルインタフェース回路によれば、エラー修正コーディング発生器(6)の出力にシリアル送信器(1)(1−1〜1−L)の入力を接続し、エラー修正コーディング器(7)の入力にシリアル受信器(2)(2−1〜2−L)の出力を接続して、エラー修正コーディング発生器(6)とエラー修正コーディング器(7)によりエラー修正コーディング(ECC)を適用する。これにより、1ビットエラーと1チャネルエラーを修復できるデータを伝送したときに、誤動作などにより、数周期以内にL個のチャネルでヘッダービット列(comma)を検出しないときはチャネル間の整列を実施せず、直前の整列された状態を継続することにより、複数のチャネルが誤動作することを防止できる。
以下に添付図面を参照して、本発明のシリアルインタフェース回路について詳細に説明する。
[構成]
図1は、本発明のシリアルインタフェース回路の構成を示すブロック図である。本発明のシリアルインタフェース回路は、L個のシリアル送信器(Transmitter)1と、L個のシリアル受信器(Receiver)2と、共通部(共通回路部)3とを具備している。ここで、Lは2以上の整数である。
L個のシリアル送信器1とL個のシリアル受信器2は、L個のチャネルのそれぞれに対応し、L個のシリアル送信器1はそれぞれL個のシリアル受信器2に接続されている。また、L個のシリアル受信器2の各々は、共通部3に接続されている。図1では、1チャネル分のシリアル送信器1、シリアル受信器2と、上記の共通部3とが記載されている。
シリアル受信器2は、レシーバ回路(RECEIVER&DEMUX)20と、ヘッダー検出回路(Header_Detector)21と、n個のレジスタ群Reg_0、Reg_1、Reg_2、・・・Reg_(n−1)と、データ処理部とを具備している。ここで、nは2以上の整数である。
データ処理部は、ラッチ回路(Regsel)22と、クロック作成回路(Counter)23と、整列回路(Aligner)24と、書込・読出処理部とを具備している。
書込・読出処理部は、ライトアドレス発生回路(W−ADDRCNT)25と、レジスタファイル(REGFILE)26と、パルス幅作成回路(PWGen)27と、先頭アドレス記憶回路(S−ADDRREG)28と、リードアドレスカウンタ(R−ADDRCNT)29とを具備している。
共通部3は、AND回路31と、同期化回路(SYNC−BUF)32とを具備している。
シリアル送信器1は、正、負の出力として出力TOUT、TOUTBを備えている。このシリアル送信器1は、送信側のシステムクロックSCLKに同期したcビットのデータTD[c−1:0]をシリアル化し、シリアル化されたデータとしてシリアル化データを出力TOUT、TOUTBから送信する。ここで、cは2以上の整数である。
レシーバ回路20は、シリアル送信器1の出力TOUT、TOUTBに接続された差動入力Inputを備えている。このレシーバ回路20は、シリアル化データを差動入力Inputで受信し、タイミングが異なるm個(単数もしくは複数)の第一のクロックRCLKの立ち上がり(もしくは立下りもしくは両方)によりシリアル化データをサンプリングし、第一のクロックRCLKと同じもしくはその整数倍の周期を有する第二のクロックDCLKに同期したm個のデータを有するデータ列D[m−1:0]に変換して出力する。ここで、mは、1以上の整数である。
n個のレジスタ群Reg_0、Reg_1、Reg_2、・・・Reg_(n−1)は、第一から第nまでこの順に設けられている。n個のレジスタ群Reg_0、Reg_1、Reg_2、・・・Reg_(n−1)の各々は、第二のクロックDCLKを入力するクロック入力と、m個のレジスタとを備えている。
第一のレジスタ群Reg_0は、レシーバ回路20の出力であるデータ列D[m−1:0]を入力とし、第二から第nまでのレジスタ群Reg_1、Reg_2、・・・Reg_(n−1)は、それぞれ、第一から第(n−1)までのレジスタ群Reg_0、Reg_2、・・・Reg_(n−2)のレジスタ群の出力を入力としている。n個のレジスタ群Reg_0、Reg_1、Reg_2、・・・Reg_(n−1)は、第二のクロックDCLKに応じて、第一から第nまでこの順にデータ列をシフトする。
ヘッダー検出回路21は、図示しないm個のヘッダー検出器と、図示しないOR回路とを備えている。
m個のヘッダー検出器は、n個のレジスタ群Reg_0、Reg_1、Reg_2、・・・Reg_(n−1)のうちの、第一から第bまでのb個のレジスタ群Reg_0、・・・Reg_(b−1)の入力であり、(m+a−1)以上、且つ、mの倍数b*mとなるデータ列D[(b*m−1):((b−1)*m−a+1)]を入力し、第二のクロックDCLKによりサンプリングする。ここで、aは、1以上の整数であり、a<cを満たす整数である。bは、1以上の整数であり、b<nを満たす整数である。
このm個のヘッダー検出器は、データ列D[m−1:0]の先頭ビットを特定するaビットを表すヘッダービット列commaと、データ列D[(b*m−1):((b−1)*m−a+1)]の先頭ビットを表すビット列とを比較して、データ列D[m−1:0]のヘッダーを検出する。データ列D[(b*m−1):((b−1)*m−a+1)]が表すデータのうちの、データD[(b*m−1)]、D[(b*m−2)]、・・・D[(b−1)*m]の先頭ビットを表すビット列がヘッダービット列commaに等しいとき、m個のヘッダー検出器は、それぞれ、信号レベル“1”を表す検出信号S(m−1)、S(m−2)、・・・、S(0)を出力する。上記のaビットは複数の種類であっても良い。また、mビット分の先頭ビットが存在するために、m個のヘッダー検出器としたが、結合してヘッダー検出器を作成する場合はm個に限定されない。
OR回路は、検出信号S[m−1:0]が表す信号レベル“1”に対して論理オアを施してOR信号Resetを作成して出力する。OR信号Resetは、第二のクロックDCLKによりサンプリングし、タイミングを調整しても良い。
このように、ヘッダー検出回路21は、検出結果として、検出信号S[m−1:0]、OR信号Resetを出力する。
データ処理部(22〜29)は、第nのレジスタ群Reg_(n−1)の出力と、検出結果とに応じて、データ列に対するデータ処理を行う。以下、データ処理について説明する。
ラッチ回路22は、ヘッダー検出回路21の出力である検出信号S[m−1:0]をラッチし、次に検出信号Sが変化するまで状態を保つ。また、ラッチ回路22は、第nのレジスタ群Reg_(n−1)にaビット(ヘッダービット列commaの先頭のビット)が出力されるのと同じタイミングで、選択信号Sel[(m−1):0]を出力する。
クロック作成回路23は、ヘッダー検出回路21の出力であるOR信号Resetによりリセットし、OR信号Reset出力が無効になると、パラレルデータ出力RD[c−1:0]のビット数cの1/mとなるd回を繰り返しカウントしている間、第三のクロックTCLKを出力する。
整列回路24は、第nのレジスタ群Reg_(n−1)の出力であるデータ列D[((n+1)*m−1):n*m]と、第nのレジスタ群Reg_(n−1)の入力であるデータ列D[n*m−1:(n−1)*m]と、第(n−1)から第(n−d+1)のレジスタ群Reg_(n−2)、Reg_(n−3)、・・・Reg_(n−d)の入力であるデータD[((n−1)*m−1):(n−2)*m]、・・・D[((n+1−d)*m−1):((n−d)*m+1)]との(c+m−1)個を入力とする。ラッチ回路22から選択信号Sel[m−1]、Sel[m−2]、・・・Sel[0]が出力されたときは、整列回路24は、それぞれ、第nのレジスタ群Reg_(n−1)からのデータ列D[((n+1)*m−1):n*m]の最上位、2番目に上位、・・・最下位のデータD[((n+1)*m−1)]、D[((n+1)*m−2)]、・・・D[(n*m)]をデータの先頭ビットとして、第三のクロックTCLKの立ち上がり(、または立ち下がり)によりcビットをサンプリングし、整列信号AD[(c−1):0]を出力する。このようにして、ヘッダー検出回路21で、先頭ビットを特定するaビットに一致したヘッダービット列commaを先頭にしたcビットを整列できる。
書込・読出処理部(25〜29)は、整列信号AD[(c−1):0]に基づいて、データ列D[((n+1)*m−1):n*m]に対する書込・読出処理を行う。以下、書込・読出処理について説明する。
ライトアドレス発生回路25は、第三のクロックTCLKによって繰り返し0から(WA−1)をカウントし、アドレスを有するWA個のライトアドレス出力WADDRを作成する。ここで、WAは、1以上の整数である。
レジスタファイル26は、ライトアドレス発生回路25からのライトアドレス出力WADDRのアドレスに従って、整列回路24からの整列信号AD[(c−1):0]を第三のクロックTCLKによって書き込み、リードアドレスRADDRによって指定されたアドレスのデータを読み出し、リードデータ出力RD[c−1:0]を作成する。ここで、システムクロックSCLKにより、読み出したデータを取り込んだ出力を、リードデータ出力RD[c−1:0]としても良い。
パルス幅作成回路27は、ヘッダー検出回路21からのOR信号Resetを第二のクロックDCLKでセットし、一定のパルス幅(信号レベル“1”を表す)の頭出し検出信号Detectを作成する、また、パルス幅作成回路27は、第三のクロックTCLKの1周期分のパルス幅にしたロード信号LOADを出力する。
先頭アドレス記憶回路28は、パルス幅作成回路27の出力のロード信号LOADに従い、データの先頭ビットをレジスタファイル26に書き込んだときのライトアドレス出力WADDRを書き込み、ラッチする。
リードアドレスカウンタ29には、共通部3からスタート信号STRが供給される。リードアドレスカウンタ29は、このスタート信号STRが有効になると、システムクロックSCLKにより、先頭アドレス記憶回路28の出力である先頭アドレス信号SADDRを取り込む。また、リードアドレスカウンタ29は、スタート信号STRが非有効になるとカウントを開始して0から(WA−1)までを繰り返し、リードアドレスRADDRを作成し、レジスタファイル26に出力する。このとき、L個のチャネルにおいて、レジスタファイル26に書き込まれたデータの先頭ビットから読み出されることになるため、チャネル間において整列した出力が得られる。
共通部3のAND回路31は、L個のシリアル受信機1のパルス幅作成回路27からそれぞれ出力されるL個の頭出し検出信号Detect0、Detect1・・・・DetectLを入力とし、そのL個の頭出し検出信号Detect0、Detect1・・・・DetectLが表す信号レベル“1”に対して論理アンドを施す。AND回路31は、論理アンドを施すことにより、L個チャネルで、aビット(ヘッダービット列comma)が検出されたかを確認でき、その結果として、読み出し開始信号STRTを出力する。
共通部3の同期化回路32は、AND回路31の出力である読み出し開始信号STRTを、システムクロックSCLKの立ち上がり(、または、立ち下がり、または、両方)を使用して、同期化し、1周期分のパルス幅にしたスタート信号STRを、L個のシリアル受信機2のリードアドレスカウンタ29に出力する。
本発明のシリアルインタフェース回路によれば、上記の構成により、ヘッダー検出回路21は、n個(nは2以上の整数)のレジスタ群Reg_0、Reg_1、Reg_2、・・・Reg_(n−1)のうちの、第1から第b(bは、b<nを満たす整数)までのb個のレジスタ群Reg_0、・・・Reg_(b−1)の入力であるデータ列D[(b*m−1):((b−1)*m−a+1)]が揃ったタイミングから動作する。即ち、第1から第bまでのb個のレジスタ群Reg_0、・・・Reg_(b−1)がデータ列をシフトしたときに、データ列のヘッダーを検出して検出結果{検出信号S[m−1:0]、OR信号Reset}をデータ処理部(22〜29)に出力する。このため、速いタイミングでヘッダーを検出できる。
また、ヘッダー検出回路21の出力により、データ処理部(22〜29)において、整列回路24は、先頭ビットを特定し選択し、クロック作成回路23は、整列回路24でデータを取り込むクロックTCLKを作成し、パルス幅作成回路27は、頭出し検出信号Detectとロード信号LOADを作成する。
また、パルス幅作成回路27の出力であるロード信号LOADにより、先頭アドレス記憶回路28は、データの先頭ビットをレジスタファイル26に書き込んだときのライトアドレス出力WADDRを書き込み、ラッチする。
また、パルス幅作成回路27の出力である頭出し検出信号Detectにより、AND回路31と同期化回路32は、L個のチャネルの全部揃ったタイミングを検出し、その信号を、システムクロックSCLKで同期化し、同時に先頭ビット読み出すタイミングとしてスタート信号STRを作成する。
また、同期化回路32の出力であるスタート信号STRは、L個のチャネルに分配される。リードアドレスカウンタ29は、スタート信号STRが有効になると、システムクロックSCLKにより、先頭アドレス記憶回路28の出力の先頭アドレス信号SADDRを取り込み、スタート信号STRが非有効になると、読み込んだ値から繰り返してカウントし、リードアドレスRADDRを作成する。
本発明のシリアルインタフェース回路では、これらの回路で使われるタイミングの作成も、早いタイミングでヘッダーを検出できているため、レーテンシを最短にすることができる。
ここで、頭出し検出信号Detectのパルス幅が表す時間は、L個のシリアル送信器1の出力からL個のシリアル受信器2を経由してL個のチャネルの共通部3のAND回路31の出力までのチャネル間のスキュー分と、システムクロックSCLKの1周期分とを加えた時間よりも長くする。これにより、許容されるチャネル間のスキューを越えたところで発生したヘッダービット列commaの誤検出は無視され、1チャネルの伝送エラーに留まり、他のチャネルに影響しなくすることができる。また、1チャネルがヘッダービット列commaを検出できなかった場合でも、AND回路31が無効を保つため、直前の伝送状態を維持し、伝送エラーを少なくすることができる。
また、レジスタファイル26に書き込んだとき、同じアドレスを読むタイミングを、同期化回路32が、システムクロックで同期化する際に、2信号間の位相によって、1サイクル前後する分の余裕と、レジスタファイル26とリードデータを選択する回路までの遅延を加えた値より遅く、読み出すようにしたタイミングでリードアドレスRADDRを発行し、そのタイミングから、リードアドレスカウンタ29からリードデータを書き込む出力レジスタまでの遅延と同期化回路32が、システムクロックで同期化する際に、2信号間の位相によって、1サイクル前後する分の余裕を加えた値よりも早く、同じアドレスにデータを書き込まないように、アドレス0から(WA−1)を設定することにより、レーテンシを早くできる。
[動作]
図2は、本発明のシリアルインタフェース回路の動作を示すタイミングチャートである。
本実施形態では、m=4、n=5、a=8、b=3、c=20、d=5、WA=5とする。
シリアル化データがレシーバ回路20に与えられる。このとき、レシーバ回路20は、シリアル化データを差動入力Inputで受信し、4個の第一のクロックRCLK[3:0]の立ち上がり(もしくは立下りもしくは両方)によりシリアル化データをサンプリングし、第一のクロックRCLK[3:0]と同じ(もしくは、整数倍の周期を有する)第二のクロックDCLKに同期した4個のデータを有するデータ列D[3:0]に変換して出力する。
5個のレジスタ群Reg_0、Reg_1、Reg_2、・・・Reg_4のうちの、第一のレジスタ群Reg_0は、レシーバ回路20の出力であるデータ列D[3:0]を入力し、第二のクロックDCLKに応じて、内部の4個のレジスタによりシフトしたデータ列D[7:4]を作成する。
第二のレジスタ群Reg_1は、第一のレジスタ群Reg_0の出力であるデータ列D[7:4]を入力し、第二のクロックDCLKに応じて、内部の4個のレジスタによりシフトしたデータ列D[11:8]を作成する。
第三のレジスタ群Reg_2は、第二のレジスタ群Reg_1の出力であるデータ列D[11:8]を入力し、第二のクロックDCLKに応じて、内部の4個のレジスタによりシフトしたデータ列D[15:12]を作成する。
第四のレジスタ群Reg_3は、第三のレジスタ群Reg_2の出力であるデータ列D[15:12]を入力し、第二のクロックDCLKに応じて、内部の4個のレジスタによりシフトしたデータ列D[19:16]を作成する。
第五のレジスタ群Reg_4は、第四のレジスタ群Reg_3の出力であるデータ列D[19:16]を入力し、第二のクロックDCLKに応じて、内部の4個のレジスタによりシフトしたデータ列D[23:20]を作成する。
このように、5個のレジスタ群Reg_0、Reg_1、Reg_2、・・・Reg_4は、第二のクロックDCLKに応じて、第一から第5までこの順にデータ列D[23:0]を生成する。
ヘッダー検出回路21の4個のヘッダー検出器は、5個のレジスタ群Reg_0、Reg_1、Reg_2、・・・Reg_4のうちの、第一から第三までの3個のレジスタ群Reg_0、・・・Reg_2の入力であり、11以上、且つ、4の倍数12となるデータ列D[11:0]のうちのデータ列D[11:1]を入力し、第二のクロックDCLKによりサンプリングする。
この4個のヘッダー検出器は、データ列D[3:0]の先頭ビットを特定する8ビットを含むヘッダービット列commaと、データ列D[11:1]の先頭ビットを表すビット列とを比較して、データ列D[m−1:0]のヘッダーを検出する。データ列D[11:1]が表すデータのうちの、データD[11]、D[10]、D[9]、D[8]の先頭ビットを表すビット列がヘッダービット列commaに等しいとき、即ち、上記の8ビットに等しいとき、4個のヘッダー検出器は、それぞれ、信号レベル“1”を表す検出信号S3、S2、S1、S0を出力する。
一般的には、ヘッダービット列commaは、7ビットで比較される。また、0011111と1100000の2種類をもつが、4ビット分の先頭ビットが存在するために、4個のヘッダー検出器とした。結合してヘッダー検出器を作成する場合は4(=m)個に限定される必要はない。また0011111や1100000以外の信号をヘッダービット列commaとしても良い。
ヘッダー検出回路21のOR回路は、検出信号S[3:0]が表す信号レベル“1”に対して論理オアを施してOR信号Resetを作成して出力する。先頭ビットは0、1、2、3のいずれであっても良いが、図では0であると仮定し、S[3]を選択信号とした。同時にOR信号Resetが作成される。ここで、検出信号S[3]とOR信号Resetが、第3のレジスタ群Reg_2の入力D[11:8]に来てから、2クロック後に出力されているが、2クロック後に既定されるものではない。
ラッチ回路22は、ヘッダー検出回路21の出力である検出信号S[3:0]をラッチし、次に検出信号Sが変化するまで状態を保つ。また、ラッチ回路22は、第5のレジスタ群Reg_4に8ビット(ヘッダービット列commaの先頭のビット)が出力されるのと同じタイミングで、選択信号Sel[3:0]を出力する。
同時に、クロック作成回路23は、ヘッダー検出回路21の出力であるOR信号Resetによりリセットし、OR信号Reset出力が無効になると、パラレルデータ出力RD[19:0]のビット数20の1/4となる5回を繰り返しカウントしている間、第三のクロックTCLKを出力する。本実施例では、第5のレジスタ群Reg_4の出力に、先頭のビットである信号0が出力された次のクロックの立ち上がりのタイミングで第三のクロックTCLKの立ち上りが出力するようにしている。
整列回路24は、第5のレジスタ群Reg_4の出力であるデータ列D[23:20]と、第5のレジスタ群Reg_4の入力であるデータ列D[19:16]と、第4から第1のレジスタ群Reg_3、Reg_2、・・・Reg_0の入力であるデータD[15:12]、・・・D[3:1]との23個を入力とする。同時にラッチ回路22から選択信号Sel[3]が出力されたときに、整列回路24は、第5のレジスタ群Reg_4の最上位のデータD[23]をデータの先頭ビットとして、第三のクロックTCLKにより20ビットのデータ列[23:4]をサンプリングし、整列信号AD[19:0]を出力する。整列回路24は、選択信号Sel[2]が出力されたときは、2番目の上位の出力D[22:3]をサンプリングし、Sel[1]が出力されたときは3番目の上位の出力D[21:2]をサンプリングし、Sel[0]が出力されたときは最下位の出力D[20:1]をサンプリングし、整列信号AD[19:0]として出力する。このようにして、ヘッダー検出回路21で、先頭ビットを特定する8ビットに一致したヘッダービット列commaを先頭にした20ビットを整列できる。
ライトアドレス発生回路25は、第三のクロックTCLKによって繰り返し、0から4をカウントして、アドレスを有する4個のライトアドレス出力WADDRを作成する。この実施例では、第三のクロックTCLKの立下りを有効エッジとしているが、立ち上がりを有効エッジにしても良い。
レジスタファイル26は、整列回路24の整列信号AD[19:0]を、ライトアドレス発生回路25のライトアドレス出力WADDR[4:0]のアドレスに従って、第三のクロックTCLKの立下りによって書き込む。ただし、立ち上がりであっても良い。書き込まれたデータは、リードアドレスRADDR[4:0]によって指定されたアドレスのデータを読み出し、システムクロックSCLKの立ち上がりにより、出力レジスタに取り込み、リードデータ出力RD[19:0]として出力する。ただし、レジスタファイル内に出力レジスタがなく、リードアドレスRADDR[4:0]によって選択したデータをリードデータ出力RD[19:0]としても良い。
パルス幅作成回路27は、ヘッダー検出回路21からのOR信号Resetを第二のクロックDCLKでセットし、一定のパルス幅(信号レベル“1”を表す)の頭出し検出信号Detectを作成する。また、パルス幅作成回路27は、第三のクロックTCLKの1周期分のパルス幅にしたロード信号LOADを出力する。
先頭アドレス記憶回路28は、パルス幅作成回路27の出力のロード信号LOADに従い、データの先頭ビットをレジスタファイル26に書き込んだときのライトアドレス出力WADDRを書き込み、ラッチする。
リードアドレスカウンタ29は、L個のチャネルの共通部3から同時に出力されるスタート信号STRが有効になると、システムクロックSCLKの立下りにより、先頭アドレス記憶回路28の出力である先頭アドレス信号SADDR[3:0]を取り込み、リードアドレスRADDRを出力する。また、リードアドレスカウンタ29は、スタート信号STRが非有効になると、取り込んだ値からカウントして0から4までを繰り返し、リードアドレスRADDR[4:0]を作成し、レジスタファイル26に出力する。このとき、L個のチャネルにおいて、レジスタファイル26に書き込まれたデータの先頭ビットから読み出されることになるため、チャネル間において整列した出力が得られる。
共通部3のAND回路31は、L個のシリアル受信機1のパルス幅作成回路27からそれぞれ出力されるL個の頭出し検出信号Detect0、Detect1・・・・DetectLを入力する。AND回路31は、そのL個の頭出し検出信号が表す信号レベル“1”に対して論理アンドを施す。AND回路31は、論理アンドを施すことにより、L個のチャネルで、8ビット(ヘッダービット列comma)が検出されたかを確認でき、その結果として、読み出し開始信号STRTを出力する。1チャネルでも検出されないとアンドが取れないため、読み出し開始信号STRTを出力されない。もし使われないチャネルがあるならば、常時検出されたようにDetect信号をクランプすれば、無視される。
共通部3の同期化回路32は、AND回路31の出力である読み出し開始信号STRTを、システムクロックSCLKの立ち下がり、立ち上がりの順で取り込むフリップフロップ2段を使用して、同期化し、1周期分のパルス幅に前縁微分したスタート信号STRを、L個のシリアル受信機2のリードアドレスカウンタ29に出力する。
以上のような構成にし、頭出し検出信号Detectのパルス幅を、L個のシリアル送信器1の出力から各シリアル受信器2のL個のチャネルの共通部3にあるAND回路31の出力までのチャネル間のスキュー分とシステムクロックSCLKの1周期分を加えた時間よりも広い、最小のパルス幅になるようにすることにより、許容されるチャネル間のスキューを越えたところで発生したヘッダービット列commaの誤検出は無視され、1チャネルの伝送エラーに留まり、他のチャネルに影響しなくすることができる。また、1チャネルがヘッダービット列commaを検出できなかった場合でも、AND回路31が無効を保つため、直前の伝送状態を維持し、伝送エラーを少なくすることができる。
また、同期化回路32において、AND回路31の出力をシステムクロックで同期化する際に、2信号間の位相によって、1サイクル前後する場合があるが、ヘッダービット列commaの直前に1データ分以上の無効データを付加し、先頭ビットを特定する8ビットは、上記のaビットと同じにすることにより、1データ分の無効データを省略したり、ヘッダービット列commaを2度読み出したりすることにより、実データを変えずに伝送できる。
また、レジスタファイル26に書き込んだとき、同じアドレスを読むタイミングを、同期化回路32が、システムクロックで同期化する際に、2信号間の位相によって、1サイクル前後する分の余裕と、レジスタファイル26とリードデータを選択する回路までの遅延を加えた値より遅く、読み出すようにしたタイミングでリードアドレスRADDRを発行し、そのタイミングから、リードアドレスカウンタ29からリードデータを書き込む出力レジスタまでの遅延と同期化回路32が、システムクロックで同期化する際に、2信号間の位相によって、1サイクル前後する分の余裕を加えた値よりも早く、同じアドレスにデータを書き込まないように、アドレス0から4を設定することにより、レーテンシを早くできる。
[応用]
図3は、本発明のシリアルインタフェース回路の応用例を示している。本発明のシリアルインタフェース回路は、L個のシリアル送信器(Transmitter)1であるシリアル送信器1−1〜1−Lと、L個のシリアル受信器(Receiver)2であるシリアル受信器2−1〜2−Lと、共通部(共通回路部)3と、エラー修正コーディング発生器(ECCGEN)6と、エラー修正コーディング器(ECC)7とを具備している。エラー修正コーディング発生器、エラー修正コーディング器については、当業者にとってよく知られているので、その詳細な説明を省略する。
シリアル送信器1−1〜1−Lとシリアル受信器2−1〜2−Lは、L個のチャネルのそれぞれに対応する。エラー修正コーディング発生器6の出力は、シリアル送信器1−1〜1−Lの入力に接続され、シリアル送信器1−1〜1−Lの出力は、それぞれ、シリアル受信器2−1〜2−Lの入力に接続されている。シリアル受信器2−1〜2−Lの出力は、エラー修正コーディング器7の入力に接続されている。エラー修正コーディング発生器6は、1ビットエラーならびに1チャネルエラーを修復する。エラー修正コーディング器7は、1ビットエラーならびに1チャネルエラーを修復する。このような構成により、1チャネルがエラーしたり、ヘッダービット列commaを検出できなかったりしても、再送することなくデータを再生できる。
また、本発明のシリアルインタフェース回路は、更に、8B10B変換回路(8B10BCONV)4−1〜4−Lと、10B8B変換回路(10B8BCONV)5−1〜5−Lとを具備している。8B10B変換回路、10B8B変換回路については、当業者にとってよく知られているので、その詳細な説明を省略する。
8B10B変換回路4−1〜4−Lと10B8B変換回路5−1〜5−Lは、L個のチャネルのそれぞれに対応する。8B10B変換回路4−1〜4−Lは、それぞれ、エラー修正コーディング発生器6とシリアル送信器1−1〜1−Lとの間に接続され、10B8B変換回路5−1〜5−Lは、それぞれ、シリアル受信器2−1〜2−Lとエラー修正コーディング器7の間に接続されている。8B10B変換回路4−1〜4−Lは、実データ列とヘッダービット列commaとを区別する。10B8B変換回路5−1〜5−Lは、実データとヘッダービット列commaとを区別する。このような構成により、実データとヘッダービット列commaを区別可能にするため、任意の時間にヘッダービット列commaを挿入できる。
また、レジスタファイル26に書き込んだとき、同じアドレスを読むタイミングを、同期化回路32が、システムクロックで同期化する際に、2信号間の位相によって、1サイクル前後する分の余裕と、レジスタファイル26とリードデータを選択する回路までの遅延とシリアル送信器とシリアル受信器のクロックのレートの差によって、ヘッダービット列comma が発生する時間隔の間にずれる位相差を加えた値より遅く、読み出すようにしたタイミングでリードアドレスRADDRを発行し、そのタイミングから、リードアドレスカウンタ29からリードデータを書き込む出力レジスタまでの遅延と同期化回路32が、システムクロックで同期化する際に、2信号間の位相によって、1サイクル前後する分の余裕を加えた値とシリアル送信器とシリアル受信器のクロックのレートの差によって、ヘッダービット列commaが発生する時間隔の間にずれる位相差よりも早く、同じアドレスにデータを書き込まないように、アドレス0から(WA−1)を設定することにより、シリアル送信器とシリアル受信器のクロックのレートの差を補償できる。
このように、レジスタファイル26は、FIFOの機能を行うが、1個でシステムクロックの同期とチャネル間整列と送受信器間のクロックのレート差の補償を行うため、ハードウェアを削減できる。
[効果]
本発明のシリアルインタフェース回路の効果について説明する。
第1の効果は、ヘッダー検出回路21は、第1から第3までの3個のレジスタ群Reg_0、・・・Reg_2の入力であるデータ列D[11:1]が揃ったタイミングから動作する。即ち、第1から第bまでのb個のレジスタ群Reg_0、・・・Reg_(b−1)がデータ列をシフトしたときに、データ列のヘッダーを検出して検出結果{検出信号S[m−1:0]、OR信号Reset}をデータ処理部(22〜29)に出力する。このため、速いタイミングでヘッダーを検出できる。
また、ヘッダー検出回路21の出力により、データ処理部(22〜29)において、整列回路24は、先頭ビットを特定し選択し、クロック作成回路23は、整列回路24でデータを取り込むクロックTCLKを作成し、パルス幅作成回路27は、頭出し検出信号Detectとロード信号LOADを作成する。
また、パルス幅作成回路27の出力であるロード信号LOADにより、先頭アドレス記憶回路28は、データの先頭ビットをレジスタファイル26に書き込んだときのライトアドレス出力WADDRを書き込み、ラッチする。
また、パルス幅作成回路27の出力である頭出し検出信号Detectにより、AND回路31と同期化回路32は、L個のチャネルの全部揃ったタイミングを検出し、その信号を、システムクロックSCLKで同期化し、同時に先頭ビット読み出すタイミングとしてスタート信号STRを作成する。
また、同期化回路32の出力であるスタート信号STRは、L個のチャネルに分配される。リードアドレスカウンタ29は、スタート信号STRが有効になると、システムクロックSCLKにより、先頭アドレス記憶回路28の出力の先頭アドレス信号SADDRを取り込み、スタート信号STRが非有効になると、読み込んだ値から繰り返してカウントし、リードアドレスRADDRを作成する。
本発明のシリアルインタフェース回路では、これらの回路で使われるタイミングの作成も、早いタイミングでヘッダーを検出できているため、レーテンシを最短にすることができる。
第2の効果は、エラー修正コーディング発生器6の出力にシリアル送信器1(シリアル送信器1−1〜1−L)の入力を接続し、エラー修正コーディング器7の入力にシリアル受信器2(シリアル受信器2−1〜2−L)の出力を接続して、エラー修正コーディング発生器6とエラー修正コーディング器7によりエラー修正コーディング(ECC)を適用する。これにより、1ビットエラーと1チャネルエラーを修復できるデータを伝送したときに、誤動作などにより、数周期以内にL個のチャネルでヘッダービット列commaを検出しないときはチャネル間の整列を実施せず、直前の整列された状態を継続することにより、複数のチャネルが誤動作することを防止できる。
図1は、本発明のシリアルインタフェース回路の構成を示すブロック図である。 図2は、本発明のシリアルインタフェース回路の動作を示すタイミングチャートである。 図3は、図1の応用例を示している。
符号の説明
1 シリアル送信器(Transmitter)、
2 シリアル受信器(Receiver)、
20 レシーバ回路(RECEIVER&DEMUX)、
21 ヘッダー検出回路(Header_Detector)、
22〜29 データ処理部、
22 ラッチ回路(Regsel)、
23 クロック作成回路(Counter)、
24 整列回路(Aligner)、
25〜29 書込・読出処理部、
25 ライトアドレス発生回路(W−ADDRCNT)、
26 レジスタファイル(REGFILE)、
27 パルス幅作成回路(PWGen)、
28 先頭アドレス記憶回路(S−ADDRREG)、
29 リードアドレスカウンタ(R−ADDRCNT)、
Reg_0、Reg_1、Reg_2、・・・Reg_4 レジスタ群、
TOUT シリアル送信器1の正の出力、
TOUTB シリアル送信器1の負の出力、
Input シリアル受信器2の差動入力、
RCLK 第一のクロック(4相クロック)、
DCLK 第二のクロック(第一のクロックRCLKと同じ周期)、
D[23:0] 入出力信号、
S[3:0] 検出信号(ヘッダー検出回路21の出力)、
Reset 先頭ビットが検出されたタイミングを示すOR信号(ヘッダー検出回路21の出力)、
TCLK 第三のクロック(クロック作成回路23の出力)、
AD[19:0] 整列信号(整列回路24の出力)、
WADDR[4:0] ライトアドレス信号(ライトアドレス発生回路25の出力)、
RD[19:0] レジスタファイル26のリードデータ出力、
Detect0−DetectL 頭出し検出信号(パルス幅作成回路27の出力)、
LOAD ロード信号(パルス幅作成回路27の出力)、
SADDR 先頭アドレス信号(先頭アドレス記憶回路28の出力)、
RADDR[4:0] リードアドレス(リードアドレスカウンタ29の出力)、
3 共通部(共通回路部)、
31 AND回路、
32 同期化回路(SYNC−BUF)、
STRT 読み出し開始信号(AND回路31の出力)、
SCLK システムクロック、
STR スタート信号(同期化回路32の出力)、
WD0、WD1、WD2、WD3、WD4 データ、
1−1〜1−L シリアル送信器(Transmitter)、
2−1〜2−L シリアル受信器(Receiver)、
4−1〜4−L 8B10B変換回路(8B10BCONV)、
5−1〜5−L 10B8B変換回路(10B8BCONV)、
6 エラー修正コーディング発生器(ECCGEN)、
7 エラー修正コーディング器(ECC)、

Claims (7)

  1. 複数のチャネルのそれぞれに対応する複数のシリアル送信器と、
    前記複数のチャネルのそれぞれに対応し、前記複数のシリアル送信器のそれぞれに接続された複数のシリアル受信器と
    を具備し、
    前記複数のシリアル送信器の各々は、システムクロックに同期したcビット(cは2以上の整数)のデータTD[c−1:0]をシリアル化し、シリアル化データとして送信し、
    前記複数のシリアル受信器の各々は、
    タイミングが異なるm個の第一のクロックRCLKにより前記シリアル化データをサンプリングし、前記第一のクロックと同じもしくはその整数倍の周期を有する第二のクロックに同期したm個(mは、1以上の整数)のデータを有するデータ列D[m−1:0]に変換するレシーバ回路と、
    前記第二のクロックに応じて、第1から第n(nは2以上の整数)までこの順に前記データ列をシフトするn個のレジスタ群と、
    第nのレジスタ群の出力と、検出結果とに応じて、前記データ列に対するデータ処理を行うデータ処理部と、
    前記n個のレジスタ群のうちの、第1から第b(bは、b<nを満たす整数)までのb個のレジスタ群が前記データ列D[m−1:0]をシフトしたときに、前記データ列D[m−1:0]のヘッダーを検出して前記検出結果を生成するヘッダー検出回路と
    を具備し、
    前記ヘッダー検出回路は、
    前記b個のレジスタ群の入力であるデータ列D[(b*m−1):((b−1)*m−a+1)]を入力して前記第二のクロックによりサンプリングし(aは、a<cを満たす整数)、
    前記データ列D[m−1:0]の先頭ビットを特定するaビットを表すヘッダービット列と、前記データ列D[(b*m−1):((b−1)*m−a+1)]の先頭ビットを表すビット列とを比較し、
    前記データ列D[(b*m−1):((b−1)*m−a+1)]が表すデータのうちの、データD[(b*m−1)]、D[(b*m−2)]、・・・D[(b−1)*m]の先頭ビットを表すビット列が前記ヘッダービット列に等しいとき、検出信号S[m−1:0]を前記データ処理部に出力し、
    前記検出信号S[m−1:0]に対して論理オアを施して、OR信号を前記データ処理部に出力し、
    前記検出結果は、前記検出信号S[m−1:0]と前記OR信号とを含み、
    前記データ処理部は、
    前記検出信号S[m−1:0]をラッチし、次に検出信号Sが変化するまで状態を保ち、前記第nのレジスタ群に前記aビットが出力されるのと同じタイミングで、選択信号Sel[(m−1):0]を出力するラッチ回路と、
    前記OR信号によりリセットし、前記OR信号の出力が無効である場合、パラレルデータ出力RD[c−1:0]のビット数cの1/mとなるd回を繰り返しカウントしている間、第三のクロックを出力するクロック作成回路と、
    前記第nのレジスタ群の出力であるデータ列D[((n+1)*m−1):n*m]と、前記第nのレジスタ群の入力であるデータ列D[n*m−1:(n−1)*m]と、第(n−1)から第(n−d+1)のレジスタ群の入力であるデータD[((n−1)*m−1):(n−2)*m]、・・・D[((n+1−d)*m−1):((n−d)*m+1)]との(c+m−1)個を入力とし、前記ラッチ回路から前記選択信号Sel[m−1]、Sel[m−2]、・・・Sel[0]が出力されたとき、それぞれ、前記第nのレジスタ群Reg_(n−1)からの前記データ列D[((n+1)*m−1):n*m]の最上位、2番目に上位、・・・最下位のデータD[((n+1)*m−1)]、D[((n+1)*m−2)]、・・・D[(n*m)]をデータの先頭ビットとして、前記第三のクロックによりcビットをサンプリングし、整列信号AD[(c−1):0]を出力する整列回路と、
    前記整列信号AD[(c−1):0]に基づいて、前記データ列D[((n+1)*m−1):n*m]に対する書込・読出処理を行う書込・読出処理部と
    を具備するシリアルインタフェース回路。
  2. 請求項に記載のシリアルインタフェース回路において、
    前記書込・読出処理部は、
    前記第三のクロックTCLKによって繰り返し0から(WA−1)をカウントし(WAは、1以上の整数)、アドレスを有するWA個のライトアドレス出力を作成するライトアドレス発生回路と、
    前記ライトアドレス発生回路からの前記ライトアドレス出力のアドレスに従って、前記整列回路からの前記整列信号AD[(c−1):0]を前記第三のクロックによって書き込み、リードアドレスによって指定されたアドレスのデータを読み出し、リードデータ出力RD[c−1:0]を作成するレジスタファイルと、
    前記ヘッダー検出回路からの前記OR信号を前記第二のクロックでセットし、一定のパルス幅の頭出し検出信号を作成し、前記第三のクロックの1周期分のパルス幅にしたロード信号を出力するパルス幅作成回路と、
    前記パルス幅作成回路の出力の前記ロード信号に従い、データの先頭ビットを前記レジスタファイルに書き込んだときの前記ライトアドレス出力を書き込み、ラッチする先頭アドレス記憶回路と、
    スタート信号が供給され、前記スタート信号が有効である場合、前記システムクロックにより、前記先頭アドレス記憶回路の出力である先頭アドレス信号を取り込み、スタート信号STRが非有効である場合、カウントを開始して0から(WA−1)までを繰り返し、前記リードアドレスを作成し、前記レジスタファイルに出力するリードアドレスカウンタと
    を具備するシリアルインタフェース回路。
  3. 請求項に記載のシリアルインタフェース回路において、
    前記複数のシリアル受信器に接続された共通部
    を更に具備し、
    前記共通部は、
    前記複数のシリアル受信機の前記パルス幅作成回路からそれぞれ出力される複数の前記頭出し検出信号を入力とし、前記複数の頭出し検出信号に対して論理アンドを施し、読み出し開始信号を出力するAND回路と、
    前記AND回路の出力である前記読み出し開始信号を、前記システムクロックにより同期化し、1周期分のパルス幅にした前記スタート信号を、前記複数のシリアル受信機の前記リードアドレスカウンタに出力する同期化回路と
    を具備するシリアルインタフェース回路。
  4. 請求項に記載のシリアルインタフェース回路において、
    前記頭出し検出信号のパルス幅が表す時間は、前記複数のシリアル送信器の出力から前記複数のシリアル受信器を経由して前記複数のチャネルの前記共通部の前記AND回路の出力までのチャネル間のスキュー分と、前記システムクロックの1周期分とを加えた時間よりも長い
    シリアルインタフェース回路。
  5. 請求項1〜のいずれかに記載のシリアルインタフェース回路において、
    その出力が前記複数のシリアル送信器の入力に接続され、1ビットエラーならびに1チャネルエラーを修復するエラー修正コーディング発生器と、
    その入力が前記複数のシリアル受信器の出力に接続され、前記1ビットエラーならびに1チャネルエラーを修復するエラー修正コーディング器と
    を更に具備するシリアルインタフェース回路。
  6. 請求項に記載のシリアルインタフェース回路において、
    前記複数のチャネルのそれぞれに対応し、それぞれ前記エラー修正コーディング発生器と前記複数のシリアル送信器との間に接続され、実データ列と前記ヘッダービット列とを区別する8B10B変換回路と、
    前記複数のチャネルのそれぞれに対応し、それぞれ、前記複数のシリアル受信器と前記エラー修正コーディング器の間に接続され、実データ列と前記ヘッダービット列とを区別する10B8B変換回路と
    を更に具備するシリアルインタフェース回路。
  7. 請求項1〜のいずれかに記載のシリアルインタフェース回路に適用されるシリアル受信器。
JP2007041169A 2007-02-21 2007-02-21 シリアルインタフェース回路、及びシリアル受信器 Expired - Fee Related JP4336860B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2007041169A JP4336860B2 (ja) 2007-02-21 2007-02-21 シリアルインタフェース回路、及びシリアル受信器
US12/034,383 US7881290B2 (en) 2007-02-21 2008-02-20 Serial interface circuit and serial receiver

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007041169A JP4336860B2 (ja) 2007-02-21 2007-02-21 シリアルインタフェース回路、及びシリアル受信器

Publications (2)

Publication Number Publication Date
JP2008204284A JP2008204284A (ja) 2008-09-04
JP4336860B2 true JP4336860B2 (ja) 2009-09-30

Family

ID=39715843

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007041169A Expired - Fee Related JP4336860B2 (ja) 2007-02-21 2007-02-21 シリアルインタフェース回路、及びシリアル受信器

Country Status (2)

Country Link
US (1) US7881290B2 (ja)
JP (1) JP4336860B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2384071B1 (en) * 2008-12-24 2017-04-19 NEC Corporation Communications system
JP5535672B2 (ja) * 2010-02-02 2014-07-02 エヌイーシーコンピュータテクノ株式会社 シリアル転送装置及び方法
US9130733B2 (en) * 2011-06-10 2015-09-08 Airbus Defence And Space Limited Alignment of non-synchronous data streams
US9509640B2 (en) * 2014-12-05 2016-11-29 Xilinx, Inc. Latency control in a transmitter/receiver buffer

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0285950A (ja) 1988-09-22 1990-03-27 Nec Corp バス間転送方式
JPH0581186A (ja) 1991-09-20 1993-04-02 Fujitsu Ltd シリアルデータ乗せ換え制御回路
US5347270A (en) * 1991-12-27 1994-09-13 Mitsubishi Denki Kabushiki Kaisha Method of testing switches and switching circuit
US5592629A (en) 1992-12-28 1997-01-07 At&T Global Information Solutions Company Apparatus and method for matching data rates to transfer data between two asynchronous devices
JPH1097481A (ja) 1996-09-20 1998-04-14 Hitachi Ltd マイクロコンピュータ
US6167077A (en) * 1997-12-23 2000-12-26 Lsi Logic Corporation Using multiple high speed serial lines to transmit high data rates while compensating for overall skew
WO2001063829A1 (fr) * 2000-02-25 2001-08-30 Fujitsu Limited Systeme de transmission de donnees
GB0006291D0 (en) * 2000-03-15 2000-05-03 Lucent Technologies Inc Data communication link
JP3721502B2 (ja) 2000-06-12 2005-11-30 沖電気工業株式会社 シリアルバスデータ転送制御装置
US7079528B2 (en) * 2001-12-13 2006-07-18 International Business Machines Corporation Data communication method
US7538578B2 (en) 2005-04-18 2009-05-26 Altera Corporation Multiple data rates in programmable logic device serial interface

Also Published As

Publication number Publication date
JP2008204284A (ja) 2008-09-04
US7881290B2 (en) 2011-02-01
US20080205448A1 (en) 2008-08-28

Similar Documents

Publication Publication Date Title
TWI447591B (zh) 減少串列化器解串列化器鏈路中之潛時之技術
KR100546971B1 (ko) 고속 시그널링을 위한 데이터 캡처 방법
US7975082B2 (en) System and method to facilitate deterministic testing of data transfers between independent clock domains on a chip
US7979611B2 (en) Multi-protocol serial interface apparatus and system-on-chip apparatus including the same
US8036248B2 (en) Method, apparatus, and system for automatic data aligner for multiple serial receivers
EP1656777A1 (en) Auto realignment of multiple serial byte-lanes
JP4336860B2 (ja) シリアルインタフェース回路、及びシリアル受信器
US8161349B2 (en) Data parallelizing receiver
KR20040073344A (ko) 상이한 유형의 인터페이스의 입력 신호 또는 출력 신호를공통 포맷 중앙 처리부에서 전처리하는 방법 및 장치
JP4917901B2 (ja) 受信装置
US20030161351A1 (en) Synchronizing and converting the size of data frames
US7650523B2 (en) Interface apparatus and method for synchronization of data
US7213090B2 (en) Data transfer apparatus for serial data transfer in system LSI
Caputa et al. An on-chip delay-and skew-insensitive multicycle communication scheme
WO2008085697A2 (en) Data throttling circuit and method for a spacewire application
US7039144B2 (en) Large-input-delay variation tolerant (LIDVT) receiver adopting FIFO mechanism
JP3412927B2 (ja) フレーム同期回路
KR100228475B1 (ko) 프레임 데이터 수신장치
US6470459B1 (en) Half-word synchronization method for internal clock
JPS63312754A (ja) エラ−発生回路
JP2845768B2 (ja) 時刻情報同期化装置
JP2007329670A (ja) データ受信装置およびデータ受信方法
JPH0334639A (ja) エラーチェック同期検出方式
JP2001168729A (ja) データ伝送システム
JPH0568019A (ja) パリテイ計数回路

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081226

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090220

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: 20090601

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090614

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120710

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120710

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130710

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees