sunt8707的个人空间 https://blog.eetop.cn/806951 [收藏] [复制] [分享] [RSS]

空间首页 动态 记录 日志 相册 主题 分享 留言板 个人资料

日志

使用ModelSim do文件实现仿真(Verilog)

已有 11520 次阅读| 2012-7-30 14:15 |个人分类:modelsim

技术贴]使用ModelSim do文件实现仿真(Verilog)
QuartusII从9.1之后的版本都已经取消了内部自带的仿真器,都需要借助第三方仿真软件比如Modelsim才能实现仿真。一般在进行代码编写的时候,如果结合功能仿真,可以很快的验证代码实现的逻辑是否满足要求。所以熟练使用Modelsim也是逻辑工程师必须掌握的一个技能。由于Modelsim可以支持命令行的方式,通过创建do文件,可以集成多个可执行的命令。那么对于前期一边编写代码,一边进行功能仿真,使用do文件是可以明显提高工作的效率。下面以Modelsim SE版本为例,通过以下几个步骤与大家一起分享:

1.在当前QII工程下新建一个modelsim文件夹,可以将相关的仿真文件放在这个目录下


2.创建一个simlib.do的文件,用于编译QuartusII软件提供的相关仿真库文件。do文件的创建可以在打开modelsim之后进行创建。simlib.do内容如下:


set LIBPATH c:/altera/11.0/quartus/eda/sim_lib/ (设置QII软件相关仿真库文件的位置)


vlib sim_lib 
vmap sim_lib sim_lib (将QII提供的仿真库文件映射到名为sim_lib的库中)


vlog -work sim_lib $LIBPATH/altera_mf.v
vlog -work sim_lib $LIBPATH/altera_primitives.v
vlog -work sim_lib $LIBPATH/sgate.v
vlog -work sim_lib $LIBPATH/arriaii_atoms.v
vlog -work sim_lib $LIBPATH/arriaii_hssi_atoms.v
vlog -work sim_lib $LIBPATH/220model.v (编译需要使用的QII仿真库文件,一般来说如果不调用任何的IPCore,是不需要编译以上的文件。如果使用到IPCore,那么可以在IPCore设置的EDA标签栏下看到相关需要使用的仿真库文件名称)


3.创建一个sim.do的文件,用于编译当前工程下逻辑设计源文件,IPCore调用文件,以及tesetbench。sim.do文件如下:


vlib work
vmap work work (将工程相关原始文件映射到一个名为work的库)

vlog +acc -work work -incr -f run.f (工程相关原始文件列表都已经存入名为run.f的文件中,对run.f文件中提到的原始文件进行编译)

vsim -novopt  -L sim_lib -l run_modelsim.log  +transport_int_delays +transport_path_delays work.tb_gxb_top (开始进行仿真,建议加入novopt参数,保证可以看到所有仿真结果。将开始仿真之后Modelsim的打印信息存入名为modelsim.log的日志文件。两个“+”之后参数主要实现用于LVDS、SERDES高速接口的仿真,建议保留这两个参数。tb_gxb_top为tesstbench module的名称)



4.创建一个run.f文件,这个文件无论是名称还是扩展名都是随意创建的,没有任何的要求。只要保证步骤3中实现vlog的时候可以找到对应的文件。run.f内容如下:


../gxb_rst_logic.v (子模块源文件,"../"表示相对路径。由于run.f文件放在步骤1创建的modelsim目录下,而此源文件是放置于当前工程目录下)
../gxb_top.v (top顶层源文件)
tb_gxb_top.v (testbench文件,放置在modelsim目录下,即为当前目录)
../gxb_3g125.v (IPCore生成的.v文件)
../gxb_3g125_reconf.v (IPCore生成的.v文件)



5.创建一个wave.do文件,用于执行仿真结束之后在wave窗口观察相关感兴趣的波形。wave.do内容如下:


quit -sim  (退出当前仿真)
do sim.do (执行sim.do文件)
add wave sim:/tb_gxb_top/u1_gxb_top/* (需要观察的波形添加到wave窗口)
radix -hex (所有信号显示为16进制)
run 10us (运行10us)



6.以上仿真所需的文件就全部建立完成。在Modelsim中改变当前目录到步骤1中的modelsim目录下,由于建立仿真库文件只需要执行一次,那么可以在Modelsim下直接运行do simlib.do命令


7.执行do sim.do文件,进行编译和仿真。也可以直接执行do wave.do文件,直接进入wave窗口进行波形观察


8.如果对当前仿真结果不满意,需要再次更改代码。那么再一次进行仿真是,就可以直接执行do wave.do文件


当然,modelsim进行仿真有多种方法,包括直接通过Nativelink功能后台运行modelsim,或者在modelsim下通过图形化界面进行仿真。个人觉得这种方式一劳永逸,过程可控,而且可以让大家了解哪些情况下需要使用QII自带的仿真库文件,加深对QII软件的了解。多谢!

点赞

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册

  • 关注TA
  • 加好友
  • 联系TA
  • 0

    周排名
  • 0

    月排名
  • 0

    总排名
  • 0

    关注
  • 1

    粉丝
  • 0

    好友
  • 1

    获赞
  • 0

    评论
  • 1845

    访问数
关闭

站长推荐 上一条 /2 下一条

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-4-19 18:43 , Processed in 0.016151 second(s), 7 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部