verdi使用linux命令,verdi工具的使用
debussy(verdi之前的Debug工具)
verdi:若想用Verdi观察波形,需要在仿真时生成fsdb文件,而fsdb在vcs或者modelsim中的生成是通过两个系统调用$fsdbDumpfile $fsdbDumpvars来实现的。而这两个系统调用并不是Verilog中规定的,是Verdi以pli(Programming Language Interface)的方式实现的。这就需要让vcs编译时能找到相应的库。
例如:
其中波形文件有以下种类:
生成FSDB波形
使用verdi之前,应配置哪些环境变量(bash使用export,cshell使用setenv)
$VERDI_HOME/NOVAS_HOME(为设置PATH做准备)
$PATH(让系统能够找到verdi)
$LD_LIBRARY_PATH(让系统linux能够找到verdi需要的库文件)
$LD_LIBRARY_PATH目录库文件类似于Windows的dll,包括*.so(共享对象),*.a(静态库)等,库文件还需要*.tab(表格文件)来获取对应的信息。
linux命令
echo(sed):查询环境变量,如PATH
which:查询当前软件是否配置成功
uname:查询当前系统信息,如硬件平台
echo $PATH | sed ‘s/\:/\n/g’//全局使用\:替代\n
echo $LD_LIBRARY_PATH | sed ‘s/\:/\n/g’
which verdi
uname -i 获取硬件平台信息:如硬件平台64bit为x86_64/amd64,32bit平台为i386
两种方法:
(1)使用verilog系统函数
initial begin
$fsdbDumpfile("top_tb.fsdb");
$fsdbDumpvars(0,"tob_tb");
end
(2)使用Ucli/Tcl接口(生成fsdb波形)
global env
fsdbDumpfile "$env(demo_fifo).fsdb"
fsdbDumpvars 0 "top_tb"
run
Synopsys:VCS + Verdi
Cadence :irun + Verdi
Mentor :Questa + Verdi
com:
vcs -full64 \
-sverilog \
-debug_pp \ # 使能UCLI命令
-LDFLAGS \ # 传递参数给VCS的linker,与以下三行配合使用
-rdynamic \ # 指示需加载的动态库,如libsscore_vcs201209.so
-P ${VERDI_HOME}/share/PLI/VCS/${PLATFORM}/novas.tab \ # 加载表格文件
${VERDI_HOME}/share/PLI/VCS/${PLANTFORM}/pli.a \ # 加载静态库
-f ../${demo_name}/tb_top.f \
+vcs+lic+wait \
-l compile.log
sim:
./simv \
-ucli -i ../scripts/dump_fsdb_vcs.tcl \ # ucli的输入文件(-i)为tcl脚本
+fsdb+autoflush \ # 命令行参数autoflush,一边仿真一边dump波形,如果没有该参数,那么不会dump波形,需要在ucli命令run 100ns后键入fsdbDumpflush才会dump波形
-l sim.log
debug:
verdi \
-sv \ # 支持sv
-f ../${demo_name}/tb_top.f \ # 加载设计文件列表
-top tb_top \ # 指定设计顶层
-nologo # 关掉欢迎界面
//支持+incdir+xx 设置include文件目录
//+libext+.v 设置库文件后缀
//-v 设置可搜索设计的文件
//-y 设置可搜索设计的目录
global env # tcl脚本引用环境变量,Makefile中通过export定义
fsdbDumpfile "$env(demo_name).fsdb" # 设置波形文件名,受环境变量env(demo_name)控制 # demo_name在makefile中使用export demo_name=demo_fifo
fsdbDumpvars 0 "tb_top" # 设置波形的顶层和层次,表示将tb_top作为顶层,Dump所有层次
run # 设置完dump信息,启动仿真(此时仿真器被ucli控制) 可以run 100ns会在仿真100ns的时候停下来下来
verdi使用linux命令,verdi工具的使用相关推荐
- linux 命令行 过滤,利用linux命令行工具进行文本行过滤
在日常工作中会遇到需要筛选过滤要查看的日志等文本文件的任务,例如需要查看日志文件的最后几行等. 下面总结一下常见的对文本行过滤的方法. 常用命令行工具 接下来主要使用的是head,tail,sed和a ...
- 实用!五款新型 Linux 命令行工具
使用新的替代工具来改进旧的命令行工具. 作者 | Ricardo Gerardi 译者 | 弯月,责编 | 屠敏 出品 | CSDN(ID:CSDNnews) 以下为译文: 在Linux/Unix系统 ...
- linux下磁盘高级工具,Linux命令行工具-di
今天小编要跟大家分享的文章是关于Linux命令行工具-di.如果你是个Linux命令行用户,你肯定会使用df命令检查文件系统的磁盘使用情况.尽管df是一个受欢迎的命令,但仍然不能提供一些高级的功能,如 ...
- jq输出文本_如何用 Linux 命令行工具解析和格式化输出 JSON | Linux 中国
我们将使用 Linux 上的命令行工具解析并格式化打印 JSON.它对于在 shell 脚本中处理大型 JSON 数据或在 shell 脚本中处理 JSON 数据非常有用.-- Ostechnix J ...
- 局域网网络流量监控_18个监控网络带宽的Linux命令行工具
本文介绍了一些可以用来监控网络使用情况的Linux命令行工具.这些工具可以监控通过网络接口传输的数据,并测量目前哪些数据所传输的速度.入站流量和出站流量分开来显示.一些命令可以显示单个进程所使用的带宽 ...
- 学习linux的好助手-linux命令解释工具
有时候在听学习视频时,看到大佬输入没见过的linux命令行,就不知道什么意思. 现在可以通过在线工具Linux命令解释工具输入你的命令,就会告诉你什么意思,并且对每个参数进行了解释,简直是菜鸟的福音. ...
- linux服务器返回json,Linux 命令行工具解析和格式化输出 JSON的方法
JSON 是一种轻量级且与语言无关的数据存储格式,易于与大多数编程语言集成,也易于人类理解 -- 当然,如果格式正确的话.JSON 这个词代表 J ava S cript O bject N otat ...
- linux rm替代命令_5种基本Linux命令行工具的现代替代品
linux rm替代命令 在Linux / Unix系统的日常使用中,我们使用许多命令行工具来完成工作并理解和管理我们的系统,例如du用来监视磁盘利用率, top用来显示系统资源. 其中一些工具已经存 ...
- [Linux] 命令行工具
1. 基本工具 1.1 特殊字符 shell的特殊字符有:&.;.|.*.?.'.".`.[.].(.).$.<.>.{.}.^.#./.\.%.!.~.+.要将这些具有 ...
最新文章
- python猜年龄代码_python入门教程NO.7用python来写一个猜数字游戏
- EDM HTML编写建议和规范
- 关于错误	1	error C4996: 'getch': The POSIX name for this item is deprecated.问题解决方式
- 网站升级到新服务器,第一次折腾站点升级HTTPS 虽胜尤败
- 程序员进阶架构师路线
- 阿呆做网站(1)--基本功能
- ML/DL-复习笔记【十】- 分组卷积和深度可分离卷积的区别
- 如何让php支持mysql的,怎么让php支持MySql
- 数字证书是什么,主要应用于哪些方面?
- java换行(java换行代码)
- java 时间英文格式_Java英文日期格式解析
- c语言网页版在线编译器_简单好用的网页版在线公式编辑器
- unity 半透明效果shader
- Java里氏转换_里氏代换原则、依赖倒转原则 | 学步园
- 刷机总是出现missed hello_金立-GN3002L 无法开机,怎么能解锁刷机呢?
- 【苹果相册】苹果推信群发准入ProvisioningProfile还分为开发和分发
- IP根域名服务器以及域名服务器对国家安全的真正意义。
- Mxnet训练自己的数据集并测试
- 电子邮箱免费申请注册教程,公司企业邮箱怎么开通注册?
- [SAP ABAP开发技术总结]屏幕跳转