diff --git a/synthDC/Makefile b/synthDC/Makefile index 4f6b10a7b..034b2f86e 100755 --- a/synthDC/Makefile +++ b/synthDC/Makefile @@ -21,7 +21,6 @@ export MAXCORES ?= 1 export MAXOPT ?= 0 export DRIVE ?= FLOP export USESRAM ?= 0 -export USETOPO ?= 0 time := $(shell date +%F-%H-%M) hash := $(shell git rev-parse --short HEAD) @@ -50,18 +49,6 @@ 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) @@ -138,11 +125,10 @@ mkdirecs: synth: mkdirecs configs rundc clean rundc: -ifeq ($(USETOPO), 0) - dc_shell-xg-t -64bit -f scripts/$(NAME).tcl | tee $(OUTPUTDIR)/$(NAME).out -else - +ifeq ($(TECH), tsmc28psyn) dc_shell-xg-t -64bit -topographical_mode -f scripts/$(NAME).tcl | tee $(OUTPUTDIR)/$(NAME).out +else + dc_shell-xg-t -64bit -f scripts/$(NAME).tcl | tee $(OUTPUTDIR)/$(NAME).out endif diff --git a/synthDC/wallySynth.py b/synthDC/wallySynth.py index ef93da7fe..73bb58698 100755 --- a/synthDC/wallySynth.py +++ b/synthDC/wallySynth.py @@ -5,9 +5,9 @@ import subprocess from multiprocessing import Pool import argparse -def runSynth(config, mod, tech, freq, maxopt, usesram, usetopo): +def runSynth(config, mod, tech, freq, maxopt, usesram): global pool - command = "make synth DESIGN=wallypipelinedcore CONFIG={} MOD={} TECH={} DRIVE=FLOP FREQ={} MAXOPT={} USESRAM={} USETOPO={} MAXCORES=1".format(config, mod, tech, freq, maxopt, usesram, usetopo) + command = "make synth DESIGN=wallypipelinedcore CONFIG={} MOD={} TECH={} DRIVE=FLOP FREQ={} MAXOPT={} USESRAM={} MAXCORES=1".format(config, mod, tech, freq, maxopt, usesram) pool.map(mask, [command]) def mask(command): @@ -34,34 +34,32 @@ if __name__ == '__main__': parser.add_argument("-e", "--tech", choices=techs, help = "Technology") parser.add_argument("-o", "--maxopt", action='store_true', help = "Turn on MAXOPT") parser.add_argument("-r", "--usesram", action='store_true', help = "Use SRAM modules") - parser.add_argument("-topo", "--usetopo", action='store_true', help = "Run physical synthesis") args = parser.parse_args() tech = args.tech if args.tech else 'sky90' maxopt = int(args.maxopt) usesram = int(args.usesram) - usetopo = int(args.usetopo) mod = 'orig' if args.freqsweep: sc = args.freqsweep config = args.version if args.version else 'rv32e' for freq in [round(sc+sc*x/100) for x in freqVaryPct]: # rv32e freq sweep - runSynth(config, mod, tech, freq, maxopt, usesram, usetopo) + runSynth(config, mod, tech, freq, maxopt, usesram) elif args.configsweep: defaultfreq = 1500 if tech == 'sky90' else 5000 freq = args.targetfreq if args.targetfreq else defaultfreq for config in ['rv32i', 'rv64gc', 'rv64i', 'rv32gc', 'rv32imc', 'rv32e']: #configs - runSynth(config, mod, tech, freq, maxopt, usesram, usetopo) + runSynth(config, mod, tech, freq, maxopt, usesram) elif args.featuresweep: defaultfreq = 500 if tech == 'sky90' else 1500 freq = args.targetfreq if args.targetfreq else defaultfreq config = args.version if args.version else 'rv64gc' for mod in ['noFPU', 'noMulDiv', 'noPriv', 'PMP0', 'orig']: - runSynth(config, mod, tech, freq, maxopt, usesram, usetopo) + runSynth(config, mod, tech, freq, maxopt, usesram) else: defaultfreq = 500 if tech == 'sky90' else 1500 freq = args.targetfreq if args.targetfreq else defaultfreq config = args.version if args.version else 'rv64gc' - runSynth(config, mod, tech, freq, maxopt, usesram, usetopo) + runSynth(config, mod, tech, freq, maxopt, usesram)