当前位置: 首页 > news >正文

Modelsim 操作结构和流程

用到的命令一般都写到.do文件中,使用脚本语言进行批量处理。

  • Step 1: Map libraries

  • Step 2: Compile the design

  • Step 3: Optimize the design (OPTIONAL)

  • Step 4: Load the design into the simulator

  • Step 5: Run the simulation

  • Step 6: Debug the design Note: Design optimization in step 3 limits debugging visibility

1.1 step1: 库与文件的映射

1.1.1 GUI方式

  1. File > New > Project

  1. 输入库名字

  1. 添加设计文件到工程中

1.1.2 命令行方式

vlib <library_name>
vmap work <library_name>
  • vlib 命令

  • 简介

这个命令创建一个设计库(design library)。必须使用vlib命令而不是操作系统命令来创建库目录或索引文件。

  • 语法

vlib -help
vlib [-short |-dos |-long |-unix] [-format { 1|3|4 }]
[-type {directory | archive | flat}]
[{-lock |-unlock} <design_unit>] [-locklib |-unlocklib] [-unnamed_designs <value>]
[-compress |-nocompress]
<library_name>
  • 描述

如果指定的库已经作为有效的ModelSim库存在,则vlib命令将退出,并发出警告消息,而不会影响该库。该命令通过-help选项提供附加信息。

  • vmap命令

  • 简介

vmap命令通过修改modelsim.ini文件来定义逻辑库名和目录之间的映射。

  • 语法

vmap [-c |-del <logical_name> ... |<logical_name> [<path>] ][-modelsimini <path/modelsim.ini>]
  • 描述

如果没有参数,vmap将读取适当的 modelsim.ini 文件,并将当前逻辑库打印到物理目录映射到transcript。

1.2 step2:编译设计

1.2.1 GUI方式

点击 Compile > Compile 或者 Compile > Compile All。

1.2.2 命令行方式

vlog file1.v file2.v ...
(Verilog)
vcom file1.vhd file2.vhd ...
(VHDL)
sccom <top> (SystemC)
sccom -link <top>
  • vlog 命令

  • 简介

vlog命令将Verilog源代码和SystemVerilog扩展编译到指定的工作库(或默认情况下编译到工作库)。可接受压缩的SystemVerilog源文件(用zlib压缩的源文件)。

  • 语法

vlog [options] <filename> [<filename> ...]

介绍几个常用的option:

  • -L

(可选)在指定的资源库中搜索预编译模块。在运行vsim命令时,还必须指定此处指定的库搜索选项。

  • +incdir+

(可选)指定目录以搜索`include 编译器指令中包含的文件。默认情况下,首先搜索当前目录,然后按+incdir选项在命令行中的显示顺序搜索指定的目录。您可以指定多个+incdir选项,也可以在单个+incdir选项中指定多个以“+”分隔的目录。当编译一个导入ModelSim附带的OVM包的文件时,不需要在OVM目录中指定+incdir+。例如,如果你的.sv文件包含:

import ovm_pkg::*;
`include "ovm_macros.svh"

vlog命令会自动为你添加+incdir开关,发出如下提示:

** Note: (vlog-2286) Using implicit
+incdir+<install_dir>/<ovm_dir>/src
from import ovm_pkg

但是,如果使用的是开放版本的OVM,则需要使用+incdir开关显式指定该目录。请注意,内置UVM库的包导入现在添加了一个隐式的+incdir条目,它派生自包导入位置。

  • 描述

  • vlog命令可以从ModelSim或操作系统命令提示符中调用。它也可以在仿真过程中被调用。

  • 编译库依赖于主版本。当在主要版本之间移动时,必须使用-refresh参数刷新vlog编译库。对于小版本则不是这样。

  • vlog命令的所有参数都区分大小写:-WORK和-work不相等。

  • SystemVerilog要求vlog命令的默认行为是将命令行上列出的每个Verilog设计文件视为单独的编译单元。要将单个命令行中列出的多个文件视为单个编译单元,可以使用vlog -mfcu参数或 modelsim.ini文件的MultiFileCompilationUnit变量。

1.3 step3:优化设计(可选)

1.3.1 GUI方式

禁用优化:

  • Simulate > Start Simulation

  • 取消勾选 Enable Optimization 按钮

设置优化选项:

  • Simulate > Design Optimization

  • 设置选项

1.3.2 命令行方式

当在modelsim.ini文件中voptflow = 1开启优化。

1.4 step4:往仿真器加载设计

1.4.1 GUI方式

  1. 点击 Simulate > Start Simulation

  1. 点击顶层设计模块

  1. 点击 OK

1.4.2 命令行方式

vsim <top>
vsim <opt_name>
  • vsim 命令

  • 简介

