ULX3Sでボタンを押してLEDを光らせる
前回(ULX3SでLチカ)は既存のサンプルプログラムを動かしただけだったので、今回は自分で1から書いてLチカしてみる。 準備
code:sh
$ cd ~/src/ulx3s_learning/
$ mkdir blink
$ cd blink
ソースコード
code:top.sv
module top (
output wifi_gpio0
);
// btn1 を押したら led0 を点灯させる // 他の led はすべて消灯
assign led7:1 = { 6'b0 }; // 理由を忘れたけど wifi_gpio0 のフラグを立てておく必要があるらしい
assign wifi_gpio0 = 1'b1;
endmodule
ビルド
code:Makefile
all: ulx3s.bit
clean:
rm -rf blink.json ulx3s_out.config ulx3s.bit
ulx3s.bit: ulx3s_out.config
ecppack ulx3s_out.config ulx3s.bit
ulx3s_out.config: blink.json
nextpnr-ecp5 --85k --json blink.json --lpf ulx3s_v20.lpf --textcfg ulx3s_out.config
blink.json: top.sv
yosys -p "hierarchy -top top" -p "proc; opt" -p "synth_ecp5 -noccu2 -nomux -nodram -json blink.json" top.sv
prog: ulx3s.bit
fujprog ulx3s.bit
$ make clean && make && make prog
実行結果
ボタンを押さないと消灯してるが、ボタンを押すと点灯する
https://gyazo.com/e4063c1482c92284cd65efdb8ccd33d9
https://gyazo.com/c34ecc3aff590c10189c26c079a1ec28