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

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

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

CvP系統(tǒng)結(jié)構(gòu)解析 PCIE協(xié)議實現(xiàn)FPGA 配置案例

電子設(shè)計 ? 來源:與非網(wǎng) ? 作者:與非網(wǎng) ? 2020-11-27 14:06 ? 次閱讀

1. CvP 簡介

CvP(Configuration via Protocol)是一種通過協(xié)議實現(xiàn) FPGA 配置的方案,Arria? V,Cyclone? V,Stratix? V,Arria? 10,Cyclone? 10 GX,Stratix? 10,Agilex?都支持這個功能,但支持的模式有所差異。目前所采用的協(xié)議是 PCI Express? (PCIe)。

CvP 配置文件被拆分成兩個,一個是 periphery image,一個是 core image。

?Periphery image (*.periph.jic) 包含 GPIOs,I/Oregisters,GCLK、QCLK、RCLK 時鐘網(wǎng)絡(luò),PLLs,收發(fā)器,存儲器 PHY 接口,以及硬核 IP,例如?PCIe 硬核。這部分不能被更改和更新。Periphery image 存儲在?FPGA 配置芯片內(nèi),上電加載。

?Core image (*.core.rbf) 包含被 configuration RAM (CRAM)配置的邏輯部分,包括 LABs, DSP, 和 embedded memory。FPGA?設(shè)備上電后主機端再經(jīng)由所用的協(xié)議(此處為 PCIe)將 core image 下載并配置到 FPGA 內(nèi)部。

2. CvP 系統(tǒng)結(jié)構(gòu)

CvP 系統(tǒng)由三部分組成:FPGA,PCIehost,F(xiàn)PGA 的配置器件。如圖 1。

圖 1 CvP 系統(tǒng)結(jié)構(gòu)圖

(1)配置器件與 FPGA 通過傳統(tǒng)配置接口互聯(lián)。對于 V 系列和 Arria10 器件來說,可支持任何配置方式,例如 AS,PS 或 FPP。針對 Stratix10,可采用 Active Serial x4 (fast mode) 或 Avalon Streaming (Avalon-ST) x8。對于 Agilex 系列器件,只可采用 Active Serial x4 (fast mode)。

(2)對于 V 系列、Arria10、Stratix10、Cyclone10GX,只有器件底部左側(cè)的 PCIe?硬核才支持 CvP 功能,其他的 PCIe 硬核可作常規(guī)功能使用。而對于 Agilex 系列,左側(cè)的 PCIe 硬核都支持 CvP 功能。在硬件設(shè)計階段需要確認(rèn)使用哪個 PCIe 做 CvP,一旦確定,則只有這個 PCIe 硬核作為 Endpoint 可以使能 CvP 功能,其他 PCIe 硬核不能再作此用途,但可作為常規(guī) PCIe 接口用。

(3)其他 PCIe 硬核能作為常規(guī) PCIe 接口使用。

3. CvP 價值

? 由于只需要存儲 periphery logic,F(xiàn)PGA 的配置器件可以選擇小容量器件,降低成本。

? Coreimage 存在主機端,提高核心邏輯的安全性。

? 對于支持 CvP Update Mode 的器件來說,可支持動態(tài)的核心邏輯更新,而不需要系統(tǒng)斷電重啟。

? 主機側(cè)提供了簡單的軟件配置模型。

4. CvP 模式

CvP 有兩種模式:CvP Initialization mode 和 CvP Update mode。

4.1 CvP Initialization Mode 初始化模式

FPGA 在上電時加載配置芯片上的 peripheral image,在 100ms 的枚舉時間內(nèi)成功配置其 PCIe 接口,使主機能正確枚舉該 PCIe 設(shè)備。主機啟動后再通過 PCIe 鏈路配置 FPGA 核心邏輯。

CvP Initialization Mode 優(yōu)勢:

? 保證 FPGA PCIe 設(shè)備滿足枚舉時間。

? FPGA 的配置器件可以選擇小容量器件,降低成本。

? 保證主機側(cè)核心邏輯的安全性。

4.2 CvP Update Mode 更新模式

當(dāng) FPGA 進入用戶模式,對除 CvP PCIe 核之外的其他邏輯通過 CvP 進行重新配置,此時 CvP PCIe 既可以做常規(guī) PCIe 使用,又可以實現(xiàn) FPGA 核心邏輯的更新。為使用該模式,需要參考 Partition 的流程對工程進行分模塊 Partition 和 Logic Lock 設(shè)計,以重復(fù)利用設(shè)備外設(shè),保證 peripheral image 不變。

當(dāng)有以下幾種需要時,可以考慮使用該模式:

? 需要對核心邏輯進行更新。

? 根據(jù)功能發(fā)布情況對設(shè)備進行更新。

4.3 不同器件系列支持的模式

前面說到 ArriaV,CycloneV,StratixV,Arria10,Cyclone10GX,Stratix10,Agilex 都支持 CvP,但不同系列器件支持的模式有所差異,具體如表 1,其中 Agilex 只支持 InitializationMode,如表 2。

表 1 不同器件系列支持的模式

表 2 Agilex 系列支持的模式

