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

Last change on this file since 42 was 42, checked in by rosiere, 17 years ago

Modification des classes d'encapsulation des interfaces :

  • gère les signaux à écrire dans le vhdl
  • les traces pour le testbench
  • la génération des vhdl structurelles

-> test sur la Pattern History Table

File size: 3.8 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
18FPGA_FILES                      = $(patsubst $(DIR_CFG_GEN)/%.cfg,%,$(wildcard $(DIR_CFG_GEN)/*.cfg))   \
19                                  $(patsubst $(DIR_CFG_USER)/%.cfg,%,$(wildcard $(DIR_CFG_USER)/*.cfg))
20
21FPGA_LOG_FILES                  = $(patsubst $(DIR_CFG_GEN)/%.cfg,$(DIR_LOG)/%.fpga.log,$(wildcard $(DIR_CFG_GEN)/*.cfg))       \
22                                  $(patsubst $(DIR_CFG_USER)/%.cfg,$(DIR_LOG)/%.fpga.log,$(wildcard $(DIR_CFG_USER)/*.cfg))
23#-----[ Rules ]--------------------------------------------
24.PRECIOUS                       : $(DIR_LOG)/%.vhdl.log $(DIR_LOG)/%.vhdl_sim.log
25
26vhdl                            : execute $(DIR_WORK)
27                                @                                                                                                       \
28                                declare -a vhdl_files=($$($(LS) $(DIR_VHDL)/*_Pack.vhdl));                                              \
29                                declare -a log_files=($${vhdl_files[*]/%.vhdl/.vhdl.log});                                              \
30                                if $(TEST) $${#log_files[*]} -ne 0; then $(MAKE) $${log_files[*]/#$(DIR_VHDL)/$(DIR_LOG)}; fi           
31                                @                                                                                                       \
32                                declare -a vhdl_files=($$($(LS) $(DIR_VHDL)/*_Testbench.vhdl));                                 \
33                                declare -a log_files=($${vhdl_files[*]/%.vhdl/.vhdl.log});                                              \
34                                if $(TEST) $${#log_files[*]} -ne 0; then $(MAKE) $${log_files[*]/#$(DIR_VHDL)/$(DIR_LOG)}; fi           
35                                @                                                                                                       \
36                                declare -a vhdl_files=($$($(LS) $(DIR_VHDL)/*.vhdl|$(GREP_NOT) "(_Pack\.|_Testbench\.)"));              \
37                                declare -a log_files=($${vhdl_files[*]/%.vhdl/.vhdl.log});                                              \
38                                if $(TEST) $${#log_files[*]} -ne 0; then $(MAKE) $${log_files[*]/#$(DIR_VHDL)/$(DIR_LOG)}; fi           
39
40vhdl_sim                        : vhdl
41                                @                                                                                                       \
42                                declare -a vhdl_files=($$($(LS) $(DIR_VHDL)/*_Testbench.vhdl));                                         \
43                                declare -a log_files=($${vhdl_files[*]/%.vhdl/.vhdl_sim.log});                                          \
44                                if $(TEST) $${#log_files[*]} -ne 0; then $(MAKE) $${log_files[*]/#$(DIR_VHDL)/$(DIR_LOG)}; fi
45
46fpga                            : vhdl_sim
47                                @$(ECHO) -e "" > $(FPGA_CFG_FILE_LOCAL)
48                                @$(ECHO) "files :::::::: $(FPGA_FILES)"
49                                @for file in $(FPGA_FILES); do                                                                          \
50                                        declare -a files=($$($(LS) $$file*.vhdl|$(GREP_NOT) "(_Testbench\.)"));                         \
51                                        $(ECHO) -e "# $$file"                             >> $(FPGA_CFG_FILE_LOCAL);                    \
52                                        $(ECHO) -e "target_dep\tall\t$$file.ngc"          >> $(FPGA_CFG_FILE_LOCAL);                    \
53                                        $(ECHO) -e "target_dep\t$$file.ngc\t$$file.prj"   >> $(FPGA_CFG_FILE_LOCAL);                    \
54                                        $(ECHO) -e "target_dep\t$$file.prj\t$${files[*]}" >> $(FPGA_CFG_FILE_LOCAL);                    \
55                                        $(ECHO) -e ""                                     >> $(FPGA_CFG_FILE_LOCAL);                    \
56                                done
57                                @($(XILINX_ENV); $(CD) $(FPGA_CFG_FILE_GLOBAL_DIR); ./$(FPGA_CFG_FILE_GLOBAL)) 
58                                @$(MAKE) $(FPGA_LOG_FILES)
59
60$(DIR_LOG)/%.fpga.log           :
61                                @$(ECHO) "Synthetis on FPGA  : $*"
62                                @$(XILINX_ENV); $(MAKE) -f Makefile.mkf $*.ngc &> $@
63
64$(DIR_WORK)                     :
65                                @$(ECHO) "Create work-space  : $@"
66                                @$(MODELTECH_VLIB) $@
67
68$(DIR_LOG)/%.vhdl_sim.log       : $(DIR_VHDL)/%.vhdl $(DIR_LOG)/%.vhdl.log
69                                @$(ECHO) "VHDL's Simulation  : $*"
70                                @$(MODELTECH_VSIM) "$(DIR_WORK).`$(BASENAME) $* |$(UPPERtoLOWER)`" &> $@
71                                declare -i count=`$(GREP) -ch "Test OK" $@`;            \
72                                if $(TEST) $$count -ne 0;                               \
73                                then echo "                     $* ... OK";             \
74                                else echo "                     $* ... KO"; exit 1;     \
75                                fi;
76
77$(DIR_LOG)/%.vhdl.log           : $(DIR_VHDL)/%.vhdl
78                                @$(ECHO) "VHDL's Compilation : $*"
79                                @$(MODELTECH_VCOM) $< &> $@
80
81synthesis_clean                 :
82                                @if $(TEST) -f Makefile.mkf; then $(MAKE) -f Makefile.mkf clean; fi
83                                @$(RM) $(DIR_WORK) transcript Makefile.mkf
84
85synthesis_help                  :
86                                @$(ECHO) " -----[ Synthesis ]----------------------------------"
87                                @$(ECHO) ""
88                                @$(ECHO) " * vhdl                 : compile all vhdl's file"
89                                @$(ECHO) " * vhdl_sim             : simulate all testbench's file"
90                                @$(ECHO) " * fpga                 : synthetis with fpga's tools"
91                                @$(ECHO) ""
Note: See TracBrowser for help on using the repository browser.