1》新建一个工作目录,以后相关的仿真文件都放在此目录下,如我的目录为:/home/xiaochuan/scr
2》编写模块文件(为了便于管理相关代码文件,可以将代码文件单独放在一个目录下,如home/xiaochuan/scr/MyFirstVerilogProject)。
以下是用always语句对1位全加器电路建模的示例,fa_seq.v代码如下:
module fa_seq(A, B, Cin, Sum, Cout );
input A,B,Cin;
output Sum,Cout;
reg Sum,Cout;
reg T1,T2,T3;
always
@ (A or B or Cin )
begin
Sum = (A ^ B) ^ Cin;
T1 = A & Cin;
T2 = B & Cin;
T3 =A & B;
Cout =(T1 | T2) | T3;
end
endmodule
3》设计验证module fa_seq , top.v代码如下
module top();
reg PA, PB, PCi;
wire PCo, PSum;
//Testing module FA_Seq
fa_seq F1(.A(PA), .B(PB), .Cin(PCi), .Sum(PSum), .Cout(PCo));
initial
begin: ONLY_ONCE
reg [3:0] Pal;
for(Pal=0; Pal<8;Pal=Pal+1)
begin
{PA, PB, PCi}=Pal;
#5 $display("PA, PB, PCi = %b%bb",PA,PB,PCi,
":::PCo,Psum=%b%b",PCo,PSum);
end
end
endmodule
完成后,目录home/xiaochuan/scr/MyFirstVerilogProject下的文件结构如下:
4》开始仿真
4.1》编写文件列表文件test_fa_filelist.txt,文件内容如下
/home/xiaochuan/scr/MyFirstVerilogProject/fa_seq.v
/home/xiaochuan/scr/MyFirstVerilogProject/top.v
4.2》编写脚本文件 debug_test_fa.sh
vcs -full64 -sverilog -timescale=1ns/1ns \
-Mupdate -debug_all +nospecify \
+incdir+/usr/synopsys/syn_vd_2010_03/dw/sim_ver \
-file ../test_fa_filelist.txt
其中-file ../scr/encodecu_filelist.txt就是上一步所新建的那个文件,注意路径!!
4.3》新建目录work,此目录将用来保存仿真时生成的相关文件
完成此目录后,/home/xiaochuan/scr下的文件结构如下
4.4》在目录work下,运行debug_test_fa.sh文件
执行情况如下:
此时work目录下(之前为空目录)的文件结构如下:
其中 simv文件就是生成的仿真文件
4.5》运行simv文件
ps:蓝色框中即为仿真输出。
至此仿真基本结束。。。。