那曲檬骨新材料有限公司

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

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

3天內不再提示

使用Xilinx Vivado 創建自己板卡文件—以EBAZ4205為例

C29F_xilinx_inc ? 來源:賽靈思 ? 作者:賽靈思 ? 2022-02-16 16:21 ? 次閱讀

poYBAGIMonOAdQLcAALkc0GcBoQ606.png

我們在使用Vivado創建工程時,每次都需要選擇相關的板卡器件,比較麻煩,這篇文章就教你怎么創建屬于自己的板卡文件,在創建工程時就可以像官方板卡一樣在板卡列表里選擇。

板子

pYYBAGIMon2AGcsMAAt_edLukbY047.png

這次的板卡很多人應該不陌生,EBAZ4205-傳說中的曠板,之前20元就能買到,使用非常廣泛。

參考

UG895 文檔描述了電路板文件的結構和內容。

板文件的結構

Xilinx Vivado 板文件存放在 Vivado 安裝目錄中:

//data/boards/board_files/

在這個目錄中,我們可以創建新文件夾并以我們的板子命名(例如 ebaz4205)。在這個目錄中,我們將創建另一個以板版本命名的文件夾(例如 1.0)。

該文件夾將包含我們的電路板圖片和三個重要的 XML 文件:

board.xml - 定義關于板的所有信息。它包括基本信息(例如電路板名稱、描述、供應商)、有關板上組件的信息(例如 FPGA 部件、LED、按鈕)、有關板上組件所需接口的信息以及實現這些接口的首選 IP 內核。

preset.xml - 預設 board.xml 文件中指定的 IP 內核定義。

part0_pins.xml - 為board.xml 文件中指定的物理引腳接口定義和 I/O 標準。

創建所有必需的文件夾和文件后,我們的板文件文件夾結構應如下所示:

ebaz4205/
└──1.0
├──board.xml
├──ebaz4205.jpg
├──part0_pins.xml
└──preset.xml

下面針對每個文件簡單介紹一下內容。

board.xml

該文件以名為的 XML 標記開頭,我們將在其中提供有關該板的基本信息:

"2.1"vendor="miner.ebang.com.cn"name="ebaz4205"display_name="EBAZ4205DevelopmentBoard"url="http://miner.ebang.com.cn"preset_file="preset.xml">

首先,我們定義板文件架構版本 - 告訴 Vivado 軟件如何解釋文件中提供的數據的屬性(在 Vivado 2020.1 中,我目前使用的架構的最新版本是 2.1)。接下來,我們為電路板供應商定義供應商名稱、電路板名稱和網頁。在標簽中,我們還指定了稍后將使用的預設文件的名稱。在此之后,我們必須通過在新行中寫入來關閉標記。所有其他板信息必須在這兩個標簽之間定義。

為了確保板文件的正常工作,我們必須添加 和 標簽:


1.0
"1">1.0

標簽用于跟蹤電路板文件的版本,而 標簽用于指定這些文件可以與哪些電路板 PCB 修訂版一起使用。

我們可以通過在 中指定圖像和在標簽中指定描述來添加板的圖片和描述:



"ebaz4205.jpg"display_name="EBAZ4205DevelopmentBoard"sub_type="board">
EBAZ4205DevelopmentBoard

EBAZ4205isminingboardusedinEbangEbitE9+bitcoinminermachine.Thisboardfeatures256MBDDR3memory,128MBNANDFlashmemory,10/100MBitEthernetandspeedgrade-1Zynq7010.

創建新項目時,大部分信息將顯示在板選擇窗口中:

poYBAGIMooKAKQKTAAMD5iGhfw8658.png

或在 Vivado 項目摘要窗口中:

poYBAGIMonOAdQLcAALkc0GcBoQ606.png

提供基本信息后,現在我們可以通過在標簽之間添加信息來指定板上的組件:





