cxcbupt

我的学习记录

Linux下Verilog仿真过程(一)

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:蓝色框中即为仿真输出。

至此仿真基本结束。。。。



阅读更多
个人分类: Verilog HDL
想对作者说点什么? 我来说一句

Linux 下的verilog

2009年11月10日 1.06MB 下载

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