如何expanded time来观察信号到来的先后顺序?(仿真工具使用技巧)【Modesim/Questasim】

简介: 如何expanded time来观察信号到来的先后顺序?(仿真工具使用技巧)【Modesim/Questasim】

一、写在前面


Modesim/Questasim是Mentor公司用来仿真VHDL/Verilog/Systemverilog的EDA工具,因其可以运行在Windows系统下,同时与各类FPGA的开发平台有较好的适配,所以是很多数字IC或FPGA初学者第一次接触到的仿真工具,但是简体中文互联网上对Modesim/Questasim的使用技巧的归类与整理不够详细,也不够准确,因此创作本前缀为【Modesim/Questasim】的系列文章,对此工具的使用技巧进行整理与归纳总结。

当然modesim/Questasim更多的是提供给FPGA/数字IC领域初学者的仿真工具,对于IC设计来说,真正工作环境使用到的更多的是VCS,也希望有志于从事数字IC领域工作的人员尽早地将环境转移到linux下的VCS上去进行熟悉


二、如何使用delta cycle来观察信号到来的先后顺序?


2.1 案例来源

源码和仿真文件来自【数字IC手撕代码】Verilog自动售卖饮料机|题目|原理|设计|仿真

这是一个有关状态机的设计文件,假如在输入端投币,那么输出端根据状态机的变化会吐出找零或硬币。


2.2 正常对于前仿,组合逻辑无延时,信号统一在上升沿发生改变

我们可以发现,不管信号的尺度多小,饮料信号、找零信号和状态机变化的信号都是在同一个上升沿发生改变,这与实际电路不符,也不利于我们debug和trace信号变化的信后顺序。

5f87906c3adc4555a8c6b4c38c64005e.png


2.3 点击以下的图标以将time expanded

2eb9ee9b95ff4d60b990b1be94a5352c.png


2.4 我们可以发现信号实际的先后变化关系

即clk是最先变化的,引起了state的变化,最终使money信号和drink信号发生改变的先后关系。

image.png


三、 其他Modesim/Questasim使用技巧


如何在仿真窗口查看信号频率

如何设置“tab”键缩进数量

如何去除仿真时的信号前缀

如何设置一个清爽的仿真窗口

如何使用delta cycle来观察相同边沿的先后顺序

如何使用Modesim查看状态机状态跳转

如何用命令行的形式进行仿真及do脚本的使用

相关文章
ZYNQ-AXI总线的信号接口要求以及时序关系
ZYNQ-AXI总线的信号接口要求以及时序关系
1954 0
ZYNQ-AXI总线的信号接口要求以及时序关系
|
数据可视化 NoSQL 数据库
Neo4j和Nebula的相同点、不同点、如何进行选择
【8月更文挑战第14天】Neo4j和Nebula的相同点、不同点、如何进行选择
2077 1
|
JSON 供应链 搜索推荐
淘宝APP分类API接口:开发、运用与收益全解析
淘宝APP作为国内领先的购物平台,拥有丰富的商品资源和庞大的用户群体。分类API接口是实现商品分类管理、查询及个性化推荐的关键工具。通过开发和使用该接口,商家可以构建分类树、进行商品查询与搜索、提供个性化推荐,从而提高销售额、增加商品曝光、提升用户体验并降低运营成本。此外,它还能帮助拓展业务范围,满足用户的多样化需求,推动电商业务的发展和创新。
436 5
|
数据采集 测试技术 API
python爬虫之app爬取-微信朋友圈
搭建appium环境,appium基本使用,API操作等等
699 0
|
前端开发 JavaScript Java
Reactive 编程-Vert.x
Reactive 编程-Vert.x
305 4
|
芯片 异构计算
【FPGA】高云FPGA之IP核的使用->PLL锁相环(二)
【FPGA】高云FPGA之IP核的使用->PLL锁相环
487 1
|
数据可视化 Linux 异构计算
如何自动生成设计文件的状态机跳转图(仿真工具使用技巧)【Modesim/Questasim】
如何自动生成设计文件的状态机跳转图(仿真工具使用技巧)【Modesim/Questasim】
如何自动生成设计文件的状态机跳转图(仿真工具使用技巧)【Modesim/Questasim】
|
芯片 异构计算
【FPGA】高云FPGA之IP核的使用->PLL锁相环(一)
【FPGA】高云FPGA之IP核的使用->PLL锁相环
1129 0
|
存储 C++
[C++/PTA] 矩阵的乘法运算
[C++/PTA] 矩阵的乘法运算
287 0
|
关系型数据库
DB2 SQLCODE=-803,SQLSTATE=23505,SQLERROR=1
DB2 SQLCODE=-803,SQLSTATE=23505,SQLERROR=1
460 0