1、基础知识


编译流程:


-Mupdate :增量编译,作用是将需要修改的某个文件修改后重新编译,其.o文件再与其他文件相链接。
-R :编译后立马执行。
-gui :打开DVE的实时GUI。
-l :把编译过程中产生的一些信息写入日志文件中,便于日后调试、错误定位等。
-sverilog:表示支持SystemVerilog语言。
+v2k:编译支持Verilog 2001标准

1)厂商提供的工艺库调用
-v :找哪个工艺库文件
-y :从哪个路径搜索需要的工艺库文件或文件夹等
+libext+lib_ext:
+incdir+inc_dir:
2)-f :把多个文件整合到一个文件中
3)-o foo:修改默认生成的二进制执行文件,将原来的simv替换为foo文件
4)+define+<macro_name>=<value>:定义一个宏的值是多少




-s:从什么时候开始仿真,什么时候结束仿真
$plusargs():
-userswitch :怎么动态的从键盘或者脚本中接收参数。
-l logfile :将真个编译仿真过程中产生的参数等等信息全部写入文件中,工程中经常使用。通常是通过logfile文件+wave文件结合完成功能验证。
仿真案例:

怎么调用一个库?实例:调用软件自带的DesignWare Library这个库

这个文件存在于VCS的安装目录中,是自带的库,其内部是一些RTL级别的代码,与厂商等提供的工艺库不相关,可以在代码中直接例化使用。
编译流程:
非增量编译:

make clean:清除后产生的一些文件
vcs ./tb/fsm_top.v ./rtl/fsm_moore.v +v2k -debug_all:编译指令,下面是编译产生的文件的文件夹。

编译结束:

csrc:编译过程中产生的c文件,文件夹内部的Makefile是用来维护增量编译的。
simv:二进制可执行文件
simv_daidir:
增量编译:命令末尾加 -Mupdate

再次运行带增量维护的编译指令:

编译结束:

通过检测文件状态后,如果没有修改则提示不需要再编译。
由于本身产生的文件,记录的信息有限,使用log记录更过的信息。
使用log文件记录信息:

编译结束,产生一个.log文件:

使用gvim打开.log文件,进行查看。
编译仿真同时进行 -R , 启动gui -gui

自定义二进制执行文件名字
定义在.v文件中的一些变量存放在其他文件中时,需要添加划线指令,

定义一个宏的方式:三种
1)原文件中进行定义

2)头文件中定义,并链接头文件查找


3)在头文件中定义宏后,然后在命令行中加 +define+宏名







![[附源码]计算机毕业设计点餐系统Springboot程序](https://img-blog.csdnimg.cn/8861a349ae614542ac0c413738f2800e.png)












