Verdi如何编译design并打开
HDL Source文件的编译
针对Verilog文件的编译:
使用vericom工具,将verilog source文件写入一个run.f中,如:
system.v
pram.v
TopModule.v
对于include的文件,通过+incdir+引入文件夹。
-v +文件名,表示lib的design。
invoke方式:vericom -lib <libname> -f run.f
如果verilog source文件中,包含2001的一些结构,需要加-2001 option
可以选择加+verilog2001ext+.v+.v2k+的option来识别可能的verilog 2001的extension
如果design中包含多种文件,像verilog-95,verilog-2001,systemverilog,这时不推荐使用 -sv,-2001的option。
因为只有最后一个有效。
每个design file也可以单独列在vericom cmd line中。每次vericom都会将design增加编译到libname中。
所以需要保证libname不变。
如果libname对应的是一个logic library location,
在Verdi平台中被映射到physical location 如果没有libname被指定,design unit被编译到默认的library,work.lib++
在文件novas.rc中设置addr map
vericom -lib <libName> system.v pram.v TopModule.v
vericom -lib <libName> ALUB.v CCU.v
VHDL文件的编译: 在VHDL文件编译之前,必须添加library map到novas.rc文件中。
invoke方式:
vhdlcom -lib <libName> <vhdl_design_files>
vhdlcom -lib <libName> foo1.vhd foo2.vhd
vhdlcom -lib <libName> goo1.vhd goo2.vhd
如果没有libName被指定,默认编译到work.lib++
当design中有很多VHDL文件时,需要注意编译的顺序,vhdlcom提供了两个option -smartorder和-smartscript
SystemVerilog文件的编译:
使用vericom来invoke,
vericom -lib <libName> -sv -f run.f
使用+systemverilogext+sv来进行sv的扩展识别。
SystemVerilog Pragmas的编译,
必须是显示的调用-sv -sv_pragma来编译 vericom -lib <libName> -sv -sv_pragma -f run.f
对于VHDL和Verilog的混合编译,先用vhdlcom编译所有的VHDL文件,再用vericom编译所有的Verilog文件。
Verilog和SystemVerilog的混合编译,使用显示的文件名扩展来进行识别。run.f文件
system.v
pram.sv
ALUB.v2k
vericom -lib <libName> -f run.f +verilog2001ext+.v2k+ +systemverilogext+.sv+
或者分别编译:
vericom -f run_verilog_files.f
vericom -2001 -f run_v2k_files.f
vericom -sv -f run_sv_files.f
文件编译好之后,通过verdi -lib mylib -top mytop来打开verdi
也可以直接使用verdi来编译文件并打开,
Verilog文件:
verdi -f run.f +verilog2001ext+.v2k+
verdi -sv -f run.f verdi system.v ... alu.v -v lib.v -y ../special
VHDL文件:
verdi -vhdl -f run.f -top <TopDesign>
或者通过verdi打开gui之后,load design。
混合lib打开:
verdi -lib <VHDLlibName1> -lib <VHDLlibName2> -top <designTop>
打开verdi gui的env options
-envinfo,dump env variable的描述
-envmap,显示所有env variable的mapping情况
-sdfDelay[Min|Typ|Max],指定sdf反标的delay type
Sim options
+define+<macro>,用来定义宏,如果source code中也有定义,则被覆盖
+incdir+<directoryname>,指定search path
+libext+<extensionname>,指定verilog library的extension文件
-f <filename>.f,加载文件,其中包含source file和simulation option
-i,使能interactive debug mode
-ovm[-<version>],加载默认的OVM lib,如果-ovm和-ovmhome都被指定,则-ovm被忽略
默认加载的ovm版本-2.1.2
-ovmhome,指定ovm安装路径
-simOpt "<options>"/{<options>},指定仿真options
verdi -sv f.sv -simOpt "+vcs+lic+wait"
verdi -sv f.sv -simOpt {+vcs+lic+wait}
-simType <VCS|ModelSim|NC>,指定simulator
-uvm [-<version>],加载默认的UVM lib,如果-uvm和-uvmhome都指定的话,-uvm被忽略
-uvmhome <path>,指定UVM的安装路径
-v <filename>.v,在指定文件中的module,被当作library cell
-y <directoryname>,指定library cell
还可以设置的其他option,
Siloti Options
Behavior Analysis Options设置tools---preferences
Power Manager Options
-cpf1.0/cpf1.1/cpf_filename
-upf1.0/upf2.0/upf_filename
-lps_cpf cpf_filename
-lps_iso_off
-lps_off
-lps_rtn_off
-powerLib libFile
-powerModel NLP|MVSim|ModelSim|NCSim
nWave的gui的Invoke
-h|help,打印help信息
-nogui,在batch mode下运行
-ssf fastFile|dumpFile|fastFile list,直接打开.fsdb/.vf/.fsdb.gz/.vcd/.vcd.gz文件
-ssi,打开interactive mode
aasertEval,可以通过指定design和FSDB文件,在batch mode下计算assert
assertEval -sv dut.sv +define+sva -ssf dut.fsdb,默认设置下计算assert,保存结果到默认的文件中。
./assertEvalLog/evaluate_result.fsdb
Verdi如何编译design并打开的更多相关文章
- 使用Verdi理解RTL design
使用Verdi理解RTL design 接触到一些RTL代码,在阅读与深入理解的过程中的一些思考记录 协议与设计框图 认真反复阅读理解相关协议与设计框图,一个design的设计文档中,设计框图展示了这 ...
- 如何通过编译Linux内核打开IPVS(LVS)的debug模式
前言 为了定位keepalived VIP的问题, 一步一步定位到IPVS, IPVS默认是没有打开Debug模式的, 若需要打开Debug模式需要重新编译IPVS模块加载后才行, 最好的方式当然是仅 ...
- 解决Java Web项目中Word、Excel等二进制文件编译后无法打开的问题
今天写新项目的时候遇到一个问题,在resources目录下存储的.xlsx文件,编译过后会增大几kb,无法打开. Google了一番之后,发现问题源自于maven-resources-plugin这个 ...
- 在 Sublime Text 3 中配置编译和运行 Java 程序
参考网址:http://www.open-open.com/lib/view/open1388105023765.html 1. 设置 java 的 PATH 环境变量 2. 创建批处理或 Shell ...
- 如何在Windows上从源码编译Chromium (CEF3) 加入mp3支持
一.什么是CEF CEF即Chromium Embeded Framework,由谷歌的开源浏览器项目Chromium扩展而来,可方便地嵌入其它程序中以得到浏览器功能. CEF包括CEF1和CEF3两 ...
- apk 反编译
http://blog.csdn.net/vipzjyno1/article/details/21039349/ [置顶] Android APK反编译就这么简单 详解(附图) 标签: android ...
- apk反编译
在学习Android开发的过程你,你往往会去借鉴别人的应用是怎么开发的,那些漂亮的动画和精致的布局可能会让你爱不释手,作为一个开发者,你可能会很想知道这些效果界面是怎么去实现的,这时,你便可以对改应用 ...
- JAVA_Android APK反编译就这么简单 详解(附图)
在学习Android开发的过程你,你往往会去借鉴别人的应用是怎么开发的,那些漂亮的动画和精致的布局可能会让你爱不释手,作为一个开发者,你可能会很想知道这些效果界面是怎么去实现的,这时,你便可以对改应用 ...
- Hadoop2.x的Eclipse插件编译与安装
Eclipse的Hadoop插件在开发hadoop应用程序中可以提供一些很方便的操作,可以直接Eclipse中浏览HDFS上的文件,可以直接新建选择MapReduce项目,项目自动包含所有需要的had ...
随机推荐
- [daily][archlinux][shell][fish] 使用最炫酷的shell工具fish
用了好久的zsh, 才知道用那么多年的bash是多么的原始. 然而比zsh更好用的其实是fish, 但是不与bash兼容, 所以最终还是选择了zsh. 关于zsh的使用,配置方法, 可以翻前文查阅. ...
- 彻底卸载tv
1.卸载 2.C:\Program Files (x86),找到teamviewer选项,右击删除 3.开始--输入regedit,打开注册表,找到如下路径:HKEY_LOCAL_MACHINE\SO ...
- Python中生成器和迭代器的区别(代码在Python3.5下测试):
https://blog.csdn.net/u014745194/article/details/70176117 Python中生成器和迭代器的区别(代码在Python3.5下测试):Num01–& ...
- 查找->动态查找表->哈希表
文字描述 哈希表定义 在前面讨论的各种查找算法中,都是建立在“比较”的基础上.记录的关键字和记录在结构中的相对位置不存在确定的关系,查找的效率依赖于查找过程中所进行的比较次数.而理想的情况是希望不经过 ...
- 《linux 文本处理》- sed/awk
一:sed 行文本处理 基本概念 sed 用于处理单行文本 sed 命令本身不会修改源文件,只是处理文件"流"的内容. 如果需要修改源文件,请使用 -i 或者 重定向 文件. 使 ...
- 2018/04/25 基于 编译安装的 PHP7 安装 swoole 扩展
在上一篇文章我们知道了如何去编译安装一个自己需要的 PHP 版本. 2018/04/25 PHP7的编译安装 这里还没有完,我们还需要安装我们的扩展,才算完成今天的任务. -- 下载扩展 还是官网下载 ...
- 2017-2018-2 20165336 实验四《Android开发基础》实验报告
20165336 实验四 Android程序设计 一.实验报告封面 课程:Java程序设计 班级:1653班 姓名:康志强 学号:20165336 指导教师:娄嘉鹏 实验日期:2018年5月14日 实 ...
- push问题1
问题: $ git pushTo gitee.com:kekemuyu/xtpole.git ! [rejected] master -> master (fetch first)error: ...
- CF718C Sasha and Array 线段树+矩阵加速
正解:线段树 解题报告: 传送门! 首先这种斐波拉契,又到了1e9的范围,又是求和什么的,自然而然要想到矩阵加速昂 然后这里主要是考虑修改操作,ai+=x如果放到矩阵加速中是什么意思呢QAQ? 那不就 ...
- Python中Mock的示例(转)
原文:https://segmentfault.com/a/1190000008753754 一些常用的mock示例 先简单定义个类,方便举例: class Person: def __init__( ...