在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內不再提示

XDMA/PCIE IP的定制和Block Design的搭建

FPGA之家 ? 來源:CSDN技術社區 ? 作者:朽月 ? 2022-06-01 15:52 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

項目簡述

上一篇內容我們已經對PCIE協議進行了粗略的講解。那么不明白具體的PCIE協議,我們就不能在FPGA中使用PCIE來進行高速數據傳輸了嗎?答案是否定的。因為Xilinx官方給我們提供了完善的PCIE IP,基于這些IP我們設置不需要知道TLP包的組包原理我們便可以把PCIE使用起來。這篇博客我們主要把FPGA作為endpoint來進行講解,當然也對作為root port進行簡單的描述。我們使用的主要IP是XDMA,主要參考資料是米聯客。如果對IP的使用感覺到疑惑可以參考米聯客的資料。

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

XDMA IP的定制

為什么使用XDMA IP而不使用我們前面介紹的PCIE IP,因為前面介紹的IP需要我們自己構建TLP包,還有分散收集策略,基于該IP使用起來PCIE還是有點困難。但是XDMA就特別簡單了,他不需要FPGA設計者熟悉PCIE協議,直接將PCIE協議轉換成AXI4與AXI_Lite協議,可以直接對DDR進行操作。XDMA內部的分散收集操作、TLP組包、DMA操作等等進行了完整的封裝。我們可以把XDMA IP看成我們經常使用的ZYNQ IP,他的BAR空間被AXI_Lite總線進行讀寫操作用于寄存器的配置,AXI總線用于大數據的傳輸直接與DDR對接。

XDMA的內部額框圖如下:

a1bf5612-e166-11ec-ba43-dac502259ad0.png

對XDMA的內部描述如下:

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

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

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

4、AXI4 Bypass 接口,可選,用來實現PCIE 直通用戶邏輯訪問,可用于低延遲數據傳輸

首先選擇XDMA IP如下:

a1cd460a-e166-11ec-ba43-dac502259ad0.png

雙擊點開該IP的配置:

a1ef35d0-e166-11ec-ba43-dac502259ad0.png

1、該IP是作為Endpoint來進行PCIE操作的

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

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

4、lane的個數,與開發板相對應,這里選擇2個

5、XDMA將PCIE轉換成AXI協議,這個就是AXI協議的位寬

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

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

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

9、這里我們直接將PCIE協議轉換成AXI協議,而不選擇AXI Stream協議,簡化我們的操作

a1fd24e2-e166-11ec-ba43-dac502259ad0.png

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

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

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

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

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

6、PCIE在實驗中承擔的角色,這里我們選擇默認即可

a20bb138-e166-11ec-ba43-dac502259ad0.png

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

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

3、選擇64bit 使能

4、用來實現PCIE 直通用戶邏輯訪問,可用于低延遲數據傳輸,這里不選擇。

a24dc3f2-e166-11ec-ba43-dac502259ad0.png

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

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

其余的默認設置即可。

a2831a52-e166-11ec-ba43-dac502259ad0.png

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

其余的默認即可。

a2d1fb18-e166-11ec-ba43-dac502259ad0.png

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

經過上面的設置,我們已經定制了常規的XDMA IP,接下來講解常用的Block Design設計。

PCIE Endpoint的工程框圖

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

本例子主要講述基于 PCIE XDMA IP 實現的一個圖像傳輸應用,圖像的數據流控制主要用到了 VDMA IP。整個項目的框圖如下:

a31c1cd4-e166-11ec-ba43-dac502259ad0.png

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

從上面的工程我們可以學到,FPGA 端主要實現如下功能

1、 XDMA 與 DDR 數據通信

2、 VDMA 實現視頻數據搬運

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

4、 AXIS to Video 模塊,實現 axis 到視頻時序的轉換

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

6、 Video to AXIS 模塊,實現視頻時序到 AXIS 的轉換

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

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

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

10、通過 VDMA 的 S2MM 中斷來從 FPGA DDR 獲取圖像數據,這些中斷是經過XDMA傳輸到上位機

關于可以學到的XDMA部分我們已經加粗。

項目的Block Design設計圖如下:

a34d7f4a-e166-11ec-ba43-dac502259ad0.png

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

1、使用PCIE轉AXI的總線將圖像數據存儲到DDR、將DDR中的數據搬移到DDR中

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

