尘叶云渡

V1

2022/05/19阅读:82主题:丘比特忙

VCS & Verdi 联合仿真,跑通《UVM实战》

VCS & Verdi 联合仿真,跑通《UVM实战》

毕业后就要入职成为一名ICer (IC验证) 了!最近除了毕业设计也一直在自学 SVUVM验证方法学,只看资料不写代码体会不深,但又没有公司电脑的环境配置,只能自己搭建环境来跑代码学习,也遇到了一些问题。在这里记录和分享一下我的配置过程,防止大家踩坑。

我不习惯贴图,所有东西基本都通过代码块的方式呈现出来

如果需要虚拟机、Docker或者其他文中提到的东西或遇到问题,可以在评论区提出

EDA虚拟机

自行寻找教程安装虚拟机,安装、激活和配置好VCS、Verdi。

或者可用公众号芯王国提供的虚拟机。提示:此虚拟机安装了很多EDA工具,磁盘够的话建议安装此虚拟机,这里就不放下载链接了。

此外如果觉得虚拟机运行起来较慢,可以选择安装 Docker,自行搜索安装。

文件修改

《UVM实战》源代码,可以点击以下链接下载,解压后放在虚拟机中,记住此时的路径,为后续修改 UVM_HOME 做准备

蓝奏云 | 百度网盘

修改setup.vcs

Note:将csh改为bash模式。如果你的虚拟机支持csh,可以把export改成setenv,并去掉“=”。

按照你自己VCS和Verdi的路径,进行setup.vcs文件的修改

#!/bin/bash

export VCS_HOME=/home/synopsys/vcs-mx/O-2018.09-SP2
export UVM_HOME=/home/ICer/example_and_uvm_source_code/uvm-1.1d
export WORK_HOME=/home/ICer/example_and_uvm_source_code/puvm
export SIM_TOOL=VCS
export NOVAS_HOME=/home/synopsys/verdi/Verdi_O-2018.09-SP2
export PATH=/home/synopsys/vcs-mx/O-2018.09-SP2/linux64/bin:$PATH

修改run(可选)

Note:我一般用在终端中输入 VCS 仿真编译的代码,所以根据自己需求选择是否更改

#!/bin/csh
if ( $SIM_TOOL == "QUESTA" ) then
vlib work
vlog -f filelist.f
vsim -sv_lib $UVM_DPI_DIR/uvm_dpi -do $WORK_HOME/bin/vsim.do -c top_tb
endif

if ( $SIM_TOOL == "VCS" ) then
vcs +v2k -sverilog -full64 -debug_pp -R -LDFLAGS -rdynamic -P ${NOVAS_HOME}/share/PLI/VCS/LINUX64/novas.tab ${NOVAS_HOME}/share/PLI/VCS/LINUX64/pli.a $UVM_HOME/src/dpi/uvm_dpi.cc -CFLAGS -DVCS -timescale=1ns/1ps -f filelist.f -I test.log 
./simv 
endif

if ( $SIM_TOOL == "NCSIM" ) then
ncverilog +sv -f filelist.f -licqueue -timescale 1ns/1ps -uvm -uvmhome $UVM_HOME 
endif

修改top_tb.sv

首先在top_tb.sv中,将‘timescale 1ns/1ps注释掉,添加‘include “dut.sv”,并将dut.sv文件复制到top_tb.sv的文件夹中。例如:

//`timescale 1ns/1ps
`include "uvm_macros.svh"
import uvm_pkg::*;
`include "my_driver.sv"
`include "dut.sv"

module top_tb;
    ...

在top_tb.sv中 endmodule 前添加以下代码,以dump 波形。不加没有办法 dump 波形并进行 debug

initial begin
    $fsdbDumpfile("tb.fsdb");
    $fsdbDumpvars;
end

联合仿真

VCS 仿真编译

vcs -R -full64 +v2k -fsdb +define+FSDB -sverilog -ntb_opts uvm top_tb.sv -debug_all -elab -lca -kdb

simv是使用VCS查看波形需要的文件,tb.fsdb是使用Verdi查看波形需要的文件

VCS 查看波形

./simv -gui & 

Verdi 查看波形

# fsdb文件名和top_tb.sv中设置的保持相同
verdi -ssf tb.fsdb & 

选中信号,键盘 ctrl+w 出现波形 信号区 f 键,出现全局信号视图

参考

vcs常用仿真选项

如何使用VCS和verdi跑通《UVM实战》上的例子

vcs+verdi运行UVM实战中的例子

如何跑通《UVM实战》书上的例子?

分类:

其他

标签:

其他

作者介绍

尘叶云渡
V1