5 Arria 10 デバイスにおける I/O と高速 I/O
5.6 Arria 10 デバイスにおける高速ソース・シンクロナス SERDES および DPA
5.6.4 Arria 10 デバイスの差動レシーバー
レシーバーは、トランスミッターとレシーバーで共有することができる差動バッファーと I/O PLL、DPA ブロック、シンクロナイザー、データ・リアライメント・ブロック、およびデシリアライザーを有します。差動 バッファーは LVDS、mini-LVDS、および RSDS 信号レベルを受信することができます。また、レシーバ ーピンの I/O 規格は、 Quartus Primeソフトウェア Assignment Editor で LVDS、mini-LVDS、ま たは RSDS にスタティックに設定することができます。
注意: LVDS チャネルをドライブするには、整数 PLL モードの PLL を使用する必要があります。
表 63. 差動レシーバーの専用回路および機能
専用回路 / 機能 概要
差動 I/O バッファー LVDS、mini-LVDS、および RSDS をサポート
SERDES 最大10 ビット幅のデシリアライザー
専用回路 / 機能 概要
PLL ( フェーズ・ロック・ループ ) データ・シンクロナイザーのためにクロックの異なる位相を生成
データ・リアラインメント ( ビットスリップ ) ビット・レイテンシーをシリアルデータに挿入
DPA シリアルデータの位相に最も近い位相を選択
シンクロナイザー (FIFO バッファー ) データとレシーバーの入力リファレンス・クロック間における位相差を補償
スキュー調整 マニュアル
オンチップ終端 (OCT) LVDS I/O 規格で100 Ω
関連情報
158ページの ガイドライン : LVDS に整数 PLL モードの PLL を使用する 5.6.4.1 Arria 10 デバイスのレシーバーブロック
Arria 10 の差動レシーバーは、次のハードウェア・ブロックを有します。
• DPA ブロック
• シンクロナイザー
• データ・リアライメント・ブロック ( ビットスリップ )
• デシリアライザー 図 -102: レシーバーのブロック図
次の図は、レシーバーのハードウェア・ブロックを示しています。SDR モードおよび DDR モードでは、IOE からのデータ幅はそれぞ れ 1 ビットと 2 ビットです。デシリアライザーはシフトレジスターとパラレル・ロード・レジスターを含んでおり、内部ロジックに最大 10 ビットを送信します。
rx_in DPA Circuitry
Synchronizer Bit Slip
Deserializer
rx_inclock
IOE supports SDR, DDR, or non-registered datapath LVDS Receiver
FPGA Fabric
rx_out
rx_divfwdclk rx_outclock
DPA Clock Domain LVDS Clock Domain
Retimed Data DPA Clock
DOUT DIN DIN
DOUT DIN
DOUT DIN
Clock Mux
I/O PLL
+ IOE –
LVDS_diffioclk DPA_diffioclk (LOAD_EN,
diffioclk)
(DPA_LOAD_EN, DPA_diffioclk, rx_divfwdclk) 2
3 10
10
3 (LVDS_LOAD_EN,
LVDS_diffioclk, rx_outclock) 8 Serial LVDS Clock Phases 2
diffioclk 10 bits
maximum data width
5.6.4.1.1 DPA ブロック
DPA ブロックは、差動入力バッファーから高速シリアルデータを取り込み、I/O PLL が生成する 8 つの 位相のうち 1 つを選択してデータをサンプリングします。DPA はシリアルデータの位相に最も近い位相 を選択します。受信データと選択された位相間の最大位相オフセットは 1/8 UI(9)であり、これは DPA
図 -103: DPA クロック位相とシリアルデータ・タイミングの関係
次の図は、DPA クロックと着信シリアルデータ間の可能な位相関係を表しています。
45°
90°
135°
180°
225°
270°
315°
0.125Tvco Tvco
0°
rx_in
TVCO = PLL serial clock period
D0 D1 D2 D3 D4 Dn
DPA ブロックは、入力シリアルデータの位相を継続的に監視し、必要に応じて新しいクロック位相を選 択します。オプションのrx_dpa_holdポートをアサートすることで、DPA が新しいクロックフェーズ を選択できないようにすることができます。これは、各チャネルで使用可能です。
DPA 回路では、8 つの位相から最適な位相にロックするにあたって固定トレーニング・パターンは必要 ありません。リセットまたはパワーアップ後、最適な位相にロックするために、DPA 回路は受信データに おける遷移を必要とします。オプションの出力ポートであるRX_DPA_LOCKEDを使用して、パワーアッ プまたはリセット後、最適な位相に初期の DPA ロック状態を示すことができます。データを検証するに は、巡回冗長検査 (CRC) や DIP-4 ( 対角イ ンターリーブ・パリティー) などのデータチェッカーを使 用します。
独立したリセットポートのRX_RESETを使用して、DPA 回路をリセットすることができます。なお、
DPA 回路はリセット後に再トレーニングする必要があります。
注意: DPA ブロックは非 DPA モードでバイパスされます。
関連情報
158ページの ガイドライン : LVDS に整数 PLL モードの PLL を使用する 5.6.4.1.2 シンクロナイザー
シンクロナイザーは、dpa_fast_clock(DPA ブロックが選択する最適クロック)と I/O PLL が生 成するfast_clock の位相差を補償する1 ビット幅の6 ビット幅のFIFO バッファーです。シンク ロナイザーは、周波数差ではなく、データとレシーバーの入力基準クロックとの間の位相差のみを補償す ることができます。
オプションのポートのrx_fifo_reset を内部ロジックで使用してシンクロナイザーをリセットする ことができます。シンクロナイザーは、DPA が最初に着信データにロックすると自動的にリセットされま す。インテルは、rx_fifo_reset を使用して、受信データが破損していることをデータチェッカーが 示した時にシンクロナイザーをリセットすることを推奨します。
注意: シンクロナイザー回路は、非 DPA およびソフト CDR モードでバイパスされます。
関連情報
158ページの ガイドライン : LVDS に整数 PLL モードの PLL を使用する 5.6.4.1.3 データ・リアラインメント・ブロック ( ビットスリップ )
リンクによって追加されるスキューと共に送信されるデータのスキューは、受信シリアル・データストリー ムでチャネル間スキューが生じます。DPA がイネーブルされると、受信データは各チャネル上の異なるク ロック位相でキャプチャーされます。この相違によって、チャネル間で受信データのミスアライメントが生 じることがあります。このチャネル間スキューを補正し、各チャネルで正しい受信ワード境界を確立する ために、各レシーバーチャネルは、ビット・レイテンシーをシリアルストリームに挿入することによってデ ータを再びアライメントする、専用データ・リアライメント回路を備えています。
オプションのrx_bitslip_ctrlポートは、内部ロジックから個別に制御される各レシーバーのビ ット挿入を制御します。データはrx_bitslip_ctrlの立ち上がりエッジで 1 ビットをスリップしま す。rx_bitslip_ctrl信号の要件には次の項目が含まれます。
• 最小パルス幅は、ロジックアレイのパラレルクロックでの 1 周期である
• パルス間の最小 Low 時間は、パラレルクロックでの 1 周期である
• 信号はエッジトリガー信号である。
• 有効なデータは、rx_bitslip_ctrlの立ち上がりエッジから 4 パラレル・クロックサイクルの 間使用可能です。
図 -104: データ・リアライメントのタイミング
次の図に、デシリアライゼーション・ファクターを4に設定した状態での、1 ビット・スリップ・パルスの後のレシーバー出力 (rx_out) を示します。
rx_inclock rx_in rx_coreclock rx_bitslip_ctrl rx_out
3 2 1 0 3 2 1 0 3 2 1 0 3 2 1 0 3 2 1 0
3210 321x 32x1 3x21 xx21 0321
データ・リアライメント回路は、デシリアライゼーション・ファクターに設定されるビットスリップのロール オーバー値があります。オプションのステータスポートのrx_bitslip_maxは、プリセット・ロールオ ーバー・ポイントに達することを示すために、各チャネルから FPGA ファブリックに使用可能です。
図 -105: レシーバー・データ・リアラインメント・ロールオーバー
次の図は、ロールオーバーが発生する前の 4 ビット時間のプリセット値を表しています。ロールオーバーが発生したことを示すため に、rx_cda_max信号は 1rx_outclockサイクルの間パルスします。
rx_inclock rx_bitslip_ctrl rx_coreclock rx_bitslip_max 5.6.4.1.4 デシリアライザー
デシリアライゼーション・ファクターは、 Quartus Prime ソフトウェアを使用して、スタティックに x3、 x4、x5、x6、x7、x8、x9、または x10 に設定できます。
IOE は、DDR モードまたは SDR モードで動作できる 2 つのデータ入力レジスターを備えています。
DDR (×2) および SDR (×1) 動作をサポートするために、デシリアライザーをバイパスすることがで きます。デシリアライザーのバイパスは、アルテラ GPIO IP コアを介してサポートされています。
図 -106: デシリアライザーのバイパス
この図は、デシリアライザーのバイパスのパスを示しています。
rx_in DPA Circuitry
Synchronizer Bit Slip
Deserializer
IOE supports SDR, DDR, or non-registered datapath
LVDS Receiver
FPGA Fabric
rx_out
rx_divfwdclk rx_coreclock
注:ディスエーブルされるブロックと信号は グレーアウトされています。
Retimed DPA ClockData
DIN
DOUT DIN
DOUT DIN
DOUT DIN
Clock Mux
I/O PLL
+– IOE
fast_clock dpa_diffioclk (load_enable,
fast_clock)
(dpa_load_en, dpa_diffioclk, rx_divfwdclk) 2
3 10
2
3 (load_enable,
fast_clock, rx_coreclock) 8 Serial LVDS Clock Phases 2
fast_clock
デシリアライザーをバイパスする際、DPA およびデータ・リアライメント回路を使用することはできませ ん。
5.6.4.2 Arria 10 デバイスのレシーバーモード
Arria 10 デバイスは、次のレシーバーモードをサポートします。
• 非 DPA モード
• DPA モード
• ソフト CDR モード
注意: DPA モードを使用する場合は、推奨された初期化及びリセットフローに従って実行します。推奨フロー
は、DPA 回路が PLL からの最適な位相タップを検出してレシーバーでデータをキャプチャーできるよう にします。
関連情報
Recommended Initialization and Reset Flow
アルテラの LVDS SERDES IP コアを初期化し、リセットするための推奨手順を提供します。
5.6.4.2.1 非 DPA モード
非 DPA モードは、DPA およびシンクロナイザー・ブロックをディスエーブルします。入力シリアルデータ
は、I/O PLL によって生成されるシリアルfast_clockクロックの立ち上がりエッジで登録されます。
立ち上がりエッジのオプションは、 Quartus Prime Parameter Editorで選択することができます。
I/O PLL によって生成されるfast_clockクロックは、データ・リアライメントとデシリアライザー・ブ
ロックをクロックします。
図 -107: 非 DPA モードのレシーバーデータパス
次の図は、非 DPA データパスのブロック図を表しています。SDR および DDR モードでは、IOE からのデータ幅はそれぞれ 1 ビッ トおよび 2 ビットです。
rx_in DPA Circuitry
Synchronizer Bit Slip
Deserializer
rx_inclock
IOE supports SDR, DDR, or non-registered datapath LVDS Receiver
FPGA Fabric
rx_out
rx_divfwdclk rx_coreclock 10 bits
maximum data width
注:ディスエーブルされるブロックと信号は グレーアウトされています。
LVDS Clock Domain
Retimed Data DPA Clock DOUT DIN DIN
DOUT DIN
DOUT DIN
Clock Mux
I/O PLL
+– IOE
fast_clock dpa_diffioclk (load_enable,
fast_clock)
(dpa_load_en, dpa_diffioclk, rx_divfwdclk) 2
3 10
10
3 (load_enable,
fast_clock, rx_coreclock) 8 Serial LVDS Clock Phases 2
fast_clock