3、通過AXI_Lite接口來配置Bram,通過這個ram來與PC機進行一定的數據交互,解決圖像斷幀的現象

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

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

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

PCIE IP的定制

上面我們已經講解了PCIE作為endpoint如何進行配置與Block Design的搭建。接下來,我們講解PCIE作為rootpoint如何來進行PCIE的配置與Block Design的設置。

首先點擊PCIE IP核:

a378b8c2-e166-11ec-ba43-dac502259ad0.png

a3ab9ee0-e166-11ec-ba43-dac502259ad0.png

1、這里選擇root port

2、選擇開發板上的時鐘100MHz

a3dd0bf6-e166-11ec-ba43-dac502259ad0.png

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

2、選擇PCIE的lane的個數為2個

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

a405c03c-e166-11ec-ba43-dac502259ad0.png

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

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

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

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

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

6、PCIE在實驗中承擔的角色,這里我們選擇默認即可

a42c6fde-e166-11ec-ba43-dac502259ad0.png

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

a4592a6a-e166-11ec-ba43-dac502259ad0.png

默認即可

a4821ef2-e166-11ec-ba43-dac502259ad0.png

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

a4d232fc-e166-11ec-ba43-dac502259ad0.png

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

a51aefa6-e166-11ec-ba43-dac502259ad0.png

默認即可

a570eb54-e166-11ec-ba43-dac502259ad0.png

默認即可。

PCIE root port的Block Design搭建

這里直接給出相應的圖像,供大家簡略學習:

a59ece52-e166-11ec-ba43-dac502259ad0.png

1、是endpoint讀寫rootport的數據通路

2、是rootport讀寫endpoint的數據通路

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

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

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

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

審核編輯:湯梓紅

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

    關注

    1645

    文章

    22028

    瀏覽量

    617721
  • Xilinx
    +關注

    關注

    73

    文章

    2184

    瀏覽量

    125113
  • PCIe
    +關注

    關注

    16

    文章

    1337

    瀏覽量

    85032
  • design
    +關注

    關注

    0

    文章

    162

    瀏覽量

    46549

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

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

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    【米爾-Xilinx XC7A100T FPGA開發板試用】+02.PCIE接口測試(zmj)

    通信速率可高達 5G bit 帶寬。本例程中通過利用 XILINX 的 XDMA IP 來實現 PCIE 的發送和接收速度測試。 1.1參考電路 米爾-Xilinx XC7A100T FPGA開發板
    發表于 11-12 16:05

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

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

    NVMe IP高速傳輸卻不依賴便利的XDMA設計之一

    NVMe IP放棄XDMA原因 選用XDMA做NVMe IP的關鍵傳輸模塊,可以加速IP的設計,但是XD
    發表于 05-24 17:09

    創建Block RAM IP不起作用

    DCM_SP為spartan 3E創建50Mhz DCM時鐘的IP,并且它可以工作。我不確定為什么當我嘗試創建Block RAM IP時它不起作用。我真的很感激一些幫助。歡迎來到Xilinx CORE
    發表于 06-05 13:39

    ZYNQ調用XDMA PCIE IP同時讀寫PS DDR,導致藍屏問題。

    你好!我在ZYNQ 7015里(或者7035)調用XDMA PCIE IP 從上位機HOST PC通過PCIE接口給ZYNQ的PS DDR發送數據(
    發表于 11-21 10:35

    PCIE XDMA IP核介紹

    結構圖這是PCIE IP核,主要用來發送數據,發送引擎主要負責將待發送數據按照PCIE協議組織成不同類型的TLP數據包,并發送給PCIE IP
    發表于 12-26 10:46

    如何使用Vivado IP Block Design

    對你所有的人來說,我已經閱讀了有關IP Block Designs的手冊和培訓材料,并成功地生成了AXI LITE BRAM IP設計,以及之前在USER社區中為您提供的一些幫助。我所堅持
    發表于 03-20 08:52

    基于PCIe DMA的多通道數據采集和回放IP

    基于PCIe DMA的多通道數據采集和回放IP在主機端PCIe驅動的控制和調度下,數據采集與回放IP Core可以同時完成對多個通道數據的采集以及回放驅動工作,既可采用行緩存機制(無需
    發表于 11-25 22:27

    PCIE高速傳輸解決方案FPGA技術XILINX官方XDMA驅動

    ,使用 XILINX 官方 XDMA IP 核配合板載高速 DDR3,可對前端 ADC 產生的不大于 4.5GB/s 的連續或非連續數據進行實時采集,同時該采集卡具備數據發送功能,可以將用戶文件或者內存中
    發表于 05-19 08:58

    Block Design中的Bug的解決辦法及解決思路

    Block Design 作為VIVADO的一大新神器,給用戶設計帶來了極大的方便,能夠根據用戶的定制需求自動選擇、組合以及連接不同的IP。然而,其中不可控的Bug也給用戶帶來了一定的
    發表于 02-09 09:44 ?8972次閱讀
    <b class='flag-5'>Block</b> <b class='flag-5'>Design</b>中的Bug的解決辦法及解決思路

    PCIE通信技術:通過AXI-Lite ip配置的VDMA使用

    XDMA是Xilinx封裝好的PCIE DMA傳輸IP,可以很方便的把PCIE總線上的數據傳輸事務映射到AXI總線上面,實現上位機直接對AXI總線進行讀寫而對
    的頭像 發表于 12-28 10:17 ?3626次閱讀

    基于VIVADO的PCIE IP的使用

    基于VIVADO的PCIE IP的使用 項目簡述 上一篇內容我們已經對PCIE協議進行了粗略的講解。那么不明白具體的PCIE協議,我們就不能在FPGA中使用
    的頭像 發表于 08-09 16:22 ?1.4w次閱讀
    基于VIVADO的<b class='flag-5'>PCIE</b> <b class='flag-5'>IP</b>的使用

    基于FPGA的PCIE通信測試

    本文介紹一個FPGA開源項目:PCIE通信。該工程圍繞Vivado軟件中提供的PCIE通信IPXDMA IP建立。Xilinx提供了
    的頭像 發表于 09-04 16:45 ?4425次閱讀
    基于FPGA的<b class='flag-5'>PCIE</b>通信測試

    PCIE XDMA開發環境搭建以及環路測試

    1.1 課程介紹? 這一章開始主要介紹 XILINX FPGA PICE IP XDMA IP的使用。XDMA IP使用部分教程分LINUX
    的頭像 發表于 01-13 09:38 ?1462次閱讀
    <b class='flag-5'>PCIE</b> <b class='flag-5'>XDMA</b>開發環境<b class='flag-5'>搭建</b>以及環路測試

    NVMe IP over PCIe 4.0:擺脫XDMA,實現超高速!

    基于NVMe加速引擎,它直接放棄XDMA,改為深度結合PCIe,通過高速傳輸機制開發。同時利用UVM驗證平臺驗證,有效提升工作效率。
    的頭像 發表于 04-16 14:57 ?373次閱讀
    NVMe <b class='flag-5'>IP</b> over <b class='flag-5'>PCIe</b> 4.0:擺脫<b class='flag-5'>XDMA</b>,實現超高速!
    主站蜘蛛池模板: 久久综合色综合 | 狠狠色噜噜 | 日韩免费网站 | 网站一级片 | 中文字幕在线观看日剧网 | 国产性夜夜春夜夜爽 | 一二三区在线视频 | 俺要色 | 极品色天使在线婷婷天堂亚洲 | 5566成人| 日本大片网 | 能在线观看的一区二区三区 | 午夜无遮挡怕怕怕免费视频 | 久久久噜噜噜久久网 | 久久91精品牛牛 | 欧美成人在线影院 | 老司机成人精品视频lsj | 资源新版在线天堂 | 午夜伦y4480影院中文字幕 | 在线观看精品视频看看播放 | 日本特黄在线观看免费 | 最新色站 | 欧美另类激情 | 久久久久久国产精品免费免费 | 精品国产_亚洲人成在线高清 | 天天做夜夜爱 | 99视频在线永久免费观看 | 69日本xxxxxxxxx29| 色婷婷基地 | 亚洲 欧美 视频 | 天天操天天爽天天射 | 亚洲日本一区二区 | 性欧洲女人18 | 国产午夜精品不卡片 | 天堂中文在线资源库用 | 色香影视 | 巨臀中文字幕一区二区翘臀 | 色婷婷丁香六月 | 免费人成在线观看视频色 | 国产女乱淫真高清免费视频 | 久久久免费精品视频 |