Synopsys SVTB Makefile

 1 # Makefile for SystemVerilog Lab6
 2 PKG =
 3 TSCALE = -timescale="1ns/100ps"
 4 RTL= ../../rtl/router.v
 5 BADRTL= ../../rtl/bad/router.v
 6 SVTB = ./router_test_top.sv ./router_io.sv ./test.sv
 7 SEED = 1
 8
 9 default: test
10
11 test: compile run
12
13 bad: compile_bad run
14
15 package_run: PKG = ./router_test_pkg.sv
16 package_run: compile run
17
18 run:
19     ./simv -l simv.log +ntb_random_seed=$(SEED)
20     urg -dir simv.vdb
21     urg -dir simv.vdb -format text
22
23 run_pkg:
24     ./simv -l simv.log +ntb_random_seed=$(SEED)
25
26 compile:
27     vcs -l vcs.log -sverilog -debug_all $(TSCALE) $(PKG) $(SVTB) $(RTL)
28
29 compile_bad:
30     vcs -l vcs.log -sverilog -debug_all $(TSCALE) $(PKG) $(SVTB) $(BADRTL)
31
32 coverage:
33     firefox $(PWD)/urgReport/dashboard.html &
34
35 template:
36     ntb_template -t router -c clock ../../rtl/router.v
37
38 dve:
39     dve -vpd vcdplus.vpd &
40
41 debug:
42     ./simv -l simv.log -gui -tbug +ntb_random_seed=$(SEED)
43
44 copy:
45     cp ../../solutions/lab5/*.sv .
46     cp ../../solutions/lab6/Environment.sv .
47     cp ../../solutions/lab6/router_test_pkg.sv.orig router_test_pkg.sv
48     cp ../../solutions/lab6/Scoreboard.sv.orig Scoreboard.sv
49     cp ../../solutions/lab6/test.sv.orig test.sv
50     cp ../../solutions/lab5/router_test.h .
51
52 mycopy:
53     cp ../lab5/*.sv .
54     cp ../../solutions/lab6/Environment.sv .
55     cp ../../solutions/lab6/router_test_pkg.sv.orig router_test_pkg.sv
56     cp ../../solutions/lab6/Scoreboard.sv.orig Scoreboard.sv
57     cp ../../solutions/lab6/test.sv.orig test.sv
58     cp ../lab5/router_test.h .
59
60 solution: clean
61     cp ../../solutions/lab6/*.sv .
62     cp ../../solutions/lab6/router_test.h .
63
64 clean:
65     rm -rf simv* csrc* *.tmp *.vpd *.key *.log *hdrs.h
66
67 nuke: clean
68     rm -rf *.v* include *.sv .*.lock *.old .*.old DVE* *.tcl urg* *.h
69
70 help:
71     @echo ===========================================================================
72     @echo  "                                         "
73     @echo  " USAGE: make target <SEED=xxx>                                          "
74     @echo  "                                         "
75     @echo  " ------------------------- Test TARGETS --------------------------------"
76     @echo  " test       => Compiles TB and GOOD DUT files, runs the simulation.     "
77     @echo  " bad        => Compiles TB and BAD DUT files, runs the simulation.      "
78     @echo  " compile    => Compiles the TB and DUT.                                 "
79     @echo  " run        => Runs the simulation.                                     "
80     @echo  " template   => Builds ntb templates                                     "
81     @echo  " dve        => Runs dve in post-processing mode                         "
82     @echo  " debug      => Runs simulation interactively with dve                   "
83     @echo  " clean      => Removes all intermediate simv and log files.             "
84     @echo  "                                                                        "
85     @echo  " -------------------- ADMINISTRATIVE TARGETS ---------------------------"
86     @echo  " help       => Displays this message.                                   "
87     @echo  " copy       => Copies lab files from previous working  directory        "
88     @echo  " mycopy     => Copies lab files from previous solution  directory       "
89     @echo  " solution   => Copies all files from current solutions directory        "
90     @echo  " nuke       => Erases all changes. Put all files back to original state "
91     @echo  "                                                 "
92     @echo ===========================================================================
时间: 2024-09-28 16:02:53

Synopsys SVTB Makefile的相关文章

【转】SYNOPSYS VCS Makefile文件编写与研究

原文地址:http://www.cnblogs.com/zhtxwd/archive/2012/03/30/2425180.html YNOPSYS VCS Makefile文件编写与研究 这个Makefile是synopsys提供的模板,看上去非常好用,你只要按部就班提供实际项目的参数就可以了.我们来看这个文件的头部说明: makefile 其实完全可以用csh或其他脚本来编写,只是VCS使用的linux内置的make命令定义了一个标准的仿真脚本,make命令是专门用来 做项目的源文件管理和编

关于makefile中变量的多次赋值以及override指令

1 基本原则如下 1.1 原则1 变量的普通赋值是有先后顺序的,后面的赋值会覆盖掉前面的赋值. 1.2 原则2 使用的时候,用的是其前面最后的赋值,就算其后面有使用了override指令的赋值也不会影响这条原则. 1.3 原则3 当使用了override指令定义赋值了变量后,其后对该变量的所有的赋值都是无效的.但是override之前的所有的赋值都是有效的.使用的时候是往前最近原则. 2 override变量.命令行参数和普通变量之间的屏蔽关系 override变量会屏蔽命令行参数,除非用+=:

使用Makefile去管理程序

前言:在gcc中如何使用分屏操作  : 在命令行中使用    : sp + filename     vim  Makefile  编辑make工程   第一行使用 # 进行注释   说明是什么make  内容格式:  目标文件:  依赖文件 ·  ·  ·  但是一定要注意如果要使用编译指令一定要用table键 不能使用几个空格代替 另外  max.h 和min.h 的内容就是函数声明 下面说下这样make的好处吧:  在大型程序中能很好帮我们管理我们的代码和项目,程序的任何部分分工都很明确,

Contiki 2.7 Makefile 文件(三)

2.第二部分 这里的usage,targets,savetarget,savedefines都是伪目标. 和all不同,这些伪目标不会被执行,除非显式指定这些目标. 这里有两个目标savetarget,savedefines前边我们提过. 通过命令 make TARGET=esb savetarget可以保存默认的TARGET到Makefile.target中. 通过命令 make TARGET=esb DEFINES=MYTRACE,MYVALUE=4711 savedefines 可以保存默

My first makefile to compile multiple C files

I have three files to compile: main.c, func.c,  func.h The steps: 1   main.c   to   main.o 2   func.c    to   func.o 3    link main.o func.o to main(file that can execute) So, u need to run at least three commands without a Makefile.Then if u have 10

liunx中ctags 与makefile的使用

ctags 是vim下可以帮助阅读代码的一个的工具,它可以很方便的看到程序的源代码 使用ctags可以有两种方法:(1).可以在任意目录下建立文件,然后使用 ctags *.c,这个命令的意思是把当前目录下的所有文件生成标签文件(vim可以通过标签,跳转到标签文件处)例如: vim ctag.h vim ctag.c vim main.c 在main.c中把光标移至fun函数处,按Ctrl+[就会跳转到fun函数定义的地方,即ctag.c处,Ctrl+T回转到main.c函数 (2).输入cta

linux中make命令的简单使用以及Makefile文件的书写

Makefile 会不会写makele,从一个侧面说明了一个是否具备完成大型工程的能力. 一个工程中的源件不计数,其按类型.功能.模块分别放在若干个目录中,makele定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为makele就像一个Shell脚本一样,其中也可以执行操作系统的命令.makele带来的好处就是"自动化编译",一旦写好,只需要一个make命令,整个工程完全自动编译,极大的提高了软件开发的效率. ma

makefile编译文件介绍

通常在C语言程序开发中,尤其是大型项目的构建,我们不可能一个文件一个文件去编译,通常会编写Makefile文件使用make命令完成项目的编译构建: 如下:math项目是简单的计算那个数字大,哪个数字小,以及两个数字和的小程序.由max.c,min.c , sum.c 和main.c构成,分别如下: max.c #include <stdio.h> int max(int a,int b) {     if(a>b){         return a;      }else{      

通用多目录makefile的写法

我的项目文件层次是:项目名称/include.output.src src/admin.stu.tch.common 最外层的Makefile: DEBUG = yMYDEBUG = DEBUGifeq ($(DEBUG),y)DEBFLAGS = -O -g -D$(MYDEBUG)elseDEBFLAGS =endif PRJ_HOME := $(shell pwd)SOURCES := $(wildcard *.c)OBJECTS := ${SOURCES:%.c=%.o}INCPATH