mirror of
				https://github.com/openhwgroup/cvw
				synced 2025-02-11 06:05:49 +00:00 
			
		
		
		
	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 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 | ||||
| 
 | ||||
| 
 | ||||
|  | ||||
| @ -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) | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user