VCS的常用编译命令(持续更新)

vcs所有编译命令都是接在字符“vcs”后面,表示调用vcs工具。

1. 编译sv文件

vcs **.sv

此时可能会报语法错误,因为vcs默认只识别verilog语法,system verilog语法无法识别,编译会报错。解决办法见2。

2. 支持system verilog语法

后面加上-sverilog

结果:此时在当前目录下会生成一个文件simv和两个文件夹:csrc/simv.daidir

Simv:这是compile和link后生成的二进制可执行文件

Csrc:这是增量编译文件夹

Simv.daidir:这是编译产生的中间数据,当使用verdi打开波形时可以直接导入该文件夹而省去了手动导入filelist重新编译的步骤,提升效率。

3. 支持生成波形

如果采用调用系统函数$fsdbDumpvars的方式产生波形。由于$fsdbDumpvars这个系统函数并不属于system verilog的系统函数,而是vcs提供的PLI回调函数,用于debug手段,在vcs手册可以查找到相关的内容。解决办法是还需要在vcs编译命令里加上-debug_access+cbk或者-debug_access+all

-debug_access+cbk:该选项允许对sv的字符串类型的信号以及对nets/reg/var类型的PLI回调函数进行dump,但是不能对class里定义的动态nets/regs/vars的PLI回调函数进行dump,此时还需要+cbkd,因此保险起见,还是建议使用-debug_access+all使能所有选项。

4. 生成kdb.elab++文件夹

kdb.elab++文件夹:这是vcs提供给verdi的文件,省去verdi的编译时间。打开verdi时,只要指定了该文件夹,Verdi就能加载rtl代码。

该文件夹的生成需要在编译命令里加上-kdb命令:

编译之后,simv.daidir文件夹下就会多出一个kdb.elab++文件夹和elabcomLog文件夹:

5. 编译log存储到文件里

命令:-l 文件名

编译过后,生成文件cmp.log:

5. 指定timescale

命令:-timescale=时间单位/时间精度

在没有添加该命令前,vcs默认的时间单位/精度是1s/1s。

添加了该命令后,作用就是给环境设置了一个默认的时间单位/精度。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值