5. CvP Initialization mode 實現(xiàn)流程和注意事項

使用 Stratix V 開發(fā)板實現(xiàn) CvP Initialization mode 的流程及注意事項。

? 板卡:Stratix-VGX Dev Kit (PCIe board),PCIe Gen1x8。

? 主機:64 位 Windows7 操作系統(tǒng)。

? Quartus 版本:QuartusII 64-Bit Version 14.1.0 Build 186

5.1 實現(xiàn)流程

1. 構(gòu)建含 PCIe IP 的工程,此處采用 S5PCIe 的 Example design。

2. 打開工程內(nèi) PCIe IP 的 GUI,勾選“Enable configuration via the PCIe link”。

3. 在 Assignments =》 Device =》 Device andPin Options =》 Configuration 中選擇 FPGA 的配置模式為 Active Serial x4(并設(shè)置 MSEL)。

在 Assignments =》 Device =》 Device and Pin Options =》 CvPSettings 選擇 configuration via protocol 為 Core initialization。

4. 根據(jù)開發(fā)板分配管腳并編譯工程,生成 cvp_example.sof。

5. 將生成的 cvp_example.sof 進行拆分,打開 File =》 Convert Programming Files,設(shè)置 Programmingfile type 為 JTAG Indirect Configuration File (.jic)。添加 cvp_example.sof,勾選 Create Memory Map File 和 Create CvP files。點擊 Generate 之后,cvp_example.sof 就被拆分成兩部分,cvp_example.periph.jic 和 cvp_example.core.rbf。

6. 關(guān)閉主機,將 PCIE 板卡連上 JTAG,插在主機 PCIe 插槽里,主機再上電啟動。此時 PCIE 板卡由 PCIE 插槽供電。打開 Quartus II Programmer,點擊 Auto Detect 掃描 JTAG 鏈,選擇 FPGA 點擊 ChangeFile,選擇之前生成的 cvp_example.periph.jic 文件,并燒寫進 EPCQ256。

7. 重新啟動主機,枚舉 PCIe 設(shè)備。此時已經(jīng)加載了 cvp_example.periph.jic 的 PCIE 板卡將作為 PCIE 設(shè)備被系統(tǒng)識別。根據(jù) PCIe IP 的設(shè)置,在主機側(cè)查看 DeviceID 為 E001,Vendor ID 為 1172 的 PCIe 設(shè)備。

此時可以下載一個免費軟件“RW – Read & Write Utility”。找到 Device ID 為 E001,Vendor ID 為 1172 的 PCIe 設(shè)備。

8. 在主機上使用 quartus_cvp 對識別到的 PCIe 板卡(Device ID 為 E001,VendorID 為 1172)加載核心邏輯部分 cvp_example.core.rbf。打開 Windows CMD,更改路徑到 cvp_example.core.rbf 所在的位置。

輸入如下命令并回車:

? quartus_cvp--vid=1172 --did=e001 cvp_example.core.rbf

如果成功執(zhí)行該命令,會出現(xiàn)如下界面,表示核心邏輯已被成功加載進 FPGA,此時 FPGA 進入 usermode,可以正確工作。

5.2 注意事項

運行 quartus_cvp 時需要安裝 Jungo WinDriver。
編輯:hfy

聲明:本文內(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)注

    1624

    文章

    21580

    瀏覽量

    600788
  • PCIe
    +關(guān)注

    關(guān)注

    15

    文章

    1179

    瀏覽量

    82275
