電子發(fā)燒友App

硬聲App

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

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

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>為EBAZ4205創(chuàng)建Xilinx Vivado板文件

為EBAZ4205創(chuàng)建Xilinx Vivado板文件

2023-06-16 | zip | 0.00 MB | 次下載 | 2積分

資料介紹

描述

今年早些時候,我的朋友偶然發(fā)現(xiàn)了這款采用 Xilinx Zynq 7010 的廉價板,名為 EBAZ4205。這些板是從 Ebang Ebit E9+ 比特幣礦機中清理出來的,可以從 Aliexpress 購買。我想我會試一試,我很驚訝它們是多么便宜和強大。在玩過這個板之后,我很快就對每次創(chuàng)建新項目時都要配置 Zynq PS 系統(tǒng)感到惱火。因此,我決定學(xué)習(xí)如何創(chuàng)建 Xilinx Vivado 板文件,今天我將與您分享我的知識。

要求

在為您的定制電路板創(chuàng)建電路板文件之前,我強烈建議您閱讀Xilinx UG895 Vivado 系統(tǒng)級設(shè)計附錄 A。該文檔描述了電路板文件的結(jié)構(gòu)和內(nèi)容。

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

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

//data/boards/board_files/

在這個目錄中,我們可以創(chuàng)建新文件夾并以我們的板子命名(例如 ebaz4205)。在這個目錄中,我們將創(chuàng)建另一個以板版本命名的文件夾(例如 1.0)。該文件夾將包含我們的電路板圖片和三個重要的 XML 文件:

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

板子.xml

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

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

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

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


<file_version>1.0file_version>


<compatible_board_revisions>
    <revision id="1">1.0revision>
compatible_board_revisions>

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

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


<images>
    <image name="ebaz4205.jpg" display_name="EBAZ4205 Development Board" sub_type="board">
        <description>EBAZ4205 Development Boarddescription>
    image>
images>


<description>EBAZ4205 is mining board used in Ebang Ebit E9+ bitcoin miner machine. This board features 256MB DDR3 memory, 128MB NAND Flash memory, 10/100MBit Ethernet and speed grade -1 Zynq 7010.description>

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

poYBAGN1JI-AcL5pAACqN2PKwZo158.png
?

或在 Vivado 項目摘要窗口中:

pYYBAGN1JJKAT816AACRj-iCeOM233.png
?

?

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


<components>
	
    
    <component name="part0" display_name="EBAZ4205" type="fpga" part_name="xc7z010clg400-1" pin_map_file="part0_pins.xml" vendor="xilinx" spec_url="www.xilinx.com">
        <description>FPGA part on the boarddescription>
      	
        
	<interfaces>

	    
	    <interface mode="master" name="ps7_fixedio" type="xilinx.com:display_processing_system7:fixedio_rtl:1.0" of_component="ps7_fixedio" preset_proc="ps7_preset"> 
	        <preferred_ips>
		    <preferred_ip vendor="xilinx.com" library="ip" name="processing_system7" order="0"/>
	        preferred_ips>
            interface>

            
            <interface mode="master" name="leds_2bits" type="xilinx.com:interface:gpio_rtl:1.0" of_component="leds_2bits" preset_proc="leds_2bits_preset">
                <preferred_ips>
                    <preferred_ip vendor="xilinx.com" library="ip" name="axi_gpio" order="0"/>
                preferred_ips>
                <port_maps>
                    <port_map logical_port="TRI_O" physical_port="leds_2bits_tri_o" dir="out" left="1" right="0"> 
                        <pin_maps>
                            <pin_map port_index="0" component_pin="leds_2bits_tri_o_0"/> 
                            <pin_map port_index="1" component_pin="leds_2bits_tri_o_1"/> 
                        pin_maps>
                    port_map>
                port_maps>
            interface>

        interfaces>
    component>

    
    <component name="ps7_fixedio" display_name="PS7 fixed IO" type="chip" sub_type="fixed_io" major_group=""/>	

    
    <component name="leds_2bits" display_name="LEDs" type="chip" sub_type="led" major_group="General Purpose Input or Output">
        <description>LEDs, Active Lowdescription>
    component>

