...

FPGAでシリアルATA コントローラを設計する FPGAでシリアルATA

by user

on
Category: Documents
31

views

Report

Comments

Transcript

FPGAでシリアルATA コントローラを設計する FPGAでシリアルATA
FPGAでシリアルATA
コントローラを設計する
第 1 回 シリアルATAを実現する物理層
菅原 博英
昨今のFPGAは,ゲート規模や内蔵メモリの大容量化,そして高速差動信号への対応やクロックてい倍/位相調
整機能などの搭載,さらには汎用的インターフェース・コアをハード・マクロで搭載するなど,高機能化してき
ている.こうした高性能化したFPGAでは,シリアルATAなどに代表される高速シリアル・バスを直結できるよ
うになってきた.そこで今回から数回にわたり,FPGAでシリアルATAホスト・コントローラを設計する事例に
ついて解説する.第1回の今回は,シリアルATAを接続する物理層について解説する. (編集部)
しかし,現代の“シリアル”は全体の一機能面を取り上
げたネーミングに過ぎません.つまり,
1.シリアル化のトレンド
¡シリアルで信号間のスキューをなくす
(差動の+/−間のスキューは依然ある)
バスのシリアル化は,1990 年代末から 2000 年代にかけ
¡クロック成分もデータ信号と一緒に送り,データ信号
ての技術のトレンドです(図 1).
からクロックを復調する(両者のスキューはない)
“シリアル”という用語はいろいろ誤解を生むネーミン
¡信号伝播は低振幅差動信号(LVDS : Low Voltage
グです.1990 年代以前のシリアル・バスはどちらかといえ
Differential Signal)とする
ば,コネクタやケーブルの信号線の減少によるコンパクト
という点が,現代の“シリアル”化の特徴/機能なのです
化を目的としている点が多分にあり,その印象が強いから
(図 2).
です.
一方,このようなトレンドに対応して,近年シリアル対
I/Oバス
バックプレーン
接続
HyperTransport (2001年∼)
PCI Express(2002年∼)
きょう体間接続
LAN
応のトランシーバ I/O を備えた FPGA が登場するように
なりました.
本稿ではこのようなトレンドに対して,最もシンプルな
(ASI)
シリアル・バスであるシリアル ATA を題材とし,コント
InfiniBand
ローラを FPGA に実装することを目指します.シリアル
Ethernet
ATA で接続するハード・ディスク・ドライブ(HDD)や最
Fibre Channel
近 の SDD( Silicon Disk Drive)ま た は SSD( Solid State
Drive)は,大容量の記憶装置を非常に安価に実現できま
SATA(2003年∼)
す.従って,一部の組み込みシステム機器などにおける活
(Serial)Rapid IO(2001年∼)
用機会が多いと思います.この場合,既存のシリアル
ATA アダプタあるいは LSI 製品を購入すればよいわけで
図 1 シリアル化はトレンド
2本(+/
の配線のみ
−)
LSI
クロック
クロック
図2
シリアル化時のク
ロックとデータ
低振幅
(±250mV)
コネクタ
へ復調
データ
マージして転送
データ
152 KEYWORD ―― シリアル ATA,FPGA,シリアライザ,デシリアライザ,SerDes,物理層,アナログ PHY,Virtex-5 LXT
July 2008
FPGAでシリアルATA
コントローラを設計する
1/
1
VCO
1/
10
LPF
REF_CLK_P
位相
比較器
REF_CLK_N
分周器(1/10)
PLL
CLK_T
(150MHz)
CLK_T×10
(1.5GHz)
LVDS
出力ポート
10サイクルに1回,LOADする
ほかはShiftまたはHoldする
TX+
LOAD
シフト
TX−
TD
図3
送信シリアライザ
LOAD
TDV
HOLD
すが,このような製品は大量生産品で安価であるが故に,
数個しか必要のない個人や組織(会社や研究室など)では
サポート上の問題から購入が難しい場合があります.その
2)ディジタル部から受けた 10b を,上位ビットから順番
ため,シリアル ATA を FPGA へ実装することは実用上も
にシリアライズ(1b 化)して出力する
有効と考えます.
この動作をシリアライザ(Serializer)と呼びます.その
ビット信号を LVDS の出力ポートから出力します.絵で描
2.シリアル ATA に必要な
FPGA の要件
くと単純ですが,1.5Gbps(あるいは倍)のデータ転送を,
規格の範囲内の周波数&振幅のズレで行わなければならな
いわけなので,先端的なアナログ回路がなければ実現でき
● 送信部の機能
ません.
シリアル ATA を実装するには,シリアル対応のトラン
● 受信部の機能
ファイ
シーバ I/O がシリアル ATA の PHY 機能を備える必要が
あります.PHY アナログ部の機能は非常にシンプルです.
送信部の機能は図 3 のようになります.
1)クロックは,対アナログ部が 1.5GHz,対ディジタル部
がその 1/10 の 150MHz(1.5Gbps 転送の場合)
このとき,両クロックは同一クロック源(水晶)
,PLL か
一方,受信部の機能は図 4 のようになります.
1)1.5Gbps のシリアル・データを受信する
2)その受信データから受信アナログ・クロックを生成する
(CDR).また,その 1/10 の受信ディジタル・クロック
を生成する
3)受信ビットを上位ビットから埋めていき,10b ごとに
ら生成されることが前提で,位相関係は長時間経過しても
ディジタル部へ出力する
変化しません(一方がもう一方を追い越すことはない)
.
この動作をデシリアライザ(Deserializer)と呼びます.
なお実装によっては,例えばアナログ部が両クロック・
同じように先端的なアナログ回路がなければ実現できませ
エッジを使用する場合や,ディジタル部が 20b インター
んが,この中でも最も複雑なのは CDR 回路です.受信デー
フェースを使用する場合は,それぞれ周期が半分となりま
タからクロックを生成するポイントは,受信データの変化
す.実際にはアナログ部は両クロック・エッジの場合が多
点を検出することです.
く,ディジタル部も 3Gbps に対応する場合,20b インター
なお,シリアライザとデシリアライザの両方の機能をま
サーデス
フェースの対応が多数になると考えられます.
July 2008
とめて,SerDes とも呼びます.
153
Fly UP