TN1124_2.9J Jan. 2009 LatticeECP2M SERDES/PCS ユーザガイド PCSの概要 LatticeECP2M™ FPGAファミリは業界をリードするアーキテクチャを持ち、高性能FPGAファブリックと、 高性能I/O、および大規模組み込みメモリを単一チップに集積しています。また、すべてのLatticeECP2Mデ バイスが特徴としているのは、組み込みSERDES(最大16チャネル)とこれに付随するPhysical Coding Sublayer(PCS)ロジックです。多数の業界標準高速データ転送プロトコルをサポートするためにPCSロジッ クを構成することができます。 各チャネルに専用のPCSロジックは送受信SERDESを含み、データレート3.125Gbpsの高速全二重シリアル データ転送に対応します。PCSロジックはイーサネット(1GbEとSGMII)、PCI Express、CPRI、およびOBSAI を含む一連のポピュラーなデータプロトコルをサポートするために各チャネルを構成することができます。 さらに、ユーザの高速データインターフェイス設計に柔軟に対応できるように、多くの構成でプロトコルベ ースのロジックを完全か部分的にバイパスすることができます。 またPCSはバイパスモードを提供し、SERDESからFPGAロジックとは8ビット、または10ビットの直接イ ンターフェイスがあります。また、それぞれのSERDESピンは個別にDC結合に設定することでき、高速動 作と、シリアル・デジタルビデオ(SDI)アプリケーションのような低速動作を、同じSERDESピンで対応する ことが可能です。 機能 ・最大16チャネルの高速SERDES - チャネルあたり250Mbpsから3.125Gbps - 3.125Gbps動作時にチャネルあたり100mWの低消費電力 - フォームファクタの小さいバックプレーン動作の為の受信等化と送信プリエンファシス - PCI Express、イーサネット(1GbEとSGMII)、および他の複数の規格をサポート - ユーザ指定の汎用(Generic) 8b10bモードをサポート - PCI Expressのビーコンをサポート - 低速入力用のOOB (out-of-band)信号インターフェイス(ビデオ用途) ・複数のクロックレートをサポート - 各PCSクワッド用に個別の基準クロックが使用でき、単一デバイスで複数のプロトコルレートを容 易に扱うことが可能 ・フル機能の組み込み物理コーディング・サブレイヤ(PCS)ロジックで業界標準プロトコルをサポート - デバイス当たり最大16チャネルの全二重データ通信をサポート - 単一チップで複数プロトコルをサポート - 8b10bベースの広く採用されているパケットプロトコルをサポート - SERDES OnlyモードはFPGAロジックと8ビット、または10ビットで直接インターフェイスが可能 ・ギガビット・イーサネットのサポート - IEEE 1000BASE-Xに準拠 - 8b10bエンコーディング/デコーディング - 自動ネゴシエーションをサポートするための受信データストリーム中への /I2/ シンボル挿入 - コンマキャラクタのワードアライメント - クロックトレランス補償 (CTC) 回路 LatticeECP2M 8-1 SERDES/PCS-UGJ TN1124_2.9J Jan. 2009 ・PCI Expressサポート - 単一PCSクワッドでx1またはx4をサポート - ワードアライナを集積 - 8b10bエンコーディング/デコーディング - クロックトレランス補償(CTC)回路 - 電気的アイドルとレシーバ検出のサポート - ビーコン送信とビーコン検出のサポート ・複数プロトコルに準拠するクロックトレランス補償(CTC)ロジック - 基準クロックと受信データレートとの周波数差を補償 - 長さ1/2/4バイトのユーザ定義スキップパターンの使用が可能 ・システムデバッグのためのループバック・モードを集積 - システムデバッグのために3つのループバック・モードを提供 サポート規格 サポートする規格を表8-1にリストアップします。 表8-1 サポートするSERDES規格 (フルサポート) 規格 符号化 信号タイプ 100 125 25.0 ∼ 312.5 FPGA CLK [MHz] 250 125 25.0 ∼ 312.5 8b10b 8b10b 8b10b / なし CML CML CML 25.0 ∼ 312.5 25.0 ∼ 312.5 なし CML 25.0 ∼ 312.5 25.0 ∼ 312.5 なし CML 14.3, 17.7, 27.0, 36.0 143, 177, 135, 180 1483.5, 1485 148.35, 148.5 148.35, 148.5 SMPTEスクランブ ル SMPTEスクランブ ル 614.4 1228.8 61.44 122.88 61.44 122.88 レート [Mbps] REFCLK [MHz] PCI Express 2500 GbE/SGMII 1250 Generic 8b10b 250 ∼ 3125 10-bit SERDES 250 ∼ 3125 Only 1 8-bit SERDES 250 ∼ 3125 Only 1 143, 177, 270, SD-SDI 2 360 HD-SDI CPRI 8b10b CML CML CML 1.SERDES Onlyモードは8ビットと10ビット共に、リンクアライン/コンマアラインと、8b10bエンコーダ/デコ ーダ、およびCTCをバイパスします。CDRはバイパスしません。 2.標準精細度(SD)用のシリアルデジタル・インターフェイス(SDI): 143Mbps、177MbpsはSERDES/PCSブロッ クをバイパスします。クロックとデータはRXピンからBSCANパスを通してFPGAコアに入ります。CDRは FPGAコアで行われます。送信方向では、これらの低いビットレートにはデシメーションが用いられます。FPGA 内でCDRを実行するためには、14.3MHzと17.7MHzの基準クロックが必要です。270Mbpsは最も一般的な周波 数です。これは10ビットのデータパスを通ります。 上記SERDESモードでXAUI、SRIO、OBSAI、CPRI、1XFC、2XFC、PICMG3.1、PICMG3.4、PICMG3.5、 および3G-SDIの各規格をサポートすることができます。より詳細な情報が必要な場合はラティスセミコンダ クターのテクニカルサポート・グループにご連絡ください。 LatticeECP2M 8-2 SERDES/PCS-UGJ TN1124_2.9J Jan. 2009 アーキテクチャ概要 PCSロジックは独立する4系統の全二重データチャンネル用のロジックを含み、クワッドごとにアレンジさ れています。表8-2はLatticeECP2Mファミリで各デバイスにあるSERDES/PCSクワッドを示します。 表8-2 LatticeECP2MファミリのデバイスごとのSERDES/PCSクワッド デバイス Quad URC(右上) Quad LRC(右下) Quad ULC(左上) Quad LLC(左下) ECP2M20 Yes - ECP2M35 Yes - ECP2M50 Yes Yes - ECP2M70 Yes Yes Yes Yes ECP2M100 Yes Yes Yes Yes PCSクワッド 図8-1はデバイス内でPCSクワッドの配置を示すLatticeECP2Mのレイアウトです。(4つのクワッドを含む最 も大きいアレイが示されています。他のデバイスではクワッド数は少なくなります。) 図8-1 LatticeECP2M70/100ブロック図 全てのクワッドは複数のプロトコルベースのモードの1つにプログラムすることができます。各クワッドは それ自身の基準クロックを必要とし、外部からパッケージピンを介して、或いは内部FPGAロジックから供 給することができます。 各クワッドにはそれぞれ基準クロックがあるので、クワッドが異なれば同一チップでも違う規格をサポート することができます。この機能はLatticeECP2Mファミリを、異なる規格間のブリッジ機能の実装に理想的な LatticeECP2M 8-3 SERDES/PCS-UGJ TN1124_2.9J Jan. 2009 デバイスにします。 PCSクワッドは単に業界標準プロトコル専用なだけではありません。多くのユーザ定義のデータ操作モード のために、各クワッド(そしてクワッド内の各チャネル)をプログラムすることができます。例えば、ユーザ 定義のワードアライメントとクロックトレランス補償を司るモードは、非プロトコル動作としてプログラム することができます。 PCSクワッドとチャネル デバイスの各クワッドは最大4チャネルの全二重データをサポートします。アプリケーションによって、ユ ーザは単一クワッドで1∼4チャネルのいづれも利用することができます。どのクワッドであれ、ユーザが各 チャネルごとに独立して設定できる多くのオプションがあります。 また図8-1には4つのPCSクワッド、合計16のPCSチャネルを含むデバイスの例を示します。それぞれのクワ ッドはLatticeECP2Mアレイ内を4分割した位置に従って命名されています。すなわちURPCS(右上のPCS)、 ULPCS(左上のPCS)、LRPCS(右下のPCS)、LLPCS(左下のPCS)です。 チャネル単位のPCS/FPGAインターフェイス・ポート 選ばれたモードにかかわらず、すべてのPCSクワッドはパッケージピンに共通の外部高速シリアル・インタ ーフェースを持っています。しかしながら、各クワッドとFPGAロジック間のI/Oポートには、それぞれのPCS モードで選択されたプロトコルに適切となる独自のリストがあります。本ドキュメントでは各モード用のク ワッド入出力信号の詳細を記述します。単一クワッド内のチャネルを示す概略図を図8-2に示します。 図8-2 PCSクワッドのブロック図 PCSクワッドの配置 LatticeECP2M-50以上の規模のデバイスは2∼4つのPCSクワッドを含んでいます。 ユーザは、プリファレンス(設計制約)ファイルの中でLOCATEプリファレンスを用いることで、各PCSク ワッド配置を所望の位置に指定することができます。LOCATE制約については、以下に例を示します。 LOCATE COMP "PCS_instantiation_1" SITE "URPCS" ; (訳注;PCS_instantiation_1はコンポーネント名) LatticeECP2M 8-4 SERDES/PCS-UGJ TN1124_2.9J Jan. 2009 詳細なチャネルブロック図 図8-3は、LatticeECP2M SERDES/PCS単一チャネルの主要な機能の詳細なブロック図を表します。この図 にはFPGAでユーザロジックから見えるすべての主要なブロック、および制御とステータス信号の大部分が 示されています。また、この図はチャネルSERDES、SERDESブリッジ、PCSコア、およびFPGAブリッジ の主要なサブブロックも示しています。 図8-3 LatticeECP2M SERDES/PCSチャネルの詳細ブロック図 以下にFPGAインターフェイス信号の概要説明が続きます。 クロックとリセット PCSクワッドはFPGAロジック・インターフェイスに対して、(Tx PLLに)ロックした基準クロックおよびチ ャネルごとの受信再生クロックを供給します。各PCSクワッドはこれらのクロックをプライマリ、及びセカ ンダリのFPGAクロック配線に提供します。また、各クワッドのPCS/FPGAインターフェイスには、FPGA ファブリックから全4チャネルに供給する送受信クロックポートがあります。 各クワッドには、クワッド内のSERDESとPCSロジックの両方か、或いはSERDESのみを強制リセットする 信号入力があります。さらに送受信方向共に、PCSロジック専用のリセットが各チャネルごとにあります。 送信データバス 送信データパスの信号はFPGAからPCSブロック内のFPGAブリッジまでです。高速伝送規格のために、(制 御/ステータス信号と共に)8ビット幅の内部PCSデータパス用に2:1変換すること(ギアリング)ができます。 LatticeECP2M 8-5 SERDES/PCS-UGJ TN1124_2.9J Jan. 2009 PCI Express x1用インターフェイスの最高速度は2:1変換しないモードで250MHzです。ギアリング2:1あり (すなわち、16ビット幅データパス)で、最大速度は156.25MHz(XAUI 4xチャネルモード用)です。SERDES とPCSは、156.25MHz(2:1ギアリングあり)のインターフェイス速度に対応する3.125Gbpsデータレートまで サポートします。 表8-3 異なるモードごとの送信データバスのビット配分 データビット (ff_tx_d[23:0]) [11], [23] [10], [22] [9], [21] [8], [20] [7:0], [19:12] GE Correct_disp 4 xmit 0でドライブ k_cntrl txd [7:0] XAUI 0でドライブ 0でドライブ 0でドライブ txc txd [7:0] PCI Express (8b10b) pcie_ei_en disp_sel force_disp k_cntrl txd [7:0] 8-bit I/F (8b10b) 10-bit I/F correct_disp 1 disp_sel 1 force_disp k_cntrl txd [7:0] 2, 3 0でドライブ 0でドライブ txd [9] txd [8] txd [7:0] 1. G8B10Bモードで動作しているとき、force_disp信号はデータワード[7:0]に対してdisp_sel信号で選択された コラムのビットにディスパリティを強制します。disp_selが1の場合、10ビットコードは現在のRD+(正のディ スパリティ)コラムから選択されます。disp_selが0の場合,10ビットコードは現在のRD-(負のディスパリティ) コラムから選択されます 2. データにギアリングがある(2:1)とき、低位ビット(ff_tx_[9:0])が最初に送信されるオクテットであり、高位ビ ット(ff_tx_d[19:10])が2番目に送信されるオクテットです。データがギアリングなしの場合、低位ビット (ff_tx_d[9:0])が有効なビットであり、高位ビットは全てゼロにされるべきです。 3. 8ビットモード、或いは10ビットモードで用いられるインターフェイスと8b10bエンコーダ/デコーダはバイ パスされます。例えば、SDIなど。 4. 自動ネゴシエーション・ステートマシンは信号xmitを生成します。これはハードロジック内でGigE Idle SM と相互にインターフェイスする為に用いられます。 受信データバス 受信パスの信号は、PCSブロック内のFPGAブリッジからFPGAまでです。データパスは8ビット幅の内部 PCSデータパス用に2:1ギアリングされるかもしれません。ソフトウェア・レジスタビットでギアリングを禁 止することが可能で、その場合バス幅は半分にされます。データがギアリングされるとき、低位ビット (ff_rx_d[9:0]]が最初に受信されたオクテットであり、高位ビット(ff_rx_d[19:10])が2番目に受信されたオクテ ットです。データがギアリングなしの場合、低位ビット(ff_rx_d[9:0])が有効なビットであり、高位ビットは 使用されるべきではありません。 表8-4 異なるモードごとの受信データのバスビット配分 データビット (ff_rx_d[23:0]) [11], [23] [10], [22] [9], [21] [8], [20] [7:0], [19:12] GE rx_even cv disp_err k_cntrl rxd [7:0] 2 1 PCI Express 2 (8b10b) XAUI NC cv disp_err txc rxd [7:0] 3 rxstatus[2] 3 rxstatus[1] 3 rxstatus[0] k_cntrl rxd [7:0] 8-bit I/F (8b10b) NC cv disp_err k_cntrl rxd [7:0] 1 10-bit I/F NC NC rxd [9] rxd [8] rxd [7:0] 1. コードバイオレーションがあるとき、PCS 8b10bパケットデコーダはその出力を0xEEとKアサートに置き替 えます(K=1かつd=EEは8b10b符号スペースに定義がありません)。 2. rx_evenはGigE自動ネゴシエーションと受信ステートマシン(FPGAロジックで実装される)での使用のために GigEリンク・ステートマシンによって生成される信号です。 。 LatticeECP2M 8-6 SERDES/PCS-UGJ TN1124_2.9J Jan. 2009 制御 各モードにはそれ特有の制御信号の組があり、FPGAロジックから様々なPCS機能の直接制御を可能にしま す。通常これらの制御入力は、それぞれの制御レジスタビットへのライト操作と同等の作用を与えます。 ispLEVERデザインツールは、これらのポートをFPGAインターフェイスに取り出すためのオプションをユー ザに与えます。 ステータス 各モードにはそれ特有のステータスやアラーム信号の組があり、FPGAロジックからモニタできます。通常 これらのステータス出力は、特定のステータス・レジスタビットにそれぞれ対応しています。ispLEVERデ ザインツールは、これらのポートをPCS FPGAインターフェイスに取り出すためのオプションをユーザに与 えます。制御とステータスに関する詳細な情報については モード特有の制御/ステータス信号 セクショ ンを参照してください。 SCI (SERDESクライアント・インターフェイス)バス SCIはソフトIPで、SERDES/PCSクワッドブロックがコンフィグレーション・メモリセルではなく、レジス タによって制御されることを可能にします。それは簡単なレジスタ・コンフィグレーション・インターフェ イスです。 このテクニカルノートの利用 ラティスからのispLEVERデザインツールはPCSの全モードをサポートします。殆んどのモードが特定の業 界標準データ通信プロトコルのアプリケーション専用です。他のモードは、ユーザが自身のカスタムアプリ ケーション設定を定義する、より汎用のモードです。 ispLEVERデザインツールで、ユーザのデザインで使 用するモードに各クワッドを定義します。 このドキュメントはispLEVERによってサポートされるSERDESとPCSのすべてのモードの動作について説 明します。このドキュメントは組み込みSERDESと、連携するPCSロジックの完全な機能を詳細に記述しま す。組み込みSERDESの電気的特性とタイミング特性はLatticeECP2/Mファミリデータシートにあります。 PCSロジックの動作はPCSセクションにあり、SCIバスを介してアクセスすることができるSERDES/PCSロ ジックに関連する全ステータス・制御レジスタは、その一覧表がメモリマップ・セクションに提供されてい ます。パッケージピン配置情報はLatticeECP2/Mファミリデータシートのアーキテクチャ・セクションに含 まれています。 LatticeECP2M 8-7 SERDES/PCS-UGJ TN1124_2.9J Jan. 2009 SERDES/PCS クワッドは4チャネルのRxとTx回路、及びTx PLLを含む補助チャネルを含んでいます。Tx PLLへの基準クロ ックは、基準クロック差動入力ピンかFPGAコアから供給することができます。クワッドSERDES/PCSマク ロは4レーンのデータのためにシリパラ変換とパラシリ変換機能を実行し、マクロ内のPLLはFPGAロジック にシステムクロックを提供します。またクワッドはTxとRx各回路で、フルデータレートとハーフデータレー ト動作モードの両方を独立してサポートします。ブロックレベルの図が図8-4で示されています。 図8-4 SERDES_PCSブロックの信号インターフェイス I/O定義 表8-5にPCSクワッドに対するすべてのデフォルトおよびオプションのI/Oをリストアップします。ユーザは、 IPexpress GUIを用いることでPCSクワッドのオプションポートを選ぶことができます。 LatticeECP2M 8-8 SERDES/PCS-UGJ TN1124_2.9J Jan. 2009 表8-5 SERDES_PCS I/O記述 信号名 I/O タイプ 記 Default / Optional 述 プライマリI/O, SERDESクワッド hdinp0 I チャネル 高速CML非反転入力、チャネル0 hdinn0 I チャネル 高速CML反転入力、チャネル0 hdinp1 I チャネル 高速CML非反転入力、チャネル1 hdinn1 I チャネル 高速CML反転入力、チャネル1 hdinp2 I チャネル 高速CML非反転入力、チャネル2 hdinn2 I チャネル 高速CML反転入力、チャネル2 hdinp3 I チャネル 高速CML非反転入力、チャネル3 hdinn3 I チャネル 高速CML反転入力、チャネル3 hdoutp0 O チャネル 高速CML非反転出力、チャネル0 hdoutn0 O チャネル 高速CML反転出力、チャネル0 hdoutp1 O チャネル 高速CML非反転出力、チャネル1 hdoutn1 O チャネル 高速CML反転出力、チャネル1 hdoutp2 O チャネル 高速CML非反転出力、チャネル2 hdoutn2 O チャネル 高速CML反転出力、チャネル2 hdoutp3 O チャネル 高速CML非反転出力、チャネル3 hdoutn3 O チャネル 高速CML反転出力、チャネル3 refclkp I クワッド 基準クロック非反転入力、専用CML入力 refclkn I クワッド 基準クロック反転入力、専用CML入力 送受信データバス(詳細なバス使用法については表8-3を参照) ff_rxdata_ch0[23:0] I チャネル チャネル0受信パスのデータ信号 ff_rxdata_ch1[23:0] I チャネル チャネル1受信パスのデータ信号 ff_rxdata_ch2[23:0] I チャネル チャネル2受信パスのデータ信号 ff_rxdata_ch3[23:0] I チャネル チャネル3受信パスのデータ信号 ff_txdata_ch0[23:0] O チャネル チャネル0送信パスのデータ信号 ff_txdata_ch1[23:0] O チャネル チャネル1送信パスのデータ信号 ff_txdata_ch2[23:0] O チャネル チャネル2送信パスのデータ信号 ff_txdata_ch3[23:0] O チャネル チャネル3送信パスのデータ信号 制御信号 受信データの反転制御 ffc_sb_inv_rx_ch[3:0] I チャネル 1 = データを反転 0 = データを反転しない コンマアライナを制御 4 I ffc_enable_cgalign_ch[3:0] チャネル 1 = コンマアライナをイネーブル 0 = コンマアライナを現在の位置にロック リンクステートマシン (LSM) を制御 4 I ffc_signal_detect_ch[3:0] チャネル 1 = LSMをイネーブル 0 = LSMをディセーブル FPGAブリッジ・ループバック ffc_fb_loopback_ch[3:0] I チャネル 1 = RxからTxへのループバックをイネーブル 0 = 通常動作 LatticeECP2M 8-9 D D D D D D D D D D D D D D D D D D D D D D D D D D O O O O SERDES/PCS-UGJ TN1124_2.9J Jan. 2009 ffc_sb_pfifo_lp_ch[3:0] I チャネル ffc_pfifo_clr_ch[3:0] I チャネル rx_sdi_en tx_sdi_en リセット信号 I I チャネル クワッド ffc_lane_rx_rst_ch[3:0] I チャネル ffc_lane_rx_tst_ch[3:0] I チャネル ffc_rrst_ch[3:0] I チャネル ffc_trst I クワッド ffc_quad_rst I クワッド ffc_macro_rst I クワッド ffc_txpwdnb_ch[3:0] I チャネル ffc_rxpwdnb_ch[3:0] I チャネル SERDESブリッジ・パラレルループバック 1 = RxからTxへのループバックをイネーブル 0 = 通常動作 SERDESブリッジ・パラレルループバックFIFO のクリア 1 = ループバックFIFOをリセット 0 = 通常のループバック動作 BSCANモードのみで使用 O D O Highアクティブ、非同期入力。PCS内の個々の Rxチャネルロジックのみをリセット。 Highアクティブ、非同期入力。PCS内の個々の Txチャネルロジックのみをリセット. Highアクティブ、非同期入力。SERDES Rxチャ ネル内の一部ロジックのみをリセット。 Highアクティブ、非同期入力。SERDES全Txチ ャネル内の一部ロジックをリセット。 Highアクティブ、非同期入力。補助チャネルを 含むSERDES全チャネルをリセット。 Highアクティブ、SERDESクワッドへの非同期 入力。PCSロジック以外の補助チャネルを含む SERDES全チャネルをリセット。ソフトウェ ア・レジスタビットfpga_reset_enableとゲート される。fpga_reset_enableのデフォルトは1。 Lowアクティブ送信チャネルパワーダウン。 0 = 送信チャネルパワーダウン Lowアクティブ受信チャネルパワーダウン。 0 = 受信チャネルパワーダウン D D D D D D D D ステータス信号 ffs_rlos_lo_ch[3:0] O チャネル ffs_ls_sync_status_ch[3:0] O チャネル ffs_cc_underrun_ch[3:0] 6 O チャネル ffs_cc_overrun_ch[3:0] 6 O チャネル ffs_rxfbfifo_error_ch[3:0] O チャネル ffs_txfbfifo_error_ch[3:0] O チャネル ffs_rlol_ch[3:0] O チャネル ffs_plol O クワッド LatticeECP2M 各チャネル用LOS検出。閾値設定にはレジスタ ビットrlos_hset[2:0]が用いられる。Low側の閾 値はユーザからアクセスできない。 1 = LOS 0 = 信号検出 1 = レーンはコンマに同期 0 = レーンはコンマを不検出. 1 = Rxクロック補償FIFOのアンダーランエラー 0 = FIFOエラーなし 1 = Rxクロック補償FIFOのオーバーランエラー 0 = FIFOエラーなし 1 = Rx FPGAブリッジFIFOエラー 0 = FIFOエラーなし 1 = Tx FPGAブリッジFIFOエラー 0 = FIFOエラーなし. 1 = Rx CDR LOL 0 = ロックを維持 1 = Tx PLL LOL 0 = ロックを維持 8-10 D D O O D D D D SERDES/PCS-UGJ TN1124_2.9J Jan. 2009 oob_out_ch[3:0] 3 O チャネル refck2core FPGAへのクロック信号 O クワッド ff_rxfullclk_ch[3:0] O チャネル ff_rxhalfclk_ch[3:0] O チャネル ff_rxqtrclk_ch[3:0] O チャネル ff_txfullclk ff_txhalfclk ff_txqtrclk FPGAからのクロック信号 core_rxrefclk O O O チャネル チャネル チャネル I クワッド core_txrefclk I クワッド ff_ebrd_clk_[3:0] I チャネル ff_rxiclk_ch[3:0] I チャネル ff_txiclk_ch[3:0] I チャネル FPGA内ビデオSERDES用へのチャネルのシン グルエンド出力 FPGAへの基準クロック Rxチャネル再生クロック。ユーザモードではソ ースは常にチャネルの再生クロック。GbEや 10GbEなどCTCサポートの規格では、ソースは 当該送信チャネルのシステムクロック。 PCSバイパスモードでもTxシステムクロックで あり、8b10bモードか8b10bデコーダをディセー ブルして(10-bit or 20-bit data path)実行する “raw” モードが必要です。 Rxチャネル再生ハーフクロック。2:1ギアリング では2分周された出力。 Rxチャネル再生クオータ(1/4)クロック。もう一 段の2:1ギアリング用。 Tx PLLフルレートクロック Tx PLLハーフレートクロック Tx PLLクオータ (1/4) レートクロック FPGAからのRx基準クロック。CDR PLL用。 FPGAロジックからのTx基準クロック。Tx SERDES PLL用。 FPGAからのRxチャネルクロック入力。CTC FIFO (エラスティックバッファ) リード用。 FPGAからの各Rxチャネル用クロック入力。基 準クロックや受信基準クロックに同期する FIFOとRx FPGA部のインターフェイス用クロ ック。 FPGAからの各Txチャネル用クロック入力。基 準クロックに同期したFIFOとインターフェイ スするため。CTCが用いられる場合は、Rx FPGA部が基準クロックに同期したFIFOにイン ターフェイスするために用いられる。 D O D D O D D O D D D D D SERDESクライアント・インターフェイス(SCI) scienaux I R scien_ch[3:0] I R sciselaux scisel_ch[3:0] sciaddress[5:0] scireaddata[7:0] sciwritedata[7:0] I I I O I R R R R R LatticeECP2M 1: sciwdataがクワッド制御レジスタにライト 0: メモリデータがクワッド制御レジスタにラ イト 1: sciwdataがチャネル制御レジスタにライト 0: メモリデータがチャネル制御レジスタにラ イト 1: クワッドレジスタを選択 1: チャネルレジスタを選択 アドレスバス入力 リードデータ出力 ライトデータ入力 8-11 O O O O O O SERDES/PCS-UGJ TN1124_2.9J Jan. 2009 1: リードデータを選択 0: リードデータは非選択 sciwstn I R ライトストローブ sciinterrupt O R 割り込み出力 1: “sciwstn = 0” の場合、全メモリセルをレジス cyawstn I R タにコピー 0: デフォルト SERDESキャラクタライゼーション / テスト用バス キャラクタライズ用テストバスロジックのデー cin[11:0] I R タ入力 キャラクタライズ用テストバスロジックのデー cout[19:0] O R タ出力 scird I R O O O O D D 1. コンフィグレーションの間、HDOUTPとHDOUTNは共にVCCOBにプルアップされます。 2. Generic 8b10b PCSモジュールはオプションとして4本のPCI制御/ステータス信号を含んでいます。用いられ ない場合、制御信号はGNDに接続し、またステータス信号はフローティングのままでも構いません。 3. CDRを用いないで信号を得る唯一の方法はOOB_OUT信号を用いることです。この信号はSDIモード用のみ。 4. 外部リンクステートマシンが選択されると、PCSポートリストにこれらの信号が表れます。図8-28を参照し てください。 5. ラティスセミコンダクター社内での用途のみ。 6. これら信号はパルスです。正しくモニタするためにはラッチする必要があります。 SERDES/PCSの機能記述 LatticeECP2Mファミリのデバイスには、組み込みSERDES/PCSロジックのクワッドが1∼4あります。各ク ワッドは、独立する全二重データチャンネルを4系統サポートします。単一チャネルはデータリンクを1系統 サポートすることができ、各クワッドはそのような4つのチャネルまでサポートすることができます。モー ド選択はクワッド単位でされることに注意してください。例えば或るクワッドをギガビット・イーサネット モードに選択すると、そのクワッドにおける全4チャネルがギガビット・イーサネットモード専用になりま す。 組み込みSERDES CDR PLLとTx PLLは広範囲の業界標準プロトコルをカバーするデータレートをサポート します。 図8-3はSERDES/PCSチャネル内の主なブロックとサブブロックを説明します。 ・SERDES - イコライザ - CDR(クロックデータ・リカバリ) - デシリアライザ - プリエンファシス - シリアライザ - シリアル・ループバック ・SERDESブリッジ(SB) - インバータ;受信データを反転します。PCI Expressで必要です。 - SERDESブリッジ・パラレル・ループバック ・PCSコア - ワードアライメント LatticeECP2M 8-12 SERDES/PCS-UGJ TN1124_2.9J Jan. 2009 - 8b10bデコーダ - 8b10bエンコーダ - リンクステートマシン - エラスティック・バッファ(CTC) ・FPGAブリッジ(FB) - ダウンサンプルFIFO - アップサンプルFIFO - PCSパラレル・ループバック SERDES イコライザ デジタル伝送のデータレートがGbps以上に進化するにつれて、周波数依存の減衰によって受信信号に厳しい シンボル間干渉をもたらす結果となり得ます。従ってイコライザを用いることは、正しくデータを復元する ために必須になります。LatticeECP2Mでは3つの極配置オプションを用意しており、これらは低/中/高周波 領域です。 プリエンファシス プリエンファシスはシステムプロセスに関するものです。ユーザは最大80%のプリエンファシスを選択する ことができます。 レシーバのCID(同一ディジットの連続) Rx-CID;BER 10-12 でのレシーバのCID(0/1同一ディジットの連続) ・3.125Gbpsで7ビット ・1.25Gbpsで20ビット これはDC結合を用いるとき、入力データストリームが0/1の遷移なしで許容されるビット数です。 基準クロックの使用 1本の基準クロック(REFCLK)がLatticeECP2Mファミリではサポートされます。Tx PLLと4個のRx PLLはす べて同じ周波数で、基準クロック周波数の倍数で動作します。各チャネルのTxシリアライザは、そのままの レート(フルデータレート・モード)か半分のレート(ハーフデータレート・モード)で動作するかを、独立して プログラムすることができます。同様に、各チャネルのRxデシリアライザもフルデータレート・モード、ハ ーフデータレート・モードのいづれで動作するかを独立してプログラムすることができます。すべてのTxと Rxが同じモードでプログラムされると(通常はフルレート)、クワッドの全4チャネルが同一Tx/Rx周波数で動 作することになります。 SERDES内の送信PLLは、ピンからの外部基準クロックか、FPGAコア(core_txrefclk)から提供される基準ク ロックかのどちらかに、ロックすることができます。SERDES内の受信PLLも、ピンからの外部基準クロッ クかFPGAコア(core_rxrefclk)から供給される基準クロックのどちらかにロックすることができます。 LatticeECP2M 8-13 SERDES/PCS-UGJ TN1124_2.9J Jan. 2009 図8-5 ブロック図、基準クロックの使用 基準クロックのソース refclkp, refclkn CMLのSERDESクロック専用入力。送受信用に特に別のソースが用意されていない限り、最初のオプション です。ソースはCML、LVDS、LVPECLのいづれかです。インターフェイス例についてはTN1114(Electrical Recommendations for Lattice SERDES)を参照してください。 core_rxrefclk, core_txrefclk FPGAロジックからの基準入力。プライマリクロック(PCLK)を使用するべきです。 FPGA PLL FPGA PLLが基準クロックとして用いられるとき、そのPLLに対する基準クロックは専用クロック入力ポー トを用いるべきです。高速データレート用のクロックではFPGA PLL出力のジッタはシステム規格を満たさ ないかもしれません。ジッタが重要な用途では用いないことを推奨します。 フルデータレートとハーフデータレート 各TxシリアライザとRxデシリアライザは、フルデータレートとハーフデータレートに分けることができ、各 方向と各チャネルにおいて2つの異なるデータレートを許容します。 このデュアルレート機能を用いるには、チャネルベースのプロトコルモードを選択しなければなりません。 例: 1. IPexpress(図8-22)のQuad Tabウィンドウでは、G8B10B Mode、Channel Based Protocol Mode、 Channel0(Full Rate)が選択されています。 LatticeECP2M 8-14 SERDES/PCS-UGJ TN1124_2.9J Jan. 2009 2. Reference Clock(CM)ウィンドウ(図8-24)で、Full Rate Channelコラムの下に、以下を入力します。 ・シリアル・ビットクロックレート: 2.5 GHz ・基準クロックの乗数: 10X ・残り3つのエントリーはそのまま 3. Half Rate Channelコラムはハーフレートのために計算された値を表示します: フルレートチャネル ハーフレートチャネル シリアル・ビットクロックレート 2.5GHz 1.25GHz 基準クロック乗数 10X 5X 計算された基準クロックレート 250MHz 250MHz FPGAインターフェイス・データバス幅 8 8 計算後のFPGA I/Fクロックレート 250MHz 250MHz フルクロック、ハーフクロック、およびクオータクロックの使用 多くの場合、図8-32で図示されるff_txfullclkはff_rxiclk_chx、ff_txiclk_chx、ff_ebrd_clk_xに用いられます。 Reference Clock MultiplierとFPGA Interface Data Bus Widthが選択されているとき、IPexpress GUIは自動的 にFPGAインターフェイスのクロック周波数を計算します。 表8-6はrefclk_multiplierモードと、8ビットまたは16ビットのインターフェイス・データバス幅の取り得るす べての組み合わせに対するクロック使用例について示します。 表8-6 クロック使用例、G8B10Bモード、REFCLK=120MHz 基準クロック乗数 ビットレート 8ビット・インターフェイス例 1 rxfullclk rxhalfclk txfullclk txhalfclk txqtrclk 16ビット・インターフェイス例 rxfullclk 1 rxhalfclk txfullclk txhalfclk txqtrclk 10xH 600 Mbps 10x 1.2 Gbps 20xH 1.2 Gbps 20x 2.4 Gbps 60 30 120 60 30 120 60 120 60 30 120 60 240 120 60 240 120 240 120 60 60 30 120 60 2, 3 30 120 60 120 60 30 120 60 240 120 60 240 120 240 120 60 1. CTC BYPASSモードでは、これら再生クロックはrxiclkのソースとして用いられます。図8-34/-36参照。 2, 陰影をつけられたセル中のクロックは、FPGAインターフェイス・クロックとして各モードで使用されます。 3. このモードが選択されるとき、コンフィグレーションGUIのOptional PortタブウィンドウでPLL Quarter Clockをチェックしなければなりません(図8-28を参照してください)。 フルデータレート・チャネルのVCOはビットクロックと同じです。ハーフデータレート・チャネルではビッ トクロックはVCOの半分です。 LatticeECP2M 8-15 SERDES/PCS-UGJ TN1124_2.9J Jan. 2009 LOS(信号の喪失) 各チャネルは図8-6で示されるようにプログラマブルなLOS(信号の喪失)検出器を含んでいます。LOS閾値は プログラマブル電流源の値に依存し、rlos_hset[2:0]制御ビットを用いて選ばれます。 LOL(ロックはずれ) 送信PLLと個別チャネルのCDRには、いづれもカウンタベースのデジタルLOL検出器があります。送信PLL のロックがはずれるとLOLがアサートされ、PLLが再ロックするまでそのままです。 CDRのロックがはずれると、そのチャネルのLOLがアサートされ、CDRのVCOを基準クロックにロックしよ うと試みます。これが達成されるとそのチャネルのLOLはネゲートされ、CDRは入力データにロックするた めに元に戻ります。CDRはデータにロックし続けるか、または再びロックはずれに戻り再トレーニングへと、 その繰り返しとなります。 図8-6 LOS検出器 注:rlos_lsel[2:0]制御ビットと関連するステータスビットはラティス社内のみでの用途です。 Txレーン間スキュー 制御ビットsync_toggleは、アクティブな全Txチャネルがbit0からパラシリ変換を始めるためのリセット用に 加えられました。ほとんどのマルチチャンネル・プロトコル規格では、ある規定値の中にTxレーン間スキュ ーが収まることを保証する要件があります。マルチチャンネル・アライメント(MCA)はLatticeECP2Mの ハードPCSではサポートされません。 Txシリアライザへのリセットはsync_toggle制御ビットをトグルするか、PLL LOLの遷移によって生成されま す。リセットはすべてのアクティブなTxシリアライザに適用されます。これらのソース信号が共にレベルで ある場合、Txシリアライザは通常動作しています。 LatticeECP2M 8-16 SERDES/PCS-UGJ TN1124_2.9J Jan. 2009 PCS機能のセットアップ LatticeECP2M PCSは様々なアプリケーションでの用途に構成することができます。セットアップは ispLEVER IPexpressモジュール生成ツールで選ばれ、ユーザはPCSのモードと機能オプションを選択できま す。選択オプションは自動構成(auto-configuration)ファイルの中に保存され、これはispLEVERビットストリ ーム・ジェネレータによって用いられてビットストリーム内に書き出されます。PCS選択オプションを変え るためには、ユーザはIPexpressを再実行してPCSモジュールを作り直し、新しい自動構成ファイルを作成 することを推奨します。ビットストリーム・ジェネレータを実行する前に、マニュアルで自動構成ファイル を編集することによって幾つかのオプションを変えることもできます。 コンフィグレーション後に、オプションのSERDESクライアント・インターフェイス(SCI)バスを通してPCS レジスタに書くことによって、動的にPCSオプションを変えることができます。SCIはソフトIPで、 SERDES/PCSクワッドがコンフィグレーション・メモリセルの設定と異なるレジスタ値によって制御される ことを可能にします。SCIを介してアクセスできる制御/ステータス・レジスタの一覧表を、このドキュメン トのメモリマップ章に示してあります。 自動構成(auto-configuration)ファイル ispLEVERの自動構成機能を用いることで、それぞれのPCSモードのための初期レジスタ設定を行うことが 可能です。モジュール・ジェネレータは、選ばれたモード用にクワッド/チャネルレジスタ設定の自動構成フ ァイル (<module名>.txt) を生成します。このファイルはフロントエンド・シミュレーションで参照すること ができ、またビットストリームに統合されます。すべてのクワッド/チャネルレジスタが、コンフィグレーシ ョンの際に自動構成ファイルで定義された値に設定されます。したがって全レジスタが自動構成ファイルで 設定されるのみで良ければ、SCIは不要です。他方、ユーザがデバイス動作中に制御レジスタの値を変える か、またはステータス・レジスタをモニタする必要がある場合は、デザイン内にSCIを含まなければなりま せん。 送信データ PCSクワッド送信データパスはチャネル単位での8b10bエンコーダとシリアライザから成ります。 8b10bエンコーダ このモジュールはIEEE 802.3ae-2002 1000BASE-X仕様の中で記述されている8b10bエンコーダを実装して います。エンコーダは仕様で説明されるように8ビットから10ビットコードへの変換を実行し、同時に規定 されているディスパリティ規則を維持します。CHx_8B10B(xはチャネル番号)の属性をBYPASSに設定す ることによって、8b10bエンコーダをバイパスすることができます。 シリアライザ 8b10b符号化されたデータはパラシリ変換され、組み込みSERDESを介してチップ外部に送信されます。 受信データ PCSクワッド受信データパスはチャネルごとに次のサブブロックからなります;デシリアライザ、ワードア ライナ、8b10bデコーダ、オプションのリンクステートマシン(LSM)、およびオプションの受信クロック トレランス補償(CTC)FIFO。 デシリアライザ データは組み込みSERDESを介してオンチップに取り込まれ、シリアルからパラレルになります。 ワードアライメント(バイト境界の検出) このモジュールはコンマ符号語の検出とアライメント動作を実行します。受信ロジックで入力されるデータ ストリームに10ビットのワードアライメントを実行するために、コンマキャラクタが用いられています。 LatticeECP2M 8-17 SERDES/PCS-UGJ TN1124_2.9J Jan. 2009 CHx_COMMA_ALIGN(xはチャネル番号)のアトリビュートをBYPASSに設定することによって、ワードアラ イナをバイパスすることができます。コンマ記述は802.3.2002 1000BASE-X仕様のセクション36.2.4.9と、 セクション48.2.6.3(10GBASE-X仕様の図48-7)にあります。 ワードアライメント・モジュール内で多くのプログラマブル・オプションがサポートされます: ・ソフトウェア・イネーブル制御(User Configured;UCモード) 注: UC_Modeは8-bit SERDES Only、10-bit SERDES Only、SD-SDI、HD-SDIを意図します。 ・2つのプログラマブル・ワードアライメント・キャラクタ(通常正と負のディスパリティのためにそれぞれ1 つ)を設定できる機能と、アライメント・コンペア(比較)のためのビット単位でプログラマブルなマスクレ ジスタ。アライメント・キャラクタとマスクレジスタはクワッド毎に設定されます。 多くのプロトコルにおいて、"XXX0000011" (正のランニング・ディスパリティ・コンマキャラクタでコード グループK28.1、K28.5、およびK28.7に適合するjhgfiedcbaビット)と "XXX1111100" (負のランニング・ディ スパリティ・コンマキャラクタでコードグループK28.1、K28.5、およびK28.7に適合するjhgfiedcbaビット) にワードアライメント・キャラクタを設定することができます。しかしながら、ユーザは最大10ビット長の どのようなビットパターンも定義することができます。 ・最初のアライメント・キャラクタは属性COMMA_Aに割り当てられた10ビットの値によって定義されます。 この値はPCSクワッドの全チャンネルに適用されます。 ・第二のアライメント・キャラクタは属性COMMA_Bに割り当てられた10ビットの値によって定義されます。 この値はPCSクワッドの全チャンネルに適用されます。 ・マスクレジスタは、どのワードアライメント・ビットを比較したらよいかを定義します(マスクレジスタで 1のビットは、ワードアライメント・キャラクタレジスタで対応するビットをチェックすることを意味しま す)。属性COMMA_Mに割り当てられた10ビットの値によって定義されたマスクレジスタ。この値はPCSク ワッドの全チャンネルに適用されます。 属性CHx_COMMA_ALIGNがAUTOに設定されると、プロトコルベースのリンクステートマシンの1つがワー ドアライメントを制御します。詳しい動作に関する情報は、後述のプロトコル特有のリンクステートマシン 記述を参照してください。 8b10bデコーダ 8b10bデコーダは、IEEE802.3-2002規格で記述されるようにデコーダ動作を実装しています。デコーダはラ ンニング・ディスパリティの検証と共に10ビットから8ビットコードへの変換を実行します。CHx_8B10B(x はチャネル番号)の属性をBYPASSに設定することによって、8b10bデコーダをバイパスすることができます。 コードバイオレーションが検出されると、ff_rxdata受信データは0xEEに、ff_rx_k_cntrl_chは1に設定されま す。 プロトコル特有のリンクステートマシン(LSM) PCSは様々なクワッドモードで用いられる種々プロトコルのためにLSMを実装しています。 プロトコル特有のLSMが選択されるとき、CH(0-3)_COMMA_ALIGNをAUTOに設定することによって、その チャネルのLSMをイネーブルしなければなりません。各モードでイネーブルされる特有LSMの選択は、以下 に記述され、また図8-7にまとめられています。 PROTOCOL属性がGIGEであるとき、ギガビット・イーサネット用のLSMが選択されます。リンク同期は、 アラインされたコードワード(符号語)が必要数連続して検出された後に達成されます。ギガビット・イーサ LatticeECP2M 8-18 SERDES/PCS-UGJ TN1124_2.9J Jan. 2009 ネットリンク同期ステートマシンは802.3-2002 1000BASE-X仕様の図36-9で示される同期ステート図を実 装します。 G8B10Bと10-bit SERDES Onlyプロトコルでは、COMMA_ALIGNがAUTOに設定されるとき、ギガビット・ イーサネット・リンクステートマシンが使用されます。 外部リンクステートマシンのオプション 属性CHx_COMMA_ALIGNがDYNAMICに設定されるとき、プロトコル特有のLSMはバイパスされます。そ の場合、ffc_enable_cgalign_ch(0-3)が少なくとも1クロック周期Lowにされた後、ワードアライナは比較が成 功した最初か第二のユーザ定義ワードアライメント・キャラクタのどちらかで、アライメントはロックしま す。(入って来るデータをユーザ定義のワードアライメント・キャラクタに比較するのをやめて、現在のア ライメントを維持します。)その後にFPGAインターフェイスのffc_enable_cgalign_ch(0-3)ポートに与えら れるLowパルスは、ワードアライナをアンロックします。そして、ワードアライナはユーザ定義のワードア ライメント・キャラクタの1つに次に一致した時に再ロックされます。望まれるなら、一定の条件下でのワ ー ド ア ラ イ メ ン ト の 変 化 を 許 容 す る た め に 、 PCS ク ワ ッ ド の 外 部 に 実 装 さ れ た LSM に よ り ffc_enable_cgalign_ch(0-3)を制御することができます。 図8-7はLSMオプションについて図示します。 図8-7 PCSワードアライナとLSMオプション 表8-7 リンクステートマシン(LSM)とワードアライナ(WA)の選択 COMMA 記 述 ALIGNモード AUTO WAがイネーブル、LSMがイネーブル(GbE LSM: デフォルト) WAがイネーブル、LSMはディセーブル。cg_alignとsig_detect信号は0に設定される。 DYNAMIC 潜在的に外部LSMが両信号を制御できる WAはバイパス、LSMはディセーブル。ユーザは、FPGAコアにワードアライナを設計 BYPASS し、ロジック内に自らのcg_alignとsig_detect信号を与えることもできる。 LSMが選択/イネーブルされたとき、リンク同期に成功すると、その特定チャネルに関するステータス信号 ffs_ls_sync_status(0-3)はHighになります。 LatticeECP2M 8-19 SERDES/PCS-UGJ TN1124_2.9J Jan. 2009 ギガビット・イーサネットモードのアイドル挿入 Generic 8b10bモードには、さらにワードアライメントのためにLSMを選択するオプションがあります。ギ ガビット・イーサネットモードに設定されたPCSは、自動ネゴシエーションのために、受信データストリー ムの中に /I2/ シンボル挿入を行います。ギガビット・イーサネットの自動ネゴシエーションはソフトロジッ クで実行されます。この機能は2048クロックサイクル毎に8つの /I2/ オーダーセット・シーケンスを挿入し ます。/I2/ 挿入は自動ネゴシエーション・ソフトロジックからドライブされるPCSへのff_xmit_ch(0-3)入力 で制御されます。また、PCSから自動ネゴシエーション・ソフトロジックまでの信号ff_rx_even_ch(0-3)[0] を提供します。図8-8はPCSがギガビット・イーサネットモードに設定されたときの、1チャネルの受信ロジ ックを示し(この例ではチャネル0)、これらの制御/ステータス信号を示しています。 図8-8 ギガビット・イーサネットモードのPCS受信パス(チャネル0の例) クロックトレランス補償(CTC) CTCは、受信再生クロックとロックする基準クロックの間のクロックレートの調整を実行します。クロック 補償は、パケットデータの損失を引き起こすことなく、事前に定められた位置でバイトを挿入するか、また は削除することによって実行されます。16バイトのエラスティックFIFOは、2つのクロックドメイン間のデ ータ転送に用いられ、LatticeECP2M SERDESのためにクロック偏差の規定ppm上限まで対応します。 (LatticeECP2/Mファミリデータシートの DCおよびスイッチング特性 セクションを参照して下さい。) 属性CHx_CTC_BYPがNORMALに設定されると、そのチャネルのCTCブロックはイネーブルされ、BYPASS に設定されるとバイパスされます。 1バイト削除について図8-9で示します。 LatticeECP2M 8-20 SERDES/PCS-UGJ TN1124_2.9J Jan. 2009 図8-9 クロックトレランス補償、1バイト削除の例 1バイト挿入について図8-10で示します。 図8-10 クロックトレランス補償、1バイト挿入の例 2バイト削除について図8-11で示します。 図8-11 クロックトレランス補償、2バイト削除の例 LatticeECP2M 8-21 SERDES/PCS-UGJ TN1124_2.9J Jan. 2009 2バイト挿入について図8-12で示します。 図8-12 クロックトレランス補償、2バイト挿入の例 4バイト削除について図8-13で示します。 図8-13 クロックトレランス補償、4バイト削除の例 4バイト挿入について図8-14で示します。 図8-14 クロックトレランス補償、4バイト挿入の例 クロック補償値はクワッドベースで設定されます。CHx_CTC_BYP(xはチャネル番号)の属性をBYPASSに設 定することによって、CTCをバイパスすることができます。CHx_CTC_BYPをNORMALに設定することは、 CTCがアクティブであることを意味します。ispLEVERモジュール・ジェネレータでは、チャネルをSingle と定義するとCTCをイネーブルする自動構成ファイルが作成されます。チャネルをMCA Group1かMCA Group 2と定義すると、CTCをバイパスする自動構成ファイルが作成されます。CTCが使用されるとき、意 LatticeECP2M 8-22 SERDES/PCS-UGJ TN1124_2.9J Jan. 2009 図されたアプリケーションのクロック補償のために、以下の設定を適切に設定しなければなりません。 ・CC_MATCHMODE属性を用いて、挿入/削除パターン長を設定します。これは挿入や削除を実行する前に CTCが比較しスキップするバイト数を設定します。CC_MATCHMODEの値は、MATCH_4 (1バイトの挿入 /削除)と、MATCH_3_4 (2バイトの挿入/削除)、及びMATCH_1_2_3_4 (4バイトの挿入/削除)です。また、 ターゲット・アプリケーションに適切な最小パケット間ギャップを設定しなければなりません。パケット 間ギャップは属性CC_MIN_IPGに値を割り当てることによって設定されます。CC_MIN_IPGの許容値は0、 1、2、および3です。これらの属性設定に基づいてスキップキャラクタ削除が実行された後の、許容される 最小パケット間ギャップは以下の表8-8で説明されています。 ・選ばれたCC_MATCHMODEに対応するように、スキップバイトかオーダーセットが設定されなければな りません。4バイトの挿入/削除(CC_MATCHMODE = MATCH_1_2_3_4)に関しては、属性MATCH_1を最 初のバイトに割り当て、属性MATCH_2に第二バイト、属性MATCH_3を第三バイト、そして属性MATCH_4 に第四バイトをそれぞれ割り当てなければなりません。割り当てられる値は2進の10ビット値です。例えば、 4 バ イ ト の ス キ ッ プ ・ オ ー ダ ー セ ッ ト が /K28.5/D21.4/D21.5/D21.5 で あ る 場 合 、 MATCH_1 は "0110111100”、 MATCH_2 = "0010010101"、そしてMATCH_3 = MATCH_4 = "0010110101" であるべき です。2バイトの挿入/削除 (CC_MATCHMODE = MATCH_3_4) に関しては、属性MATCH_3が最初のバイ トに割り当て、属性MATCH_4に第二バイトをそれぞれ割り当てなければなりません。1バイトの挿入/削除 (CC_MATCHMODE = MATCH_4)に関しては、属性MATCH_4が最初のバイトに割り当てられなければなり ません。 ・クロック補償FIFOにおいて、ターゲット・プロトコル用のHigh/Lowウォーターマーク(水位標)を設定し なければなりません。値は0∼15の範囲を取り得、HighウォーターマークをLowウォーターマークより高い 値に設定しなければなりません(等しい値に設定するべきではありません)。属性CCHMARKに値を割り当て ることによって、Highウォーターマークが設定されます。CCHMARKの許容値は16進値の0からFです。属 性CCLMARKに値を割り当てることによって、Lowウォーターマークが設定されますCCLMARKの許容値も 16進値の0からFです。 ・ispLEVERモジュール・ジェネレータでPCSブロックを生成するとき、Error Status Portsが選択されてい る 場 合 、 チ ャ ネ ル ご と の ク ロ ッ ク 補 償 FIFO オ ー バ ー ラ ン は 、 PCS/FPGA イ ン タ ー フ ェ イ ス で ffs_cc_overrun_ch(0-3)という名称のポートでモニタすることができます。 ・ispLEVERモジュール・ジェネレータでPCSブロックを生成するときError Status Portsが選択されている 場 合 、 チ ャ ネ ル ご と の ク ロ ッ ク 補 償 FIFO ア ン ダ ー ラ ン は 、 PCS/FPGA イ ン タ ー フ ェ イ ス で ffs_cc_underrun_ch(0-3)という名称のポートでモニタすることができます。 最小パケット間ギャップの計算 表8-8はパケット間ギャップ(CC_MIN_IPG属性で定義される)のユーザ定義の値と、PCSからのスキップ・キ ャラクタ削除後の保証されるパケット間最小バイト数との関係を示します。表は乗数としてパケット間ギャ ップを示します。パケット間の最小バイト数と、挿入/削除を表中で示された乗数倍されたバイト数は等しい です。例えば挿入/削除あたりのバイト数が4(CC_MATCHMODEはMATCH_1_2_3_4に設定される)で、かつ 最小パケット間ギャップの属性C_MIN_IPGが2の時、最小のパケット間ギャップは4 (CC_MATCHMODE = MATCH_1_2_3_4) 掛ける3 (表8-8のCC_MIN_IPG = 2)、即ち12バイトに等しくなります。最小のパケット 間バイト数がCTCを通り抜けるまで、PCSはスキップキャラクタの削除を実行しません。 LatticeECP2M 8-23 SERDES/PCS-UGJ TN1124_2.9J Jan. 2009 表8-8 最小パケット間ギャップの乗数 CC_MIN_IPG 0 1 2 3 挿入/削除の乗数 1X 2X 3X 4X クロックドメイン 図8-15は、PCS内でCTCブロックを利用するモードでの、単一チャネルの送受信両方向のクロックドメイン を示します。 送信側では、FPGAインターフェイスにおけるff_txiclk_ch入力からロックした基準クロックまでのクロック ドメイン転送は、FPGA送信インターフェイスFIFOで起こります。FPGA送信インターフェイスFIFOは、同 じ周波数である2クロック間の位相差を吸収する意図があります。これらのFIFO(1チャネルあたり1つ)は周 波数偏差を補うことはできません。 受信側のクロックドメイン転送は、チャネル再生クロックから基準クロック間のCTCブロックで起こります。 CTCは、LatticeECP2Mの最大許容値まで、再生受信クロックと基準クロックの周波数差を調節することがで きます。CTCの後、FPGA受信インターフェイスFIFOで、ロックされた基準クロックとff_rxiclk_chの間でク ロック・インターフェイスがあります。FPGA受信インターフェイスFIFOは、同一周波数の2クロック間の 位相差の調整をすることが目的です。FPGA受信インターフェイスFIFO(1チャネルあたり1つ)は、周波数偏 差を補うことはできません。 図8-15 CTCモードのPCSクロックドメイン転送 LatticeECP2M 8-24 SERDES/PCS-UGJ TN1124_2.9J Jan. 2009 図8-16 CTCを用いるPCSクワッドへの同期入力クロック 同期インターフェイスを保証するためには、送信クロック入力と受信クロック入力の両方が、Generic 8b10b モードに設定されたPCSクワッドの基準クロック出力の1つからドライブされるべきです。図8-16は同期イ ンターフェイスとなるような、取り得る接続について図示します。 図8-17は、PCS内でCTCブロックを利用しないモードでの、単一チャネルの送受信両方向のクロックドメイ ンを示します。送信側では、FPGAインターフェイスにおけるff_txiclk_ch入力からロックした基準クロック までのクロックドメイン転送は、FPGA送信インターフェイスFIFOで起こります。FPGA送信インターフェ イスFIFOは、同一周波数の2クロック間の位相差を調整することが目的です。これらのFIFO(1チャネルあた り1つ)は周波数偏差を補うことはできません。受信側のクロックドメイン転送は、FPGA受信インターフェ イスFIFOで受信再生クロックとff_rxiclk_chの間で起こります。FPGA受信インターフェイスFIFOは、同一周 波数の2クロック間の位相差を調整することが目的です。FPGA受信インターフェイスFIFO(1チャネルあたり 1つ)は周波数偏差を補うことはできません。 LatticeECP2M 8-25 SERDES/PCS-UGJ TN1124_2.9J Jan. 2009 図8-17 非CTCモードでのPCSクロックドメイン転送 同期インターフェイスを保証するためには、送信クロック入力と受信クロック入力の両方が、Generic 8b10b モードに設定されたPCSクワッドの基準クロック出力の1つからドライブされるべきです。図8-18は同期イ ンターフェイスとなる、取り得る接続について図示します。 LatticeECP2M 8-26 SERDES/PCS-UGJ TN1124_2.9J Jan. 2009 図8-18 CTCを用いないPCSクワッドへの同期入力クロック スペクトル拡散クロック(SSC)のサポート LatticeECP2M SERDES/PCSにはスペクトル拡散ジェネレータがありませんが、スペクトル拡散データを受 信することができます。 LatticeECP2MでのSSCサポートは同様の機能を必要とするすべてのプロトコルに適用されますが、リンク両 端のポートは互いに600ppm以内に収まるレートでデータを伝送しなければなりません。これはビットレー ト用クロックソースに+/- 300ppmの偏差を許容する仕様です。変調レート30KHzからの33KHzの範囲で、デ ータレートは定格の+0%から-0.5%まで変調ことができます。+/-300ppmの許容限界に加えて、データがSSC で変調されるとき、両ポートは同じビットレート・クロックを必要とします。 (PCI Expressでは)ルート・コンプレックスは基準クロックを拡散する責任があります。そしてエンドポ イントは、TXを通してスペクトルを戻すために、それと同じクロックを用います。したがって別の RXREFCLKは必要ありません。 この支配的なアプリケーションはアドインカードです。これは、PCI Expressコネクタのようにコネクタか らのREFCLKを用いる必要はありませんが、同じSSCで受信し、送信しなければなりません。 シリアル・デジタルビデオとOOB (帯域外) 低速SERDES動作 レシーバCDRと付随するSERDES/PCSロジックをバイパスすることによって、低速度(250Mbps未満、 Out-Of-Band=OOB信号)の入力にSERDES受信バッファを用いることができます。この機能はシリアル・デ ジタルビデオ用途など、高速データと低速データの両方からDCまでの伝送に、同一の端子で対応する必要が あるアプリケーションに有用です。 LatticeECP2M SERDES/PCS は 標 準 精 細 度 シ リ ア ル ・ デ ジ タ ル イ ン タ ー フ ェ イ ス SD-SDI(143Mbps 、 177Mbps、270Mbps、360Mbps)、および高精細度シリアル・デジタルインターフェイスHD-SDI(1.485Gbps LatticeECP2M 8-27 SERDES/PCS-UGJ TN1124_2.9J Jan. 2009 と1.4835Gbps)をサポートします。これらは送受信ピンを共用することが必要です。考えられる実装方法の1 つが図8-19で示されます。PCS/FPGAインターフェイスにおけるOOB信号ポートは、250Mbpsより低速の信 号を入力するのに用いられます。 SD-SDIモードが選択されると、このポートが利用できます。OOB_OUT信号は、SERDES入力バッファから FPGAインターフェイスまで直接通され、また基準クロックにはロックしません(図8-3を参照してください)。 低速信号でSERDES入力バッファをドライブするとき、SERDES入力バッファはDCモードに設定されるべ きです。これはIPexpress PCSコンフィグレーションGUIのRx I/O Couplingドロップダウン・ボックスにお いてDCを選択することによって、チャネル単位で行われます(図8-25を参照して下さい)。 以上はシリアル・デジタルビデオに関する議論ですが、FPGAロジックでRx CDR(クロックデータ・リカバ リ)を行い、Tx方向にデシメーションを必要とするような、低ビットレート・アプリケーションではいづれも 同様な使い方をすることが意図されていることに留意して下さい。 入力BSCAN回路は、高速SERDESと並列に見え、入力データをデバイスの(クワッドでない)ほかの場所に位 置する低速度デシリアライザに接続するために用いることができます。BSCANステートマシンに関与せずに 入力BSCAN回路(1チャネルあたり1つ)をオンするためのイネーブル信号が必要です。 図8-19 考えられるシリアル・デジタルビデオのサポート実装例 LatticeECP2M 8-28 SERDES/PCS-UGJ TN1124_2.9J Jan. 2009 コンフィグレーションGUI IPexpress™は、SERDESとPCSブロックを生成し、構成するために用いられます。設計者は、特定のクワ ッドやチャネルのSERDESプロトコル規格を選択する際に、GUIを用います。IPexpressはこのGUIから入力 を得て、自動構成ファイル(.txtファイル)とHDLネットリストを生成します。HDLモデルはシミュレーション と合成フローで用いられます。自動構成ファイルは属性レベルの配置情報を含んでいて、シミュレーション とispLEVER bitgen(ビットファイル生成)プログラムの入力となります。設計に変更やアップデートが生 じた場合は、IPexpressに戻って自動構成ファイルを生成し直すことを、強く推奨します。いくつかの例外時 に限って、ユーザは自動構成ファイルを変更しても構いません。SERDESプロトコル規格用にSERDES/PCS ブロックを生成するためIPexpressを用いるときのツールフローを、図8-20に示します。 プロジェクトが異なるディレクトリに保存されるとき、この自動構成ファイルもプロジェクトファイルと同 じディレクトリに手動で移動(又はコピー)する必要があります。 図8-20 SERDES_PCS ispLEVERユーザフロー 図8-21は、PCSがIPexpress GUIで選択された時のメインウィンドーを示します。 LatticeECP2M 8-29 SERDES/PCS-UGJ TN1124_2.9J Jan. 2009 図8-21 IPexpress PCSメインウィンドー クワッド・セットアップタブ 図8-22は、メインウィンドーでファイル名が入力され、Customizeボタンがチェックされた時のクワッド・ セットアップタブを示します。このウィンドウで必要な最初のエントリは、プロトコルモードをQuad Based ModeかChannel Based Modeから選択することです。このスクリーン上の他のエントリーは、チャネルの選 択とグループの選択です。図8-23から図8-28で示す5つのタブがあり、デフォルト値設定と共にユーザアク セス可能なすべての属性を示します。 図8-22 コンフィグレーションGUI、クワッド・セットアップタブ LatticeECP2M 8-30 SERDES/PCS-UGJ TN1124_2.9J Jan. 2009 表8-9 SERDES_PCS GUI属性 - クワッドタブ・セットアップ GUIテキスト 属性名 Protocol Setup Quad Protocol Mode PROTOCOL Single MCA Group1 3 MCA Group2 3 Disable Channel Rate 1 CH_MODE CH_MODE CH_MODE CH_MODE CH_MODE 範 囲 デフォルト値 Quad Based Protocol Mode, Quad Based Protocol Channel Based Protocol Mode Mode PCI Express, Gigabit Ethernet, Generic 8b10b, 10-bit SERDES Only, 8-bit SERDES Generic 8b10b Only, SD-SDI, HD-SDI 2 Disable チャネルをイネーブル Multi-Channel Alignment Group 1 Disable Multi-Channel Alignment Group 2 Disable Disable チャネルをディセーブル Full Rate, Half Rate Full Rate 1. Channel Rate選択はChannel Based Protocol Mode内のみに適用できます。 2. プロトコル属性名:PCI Express=PCIE、ギガビットイーサネット=GIGE、汎用8b10b=G8B10B、8ビット SERDES Only=8BSER、10ビットSERDES Only=10BSER、SD-SDI=SDSDI(HD-SDI=HDSDI)。 3. マルチチャネル・アライメント(MCA)は送信レーン間スキュー調整のためのものです。レシーバのMCA はハードPCSでは提供していません。MCA Group1とMCA Group2は、ユーザがFPGAコアでMCAを構築でき るように、チャネルをCTCバイパスモードに設定します。マルチプロトコル・アプリケーションで、チャネル の識別に2つのグループを指定できます。 基準クロック・セットアップタブ このタブでは、TxとRx基準クロックソースの属性を選択します。クワッドベースの場合、Rx基準クロック ソ ー ス と し て REFCLK か CORE_RXREFCLK の 選 択 、 Tx 基 準 ク ロ ッ ク ソ ー ス と し て REFCLK か CORE_TXREFCLKを選択できます。クワッドベースでは、TxとRx共に全チャネルが共通の基準クロックソ ースを用います。また、特定のデータレートに必要なクロックレートと乗数の設定を提供するツールがあり ます。選択したデータバス幅に対して、クワッドをコアとインターフェイスするために必要なクロックレー トを自動計算して表示します。 図8-23 コンフィグレーションGUI、基準クロック・セットアップタブ LatticeECP2M 8-31 SERDES/PCS-UGJ TN1124_2.9J Jan. 2009 表8-10 SERDES_PCS GUI属性(LatticeECP2M) - 基準クロック・セットアップタブ 属性名 GUIテキスト ボタン/ボッ クスタイプ 範 囲 デフォル ト値 Tx Reference Clock Source Selection PLL_SRC Radio REFCLK, REFCLK CORE_TXREFCLK Rx Reference Clock Source Selection CH0_CDR_SRC, CH1_CDR_SRC, CH2_CDR_SRC, CH3_CDR_SRC Radio REFCLK, REFCLK CORE_RXREFCLK Serial Bit Clock Rate (GHz) DATARANGE 1 Check Box 0.27 ∼ 3.125 2.5 Reference Clock Multiplier CH0_REFCK_MULT, CH1_REFCK_MULT, CH2_REFCK_MULT, CH3_REFCK_MULT Drop Down 表8-11参照 25X コメント LOW: MEDLOW: MED: MEDHIGH: HIGH Calculated Reference CP:REFCLK_RATE Text Box --編集不可 Clock Rate (MHz) 2 CH0_DATA_WIDTH, FPGA Interface Data CH1_DATA_WIDTH, Drop Down 8 表8-11参照 Bus Width CH2_DATA_WIDTH, CH3_DATA_WIDTH Calculated FPGA CP: Text Box --Interface Clock Rate 編集不可 FPGAINTCLK_RATE 2 (MHz) 1. DATARANGE; 量産用デバイス;Low ≦500Mbps, 500 Mbps < Medlow ≦1.0 Gbps, 1.0 Gbps < Med < 2.0 Gbps, 2.0 Gbps ≦Medhigh < 2.5 Gbps, 2.5 Gbps ≦High ≦3.2 Gbps エンジニアリング・サンプル;Low ≦540 Mbps, 540 Mbps < Medlow ≦1.0 Gbps, 1.0 Gbps < Med < 2.0 Gbps, 2.0 Gbps ≦Medhigh < 2.5 Gbps, 2.5 Gbps ≦High ≦3.2 Gbps 等価な制御レジスタとビットの詳細については表8-105を参照してください。 2. SERDES Only Modeは8ビットと10ビット共にリンク/コンマ・アラインと、8b10bエンコーダ/デコーダ、お よびCTCをバイパスしますが、CDRはバイパスしません。 表8-11 プロトコルごとの基準クロック乗数とFPGAインターフェイス・データバス幅 プロトコル PCI Express GbE G8B10B 10-bit SERDES Only 8-bit SERDES Only LatticeECP2M 基準クロック乗数 20X, 25X 10XH, 10X, 20X 10XH, 10X, 20X 10XH, 10X, 20X 8HX, 8X, 16X 8-32 FPGAインターフェイス・ データバス幅 8, 16 8, 16 8, 16 10, 20 8, 16 SERDES/PCS-UGJ TN1124_2.9J Jan. 2009 基準クロック・セットアップタブ(チャネルモード) このタブでは、選択されたTx基準クロックは全チャンネルに共通ですが、チャネルモードでのRx基準クロッ クは、チャネルごとにREFCLKかCORE_RXREFCLKのどちらかを選択できます。 図8-24 コンフィグレーションGUI - 基準クロック・セットアップタブ(チャネルモード) ユーザがQuadタブでChannel Based Protocol Modeを選択して、いづれかのチャネルをハーフレートモード として設定すると、このタブはハーフレートモード・クロックデータを表示します。 LatticeECP2M 8-33 SERDES/PCS-UGJ TN1124_2.9J Jan. 2009 SERDESアドバンスト・セットアップ このタブは、全4チャネル用のSERDESの送受信用アドバンスト属性にアクセスするために使用されます。 プリエンファシス、終端、差動出力電圧の選択などの送信用属性や、等化、終端、I/Oカップリングなどの受 信用属性が選択されます。また、SERDES送信クロックとPLLの属性も指定できます。 図8-25 コンフィグレーションGUI、SERDESアドバンスト・セットアップタブ LatticeECP2M 8-34 SERDES/PCS-UGJ TN1124_2.9J Jan. 2009 表8-12 SERDES_PCS GUI属性 (LatticeECP2M)、SERDESアドバンスト・セットアップタブ GUIテキスト 属性名 ボタン/ボ ックスタ イプ Differential LatticeECP2M-35 CH0_TDRV_AMP Output CH1_TDRV_AMP Voltage CH2_TDRV_AMP ( 差 動 出 力 その他の全デバイ CH3_TDRV_AMP 電圧振幅) ス Drop Down PreLatticeECP2M-35 Emphasis ( プ リ エ ン その他の全デバイ ファシス) ス Drop Down Tx I/O Termination (Ohms) 3 (送信I/O終端) Equalization 1 (等化) Rx I/O Termination (Ohms) 3 (受信I/O終端) Rx I/O Coupling (レシーバI/O結合) Loss of Signal Threshold (LOS検出閾値) Tx PLL Reference Clock I/O Termination (Ohms) 3 (送信PLL基準クロック入力の 終端) Tx PLL Reference Clock I/O Coupling (送信PLL基準クロック入力の 結合) PLL Loss of Lock (PLLロックはずれ検出) CH0_TX_PRE CH1_TX_PRE CH2_TX_PRE CH3_TX_PRE CH0_RTERM_TX CH1_RTERM_TX CH2_RTERM_TX CH3_RTERM_TX CH0_RX_EQ CH1_RX_EQ CH2_RX_EQ CH3_RX_EQ CH0_RTERM_RX CH1_RTERM_RX CH2_RTERM_RX CH3_RTERM_RX CH0_RX_DCC CH1_RX_DCC CH2_RX_DCC CH3_RX_DCC 範囲 デフォル PCI Express, G8B10B, 8bSER ト値 GIGE 10bSER 0(1040mV: default), 1(1280mV), 2 (1320mV), 3 (1360mV), 4 (640mV), 5 (760mV), 6 (870mV), 7 (990mV) 0 0(990mV: default), 1(1250mV), 2 (1300mV), 3 (1350mV), 4 (610mV), 5 (730mV), 6 (820mV), 7 (940mV) Disable, 0 (0%), 1 (16%), 2 (36%), 3 (40%), 4 (44%), 5 (56%), 6 (80%) DISABLE Disable, 0 (0%), 1 (12%), 2 (26%), 3 (30%), 4 (33%), 5 (40%), 6 (53%) Drop Down 50, 75, 5K Drop Down 50 Mid_Low, Mid_Med Mid_High, Long_Low Long_Med, Long_High Mid_High, Long_High DISABLE Drop Down 50, 60, 75, High 50 Drop Down AC, DC AC 2 LOS_THRESHOL D Drop Down 0 (default), 1 (+10%), 2 (+15%), 3 (+25%), 4 (-10%), 5 (-15%), 6 (-25%), 7 (-30%) 0 PLL_TERM Drop Down 50, 2K 50 PLL_DCC Drop Down AC, DC AC PLL_LOL_SET Drop Down Lock 0 (+/-600ppmx) 1 (+/-300ppm) 2 (+/-1500ppm) 3 (+/-4000ppm) Unlock 0 (+/-1200ppm) 1 (+/-2000ppm) 2 (+/-2200ppm) 3 (+/-6000ppm) 0 1. 詳細については付録Dを参照してください。 2. 内部のオンチップAC結合のコンデンサーTyp.値は5pFです。 3. 終端抵抗とその使い方 Rx I/O終端: LatticeECP2M 8-35 SERDES/PCS-UGJ TN1124_2.9J Jan. 2009 50: 現状ではSMTPE以外のプロトコルはすべて50Ω終端抵抗を用います。 60: 柔軟性の目的だけに提供します。 75: SMPTEは75Ω終端抵抗を用います。 High: PCI Expressのレシーバ検出用など。 Tx I/O終端: 50: 現状ではSMTPE以外のプロトコルはすべて50Ω終端抵抗を用います。 75: SMPTEは75Ω終端抵抗を用います。 5K: PCI Expressの電気的アイドルやレシーバ検出のような場合。 Tx PLL終端: 50: PCB上に50Ω終端抵抗がない場合 2k: PCB上に50Ω終端抵抗がない場合 高速I/O終端トポロジーを図8-26に示します。 図8-26 高速I/O終端 PCSアドバンスト・セットアップ このタブは、PCSの送受信全4チャネルのアドバンスト属性にアクセスするために使用されます。各TxとRx チャネルの極性や動作モード(例えば、8b10b)を個別に選択することができます。さらに、コンマ値やコンマ マスク、コンマアラインなどのワードアライメント指定や、CTCブロック用パラメータを設定するためにも 用いられます。 LatticeECP2M 8-36 SERDES/PCS-UGJ TN1124_2.9J Jan. 2009 図8-27 コンフィグレーションGUI - PCSのアドバンスト・セットアップタブ 表8-13 SERDES/PCS GUI 'Range' - PCSのアドバンスト・セットアップタブ GUIテキスト 属性名 TX Invert CHx_TX_SB RX Invert CHx_RX_SB RX_TX 8b10b CHx_8B10B Mode Plus Comma COMMA_A 4 Value Minus Comma COMMA_B 4 Value Comma Mask COMMA_M 10b 8b SERDES SERDES Only Only G8B10 PCI B Express GIGE SD-SDI HD-SDI Normal Normal Normal, Invert Bypass Normal Default Bypass Normal 1100000101 注1 N/A N/A 0011111010 1111111111 Auto, Auto, CHx_COMMA_A Bypass Dynamic, Dynami Auto LIGN Bypass c CTC 3 CHx_CTC_BYP Bypass Normal, Bypass Normal CC_MATCH1 CC_MATCH1 CC_MATCH2 CC_MATCH2 注3 CC_MATCH3 CC_MATCH3 CC_MATCH4 CC_MATCH4 CC_MATCH_M CC_MATCH_MO N/A MATCH_3_4 MATCH_4 ODE DE RX CTC Min IFG RX CTC Min IFG 0, 1, 2, 3 High Watermark CCHMARK 0, 1, 2, ..., 14, 15 Low Watermark CCLMARK Comma Align 2 Bypass Auto Bypass Normal 0000000000 0000000000 0100011100 0100011100 N/A MATCH_4 0 9 7 1. 詳細な情報はこのドキュメントの “ワードアラインメント” セクションを参照してください。 LatticeECP2M 8-37 SERDES/PCS-UGJ TN1124_2.9J Jan. 2009 2. 表8-7を参照してください。 3. 詳細な情報はこのドキュメントの “クロックトレランス補償” セクションを参照してください。 4. 定義上、COMMA_AとCOMM_Bは正と負のランニング・ディスパリティがある1組の8b10bコード化された 制御キャラクタです。例えば、一つのデザインでBC(K28.5)とFD(K29.7)をCOMMA_AとCOMM_Bとして用い ることはできません。8ビットモードと16ビットモードでのCOMM_AとCOMM_Bの使用法は全く同じです。 ユーザはls_syncを得るためには規則に従う必要があります。例えば、1GbEがIDLEとなる(ワードアライメン トと同期ステートマシン)にはK28.5+D5.6かD16.2が必要です。 オプションのセットアップ このタブは、チャネルあたりのダイナミック・ロジック反転とダイナミックな外部リンクステートマシン機 能を選択するのに用いられます。さらにユーザはSCI、エラーレポート、PLLの4分周クロック、およびルー プバック機能をイネーブルすることができます。 図8-28 コンフィグレーションGUI - オプションのセットアップタブ 表8-14 Tab5、SERDES_PCS GUI属性(LatticeECP2M) - オプションのセットアップタブ GUIテキスト 属性名 Dynamic Inversion of Receive Data External Link State Machine Loopback (Rx to Tx) 範囲 デフォル ト値 Check Box TRUE, FALSE FALSE Check Box Check Box OS_SSLB OS_SPLBPORTS OS_PCSLBPORTS Reference Clock to FPGA Core OS_REFCK2CORE PLL Quarter Clock OS_PLLQCLKPORTS SCI Loopback Type LatticeECP2M ボタン/ボッ クスタイプ 8-38 Radio Box Check Box Check Box Check Box TRUE, FALSE FALSE TRUE, FALSE FALSE Serial Loopback, SERDES Serial Parallel Loopback, PCS Loopback Parallel Loopback TRUE, FALSE FALSE TRUE, FALSE FALSE TRUE, FALSE FALSE SERDES/PCS-UGJ TN1124_2.9J SCI Interrupt Error Status Jan. 2009 OS_INT_ALL Check Box Check Box TRUE, FALSE TRUE, FALSE FALSE FALSE コンフィグレーション(自動構成)ファイル記述 IPexpressは属性レベルのマッピング情報を含むこのファイルを生成します。自動構成ファイルはファイルタ イプ拡張子として "txt" を用います。 以下にファイル例を示します。 # This file is used by the simulation model as well as the ispLEVER bitstream # generation process to automatically initialize the PCSC quad to the mode # selected in the IPexpress. This file is expected to be modified by the # end user to adjust the PCSC quad to the final design requirements. DEVICE_NAME "LFE2M35E" PROTOCOL "G8B10B" CH0_MODE "SINGLE" CH1_MODE "DISABLE" CH2_MODE "DISABLE" CH3_MODE "DISABLE" PLL_SRC "REFCLK" DATARANGE "HIGH" CH0_CDR_SRC "REFCLK" CH0_DATA_WIDTH "8" CH0_REFCK_MULT "10X" #REFCLK_RATE 250.0 #FPGAINTCLK_RATE 250.0 CH0_TDRV_AMP "0" CH0_TX_PRE "DISABLE" CH0_RTERM_TX "50" CH0_RX_EQ "DISABLE" CH0_RTERM_RX "50" CH0_RX_DCC "AC" LOS_THRESHOLD "0" PLL_TERM "50" PLL_DCC "AC" PLL_LOL_SET "0" CH0_TX_SB "NORMAL" CH0_RX_SB "NORMAL" CH0_8B10B "NORMAL" COMMA_A "1100000101" COMMA_B "0011111010" COMMA_M "1111111111" CH0_COMMA_ALIGN "AUTO" CH0_CTC_BYP "BYPASS" CC_MATCH1 "0000000000" CC_MATCH2 "0000000000" CC_MATCH3 "0100011100" CC_MATCH4 "0100011100" CC_MATCH_MODE "MATCH_4" CC_MIN_IPG "0" CCHMARK "4" CCLMARK "4" OS_REFCK2CORE "0" OS_PLLQCLKPORTS "0" モード特有の制御/ステータス信号 モードに依存する制御/ステータス信号名は、選択されたPCSモードで決定されます。表8-15は24ビット・デ LatticeECP2M 8-39 SERDES/PCS-UGJ TN1124_2.9J Jan. 2009 ータバスの使い方を説明します。表8-16はすべてのIPexpress GUIで選択可能なPCSモードの制御/ステータ ス信号のポート名を示します。 表8-15 データバスの用途 データバス I/O 信号名 送受信データバス; 8ビットバス ff_rxdata_ch0[7:0] O 受信データバス ff_rxdata_ch0[11:8] O 表8-16参照 ff_rxdata_ch0[23:12] O ff_txdata_ch0[7:0] I 送信データバス ff_txdata_ch0[11:8] I 表8-16参照 ff_txdata_ch0[23:12] I 送受信データバス; 16ビットバス ff_rxdata_ch0[7:0] O 受信データバス ff_rxdata_ch0[11:8] O ff_rxdata_ch0[19:12] O 受信データバス ff_rxdata_ch0[23:20] O ff_txdata_ch0[7:0] I 送信データバス ff_txdata_ch0[11:9] I ff_txdata_ch0[19:12] I 送信データバス ff_txdata_ch0[23:20] I 記 述 チャネルごと、FPGAへの8ビット受信並列データバス モード特有の受信ステータスビット 16ビットモード用予約 チャネルごと、FPGAからの8ビット送信並列データバス モード特有の送信制御ビット 16ビットモード用予約 チャネルごと、FPGAへの第一8bデータ用受信並列データバス モード特有の第一8bデータ用の受信ステータスビット チャネルごと、FPGAへの第二8bデータ用受信並列データバス モード特有の第二8bデータ用の受信ステータスビット チャネルごと、FPGAからの第一8bデータ用送信並列データバス モード特有の第一8bデータ用の送信制御ビット チャネルごと、FPGAからの第二8bデータ用送信並列データバス モード特有の第二8bデータ用の送信制御ビット 注: チャネル0を示します。他のすべてのチャネルが同様に割り当てられます。 表8-16 モード特有の制御/ステータス信号名 受信データステータス信号、8ビットバス モード GbE, OBSAI, CPRI FC, SRIO, G8B10B XAUI PCI Express ff_rxdata_ch0[8] ff_rx_k_cntrl_ch0 ff_rx_k_cntrl_ch0 ff_rxc_ch0 ff_rx_k_cntrl_ch0 ff_rxdata_ch0[9] ff_disp_err_ch0 ff_disp_err_ch0 ff_disp_err_ch0 ff_rxdata_ch0[10] ff_cv_ch0 ff_cv_ch0 ff_cv_ch0 ff_rxdata_ch0[11] ff_rx_even_ch0 NA NA ff_txdata_ch0[9] NA ff_force_disp_ch0 NA ff_force_disp_ch0 ff_force_disp_ch0 ff_txdata_ch0[10] ff_xmit_ch0 ff_disp_sel_ch0 NA ff_disp_sel_ch0 ff_disp_sel_ch0 ff_txdata_ch0[11] ff_correct_disp_ch0 NA NA ff_pci_ei_en_ch0 ff_correct_disp_ch0 送信データ制御信号、8ビットバス モード GbE, OBSAI, CPRI FC, SRIO XAUI PCI Express G8B10B ff_txdata_ch0[8] ff_tx_k_cntrl_ch0 ff_tx_k_cntrl_ch0 ff_txc_ch0 ff_tx_k_cntrl_ch0 ff_tx_k_cntrl_ch0 モード特有の制御/ステータス信号記述 表8-17はモード特有の制御/ステータス信号について説明します。 LatticeECP2M 8-40 SERDES/PCS-UGJ TN1124_2.9J Jan. 2009 表8-17 制御信号とそれらの機能 信号名 記 述 送信制御信号 ff_tx_k_cntrl_ch[3:0] チャネルごと、Highアクティブの制御キャラクタ・インジケータ。 ff_force_disp_ch[3:0] チャネルごと、Highアクティブの信号で、ff_disp_sel_ch(0-3)FPGAインターフ ェイス入力からのディスパリティ値を受け入れるようPCSに指示する。 ff_disp_sel_ch[3:0] チャネルごとで、ディスパリティ値はFPGAロジックから与えられる。 ff_force_disp_ch(0-3)がhighのときに有効。 ff_correct_disp_ch[3: パケット間ギャップが負のディスパリティ・ステートで始まることを保証するた 0] めに使用される。 受信ステータス信号 ff_rx_k_cntrl_ch[3:0] チャネルごと、Highアクティブの制御キャラクタ・インジケータ。 ff_disp_error_detect_ チャネルごと、PCSからドライブされるhighアクティブの信号で、関連するデー ch[3:0] タにディスパリティ・エラーが検出されたことを示す。 ff_cv_detect_ch[3:0] チャネルごと、Highアクティブのコードバイオレーション検出。 1. 詳細な情報はこのドキュメントの ”ギガビット・イーサネットモードのLatticeECP2M PCS” セクションを参 照してください。 Generic 8b10b(G8B10B)モードにおけるデータと制御/ステータスビットのマッピング例: 8-bit mode .FF_TX_D_0_0(ff_txdata_ch0[0]), .FF_TX_D_0_1(ff_txdata_ch0[1]), .FF_TX_D_0_2(ff_txdata_ch0[2]), .FF_TX_D_0_3(ff_txdata_ch0[3]), .FF_TX_D_0_4(ff_txdata_ch0[4]), .FF_TX_D_0_5(ff_txdata_ch0[5]), .FF_TX_D_0_6(ff_txdata_ch0[6]), .FF_TX_D_0_7(ff_txdata_ch0[7]), .FF_TX_D_0_8(ff_tx_k_cntrl_ch0[0]), .FF_TX_D_0_9(ff_force_disp_ch0[0]), .FF_TX_D_0_10(ff_disp_sel_ch0[0]), .FF_TX_D_0_11(ff_correct_disp_ch0[0]), .FF_TX_D_0_12(fpsc_vlo), .FF_TX_D_0_13(fpsc_vlo), .FF_TX_D_0_14(fpsc_vlo), .FF_TX_D_0_15(fpsc_vlo), .FF_TX_D_0_16(fpsc_vlo), .FF_TX_D_0_17(fpsc_vlo), .FF_TX_D_0_18(fpsc_vlo), .FF_TX_D_0_19(fpsc_vlo), .FF_TX_D_0_20(fpsc_vlo), .FF_TX_D_0_21(fpsc_vlo), .FF_TX_D_0_22(fpsc_vlo), .FF_TX_D_0_23(fpsc_vlo), .FF_RX_D_0_0(ff_rxdata_ch0[0]), .FF_RX_D_0_1(ff_rxdata_ch0[1]), .FF_RX_D_0_2(ff_rxdata_ch0[2]), .FF_RX_D_0_3(ff_rxdata_ch0[3]), .FF_RX_D_0_4(ff_rxdata_ch0[4]), .FF_RX_D_0_5(ff_rxdata_ch0[5]), .FF_RX_D_0_6(ff_rxdata_ch0[6]), .FF_RX_D_0_7(ff_rxdata_ch0[7]), .FF_RX_D_0_8(ff_rx_k_cntrl_ch0[0]), .FF_RX_D_0_9(ff_disp_err_ch0[0]), .FF_RX_D_0_10(ff_cv_ch0[0]), .FF_RX_D_0_11(fpsc_vlo),), .FF_RX_D_0_12(fpsc_vlo), .FF_RX_D_0_13(fpsc_vlo), .FF_RX_D_0_14(fpsc_vlo), .FF_RX_D_0_15(fpsc_vlo), LatticeECP2M 8-41 SERDES/PCS-UGJ TN1124_2.9J Jan. 2009 .FF_RX_D_0_16(fpsc_vlo), .FF_RX_D_0_17(fpsc_vlo), .FF_RX_D_0_18(fpsc_vlo), .FF_RX_D_0_19(fpsc_vlo), .FF_RX_D_0_20(fpsc_vlo), .FF_RX_D_0_21(fpsc_vlo),, .FF_RX_D_0_22(fpsc_vlo), .FF_RX_D_0_23(fpsc_vlo), 16-bit mode .FF_TX_D_0_0(ff_txdata_ch0[0]), .FF_TX_D_0_1(ff_txdata_ch0[1]), .FF_TX_D_0_2(ff_txdata_ch0[2]), .FF_TX_D_0_3(ff_txdata_ch0[3]), .FF_TX_D_0_4(ff_txdata_ch0[4]), .FF_TX_D_0_5(ff_txdata_ch0[5]), .FF_TX_D_0_6(ff_txdata_ch0[6]), .FF_TX_D_0_7(ff_txdata_ch0[7]), .FF_TX_D_0_8(ff_tx_k_cntrl_ch0[0]), .FF_TX_D_0_9(ff_force_disp_ch0[0]), .FF_TX_D_0_10(ff_disp_sel_ch0[0]), .FF_TX_D_0_11(ff_correct_disp_ch0[0]), .FF_TX_D_0_12(ff_txdata_ch0[8]), .FF_TX_D_0_13(ff_txdata_ch0[9]), .FF_TX_D_0_14(ff_txdata_ch0[10]), .FF_TX_D_0_15(ff_txdata_ch0[11]), .FF_TX_D_0_16(ff_txdata_ch0[12]), .FF_TX_D_0_17(ff_txdata_ch0[13]), .FF_TX_D_0_18(ff_txdata_ch0[14]), .FF_TX_D_0_19(ff_txdata_ch0[15]), .FF_TX_D_0_20(ff_tx_k_cntrl_ch0[1]), .FF_TX_D_0_21(ff_force_disp_ch0[1]), .FF_TX_D_0_22(ff_disp_sel_ch0[1]), .FF_TX_D_0_23(ff_correct_disp_ch0[1]), .FF_RX_D_0_0(ff_rxdata_ch0[0]), .FF_RX_D_0_1(ff_rxdata_ch0[1]), .FF_RX_D_0_2(ff_rxdata_ch0[2]), .FF_RX_D_0_3(ff_rxdata_ch0[3]), .FF_RX_D_0_4(ff_rxdata_ch0[4]), .FF_RX_D_0_5(ff_rxdata_ch0[5]), .FF_RX_D_0_6(ff_rxdata_ch0[6]), .FF_RX_D_0_7(ff_rxdata_ch0[7]), .FF_RX_D_0_8(ff_rx_k_cntrl_ch0[0]), .FF_RX_D_0_9(ff_disp_err_ch0[0]), .FF_RX_D_0_10(ff_cv_ch0[0]), .FF_RX_D_0_11(), .FF_RX_D_0_12(ff_rxdata_ch0[8]), .FF_RX_D_0_13(ff_rxdata_ch0[9]), .FF_RX_D_0_14(ff_rxdata_ch0[10]), .FF_RX_D_0_15(ff_rxdata_ch0[11]), .FF_RX_D_0_16(ff_rxdata_ch0[12]), .FF_RX_D_0_17(ff_rxdata_ch0[13]), .FF_RX_D_0_18(ff_rxdata_ch0[14]), .FF_RX_D_0_19(ff_rxdata_ch0[15]), .FF_RX_D_0_20(ff_rx_k_cntrl_ch0[1]), .FF_RX_D_0_21(ff_disp_err_ch0[1]), .FF_RX_D_0_22(ff_cv_ch0[1]), .FF_RX_D_0_23(), ギガビット・イーサネットモードのLatticeECP2M PCS ギガビット・イーサネット(1000BASE-X)のアイドル挿入 アイドルパターンの挿入がクロック補償と自動ネゴシエーションには必要です。自動ネゴシエーションは FPGAロジックで行われます。このモジュールは自動ネゴシエーションの間、自動的に /I2/ シンボルを受信 データストリームの中に挿入します。自動ネゴシエーション中、リンクパートナは連続して /C1/ と /C2/ の LatticeECP2M 8-42 SERDES/PCS-UGJ TN1124_2.9J Jan. 2009 オーダーセットを送信するでしょう。クロック補償回路はこれらのオーダーセットを削除せず、/I2/ オーダ ーセットのみを挿入するか、または削除するように構成されています。クロック補償回路におけるオーバー ランとアンダーランを防ぐため、挿入/削除する機会をクロック補償回路に与えるように定期的に /I2/ オー ダーセットを挿入しなければなりません。 自動ネゴシエーションを実行している間、このモジュールは2048クロックサイクル毎に8回の /I2/ オーダー セット(それぞれ2バイト)シーケンスを挿入します。このモジュールは8b10bデコーダの後にあるため、この 動作はどのようなランニング・ディスパリティ誤りを生起することはありません。GMIIインターフェイスは、 自動ネゴシエーションの間、RxステートマシンによってIDLEステートに置かれるので、/I2/ オーダーセット がFPGA受信インターフェイスに送られることはありません。自動ネゴシエーションがいったん完了すると、 受信データのいかなるエラーをも防ぐために、/I2/ 挿入はディセーブルされます。 このステートマシンは自動ネゴシエーションの間だけアクティブであることに留意してください。自動ネゴ シエーション・ステートマシンとGbE受信ステートマシンはソフトロジックで実装されています。GbE受信 ステートマシンは自動ネゴシエーション・ステートマシンからの(Txデータバス上の)信号ff_xmit_ch[3:0] に依存します。この信号は、特に自動ネゴシエーションの後は比較的スタティックです。GbE受信ステート マシンからは、FPGAロジック用のrx_even_ch[3:0]信号が受信データバス上に出力されます。 表8-18 主要なGbE IDLEステートマシン制御 / ステータス信号 モジュール信号 ff_xmit_ch[3:0] 方向 入力 rx_even_ch{3:0} 出力 記 述 FPGAロジックの自動ネゴシエーション・ステートマシンから rx_evenインジケータ入力(GbEリンクステートマシンから) rx_evenインジケータ出力(FPGAロジック内の自動ネゴシエーションと受信 ステートマシンへ) ギガビット・イーサネットのアイドル挿入とff_correct_disp_ch[3:0]信号の使い方 QuadPCSの送信側でff_correct_disp_ch[3:0]信号が用いられ、パケット間ギャップが負のディスパリティ状 態で始まることを確実にします。イーサネットフレームのサイズとデータ内容によって、その終わりではト ランスミッターのディスパリティ状態は正も負もあり得ることに留意してください。しかしながら、 QuadPCSのFPGAソフトロジック側からは、QuadPCSトランスミッターの現在のディスパリティ状態は未 知です。これはff_correct_disp_ch[3:0]信号が役割を果たすところです。パケット間ギャップに入るとき、 ff_correct_disp_ch[3:0]信号がクロックの1周期間アサートされると、現在のディスパリティが正である場合 は、QuadPCSトランスミッターに対して、送信データストリームにIDLE1オーダーセットを挿入するように 強制します。しかしながら、現在のディスパリティが負の場合、送信データストリームは何も変更されませ ん。 QuadPCSのFPGAソフトロジック側からは、パケット間ギャップは通常以下の通りIDLE2オーダーセットの 連続伝送で特徴付けられます。 ff_tx_k_cntrl_ch3:0=1、ff_txdata=0xBC、ff_tx_k_cntrl_ch3:0=0、ff_txdata=0x50 PCSチャネルでは、IDLE2は現在のディスパリティが保持されることに留意してください。IDLE1は、現在 のディスパリティ状態が反転されるべきであることを意味します。したがって、パケット間ギャップが負の ディスパリティ状態で始まることを確実にすることは有り得ます。パケット間ギャップ前のディスパリティ 状態が負であるなら、パケット間ギャップギャップの間、連続したIDLE2のストリームを送信します。パケ ット間ギャップ前のディスパリティ状態が正であるなら、単一IDLE1がIDLE2の連続ストリームの後に送信 されます。 QuadPCSのFPGAソフトロジック側では、パケット間ギャップは常にIDLE2と共にQuadPCSにドライブさ LatticeECP2M 8-43 SERDES/PCS-UGJ TN1124_2.9J Jan. 2009 れます。パケット間ギャップが最初に始まるとき、k_cntrl=0、data=0x50、そしてff_correct_disp_ch[3:0]信 号がクロックの1周期アサートされます。必要であれば、QuadPCSはこのIDLE2をIDLE1に変換します。パ ケ ッ ト 間 ギ ャ ッ プ の 残 り に お い て は 、 QuadPCS に は IDLE2 が ド ラ イ ブ さ れ る べ き で 、 そ し て ff_correct_disparity_chx信号はネゲートされたままです。 PCI ExpressモードのLatticeECP2M PCS IPexpressでPCI Expressモードに設定されたLatticeECP2Mクワッドには、仕様によって必要とされるレシー バ検出などの電気的機能をイネーブルするために、FPGAインターフェイスに追加ポートがあります。表8-19 はPCI Expressモードに特有のポートについて説明します。 表8-19 PCI Expressモード特有のポート 信 方向 クラス ffs_pcie_done_ch[3:0] O チャネル ffs_pcie_con_ch[3:0] O チャネル ffc_pcie_det_en_ch[3:0] I チャネル ffc_pcie_ct_ch[3:0] I チャネル ffc_ei_en_ch[3:0] I チャネル LatticeECP2M 号 記 述 1 = 遠端レシーバの検出完了 0 = 遠端レシーバ検出の結果が不成功(未完了) 1 = 遠端レシーバの検出 0 = 遠端レシーバの不検出 FPGAロジック(ユーザロジック)はPCI Expressレシーバ検出動作 の要求をSERDESブロックに通知する。 1 = PCI Expressレシーバ検出をイネーブル 0 = 通常動作 1 = トランスミッターに遠端レシーバ検出を要求 0 = 通常のデータ動作 SERDESトランスミッターから電気的アイドルの伝送を制御。 1 = 電気的アイドル状態を出力するようにSERDESトランスミッ ターを強制 0 = 通常動作 8-44 SERDES/PCS-UGJ TN1124_2.9J Jan. 2009 レシーバ検出 図8-29はレシーバ検出シーケンスを示します。 クワッドの各チャネルでレシーバ検出テストを独立して実行することができます。レシーバ検出テストを始 める前に、ff_pci_ei_en_ch入力をHighに設定することによって、トランスミッターを電気的アイドルにしな ければなりません。ffc_pci_det_en_chをHighにすることによって、tx_elec_idleがHighに設定された120ns後 にレシーバ検出テストを始めることができます。これはドライバ終端をハイインピーダンスに設定し、また ハイインピーダンス・ドライバ終端で差動の両出力をVCCOBにプルすることによって、対応するSERDES 送信バッファをレシーバ検出モードにします。 SERDES送信バッファをレシーバ検出ステートに設定するには最大120nsかかります。その後チャネルの ffc_pcie_ct_ch入力を4バイト(ワード)クロック周期間Highにドライブすることによって、レシーバ検出テ ストを開始することができます。対応するチャネルのffc_pcie_done_chは非同期にクリアされます。レシー バ検出テストが終わるのに十分な時間が経過した後(送信側の時定数で決まる)、ffs_pcie_done_chレシーバ 検出ステータスポートはHighになり、ffs_pcie_con_chポートでレシーバ検出ステータスをモニターすること ができます。その時ffs_pcie_con_chポートがHighであればレシーバはそのチャネルで検出され、ポートが Lowならそのチャネルでレシーバは全く検出されていません。レシーバ検出テストがいったん完全すると、 ff_pci_ei_en_chをネゲートすることができます。 図8-29 PCI Expressモード、レシーバ検出シーケンス(チャネル0の例) PCI Expressビーコンのサポート このセクションではLatticeECP2M PCSがビーコン検出と送信をどのようにサポートすることができるかを ハイライトします。PCI Expressのビーコン検出の要件は、PCSによるビーコン送信とビーコン検出のサポ ートで与えられます。 ・ビーコン検出要件 (PCI Express Base Specification, Rev 1.0a, Chapter 4, pp.209-210) - L2(P2)ステートから抜けるにはビーコンが必要です。 - ビーコンは周期的な任意データのDCバランスがとれている信号で、2ns(500Mhz)以上と16us(30Khz) 未満のいくつかのパルス幅を含む必要があります。 - パルス間の最大時間は16us未満でなければなりません。 - DCバランスは32us未満に回復される必要があります。 LatticeECP2M 8-45 SERDES/PCS-UGJ TN1124_2.9J Jan. 2009 - 500ns以上のパルス幅に関しては、出力ビーコン電圧レベルはVTX-DIFFp-p(800mVから1200mV)から6dB 低くなければなりません。 - 500ns以下のパルス幅に関しては、出力ビーコン電圧レベルはVTX-DIFFp-p以下で、かつ3.5dB低いレベル 以上でなければなりません。 ・PCSビーコン検出サポート - 信号ロス(LOS)閾値検出回路は、指定された電圧レベルが受信バッファに存在するかどうかを探知し ます。これはffs_rlos_lo_ch(0-3)信号によって示されます。 - PCI Express電気的アイドル検出と(パワーステートP2での)PCI Expressビーコン検出にこの設定を用 いることができます。 - リモート送信デバイスはVTX-DIFFppから6dB低いビーコン出力電圧(即ち201mV)を持つことができます。 この信号を検出することができれば、ビーコンが検出されたと言うことができます。 ・PCSビーコン送信のサポート - K28.5(IDLE)キャラクタ(5連続の1と続く5連続の0)を送出すると、2nsの周期的なパルス(1.0UI=400ps で、5倍すると2 ns)を発生することになります。これは下側の要件を満たします。このとき出力ビーコ ン電圧レベルはVTX-DIFFp-pであり得ます。これは有効なビーコン送信です。 PCSループバック・モード LatticeECP2Mファミリ・デバイスは3つのループバック・モードを提供し、PCS/FPGAロジック・インター フェイスの制御信号によって制御されます。これはSERDES外部/ボード・インターフェイスと内部 PCS/FPGAロジック・インターフェイスのテストに便利です。3つのループバック・モードは受信したデー タを送信データパスに戻すために用意されています。ループバック・モードは、組み込みSERDESやPCSロ ジックのチェックと共に、高速シリアルSERDESのパッケージピン接続をチェックする為に有用です。 シリアル・ループバック・モード シリアルの受信クロック/データを、CDRやデシリアライザを通さないで、送信バッファにループバックしま す。この機能はラティス社内でのテスト目的のために用意されていますが、ユーザも使用できます。 IPexpress GUIのシリアル・ループバック・オプションを選択すると、LB_CTL[3:0]のみが0010に設定されま す(表8-82を参照してください)。 また、TDRV_DAT_SEL[1:0]レジスタビットは、シリアル・ループバック・モードをイネーブルするために SCIを介して11に設定します。また、LB_CTL[3:0]レジスタビットもSCIを通してアクセスできます。 SERDESパラレル・ループバック・モード PCSロジックを通さないで、パラレル受信データを送信データパスにループバックします。各チャネル用に 適切なffc_sb_pfifo_lp_ch(0-3)を 1 に設定することによって、個別にSERDESパラレル・ループバックを選 択することができます。 PCSパラレル・ループバック・モード PCS/FPGAインターフェイス内を通さないで、パラレル受信データを送信データパスにループバックします。 SERDES HDINパッケージピンからのシリアルデータ入力は、SERDES受信ロジックを通り、パラレルデー タに変換され、PCS受信ロジックパス全体を通り、次いでPCS送信ロジックパス全体を通してループバック されます。その後SERDESトランスミッターによってシリアルデータに再変換され、HDOUT SERDESパッ ケージピンに送られます。各チャネル用に適切なffc_fb_loopback_ch(0-3)ポートを1に設定することによって、 LatticeECP2M 8-46 SERDES/PCS-UGJ TN1124_2.9J Jan. 2009 個別にPCSパラレル・ループバックを選択することができます 図8-30は単一チャネル用の3つのループバックモードを図示します。 図8-30 3つのループバック・モード 上述した2つのパラレル・ループバック・モードは、FPGAコアからの制御信号だけでなく制御レジスタビッ トでも設定できます。制御レジスタビットがループバック・モードに設定されるとき、データパスはFPGA コアからの制御信号でループバック・モードとノーマル・データフローを切り換えることができます。図8-31 はこのロジックについて説明します。詳細なレジスタ設定は表8-82と表8-83を参照してください。 図8-31 ループバック・イネーブル信号 LatticeECP2M 8-47 SERDES/PCS-UGJ TN1124_2.9J Jan. 2009 FPGAインターフェイス・クロックの使い方 図8-32は概念図で、PCSコアとFPGAブリッジの後半ステージと、PCSとFPGAの境界にまたがる主要なク ロックを示します。 図8-32 概念的なPCS/FPGAクロック・インターフェイス図 上図とこのセクションの各図中、接尾語 “i” がインデックス[0:3]、すなわち各チャネルの1つを示すことに留 意してください。 クロックが細くなったりグリッチが出ることを防ぐロジックは、クロック・マルチプレクサのいずれも持っ ていません。レジスタビットへのライトによってクロック・マルチプレクサへのセレクタのどれかが変更さ れた場合、そのマルチプレクスされたクロックによって動作するロジックをリセットすることはソフトウェ ア・エージェントの要件です。 PCSは15本のクロックを出力します。クワッドあたり3本の送信クロックと、4チャネル分で12本の受信クロ ックがあります。3本の送信クロックは、フルレート、ハーフレート、およびクオータレート・クロックで、 全てTx PLLから生成されます。フルレートとハーフレート送信クロックは、FPGA中央のクロック・マルチ プレクサへの専用配線で直接接続される必要があります。また受信チャネルにもそれぞれ3本のクロック(フ ル/ハーフ/クオータ・レート)があります。FPGAロジックに必要に応じてローカル(セカンダリ)かグローバル (プライマリ)クロックとして15本のクロックをすべて用いることができます。ギアリング(クワッドベースの みで選択可能)が2:1のモードであるとき、2分周クロックが使用されます。 送信クロックはアップサンプルFIFO(場合によっては位相シフトFIFO)のライトポートで用いられます。2本 の受信クロックの1つはダウンサンプルFIFOのリードクロックに接続されます。他方のクロックはエラステ ィック・バッファFIFOのリードポートと、(場合により)潜在的にダウンサンプルFIFOのライトポートのクロ LatticeECP2M 8-48 SERDES/PCS-UGJ TN1124_2.9J Jan. 2009 ックになります。 エラスティック・バッファとアップサンプルFIFOがバイパスされるかどうかと、8b10bモードか16b20bモー ドかによって、4つのケースが有り得ます。(図8-33∼36の各図で)アクティブなパスはハイライトされて います。また何本の、どのようなクロックツリーが必要であるかも示されています。一般的にユーザがより 好むいくつかのモードがあります。 このセクションはサポートされる4つの異なるケースの動作について、表8-20で概説しています。 表8-20 SERDES/PCSクワッドとFPGAコア間インターフェイスの6つのケース インターフェイス Case I-a 1 Case I-b 1 Case II-a 1 Case II-b 1 データ幅 Rx CTC FIFO 8b10b 8b10b 16b20b 16b20b Yes Bypass Yes Bypass Rx位相シフト/ダウン Tx位相シフト/アップサ サンプルFIFO ンプルFIFO Yes Yes Yes Yes Yes Yes Yes Yes 1. すべての場合でTx位相シフト(アップサンプル)FIFOはバイパスされません。SERDES/PCSブロック内部の データパス幅は8/10ビットであり、バイトクロックはSERDESラインレートの1/10で動作します。例えば SERDESラインレートが3.125Gbpsである場合、バイトクロックは312.5MHzです。 2対1ギアリング FPGAグローバル・クロックツリーの性能を保証するために、2.5Gbpsより速いSERDESラインレートでは 16/20ビットのインターフェイスを用いることを推奨します。このインターフェイスでは、FPGAインターフ ェイス・クロックはバイトクロック周波数の半分です。 バイトクロック周波数の半分で動作する16/20ビット幅インターフェイスはすべてのSERDESラインレート で用いることができますが、SREDESラインレートが低く(2.5Gbps以下)、許容することができる場合は8/10 ビット幅インターフェイスが好ましいでしょう。というのは、これがFPGAコア内のIPに最も効率的な実装 という結果をもたらすためです。 6つのインターフェイスケースを決定するためのマトリクスを表8-21で説明しています。 表8-21 6インターフェイス決定のためのマトリクス SERDESラインレ ート データパス幅 8/10ビット 2.5Gbpsかそれ以下 (1:1ギアリング) 3.2Gbpsかそれ以下 16/20ビット (2:1ギアリング) MCA必要性 CTC必要性 あり なし, シングルチャネル・リンク なし あり, バイパス必須(CTCなし) マルチチャネル・リンク あり なし, シングルチャネル・リンク なし あり, バイパス必須(CTCなし) マルチチャネル・リンク インターフェイ ス・ケース Case I_a 1 Case I_b 2 Case I_b 3 Case II_a 4 Case II_b 5 Case II_b 6 1. このケースは、クワッド内でCTCを必要とする2.5Gbpsかそれ以下のラインレート(8/10ビット幅インターフ ェイス)の単一チャネルリンクを意図します。相互に+/-300ppm以内にある基準クロックソースがリンクの両端 にあるときはCTCが必要です。コア内のIPがRx位相シフトFIFOを必要とするなら、Case I_aが使用されます。 コア内のIPがRx位相シフトFIFOを必要としないなら、Case I_bが使用されます。 LatticeECP2M 8-49 SERDES/PCS-UGJ TN1124_2.9J Jan. 2009 2. このケースは、クワッド内でCTCを必要としない2.5Gbpsかそれ以下のラインレート(8/10ビット幅インター フェイス)の単一チャネルリンクを意図します。リンクの両端が同じ基準クロックソースに接続されるとき、 CTCは不要です。しばしばこれは同一回路基板上のチップ間リンクにみられるケースです。基準クロック間は 0ppmの違いなのでCTCは不要で、バイパスすることができます。また、この機能がコア内のIPによって実行 されるとき、クワッドにCTCは不要です。 3. このケースは、クワッド内でCTCを必要とする2.5Gbpsかそれ以下のラインレート(8/10ビット幅インターフ ェイス)のマルチチャネル・リンクを意図します。マルチチャンネル・アライメント(MCA)はコア内のIPで対応 しなければなりませんが、クワッド内でMCAをしなければならないという規定はありません。CTCの前でMCA をしなければならないので、MCAが必要なときにはクワッド内のCTC FIFOをバイパスしなければなりません。 必要であればMCAとCTCの両方をコアのIPによって行われます。 4. このケースは、クワッドとFPGAコア間で2:1ギアリングが必要(16/20ビット幅インターフェイス)で、 3.2Gbpsかそれ以下のラインレートの単一チャネルリンクを意図します。CTCはクワッドに含まれています。 相互に+/-300ppm以内にある基準クロックソースがリンクの両端にあるときはCTCが必要です。 5. このケースは、クワッドとFPGAコア間で2:1ギアリングが必要(16/20ビット幅インターフェイス)で、 3.2Gbpsかそれ以下のラインレートの単一チャネルリンクを意図します。CTCはクワッドに含まれていません。 リンクの両端が同じ基準クロックソースに接続されるとき、CTCは不要です。しばしばこれは同一回路基板上 のチップ間リンクにみられます。基準クロック間は0ppmの違いなのでCTCは不要で、バイパスすることがで きます。また、この機能がコア内のIPによって実行されるとき、クワッドでCTCは不要です。 6. このケースはク、ワッドとFPGAコア間で2:1ギアリングが必要(16/20ビット幅インターフェイス)で、 3.2Gbpsかそれ以下のラインレートのマルチチャネル・リンクを意図します。MCAはコア内のIPで対応しなけ ればなりませんが、クワッド内でMCAをしなければならないという規定はありません。CTCの前でMCAをし なければならないので、MCAが必要なときにはクワッド内のCTC FIFOをバイパスしなければなりません。必 要であればMCAとCTCの両方をコアのIPによって行われます。 ケースI_a; 8/10ビット、Elastic Buffer(EB)、およびDown-Sample(DS) FIFOはバイパスしない 図8-33 8b10b、EB、およびDS FIFOはバイパスしない LatticeECP2M 8-50 SERDES/PCS-UGJ TN1124_2.9J Jan. 2009 1. アップサンプルFIFOはこの場合だけ位相シフトFIFOとして機能します。 2. ダウンサンプルFIFOはこの場合だけ位相シフトFIFOとして機能します。 3. Tx PLLからのクワッドレベル・フルレートクロック(ff_tx_f_clk)は、FPGA中央のクロック・マルチプレク サに直接アクセスできます。これは比較的性能の高いパスです。デバイス中央のクロック・マルチプレクサ からのグローバル・クロックツリーは、FPGA内のユーザのインタフェース・ロジックのクロックに用いられ ます。クロックツリーの幾つかのノードがFPGA送信入力クロック(ff_txi_clki)やCIBクロック入力を介してチ ャネル毎(ff_ebrd_clki)のエラスティック・バッファFIFO用リードクロックと、FPGA受信入力クロック (ff_rxi_clki) に接続されます。。これは恐らく最もよく見られる単一チャネルのユースケースです。 ケースI_b: 8/10ビット、EB FIFOはバイパス 図8-34 8b10b、EB FIFOはバイパス 1. アップサンプルFIFOはこの場合だけ位相シフトFIFOとして機能します。 2. ダウンサンプルFIFOはこの場合だけ位相シフトFIFOとして機能します。 3. 前の場合と同様にTx FPGAチャネル入力クロックは、FPGA中央のクロック・マルチプレクサへ直接接続 されるフルレート送信FPGA出力クロックでドライブされるクロックツリーを用います。エラスティック・バ ッファがいったんバイパスされると、再生受信クロックは、ダウンサンプルFIFOのライトポートを制御する 必要があります。各チャネルの再生受信クロックは、別々の(クワッドあたり最大4本の)ローカル或いはグロ ーバル・クロックツリーをドライブする必要があるかもしれません。そしてクロックツリーは、ダウンサンプ ルFIFOのリードポートを制御するようにFPGA受信クロック入力をドライブします。この場合エラスティッ ク・バッファFIFOをバイパスする理由は、たぶんFPGAコアでMCAを行うためです。それはエラスティック・ バッファを用いるCTCをFPGAコアで行うことを暗示します。CTC FIFOは受信再生クロックかマスター受信 再生クロックでライトすることができます。CTC FIFOのリードはTxクロックツリーを通してのTxクロックを LatticeECP2M 8-51 SERDES/PCS-UGJ TN1124_2.9J Jan. 2009 用いて行われます。 ケースII_a: 16/20ビット、EB、およびDS FIFOはバイパスしない 図8-35 16/20ビット、EB、およびDS FIFOはバイパスしない 1. アップサンプルFIFOはこの場合位相シフトFIFOおよびアップサンプルFIFOとして機能します。 2. ダウンサンプルFIFOはこの場合位相シフトFIFOおよびダウンサンプルFIFOとして機能します。 3. FPGAがフルレート・バイト周波数に動作が間に合わない場合、これは非常に一般的な単一チャネルのユー スケースです。2本のクロックツリーが必要です。これらのクロックツリーは、FPGA中央のクロック・マル チプレクサに直接アクセスする送信フルレート・クロック/ハーフレート・クロックでドライブされます。フ ルレート・クロックツリーは、エラスティック・バッファのリードポートと、ダウンサンプルFIFOのライト ポートをドライブします。ハーフレート・クロックツリーは、ダウンサンプルFIFOとFPGAロジックをドラ イブします。 LatticeECP2M 8-52 SERDES/PCS-UGJ TN1124_2.9J Jan. 2009 ケースII_b:16/20ビット、DSはバイパスしない 図8-36 16/20ビット、DS FIFOはバイパスしない 1. アップサンプルFIFOはこの場合位相シフトFIFOとアップサンプルFIFOとして機能します。 2. ダウンサンプルFIFOはこの場合位相シフトFIFOとダウンサンプルFIFOとして機能します。 3. FPGAの動作がフルレート・バイト周波数に間に合わない場合、これは非常に一般的なマルチチャネル・ア ライメント(MCA)のユースケースです。受信クロックツリー(最大4)は、ローカルかまたはグローバルで、 これらはハーフレートクロックで動作しています。送信クロックツリーは、FPGA中央のクロック・マルチプ レクサに直接アクセスする送信ハーフレートクロックでドライブされます。この場合、MCAが完了した後に、 FPGAロジックではCTCが必要でしょう。TxクロックツリーはCTCのリードポートを、マスターチャネル受 信クロックはCTCのライトポートをクロッキングします。このユースケースでは、MCAとCTCが共に16/20 ビット幅で行う必要性に留意してください。 LatticeECP2M 8-53 SERDES/PCS-UGJ TN1124_2.9J Jan. 2009 SERDES/PCSブロックのレイテンシ(遅延) 表8-22はトランスミッターとレシーバでそれぞれの機能ブロックの遅延について説明します。遅延はパラレ ルクロックのサイクル数で与えられています。図8-37はそれぞれのブロックの位置を示します。 表8-22 SERDES/PCS遅延の内訳(パラレル側クロック周期) 1 項目 記述 送信データ遅延 T1 FPGAブリッジ、送信 2 T2 8b10bエンコーダ T3 SERDESブリッジ、送信 シリアライザ、8ビットモード T4 3 シリアライザ、10ビットモード 受信データ遅延 シリアライザ、8ビットモード R1 3 シリアライザ、10ビットモード R2 SERDESブリッジ、受信 R3 ワードアライメント R4 8b10bデコーダ R5 クロックトレランス補償 R6 FPGAブリッジ、受信 2 Min. 平均 Max. Fixed Bypass 単位 1 ----- 3 ----- 5 ----- 2 2 15+Δ1 18+Δ1 1 1 1 --- word clk word clk word clk UI + ps UI + ps -----7 1 -----15 3 -----23 5 --1 0 1 1 1 UI + ps UI + ps UI + ps UI + ps UI + ps UI + ps UI + ps 10+Δ2 12+Δ2 2 4 1 1. PCS内部のパラレルクロック。このクロックレートは表8-6のrxfullclkと同じです。 2. FPGAブリッジの遅延はアップ/ダウン・サンプルFIFOのリード/ライトで変わります。これらの数は8/10ビ ット・インターフェイスで示されます。アップ/ダウン・サンプルFIFOの深さは4です。ダウンサンプルFIFO では、ライトクロック・サイクル(1クロック)後に、最初のリードが行われます。最後のリードはFIFOがフル (4+1 = 5)になった後に行われます。16b/20bインターフェイスでは、値は倍になります。Min = 2, Max = 10。 この遅延はFIFOの内部フラグ動作に依存します。 3. Δ1 = ~245ps、Δ2 = ~700ps 図8-37 トランスミッターとレシーバのブロック図 LatticeECP2M 8-54 SERDES/PCS-UGJ TN1124_2.9J Jan. 2009 SERDESクライアント・インターフェイス(SCI) SCIはFPGAコア内のソフトIPと、SERDES/PCSクワッドに含まれているハードロジックの両方から成りま す。SCIは、SERDES/PCSクワッドがコンフィグレーション・メモリセル設定ではなくレジスタによって制 御される事を可能する、簡易なレジスタ・コンフィグレーション・インターフェイスです。FPGAコアに置 かれるSCIのソフトIP部分のブロック図は図8-38で示され、必要な主要信号を全て示しています。 図8-38 SCIインターフェイス・ブロック図 FPGAコアに置くソフトIPは、そのインターフェイス規定に従ってユーザが開発します。サンプル記述につ いてはラティス・テクニカルサポート・グループにお問い合わせ下さい。 SCIADDRバスはブロック内では6ビット幅ですが、ブロック境界におけるバス幅は11ビットです。上位5ビ ットはクワッドブロックとチャネルの選択に用いられます。表8-23はSERDESクワッド用のSCIアドレスマ ップを示します。 表8-23 最大4つのSERDES/PCSクワッドのSCIアドレスマップ アドレスビット SCIADDR[5:0] LatticeECP2M 記 述 レジスタ・アドレスビット 000000 = register 0を選択 000001 = register 1を選択 … 111110 = register 62を選択 111111 = register 63を選択 8-55 SERDES/PCS-UGJ TN1124_2.9J Jan. 2009 SCIADDR[8:6] SCIADDR[10:9] チャネル・アドレスビット 000 = channel 0を選択 001 = channel 1を選択 010 = channel 2を選択 011 = channel 3を選択 100 = aux channelを選択 101 = 未使用 110 = 未使用 111 = 未使用 クワッド・アドレスビット 00 = quad 0を選択 01 = quad 1を選択 10 = quad 2を選択 11 = quad 3を選択 このインターフェイスを通してのリード/ライト動作は非同期です。ライトサイクル中、ライトデータとライ トアドレスは、SCIWSTNの立ち下がりエッジに対してセットアップ時間とホールド時間を満たす必要があ ります。リードサイクルでは、タイミングはSCIRDパルスに対して規定されます。図8-39と図8-40はそれぞ れライトとリードサイクルを示します。 図8-39 SCIライトサイクル、重要なタイミングの注意: 1) tsuはライトストローブの立ち下がりエッジの前のアドレスとライトデータのセットアップ時間 2) thはライトストローブの立ち下がりエッジの後のアドレスとライトデータのホールド時間 注: 制御レジスタに対する意図しない書き込みを避けるため、レジスタを用いて、パワーアップ・リセット 時にSCI入力ポートをLowにドライブするようにします。 LatticeECP2M 8-56 SERDES/PCS-UGJ TN1124_2.9J Jan. 2009 図8-40 SCIリードサイクル、重要なタイミングの注意3 1) trddvはリードパルスのアサートからリードデータが有効になるまでの時間 2) taddvはリードパルスのアサート中にアドレスが変更されてからデータが有効になるまでの時間 3) trddeはリードパルスのネゲートからリードデータが有効なホールド時間 表8-24 タイミングパラメータ パラメータ tsu, trddv, taddv Typical値 1.127 単位 ns 0.805 ns th, trdde SCIインターフェイスはメモリのリード/ライトと同じ程度に簡単です。これは擬似コードの例です: ライト Cycle 1 : Set sciaddr[5:0], sciwdata[7:0], scien* = 1'b1 scisel* = 1'b1 Cycle 2 : Set sciwstn from 0 => 1 Cycle 3 : Set sciwstn from 1 => 0, scien* = 1'b0, scisel* = 1'b0 リード Cycle 1 : Set sciaddr[5:0], scisel* = 1'b1 Cycle 2 : Set scird from 0 => 1 Cycle 3 : Obtain reading data from scirdata[7:0] Cycle 4 : Set scird from 1 => 0 注: ヒューズをロードするとき、scien*の全5ビットをゼロに設定しなければなりません。 割り込みとステータス ステータスビットはSCIを通して読み出せますが、SCIはバイト幅のため、一度に8つの割り込みステータス 信号を読む事ができます。SCIINT信号は割り込みイベントが起こったことを示すためHighになります。その 場合ユーザは、割り込みがクワッドからなのか、どれかのチャネルから来たのかを示すQIFステータス・レ ジスタをリードしなければなりません。このレジスタはリードではクリアされず、クワッドまたはチャネル からのすべての割り込みソースがクリアされることでクリアされます。 割り込みソースがいったん決定されると、ユーザは実際の割り込みソースを決定するために関連するクワッ ドかチャネルのレジスタを読むことができます。表8-25と表8-26は割り込みのすべてのソースを記載してい ます。 LatticeECP2M 8-57 SERDES/PCS-UGJ TN1124_2.9J Jan. 2009 表8-25 クワッド割り込みソース クワッド SCI_INTソース int_quad_out int_cha_out[0:3] 記 述 レジスタ名 クワッド割り込み。割り込みイベントがクワッドの 何処かであると、このレジスタビットはアクティブ PCS Quad Status Register 1 になります。すべての割り込みイベントがクリアさ れると、このレジスタビットはクリアされます。 チャネル割り込み。割り込みイベントがそれぞれの チャネルの何処かであると、このレジスタビットは アクティブになります。それぞれのチャネルにおけ PCS Quad Status Register 1 るすべての割り込みソースがクリアしてあるとき、 これらのレジスタビットはクリアされます ls_sync_statusn_[0:3]_int Link Status Low(同期はずれ)チャネル割り込み。 PCS Quad Status Register 3 ls_sync_status_[0:3]_int Link Status High(同期獲得)チャネル割り込み ~PLOLとPLOLで生成されるPLLロック外れ割り込 SERDES Quad Status Register ~PLOL, PLOL 2 み 表8-26 チャネル割り込みソース クワッド SCI_INTソース fb_tx_fifo_error_int fb_rx_fifo_error_int cc_overrun_int cc_underrun_int pci_det_done_int rlos_lo_int ~rlos_lo_int rlos_hi_int ~rlos_hi_int rlol_int ~rlol_int 記 述 FPGAブリッジ・アップサンプルTx FIFOエラー割り込み FPGAブリッジ・ダウンサンプルRx FIFOエラー割り込み CTC (エラスティック・バッファ) オーバラン割り込み CTC (エラスティック・バッファ) アンダーラン割り込み pci_det_done による割り込み rlos_lo による割り込み ~rlos_lo による割り込み rlos_hi による割り込み ~rlos_hi による割り込み rlol による割り込み ~rlol による割り込み レジスタ名 PCS Channel General Interrupt Status Register 4 SERDES Channel Interrupt Status Register 5 SERDESクライアント・インターフェイス (SCI) アプリケーションの例 例えば: ユーザは、Quad PCS制御レジスタser_ctl_3_qd_13のrefck_mode[1] (D7)とrefck_mode[0] (D6)ビットを変え ることによって、基準クロックてい倍モードを10xと20xの間で切り替えることができます。レジスタのSCI ア ド レ ス は 0x13 で ORCAstra ア ド レ ス は 0x113 で す 。 こ の 設 定 を 有 効 に す る た め に は 、 Quad Reset (QD_18[5])をトグルしなければなりません。 リード/ライト動作は2つの異なる方法で達成することができます。 1. メインウィンドーでは、ユーザは制御レジスタの内容を読み書きでき、ステータス・レジスタを読む ことができます。 2. サブウィンドウでは、ユーザは、ON/OFFオプションのプルダウンメニュー・オプションを選択する か、あるいはチェックするかチェックを外すことができます。 LatticeECP2M 8-58 SERDES/PCS-UGJ TN1124_2.9J Jan. 2009 表8-27 SCIアドレスマップ アドレスビット SCIADDR[5:0] SCIADDR[8:6] SCIADDR[10:9] 記 述 レジスタ・アドレスビット 000000 = register 0を選択 000001 = register 1を選択 … 111110 = register 62を選択 111111 = register 63を選択 チャネル・アドレスビット 000 = channel 0を選択 001 = channel 1を選択 010 = channel 2を選択 011 = channel 3を選択 100 = aux channelを選択 クワッド・アドレスビット 00 = quad 0を選択 01 = quad 1を選択 10 = quad 2を選択 11 = quad 3を選択 SERDES/PCSクワッドのダイナミック・コンフィグレーション SERDES/PCSクワッドは、コンフィグレーション・メモリセルかオプションのSCIを通してアクセスされる レジスタによって制御することができます。SCIはFPGAコア内のソフトIPとSERDES/PCSクワッドに含ま れているハードロジックの両方から成ります。ソフトIPがFPGAコアに存在する場合にのみSCIが利用できま す。 コンフィグレーション完了後、コンフィグレーション・メモリセルが自動的にレジスタにコピーされます。 レジスタ値のその後の変更は、もちろんSERDES/PCSクワッドの動作を変えますが、コンフィグレーショ ン・メモリセルに格納された値には影響しません。 コンフィグレーション・メモリセルによって制御される場合、コンフィグレーションが完了後に、ユーザか らの干渉なしにSERDES/PCSクワッドが機能状態に至る必要があります。これは、SERDES/PCSクワッド を初期化するために必要な、特別なリセットシーケンスは、自動的にハードウェアで扱わなければならない ことを意味します。言い換えると、SCIの使用はオプションのため、SERDES/PCSクワッドはソフトIPが FPGAコアに存在していると想定していません。 SERDESデバッグ機能 ラティスには、LatticeECP2MデバイスにおけるSERDES/PCS動作のデバッグを手助けするツールがありま す。 ラティスORCAstraソフトウェアはPCベースのGUIで、オンチップ・レジスタの制御ビットでLatticeECP2M デバイスの動作モードを構成・変更するためのツールです。これは、時間の掛かる再コンパイル・プロセス を実行したり、ボードの変更をすることなく、迅速に(最適な)コンフィグレーション・オプションを探る ことを助けます。GUIで作成されたコンフィグレーションは、PC上のメモリに保存して、後で使用する時に 再ロードすることができます。ORCAstraを用いるためには、ユーザロジックにSCI IPをインスタンスしなけ ればなりません(訳注;ispLEVER7.1SP1から、IPexpressでORCAstraモジュールのRTLを自動生成する機 能に対応しています)。 LatticeECP2M 8-59 SERDES/PCS-UGJ TN1124_2.9J Jan. 2009 スクリプトベースのコンフィグレーションとテストをサポートするために、マクロ機能も利用できます。ま た、リアルタイムでステータス情報を表示するためにGUIを用いることができます。ORCAstraソフトウェア の使用はFPGAのプログラミングを妨げません。 図8-41はORCAstra GUIトップレベル・ウィンドウで、各PCSチャネルのサブウィンドウを用いることなく、 ユーザはAdrsセルによってデータをリード/ライトすることができます(右下部)。呼び出されると、ORCAstra は自動的にデバイスタイプを認識します。または、デバイス・プルダウンメニューの下でデバイスタイプを 選択することもできます。 図8-41 ORCAstraトップレベル・スクリーンショット デフォルトで、図8-41で示すData Boxはリトルエンディアン(MSBが右)のビット順に従います。ユーザは、 Optionsタブの下のData BoxでDisplay Data reversedを選択することによって、ビッグエンディアンに変更す ることができます。 PCS0(Quad 0)ボタン上をダブルクリックすると図8-42で示されるようなメインウィンドーが開きます。 これらの標準ウィンドウメニューはデバイスとインターフェイスの選択を制御します。また、格納されたフ ァイルでコンフィグレーションをセットアップしたり、保存すること含む、様々なコンフィグレーション・ オプションをサポートします。 LatticeECP2M 8-60 SERDES/PCS-UGJ TN1124_2.9J Jan. 2009 図8-42 ORCAstraメインウィンドー コントロールボックス、ボタン、ステータスボックス、およびテキストウィンドウ コントロールボックスの上にカーソルを動かして、マウス左ボタンをクリックして、制御ビットを設定しま す。ともに、選択されたボックスのビット位置と機能は、テキストウィンドウに表示されます。これはデバ イス・データシートのレジスタマップ表と合致します。ビット名の上にカーソルがあるとき、機能だけを表 示します。ステータスボックスは、コントロールボックスと類似していますが、LED表示と色付きのバック グランドになっています。 図8-43はSERDES Buffer Optionsウィンドウを示します。プルダウンメニューからコンフィグレーション・ オプションを選択することができます。 図8-43 SERDES Buffer Optionsウィンドウ LatticeECP2M 8-61 SERDES/PCS-UGJ TN1124_2.9J Jan. 2009 以下のアドレスのラティスセミコンダクター・ウェブサイトにORCAstraの詳しい情報とダウンロードでき るファイルがあります;www.latticesemi.com/products/devtools/software/orcastra/index.cfm デザインに関する他の考察 LatticeECP2M-35対、他のLatticeECP2Mデバイス 重要な注意:LatticeECP2M-35の(.txtファイル内の)SERDES設定は、他の全LatticeECP2Mデバイスと異なっ ています。違いは.txtファイルの中に隠されているデフォルト設定を含んでいます。 LatticeECP2M-35から他のいづれかのLatticeECP2Mデバイスに移行する場合、ユーザはIPexpress GUIから PCSモジュールを再生成しなければなりません。 エンジニアリング・サンプル対量産デバイス エンジニアリング・サンプルと生産デバイスには、それぞれのシミュレーション・モデルとライブラリがあ ります。エンジニアリング・サンプルのライブラリ名はpcsc_mti_work_revA(訳註;これはModelSim用。 Active-HDL用はpcsc_aldec_work_revA)です。 SERDES/PCSのシミュレーション SERDES/PCSのシミュレーションは、プリコンパイルされたモデルによってModelSim®とNC-Verilog®用に 提供されます(訳註;Active-HDL用も提供)。プリコンパイルされたシミュレーション・モデルは、SERDES のビヘービアモデルとPCSのRTLです。表8-28はそれぞれのシミュレーション・モデルの場所を示します。 表8-28シミュレーションモデルの場所 シミュレータ モデルの場所 Cadence NC-Verilog/VHDL, NC-Sim, Synposys VCS, Mentor Graphics ispTools¥cae_library¥simulation¥blackbox ModelSim, Aldec Riviera Pro なお、配布されているモデルはzipファイルですので、使用する前に解凍する必要があります。 シミュレーション時のリセット方法 PCSリセット信号がいずれもGNDに接続されていない場合、設計者は同じリセット信号がFPGAコアで用い られているかどうか注意しなければなりません。例えば、リセット信号の1つがFPGAコアのカウンタとPCS の両方をリセットするのに用いられて、かつカウンタがtxfullclkを用いていると、カウンタは動作しないでし ょう。リセットがアクティブなときにtxfullckが動作していないので、カウンタはそれ自体をリセットするこ とができません。 基準クロックソースに依存して、リセットのアサート時間は異なり得ます。シミュレーション時にのみ、PCS リセット信号に最小100nsのアクティブ期間を用いることを推奨します。 16/20ビットのワードアライメント PCSレシーバは16ビットのワード境界を認識することができません。AUTOモードによるCOMMA_ALIGNと 共に、PCSはバイトアライメントのみ行うことができます。16ビット・ワードアライメントは、FPGAファ ブリックで行うべきで、これはかなり素直な処理です。以下で説明されるようなアライメント機構では、機 能アップすることもできます。 例えば、FPGAインターフェイスの前の送信データが、 YZABCDEFGHIJKLM.... (それぞれ8-bitか10-bitの文字) LatticeECP2M 8-62 SERDES/PCS-UGJ TN1124_2.9J Jan. 2009 そして、8b10bデコーダ後とrx_gearboxの前のPCSにおける入力データは: YZABCDEFGHIJKLM.... rx_gearboxの後、これは: 1. {ZY}{BA}{DC}{FE}{HG}{JI}{LK}.... または 2. {AZ}{CB}{ED}{GF}{IH}{KJ}{ML}... 明らかに、シーケンス2はアラインされていません。これは1バイトのオフセットがありますが、16/20ビッ トのアライメントが必要です。特殊文字Aは常に下位バイトに置かれるべきです。 20ビットデータを現在の16/20ビットデータに組み合わせるて32/40ビット・データを形成すると、以下に示 すようになります:16/20ビット・アライメント後の出力データは以下です。 1. {DCBA}{HGFE}{LKJI}.... ^ | **下位10-bit側にAを検出。オフセットを0に設定してアラインされたデータBAを送出。 次のクロック周期で; {FEDC}{JIHG}{NMLK}.... ^ | **アラインされたデータDCを送出 etc. 20ビット・アライメント後の出力データは以下です。 {ZY}{BA}{DC}{FE}{HG}{JI}{LK}.... 2. {CBAZ}{GFED}{KJIH}.... ^ | ** 上位10-bit側にAを検出。オフセットを10に設定してアラインされたデータBAを送出。 次のクロック周期で; {EDCB}{IHGF}{MLKJ}.... ^ | **アラインされたデータDCを送出。 etc. 20ビット・アライメント後の出力データは以下です。 {ZY}{BA}{DC}{FE}{HG}{JI}{LK}.... 注: 8/10ビットや16/20ビットワードのLSBが常に最初に送信され、最初に受信されます。 SCIを用いた10XH、10X、または20X基準クロックてい倍モードの切り替え 設計者はSCIを用いることで、基準クロックてい倍モードを10XHと、10X、または20Xの中から指定するこ とができます。これは、レシーバが受信信号にロックするように異るレートを試すようなシステムでは役に 立つ機能です。例えばシステムレートが622Mbps、1.244Gbps、2.488Gbpsを取り得る場合、それらを順次 切り替えることで、いづれかのてい倍モードで受信信号にロックすることができます。 異なるレートに関連するいくつかの制御レジスタビットがあります。 LatticeECP2M 8-63 SERDES/PCS-UGJ TN1124_2.9J Jan. 2009 CH_0A[D1]: rate_mode_tx CH_0B[D1]: rate_mode_rx QD_13[D6]: refclk_mode[0] QD_18[D5]: quad_rst 16ビットインターフェイスでの20Xと20XH、または10Xと10XHモード間の切り替え 上記制御レジスタの設定に加えて、送信インターフェイス・クロック(ffc_txiclk_chn)入力は表8-6にあるよう にtxhalfclkからtxqtrclkに切り替える必要があります。この場合ff_rxiclkは影響されません。CDR PLLは供給さ れるデータに自動的にチューニングされ、表8-6のような正しいrxhalfclkを供給します。 オフチップAC結合 チップ外部でAC結合が必要なとき、表8-29に推奨のコンデンサー値を示します。 表8-29 外付けAC結合コンデンサー値 プロトコル 8b10b PCI Express rev1.1 Min. 4.7 75 Typ. 10 Max. コメント @3.125Gbps 200 単位 nF nF 8b10b符号などDCバランスのとれているパターンが用いられるとき、エッジの劣化を防ぐために最小4.7nF のコンデンサーが必要です。より長いランレングスがあるパターンでは、データ依存のジッタを減らすため により大きいコンデンサ値が必要です。詳しい情報についてはラティステクニカルノートTN1114(Electrical Recommendations for Lattice SERDES)を参照してください。 未使用のクワッド/チャネルと供給電源 未使用のチャネルでもVCCTX、VCCRX、VCCP、およびVCCAUX33には電力が供給されなければなりませ ん。VCCIB、VCCOB、HDINP/N、HDOUTP/N、およびREFCLKP/Nはフローティングのままにすべきです。 未使用のチャネル出力はトライステートにされ、差動出力ペアの間の内部抵抗はおよそ10KΩです。 VCCAUX33は終端抵抗に電力を供給します。他の供給電源のようにπ型フィルタを用いることをお勧めしま す。VCCAUX33の雑音は直接高速I/OのHDIN/HDOUTと結合されるでしょう。VCCAUX(FPGAコア供給電源) が非常にきれいであれば、それをVCCAUX33に接続することができます。 また、未使用のSERDESはデフォルトでパワーダウン・モードにコンフィグレーションされます。 SERDES/PCSリセットのリセットシーケンス パワーアップとコンフィグレーションの後に、すべてのSERDESリセットとFPGAリセットが与えられます。 1. SERDESリセットシーケンス ・SERDESリセットシーケンスを開始として、quad_rstを最低20ns与えます。 ・quad_rstネゲートの後に、plolとrlol_ch#が非アクティブになるのを待ちます。 ・plolとrlol_ch#が非アクティブの後にlane_tx_rst_ch#とlane_rx_rst_ch#をネゲートします。 2. SERDES/PCSリセットのネゲート後にFPGA Logic Resetをネゲートします。 ・持続時間はプロトコルに依存するかもしれません。 3. デバッグだけに用いられる他のリセット; ・macro_rstは常時Lowに接続します。 ・trstとrrst_ch#は常時Lowに接続します。 リセットシーケンスは図で8-44で説明されています。 LatticeECP2M 8-64 SERDES/PCS-UGJ TN1124_2.9J Jan. 2009 図8-44 リセットシーケンス 注;ユーザのシステム環境によっては、CDRプロセス中にrlol_ch#信号はトグルする可能性があり、 CDRロック後に結果的にLowになります。 通常このプロセスは3ms程度かかります。4msカウンタを用いてquad_rstでカウント開始し rlol_ch#がLowからHighになる度にリセットするようにすることで、FPGAロッジで適切にロック検出 を検出するようにできます。 リセットシーケンス・モジュールの例はTN1153 (LatticeECP2M PRBS SERDES Demo User’s Guide) に記述されています。 リセットとパワーダウン制御 SERDESクワッドには図8-45で示されるように、マクロ全体のリセットとパワーダウン制御、及び各トラン スミッターとレシーバの個別リセットとパワーダウン制御があります。リセット信号はHighアクティブで、 パワーダウン信号はLowアクティブです。様々なリセットとパワーダウン制御の動作は以下のセクションで 説明されます。 注:デバイスがパワーアップ時にチップレベルのパワーオンリセットがアクティブであるとき、PCSの SERDES制御ビットはクリアされます(または、そのデフォルト値になります)。これはSERDESクワッドを パワーダウン状態にします。 LatticeECP2M 8-65 SERDES/PCS-UGJ TN1124_2.9J Jan. 2009 図8-45 SERDES/PCSクワッドリセットとパワーダウン制御 リセットの生成と分配は、クロックとリセットのブロックで扱われます。通常、すべてのリセットがハード リセットと様々なFPGAファブリック・リセットによります。リセットパルス幅は(RTL)ソースの記述により ます。しかしながら、少なくとも1クロック幅でなければなりません。リセットロジックは図8-46で示され、 そして表8-30は対応表です。 表8-30 SERDES/PCSリセット表 リセット信号 FPGA ffc_tx_lane_rst [3:0] ffc_rx_lane_rst [3:0] ffc_quad_rst ffc_macrorst ffc_rrst[3:0] ffc_trst[3:0] TRI_ION 制御レジスタ lane_tx_rst[3:0] PCS TX PCS RX CDR PLL X lane_rx_rst[3:0] quad_rst macrorst rrst[3:0] 3 trst[3:0] 3 SERDES SERDES PCS CTRL TX PLL TX RX レジスタ X X X X X X X X X X X X X X X X X X 1. SB(SERDES Brdige)、PCSコア、FB(FPGA Bridge)各サブブロックを含む 2. ラティスセミコンダクター社内用途のみ。本リセットは常時Lowに接続すること 3. TX PLL loss of lock(ffx_plol)のみをリセット LatticeECP2M 8-66 SERDES/PCS-UGJ TN1124_2.9J Jan. 2009 図8-46 SERDES/PCSリセット・ダイヤグラム 表8-31 リセット制御の記述 1, 2, 3 リセット信号 FPGA 制御レジスタ ffc_quad_rst quad_rst 記 述 Highアクティブの非同期入力。SERDESクワッドの補助(auxiliary)チャ ネルとPCSを含む全チャネルをリセット。本リセットはmacro_rst、txpll、 cdr、lane_tx_rst、lane_rx_rstを含む。 SERDESクワッドへのHighアクティブの非同期入力。ソフトウェア制 御ビットとゲートされる。本リセットはSERDESブロックのみに有効 で、TXPLLとCDRPLLも含まれる。 ffc_lane_tx/rx_rst_ch lane_tx/rx_rst_ Highアクティブの非同期入力。個々のTX/RXチャネルをリセットし、 [0:3] ch[0:3] SB、PCSコア、FB各ブロックに有効。 loss-of-lock(rlol)回路とloss-of-signal回路をリセット。 ffc_rrst_ch[0:3] rrst[0:3] AUX PLLのloss-of-lock(plol)をリセット。 ffc_trst trst ffc_macro_rst macro_rst 1. フルデータレート・モードで動作するクワッドの全チャンネルにとって、パラレル側クロックは同位相であ ることが保証されます。 2. ハーフデータレート・モードで動作するクワッドでは、各チャンネルには個別の2分周回路があります。ク ワッドにはmacrorstのネゲート後に、2分周回路が同位相にあることを保証するメカニズムが全くないので、 PCSデザインはこれらが(したがってパラレル側クロックも)同位相にないと想定するべきです。 3. ハーフデータレート・モードで、これはマルチチャンネル・リンクの送受信側でチャネル間スキューを与え るかもしれません。 LatticeECP2M 8-67 SERDES/PCS-UGJ TN1124_2.9J Jan. 2009 パワーダウン制御の記述 各RxとTxチャネルは、レジスタビットかFPGAからの制御信号で個別にパワーダウンが可能です。個別チャ ネルのパワーダウン制御ビットは、SERDESマクロ内の選択されたブロックと高速I/Oバッファのみをパワー ダウンします。 表8-32 パワーダウン制御の記述 信号 FPGA 記 レジスタ 述 SERDESクワッドへのLowアクティブの非同期入力で、補助チャネルを含 む全チャネルに有効。Lowにドライブされると、送信PLLを含むマクロ全体 macropdb をパワーダウンする。すべてのクロックが止められ、マクロの電力消費は 最少になる。 Lowアクティブで、各チャネル用のトランスミッタ・パワーダウン。シリア ffc_txpwdnb_ch[0:3] tpwdnb[0:3] ライザと出力ドライバのみをパワーダウン。本モードではHDOUTは5kΩの 抵抗で弱くプルアップされる。 Lowアクティブで、各チャネル用のレシーバ・パワーダウン。CDRと入力 ffc_rxpwdnb_ch[0:3] rpwdnb[0:3] バッファ(イコライザとデシリアライザ)、およびLoss-of-Signal検出器を パワーダウン。 表8-33 リセットパルス仕様 パラメータ tMACRORST tRRST tTRST 記 述 マクロリセットHigh時間 チャネルRXリセットHigh時間 クワッドTXリセットHigh時間 Min. 1 3 3 Typ. Max. 単位 ns ns ns Min. 20 20 Typ. Max. 単位 ns ns 表8-34 パワーダウン/パワーアップのタイミング仕様 パラメータ tPWRDN tPWRUP 記 述 macropdb後のパワーダウン時間 macropdb後のパワーアップ時間 供給電源のシーケンス要件 1.5VのVCCIBかVCCOBでSERDESを使用するとき、1.2V電源を供給しないでSERDESを1.5V電源を定常的 に供給するべきではありません。1.2Vと1.5V電源の両方が同時にSERDESに供給されなければなりません。 ただし供給電源と電圧レギュレータの、通常のランプアップ時の時間差は問題ではありません。 LatticeECP2M 8-68 SERDES/PCS-UGJ TN1124_2.9J Jan. 2009 参照ドキュメント • ラティスセミコンダクター・テクニカルノート – TN1029, FPSC SERDES CML Buffer Interface – TN1084, LatticeSC/M and LatticeECP2/M SERDES Jitter – TN1114, Electrical Recommendations for Lattice SERDES – TN1159, LatticeECP2/M Pin Assignment Recommendations • HB1003, LatticeECP2/M Family Handbook テクニカル・サポート支援 ホットライン: 1-800-LATTICE (North America) +1-503-268-8001 (Outside North America) [email protected] e-mail: インターネット: http://www.latticesemi.com 変更履歴(日本語版) Rev.# 2.6J0 2.8J0 2.9J 変更箇所 日本語初版。訳註;次の原文は日本語版には意図的に含めていない(ページ番号は原 文)。 ・SATAサポートに関する記述全般(オプションとしての説明を除く) ・p.8-13 プリエンファシスの記述 --・p.8-16 Txレーン間スキューの一部記述 ・p.8-27 OOB信号とSATAアプリケーション ・p.8-38 コンフィグレーション・ファイル記述 ・p.8-57 SERDES Client Interface アプリケーション例の前半 ・p.8-58 SERDES/PCSクワッドのダイナミック・コンフィグの第三パラグラフ ・SATA関連記述を削除(page.8-1, 表8-1, 表8-16, 表8-30) ・表8-5、信号追加(rx/tx_sdi_en)、脚注更新 Nov.2008 ・表8-23 Latency更新、表8-31/8-32 Reset Control更新、表8-33 Power Down更新 ・(p.8-65)クロックモード切替節記述追加 ・PCI PIPEモード関連記述を削除(表8-4 脚注3、表8-11 プロトコル、表8-12 最上 部モード、表8-16 受信・送信各モード、pp.8-45∼46 “PCS in PIPE Mode”節、表8-105 Feb.2009 プロトコル)。表8-20以降の番号を順次繰り上げ。 ・図8-44 の脚注、オリジナル復活(日本語版は対応済み) LatticeECP2M 日付 8-69 SERDES/PCS-UGJ TN1124_2.9J Jan. 2009 付録A.メモリマップ コンフィグレーション・レジスタ定義 特定のクワッドレベル・レジスタとチャネルレベル・レジスタがあります。各カテゴリに、SERDESに特有 のレジスタとPCSに特有のレジスタがあります。サブカテゴリ中には以下があります。 ・ ・ ・ ・ ・ ・ 制御レジスタ ステータス・レジスタ リードでクリアされるステータス・レジスタ 割り込み制御レジスタ 割り込みステータス・レジスタ 割り込みソースレジスタ(リードでクリア) 以下に示すすべてのレジスタビットは、D0がLSBです。 各レジスタがどのようなタイプかをそれぞれ以下の通り定義します(R/W = Read/Write, RO = Read Only, CR = Clear on a read;リードでクリア)。 これらのレジスタビットはそれぞれのコンフィグレーション・メモリセルがシャドーになっています。これ らのメモリセルはビットストリーム制御でのみプログラマブルです。コンフィグレーションが完了後、レジ スタに関連づけられたコンフィグレーション・メモリセルは自動的にレジスタにコピーされます。レジスタ に関する内容をその後に変更しても、コンフィグレーション・メモリセルに格納された値には影響しません が、SERDES/PCSクワッドの動作を変えます。 すべてのreserved(予約)ビットにはゼロが書かれます。 LatticeECP2M 8-70 SERDES/PCS-UGJ TN1124_2.9J Jan. 2009 クワッドごとのレジスタ概要 表8-35 クワッド・インターフェイス・レジスタマップ BA レジス 1 タ名 D7 D6 D5 D4 D3 D2 D1 D0 char_mode xge_mode rio_mode pcie_mode fc_mode uc_mode5 bist_res_sel[0] bist_time_sel[1] high_mark[0] low_mark[3] low_mark[2] 1. クワッド用の制御レジスタ (28) クワッド用のPCS制御レジスタ (17) 00 qd_00 01 bist_rpt_ch_sel[1] bist_rpt_ch_sel[0] bist_res_sel[1] qd_01 6 02 qd_02 03 qd_03 min_ipg_cnt[1] min_ipg_cnt[0] pfifo_clr_sel asyn_mode sel_test_clk 04 qd_04 cc_match_1[7] cc_match_1[6] cc_match_1[5] cc_match_1[4] cc_match_1[3] cc_match_1[2] cc_match_1[1] cc_match_1[0] 05 qd_05 cc_match_2[7] cc_match_2[6] cc_match_2[5] cc_match_2[4] cc_match_2[3] cc_match_2[2] cc_match_2[1] cc_match_2[0] 06 qd_06 cc_match_3[7] cc_match_3[6] cc_match_3[5] cc_match_3[4] cc_match_3[3] cc_match_3[2] cc_match_3[1] cc_match_3[0] 07 qd_07 cc_match_4[7] cc_match_4[6] cc_match_4[5] cc_match_4[4] cc_match_4[3] cc_match_4[2] cc_match_4[1] cc_match_4[0] 08 qd_08 cc_match_4[9] cc_match_4[8] cc_match_3[9] cc_match_3[8] cc_match_2[9] cc_match_2[8] cc_match_1[9] cc_match_1[8] 09 udf_comma_mas udf_comma_mas udf_comma_mas udf_comma_mas udf_comma_mas udf_comma_mas udf_comma_mas udf_comma_mas qd_09 k[7] k[6] k[5] k[4] k[3] k[2] k[1] k[0] 0A qd_0a udf_comma_a[7] udf_comma_a[6] udf_comma_a[5] udf_comma_a[4] udf_comma_a[3] udf_comma_a[2] udf_comma_a[1] udf_comma_a[0] 0B qd_0b udf_comma_b[7] udf_comma_b[6] udf_comma_b[5] udf_comma_b[4] udf_comma_b[3] udf_comma_b[2] udf_comma_b[1] udf_comma_b[0] 0C qd_0c udf_comma_a[9] udf_comma_a[8] udf_comma_b[9] udf_comma_b[8] 0D 0E 0F sync_toggle high_mark[3] bist_udf_def_hea qd_0d der[7] bist_udf_def_hea qd_0e der[15] qd_0f bist_bus8bit_sel qd_int_ ls_sync_status_3 10 2 _int_ctl 10 force_int high_mark[2] high_mark[1] match_4_enable match_2_enable udf_comma_mas k[9] bist_udf_def_hea bist_udf_def_hea bist_udf_def_hea bist_udf_def_hea der[6] der[5] der[4] der[3] bist_udf_def_hea bist_udf_def_hea bist_udf_def_hea bist_udf_def_hea der[14] der[13] der[12] der[11] bist_udf_def_hea bist_ptn_sel[2] bist_ptn_sel[1] bist_ptn_sel[0] der[19] ls_sync_status_2 ls_sync_status_1 ls_sync_status_0 ls_sync_statusn_ _int_ctl _int_ctl _int_ctl 3_int_ctl bist_time_sel[0] bist_head_sel[1] bist_head_sel[0] low_mark[1] low_mark[0] udf_comma_mas k[8] bist_udf_def_hea der[2] bist_udf_def_hea der[10] bist_udf_def_hea der[18] ls_sync_statusn_ 2_int_ctl bist_mode bist_en bist_udf_def_hea der[1] bist_udf_def_hea der[9] bist_udf_def_hea der[17] ls_sync_statusn_ 1_int_ctl bist_udf_def_hea der[0] bist_udf_def_hea der[8] bist_udf_def_hea der[16] ls_sync_statusn_ 0_int_ctl refck_out_sel[1] refck_out_sel[0] クワッド用のSERDES制御レジスタ (6) 11 qd_11 12 qd_12 13 qd_13 14 qd_14 15 qd_15 16 qd_int_ 16 2 reserved reserved tx_refck_sel refck_dcc_en refck_rterm refck_out_sel[2] refck25x bus8bit_sel rlos_hset[2] rlos_hset[1] rlos_hset[0] rlos_lset[2] rlos_lset[1] rlos_lset[0] refck_mode[1] refck_mode[0] reserved reserved reserved reserved cdr_lol_set[1] cdr_lol_set[0] reserved reserved reserved pll_lol_set[1] pll_lol_set[0] reserved reserved reserved reserved reserved reserved reserved reserved lol_int_ctl ~plol_int_ctl reserved reserved reserved reserved reserved reserved tx_vco_ck_div[2] tx_vco_ck_div[1] tx_vco_ck_div[0] クワッド用のクロックリセット・レジスタ (5) 17 qd_17 lane_rx_rst3 lane_rx_rst2 lane_rx_rst1 lane_rx_rst0 lane_tx_rst3 lane_tx_rst2 lane_tx_rst1 lane_tx_rst0 18 qd_18 macropdb macro_rst quad_rst trst rrst[3] rrst[2] rrst[1] rrst[0] sel_sd_rx_clk3 sel_sd_rx_clk2 sel_sd_rx_clk1 sel_sd_rx_clk0 bist_bypass_tx_ bist_sync_head_ bist_sync_head_ bist_rx_data_sel gate req[1] req[0] 19 qd_19 1A qd_1a ff_rx_clk_sel_2[3] ff_rx_clk_sel_2[2] ff_rx_clk_sel_2[1] ff_rx_clk_sel_2[0] ff_rx_clk_sel_1[3] ff_rx_clk_sel_1[2] ff_rx_clk_sel_1[1] ff_rx_clk_sel_1[0] 1B qd_1b ff_tx_clk_sel[2] ff_tx_clk_sel[1] ff_tx_clk_sel[0] reserved ff_rx_clk_sel_0[3] ff_rx_clk_sel_0[2] ff_rx_clk_sel_0[1] ff_rx_clk_sel_0[0] 2. クワッド用のステータスレジスタ (9) クワッド用のPCSステータスレジスタ (5) 20 qd_20 int_qua_out int_cha[3] int_cha[2] int_cha[1] int_cha[0] ls_sync_statusn_ ls_sync_statusn_ ls_sync_statusn_ ls_sync_statusn_ 21 qd_21 3 ls_sync_status_3 ls_sync_status_2 ls_sync_status_1 ls_sync_status_0 3 2 1 0 qd_int_ ls_sync_status_3 ls_sync_status_2 ls_sync_status_1 ls_sync_status_0 ls_sync_statusn_ ls_sync_statusn_ ls_sync_statusn_ ls_sync_statusn_ 22 _int _int _int _int 3_int 2_int 1_int 0_int 22 4 23 qd_23 bist_report[7] LatticeECP2M bist_report[6] bist_report[5] bist_report[4] 8-71 bist_report[3] bist_report[2] bist_report[1] bist_report[0] SERDES/PCS-UGJ TN1124_2.9J 24 qd_24 Jan. 2009 bist_report[15] bist_report[14] bist_report[13] bist_report[12] bist_report[11] bist_report[10] bist_report[9] bist_report[8] クワッド用のSERDESステータスレジスタ (4) 25 qd_25 3 plol ~plol reserved reserved reserved reserved reserved Reserved ~plol_int reserved reserved reserved reserved reserved Reserved 26 qd_int_ 26 4 plol_int 27 qd_27 reserved reserved 28 qd_28 reserved reserved pll_calib_status[5] pll_calib_status[4] pll_calib_status[3] pll_calib_status[2] pll_calib_status[1] pll_calib_status[0] reserved reserved reserved reserved reserved Reserved 1. BA=ベースアドレス(Hex) 2. 割り込み制御レジスタは、割り込み可能なステータス(int_sts_x)レジスタに関連します。 3. ステータス・レジスタは関連づけられる割り込み可能なステータス(int_sts_x)レジスタを持ちます。 4. 割り込み可能なステータス・レジスタ; リードでクリア(関連づけられる制御レジスタとステータス・レジス タがある) 5. uc_mode; 8ビットSERDES Onlyと10ビットSERDES Only 6. BISTはラティスセミコンダクター社内での使用のための内蔵のPRBSジェネレータとチェッカーです。 注: 特に明記しないかぎり、デフォルト値は0です。 LatticeECP2M 8-72 SERDES/PCS-UGJ TN1124_2.9J Jan. 2009 クワッド単位のSERDES制御レジスタの詳細 表8-36 PCS制御レジスタ1 (QD_00) 記 述 タイプ デフォルト 遷移 = Txレーン間スキューを最少化するためにTxシリアラ 7 sync_toggle イザをリセット レベル = Txシリアライザの通常動作 1 = 割り込み信号を強制的に生成する R/W 0 6 force_int 0 = 通常動作 1 = SERDES キャラクタライズ・モードをイネーブル R/W 0 5 char_mode 0 = SERDESキャラクタライズ・モードをディセーブル 1 = 10Gb Ethernetモードを選択 4 xge_mode R/W 0 0 = 1Gb Ethernetモードを選択 1 = Rapid-IOモードを選択 R/W 0 3 rio_mode 0 = その他モード(10GbE, 1GbE)を選択 1 = PCI Expressモードの動作 R/W 0 2 pcie_mode 0 = その他モード(RapidIO, 10GbE, 1GbE)を選択 1 = Fibre Channelモードを選択 R/W 0 1 fc_mode 0 = その他モード(PCI Express, RapidIO, 10GbE, 1GbE)を 選択 1 = User Configuredモードの選択 0 uc_mode 0 = その他モード(PCI Express, RapidIO, 10GbE, 1GbE)を 選択 注: 明示される場合を除いて、いづれかのSERDES制御レジスタにライトした後は、全チャネルをリセットし なければなりません。 Bit Name 表8-37 PCS制御レジスタ2 (QD_01) Bit Name 7:6 bist_rpt_ch_sel [1:0] 5:4 bist_res_sel [1:0] 3:2 bist_time_sel [1:0] 1:0 bist_head_sel [1:0] LatticeECP2M 記 述 00 = BISTレポート、チャネル0から 01 = BISTレポート、チャネル1から 10 = BISTレポート、チャネル2から 11 = BISTレポート、チャネル3から BIST resolution の選択 00 = エラーなし 01 < 2エラー 10 < 16エラー 11 < 128エラー BIST time の選択: 00 = 5e+8 サイクル 01 = 5e+9 サイクル 10 = 5e+6 サイクル 11 = 100K サイクル BIST header の選択 00 = K28_5 (K28_5=10'h305 K28_5_=10'h0FA) 01 = A1A2 (MA1=10'h1F6; MA2=10'h128) 10 = 10'h1BC 11 = ユーザ定義 8-73 タイプ デフォルト R/W 00 R/W 00 R/W 00 R/W 00 SERDES/PCS-UGJ TN1124_2.9J Jan. 2009 表8-38 PCS制御レジスタ3 (QD_02) Bit 7:4 3:0 Name 記 述 high_mark [3:0] クロック補償FIFO、high water mark。 平均は 4'b1000 low_mark [3:0] クロック補償FIFO、low water mark。 平均は 4'b1000 タイプ R/W R/W デフォルト タイプ R/W デフォルト R/W 0 R/W 1 R/W 0 R/W R/W 0 0 タイプ デフォルト R/W 8'h00 タイプ デフォルト R/W 8'h00 タイプ デフォルト R/W 8'hBC タイプ デフォルト R/W 8'h50 4'b0111 4'b1001 表8-39 PCS制御レジスタ4 (QD_03) Bit 7:6 Name min_ipg_cnt [1:0] 5 match_4_enable 4 match_2_enable 3 Reserved 2 pfifo_clr_sel 1 0 asyn_mode sel_test_clk 記 述 最少IPG to enforce 1 = 4キャラクのスキップマッチングをイネーブル (match 4, 3, 2, 1を使用) 1 = 2キャラクのスキップマッチングをイネーブル (match 4,3を使用) 1 = pfifo_clr信号、又はチャネルレジスタビットが FIFOをクリア 0 = pfifo_error内部信号が自らFIFOをクリア テスト用途のみ。非同期リセットを選択 テスト用途のみ。テストクロックを選択 2'b11 表8-40 PCS制御レジスタ5 – CC match1 LO (QD_04) Bit 7:0 Name 記 述 cc_match_1 ユーザ定義クロック補償のスキップパターン1、下位バイト [7:0] 表8-41 PCS制御レジスタ6 – CC match2 LO (QD_05) Bit 7:0 Name 記 述 cc_match_2 ユーザ定義クロック補償のスキップパターン2、下位バイト [7:0] 表8-42 PCS制御レジスタ7 – CC match3 LO (QD_06) Bit 7:0 Name 記 述 cc_match_3 ユーザ定義クロック補償のスキップパターン3、下位バイト [7:0] 表8-43 PCS制御レジスタ8 – CC match4 LO (QD_07) Bit 7:0 Name 記 述 cc_match_4 ユーザ定義クロック補償のスキップパターン4、下位バイト [7:0] LatticeECP2M 8-74 SERDES/PCS-UGJ TN1124_2.9J Jan. 2009 表8-44 PCS制御レジスタ9 – CC match HI (QD_08) Bit Name 7:6 cc_match_4 [9:8] 5:4 cc_match_3 [9:8] 3:2 cc_match_2 [9:8] 1:0 cc_match_1 [9:8] 記 述 タイプ デフォルト ユーザ定義クロック補償のスキップパターン4、上位バイト R/W 2'b01 [9] = ディスパリティエラーerror [8] = Kコントロール ユーザ定義クロック補償のスキップパターン3、上位バイト R/W 2'b01 [9] = ディスパリティエラーerror [8] = Kコントロール ユーザ定義クロック補償のスキップパターン2、上位バイト R/W 2'b00 [9] = ディスパリティエラーerror [8] = Kコントロール ユーザ定義クロック補償のスキップパターン1、上位バイト R/W 2'b00 [9] = ディスパリティエラーerror [8] = Kコントロール 表8-45 PCS制御レジスタ10 – UDF comma mask LO (QD_09) Bit 7:0 Name 記 述 udf_comma_mask [7:0] ユーザ定義コンママスク、下位バイト タイプ R/W デフォルト タイプ R/W デフォルト タイプ R/W デフォルト タイプ R/W R/W R/W デフォルト R/W 0 R/W 0 タイプ R/W デフォルト 8'hFF 表8-46 PCS制御レジスタ11 – UDF comma a LO (QD_0A) Bit 7:0 Name udf_comma_a [7:0] 記 述 ユーザ定義コンマキャラクタ "a"、下位バイト 8'h83 表8-47 PCS制御レジスタ12 – UDF comma b LO (QD_0B) Bit 7:0 Name udf_comma_b [7:0] 記 述 ユーザ定義コンマキャラクタ "b"、下位バイト 8'h7C 表8-48 PCS制御レジスタ13 – UDS comma HI (QD_0C) Bit 7:6 5:4 3:2 Name udf_comma_a [9:8] udf_comma_a [9:8] udf_comma_mask [9:8] 1 bist_mode 0 bist_en 記 述 ユーザ定義コンマキャラクタ "a"、上位ビット ユーザ定義コンマキャラクタ "b"、上位ビット ユーザ定義コンママスク、上位ビット 1 = 連続BISTモード 0 = "Timed BIST" モード 1 = PCS BISTをイネーブル 0 = 通常動作 2'b10 2'b01 2'b11 表8-49 PCS制御レジスタ14 – UDF BIST header LO (QD_0D) Bit 7:0 LatticeECP2M Name 記 述 bist_udf_def_header [7:0] ユーザ定義BISTヘッダの下位バイト 8-75 8'h00 SERDES/PCS-UGJ TN1124_2.9J Jan. 2009 表8-50 PCS制御レジスタ15 – UDF BIST header MD (QD_0E) Bit 7:0 Name 記 述 bist_udf_def_header [15:8] ユーザ定義BISTヘッダの中間バイト タイプ R/W デフォルト タイプ デフォルト R/W 0 R/W 00 R/W 3'b000 タイプ デフォルト R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 8'h00 表8-51 PCS制御レジスタ16 – UDF BIST headerHID (QD_0F) Bit Name 7 bist_bus8bit_sel 6:4 bist_ptn_sel[2:0] 3:0 bist_udf_def_header [19:16] 記 述 1 = 8ビットデータBIST 0 = 10ビットデータBIST R/W 0 BISTパターンの選択 000 = PRBS11 001 = 最大データレート 010 = PRBS31 011 = PRBS21100 = K28_5 101 = A1A2110 = 5150 (繰り返し) 111 = 2120 (繰り返し) ユーザ定義BISTヘッダの上位ビット 表8-52 PCS割り込み制御レジスタ17 (QD_10) Bit 7 6 5 Name ls_sync_status_ 3_int_ctl ls_sync_status_ 2_int_ctl ls_sync_status_ 1_int_ctl 4 ls_sync_statusn _3_int_ctl 3 ls_sync_status_ 0_int_ctl 2 ls_sync_statusn _2_int_ctl 1 ls_sync_statusn _1_int_ctl 0 ls_sync_statusn _0_int_ctl LatticeECP2M 記 述 1 = ls_sync_status_3 割り込みイネーブル(同期中) 0 = ls_sync_status_3 割り込みディセーブル(同期中) 1 = ls_sync_status_2 割り込みイネーブル(同期中) 0 = ls_sync_status_2 割り込みディセーブル(同期中) 1 = ls_sync_status_1 割り込みイネーブル(同期中) 0 = ls_sync_status_1 割り込みディセーブル(同期中) 1 = ls_sync_statusn_3 がLowになるときの割り込みイ ネーブル(同期外) 0 = ls_sync_statusn_3 がLowになるときの割り込みデ ィセーブル(同期外) 1 = ls_sync_status_0 割り込みイネーブル(同期中) 0 = ls_sync_status_0 割り込みディセーブル(同期中) 1 = ls_sync_statusn_2 がLowになるときの割り込みイ ネーブル(同期外) 0 = ls_sync_statusn_2 がLowになるときの割り込みデ ィセーブル(同期外) 1 = ls_sync_statusn_1 がLowになるときの割り込みイ ネーブル(同期外) 0 = ls_sync_statusn_1 がLowになるときの割り込みデ ィセーブル(同期外) 1 = ls_sync_statusn_0 がLowになるときの割り込みイ ネーブル(同期外) 0 = ls_sync_statusn_0 がLowになるときの割り込みデ ィセーブル(同期外) 8-76 SERDES/PCS-UGJ TN1124_2.9J Jan. 2009 クワッド単位のSERDES制御レジスタの詳細 注: 明示される場合を除いて、いづれかのSERDES制御レジスタにライトした後は、全チャネルをリセット しなければなりません。 表8-53 SERDES制御レジスタ1 (QD_11) Bit 7:6 Name Reserved 5 TX_REFCK_SEL 4 REFCK_DCC_EN 3 REFCK_RTERM 2:0 REFCL_OUT_SEL [2:0] 記 述 TXPLL 基準クロックの選択 0 = refclk (差動入力) 1 = core_txrefclk 1 = 基準クロックのDC結合をイネーブル 0 = 基準クロックのDC結合をディセーブル(デフォルト) 基準クロック入力バッファの終端 0 = 50Ω (デフォルト) 1 = ハイインピーダンス Refck制御 [0]: 0 = refckバッファのイネーブル、1 = ディセーブル [1]: 0 = refck2coreディセーブル、1 = イネーブル [2]: reserved 図8-47を参照 タイプ デフォルト R/W 0 R/W 0 R/W 0 R/W 3’b000 図8-47 基準クロックの選択制御 LatticeECP2M 8-77 SERDES/PCS-UGJ TN1124_2.9J Jan. 2009 表8-54 SERDES制御レジスタ2 (QD_12) Bit Name 7 REFCK25X 6 BUS8BIT_SEL 5:3 RLOS_HSET [2:0] 2:0 RLOS_LSET [2:0] 記 述 1 = 内部高速ビットクロックは25x (基準クロックは 100MHzのみ) 0 = REFCK_MODEを参照 1 = 8ビットバス幅を選択 0 = 10ビットバス幅を選択(デフォルト) LOS検出器の大振幅に対する基準電流の調整 000 = デフォルト 001 = +10% 010 = +15% 011 = +25% 100 = -10% 101 = -15% 110 = -25% 111 = -30% (ラティス社内用途のみ) タイプ デフォルト R/W 0 R/W 0 R/W 3'b000 R/W 3'b000 表8-55 SERDES制御レジスタ3 (QD_13) Bit Name 7:6 REFCK_MODE [1:0] 5:2 Reserved 記 述 00 = 内部高速ビットクロックは 20x か 16x 01 = 内部高速ビットクロックは 10x か 8x 1X = Reserved CDRロックはずれの設定 ロック アンロック 00 = +/-1000ppm x2 +/-1500ppm x2 CDR_LOL_SET [1:0] 1:0 01 = +/-2000ppm x2 +/-2500ppm x2 10 = +/-4000ppm +/-7000ppm 11 = +/-300ppm +/-450ppm 1. ispLEVER7.0SP1からのデフォルト値 タイプ デフォルト R/W 2’b00 R/W 2'b10 1 表8-56 SERDES制御レジスタ4 (QD_14) Bit 7:5 記 Name Reserved 4:3 PLL_LOL_SET [1:0] 2:0 TX_VCO_CK_DIV[2:0] LatticeECP2M 述 Tx PLLロックはずれの設定 ロック アンロック 00 = +/-300ppm x2 +/-600ppm x2 01 = +/-300ppm +/-2000ppm 10 = +/-1500ppm +/-2200ppm 11 = +/-4000ppm +/-6000ppm VCO出力周波数の選択 000 = 1 分周 001 = reserved 010 = 2 分周 011 = reserved 100 = 4 分周 101 = 8 分周 110 = 16 分周 111 = 32 分周 8-78 タイプ デフォルト R/W 2’b00 R/W 3’b000 SERDES/PCS-UGJ TN1124_2.9J Jan. 2009 表8-57 SERDES制御レジスタ5 (QD_15) タイプ デフォルト 記 述 タイプ 1 = PLOLのロックはずれ割り込みをイネーブル RO CR PLOL_INT_CTL 0 = PLOLのロックはずれ割り込みをイネーブルしない 1 = PLOLのロック時の割り込みをイネーブル ~PLOL_INT_CTL RO CR 0 = PLOLのロック時の割り込みをイネーブルしない Reserved デフォルト Bit 7:0 記 Name Reserved 述 表8-58 SERDES割り込み制御レジスタ6 (QD_16) Bit 7 6 5:0 Name 0 0 クワッド単位のリセットとクロック制御レジスタの詳細 表8-59 リセットとクロック制御レジスタ1 (QD_17) Bit 7 6 5 4 3 2 1 0 Name lane_rx_rst3 lane_rx_rst2 lane_rx_rst1 lane_rx_rst0 lane_tx_rst3 lane_tx_rst2 lane_tx_rst1 lane_tx_rst0 1= 1= 1= 1= 1= 1= 1= 1= チャネル3 チャネル2 チャネル1 チャネル0 チャネル3 チャネル2 チャネル1 チャネル0 記 述 受信ロジックへリセット信号をアサート 受信ロジックへリセット信号をアサート 受信ロジックへリセット信号をアサート 受信ロジックへリセット信号をアサート 送信ロジックへリセット信号をアサート 送信ロジックへリセット信号をアサート 送信ロジックへリセット信号をアサート 送信ロジックへリセット信号をアサート タイプ R/W R/W R/W R/W R/W R/W R/W R/W デフォルト タイプ R/W R/W R/W R/W R/W デフォルト 0 0 0 0 0 0 0 0 表8-60 リセットとクロック制御レジスタ2 (QD_18) Bit 7 6 5 4 3:0 LatticeECP2M Name macropdb macro_rst quad_rst trst rrst [3:0] 記 述 0 = パワーダウンをアサート 1 = マクロリセットをアサート 1 = クワッドリセットをアサート 1 = Txリセット 1 = Rxチャネルベースのリセット 8-79 1 0 0 0 0 SERDES/PCS-UGJ TN1124_2.9J Jan. 2009 表8-61 リセットとクロック制御レジスタ3 (QD_19) 記 述 0 = SERDESからのデータ bist_rx_data_sel 7 1 = 8b10bデコーダの後からのデータ bist_bypass_tx_ 0 = ヘッダ検出後にBISTデータ送出を開始 6 gate 1 = ヘッダ検出に係わらずBISTデータ強制送出を開始 BIST同期ヘッダカウンタの選択 bist_sync_head_ 00 = 5'd5 5:4 01 = 5'd8 req [1:0] 10 = 5'd14 11 = 5'd24 1 = DS FIFOライトクロックにrx_clk3 1 を選択 sel_sd_rx_clk3 3 0 = DS FIFOライトクロックにff_ebrd_clk_3を選択 1 = DS FIFOライトクロックにrx_clk2 1 を選択 sel_sd_rx_clk2 2 0 = DS FIFOライトクロックにff_ebrd_clk_2を選択 1 = DS FIFOライトクロックにrx_clk1 1 を選択 sel_sd_rx_clk1 1 0 = DS FIFOライトクロックにff_ebrd_clk_1を選択 1 = DS FIFOライトクロックにrx_clk0 1 を選択 sel_sd_rx_clk0 0 0 = DS FIFOライトクロックにff_ebrd_clk_0を選択 1. rx_clk3はチャネル3の再生クロック Bit Name タイプ デフォルト R/W 0 R/W 0 R/W 00 R/W 0 R/W 0 R/W 0 R/W 0 タイプ R/W R/W R/W R/W R/W R/W R/W R/W デフォルト タイプ R/W R/W R/W R/W R/W R/W R/W R/W デフォルト 表8-62 リセットとクロック制御レジスタ4 (QD_1A) Bit 7 6 5 4 3 2 1 0 Name ff_rx_clk_sel3_2 ff_rx_clk_sel2_2 ff_rx_clk_sel1_2 ff_rx_clk_sel0_2 ff_rx_clk_sel3_1 ff_rx_clk_sel2_1 ff_rx_clk_sel1_1 ff_rx_clk_sel0_1 1= 1= 1= 1= 1= 1= 1= 1= 記 述 チャネル3にff_rx_f_clkをディセーブル チャネル2にff_rx_f_clkをディセーブル チャネル1にff_rx_f_clkをディセーブル チャネル0にff_rx_f_clkをディセーブル チャネル3にff_rx_h_clkをイネーブル チャネル2にff_rx_h_clkをイネーブル チャネル1にff_rx_h_clkをイネーブル チャネル0にff_rx_h_clkをイネーブル 0 0 0 0 0 0 0 0 表8-63 リセットとクロック制御レジスタ5 (QD_1B) Bit 7 6 5 4 3 2 1 0 LatticeECP2M Name ff_tx_clk_sel2 ff_tx_clk_sel1 ff_tx_clk_sel0 Reserved ff_rx_clk_sel3_0 ff_rx_clk_sel3_0 ff_rx_clk_sel3_0 ff_rx_clk_sel3_0 記 述 1 = クワッドにff_tx_f_clkをディセーブル 1 = クワッドにff_tx_h_clkをイネーブル 1 = クワッドにff_tx_q_clkをイネーブル 1= 1= 1= 1= チャネル3にff_rx_q_clkをイネーブル チャネル2にff_rx_q_clkをイネーブル チャネル1にff_rx_q_clkをイネーブル チャネル0にff_rx_q_clkをイネーブル 8-80 0 0 0 0 0 0 0 0 SERDES/PCS-UGJ TN1124_2.9J Jan. 2009 クワッド単位のPCSステータス・レジスタ詳細 表8-64 PCSステータス・レジスタ1 (QD_20) Bit 7:6 5 4 3:0 Name Reserved ion_delay int_qua_out int_cha_out [3:0] 記 述 tri_ionからの遅延されたグローバルresetn クワッド単位の割り込みステータス チャネル単位の割り込みステータス タイプ Int? RO RO RO N N N 表8-65 PCSステータス・レジスタ2 (QD_21) Bit Name 7 ls_sync_status_3 6 ls_sync_status_2 5 ls_sync_status_1 4 ls_sync_status_0 3 Ls_sync_statusn_3 2 Ls_sync_statusn_2 1 Ls_sync_statusn_1 0 Ls_sync_statusn_0 記 述 タイプ Int? 1 = sync_status_3でアラームを生成 RO Y 0 = sync_status_3でアラームは生成しない 1 = sync_status_2でアラームを生成 RO Y 0 = sync_status_2でアラームは生成しない 1 = sync_status_1でアラームを生成 RO Y 0 = sync_status_1でアラームは生成しない 1 = sync_status_0でアラームを生成 RO Y 0 = sync_status_0でアラームは生成しない 1 = sync_status_3がLowに遷移する際にアラームを生成(同期外) RO Y 0 = sync_status_3がLowに遷移する際にアラームを生成しない(同期外) 1 = sync_status_2がLowに遷移する際にアラームを生成(同期外) RO Y 0 = sync_status_2がLowに遷移する際にアラームを生成しない(同期外) 1 = sync_status_1がLowに遷移する際にアラームを生成(同期外) RO Y 0 = sync_status_1がLowに遷移する際にアラームを生成しない(同期外) 1 = sync_status_0がLowに遷移する際にアラームを生成(同期外) RO Y 0 = sync_status_0がLowに遷移する際にアラームを生成しない(同期外) 表8-66 パケット割り込みステータス・レジスタ3 (QD_22) Bit 7 6 5 4 3 2 1 0 Name ls_sync_status_3_ int ls_sync_status_2_ int ls_sync_status_1_ int ls_sync_status_0_ int ls_sync_statusn_3 _int ls_sync_statusn_2 _int ls_sync_statusn_1 _int ls_sync_statusn_0 _int LatticeECP2M 記 述 1 = sync_status_3で割り込みを生成(同期中) 0 = sync_status_3で割り込みは生成しない(同期中) 1 = sync_status_2で割り込みを生成(同期中) 0 = sync_status_2で割り込みは生成しない(同期中) 1 = sync_status_1で割り込みを生成(同期中) 0 = sync_status_1で割り込みは生成しない(同期中) 1 = sync_status_0で割り込みを生成(同期中) 0 = sync_status_0で割り込みは生成しない(同期中) 1 = sync_status_3がLowに遷移する際に割り込みを生成(同期外) 0 = sync_status_3がLowに遷移する際に割り込みを生成しない(同期外) 1 = sync_status_2がLowに遷移する際に割り込みを生成(同期外) 0 = sync_status_2がLowに遷移する際に割り込みを生成しない(同期外) 1 = sync_status_1がLowに遷移する際に割り込みを生成(同期外) 0 = sync_status_1がLowに遷移する際に割り込みを生成しない(同期外) 1 = sync_status_0がLowに遷移する際に割り込みを生成(同期外) 0 = sync_status_0がLowに遷移する際に割り込みを生成しない(同期外) 8-81 タイプ Int? RO CR Y RO CR Y RO CR Y RO CR Y RO CR Y RO CR Y RO CR Y RO CR Y SERDES/PCS-UGJ TN1124_2.9J Jan. 2009 表8-67 PCS BISTステータス・レジスタ4 (QD_23) Bit 7:0 Name bist_report [7:0] 記 BISTレポート下位バイト 述 タイプ RO Int? タイプ RO Int? タイプ RO RO デフォルト タイプ デフォルト RO CR Y RO CR Y N 表8-68 PCS BISTステータス・レジスタ5 (QD_24) Bit 7:0 Name 記 bist_report [15:8] BISTレポート上位バイト 述 N クワッド単位のSERDESステータス・レジスタ詳細 表8-69 SERDESステータス・レジスタ1 (QD_25) Bit 7 6 5:0 Name PLOL ~PLOL Reserved 記 述 1 = PLLロックはずれ 1 = PLLロック獲得 Y Y 表8-70 SERDES割り込みステータス・レジスタ2 (QD_26) Bit Name 7 PLOL_INT 6 ~PLOL_INT 5:0 Reserved 記 述 1 = PLOLで割り込み生成 0 = PLOLで割り込み生成されない 1 = ~PLOLで割り込み生成 0 = ~PLOLで割り込み生成されない 表8-71 SERDESステータス・レジスタ3 (QD_27) Bit 7:6 5:0 Name 記 述 タイプ Reserved PLL_CALIB_STATUS RO TxPLL VCO キャリブレーション・ステータス出力 [5:0] デフォルト N 表8-72 SERDESステータス・レジスタ4 (QD_28) Bit 7:0 LatticeECP2M Name Reserved 記 8-82 述 タイプ デフォルト SERDES/PCS-UGJ TN1124_2.9J Jan. 2009 チャネル単位のレジスタ概要 表8-73 チャンネル・インタフェースのレジスタマップ BA レジス 1 タ名 D7 D6 D5 D4 D3 D2 D1 D0 invert_tx invert_rx rx_ch tx_ch 1. 制御レジスタ (13) チャネル単位の制御レジスタ (7) 00 ch_00 enable_cg_align prbs_enable 6 prbs_lock ge_an_enable 01 ch_01 pfifo_clr pcie_ei_en pcs_det_time_ sel[1] pcs_det_time_ sel[0] rx_gear_mode 02 03 ch_02 bus_width8 sb_bypass sb_pfifo_lp sb_bist_sel enc_bypass ch_03 lsm_sel signal_detect rx_gear_bypass ctc_bypass 04 05 06 ch_int_ 04 2 dec_bypass tx_gear_mode sel_bist_txd4enc tx_gear_bypass wa_bypass rx_sb_bypass fb_loopback sb_loopback cc_underrun_int cc_overrun_int_ fb_rx_fifo_error_ fb_tx_fifo_error_ _ctl ctl int_ctl int_ctl ch_05 los_hi_sel ch_06 チャネル単位のSERDESレジスタ (6) rx_dco_ck_div [2] rx_dco_ck_div [1] rx_dco_ck_div [0] 07 ch_07 08 09 0A 0B ch_08 lb_ctl[3] lb_ctl[2] l b_ctl[1] lb_ctl[0] rterm_rxadj[1] rterm_rxadj[0] rterm_rx[1] rterm_rx[0] ch_09 tdrv_amp[2] tdrv_amp[1] tdrv_amp[0] tdrv_pre_set[2] tdrv_pre_set[1] tdrv_pre_set[0] tdrv_dat_sel[1] tdrv_dat_sel[0] 0C req_en req_lvl_set rcv_dcc_en rate_sel[1] rate_sel[0] ch_0a tdrv_pre_en rterm_tx[1] rterm_tx[0] rate_mode_tx tpwdnb ch_0b oob_en rx_refck_sel[1] rx_refck_sel[0] rate_mode_rx rpwdnb ~rlos_lo_int_ctl rlos_hi_int_ctl ~rlos_hi_int_ctl rlol_int_ctl ~rlol_int_ctl cc_underrun cc_overrun fb_rx_fifo_error fb_tx_fifo_error prbs_error_cnt [3] prbs_error_cnt [2] prbs_error_cnt [1] prbs_error_cnt [0] cc_underrun_int cc_overrun_int ch_int_ 0c 2 pci_det_done_ int_ctl rlos_lo_int_ctl 2. ステータス・レジスタ (13) チャネル単位の汎用レジスタ (6) 20 ch_20 3 21 ch_21 5 22 ch_22 fb_tx_fifo_error_ fb_rx_fifo_error_ int int 23 ch_int_ 23 ffs_ls_sync_stat 24 25 prbs_error_cnt [7] prbs_error_cnt [6] prbs_error_cnt [5] prbs_error_cnt [4] us fb_rxrst_o fb_txrst_o pci_det_done rlos_lo ~rlos_lo dco_calib_done dco_facq_err dco_facq_done fb_rx_fifo_error_ fb_tx_fifo_error_ int int cc_re_o cc_we_o rlol ~rlol ch_24 ch_25 チャネル単位のSERDESレジスタ (7) 26 27 28 29 2A 2B 2C ch_26 3 ch_27 dco_calib_err rlos_hi ~rlos_hi pci_connect ch_28 dco_status[7] dco_status[6] dco_status[5] dco_status[4] dco_status[3] dco_status[2] dco_status[1] dco_status[0] ch_29 dco_status[15] dco_status[14] dco_status[13] dco_status[12] dco_status[11] dco_status[10] dco_status[9] dco_status[8] pci_det_done_ int rlos_lo_int ~rlos_lo_int rlos_hi_int ~rlos_hi_int rlol_int ~rlol_int ch_ch_ 2a 4 ch_2b ch_2c LatticeECP2M 8-83 SERDES/PCS-UGJ TN1124_2.9J Jan. 2009 1. Ba=ベースアドレス(Hex) 2. 割り込み制御レジスタはは割り込み可能なステータス(int_sts_x)レジスタに関連づけられます。 3. ステータス・レジスタには関連づけられる割り込み可能なステータス(int_sts_x)レジスタがあります。 4. 割り込み可能なステータス・レジスタ1; (関連づけられる制御レジスタとステータス・レジスタ) リード でクリア。 5. ステータス・レジスタ、リードでクリア。 6. PRBSは内蔵のロジックによって生成されて、ラティスセミコンダクター社内のテスト用のためのものです。 注: 特に明記しないかぎり、デフォルト値は0です。 表8-74 PCS制御レジスタ1 (CH_00) Bit Name 7 enable_cg_align 6 prbs_enable 5 prbs_lock 4 ge_an_enable 3:2 1 0 Reserved invert_tx invert_rx 記 述 uc_modeで動作時のみ有効。 1 = 連続コンマアライメントをイネーブル 0 = 連続コンマアライメントをディセーブル 1 = PRBSジェネレータとチェッカーをイネーブル 0 = 通常動作 1 = Lock 受信PRBSチェッカーをロック 0 = Lock 受信PRBSチェッカーをアンロック 1 = GigE自動ネゴシエーションをイネーブル 0 = GigE自動ネゴシエーションをディセーブル 1 = 送信データを反転 0 = 送信データを反転しない 1 = 受信データを反転 0 = 受信データを反転しない タイプ デフォルト R/W 0 R/W 0 R/W 0 R/W 0 R/W R/W 0 0 表8-75 PCS制御レジスタ2 (CH_01) 記 述 タイプ デフォルト 1 = クワッドレジスタ・ビット pfifo_clr_sel が 1 にセット されているとPFIFOをクリアする。これは内部信号 pfifo_clr R/W 0 pfifo_clr 7 と OR されている。 0 = 通常動作 1 = PCI Express 電気的アイドル 0 = 通常動作 pcie_ei_en R/W 0 6 pcs_det_time_s PCS接続検出時間 R/W 0 5:4 el[1:0] 11 = 16us 10 = 4us 01 = 2us 00 = 8us 1 = 全チャネルの受信パスで 2:1 ギアリングをイネーブル R/W 0 rx_gear_mode 0 = 全チャネルの受信パスで 2:1 ギアリングをディセーブ 3 ル(ギアリングなし) 1 = 全チャネルの送信パスで 2:1 ギアリングをイネーブル R/W 0 tx_gear_mode 0 = 全チャネルの送信パスで 2:1 ギアリングをディセーブ 2 ル(ギアリングなし) 1 = 受信出力がテスト・キャラクタライズ用ピンでモニタ可 R/W 0 rx_ch 能にする。テスト・キャラクタライズ・モード 1 (pcs_ctl_4_qd_03[6])は 1 にする。 1 = トランスミッタPCS入力をテスト・キャラクタライズ用 0 tx_ch ポートから供給可能にする。テスト・キャラクタライズ・モ R/W 0 ードをイネーブルにする。 Bit LatticeECP2M Name 8-84 SERDES/PCS-UGJ TN1124_2.9J Jan. 2009 表8-76 PCS制御レジスタ3 (CH_02) Bit 7 6 5 4 3 2 1 0 記 述 タイプ デフォルト 1 = PCSとSERの間は8ビットバス bus_width8 R/W 0 0 = PCSとSERの間は10ビットバス 1 = Tx SERDESブリッジをバイパス R/W 0 sb_bypass 0 = 通常動作 1 = RxからTxへFIFOを介してパラレルループバックをイネー R/W 0 sb_pfifo_lp ブル 0 = 通常データ動作 1 = BISTデータを選択 R/W 0 sb_bist_sel 0 = 通常データを選択 1 = 8b10bエンコーダをバイパス R/W 0 enc_bypass 0 = 通常動作 1 = 8b10bエンコーダの前で送信側にBISTデータをイネーブル sel_bist_txd4enc R/W 0 0 = 通常動作 1 = PCS Txギアボックスをバイパス R/W 0 tx_gear_bypass 0 = 通常動作 1 = PCS内FPGAブリッジの前で、RxからTxのループバックを R/W 0 fb_loopback イネーブル 0 = 通常データ動作 Name 表8-77 PCS制御レジスタ4 (CH_03) Bit 7 6 5 4 3 2 1 0 記 述 1 = ワードアライメントに外部LSMを選択 lsm_sel 0 = ワードアライメントに内部LSMを選択 1 = Rx LSMを強制的にイネーブル signal_detect 0 = ffc_signal_detect 信号に依存してRx LSMをイネーブル 1 = PCS Rxギアボックスをバイパス rx_gear_bypass 0 = 通常動作 1 = CTCをバイパス ctc_bypass 0 = 通常動作 1 = 8b10bデコーダをバイパス dec_bypass 0 = 通常動作 1 = ワードアライメントをバイパス wa_bypass 0 = 通常動作 1 = Rx SERDESブリッジをバイパス rx_sb_bypass 0 = 通常動作 1 = PCSのSERDESブリッジ内でTxからRxへのループバック sb_loopback をイネーブル 0 = 通常データ動作 LatticeECP2M Name 8-85 タイプ デフォルト R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 SERDES/PCS-UGJ TN1124_2.9J Jan. 2009 表8-78 PCS割り込み制御レジスタ5 (CH_04) Bit 7:4 3 2 1 0 記 Name Reserved 述 1 = cc_underrunの割り込みをイネーブル 0 = cc_underrunの割り込みをディセーブル 1 = cc_overrunの割り込みをイネーブル cc_overrun_int_ctl 0 = cc_overrunの割り込みをディセーブル fb_rx_fifo_error_int_ 1 = 受信FPGAブリッジFIFOのエンプティ/フル条件 ctl での割り込みをイネーブル fb_tx_fifo_error_int_ 1 = 送信FPGAブリッジFIFOのエンプティ/フル条件 ctl での割り込みをイネーブル cc_underrun_int_ctl タイプ デフォルト R/W 0 R/W 0 R/W 0 R/W 0 タイプ デフォルト R/W 0 タイプ デフォルト 表8-79 PCS制御レジスタ6 (CH_05) Bit 7:1 Name Reserved 0 low_ hi_sel 記 述 1 = rlos_hi を選択 0 = rlos_lo を選択(ラティス社内での用途のみ) 表8-80 PCS制御レジスタ7 (CH_06) Bit 7:0 LatticeECP2M Name Reserved 記 8-86 述 SERDES/PCS-UGJ TN1124_2.9J Jan. 2009 チャネル単位のSERDES制御レジスタ詳細 注;特に明記しない限り、SERDES制御レジスタにライトアクセスした値を有効にするには、全チャネルを リセットすること。 表8-81 SERDES制御レジスタ1 (CH_07) Bit Name 7 REQ_EN 6 REQ_LVL_SET 5 RCV_DCC_EN 4:3 RATE_SEL [1:0] 2:0 RX_DCO_CK_DIV [2:0] 記 述 1 = 受信イコライザをイネーブル 0 = 受信イコライザをディセーブル イコライザのレベル設定 1 = ロングリーチ用等化 0 = 中距離ルート用の等化 1 = レシーバDCカップリングをイネーブル 0 = ACカップリング (デフォルト) イコライザの極配置を選択 00 = 高域周波レンジ用の極配置 01 = 中域周波レンジ用の極配置 10 = 低域周波レンジ用の極配置 11 = 未使用 VCO出力周波数選択 000 = 分周比 1 001 = reserved 010 = 分周比 2 011 = reserved 100 = 分周比 4 101 = 分周比 8 110 = 分周比 16 111 = 分周比 32 タイプ デフォルト R/W 0 R/W 0 R/W 0 R/W 2'b00 R/W 3'b000 表8-82 SERDES制御レジスタ2 (CH_08) Bit Name 7:4 LB_CTL [3:0] 3:2 RTERM_RXADJ [1:0] 1:0 RTERM_RX [1:0] LatticeECP2M 記 述 タイプ デフォルト ループバック制御 [3] = slb_r2t_dat_en, rx --> tx シリアルループバックをイネー ブル (CDRデータ) [2] = slb_r2t_ck_en, rx --> tx シリアルループバックをイネー R/W ブル (CDRクロック) [1] = slb_eq2t_en, イコライザ --> ドライバ・シリアルループ バックをイネーブル [0] = slb_t2r_en, tx --> rx シリアルループバックをイネーブル 終端抵抗の補償(compensation) 00 = default R/W 01= -7% 10= -14% 11= -20% 00 = 50 ohm 01 = 75 ohm R/W 10 = 2K ohm 11 = 60 ohm 8-87 4'h0 2'b00 2'b00 SERDES/PCS-UGJ TN1124_2.9J Jan. 2009 表8-83 SERDES制御レジスタ3 (CH_09) Bit Name 記 述 タイプ デフォルト LatticeECP2M-35用SERDES制御レジスタ3 CMLドライバの振幅設定 (mV), VCCOB = 1.2V 000 = 1040(デフォルト) 001 = 1280 010 = 1320 TDRV_AMP[2:0] 011 = 1360 R/W 0 7:5 100 = 640 101 = 760 110 = 870 111 = 990 Txドライバ・プリエン % ファシス・レベル設定 0 0 16 1 TDRV_PRE_SET 36 R/W 0 4:2 2 [2:0] 40 3 44 4 56 5 80 6 ドライバ出力の選択 00 = シリアライザからのデータを選択 (通常動作) 01 = シリアライザからのデータクロックをドライバに選択 10 = slb_r2t_dat_en=1 の場合 Rx --> Tx シリアル・ループ TDRV_DAT_SEL R/W 0 バック(データ) 1:0 [1:0] 10 = slb_r2t_ck_en=1 の場合 Rx --> Tx シリアル・ループバ ック(クロック) 11 = slb_eq2t_en=1 の場合、イコライザからドライバにシリ アル・ループバック LatticeECP2M-20/50/70/100用SERDES制御レジスタ3 mV GUIの設定(3-bit) レジスタの設定(5-bit) 990 0 00101 1250 1 00001 1300 2 00010 1350 TDRV_AMP[2:0] R/W 0 7:5 3 00011 610 4 11100 730 5 10100 820 6 10110 940 7 01110 Txドライバ・プリエンファシス・レベル設定 % GUIの設定(3-bit) レジスタの設定(5-bit) 0 0 00000 12 1 00001 TDRV_PRE_SET R/W 0 4:3 26 2 00010 [4:0] 30 3 01010 33 4 10010 40 5 00011 53 6 00100 LatticeECP2M 8-88 SERDES/PCS-UGJ TN1124_2.9J Jan. 2009 表8-84 SERDES制御レジスタ4 (CH_0A) Bit 7 記 Name 述 ドライバ出力の選択 00 = シリアライザからのデータを選択 (通常動作) 01 = シリアライザからのデータクロックをドライバに選択 10 = slb_r2t_dat_en=1 の場合 Rx --> Tx シリアル・ループバック TDRV_DAT_ (データ) 6:5 SEL [1:0] 1 10 = slb_r2t_ck_en=1 の場合 Rx --> Tx シリアル・ループバック (クロック) 11 = slb_eq2t_en=1 の場合、イコライザからドライバにシリア ル・ループバック TDRV_PRE_ 1 = Txドライバ・プリエンファシスをイネーブル 4 EN 0 = Txドライバ・プリエンファシスをディセーブル Tx終端抵抗の選択。PCI Expressが選択されるとディセーブル RTERM_TX 00 = 50 ohm (デフォルト) 3:2 [1:0] 01 = 75 ohm 10 = 5K ohm RATE_MODE 0 = トランスミッタにフルレートを選択 1 _TX 1 = トランスミッタにハーフレートを選択 0 = 送信チャネルをパワーダウン tpwdnb 0 1= 送信チャネルをパワーアップ 1. LatticeECP2M-20/50/70/100のみ タイプ Int? R/W 2'b00 R/W 0 R/W 2'b00 R/W 0 R/W 0 表8-85 SERDES制御レジスタ4 (CH_0B) Bit 7:6 5 7:5 Name TDRV_AMP[4:3] Reserved Reserved 4 oob_en 3:2 rx_refck_sel [1:0] 1 RATE_MODE_RX 0 rpwdnb 記 述 送信ドライバ振幅設定上位ビット LatticeECP2M-20/50/70/100のみ適用R/W 2'b00 LatticeECP2M35のみ適用 1 = バウンダリスキャン用入力パスを配線としてイネ ーブルし、FPGA内の低速SERDESに受信入力を供給 する(OOB用途) Rx CDR基準クロックの選択 00 = refclk (差動入力) 01 = core_rxrefclk 1x = reserved 0 = レシーバにフルレートを選択 1 = レシーバにハーフレートを選択 0 = レシーバチャネルをパワーアダウン 1 = レシーバチャネルをパワーアップ タイプ R/W デフォルト R/W 0 R/W 2'b00 R/W 0 R/W 0 0 表8-86 TDRV_AMP設定レジスタ;LatticeECP2M-20/50/70/100 Bit Name CH_0B[7:6] TDRV_AMP[4:3] CH_09 [7:5] TDRV_AMP[2:0] LatticeECP2M 記 表8-86 表8-84 8-89 述 タイプ R/W R/W デフォルト 0 0 SERDES/PCS-UGJ TN1124_2.9J Jan. 2009 表8-87 SERDES割り込み制御レジスタ1 (CH_0C) Name 記 述 タイプ デフォルト Reserved pci_det_done_int R/W 0 1 = PCI Expressでfar-endレシーバ検出割り込みをイネーブル _ctl 1 = レシーバ入力レベルがLOW閾値(rlos_lset設定)より小さい場 R/W 0 rlos_lo_int_ctl 合のRx LOS割り込みをイネーブル 1 = レシーバ入力レベルがLOW閾値(rlos_lset設定)に等しいか大 ~rlos_lo_int_ctl R/W 0 きい場合のRx LOS割り込みをイネーブル 1 = レシーバ入力レベルがHIGH閾値(rlos_hset設定)より小さい R/W 0 rlos_hi_int_ctl 場合のRx LOS割り込みをイネーブル 1 = レシーバ入力レベルがLOW閾値(rlos_hset設定)に等しいか大 R/W 0 ~rlos_hi_int_ctl きい場合のRx LOS割り込みをイネーブル rlol_int_ctl R/W 0 1 = レシーバのLOL割り込みをイネーブル ~rlol_int_ctl 1 = レシーバがLOLから復帰した際の割り込みをイネーブル R/W 0 Bit 7 6 5 4 3 2 1 0 チャネル毎のPCSステータス・レジスタ詳細 表8-88 PCSステータス・レジスタ1 (CH_20) 記 Bit 7:5 Name Reserved 4 pfifo_error 3 cc_underrun 2 cc_overrun 1 fb_rx_fifo_error 0 fb_tx_fifo_error 述 1 = パラレルFIFOエラー 0 = パラレルFIFOエラーなし 1 = CC FIFOアンダーラン 0 = CC FIFOアンダーランなし 1 = CC FIFOオーバーラン 0 = CC FIFOオーバーランなし 1 = FPGAブリッジ(FB) Rx FIFOオーバーラン 0 = FB Rx FIFOオーバーランなし 1 = FB Tx FIFOオーバーラン 0 = FB Tx FIFOオーバーランなし タイプ Int? RO Y RO Y RO Y RO Y RO Y タイプ RO CR Int? タイプ デフォルト 表8-89 PCSステータス・レジスタ2 (CH_21) Bit Name 7:0 prbs_errors 記 述 PRBSエラーカウント数。リードするとクリアされる。 FFに達すると値を保持。 N 表8-90 PCSステータス・レジスタ3 (CH_22) Bit 7:0 LatticeECP2M Name Reserved 記 8-90 述 SERDES/PCS-UGJ TN1124_2.9J Jan. 2009 表8-91 PCS一般割り込みステータス・レジスタ4 (CH_23) Bit 7:4 Name Reserved 3 cc_underrun_int 2 cc_overrun_int 1 fb_rx_fifo_error_int 0 fb_tx_fifo_error_int 記 述 1 = cc_underrunで割り込みを生成 0 = cc_underrunで割り込みを生成しない 1 = cc_overrunで割り込みを生成 0 = cc_overrunで割り込みを生成しない 1 = fb_rx_fifo_errorで割り込みを生成 0 = fb_rx_fifo_errorで割り込みを生成しない 1 = fb_tx_fifo_errorで割り込みを生成 0 = fb_tx_fifo_errorで割り込みを生成しない タイプ RO CR RO CR RO CR RO CR Int? Y Y Y Y 表8-92 PCSステータス・レジスタ5 (CH_24) Bit 7 Name Reserved 6 ffs_ls_sync_status 5 fb_rxrst_o 4 fb_txrst_o 3 2 Reserved Reserved 1 cc_re_o 0 cc_we_o 記 述 1 = LSMはSyncステート 0 = LSMはSyncステートにない 1 = 通常動作 0 = FPGAブリッジRxリセット 1 = 通常動作 0 = FPGAブリッジTxリセット 1= 0= 1= 0= エラスティックFIFOリードイネーブル エラスティックFIFOリードディセーブル エラスティックFIFOライトイネーブル エラスティックFIFOライトディセーブル タイプ Int? RO N RO N RO N RO N RO N 表8-93 PCSステータス・レジスタ6 (CH_25) Bit 7:0 LatticeECP2M Name Reserved 記 8-91 述 タイプ デフォルト SERDES/PCS-UGJ TN1124_2.9J Jan. 2009 チャネル毎のSERDESステータス・レジスタ詳細 表8-94 SERDESステータス・レジスタ1 (CH_26) Bit 7 Name Reserved 6 pci_det_done 5 rlos_lo 4 ~rlos_lo 3 rlos_hi 2 ~rlos_hi 1 rlol 0 ~rlol 記 述 タイプ 1 = SERDESトランスミッタがレシーバ検出プロセスを完了 0 = SERDESトランスミッタはレシーバ検出プロセスを未完了 1 = レシーバで検出した入力信号レベルが設定されたLOW閾値 より低いことを示す 1 = レシーバで検出した入力信号レベルが設定されたLOW閾値 に等しいか大きいことを示す 1 = レシーバで検出した入力信号レベルが設定されたHIGH閾値 より低いことを示す 1 = レシーバで検出した入力信号レベルが設定されたHIGH閾値 に等しいか大きいことを示す 1 = CDRがデータにロックしていない(LOL)で、基準クロックにロ ックしていることを示す 1 = CDRがデータにロックしていることを示す Int? RO CR RO CR RO CR RO CR RO CR Y Y Y Y Y RO Y RO Y 表8-95 SERDESステータス・レジスタ2 (CH_27) Bit Name 7 DCO_CALIB_ERR 6 5 4 3:1 DCO_CALIB_DONE DCO_FACQ_ERR DCO_FACQ_DONE Reserved 0 pci_connect 記 述 タイプ 1 = DCOキャリブレーションが不正の可能性があることを示す(選 RO 択されたL/H境界帯域) RO 1 = DCOキャリブレーション完了を示す RO 1 = DCO周波数アクイジション・エラーを示す(>300ppm) RO 1 = DCO周波数アクイジション完了を示す RO 1 = SERDESトランスミッタがレシーバを検出(Tx側) RO 0 = SERDESトランスミッタがレシーバを不検出(Tx側) Int? N N N N N N 表8-96 SERDESステータス・レジスタ3 (CH_28) Bit 7:0 Name DCO_STATUS[7:0] 記 述 setdcoidac[7:0] タイプ RO Int? タイプ Int? RO N N 表8-97 SERDESステータス・レジスタ4 (CH_29) Bit 7:0 記 Name [1:0] = setdcoidac[9:8] DCO_STATUS[15:8] [7:2] = setdcoband[5:0] LatticeECP2M 8-92 述 SERDES/PCS-UGJ TN1124_2.9J Jan. 2009 表8-98 SERDES割り込みステータス・レジスタ5 (CH_2A) Bit 7 6 5 4 3 2 1 0 Name Reserved pci_det_done_int rlos_lo_int ~rlos_lo_int rlos_hi_int ~rlos_hi_int rlol_int ~rlol_int 記 述 1 = pci_det_doneで割り込みを生成 1 = rlos_loで割り込みを生成 1 = ~rlos_loで割り込みを生成 1 = rlos_hiで割り込みを生成 1 = ~rlos_hiで割り込みを生成 1 = rlolで割り込みを生成 1 = ~rlolで割り込みを生成 タイプ Int? RO CR RO CR RO CR RO CR RO CR RO CR RO CR Y Y Y Y Y Y Y 表8-99 SERDESステータス・レジスタ6 (CH_2B) Bit 7:0 記 Name Reserved 述 タイプ デフォルト 述 タイプ デフォルト 表8-100 SERDESステータス・レジスタ7 (CH_2C) Bit 7:0 記 Name Reserved 表8-101 異なる規格ごとのKキャラクタ キャラクタ K23.7 (F7) K27.7 (FB) K28.0 (1C) K28.1 (3C) K28.2 (5C) K28.3 (7C) K28.4 (9C) K28.5 (BC) K28.6 (DC) K28.7 (FC) K29.7 (FD) K30.7 (FE) LatticeECP2M Gbe Carrier extend SOP XAUI 1xFC ST SKIP R SoS ALIGN A SEQ +D5.6 or D16.2=IDLE SYNC K EOP ERR T ERR 8-93 +D21.4 +D21.5 +D21.5 = IDLE PCI Express PAD Start TLP SKIP FTS Start DLLP IDLE COMMA (used for alignment) END END BAD RapidIO A (align) SC PD K R (skip) SERDES/PCS-UGJ TN1124_2.9J Jan. 2009 付録B. 8B10B符号語 表8-102 8B10B符号語 シンボル符号(8b10b符号) シンボル名(モード組み合わせ表) K28.0 K28.5 K29.7 D16.2 D21.4 D21.5 K28.5+ K28.5- 8`b000_11100 8`b101_11100 8`b111_11101 8`b010_10000 8`b100_10101 8`b101_10101 10`b110000_0101 10`b001111_1010 10-Bit GUI表記 0100011100 0110111100 0011111101 0001010000 0010010101 0010110101 1100000101 0011111010 表8-103 符号語のラティスマスク シンボル符号(8b10b符号) シンボル名(モード組み合わせ表) 28.5 (Mask) 10`b111111_1111 10-Bit GUI表記 1111111111 付録C. 属性のクロスリファレンス 表8-104 属性のクロスリファレンス一覧表 英語版オリジナルを参照して下さい。 付録D. プロトコル依存のSERDES設定オプション 表8-105 プロトコル依存のSERDES設定オプション プロトコル DATARATE DATARATE 範囲 REFCK乗数 GbE 1.25 MED 20X, 10X, 5X PCI Express 2.5 HIGH 25X, 20X XAUI 3.125 HIGH 20X 16 20X, 10X, 5X 16X, 8X, 4X 8, 16 ANY_VALUE LOW, MEDLOW, MED, MEDHIGH, HIGH 20X, 10X, 5X 10, 20 Generic 8b10b 8-bit SERDES_Only 10-bit SERDES_Only LatticeECP2M 8-94 DATA WIDTH 8, 16 Rx等化 DISABLE, MID_MED, LONG_MED DISABLE, MID_HIGH, LONG_HIGH DISABLE, MID_LOW, MID_MED, MID_HIGH, LONG_LOW, LONG_MED, LONG_HIGH SERDES/PCS-UGJ