色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于FPGA的PCIE總線設計(上)

FPGA研究院 ? 來源:IP與SoC設計朽月 ? 2023-02-23 09:36 ? 次閱讀

PCIE簡介

PCI Express 是用來互聯計算機和外圍設備的高速接口總線,是一種能夠應用于移動設備,臺式電腦,工作站,服務器,嵌入式計算機和通信平臺等。

PCIe的兩個設備之間可以實現點對點的通信串行通信,如果是多臺設備需要通過交換器(Switch)進行互聯,這樣一個系統可以連接多個設備。

PCIe總線作為處理器系統的局部總線,其作用與PCI總線類似,主要目的是為了連接處理器系統中的外部設備,當然PCIe總線也可以連接其他處理器系統

在不同的處理器系統中, PCIe體系結構的實現方法略有不同。但是在大多數處理器系統中,都使用了RC、 Switch和PCIe-to-PCI這些基本模塊連接PCIe和PCI設備。在PCIe總線中,基于PCIe總線的設備,也被稱為EP(Endpoint)。

計算機通信平臺中 , PCI Express體系結構代表作高性能的外圍組件互聯方法

1、 由PCI 和PCI-X 體系結構演變而來architectures

2、 PCI Express 以一種串行的點對點的方式互聯兩個設備

3、 信息傳輸基于數據包協議實現

4、 PCI Express 互聯中可實現單通道或多通道的數據傳輸 5、 PCI Express 協議目前已經發布4個版本

40a03a02-b309-11ed-bfe3-dac502259ad0.png ?

PCIE的特性如下:

1、點對點傳輸

2、 串行總線意味著使用更少的引腳

3、 通道數可選擇: x1, x2, x4, x8, x12, x16, x32

4、 全雙工通信

5、 2.5Gbps / 5.0Gbps

6、 基于數據包的傳輸協議 計算機體系結構中PCIe的應用架構如下:

40c9d466-b309-11ed-bfe3-dac502259ad0.png ?

從上面我們可以看出PCIE應用架構主要包括四部分:

1、FSB總線CPU交互總線:FSB總線(Front Side Bus)是CPU和DDR內存交互的總線

2、Root Complex:RC (Root complex)是PCIe結構體系中的一個重要的結構部件, RC的提出跟X86系統架構密切相關,實際上只有在x86架構中才有標準的RC規范定義,而在其他系統中并不存在標準定義的RC的全部功能。例如X86的架構中包含DDR控制器和FSB to PCIe的橋, 而ZynqSoc芯片架構中包含AXI to PCIe的橋和DDR控制器,PowerPc只包含一個PCIe總線控制器。這里需要注意Root complex包括root port。

3、PCIe Switch:Switch PCIe鏈路通過Switch進行鏈路擴展

4、PCIe End point:即常見的PCIE終端設備,FPGA最常用的也是End point。

FPGA在PCIE中可以成為Root Complex、Switch和 End point:

41162096-b309-11ed-bfe3-dac502259ad0.png ?

PCIe總線層次結構主要包括三層主要是事務層、數據鏈路層、物理層。

1、事務層:PCIe總線層次結構的最高層,該層次將接收PCIe設備核心層的數據請求,并將其轉換為PCIe總線事務, PCIe總線使用的這些總線事務在TLP頭中定義。PCIe總線使用的數據報文首先在事務層中形成, 這個數據報文也被稱之為事務層數據報 文,即TLP。(解釋:主要意思也就是事務層將數據封裝成TLP包發給下層使用)

2、數據連路層:TLP在經過數據鏈路層時被加上Sequence Number前綴和CRC后綴,然后發向物理層。

3、物理層:PCIe的電氣特性、電路等。在PCIe鏈路可以正常工作之前,需要對PCIe鏈路進行鏈路訓練,在這個過程中,就會用。

LTSSM狀態機。LTSSM全稱是Link Training and Status State Machine。這個狀態機在PCIe總線的物理層之中。狀態轉移圖如下:

416aaf30-b309-11ed-bfe3-dac502259ad0.png ?

