Makefile 3.3 KB
Newer Older
lwc-tester committed
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 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
.PHONY: clean

YOSYS_TOOL=yosys

SYNTHESIS_SCRIPT=synth.tcl
SOURCE_SCRIPT=source.tcl

SUBTERRANEAN_SOURCE_FOLDER=../verilog_source
SYNTHESIS_FOLDER_OUTPUT=synth_output

STD_CELL_LIBRARY_FOLDER=/home/pedro/asic_cells
STD_CELL_PIN_CONSTRAINTS_FOLDER=pin_contraints
STD_CELL_TIMING_CONSTRAINT=1
STD_CELL_LIBRARY=gscl45nm

SUBTERRANEAN_ROUND_SOURCE=\
	$(SUBTERRANEAN_SOURCE_FOLDER)/subterranean_round.v

SUBTERRANEAN_ROUND_WITH_COMMUNCATION_SOURCE=\
	$(SUBTERRANEAN_ROUND_SOURCE)\
	$(SUBTERRANEAN_SOURCE_FOLDER)/subterranean_round_with_communication.v\

SUBTERRANEAN_SIMPLE_NO_COMMUNCATION_SOURCE=\
	$(SUBTERRANEAN_ROUND_SOURCE)\
	$(SUBTERRANEAN_SOURCE_FOLDER)/subterranean_simple_no_communication.v

SUBTERRANEAN_SIMPLE_AXI4_LITE_SOURCE=\
	$(SUBTERRANEAN_SIMPLE_NO_COMMUNCATION_SOURCE)\
	$(SUBTERRANEAN_SOURCE_FOLDER)/subterranean_simple_axi4_lite.v

all : subterranean_round subterranean_round_with_communication subterranean_simple_no_communication subterranean_simple_axi4_lite

subterranean_round:
	mkdir -p $(SYNTHESIS_FOLDER_OUTPUT)
	mkdir -p $(SYNTHESIS_FOLDER_OUTPUT)/$(STD_CELL_LIBRARY)
	SYNTH_TOP_UNIT_NAME="$@" SYNTH_ASIC_CELL_LOCATION="$(STD_CELL_LIBRARY_FOLDER)/$(STD_CELL_LIBRARY).lib" SYNTH_ASIC_PIN_CONSTRAINTS="$(STD_CELL_PIN_CONSTRAINTS_FOLDER)/$(STD_CELL_LIBRARY).constr" SYNTH_TIMING_CONSTRAINT="$(STD_CELL_TIMING_CONSTRAINT)" SYNTH_OUTPUT_CIRCUIT_FOLDER="$(SYNTHESIS_FOLDER_OUTPUT)/$(STD_CELL_LIBRARY)/" $(YOSYS_TOOL) -l "$(SYNTHESIS_FOLDER_OUTPUT)/$(STD_CELL_LIBRARY)/$@.yslog" -c $(SYNTHESIS_SCRIPT) -q

subterranean_round_with_communication:
	mkdir -p $(SYNTHESIS_FOLDER_OUTPUT)
	mkdir -p $(SYNTHESIS_FOLDER_OUTPUT)/$(STD_CELL_LIBRARY)
	SYNTH_TOP_UNIT_NAME="$@" SYNTH_ASIC_CELL_LOCATION="$(STD_CELL_LIBRARY_FOLDER)/$(STD_CELL_LIBRARY).lib" SYNTH_ASIC_PIN_CONSTRAINTS="$(STD_CELL_PIN_CONSTRAINTS_FOLDER)/$(STD_CELL_LIBRARY).constr" SYNTH_TIMING_CONSTRAINT="$(STD_CELL_TIMING_CONSTRAINT)" SYNTH_OUTPUT_CIRCUIT_FOLDER="$(SYNTHESIS_FOLDER_OUTPUT)/$(STD_CELL_LIBRARY)/" $(YOSYS_TOOL) -l "$(SYNTHESIS_FOLDER_OUTPUT)/$(STD_CELL_LIBRARY)/$@.yslog" -c $(SYNTHESIS_SCRIPT) -q

subterranean_simple_no_communication:
	mkdir -p $(SYNTHESIS_FOLDER_OUTPUT)
	mkdir -p $(SYNTHESIS_FOLDER_OUTPUT)/$(STD_CELL_LIBRARY)
	SYNTH_TOP_UNIT_NAME="$@" SYNTH_ASIC_CELL_LOCATION="$(STD_CELL_LIBRARY_FOLDER)/$(STD_CELL_LIBRARY).lib" SYNTH_ASIC_PIN_CONSTRAINTS="$(STD_CELL_PIN_CONSTRAINTS_FOLDER)/$(STD_CELL_LIBRARY).constr" SYNTH_TIMING_CONSTRAINT="$(STD_CELL_TIMING_CONSTRAINT)" SYNTH_OUTPUT_CIRCUIT_FOLDER="$(SYNTHESIS_FOLDER_OUTPUT)/$(STD_CELL_LIBRARY)/" $(YOSYS_TOOL) -l "$(SYNTHESIS_FOLDER_OUTPUT)/$(STD_CELL_LIBRARY)/$@.yslog" -c $(SYNTHESIS_SCRIPT) -q

subterranean_simple_axi4_lite:
	mkdir -p $(SYNTHESIS_FOLDER_OUTPUT)
	mkdir -p $(SYNTHESIS_FOLDER_OUTPUT)/$(STD_CELL_LIBRARY)
	SYNTH_TOP_UNIT_NAME="$@" SYNTH_ASIC_CELL_LOCATION="$(STD_CELL_LIBRARY_FOLDER)/$(STD_CELL_LIBRARY).lib" SYNTH_ASIC_PIN_CONSTRAINTS="$(STD_CELL_PIN_CONSTRAINTS_FOLDER)/$(STD_CELL_LIBRARY).constr" SYNTH_TIMING_CONSTRAINT="$(STD_CELL_TIMING_CONSTRAINT)" SYNTH_OUTPUT_CIRCUIT_FOLDER="$(SYNTHESIS_FOLDER_OUTPUT)/$(STD_CELL_LIBRARY)/" $(YOSYS_TOOL) -l "$(SYNTHESIS_FOLDER_OUTPUT)/$(STD_CELL_LIBRARY)/$@.yslog" -c $(SYNTHESIS_SCRIPT) -q

clean:
	@echo "Cleaning up..."
	rm -f $(SYNTHESIS_FOLDER_OUTPUT)/$(STD_CELL_LIBRARY)/*.yslog
	rm -f $(SYNTHESIS_FOLDER_OUTPUT)/$(STD_CELL_LIBRARY)/*.v
	@echo "Cleaning done."