LatticeECP2M SERDES/PCS Usage Guide (Japanese)

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