Removed TOPO flag for synthesis; implied by tsmc28psyn

This commit is contained in:
David Harris 2023-02-19 07:00:16 -08:00
parent 527566c38a
commit 17525b67cc
2 changed files with 9 additions and 25 deletions

View file

@ -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

View file

@ -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)