VCS与Verdi联仿,简要工程模板,持续更新中…
文章目录
- VCS与Verdi联仿,简要工程模板,持续更新中...
- 背景
- 编写工程模块
- 使用工程模板
- 仿真结果
- 工程下载地址
背景
- 学习verilog,故用vcs来编译verilog,用verdi来查看波形。
- 提供一套简要verilog工程模板去执行教程中代码,并分析波形。
编写工程模块
- 建立工程在temp文件夹下新建文件夹/rtl、/sim、/tb,如下:
➜ CSDN cd temp
➜ temp ls
rtl sim tb
- 在/rtl文件夹下新建两个.v文件: template.v和timescale.v ,为模板rtl代码。
➜ rtl ls
template.v timescale.v
- 在/tb文件夹下新建.sv文件:tb_template.sv,为test bench文件。
➜ tb ls
tb_template.sv
- 在/sim文件夹下新建Makefile、runtemp和file.f文件,来进行vcs编译以及verdi看波形。
➜ sim ls
Makefile file.f runtemp
其中Makefile为makefile脚本写的自动编译工具,runtemp为写的简易自动编译工具。
4.1 使用Makefile脚本来进行自动编译。
方法:在文件夹/sim下运行命令 make
就会编译完成,并且生成波形文件,再用verdi查看即可。由vcs编译和verdi打开产生的文件可以用 make clean
清除掉。
4.2 使用简易编译工具runtemp进行编译的命令为:source runtemp
至此,简要工程模板配置完成。
使用工程模板
设计一个如下图的四选一选择器,用模板去编译和仿真看波形来验证模板是否正确。
选择器的rtl代码:
module mux4to1(
input [1:0] sel ,
input [1:0] p0 ,
input [1:0] p1 ,
input [1:0] p2 ,
input [1:0] p3 ,
output [1:0] sout);
reg [1:0] sout_t ;
always @(*) begin
if (sel == 2'b00)
sout_t = p0 ;
else if (sel == 2'b01)
sout_t = p1 ;
else if (sel == 2'b10)
sout_t = p2 ;
else
sout_t = p3 ;
end
assign sout = sout_t ;
endmodule
四选一选择器的testbench代码:
`timescale 1ns/1ps
module test ;
reg [1:0] sel ;
wire [1:0] sout ;
initial begin
sel = 0 ;
#20 sel = 3 ;
#20 sel = 1 ;
#20 sel = 0 ;
#20 sel = 2 ;
end
mux4to1 u_mux4to1 (
.sel (sel),
.p0 (2'b00), //path0 are assigned to 0
.p1 (2'b01), //path1 are assigned to 1
.p2 (2'b10), //path2 are assigned to 2
.p3 (2'b11), //path3 are assigned to 3
.sout (sout));
//finish the simulation
always begin
#100;
if ($time >= 1000) $finish ;
end
`ifdef FSDB
initial begin
$fsdbDumpfile("tb_template.fsdb");
$fsdbDumpvars;
end
`endif
endmodule
其中,每个自己的tb一定要保留如下片段,来保存仿真产生的信号波形,然后才能用verdi打开。
`ifdef FSDB
initial begin
$fsdbDumpfile("tb_template.fsdb");
$fsdbDumpvars;
end
`endif
接下来编译修改后的模板工程,打开文件夹/sim
,在sim文件夹下输入make
,在sim文件下产生这些文件:
其中,tb_template.fsdb文件就是verdi能打开的波形文件了。
然后通过下图中的步骤用verdi打开代码文件。
![用verdi打开代码](https://img-blog.csdnimg.cn/3cf3179a38fc4c10b6018e45059b12b4.png#pic_center = 600x)
再按照如下步骤打开波形文件:
最后按如下步骤查看波形:
仿真结果
如下结果显示四选一选择器正确,故也得出模板工程正确。
工程下载地址
模板工程下载地址