Modelsim 用户手册(1)——Introduction

news2024/11/26 11:59:17

目录

一、操作结构和流程( Operational Structure and Flow)

二、仿真任务概述(Simulation Task Overview)

三、仿真基本步骤( Basic Steps for Simulation) 

3.1 基本概念

3.1.1 文件和库映射(Files and Map Libraries)

3.1.2 什么是库(What is a Library?)

3.1.3 资源库(Resource Libraries)

3.2 基本步骤

3.2.1 Step1 — Create Work and Resource Libraries

3.2.2 Step2 — Compile the Design 

3.2.3  Step3 — Optimize the Design

3.2.4 Step4— Load the Design for Simulation

3.2.5 Step5 — Simulate the Design

3.2.6 Step 6 — Debug the Design

四、总结


一、操作结构和流程( Operational Structure and Flow)

        下图说明了使用ModelSim验证设计的结构和一般使用流程。

二、仿真任务概述(Simulation Task Overview)

        下表提供了在ModelSim中编译、优化、加载和模拟设计所需的任务的参考。

 

三、仿真基本步骤( Basic Steps for Simulation) 

3.1 基本概念

        本节描述了使用ModelSim模拟设计所需的文件类型和基本过程。 

3.1.1 文件和库映射(Files and Map Libraries)

        你需要一些文件来通过Modelsim进行你的仿真。

  • 设计文件(VHDL and/or Verilog VHDL, Verilog, and/or SystemC),包括设计的激励。
  • 库(工作库和资源库)
  • modelsim.ini文件(由库映射命令自动创建)。

3.1.2 什么是库(What is a Library?)

        库是文件系统上的一个位置,ModelSim在这里存储用于仿真的数据。ModelSim在仿真之前使用一个或多个库来管理数据的创建。一个库还有助于简化仿真调用。

        你可以通过以下方式使用库:

  • 作为一个包含你的设计的编译后版本的本地工作库
  • 作为一个资源库

3.1.3 资源库(Resource Libraries)

        资源库通常是不变的,并作为一部分设计的资源。你可以创建自己的资源库,也可以由另一个设计团队或第三方提供它们。 

        资源库示例:

  • 团队的共享信息
  • 供应商库
  • 以前编译过的关于你自己的工作设计的元素

        ModelSim使用安装树中提供的预编译资源库,而不是在每次仿真时编译所有设计资源数据。使用预编译库有助于减少在编译和模拟启动期间的错误。此外,如果你对单个Verilog模块进行了更改,那么ModelSim将只重新编译该模块,而不是在设计中的所有模块。

3.2 基本步骤

3.2.1 Step1 — Create Work and Resource Libraries

        第一步——创建工作和资源库。在编译源文件之前,必须使用vlib命令创建一个工作库,以便在其中存储编译结果。工作库的内容将在您重新编译和更新设计时发生更改。

        默认情况下,Vlib会创建一个"flat"库类型。与传统库类型相比,平面库将库信息压缩成一个小的文件集合。这补救了在非常大型的库中看到的性能和容量问题。

        步骤:

  1. 选择File > Change Directory打开文件夹对话框
  2. 导航到源文件所在的目录
  3. 使用vlib命令创建工作库:在命令框输入 vlib work 或者在主界面选择 File > New > Library
  4. 使用vmap命令在逻辑库名和目录之间映射一个或多个用户提供的库: vmap <logical_name> <directory_pathname>
        结果如下:

3.2.2 Step2 — Compile the Design 

        第二步——编译设计。收集设计文件并创建工作目录之后,将编译设计。你必须根据用于编写设计代码的编程语言来选择适当的编译器命令。对于verilog语言来说,使用的命令是vlog。

        你可以以任何顺序编译Verilog文件,因为它们并不依赖于顺序。例如:

vlog gates.v and2.v cache.v memory.v

3.2.3  Step3 — Optimize the Design

        第三步——优化设计。优化是一个可选的步骤,它可以通过限制设计对象的可见性来提高性能。ModelSim使用vopt命令执行全局优化。

        在命令行输入如下指令:

vopt top -o topopt

        其中,top是是已编译好的顶层模块的名称。-o topopt 指定设计的优化版本的名称。

3.2.4 Step4— Load the Design for Simulation

        在编译设计后,您需要使用任何顶层模块的名称(多个设计只能包含一个顶层模块),使用vsim命令加载设计。例如,如果您的顶层模块被命名为“测试台”和“全局模块”,那么就调用仿真器vsim testbench globals 。

        在命令行输入如下指令:

vsim testbench globals

        其中,testbench 和 globals 是两个顶层模块。

        仿真器加载顶层模块后,在设计层次中迭代加载实例化的模块和udp,通过连接端口和解析层次引用将设计连接在一起。

3.2.5 Step5 — Simulate the Design

        成功加载设计后,模拟时间将设置为零,并且必须输入运行 run 才能开始模拟。用于运行仿真的基本命令有:

  • add wave
  • bp
  • force
  • run
  • step

3.2.6 Step 6 — Debug the Design

        ModelSim GUI提供了许多对调试设计很有用的命令、操作和窗口。此外,您还可以使用命令行来运行以下基本的模拟命令以进行调试。

  • describe
  • drivers
  • examine
  • force
  • log
  • checkpoint
  • restore
  • show

四、总结

        本文介绍了 Modelsim 进行验证时候的基本操作结构和流程,简要说明了在ModelSim中编译、优化、加载和模拟设计所需的任务,解释了Modelsim中库的基本概念。

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

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

相关文章

Jetpack:026-Jetpack中的Slider

文章目录 1. 概念介绍2. 使用方法3. 代码与效果3.1 示例代码3.2 运行效果 4. 内容总结 我们在上一章回中介绍了Jetpack多点触控相关的内容&#xff0c;本章回中 主要介绍Slider。闲话休提&#xff0c;让我们一起Talk Android Jetpack吧&#xff01; 1. 概念介绍 我们在本章回…

MATLAB R2023a下载链接及软件安装教程

先解释下什么是A什么是B&#xff0c;省的有些小菜们总问。 a是上半年&#xff0c;b是下半年版本&#xff0c;但是有些小弱们总是觉得只要是b一定功能多&#xff0c;这不一定的&#xff0c;同年版本b比a可能稍微全点&#xff0c;不同年的&#xff0c;比如21b&#xff0c;22a&am…

如何使用Javascript实现缓动特效

什么是缓动特效 虽然缓动特效这个词你可能没有听说过&#xff0c;但是绝大部分人都使用过。最典型的场景是在实现动画的过程中&#xff0c;无论是早期的jQuery还是CSS3里的transition&#xff0c;都允许你添加一个缓动特效参数&#xff0c;例如 linear, ease-in, ease-out等等…

云安全—etcd攻击面

0x00 前言 本篇还是一样&#xff0c;先来说一说etcd是什么&#xff0c;干啥的&#xff0c;然后再来看看etcd的攻击面到底有哪些&#xff0c;做一个抛砖引玉的作用&#xff0c;如有不妥之处还请斧正 0x01 etcd 依旧还是按照问问题的方式来进行阐述&#xff0c;因为学到的东西…

【一文搞定--web 自动化之文件上传】

在做web自动化时&#xff0c;我们经常会碰到一些场景需要进行文件上传&#xff0c;而文件上传打开的窗口属于windows控件&#xff0c;通过Selenium是操作不了的&#xff0c;此篇文章给大家介绍几种实现方法。 前言 方法一&#xff1a;sendKeys 前提条件&#xff1a;文件上传元…

51单片机电子钟闹钟温度LCD1602液晶显示设计( proteus仿真+程序+原理图+设计报告+讲解视频)