Detect狀態是PCIe鏈路訓練的開端。此外, Detect,顧名思義,需要實現檢測工作。因為在這個狀態時,發送端TX需要檢測接收端RX是否存在且可以正常工作,如果檢測正常,才能進入其他狀態。判斷RX是否存在的邏輯比較簡單,就是通過一個“Detect logic”電路比較RC時間常數的大小。

4198fc1e-b309-11ed-bfe3-dac502259ad0.png ?

從上圖可以發現PCIe終端連接上,時間常數會變大。多以也就以此決定Detect狀態是否進入下一個狀態。

Polling 狀態的目的是"對暗號",實現無障礙溝通。進入這個狀態后, TX和RX之間通過發送TS1、 TS2 OS序列來確定Bit Lock, Symbol Lock以及解決Lane極性反轉的問題。

Bit Lock: 在Bit傳輸過程中, RX PLL鎖定TX Clock頻率,這個過程稱為RX實現"Bit Lock。(解釋:也就是位同步)

Symbol Lock: RX端串并轉化器知道如何區別一個有效的10-bit Symbol,這個過程稱為“Symbol Lock”. 這里用到的是COM控制符。(解釋:也就是幀同步)

41f673ee-b309-11ed-bfe3-dac502259ad0.png ?

常見的視頻方案如下:

42381d12-b309-11ed-bfe3-dac502259ad0.png ?

FPGA中PCIE的實現:

1、7系列FPGA支持實現Gen1與Gen2的PCIE協議

2、Virtex-7 FPGA支持實現Gen3的PCIE協議

3、UltraScale與UltraScale+支持Gen3的PCIE協議

4、支持x1,x2,x4,x8,x16lanes的通路

5、PCIE的硬核使用了GTP接口用來串行傳輸數據

PCIE的速度傳輸速度如下:

426f64ca-b309-11ed-bfe3-dac502259ad0.png ?

FPGA中PCIE硬核的介紹,整體框圖如下:

42b12a72-b309-11ed-bfe3-dac502259ad0.png ?

1、該硬核PCIE支持Endpoint和Root Port

2、支持AXI4-Stream用戶接口: x1, x2, x4, 和x8 lanes; 64-bit 和128-bit位寬

Root Port簡要介紹

Xilinx FPGAs支持硬核root port,但是沒有硬核root complex。root complex包括一個或多個root port、內存,IO子系統等等。root port只是提供給switch或者endpoint連接的端口。二者之間的關系如下:

42d65824-b309-11ed-bfe3-dac502259ad0.png ?

root port經常使用在簡單的設計中,比如與單個的endpoint相連。root complex則有配套的軟件環境與復雜的設計。

FPGA構建root port的常見案例如下:

42f4ae82-b309-11ed-bfe3-dac502259ad0.png ?

FPGA構建root complex的常見案例如下:

431d950e-b309-11ed-bfe3-dac502259ad0.png ?

root port與endpoint也有許多不同點。root port使用Type 1配置頭空間。endpoint使用Type 0配置頭空間。兩者主要的區別如下:

4368970c-b309-11ed-bfe3-dac502259ad0.png ?

PCIE協議簡述

PCIE的地址空間

PCI Express實現了四種地址空間:

1、PCIe配置空間(多達4KB) – 必須有,每個PCI設備都有其映射到內存上的配置空間 – 前256字節與PCI兼容

2、PCIe內存映射空間 – 可選的,根據設備功能選擇是否需要映射內存空間

3、PCIe IO映射空間 – 可選的

4、PCIe消息空間

其中PCIe消息空間主要用于中斷的使用,內存映射空間用于大量數據的傳輸,IO映射空間用于少量數據的傳輸。

4388b938-b309-11ed-bfe3-dac502259ad0.png ?

Type0型: – 用于配置端點設備 – 由根復合體發起,配置預定義的PCI系統端點設備頭部區域 – 設備號/ID號 – BAR

Type1型: – 用于配置Switches/Bridges/end point

PCIE TLP包的數據類型

上面已經講解PCIE分別包括事務層、數據鏈路層、物理層,每一層對TLP包的作用如下:

