Makefile文件

        在实际仿真过程中,文件量比较多,每次仿真敲很多的命令会令人崩溃,可以将这些命令语句写入脚本中,在需要的时候直接调用执行就行。本文介绍makefile脚本的基本实现。

1、使用gvim来创建Makefile文件:

        gvim Makefile

2、编辑该文件,将命令写入文件中

Makefile文件_第1张图片

        可以看到一共五条命令些人到Makefile文件中去了。

3、Makefile的使用

        保存Makefile文件之后,在当前目录下就多出了一个Makefile文件。在Terminal中键入make命令,会动自动寻找Makefile文件名的文件,然后就可以看到仿真开始执行直到结束。以后每次仿真,只需要在该目录下执行”make”就可自动执行仿真。

        如果make命令后没有跟参数,则会执行遇到的第一个标识符。标识符的标志是“字符串+:”。在本例中,第一个标识符就是“all”。它的后面有三个字符串,就是这个all的依赖关系,意思就是说去执行这些依赖关系,也就是说会继续执行“create_lib”“compile”“simulate”。先找到create_lib,执行它下面一行的vlib_work命令,vlib_work的开头是以tab符,而不是其他空白符。然后分别找到compile和simulate执行它们下面的命令。也就是说,如果执行的是make命令,则Makefile中的all、create_lib、compile和simulate下面的命令的命令都会被执行,最终达到自动执行的目的。

        当然,如果想要执行这些命令中的某一条,则在make之后加上标识符就可以了,例如”make compile”,则会执行

        也就是编译命令。其它情况类似。同理,可以直接使用“make clea”来实现清理文件工作。

附:

        顺便说下几个仿真操作的含义。vlib work是创建了仿真所需的library;vlog是QuestaSim的编译命令,-l comp.log表示将编译的相关信息些人到comp.log文件中,-sv表示使用SystemVerilog的语法编译文件,后面接的代码文件名称;vsim是仿真命令,-l sim.log表示将仿真相关的打印信息写入sim.log文件中,-c表示不启动Questasim的GUI界面,如果不加,则会启动GUI界面,-novopt指的是不进行优化,DUT_tb_top指的是对哪个模块进行仿真,这里是最顶层的模块,-do "run all"指的是开始仿真。

 

你可能感兴趣的:(脚本)