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. Flash片头loading与MovieClipLoader

    //创建侦听器,侦听是否加载完成 var loader = new MovieClipLoader(); loader.onLoadComplete = function(obj) { if(obj ...

  2. git 将本地仓库提交至github

    -or create a new repository on the command line touch README.md git init git add README.md git commi ...

  3. es6学习笔记入门总结

    1.let const block 作用域 let 代替var 来声明块级作用域,没有变量提升,只在块内有作用 const 可以声明一个常量,类似于指针,指向某一个引用,这个常量并非一成不变的,但是不 ...

  4. VSCode代码修改后跑起来没反应,打开本地文件,代码没变化

    两种解决办法: 首先:修改VSCode默认配置文件,点击左下角设置标志图 -> 设置,出来了设置相关的东西,搜索 files.autoSave 第一种:把"files.autoSave ...

  5. 转: js实现全角半角检测的方法

    //全角半角校验 function issbccase(strTmp) { for (var i=0; i<strTmp.length; i++) { if (strTmp.charCodeAt ...

  6. MySQL Community Server 8.0.11下载与安装配置

    一.下载 1.选择合适的安装包,我在这里下载的是目前最新的安装包,8.0.11,而且我选择下载的是解压版的,安装版的话,安装会比较麻烦. MySQL Community Server下载链接:http ...

  7. Servlet----------通过 HttpServlet 开发Servlet

    通过继承HttpServlet抽象类,功能更强大. 通过HttpServlet方法开发Servlet需要重写doGet和doPost方法.这是目前用的最多的一种方法. 如:   class MyHtt ...

  8. QT4.5.3移植到hi3536

    QT版本:qt-embedded-linux-opensource-src-4.5.31.添加交叉编译(1)copy qt-embedded-linux-opensource-src-4.5.3/mk ...

  9. coocs2d-html5在使用cocoseditor时调用设备的accelerometer来使用重力感应

    在使用大牛touchsnow开发的插件cocoseditor开发游戏时遇到了一些问题,然后就试着解决.近期想试下coocs2d-html5是否能使用重力感应,发现是能够的.只是这个仅仅能在移动真机上測 ...

  10. PixelRatio使用

    export default class PixelRatioView extends Component { render() { return ( <View style={styles.c ...