43b871dc-b309-11ed-bfe3-dac502259ad0.png ?

這里的3DW與4DW其實是與地址是32位還是64位掛鉤。

具體TLP包在每層協議的情況如下:

43e05166-b309-11ed-bfe3-dac502259ad0.png ?

PCIE中TLP包的類型如下:

441e4278-b309-11ed-bfe3-dac502259ad0.png ?

PCIE的路由類型

PCIE每一種請求或者完成報文頭都會有類型標注,每個數據包的路由都基于以下三種方式:

1、 地址路由

2、 ID 路由

3、 隱含式路由

端點的地址路由

端點設備檢查TLP包中的地址與BAR中所有地址進行比較,如果不屬于本端點范圍,則拒絕。

端點的ID路由

端點設備檢查TLP包里的 總線 ID 和 設備 ID 功能ID是否與本端點一致,這些信息在Type0的配置信息里可以捕獲。

不同類型的TLP包與路由類型的對應關系如下:

444f61c8-b309-11ed-bfe3-dac502259ad0.png ?

PCIE點對點的傳輸框圖

1、配置IO傳輸

446fb48c-b309-11ed-bfe3-dac502259ad0.png ?

2、DMA傳輸

449ffce6-b309-11ed-bfe3-dac502259ad0.png ?

3、end point與end piont之間的傳輸

44de73d6-b309-11ed-bfe3-dac502259ad0.png ?

PCIE的中斷類型

PCIE的中斷類型主要有兩種:

1、MSI:消息中斷

2、INTx:引腳中斷 真正的PCIe設備:必須使用MSI發送中斷,可選擇性地支持INTx消息。

PCI設備:必須支持INTx消息

4503800e-b309-11ed-bfe3-dac502259ad0.png ?

PCIE的理論帶寬

Gen2單向鏈路速率5Gbps

1、 使用8B/10B編碼,產生20%的數據開銷

2、 理論帶寬=鏈路速率 80% 通道數

3、 對于單通道: – Gen1: 2.5Gbps0.8=250MBps – Gen2: 5Gbps0.8=500MBps – Gen3: 8Gbps*1=1GBps

4、 更多的開銷是由協議導致 – 數據頭 – 校驗位 – 鏈路訓練 – 錯誤通信

TLP包格式簡述

上面我們已經講解了TLP包常見的類型,那么這部分內容講解每種TLP包的具體格式。

一個TLP包的格式如下:

4531dcba-b309-11ed-bfe3-dac502259ad0.png ?

每位的詳細信息如下:

456bba20-b309-11ed-bfe3-dac502259ad0.png ?

接下來對上面的每一位進行粗略的介紹。

1、Fmt:用來指明TLP包是3DW還是4DW

2、Type:用來確定TLP包的類型, Memory read or write Completion packet Configuration packet Message

3、Traffic Class:除了MemoryRead/Write TLPs必須是零,一般情況是默認為0

4、Attr:包含有關處理事務時核心行為的特定信息

5、TD:當該位位1是,TLP包中包括CRC檢驗,為零時不包括CRC校驗

6、EP:指示此TLP包含錯誤且應忽略

7、AT:地址類型,一般默認為零即可。 Default/Untranslated (00) Translation Request (10) Translated (11)

8、Length Field:描述TLP包種有效數據的長度,注意單位時DW,最大長度時1024個DW長度

9、First/Last Byte Enables:四位中的每一位分別對應TLP包中的第一個DW和最后一個DW中的每個字節是否有效。一個DW正好也是4個字節。

Memory Write TLP Header格式

Memory Write TLP Header格式如下:

3DW的TLP包頭:

45998388-b309-11ed-bfe3-dac502259ad0.png ?

4DW的TLP包頭:

45dbafba-b309-11ed-bfe3-dac502259ad0.png ?

1、Requester ID:包括bus, device, and function numbers這些在ID路由的時候時必備信息

2、Tag:由用戶定義,具體的內容與作用,用戶進行商議。

3、Address:byte address,最低的兩位總是零對齊到DWord尋址。

Memory Read TLP Header格式

