Questasim与Visualizer的livesim仿真

news2025/5/19 19:43:22

1.前言

Live-Simulation (live-sim)模式允许Visualizer调试环境与Questasim进行交互操作,此模式将Visualizer GUI与Questasim仿真相结合,因此可以在线调试当前仿真的结果和波形。在livesim模式中,可以在Visualizer GUI中控制仿真、设置断点(Breakpoints)、单步调试、检查记录或未记录的数据值、以及跟踪类对象。因此,在调试验证环境或RTL的问题时,livesim可以更有效率地定位问题。下文介绍下live-simulation模式如何启动以常用功能。

2.启动live-sim模式

Questasim要求使用3步仿真流程(vlog, vopt, vsim)来调用livesim模式下的Visualizer,而不是2步仿真流程(vlog, vsim+vopt)。

第一步:准备TB和RTL代码

这里简单创建名为livesim_example.sv的文件,它的内容是:

module livesim_example;  
    int a = 600;  
    int b = 66;  
    int c;  
    reg clk = 1'b0;
    initial begin
        c = a + b; 
        $display("result1: The sum of a(%0d) and b(%0d) is c(%0d)", a, b, c);  
        # 10ns;
        forever begin
            # 5ns;
            clk = ~clk;
            c   = c + 1;
            $display("The current c: %0d", c);
            # 5ns;
            c   = c + 2;
            $display("The current c: %0d", c);
        end
    end
endmodule

第二步:vlog命令编译

需要调用Questasim的vlog命令把代码先编译过,命令如下:

vlib work
vlog livesim_example.sv

这时候会生成livesim_example的top module。(注意,如果是VHDL文件的话,要使用vcom命令,而不是vlog)

第三步:vopt命令优化

需要调用Questasim的vopt命令把design优化下,命令如下:

vopt -debug livesim_example -o live_opt -designfile design.bin

这时候会生成名为live_opt的优化design名。

在优化过程中,必须的-designfile参数的作用是创建Visualizer所需的design数据库文件名称(design.bin),如果默认用design.bin名称的话,其实-designfile design.bin可以替换为+designfile,这样Questasim默认生成的bin文件名字为design.bin。必须的-o参数为design的优化版本指定一个名称,名称可以包含小写字母、大写字母、数字字符或下划线。可选的-debug参数限制优化以保证行号的可见性,这就可以在Visualizer的livesim模式下启用行breakpoints。其它需要的vopt参数大家可以根据需要添加。

第四步:vsim命令仿真

使用vsim命令开始仿真,命令如下:

vsim -visualizer live_opt

这里live_opt的名字就是第三步vopt命令-o参数生成的名字。vsim命令将design加载到仿真器中,然后将design.bin文件和仿真控制传递给Visualizer GUI。

在design elaboration过程中,仿真elaboration消息显示在启动shell中,并且也保存在visualizer.log文件中。如果elaboration有错误,则显示消息并退出仿真。如果elaboration成功,将调用Visualizer GUI。Visualizer GUI首先读取数据并连接到仿真器,当GUI准备好接受CLI命令时,在transcript窗口会出现” Visualizer  1>”。

只要完成了以上的几个步骤,就会出现以下界面,表示进入livesim模式了,也就是联合Questasim和Visualizer进行实时仿真调试。

3. livesim仿真常用功能

进入livesim模式后,就是使用Visualizer GUI界面去debug代码了,这里简单介绍几个常用功能,更多的用法大家可以去探索下。

3.1 变量值提示

当启用变量值提示(Value  Tool Tip)功能后,记那个鼠标悬停在源代码、原理图和许多其它窗口中的对象上时,弹出的工具提示将显示该对象的值、大小和带有下划线(_)的基数前缀。此默认值格式化在仿真期间被记录。不过通过vsim命令中指定+vis_no_format_num,可以禁用值格式化,只显示对象值。变量值提示(Value  Tool Tip)启动和关闭按钮在下图红色箭头指向的地方。

3.2 Debugger菜单

在Debugger菜单下有运行、步进、重新启动、保存或恢复checkpoints点,以及使用C调试器。

3.3 工具栏的调试

在工具栏上也可以方便的控制仿真的进行。

3.4 设置breakpoint

右键代码的前方,会出现以下窗口,我们就可以设置一些breakpoint来辅助debug。

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

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

相关文章

【Java 基础篇】Java 类加载器详解

在Java编程中,类加载器(Class Loader)是一个重要的概念,它负责将类加载到Java虚拟机中,使程序能够正常运行。本文将详细解释Java类加载器的工作原理、不同类型的类加载器以及如何自定义类加载器。 什么是类加载器&…

智慧公厕以数字技术为中心,融合数字管理技术与城市治理需求精准对接

现代城市的发展离不开科技的进步,智慧公厕作为城市治理的重要方面之一,正逐渐受到越来越多的重视。智慧公厕以数字技术为中心,融合数字管理技术与城市治理需求精准对接,为城市居民提供更加方便、舒适的公共卫生设施。本文将以智慧…

2023年7月嵌入式项目开发专题总汇

一、前言 当前文章总结了28个基于不同单片机(51单片机和STM32)设计的软件和硬件项目。这些项目涵盖了计算器、手机、酒精检测仪、环境温度与湿度检测设备、考勤系统、门禁照相机、人体健康检测仪、数码相册、太阳能热水器、数显热水器和智能空调等多个领…

高性能计算环境下的深度学习异构集群建设与优化实践

★深度学习;模式识别;图像处理;人工智能建模;人工智能;深度学习算法;强化学习;神经网络;卷积神经网络;人工神经网络;VIBE算法;控制系统仿真&#…

用Redis做数据排名

