当前位置: 首页 > 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 训练模型——把各项参入填入…...

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周&#xff0c;有很多同学在写期末Java web作业时&#xff0c;运行tomcat出现乱码问题&#xff0c;经过多次解决与研究&#xff0c;我做了如下整理&#xff1a; 原因&#xff1a; IDEA本身编码与tomcat的编码与Windows编码不同导致&#xff0c;Windows 系统控制台…...

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…...

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …...

iPhone密码忘记了办?iPhoneUnlocker,iPhone解锁工具Aiseesoft iPhone Unlocker 高级注册版​分享

平时用 iPhone 的时候&#xff0c;难免会碰到解锁的麻烦事。比如密码忘了、人脸识别 / 指纹识别突然不灵&#xff0c;或者买了二手 iPhone 却被原来的 iCloud 账号锁住&#xff0c;这时候就需要靠谱的解锁工具来帮忙了。Aiseesoft iPhone Unlocker 就是专门解决这些问题的软件&…...

关于iview组件中使用 table , 绑定序号分页后序号从1开始的解决方案

问题描述&#xff1a;iview使用table 中type: "index",分页之后 &#xff0c;索引还是从1开始&#xff0c;试过绑定后台返回数据的id, 这种方法可行&#xff0c;就是后台返回数据的每个页面id都不完全是按照从1开始的升序&#xff0c;因此百度了下&#xff0c;找到了…...

【项目实战】通过多模态+LangGraph实现PPT生成助手

PPT自动生成系统 基于LangGraph的PPT自动生成系统&#xff0c;可以将Markdown文档自动转换为PPT演示文稿。 功能特点 Markdown解析&#xff1a;自动解析Markdown文档结构PPT模板分析&#xff1a;分析PPT模板的布局和风格智能布局决策&#xff1a;匹配内容与合适的PPT布局自动…...

React19源码系列之 事件插件系统

事件类别 事件类型 定义 文档 Event Event 接口表示在 EventTarget 上出现的事件。 Event - Web API | MDN UIEvent UIEvent 接口表示简单的用户界面事件。 UIEvent - Web API | MDN KeyboardEvent KeyboardEvent 对象描述了用户与键盘的交互。 KeyboardEvent - Web…...

ServerTrust 并非唯一

NSURLAuthenticationMethodServerTrust 只是 authenticationMethod 的冰山一角 要理解 NSURLAuthenticationMethodServerTrust, 首先要明白它只是 authenticationMethod 的选项之一, 并非唯一 1 先厘清概念 点说明authenticationMethodURLAuthenticationChallenge.protectionS…...

Ascend NPU上适配Step-Audio模型

1 概述 1.1 简述 Step-Audio 是业界首个集语音理解与生成控制一体化的产品级开源实时语音对话系统&#xff0c;支持多语言对话&#xff08;如 中文&#xff0c;英文&#xff0c;日语&#xff09;&#xff0c;语音情感&#xff08;如 开心&#xff0c;悲伤&#xff09;&#x…...

Xen Server服务器释放磁盘空间

disk.sh #!/bin/bashcd /run/sr-mount/e54f0646-ae11-0457-b64f-eba4673b824c # 全部虚拟机物理磁盘文件存储 a$(ls -l | awk {print $NF} | cut -d. -f1) # 使用中的虚拟机物理磁盘文件 b$(xe vm-disk-list --multiple | grep uuid | awk {print $NF})printf "%s\n"…...