Modelsim 使用教程(1)——概述

news2024/11/15 12:44:33

目录

 

一、概述

二、设计优化(Design Optimizations)

三、基本仿真流程(Basic simulation flow)

3.1 创建工作库(create a working library)

3.2 编译设计(Compiling Your Design)

3.3 加载仿真器并运行(Loading the Simulator with Your Design and Running the Simulation)

3.4 调试结果(Debugging Your Results)

四、项目流程(Project Flow)

五、多库流程(Multiple library flow)

六、调试工具(Debugging Tools)


 

一、概述

        Modelsim 是一款对于VHDL, Verilog, SystemVerilog, SystemC以及混合语言设计的仿真验证工具。

        本系列提供了ModelSim仿真环境的简要概念性概述。它主要分为五个方面:

  • Design Optimizations(设计优化)
  • Basic simulation flow(基本仿真流程)
  • Project flow(项目流程)
  • Multiple library flow(多库流程)
  • Debugging tools(调试工具)

二、设计优化Design Optimizations

        在讨论基本的仿真流程之前,了解设计优化是很重要的。默认情况下,ModelSim优化会自动在所有设计上执行。这些优化旨在最大化仿真器的性能,在一些Verilog设计中,比非优化的运行产生高达10倍的改进。

        然而,全局优化可能对可以查看的设计模拟结果的可见性产生影响——某些信号和过程可能不可见。如果这些信号和过程对调试设计很重要,那么可能有必要通过从特定模块中删除优化来定制仿真。

        因此,对于如何最好地应用优化到设计做出明智的决定是很重要的。在ModelSim中执行全局优化的工具称为vopt。请参考ModelSim用户手册中的使用vopt优化设计章节,了解关于优化权衡和定制的完整讨论。有关命令语法和用法的详细信息,请参考参考手册中的vopt。

三、基本仿真流程(Basic simulation flow)

        下图显示了在ModelSim中模拟设计的基本步骤。

b2f5b66fec4543b6ba176850796c3f7a.jpeg

3.1 创建工作库(create a working library)

        在ModelSim中,所有的设计都被编译到一个库中。设计者通常通过创建一个称为“work”的工作库来在ModelSim中启动一个新的仿真,这是编译器使用的默认库名称,作为编译设计单元的默认目标。

3.2 编译设计(Compiling Your Design)

        在创建工作库后,我们就可以在库中编译我们的设计。ModelSim库格式可以兼容所有受支持的平台。你可以在任何平台上仿真你的设计,而无需重新编译你的设计。

3.3 加载仿真器并运行(Loading the Simulator with Your Design and Running the Simulation)

        在设计编译过后,通过在顶层模块(Verilog)或配置或实体/架构对(VHDL)上调用仿真器,可以用设计加载仿真器。

        假设设计加载成功,则将仿真时间设置为零,并输入运行命令以开始仿真。

3.4 调试结果(Debugging Your Results)

        如果没有得到预期的结果,我们可以使用ModelSim的调试环境来跟踪问题的原因。

四、项目流程(Project Flow)

        HDL设计最终还是要应用于我们的项目中,尽管我们可能不需要在modelsim中使用到项目,但是它们可以简化与工具的交互,并且对于组织文件和指定仿真设置很有用。

        下图显示了在Modelsim项目中仿真设计的基本步骤:

962d9a9a765d4c998a71b20cb23e170d.jpeg

        如你所见,该流程与基本的仿真流程类似。然而,有两个重要的区别: 

  • 你不必在项目流程中创建一个工作库;它是自动为你完成的。
  • 项目是持续性的。换句话说,每次调用ModelSim时,它们都会打开,除非你专门关闭它们。

