[FPGA] 1、Artix-7 35T Arty FPGA 評估套件學習

Artix-7 35T Arty FPGA 評估套件學習

1、簡介

xlinx官網地址: https://china.xilinx.com/products/boards-and-kits/arty.html

1.1 產品描述

售價 99 美元的 Arty 評估套件可爲各種嵌入式應用實現快捷跨越式啓步,其中包括從基於 Linux 的計算密集型系統到輕量級微控制器等各種應用。 針對 Xilinx 業界最佳低端產品性能功耗比 Artix®-7 35T FPGA 精心設計Arty 套件具有 Xilinx 可針對幾乎任何處理器使用案例進行定製的 MicroBlaze™ 處理器。


1.2 主要性能和優勢

  • Artix-7 XC7A35T-L1CSG324I FPGA
  • 片上模數轉換器 (XADC)。
  • JTAG 與 Quad-SPI Flash 可編程
  • 256 MB DDR3L 支持速率爲 667 MHz 的 16 位總線
  • 16 MB Quad-SPI Flash
  • 10/100 Mb/s Ethernet
  • USB-UART Bridge
  • 開關、按鈕、RGB LED
  • 4 個 Pmod 接口 (32 I/O)
  • Arduino/ChipKit“盾”接插件 (49 I/O)


1.3 特色 Xilinx 器件

項目 個數
邏輯單元 33,280
DSP Slice 90
存儲器 1,800
GTP 6.6Gb/s 收發器 4
I/O 引腳 250

注:包含 Artix-7 XC7A35T-L1CSG324I FPGA


1.4 電路板特性

下圖是整個開發板上資源的概覽,更詳細的可以參考:

注:板子自帶JTAG,用於燒寫FPGA固件的,DEBUG得用外置工具


1.5 視頻資源

2、深入

START地址: https://reference.digilentinc.com/reference/programmable-logic/arty/start

2.1 兩種開發方法HDL/SOC

FPGA讓Arty變得非常靈活。在衆多的特點中,FPGAs有能力轉換成定製的軟件定義的片上系統(SoC)。這些“軟SOC”FPGA配置使用圖形化的工具ViVADO IP積分器(Vivado IPI)來設計。在這個工具中,從廣泛的庫中拖動預構建的外圍塊,並根據需要放入處理系統。這些預構建的外圍設備包括定時器、UART/SPI/IIC控制器以及通常在SoC或微控制器中找到的許多其他設備。厲害的用戶還會發現,他們可以用硬件定義語言(HDL),特別是Verilog或VHDL,來創建自己的外圍塊。對於那些對學習HDL不感興趣的人來說,Xilinx高級合成工具可以通過用C編寫自定義外圍塊來定義它們。

ARTY的軟SOC配置由MyBLAZE處理器核心提供。MixBRAZE是32位RISC軟處理器內核,專門設計用於Xilinx FPGA。Arty SoC配置中的MicroBlaze處理器通常以100MHz運行,不過可以設計您的SoC,使其能夠在200MHz上運行。Arty通過提供16MB的非易失性程序內存和256MB的DDR3L RAM,支持具有要求高的內存需求的大型MicroBlaze程序。

在設計好SOC配置之後,Xilinx也提供了工具用於在軟核上應用程序開發。這是通過將您的SoC設計導出到Vivado IPI中並導入到Xilinx軟件開發包(XSDK)中來完成的,它是一個用於設計/調試C中的MicroBlaze程序的集成開發環境(IDE)。在IPI到XSDK切換之後,XSDK被自動配置爲包括用於SoC中包括的外圍塊的庫和示例。此時,編程Arty非常類似於編程其他SoC或微控制器平臺:程序用C編寫,通過USB編程到板上,然後可選地在硬件中調試。軟SoC配置和MicroBlaze程序也可以加載到16MB非易失性程序存儲器中,以便在Arty上電後立即執行。

儘管Arty特別適合Microblaze軟SoC設計,它也可以像其他FPGA開發一樣在門電路級別編程。此設計流程要求您在Vivado中使用HDL描述RTL電路,並且它不使用Vivado IPI或XSDK工具。這種設計有許多優點,但與編程單板計算機非常不同,而是由熟悉FPGA設計或對設計和實現不包含處理器的數字電路感興趣的人使用。


2.2 電路板電源供應系統