components>

首先我們必須定義板上使用的 FPGA 部分,在 EBAZ4205 的情況下它是 xc7z010clg400-1。我們還定義了這個組件的供應(yīng)商和引腳映射文件。所有用于實現(xiàn) FPGA 和電路板組件之間接口的 IP 內(nèi)核都必須在 FPGA 標(biāo)簽之間定義。

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


<interface mode="master" name="ps7_fixedio" type="xilinx.com:display_processing_system7:fixedio_rtl:1.0" of_component="ps7_fixedio" preset_proc="ps7_preset"> 
    <preferred_ips>
        <preferred_ip vendor="xilinx.com" library="ip" name="processing_system7" order="0"/>
    preferred_ips>
interface>

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


<interface mode="master" name="leds_2bits" type="xilinx.com:interface:gpio_rtl:1.0" of_component="leds_2bits" preset_proc="leds_2bits_preset">
    <preferred_ips>
        <preferred_ip vendor="xilinx.com" library="ip" name="axi_gpio" order="0"/>
    preferred_ips>
    <port_maps>
        <port_map logical_port="TRI_O" physical_port="leds_2bits_tri_o" dir="out" left="1" right="0"> 
            <pin_maps>
                <pin_map port_index="0" component_pin="leds_2bits_tri_o_0"/> 
                <pin_map port_index="1" component_pin="leds_2bits_tri_o_1"/> 
            pin_maps>
        port_map>
    port_maps>
interface>

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


<component name="ps7_fixedio" display_name="PS7 fixed IO" type="chip" sub_type="fixed_io" major_group=""/>


<component name="leds_2bits" display_name="LEDs" type="chip" sub_type="led" major_group="General Purpose Input or Output">
    <description>LEDs, Active Lowdescription>
component>

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

pYYBAGN1JJSAUNLjAABTDwE3njw907.png
?

?

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


<jtag_chains>

    
    <jtag_chain name="chain1">
        <position name="0" component="part0"/>
    jtag_chain>

jtag_chains>

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


<connections>


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

connections>

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

預(yù)設(shè).xml

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

<ip_presets schema = "1.0">

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

首先我們?yōu)?Zynq 處理系統(tǒng) IP 核添加配置。這些配置通過名為 preset_proc_name 的屬性鏈接到 board.xml 文件:


<ip_preset preset_proc_name="ps7_preset">
    <ip vendor="xilinx.com" library="ip" name="processing_system7" version="*">
        <user_parameters>
            <user_parameter name="CONFIG.PCW_UART1_PERIPHERAL_ENABLE" value="1"/>
            <user_parameter name="CONFIG.PCW_UART1_UART1_IO" value="MIO 24 .. 25"/>
            <user_parameter name="CONFIG.PCW_SD0_PERIPHERAL_ENABLE" value="1"/>
            <user_parameter name="CONFIG.PCW_SD0_SD0_IO" value="MIO 40 .. 45"/>
            <user_parameter name="CONFIG.PCW_NAND_PERIPHERAL_ENABLE" value="1"/>
            <user_parameter name="CONFIG.PCW_NAND_GRP_D8_ENABLE" value="0"/>
            <user_parameter name="CONFIG.PCW_ENET0_PERIPHERAL_ENABLE" value="1"/>
            <user_parameter name="CONFIG.PCW_ENET0_ENET0_IO" value="EMIO"/>
            <user_parameter name="CONFIG.PCW_ENET0_GRP_MDIO_ENABLE" value="1"/>
            <user_parameter name="CONFIG.PCW_ENET0_PERIPHERAL_FREQMHZ" value="100 Mbps"/>
            <user_parameter name="CONFIG.PCW_GPIO_MIO_GPIO_ENABLE" value="1"/>
            <user_parameter name="CONFIG.PCW_GPIO_MIO_GPIO_IO" value="MIO"/>
            <user_parameter name="CONFIG.PCW_ENET_RESET_ENABLE" value="0"/>
            <user_parameter name="CONFIG.PCW_USB_RESET_ENABLE" value="0"/>
            <user_parameter name="CONFIG.PCW_I2C_RESET_ENABLE" value="0"/>
            <user_parameter name="CONFIG.PCW_UIPARAM_DDR_BUS_WIDTH" value="16 Bit"/>
            <user_parameter name="CONFIG.PCW_UIPARAM_DDR_PARTNO" value="MT41K128M16 JT-125"/>
        user_parameters>
    ip>
