head	1.7;
access;
symbols
	STEP2_2b:1.6
	Step2_2:1.6
	STEP2_1b:1.5
	STEP2_1:1.5
	STEP1_1:1.3;
locks; strict;
comment	@# @;


1.7
date	2006.11.01.12.17.13;	author quickwayne;	state dead;
branches;
next	1.6;
commitid	4150454890474567;

1.6
date	2006.07.28.13.47.52;	author quickwayne;	state Exp;
branches;
next	1.5;
commitid	2de544ca15864567;

1.5
date	2006.07.18.02.14.25;	author quickwayne;	state Exp;
branches;
next	1.4;
commitid	689644bc43d34567;

1.4
date	2006.07.17.00.46.16;	author quickwayne;	state Exp;
branches;
next	1.3;
commitid	7b2744baddd04567;

1.3
date	2006.07.06.23.38.43;	author quickwayne;	state Exp;
branches;
next	1.2;
commitid	622944ad9efb4567;

1.2
date	2006.06.23.18.55.17;	author quickwayne;	state Exp;
branches;
next	1.1;
commitid	3193449c39124567;

1.1
date	2006.06.23.17.18.55;	author quickwayne;	state Exp;
branches;
next	;
commitid	374449c227d4567;


desc
@@


1.7
log
@*** empty log message ***
@
text
@#################################################################
# Makefile generated by Xilinx Platform Studio 
# Project:D:\mb-jpeg\system.xmp
#################################################################

# Name of the Microprocessor system
# The hardware specification of the system is in file :
# D:\mb-jpeg\system.mhs
# The software specification of the system is in file :
# D:\mb-jpeg\system.mss

include system_incl.make


#################################################################
# EXTERNAL TARGETS
#################################################################
all:
	@@echo "Makefile to build a Microprocessor system :"
	@@echo "Run make with any of the following targets"
	@@echo " "
	@@echo "  netlist  : Generates the netlist for the given MHS "
	@@echo "  bits     : Runs Implementation tools to generate the bitstream"
	@@echo "  exporttopn:Export to ProjNav"
	@@echo " "
	@@echo "  libs     : Configures the sw libraries for this system"
	@@echo "  program  : Compiles the program sources for all the processor instances"
	@@echo " "
	@@echo "  init_bram: Initializes bitstream with BRAM data"
	@@echo "  ace      : Generate ace file from bitstream and elf"
	@@echo "  download : Downloads the bitstream onto the board"
	@@echo " "
	@@echo "  sim      : Generates HDL simulation models and runs simulator for chosen simulation mode"
	@@echo "  simmodel : Generates HDL simulation models for chosen simulation mode"
	@@echo "  behavioral:Generates behavioral HDL models with BRAM initialization"
	@@echo "  structural:Generates structural simulation HDL models with BRAM initialization"
	@@echo "  timing   : Generates timing simulation HDL models with BRAM initialization"
	@@echo "  vp       : Generates virtual platform model"
	@@echo " "
	@@echo "  netlistclean: Deletes netlist"
	@@echo "  bitsclean: Deletes bit, ncd, bmm files"
	@@echo "  hwclean  : Deletes implementation dir"
	@@echo "  libsclean: Deletes sw libraries"
	@@echo "  programclean: Deletes compiled ELF files"
	@@echo "  swclean  : Deletes sw libraries and ELF files"
	@@echo "  simclean : Deletes simulation dir"
	@@echo "  vpclean  : Deletes virtualplatform dir"
	@@echo "  clean    : Deletes all generated files/directories"
	@@echo " "
	@@echo "  make <target> : (Default)"
	@@echo "      Creates a Microprocessor system using default initializations"
	@@echo "      specified for each processor in MSS file"


bits: $(SYSTEM_BIT)

ace: $(SYSTEM_ACE)

netlist: $(POSTSYN_NETLIST)

libs: $(LIBRARIES)

program: $(ALL_USER_ELF_FILES)

download: $(DOWNLOAD_BIT) dummy
	@@echo "*********************************************"
	@@echo "Downloading Bitstream onto the target board"
	@@echo "*********************************************"
	impact -batch etc/download.cmd

init_bram: $(DOWNLOAD_BIT)

sim: $(DEFAULT_SIM_SCRIPT)
	cd simulation/behavioral; \
	$(SIM_CMD)  &

simmodel: $(DEFAULT_SIM_SCRIPT)

behavioral_model: $(BEHAVIORAL_SIM_SCRIPT)

structural_model: $(STRUCTURAL_SIM_SCRIPT)

vp: $(VPEXEC)

clean: hwclean libsclean programclean simclean vpclean
	rm -f _impact.cmd

