文件准备
以一个二分频模块为例演示Verdi的最简单使用方式。
ClockDiv.v
`timescale 1ns / 1ps
//
// Company:
// Engineer:
//
// Create Date: 10/13/2020
// Design Name: Sniper
// Module Name: ClockDiv
// Project Name:
// Target Devices:
// Tool Versions:
// Description:
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//
//
module ClockDiv(
input clk,
input rst_n,
output reg clk_div
);
always@(posedge clk or negedge rst_n)
begin
if(!rst_n)
clk_div <= 1'b0;
else
clk_div <= ~clk_div;
end
endmodule
tb_ClockDiv.v (注意其中生成.fsdb文件的部分)
`timescale 1ns / 1ps
//
// Company:
// Engineer:
//
// Create Date: 10/13/2020
// Author Name: Sniper
// Module Name: tb_ClockDiv
// Project Name:
// Target Devices:
// Tool Versions:
// Description:
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//
//
module tb_ClockDiv;
//input
reg clk;
reg rst_n;
//output
wire clk_div;
initial
begin
clk = 0;
rst_n = 0;
#100;
rst_n = 1;
end
//clock
always #5 clk = ~clk;
//DUT
ClockDiv DUT
(
.clk(clk),
.rst_n(rst_n),
.clk_div(clk_div)
);
initial
begin
$fsdbDumpfile("curve.fsdb");
$fsdbDumpvars;
$fsdbDumpon;
end
initial #1000 $finish;
endmodule
执行命令
Terminal中输入以下命令来编译文件:
(建议将命令写在shell脚本中保存为compile.sh文件,之后使用source compile.sh运行)
vcs -R ClockDiv.v tb_ClockDiv.v -P ${NOVAS_HOME}/share/PLI/VCS/linux64/novas.tab ${NOVAS_HOME}/share/PLI/VCS/linux64/pli.a -full64 -debug_all
若出现以下error:
则说明未设置环境变量。
终端输入gvim ~/.bashrc 打开bashrc文件,加入以下内容
export NOVAS_HOME=$Synopsys_Dir/Verdi2015
export PATH=$NOVAS_HOME/bin:$PATH

保存并退出,终端输入source ~/.bashrc 应用修改,重新source compile.sh
运行成功则如下所示:
查看波形
Terminal中输入verdi打开软件
verdi #只打开verdi
verdi -f file_list.f -ssf curve.fsdb #这条命令可以在打开verdi软件的过程中直接打开项目文件和波形文件
#打开file后,在文件的代码中鼠标选中要观察的信号名字,再按Ctrl+w,可以直接观察选中信号的波形
首先把欢迎界面最小化:
点击打开波形:






鼠标左键选中波形+拖动的方式,可以观察拖动的范围内的波形。
然后,就可以开始debug了~~
之后如果代码有更新,可以重新点击菜单view下面的New Waveform,重新导入fsdb文件和signal进行查看。
版权声明:本文为meng1506789原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。