diff --git a/synthDC/.synopsys_dc.setup b/synthDC/.synopsys_dc.setup index ac93f6592..ccc0c67c8 100755 --- a/synthDC/.synopsys_dc.setup +++ b/synthDC/.synopsys_dc.setup @@ -29,7 +29,6 @@ if {$tech == "sky130"} { set TLUPLUS true set mw_logic1_net VDD set mw_logic0_net VSS - set TLU_PDK /home/jstine/TLU+/ set CAPTABLE $TLU/1p8m/ set MW_REFERENCE_LIBRARY /home/jstine/MW set MW_TECH_FILE tcbn28hpcplusbwp30p140 diff --git a/synthDC/Makefile b/synthDC/Makefile index 2f505b72f..fbfb459ad 100755 --- a/synthDC/Makefile +++ b/synthDC/Makefile @@ -21,6 +21,7 @@ export MAXCORES ?= 1 export MAXOPT ?= 0 export DRIVE ?= FLOP export USESRAM ?= 1 +export USETOPO ?= 0 time := $(shell date +%F-%H-%M) hash := $(shell git rev-parse --short HEAD) @@ -30,8 +31,6 @@ export SAIFPOWER ?= 0 OLDCONFIGDIR ?= ${WALLY}/config export CONFIGDIR ?= $(OUTPUTDIR)/config - - default: @echo " Basic synthesis procedure for Wally:" @echo " Invoke with make synth" @@ -51,6 +50,18 @@ DIRS = $(DIRS32) $(DIRS64) configs: $(CONFIG) $(CONFIG): +ifeq ($(USETOPO), 0)) +ifeq ($(TECH), tsmc28psyn)) + @echo "Bad configuration: you cannot use physical synthesis without tsmc28psyn and usetopo (i.e., -topo)" + exit 1 +endif +endif +ifeq ($(USETOPO), 1)) +ifneq ($(TECH), tsmc28psyn)) + @echo "Bad configuration: you cannot use usetopo (i.e., -topo) without tsmc28psyn" + exit 1 +endif +endif @echo $(CONFIG) cp -r $(OLDCONFIGDIR)/shared/*.vh $(CONFIGDIR) cp -r $(OLDCONFIGDIR)/$(CONFIG)/* $(CONFIGDIR) @@ -124,15 +135,17 @@ mkdirecs: @mkdir -p $(OUTPUTDIR)/mapped @mkdir -p $(OUTPUTDIR)/unmapped - synth: mkdirecs configs rundc clean rundc: +ifeq ($(USETOPO), 0) dc_shell-xg-t -64bit -f scripts/$(NAME).tcl | tee $(OUTPUTDIR)/$(NAME).out +else -rundctopo: dc_shell-xg-t -64bit -topographical_mode -f scripts/$(NAME).tcl | tee $(OUTPUTDIR)/$(NAME).out - +endif + + clean: rm -rf $(OUTPUTDIR)/hdl rm -rf $(OUTPUTDIR)/WORK diff --git a/synthDC/wallySynth.py b/synthDC/wallySynth.py index 876a482d9..d89964c10 100755 --- a/synthDC/wallySynth.py +++ b/synthDC/wallySynth.py @@ -40,7 +40,7 @@ if __name__ == '__main__': tech = args.tech if args.tech else 'sky90' maxopt = int(args.maxopt) usesram = int(args.usesram) - usetopo = int(args.usetopop) + usetopo = int(args.usetopo) mod = 'orig' if args.freqsweep: