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

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

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

3天內不再提示

如何使用Xilinx的PCIE IP來產生讀寫請求

jf_pJlTbmA9 ? 來源:jf_pJlTbmA9 ? 作者:jf_pJlTbmA9 ? 2023-07-10 16:23 ? 次閱讀

仿真與實際應用場景的差別
通常我們都會用Modelsim、Questa等工具對工程進行仿真驗證,在仿真的時候可能關注的點沒有那么的多,檢查到對端收到包沒有問題,一般情況下就認為已經完成調試,可以上板給host、birdge或者switch下的其他PCIE設備進行發包,不過在實際應用的過程中,如果想用FPGA作為Endpoint主動發包去讀寫其他設備,還有一個功能需要打開:Bus Master Enable,下圖1是PCIE協議對此功能的定義。

1676510712707226.png

圖1

這個功能決定了Endpoint能否向遠端設備發起讀寫請求,只有使能了此功能,FPGA作為Endpoint時,才能夠向遠端設備成功發起讀寫訪問。Bus Master Enable在PCIE的配置空間命令寄存器04h中,此功能可以通過setpci指令打開。

如何使用PCIE的RQ接口來產生讀寫請求
在介紹如何控制端口信號產生讀寫請求之前,需要先介紹下描述符(如下圖2所示),描述符類似與包頭的功能,描述符的大小是128bit,這個是固定的,其內包含了地址類型、地址、請求類型、數字數等字段,在傳輸時第一拍先傳輸的是描述符,傳完描述符之后才會傳后面的數據,使用128bit或者大于128Bit數據端口的用戶對這一點可能沒有疑問,但是使用64bit數據端口的用戶會可能會有疑問,128bit的描述符,64bit的數據端口一拍傳不完,如果使用的是64bit的端口,描述符會傳兩拍,在傳輸的前兩拍都是描述符。

1676510727197221.png

圖2

描述符的前兩個字段是address type,這個字段比較簡單,其標志了地址是否經過了轉換,如果用戶要自己產生讀寫請求可以把此字段設置為0,address就是用戶要訪問的地址,在填寫地址之前要確認好此地址是否可讀寫,避免讀到讀清寄存器。Dword Count表示的是描述符后跟的數據的Dword數,一般來講數據的長度都是雙字的整數倍,如果長度不是雙字的整數倍,就需要使用firstbe,或者lastbe,這兩個被放在了tuser字段,下面的篇幅會對其進行介紹。接下來是Request Type,Request Type字段的定義如下圖3所示:

1676510736105555.png

圖3

根據所發送包的類型選擇相應數字填充data字段即可,接下來說一下Requester ID和Completer ID這兩個字段,如果用戶使用的是基于地址的方式對包進行路由,這兩個字段的數值不需要特別關注,重點字段已介紹完,描述符其他字段的含義可參考Xilinx的PG343(Versal ACAP Integrated Block for PCI Express v1.0 LogiCORE IP Product Guide)。

本篇參考的是Xilinx的PG343,接下來會對Versal的 PCIE IP進行介紹,以下提及的端口的data的bit數都是512bit,如果想了解其他bit位數據的接口如何使用,可以參考PG343,與512bit的數據端口區別不大。

產生讀寫請求所使用的接口是PCIE IP的Requester Request Interface,接口的定義如下圖4所示:

1676510749371045.png

圖4

之前的篇幅中提到的描述符就在s_axis_rq_tdata中傳輸,前128bit是描述符,后面跟的是數據,類似與tlast、tkeep和tready等字段,本篇blog不再進行贅述,可以參照AMBA總線,或者上圖的描述,下面重點介紹s_axis_rq_tuser字段,手冊上稱其為邊帶信號,部分字段的定義如下圖5所示:

1676510759619178.png

圖5

首先介紹下first_be和last_be,first_be指的是數據的第一個雙字中有幾個byte是有效的,一個雙字是4byte,所示只用4bit就可以識別出一個雙字中有效的byte數,在IP界面,把straddle模式打開時,可以一拍傳輸兩個TLP,在512bit數據接口,其first_be字段的長度為8bit,前4bit表示的是第一個TLP包中的第一個雙字中有效的byte,后4個bit表示的是第二個TLP包中的第一個雙字中有效的byte。is_sop的值表明了此拍的有或者沒有以及有幾個新的TLP,is_sop表明這一拍有沒有TLP結束或者有幾個TLP結束。
No straddle模式使用注意事項
在使用no straddle模式時,在發送1DW的memory write時,雖然上圖中說的是在使用no straddle模式時,is_eop是可選的,但是在實際使用的時候,特別是有1DW的memory write或者有1DW為結尾的memory write,需要把is_eop的數值設置為1。下圖6是memory write的發包格式,在生成包時可以參考如下圖6格式:

1676510772591071.png

圖6

下下面的兩張圖是發包的仿真圖,圖7為End point的Requester request接口的仿真圖,圖8為root port的Completer Request接口的仿真圖,整體的流程就是End point通過自己的Requester request接口把memory write TLP發送到root port的Completer Request接口。

先看Requester request接口所發送的包的rq_tuser字段,410000f中的f表示第一個TLP的firstbe全有效,10000表示此拍數據沒有第二個TLP且這一拍數據只有1DW,last_be全為0,10000中的1即為圖中的第四行2‘b01, //is SOP,表示這個一拍是一個TLP的開始,4為圖中的2‘01 //is eop? 2’b00sop1 ptr兩行,表示此拍數據只有一個TLP,且此TLP在此拍結束。

接下來對Requester request接口所發送的包的rq_tdata進行說明,rq_tdata的前兩個bit表明了地址有沒有經過轉換,數據的地址為BE7 1CBD 975D 4000,rq_tdata中的801表示此數據位memory寫,且Dword count 為1.

1676510819668199.png

圖7

接下來對RP的Completer Request接口接收到的數據進行簡要分析,可以看到m_axis_cq_tdata與s_axis_rq_tdata的字段完全相同,m_axis_tuser中的firstbe為0F,lastbe為00,這一點與發送端的情況一致,End point此次發送的數據包被Root port成功接收。

1676510830893428.png

圖8


審核編輯:湯梓紅

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

    關注

    1630

    文章

    21769

    瀏覽量

    604656
  • 接口
    +關注

    關注

    33

    文章

    8667

    瀏覽量

    151526
  • Xilinx
    +關注

    關注

    71

    文章

    2168

    瀏覽量

    121777
  • 仿真
    +關注

    關注

    50

    文章

    4111

    瀏覽量

    133786
  • PCIe
    +關注

    關注

    15

    文章

    1245

    瀏覽量

    82869
收藏 人收藏

    評論

    相關推薦

    請教大家誰用過 Xilinx PCIe IP 核?。?/a>

    請教大家誰用過 Xilinx PCIe IP 核啊?
    發表于 01-15 14:38

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

    XDMA讀和XDMA寫的時候,上位機HOST PC就藍屏了。。 我想知道,XDMA PCIE IP 和 PS DDR 是否支持同時進行XDMA讀寫如果支持的話,我需要修改驅動,還是其他地方需要設置一下。謝謝!
    發表于 11-21 10:35

    PCIE XDMA IP核介紹

    TLP格式,并傳送給發送引擎;接收引擎用于從PCIE IP核接收不同類型的TLP數據,接收DMA控制模塊用于實現存儲器讀請求包的發送流量控制及接收數據位寬的轉換;DMA狀態控制寄存器模塊主要用來解析來自
    發表于 12-26 10:46

    如何使用AXI-PCIe橋接IP與我的邏輯進行通信

    嗨,我正在使用AXI-PCIe橋接IP與我的邏輯進行通信。我的poroject要求有128K內存。我不知道如何配置AXI BAR地址擴展內存。我閱讀了IP文檔,但沒有任何意義。目前我
    發表于 06-19 10:14

    基于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

    今天分享 PCIE高速接口XILINX.ISE教程

    :能使用xiinx 的PCIE ip核完成讀寫功能對以上課程有興趣的同學點下面鏈接學習 : 明德揚FPGA課程_PCIE高速接口XILINX
    發表于 02-14 09:50

    如何讀寫PCIe?

    我是一名PCIe新手,想了解以下問題: 1、如何測試PCIe? 2、如何讀寫PCIe(兩塊開發板通過PCIe線互連,分別配置為RC和EP)?
    發表于 06-12 06:05

    體驗紫光PCIE之使用WinDriver驅動紫光PCIE

    example例程。紫光的PCIE IP雖然沒有像xilinx那樣可以直接使用Block Design設計,但是仔細讀一遍官方例程的DMA模塊,進而開發自己的東西,還是能夠很好用起來紫光的P
    發表于 11-17 14:35

    PCIe的Spec中明確規定只有Root有權限發起配置請求

    處理器一般不能夠直接發起配置讀寫請求,因為其只能產生Memory Request和IO Request。這就意味著Root必須要將處理器的相關請求轉換為配置
    的頭像 發表于 05-04 09:12 ?6987次閱讀
    <b class='flag-5'>PCIe</b>的Spec中明確規定只有Root有權限發起配置<b class='flag-5'>請求</b>

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

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

    利用XILINX提供的FIFO IP進行讀寫測試

    FIFO是FPGA應用當中非常重要的模塊,廣泛用于數據的緩存,跨時鐘域數據處理等。學好FIFO是FPGA的關鍵,靈活運用好FIFO是一個FPGA工程師必備的技能。本章主要介紹利用XILINX提供的FIFO IP進行讀寫測試。
    的頭像 發表于 02-08 17:08 ?3218次閱讀
    利用<b class='flag-5'>XILINX</b>提供的FIFO <b class='flag-5'>IP</b>進行<b class='flag-5'>讀寫</b>測試

    基于VIVADO的PCIE IP的使用

    定的。因為Xilinx官方給我們提供了完善的PCIE IP,基于這些IP我們設置不需要知道TLP包的組包原理我們便可以把PCIE使用起來。
    的頭像 發表于 08-09 16:22 ?1.3w次閱讀
    基于VIVADO的<b class='flag-5'>PCIE</b> <b class='flag-5'>IP</b>的使用

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

    上一篇內容我們已經對PCIE協議進行了粗略的講解。那么不明白具體的PCIE協議,我們就不能在FPGA中使用PCIE進行高速數據傳輸了嗎?答案是否定的。因為
    的頭像 發表于 06-01 15:52 ?1.2w次閱讀

    基于XILINX FPGA的硬件設計總結之PCIE硬件設計避坑

    一個GT Quad由四個GT車道組成。為PCIe IP選擇GT Quads時,Xilinx建議您在最靠近PCIe硬塊的地方使用GT Quad。雖然這不是必要時,它將改善設計的位置,路線
    的頭像 發表于 03-30 09:41 ?4074次閱讀
    主站蜘蛛池模板: 亚洲乱码尤物193yw在线播放| 另类激情亚洲| 天天在线影院| 午夜视频你懂的| 天堂最新版中文网| 毛片视频免费网站| 爱操成人网| 爱逼色| 久久99热久久精品动漫| 一级特黄色片| 特黄特色视频| 女人张开腿给人桶免费视频| 久久久久国产精品免费免费不卡| 狠狠狠色丁香婷婷综合激情| bt在线搜索| 人人草人人干| 西西午夜影院| 久久思re热9一区二区三区| 亚洲va中文字幕无码| 色在线观看视频| 男人的天堂视频在线| 国产簧片| 手机看福利片| 五月激情啪啪| 91九色麻豆| 色多多www网站| 国模视频一区| 天堂资源最新版在线www| 国产一级在线观看| 亚洲一区二区三区四区五区六区 | 亚洲成人午夜影院| 国产国拍亚洲精品mv在线观看| ww7788色淫网站女女免费| 不卡免费在线视频| 欧美爽爽| freesex性| 国产精品夜夜春夜夜爽久久| 日本一区不卡在线观看| 久久免费香蕉视频| 美女扒开下面让男人捅| 日韩一级片在线|