收藏 人收藏

    評論

    相關(guān)推薦

    請問有DS26334芯片的中文資料,和相關(guān)配置的源代碼嗎?以及相關(guān)的傳輸協(xié)議解析。

    請問有DS26334芯片的中文資料,和相關(guān)配置的源代碼嗎?以及相關(guān)的傳輸協(xié)議解析。
    發(fā)表于 09-04 10:50

    plc協(xié)議解析網(wǎng)關(guān)是什么

    PLC協(xié)議解析網(wǎng)關(guān)是一種專門用于工業(yè)自動化領(lǐng)域的設(shè)備,它的主要功能是實現(xiàn)不同通信協(xié)議之間的轉(zhuǎn)換和解析,以便于不同類型的PLC、傳感器、執(zhí)行器
    的頭像 發(fā)表于 07-12 15:41 ?240次閱讀
    plc<b class='flag-5'>協(xié)議</b><b class='flag-5'>解析</b>網(wǎng)關(guān)是什么

    FPGA的SRIO接口使用應(yīng)注意的事項

    。 數(shù)據(jù)格式與協(xié)議 : 定義并遵守數(shù)據(jù)包的頭部結(jié)構(gòu)、數(shù)據(jù)格式和校驗方式等信息,確保數(shù)據(jù)能夠準(zhǔn)確傳輸和解析。 RapidIO協(xié)議定義了七種事務(wù)類型,每種類型執(zhí)行不同的功能。了解并正確使
    發(fā)表于 06-27 08:33

    Modbus協(xié)議轉(zhuǎn)Profinet協(xié)議網(wǎng)關(guān)與氣體監(jiān)測系統(tǒng)配置案例

    Modbus協(xié)議轉(zhuǎn)換為Profinet協(xié)議,以實現(xiàn)不同設(shè)備之間的數(shù)據(jù)交換和通訊。本文將結(jié)合Modbus協(xié)議轉(zhuǎn)Profinet協(xié)議網(wǎng)關(guān)與氣體監(jiān)
    的頭像 發(fā)表于 06-13 17:50 ?1308次閱讀
    Modbus<b class='flag-5'>協(xié)議</b>轉(zhuǎn)Profinet<b class='flag-5'>協(xié)議</b>網(wǎng)關(guān)與氣體監(jiān)測<b class='flag-5'>系統(tǒng)配置</b>案例

    FPGAPCIE接口應(yīng)用需要注意哪些問題

    可能影響系統(tǒng)的穩(wěn)定性和可靠性。 應(yīng)用需求 : 根據(jù)應(yīng)用的具體需求(如數(shù)據(jù)中心、5G基站、視頻監(jiān)控等),可能需要特定的PCIe接口配置和功能。因此,在設(shè)計FPGA
    發(fā)表于 05-27 16:17

    pcie協(xié)議規(guī)范

    pcie協(xié)議
    發(fā)表于 05-16 09:09 ?98次下載

    ?PLC設(shè)備通過智能網(wǎng)關(guān)采用HTTP協(xié)議JSON文件對接MES、ERP等系統(tǒng)平臺

    智能網(wǎng)關(guān)IGT-DSER集成了多種PLC的原廠協(xié)議,方便實現(xiàn)各種PLC、智能儀表通過HTTP協(xié)議與MES等各種系統(tǒng)平臺通訊對接。PLC內(nèi)不用編寫程序,設(shè)備不用停機,通過網(wǎng)關(guān)的參數(shù)
    發(fā)表于 05-13 12:04

    高性能NVMe主機控制器,Xilinx FPGA PCIe 3

    ,從而可實現(xiàn)更高存儲性能和存儲容量。無需CPU,NVMe Host Controller IP自動執(zhí)行對PCIe SSD的PCIe設(shè)備枚舉和配置、NVMe控制器識別和初始化、NVMe隊
    發(fā)表于 04-20 14:41

    深入理解 FPGA 的基礎(chǔ)結(jié)構(gòu)

    系統(tǒng)研究專家寫的,對 FPGA 的基本結(jié)構(gòu)有非常詳細(xì)的說明。 Principles and Structures of FPGAs:這個是上面那本書的英文版。 (1)
    發(fā)表于 04-03 17:39

    PCIe控制器(FPGA或ASIC),PCIe-AXI-Controller

    PCIe-AXI-Controller兼容PCI Express Base Specification Revision 3.1,實現(xiàn)PCIe PHY Layer,Data Link Layer以及
    的頭像 發(fā)表于 02-21 15:15 ?748次閱讀
    <b class='flag-5'>PCIe</b>控制器(<b class='flag-5'>FPGA</b>或ASIC),<b class='flag-5'>PCIe</b>-AXI-Controller

    FPGA實現(xiàn)原理

    FPGA(Field-Programmable Gate Array,現(xiàn)場可編程門陣列)是一種特殊的集成電路,其內(nèi)部結(jié)構(gòu)由大量的可配置邏輯塊和互連線組成。FPGA可以通過編程來
    發(fā)表于 01-26 10:03

    AD采集卡設(shè)計原理圖:630-基于PCIe的高速模擬AD采集卡

    一、產(chǎn)品概述 基于PCIe的一款分布式高速數(shù)據(jù)采集系統(tǒng)實現(xiàn)多路AD的數(shù)據(jù)采集,并通過PCIe傳輸?shù)酱鎯τ嬎惴?wù)器,實現(xiàn)信號的分析、存儲。
    發(fā)表于 12-11 11:36

    Modbus轉(zhuǎn)CANopen協(xié)議相互轉(zhuǎn)換在工業(yè)中的作用

    CANopen協(xié)議網(wǎng)關(guān)的軟件實現(xiàn)方法主要包括以下幾個步驟: 1. 初始化:在程序啟動時,需要對微控制器、CAN總線接口、Modbus接口等進行初始化。這包括設(shè)置通信參數(shù)、配置中斷等。 2. 消息
    發(fā)表于 12-08 17:02

    體驗紫光PCIE之DMA讀寫/PIO內(nèi)存讀寫TLP解析

    為CplD),Byte Count為0x004,TAG為0x00,其他信息對座入號就行了。具體的含義可查詢PCIE協(xié)議規(guī)范。 1.2 DMA讀寫操作TLP解析 DMA直接內(nèi)存訪問,內(nèi)存訪問的發(fā)起者是
    發(fā)表于 11-17 15:08

    體驗紫光PCIE之使用WinDriver驅(qū)動紫光PCIE

    ,那就很容易把pcie協(xié)議理解徹透徹,當(dāng)然這里狹義指的是上層交互的TLP協(xié)議,數(shù)據(jù)鏈路層和物理層更復(fù)雜的事情是硬核做的,用起來PCIE并不需要深入了解。 如何使用紫光
    發(fā)表于 11-17 14:35