五、多库流程(Multiple library flow)

         ModelSim以两种方式使用库: 1)作为一个本地工作库,其中包含你的设计的编译版本;2)作为一个资源库。工作库的内容将在您重新编译和更新设计时发生更改。资源库通常是静态的,它可以作为设计的部件源。您可以创建自己的资源库,也可以由另一个设计团队或第三方提供。

        你可以指定在编译设计时将使用哪些资源库,并且有一些规则可以指定搜索它们的顺序。一个同时使用工作库和资源库的常见示例是:你的门级设计(RTL代码)和tb被编译到工作库中,设计参考的模块(例如IP)在单独的资源库中。

        下图显示了使用多个库进行仿真的基本步骤:

2ffb1963f03e4198b15585b4e1008f52.jpeg

        你还可以从项目中链接到资源库。如果您正在使用一个项目,您将用以下两个步骤替换上面的第一步:创建项目,并将tb添加到项目中。 

六、调试工具(Debugging Tools)

        ModelSim提供了许多工具来调试和分析你的设计。随后的课程将介绍其中一些工具,包括:

  • 使用项目
  • 使用多个库
  • 与SystemC模拟
  • 设置断点并逐步浏览源代码
  • 查看波形和测量时间
  • 探索您的设计中的“物理”连通性
  • 查看和初始化记忆
  • 使用波形编辑器创建激励
  • 分析仿真性能
  • 测试代码覆盖范围
  • 比较波形
  • 使用PSL断言进行调试
  • 使用系统验证日志断言和覆盖指令
  • 使用SystemVerilog DPI
  • 自动化仿真

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1153065.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MAXENT模型的生物多样性生境模拟与保护优先区甄选、自然保护区布局优化评估

随着生物多样性全球大会的举办,不论是管理机构及科研单位、高校都在积极准备,根据国家林草局最新工作指示,我国将积极整合、优化自然保护地,加快推进国家公园体制试点,构建以国家公园为主体的自然保护地体系。针对我国…

电脑剪辑完成的视频怎么传到手机

现今手机基本上可以完成电脑的所有操作,甚至功能会更加丰富,但是对于需要剪辑视频的用户来说,电脑无疑仍然是最佳选择,毕竟屏幕大,对于视频细节的把控更到位,查看整体效果不容易出现问题,然而当…

Asset private data

其使用的java链码是基于gradle7.0的。相比于其他环境下的java代码,多了一些限制: (1)逗号后面必须有空格,花括号前面必须有空格,运算符前后必须有空格 (2)类里面的set方法参数不能和类里面的成员变量名字…

深入了解Python类与面向对象编程

在编程世界中,面向对象编程(OOP)是一种强大的编程范式,而Python是一门优雅而强大的编程语言。本文将带你深入探讨Python中的类与面向对象,为你揭示面向对象编程的奇妙世界。 类与对象的概念 1.什么是类? …

21款奔驰E300L升级HUD抬头显示 直视仪表信息

随着科技飞速地发展,从汽车领域就可以看出,尤其是汽车的抬头显示器,一经推出就吸引了很多的车主。 升级HUD抬头显示,HUD与汽车系统进行完整的数据信息连接,整合成大数据,然后将一些重要信息映射到车窗玻璃上…

Netflix app客户端有哪些优势?稳定奈飞安装包

Netflix app客户端软件是一款提供海量高质量影视内容的视频播放软件,用户可以轻松浏览和观看电影、电视剧、纪录片等,享受高清画质和个性化推荐服务,同时支持多设备使用,为用户带来优质的观影体验。 Netflix app客户端软件的优势…

如何用思维导图开会

在办公室和会议室使用思维导图会有无数好处。今天我们就聊聊思维导图在开会中的作用? 为什么要在会议中使用思维导图? 思维导图可以帮助我们整理思路。会议通常涉及到复杂的议题和讨论,使用思维导图可以帮助整合和梳理参与者的思路和观点。通…

minio 分片上传限制

引用官方文档,可以直接查看官方链接地址 Thresholds and Limits — MinIO Object Storage for Kubernetes

视频剪辑高手:画中画叠加批量处理技巧,剪辑更高效,更省心

随着数字媒体的普及,视频剪辑已经成为许多人的必备技能。然而,面对海量的视频素材和繁琐的剪辑工作,如何高效、省心地完成视频剪辑成为了一个重要的问题。本文将介绍云炫AI智剪“画中画叠加批量处理”的技巧,帮助你轻松提升视频剪…