hwclean: netlistclean bitsclean
	rm -rf implementation synthesis xst hdl
	rm -rf xst.srp $(SYSTEM).srp

netlistclean:
	rm -f $(POSTSYN_NETLIST)
	rm -f $(BMM_FILE)

bitsclean:
	rm -f $(SYSTEM_BIT)
	rm -f implementation/$(SYSTEM).ncd
	rm -f implementation/$(SYSTEM)_bd.bmm 

bitsclean:

simclean: 
	rm -rf simulation/behavioral

swclean: libsclean programclean
	@@echo ""

libsclean: $(LIBSCLEAN_TARGETS)

programclean: $(PROGRAMCLEAN_TARGETS)

vpclean:
	rm -rf virtualplatform

#################################################################
# SOFTWARE PLATFORM FLOW
#################################################################


$(LIBRARIES): $(MHSFILE) $(MSSFILE) __xps/libgen.opt
	@@echo "*********************************************"
	@@echo "Creating software libraries..."
	@@echo "*********************************************"
	libgen $(LIBGEN_OPTIONS) $(MSSFILE)


microblaze_0_libsclean:
	rm -rf microblaze_0/lib/

$(MICROBLAZE_0_XMDSTUB): $(LIBRARIES)

#################################################################
# SOFTWARE APPLICATION BMP2JPG_MB
#################################################################

bmp2jpg_mb_program: $(BMP2JPG_MB_OUTPUT) 

$(BMP2JPG_MB_OUTPUT) : $(BMP2JPG_MB_SOURCES) $(BMP2JPG_MB_HEADERS) $(BMP2JPG_MB_LINKER_SCRIPT) \
                    $(LIBRARIES) __xps/bmp2jpg_mb_compiler.opt
	@@mkdir -p $(BMP2JPG_MB_OUTPUT_DIR) 
	$(BMP2JPG_MB_CC) $(BMP2JPG_MB_CC_OPT) $(BMP2JPG_MB_SOURCES) -o $(BMP2JPG_MB_OUTPUT) \
	$(BMP2JPG_MB_OTHER_CC_FLAGS) $(BMP2JPG_MB_INCLUDES) $(BMP2JPG_MB_LIBPATH) \
	$(BMP2JPG_MB_CFLAGS) $(BMP2JPG_MB_LFLAGS) 
	$(BMP2JPG_MB_CC_SIZE) $(BMP2JPG_MB_OUTPUT) 

bmp2jpg_mb_programclean:
	rm -f $(BMP2JPG_MB_OUTPUT) 

#################################################################
# BOOTLOOP ELF FILES
#################################################################



$(MICROBLAZE_0_BOOTLOOP): $(MICROBLAZE_BOOTLOOP)
	@@mkdir -p $(BOOTLOOP_DIR)
	cp -f $(MICROBLAZE_BOOTLOOP) $(MICROBLAZE_0_BOOTLOOP)

#################################################################
# HARDWARE IMPLEMENTATION FLOW
#################################################################


$(BMM_FILE) \
$(WRAPPER_NGC_FILES): $(MHSFILE) __xps/platgen.opt \
                      $(CORE_STATE_DEVELOPMENT_FILES)
	@@echo "****************************************************"
	@@echo "Creating system netlist for hardware specification.."
	@@echo "****************************************************"
	platgen $(PLATGEN_OPTIONS) -st xst $(MHSFILE)

$(POSTSYN_NETLIST): $(WRAPPER_NGC_FILES)
	@@echo "Running synthesis..."
	bash -c "cd synthesis; ./synthesis.sh"

$(SYSTEM_BIT): $(FPGA_IMP_DEPENDENCY)
	@@echo "*********************************************"
	@@echo "Running Xilinx Implementation tools.."
	@@echo "*********************************************"
	@@cp -f $(UCF_FILE) implementation/$(SYSTEM).ucf
	@@cp -f $(XFLOW_OPT_FILE) implementation/xflow.opt
	xflow -wd implementation -p $(DEVICE) -implement xflow.opt $(SYSTEM).ngc
	@@echo "*********************************************"
	@@echo "Running Bitgen.."
	@@echo "*********************************************"
	@@cp -f $(BITGEN_UT_FILE) implementation/bitgen.ut
	cd implementation; bitgen -w -f bitgen.ut $(SYSTEM)

exporttopn: 
	@@echo "You have chosen XPS for implementation tool flow."
	@@echo "Please select ProjNav as your implementation flow in Project Options."
	@@echo "In batch mode, use commad xset pnproj <nplfile>."

