Core Skills >  Architectures / DSP / PLD / Interfaces
入門
進階
專家

課程名稱:PCI Express原理架構與FPGA設計應用
(PCI Express Architecture and Application Design using FPGA)

課程代碼: OA080C
課程名稱:

PCI Express原理架構與FPGA設計應用

上課時間: 2008/12/20, 12/21, 12/27 周六日 9:30 AM ~ 4:30 PM
上課地點: 台北市中正區漢口街一段45號8樓 傳識資訊教室
課程費用: NT$18,000元 (含稅、講義)
課程時數: 18小時/ 三天
課程簡介:

PCI Express是新一代開發的匯流排標準,可達到更高的傳輸速度、更小的電路板面積及更大的抗噪能力;並能使用在不同的環境及介面中(例如一般電腦圖形加速卡、影像擷取卡、通訊/電信/儲存設備…等等)。

本課程以理論架構及實務設計應用方式並行,學員完成課程後將建立基本觀念及實務PCI Express x1x4x8設計應用能力。

理論架構課程以PCI Express Spec為主,輔以其他主流廠商的參考資料,去蕪存菁,讓學員具備基本觀念後能進入實作應用為目標。先以top-down方式描述PCI Express overview,而後再以bottom-up方式描述各個階層,並適時附以圖形及動畫協助講解,並穿插問題強化學員印象。

實務設計應用課程首先以一個商用PCI Express IP(*註1)為核心,首先介紹該PCI Express IP及其使用者介面、接著以此PCI Express IP使用者介面訊號介面,設計一個SRAM Controller(供後續實作使用)、之後將以上IP整合,實作一個簡單PCI Express RAMDisk Controller。過程中除設計部份,更包括了如何撰寫/應用PCI Express 測試向量來描述作業系統/BIOS及示範驅動程式如何控制及讀取PCI Express Endpoint(在此為PCI Express SRAM Controller實例),並使用FPGA PCI Express介面卡搭配WinDriver軟體於PC主板上PCIe Slot作驗證,提供學員對PCI Express系統從軟體層到硬體層完整的設計及認識。
實務設計應用課程也將介紹並實作業界最新65奈米FPGA的內建PCI Express (x1/x4/x8)硬核系統,以PCI Express x 8可以達到最高20Gb的傳輸率(*註2)。

*註1: 本課程所使用PCI Express IP(x1,即one lane)及相關simulation model為試用版,
*註2: 實體層使用8b/10b encoding, 故實際PCI Express x 8可以達到最高的傳輸率為
16Gb

學習目標: 1. 了解PCI Express基本理論架構
2. 具備實際PCI Express應用開發能力
課程對象:

