🐾

Verilog HDL 最初の一歩

2020/10/28に公開

すべてがNANDになるのは、ちょっとわかってきたかも

ULX3SもTinyFPGA BXもいけるんじゃね?

Verilog HDL 最初の一歩

いろいろ手動でNANDにしてきましたけども、そろそろ機械にやらせてみましょう。

いろいろ方法はありますが、ここは基本にもどってVerilog HDLで。ついにVerilog HDL!

必要なもの

パッケージでさくっと入ると思いますんで、インストール方法なんかは省略。

まず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のレッドストーン回路になりませんか?

なりますよ!

https://github.com/itsFrank/MinecraftHDL


(gifはgithubプロジェクトから)

すべてがNANDになる

これならULX3SもTinyFPGA BXもいけそうでしょ!

次は難関XOR!

Discussion