makefile 3.73 KB
Newer Older
Friedrich Beckmann's avatar
first  
Friedrich Beckmann committed
1
2
3
4
5
6
7
8
## ----------------------------------------------------------------------------
## Script     : makefile
## ----------------------------------------------------------------------------
## Author     : Johann Faerber
## Company    : University of Applied Sciences Augsburg
## ----------------------------------------------------------------------------
## Description: see end of file
## ----------------------------------------------------------------------------
Johann Faerber's avatar
Johann Faerber committed
9
10
11



Friedrich Beckmann's avatar
first  
Friedrich Beckmann committed
12
13
14
15
16
17
18
19
20
21
22
23
###################################################################
# Main Targets
#
###################################################################

help:
	@echo '"make" does intentionally nothing. Type:'
	@echo '  "make mproject" to create a new modelsim project'
	@echo '  "make compile" to compile all VHDL sources in batch mode'
	@echo '  "make modelsim" to start modelsim with graphical user interface'
	@echo '  "make sim" to start modelsim gui with the top testbench of the project'
	@echo '  "make clean" to remove all generated files'
Johann Faerber's avatar
Johann Faerber committed
24
25
26
27

mproject : $(PROJECT).mpf

$(PROJECT).mpf : $(SOURCE_FILES)
Friedrich Beckmann's avatar
first  
Friedrich Beckmann committed
28
29
	# create modelsim project
#	vsim -modelsimini ../../scripts/modelsim.ini -c -do "project new [pwd] $(PROJECT); quit -f"
Johann Faerber's avatar
Johann Faerber committed
30
31
32
33
	rm -rf ./modelsim_sources.tcl
	for source_file in $(SOURCE_FILES); do \
	  echo project addfile $$source_file >> modelsim_sources.tcl; \
	done
Johann Faerber's avatar
Johann Faerber committed
34
	vsim -modelsimini ../../scripts/modelsim.ini -c -do "project new [pwd] $(PROJECT); source ./modelsim_sources.tcl; quit -f"
Friedrich Beckmann's avatar
first  
Friedrich Beckmann committed
35
36
37
38
	# assign VHDL design files
#	for source_file in $(SOURCE_FILES); do \
#		vsim -c -do "project open  $(PROJECT); project addfile $$source_file; quit -f" ; \
#	done
Johann Faerber's avatar
Johann Faerber committed
39
40
41
42

compile: ./work/_vmake

./work/_vmake: $(PROJECT).mpf
Friedrich Beckmann's avatar
first  
Friedrich Beckmann committed
43
44
	vsim -c -do "project open $(PROJECT); project calculateorder; quit -f"

Johann Faerber's avatar
Johann Faerber committed
45
46
modelsim: ./work/_vmake
	vsim -i $(PROJECT) &
Friedrich Beckmann's avatar
first  
Friedrich Beckmann committed
47

Johann Faerber's avatar
Johann Faerber committed
48
49
sim: ./work/_vmake
	vsim -i -do "project open $(PROJECT); vsim work.t_$(PROJECT)(tbench); add wave *; run -a;" 
Friedrich Beckmann's avatar
first  
Friedrich Beckmann committed
50
51

clean:
Johann Faerber's avatar
Johann Faerber committed
52
	rm -rf *.mpf *.mti *.ini *.wlf wlf* transcript work modelsim_sources.tcl
Friedrich Beckmann's avatar
first  
Friedrich Beckmann committed
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103

## ----------------------------------------------------------------------------
## Description: 
## ------------
## assumes the following design directory structure as prerequisite
## 
## DigitaltechnikPraktikum
## |   
## +---src
## |       and2gate_equation.vhd
## |       de1_mux2to1_structure.vhd
## |       invgate_equation.vhd
## |       mux2to1_structure.vhd
## |       or2gate_equation.vhd
## |       t_mux2to1.vhd
## |       
## +---pnr
## |   +---de1_mux2to1
## |           makefile
## |           de1_mux2to1.qpf
## |           de1_mux2to1.qpf
## |
## +---scripts
## |       quartus_project_settings.tcl
## |       makefile.quartus_template
## |       makefile.modelsim_template
## |       de1_mux2to1_pins.tcl
## |       modelsim_project_settings.tcl
## |       modelsim.ini
## |       de1_pin_assignments_minimumio.csv
## |       de1_pin_assignments_minimumio.tcl
## |       
## \---sim
##     +---mux2to1
##             makefile
##             mux2to1.mpf
##             modelsim.ini
## 
## ----------------------------------------------------------------------------
## Modifications: makefile template from Altera Quartus scripting modified:
## --------------
##              - added help target
##              - make project to create a new modelsim project
##              - make modelsim to start modelsim with graphical user interface
##              - make sim to start modelsim gui with the top testbench of the project
##              - make compile to compile all VHDL sources in batch mode
## ----------------------------------------------------------------------------
## Revisions:
## ----------
## $Id:$
## ----------------------------------------------------------------------------