赞
踩
版权声明:本文为CSDN博主「JeronZhou」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/JeronZhou/article/details/115566445
由于我们需要进行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
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文件是仿真前的必要文件。
继续在命令行中输入:
vvp test_tb.vvp
回车后VVP文件会开始仿真,之后生成一个测试文件test_tb.vcd。
最后再输入:
gtkwave test_tb.vcd
回车后即可进入GTKwave的界面:
依次点击左侧菜单栏的test_tb >> c1 >> reg >> insert:
点击insert后调整大小即可显示信号:
至此,仿真成功完成。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。