$(DOWNLOAD_BIT): $(SYSTEM_BIT) $(BRAMINIT_ELF_FILES) __xps/bitinit.opt
	@@cp -f implementation/$(SYSTEM)_bd.bmm .
	@@echo "*********************************************"
	@@echo "Initializing BRAM contents of the bitstream"
	@@echo "*********************************************"
	bitinit $(MHSFILE) $(SEARCHPATHOPT) $(BRAMINIT_ELF_FILE_ARGS) \
	-bt $(SYSTEM_BIT) -o $(DOWNLOAD_BIT)
	@@rm -f $(SYSTEM)_bd.bmm

$(SYSTEM_ACE): $(DOWNLOAD_BIT) $(BMP2JPG_MB_OUTPUT) 
	@@echo "*********************************************"
	@@echo "Creating system ace file"
	@@echo "*********************************************"
	xmd -tcl genace.tcl -jprog -hw $(DOWNLOAD_BIT) -elf $(BMP2JPG_MB_OUTPUT)  -target mdm  -ace $(SYSTEM_ACE)

#################################################################
# SIMULATION FLOW
#################################################################


################## BEHAVIORAL SIMULATION ##################

$(BEHAVIORAL_SIM_SCRIPT): $(MHSFILE) __xps/simgen.opt \
                          $(BRAMINIT_ELF_FILES)
	@@echo "*********************************************"
	@@echo "Creating behavioral simulation models..."
	@@echo "*********************************************"
	simgen $(SIMGEN_OPTIONS) -m behavioral $(MHSFILE)

################## STRUCTURAL SIMULATION ##################

$(STRUCTURAL_SIM_SCRIPT): $(WRAPPER_NGC_FILES) __xps/simgen.opt \
                          $(BRAMINIT_ELF_FILES)
	@@echo "*********************************************"
	@@echo "Creating structural simulation models..."
	@@echo "*********************************************"
	simgen $(SIMGEN_OPTIONS) -sd implementation -m structural $(MHSFILE)


################## TIMING SIMULATION ##################

$(TIMING_SIM_SCRIPT): $(SYSTEM_BIT) __xps/simgen.opt \
                      $(BRAMINIT_ELF_FILES)
	@@echo "*********************************************"
	@@echo "Creating timing simulation models..."
	@@echo "*********************************************"
	simgen $(SIMGEN_OPTIONS) -sd implementation -m timing $(MHSFILE)

#################################################################
# VIRTUAL PLATFORM FLOW
#################################################################


$(VPEXEC): $(MHSFILE) __xps/vpgen.opt
	@@echo "****************************************************"
	@@echo "Creating virtual platform for hardware specification.."
	@@echo "****************************************************"
	vpgen $(VPGEN_OPTIONS) $(MHSFILE)

dummy:
	@@echo ""

@


1.6
log
@add bmp2jpg_mb project instead of encoder project
add link script for bmp2jpg_mb
@
text
@@


1.5
log
@Modify hardware architecture
1. memory layout: 64KB instruction, 64KB data + 64KB image buffer
@
text
@d134 1
a134 1
# SOFTWARE APPLICATION ENCODER
d137 1
a137 1
Encoder_program: $(ENCODER_OUTPUT) 
d139 7
a145 7
$(ENCODER_OUTPUT) : $(ENCODER_SOURCES) $(ENCODER_HEADERS) $(ENCODER_LINKER_SCRIPT) \
                    $(LIBRARIES) __xps/encoder_compiler.opt
	@@mkdir -p $(ENCODER_OUTPUT_DIR) 
	$(ENCODER_CC) $(ENCODER_CC_OPT) $(ENCODER_SOURCES) -o $(ENCODER_OUTPUT) \
	$(ENCODER_OTHER_CC_FLAGS) $(ENCODER_INCLUDES) $(ENCODER_LIBPATH) \
	$(ENCODER_CFLAGS) $(ENCODER_LFLAGS) 
	$(ENCODER_CC_SIZE) $(ENCODER_OUTPUT) 
d147 2
a148 2
Encoder_programclean:
	rm -f $(ENCODER_OUTPUT) 
d204 1
a204 1
$(SYSTEM_ACE): $(DOWNLOAD_BIT) $(ENCODER_OUTPUT) 
d208 1
a208 1
	xmd -tcl genace.tcl -jprog -hw $(DOWNLOAD_BIT) -elf $(ENCODER_OUTPUT)  -target mdm  -ace $(SYSTEM_ACE)
@


1.4
log
@Add encoder software project
@
text
@a133 17
# SOFTWARE APPLICATION TESTBENCH1
#################################################################

Testbench1_program: $(TESTBENCH1_OUTPUT) 

