VCS+Verdi 联合仿真-----FPGA开发

VCS+Verdi 联合仿真-----FPGA开发

简述

上篇文章记了VCS和Verdi的安装和破解,这篇文章
主要记的是VCS和Verdi的联合仿真。重点当然是配置vcs和verdi 的一大堆参数。因为我也是初学者,所以用的到参数并不多,之后可能回遇到更高深的用法,到时候再补充。这里主要是完成一个38译码器的仿真。
注:上篇笔记中的lmg_vcs每次关机重启都会失效,需要重新lmg_vcs激活,也可以加到启动项中。激活之后,断网运行仿真会更加流畅。

仿真步骤

1. 开发文件夹结构

#仿真文件
–decoder38_tb.v
#RTL级或行为级代码
–decoder38.v
#支持vcs或verdi -f参数,写着.v文件的路径
–filelist.f
#Makefile 文件用于编写vcs、verdi、clean等命令
–Makefile

2. 文件内容

下面内容仅供测试。
我的Makefile内容,可根据需要自由更改。

vcs:
	vcs \
	-full64 \ #vcs以64位运行
	-f filelist.f \	#如不使用-f参数,可以替换成每个文件的路径。filelist.f也就是将所有的需要仿真文件集合。但仿真文件一定要放在第一个位置
	-debug_all \	#不加此参数, 在生成fsdb波形文件时可能会出错。
	+define+DUMP_FSDB \	#定义宏,也可在仿真文件中添加,用于生成fsdb波形文件
	-P /home/chenqw/synopsys/verdi_2016.06-1/share/PLI/VCS/LINUXAMD64/novas.tab \	#用于生成fsdb波形文件,修改成自己的路径
	/home/chenqw/synopsys/verdi_2016.06-1/share/PLI/VCS/LINUXAMD64/pli.a \	#用于生成fsdb波形文件,修改成自己的路径
	| tee vcs.log	#输出仿真信息,并保存到vcs.log文件
	./simv		#最终生成fsdb 文件。

verdi:
	verdi \
	+v2k \
	-sverilog \
	-f filist.f \
	-ssf test.fsdb  &   #仿真文件产生的波形文件

clean:
	rm -rf `ls | grep -v "Makefile"|grep -v "filelist.f" | grep -v "\.v"`	#清除仿真过程文件


clean_all:
	rm -rf `ls | grep -v "Makefile"|grep -v "filelist.f"`		#清除仿真过程文件和设计文件.v

decoder38_tb.v

`timescale 1ns/1ns

module decoder38_tb();

reg[2:0] indata;
wire[7:0] out_data;

code code_1(.in(indata),.led(out_data));

initial 
begin
	
	indata = 3'b000;
	#10;
        indata = 3'b001;
        #10;
        indata = 3'b010;
        #10;
        indata = 3'b011;
        #10;
        indata = 3'b100;
        #10;
        indata = 3'b101;
        #10;
        indata = 3'b110;
        #10;
        indata = 3'b111;
        #10;
        indata = 3'b000;
        #10;
end

`ifdef DUMP_FSDB
initial
begin
	$fsdbDumpfile("test.fsdb");	#产生波形文件
	$fsdbDumpvars(0,decoder38_tb);
	$fsdbDumpon;
	

end
`endif


endmodule

decoder38.v

`timescale 1ns/1ns

module code(
in,
led);
input in;
output led;
wire[2:0] in;
reg[7:0] led;

always@(*) 
	case(in) 
		3'b000: led = 8'b00000001; 
		3'b001: led = 8'b00000010; 
		3'b010: led = 8'b00000100; 
		3'b011: led = 8'b00001000; 
		3'b100: led = 8'b00010000; 
		3'b101: led = 8'b00100000; 
		3'b110: led = 8'b01000000; 
		3'b111: led = 8'b10000000; 
		default: led = 8'b00000000;
	endcase 
endmodule

filelist.f

/home/chenqw/HDK/design/decoder38_tb.v	#仿真文件在第一位
/home/chenqw/HDK/design/decoder38.v

3. 仿真方式

  1. vcs+dve
    在运行make vcs命令后,同文件夹下会产生过程文件,其中.vpd文件适用于输入到dve中,实现波形显示。但由于这种vpd文件较大,导致仿真速度慢。推荐下面一种仿真方法。
    command:
    ./simv -gui
    在这里插入图片描述
    在这里插入图片描述

  2. vcs+verdi
    这时候,前面千辛万苦得来的fsdb文件就派上用场的。使用make vcs命令后,同文件夹下也会生成fsdb文件。由于fsdb文件精简,仿真速度较快。
    使用make verdi命令,可以观察输出波形。
    在这里插入图片描述
    在这里插入图片描述

结语

祝诸君成功。下篇笔记预定综合工具安装。

猜你喜欢

转载自blog.csdn.net/qq_40829605/article/details/85384233