mirror of
https://github.com/openhwgroup/cvw
synced 2025-02-11 06:05:49 +00:00
Merge branch 'main' of https://github.com/davidharrishmc/riscv-wally into main
This commit is contained in:
commit
06d4c05b3d
@ -5,6 +5,7 @@ from operator import index
|
||||
import subprocess
|
||||
import csv
|
||||
import re
|
||||
from matplotlib.cbook import flatten
|
||||
import matplotlib.pyplot as plt
|
||||
import matplotlib.lines as lines
|
||||
import matplotlib.axes as axes
|
||||
@ -29,7 +30,7 @@ def synthsintocsv():
|
||||
''' writes a CSV with one line for every available synthesis
|
||||
each line contains the module, tech, width, target freq, and resulting metrics
|
||||
'''
|
||||
|
||||
print("This takes a moment...")
|
||||
bashCommand = "find . -path '*runs/ppa*rv32e*' -prune"
|
||||
output = subprocess.check_output(['bash','-c', bashCommand])
|
||||
allSynths = output.decode("utf-8").split('\n')[:-1]
|
||||
@ -91,7 +92,7 @@ def cleanup():
|
||||
def getVals(tech, module, var, freq=None):
|
||||
''' for a specified tech, module, and variable/metric
|
||||
returns a list of values for that metric in ascending width order with the appropriate units
|
||||
works at a specified target frequency or if none is given, uses the synthesis with the min delay for each width
|
||||
works at a specified target frequency or if none is given, uses the synthesis with the best achievable delay for each width
|
||||
'''
|
||||
|
||||
if (var == 'delay'):
|
||||
@ -101,11 +102,12 @@ def getVals(tech, module, var, freq=None):
|
||||
elif (var == 'lpower'):
|
||||
units = " (nW)"
|
||||
elif (var == 'denergy'):
|
||||
units = " (pJ)"
|
||||
units = " (nJ)"
|
||||
|
||||
global widths
|
||||
metric = []
|
||||
widthL = []
|
||||
|
||||
if (freq != None):
|
||||
for oneSynth in allSynths:
|
||||
if (oneSynth.freq == freq) & (oneSynth.tech == tech) & (oneSynth.module == module):
|
||||
@ -118,7 +120,7 @@ def getVals(tech, module, var, freq=None):
|
||||
m = 100000 # large number to start
|
||||
for oneSynth in allSynths:
|
||||
if (oneSynth.width == w) & (oneSynth.tech == tech) & (oneSynth.module == module):
|
||||
if (oneSynth.delay < m):
|
||||
if (oneSynth.delay < m) & (1000/oneSynth.delay > oneSynth.freq):
|
||||
m = oneSynth.delay
|
||||
osdict = oneSynth._asdict()
|
||||
met = osdict[var]
|
||||
@ -127,6 +129,8 @@ def getVals(tech, module, var, freq=None):
|
||||
|
||||
if ('flop' in module) & (var == 'area'):
|
||||
metric = [m/2 for m in metric] # since two flops in each module
|
||||
if (var == 'denergy'):
|
||||
metric = [m*1000 for m in metric] # more practical units for regression coefs
|
||||
|
||||
return metric, units
|
||||
|
||||
@ -177,9 +181,20 @@ def oneMetricPlot(module, var, freq=None, ax=None, fits='clsgn'):
|
||||
fullLeg = []
|
||||
global techcolors
|
||||
global widths
|
||||
|
||||
metrics = ['delay', 'area', 'lpower', 'denergy']
|
||||
ind1 = metrics.index(var)
|
||||
techs = ['sky90', 'gf32', 'tsmc28']
|
||||
global norms
|
||||
|
||||
for combo in techcolors:
|
||||
tech, c, m = combo
|
||||
metric, units = getVals(tech, module, var, freq=freq)
|
||||
|
||||
ind2 = techs.index(tech)
|
||||
norm = norms[ind1][ind2]
|
||||
metric = [m/norm for m in metric] # comment out to not normalize
|
||||
|
||||
if len(metric) == 5:
|
||||
xp, pred, leg = regress(widths, metric, combo, fits)
|
||||
fullLeg += leg
|
||||
@ -191,10 +206,13 @@ def oneMetricPlot(module, var, freq=None, ax=None, fits='clsgn'):
|
||||
|
||||
ax.set_xticks(widths)
|
||||
ax.set_xlabel("Width (bits)")
|
||||
ax.set_ylabel(str.title(var) + units)
|
||||
|
||||
ylabeldic = {"lpower": "Leakage Power", "denergy": "Dynamic Energy", "area": "Area", "delay": "Delay"}
|
||||
|
||||
ax.set_ylabel(ylabeldic[var] + units)
|
||||
|
||||
if singlePlot:
|
||||
titleStr = " (target " + str(freq)+ "MHz)" if freq != None else " (best delay)"
|
||||
titleStr = " (target " + str(freq)+ "MHz)" if freq != None else " (best achievable delay)"
|
||||
ax.set_title(module + titleStr)
|
||||
plt.show()
|
||||
|
||||
@ -343,31 +361,69 @@ def squareAreaDelay(tech, mod, width):
|
||||
delaysL[ind] += [oneSynth.delay]
|
||||
areasL[ind] += [oneSynth.area]
|
||||
|
||||
fig = plt.figure()
|
||||
ax = fig.add_subplot(111)
|
||||
f, (ax1) = plt.subplots(1, 1)
|
||||
ax2 = ax1.twinx()
|
||||
|
||||
for ind in [0,1]:
|
||||
areas = areasL[ind]
|
||||
delays = delaysL[ind]
|
||||
freqs = freqsL[ind]
|
||||
|
||||
targets = freqsL[ind]
|
||||
targets = [1000/f for f in targets]
|
||||
|
||||
if ('flop' in mod): areas = [m/2 for m in areas] # since two flops in each module
|
||||
freqs, delays, areas = noOutliers(freqs, delays, areas) # comment out to see all syntheses
|
||||
targets, delays, areas = noOutliers(targets, delays, areas) # comment out to see all
|
||||
|
||||
if not ind:
|
||||
achievedDelays = delays
|
||||
|
||||
c = 'blue' if ind else 'green'
|
||||
plt.scatter(delays, areas, color=c)
|
||||
|
||||
legend_elements = [lines.Line2D([0], [0], color='green', ls='', marker='o', label='timing achieved'),
|
||||
lines.Line2D([0], [0], color='blue', ls='', marker='o', label='slack violated')]
|
||||
|
||||
plt.legend(handles=legend_elements)
|
||||
ax1.scatter(targets, delays, marker='^', color=c)
|
||||
ax2.scatter(targets, areas, marker='s', color=c)
|
||||
|
||||
plt.xlabel("Delay Achieved (ns)")
|
||||
plt.ylabel('Area (sq microns)')
|
||||
plt.title(mod + '_' + str(width))
|
||||
ax.set_aspect(1./ax.get_data_ratio())
|
||||
bestAchieved = min(achievedDelays)
|
||||
|
||||
legend_elements = [lines.Line2D([0], [0], color='green', ls='', marker='^', label='delay (timing achieved)'),
|
||||
lines.Line2D([0], [0], color='green', ls='', marker='s', label='area (timing achieved)'),
|
||||
lines.Line2D([0], [0], color='blue', ls='', marker='^', label='delay (timing violated)'),
|
||||
lines.Line2D([0], [0], color='blue', ls='', marker='s', label='area (timing violated)')]
|
||||
|
||||
ax2.legend(handles=legend_elements, loc='upper left')
|
||||
|
||||
ax1.set_xlabel("Delay Targeted (ns)")
|
||||
ax1.set_ylabel("Delay Achieved (ns)")
|
||||
ax2.set_ylabel('Area (sq microns)')
|
||||
ax1.set_title(mod + '_' + str(width))
|
||||
|
||||
squarify(f)
|
||||
|
||||
xvals = np.array(ax1.get_xlim())
|
||||
frac = (min(flatten(delaysL))-xvals[0])/(xvals[1]-xvals[0])
|
||||
areaLowerLim = min(flatten(areasL))-100
|
||||
areaUpperLim = max(flatten(areasL))/frac + areaLowerLim
|
||||
ax2.set_ylim([areaLowerLim, areaUpperLim])
|
||||
ax1.plot(xvals, xvals, ls="--", c=".3")
|
||||
ax1.hlines(y=bestAchieved, xmin=xvals[0], xmax=xvals[1], color="black", ls='--')
|
||||
|
||||
plt.show()
|
||||
|
||||
def squarify(fig):
|
||||
''' helper function for squareAreaDelay()
|
||||
forces matplotlib figure to be a square
|
||||
'''
|
||||
w, h = fig.get_size_inches()
|
||||
if w > h:
|
||||
t = fig.subplotpars.top
|
||||
b = fig.subplotpars.bottom
|
||||
axs = h*(t-b)
|
||||
l = (1.-axs/w)/2
|
||||
fig.subplots_adjust(left=l, right=1-l)
|
||||
else:
|
||||
t = fig.subplotpars.right
|
||||
b = fig.subplotpars.left
|
||||
axs = w*(t-b)
|
||||
l = (1.-axs/h)/2
|
||||
fig.subplots_adjust(bottom=l, top=1-l)
|
||||
|
||||
def adprodpow(areas, delays, pow):
|
||||
''' for each value in [areas] returns area*delay^pow
|
||||
helper function for freqPlot'''
|
||||
@ -380,15 +436,15 @@ def adprodpow(areas, delays, pow):
|
||||
|
||||
def plotPPA(mod, freq=None):
|
||||
''' for the module specified, plots width vs delay, area, leakage power, and dynamic energy with fits
|
||||
if no freq specified, uses the synthesis with min delay for each width
|
||||
if no freq specified, uses the synthesis with best achievable delay for each width
|
||||
overlays data from both techs
|
||||
'''
|
||||
fig, axs = plt.subplots(2, 2)
|
||||
oneMetricPlot(mod, 'delay', ax=axs[0,0], fits='cg', freq=freq)
|
||||
oneMetricPlot(mod, 'area', ax=axs[0,1], fits='s', freq=freq)
|
||||
oneMetricPlot(mod, 'lpower', ax=axs[1,0], fits='s', freq=freq)
|
||||
oneMetricPlot(mod, 'denergy', ax=axs[1,1], fits='s', freq=freq)
|
||||
titleStr = " (target " + str(freq)+ "MHz)" if freq != None else " (best delay)"
|
||||
oneMetricPlot(mod, 'area', ax=axs[0,1], fits='cl', freq=freq)
|
||||
oneMetricPlot(mod, 'lpower', ax=axs[1,0], fits='cl', freq=freq)
|
||||
oneMetricPlot(mod, 'denergy', ax=axs[1,1], fits='cl', freq=freq)
|
||||
titleStr = " (target " + str(freq)+ "MHz)" if freq != None else " (best achievable delay)"
|
||||
plt.suptitle(mod + titleStr)
|
||||
plt.show()
|
||||
|
||||
@ -398,13 +454,16 @@ if __name__ == '__main__':
|
||||
Synth = namedtuple("Synth", "module tech width freq delay area lpower denergy")
|
||||
techcolors = [['sky90', 'green', 'o'], ['tsmc28', 'blue', '^']] # add another list here for gf32
|
||||
widths = [8, 16, 32, 64, 128]
|
||||
norms = [[43.2, 15, 12.2], [1.96, .351, .252], [1.98, .3116, 1.09], [1, 1, 1]] # [sky, gf, tsmc][fo4, invx1area, leakage, energy]
|
||||
|
||||
# synthsintocsv() # slow, run only when new synth runs to add to csv
|
||||
|
||||
synthsfromcsv('ppaData.csv') # your csv here!
|
||||
|
||||
### examples
|
||||
# oneMetricPlot('add', 'delay')
|
||||
# freqPlot('sky90', 'comparator', 16)
|
||||
# plotPPA('add')
|
||||
squareAreaDelay('sky90', 'comparator', 16)
|
||||
# freqPlot('tsmc28', 'add', 16)
|
||||
squareAreaDelay('sky90', 'add', 32)
|
||||
squareAreaDelay('sky90', 'mult', 32)
|
||||
squareAreaDelay('sky90', 'comparator', 32)
|
||||
plotPPA('add')
|
||||
plotPPA('comparator')
|
@ -13,6 +13,7 @@ flopenr,sky90,64,5619,0.204566,4385.500035,2100.0,4.961134631999999
|
||||
comparator,sky90,128,10,0.842074,1997.240039,243.506,0.001300162256
|
||||
add,sky90,8,6896,0.144869,331.240005,219.731,0.060410373
|
||||
shiftleft,sky90,128,3484,0.313597,11188.660188,8590.0,2.418146467
|
||||
add,sky90,32,3120,0.320213,1107.40002,307.68,0.18700439200000005
|
||||
flop,sky90,128,8476,0.070789,4264.959961,2070.0,3.6420232610000003
|
||||
flopr,sky90,8,11879,0.11919,400.820003,214.285,0.662589129
|
||||
add,tsmc28,64,3000,0.312507,227.052001,1070.0,0.0621263916
|
||||
@ -41,7 +42,6 @@ shiftleft,sky90,8,10222,0.097799,394.940007,435.049,0.06836150099999999
|
||||
flopenr,sky90,64,4723,0.18608,4327.680086,2230.0,3.9400579199999997
|
||||
flop,sky90,128,15539,0.070789,4264.959961,2070.0,6.676960058000001
|
||||
alu,sky90,16,10000,0.304,3555.440059,2890.0,2.593728
|
||||
add,sky90,32,4320,0.254861,1716.960028,866.723,0.373881087
|
||||
add,tsmc28,32,21130,0.080875,367.668003,1860.0,0.15414775
|
||||
flop,sky90,8,14409,0.070789,266.559998,129.629,0.3870813309
|
||||
comparator,sky90,64,4636,0.215691,2072.700029,1840.0,0.345752673
|
||||
@ -50,6 +50,7 @@ add,tsmc28,8,9092,0.108452,21.42,108.14,0.0057154204
|
||||
add,sky90,16,4174,0.239287,549.780011,304.811,0.103371984
|
||||
alu,sky90,16,3524,0.29417,3599.540061,2670.0,0.90839696
|
||||
priorityonehot,sky90,8,21600,0.054084,157.780003,56.585,0.0190267512
|
||||
add,sky90,32,4368,0.268519,1731.660029,883.74,0.399824791
|
||||
shiftleft,sky90,32,6375,0.159792,3330.040049,3530.0,0.627343392
|
||||
priorityonehot,sky90,128,5185,0.274609,2437.260036,1210.0,0.250718017
|
||||
add,tsmc28,128,6900,0.144862,733.320004,3010.0,0.22192858399999998
|
||||
@ -59,8 +60,8 @@ csa,sky90,128,16929,0.060643,4264.960083,3260.0,1.3935761400000002
|
||||
shiftleft,sky90,32,6250,0.159977,2964.500038,3130.0,0.547281317
|
||||
flopr,sky90,64,6988,0.11201,2728.319991,1360.0,2.4349853899999996
|
||||
flop,sky90,64,19777,0.070789,2132.47998,1040.0,4.249180514000001
|
||||
add,sky90,32,3680,0.271527,1465.100024,591.825,0.289176255
|
||||
priorityonehot,sky90,8,22800,0.054084,157.780003,56.585,0.0200976144
|
||||
add,sky90,32,3744,0.29863,1565.060028,830.413,0.31117246000000004
|
||||
floprasync,sky90,8,15000,0.071444,362.600007,161.167,0.40944556400000004
|
||||
mult,sky90,64,657,1.52205,69763.260863,23900.0,57.09818369999999
|
||||
decoder,sky90,8,26064,0.037953,49.980001,39.023,0.0030893742000000003
|
||||
@ -145,7 +146,6 @@ add,sky90,16,4595,0.221986,817.320014,742.91,0.15871998999999998
|
||||
flopenr,sky90,16,5285,0.169538,1127.000031,688.586,0.8848188220000001
|
||||
priorityencoder,sky90,128,7500,0.113763,1058.400021,117.974,0.040499627999999996
|
||||
priorityencoder,sky90,8,10131,0.104625,85.260002,26.481,0.0075225375
|
||||
add,sky90,32,4800,0.258491,1955.100033,1070.0,0.5043159410000001
|
||||
add,tsmc28,8,7880,0.123121,20.538,106.097,0.0054665724
|
||||
decoder,sky90,8,30334,0.032475,70.560001,88.439,0.006699592499999999
|
||||
add,tsmc28,16,6443,0.138825,50.274,244.477,0.012882959999999999
|
||||
@ -190,6 +190,7 @@ mult,sky90,32,944,1.085045,32407.620517,26800.0,28.648443135
|
||||
shiftleft,sky90,16,10769,0.131174,1153.460019,1350.0,0.26549617600000003
|
||||
add,tsmc28,16,3000,0.32096,41.202,203.505,0.0116572672
|
||||
add,tsmc28,128,8400,0.119042,1050.084009,4830.0,0.29831925200000003
|
||||
add,sky90,32,3978,0.280475,1768.90003,1000.0,0.34245997499999997
|
||||
mult,sky90,32,4000,1.091389,31262.980534,24900.0,123.890113724
|
||||
priorityencoder,sky90,8,9176,0.104625,85.260002,26.481,0.006821550000000001
|
||||
floprasync,sky90,128,7500,0.071444,5785.920113,2580.0,3.3043564439999997
|
||||
@ -219,7 +220,6 @@ add,sky90,8,6355,0.157048,343.980005,234.605,0.064546728
|
||||
csa,sky90,64,22360,0.060643,2195.200043,1740.0,0.937237565
|
||||
priorityencoder,sky90,32,9184,0.111067,293.020006,53.82,0.015460526399999999
|
||||
decoder,sky90,16,28542,0.039572,499.800013,875.782,0.058249984000000005
|
||||
add,sky90,32,4160,0.253175,2031.540036,1240.0,0.41900462499999996
|
||||
shiftleft,sky90,8,11111,0.091007,491.960005,678.321,0.07371567000000001
|
||||
alu,sky90,16,2073,0.481803,1688.540032,395.679,0.278963937
|
||||
priorityonehot,sky90,128,3407,0.293484,1910.02003,670.082,0.107415144
|
||||
@ -253,6 +253,7 @@ add,tsmc28,8,7500,0.131988,20.916,106.321,0.0055698936
|
||||
flopr,sky90,16,9317,0.10124,776.160012,486.897,0.78248396
|
||||
priorityencoder,sky90,8,9749,0.104625,85.260002,26.481,0.0072505124999999995
|
||||
csa,sky90,8,15971,0.062613,203.840004,117.131,0.0491950341
|
||||
add,sky90,32,4680,0.257118,1882.58003,1100.0,0.439157544
|
||||
mult,sky90,128,584,1.712328,298800.044147,115000.0,257.92111732800004
|
||||
priorityonehot,sky90,8,18400,0.054629,109.760001,31.371,0.009920626399999998
|
||||
comparator,sky90,8,10909,0.11361,387.1,565.114,0.0965685
|
||||
@ -274,6 +275,7 @@ comparator,sky90,16,7200,0.15891,771.260013,1090.0,0.12331416
|
||||
shiftleft,sky90,128,2968,0.33687,9142.420162,5660.0,1.7459972099999999
|
||||
flop,sky90,32,13279,0.070789,1066.23999,518.516,1.4265894803
|
||||
decoder,sky90,32,7500,0.115541,147.000003,15.758,0.006470296
|
||||
add,sky90,32,3588,0.278585,1182.860022,345.668,0.22342517000000003
|
||||
decoder,sky90,128,7658,0.130462,549.78001,153.219,0.041225991999999996
|
||||
mult,sky90,16,1122,0.891172,6478.780105,3540.0,4.677761828
|
||||
shifter,sky90,16,5000,0.209586,2120.720031,2150.0,0.46528091999999993
|
||||
@ -307,8 +309,10 @@ flopr,sky90,128,15000,0.125811,5740.839996,3160.0,11.995198173
|
||||
flopr,sky90,64,12112,0.101659,2816.520013,1550.0,3.8755460570000007
|
||||
add,sky90,128,2615,0.390136,6662.040117,2450.0,1.2094216
|
||||
flop,sky90,128,13561,0.070789,4264.959961,2070.0,5.826996535
|
||||
add,sky90,32,3900,0.280206,1679.720027,892.235,0.337928436
|
||||
comparator,sky90,64,4727,0.225291,2499.000023,2710.0,0.465000624
|
||||
add,sky90,8,7708,0.161451,407.680008,375.802,0.084923226
|
||||
add,sky90,32,4056,0.253823,1918.840034,1040.0,0.38657242900000005
|
||||
add,tsmc28,16,16300,0.067336,189.63,1050.0,0.04902060799999999
|
||||
priorityencoder,sky90,32,10000,0.111067,293.020006,53.82,0.016882183999999998
|
||||
decoder,sky90,8,29973,0.032971,66.640001,78.184,0.0064062653
|
||||
@ -337,6 +341,7 @@ add,tsmc28,128,8232,0.121475,945.504008,4240.0,0.27429055
|
||||
shiftleft,sky90,8,7500,0.132768,218.540002,147.871,0.034785216
|
||||
priorityencoder,sky90,64,9782,0.112447,546.840011,77.149,0.028561538
|
||||
add,tsmc28,64,7202,0.138773,305.424001,1310.0,0.09256159100000001
|
||||
add,sky90,32,3333,0.299576,1153.460022,384.333,0.20880447200000002
|
||||
add,tsmc28,128,6720,0.148758,707.742004,2940.0,0.21629413200000003
|
||||
mult,sky90,32,852,1.173643,23514.120391,12700.0,21.016425201
|
||||
mult,sky90,32,741,1.349466,17389.120212,4650.0,10.286979318
|
||||
@ -380,7 +385,6 @@ priorityonehot,sky90,16,15000,0.086192,739.900005,1110.0,0.11920353600000001
|
||||
shiftleft,sky90,128,3355,0.309977,11750.200195,9570.0,2.415650761
|
||||
add,sky90,8,7437,0.151519,495.880011,457.493,0.09409329899999999
|
||||
flop,sky90,64,14974,0.070789,2132.47998,1040.0,3.217289261
|
||||
add,sky90,32,3920,0.273454,2044.280039,1330.0,0.41154826999999994
|
||||
csa,sky90,64,15971,0.062613,1630.720032,943.002,0.39320964
|
||||
alu,sky90,16,2764,0.361248,2302.020041,1050.0,0.497438496
|
||||
add,sky90,16,6307,0.225596,1023.12002,1010.0,0.281769404
|
||||
@ -419,7 +423,6 @@ add,tsmc28,8,14791,0.06639,27.468,134.31,0.007946883
|
||||
flopenr,sky90,16,20000,0.189692,1098.580025,591.454,4.502529312
|
||||
shiftleft,sky90,64,4348,0.23035,5490.940094,4500.0,1.0674419000000002
|
||||
flop,sky90,8,14126,0.070789,266.559998,129.629,0.37948567120000004
|
||||
add,sky90,32,3200,0.312424,1121.120021,296.836,0.203700448
|
||||
shiftleft,sky90,16,8154,0.128748,1062.320016,1070.0,0.17020485600000002
|
||||
shiftleft,sky90,8,11333,0.092595,545.860006,815.115,0.089168985
|
||||
priorityonehot,sky90,16,10667,0.09706,282.240005,85.616,0.025555897999999997
|
||||
@ -431,6 +434,7 @@ csa,sky90,16,17249,0.060643,533.12001,432.126,0.178714921
|
||||
shiftleft,sky90,8,11778,0.091769,674.240011,1040.0,0.101037669
|
||||
add,sky90,128,2718,0.407908,7287.280117,3350.0,1.463573904
|
||||
floprasync,sky90,128,15000,0.071444,5785.920113,2580.0,6.602568704
|
||||
add,sky90,32,3666,0.278178,1498.420028,715.058,0.276508932
|
||||
alu,sky90,32,3128,0.389409,5641.860104,2720.0,1.566592407
|
||||
priorityonehot,sky90,32,7067,0.141491,1078.980015,1580.0,0.14389634700000004
|
||||
floprasync,sky90,8,10000,0.071444,362.600007,161.167,0.2729375132
|
||||
@ -500,6 +504,7 @@ flopr,sky90,8,10947,0.11919,403.760003,218.217,0.60977604
|
||||
add,sky90,16,10,2.032906,221.479998,55.29,0.0012902854382000001
|
||||
flopr,sky90,128,10947,0.172973,5340.020018,2310.0,10.278747551999999
|
||||
shiftleft,sky90,64,4261,0.234657,5289.060089,3950.0,0.980396946
|
||||
add,sky90,32,3822,0.282243,1657.18003,864.512,0.31752337500000005
|
||||
priorityonehot,sky90,16,13333,0.077249,976.080015,1550.0,0.164694868
|
||||
flopenr,sky90,128,6637,0.228828,8134.980007,3210.0,11.399295648
|
||||
shiftleft,sky90,64,6087,0.227478,6715.940117,5940.0,1.7761482240000002
|
||||
@ -583,6 +588,7 @@ add,tsmc28,128,5040,0.197577,488.502002,2230.0,0.143045748
|
||||
add,sky90,16,4144,0.240621,555.660011,274.571,0.092639085
|
||||
alu,sky90,64,2409,0.452715,12468.540233,6180.0,2.755676205
|
||||
add,sky90,16,2609,0.375085,405.720008,52.28,0.050598966499999995
|
||||
add,sky90,32,4134,0.25292,1966.860033,1110.0,0.40720119999999993
|
||||
alu,sky90,128,2061,0.515343,27812.400516,13300.0,6.941154867
|
||||
priorityonehot,sky90,64,4762,0.212289,1107.400013,650.606,0.09828980699999999
|
||||
mult,sky90,8,1709,0.599356,2453.920037,2010.0,1.442649892
|
||||
@ -594,7 +600,6 @@ csa,sky90,32,16929,0.060643,1066.240021,827.644,0.348818536
|
||||
csa,sky90,32,22360,0.060643,1097.600021,868.175,0.468891676
|
||||
add,tsmc28,32,15394,0.081095,348.768003,1770.0,0.110694675
|
||||
add,tsmc28,16,25000,0.066258,202.608001,1140.0,0.082027404
|
||||
add,sky90,32,2400,0.41509,958.440019,151.083,0.1286779
|
||||
csa,sky90,16,12777,0.067531,329.280006,134.949,0.0528362544
|
||||
decoder,sky90,8,39096,0.030694,184.240003,330.692,0.021700658
|
||||
add,sky90,128,2359,0.423881,5520.340104,1490.0,0.846490357
|
||||
@ -615,7 +620,6 @@ alu,sky90,32,10000,0.384364,6083.84011,3640.0,5.60018348
|
||||
flopr,sky90,32,20000,0.085865,1540.560029,1070.0,2.7735253650000002
|
||||
flop,sky90,8,13279,0.070789,266.559998,129.629,0.35677656
|
||||
csa,sky90,8,18207,0.060643,266.560005,213.306,0.0942877364
|
||||
add,sky90,32,6000,0.271774,1746.36003,955.901,0.5761608800000001
|
||||
flop,sky90,64,13844,0.070789,2132.47998,1040.0,2.974482991
|
||||
csa,sky90,128,16820,0.060643,4264.960083,3260.0,1.384661619
|
||||
floprasync,sky90,8,8398,0.071444,362.600007,161.167,0.229263796
|
||||
@ -660,15 +664,16 @@ add,sky90,64,2788,0.358537,2637.180048,758.693,0.45928589700000005
|
||||
flop,sky90,128,14126,0.070789,4264.959961,2070.0,6.069802805000001
|
||||
flop,sky90,32,12996,0.070789,1066.23999,518.516,1.3962139204
|
||||
decoder,sky90,8,35838,0.030694,237.160005,420.74,0.025291855999999998
|
||||
add,sky90,32,3840,0.291206,1547.420027,784.112,0.299650974
|
||||
add,tsmc28,64,7500,0.133293,307.944001,1320.0,0.09437144399999998
|
||||
alu,sky90,32,2398,0.416982,5257.700098,2000.0,1.094160768
|
||||
add,tsmc28,128,7728,0.129394,854.910008,3690.0,0.25193011800000004
|
||||
add,sky90,32,3432,0.290785,1156.400022,335.133,0.20762049
|
||||
flopenr,sky90,64,2892,0.298899,3245.75997,644.425,1.6744321980000003
|
||||
priorityonehot,sky90,128,4000,0.253946,2661.680036,1330.0,0.210521234
|
||||
floprasync,sky90,32,13997,0.071444,1446.480028,643.984,1.539332424
|
||||
csa,sky90,32,16291,0.060643,1066.240021,825.615,0.33547707600000004
|
||||
flopenr,sky90,64,4627,0.20887,3954.300054,1660.0,3.0662116000000004
|
||||
add,sky90,32,2340,0.42591,958.440019,152.032,0.12734709000000002
|
||||
mux2,sky90,1,10,0.060639,6.86,1.19,3.1229084999999996e-07
|
||||
flop,sky90,64,10000,0.070789,2132.47998,1040.0,2.1485735702000004
|
||||
decoder,sky90,8,33883,0.030694,263.620004,439.421,0.027102802
|
||||
@ -695,6 +700,7 @@ decoder,sky90,16,25538,0.039572,265.580003,416.038,0.028729272
|
||||
flopenr,sky90,64,5836,0.198621,4564.840035,2580.0,4.922821485
|
||||
shiftleft,sky90,8,10444,0.095384,335.160004,328.601,0.060759608
|
||||
add,sky90,8,5409,0.182541,209.720004,99.155,0.041436807000000006
|
||||
add,sky90,32,4212,0.276372,1701.280028,896.35,0.33496286399999997
|
||||
add,tsmc28,32,1000,0.912322,67.157999,231.062,0.0220781924
|
||||
flopenr,sky90,32,5764,0.185375,2024.679996,668.031,1.3873465
|
||||
flop,sky90,32,15000,0.070789,1066.23999,518.516,1.6115399006000002
|
||||
@ -707,6 +713,7 @@ mult,sky90,16,976,1.024406,4960.760064,1320.0,2.087739428
|
||||
add,tsmc28,16,6443,0.138825,50.274,244.477,0.012882959999999999
|
||||
csa,sky90,128,18139,0.060643,4264.960083,3260.0,1.492970017
|
||||
comparator,sky90,64,4364,0.229142,1709.120026,1020.0,0.276803536
|
||||
add,sky90,32,5460,0.27667,1690.500029,859.028,0.45456881
|
||||
alu,sky90,32,2659,0.384337,6206.340103,3560.0,1.485846842
|
||||
flopenr,sky90,64,5079,0.203824,4340.420085,2230.0,4.60947976
|
||||
add,tsmc28,8,9056,0.108551,21.42,107.887,0.0057749132
|
||||
@ -718,7 +725,6 @@ decoder,sky90,8,24773,0.04026,44.100001,23.272,0.002604822
|
||||
mult,sky90,8,1855,0.605444,2332.40004,1740.0,1.4470111599999997
|
||||
flopenr,sky90,64,5013,0.228449,4007.220058,1760.0,3.779231807
|
||||
add,sky90,8,25000,0.151154,660.520013,864.531,0.39103539800000003
|
||||
add,sky90,32,10,4.160501,456.679995,112.161,0.005429453805000001
|
||||
shiftleft,sky90,16,7231,0.138234,1233.820018,1400.0,0.21619797600000001
|
||||
add,tsmc28,64,9413,0.106226,423.108003,1900.0,0.12534668
|
||||
decoder,sky90,8,10000,0.085629,37.240001,2.355,0.0012364827599999997
|
||||
@ -853,6 +859,7 @@ add,tsmc28,32,14791,0.079295,378.630002,1900.0,0.11220242500000001
|
||||
decoder,sky90,8,25279,0.038956,48.020001,35.206,0.0031047931999999994
|
||||
add,tsmc28,64,7732,0.129331,331.128002,1450.0,0.102042159
|
||||
flopr,sky90,64,10714,0.17183,2815.540026,1390.0,5.43756035
|
||||
add,sky90,32,2631,0.379925,977.060019,169.107,0.140952175
|
||||
priorityonehot,sky90,16,10000,0.099923,281.260004,117.94,0.02398152
|
||||
mult,sky90,8,10,2.076433,1009.399998,211.637,0.005689426420000001
|
||||
decoder,sky90,128,17868,0.101057,1072.12001,985.334,0.202922456
|
||||
@ -938,7 +945,6 @@ mult,sky90,8,1091,0.915221,1167.180013,211.892,0.30293815099999993
|
||||
add,sky90,64,3636,0.330032,3266.340054,1220.0,0.79537712
|
||||
flop,sky90,128,14692,0.070789,4264.959961,2070.0,6.313033809
|
||||
add,tsmc28,8,15000,0.06579,28.728,137.18,0.008302698
|
||||
add,sky90,32,4080,0.256294,1991.360031,1240.0,0.408532636
|
||||
shiftleft,sky90,16,10000,0.128994,1192.660017,1420.0,0.242379726
|
||||
mult,sky90,64,10,14.7933,46798.920227,5460.0,2.7101325599999995
|
||||
floprasync,sky90,16,14557,0.071444,723.240014,321.992,0.798601032
|
||||
@ -948,7 +954,6 @@ mult,sky90,128,10,29.334627,180734.540854,18000.0,22.264981893
|
||||
flop,sky90,64,15539,0.070789,2132.47998,1040.0,3.3386216070000003
|
||||
add,tsmc28,8,12074,0.081502,23.31,115.92,0.0062838042000000005
|
||||
flopr,sky90,128,12811,0.174211,5123.439977,1890.0,10.893762252
|
||||
add,sky90,32,5000,0.2505,1933.540033,1030.0,0.4726935
|
||||
mult,sky90,64,714,1.400528,87215.101373,43900.0,85.31176259200001
|
||||
alu,sky90,64,2496,0.442869,12618.480223,6700.0,2.9570363129999997
|
||||
priorityencoder,sky90,8,10323,0.104625,85.260002,26.481,0.0076690125
|
||||
@ -977,7 +982,6 @@ alu,sky90,64,2365,0.452964,12152.980222,6200.0,2.5982015040000004
|
||||
priorityonehot,sky90,16,11111,0.089821,300.860005,305.978,0.029281646
|
||||
comparator,sky90,32,5474,0.192304,1188.740012,1430.0,0.20691910400000002
|
||||
flopenr,sky90,32,4803,0.217601,2179.52003,1080.0,2.520907585
|
||||
add,sky90,32,4240,0.268332,1829.660028,1090.0,0.373518144
|
||||
csa,sky90,32,17568,0.060643,1066.240021,827.644,0.36203871
|
||||
comparator,sky90,128,4000,0.268954,4027.800041,3660.0,0.679377804
|
||||
decoder,sky90,8,31928,0.031295,106.82,190.81,0.010796775
|
||||
@ -988,7 +992,6 @@ add,tsmc28,32,8620,0.115079,146.538001,644.995,0.045571284000000004
|
||||
flop,sky90,16,16104,0.070789,533.119995,259.258,0.8651406846
|
||||
add,tsmc28,64,5043,0.178584,231.210001,1080.0,0.06107572799999999
|
||||
priorityonehot,sky90,16,15556,0.088601,610.540002,811.656,0.097726903
|
||||
add,sky90,32,5600,0.254525,1871.800028,877.446,0.50039615
|
||||
shiftleft,sky90,128,3871,0.303026,12747.840208,11600.0,3.235408602
|
||||
flop,sky90,8,12996,0.070789,266.559998,129.629,0.34911011129999997
|
||||
shiftleft,sky90,64,4435,0.24668,5129.320094,4030.0,1.0940258000000003
|
||||
@ -1084,7 +1087,6 @@ floprasync,sky90,128,13437,0.071444,5785.920113,2580.0,5.9146344279999985
|
||||
shiftleft,sky90,128,3032,0.329767,9579.500162,6250.0,1.8898946769999998
|
||||
flopr,sky90,32,12578,0.101547,1445.500023,882.979,2.039469948
|
||||
alu,sky90,128,2217,0.514448,27540.940502,14000.0,7.25886128
|
||||
add,sky90,32,3760,0.278449,1689.520028,834.387,0.323279289
|
||||
csa,sky90,128,16610,0.060643,4264.960083,3260.0,1.3673783640000001
|
||||
floprasync,sky90,64,14557,0.071444,2892.960056,1290.0,3.203048852
|
||||
flopenr,sky90,16,4228,0.180729,842.799992,176.142,0.3973688523
|
||||
@ -1093,6 +1095,7 @@ priorityonehot,sky90,32,7200,0.143094,1101.520018,1470.0,0.16956639
|
||||
comparator,sky90,8,8545,0.116724,205.800003,165.947,0.041670467999999995
|
||||
mult,sky90,128,528,1.893939,255011.682875,66500.0,175.06625146500002
|
||||
shiftleft,sky90,64,10000,0.23373,6486.620108,6060.0,3.09762369
|
||||
add,sky90,32,2857,0.349019,998.620019,202.848,0.164736968
|
||||
flop,sky90,16,13561,0.070789,533.119995,259.258,0.7285179146000001
|
||||
priorityonehot,sky90,16,5000,0.196212,130.340003,29.8,0.005788254
|
||||
mult,sky90,8,5000,0.552339,4261.040075,5050.0,5.394142674
|
||||
@ -1102,7 +1105,6 @@ comparator,sky90,16,8000,0.158838,801.640006,1190.0,0.15169029
|
||||
flopenr,sky90,8,9518,0.148606,636.020015,366.016,0.9204655639999999
|
||||
alu,sky90,16,3455,0.289435,3445.680058,2290.0,0.80289269
|
||||
add,tsmc28,8,21130,0.050365,90.846,513.587,0.020700015
|
||||
add,sky90,32,4000,0.280842,1730.680031,849.828,0.358635234
|
||||
priorityonehot,sky90,16,10222,0.097791,313.600004,134.808,0.026892525000000004
|
||||
flopr,sky90,128,12112,0.177282,5399.800033,2390.0,11.989758942
|
||||
flopr,sky90,8,12112,0.11919,400.820003,214.285,0.675533163
|
||||
|
|
Loading…
Reference in New Issue
Block a user