西洲渡

一只还没迈入IC领域的小菜鸡

VCS在虚拟机中的安装和使用

软件列表

需要自己准备

  • vmware15.05:

链接:https://pan.baidu.com/s/1It1q_xRejsTHk-G8XZvuog 提取码:ekg6

  • centos 7:

链接:https://pan.baidu.com/s/1rQ8Y-wtNBBdrzK5kO_PQYA 提取码:4scd

  • Synopsys tools集合(需要自己安装):

链接:https://pan.baidu.com/s/1hfljQJgT4PsIEGgSSA37OA 提取码:cpy5

安装好的EDA环境,解压可以直接使用
解压后,使用vmware打开启动,选择“我已移动”,有问题可以联系我。
链接:https://pan.baidu.com/s/1enBg_oE8qw9EhU1G9M1qdQ  提取码:8bhi

  • 账户密码:2020
  • root密码:2020

License到2030年

Makefile文件的使用

因为VCS是使用命令行操作的,每次运行如果都挂那么多参数的话,调试起来十分不方便,于是便有了makefile,简单来说像是一个脚本,将常用的命令进行宏定义,可以简化很长的命令,在每次执行make命令的时候,都能够调用到相应的命令,在modlsim中也有相应的do文件编写,下面是使用vcs时候的一个makefile小例子

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.PHONY: com sim clean debug dve

OUTPUT = NF

VCS= vcs -f filelist.f \
-full64 \
-sverilog +v2k \
-debug_pp \
+vcd+vcdplus \
+plusarg_save \
-timescale=10ns/10ns \
-o ${OUTPUT} \
-l compile.log

SIM = ./${OUTPUT} +ntb_random_seed_automatic

com:
${VCS}

sim:
${SIM} &

dve:
dve -vpd inter.vpd

clean:
rm -rf ./csrc *.daidir *.log ${OUTPUT}* *.key *.h *.vpd ./DVEfiles ./stack.info.* *.vdb nocas.* simv* *.log *.tar.gz

debug: clean com

其中filelist文件是需要编译的文件路径集合

1
2
3
4
5
./router.v
./lab_01/test.sv
./lab_01/router_test_top.sv

//如果有被include的文件,千万不要写在这里面,因为会报错重复编译

使用VCS遇到的问题

  • 文件提前声明

    在编辑filelist.f时,如果文件中已经include 某个文件,就不需要再在列表中编译了,否则就会报错

1fbcfa7f117cfdf4538bba6933ce477.png

  • 动态类型的函数,静态结构体无法用于非阻塞赋值的左侧

    将引用结构体的函数去掉automatic 即可

image.png

参考文章

搭建属于自己的数字IC EDA环境(一):安装VMware15.5和centos7
搭建属于自己的数字IC EDA环境(二):搭建基本使用环境和工具
搭建属于自己的数字IC EDA环境(三):安装EDA工具(vcs2018、verdi2018等)IC工具以及运行第1个工程
搭建属于自己的数字IC EDA环境(四):EDA环境的补充说明以及解决一些小bug
搭建属于自己的数字IC EDA环境(五):搭建FPGA环境(vivado Tcl脚本自动化开发),业余IC设计流程与通路

VCS入门教程(一)
VCS入门教程(二)
VCS入门教程(三)
VCS入门教程(四)