forked from Github_Repos/cvw
Removed TOPO flag for synthesis; implied by tsmc28psyn
This commit is contained in:
parent
6d405ad69b
commit
bfc9a462d5
@ -21,7 +21,6 @@ export MAXCORES ?= 1
|
|||||||
export MAXOPT ?= 0
|
export MAXOPT ?= 0
|
||||||
export DRIVE ?= FLOP
|
export DRIVE ?= FLOP
|
||||||
export USESRAM ?= 0
|
export USESRAM ?= 0
|
||||||
export USETOPO ?= 0
|
|
||||||
|
|
||||||
time := $(shell date +%F-%H-%M)
|
time := $(shell date +%F-%H-%M)
|
||||||
hash := $(shell git rev-parse --short HEAD)
|
hash := $(shell git rev-parse --short HEAD)
|
||||||
@ -50,18 +49,6 @@ DIRS = $(DIRS32) $(DIRS64)
|
|||||||
|
|
||||||
configs: $(CONFIG)
|
configs: $(CONFIG)
|
||||||
$(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)
|
@echo $(CONFIG)
|
||||||
cp -r $(OLDCONFIGDIR)/shared/*.vh $(CONFIGDIR)
|
cp -r $(OLDCONFIGDIR)/shared/*.vh $(CONFIGDIR)
|
||||||
cp -r $(OLDCONFIGDIR)/$(CONFIG)/* $(CONFIGDIR)
|
cp -r $(OLDCONFIGDIR)/$(CONFIG)/* $(CONFIGDIR)
|
||||||
@ -138,11 +125,10 @@ mkdirecs:
|
|||||||
synth: mkdirecs configs rundc clean
|
synth: mkdirecs configs rundc clean
|
||||||
|
|
||||||
rundc:
|
rundc:
|
||||||
ifeq ($(USETOPO), 0)
|
ifeq ($(TECH), tsmc28psyn)
|
||||||
dc_shell-xg-t -64bit -f scripts/$(NAME).tcl | tee $(OUTPUTDIR)/$(NAME).out
|
|
||||||
else
|
|
||||||
|
|
||||||
dc_shell-xg-t -64bit -topographical_mode -f scripts/$(NAME).tcl | tee $(OUTPUTDIR)/$(NAME).out
|
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
|
endif
|
||||||
|
|
||||||
|
|
||||||
|
@ -5,9 +5,9 @@ import subprocess
|
|||||||
from multiprocessing import Pool
|
from multiprocessing import Pool
|
||||||
import argparse
|
import argparse
|
||||||
|
|
||||||
def runSynth(config, mod, tech, freq, maxopt, usesram, usetopo):
|
def runSynth(config, mod, tech, freq, maxopt, usesram):
|
||||||
global pool
|
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])
|
pool.map(mask, [command])
|
||||||
|
|
||||||
def mask(command):
|
def mask(command):
|
||||||
@ -34,34 +34,32 @@ if __name__ == '__main__':
|
|||||||
parser.add_argument("-e", "--tech", choices=techs, help = "Technology")
|
parser.add_argument("-e", "--tech", choices=techs, help = "Technology")
|
||||||
parser.add_argument("-o", "--maxopt", action='store_true', help = "Turn on MAXOPT")
|
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("-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()
|
args = parser.parse_args()
|
||||||
|
|
||||||
tech = args.tech if args.tech else 'sky90'
|
tech = args.tech if args.tech else 'sky90'
|
||||||
maxopt = int(args.maxopt)
|
maxopt = int(args.maxopt)
|
||||||
usesram = int(args.usesram)
|
usesram = int(args.usesram)
|
||||||
usetopo = int(args.usetopo)
|
|
||||||
mod = 'orig'
|
mod = 'orig'
|
||||||
|
|
||||||
if args.freqsweep:
|
if args.freqsweep:
|
||||||
sc = args.freqsweep
|
sc = args.freqsweep
|
||||||
config = args.version if args.version else 'rv32e'
|
config = args.version if args.version else 'rv32e'
|
||||||
for freq in [round(sc+sc*x/100) for x in freqVaryPct]: # rv32e freq sweep
|
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:
|
elif args.configsweep:
|
||||||
defaultfreq = 1500 if tech == 'sky90' else 5000
|
defaultfreq = 1500 if tech == 'sky90' else 5000
|
||||||
freq = args.targetfreq if args.targetfreq else defaultfreq
|
freq = args.targetfreq if args.targetfreq else defaultfreq
|
||||||
for config in ['rv32i', 'rv64gc', 'rv64i', 'rv32gc', 'rv32imc', 'rv32e']: #configs
|
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:
|
elif args.featuresweep:
|
||||||
defaultfreq = 500 if tech == 'sky90' else 1500
|
defaultfreq = 500 if tech == 'sky90' else 1500
|
||||||
freq = args.targetfreq if args.targetfreq else defaultfreq
|
freq = args.targetfreq if args.targetfreq else defaultfreq
|
||||||
config = args.version if args.version else 'rv64gc'
|
config = args.version if args.version else 'rv64gc'
|
||||||
for mod in ['noFPU', 'noMulDiv', 'noPriv', 'PMP0', 'orig']:
|
for mod in ['noFPU', 'noMulDiv', 'noPriv', 'PMP0', 'orig']:
|
||||||
runSynth(config, mod, tech, freq, maxopt, usesram, usetopo)
|
runSynth(config, mod, tech, freq, maxopt, usesram)
|
||||||
else:
|
else:
|
||||||
defaultfreq = 500 if tech == 'sky90' else 1500
|
defaultfreq = 500 if tech == 'sky90' else 1500
|
||||||
freq = args.targetfreq if args.targetfreq else defaultfreq
|
freq = args.targetfreq if args.targetfreq else defaultfreq
|
||||||
config = args.version if args.version else 'rv64gc'
|
config = args.version if args.version else 'rv64gc'
|
||||||
runSynth(config, mod, tech, freq, maxopt, usesram, usetopo)
|
runSynth(config, mod, tech, freq, maxopt, usesram)
|
||||||
|
Loading…
Reference in New Issue
Block a user