91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于VIVADO的PCIE IP的使用

麻辣軟硬件 ? 來源:CSDN技術(shù)社區(qū) ? 作者:朽月 ? 2021-08-09 16:22 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

基于VIVADO的PCIE IP的使用

項目簡述

上一篇內(nèi)容我們已經(jīng)對PCIE協(xié)議進(jìn)行了粗略的講解。那么不明白具體的PCIE協(xié)議,我們就不能在FPGA中使用PCIE來進(jìn)行高速數(shù)據(jù)傳輸了嗎?答案是否定的。因為Xilinx官方給我們提供了完善的PCIE IP,基于這些IP我們設(shè)置不需要知道TLP包的組包原理我們便可以把PCIE使用起來。

這篇博客我們主要把FPGA作為endpoint來進(jìn)行講解,當(dāng)然也對作為root port進(jìn)行簡單的描述。我們使用的主要IP是XDMA,主要參考資料是米聯(lián)客。如果對IP的使用感覺到疑惑可以參考米聯(lián)客的資料。

因為手頭上硬件條件不夠,沒辦法進(jìn)行下板測試,我們主要進(jìn)行介紹IP的定制和Block Design的搭建。

XDMA IP的定制

為什么使用XDMA IP而不使用我們前面介紹的PCIE IP,因為前面介紹的IP需要我們自己構(gòu)建TLP包,還有分散收集策略,基于該IP使用起來PCIE還是有點困難。但是XDMA就特別簡單了,他不需要FPGA設(shè)計者熟悉PCIE協(xié)議,直接將PCIE協(xié)議轉(zhuǎn)換成AXI4與AXI_Lite協(xié)議,可以直接對DDR進(jìn)行操作。

XDMA內(nèi)部的分散收集操作、TLP組包、DMA操作等等進(jìn)行了完整的封裝。我們可以把XDMA IP看成我們經(jīng)常使用的ZYNQ IP,他的BAR空間被AXI_Lite總線進(jìn)行讀寫操作用于寄存器的配置,AXI總線用于大數(shù)據(jù)的傳輸直接與DDR對接。

XDMA的內(nèi)部額框圖如下:

550679e6-f872-11eb-9bcf-12bb97331649.png

對XDMA的內(nèi)部描述如下:

1、AXI4、 AXI4-Stream,必須選擇其中一個,用來數(shù)據(jù)傳輸

2、 AXI4-Lite Master,可選,用來實現(xiàn)PCIE BAR 地址到 AXI4-Lite 寄存器地址的映射,可用來讀寫用戶邏輯寄存器

3、 AXI4-Lite Slave,可選,用來將XDMA 內(nèi)部寄存器開放給用戶邏輯,用戶邏輯可以通過此接口訪問 XDMA內(nèi)部寄存器,不會映射到BAR

4、AXI4 Bypass 接口,可選,用來實現(xiàn)PCIE 直通用戶邏輯訪問,可用于低延遲數(shù)據(jù)傳輸

首先選擇XDMA IP如下:

5814d632-f872-11eb-9bcf-12bb97331649.png

雙擊點開該IP的配置:

1、該IP是作為Endpoint來進(jìn)行PCIE操作的

2、IP定制的模式是高級,這樣一來可供選擇的IP定制選項就會增多

3、PCIE硬核的位置,這里我們的芯片只有一個硬核,所以這里默認(rèn)即可

4、lane的個數(shù),與開發(fā)板相對應(yīng),這里選擇2個

5、XDMA將PCIE轉(zhuǎn)換成AXI協(xié)議,這個就是AXI協(xié)議的位寬

6、該片子的高速串行接口是GTP口,支持PCIE Gen1 Gen2協(xié)議,速度分別是2.5GT/s 5GT/s,這里選擇最大速度5 GT/s

7、PCIE參考時鐘的頻率,與板子的時鐘情況有關(guān),這里是100MHz

8、AXI總線的時鐘頻率,這里我們選擇125MHz

9、這里我們直接將PCIE協(xié)議轉(zhuǎn)換成AXI協(xié)議,而不選擇AXI Stream協(xié)議,簡化我們的操作

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

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

3、版本ID,指明使用該PCIE IP進(jìn)行設(shè)置的版本

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

5、子系統(tǒng)ID,用來識別板卡的的ID

6、PCIE在實驗中承擔(dān)的角色,這里我們選擇默認(rèn)即可

1、首先使能 PCIE to AXI Lite Master Interface ,這樣可以在主機一側(cè)通過PCIE 來訪問用戶邏輯側(cè)寄存器或者其他AXI4-Lite 總線設(shè)備

