Mac上でIcarus Verilog環境を構築する
Icarus Verilog
github
assert (こんなの↓)を使いたいのでHomebrewのではなくGitHubからmasterを持ってきてインストールする。
code:verilog
assert(out == 0) $display("PASSED"); else $display("FAILED");
まずは事前準備。bisonとautoconfを用意する。
$ brew install autoconf # (autoconf が入ってなかった)
$ brew install bison # Macデフォルトのbison2.Xは壊れてる
$ echo 'export PATH="/usr/local/opt/bison/bin:$PATH"' >> ~/.zshrc
$ source ~/.zshrc
GitHubからcloneしてビルド。
$ git clone git@github.com:steveicarus/iverilog.git
$ cd iverilog/
$ sh autoconf.sh
$ ./configure
$ make
$ make install
以下のテストが通ればOK(ソースは以下を参照)
code:sh
$ iverilog -g 2012 -s and_test and_test.v and.v nand.v && ./a.out
PASSED
PASSED
PASSED
PASSED
code:and_test.v
module and_test;
reg in1, in2;
wire out;
AND dut(in1, in2, out);
initial begin
assert(out == 0) $display("PASSED"); else $display("FAILED");
assert(out == 0) $display("PASSED"); else $display("FAILED");
assert(out == 0) $display("PASSED"); else $display("FAILED");
assert(out == 1) $display("PASSED"); else $display("FAILED");
end
endmodule
code:and.v
module AND(
input in1, in2,
output out
);
wire nand1_out;
NAND nand1(in1, in2, nand1_out);
assign out = ~nand1_out;
endmodule
code:nand.v
module NAND(
input in1, in2,
output out
);
assign out = ~(in1 & in2);
endmodule