ip_preset>

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

接下來,我們?yōu)?AXI GPIO IP 內(nèi)核添加配置,該內(nèi)核將用于在板上實現(xiàn) FPGA 和用戶 LED 之間的接口:


<ip_preset preset_proc_name="leds_2bits_preset">
    <ip vendor="xilinx.com" library="ip" name="axi_gpio" ip_interface="GPIO">
        <user_parameters>
            <user_parameter name="CONFIG.C_GPIO_WIDTH" value="2"/>
            <user_parameter name="CONFIG.C_ALL_OUTPUTS" value="1"/>
            <user_parameter name="CONFIG.C_ALL_INPUTS" value="0"/>
            <user_parameter name="CONFIG.C_DOUT_DEFAULT" value="0x00000003"/>
        user_parameters>
    ip>
ip_preset>

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

part0_pins.xml

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


<part_info part_name="xc7z010clg400-1">
    <pins>
        <pin index="0" name ="leds_2bits_tri_o_0" iostandard="LVCMOS33" loc="W14"/>
        <pin index="1" name ="leds_2bits_tri_o_1" iostandard="LVCMOS33" loc="W13"/>
    pins>
part_info>

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

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

完整的 EBAZ4205 板文件可以在我的存儲庫中找到。


下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數(shù)據(jù)手冊
  2. 1.06 MB  |  532次下載  |  免費
  3. 2RK3399完整板原理圖(支持平板,盒子VR)
  4. 3.28 MB  |  339次下載  |  免費
  5. 3TC358743XBG評估板參考手冊
  6. 1.36 MB  |  330次下載  |  免費
  7. 4DFM軟件使用教程
  8. 0.84 MB  |  295次下載  |  免費
  9. 5元宇宙深度解析—未來的未來-風(fēng)口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費
  11. 6迪文DGUS開發(fā)指南
  12. 31.67 MB  |  194次下載  |  免費
  13. 7元宇宙底層硬件系列報告
  14. 13.42 MB  |  182次下載  |  免費
  15. 8FP5207XR-G1中文應(yīng)用手冊
  16. 1.09 MB  |  178次下載  |  免費

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費
  3. 2555集成電路應(yīng)用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費
  7. 4開關(guān)電源設(shè)計實例指南
  8. 未知  |  21549次下載  |  免費
  9. 5電氣工程師手冊免費下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費
  11. 6數(shù)字電路基礎(chǔ)pdf(下載)
  12. 未知  |  13750次下載  |  免費
  13. 7電子制作實例集錦 下載
  14. 未知  |  8113次下載  |  免費
  15. 8《LED驅(qū)動電路設(shè)計》 溫德爾著
  16. 0.00 MB  |  6656次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費
  3. 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
  4. 78.1 MB  |  537798次下載  |  免費
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費
  11. 6電路仿真軟件multisim 10.0免費下載
  12. 340992  |  191187次下載  |  免費
  13. 7十天學(xué)會AVR單片機與C語言視頻教程 下載
  14. 158M  |  183279次下載  |  免費
  15. 8proe5.0野火版下載(中文版免費下載)
  16. 未知  |  138040次下載  |  免費