Dskpimc? · 2020年09月05日

Makefile文件

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

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

    gvim Makefile

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

可以看到一共五条命令些人到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"指的是开始仿真。

#### 相关阅读
AXI协议之读写命令保序
gvim常用操作整理

作者:谷公子
首发博客:https://blog.csdn.net/W1Z1Q/article/details/101123203
推荐阅读
关注数
10973
内容数
1216
主要交流IC以及SoC设计流程相关的技术和知识
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息