基于FPGA的PCIe設計_第1頁
基于FPGA的PCIe設計_第2頁
基于FPGA的PCIe設計_第3頁
基于FPGA的PCIe設計_第4頁
基于FPGA的PCIe設計_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、基于FPGA的PCIe設計1. PCIe簡介1.1. PCIe基本架構PCIe的優(yōu)勢以其復雜性為代價。PCIe是基于分組的串行連接協(xié)議,估計比PCI并行總線復雜10倍以上。這種復雜性部分源于在千兆赫速率所要求的并行到串行的數(shù)據(jù)轉換以及轉向基于分組的實現(xiàn)。PCIe保持了PCI基于加載存儲的基本架構,包括對PCI-X增加的對分割事務的支持。此外,它引進了一系列底層信息傳送要件來管理鏈接(如鏈路層流量控制)以模仿傳統(tǒng)并行總線的邊帶線,且提供了更高水平的robustness和功能。該規(guī)范定義了許多特性、能同時支持當今的需求和未來的擴展需要,且同時與PCI保持了軟件兼容。PCI Express的先進特性

2、包括:主動電源管理;先進的錯誤報告;通過端對端循環(huán)冗余校驗(ECRC)支持的端對端的可靠性;支持熱插拔以及服務質量(QoS)流通類。一個簡化系統(tǒng)的拓撲結構包括四個功能類型,根聯(lián)合體根聯(lián)合體(root complex)、交換器(switch)、端點(multiple Endpoints)和橋(bridge)。1. ROOT Complex:根聯(lián)合體對整個PCIe建構實施初始化并配置各鏈路。它通常把中央處理單元 (CPU)與其它三個功能中的一或多個PCIe交換器、PCIe端點和PCIe到PCI橋連接起來;2. Endpoint:端點通常位于終端應用內,它負責連接應用與系統(tǒng)內的PCIe網(wǎng)絡。端點要求

3、并完成PCIe事務傳輸。一般來說,系統(tǒng)內的端點比任何其他類型的PCIe部件都要多;(1)Legacy Endpoint;(2)PCI Express Endpoint;(3)Root Complex Integrated Endpoint;3. Switch:PCIe交換器把數(shù)據(jù)路由至下游多個PCIe端口,并分別從其中每個端口路由到上游唯一一個根聯(lián)合體。PCIe交換器也可以靈活地把數(shù)據(jù)從一個下游端口路由到另一個下游端口(點對點),它消除了傳統(tǒng)PCI系統(tǒng)限制性的樹狀結構;4. Root Complex Event Collector;5. PCI Express-PCI Bridge:橋用于連接

4、PCIe與系統(tǒng)內諸如PCI/PCI-X等其他PCI總線標準,這樣的系統(tǒng)同時采用上述各總線架構;1.2. PCIe協(xié)議規(guī)格PCIe 規(guī)范對于設備的設計采用分層的結構,有事務層、數(shù)據(jù)鏈路層和物理層組成,各層有都分為發(fā)送和接收兩功能塊。在設備的發(fā)送部分,首先根據(jù)來自設備核和應用程序的信息,在事務層形成事務層包(TLP),儲存在發(fā)送緩沖器里,等待推向下層;在數(shù)據(jù)鏈路層,在TLP 包上再串接一些附加信息,這些信息是對方接收TLP包時進行錯誤檢查要用到的;在物理層,對TLP 包進行編碼,占用鏈路中的可用通道,從發(fā)送器發(fā)送出去。事務層包(TLP),數(shù)據(jù)鏈路層包(DLLP),物理層(PLP)產生于各自所在層,