vsim命令调用vsim仿真器,您可以使用它来查看以前仿真运行的结果(当使用-view参数调用时).

  • 语法

vsim  [options] 

介绍几个常用的option:

  • -vopt

(可选)如果vopt没有被手动调用,通知vsim自动执行vopt命令。除非在modelsim.ini中将VoptFlow变量设置为0,否则不需要。

  • -novopt

(可选)防止ModelSim自动运行vopt命令。如果在modelsim中将VoptFlow变量设置为1(优化已打开)。如果没有手动调用,vsim会自动运行vopt。如果指定此参数,应确保使用编译命令(vcom或vlog)指定。除非与QuestaADMS一起使用电源感知仿真,否则不建议使用此参数。如果使用此参数,将显示以下警告:

** Warning: (vsim-8891) All optimizations are turned off because the -novopt argument is in effect. This will cause your simulation to run very slowly. If you are using this argument to preserve visibility for Debug or PLI features, please see the User’s Manual section on Preserving Object Visibility with vopt.
  • 描述

  • 要手动中断设计加载,使用Break键或在shell中按

  • sim命令的所有参数都是区分大小写的;例如-g和-G是不相等的。

1.5 step5:运行仿真


(这一步一般使用GUI模式)

1.5.1 GUI方式

上述图片从左到右依次是:

  1. Run

  1. continueRun

  1. Run -All

1.5.2 命令行方式

  • run 命令

  • 简介

此命令将仿真向前推进指定的时间步数。

  • 语法

run {[<timesteps>[<time_units>]] |-all |-continue|-final |-finish |-init |-next } | {-step [-current] [<n>] [-out] [-over [<n>]] [-this]}
  • 描述

在运行操作完成后,您可以使用以下首选变量控制任何返回值:

  • noRunTimeMsg:设置为0表示显示仿真时间和增量信息,设置为1表示不显示。

  • noRunStatusMsg:设置为0表示显示运行状态信息,设置为1表示不显示。

1.6 step6:调试设计

相关文章:

Modelsim 操作结构和流程

用到的命令一般都写到.do文件中&#xff0c;使用脚本语言进行批量处理。Step 1: Map librariesStep 2: Compile the designStep 3: Optimize the design (OPTIONAL)Step 4: Load the design into the simulatorStep 5: Run the simulationStep 6: Debug the design Note: Desig…...

vue和react有什么不同

vue上手难度低&#xff0c;不过react社区活跃度更多一些&#xff0c;一般数据比较多的大型项目会倾向于使用react。在react官网中&#xff0c;官方也建议我们使用React来构建快速响应的大型 Web 应用程序。vue2.0是面向对象编程&#xff08;{data: {}, methods: {}, created() …...

js求解《初级算法》28. 找出字符串中第一个匹配项的下标

一、题目描述 给你两个字符串 haystack 和 needle &#xff0c;请你在 haystack 字符串中找出 needle 字符串的第一个匹配项的下标&#xff08;下标从 0 开始&#xff09;。如果 needle 不是 haystack 的一部分&#xff0c;则返回 -1 。 输入&#xff1a;haystack "sadb…...

VAE--part1

Variational Auto-Encoder, VAE__part1分布变换VAE慢谈VAE 初现分布标准化重参数技巧VAE的本质是什么&#xff1f;VAE的本质结构正态分布&#xff1f;变分在哪里参考博客仅做学习记录&#xff0c;侵删分布变换 VAE和GAN都是生成式模型&#xff0c;它们俩的目标基本一致&#x…...

备战四级!!!

目录 一、替换词 二、作文常见句型 &#xff08;1&#xff09;常见开头 &#xff08;2&#xff09;阐述观点 &#xff08;3&#xff09;结束语 &#xff08;4&#xff09;提出建议 &#xff08;5&#xff09;表示论证 &#xff08;6&#xff09;给出原因 &#xff08;…...

sizeof与strlen练习

前言 本篇仅仅是为了更加了解sizeof操作符和strlen函数练习. 对于多条sizeof操作符和strlen函数出现,可能很容易造成头脑不清晰,做题时容易混乱. 目录前言一维数组字符数组情况1:情况2情况3二维数组练习之前请牢记下面这段话.这将是头脑清晰地关键. 提示: sizeof(数组名)&#…...

知识图谱的介绍

知识图谱的由来 谷歌在2012年提出了知识图谱的概念&#xff0c;当时目的在于优化搜索引擎的返回结构&#xff0c;为用户提供更精确的结果。 知识图谱的定义 为了理解知识图谱&#xff0c;我们首先要明白信息与知识的概念。首先&#xff0c;信息表示的是外部的客观事实&#…...

【Redis】Redis高级客户端Lettuce详解

