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在上述的两个软件安装完成后就有,具体是那个没注意

编译及测试的基本步骤:

  1. 编写Verilog文件,例如test.v
  2. 编写对应的测试文件,例如test_tb.v
  3. 编译两个文件
    iverilog test.v test_tb.v -o test.vvp
    
  4. 生成波形数据文件
    vvp -n test.vvp -lxt2
    
  5. 显示波形
    gtkwave test.vcd
    
  6. 添加信号【点击测试模块,选中下面的信号,点击最下面的Append】
    在这里插入图片描述

四、注——测试文件的编写

单位时间与精度:

`timescale 1ns / 100ps  //测试时间基本单位为1ns,精度为1ps

其他信息:
与一般在Modelsim中的测试文件的不同是需要添加一些仿真信息。其中包括仿真时生成的波形数据文件的名称,仿真时需要保存哪些信号的数据,仿真时间。(新手,只知道这三个作用,但是已经可以正常仿真了)
以上的数据通过以下的方式保存

initial 
	begin
		$dumpfile("test.vcd");
		$dumpvars(0,test);
		#300 $stop;
	end

其中包含以下三个部分:

  1. $dumpfile(“test.vcd”);
    指示波形数据的保存文件
  2. $dumpvars(0,test);
    第一个参数是保存该模块下几层模块数据【0表示只保存当前层,不保存子模块信号】,第二个参数是模块名
  3. #300 $stop;
    这个一定要加,否则仿真不会停止。#300延时300个单位的时间。即仿真时间为300个单位时间。

五、结语

新手上路第一天。简单记录以下,简单的仿真测试成功。其他的还不会用。

Logo

更多推荐