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. 仿真方式
-
vcs+dve
在运行make vcs命令后,同文件夹下会产生过程文件,其中.vpd文件适用于输入到dve中,实现波形显示。但由于这种vpd文件较大,导致仿真速度慢。推荐下面一种仿真方法。
command:
./simv -gui
-
vcs+verdi
这时候,前面千辛万苦得来的fsdb文件就派上用场的。使用make vcs命令后,同文件夹下也会生成fsdb文件。由于fsdb文件精简,仿真速度较快。
使用make verdi命令,可以观察输出波形。
结语
祝诸君成功。下篇笔记预定综合工具安装。