mirror of
https://github.com/openhwgroup/cvw
synced 2025-01-26 06:25:20 +00:00
64 lines
1.6 KiB
Python
Executable File
64 lines
1.6 KiB
Python
Executable File
#!/usr/bin/python3
|
|
# from msilib.schema import File
|
|
import subprocess
|
|
from multiprocessing import Pool
|
|
import csv
|
|
import re
|
|
# import matplotlib.pyplot as plt
|
|
# import numpy as np
|
|
|
|
print("hi")
|
|
|
|
def run_command(module, width, freq):
|
|
command = "make synth DESIGN=ppa_{}_{} TECH=sky90 DRIVE=INV FREQ={} MAXOPT=1".format(module, width, freq)
|
|
subprocess.Popen(command, shell=True)
|
|
|
|
widths = ['16']
|
|
modules = ['shifter']
|
|
freqs = ['10']
|
|
|
|
|
|
LoT = []
|
|
for module in modules:
|
|
for width in widths:
|
|
for freq in freqs:
|
|
LoT += [[module, width, freq]]
|
|
|
|
pool = Pool()
|
|
pool.starmap(run_command, LoT)
|
|
pool.close()
|
|
|
|
bashCommand = "grep 'Critical Path Length' runs/ppa_*/reports/*qor*"
|
|
outputCPL = subprocess.check_output(['bash','-c', bashCommand])
|
|
linesCPL = outputCPL.decode("utf-8").split('\n')[:-1]
|
|
|
|
bashCommand = "grep 'Design Area' runs/ppa_*/reports/*qor*"
|
|
outputDA = subprocess.check_output(['bash','-c', bashCommand])
|
|
linesDA = outputDA.decode("utf-8").split('\n')[:-1]
|
|
|
|
cpl = re.compile('\d{1}\.\d{6}')
|
|
f = re.compile('_\d*_MHz')
|
|
wm = re.compile('ppa_\w*_\d*_qor')
|
|
da = re.compile('\d*\.\d{6}')
|
|
|
|
allSynths = []
|
|
|
|
for i in range(len(linesCPL)):
|
|
line = linesCPL[i]
|
|
oneSynth = []
|
|
mwm = wm.findall(line)[0][4:-4].split('_')
|
|
oneSynth += [mwm[0]]
|
|
oneSynth += [mwm[1]]
|
|
oneSynth += [f.findall(line)[0][1:-4]]
|
|
oneSynth += cpl.findall(line)
|
|
oneSynth += da.findall(linesDA[i])
|
|
allSynths += [oneSynth]
|
|
|
|
file = open("ppaData.csv", "w")
|
|
writer = csv.writer(file)
|
|
writer.writerow(['Module', 'Width', 'Target Freq', 'Delay', 'Area'])
|
|
|
|
for one in allSynths:
|
|
writer.writerow(one)
|
|
|
|
file.close() |