Memory Read TLP Header格式如下:

3DW的TLP包頭:

45998388-b309-11ed-bfe3-dac502259ad0.png ?

4DW的TLP包頭:

45998388-b309-11ed-bfe3-dac502259ad0.png ?

1、Tag – 這里得Tag主要用于返回得CplDs包得重組,因為飯回來得完成包不一定是按照順序返回的。

這里沒有什么新的位介紹,在前面我們已經介紹完畢。

Memory Read 是 Non‐Posted: Non‐Posted的請求總是生成一個完成包來回應。除非出現錯誤,否則Posted的請求永遠不會生成完成包。一般的MRd會產生一個帶有數據包的完成。一個讀請求可以生成一個或多個完成包。

Completions TLPs格式

46532860-b309-11ed-bfe3-dac502259ad0.png ?

1、Tag:這里需要注意Tag標志主要是為了接收端按照發送的順序組包

2、Lower Address:指示第一個啟用的數據字節的字節地址的低位,較低的地址和長度不能跨越一個RCB RCB: Read Completion Boundary

3、Byte count:表示在滿足請求之前剩余的字節數

4、Completion status:只是完成包的狀態: Successful completion (“000”) Unsupported request (“001”) Configuration request retry status (“010”) Completer abort (“100”)

5、Requester ID:請求CplD的設備的ID(bus, device, function)

6、Completer ID:正在構建CplD的設備的ID(bus, device, function) 返回的時候必須是RCB的整數倍。而且第一個要與RCB對齊,且不能超過MPS,這里給出一個官方的示例:

示例1:

46813930-b309-11ed-bfe3-dac502259ad0.png ?

示例2:

題目:

46b7791e-b309-11ed-bfe3-dac502259ad0.png ?

解答:

46ddd622-b309-11ed-bfe3-dac502259ad0.png471b87b0-b309-11ed-bfe3-dac502259ad0.png4770dd64-b309-11ed-bfe3-dac502259ad0.png ?

Message/Message with Data TLP格式

47b46b38-b309-11ed-bfe3-dac502259ad0.png ?

因為一般用不到我們進行手動組信息包,所以這里我們也就不詳細介紹。

PCIE IP核配置需要的注意點

這里簡單介紹一下PCIE核配置過程中的注意點,這次我們先不使用XDMA IP,使用下面的PCIE IP:

47e359d4-b309-11ed-bfe3-dac502259ad0.png ?

為了盡可能多的了解PCIE IP中的細節,我們選擇高級IP定制:

47f90112-b309-11ed-bfe3-dac502259ad0.png ?

1、選擇高級IP定制,供用戶選擇的功能增多

2、這里可以選擇這個PCIE IP核是當作endpoint還是root port來使用

3、這是指明這個PCIE IP再硬件中的位置編號

4、指明PCIE的lanes數目

5、指明一條lanes的最大通信速度

6、將PCIE轉換成AXI4協議的時鐘

7、將PCIE轉換成AXI4協議的數據位寬

8、PCIE IP的參考頻率

482b8b28-b309-11ed-bfe3-dac502259ad0.png ?

1、廠商ID,專屬于Xilinx的PCIE的ID,是固定的。

2、設備ID,與廠商ID一起指明數據的類型,被使用選擇PCIE上位機的軟件驅動。

3、版本ID,指明使用該PCIE IP進行設置的版本

4、子廠商ID,用來更近一步的區分Xilinx旗下的廠商

5、子系統ID,用來識別板卡的的ID

上面的值一般默認即可,不需要做太多的處理

485aece2-b309-11ed-bfe3-dac502259ad0.png ?

1、選擇使能Bar空間。這里需要注意的是,root port對于endpoint的訪問只能訪問bar空間,而endpoint對root port的讀寫操作可以訪問整個內存。

2、選擇Bar的地址是32位還是64位,空間大小一般選擇1K即可,只是用來傳輸一些命令。其值的大小與空間大小有關,具體的關系這里不清楚。

上面整個設置,再PCIE的頭配置空間中均有體現:

