FPGA(Xillinx)ボード Arty S7 Lチカ

スポンサーリンク

はじめに

Xilinx搭載のFPGAボードで、ボード上のLEDをチカチカさせてみる。
xilinxFPGAボードを使用するときはvivadoという開発環境を使用する。
意外と使い方が面倒なのでメモしていく。

環境

Arty S7 50 Rev.B
Linux mint

xdcファイルの読み込み

ザイリンクスデザイン制約(xdc)ファイルを読み込みます。

まずはArty S7のxdcファイルをダウンロードします。 github.com

ダウンロードしたら読みんでいきます。左のFlow Navigatorから
Add Sourcesをクリック

f:id:shangtian:20200312103357p:plain

Add or crate constaraintsをクリック

f:id:shangtian:20200312103354p:plain

先程ダウンロードしたxdcファイルを f:id:shangtian:20200312103403p:plain  

今回使うのはクロックとArty S7に搭載されているLED4個なので
対応するコードをコメントアウト化していく。
f:id:shangtian:20200312104613p:plain 以下のコードがコメントアウトしていることを確認

set_property -dict { PACKAGE_PIN R2    IOSTANDARD SSTL135 } [get_ports { CLK100MHZ }]; #IO_L12P_T1_MRCC_34 Sch=ddr3_clk[200]
## LEDs
set_property -dict { PACKAGE_PIN E18   IOSTANDARD LVCMOS33 } [get_ports { led[0] }]; #IO_L16N_T2_A27_15 Sch=led[2]
set_property -dict { PACKAGE_PIN F13   IOSTANDARD LVCMOS33 } [get_ports { led[1] }]; #IO_L17P_T2_A26_15 Sch=led[3]
set_property -dict { PACKAGE_PIN E13   IOSTANDARD LVCMOS33 } [get_ports { led[2] }]; #IO_L17N_T2_A25_15 Sch=led[4]
set_property -dict { PACKAGE_PIN H15   IOSTANDARD LVCMOS33 } [get_ports { led[3] }]; #IO_L18P_T2_A24_15 Sch=led[5]

ここまで来ればプログラムを書く準備ができた。

ソースコード

左のFlow NavigatorからAdd Sourcesを選択 f:id:shangtian:20200312103357p:plain

Add create design sources をクリック f:id:shangtian:20200312105408p:plain

Create File を選択しファイルを作成。
言語はVerilogを使うので、Verilogを選択。 f:id:shangtian:20200312105505p:plain

gisted073bd71b3751e415db4fcfbeeb2323

書き込み

まずはArty S7の読み込み
ハードウェアマネージャを開く f:id:shangtian:20200312110326p:plain Autoコネクトを選択  

f:id:shangtian:20200312110931p:plain ハードウェアと接続が確立するとこんな表示が表示される。

f:id:shangtian:20200312110948p:plain

generate bitstreamをクリック

f:id:shangtian:20200312111343p:plain

右上がくるくる回っていれば実行中 f:id:shangtian:20200312111430p:plain

write_bitstream Compleateが画面の右上に表示されていることを確認したら
Programa deviceを選択する。

f:id:shangtian:20200312111950p:plain

Programをクリックし書き込み

f:id:shangtian:20200312112123p:plain

結果

f:id:shangtian:20200312112533g:plain

参考文献

ARTY S7ゲット - aster_ismの工作室

http://www.icrus.org/machida/product/verilog.pdf

https://www.youtube.com/watch?v=9AY9PexCpfs&t=7s

https://www.xilinx.com/support/documentation/sw_manuals_j/xilinx2018_2/ug903-vivado-using-constraints.pdf