2、主機側(cè)PCIE BAR 地址與用戶邏輯側(cè)地址是不一樣的,這個設(shè)置就是進(jìn)行BAR 地址到AXI 地址的轉(zhuǎn)換,比如主機一側(cè) BAR 地址為0, IP 里面轉(zhuǎn)換設(shè)置為 0x80000000,則主機訪問 BAR 地址 0 轉(zhuǎn)換到AXI LIte 總線地址就是0x80000000,這點的理解特別重要

3、選擇64bit 使能

4、用來實現(xiàn)PCIE 直通用戶邏輯訪問,可用于低延遲數(shù)據(jù)傳輸,這里不選擇。

1、選擇消息中斷,因為下面的工程中使用了2個中斷,所以這里我們選擇2

2、引腳中斷,這里選不選擇意義不大

其余的默認(rèn)設(shè)置即可。

1、2、Number of DMA Read Channel(H2C)和Number of DMA Write Channel(C2H)通道數(shù),對于PCIE2.0 來說最大 只能選擇 2,也就是 XDMA 可以提供最多兩個獨立的寫通道和兩個獨立的讀通道,獨立的通道對于實際應(yīng)用中 有很大的作用,在帶寬允許的前提前,一個PCIE 可以實現(xiàn)多種不同的傳輸功能,并且互不影響。這里我們選擇1。

其余的默認(rèn)即可。

這里我們不共享任何邏輯。

經(jīng)過上面的設(shè)置,我們已經(jīng)定制了常規(guī)的XDMA IP,接下來講解常用的Block Design設(shè)計。

PCIE Endpoint的工程框圖

這里我們使用米聯(lián)客中的一個例子,個人認(rèn)為這是上面最難的例子了,涉及到了XDMA中斷的使用。(這里只做粗略介紹,想詳細(xì)學(xué)習(xí)的還是得看米聯(lián)客官方的資料)

本例子主要講述基于 PCIE XDMA IP 實現(xiàn)的一個圖像傳輸應(yīng)用,圖像的數(shù)據(jù)流控制主要用到了 VDMA IP。整個項目的框圖如下:

5b664abe-f872-11eb-9bcf-12bb97331649.png

由上圖可以看出,圖像數(shù)據(jù)是由 PC 端產(chǎn)生,然后用過 XDMA 傳輸?shù)?ZYNQ 的 DDR3(通過 HP 接口),數(shù)據(jù)再經(jīng)過一個 MM2S 的 VDMA 從 ZYNQ 的 DDR(通過 HP 接口)讀出到 AXIS 接口,經(jīng)過 AXIS to VIDEO 轉(zhuǎn)換到視頻時序,可以做視頻處理,之后再經(jīng)過 VIDEO to AXIS 轉(zhuǎn)換到 AXIS 接口,經(jīng)過 MM2S 的 VDMA 存入 DDR, XDMA再從 DDR 將圖像數(shù)據(jù)讀出到底 PC。這里面實際上包含了兩條傳輸路徑,一條是 PCIE 到視頻,一條是視頻到 PCIE,一個工程,兩個操作例子,很有參考意義。

從上面的工程我們可以學(xué)到,F(xiàn)PGA 端主要實現(xiàn)如下功能

1、 XDMA 與 DDR 數(shù)據(jù)通信

2、 VDMA 實現(xiàn)視頻數(shù)據(jù)搬運

3、 可編程 VTC(Video Timing Control)模塊,提供視頻時序功能

4、 AXIS to Video 模塊,實現(xiàn) axis 到視頻時序的轉(zhuǎn)換

5、 圖像處理模塊,用戶可自定義圖像處理功能,例程中實現(xiàn)彩色圖像的飽和度調(diào)整算法

6、 Video to AXIS 模塊,實現(xiàn)視頻時序到 AXIS 的轉(zhuǎn)換

7、 用戶邏輯寄存器模塊,可橋接到 XDMA,實現(xiàn)上位機通過 XDMA 對 FPGA 的寄存器控制

8、 讀取本地圖像生成圖像傳輸鏈表

9、 通過 VDMA 的 MM2S 中斷來從 WIN64 傳輸圖像到 FPGA DDR

10、通過 VDMA 的 S2MM 中斷來從 FPGA DDR 獲取圖像數(shù)據(jù),這些中斷是經(jīng)過XDMA傳輸?shù)缴衔粰C

關(guān)于可以學(xué)到的XDMA部分我們已經(jīng)加粗。

項目的Block Design設(shè)計圖如下:

5bcc4c60-f872-11eb-9bcf-12bb97331649.png

這里主要介紹一下XDMA在上面的Block Design設(shè)計中起到的作用。

1、使用PCIE轉(zhuǎn)AXI的總線將圖像數(shù)據(jù)存儲到DDR、將DDR中的數(shù)據(jù)搬移到DDR中