文章目录前提Lettuce简介连接Redis定制的连接URI语法基本使用API同步API异步API反应式API发布和订阅事务和批量命令执行Lua脚本执行高可用和分片普通主从模式哨兵模式集群模式动态命令和自定义命令高阶特性配置客户端资源使用连接池几个常见的渐进式删除例子在SpringBoot中使用…...

Qt——自定义界面之QStyle

1. Qt控件结构简介 首先我们要来讲讲GUI控件结构&#xff0c;这里以QComboBox为例&#xff1a; 一个完整的控件由一种或多种GUI元素构成&#xff1a; Complex Control Element。Primitive Element。Control Element。 1.1 Complex Control Element Complex control elements …...

指针和数组面试题(逐题分析,完善你可能遗漏的知识)

人生不是一种享乐&#xff0c;而是一桩十分沉重的工作。 —— 列夫托尔斯泰 前言&#xff1a;之前我们就学习了数组和指针的知识。 数组&#xff1a;数组就是能够存放一组相同类型的元素&#xff0c;数组的大小取决于数组的元素个数和元素类型。 指针&#xff1a;…...

centos7搭建nfs挂载日志目录完整步骤

NFS服务器配置 1.安装NFS服务 首先使用yum安装nfs服务&#xff1a; yum -y install rpcbind nfs-utils 2.创建共享目录 在服务器上创建共享目录&#xff0c;并设置权限。 mkdir /data/share/ chmod 755 -R /data/share/ 3.配置NFS nfs的配置文件是 /etc/exports &…...

三、JavaScript

目录 一、JavaScript和html代码的结合方式 二、javascript和java的区别 1、变量 2、运算 3、数组&#xff08;重点&#xff09; 4、函数 5、重载 6、隐形参数arguments 7、js中的自定义对象 三、js中的事件 四、DOM模型 五、正则表达式 一、JavaScript和html代码的结合方…...

深圳大学计软《面向对象的程序设计》实验11 多继承

A. 在职研究生&#xff08;多重继承&#xff09; 题目描述 1、建立如下的类继承结构&#xff1a; 1)定义一个人员类CPeople&#xff0c;其属性&#xff08;保护类型&#xff09;有&#xff1a;姓名、性别、年龄&#xff1b; 2)从CPeople类派生出学生类CStudent&#xff0c;…...

并发变成实战-原子变量与非阻塞同步机制

文章目录1.锁的劣势2.硬件对并发的支持2.1 比较并交换2.2 非阻塞的计数器3.原子变量类3.1 原子变量是一种“更好的volatile”3.2 性能比较&#xff1a;锁与原子变量4.非阻塞算法4.1 非阻塞的栈4.2 非阻塞的链表4.3 ABA问题非阻塞算法设计和实现上要复杂的多&#xff0c;但在可伸…...

sql数据库常用操作指令

一、操作库-- 创建库create database db1;-- 创建库是否存在&#xff0c;不存在则创建create database if not exists db1;-- 查看所有数据库show databases;-- 查看某个数据库的定义信息 show create database db1; -- 修改数据库字符信息alter database db1 character set ut…...

4-1 定时任务的示例10个

文章目录前言基本命令与格式示例前言 Linux crontab 是用来定期执行程序的命令。当安装完成操作系统之后&#xff0c;默认都已经安装&#xff0c;并启动此任务调度命令。 crond 命令每分钟会定期检查是否有要执行的工作&#xff0c;如果有要执行的工作便会自动执行该工作。 基…...

外贸建站多少钱才能达到预期效果?

外贸建站多少钱才能达到预期效果&#xff1f;这是每个外贸企业都会问的问题。作为一个做外贸建站多年的人&#xff0c;我有一些个人的操盘感想。 首先&#xff0c;我认为外贸建站的投资是非常必要的。 因为在现代社会&#xff0c;网站已经成为外贸企业开展业务的必要工具之一…...

【Java学习笔记】5.Java 基本数据类型

Java 基本数据类型 变量就是申请内存来存储值。也就是说&#xff0c;当创建变量的时候&#xff0c;需要在内存中申请空间。 内存管理系统根据变量的类型为变量分配存储空间&#xff0c;分配的空间只能用来储存该类型数据。 因此&#xff0c;通过定义不同类型的变量&#xf…...

InnoDB 死锁和问题排查

文章目录死锁&#xff08;dead lock&#xff09;示例 1问题排查查看连接的线程查看相关的表查看最近一次的死锁信息查看服务器的锁信息查看正在使用的表如何尽可能地避免死锁死锁&#xff08;dead lock&#xff09; 两个及以上的事务各自持有对方需要的锁&#xff0c;导致双方…...

tensorflow07——使用tf.keras搭建神经网络(Sequential顺序神经网络)——六步法——鸢尾花数据集分类

