Linux 下Verilog编辑及仿真
Linux 下Verilog的编辑及仿真
·
Linux 下Verilog编辑及仿真
一、软件
编辑器:VS code
编译器:iverilog
波形查看:gtkwave
系统环境:Ubuntu 22.04 LTS
二、软件安装
iverilog 安装:
sudo apt install iverilog
gtkwave 安装:
sudo apt install gtkwave
VS code插件安装:
可以使用-V参数测试是否安装成功
iverilog -V
gtkwave -V
三、软件的使用
使用过程中主要涉及三个指令:
iverilog:编译生成可执行脚本
vvp:将可执行脚本运行并记录产生的波形数据
gtkwave:查看生成的波形数据文件(将数据绘制为波形)
其中vvp在上述的两个软件安装完成后就有,具体是那个没注意
编译及测试的基本步骤:
- 编写Verilog文件,例如test.v
- 编写对应的测试文件,例如test_tb.v
- 编译两个文件
iverilog test.v test_tb.v -o test.vvp
- 生成波形数据文件
vvp -n test.vvp -lxt2
- 显示波形
gtkwave test.vcd
- 添加信号【点击测试模块,选中下面的信号,点击最下面的Append】
四、注——测试文件的编写
单位时间与精度:
`timescale 1ns / 100ps //测试时间基本单位为1ns,精度为1ps
其他信息:
与一般在Modelsim中的测试文件的不同是需要添加一些仿真信息。其中包括仿真时生成的波形数据文件的名称,仿真时需要保存哪些信号的数据,仿真时间。(新手,只知道这三个作用,但是已经可以正常仿真了)
以上的数据通过以下的方式保存
initial
begin
$dumpfile("test.vcd");
$dumpvars(0,test);
#300 $stop;
end
其中包含以下三个部分:
- $dumpfile(“test.vcd”);
指示波形数据的保存文件 - $dumpvars(0,test);
第一个参数是保存该模块下几层模块数据【0表示只保存当前层,不保存子模块信号】,第二个参数是模块名 - #300 $stop;
这个一定要加,否则仿真不会停止。#300延时300个单位的时间。即仿真时间为300个单位时间。
五、结语
新手上路第一天。简单记录以下,简单的仿真测试成功。其他的还不会用。
更多推荐
已为社区贡献1条内容
所有评论(0)