【FPGA学习】(三)Modelsim自动化仿真

目录

为什么写这篇文章?

modelsim仿真

 使用实例方法

Sublime新建模板方法


为什么写这篇文章?

我刚开始学习FPGA的时候,跟着网上的教程,一步步学习编写程序然后仿真查看仿真波形时,每次仿真时都要打开Modelsim新建工程,然后添加文件、编译文件、仿真、把变量添加到窗口这几个步骤,每次修改代码后,又要重新编译,重复之前的步骤,太麻烦了,浪费了大量的时间,人生苦短,我要走捷径,后面才发现每次点击Modelsim对应按钮时,实际上内部也是运行的相关的命令行。


modelsim仿真

        Modelsim里实际上就是运行的TCL指令集。modelsim中需要执行的执行的指令写到.do文件中,然后输入命令 do (.do文件的名字).do,modelsim会逐行执行.do文件的指令,省去大量时间,可以说是一劳永逸。

仿真的步骤:
        (1)创建库文件
        (2)编译文件
        (3)运行仿真
        (4)调试
.do文件的任务就是把前三个过程执行完,第四个步骤就是自己进行代码调试。

      在使用 modelsim 仿真时,我们还可以将每一步的操作写入一个 modelsim 可以识别的脚本文件中,在我们使用 modelsim 进行仿真时,只需要执行该脚本 文件即可。

        Modelsim 可识别的脚本文件包括 tcl 文件,我们可以在 sim 文件夹 中新建一个 tcl 文件例如 run.tcl (新建一个run.do文件也是一样的,里面都是TCL指令集)     


 使用实例方法

直接运行命令

cd  F:/fpga_project/ex1_jiaoben_fsm/sim   //替换为自己工程下run.tcl的目录位置
do  run.tcl

实例:

#需要编译的.v路径
#从上到下依次是:仿真文件、设计文件、顶层仿真文件模块名、顶层仿真文件下实例化后设计模块名 
set file_name1          ./tb_ex1_fsm.v       
set file_name2  		./../design/*.v    
set tp_module_name	    tb_ex1_fsm	     
set module_name         fsm_inst           
#退出仿真,清空命令行
quit -sim
.main clear

#在根目录下建立库文件
vlib work

#编译Verilog文件
vlog  $file_name1
vlog  $file_name2

#启动仿真器
#注意这里tb_ex1_fsm是顶层仿真文件模块
vsim	-voptargs=+acc work.{$tp_module_name}  

#下面两行为了给变量取别名,方便查看波形,可以不用
#不取别名的话,大家使用时建议删除掉,不然会报错
virtual type {
	{3'b001 IDLE}
	{3'b010 ONE}
	{3'b100 TWO}
} abc;
#这里state是模块下的信号名
virtual function {(abc)/tb_ex1_fsm/fsm_inst/state} new_state

#加信号
#fsm_inst是设计模块名字
add wave /{$tp_module_name}/fsm_inst/*

#运行时间
run 1us

Sublime新建模板方法

(1)

 (2)在<![CDATA[     这里填上自己的代码   ]]></content>

        <tabTrigger>hello</tabTrigger>       触发命令

        <scope>source.python</scope>     哪种类型的文件中触发该命令

 (3)保存位置

C:\Users\PC\AppData\Roaming\Sublime Text 3\Packages\my_module_code


 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

洲洲不是州州

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值