5、最后通過電或光等介質和另一方通訊。這其中數(shù)據(jù)鏈路層包(DLLP),物理層(PLP)的包不需要關心,在PCIeHIP核中封裝好了。在 FPGA上做 PCIe的功能就是完成事務層包(TLP)的處理。1.3. 處理層(Transaction Layer)處理層接收來自PCIe設備應用的數(shù)據(jù),并將其封裝為TLP(Transaction Layer Packet)后,發(fā)向數(shù)據(jù)鏈路層。此外事務層還可以從數(shù)據(jù)鏈路層中接收數(shù)據(jù)報文,然后轉發(fā)至PCIe設備的核心層。處理層在應用層和數(shù)據(jù)鏈路層之間,來產生和接收傳輸層的包。處理層包括:發(fā)送數(shù)據(jù)路徑,配置空間和接收路徑。接收數(shù)據(jù)流程:1)收到從數(shù)據(jù)鏈路層來的TLP;

6、2)配置空間用來確定處理層的包是否正確;3)在每個虛擬通道,處理層的包被存在接收buffer中一個特定的部分(由收發(fā)類型確定:posted,non-posted,completion);4)處理層packet FIFO 塊用來存儲buffer傳輸層包的地址;發(fā)送數(shù)據(jù)流程:1)MegaCore通過tx_cred35:0來給應用層提供信息;2)應用層會請求傳輸層給它包,此時應用層需要提供提供PCI Express傳輸字頭在tx_desc127:0中,已經(jīng)數(shù)據(jù)在tx_data63:0中;3)Megacore會確認suffiicient flow control credits,并確定是相應還是延遲請

7、求;4)處理層仲裁各虛擬通道,然后選擇優(yōu)先級高的數(shù)據(jù)給數(shù)據(jù)鏈路層;1.3.1. 處理層結構1.3.2. TLP報文TLP有三部分組成,幀頭、數(shù)據(jù)、摘要(或者稱ECRC)。TLP 頭標長3或者4個DWORD,格式和內容隨報文類型變化,如下圖所示。l Fmt1:0 Format of TLP bits 6:5 of byte 0;l Type4:0 Type of TLP bits 4:0 of byte 0;l TC2:0 Traffic Class bits 6:4 of byte 1;l Attr1:0 Attributes bits 5:4 of byte 2;l TD 1b indica

8、tes presence of TLP digest in the form of a single DW at the end of the TLP bit 7 of byte 2;l EP indicates the TLP is poisoned bit 6 of byte 2;l Length9:0 Length of data payload in DW bits 1:0 of byte 2 concatenated with bits 7:0 of byte 3;數(shù)據(jù)端為TLP 幀頭定義下的數(shù)據(jù)段,如果該TLP 不攜帶數(shù)據(jù),那該段為空。Digest段(可選)是基于頭標、數(shù)據(jù)字段計算

9、出來的CRC,成為ECRC,一般Digest 段由IP核填充。1.3.3. Non-posted & Posted如果設備發(fā)起端發(fā)出一個Non-Posted請求,在一定時間后,接收端需要回復一個完成包給發(fā)起端。如果發(fā)出的是Posted請求,不需要回復完成包給發(fā)起端。n Posted Requests: Requests that do not require a Completion;n Non-posted Requests: A valid Requester ID is required to properly route the resulting completions;除了

10、Memory Write和Message事務屬于Posted報文,其他事務報文都是Non-posted報文,例如Memory Read、IO和Configuration等報文。1.4. 數(shù)據(jù)鏈路層(Data Link Layer)1.4.1. 數(shù)據(jù)鏈路層結構 Link management through the reception and transmission of data link layerpackets, which are used for the following functions: To initialize and update flow control credit

11、s for each virtual channel; For power management of data link layer packet reception and transmission; To transmit and receive ACK/NACK packets; Data integrity through generation and checking of CRCs for transaction layer packets and data link layer packets; Transaction layer packet retransmission i

