赞
踩
安路的TD不能进行功能仿真(vivado和ISE都有ISim仿真器可以做仿真用),但是可以时序仿真。因此功能仿真要借助modelsim。
在已有工程下(分别是ip,source,sim,simulation),sim是modelsim仿真目录,simulation是anlogic的TD仿真时自动生成的目录。
打开sim,并且在modelsim中change directory为sim。
也可以在modelsim命令窗里输入 cd “sim的目录”(注意modelsim中使用的是 / ,而文件管理器复制的时候是 \)
切换之后可以输入 ls 查看当前目录下的文件。(从而说明切换成功)
file->new->project,然后输入工程名。
添加已经有的rtl文件、ip文件(对于anlogic的ip只需要添加sim.v即可,如pll.v),tb文件
右键compile-compile all。
simulate->start simulation。选择工程目录下的tb文件(如果在design unit里手动输入,应该输入 ”工程名.tb”)去掉enable optimization(会优化rtl),在libraries下添加之前编译过的anlogic器件的库。如果是时序仿真要添加sdf文件。点击ok开始仿真。
在objects 里右键add wave,然后点击run,即可看到波形。
点图中最左边的图标重新仿真
首先和之前一样,(如果用了绝对目录来编译、添加仿真文件,那么可以不用切换目录)
打开sim,并且在modelsim中change directory为sim。
也可以在modelsim命令窗里输入 cd “sim的目录”(注意modelsim中使用的是 / ,而文件管理器复制的时候是 \)
在modelsim命令窗里执行tb.do即可:do tb.do。执行do的时候要先退出sim:quit -sim
tb.do如下: (do中注释只能换行再写)
quit -sim .main clear #创建工程目录 vlib work #编译rtl、ip、tb文件(以下仅为示例,并非可用代码)对于anlogic的ip只需要添加sim.v即可 vlog D:/modelsim/AnLogic/work/t1.v vlog ../ip_sim.v vlog ../tb.v #添加仿真库,其地址为:D:/modeltech64_10.4/anlogic/TD5,以及对应的tb:work.tb vsim -novop -voptargs="+acc" -L D:/modeltech64_10.4/anlogic/TD5 -gui work.tb add wave tb/* run 1000ns
因为modelsim自动优化的缘故,使得一些不重要signal被modelsim自动忽略,需添加选项 -novopt,即,vsim -novopt module_name) 来避免信号被优化!
一些比较有意思的写法:(这样必须要统一工程的文件夹目录名字)但是每次只需要更改work_address即可
quit -sim
.main clear
set work_address D:/fifo_test/fifo/FIFO_2kx10
cd $work_address/sim
vlib work
vlog $work_address/sim/tb.v
vlog $work_address/sources/rtl/*
vlog $work_address/al_ip/*_sim.v
vsim -L D:/modeltech64_10.4/anlogic/TD5 -gui work.tb
add wave tb/*
run 1000ns
保存wave.do需要确定保存的位置。如果复制了工程副本,重新打开了另一个工程,但是modelsim没有关闭过,那么保存wave.do文件的目录会是之前的那个工程下面。
我迭代工程的时候,是直接复制之前的工程,所以这个work下编译的库越来越多,大小从几M到300M了,所以就直接给删掉了。毕竟想一想,重新编译不就好了(包括器件库、rtl编译)
还是大意了呀。
有个glbl.v在最初的时候使用vlog加载到了编译库里,后来把do文件里vlog glvl.v这句注释掉好像也能跑通没有error,就没有管了,直到删除了编译库!原来这些文件vlog到库里之后,重新执行do文件的时候并没有再加载这些文件,而是直接去之前编译好的库里调用glbl.v了!所以注释了vlog glvl.v并不会有问题!删了编译库就报error了!
另外,直接在文件夹里删除的编译库,在modelsim里并不知道编译库被删除了,导致error,手动把这些编译库delete就好了。
由于是新的一个工程(虽然在文件夹里我们可以认为这是一个新的副本,但是modelsim在创建工程的时候就给了一个定位,因此这个副本被modelsim当成了原来的工程啊),通过cd或者change directory来更换定位(偶尔还是会出问题,这个暂时没搞明白)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。