$(TESTBENCH1_OUTPUT) : $(TESTBENCH1_SOURCES) $(TESTBENCH1_HEADERS) $(TESTBENCH1_LINKER_SCRIPT) \
                    $(LIBRARIES) __xps/testbench1_compiler.opt
	@@mkdir -p $(TESTBENCH1_OUTPUT_DIR) 
	$(TESTBENCH1_CC) $(TESTBENCH1_CC_OPT) $(TESTBENCH1_SOURCES) -o $(TESTBENCH1_OUTPUT) \
	$(TESTBENCH1_OTHER_CC_FLAGS) $(TESTBENCH1_INCLUDES) $(TESTBENCH1_LIBPATH) \
	$(TESTBENCH1_CFLAGS) $(TESTBENCH1_LFLAGS) 
	$(TESTBENCH1_CC_SIZE) $(TESTBENCH1_OUTPUT) 

Testbench1_programclean:
	rm -f $(TESTBENCH1_OUTPUT) 

#################################################################
d204 1
a204 1
$(SYSTEM_ACE): $(DOWNLOAD_BIT) $(TESTBENCH1_OUTPUT) $(ENCODER_OUTPUT) 
d208 1
a208 1
	xmd -tcl genace.tcl -jprog -hw $(DOWNLOAD_BIT) -elf $(TESTBENCH1_OUTPUT) $(ENCODER_OUTPUT)  -target mdm  -ace $(SYSTEM_ACE)
@


1.3
log
@Modified to run testbench1
@
text
@d151 17
d221 1
a221 1
$(SYSTEM_ACE): $(DOWNLOAD_BIT) $(TESTBENCH1_OUTPUT) 
d225 1
a225 1
	xmd -tcl genace.tcl -jprog -hw $(DOWNLOAD_BIT) -elf $(TESTBENCH1_OUTPUT)  -target mdm  -ace $(SYSTEM_ACE)
@


1.2
log
@Updated to EDK8.1
@
text
@d134 1
a134 1
# SOFTWARE APPLICATION DECODER
d137 1
a137 1
decoder_program: $(DECODER_OUTPUT) 
d139 7
a145 7
$(DECODER_OUTPUT) : $(DECODER_SOURCES) $(DECODER_HEADERS) $(DECODER_LINKER_SCRIPT) \
                    $(LIBRARIES) __xps/decoder_compiler.opt
	@@mkdir -p $(DECODER_OUTPUT_DIR) 
	$(DECODER_CC) $(DECODER_CC_OPT) $(DECODER_SOURCES) -o $(DECODER_OUTPUT) \
	$(DECODER_OTHER_CC_FLAGS) $(DECODER_INCLUDES) $(DECODER_LIBPATH) \
	$(DECODER_CFLAGS) $(DECODER_LFLAGS) 
	$(DECODER_CC_SIZE) $(DECODER_OUTPUT) 
d147 2
a148 2
decoder_programclean:
	rm -f $(DECODER_OUTPUT) 
d204 1
a204 1
$(SYSTEM_ACE): $(DOWNLOAD_BIT) $(DECODER_OUTPUT) 
d208 1
a208 1
	xmd -tcl genace.tcl -jprog -hw $(DOWNLOAD_BIT) -elf $(DECODER_OUTPUT)  -target mdm  -ace $(SYSTEM_ACE)
@


1.1
log
@Microblaze hardware implementation without accelerators. Open with EDK7.1 or higher.
@
text
@d35 3
a37 3
	@@echo "  behavioral_model:Generates behavioral HDL models with BRAM initialization"
	@@echo "  structural_model:Generates structural simulation HDL models with BRAM initialization"
	@@echo "  timing_model    : Generates timing simulation HDL models with BRAM initialization"
a82 2
timing_model: $(TIMING_SIM_SCRIPT)

a143 1
	-xl-mode-$(DECODER_MODE)  \
d175 1
a175 1
	bash -c "cd synthesis; ./synthesis.sh; cd .."
d177 4
a180 5
$(SYSTEM_BIT): $(BMM_FILE) $(POSTSYN_NETLIST) __xps/xpsxflow.opt \
               $(UCF_FILE) $(BITGEN_UT_FILE) $(FASTRUNTIME_OPT_FILE)
	@@echo "Copying Xilinx Implementation tool scripts.."
	@@cp -f $(BITGEN_UT_FILE) implementation/bitgen.ut
	@@cp -f $(FASTRUNTIME_OPT_FILE) implementation/fast_runtime.opt
d182 2
d185 1
a185 1
	@@echo "Running Xilinx Implementation tools.."
d187 1
a187 1
	xflow -wd implementation -p $(DEVICE) -implement fast_runtime.opt $(SYSTEM).ngc
d193 1
a193 1
	@@echo "In batch mode, use commad xset pnproj <isefile>."
d208 1
a208 1
	xmd -tcl genace.tcl -jprog -hw $(DOWNLOAD_BIT) -elf $(DECODER_OUTPUT)  -ace $(SYSTEM_ACE)
@