使用tf.keras搭建顺序神经网络 六步法——鸢尾花数据集分类 01 导入相关包 02 导入数据集&#xff0c;打乱顺序 03 建立Sequential模型 04 编译——确定优化器&#xff0c;损失函数&#xff0c;评测指标&#xff08;用哪一种准确率&#xff09; 05 训练模型——把各项参入填入…...

开源像素艺术生成工具上手指南:像素幻梦2.0-Stable镜像免配置部署

开源像素艺术生成工具上手指南&#xff1a;像素幻梦2.0-Stable镜像免配置部署 1. 像素幻梦简介 像素幻梦(Pixel Dream Workshop)是一款基于FLUX.1-dev扩散模型构建的下一代像素艺术生成工具。它采用16-bit像素工坊风格的视觉设计&#xff0c;为创作者提供沉浸式的AI绘图体验。…...

【无线通信】基于统计信道的低复杂度旋转和位置优化为6D可移动天线无线通信附Matlab代码

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。&#x1f34e; 往期回顾关注个人主页&#xff1a;Matlab科研工作室&#x1f447; 关注我领取海量matlab电子书和…...

别再傻傻分不清了!IM和RTC到底差在哪?从微信聊天到腾讯会议的技术选择

IM与RTC技术选型指南&#xff1a;从协议栈到商业场景的深度解析 当你的产品经理在白板上画出一个"消息气泡"和一个"视频通话图标"时&#xff0c;技术团队首先需要面对的灵魂拷问是&#xff1a;这到底该用IM架构还是RTC架构&#xff1f;2019年某在线教育初创…...

4个强大的开源工具功能扩展方案

4个强大的开源工具功能扩展方案 【免费下载链接】cursor-free-vip [Support 0.45]&#xff08;Multi Language 多语言&#xff09;自动注册 Cursor Ai &#xff0c;自动重置机器ID &#xff0c; 免费升级使用Pro 功能: Youve reached your trial request limit. / Too many fre…...

CHORD-X从零开始:C语言基础概念学习报告自动生成教程

CHORD-X从零开始&#xff1a;C语言基础概念学习报告自动生成教程 你是不是也遇到过这样的烦恼&#xff1f;作为编程老师&#xff0c;每次讲完C语言的指针、结构体这些难点&#xff0c;总想给学生一份清晰易懂的复习报告&#xff0c;但自己动手整理又太花时间。或者&#xff0c…...

技术驱动B端拓客升级:号码核验行业的痛点突围与发展新路径,氪迹科技核验筛选算法系统,法人股东核验,阶梯式价格

在B端市场竞争愈发精细化的当下&#xff0c;拓客工作的核心竞争力已从“广撒网”转向“精准触达”&#xff0c;而企业核心决策人的有效联系方式&#xff0c;正是精准拓客的关键载体。号码核验作为拓客流程的前置核心环节&#xff0c;直接决定着拓客投入的回报效率&#xff0c;更…...

2026年03月GESPC++二级真题解析(含视频)

视频讲解&#xff1a;GESP2026年3月二级C真题讲解 一、单选题 第1题 解析&#xff1a; 答案B&#xff0c;ACD选项都是向机器人输入信息&#xff0c;是输入设备 第2题 解析&#xff1a; 答案D&#xff0c;判断是 “ 菱形框 ” 第3题 解析&#xff1a; 答案D&#xff0c;变…...

从‘瓦特’到‘分贝瓦’:一个公式讲透无线通信中的功率与信噪比换算

从‘瓦特’到‘分贝瓦’&#xff1a;无线通信中的功率与信噪比实战指南 在无线通信系统设计中&#xff0c;功率与信噪比的换算如同工程师的"货币兑换"——你需要熟练掌握瓦特&#xff08;W&#xff09;、分贝瓦&#xff08;dBW&#xff09;、分贝毫瓦&#xff08;dB…...

ST7565SPI嵌入式LCD驱动库:轻量、可移植、零内存分配

1. ST7565SPI 驱动库概述ST7565 是 Sitronix 公司推出的单芯片图形点阵 LCD 控制器&#xff0c;广泛应用于工业人机界面、便携式仪器仪表、智能穿戴设备等对功耗、成本与显示质量有综合要求的嵌入式场景。其典型分辨率为 12864 像素&#xff0c;内置 12864 bit 显示 RAM&#x…...

利用快马平台十分钟搭建树莓派环境监测系统原型

今天想和大家分享一个快速搭建树莓派环境监测系统的小实验。作为一个硬件爱好者&#xff0c;我经常用树莓派做各种物联网原型开发&#xff0c;但每次从零开始配置环境、写基础代码都很耗时。最近发现InsCode(快马)平台能帮我省去很多重复工作&#xff0c;特别适合快速验证想法。…...