Last Update 2023/02/20

PC拡張用の定番バスはこうやって動かす
FPGAでゼロから作るPCI Express

内藤 竜治 著
B5判 256ページ
定価5,280円(税込)
JAN9784789849821
2013年5月1日発行
[品切れ重版未定2023.2.20] FPGAでゼロから作るPCI Express
大変恐縮ですが,こちらの商品は品切れ重版未定となりました.
 昨今のFPGAの高性能/高機能/大容量化にともない,PCI Expressに対応したFPGAデバイスの品種が増えています.またFPGAデバイス自体の低価格化もあり,FPGAによるPCI Expressデバイス設計はより現実的な手法となってきました.
 Gbpsオーダの信号を扱うPCI Expressは,プロトコルが複雑であるため,詳しい解説書が必要です.しかも本書はFPGAにPCI Expressコントローラを実装する人の立場から見たバス・プロトコルの解説書になっているので,各階層ごとに理解しやすい構成となっています.

(本書は,Interface誌連載「徹底解説 作ればわかるPCI Express」に加筆・編集したものです)

目次


バス接続からポイント-ポイント接続へPCIバスとの比較から見る
Chapter 1 PCI Expressの基礎知識
1.似て非なるPCIとPCI Express
2.PCI Expressのアドイン・カードを作成するには
3.PCI Expressの基礎知識
4.PCI Expressの信号の電気的特性
コラム さまざまなフォーム・ファクタ

NXP社製PX1011A & TI社製XIO1100とFPGAの接続
Chapter 2 PIPEインターフェースとPHYチップの使い方
1.PIPEとは
2.PIPEの電気的信号
3.PIPEの操作
4.実際のPIPEチップの使い方 PX1011Aの場合
5.実際のPIPEチップの使い方 XIO1100の場合

信号遅延の要因とタイミング調整,Double Data Rate動作の活用
Chapter 3 200MHzを超えるI/Oを扱うロジックをFPGAに実装する方法
1.FPGAの実力
2.入出力タイミングの改善方法
3.DDR(Double Data Rate)を活用する
4.ソース同期のための設計方法
5.実際の回路の例
コラム タイミング・レポートの出し方

PIPEのアクセス方法と物理層リンクアップの流れ
Chapter 4 PCI Expressの物理層
1.物理層は何をやっているか
2.物理層の実装
3.オーダード・セット
4.リンク・トレーニング・ステータス・ステート・マシンの概要
5.Detectステート
6.Pollingステート
7.Configurationステート
8.L0ステート
コラム COMはなぜ同期に使われるのか

データリンク層の役割からAck/Nakプロトコル,CRC生成回路の設計まで
Chapter 5 データリンク層の概要
1.データリンク層の概要
2.データリンク層パケット
3.データリンク層をFPGAへ実装する
4.Ack/Nakプロトコルの概要
5.Ack/Nakプロトコルを実現するためのハードウェア
6.DLLP送信ブロックの設計
7.DLLP受信ブロックの設計
8.全体制御ステート・マシンの設計
コラム カット・スルー・モードとNullified TLP

トランザクション層の概要からTLP送受信ブロックの設計
Chapter 6 トランザクション層の概要
1.トランザクション層の概要
2.トランザクション層パケットの詳細
3.TLP送受信回路の全体
4.TLP受信ブロックの設計
5.TLP送信ブロックの設計
コラム メモリ・リード以外ではByte CountとLower Addressは固定

PCIバスから大きく拡張されたプラグ&プレイを支えるレジスタ群
Chapter 7 PCI Expressのコンフィグレーション空間の概要
1.PCI Expressのコンフィグレーション空間
2.リンクアップ後の送受信パケットを追いかけてみる
3.パソコン起動時のBIOSとのやりとり
4.コンフィグレーション・ヘッダの解説
5.PCI Expressで拡張されたコンフィグレーション領域
6.PCI Express機能構造体
7.パワー・マネジメント機能構造体
8.MSI機能構造体
9.拡張コンフィグレーション空間

コンフィグレーション空間とメモリ空間を実装してメモリ・アクセスをテストする
Chapter 8 最も基本的なPCI Expressデバイスの設計
1.コンフィグレーション空間の実装
2.メモリ空間の実装
3.設計したPCI Expressデバイスの動作確認
コラム FPGAは多入力のセレクタは苦手?

Windows上からコンフィグレーション空間やメモリ空間にアクセスする
Chapter 9 汎用PCI Expressデバイス・ドライバの作成
1.WDM形式の汎用ドライバを作る
2.インストールとプラグ&プレイ
3.各種バス・アクセスの発生

リード/ライトともにバースト転送で転送レートを上げるには
Chapter 10 DMAの実装とWindowsにおけるメモリ管理
1.DMAについての基礎知識
2.ハードウェアの実装
3.ドライバの開発に必要な知識
4.WindowsでDMAを実現する四つの方法

非同期で発生するイベントをシステムに通知する方法
Chapter 11 PCI Expressの割り込み処理の実装
1.割り込みのハードウェア
2.Windowsにおける割り込みの処理
3.割り込みとDMA

1チップでPCI Expressデバイスを実現できるArriaGXデバイスの使い方
Chapter 12 ArriaGX内蔵トランシーバの使い方とPCI Expressコアの移植
1.ArriaGXと評価ボード
2.内蔵ギガビット・トランシーバ
3.ギガビット通信実験
4.PCI Expressコアの実装
Coffee Break.1 PCI Expressのリセット

デバイス内蔵高速トランシーバ機能を使って1チップでPCI Expressデバイスを実現する
Chapter 13 Spartan-6LXT内蔵トランシーバの使い方とPCI Expressコアの移植
1.Spartan-6と内蔵ギガビット・トランシーバ
2.GTPの動作実験
3.PCI Expressコアの実装
コラム BUFIO2とは
Coffee Break.2 PCI Expressのホットスワップとスロット

デバイス内蔵PCI Express対応ハード・マクロを使いこなしてPCI Expressデバイスを実現する
Chapter 14 Spartan-6LXT内蔵エンドポイント・ブロックを使ったPCI Expressの設計
1.内蔵エンドポイント・ブロックの概要
2.LogiCORE IPの信号
3.エンドポイント・ブロックの使い方
4.PCI Expressの送受信機能の作成
5.他のXilinx社製FPGAの内蔵コア
Coffee Break.3 Windows7の低消費電力モード

物理的寸法から信号線の引き回し,基板のインピーダンス評価まで
Chapter 15 PCI Expressアドイン・カードの設計
1.アドイン・カードの物理的寸法
2.PCI Expressの信号の引き回し
3.基板の製造誤差が特性インピーダンスに与える影響

送出レベルやディエンファシスを変えると信号波形の何が変わるのか
Chapter 16 PCI Expressアドイン・カードの信号波形を観測
1.測定環境と差動信号について
2.実際の波形測定
3.オシロスコープのPCI Express向け機能を使ってみる
4.PCI Expressケーブルの影響
コラム CoreGenの送出レベルとエンファシスは手動で設定