文檔版本 | 開發(fā)工具 | 測試平臺(tái) | 工程名字 | 日期 | 作者 | 備注 |
---|---|---|---|---|---|---|
V1.0 | ise14.7 | DBF板 | Day2/PCIETest1 | 2016.03.28 | lutianfei | none |
- 參考資料:
- Spartan 6 PCIE_V2.4 真教程(二)
- 菜鳥5小時(shí)速成FPGA_PCIE設(shè)計(jì)高手教程.pdf
- v6_pcie_ug517.pdf
- PCI+EXPRESS體系結(jié)構(gòu)導(dǎo)讀.pdf
- xapp1052.pdf
[TOC]
(一) 常見接口速度
(二)事務(wù)處理層協(xié)議理解
2.1 事物層空間說明
- 1屿笼、
PCI配置空間
:主要用于向系統(tǒng)提供設(shè)備自身的基本信息震糖,并接受系統(tǒng)對(duì)設(shè)備全局狀態(tài)的控制和查詢窃植。 - 2、
I/O空間
:主要包括設(shè)備的控制寄存器和狀態(tài)寄存器啤呼,一般用于控制和查詢設(shè)備的工作狀態(tài)以及少量數(shù)據(jù)的交換。 - 3呢袱、
存儲(chǔ)器空間
:主要包括內(nèi)存官扣、顯存、擴(kuò)展ROM羞福、設(shè)備緩沖區(qū)等惕蹄,一般用于存放大量數(shù)據(jù)和進(jìn)行數(shù)據(jù)塊交換。 - 4、
消息空間
: 傳遞消息的時(shí)間信號(hào)機(jī)制空間卖陵。
2.2 配置空間概述
- PCI設(shè)備只有在系統(tǒng)軟件初始化配置空間之后遭顶,才能夠被其他主設(shè)備訪問。當(dāng)PCI設(shè)備的配置空間被初值化之后泪蔫,該設(shè)備在當(dāng)前的PCI總線樹上將擁有一個(gè)獨(dú)立的PCI總線地址空間棒旗,即
BAR
(Base Address Register)寄存器所描述的空間。
2.2.1 配置空間寄存器說明
- Vendor ID : 代表PCI設(shè)備的生產(chǎn)廠商
- Device ID : 代表PCI廠商所生成的具體設(shè)備
- Revision ID : 記錄PCI設(shè)備的版本號(hào)鸥滨,可以看成Device ID寄存器的擴(kuò)展嗦哆。
-
Class Code :供系統(tǒng)軟件識(shí)別當(dāng)前PCI設(shè)備的分類。
- Base Class Code : 將PCI設(shè)備分類為顯卡婿滓、網(wǎng)卡老速、PCI橋等設(shè)備
- Sub Class Code : 對(duì)這些設(shè)備進(jìn)一步細(xì)分
- Interface : 編程接口
-
Header Type:有8位,其中
- 第7位:為1表示PCI設(shè)備為多功能設(shè)備凸主,為0表示單功能設(shè)備橘券。
- 第6~0位:0:PCI Agent 設(shè)備的配置空間(普通PCI都此設(shè)置);1:PCI橋使用的配置空間
-
Subsystem ID卿吐,Subsystem Vendor ID:與Device ID 旁舰、Vendor ID功能類似,但是進(jìn)一步細(xì)分了嗡官。
- Capabilities Pointer : PCIe設(shè)備必須支持此寄存器箭窜,存放一些與PCI設(shè)備相關(guān)的擴(kuò)展配置信息。
- Interrupt Pin :PCI通過了4個(gè)中斷引腳INTA#衍腥,INTB#磺樱,INTC#,INTD#
- Base Address Register0~5 : 保存PCI設(shè)備使用的地址空間的基地址婆咸,該基地址保存的是該設(shè)備在PCI總線域中的地址竹捉。
- Command:PCI設(shè)備的命令寄存器,在初始化時(shí)尚骄,值為0块差,此時(shí)該P(yáng)CI設(shè)備只能夠接受配置請求總線事物外,無法接受任何存儲(chǔ)器或者I/O請求倔丈。系統(tǒng)軟件需要合理設(shè)置該寄存器之后憨闰,才能訪問該設(shè)備的存儲(chǔ)器或I/O空間。(寄存器具體功能查看《PCI+EXPRESS體系結(jié)構(gòu)導(dǎo)讀》p49)
- Status :絕大多數(shù)是只讀位需五,保存PCI設(shè)備的狀態(tài)鹉动。
2.2.2 PCI總線配置概述
- Type00配置請求:與HOST主橋或PCI橋直接相連的PCI Agent設(shè)備或PCI橋。
- Type01配置請求:至少穿越一個(gè)PCI橋警儒,訪問沒有與其直接相連的PCI Agent設(shè)備或PCI橋训裆。
2.3 BAR空間概述
- PC啟動(dòng)后眶根,BIOS探測搜有的外設(shè)。對(duì)PCIe(PCI)設(shè)備來說边琉,BIOS檢測到板卡有多少個(gè)BAR空間属百,每個(gè)空間有多大,然后對(duì)應(yīng)為這些BAR空間分配地址变姨。對(duì)PCI設(shè)備來說族扰,它能“看”到PCIe板卡的空間只有BAR空間,也只能訪問這些BAR空間定欧。
- 板卡可以發(fā)送合法的 PCIe TLP 包渔呵,并得到 PC 端的響應(yīng);但是 PC 端訪問板卡被局限在 BAR 空間內(nèi)砍鸠。
2.3.1 BAR空間與DMA空間映射關(guān)系例子
2.4 事物處理層概述
TLP
(Transaction Layer Sepcification) 有三部分組成扩氢,幀頭
、數(shù)據(jù)
爷辱、摘要
(或者稱 ECRC)录豺。 TLP 頭標(biāo)長 3 或者 4 個(gè) DW,格式和內(nèi)容隨事物類型變化饭弓;數(shù)據(jù)端為 TLP 幀頭定義下的數(shù)據(jù)段双饥,如果該 TLP 不攜帶數(shù)據(jù),那該段為空弟断。 Digest段( Optional)是基于頭標(biāo)咏花、數(shù)據(jù)字段計(jì)算出來的 CRC,成為 ECRC阀趴,一般 Digest 段由 IP 核填充昏翰。所以, PCIe 的處理在用戶層表現(xiàn)為處理 TLP 中頭標(biāo)和數(shù)據(jù)段舍咖。
2.4.1 存儲(chǔ)器讀矩父、寫請求TLP包頭格式
-
Fmt與Type:規(guī)定事物類型锉桑、頭標(biāo)長度和是否有數(shù)據(jù)載荷排霉。
-
Posted與Non-Posted包
-
Non-posted
:即請求需要返回completion的響應(yīng)包; -
Posted
:即不需要completion返回響應(yīng)包民轴。例如上面的存儲(chǔ)器寫入請求
包和Message
包都隸屬于posted包攻柠。
-
** Length : 1~1024DW,當(dāng)值為0**:表示1024DW
-
DW BE:
Requester ID : 包含“生成這個(gè)TLP報(bào)文”的PCIe設(shè)備的總線號(hào)(Bus Number)、設(shè)備號(hào)(Device Number)后裸、功能號(hào)(Function Number)
Tag:Requester ID瑰钮、Tag合起來組成Transaction ID,在同一時(shí)間段內(nèi)微驶,PCIe設(shè)備發(fā)出的每一個(gè)Non-Posted數(shù)據(jù)請求TLP浪谴,其Transaction ID必須唯一开睡。也就是Tag必須唯一。
2.4.2 完成包報(bào)文頭格式
- Byte0~3 與存儲(chǔ)器苟耻、配置請求報(bào)文對(duì)應(yīng)字段含義一致篇恒。
- Completer ID:該字段存放“發(fā)送完成報(bào)文”的PCIe設(shè)備的ID號(hào)。
- Byte Count 記錄源設(shè)備還需要從目標(biāo)設(shè)備中獲得多少字節(jié)的數(shù)據(jù)就能完成全部數(shù)據(jù)傳遞凶杖。
- Lower Address:接收端必須使用存儲(chǔ)器讀寫完成TLP的Low Address 字段胁艰,識(shí)別一個(gè)TLP中包含數(shù)據(jù)的起始地址。
2.3.3 配置讀寫請求報(bào)文頭格式
- 配置請求TLP第07字節(jié)與存儲(chǔ)器請求類似智蝠,第811字節(jié)中的BUS腾么,Device和Function Number中存放該TLP訪問的目標(biāo)設(shè)備的相應(yīng)號(hào)碼。
- Ext Register和Reigister Number存放寄存器號(hào)杈湾。
-
配置請求報(bào)文的其他字段必須為一下值:
2.4.4 消息請求報(bào)文頭格式
-
PCIe總線規(guī)定了一下幾類消息報(bào)文:
- INTx Interrupt Signaling INTx中斷信息包
- Power Management 電源管理機(jī)能解虱。
- Error Signaling錯(cuò)誤信息包
- Locked Transaction Support 鎖住交易的支持
- Slot Power Limit Support插槽電源限制的支持
- Vendor-Defined Messages制造商自行定義信息
-
INTx 中斷消息報(bào)文