mirror of
https://github.com/openhwgroup/cvw
synced 2025-02-11 06:05:49 +00:00
wally config, freq, and path sweep synth automation
This commit is contained in:
parent
2f90292e10
commit
528ac7f7f2
@ -5,10 +5,10 @@ NAME := synth
|
|||||||
|
|
||||||
# defaults
|
# defaults
|
||||||
export DESIGN ?= wallypipelinedcore
|
export DESIGN ?= wallypipelinedcore
|
||||||
export FREQ ?= 500
|
export FREQ ?= 4000
|
||||||
export CONFIG ?= rv32e
|
export CONFIG ?= rv64gc
|
||||||
# sky130 and sky90 presently supported
|
# sky130 and sky90 presently supported
|
||||||
export TECH ?= sky130
|
export TECH ?= tsmc28
|
||||||
# MAXCORES allows parallel compilation, which is faster but less CPU-efficient
|
# MAXCORES allows parallel compilation, which is faster but less CPU-efficient
|
||||||
# Avoid when doing sweeps of many optimization points in parallel
|
# Avoid when doing sweeps of many optimization points in parallel
|
||||||
export MAXCORES ?= 4
|
export MAXCORES ?= 4
|
||||||
@ -19,7 +19,7 @@ export DRIVE ?= FLOP
|
|||||||
|
|
||||||
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)
|
||||||
export OUTPUTDIR := runs/$(DESIGN)_$(CONFIG)_$(TECH)nm_$(FREQ)_MHz_$(time)_$(hash)
|
export OUTPUTDIR := newRuns/$(DESIGN)_$(CONFIG)_$(TECH)nm_$(FREQ)_MHz_$(time)_$(hash)
|
||||||
export SAIFPOWER ?= 0
|
export SAIFPOWER ?= 0
|
||||||
|
|
||||||
CONFIGDIR ?= ${WALLY}/pipelined/config
|
CONFIGDIR ?= ${WALLY}/pipelined/config
|
||||||
|
6
synthDC/runAllSynths.sh
Executable file
6
synthDC/runAllSynths.sh
Executable file
@ -0,0 +1,6 @@
|
|||||||
|
#!/usr/bin/bash
|
||||||
|
|
||||||
|
mv runs runArchive/$(date +"%Y_%m_%d_%I_%M_%p")
|
||||||
|
mv newRuns runs
|
||||||
|
mkdir newRuns
|
||||||
|
./wallySynth.py
|
31
synthDC/wallySynth.py
Executable file
31
synthDC/wallySynth.py
Executable file
@ -0,0 +1,31 @@
|
|||||||
|
#!/usr/bin/python3
|
||||||
|
# Madeleine Masser-Frye mmasserfrye@hmc.edu 6/22
|
||||||
|
|
||||||
|
import subprocess
|
||||||
|
from multiprocessing import Pool
|
||||||
|
|
||||||
|
def runCommand(config, tech, freq):
|
||||||
|
command = "make synth DESIGN=wallypipelinedcore CONFIG={} TECH={} DRIVE=FLOP FREQ={} MAXOPT=0 MAXCORES=1".format(config, tech, freq)
|
||||||
|
subprocess.Popen(command, shell=True)
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
|
||||||
|
techs = ['sky90', 'tsmc28']
|
||||||
|
bestAchieved = [750, 3000]
|
||||||
|
synthsToRun = []
|
||||||
|
|
||||||
|
|
||||||
|
arr = [-8, -6, -4, -2, 0, 2, 4, 6, 8]
|
||||||
|
for i in [0, 1]:
|
||||||
|
tech = techs[i]
|
||||||
|
f = bestAchieved[i]
|
||||||
|
for freq in [round(f+f*x/100) for x in arr]: # rv32e freq sweep
|
||||||
|
synthsToRun += [['rv32e', tech, freq]]
|
||||||
|
for config in ['rv32gc', 'rv32ic', 'rv64gc', 'rv64i', 'rv64ic']: # configs
|
||||||
|
synthsToRun += [[config, tech, f]]
|
||||||
|
for mod in ['FPUoff', 'noMulDiv', 'noPriv', 'PMP0', 'PMP16']: # rv64gc path variations
|
||||||
|
config = 'rv64gc_' + mod
|
||||||
|
synthsToRun += [[config, tech, f]]
|
||||||
|
|
||||||
|
pool = Pool()
|
||||||
|
pool.starmap(runCommand, synthsToRun)
|
Loading…
Reference in New Issue
Block a user