時間 | 作者 | 版本 | 備注 |
---|---|---|---|
2018-10-09 08:38 | beautifulzzzz | v1.0 | 到3 |
2018-10-18 07:23 | beautifulzzzz | v2.0 | risc-v (4) |
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 視頻資源
-
介紹用開發IDE如何連接到開發板、燒寫程序、及一些簡單的介紹
打開vivado,將開發板用一根數據線連接到電腦上,點擊設備管理找到對應的設備;在工程頁面,雙擊XADC可以出來一個溫度曲線(這個視頻花很大篇幅講了XADC);右鍵點擊xc7a35t,選擇program device可以燒寫程序;
-
使用 Arty Eval Kit 在 Artix-7 A35T 器件上評估 AMSXADC
了解如何快速簡單地在 Artix-7 A35T Arty 評估套件上不用任何 HDL而使用簡單有效的 IPI 內置設計來評估 Xilinx 模擬混合信號 (AMS) 技術。 視頻還展示了一些 TCL 腳本,通過 Vivado 輕松與 XADC 交互並后置處理數據。
-
MicroBlaze WebServer Demo for the ARTY Evaluation Kit
展示了用freeRTOS工程的網絡接口,做一個webserver
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
-
sudo 打開工程:
source /opt/Xilinx/Vivado/2018.2/settings64.sh
sudo /opt/Xilinx/Vivado/2018.2/bin/vivado
- 創建新工程,命令為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閃爍
- 編譯燒寫:
接下來便是編譯+燒寫,編譯需要先點擊三角形(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燒寫會掉電保持
4、SiFive基於risc-v指令集的芯片驗證
4.1 准備工作
- Xilinx Artix-7 35T Arty FPGA Evaluation Kit開發板
- ARM-USB-TINY-H(這里我選用JLink當作Jtag用,省了點錢)
- FPGA toolchain(下載WEB版開發工具:https://www.xilinx.com/support/download.html)
sudo chmod +x Xilinx_Vivado_SDK_Web_2018.2_0614_1954_Lin64.bin
sudo ./Xilinx_Vivado_SDK_Web_2018.2_0614_1954_Lin64.bin
下載合適的驅動:
cd /opt/Xilinx/Vivado/2018.2/data/xicom/cable_drivers/lin64/install_script/install_drivers/
sudo ./install_drivers
獲取Diailent板級支持文件,拷貝到Vivado下:
git clone https://github.com/Digilent/vivado-boards.git
sudo cp -r vivado-boards/new/board_files/* /opt/Xilinx/Vivado/2018.2/data/boards/board_files/
返回到HOME目錄,啟動環境變量(每次新打開一個termianl去啟動VIVADO的時候,都需要執行):
source /opt/Xilinx/Vivado/2018.2/settings64.sh
sudo /opt/Xilinx/Vivado/2018.2/bin/vivado
- 通過vivado UI界面給板子配置(燒寫pre-build FPGA二進制程序)
預編譯好的二進制FPGA文件Freedom E310 Arty FPGA Dev Kit Bitstream可以從https://dev.sifive.com/dashboard/下載(需要注冊)
打開vivado -> Hardware Manager -> 選擇板子( Micron part n25q128-3.3v,也可以根據板子來篩選)-> add configuration memory device
燒寫完畢后,點擊PROG按鍵,demo程序將會執行,LED1、LED2會點亮,用上位機打開串口會發現LOG輸出:
sudo minicom -D /dev/ttyUSB0
Welcome to minicom 2.7.1
OPTIONS: I18n
Compiled on Aug 13 2017, 15:25:34.
Port /dev/ttyUSB0, 23:03:08
Press CTRL-A Z for help on special keys
core freq at 65000000 Hz
SIFIVE, INC.
5555555555555555555555555
5555 5555
5555 5555
5555 5555
5555 5555555555555555555555
5555 555555555555555555555555
5555 5555
5555 5555
5555 5555
5555555555555555555555555555 55555
55555 555555555 55555
55555 55555 55555
55555 5 55555
55555 55555
55555 55555
55555 55555
55555 55555
55555 55555
555555555
55555
5
SiFive E-Series Software Development Kit 'demo_gpio' program.
Every 2 second, the Timer Interrupt will invert the LEDs.
(Arty Dev Kit Only): Press Buttons 0, 1, 2 to Set the LEDs.
Pin 19 (HiFive1) or A5 (Arty Dev Kit) is being bit-banged
for GPIO speed demonstration.
BT0~3對應板子上的幾個按鍵:
********************************************************
********************************************************
** Avnet/Digilent Arty Evaluation Board **
** LEDs and switches GPIO Demonstration **
********************************************************
********************************************************
**
Choose Task:
BTN0: Print PWM value.
BTN1: 'Cylon' LED display.
BTN2: Scrolling LED display.
BTN3: Return to this menu.
注: 只要用USB數據線連接上就行,查看串口會發現開發板占了兩個USB,依次打開,第二個發現會有LOG輸出
注: 此外上位機串口工具請參考: https://blog.csdn.net/zoujiachi666/article/details/79441340
LINKS
[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