FPGA开发工具详解:Modelsim使用指南

安装流程

在官网(https://www.mentor.com/company/higher_ed/modelsim-student-edition)可以下载到免费版(学生版),只需填写少量信息即可。在下载完成后,打开安装包,开始安装过程。前两个界面直接点击Next和Yes即可。接下来选择安装目录,注意不要出现中文。


   选择安装目录
 

选择图标文件夹,保持默认点击Next即可。


最后点击Finish即可。


在等待一段时间的安装过程后,会自动弹出申请学生License的网站界面,填写完带*标记的信息后,便会弹出License申请成功的通知。申请成功后License将会很快发送到填写的邮箱中。


License下载完成之后,将其复制到Modelsim软件的安装目录下,即可正常使用Modelsim软件进行仿真,进入Modelsim时正常的界面如下:


   将license移入安装目录
 


功能仿真

功能仿真(前仿)主要特点是只仿真逻辑功能是否正确,而时序仿真(后仿)主要关心在考虑电路中的时序信息后功能是否正确。

本文将简要介绍做功能仿真和时序仿真的步骤。

首先打开Modelsim软件,点击左上角的File->New->Project新建一个工程,如图所示。


   新建工程
 

接着在下图所示的界面中输入工程名和工程存放的路径(注意不要有中文)。


添加文件到工程时选择“Add Existing File”(已经事先编写好模块~一个简单的计数器,为了对比按[N:0]定义A信号,[0:N]定义A_comp信号,每次时钟上升沿+1),点击browse选择文件(可以一次选择多个文件),然后点击OK。


   Verilog和Testbench文件
 


   添加已有设计文件
 

之后便可以在Project一栏看到刚才添加的文件,右键空白区域,选择Compile一栏下的Compile All,将刚才添加的文件全部编译。编译完成后每个文件右边对应的Status会变成绿色的对勾,如果出现错误,则需要根据下方消息框的报错信息进行代码修改再编译。


   编译模块
 

编译完成后,在Library一栏下找到work,可以看到编译好的两个模块test和test_tb,双击test_tb开始仿真。


   开始仿真
 

进入仿真界面后,首先在左侧sim栏中选中例化的模块,在右侧的Objects栏中便会出现信号列表,将需要添加到波形中进行观察的信号选中,右键选择Add Wave即可。


   添加需要观察的信号
 

可以看到在右边的波形窗口中已经出现了刚才添加的信号,最后点击上方工具栏的的Run即可,时间框内的100ps表示Run一次的仿真时间。


至此,功能仿真过程结束,可以在右边的窗口中看到波形。


   波形图
 

联合Vivado进行时序仿真

进行时序仿真需要考虑到FPGA实现时布局布线带来的延迟,因此需要在Vivado综合实现后进行(Vivado的基本操作在上一篇文章已经讲过,所以本篇不再赘述),为了联合Vivado和Modelsim软件进行时序仿真,首先需要在Vivado中进行相应的设置。

首先从左侧工具栏中的Settings进入设置,如下图。


在Tool Settings下方的3rd Party Simulators中找到Modelsim,选择安装路径之后点击OK。


   指定第三方仿真器
 

接着在Modelsim的安装路径下新建一个文件夹(vivado_lib),用于存储仿真库。


在Vivado中Tools栏下点击Compile Simulation Libraries开始编译仿真库。


   编译仿真库
 

在弹出的界面中选择Modelsim Simulator,器件里选上Artix-7,Compiled library location选择刚才新建的文件夹vivado_lib,Simulator executable path选择modelsim的安装路径,都选择完成后点击Compile开始编译。这个过程需要等待一段不算太短的时间,建议玩会游戏。


   路径设置
 

编译完成之后再回到Simulation设置中将Compiled library location设置为刚才新建的vivado_lib文件夹即可。


设置完成后,接下来便需要添加testbench文件到工程中,首先在文件管理区点击Add Sources添加文件,在弹出的窗口中选择Add or create simulation sources。


在弹出的窗口中选择Add Files,然后选中testbench文件,点击OK添加到工程中。


   添加testbench到工程中
 

点击左侧工具栏中的Run Implementation开始综合实现,完成后点击Run Simulation然后点击Run Post-Implementation Timing Simulation(实现后时序仿真)开始时序仿真。


   开始时序仿真
 

Vivado将会调用Modelsim软件,最后可以观察到如下图所示的波形图。时序仿真过程已经考虑到了实际电路中的延时信息,可以看到,信号A在时钟上升沿后经过了短暂的延时才发生变化。


   时序仿真波形图
 

仿真的重要性

这里扯一点题外话,虽然本文的主旨是介绍仿真工具Modelsim的使用,但仿真的重要性往往被初学者忽视,所以想就这个话题简单谈一谈。如果(自信地)不进行仿真直接在FPGA板上进行验证,最后都得回归到功能仿真这一步来查错。一次功能仿真的时间不到一分钟,而一个比较简单的设计综合实现生成比特流的过程也需要几分钟,所以在上板之前先进行功能仿真查错,既节约了时间,又不会因为上板出现一堆低级错误而懊恼,何乐而不为呢?另外,在SoC设计实验中,如果忽视仿真过程,直接上板跑C程序,出现错误时比较难定位是硬件问题还是软件问题,如果先进行仿真,就可以先把硬件上的问题解决,之后再进行软件调试时效率会高很多。


免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空