Matlab中的app设计

1.窗口焦点问题: 窗口焦点问题:确保你的应用程序窗口正常处于焦点状态。有时,其他窗口的弹出或焦点切换可能导致应用程序最小化。点击应用程序窗口以确保它处于焦点状态。 窗口管理:确保你的 MATLAB 或操作系统没有未处理的错误或…

fastdfs实现防盗链功能

目录 一、实现原理 二、开启防盗链 三、重启nginx 四、 Java代码生成token 1、token生成规则 2、java生成token 五、测试 1 带正确token访问 2 带错误token访问,或直接访问 一、实现原理 fastdfs是一个分布式文件系统,如果我们的fastdfs部署在外…

超实用的企业防范数据泄露小技巧!

超实用的企业防范数据泄露小技巧! 小技巧1、加强员工培训,提高防范思想 及时向员工传达有关安全信息,加强员工意识、认识和执行安全措施,以防止数据泄露发生。 小技巧2、建立安全政策,明确处理流程 企业应该建立安…

基于RFID技术的智能医疗柜管理系统解决方案

一、行业背景 当前,医疗机构面临着药物过期、召回、空货架、放错产品和库存缺失等问题,这些问题导致医院项目效率低下,患者护理不足,医护人员备受困扰。为了应对全球医疗体系面临的压力,医疗保健机构急需寻找新技术来…

C++中vec.size()-1的坑

问题描述&#xff1a;如下代码&#xff0c; #include <iostream> #include <vector>using namespace std;int main() {vector<int> vec {};for (int i 0; i < vec.size() - 1; i) {cout << "i " << i << ", vec[i] …

生成瑞利信道(Python and Matlab)

channel h k h_k hk​ is modeled as independent Rayleigh fading with average power loss set as 10^−3 Python import numpy as np# Set the parameters average_power_loss 1e-3 # Average power loss (10^(-3)) num_samples 1000 # Number of fading samples to …

「永不失联」产品创新与升级系列发布,预约直播“即将发车”

数字化浪潮下&#xff0c;北斗时空智能正成为我国重要的新型基础设施。 通过将卫星定位精度提升至厘米级乃至毫米级&#xff0c;时空智能满足了数字化时代智能驾驶、共享出行、智慧城市等多种智能终端对时空信息的爆发式增长需求&#xff0c;同步印证着测绘地理信息领域的技术应…

Sql 中的 Replace方法

最近需要改代码中写入db的一段content&#xff0c;但是已经存入的也不能删&#xff0c;就查了Replace下用法。记录 参考链接&#xff1a; What is Replace in SQL and How to Use Replace() Function 这是原来的table 然后把com换成simplilearn.org。 重点就是这里的用法 FI…

openEuler社区2023年度满意度调研

Hi&#xff0c;朋友们 一年一度的openEuler社区满意度调研来啦&#xff01;我们诚邀您参与问卷调研&#xff0c;反馈您在社区的使用情况。我们会持续吸纳建议&#xff0c;为您创造更好的用户体验&#xff01; 时间&#xff1a;2023年10月27日-2023年12月17日 。 链接&#x…

本地模拟,服务器下载文件

题目要求&#xff1a; 编写客户端程序和服务器端程序客户端可以输入一个音乐 文件名&#xff0c;比如 美丽中国&#xff0c;服务端 收到音乐后&#xff0c;可以给客户端返回这个音乐文件&#xff0c;如果服务器没有这个文件&#xff0c;返回一个默认的音乐即可客户端收到文件后…

UML—时序图是什么

目录 前言: 什么是时序图: 时序图的组成元素&#xff1a; 1. 角色(Actor) 2. 对象(Object) 3. 生命线(LifeLine) 4. 激活期(Activation) 5. 消息类型(Message) 6.组合片段(Combined fragment) 时序图的绘制规则:​ 绘制时序图的3步&#xff1a; 1.划清边界&#xf…