電機/電子/資訊科系,具備Verilog HDL Coding、ModelSim及Xilinx ISE軟體使用能力者,課程中雖有完整的Lab步驟,學員如有需要可先參加相關FPGA前四天基礎課程(參考連結
http://www.fitpi.com.tw/products/emb_sys/OC040C.htm (前四天或加上後二天PCI課程)

前置準備: 建議學員可先預習PCI Express資料及PCI相關資料
課程安排:
1
2
3
4
5
6
第1天
PCI Express 理論及架構
1
2
3
4
5
6
第2天
(Advanced)
Xilinx 90nm FPGA -Spartan3, ISE & ModelSim Introduction
PCI Express PIPE IP Introduction – 簡介及使用
Lab1:使用CoreGen產生IP及建立模擬環境
Lab2: Designing a SRAM controller for PCI Express IP
Lab3: Integrating a SRAM controller for PCI Express IP
Lab4:撰寫測試向量-Writing TestBench
第3天
(Advanced)
Lab5:RTL Simulation- Using ModelSim
Lab6:Xilinx FPGA電路實作
Lab7: Post-simulation
Lab8:實際電路驗證 with WinDriver & C++ Builder
Lab9:設計之最佳化
Lab10:使用Xilinx 65 奈米Virtex5 內建PCI Express硬核實作
Building Virtex5 PCI Express DMA controller
課程大綱:

Day1: PCI Express 理論與架構

1. From PCI to PCI Express
- PCI Introduction
- PCI Configuration (compatible with PCIe)
2. PCI Express簡介、短片及討論
- Performance
- Board Type
- Why Switch To PCI Express?
3. PCI Express Architecture
- PCIe Transaction types
- Posted or Non-Posted Read/Write Transactions
- Posted Message Transactions
- Quizs/Questios!
4. PCI Express Layers
- Layered Architecture
- Transaction Layer
- Data Link Layer- Link Packets
- Data Link Layer- DLLPs
- Physical Layer
- Packets Assembly/Disassembly
5. Transaction Layer Details
- PCI Express Transaction Layer Diagram
- PCIe transactions types
- Transaction Layer Packet Routing
- Transaction Layer Packet Format
- TLP Header–32/64 bit Memory requests
- TLP Header–32 bit I/O requests
- General TLP Header Field Definition
- TLP Type/Fmt Encodings
- TLP Header–Configuration requests
- TLP Header–Completion requests
- TLP Header–Message requests
- Rules for TLPs with Data Payload
- TLP Digest, TD/EP and Error Forwarding
6. Data Linker Layer
- PCI Express Data Link Layer Diagram
- DLLP types
- Assembly/Transmitting DLLPs
- Ack/Nak DLLP packet Format
- ACK/NAK protocol
 > Ack/Nak Protocol–Transmitter Side
 > Ack/Nak Protocol–Receiver Side
 > If Receiver does not send ACK/NAK DLLPs
 > ACK processing Example
 > NAK processing Example
- Flow Control DLLP packets
- Power Management DLLP packet
- DLLP 16bit-CRC Generation
- Quizs/Questios!
7. QoS & Flow Control
- Traffic Class & Virtual Channel
- Virtual Channel Arbitration
- Virtual Channel Capability Registers
- Quizs/Questios!
- Flow Control Management
 > Flow Control Initialization Sequence
 > Flow Control working Example
8. Physical Layer
- PCI Express Physical Layer Diagram
- Physical Layer sub-blocks
- Logical sub-block
 > 8b/10b Encoder and Decoder
 > Link Initialization and Training
 > Byte Striping/Un-Striping
 > Scrambler and De-Scrambler
 > Elastic Buffers at receiving side
- Electrical sub-block
- Intel PHY Interface for the PCI Express (PIPE) introduction
9. PCI Express configuration
- Type 0 Configuration
- Quizs/Questios!
- Base Address Register
- Capability/Extended Register
 > Power Management Capability
 > MSI Register Capability
 > PCI Express Device Capability Register
 > Device Control Register
 > Device Status Register
 > PCI Express Link Capability Register
 > PCIe Bus Enumeration
 > PCI-compatible Configuration
 > PCI Express Enhanced Configuration
10. PCI Express Interrupt handling
- PCI Express Interrupt Delivery
- Message Signaled Interrupt
- Virtual INTx signaling : PCI-interrupt emulation
- Examples

Day2~3: PCI Express RAMDisk Controller 實作

1. Xilinx 90nm FPGA – Spartan3 Introduction
2. Xilinx ISE Implementation Flow Introduction
3. Software setting up – ModelSim
4. Xilinx PCI Express PIPE IP Introduction
5. Lab1 : 使用ISE Core Generator產生PCIe PIPE IP及建立模擬環境
6. Lab2 : Design a SRAM controller for PCI Express IP
7. Lab3 : Integrating SRAM Controller with PCI Express IP
8. Lab4: 撰寫測試向量(testbench/stimulus)
 > 撰寫測試向量模擬BIOS偵測PCIe週邊的動作
 > 撰寫測試向量測試PCIe configuration space
 > 撰寫測試向量模擬Driver的動作
 > 撰寫測試向量模擬Memory Read/Write Transaction
9. Lab5 : RTL Simulation:使用測試向量測試觀察結果(使用ModelSim模擬軟體)
10. Lab6 : Xilinx 90nm FPGA – Spartan3電路實作(使用Xilinx ISE9.1軟體)
 > FPGA電路合成(Synthesis)
 > FPGA電路實現(佈局及繞線-FloorPlan/Place&Route)
 > 產生FPGA Bitstream
11. Lab7 : Post Netlist Simulation:使用測試向量測試觀察結果(使用ModelSim模擬
軟體)
12. Lab8 : 實際電路驗證 with WinDriver & Boardland C++ Builder
 > 燒錄90nm FPGA – Spartan3 Bitstream到FPGA PCI Express介面卡
 > 將90nm FPGA – Spartan3PCI Express介面卡搭配WinDriver軟體於電腦中驗證
13. Lab9 : 設計之最佳化–如何解決選用不同包裝/腳位的FPGA時產生的時序
(timing)問題
 > 因應desing會因選擇不同FPGA的包裝/腳位產生的時序問題
 > 練習利用進階技巧-ISE FloopPlaner 找出對PCIe IP core最佳的pin location(FPGA腳位),以防止產生時序問題!
14. Xilinx 65 nm FPGA – Virtex 5 & PCIe Express Hardcore Introduction
15. Lab10 : 使用Xilinx 65 nm FPGA – Virtex 5內建PCI Express(x1/x4/x8)硬核實作
SRAM controller
 > 使用ISE Core Generator產生PCIe Hardcore IP及建立模擬環境
 > RTL Simulation:使用測試向量測試觀察結果
 > FPGA電路合成(Synthesis)
 > FPGA電路實現(佈局及繞線-FloorPlan/Place&Route)
 > 產生FPGA Bitstream
 > 實際電路驗證

報名繳費:

1. 電話報名:02-2312-2666分機60-63
2. 通訊報名:填寫報名表後傳真至02-23121918 或 email 到服務信箱: service@fitpi.com
3. 繳費方式:
 A. 郵局劃撥-戶名:傳識資訊股份有限公司 帳號:19508028
 B. 銀行匯款-戶名:傳識資訊股份有限公司 帳號:第一銀行總行營業部(007)09310109277
 C. 即期支票-抬頭:傳識資訊股份有限公司
4. 請於開課前繳清所有費用,以方便我們為您保留名額及座位

下載報名表

備註:

*註1: 本課程所使用PCI Express IP(x1,即one lane)及相關simulation model為合法試用版
*註2: PCI Express RAMDisk Controller可以接受WinDriver驅動程式的控制使用DMA方式讀取此PCI Express介面卡上的記憶體(SRAM)。

 

我有興趣,請與我聯絡!

課程名稱:

姓  名: 公司名稱:

聯絡電話: 分機: 行動電話:

電子郵件:

回前頁


★如果您有任何疑問或需求請與我們聯絡
傳識資訊股份有限公司 Finesse IT Partners Inc.
台北市中正區漢口街一段45號8樓• TEL:02-2312-2666•FAX:02-2312-1918