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 endendmodule第二步:vlog命令编译需要调用questasim的vlog命令把代码先编译过,命令如下:
vlib workvlog 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。
通用的结构化电池设计
抓取像素级别的信息流,事件视觉传感器带来哪些优势
汽车基本知识问答二
XKCON祥控粉尘浓度检测仪高精度检测
我国电信企业2018-2019年的互联网业务收入增长情况分析
Questasim与Visualizer的livesim仿真如何启动呢?
掘金大数据产业 中国企业能否实现弯道超车?
PCB传送机构介绍
CES 2018:速腾聚创再次亮出两项激光雷达领域突破性技术
中档信号分析仪FSV
基于ADSP-BF533的家庭安全系统设计策略
京东再增AI猛将,前亚马逊科学家薄列峰强势加盟
激光焊接机在焊接0.1mm镍铬合金的技术
iQOO Pro可以说是当之无愧的“性能怪兽”
锤子M1评测 一部合格的旗舰机
LED支架存在什么作用
光学变焦摄像机一般都可以用在哪些行业
OperaVR能够允许牙科患者通过Pico的VR头显不知不觉地完成牙医的诊疗
汽车连接器的结构设计与功能
变频器报过电流故障的原因研究