第一章: 初学者如何建立VCS仿真环境
前言
对于芯片数字设计初学者来说,搭建VCS仿真环境是第一步。本文就教你如何属于你的搭建第一个仿真环境,敲开数字设计的大门。
一、VCS是什么?
VCS是S公司下面的数字电路仿真工具,业界普遍使用该工具完成数字电路的前仿真和后仿真。
数字电路工程师在完成RTL coding后,需要对设计的电路做仿真验证,通常是用VCS+verdi搭配完成仿真和debug。
二、搭建VCS仿真环境需要准备什么?
1.RTL 代码
module adder (
input clk
,input rst_
,input [3:0] a
,input [3:0] b
,output [4:0] out
);
reg [4:0] add_ab;
always @(posedge clk or negedge rst_)
if(~rst_)begin
add_ab <= 5'h0;
end
else begin
add_ab <= a + b;
end
assign out = add_ab;
endmodule
2.test bench
代码如下(示例):
module top ();
//创建时钟和复位信号
reg clk;
reg rst_;
initial begin
clk = 0;
rst_ = 0;
#10us;
rst_ = 1;
end
always #100us clk = ~clk;
//添加输入激励
reg [3:0] a;
reg [3:0] b;
initial begin
a = 4'h5;
b = 4'h8;
#500us;
a = 4'ha;
b = 4'hc;
#500us;
a = 4'h2;
b = 4'hf;
end
wire [4:0] out;
module adder (
.clk (clk ),
.rst_ (rst_),
.a (a),
.b (b),
.out (out)
);
initial begin
$fsdbDumpfile("top.fsdb");
$fsdbDumpvars(0,top,"+mda");
end
endmodule
3.VCS运行脚本
Makefile
vsc:
vcs +v2k \
-full64 \
-notice \
-debug_acc+all \
-sv \
-f flist.v \
-l compile.log \
-top top \
./simv -l run.log
flist.v文件需要指定仿真用到的所有.v文件
../top.v
../adder.v
总结
对于初学者来说,找到正确的入门的方法非常重要。以上就是本章内容,大家可以按照以上内容,初步建立自己的仿真环境。拥有了第一个仿真环境,才能够建立信心和找到学习的乐趣,进而发展更多的可能性。