1 Vivado中编译Questasim仿真需要的基础库
Questasim作为一个第三方的仿真工具,如果需要仿真Vivado中的工程,则需要将Vivado中的仿真库编译一下,为能够在Questasim工具中使用。
Vivado编译Questasim仿真库的方法如下所示:
1.首先打开Vivado,点击Tools -> Compile Simulation Libraries…;
2. Simulator选择Questasim ,Advanced Simulator,Advanced中的Compiled library location是基础库编译的存放位置,自定义选择本地的路径。
2 仿真文件do文件编写步骤
do文件可以理解为makefile文件,表明Questasim仿真工程中需要的源文件、仿真文件、链接库等文件,主要为仿真行为服务,所以do文件的编写主要是添加文件以及库函数。do文件的编写如下所示:
1 设置相对路径
设置相对路径的作用是简化do文件中重复添加的工程路径,以及对所需文件起到一个概略分类的作用。设置相对路径如下所示:
set SRC_DIR {"project_name/sources_1"}
set IP_DIR {"project_name/ip"}
set SIM_DIR {"project_name/sim_1"}
set LIB_DIR {"D/Questasim/Quastasim_lib"}
SRC_DIR 路径为工程源文件的路径;
IP_DIR 路径为工程IP的路径;
SIM_DIR 路径为仿真文件的路径;
LIB_DIR 路径为vivado编译的Quastasim仿真环境下的使用的vivado基础库目录。
2 创建work库及映射仿真库
file delete -force work
vlib work
#base library
vmap secureip {$LIB_DIR}/secureip
vmap unimacro {$LIB_DIR}/unimacro
vmap unisim {$LIB_DIR}/unisim
vmap unifast {$LIB_DIR}/unifast
#user library
vmap library_name {$LIB_DIR}/library_name
其中secureip 、unimacro 、unisim 和unifast 为基础库,都需要添加的基础库。library_name为工程中需要的库,例如FIFO、FFT之类。
如果不知道所需IP仿真库的名称,可以这样找,在打开工程的Sources界面中IP Sources,选择所需IP的 *.vhdl文件,打开,前面部分即为IP仿真库的名称,如图所示:
打开 vhdl文件,前面即为IP仿真库名称,如图所示:
其中UNISIM为仿真库名称(此处仅作为举例,需按照实际工程命名)。
3 添加设计源文件以及仿真文件
vlog -work $SRC_DIR/ *.v
vlog -work $SIM_DIR/project_name.tb
vlog -work glbl.v
其中.v文件为仿真工程中所需的所有源文件,需要依次添加,tb文件即为仿真文件,按照说明添加即可。
vlog为Verilog工程的仿真文件添加语句,vcom为VHDL工程的仿真文件添加语句。glbl.v文件为必须添加的文件。
4 使用vsim运行仿真文件
调用vsim工具,运行仿真文件,脚本编写为:
vsim -voptargs="+acc" \ -t 1ps
-L secureip \
-L unimacro \
-L unimacro \
-L unimacro \
-lib -work work work.project_name.tb work.glbl.v
前4行为固定写法,-lib选项中的tb文件,即为仿真工程的tb文件。
5 设置观测窗口
view wave
view structure
view singals
run -all
上述也为固定写法,还可以设置其他选项,但是上述选项对于仿真行为来说,足够。
3 在Questasim中运行do文件
1 打开Questasim,中命令行工具处,使用
cd {do文件路径}
cd命令,跳转到do文件的路径下;
2 执行do文件
do {Filename.do}
使用do命令,执行do文件即可。