4888b14a-b309-11ed-bfe3-dac502259ad0.png48d63e88-b309-11ed-bfe3-dac502259ad0.png ?

1、這里可以加上buffer進行優化,其余的默認即可。

490840d6-b309-11ed-bfe3-dac502259ad0.png ?

1、這里我們一般不選擇共享邏輯

4931e2ba-b309-11ed-bfe3-dac502259ad0.png ?

1、引腳中斷,傳統意義下的中斷,在PCIE中基本上不再使用 2、消息中斷,在PCIE中較為常用

4947a35c-b309-11ed-bfe3-dac502259ad0.png ?







審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • FPGA
    +關注

    關注

    1629

    文章

    21729

    瀏覽量

    602991
  • PCI
    PCI
    +關注

    關注

    4

    文章

    663

    瀏覽量

    130251
  • 嵌入式計算機

    關注

    0

    文章

    63

    瀏覽量

    12205
  • 交換器
    +關注

    關注

    2

    文章

    90

    瀏覽量

    16543
  • PCIe接口
    +關注

    關注

    0

    文章

    120

    瀏覽量

    9702

原文標題:基于FPGA的PCIE設計(1)

文章出處:【微信號:FPGA研究院,微信公眾號:FPGA研究院】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    基于FPGAPCIE總線擴展卡的設計

      PCIE(PCI express)是用來互聯諸如計算機和通信平臺應用中外圍設備的第三代高性能I/0總線。PCIE體系結構繼承了第二代
    發表于 10-08 10:19 ?2028次閱讀
    基于<b class='flag-5'>FPGA</b>的<b class='flag-5'>PCIE</b><b class='flag-5'>總線</b>擴展卡的設計

    FPGAPCIE接口應用需要注意哪些問題

    FPGAPCIe接口應用是一個復雜的任務,需要考慮多個方面的問題以確保系統的穩定性和性能。以下是在FPGAPCIe接口應用中需要注意的
    發表于 05-27 16:17

    PCIE總線FPGA設計方法

    `PCIE總線FPGA設計方法`
    發表于 10-30 14:30

    6678 pcieFPGA接口

    6678的pciefpgapcie? TX和RX需要交叉接么?DSP的TX接到FPGA的rx,DSP的RX接到FPGA的TX? ?
    發表于 06-21 15:49

    尋求fpga大牛開發一個簡單的fpga pcie設備

    需求:兩塊fpga互聯,兩塊fpga分別模擬成特定的pcie設備,兩個設備通過serdes總線互聯通信,fpga僅僅只要模擬特定的設備就可以
    發表于 02-11 15:31

    如何通過PCIe進行FPGA到PC的通信?

    結束?是否有任何示例設計可以通過PCIe DMA子系統從FPGA在PC產生中斷。如何在PC端寫入由PCIe中斷觸發的中斷服務程序?謝謝,尼基爾
    發表于 05-08 09:40

    如何利用PCIe DMA總線實現一個基于FPGAPCIe 8位數據采集卡?

    PCIe總線通信過程是怎樣的?是什么原理?如何利用PCIe DMA總線實現一個基于FPGAPCIe
    發表于 09-17 07:16

    PCIe總線和PCI總線有哪些不同之處呢

    PCIe是什么?PCIe的架構是由哪些部分組成的?PCIe總線和PCI總線有哪些不同之處呢?
    發表于 10-26 08:10

    PCIE總線FPGA設計方法

    PCIE與PCI、K1.X等總線技術進行比較,分析它的技術特性和優勢,剖析數據包在各層中的流動過程。/并且詳細闡述基于FPGA的兩種盯行性實現方案,即采用第三方PHY接口器件和低成本
    發表于 08-31 17:42 ?155次下載
    <b class='flag-5'>PCIE</b><b class='flag-5'>總線</b>的<b class='flag-5'>FPGA</b>設計方法

    基于PCIE總線的多DSP系統接口設計

    開發了多DSP雷達信號處理板卡。對DSP互連、DSP與FPGA通信以及基于Xilinx FPGAPCIE總線進行設計。系統可擴展性好、效率高。用DriverStudio開發了WDM
    發表于 05-28 17:40 ?75次下載
    基于<b class='flag-5'>PCIE</b><b class='flag-5'>總線</b>的多DSP系統接口設計

    基于FPGAPCIe總線接口的DMA控制器的實現并進行仿真驗證

    本文實現的基于FPGAPCIe總線接口的DMA控制器是在Altera PHY IP和Synopsys Core IP的基礎實現的,利用Synopsys VIP驗證環境進行了功
    的頭像 發表于 01-11 10:57 ?1.3w次閱讀
    基于<b class='flag-5'>FPGA</b>的<b class='flag-5'>PCIe</b><b class='flag-5'>總線</b>接口的DMA控制器的實現并進行仿真驗證

    基于FPGAPCIe設備如何才能滿足PCIe設備的啟動時間的要求?

    根據PCIe的協議,當設備啟動后,PCIe設備必須滿足啟動時間的要求,即電后100ms內,完成PCIe設備的初始化。如果不能滿足PCIe
    發表于 06-19 10:24 ?8279次閱讀
    基于<b class='flag-5'>FPGA</b>的<b class='flag-5'>PCIe</b>設備如何才能滿足<b class='flag-5'>PCIe</b>設備的啟動時間的要求?

    如何使用FPGAPCIe總線進行DMA平臺設計

    , PCI_ X等總線,因其性能無法達到系統的傳輸要求,正逐步淘汰,PCIe總 線作為新一代的總線標準,它具有數據傳輸速率高,可更好地支持未來高端顯卡等優點,在LTE系統的物理層中,設計基于P
    發表于 11-13 16:40 ?29次下載
    如何使用<b class='flag-5'>FPGA</b>的<b class='flag-5'>PCIe</b><b class='flag-5'>總線</b>進行DMA平臺設計

    PCIe 9110IM PCIe總線轉CAN設備手冊

    電子發燒友網站提供《PCIe 9110IM PCIe總線轉CAN設備手冊.pdf》資料免費下載
    發表于 10-17 10:59 ?1次下載
    <b class='flag-5'>PCIe</b> 9110IM <b class='flag-5'>PCIe</b><b class='flag-5'>總線</b>轉CAN設備手冊

    基于FPGAPCIE I/O控制卡通信方案

    本文介紹一個FPGA 開源項目:PCIE I/O控制卡。一篇文章《FPGA優質開源項目– PCIE通信》開源了基于
    的頭像 發表于 09-01 16:18 ?3350次閱讀
    基于<b class='flag-5'>FPGA</b>的<b class='flag-5'>PCIE</b> I/O控制卡通信方案
    主站蜘蛛池模板: 亚洲国产中文在线视频| 成年女人免费影院播放| 最近日本MV字幕免费观看视频| 伊人久久大香线蕉无码麻豆| 羽月希被黑人吃奶dasd585| 最近中文字幕完整版高清| china男士同性视频tv| 动漫美女禁区图| 国产亚洲精品久久久久久国模美 | 在线看片成人免费视频| 在线 日韩 欧美 国产 社区| 99久久国内精品成人免费| 成人免费精品视频| 国产午夜精品AV一区二区麻豆| 火影小南被爆羞羞网站| 美女扒开尿口让男生添动态图| 亲胸揉胸膜下刺激视频网站APP| 色播成人影院| 亚洲破处女| 999精品免费视频| 差差差差差差差差免费观看| 国产色青青视频在线观看 | 肉色欧美久久久久久久蜜桃| 亚洲国产cao| 777久久人妻少妇嫩草AV| 国产成人精品综合在线观看| 精品熟女少妇AV免费观看| 女教师公车痴汉在线播放| 四虎影视永久无码精品| 伊人久久综合影院首页| 超碰在线线公开免费视频| 激情办公室| 青青草国产自偷拍| 亚洲欧美日本久久综合网站 | 在线日本高清日本免费| 办公室的秘密2中文字幕| 国产麻豆剧果冻传媒免费网站| 女性酥酥影院| 视频一区国产在线二区| 最近2019中文字幕免费| 国产成人精品免费青青草原app |