source: trunk/IPs/systemC/processor/Morpheo/Behavioural/Makefile.Synthesis @ 3

Last change on this file since 3 was 3, checked in by kane, 17 years ago

1) Ajout d'un "printer" XML pour la configuration de paramètres

2) Fin du composant "Two_Level_Branch_Predictor"

validation * systemc

  • vhdl
File size: 3.4 KB
Line 
1#
2# $Id$
3#
4# [ Description ]
5#
6# Makefile
7#
8
9#-----[ Variables ]----------------------------------------
10
11DIR_VHDL                        = .
12DIR_WORK                        = work
13
14FPGA_CFG_FILE_LOCAL             = mkf.info
15FPGA_CFG_FILE_GLOBAL_DIR        = $(DIR_MORPHEO)/Behavioural
16FPGA_CFG_FILE_GLOBAL            = configure.mkf
17
18#-----[ Tools ]--------------------------------------------
19VLIB                            = vlib
20VCOM                            = vcom
21VSIM                            = vsim -c -do "run -all; quit"
22
23ENV_XILINX                      = source $(TOOLS)/xilinx/settings.sh
24
25#-----[ Rules ]--------------------------------------------
26.PRECIOUS                       : $(DIR_LOG)/%.vhdl.log $(DIR_LOG)/%.vhdl_sim.log
27
28vhdl                            : execute $(DIR_WORK)
29                                @declare -a vhdl_files=($$($(LS) $(DIR_VHDL)/*_Pack.vhdl));                                             \
30                                declare -a log_files=($${vhdl_files[*]/%.vhdl/.vhdl.log});                                              \
31                                $(MAKE) $${log_files[*]/#$(DIR_VHDL)/$(DIR_LOG)};
32                                @declare -a vhdl_files=($$($(LS) $(DIR_VHDL)/*_Testbench.vhdl));                                        \
33                                declare -a log_files=($${vhdl_files[*]/%.vhdl/.vhdl.log});                                              \
34                                $(MAKE) $${log_files[*]/#$(DIR_VHDL)/$(DIR_LOG)};
35                                @declare -a vhdl_files=($$($(LS) $(DIR_VHDL)/*.vhdl|$(GREP_NOT) "(_Pack\.|_Testbench\.)"));             \
36                                declare -a log_files=($${vhdl_files[*]/%.vhdl/.vhdl.log});                                              \
37                                $(MAKE) $${log_files[*]/#$(DIR_VHDL)/$(DIR_LOG)};
38
39vhdl_sim                        : vhdl
40                                @declare -a vhdl_files=($$($(LS) $(DIR_VHDL)/*_Testbench.vhdl));                                        \
41                                declare -a log_files=($${vhdl_files[*]/%.vhdl/.vhdl_sim.log});                                          \
42                                $(MAKE) $${log_files[*]/#$(DIR_VHDL)/$(DIR_LOG)};
43
44fpga                            : vhdl_sim
45                                @$(ECHO) -e "" > $(FPGA_CFG_FILE_LOCAL)
46                                @for file in $(patsubst $(DIR_CFG)/%.cfg,%,$(wildcard $(DIR_CFG)/*.cfg)); do                            \
47                                        declare -a files=($$($(LS) $$file*.vhdl|$(GREP_NOT) "(_Testbench\.)"));                         \
48                                        $(ECHO) -e "# $$file"                             >> $(FPGA_CFG_FILE_LOCAL);                    \
49                                        $(ECHO) -e "target_dep\tall\t$$file.ngc"          >> $(FPGA_CFG_FILE_LOCAL);                    \
50                                        $(ECHO) -e "target_dep\t$$file.ngc\t$$file.prj"   >> $(FPGA_CFG_FILE_LOCAL);                    \
51                                        $(ECHO) -e "target_dep\t$$file.prj\t$${files[*]}" >> $(FPGA_CFG_FILE_LOCAL);                    \
52                                        $(ECHO) -e ""                                     >> $(FPGA_CFG_FILE_LOCAL);                    \
53                                done
54                                @($(ENV_XILINX); $(CD) $(FPGA_CFG_FILE_GLOBAL_DIR); ./$(FPGA_CFG_FILE_GLOBAL)) 
55                                @$(MAKE) $(patsubst $(DIR_CFG)/%.cfg,$(DIR_LOG)/%.fpga.log,$(wildcard $(DIR_CFG)/*.cfg))
56
57$(DIR_LOG)/%.fpga.log           :
58                                @$(ECHO) "Synthetis on FPGA  : $*"
59                                @$(ENV_XILINX); $(MAKE) -f Makefile.mkf $*.ngc > $@
60
61$(DIR_WORK)                     :
62                                @$(ECHO) "Create work-space  : $@"
63                                @$(VLIB) $@
64
65$(DIR_LOG)/%.vhdl_sim.log       : $(DIR_VHDL)/%.vhdl $(DIR_LOG)/%.vhdl.log
66                                @$(ECHO) "VHDL's Simulation: $*"
67                                @$(VSIM) "$(DIR_WORK).`$(BASENAME) $* |$(UPPERtoLOWER)`" > $@
68                                declare -i count=`$(GREP) -ch "Test KO" $@`;            \
69                                if $(TEST) $$count -eq 0;                               \
70                                then echo "                     $* ... OK";             \
71                                else echo "                     $* ... KO"; exit 1;     \
72                                fi;
73
74$(DIR_LOG)/%.vhdl.log           : $(DIR_VHDL)/%.vhdl
75                                @$(ECHO) "VHDL's Compilation : $*"
76                                @$(VCOM) $< > $@
77
78synthesis_clean                 :
79                                @if $(TEST) -f Makefile.mkf; then $(MAKE) -f Makefile.mkf clean; fi
80                                @$(RM) $(DIR_WORK) transcript Makefile.mkf
81
82synthesis_help                  :
83                                @$(ECHO) " -----[ Synthesis ]----------------------------------"
84                                @$(ECHO) ""
85                                @$(ECHO) " * vhdl                 : compile all vhdl's file"
86                                @$(ECHO) " * vhdl_sim             : simulate all testbench's file"
87                                @$(ECHO) " * fpga                 : synthetis with fpga's tools"
88                                @$(ECHO) ""
Note: See TracBrowser for help on using the repository browser.