51单片机电子钟闹钟温度液晶显示设计( proteus仿真程序原理图设计报告讲解视频&#xff09; 1.主要功能&#xff1a;2.仿真3. 程序代码4. 原理图5. 设计报告6. 设计资料内容清单&&下载链接资料下载链接&#xff08;可点击&#xff09;&#xff1a; &#x1f31f;51单片…

2103. 环和杆

2103. 环和杆 难度: 简单 来源: 每日一题 2023.11.02 总计有 n 个环&#xff0c;环的颜色可以是红、绿、蓝中的一种。这些环分别穿在 10 根编号为 0 到 9 的杆上。 给你一个长度为 2n 的字符串 rings &#xff0c;表示这 n 个环在杆上的分布。rings 中每两个字符形成一个…

汇编-算术运算符

下面给出了一些有效表达式和它们的值&#xff1a;

跆拳道馆展示服务预约小程序的效果如何

除了书本上的知识&#xff0c;很多人或孩子会选择学习一些技能&#xff0c;如游泳、钢琴、棋艺花艺等&#xff0c;跆拳道也拥有较高的客户群体&#xff0c;但由于需求属性较强&#xff0c;因此在实际发展中&#xff0c;商家宣传推广、获取线索、服务赋能方面不足。 如今互联网…

在微信小程序怎么领取优惠券

随着科技的发展&#xff0c;微信小程序已经成为我们日常生活中不可或缺的一部分。它为我们提供了各种各样的服务&#xff0c;使我们的生活变得更加便捷。而在这些服务中&#xff0c;领取优惠券成为了大家特别喜欢的功能之一。本文将详细介绍如何在微信小程序中领取优惠券&#…

文件夹怎么设置密码?电脑怎么设置文件夹密码?

在使用电脑的过程中&#xff0c;我们经常使用文件夹来储存管理文件。而为了保护文件夹的数据安全&#xff0c;我们可以为文件夹设置密码。那么&#xff0c;电脑怎么设置文件夹密码呢&#xff1f;下面我们就一起来了解一下。 文件夹设置密码的要求 文件夹设置密码很简单&#…

ELK + kafka 日志方案

概述 本文介绍使用ELK&#xff08;elasticsearch、logstash、kibana&#xff09;  kafka来搭建一个日志系统。主要演示使用spring aop进行日志收集&#xff0c;然后通过kafka将日志发送给logstash&#xff0c;logstash再将日志写入elasticsearch&#xff0c;这样elasticsearc…

【C++】关于构造函数后面冒号“:“的故事------初始化列表(超详细解析,小白一看就懂)

目录 一、前言 二、 初始化的概念区分 三、初始化列表 &#xff08;重点&#xff09; &#x1f4a6;初始化列表的概念理解 &#x1f4a6;初始化列表的注意事项 四、共勉 一、前言 在之前的博客学习中&#xff0c;我们已经学习了【C】的六大默认成员函数 &#xff0c;想必大…

MySQL数据库入门到精通——运维篇(2)

MySQL数据库入门到精通——运维篇&#xff08;2&#xff09; 1. 分库分表1.1 分库分表介绍1.1.1 现在的问题1.1.2 拆分策略1.1.2.1 垂直拆分策略1.1.2.2 水平拆分策略 1.2 Mycat概述1.3 Mycat入门1.4 Mycat配置1.4.1 Schema标签1.4.2 Datanode标签1.4.3 Datahost标签1.4.4 rule…

蓝桥杯每日一题2023.11.2

题目描述 等差素数列 - 蓝桥云课 (lanqiao.cn) 题目分析 对于此题我们需要求出最小的公差并且长度为10&#xff0c; 1.确保序列开始为素数 2.确定枚举的个数 注意&#xff1a;序列中数只是d的变化&#xff0c;可以通过此计算将开始数字后9个数字都计算出来&#xff0c;d是…

PostgreSQL逻辑管理结构

1.数据库逻辑结构介绍 2.数据库基本操作 2.1 创建数据库 CREATE DATABASE name [ [ WITH ] [ OWNER [] user_name ] [ TEMPLATE [] template ] [ ENCODING [] encoding ] [ LC_COLLATE [] lc_collate ] [ LC_CTYPE [] lc_ctype ] [ TABLESPACE [] tablespace ] [ CONNECTION L…

网络取证-Tomcat-简单

题干&#xff1a; 我们的 SOC 团队在公司内部网的一台 Web 服务器上检测到可疑活动。为了更深入地了解情况&#xff0c;团队捕获了网络流量进行分析。此 pcap 文件可能包含一系列恶意活动&#xff0c;这些活动已导致 Apache Tomcat Web 服务器遭到破坏。我们需要进一步调查这一…

【LeetCode:2103. 环和杆 | 模拟】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…

nexus搭建npm私有镜像

假设有一个nexus服务&#xff0c;地址为&#xff1a; http://10.10.33.50:8081/ 创建存储空间 登录后创建存储空间&#xff0c;选择存储类型为File&#xff0c;并设置空间名称为 npm-private 创建仓库类型 2.1 创建hosted类型仓库 创建一个名为 npm-hosted 的本地类型仓库 2.…

SpringCloud 微服务全栈体系(十)

第十章 RabbitMQ 一、初识 MQ 1. 同步和异步通讯 微服务间通讯有同步和异步两种方式&#xff1a; 同步通讯&#xff1a;就像打电话&#xff0c;需要实时响应。 异步通讯&#xff1a;就像发邮件&#xff0c;不需要马上回复。 两种方式各有优劣&#xff0c;打电话可以立即得…