2、通過AXI_Lite接口來配置兩個VDMA的IP,使其能夠正常工作起來,配置數(shù)據(jù)是PC機發(fā)送來的數(shù)據(jù)

3、通過AXI_Lite接口來配置Bram,通過這個ram來與PC機進(jìn)行一定的數(shù)據(jù)交互,解決圖像斷幀的現(xiàn)象

4、通過兩個VDMA的中斷信號使得XDMA產(chǎn)生中斷信號,告訴PC機進(jìn)行一定的處理

上面的Block Design的設(shè)計,我們只講解了XDMA的作用,至于VDMA的作用,這里不再講解,因為個人認(rèn)為VDMA IP還是有點雞肋,因為需要進(jìn)行配置、數(shù)據(jù)也需要上游模塊主動進(jìn)行讀取寫入。這個完全可以用自定義的AXI IP來代替。

如果真把上面的流程搞明白了,那么可以熟練的實現(xiàn)FPGA開發(fā)板通過XDMA與PC機之間的通信。可以熟練掌握PCIE的使用。但是,上面的使用需要經(jīng)過上位機的配合,至于上位機的書寫,我沒有掌握的太好,就不多加解釋,這個例子在米聯(lián)客的PCIE教程中有,同學(xué)們可以去學(xué)習(xí)。

PCIE IP的定制

上面我們已經(jīng)講解了PCIE作為endpoint如何進(jìn)行配置與Block Design的搭建。接下來,我們講解PCIE作為rootpoint如何來進(jìn)行PCIE的配置與Block Design的設(shè)置。

首先點擊PCIE IP核:

1、這里選擇root port

2、選擇開發(fā)板上的時鐘100MHz

1、這里選擇硬核PCIE所在的位置

2、選擇PCIE的lane的個數(shù)為2個

3、選擇PCIE的通信速度為5GT/s

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

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

3、版本ID,指明使用該PCIE IP進(jìn)行設(shè)置的版本

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

5、子系統(tǒng)ID,用來識別板卡的的ID

6、PCIE在實驗中承擔(dān)的角色,這里我們選擇默認(rèn)即可

1、PCIE To AXI的BAR地址空間設(shè)置,用于IO的配置空間,也是endpoint to rootport的方向

默認(rèn)即可

1、2、AXI TO PCIE的BAR空間,也就是rootport to endpoint可以看見的方向。

1、2、AXI總線的最低地址與最高地址

默認(rèn)即可

默認(rèn)即可。

PCIE root port的Block Design搭建

1、是endpoint讀寫rootport的數(shù)據(jù)通路

2、是rootport讀寫endpoint的數(shù)據(jù)通路

上面Block design的搭建其實我一直不明白centerDMA Ip的作用,也沒真正下板實現(xiàn)過,這里也就不多說了。因為FPGA作為rootport來使用,本身就很少見。

上面的內(nèi)容,我們主要介紹了VIVADO中PCIE IP的使用,介紹的比較粗略。尤其是第一個很常用,想進(jìn)一步了解的同學(xué)可以找一找原本的資料,這里我只是介紹了自己的想法。

參考文獻(xiàn)

[1]、V3學(xué)院

[2]、米聯(lián)客

本文轉(zhuǎn)自:https://blog.csdn.net/zhangningning1996

本文內(nèi)容僅代表作者觀點,不代表平臺觀點。

如有任何異議,歡迎聯(lián)系我們。

編輯:jq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • FPGA
    +關(guān)注

    關(guān)注

    1660

    文章

    22416

    瀏覽量

    636571
  • PCIe
    +關(guān)注

    關(guān)注

    16

    文章

    1461

    瀏覽量

    88470
  • dma
    dma
    +關(guān)注

    關(guān)注

    3

    文章

    582

    瀏覽量

    105954

原文標(biāo)題:基于FPGA的PCIE設(shè)計(2)

