Comments
Description
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