1.背景 用Redis做数据缓存用的比较多,大家都能熟练使用String和Hash结构去存储数据,今天讲下如何使用ZSet来做数据排名。 假设场景是需要按天存储全国城市的得分数据,可以查询前十名的城市排名。 这个case可以使用传统关系型数据库做…

5-2 Pytorch中的模型层layers

深度学习模型一般由各种模型层组合而成。 torch.nn中内置了非常丰富的各种模型层。它们都属于nn.Module的子类,具备参数管理功能。 例如: nn.Linear, nn.Flatten, nn.Dropout, nn.BatchNorm2d, nn.Embedding nn.Conv2d,nn.AvgPool2d,nn.Conv1d,nn.ConvTr…

2023华为杯数学建模D题第三问-碳排放路径优化(能源消费结构调整的多目标优化模型构建详细过程+模型假设(可复制))

1.碳排放约束下(人为干预按时碳达峰与碳中和的基准情景)能源消费结构多目标优化模型构建 1.1基本假设 本文的模型设计主要基于以下几个基本假设: (1)能源消费结构调整的根本驱动要素,是对投资耗费的最小化…

uni-app图片保存到手机

uni.saveImageToPhotosAlbum(OBJECT) 官网地址uni.chooseImage(OBJECT) | uni-app官网 注意filePath不能是网络图片路径,如果我们是网络图片路径需要先下载文件资源到本地,然后再保存到相册 // 保存图片到手机 const saveImg () > {//wx.downloadF…

《计算机视觉中的多视图几何》笔记(10)

10 3D Reconstruction of Cameras and Structure 本章主要描述了如何利用2张图片来恢复相机的参数以及物体在三维空间中的形状。 文章目录 10 3D Reconstruction of Cameras and Structure10.1 Outline of reconstruction method10.2 Reconstruction ambiguity10.3 The proje…

【 Ubuntu】systemd服务创建、启用、状态查询、自启等

要在 Ubuntu 启动后执行一个守护脚本,您可以使用 Shell 脚本编写一个 systemd 服务单元。systemd 是 Ubuntu 中常用的服务管理工具,可以在系统启动时自动启动和管理服务。 下面是一个示例的守护脚本和 systemd 服务单元的步骤: 创建守护脚本…

机器学习第十课--提升树

一.Bagging与Boosting的区别 在上一章里我们学习了一个集成模型叫作随机森林,而且也了解到随机森林属于Bagging的成员。本节我们重点来学习一下另外一种集成模型叫作Boosting。首先回顾一下什么叫Bagging? 比如在随机森林里,针对于样本数据,…

实在智能入选中国信通院最新《高质量数字化转型产品及服务全景图》,领跑AI大模型核心领域

随着中国数字经济进入快速发展期,中国信通院于2021年正式发起“铸基计划-高质量数字化转型行动”,围绕企业数字化转型供需两侧引导行业数字化建设。近期,中国信通院发布了最新的2023《高质量数字化转型产品及服务全景图(8月份新增…

苹果电脑如何卸载录屏软件音频驱动?

当你不想用录屏软件,且卸载后音频驱动还在,那想把音频驱动卸载的话应该如何操作? 或者是您使用录屏软件录制的视频没声音,应该如何操作,是音频插件的问题吗?需要将音频驱动卸载再重新安装吗? 接下来&…

文心一言 VS 讯飞星火 VS chatgpt (99)-- 算法导论9.3 5题

五、用go语言,假设你已经有了一个最坏情况下是线性时间的用于求解中位数的“黑箱”子程序。设计一个能在线性时间内解决任意顺序统计量的选择问题算法。 文心一言: 为了在线性时间内解决任意顺序统计量的选择问题,我们可以使用一个基于快速…

【51单片机】7-LED点阵

1.LED点阵简介 1.什么是LED点阵 1.外观 2.作用 3.内部构造原理图 点阵的优势:就是88个IO口独立控制8*8个LED灯亮灭 2.如何驱动LED点阵--74HC595 2.1 单片机端口直接驱动 要驱动8*8的点阵需要2个IO端口,(16个IO口),…

【Verilog 教程】5.3Verilog带参数实例化

关键词: defparam,参数,例化,ram 当一个模块被另一个模块引用例化时,高层模块可以对低层模块的参数值进行改写。这样就允许在编译时将不同的参数传递给多个相同名字的模块,而不用单独为只有参数不同的多个模…

【RT】什么是对抗攻击 | 视觉跟踪

现在有机会接触一下针对深度学习神经网络的对抗攻击,并做整理如下🤔 对于CV攻防,其实去年12月组会听完就浏览过相关文章👉面向目标检测的对抗样本综述后门防御, NIPS2022 adversarial attack for tracking CVPR2021 | IoU Attack导…

JS的事件循环(Event Loop)

JS的事件循环 本文是我自己对事件循环的理解和总结,不会有太多的理论知识,已经有太多文章写过了,自己搜索下就能找到很多; 同时,文章中的观点仅是本人自己理解,比较白话,不用太较真啊&#xff0…

数字孪生在灌区信息中的应用

灌区信息是智慧水利的组成部分,对灌区现代化改造的支撑作用和地位尤为重要,对促进水利可持续发展有重要意义。灌区信息化系统主要对对灌区的水情、雨情、土壤墒情、气象等信息进行监测,对重点区域进行视频监控,同时对泵站、闸门进…

C++ VTK三维图像体积计算Qt

程序示例精选 C VTK三维图像体积计算Qt 如需安装运行环境或远程调试,见文章底部个人QQ名片,由专业技术人员远程协助! 前言 这篇博客针对《C VTK三维图像体积计算Qt》编写代码,代码整洁,规则,易读。 学习与…