2022-06-24 06:30:57 +00:00
|
|
|
#!/usr/bin/python3
|
|
|
|
# Madeleine Masser-Frye mmasserfrye@hmc.edu 6/22
|
|
|
|
|
|
|
|
import subprocess
|
|
|
|
from multiprocessing import Pool
|
2022-07-07 15:52:01 +00:00
|
|
|
import time
|
2022-06-24 06:30:57 +00:00
|
|
|
|
|
|
|
def runCommand(config, tech, freq):
|
2022-07-07 15:52:01 +00:00
|
|
|
commands = ["make fresh", "make synth DESIGN=wallypipelinedcore CONFIG={} TECH={} DRIVE=FLOP FREQ={} MAXOPT=0 MAXCORES=1".format(config, tech, freq)]
|
|
|
|
for c in commands:
|
|
|
|
subprocess.Popen(c, shell=True)
|
2022-07-07 16:08:21 +00:00
|
|
|
# time.sleep(60) fix only do this when diff configs
|
2022-06-24 06:30:57 +00:00
|
|
|
|
2022-06-28 02:28:13 +00:00
|
|
|
testFreq = [3000, 10000]
|
|
|
|
|
2022-06-24 06:30:57 +00:00
|
|
|
if __name__ == '__main__':
|
|
|
|
|
|
|
|
techs = ['sky90', 'tsmc28']
|
2022-07-07 15:52:01 +00:00
|
|
|
sweepCenter = [870, 2940]
|
2022-06-24 06:30:57 +00:00
|
|
|
synthsToRun = []
|
|
|
|
|
|
|
|
arr = [-8, -6, -4, -2, 0, 2, 4, 6, 8]
|
2022-07-07 15:52:01 +00:00
|
|
|
pool = Pool()
|
|
|
|
|
|
|
|
for i in [0]:
|
2022-06-24 06:30:57 +00:00
|
|
|
tech = techs[i]
|
2022-06-28 02:28:13 +00:00
|
|
|
sc = sweepCenter[i]
|
|
|
|
f = testFreq[i]
|
2022-07-07 16:08:21 +00:00
|
|
|
for freq in [round(sc+sc*x/100) for x in arr]: # rv32e freq sweep
|
|
|
|
synthsToRun += [['rv32e', tech, freq]]
|
2022-07-07 15:52:01 +00:00
|
|
|
# for config in ['rv32gc', 'rv32ic', 'rv64gc', 'rv64ic', 'rv32e']: # configs
|
|
|
|
# config = config + '_FPUoff' # while FPU under rennovation
|
|
|
|
# synthsToRun += [[config, tech, f]]
|
2022-07-07 16:08:21 +00:00
|
|
|
# for mod in ['noMulDiv', 'noPriv', 'PMP0', 'PMP16']: # rv64gc path variations
|
|
|
|
# config = 'rv64gc_' + mod
|
|
|
|
# synthsToRun += [[config, tech, f]]
|
2022-06-24 06:30:57 +00:00
|
|
|
|
2022-07-07 15:52:01 +00:00
|
|
|
for x in synthsToRun:
|
|
|
|
pool.starmap(runCommand, [x])
|