JP5232308B2 - パラレル−シリアル回路において誤りを検出し訂正するための方法および装置 - Google Patents

パラレル−シリアル回路において誤りを検出し訂正するための方法および装置 Download PDF

Info

Publication number
JP5232308B2
JP5232308B2 JP2011548003A JP2011548003A JP5232308B2 JP 5232308 B2 JP5232308 B2 JP 5232308B2 JP 2011548003 A JP2011548003 A JP 2011548003A JP 2011548003 A JP2011548003 A JP 2011548003A JP 5232308 B2 JP5232308 B2 JP 5232308B2
Authority
JP
Japan
Prior art keywords
data
output
clock signal
speed
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.)
Active
Application number
JP2011548003A
Other languages
English (en)
Other versions
JP2012516642A (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.)
Xilinx Inc
Original Assignee
Xilinx Inc
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 Xilinx Inc filed Critical Xilinx Inc
Publication of JP2012516642A publication Critical patent/JP2012516642A/ja
Application granted granted Critical
Publication of JP5232308B2 publication Critical patent/JP5232308B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/31725Timing aspects, e.g. clock distribution, skew, propagation delay
    • G01R31/31726Synchronization, e.g. of test, clock or strobe signals; Signals in different clock domains; Generation of Vernier signals; Comparison and adjustment of the signals
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K5/00Manipulating of pulses not covered by one of the other main groups of this subclass
    • H03K5/19Monitoring patterns of pulse trains
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03LAUTOMATIC CONTROL, STARTING, SYNCHRONISATION OR STABILISATION OF GENERATORS OF ELECTRONIC OSCILLATIONS OR PULSES
    • H03L7/00Automatic control of frequency or phase; Synchronisation
    • H03L7/06Automatic control of frequency or phase; Synchronisation using a reference signal applied to a frequency- or phase-locked loop
    • H03L7/08Details of the phase-locked loop
    • H03L7/085Details of the phase-locked loop concerning mainly the frequency- or phase-detection arrangement including the filtering or amplification of its output signal
    • H03L7/095Details of the phase-locked loop concerning mainly the frequency- or phase-detection arrangement including the filtering or amplification of its output signal using a lock detector
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M9/00Parallel/series conversion or vice versa
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3185Reconfiguring for testing, e.g. LSSD, partitioning
    • G01R31/318516Test of programmable logic devices [PLDs]

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Nonlinear Science (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Logic Circuits (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)

Description

発明の分野
この発明は集積回路デバイス(IC)に関する。より特定的には、この発明はICにおける誤り検出および訂正に関する。
背景
プログラマブルロジックデバイス(PLD)は、特定された論理機能を実行するようにプログラム可能な周知の種類の集積回路である。PLDの一種であるフィールドプログラマブルゲートアレイ(FPGA)は典型的に、プログラマブルタイルのアレイを含む。これらのプログラマブルタイルは、たとえば、入力/出力ブロック(IOB)、コンフィギュラブルロジックブロック(CLB)、専用ランダムアクセスメモリブロック(BRAM)、乗算器、デジタル信号処理ブロック(DSP)、プロセッサ、クロックマネージャ、遅延ロックループ(DLL)などを含み得る。
各々のプログラマブルタイルは典型的に、プログラマブルインターコネクトおよびプログラマブルロジックの両者を含む。プログラマブルインターコネクトは典型的に、プログラマブルインターコネクトポイント(PIP)によって相互接続された異なる長さの多数のインターコネクト配線を含む。プログラマブルロジックは、たとえば、関数生成器、レジスタ、算術論理などを含み得るプログラマブル素子を用いてユーザ設計のロジックを実現する。
プログラマブルインターコネクトおよびプログラマブルロジックは典型的に、プログラマブル素子がどのように構成されるかを規定する内部構成メモリセルにコンフィギュレーションデータのストリームをロードすることによってプログラムされる。コンフィギュレーションデータは外部デバイスによりメモリから(たとえば外部PROMから)読み出されたりFPGAに書き込まれたりし得る。そうして、個別のメモリセルの集合的な状態がFPGAの機能を決める。
別の種類のPLDはコンプレックスプログラマブルロジックデバイスまたはCPLDである。CPLDは、共に接続されるとともに、インターコネクトスイッチマトリックスによって入力/出力(I/O)リソースに接続された2つ以上の「機能ブロック」を含む。CPLDの各々の機能ブロックは、プログラマブルロジックアレイ(PLA)およびプログラマブルアレイロジック(PAL)デバイスで用いられるものと同様の2レベルAND/OR構造を含む。CPLDにおいて、コンフィギュレーションデータは典型的に不揮発性メモリ内のチップ上に記憶される。いくつかのCPLDでは、コンフィギュレーションデータは不揮発性メモリ内のチップ上に記憶され、次に初期コンフィギュレーション(プログラミング)シーケンスの一部として揮発性メモリにダウンロードされる。
これらのプログラマブルロジックデバイス(PLD)のすべてについて、デバイスの機能性は、その目的のためにデバイスに与えられるデータビットによって制御される。データビットは、揮発性メモリ(たとえばFPGAおよびいくつかのCPLDのようなスタティックメモリセル)、不揮発性メモリ(たとえばいくつかのCPLDにおけるようなFLASHメモリ)、またはいずれの他の種類のメモリセルにも記憶可能である。
他のPLDは、デバイス上のさまざまな素子をプログラマブルに相互接続する金属層などの処理層を適用することによってプログラムされる。これらのPLDはマスクプログラマブルデバイスとして公知である。PLDは、たとえば、ヒューズまたはアンチヒューズ技術を用いる他のやり方で実現することもできる。「PLD」および「プログラマブルロジックデバイス」という用語はこれらの例示的なデバイスを含むがこれらに限定されるものではなく、部分的にしかプログラマブルでないデバイスも包含する。たとえば、1つの種類のPLDは、ハードコードされたトランジスタロジックとハードコードされたトランジスタロジックをプログラマブルに相互接続するプログラマブルスイッチファブリックとの組合せを含む。
図1および図2に示される種類のFPGAは、しばしば、パラレル−シリアル変換回路を含む。回路は2つのクロック信号を用い、そのうち一方は1つの速度を有する遅いクロックであり、そのうち他方は異なる速度を有する速いクロックである。速いクロックは遅いクロックの周波数の整数倍である周波数を有し、整数はパラレル−シリアル変換回路に供給される並列データワード中のビット数である。回路は遅いクロックを用いて並列データを受信し、速いクロックを用いてこのデータをシリアルにシフトアウトする。適切な回路動作のためには、速いクロックと遅いクロックとの間の比率を維持しなければならない。速いクロック信号中のグリッチはこの比率を途絶させ、これによりシリアル送信データに誤りを生じる可能性がある。既存のパラレル−シリアル回路はこの種類の不具合を検出することができない。したがって、既存のパラレル−シリアル変換回路は一般的にそれらの意図される目的には十分であったが、それらはあらゆる点において完全に満足のいくものであったわけではなかった。
要約
装置の実施形態は、第1の速度で入力データを受信するデータ入力受信部と、第1の速度に同期し、かつ第1の速度とは異なる第2の速度で回路から出力データを送信するデータ出力送信部と、データ入力受信部からデータ出力送信部にデータを転送するデータ転送部と、第1の速度と第2の速度との間の同期性をモニタし、第1の速度と第2の速度との間の同期性の途絶に応答して、出力において誤り検出信号を生成する誤り検出部とを有する回路を含むことができる。
データ入力受信部は第1の速度で動作する第1のクロック信号に応答することができ、データ出力送信部は第2の速度で動作する第2のクロック信号に応答することができる。誤り検出部は、第1のクロック信号の選択された数のサイクルの間に生じるべき第2のクロック信号のサイクルの数を示す比較値を記憶する記憶素子と、クロックサイクル値が比較値と最後に等価であって以降実際に生じた第2のクロック信号のサイクルの数を表わすクロックサイクル値と比較値とを比較する比較器とを含むことができる。比較器は、誤り検出部の出力に結合された出力を有することができる。
誤り検出部は、比較器の出力と誤り検出部の出力との間に結合され、誤り検出信号として機能する、比較器の出力における信号を捕捉することができる捕捉部を含むことができる。
捕捉部は、比較器の出力に結合される入力と、第1のクロック信号を受信するクロック入力と、誤り検出回路の出力に結合される出力とを有するフリップフロップを含むことができる。
比較値は複数のビットを有することができ、クロックサイクル値は複数のビットを有することができる。比較器は、出力が比較器の出力に結合されたNANDゲートを含むことができ、複数の入力を含むことができ、複数の排他的NORゲートを含むことができる。複数の排他的NORゲートの各々は、記憶素子において比較値のそれぞれのビットを受信する入力と、クロックサイクル値のそれぞれのビットを受信する別の入力と、NANDゲートのそれぞれの入力に結合される出力とを有することができる。
誤り検出部は、比較器の出力と誤り検出部の出力との間に結合され、誤り検出信号として働く、比較器の出力における信号を捕捉することができる捕捉部を含むことができる。
捕捉部は、比較器の出力に結合される入力と、第1のクロック信号を受信するクロック入力と、誤り検出回路の出力に結合される出力とを有するフリップフロップを含むことができる。
データ転送部は、第1のクロック信号の選択された数のサイクルにおいて生じるべき第2のクロック信号の多数のサイクルの発生に応答してロード信号を生成するロード信号生成器を含むことができ、ロード信号は、データ出力送信部にデータ入力受信部からのデータを受信させる。
データ出力送信部は、データ入力受信部に結合される複数の入力と、ロード信号に応答する制御入力と、第2のクロック信号に応答するクロック入力と、出力とを有するシフトレジスタを含むことができる。シフトレジスタの複数の入力は、制御入力におけるロード信号の発生に応答してデータ入力受信部からデータのそれぞれのビットをパラレルに受信することができ、シフトレジスタは、制御入力におけるロード信号の発生がない場合に第2のクロック信号に応答してその出力でデータをシリアルに出力することができる。
データ入力受信部は第1の速度で動作する第1のクロックに応答することができ、データ出力送信部は第2の速度で動作する第2のクロックに応答する。
データ入力受信部は入力データをパラレルに受信することができる。データ転送部は、データ入力受信部からデータ出力送信部にデータをパラレルに転送させることができる。データ出力送信部は出力データをシリアルに送信することができる。第2の速度は第1の速度よりも大きいものであり得る。
方法の実施形態は、データ入力受信部で第1の速度でデータを受信するステップと、データ入力受信部からデータ出力送信部へデータを転送するステップと、第1の速度に同期し、かつ第1の速度とは異なる第2の速度でデータ出力送信部からデータを出力するステップと、途絶が起こった場合に同期性の途絶を検出するステップを含む第1の速度と第2の速度との間の同期性をモニタするステップと、同期性の途絶の検出に応答して誤り検出信号を生成するステップとを含むことができる。
方法は、第1の速度で動作する第1のクロック信号に応答してデータ入力受信部を動作させるステップと、第2の速度で動作する第2のクロック信号に応答してデータ出力送信部を動作させるステップとを含むことができる。モニタするステップは、第1のクロック信号の選択された数のサイクルの間に生じるべき第2のクロック信号のサイクルの数を示す比較値を維持するステップを含むことができる。さらに、モニタするステップは、クロックサイクル値が比較値と最後に等価であった時点以降実際に生じた第2のクロック信号のサイクルの数を表わすクロックサイクル値を維持するステップを含むことができ、比較値とクロックサイクル値とを比較するステップを含むことができる。誤り検出信号を生成するステップは、比較するステップの結果の関数として実行可能である。
誤り検出信号を生成するステップは、比較値とクロックサイクル値とが異なることを示す比較ステップに応答して起こり得る。
誤り検出信号を生成するステップは、第1のクロック信号のエッジに同期可能である。
方法は、第1のクロック信号の選択された数のサイクルにおいて生じるべき第2のクロック信号の多数のサイクルの発生に応答してロード信号を生成するステップを含むことができる。さらに、方法は、シフトレジスタを有するようにデータ出力送信部を構成するステップを含むことができ、シフトレジスタは、ロード信号の発生に応答してデータ入力受信部からデータを受信し、シフトレジスタは、ロード信号の発生がない場合に第2のクロック信号に応答してデータをシリアルに出力する。
方法は、第1の速度で動作する第1のクロック信号に応答してデータ入力受信部を動作させるステップと、第2の速度で動作する第2のクロック信号に応答してデータ出力送信部を動作させるステップとを含むことができる。
受信するステップは、データをパラレルに受信するステップを含むことができ、転送するステップはデータをパラレルに転送するステップを含むことができ、出力するステップはデータをシリアルに出力するステップを含むことができ、第2の速度は第1の速度よりも大きいものであり得る。
装置の別の実施形態は、第1のクロック速度で入力データを受信するデータ入力受信部と、第1のクロック速度に同期し、かつ第1のクロック速度とは異なる第2のクロック速度で回路から出力データを送信するデータ出力送信部と、データ入力受信部およびデータ出力送信部に結合され、第2のクロック速度によって駆動されるカウンタを含むプログラマブルロード生成器と、値を含むレジスタと、プログラマブルロード生成器およびレジスタに結合され、その値をカウンタの出力と比較する比較器と、比較器に結合され、第1のクロック速度で動作する第1のクロックの立下がりエッジで比較器の出力を検査して、第1のクロック速度と第2のクロック速度との間の比率が途絶しているか否かを判定する制御回路とを有する回路を含むことができる。
制御回路は、第1のクロック速度と第2のクロック速度との間の比率が途絶している場合はリセット信号を出力することができる。
いくつかの異なる種類のプログラマブルロジックブロックを含む高度なフィールドプログラマブルゲートアレイ(FPGA)アーキテクチャの概略図である。 図1のFPGAの代替的な実施形態であり、いくつかの異なる種類のプログラマブルロジックブロックを含む別のFPGAアーキテクチャの概略図である。 図1および図2のFPGAアーキテクチャの各々の一部分であるパラレル−シリアル変換回路を示す回路模式図である。 図3の回路の動作の局面を示すタイミング図である。 図3の回路の構成要素であるプログラマブルロード生成器、および図3の回路内で用いられる速いクロックと遅いクロックとの間の比率の途絶を検出する誤り検出回路を示す回路模式図である。
詳細な説明
図1は、いくつかの異なる種類のプログラマブルロジックブロックを含む高度なフィールドプログラマブルゲートアレイ(FPGA)アーキテクチャ100の概略図である。たとえば、図1のFPGAアーキテクチャ100は、マルチギガビットトランシーバ(MGT)101、コンフィギュラブルロジックブロック(CLB)102、ランダムアクセスメモリブロック(BRAM)103、入力/出力ブロック(IOB)104、コンフィギュレーションおよびクロッキングロジック(CONFIG/CLOCKS)105、デジタル信号処理ブロック(DSP)106、専用入力/出力ブロック(I/O)107(たとえばコンフィギュレーションポートおよびクロックポート)、ならびにデジタルクロックマネージャ、アナログ−デジタル変換器、システムモニタロジックなどの他のプログラマブルロジック108を含む多数の異なるプログラマブルタイルを有する。FPGA100は専用プロセッサブロック(PROC)110も含む。
FPGA100において、各々のプログラマブルタイルは、各々の隣接するタイル中の対応のインターコネクト素子へおよびそれからの標準化された接続部を有するプログラマブルインターコネクト素子(INT)111を含む。したがって、プログラマブルインターコネクト素子は、図示されるFPGAのためのプログラマブルインターコネクト構造を共に実現する。プログラマブルインターコネクト素子(INT)111は、図1の上部に含まれる例によって示されるように、同じタイル内にプログラマブルロジック素子へのおよびそれからの接続部も含む。
たとえば、CLB102は、単一のプログラマブルインターコネクト素子(INT)111と共にユーザロジックを実現するようにプログラム可能なコンフィギュラブルロジック素子(CLE)112を含むことができる。BRAM103は、1つ以上のプログラマブルインターコネクト素子に加えてBRAMロジック素子(BRL)113を含むことができる。典型的に、タイルに含まれるインターコネクト素子の数はタイルの高さに依存する。図示される実施形態では、BRAMタイルは5つのCLBと同じ高さを有するが、他の数(たとえば4つ)を用いることも可能である。DSPタイル106は適切な数のプログラマブルインターコネクト素子に加えてDSPロジック素子(DSPL)114を含むことができる。IOB104は、たとえば、プログラマブルインターコネクト素子(INT)111の1つのインスタンスに加えて入力/出力ロジック素子(IOL)115の2つのインスタンスを含むことができる。当業者には明らかなように、たとえばI/Oロジック素子115に接続される実際のI/Oパッドは典型的に、入力/出力ロジック素子115の領域に閉じ込められていない。
図示される実施形態では、(図1に影付きで示される)ダイの中央近くの列状の領域がコンフィギュレーションロジック、クロックロジックおよび他の制御ロジックのために用いられる。この列から延在する水平方向の領域109はFPGAの幅に亘ってクロックおよびコンフィギュレーション信号を分配するのに用いられる。他の実施形態では、コンフィギュレーションロジックは、ダイの角などのようなFPGAダイの異なる領域に位置してもよい。
図1に図示されるアーキテクチャを利用するいくつかのFPGAは、FPGAの大きな部分を構成する規則的な列状構造を分断する付加的なロジックブロックを含む。付加的なロジックブロックはプログラマブルブロックおよび/または専用ロジックであり得る。たとえば、図1に示されるプロセッサブロックPROC110は、CLBおよびBRAMのいくつかの列に跨っている。
図1は1つの例示的なFPGAアーキテクチャを図示する。たとえば、1列の中のロジックブロックの数、列の相対的な幅、列の数および順番、列に含まれるロジックブロックの種類、ロジックブロックの相対的なサイズ、アレイ内のロジックブロックの位置、ならびに図1の上部に含まれるインターコネクト/ロジック実現例は純粋に例示的なものである。実際のFPGAでは、CLBの1つよりも多くの隣接する列は典型的にCLBが現れる場所であればどこでも含まれて、ユーザロジックの効率的な実現を容易にするが、隣接するCLB列の数はFPGAの全体的なサイズと共に変化する。
図2は図1のFPGAの代替的な実施形態を示し、これはいくつかの異なる種類のプログラマブルロジックブロックを含む。図2のFPGA200は、CLB202、BRAM203、(各々が40個のI/Oパッドおよび付随するロジックを含む)「I/Oバンク」204に分割されるI/Oブロック、コンフィギュレーションおよびクロッキングロジック205、DSPブロック206、クロックI/O207、クロック管理回路(CMT)208、コンフィギュレーションI/O217、ならびにコンフィギュレーションおよびクロック分配領域209を含む。
図2のFPGA200では、例示的なCLB202は、単一のプログラマブルインターコネクト素子(INT)211ならびに2つの異なる「スライス」、すなわちスライスL(SL)212およびスライスM(SM)213を含む。いくつかの実施形態では、2つのスライスは同じである(たとえばスライスLの2つのコピーまたはスライスMの2つのコピー)。他の実施形態では、2つのスライスは異なる能力を有する。いくつかの実施形態では、いくつかのCLBは2つの異なるスライスを含み、いくつかのCLBは2つの同様のスライスを含む。たとえば、いくつかの実施形態では、いくつかのCLB列は2つの異なるスライスを有するCLBのみを含む一方で、他のCLB列は2つの同様のスライスを有するCLBのみを含む。
図3は、図1および図2のFPGAアーキテクチャの各々の一部分であるパラレル−シリアル変換回路301を示す回路模式図である。図3の左側に、回路301は、各々のワードが6つまでのデータビットd1からd6を内蔵できる、入力データワードを並列に受信するデータ入力受信部302を有する。回路301は、シリアル出力303で、シリアル形式の出力データとして各々のそのようなワードを出力するデータ出力送信部305も有する。回路301は6ビットスライスであり、幅が2ビットからビットまでの並列ワードを扱うことができる。たとえば、4ビットのワードならデータ入力d1からd4に供給され、シリアル出力303でシリアルに出力される。6ビットワードならデータ入力d1からd6に供給され、シリアル出力303でシリアルに出力される。さらに、6ビットよりも大きなサイズの並列ワードを扱うため、回路301は、他の回路のシリアル入力306への1つのそのような回路のシリアル出力303の接続部を含む別の同一の回路とカスケード接続可能である。
回路301の内部構造を参照して、この考察のために、データ入力受信部302に供給される並列入力ワードは6ビットの幅を有すると仮定する。データ入力受信部302は、データ入力d1からd6と、6つのDタイプフリップフロップ311から316によって規定される入力レジスタとを有する。各々の6ビット入力ワードはデータ入力d1からd6へ並列な形式で供給され、6つの2入力1出力セレクタ341−346を通過し、入力レジスタ(フリップフロップ311から316)にロードされる。以上で論じたように、図1および図2に示される種類のFPGAアーキテクチャは、エンドユーザによって構成されるまたはプログラムされる能力を有する。このプログラミングプロセスの一部として、ユーザは、関連のデータ入力d1からd6に存在する反転または非反転信号を関連のフリップフロップ311から314に与えるように、セレクタ341から346の各々を構成する。この考察の目的のため、セレクタ341から346はユーザにより非反転となるように構成されていると仮定する。
入力レジスタ(フリップフロップ311−316)に6ビットのデータワードがロードされた後、(後でより詳細に論じる)回路301の動作シーケンス中の好適なポイントで、この6ビットワードはデータ出力送信部305にパラレルに転送される。データ出力送信部305は、6個の2入力1出力セレクタ321から326と、6個のDタイプフリップフロップ331から336によって規定されるレジスタとを含む。6ビットワードは2入力1出力セレクタ321から326を通してパラレルに受信され、レジスタ(フリップフロップ331から336)にロードされる。フリップフロップ331−336がロードされた後、2入力1出力セレクタ321−326は交互モードに切換えられ、セレクタ321−325はフリップフロップ332から336のうちそれぞれの1つの出力を各々のフリップフロップ331から335のデータ入力に供給する一方で、セレクタ326はフリップフロップ336のデータ入力に(上記のように別の回路301のシリアル出力304にオプションで結合可能な)シリアル入力306の状態を供給する。その結果、フリップフロップ331−336は次にシリアルシフトレジスタとして機能し、その中のデータはシリアル出力303でシリアルに出力される。
クロック信号oclkdiv_bは、フリップフロップ311から316の各々のクロック入力に供給され、異なるクロック信号oclk_bはフリップフロップ331から336の各々のクロック入力に供給される。フリップフロップ331から336のためのクロック信号oclk_bは、フリップフロップ311から316のためのクロック信号oclkdiv_bの整数倍の周波数を有し、整数は並列ワードのビット数に等しい。このように、この考察のために、回路301に6ビットを有する並列ワードが供給されると仮定しているので、クロックoclk_bはクロック信号oclkdiv_bの周波数または速度の6倍の周波数または速度を有する。便宜上、クロック信号oclk_bは本明細書中では速いクロックと称されることがあり、クロック信号oclkdiv_bは遅いクロックと本明細書中で称されることがある。
回路301は、プログラマブルロード生成器351を含むデータ転送部350を有する。プログラマブルロード生成器351は、フリップフロップ331から336と同じクロック信号oclk_bを受信する4ビットクロックサイクルカウンタ352を含む。ロード生成器351は、クロック信号oclk_bのX個のパルス毎に1個の出力パルスを発生する出力を有し、Xは並列入力ワードのビット数である。本考察の目的のため、Xは6個のパルスである。データ転送部350は、ロード生成器351から出力を受ける1つの入力と、制御信号SERIAL ENABLEを受信する別の入力とを有するANDゲート353も含む。パラレル−シリアル変換を利用する場合、信号SERIAL ENABLEは常に論理ハイである。ANDゲート353の出力は2入力1出力セレクタ321から326の各々に制御信号として供給されるLOAD信号として働く。プログラマブルロード生成器351およびANDゲート353は共にロード信号生成器として働く。LOAD信号が停止されると、セレクタ321から326は、フリップフロップ331−336が5クロックサイクルの間シリアルシフトレジスタとして機能するように設定される。LOAD信号が作動すると、セレクタ321から326は1クロックサイクルの間並列ロードモードに切換わり、これによりフリップフロップ331から336が、フリップフロップ311から316からのデータで並列にロード可能となる。回路301は、プログラマブルロード生成器351へ、フリップフロップ311から316の各々へ、かつフリップフロップ331から336の各々へ供給されるリセット信号sr_bを有する。図4は回路301の動作の局面を示すタイミング図である。
以上で論じたように、図1および図2に示される種類のFPGAアーキテクチャは、エンドユーザによって構成されるまたはプログラムされる能力を有する。このプログラミングプロセスの一部として、ユーザは、並列データワード中のビット数Xと整合する態様でプログラマブルロード生成器351を構成する。こうして、並列データワードがX=4ビットを有する場合、プログラマブルロード生成器351は、速いクロックoclk_bの4個のパルス毎に1個のパルスを出力するように構成される。並列ワードがX=6ビットを有する場合、ロード生成器351は、速いクロックoclk_bの6個のパルス毎に1個のパルスを出力するように構成される。並列ワードがX=10ビットである場合、ロード生成器351は、速いクロックoclk_bの10個のパルス毎に1個のパルスを出力するように構成される。
回路301が適切に動作するためには、遅いクロックoclkdiv_bと速いクロックoclk_bとの速度の比率を維持しなければならない。速いクロックoclk_bに何らかの不規則性または「グリッチ」が存在すれば、比率が乱され、フリップフロップ311から316を内蔵するレジスタとフリップフロップ331から336を内蔵するレジスタとの間の同期性が途絶してしまう。
図5は、プログラマブルロード生成器351と、図3には示されていないが図3の回路301の一部分である誤り検出回路361とを示す回路模式図である。誤り検出回路361は、遅いクロックoclkdiv_b(図3)と速いクロックoclk_bとの速度の間の比率の途絶を検出する。回路361は記憶素子である4ビットレジスタ366を含む。開示される実施形態では、レジスタ366は、別個に図示されていない4つのメモリセルで実現される。以上で論じたように、図1および図2に示される種類のFPGAアーキテクチャは、エンドユーザによって構成されるまたはプログラムされる能力を有している。このプログラミングプロセスの一部として、ユーザは、レジスタ366に永続的に記憶されるべき4ビットバイナリ比較値を特定する。速いクロックと遅いクロックとの間の比率に途絶が発生しなかったならば、遅いクロックoclkdiv_bの各々の立下がりエッジの直前に、ロード生成器351は(図4では16進数「d」として表わされる)同じ4ビットクロックサイクル値を常に出力していることが、図4において気付くであろう。FPGAアーキテクチャが構成されているとき、図5のレジスタ366は、同じ16進数値「d」を表わすビットを内蔵するようにプログラムされる。図3および図4はシングルデータレート(「SDR」)モードで動作するパラレル−シリアル変換回路を示すが、この発明の1つ以上の実施形態は、パラレル−シリアル変換回路がダブルデータレート(「DDR」)モードで動作するように構成される場合も適用される。
誤り検出回路361は比較器回路368を含む。比較器回路368は4個の排他的NORゲート371から374を含む。以上で言及したように、ロード生成器351は4ビットクロックサイクルカウンタを内蔵し、このカウンタの4ビットのうち各々は4つのゲート371から374のうちそれぞれ1つの一方の入力に結合される。レジスタ366中の4つのメモリセルのうちの各々は、ゲート371から374のうちそれぞれ1つの他方の入力に結合される。比較器368は、出力を有し、かつゲート371から374のそれぞれ1つの出力に各々が結合される4つの入力を有するNANDゲート377をさらに含む。誤り検出回路361は、後で論じるDタイプフリップフロップ380をオプションで含むことができる。このフリップフロップは、これがオプションであることを反映するために破線で示されている。当面の間、フリップフロップ380は存在しないと仮定する。NANDゲート377の出力はパラレル−シリアル変換回路301のための制御回路386に供給される誤り検出信号である。
制御回路386は、比較器368が各々の遅いクロックの立下がりエッジにおいて有する出力状態を検査する。比較器368の出力が(比較値とクロックサイクル値とが等価であるため)バイナリ「0」である場合、速いクロックと遅いクロックとの間の比率は途絶しておらず、回路301は適切に動作している筈である。他方で、比較器368の出力が(比較値とクロックサイクル値とが異なるため)バイナリ「1」である場合、速いクロックと遅いクロックとの間の比率はたとえば速いクロックにおけるグリッチのために途絶している。そこで、制御回路386は、回路301へまたは少なくともロード生成器351へリセット信号を供給し、データストリーム全体が回路301のシリアル出力を通してシリアルに正しく送信されることを確実にするために、少なくとも最後の3つの遅いクロックサイクルの間は6ビットの並列データワードを再送することができる。
上記で言及したように、オプションでフリップフロップ380を設けることができる。フリップフロップ380が存在する場合、そのデータ入力は比較器368の出力に結合され、そのクロック入力は遅いクロックoclkdiv_bを受信し、そのデータ出力は制御回路386に結合される。フリップフロップ380が存在する場合、比較器368の出力は遅いクロック信号oclkdiv_bの各々の立下がりエッジでフリップフロップ380に捕捉される。このようにフリップフロップ380は捕捉部として働き、フリップフロップ380に捕捉される比較器368の出力は誤り検出信号として働く。
選択された実施形態が詳細に図示され説明されたが、以下の請求項によって規定されるような本発明の精神および範囲から逸脱することなく置換および変更が可能であることを理解すべきである。

Claims (9)

  1. 回路を備える装置であって、前記回路は、
    第1の速度で動作する第1のクロック信号に応答して入力データをパラレルに受信するデータ入力受信部と、
    前記第1の速度に同期し、前記第1の速度とは異なる第2の速度で動作する第2のクロック信号に応答して前記回路から出力データをシリアルに送信するデータ出力送信部と、
    前記第2のクロック信号に応答してカウントし、カウント値を出力するカウンタを含むロード信号生成器とを有し、前記ロード信号生成器は前記第2のクロック信号の多数のサイクルの発生に応答してロード信号を生成するように構成され、前記ロード信号は前記データ出力送信部に前記データ入力受信部からのデータを受信させ、さらに
    誤り検出部を有し、前記誤り検出部は、
    比較値を記憶する記憶素子と、
    前記記憶素子および前記カウンタに結合される比較器とを含み、前記比較器は前記カウント値のビットを前記比較値と比較するように構成され、さらに前記誤り検出部は、
    前記比較器に結合されかつ前記第1のクロック信号の各々のサイクルで前記比較器の出力を捕捉するように構成される捕捉部を含み、前記誤り検出部は、前記比較器の捕捉された前記出力が前記カウント値と比較値とが異なることを示すことに応答して、誤り検出信号を生成するように構成され、さらに前記誤り検出部は、
    前記誤り検出信号を受信するとともに、前記ロード信号生成器に結合される制御回路を含み、前記制御回路は、前記第1のクロック信号の少なくとも最後の3サイクルの間、前記誤り検出信号に応答して、前記データ入力受信部から前記データ出力送信部への並列データワードの再送信を制御するように構成される、装置。
  2. 前記比較値は複数のビットを有し、前記カウント値は複数のビットを有し、
    前記比較器は、前記比較器の前記出力に結合される出力を有し、かつ複数の入力を有するNANDゲートを含むとともに、複数の排他的NORゲートを含み、前記複数の排他的NORゲートの各々は、前記記憶素子において前記比較値のそれぞれのビットを受信する入力と、前記カウント値のそれぞれのビットを受信する別の入力と、前記NANDゲートのそれぞれの入力に結合される出力とを有する、請求項1に記載の装置。
  3. 前記データ出力送信部は、前記データ入力受信部に結合される複数の入力と、前記ロード信号に応答する制御入力と、前記第2のクロック信号に応答するクロック入力と、出力とを有するシフトレジスタを含み、前記シフトレジスタの前記複数の入力は、前記制御入力における前記ロード信号の発生に応答して前記データ入力受信部からのデータのそれぞれのビットをパラレルに受信し、前記シフトレジスタは、前記制御入力における前記ロード信号の発生がない場合に前記第2のクロック信号に応答してその出力でシリアルにデータを出力する、請求項1または2に記載の装置。
  4. 前記データ入力受信部は前記第1の速度で動作する前記第1のクロック信号に応答し、前記データ出力送信部は前記第2の速度で動作する前記第2のクロック信号に応答する、請求項1から3のいずれか1項に記載の装置。
  5. 前記データ入力受信部は前記入力データをパラレルに受信し、
    前記ロード信号生成器は、前記データ入力受信部から前記データ出力送信部にデータをパラレルに転送し、
    前記データ出力送信部は前記出力データをシリアルに送信し、
    前記第2の速度は前記第1の速度よりも大きい、請求項1から4のいずれか1項に記載の装置。
  6. データ入力受信部およびデータ出力送信部を有する回路を動作させる方法であって、
    第1の速度で動作する第1のクロック信号に応答して前記データ入力受信部でパラレルにデータを受信するステップと、
    第2のクロック信号のサイクルをカウントし、カウント値を生成するステップと、
    前記第2のクロック信号の多数のサイクルの発生に応答してロード信号を生成するステップと、
    前記ロード信号に応答して前記データ入力受信部から前記データ出力送信部へデータを転送するステップと、
    第2の速度で動作する前記第2のクロック信号に応答して前記データ出力送信部からシリアルにデータを出力するステップとを備え、前記第2の速度は前記第1の速度に同期し、かつ前記第1の速度とは異なっており、さらに
    比較値を記憶するステップと、
    前記記憶された比較値と前記カウント値のビットとを比較するステップと、
    前記第1のクロック信号の各々のサイクルで比較器の出力を捕捉するステップと、
    前記比較器の捕捉された前記出力が前記カウント値と前記比較値とが異なることを示すことに応答して誤り検出信号を生成するステップと、
    前記第1のクロック信号の少なくとも最後の3サイクルの間、前記誤り検出信号に応答して、前記データ入力受信部から前記データ出力送信部への並列データワードの再送信を制御するステップとを備える、方法。
  7. 前記誤り検出信号を生成するステップは、前記第1のクロック信号のエッジに同期する、請求項6に記載の方法。
  8. シフトレジスタを有するように前記データ出力送信部を構成するステップを含み、前記シフトレジスタは、前記ロード信号の発生に応答して前記データ入力受信部からデータを受信し、前記シフトレジスタは、前記ロード信号の発生がない場合に前記第2のクロック信号に応答してデータをシリアルに出力する、請求項6に記載の方法。
  9. 前記受信するステップはデータをパラレルに受信するステップを含み、
    前記転送するステップはデータをパラレルに転送するステップを含み、
    前記出力するステップはデータをシリアルに出力するステップを含み、
    前記第2の速度は前記第1の速度よりも大きい、請求項6から8のいずれか1項に記載の方法。
JP2011548003A 2009-01-31 2010-01-08 パラレル−シリアル回路において誤りを検出し訂正するための方法および装置 Active JP5232308B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US14892509P 2009-01-31 2009-01-31
US61/148,925 2009-01-31
US12/474,248 US7971115B2 (en) 2009-01-31 2009-05-28 Method and apparatus for detecting and correcting errors in a parallel to serial circuit
US12/474,248 2009-05-28
PCT/US2010/020560 WO2010088016A2 (en) 2009-01-31 2010-01-08 Method and apparatus for detecting and correcting errors in a parallel to serial circuit

Publications (2)

Publication Number Publication Date
JP2012516642A JP2012516642A (ja) 2012-07-19
JP5232308B2 true JP5232308B2 (ja) 2013-07-10

Family

ID=42396272

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011548003A Active JP5232308B2 (ja) 2009-01-31 2010-01-08 パラレル−シリアル回路において誤りを検出し訂正するための方法および装置

Country Status (6)

Country Link
US (1) US7971115B2 (ja)
EP (1) EP2384544B1 (ja)
JP (1) JP5232308B2 (ja)
KR (1) KR101263110B1 (ja)
CN (1) CN102292913B (ja)
WO (1) WO2010088016A2 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130016810A (ko) * 2011-08-09 2013-02-19 에스케이하이닉스 주식회사 내부제어신호 조절회로
IN2014CH00439A (ja) * 2014-01-30 2015-08-07 Mentor Graphics Corp
DE102016201141B4 (de) * 2016-01-27 2017-11-16 Wago Verwaltungsgesellschaft Mbh Sicherheitsanordnung
CN107423153B (zh) * 2017-07-24 2020-01-21 上海交通大学 一种用于错误检测与校正技术的校正电路
CN110196781B (zh) * 2019-06-11 2021-04-02 中国科学院长春光学精密机械与物理研究所 基于点负载的fpga加载配置问题检查方法
FR3100346B1 (fr) * 2019-09-04 2022-07-15 St Microelectronics Rousset Détection d'erreurs
US11334426B2 (en) * 2020-04-20 2022-05-17 Micron Technology, Inc. CRC error alert synchronization

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5065396A (en) * 1990-01-02 1991-11-12 At&T Bell Laboratories Inverse multiplexer and demultiplexer techniques
US5062105A (en) * 1990-01-02 1991-10-29 At&T Bell Laboratories Programmable multiplexing techniques for mapping a capacity domain into a time domain within a frame
JP3135990B2 (ja) * 1992-07-31 2001-02-19 沖電気工業株式会社 パリティ付加回路
JPH10322200A (ja) 1997-05-21 1998-12-04 Mitsubishi Electric Corp 位相ロック検出回路
US6581183B1 (en) * 2000-03-30 2003-06-17 International Business Machines Corporation System and method for resynchronization of transmit and receive compression dictionaries
JP3501732B2 (ja) * 2000-06-23 2004-03-02 日本電気通信システム株式会社 パラレルシリアル変換回路
US7593432B2 (en) * 2001-03-31 2009-09-22 Redback Networks Inc. Method and apparatus for deframing signals
JP4502165B2 (ja) 2001-04-10 2010-07-14 ルネサスエレクトロニクス株式会社 ロック検出回路
WO2004038994A1 (en) 2002-10-25 2004-05-06 Koninklijke Philips Electronics N.V. Device for exchanging data signals between two clock domains
US7406118B2 (en) * 2003-09-11 2008-07-29 Xilinx, Inc. Programmable logic device including programmable multi-gigabit transceivers
US7289589B2 (en) * 2003-10-01 2007-10-30 Northrop Grumman Corporation Maximum likelihood bit synchronizer and data detector
US7091890B1 (en) * 2004-08-17 2006-08-15 Xilinx, Inc. Multi-purpose source synchronous interface circuitry
TW200731702A (en) * 2005-07-29 2007-08-16 Koninkl Philips Electronics Nv Data stream synchronization
US7567449B2 (en) * 2006-10-27 2009-07-28 Xilinx, Inc. One-time-programmable logic bit with multiple logic elements
US7812664B1 (en) * 2007-07-19 2010-10-12 Xilinx, Inc. Method of and circuit for suppressing noise in a circuit

Also Published As

Publication number Publication date
EP2384544B1 (en) 2016-12-28
WO2010088016A2 (en) 2010-08-05
US20100199136A1 (en) 2010-08-05
KR20110110288A (ko) 2011-10-06
EP2384544A2 (en) 2011-11-09
CN102292913A (zh) 2011-12-21
US7971115B2 (en) 2011-06-28
KR101263110B1 (ko) 2013-05-09
CN102292913B (zh) 2016-01-20
JP2012516642A (ja) 2012-07-19
WO2010088016A3 (en) 2011-03-10

Similar Documents

Publication Publication Date Title
JP5232308B2 (ja) パラレル−シリアル回路において誤りを検出し訂正するための方法および装置
JP6250188B2 (ja) Serdes受信機オーバーサンプリングレート
US8350590B1 (en) Method and apparatus for distributing clock signals
US9722612B2 (en) Configuration sequence for programmable logic device
US8415974B1 (en) Methods and circuits enabling dynamic reconfiguration
JP5354427B2 (ja) 集積回路のための再構成可能論理ファブリックおよび再構成可能論理ファブリックを構成するためのシステムおよび方法
US7310759B1 (en) Techniques for mitigating, detecting, and correcting single event upset effects in systems using SRAM-based field programmable gate arrays
CN107077445B (zh) 发送器的通道到通道的偏斜校正
US8909941B1 (en) Programmable integrated circuit and a method of enabling the detection of tampering with data provided to a programmable integrated circuit
US20140133246A1 (en) Configurable embedded memory system
US9356775B1 (en) Clock data recovery (CDR) phase walk scheme in a phase-interpolater-based transceiver system
US8917111B1 (en) Configuration of programmable integrated circuits
US9252778B2 (en) Robust flexible logic unit
US9148192B1 (en) Transceiver for providing a clock signal
US20180041328A1 (en) Dynamic clock-data phase alignment in a source synchronous interface circuit
US8874999B1 (en) Pulse width determination for phase detection
US7242217B2 (en) Output reporting techniques for hard intellectual property blocks
US9007110B1 (en) Register circuits and methods of storing data in a register circuit
US8713409B1 (en) Bit error mitigation
US7701247B1 (en) Data buffering with readout latency for single-event upset tolerant operation
US9436562B1 (en) Circuit network with an error detection system for mitigation of error propagation
US10340898B1 (en) Configurable latch circuit
US7944261B1 (en) Method and apparatus for detecting clock loss
CN101442308B (zh) 一种fpga内部延时锁相环失锁保护装置

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120626

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120913

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121211

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130214

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130322

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

Free format text: PAYMENT UNTIL: 20160329

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5232308

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250