12、n case of NAK data link layer packet reception using the retry buffer, Management of the retry buffer; Link retraining requests in case of error through the LTSSM of the physical layer;1.4.2. DLLP報文數(shù)據(jù)鏈路層保證來自發(fā)送端事務層的報文可以可靠、完整地發(fā)送到接收端的數(shù)據(jù)鏈路層。來自事務層的報文在通過數(shù)據(jù)鏈路層時,將被添加Sequence Number前綴和CRC后綴。數(shù)據(jù)鏈路層使用ACK/NAK協(xié)議保

13、證報文的可靠傳遞。PCIe總線的數(shù)據(jù)鏈路層還定義了多種DLLP(Data Link Layer Packet),DLLP產生于數(shù)據(jù)鏈路層,終止于數(shù)據(jù)鏈路層。值得注意的是,TLP與DLLP并不相同,DLLP并不是由TLP加上Sequence Number前綴和CRC后綴組成的。1.5. 物理層(Physical Layer)物理層是PCIe總線的最底層,將PCIe設備連接在一起。PCIe總線的物理電氣特性決定了PCIe鏈路只能使用端到端的連接方式。PCIe總線的物理層為PCIe設備間的數(shù)據(jù)通信提供傳送介質,為數(shù)據(jù)傳送提供可靠的物理環(huán)境。物理層可以分割成2個子層:電氣層和邏輯層。而有一些公司已經(jīng)在

14、電氣層和邏輯層之間定義和采用了一種接口,這種接口稱為PCI Express物理接口(PIPE)??刂破魑锢韺佑糜谂cPHY的接口,并用于管理許多能夠發(fā)起鏈路構建數(shù)據(jù)包的功能。一些特殊序列用于建立物理鏈路、進入和退出低功耗鏈路狀態(tài)等。這些序列用于同步PCIe鏈路,并進行鏈路管理。值得注意的是PCIe設備發(fā)送PLP與發(fā)送TLP的過程有所不同。物理層的接收部分負責:n 通道映射、通道間去偏移,適用于由多條線路構成的鏈路。n 數(shù)據(jù)解擾n 數(shù)據(jù)包檢測和解幀n 檢查特殊數(shù)據(jù)包序列,例如TS1、TS2、跳過和電氣空閑。物理層的發(fā)送部分負責:n 采用特殊符號插入來對數(shù)據(jù)包進行封幀,例如采用STD或SDP符號來標

15、志數(shù)據(jù)包的開始,用END符號來標志結尾。n 數(shù)據(jù)加擾。n 鏈路控制初始化、帶寬和線路反轉(lane-reversal)協(xié)商。n 多條線路發(fā)送控制。n 生成跳過序列來補償鏈路兩端的時鐘PPM差異。1.5.1. 物理層結構 Initializing the link; Scrambling and descrambling and 8B/10B encoding and decoding of 2.5 Gbps (Gen1) or 5.0 Gbps (Gen2) per lane 8B/10B; Serializing and deserializing data;The hard IP impl

16、ementation includes the following additional functionality: PIPE 2.0 Interface Gen1/Gen2: 8-bit250/500 MHz (fixed width, variable clock); Auto speed negotiation (Gen2); Training sequence transmission and decode; Hardware autonomous speed control; Auto lane reversal;1.5.2. LTSSM物理層是PCIe體系結構最重要,也是最難以實

17、現(xiàn)的組成部分。PCIe總線的物理層定義了LTSSM(Link Training and Status State Machine)狀態(tài)機,在PCIe鏈路可以正常工作之前,需要對PCIe鏈路進行鏈路訓練。PCIe鏈路使用該狀態(tài)機管理鏈路狀態(tài),并進行鏈路訓練、鏈路恢復和電源管理。LTSSM狀態(tài)機涵蓋了11個狀態(tài),包括Detect,Polling,Configuration,Recovery,L0,L0s,L1, L2,Hot Reset,Loopback,Disable。這11個狀態(tài)之間轉換的邏輯,如下圖所示,這11個狀態(tài)大致可以分為4大類:(1) PCIe鏈路訓練相關。正常的PCIe鏈路訓練狀態(tài)