"part0"display_name="EBAZ4205"type="fpga"part_name="xc7z010clg400-1"pin_map_file="part0_pins.xml"vendor="xilinx"spec_url="www.xilinx.com">
FPGApartontheboard





"master"name="ps7_fixedio"type="xilinx.com:display_processing_system7:fixedio_rtl:1.0"of_component="ps7_fixedio"preset_proc="ps7_preset">

"xilinx.com"library="ip"name="processing_system7"order="0"/>



"master"name="leds_2bits"type="xilinx.com:interface:gpio_rtl:1.0"of_component="leds_2bits"preset_proc="leds_2bits_preset">

"xilinx.com"library="ip"name="axi_gpio"order="0"/>

"TRI_O"physical_port="leds_2bits_tri_o"dir="out"left="1"right="0">

"0"component_pin="leds_2bits_tri_o_0"/>
"1"component_pin="leds_2bits_tri_o_1"/>






"ps7_fixedio"display_name="PS7fixedIO"type="chip"sub_type="fixed_io"major_group=""/>


"leds_2bits"display_name="LEDs"type="chip"sub_type="led"major_group="GeneralPurposeInputorOutput">
LEDs,ActiveLow




首先我們必須定義板上使用的 FPGA 型號, EBAZ4205 的情況下它是 xc7z010clg400-1。我們還定義了這個組件的供應商和引腳映射文件。所有用于實現 FPGA 和電路板組件之間接口的 IP 內核都必須在 FPGA 標簽之間定義。

第一個定義的接口將是 Zynq 處理系統的固定 I/O。我們必須指定接口模式、名稱、首選 IP 核來實現此接口和預設名稱(preset_proc),它將 IP 核與 preset.xml 文件中的預定義配置進行鏈接:

```

第二個定義的接口用于 LED。為了實現這個接口,我們將使用 AXI GPIO IP 內核。對于此接口,我們還必須定義端口引腳映射,因為 AXI GPIO IP 內核端口引腳必須連接到物理 FPGA 引腳:


"master"name="leds_2bits"type="xilinx.com:interface:gpio_rtl:1.0"of_component="leds_2bits"preset_proc="leds_2bits_preset">

"xilinx.com"library="ip"name="axi_gpio"order="0"/>

"TRI_O"physical_port="leds_2bits_tri_o"dir="out"left="1"right="0">

"0"component_pin="leds_2bits_tri_o_0"/>
"1"component_pin="leds_2bits_tri_o_1"/>

在定義 FPGA 部分及其接口之后,我們必須定義其他組件。默認情況下一個是 Zynq 7000 處理系統,另一個是 LED。之前創建的接口將通過稱為組件名稱的屬性鏈接到這些組件:



"ps7_fixedio"display_name="PS7fixedIO"type="chip"sub_type="fixed_io"major_group=""/>


"leds_2bits"display_name="LEDs"type="chip"sub_type="led"major_group="GeneralPurposeInputorOutput">
LEDs,ActiveLow


該聲明還讓我們可以在 Vivado 模塊設計窗口的 Board 選項卡中找到我們的組件:

poYBAGIMooiAL-RPAAF_cQ-Ls7E040.png

pYYBAGIMooyAJtFFAAqmAyEmr5I533.png

在 board.xml 文件中,如果方便,我們還必須為板上的所有組件定義 JTAG 鏈。在這種情況下,我們只有一個用于 FPGA 部分的 JTAG 鏈:





"chain1">
"0"component="part0"/>


當然,我們必須指定將我們的組件接口鏈接到在 part0_pins.xml 文件中聲明的物理 FPGA 引腳的連接:


"part0_leds_2bits"component1="part0"component2="leds_2bits">
"part0_leds_2bits_1"c1_st_index="0"c1_end_index="1"c2_st_index="0"c2_end_index="1"/>


這里 c1_st_index 和 c1_end_index 對應 part0_pins.xml 文件中的 pin 索引,而 c2_st_index 和 c2_end_index 對應 IP 核端口 pin 索引。

preset.xml

preset.xml 文件以名為 的 XML 標記開頭,我們必須在其中提供此文件架構版本。預設文件的當前架構版本是 1.0:

"1.0">

我們必須通過在新行中寫入 來關閉 標記。IP 核的預設將列在這兩個標簽之間。

首先我們為 Zynq 處理系統 IP 核添加配置。這些配置通過名為 preset_proc_name 的屬性鏈接到 board.xml 文件:


"ps7_preset">
"xilinx.com"library="ip"name="processing_system7"version="*">

"CONFIG.PCW_UART1_PERIPHERAL_ENABLE"value="1"/>
"CONFIG.PCW_UART1_UART1_IO"value="MIO24..25"/>
"CONFIG.PCW_SD0_PERIPHERAL_ENABLE"value="1"/>
"CONFIG.PCW_SD0_SD0_IO"value="MIO40..45"/>
"CONFIG.PCW_NAND_PERIPHERAL_ENABLE"value="1"/>
"CONFIG.PCW_NAND_GRP_D8_ENABLE"value="0"/>
"CONFIG.PCW_ENET0_PERIPHERAL_ENABLE"value="1"/>
"CONFIG.PCW_ENET0_ENET0_IO"value="EMIO"/>
"CONFIG.PCW_ENET0_GRP_MDIO_ENABLE"value="1"/>
"CONFIG.PCW_ENET0_PERIPHERAL_FREQMHZ"value="100Mbps"/>
"CONFIG.PCW_GPIO_MIO_GPIO_ENABLE"value="1"/>
"CONFIG.PCW_GPIO_MIO_GPIO_IO"value="MIO"/>
"CONFIG.PCW_ENET_RESET_ENABLE"value="0"/>
"CONFIG.PCW_USB_RESET_ENABLE"value="0"/>
"CONFIG.PCW_I2C_RESET_ENABLE"value="0"/>
"CONFIG.PCW_UIPARAM_DDR_BUS_WIDTH"value="16Bit"/>
"CONFIG.PCW_UIPARAM_DDR_PARTNO"value="MT41K128M16JT-125"/>


在 Zynq 7000 處理系統中,我們啟用 UART1、SD0、NAND、ETHERNET0 和其他外設,為這些外設選擇 MIO 引腳并配置 DDR 內存。

接下來,我們為 AXI GPIO IP 內核添加配置,該內核將用于在板上實現 FPGA 和用戶 LED 之間的接口:


"leds_2bits_preset">
"xilinx.com"library="ip"name="axi_gpio"ip_interface="GPIO">

"CONFIG.C_GPIO_WIDTH"value="2"/>
"CONFIG.C_ALL_OUTPUTS"value="1"/>
"CONFIG.C_ALL_INPUTS"value="0"/>
"CONFIG.C_DOUT_DEFAULT"value="0x00000003"/>


在這里,我們將 AXI GPIO IP 內核配置為只有 2 個引腳將用作默認邏輯值為 1 的輸出,因為該板上的 LED 處于低電平有效(通過提供邏輯 0 開啟)。

part0_pins.xml

part0_pins.xml 文件在 標簽之間鍵入信息,我們必須在其中指定板上使用的 FPGA 部件。在這兩個標簽之間,我們將提供所有引腳映射信息:


"xc7z010clg400-1">

"0"name="leds_2bits_tri_o_0"iostandard="LVCMOS33"loc="W14"/>
"1"name="leds_2bits_tri_o_1"iostandard="LVCMOS33"loc="W13"/>

此處列出的引腳通過引腳名稱屬性鏈接到 board.xml 文件中指定的 IP 核端口引腳。我們將 I/O 標準設置為 LVCMOS33,因為這些引腳所在的 FPGA bank 的電壓在 EBAZ4205 板上設置為 3.3V。最后,我們通過提供位置屬性 loc 將 IP 核端口引腳鏈接到物理 FPGA 封裝引腳。

我希望本教程能幫助各位更好地了解 Xilinx Vivado 電路板文件結構以及如何為你的開發板定制電路板創建這些文件。

完整的 EBAZ4205 板文件可以在下面的鏈接中找到,只需要放到文章開頭的路徑下即可:

https://github.com/suisuisi/EBAZ4205/tree/main/Documents/Board%20files

路徑下還有Spartan Edge Accelerator開發板的文件。poYBAGIMoo6AFE4cAAMVyz1fw08039.jpg

審核編輯:符乾江

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

    關注

    71

    文章

    2171

    瀏覽量

    122125
  • Zynq7010
    +關注

    關注

    1

    文章

    3

    瀏覽量

    2630
收藏 人收藏

    評論

    相關推薦

    SRIO介紹及xilinxvivado 2017.4中生成srio例程代碼解釋

    1. 概述 本文是用于記錄srio的學習情況,以及一些對xilinxvivado 2017.4中生成srio例程代碼的解釋。 2. 參考文件 《pg007_srio_gen2》 3. SRIO協議
    的頭像 發表于 12-10 16:24 ?750次閱讀
    SRIO介紹及<b class='flag-5'>xilinx</b>的<b class='flag-5'>vivado</b> 2017.4中生成srio例程代碼解釋

    Xilinx_Vivado_SDK的安裝教程

    首先是去官網下載安裝包:https://www.xilinx.com/support/download.html。 下載這個最大的、支持所有的 OS 如 Windows/Linux 的安裝包。 下載
    的頭像 發表于 11-16 09:53 ?1643次閱讀
    <b class='flag-5'>Xilinx_Vivado</b>_SDK的安裝教程

    NS4205 3.0W×2 雙聲道 D 類音頻功率放大器附加 MUTE 功能

    NS4205 是一款無需濾波器、D類雙聲道音頻功放。NS4205可在全帶寬范圍內降低EMI干擾,最大限度地減少對其他部件的影響。NS4205 無需濾波器的 PWM 調制結構及反饋電阻內置方式減少
    的頭像 發表于 10-16 16:15 ?194次閱讀
    NS<b class='flag-5'>4205</b> 3.0W×2 雙聲道 D 類音頻功率放大器附加 MUTE 功能

    如何在服務器上調試本地FPGA板卡

    ?》。 簡介 Vivado 可以在功能更強大的服務器上遠程運行,同時可以在本地PC上連接的 FPGA 板卡上進行開發調試。在此配置中,服務器和工作站必須安裝相同版本的 Vivado
    發表于 07-31 17:36

    FPGA無芯片HDMI接入方案及源碼

    DIGILENT提供的(輸出也是),下面AMD-Xilinx 7系列FPGA,一步一步搭建一個HDMI輸入DEMO. Digilent 提供了使用其提供的D
    發表于 07-16 19:25

    NI數據采集板卡如何連接使用?

    數據采集和控制。 ? 1. 了解數據采集板卡: 首先,需要了解所使用的NI數據采集板卡的型號和規格。NI提供了多種型號的數據采集板卡,具有不同的輸入通道數、采樣率、接口類型等特性。在選擇和使用數據采集
    的頭像 發表于 07-11 10:05 ?1116次閱讀

    電子RK3588S與RK3588硬件性能區別及板卡選型

    電子RK3588S與RK3588硬件性能區別及板卡選型
    的頭像 發表于 06-25 15:30 ?3768次閱讀
    迅<b class='flag-5'>為</b>電子RK3588S與RK3588硬件性能區別及<b class='flag-5'>板卡</b>選型

    在不重新安裝Vivado的情況下,是否能夠安裝線纜驅動器?

    如果 Xilinx USB/Digilent 線纜驅動器在安裝 Vivado 設計套件時還沒有安裝,或者 Xilinx USB/Digilent 線纜驅動器被禁用,在不全面重新安裝 Vivad
    的頭像 發表于 05-16 11:21 ?730次閱讀

    maixcam如何無腦運行運行別人的模型(安全帽模型

    maixcam如何無腦運行運行別人的模型(安全帽模型) 本文章主要講如何部署上傳的模型文件,以及如果你要把你模型按照該流程應該怎么修改,你可以通過該文章得到你想要的應該,該應用
    發表于 04-25 14:51

    飛凌嵌入式ElfBoard ELF 1板卡-ubuntu創建共享文件

    如果使用的是我們提供的開發環境,默認已經安裝了VMware Tools(如果不安裝該工具,在Windows主機和虛擬機之間無法使用復制粘貼、文件拖拽)。如果是自己搭建的開發環境請參考《01-1
    發表于 04-18 11:14

    Vivado 使用Simulink設計FIR濾波器

    vivado工程 System Generator提供了幾種導入方法: 1、直接生成hdl網表文件。 生成的.v或.vhd文件直接化dsp的IP核,用戶可直接將代碼
    發表于 04-17 17:29

    Vivado編譯常見錯誤與關鍵警告梳理與解析

    Xilinx Vivado開發環境編譯HDL時,對時鐘信號設置了編譯規則,如果時鐘由于硬件設計原因分配到了普通IO上,而非_SRCC或者_MRCC專用時鐘管腳上時,編譯器就會提示錯誤。
    的頭像 發表于 04-15 11:38 ?6074次閱讀

    OpenHarmony開發技術:【國際化】實例

    ArkUI開發框架對多語言的支持比較友好,只需要在?`resources`?目錄下創建對應國家的文件夾,名稱對國家簡碼,例如中國?`zh`?,則在?`resources`?下創建?`
    的頭像 發表于 04-11 09:40 ?447次閱讀
    OpenHarmony開發技術:【國際化】實例

    【操作指引】鐵威馬NAS加密文件創建和使用教程

    共享文件夾是一個網絡存儲空間。您可以建立數個共享文件夾來存放不同類別的數據,或提供給不同的用戶或用戶群組來存取文件。 ? 一旦加密共享文件夾被創建
    的頭像 發表于 04-02 14:17 ?993次閱讀
    【操作指引】鐵威馬NAS加密<b class='flag-5'>文件</b>夾<b class='flag-5'>創建</b>和使用教程

    vivado2017中找不到ZCU102對應的板卡,求解決和分享,應該如何解決

    vivado2017中找不到ZCU102對應的板卡,求解決和分享,應該如何解決
    發表于 02-29 17:31
    大发888娱乐城取款| 网上娱乐城排名| 百家乐官网博彩破解论坛| 分宜县| 免费百家乐统计软件| 百家乐官网强对弱的对打法| 八大胜备用网址| 正品百家乐玩法| 在线百家乐3d| 财富百家乐官网的玩法技巧和规则 | JJ百家乐的玩法技巧和规则| 百家乐佣金计算| 百家乐官网信息| 皇冠网888799| 大发888娱乐场下载 注册| 模拟百家乐下| 做百家乐网上投注| 新东泰百家乐官网的玩法技巧和规则| 百家乐官网娱乐城主页| 网上现金赌场| 六合彩投注网| 大发888分享| 百家乐追号软件| 百家乐推筒子| 澳门百家乐技巧皇冠网| 百家乐官网策略介绍| 粤港澳百家乐官网娱乐平台| 永利高百家乐官网怎样开户| 在线百家乐官网代理| 上虞市| 利来国际娱乐| 利高娱乐| 全讯网址| 盐山县| 百家乐官网玩法既规则| 饶阳县| 百家乐官网百乐发破解版| 九州百家乐官网娱乐城| 百家乐官网怎么刷反水| 百家乐官网的赚钱原理| 太阳城百家乐官网出千技术|