文章出處:【微信號:VOSDeveloper,微信公眾號:麻辣軟硬件】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    VivadoIP核被鎖定的解決辦法

    當(dāng)使用不同版本的Vivado打開工程時,IP核被鎖定的情況較為常見。不同版本的VivadoIP核的支持程度和處理方式有所不同。
    的頭像 發(fā)表于 02-25 14:00 ?209次閱讀
    <b class='flag-5'>Vivado</b>中<b class='flag-5'>IP</b>核被鎖定的解決辦法

    Xilinx高性能NVMe Host控制器IP+PCIe 3.0軟核控制器IP,純邏輯實現(xiàn),AXI4和AXI4-Stream DMA接口,支持PCIe 3.0和4.0

    NVMe AXI4 Host Controller IP1介紹NVMe AXI4 Host Controller IP可以連接高速存儲PCIe SSD,無需CPU,自動加速處理所有的NVMe協(xié)議命令
    發(fā)表于 11-14 22:40

    vivado中,怎么將e203內(nèi)核源代碼封裝成ip核,并添加總線?

    vivado中,怎么將e203內(nèi)核源代碼封裝成ip核,并添加總線?
    發(fā)表于 11-10 07:22

    NVMe高速傳輸之?dāng)[脫XDMA設(shè)計43:如何上板驗證?

    仿真驗證之后, 搭建硬件測試平臺, 測試本IP在實際應(yīng)用環(huán)境中的功能與性能。本IP基于 Xilinx PCIe Integration Block 搭建, 常用的 PCIE 集成塊版本
    發(fā)表于 10-30 18:10

    vcs和vivado聯(lián)合仿真

    我們在做參賽課題的過程中發(fā)現(xiàn),上FPGA開發(fā)板跑系統(tǒng)時,有時需要添加vivadoip核。但是vivado仿真比較慢,vcs也不能直接對添加了vivado
    發(fā)表于 10-24 07:28

    Vivado浮點數(shù)IP核的握手信號

    Vivado浮點數(shù)IP核的握手信號 我們的設(shè)計方案中,F(xiàn)PU計算單元將收到的三條數(shù)據(jù)和使能信號同步發(fā)給20多個模塊,同時只有一個模塊被時鐘使能,進(jìn)行計算,但結(jié)果都會保留,發(fā)給數(shù)選。計算單元還需接受
    發(fā)表于 10-24 07:01

    Vivado浮點數(shù)IP核的一些設(shè)置注意點

    Vivado浮點數(shù)IP核的一些設(shè)置注意點 我們在vivado2018.3中使用了Floating-point(7.1)IP核,可以自定義其計算種類及多模式選擇。有時多種計算可以用同一
    發(fā)表于 10-24 06:25

    一站式定制芯片及IP供應(yīng)商燦芯半導(dǎo)體推出PCIe 4.0 PHY IP

    2025年8月14日,一站式定制芯片及IP供應(yīng)商——燦芯半導(dǎo)體(上海)股份有限公司(燦芯股份,688691)宣布推出基于28HKC+ 0.9V/1.8V平臺的 PCIe 4.0 PHY IP 。該
    的頭像 發(fā)表于 08-14 10:24 ?2.5w次閱讀

    AMD Vivado Design Suite 2025.1現(xiàn)已推出

    AMD Vivado Design Suite 2025.1 現(xiàn)已推出,支持 AMD Spartan UltraScale+ 和新一代 Versal 器件。這一最新版本還新增了多項功能,可顯著提升 Versal SSIT 器件的 FMAX 值,并對所有系列產(chǎn)品在 IP
    的頭像 發(fā)表于 06-16 15:16 ?1510次閱讀

    如何使用AMD Vitis HLS創(chuàng)建HLS IP

    本文逐步演示了如何使用 AMD Vitis HLS 來創(chuàng)建一個 HLS IP,通過 AXI4 接口從存儲器讀取數(shù)據(jù)、執(zhí)行簡單的數(shù)學(xué)運算,然后將數(shù)據(jù)寫回存儲器。接著會在 AMD Vivado Design Suite 設(shè)計中使用此 HLS
    的頭像 發(fā)表于 06-13 09:50 ?1905次閱讀
    如何使用AMD Vitis HLS創(chuàng)建HLS <b class='flag-5'>IP</b>

    nvme IP開發(fā)之PCIe

    PCIe事務(wù)層 PCIe的事務(wù)層連接了PCIe設(shè)備核心與PCIe鏈路,這里主要基于PCIe事務(wù)層進(jìn)行了深入討論與分析。事務(wù)層采用TLP傳輸事
    發(fā)表于 05-18 00:48

    nvme IP開發(fā)之PCIe

    PCIe 體系結(jié)構(gòu) 常見的PCIe總線系統(tǒng)結(jié)構(gòu)如圖1所示,其中主要包含三種設(shè)備,分別是根復(fù)合體(RootComplex,RC)、Switch 和終端設(shè)備(EndPoint,EP)。 圖1 PCIe
    發(fā)表于 05-17 14:54

    基于PCIe(XDMA/QDMA)的多路視頻采集與顯示IP 多路高速AD采集與DA回放IP

    基于PCIe(XDMA/QDMA)的多路視頻采集與顯示子系統(tǒng)多路高速AD采集與DA回放子系統(tǒng)1 概述視頻采集與顯示子系統(tǒng)可以實時采集多路視頻信號,并存儲到視頻采集隊列中,借助高效的硬實時視頻幀出入
    發(fā)表于 04-14 15:17