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