当前位置: 首页 > article >正文

vcs仿真产生fsdb波形的两种方式

目录

方法一: 使用verilog自带的系统函数

方法二: 使用UCLI command 

2.1 需要了解什么是vcs的ucli,怎么使用ucli? 

2.2 使用ucli dump波形的方法


使用vcs仿真产生fsdb波形有两种方式,本文参考《vcs user guide 2021》 page 1960  Dumping FSDB File for Various Flows

方法一: 使用verilog自带的系统函数

使用$fsdbDumpfile指定生成的fsdb的名称 

使用$fsdbDumpvars指定dump的hierarchy和层级,0表示该层次及其以下所有的都dump,1表示只dump该层级,2表示dump该层级及其下面一层。

如果不指定fsdb的名字,默认生成的名字为novas.fsdb 

方法二: 使用UCLI command(推荐使用)

2.1 需要了解什么是vcs的ucli,怎么使用ucli? 

这里参考《vcs user guide 2021》 page 355  Using UCLI 

使用-ucli命令可以实现如下的事情: 

  • Control simulation
  • Dump the FSDB and VPD files
  • Save/Restore the simulation state
  • Force/Release a signal
  • Debug the design using breakpoints, scope/thread information, and built-in macros

使用-ucli的前提是,在vcs编译时,添加-debug_access+r 的选项,当vcs添加编译选项-ucli时,将会进入和vcs的交互界面,

% simv -ucli 
ucli% 

接下来执行ucli命令有三种方式

  • 一行一行输入tcl命令,所有的ucli的cmd都是符合tcl语法的
  • 多行tcl命令可以写在一个文件中执行,source  xxx_cmd.file 
  • 直接在simv命令行加入选项simv -ucli -do xxx_cmd.file 

2.2 使用ucli dump波形的方法

有两种命令方式,这里推荐右边这种方式 

fsdbDumpfile指定波形名字,fsdbDumpvars指定dump层次和层级

我们提前准备一个dump fsdb的tcl文件,如果simple_wave.tcl 

fsdbAutoSwitchDumpfile 20000 debussy.fsdb 10
fsdbDumpvars 2 Mtop
fsdbDumpvars 2 Mtop.u_aaa_top
fsdbDumpvars 0 Mtop.u_aaa_top.u_bbb
fsdbDumpvars 1 Mtop.u_aaa_top.u_bbb.u_ccc.u_ddd

在simv仿真时,使用命令行

simv -ucli -do simple_wave.tcl

既可dump fsdb波形,此外tcl中可以控制dump波形的时间等等,例子之后添加

http://www.lryc.cn/news/2402667.html

相关文章:

  • 每日算法 -【Swift 算法】三数之和
  • Go语言底层(三): sync 锁 与 对象池
  • 登高架设作业操作证考试:理论题库高频考点有哪些?
  • 2025年06月06日Github流行趋势
  • 华为云CentOS配置在线yum源,连接公网后,逐步复制粘贴,看好自己对应的版本即可,【新手必看】
  • http头部注入攻击
  • 三类 Telegram 账号的风控差异分析与使用建议
  • Matlab | matlab中的点云处理详解
  • 【机试题解法笔记】寻找最大价值的矿堆
  • 动态规划 熟悉30题 ---上
  • 嵌入式学习笔记- freeRTOS 带FromISR后缀的函数
  • Linux系统:ELF文件的定义与加载以及动静态链接
  • 迷宫与陷阱--bfs+回路+剪枝
  • 【国产化适配】如何选择高效合规的安全数据交换系统?
  • 基于深度学习的裂缝检测与分割研究方向的 数据集介绍
  • 【Prompt实战】国际翻译小组
  • 简化复杂系统的优雅之道:深入解析 Java 外观模式
  • 设计模式杂谈-模板设计模式
  • LangChain【8】之工具包深度解析:从基础使用到高级实践
  • C#入门学习笔记 #6(字段、属性、索引器、常量)
  • 广目软件GM DC Monitor
  • 每日八股文6.6
  • 动静态库的使用(Linux下)
  • PostgreSQL17 编译安装+相关问题解决
  • FFMPEG 提取视频中指定起始时间及结束时间的视频,给出ffmpeg 命令
  • React 第五十六节 Router 中useSubmit的使用详解及注意事项
  • 华为云学堂-云原生开发者认证课程列表
  • Vue.js 组件:深入理解与实践
  • 什么是强化学习:设置奖励函数最为loss, 监督学习:标签准确率作为loss
  • 理解网络协议