VCS仿真教程(一):Verilog+波形+Makefile


本博文主要讲述怎么通过vcs仿真verilog文件并且查看波形,以及通过一个简单的makefile脚本帮助我们自动化操作。EDA软件大家可以从这里下载

Verilog文件

RTL文件:命名为add.v

//一个简单的加法器
module add (

	input         [20:0]	A ,
	input signed  [17:0]	B	,

	output signed [22:0]	C);

	wire signed [21:0]	A_signed;

assign A_signed = {1b0,A};
assign C = A_signed + B;

endmodule

testbench文件:命名为test.v文件

`timescale 1ns/1ns

module test;

reg clk;
reg rst_n;

reg [20:0] A;
reg signed [17:0] B;

wire signed [22:0] C;

initial begin
	clk = 0;
	rst_n = 0;
	#10;
	rst_n = 1;
	A = 21b0_0000_0000_0000_1111_1111;
	B = 18b11_1111_1111_0000_0000;
    #200;
    $stop;

end

always #5 clk = ~clk;

add add_inst(
	.A(A),
	.B(B),
	.C(C));
endmodule

VCS仿真

把add.v和test.v放在同一个文件夹下:

在的当前路径下打开终端,输入命令: test.v必须放在add.v前面 结束后在当前路径下会产生其他几个文件: 这里的simv是一个可执行文件,接下来就执行simv 在终端中输入以下命令: 这时候会出现一个查看波形的窗口DVE

DVE查看波形

接下来:

鼠标选择add文件定义的端口,然后右键,add to wave,选择第一个new wave view 这时候会产生一个新的波形窗口: 我们点击左上角的向下箭头,开始运行,马上就会产生右侧的波形 我们可以改一下进制,这样看的更清楚: 选择ABC三个端口,右键Set Radix,选择二进制 这样我们就会看到: 这样我们就可以通过波形来分析verilog设计中的逻辑是否符合我们预期

利用Makefile自动化仿真

通过上面的内容,我们可以知道,vcs先编译我们的verilog源文件,然后会产生一个叫simv的可执行文件,通过执行simv,我们可以得到仿真的结果,并且通过-gui命令打开可视化窗口查看波形。这整个过程我们可以写一个简单的makefile脚本来帮助我们自动化操作。 新建一个文本,命名为makefile,内容如下:

all: compile sim

compile:
	vcs test.v add.v -debug_all

sim:
	./simv -gui

clean:
	rm -r csrc DVEfiles simv.daidir *.vpd simv *.key

当我们在终端中输入make compile就等同于执行vcs test.v add.v -debug_all 当我们在终端中输入make sim就等同于执行./simv -gui 当我们在终端中输入make all就等同于先compile,再sim,编译执行一步到位 当我们在终端中输入make clean 就等同于删除所有编译和执行时产生的文件,只保留了add.v,test.v以及makefile

经验分享 程序员 微信小程序 职场和发展