18、轉換流程依次是,Detect->Polling->Configuration->L0。L0是PCIe鏈路可以正常工作的電源狀態(tài);(2) PCIe鏈路重新訓練相關。這個狀態(tài)也稱為Recovery。Recovery是一個非常重要的鏈路狀態(tài),進入這個狀態(tài)的因素也很多,比如電源狀態(tài)的變化,PCIe鏈路速率的變化等;(3) 電源狀態(tài)相關。PCIe總線的電源狀態(tài)主要有兩部分的內容:1. 基于軟件控制的PCI-PM電源管理機制,是系統(tǒng)軟件通過修改寄存器中的電源管理字段,使PCIe設備進入D狀態(tài):D0,D1,D2,D3;2. 基于硬件控制的ASPM(=Active State Power M

19、anagement)電源管理機制,是基于硬件自主控制的鏈路電源管理機制,只有在PCIe設備處于D0狀態(tài)是才可以啟動ASPM機制,另外,與ASPM有關的鏈路狀態(tài)有L0s,L1(包括L1.1和L1.2);(4) 其他相關,比如Hot Reset, Link Disable, Loopback等;1.6. PCIe HIP設置1.6.1. Hard IP模塊結構1.6.2. System設置1) Pcie core的類型:軟核、硬核。2) PHY type: 選擇用不同的器件來實現(xiàn),可以看到下面支持lane的數(shù)量的不同。3) Port type: Native Endpoint、Legacy End

20、point、Root point。4) Xcvr ref_clk: 設置reclk的輸入時鐘,可以在手冊中清楚看到,對于不同的器件,輸入?yún)⒖紩r鐘的區(qū)別。5) Application Interface: 用于指定PCI Express中傳輸層和應用層的接口,如果用MegaWizard,建議采用Avalon-ST.6) Application clock: 指定應用的接口時鐘,在選擇硬核和軟核時有區(qū)別。7) Max rate: Gen1(2.5Gbps), Gen2(5.0Gbps)8) Test out width: 設置test_out的寬度,對于不同的核和lanes有不同的設置。9) PC

21、Ie reconfig: 重配置硬核只讀配置寄存器。1.6.3. PCIe Register對PCIe(PCI)設備來說,CPU初始化會檢測到FPGA有多少個BAR 空間,每個空間有多大,然后對應為這些BAR 空間分配地址。對系統(tǒng)設備來說,它能“看”到FPGA的空間就是BAR 空間,只能訪問這些BAR 空間。也就是說,CPU端通過PCIe接口訪問FPGA被局限在BAR空間內。在FPGA 中,BAR空間的設置根據(jù)用戶邏輯設計的需求來定義大小。1.6.4. Capabilities Parameter1) Tags supported:設置支持non-posted報文請求的tags數(shù)目。Hard

22、IP:32 or 64 tags for X1,X4和X8模式。Soft IP:4-256 for X1和X4模式,4-32 for X8模式。2) Implement completion timeout disable:該選項只對Gen2的Root Port和Endpoint有效.3) Completion Time out range:你可以選擇ABCD,分別對應不同的時間范圍。4) Error Reporting:可以顯示的錯誤信息。5) MSI Capabilities:用來設置應用層請求數(shù)量,將此值設置給消息控制寄存器。SOPC只支持1個MSI。6) link Capabiliti

23、es:Link common clock:是否用系統(tǒng)提供的普通參考時鐘給PHY來做參考時鐘,建議選用。Data link layer active reporting:只在root port有效Link port number: 將只讀端口數(shù)目設置到link Capabilities寄存器中。7) Slot Capability:Table 3-3中詳細介紹了Slot capability寄存器中各個值對應的意義。該選項只對Root Port有效。8) MSI-X capabilities:此中斷只對Hard IP的Endpoint有效。MSI-X Table size:系統(tǒng)軟件讀這個地方來確定MSI-X Tabl

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論