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并打开的更多相关文章

  1. 使用Verdi理解RTL design

    使用Verdi理解RTL design 接触到一些RTL代码,在阅读与深入理解的过程中的一些思考记录 协议与设计框图 认真反复阅读理解相关协议与设计框图,一个design的设计文档中,设计框图展示了这 ...

  2. 如何通过编译Linux内核打开IPVS(LVS)的debug模式

    前言 为了定位keepalived VIP的问题, 一步一步定位到IPVS, IPVS默认是没有打开Debug模式的, 若需要打开Debug模式需要重新编译IPVS模块加载后才行, 最好的方式当然是仅 ...

  3. 解决Java Web项目中Word、Excel等二进制文件编译后无法打开的问题

    今天写新项目的时候遇到一个问题,在resources目录下存储的.xlsx文件,编译过后会增大几kb,无法打开. Google了一番之后,发现问题源自于maven-resources-plugin这个 ...

  4. 在 Sublime Text 3 中配置编译和运行 Java 程序

    参考网址:http://www.open-open.com/lib/view/open1388105023765.html 1. 设置 java 的 PATH 环境变量 2. 创建批处理或 Shell ...

  5. 如何在Windows上从源码编译Chromium (CEF3) 加入mp3支持

    一.什么是CEF CEF即Chromium Embeded Framework,由谷歌的开源浏览器项目Chromium扩展而来,可方便地嵌入其它程序中以得到浏览器功能. CEF包括CEF1和CEF3两 ...

  6. apk 反编译

    http://blog.csdn.net/vipzjyno1/article/details/21039349/ [置顶] Android APK反编译就这么简单 详解(附图) 标签: android ...

  7. apk反编译

    在学习Android开发的过程你,你往往会去借鉴别人的应用是怎么开发的,那些漂亮的动画和精致的布局可能会让你爱不释手,作为一个开发者,你可能会很想知道这些效果界面是怎么去实现的,这时,你便可以对改应用 ...

  8. JAVA_Android APK反编译就这么简单 详解(附图)

    在学习Android开发的过程你,你往往会去借鉴别人的应用是怎么开发的,那些漂亮的动画和精致的布局可能会让你爱不释手,作为一个开发者,你可能会很想知道这些效果界面是怎么去实现的,这时,你便可以对改应用 ...

  9. Hadoop2.x的Eclipse插件编译与安装

    Eclipse的Hadoop插件在开发hadoop应用程序中可以提供一些很方便的操作,可以直接Eclipse中浏览HDFS上的文件,可以直接新建选择MapReduce项目,项目自动包含所有需要的had ...

随机推荐

  1. mysql中建立索引的一些原则

    1.先存数据,再建索引 有索引的好处是搜索比较快但是在有索引的前提下进行插入.更新操作会很慢 2.不要对规模小的数据表建立索引,数据量超过300的表应该有索引:对于规模小的数据表建立索引 不仅不会提高 ...

  2. iOS之分类(category)

    1.分类(category)的作用 1.1作用:可以在不修改原来类的基础上,为一个类扩展方法.1.2最主要的用法:给系统自带的类扩展方法. 2.分类中能写点啥? 2.1分类中只能添加“方法”,不能增加 ...

  3. [linux] 对一个虚拟机的研究

    今天拿到了一个vmware的虚拟机硬盘镜像,是其他公司的演示产品. 启动之后是带着ubuntu字样的grub.进入系统之后也不是shell,而是一个定制的命令行.所以如果想了解细节的话,只能单独挂硬盘 ...

  4. Numpy 机器学习三剑客之Numpy

    NumPy是Python语言的一个扩充程序库.支持高级大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库.Numpy内部解除了Python的PIL(全局解释器锁),运算效率极好,是大量机 ...

  5. 洛谷P4562 [JXOI2018]游戏 数论

    正解:数论 解题报告: 传送门! 首先考虑怎么样的数可能出现在t(i)那个位置上?显然是[l,r]中所有无法被表示出来的数(就约数不在[l,r]内的数嘛QwQ 所以可以先把这些数筛出来 具体怎么筛的话 ...

  6. 【Python爬虫】PyQuery解析库

    PyQuery解析库 阅读目录 初始化 基本CSS选择器 查找元素 遍历 获取信息 DOM操作 伪类选择器 PyQuery 是 Python 仿照 jQuery 的严格实现.语法与 jQuery 几乎 ...

  7. 重读《深入理解Java虚拟机》四、虚拟机如何加载Class文件

    1.Java语言的特性 Java代码经过编译器编译成Class文件(字节码)后,就需要虚拟机将其加载到内存里面执行字节码所定义的代码实现程序开发设定的功能. Java语言中类型的加载.连接(验证.准备 ...

  8. Postfix 邮件服务器搭建

    搭建服务环境: Centos 6 配置域名hosts: mail.demonC6.com 1.清理系统自带的邮件软件 # rpm -qa | grep sendmail* # rpm -e sendm ...

  9. Redis所支持的数据结构

    1.启动Redis2.Redis所支持的数据结构 2.1.Redis常用操作 2.2.String类型及操作 2.3.Hash类型及操作 2.4.List类型及操作 2.5.Set类型及操作 2.6. ...

  10. env:bash \r解决

    1.brew install dos2unix2.find . -type f -exec dos2unix {} \;