vivado 仿真时长
在 Vivado 仿真中设置仿真时长主要有两种方法:
-
在 Testbench 中使用
$finish或$stop语句:- 这是最常用和最推荐的方法,直接在 Verilog 或 VHDL 的测试平台代码中控制何时结束仿真。
$finish;: 立即终止仿真并退出仿真器。$stop;: 暂停仿真。在 Vivado Simulator GUI 中,会暂停并保持波形窗口打开,你可以查看波形、设置新断点或运行命令,然后选择继续运行。在 Tcl 控制台运行仿真时,$stop会暂停并返回 Tcl 提示符,输入run可以继续。- 示例:
initial begin // ... 初始化、激励生成 ... #1000; // 等待 1000 个时间单位 (ns/ps) $finish; // 运行 1000ns (或根据时间精度) 后结束仿真 // 或者用 $stop; 暂停在 1000ns end - 优先级: 这种方式优先级最高,仿真器会在执行到
$finish或$stop时立即停止。
-
在 Vivado GUI 中设置运行时限制:
- 在运行仿真之前,可以在仿真设置中指定一个最大运行时间。
- 步骤:
- 在 Flow Navigator -> SIMULATION 下右键点击
Run Simulation。 - 选择
Simulation Settings...。 - 在弹出的窗口中,找到
Simulation部分。 - 在
xsim.simulate.runtime字段中输入你想要仿真的最大时间(包括单位)。例如:1000ns,10us,1ms。 - 点击
OK保存设置。 - 运行仿真 (
Run Simulation->Run Behavioral Simulation)。
- 在 Flow Navigator -> SIMULATION 下右键点击
- 说明:
- 如果 Testbench 中没有
$finish或$stop,仿真会运行到这个设定的最大时间后自动停止。 - 重要:如果在 Testbench 中使用了
$finish或$stop,它们会覆盖这个设置。仿真会在遇到$finish/$stop时停止,而不是等到设置的最大时间。 - 如果在最大时间到达之前仿真遇到了
$finish,仿真会提前结束。
- 如果 Testbench 中没有
如何查看当前的仿真时间?
- 在 Vivado Simulator 的波形窗口中,最顶部的时间轴标尺会显示当前的时间位置。
- 在 Tcl 控制台 (Tcl Console) 中,可以使用命令
current_time来打印当前的仿真时间。
注意事项:
$stop与 GUI 交互:$stop在 GUI 模式下非常有用,它允许你在特定时间点暂停检查波形或调试。在批处理脚本中更常用$finish。- 缺省行为: 如果你既没有在 Testbench 中使用
$finish/$stop,也没有在设置中指定xsim.simulate.runtime,Vivado Simulator 默认会运行 1000ns (1微秒)。如果在这个时间段内没有遇到$finish/$stop,仿真会在 1000ns 后自动结束。 - 波形文件 (
.wdb): 默认情况下,仿真结束时生成的波形文件 (.wdb) 只包含到你设置的仿真时长(或实际结束点)之前的数据。如果你在波形窗口手动放大查看更长时间范围,会发现波形是缺失的。这意味着xsim.simulate.runtime不仅设置停止时间,也影响波形记录的长度。 要记录更长时间的波形,必须设置足够大的xsim.simulate.runtime或使用$finish在 Testbench 中结束(此时波形记录到$finish时刻)。 - 命令行方式: 使用
launch_simulation命令启动仿真时,可以在 Tcl 中通过-runtime选项设置最大仿真时间(等效于 GUI 中的设置):launch_simulation -runtime {1000ns} - 仿真崩溃: 如果仿真因为设计错误(如组合逻辑环路、驱动冲突等)在到达设定的时长或
$finish之前就崩溃了,仿真会异常终止。
总结:
- 首选方法: 在 Testbench 中使用
$finish或$stop精准控制仿真结束点。这是最灵活、最可靠的方式。 - 备用/补充方法: 在 Vivado GUI 的设置 (
xsim.simulate.runtime) 或命令行 (-runtime) 中设置一个安全的最大时间限制,防止 Testbench 遗漏$finish导致仿真无限运行(消耗资源)。 - 默认行为: 没有任何设置时,仿真运行 1000ns。
- 波形记录: 记录在波形文件中的时长受
xsim.simulate.runtime设置或$finish时刻的控制。
根据你的需求和仿真控制精度,选择合适的方法设置仿真时长。对于复杂的测试,在 Testbench 中使用 $finish 通常是必须的。
vivado仿真时GSR信号的影响
利用vivado进行设计xilinx FPGA时,写完设计代码和仿真代码后,点击run simulation(启动modelsim进行仿真)。
2025-08-30 14:22:17
Vivado Design Suite用户指南:逻辑仿真
电子发烧友网站提供《Vivado Design Suite用户指南:逻辑仿真.pdf》资料免费下载
资料下载
佚名
2025-01-15 15:25:58
什么是Vivado?资料下载
电子发烧友网为你提供什么是Vivado?资料下载的电子资料下载,更有其他相关的电路图、源代码、课件教程、中文资料、英文资料、参考设计、用户指南、解决方案等资料,希望可以帮助到广大的电子工程师们。
资料下载
h1654155957.9921
2021-04-07 08:51:46
使用定时器控制LED的亮灭时长keil程序和Protues仿真资料免费下载
本文档的主要内容详细介绍的是使用定时器控制LED的亮灭时长keil程序和Protues仿真资料免费下载。
资料下载
aaahahaha
2020-05-28 08:00:00
SpinalHDL运行VCS+Vivado相关仿真
本篇文章来源于微信群中的网友,分享下在SpinalHDL里如何丝滑的运行VCS跑Vivado相关仿真。自此仿真设计一体化不是问题。
2022-08-10 09:15:17
Vivado调用Questa Sim或ModelSim仿真小技巧
Vivado调用Questa Sim或ModelSim仿真中存在的一些自动化问题的解决方案。 Vivado调用Questa Sim
2021-09-02 10:12:06
FPGA开发Vivado的仿真设计案例分析
仿真功能概述 仿真FPGA开发中常用的功能,通过给设计注入激励和观察输出结果,验证设计的功能性。Vivado设计套件支持如下
2020-12-31 11:44:00
使用Vivado Simulator运行功能和时序仿真案例
Vivado Simulator基本操作 Vivado Simulator是一款硬件描述语言事件驱动的仿真器,支持功能
2020-12-31 10:02:10
换一换
- 如何分清usb-c和type-c的区别
- 中国芯片现状怎样?芯片发展分析
- vga接口接线图及vga接口定义
- 芯片的工作原理是什么?
- 华为harmonyos是什么意思,看懂鸿蒙OS系统!
- 什么是蓝牙?它的主要作用是什么?
- ssd是什么意思
- 汽车电子包含哪些领域?
- TWS蓝牙耳机是什么意思?你真的了解吗
- 什么是单片机?有什么用?
- 升压电路图汇总解析
- plc的工作原理是什么?
- 再次免费公开一肖一吗
- 充电桩一般是如何收费的?有哪些收费标准?
- ADC是什么?高精度ADC是什么意思?
- dtmb信号覆盖城市查询
- EDA是什么?有什么作用?
- 中科院研发成功2nm光刻机
- 苹果手机哪几个支持无线充电的?
- type-c四根线接法图解
- 华为芯片为什么受制于美国?
- 怎样挑选路由器?
- 元宇宙概念股龙头一览
- 锂电池和铅酸电池哪个好?
- 如何进行编码器的正确接线?接线方法介绍
- 什么是场效应管?它的作用是什么?
- 虚短与虚断的概念介绍及区别
- 晶振的作用是什么?
- 大疆无人机的价格贵吗?大约在什么价位?
- amoled屏幕和oled区别
- 苹果nfc功能怎么复制门禁卡
- 单片机和嵌入式的区别是什么
- 复位电路的原理及作用
- BLDC电机技术分析
- dsp是什么意思?有什么作用?
- 苹果无线充电器怎么使用?
- iphone13promax电池容量是多少毫安
- 芯片的组成材料有什么
- 特斯拉充电桩充电是如何收费的?收费标准是什么?
- 直流电机驱动电路及原理图
- 传感器常见类型有哪些?
- 自举电路图
- 苹果笔记本macbookpro18款与19款区别
- 通讯隔离作用
- 新斯的指纹芯片供哪些客户
- 伺服电机是如何进行工作的?它的原理是什么?
- 无人机价钱多少?为什么说无人机烧钱?
- 以太网VPN技术概述
- 手机nfc功能打开好还是关闭好
- 十大公认音质好的无线蓝牙耳机