ASIC DV

Win10+Questasim UVM验证环境Running

2019-07-31  本文已影响0人  sarai_c7eb

很多朋友已经习惯了在工作站跑VCS+UVM验证;
本文简单地介绍如何在个人PC(OS:Win10)上利用Questasim/Modelsim运行UVM环境;并且尽可能的与工作站使用UVM一致。

1. 工具准备

2. 工作目录准备

目录准备

在work_space下建立3个文件夹:

folder名称 存放内容
IP_LIB 存放FPGA产生的IP,如RAM,ROM,FIFO,CLKCTRL等;
RTL 存放设计人员开发的verilog代码[1]
verification 存放验证环境[2]

IP_LIBRTL内直接存放着verilog文件:

PS F:\work_space\IP_LIB> ls
    目录: F:\work_space\IP_LIB
Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----        2018/12/1     21:23           5284 alt_clkctrl.v
-a----         2019/1/6     18:16            195 alt_rom.qip
-a----        2019/1/13     11:08           6520 alt_rom.v
-a----        2019/1/13     18:10          17421 fontlib.hex
-a----        2019/1/12     20:02           1429 fontlib.mif
-a----        2018/12/1     18:29           9591 video_tram.v

PS F:\work_space\RTL> ls
    目录: F:\work_space\RTL
Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----        2019/3/19     21:03          35514 video_fpga.v

verification内的组织很简单:

PS F:\work_space\verification> ls
    目录: F:\work_space\verification
Mode                LastWriteTime         Length Name
----                -------------         ------ ----
d-----        2019/7/31     19:27                sim
d-----        2019/7/31     19:21                tb

PS F:\work_space\verification\tb> ls
    目录: F:\work_space\verification\tb
Mode                LastWriteTime         Length Name
----                -------------         ------ ----
d-----        2019/7/31     19:21                ad_agent
d-----        2019/7/31     19:21                avl_agent
d-----        2019/7/31     19:21                avm_agent
d-----        2019/7/31     19:21                dt_agent
d-----        2019/7/31     19:21                env
d-----        2019/7/31     19:21                hdl                  
d-----        2019/7/31     19:21                testcase
PS F:\work_space\verification\sim> ls
    目录: F:\work_space\verification\sim
Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----        2018/12/8     10:34           1999 add_signal.do
-a----        2018/12/5     23:43            135 clear.bat
-a----        2019/7/31     19:25            222 dut.f
-a----        2019/7/31     18:55            152 filelist.f
-a----        2018/12/4     20:57             17 run.bat
-a----        2019/7/31     18:59           1095 run.do
-a----        2018/12/5     18:47             19 wave_open.bat

tb路径存放着验证环境和testcase,这些和在工作站操作时建立的路径一样:

sim路径下是我们主要介绍的内容,所有的准备工作都围绕着run.do这个file展开,请看下一章节重点介绍:

3. 运行UVM

3.1跑一个case

在sim路径下新建run.do这个文件,其内容如下:

#testcase name
set TEST "my_case"

#name related to the the dut
set TOP "top_tb"
set DUT_LIST "dut.f"
set FILE_LIST "filelist.f"


set WAVE_TOP "sim:/top_tb/inst_video_fpga/*"
set WORK_AERA "F:/work_space/verification/sim"

#PLI for dump fsdb
set PLI ""

#the uvm 
set  UVM_DPI_HOME  D:/questasim64_10.4e/uvm-1.1d/win64

quit -sim  
cd ${WORK_AERA}
  
if [file exists work] {  
  vdel -all  
}  
vlib work  
vlog  -L mtiAvm -L mtiOvm -L mtiUvm -L mtiUPF -f ${DUT_LIST} -f ${FILE_LIST}
vsim -c -novopt +notimingchecks -t 1ps ${TOP} +UVM_TESTNAME=${TEST} +UVM_VERBOSITY=UVM_FULL -voptargs=+acc \
-solvefaildebug -uvmcontrol=all -classdebug -l sim.log -pli ${PLI} \
-sv_lib ${UVM_DPI_HOME}/uvm_dpi 
add log  -r /*
add wave ${WAVE_TOP}
run -all

新建run.bat文件,内容如下:

vsim -do run.do

双击"run.bat"文件,将完成vlog、vsim命令,同时生成默认的wave文件:

运行效果图

3.2 run.do浅析

请回看3.1章代码:

D:/intelFPGA/eda/sim_lib/altera_mf.v
D:/intelFPGA/eda/sim_lib/cycloneive_atoms.v

F:/work_space/IP_LIB/alt_clkctrl.v
F:/work_space/IP_LIB/video_tram.v
F:/work_space/IP_LIB/alt_rom.v

F:/work_space/RTL/video_fpga.v
F:/work_space/verification/tb/hdl/file_package.sv
F:/work_space/verification/tb/hdl/top_tb.sv

3.3 其他

当我们quit当前simulation时,波形默认保存为vsim.wlf文件;
我们可以用一个命令文件随时打开查看波形,新建wave_open.bat,其内容如下:

vsim -view vsim.wlf

双击运行wave_open.bat,结果如下:


打开保存波形

如果想要load信号,新建add_signal.do文件,其内容如下:

add wave -position insertpoint  \
vsim:/top_tb/inst_video_fpga/clk_27m_i    \
vsim:/top_tb/inst_video_fpga/rstn_27m_i   \
vsim:/top_tb/inst_video_fpga/ad_vsync_ff1 \
vsim:/top_tb/inst_video_fpga/ad_fid_ff1   \
vsim:/top_tb/inst_video_fpga/ad_hsync_ff1 \
vsim:/top_tb/inst_video_fpga/ad_yout_ff1  \
vsim:/top_tb/inst_video_fpga/eav_tag \
vsim:/top_tb/inst_video_fpga/sav_tag \
vsim:/top_tb/inst_video_fpga/row_cnt 

通过"File"-->"Load",选择"add_signal.do"将被选信号加载到波形中观察;

新建"clear.bat"文件,双击清除一次运行结果:

@echo off
echo 开始清理......
del transcript
del *.log
del *.wlf
del *.xml
rd  /s /Q work
echo 清理完成......
@echo on
pause

  1. 本文只支持verilog做为RTL开发语言,不支持VHDL;

  2. 本文只支持systemverlog做为验证开发语言;

上一篇下一篇

猜你喜欢

热点阅读