複雜電路一般都有多個芯片負構成整體電源系統,Arty板子也同樣具備該系統:輸入包括7~15V的DC接口和Micro-USB接口;其中DC接口後還接了一個ADP2384芯片,用於將輸入電壓降到5V;5V電壓經過ADP5052芯片分壓成多種電壓,供後級系統使用;特別的ERF3012芯片用於將ADP5052電壓穩定到1.25V,用於XADC的VREF:

下表是電源系統各路的去向:

Supply Circuits Device Current (max/typical)
5V Onboard Regulators, RGB LEDs IC12: Analog Devices ADP2384 3.5A/0.375A to 2A
3.3V FPGA I/O, Clocks, Flash, PMODs, LEDs, Buttons, Switches, USB port, Ethernet IC11: Analog Devices ADP5052 2.2A/NA
0.95V FPGA Core and Block RAM IC11: Analog Devices ADP5052 1.0A/0.2A to 0.8A
1.8V FPGA Auxiliary IC11: Analog Devices ADP5052 1.0A/NA
1.35V DDR3L and associated FPGA bank IC11: Analog Devices ADP5052 1.0A/NA
1.25V XADC Analog Reference IC13: Texas Instruments REF3012 25mA/NA

3、DEMO

3.1 閃燈DEMO

Getting Started with Vivado : https://reference.digilentinc.com/vivado/getting_started/start

0) sudo 打開工程:

source /opt/Xilinx/Vivado/2018.2/settings64.sh
sudo /opt/Xilinx/Vivado/2018.2/bin/vivado


1) 創建新工程,命令爲blink:

注:視頻中創建blink文件的時候,clk and led 輸入輸出屬性弄錯了,真正的是:clk是output, led是input

其中包含兩個重要文件,第一個是板子文件,另一個是自己創建的verilog文件。對於板子文件要和自己的開發板相匹配,此外,對於本工程需要修改下板子文件(增加clk和led):

## Clock signal
#set_property -dict { PACKAGE_PIN E3    IOSTANDARD LVCMOS33 } [get_ports { CLK100MHZ }]; #IO_L12P_T1_MRCC_35 Sch=gclk[100]
#create_clock -add -name sys_clk_pin -period 10.00 -waveform {0 5} [get_ports { CLK100MHZ }];
set_property -dict { PACKAGE_PIN E3    IOSTANDARD LVCMOS33 } [get_ports { clk }]; #IO_L12P_T1_MRCC_35 Sch=gclk[100]
create_clock -add -name sys_clk_pin -period 10.00 -waveform {0 5} [get_ports { clk }];

...

## LEDs
set_property -dict { PACKAGE_PIN H5    IOSTANDARD LVCMOS33 } [get_ports { led }]; #IO_L24N_T3_35 Sch=led[4
#set_property -dict { PACKAGE_PIN H5    IOSTANDARD LVCMOS33 } [get_ports { led[0] }]; #IO_L24N_T3_35 Sch=led[4]
#set_property -dict { PACKAGE_PIN J5    IOSTANDARD LVCMOS33 } [get_ports { led[1] }]; #IO_25_35 Sch=led[5]

自己創建的.v文件爲:

module blink(
    input clk,
    output led
    );

reg [24:0] count = 0;
assign led = count[24];
always @ (posedge(clk)) count <= count + 1;
    
endmodule

這樣blink工程實現的功能便是:週期性的控制開發板上的LED0閃爍


2) 編譯燒寫:

接下來便是編譯+燒寫,編譯需要先點擊三角形(RUN)進行編譯,然後再點擊三角形右邊的(create bitstream)產生*.bit文件,如果沒有錯誤在messages中不會有錯誤提醒。接着左下角的PROGRAM AND DEBUG欄目中選擇Open Hardware Manager進行連接開發板(連接時選擇auto連接,如果找不到開發板,則說明其他哪裏有問題):

燒寫的時候點擊左下角PROGRAM AND DEBUG區域中的program device便可:

此時點擊Flow Navigator中的RTL ANALYSIS的Schematic會產生我們編寫代碼對應的原理圖:

注:更詳細的燒寫方法見LINK-6,bit燒寫掉電會沒有,bin燒寫會掉電保持

[1].Artix-7 35T Arty FPGA 評估套件官網
[2].vivado license在ubuntu上安裝
[3].board fils下載地址
[4].Installing Vivado and Digilent Board Files
[5].Getting Started with Vivado
[6].Arty Programming Guide
[7].Programming Digilent FPGA Boards Through Multisim

@beautifulzzzz
智能硬件、物聯網,熱愛技術,關注產品
博客:http://blog.beautifulzzzz.com
園友交流羣:414948975
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章