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

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

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

使用Xilinx Vivado創(chuàng)建自己板卡文件

OpenFPGA ? 來(lái)源:OpenFPGA ? 作者:OpenFPGA ? 2022-06-02 09:08 ? 次閱讀

使用Xilinx Vivado 創(chuàng)建自己板卡文件-以 EBAZ4205(曠板ZYNQ7010) 為例


01ac57f4-e20d-11ec-ba43-dac502259ad0.png

我們?cè)谑褂肰ivado創(chuàng)建工程時(shí),每次都需要選擇相關(guān)的板卡器件,比較麻煩,這篇文章就教你怎么創(chuàng)建屬于自己的板卡文件,在創(chuàng)建工程時(shí)就可以像官方板卡一樣在板卡列表里選擇。

板子

01e167a0-e20d-11ec-ba43-dac502259ad0.png

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

參考

UG895 文檔描述了電路板文件的結(jié)構(gòu)和內(nèi)容。

板文件的結(jié)構(gòu)

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

//data/boards/board_files/

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

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

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

  • preset.xml - 預(yù)設(shè) board.xml 文件中指定的 IP 內(nèi)核定義。

  • part0_pins.xml - 為board.xml 文件中指定的物理引腳接口定義和 I/O 標(biāo)準(zhǔn)。

創(chuàng)建所有必需的文件夾和文件后,我們的板文件文件夾結(jié)構(gòu)應(yīng)如下所示:

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

下面針對(duì)每個(gè)文件簡(jiǎn)單介紹一下內(nèi)容。

board.xml

該文件以名為的 XML 標(biāo)記開(kāi)頭,我們將在其中提供有關(guān)該板的基本信息:

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

首先,我們定義板文件架構(gòu)版本 - 告訴 Vivado 軟件如何解釋文件中提供的數(shù)據(jù)的屬性(在 Vivado 2020.1 中,我目前使用的架構(gòu)的最新版本是 2.1)。接下來(lái),我們?yōu)殡娐钒骞?yīng)商定義供應(yīng)商名稱、電路板名稱和網(wǎng)頁(yè)。在標(biāo)簽中,我們還指定了稍后將使用的預(yù)設(shè)文件的名稱。在此之后,我們必須通過(guò)在新行中寫(xiě)入來(lái)關(guān)閉標(biāo)記。所有其他板信息必須在這兩個(gè)標(biāo)簽之間定義。

為了確保板文件的正常工作,我們必須添加 標(biāo)簽:


1.0



"1">1.0

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

我們可以通過(guò)在 中指定圖像和在標(biāo)簽中指定描述來(lái)添加板的圖片和描述:



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




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

創(chuàng)建新項(xiàng)目時(shí),大部分信息將顯示在板選擇窗口中:

022cf166-e20d-11ec-ba43-dac502259ad0.png

或在 Vivado 項(xiàng)目摘要窗口中:

01ac57f4-e20d-11ec-ba43-dac502259ad0.png

提供基本信息后,現(xiàn)在我們可以通過(guò)在標(biāo)簽之間添加信息來(lái)指定板上的組件:





"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.comfixedio_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.comgpio_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 型號(hào), EBAZ4205 的情況下它是 xc7z010clg400-1。我們還定義了這個(gè)組件的供應(yīng)商和引腳映射文件。所有用于實(shí)現(xiàn) FPGA 和電路板組件之間接口的 IP 內(nèi)核都必須在 FPGA 標(biāo)簽之間定義。

第一個(gè)定義的接口將是 Zynq 處理系統(tǒng)的固定 I/O。我們必須指定接口模式、名稱、首選 IP 核來(lái)實(shí)現(xiàn)此接口和預(yù)設(shè)名稱(preset_proc),它將 IP 核與 preset.xml 文件中的預(yù)定義配置進(jìn)行鏈接:

