🐾
Verilog HDL 最初の一歩
ULX3SもTinyFPGA BXもいけるんじゃね?
Verilog HDL 最初の一歩
いろいろ手動でNANDにしてきましたけども、そろそろ機械にやらせてみましょう。
いろいろ方法はありますが、ここは基本にもどってVerilog HDLで。ついにVerilog HDL!
必要なもの
- Yosys https://github.com/YosysHQ/yosys
- netlistsvg https://github.com/nturley/netlistsvg
パッケージでさくっと入ると思いますんで、インストール方法なんかは省略。
まずAND
Verilog HDLなんて、Javascriptみたいなもんです(語弊)。
JavascriptでANDを書けば、こんな感じでしょうか。
OUT = B & A
Verilog HDLだと
module top (
input A,
input B,
output OUT
);
assign OUT = B & A;
endmodule
こんなもんですか。
呪文を唱えて、このVerilog HDLコードを図式してみましょう。
yosys -q -p "
read_verilog and.v
synth -top top
abc -g NAND
show -format svg -prefix and
write_json -compat-int and.json
"
むにゃむにゃむにゃ(呪文)
ほらきた! NANDです。NOTは残ってますが、NANDと同じなのは証明済みですよね。
もう一つの呪文もいっときましょう。
netlistsvg and.json
ほい
同じ! (NOTはNANDですよ)
OR
つぎ。OR。
Javascriptだと?
OUT = B | A
書くまでもなかったですけど、Verilog HDLと比較しないといけません。
Verilog HDLだと
module top (
input A,
input B,
output OUT
);
assign OUT = B | A;
endmodule
こうですね。
先ほどと同じ呪文を唱えて、図式してみます。
きた! 同じ!
netlistでも確認。
同じ! (NOTはNANDですよ)
マイクラ レッドストーン?
これって、Minecraftのレッドストーン回路になりませんか?
なりますよ!
(gifはgithubプロジェクトから)
すべてがNANDになる
これならULX3SもTinyFPGA BXもいけそうでしょ!
Discussion