北京市违法建设投诉网站,施工企业质量管理体系应按照我国,企业邮箱哪个好,制作网站的工作流程开源的 iverilog verilator 和商业软件动不动几G几十G相比#xff0c;体积小的几乎可以忽略不计。 两个都比较好用#xff0c;各有优势。 iverilog兼容性好。 verilator速度快。 配上gtkwave 看波形#xff0c;仿真工具基本就齐了。
说下基本用法 计数器 counter.v
module…开源的 iverilog verilator 和商业软件动不动几G几十G相比体积小的几乎可以忽略不计。 两个都比较好用各有优势。 iverilog兼容性好。 verilator速度快。 配上gtkwave 看波形仿真工具基本就齐了。
说下基本用法 计数器 counter.v
module counter(input wire clk,input wire rst_n,output reg[7:0] out
);always (posedge clk or negedge rst_n)if(!rst_n)out 0;elseout out 1;endmoduletestbench
test.v
module test;reg rst_n;
reg clk;
initial begin#10 rst_n 1;#10 rst_n 0;#10 rst_n 1;#50 $finish;
endinitial begin$dumpfile(test.vcd);$dumpvars(0,test);$monitor(time%t, out%h,$time,out);
endalways #1 clk !clk;wire[7:0] out;counter c1(clk, rst_n, out);endmodulerst_n和clk故意未赋初值 能看出些区别。
先用iverilog
iverilog test.v counter.v生成a.out 直接运行
./a.out或
vvp a.out会生成test.vcd vcd全称 value change dump 从名字可以看出来用来记录数值变动的文件
gtkwave test.vcd可以看出由于clk没有初值翻转后也不定。上面直接是红色的xx不确定。
verilator 可以写个c调用顶层也可以不写用个-binary参数编译。
verilator -binary -trace test.v counter.v注不加-trace编译运行后 不生成波形文件。
会在当前目录下创建 obj_dir,中间文件和生成的文件都在里面。 会生成一个以第一个verilogV命名的可执行文件以上面为例 会生成Vtest 如果把counter放前面会生成Vcounter,运行
./obj_dir/Vtest 当前目录下会生成test.vcd 可以看出直接已经帮你赋初值了
以下还用iverilog测试 clk 赋初值0
再给rst_n赋初值0 如果给rst_n 赋初值1 中间加个 #5 rst_n 0; 可以看出rst_n从开始至变0以前 out的值也是不确定的上面都直接表示了出来
iverilog兼容性非常好拿个老文件基本直接就能编译通过。 但编译的比较慢文件一多感受就非常明显了。同样一大运行的也慢。 verilator检查比较严格 但是增量编译动哪个编哪个最后再链接。 各有优点吧。反正体积不大都装上吧。