summaryrefslogtreecommitdiffstats
path: root/lab4/VGA_MOTOR/build/design_compiler.mk
blob: 35ed33582bd3eefead6e7c78164a8ec161f74920 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30

$(PROJNAME)-synthdir/dc/synth/synth.tcl: build/dc_synthesize.tcl
	@echo
	@echo '*** Copying synthesis script ***'
	@echo
	mkdir -p $(@D)
	cp build/dc_synthesize.tcl $(@D)/synth.tcl

$(PROJNAME)-synthdir/dc/synth/designinfo.tcl: $(S)
	@echo
	@echo '*** Generate design info script ***'
	@echo
	mkdir -p $(@D)
	rm -f $(@D)/designtmp
	echo 'set TOPLEVEL '$$(basename $$(echo $(firstword $(S)) | sed 's/\..*$$//')) >> $@.tmp
	$(foreach i,$(filter %.v,$(S)), echo 'read_verilog "$(call fixpath3,$(i))"' >> $@.tmp;)
	$(foreach i,$(filter %.sv,$(S)), echo 'read_sverilog "$(call fixpath3,$(i))"' >> $@.tmp;)
	$(foreach i,$(filter %.vhd,$(S)), echo 'read_vhdl "$(call fixpath3,$(i))"' >> $@.tmp;)
	$(foreach i,$(filter %.vhdl,$(S)), echo 'read_vhdl "$(call fixpath3,$(i))"' >> $@.tmp;)
	$(foreach i,$(filter %.v,$(S)), echo 'analyze -format verilog "$(call fixpath3,$(i))"' >> $@.tmp;)
	$(foreach i,$(filter %.sv,$(S)), echo 'analyze -format sverilog "$(call fixpath3,$(i))"' >> $@.tmp;)
	$(foreach i,$(filter %.vhd,$(S)), echo 'analyze -format vhdl "$(call fixpath3,$(i))"' >> $@.tmp;)
	$(foreach i,$(filter %.vhdl,$(S)), echo 'analyze -format vhdl "$(call fixpath3,$(i))"' >> $@.tmp;)
	mv $@.tmp $@

$(PROJNAME)-synthdir/dc/synth/design.v: $(PROJNAME)-synthdir/dc/synth/synth.tcl $(PROJNAME)-synthdir/dc/synth/designinfo.tcl $(S)
	cd $(PROJNAME)-synthdir/dc/synth; dc_shell -f synth.tcl

%.synth: 
	$(NICE) $(MAKE) -f $(firstword $(MAKEFILE_LIST)) $*-synthdir/dc/synth/design.v  PROJNAME="$*"