文章目录
- 1.VS Code部分
- 2.iverilog部分
- 3.GTKwave部分
1.VS Code部分
由于我们需要进行Verilog的仿真,所以免不了编辑Verilog的源代码,Verilog的代码编辑器有很多种,这里我选用的是轻量级的VS Code。
VS Code中含有Verilog语法的插件,安装插件后在VS Code当中写Verilog的代码会有高亮和缩进,使代码易读且可以检查语法错误。
什么?你还没有装VS Code?
看看这个吧:VS Code下载安装教程
安装好VS Code后,打开VS Code,点击右侧菜单栏的扩展:
在搜索栏中输入“verilog”,点击安装“Verilog-HDL/SystemVerilog/Bluespec SystemVerilog”插件。
安装完成后,扩展栏里面就会多出来刚刚安装的verilog插件,此时VS Code具备Verilog代码的编辑环境。
我事先在D盘建了一个文件夹,路径为D:\IVerilog-test
一切准备就绪后,新建一个文件“test”,先将这个文件另存为至这个路径,在保存文件的时候在下拉框中选择保存类型为“Verilog”,此时保存的文件为test.v,为Verilog源代码文件。
test.v:
module counter(out, clk, enable,reset);
output[7:0] out;
input clk, reset, enable;
reg[7:0] out;
always @ (posedge clk) begin
if(reset) begin
out <= 8'b0;
end else if(enable) begin
out <= out + 1;
end
end
endmodule
之后再新建一个文件“test_tb.v”,按照上述方法保存至与test.v相同路径即可。
test_tb.v:
`timescale 1ns/1ns
module test_tb;
reg clk, enable, reset;
wire [7:0] out;
counter c1(.out(out), .clk(clk), .enable(enable), .reset(reset));
initial begin
enable = 1;
end
initial begin
clk = 0;
forever #10 clk = ~clk;
end
initial begin
reset = 1;
#15 reset = 0;
#1000 $finish;
end
initial
begin
$dumpfile("test_tb.vcd"); //生成vcd文件,记录仿真信息
$dumpvars(0, test_tb); //指定层次数,记录信号
end
endmodule
2.iverilog部分
iverilog下载(提取码gltj):iverilog下载
由于iverilog中已经包含了GTKwave,所以只要下载一个iverilog即可。这个链接当中的iverilog安装包是exe文件,安装过程中可以勾选自动配置环境变量,勾选后就无需手动添加,方便快捷。
查看D:\IVerilog-test路径下的文件:
直接在该路径所对应的窗口上方的输入栏中输入"cmd",进入cmd界面。
进入当前路径的命令行界面:
在命令行中输入:
iverilog -o "test_tb.vvp" test_tb.v test.v
这条命令会将test.v和test_tb.v编译为一个名为test_tb.vvp的VVP文件,这个VVP文件是仿真前的必要文件。
3.GTKwave部分
继续在命令行中输入:
vvp test_tb.vvp
回车后VVP文件会开始仿真,之后生成一个测试文件test_tb.vcd。
最后再输入:
gtkwave test_tb.vcd
回车后即可进入GTKwave的界面:
依次点击左侧菜单栏的test_tb >> c1 >> reg >> insert:
点击insert后调整大小即可显示信号:
至此,仿真成功完成。