```

第二個(gè)定義的接口用于 LED。為了實(shí)現(xiàn)這個(gè)接口,我們將使用 AXI GPIO IP 內(nèi)核。對(duì)于此接口,我們還必須定義端口引腳映射,因?yàn)?AXI GPIO IP 內(nèi)核端口引腳必須連接到物理 FPGA 引腳:


"master"name="leds_2bits"type="xilinx.comgpio_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 部分及其接口之后,我們必須定義其他組件。默認(rèn)情況下一個(gè)是 Zynq 7000 處理系統(tǒng),另一個(gè)是 LED。之前創(chuàng)建的接口將通過(guò)稱為組件名稱的屬性鏈接到這些組件:



"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 模塊設(shè)計(jì)窗口的 Board 選項(xiàng)卡中找到我們的組件:

02cec860-e20d-11ec-ba43-dac502259ad0.png02cec860-e20d-11ec-ba43-dac502259ad0.png

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





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



當(dāng)然,我們必須指定將我們的組件接口鏈接到在 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 對(duì)應(yīng) part0_pins.xml 文件中的 pin 索引,而 c2_st_index 和 c2_end_index 對(duì)應(yīng) IP 核端口 pin 索引。

preset.xml

preset.xml 文件以名為 的 XML 標(biāo)記開(kāi)頭,我們必須在其中提供此文件架構(gòu)版本。預(yù)設(shè)文件的當(dāng)前架構(gòu)版本是 1.0:

"1.0">

我們必須通過(guò)在新行中寫(xiě)入 來(lái)關(guān)閉 標(biāo)記。IP 核的預(yù)設(shè)將列在這兩個(gè)標(biāo)簽之間。

首先我們?yōu)?Zynq 處理系統(tǒng) IP 核添加配置。這些配置通過(guò)名為 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 處理系統(tǒng)中,我們啟用 UART1、SD0、NAND、ETHERNET0 和其他外設(shè),為這些外設(shè)選擇 MIO 引腳并配置 DDR 內(nèi)存。

接下來(lái),我們?yōu)?AXI GPIO IP 內(nèi)核添加配置,該內(nèi)核將用于在板上實(shí)現(xiàn) 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 內(nèi)核配置為只有 2 個(gè)引腳將用作默認(rèn)邏輯值為 1 的輸出,因?yàn)樵摪迳系?LED 處于低電平有效(通過(guò)提供邏輯 0 開(kāi)啟)。

part0_pins.xml

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


"xc7z010clg400-1">

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


此處列出的引腳通過(guò)引腳名稱屬性鏈接到 board.xml 文件中指定的 IP 核端口引腳。我們將 I/O 標(biāo)準(zhǔn)設(shè)置為 LVCMOS33,因?yàn)檫@些引腳所在的 FPGA bank 的電壓在 EBAZ4205 板上設(shè)置為 3.3V。最后,我們通過(guò)提供位置屬性 loc 將 IP 核端口引腳鏈接到物理 FPGA 封裝引腳。

我希望本教程能幫助各位更好地了解 Xilinx Vivado 電路板文件結(jié)構(gòu)以及如何為你的開(kāi)發(fā)板定制電路板創(chuàng)建這些文件。

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

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

路徑下還有Spartan Edge Accelerator開(kāi)發(fā)板的文件。

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

    關(guān)注

    140

    文章

    4835

    瀏覽量

    96888
  • Vivado
    +關(guān)注

    關(guān)注

    19

    文章

    799

    瀏覽量

    66131

原文標(biāo)題:使用Xilinx Vivado 創(chuàng)建自己板卡文件-以 EBAZ4205(曠板ZYNQ7010) 為例

文章出處:【微信號(hào):Open_FPGA,微信公眾號(hào):OpenFPGA】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    如何在服務(wù)器上調(diào)試本地FPGA板卡

    ?》。 簡(jiǎn)介 Vivado 可以在功能更強(qiáng)大的服務(wù)器上遠(yuǎn)程運(yùn)行,同時(shí)可以在本地PC上連接的 FPGA 板卡上進(jìn)行開(kāi)發(fā)調(diào)試。在此配置中,服務(wù)器和工作站必須安裝相同版本的 Vivado
    發(fā)表于 07-31 17:36

    NI數(shù)據(jù)采集板卡如何連接使用?

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

    在不重新安裝Vivado的情況下,是否能夠安裝線纜驅(qū)動(dòng)器?

    如果 Xilinx USB/Digilent 線纜驅(qū)動(dòng)器在安裝 Vivado 設(shè)計(jì)套件時(shí)還沒(méi)有安裝,或者 Xilinx USB/Digilent 線纜驅(qū)動(dòng)器被禁用,在不全面重新安裝 Vivad
    的頭像 發(fā)表于 05-16 11:21 ?507次閱讀

    飛凌嵌入式ElfBoard ELF 1板卡-ubuntu創(chuàng)建共享文件

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

    Vivado 使用Simulink設(shè)計(jì)FIR濾波器

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

    Vivado編譯常見(jiàn)錯(cuò)誤與關(guān)鍵警告梳理與解析

    Xilinx Vivado開(kāi)發(fā)環(huán)境編譯HDL時(shí),對(duì)時(shí)鐘信號(hào)設(shè)置了編譯規(guī)則,如果時(shí)鐘由于硬件設(shè)計(jì)原因分配到了普通IO上,而非_SRCC或者_(dá)MRCC專用時(shí)鐘管腳上時(shí),編譯器就會(huì)提示錯(cuò)誤。
    的頭像 發(fā)表于 04-15 11:38 ?4253次閱讀

    vivado2017中找不到ZCU102對(duì)應(yīng)的板卡,求解決和分享,應(yīng)該如何解決

    vivado2017中找不到ZCU102對(duì)應(yīng)的板卡,求解決和分享,應(yīng)該如何解決
    發(fā)表于 02-29 17:31

    e2 studio創(chuàng)建lib文件及使用

    e2 studio創(chuàng)建lib文件及使用
    的頭像 發(fā)表于 01-18 08:06 ?337次閱讀
    e2 studio<b class='flag-5'>創(chuàng)建</b>lib<b class='flag-5'>文件</b>及使用

    如何創(chuàng)建重疊的封裝文件

    創(chuàng)建重疊的封裝文件是一種常用的軟件設(shè)計(jì)模式,它允許程序員使用多層次的連接和封裝來(lái)保護(hù)數(shù)據(jù)和功能。下面介紹如何創(chuàng)建重疊的封裝文件。 重疊的封裝是一種軟件設(shè)計(jì)模式,可用于
    的頭像 發(fā)表于 01-07 16:51 ?483次閱讀

    VIVADO安裝問(wèn)題解決

    vivado出現(xiàn)安裝問(wèn)題剛開(kāi)始還以為是安裝路徑包含中文空格了,重裝的注意了一下,發(fā)現(xiàn)還是這個(gè)問(wèn)題。。。。后來(lái)又一頓操作猛如虎,終于發(fā)現(xiàn)了問(wèn)題。出這個(gè)問(wèn)題的原因是vivado壓縮包解壓的路徑包含中文了把解壓文件放到不含中文的地方,
    發(fā)表于 12-22 10:56 ?0次下載

    怎樣單獨(dú)使用modelsim仿真xilinx呢?

    直接在modelsim軟件內(nèi)執(zhí)行.do文件進(jìn)行仿真,不通過(guò)vivado調(diào)用modelsim,vivado僅用于生成IP核。
    的頭像 發(fā)表于 12-04 18:26 ?1205次閱讀
    怎樣單獨(dú)使用modelsim仿真<b class='flag-5'>xilinx</b>呢?

    codeblocks怎么創(chuàng)建c文件

    在 CodeBlocks 中,你可以按照以下步驟創(chuàng)建一個(gè)新的 C 文件: 步驟 1: 打開(kāi) CodeBlocks 首先,你需要打開(kāi) CodeBlocks IDE。你可以在開(kāi)始菜單或快捷方式上找到它
    的頭像 發(fā)表于 11-26 10:21 ?4010次閱讀

    安全存儲(chǔ)文件創(chuàng)建

    安全存儲(chǔ)文件創(chuàng)建 使用安全存儲(chǔ)時(shí)首先需要創(chuàng)建并初始化該安全文件。 如果在創(chuàng)建安全文件之前,/data/tee目錄下沒(méi)有dirf.db
    的頭像 發(fā)表于 11-21 15:02 ?488次閱讀
    安全存儲(chǔ)<b class='flag-5'>文件</b>的<b class='flag-5'>創(chuàng)建</b>

    為你的FPGA設(shè)計(jì)加加速,NIC、Router、Switch任意實(shí)現(xiàn)

    板卡上實(shí)現(xiàn)。 整個(gè)項(xiàng)目包括如下幾個(gè)平臺(tái)的子項(xiàng)目: 上面的項(xiàng)目是根據(jù)不同板卡實(shí)現(xiàn)的功能類似的項(xiàng)目。 接下來(lái)我們以AMD Xilinx VC709位核心,簡(jiǎn)單說(shuō)明一下怎么移植NetFPGA到我們的
    發(fā)表于 11-01 16:27

    Vivado Design Suite 用戶指南:編程和調(diào)試

    Vivado Design Suite 用戶指南:編程和調(diào)試》 文檔涵蓋了以下設(shè)計(jì)進(jìn)程: 硬件、IP 和平臺(tái)開(kāi)發(fā) : 為硬件平臺(tái)創(chuàng)建 PL IP 塊、創(chuàng)建 PL 內(nèi)核、功能仿真以及評(píng)估 AMD
    的頭像 發(fā)表于 10-25 16:15 ?800次閱讀
    <b class='flag-5'>Vivado</b> Design Suite 用戶指南:編程和調(diào)試