Modelsim仿真新手入门最详细教程「建议收藏」

Modelsim仿真新手入门最详细教程「建议收藏」Modelsim上手教程最详细攻略,含一些必坑指南。

大家好,又见面了,我是你们的朋友全栈君。

2021年11月15日

00 安装包/版本

我是提前在网上下好的(但这一点也给我的实验造成了“麻烦”),用的是Modelsim SE-64 2020.4版本的,学校实验室的似乎不同。但最终没有太大影响。

01 配置环境步骤

学校有一个文档,在机房电脑照做就行。我因为是自己下载的,配置与机房软件有所不同,所以又平添了很多麻烦。

01-0 verilog文件

这个代码可以在很多地方编写:Visual Studio Code里有Verilog的插件;还可以有更强大的语言编辑器:Nodepad++。

这里我使用的是Nodepad++,因为看上去专业一点。

Nodepad++的页面效果如图:

Modelsim仿真新手入门最详细教程「建议收藏」

 

 

 

其实第一次上机,老师会给大家示例文件(包括设计代码与测试代码),跑出来示例波形就行。

01-1 具体步骤

  1. 新建一个用于安放project的文档,放在哪里都行。

    把前面做出的.v文件添加到这个文档。

    留意一下路径。

    Modelsim仿真新手入门最详细教程「建议收藏」

     

     Modelsim仿真新手入门最详细教程「建议收藏」

     

     

     

  2. 打开modelsim,在jumpstart中create a new project。

    Modelsim仿真新手入门最详细教程「建议收藏」

     

     

  3. 在弹出的提示框里browse,找到刚才的文件夹。选中。

    填写project 名,注意要与.v文件里的module名保持一致。点击ok。

    Modelsim仿真新手入门最详细教程「建议收藏」

     

     

  4. 进入页面后会是这样子:

    Modelsim仿真新手入门最详细教程「建议收藏」

    注意此处两个文件后面应当都有问号,代表没有编译。先逐个右击文件add to this project确保加入。

  5. 在上方提示栏中complie->compile all。

    稍等些许会看到文件后问号全部变为对勾,表示代码编译通过,没有问题。

    Modelsim仿真新手入门最详细教程「建议收藏」

    如果此步出错则代表代码有bug。在下面的Transcript中上翻查找错误。

  6. 点击上方Simulate->start simulation。

    Modelsim仿真新手入门最详细教程「建议收藏」

    由于注意与实验室不同的,选中下面的Enable optimization,再在右侧Optimization Options中的Visibility中选中Apply full visibility….

    Modelsim仿真新手入门最详细教程「建议收藏」

  7. 接着在work里找到测试代码的文件,选中。

    Modelsim仿真新手入门最详细教程「建议收藏」

     

     

  8. 在弹出页面中的Object栏目(此处会有测试代码中设置的一些变量)中右击空白处,add to ->wave ->Signals in Region.

  9. 可见最右侧wave模块中出现这几个变量。

  10. 点击上方simulate -> run -> run all。即可出现波形图。

    Modelsim仿真新手入门最详细教程「建议收藏」

     

     

10 问题解决

这里记录一下配置过程中遇到的一些问题及其解决。

10-0 与nodepad++绑定

网上的办法是在控制面板中直接输入

proc external_editor {filename linenumber} { exec "I:/notepad++/notepad++.exe"  $filename }

回车后

set PrefSource(altEditor) external_editor

其实也可以在创建的那个文件夹里,选中.v文件,右击打开方式,找到nodepad++并设为默认即可。

10-1 modelsim 仿真后object区没有变量

解决方案上面提到了。

就是在点击仿真后弹出的窗口中,选中Enable optimization,再在右侧Optimization Options中的Visibility中选中Apply full visibility….

即可解决。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/155218.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • python 读json_python json文件

    python 读json_python json文件python中和json读写相关的主要是json模块的以下四个函数dumps()将一个python对象编码为json对象 loads()讲一个json对象解析为python对象 dump()将python对象写入文件 load()从文件中读取json数据1、dumps()和loads()主要用于Python和json对象的相互转化。importjsonprices…

    2022年10月12日
  • 费曼学习法

    费曼学习法费曼学习法我的理解:费曼学习法就是把学好的东西用简洁易懂的语言,传授给别人举例:你学完微积分,然后自己去培训班,自己做老师,传授给学生们,并且学生们都能听懂费曼学习法的四个步骤:1.确定目标

  • 0xC000005读取发生访问冲突_vs读取访问权限冲突

    0xC000005读取发生访问冲突_vs读取访问权限冲突遇见这种问题一般都是空指针,即:指针里没有赋值~如果你对null进行操作就会产生空指针异常Objectobj=newObject();你要知道obj是一个Object指针变量,指向Object类的一个实例我们说obj是一个对象实质是它指向一个对象的首地址如果这个指针变量obj没有指向任何空间你调用它的方法和属性就会出错例如Objectobj=

  • UART和USART有区别

    UART和USART有区别UART  UART是一种通用串行数据总线,用于异步通信。该总线双向通信,可以实现全双工传输和接收。在嵌入式设计中,UART用于主机与辅助设备通信,如汽车音响与外接AP之间的通信,与PC机通信包括与监控调试器和其它器件,如EEPROM通信。  UART的功能计算机内部采用并行数据,不能直接把数据发到Modem,必须经过UART整理才能进行异步传输,其过程为:CPU先把准备写入串行设备的数据…

  • MySql Povit_MySQL pivot row成动态列数「建议收藏」

    MySql Povit_MySQL pivot row成动态列数「建议收藏」杨魅力不幸的是,MySQL没有PIVOT基本上你想要做的功能。因此,您需要使用带有CASE语句的聚合函数:selectpt.partner_name,count(casewhenpd.product_name=’ProductA’THEN1END)ProductA,count(casewhenpd.product_name=’ProductB’THEN1…

    2022年10月30日
  • 安装windows7导致Ubuntu启动项消失的问题的解决

    安装windows7导致Ubuntu启动项消失的问题的解决

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号