VCS的常用仿真命令(持续更新)

书接上回:

VCS的常用编译命令

                                                                                 仿真命令

1. 执行run过程

命令:Simv

结果:此时会生成一个ucli.key文件。该文件的作用是:如果事先在该文件里写好了ucli命令,仿真过程中会读取这些ucli命令执行相关的操作,而不用重新编译。

2. run log存储到文件里

命令:-l 文件名

结果:生成run.log:

3. 指定种子

命令:+seed=指定的种子

结果:在run.log里就可以看到种子号

4. 生成波形

在sv文件里写如下代码:

$fsdbDumpvars();

此时还不能直接生成fsdb文件,会报语法错误:

原因和解决办法见:vcs常用编译命令的第三点

编译过后,结果:会产生两个新的文件:navas_dump.log/navas.fsdb

navas_dump.log:记录产生波形过程的日志文件

navas.fsdb:产生波形的二进制文件

5. 打开波形

命令:verdi ***.fsdb

执行该命令后,会产生一个文件:novas.conf和一个文件夹:verdiLog

novas.conf:用于存储layout信息,一般不用,打开verdi时,verdi会读取该文件里的配置信息。因此,第一次打开verdi时,因为通常该文件不存在所以会报一个warning显示没有该文件

第一次打开verdi后,会生成一个空文件novas.conf,第二次打开verdi时,就不会再报该warning了。

verdiLog:里面存放了一些verdi的编译、执行等信息

打开波形的界面如下:

可以看到波形已经成功加载,但是波形对应的rtl代码并没有加载进来,此时需要参照第6步骤。

6. Verdi加载rtl代码

加载正确的rtl代码前提是要给verdi提供simv.daidir/kdb.elab++文件夹

具体参照vcs常用编译命令第4个步骤

生成simv.daidir/kdb.elab++文件夹后,再次按照3.2的命令打开verdi,并加上-ssf命令,verdi就会自动去fsdb文件里去解析simv.daidir/kdb.elab++文件夹,就会成功加载rtl代码:

7. 加载一个.v的verilog文件

命令:-v 文件名.v

8. 指定uvm库

命令:-ntb_opts  uvm-1.1/uvm-1.2

该命令加入前,如果想要使用uvm库里定义的代码,如uvm_sequence,就会报错:

加入该命令后,编译过程可以看到很明显编译了uvm库文件:

但是还是有编译错误。这是因为uvm库文件打包成了pkg,使用时需要在使用的地方import进来,如下:

此时再编译就不会报错,uvm库里的文件也可以使用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值