mirror of
				https://github.com/openhwgroup/cvw
				synced 2025-02-11 06:05:49 +00:00 
			
		
		
		
	plotting updates, normalization
This commit is contained in:
		
							parent
							
								
									5a0889016c
								
							
						
					
					
						commit
						7447f9fbf4
					
				| @ -5,6 +5,7 @@ from operator import index | |||||||
| import subprocess | import subprocess | ||||||
| import csv | import csv | ||||||
| import re | import re | ||||||
|  | from matplotlib.cbook import flatten | ||||||
| import matplotlib.pyplot as plt | import matplotlib.pyplot as plt | ||||||
| import matplotlib.lines as lines | import matplotlib.lines as lines | ||||||
| import matplotlib.axes as axes | import matplotlib.axes as axes | ||||||
| @ -29,7 +30,7 @@ def synthsintocsv(): | |||||||
|     ''' writes a CSV with one line for every available synthesis |     ''' writes a CSV with one line for every available synthesis | ||||||
|         each line contains the module, tech, width, target freq, and resulting metrics |         each line contains the module, tech, width, target freq, and resulting metrics | ||||||
|     ''' |     ''' | ||||||
|      |     print("This takes a moment...") | ||||||
|     bashCommand = "find . -path '*runs/ppa*rv32e*' -prune" |     bashCommand = "find . -path '*runs/ppa*rv32e*' -prune" | ||||||
|     output = subprocess.check_output(['bash','-c', bashCommand]) |     output = subprocess.check_output(['bash','-c', bashCommand]) | ||||||
|     allSynths = output.decode("utf-8").split('\n')[:-1] |     allSynths = output.decode("utf-8").split('\n')[:-1] | ||||||
| @ -91,7 +92,7 @@ def cleanup(): | |||||||
| def getVals(tech, module, var, freq=None): | def getVals(tech, module, var, freq=None): | ||||||
|     ''' for a specified tech, module, and variable/metric |     ''' for a specified tech, module, and variable/metric | ||||||
|         returns a list of values for that metric in ascending width order with the appropriate units |         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'): |     if (var == 'delay'): | ||||||
| @ -101,11 +102,12 @@ def getVals(tech, module, var, freq=None): | |||||||
|     elif (var == 'lpower'): |     elif (var == 'lpower'): | ||||||
|         units = " (nW)" |         units = " (nW)" | ||||||
|     elif (var == 'denergy'): |     elif (var == 'denergy'): | ||||||
|         units = " (pJ)" |         units = " (nJ)" | ||||||
| 
 | 
 | ||||||
|     global widths |     global widths | ||||||
|     metric = [] |     metric = [] | ||||||
|     widthL = [] |     widthL = [] | ||||||
|  | 
 | ||||||
|     if (freq != None): |     if (freq != None): | ||||||
|         for oneSynth in allSynths: |         for oneSynth in allSynths: | ||||||
|             if (oneSynth.freq == freq) & (oneSynth.tech == tech) & (oneSynth.module == module): |             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 |             m = 100000 # large number to start | ||||||
|             for oneSynth in allSynths: |             for oneSynth in allSynths: | ||||||
|                 if (oneSynth.width == w) & (oneSynth.tech == tech) & (oneSynth.module == module): |                 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 |                         m = oneSynth.delay | ||||||
|                         osdict = oneSynth._asdict() |                         osdict = oneSynth._asdict() | ||||||
|                         met = osdict[var] |                         met = osdict[var] | ||||||
| @ -127,6 +129,8 @@ def getVals(tech, module, var, freq=None): | |||||||
| 
 | 
 | ||||||
|     if ('flop' in module) & (var == 'area'): |     if ('flop' in module) & (var == 'area'): | ||||||
|         metric = [m/2 for m in metric] # since two flops in each module  |         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 |     return metric, units | ||||||
| 
 | 
 | ||||||
| @ -177,9 +181,20 @@ def oneMetricPlot(module, var, freq=None, ax=None, fits='clsgn'): | |||||||
|     fullLeg = [] |     fullLeg = [] | ||||||
|     global techcolors |     global techcolors | ||||||
|     global widths |     global widths | ||||||
|  | 
 | ||||||
|  |     metrics = ['delay', 'area', 'lpower', 'denergy'] | ||||||
|  |     ind1 = metrics.index(var) | ||||||
|  |     techs = ['sky90', 'gf32', 'tsmc28'] | ||||||
|  |     global norms | ||||||
|  | 
 | ||||||
|     for combo in techcolors: |     for combo in techcolors: | ||||||
|         tech, c, m = combo |         tech, c, m = combo | ||||||
|         metric, units = getVals(tech, module, var, freq=freq) |         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: |         if len(metric) == 5: | ||||||
|             xp, pred, leg = regress(widths, metric, combo, fits) |             xp, pred, leg = regress(widths, metric, combo, fits) | ||||||
|             fullLeg += leg |             fullLeg += leg | ||||||
| @ -191,10 +206,13 @@ def oneMetricPlot(module, var, freq=None, ax=None, fits='clsgn'): | |||||||
| 
 | 
 | ||||||
|     ax.set_xticks(widths) |     ax.set_xticks(widths) | ||||||
|     ax.set_xlabel("Width (bits)") |     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: |     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) |         ax.set_title(module + titleStr) | ||||||
|         plt.show() |         plt.show() | ||||||
| 
 | 
 | ||||||
| @ -343,31 +361,69 @@ def squareAreaDelay(tech, mod, width): | |||||||
|             delaysL[ind] += [oneSynth.delay] |             delaysL[ind] += [oneSynth.delay] | ||||||
|             areasL[ind] += [oneSynth.area] |             areasL[ind] += [oneSynth.area] | ||||||
| 
 | 
 | ||||||
|     fig = plt.figure() |     f, (ax1) = plt.subplots(1, 1) | ||||||
|     ax = fig.add_subplot(111) |     ax2 = ax1.twinx() | ||||||
| 
 | 
 | ||||||
|     for ind in [0,1]: |     for ind in [0,1]: | ||||||
|         areas = areasL[ind] |         areas = areasL[ind] | ||||||
|         delays = delaysL[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 |         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' |         c = 'blue' if ind else 'green' | ||||||
|         plt.scatter(delays, areas, color=c) |         ax1.scatter(targets, delays, marker='^', color=c) | ||||||
| 
 |         ax2.scatter(targets, areas, marker='s', 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) |  | ||||||
|      |      | ||||||
|     plt.xlabel("Delay Achieved (ns)") |     bestAchieved = min(achievedDelays) | ||||||
|     plt.ylabel('Area (sq microns)') |          | ||||||
|     plt.title(mod + '_' + str(width)) |     legend_elements = [lines.Line2D([0], [0], color='green', ls='', marker='^', label='delay (timing achieved)'), | ||||||
|     ax.set_aspect(1./ax.get_data_ratio()) |                        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() |     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): | def adprodpow(areas, delays, pow): | ||||||
|     ''' for each value in [areas] returns area*delay^pow |     ''' for each value in [areas] returns area*delay^pow | ||||||
|         helper function for freqPlot''' |         helper function for freqPlot''' | ||||||
| @ -380,15 +436,15 @@ def adprodpow(areas, delays, pow): | |||||||
| 
 | 
 | ||||||
| def plotPPA(mod, freq=None): | def plotPPA(mod, freq=None): | ||||||
|     ''' for the module specified, plots width vs delay, area, leakage power, and dynamic energy with fits |     ''' 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 |         overlays data from both techs | ||||||
|     ''' |     ''' | ||||||
|     fig, axs = plt.subplots(2, 2) |     fig, axs = plt.subplots(2, 2) | ||||||
|     oneMetricPlot(mod, 'delay', ax=axs[0,0], fits='cg', freq=freq) |     oneMetricPlot(mod, 'delay', ax=axs[0,0], fits='cg', freq=freq) | ||||||
|     oneMetricPlot(mod, 'area', ax=axs[0,1], fits='s', freq=freq) |     oneMetricPlot(mod, 'area', ax=axs[0,1], fits='cl', freq=freq) | ||||||
|     oneMetricPlot(mod, 'lpower', ax=axs[1,0], fits='s', freq=freq) |     oneMetricPlot(mod, 'lpower', ax=axs[1,0], fits='cl', freq=freq) | ||||||
|     oneMetricPlot(mod, 'denergy', ax=axs[1,1], fits='s', freq=freq) |     oneMetricPlot(mod, 'denergy', ax=axs[1,1], fits='cl', freq=freq) | ||||||
|     titleStr = "  (target  " + str(freq)+ "MHz)" if freq != None else " (best delay)" |     titleStr = "  (target  " + str(freq)+ "MHz)" if freq != None else " (best achievable delay)" | ||||||
|     plt.suptitle(mod + titleStr) |     plt.suptitle(mod + titleStr) | ||||||
|     plt.show() |     plt.show() | ||||||
|      |      | ||||||
| @ -398,13 +454,16 @@ if __name__ == '__main__': | |||||||
|     Synth = namedtuple("Synth", "module tech width freq delay area lpower denergy") |     Synth = namedtuple("Synth", "module tech width freq delay area lpower denergy") | ||||||
|     techcolors = [['sky90', 'green', 'o'], ['tsmc28', 'blue', '^']] # add another list here for gf32 |     techcolors = [['sky90', 'green', 'o'], ['tsmc28', 'blue', '^']] # add another list here for gf32 | ||||||
|     widths = [8, 16, 32, 64, 128] |     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 |     # synthsintocsv() # slow, run only when new synth runs to add to csv | ||||||
|    |    | ||||||
|     synthsfromcsv('ppaData.csv') # your csv here! |     synthsfromcsv('ppaData.csv') # your csv here! | ||||||
| 
 | 
 | ||||||
|     ### examples |     ### examples | ||||||
|     # oneMetricPlot('add', 'delay') |     # freqPlot('tsmc28', 'add', 16) | ||||||
|     # freqPlot('sky90', 'comparator', 16) |     squareAreaDelay('sky90', 'add', 32) | ||||||
|     # plotPPA('add') |     squareAreaDelay('sky90', 'mult', 32) | ||||||
|     squareAreaDelay('sky90', 'comparator', 16) |     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 | comparator,sky90,128,10,0.842074,1997.240039,243.506,0.001300162256 | ||||||
| add,sky90,8,6896,0.144869,331.240005,219.731,0.060410373 | add,sky90,8,6896,0.144869,331.240005,219.731,0.060410373 | ||||||
| shiftleft,sky90,128,3484,0.313597,11188.660188,8590.0,2.418146467 | 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 | flop,sky90,128,8476,0.070789,4264.959961,2070.0,3.6420232610000003 | ||||||
| flopr,sky90,8,11879,0.11919,400.820003,214.285,0.662589129 | flopr,sky90,8,11879,0.11919,400.820003,214.285,0.662589129 | ||||||
| add,tsmc28,64,3000,0.312507,227.052001,1070.0,0.0621263916 | 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 | flopenr,sky90,64,4723,0.18608,4327.680086,2230.0,3.9400579199999997 | ||||||
| flop,sky90,128,15539,0.070789,4264.959961,2070.0,6.676960058000001 | flop,sky90,128,15539,0.070789,4264.959961,2070.0,6.676960058000001 | ||||||
| alu,sky90,16,10000,0.304,3555.440059,2890.0,2.593728 | 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 | add,tsmc28,32,21130,0.080875,367.668003,1860.0,0.15414775 | ||||||
| flop,sky90,8,14409,0.070789,266.559998,129.629,0.3870813309 | flop,sky90,8,14409,0.070789,266.559998,129.629,0.3870813309 | ||||||
| comparator,sky90,64,4636,0.215691,2072.700029,1840.0,0.345752673 | 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 | add,sky90,16,4174,0.239287,549.780011,304.811,0.103371984 | ||||||
| alu,sky90,16,3524,0.29417,3599.540061,2670.0,0.90839696 | alu,sky90,16,3524,0.29417,3599.540061,2670.0,0.90839696 | ||||||
| priorityonehot,sky90,8,21600,0.054084,157.780003,56.585,0.0190267512 | 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 | shiftleft,sky90,32,6375,0.159792,3330.040049,3530.0,0.627343392 | ||||||
| priorityonehot,sky90,128,5185,0.274609,2437.260036,1210.0,0.250718017 | priorityonehot,sky90,128,5185,0.274609,2437.260036,1210.0,0.250718017 | ||||||
| add,tsmc28,128,6900,0.144862,733.320004,3010.0,0.22192858399999998 | 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 | shiftleft,sky90,32,6250,0.159977,2964.500038,3130.0,0.547281317 | ||||||
| flopr,sky90,64,6988,0.11201,2728.319991,1360.0,2.4349853899999996 | flopr,sky90,64,6988,0.11201,2728.319991,1360.0,2.4349853899999996 | ||||||
| flop,sky90,64,19777,0.070789,2132.47998,1040.0,4.249180514000001 | 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 | 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 | floprasync,sky90,8,15000,0.071444,362.600007,161.167,0.40944556400000004 | ||||||
| mult,sky90,64,657,1.52205,69763.260863,23900.0,57.09818369999999 | mult,sky90,64,657,1.52205,69763.260863,23900.0,57.09818369999999 | ||||||
| decoder,sky90,8,26064,0.037953,49.980001,39.023,0.0030893742000000003 | 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 | 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,128,7500,0.113763,1058.400021,117.974,0.040499627999999996 | ||||||
| priorityencoder,sky90,8,10131,0.104625,85.260002,26.481,0.0075225375 | 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 | add,tsmc28,8,7880,0.123121,20.538,106.097,0.0054665724 | ||||||
| decoder,sky90,8,30334,0.032475,70.560001,88.439,0.006699592499999999 | decoder,sky90,8,30334,0.032475,70.560001,88.439,0.006699592499999999 | ||||||
| add,tsmc28,16,6443,0.138825,50.274,244.477,0.012882959999999999 | 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 | 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,16,3000,0.32096,41.202,203.505,0.0116572672 | ||||||
| add,tsmc28,128,8400,0.119042,1050.084009,4830.0,0.29831925200000003 | 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 | mult,sky90,32,4000,1.091389,31262.980534,24900.0,123.890113724 | ||||||
| priorityencoder,sky90,8,9176,0.104625,85.260002,26.481,0.006821550000000001 | priorityencoder,sky90,8,9176,0.104625,85.260002,26.481,0.006821550000000001 | ||||||
| floprasync,sky90,128,7500,0.071444,5785.920113,2580.0,3.3043564439999997 | 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 | csa,sky90,64,22360,0.060643,2195.200043,1740.0,0.937237565 | ||||||
| priorityencoder,sky90,32,9184,0.111067,293.020006,53.82,0.015460526399999999 | priorityencoder,sky90,32,9184,0.111067,293.020006,53.82,0.015460526399999999 | ||||||
| decoder,sky90,16,28542,0.039572,499.800013,875.782,0.058249984000000005 | 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 | shiftleft,sky90,8,11111,0.091007,491.960005,678.321,0.07371567000000001 | ||||||
| alu,sky90,16,2073,0.481803,1688.540032,395.679,0.278963937 | alu,sky90,16,2073,0.481803,1688.540032,395.679,0.278963937 | ||||||
| priorityonehot,sky90,128,3407,0.293484,1910.02003,670.082,0.107415144 | 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 | flopr,sky90,16,9317,0.10124,776.160012,486.897,0.78248396 | ||||||
| priorityencoder,sky90,8,9749,0.104625,85.260002,26.481,0.0072505124999999995 | priorityencoder,sky90,8,9749,0.104625,85.260002,26.481,0.0072505124999999995 | ||||||
| csa,sky90,8,15971,0.062613,203.840004,117.131,0.0491950341 | 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 | mult,sky90,128,584,1.712328,298800.044147,115000.0,257.92111732800004 | ||||||
| priorityonehot,sky90,8,18400,0.054629,109.760001,31.371,0.009920626399999998 | priorityonehot,sky90,8,18400,0.054629,109.760001,31.371,0.009920626399999998 | ||||||
| comparator,sky90,8,10909,0.11361,387.1,565.114,0.0965685 | 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 | shiftleft,sky90,128,2968,0.33687,9142.420162,5660.0,1.7459972099999999 | ||||||
| flop,sky90,32,13279,0.070789,1066.23999,518.516,1.4265894803 | flop,sky90,32,13279,0.070789,1066.23999,518.516,1.4265894803 | ||||||
| decoder,sky90,32,7500,0.115541,147.000003,15.758,0.006470296 | 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 | decoder,sky90,128,7658,0.130462,549.78001,153.219,0.041225991999999996 | ||||||
| mult,sky90,16,1122,0.891172,6478.780105,3540.0,4.677761828 | mult,sky90,16,1122,0.891172,6478.780105,3540.0,4.677761828 | ||||||
| shifter,sky90,16,5000,0.209586,2120.720031,2150.0,0.46528091999999993 | 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 | flopr,sky90,64,12112,0.101659,2816.520013,1550.0,3.8755460570000007 | ||||||
| add,sky90,128,2615,0.390136,6662.040117,2450.0,1.2094216 | add,sky90,128,2615,0.390136,6662.040117,2450.0,1.2094216 | ||||||
| flop,sky90,128,13561,0.070789,4264.959961,2070.0,5.826996535 | 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 | 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,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 | add,tsmc28,16,16300,0.067336,189.63,1050.0,0.04902060799999999 | ||||||
| priorityencoder,sky90,32,10000,0.111067,293.020006,53.82,0.016882183999999998 | priorityencoder,sky90,32,10000,0.111067,293.020006,53.82,0.016882183999999998 | ||||||
| decoder,sky90,8,29973,0.032971,66.640001,78.184,0.0064062653 | 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 | shiftleft,sky90,8,7500,0.132768,218.540002,147.871,0.034785216 | ||||||
| priorityencoder,sky90,64,9782,0.112447,546.840011,77.149,0.028561538 | 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,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 | 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,852,1.173643,23514.120391,12700.0,21.016425201 | ||||||
| mult,sky90,32,741,1.349466,17389.120212,4650.0,10.286979318 | 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 | shiftleft,sky90,128,3355,0.309977,11750.200195,9570.0,2.415650761 | ||||||
| add,sky90,8,7437,0.151519,495.880011,457.493,0.09409329899999999 | add,sky90,8,7437,0.151519,495.880011,457.493,0.09409329899999999 | ||||||
| flop,sky90,64,14974,0.070789,2132.47998,1040.0,3.217289261 | 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 | csa,sky90,64,15971,0.062613,1630.720032,943.002,0.39320964 | ||||||
| alu,sky90,16,2764,0.361248,2302.020041,1050.0,0.497438496 | alu,sky90,16,2764,0.361248,2302.020041,1050.0,0.497438496 | ||||||
| add,sky90,16,6307,0.225596,1023.12002,1010.0,0.281769404 | 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 | flopenr,sky90,16,20000,0.189692,1098.580025,591.454,4.502529312 | ||||||
| shiftleft,sky90,64,4348,0.23035,5490.940094,4500.0,1.0674419000000002 | shiftleft,sky90,64,4348,0.23035,5490.940094,4500.0,1.0674419000000002 | ||||||
| flop,sky90,8,14126,0.070789,266.559998,129.629,0.37948567120000004 | 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,16,8154,0.128748,1062.320016,1070.0,0.17020485600000002 | ||||||
| shiftleft,sky90,8,11333,0.092595,545.860006,815.115,0.089168985 | shiftleft,sky90,8,11333,0.092595,545.860006,815.115,0.089168985 | ||||||
| priorityonehot,sky90,16,10667,0.09706,282.240005,85.616,0.025555897999999997 | 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 | shiftleft,sky90,8,11778,0.091769,674.240011,1040.0,0.101037669 | ||||||
| add,sky90,128,2718,0.407908,7287.280117,3350.0,1.463573904 | add,sky90,128,2718,0.407908,7287.280117,3350.0,1.463573904 | ||||||
| floprasync,sky90,128,15000,0.071444,5785.920113,2580.0,6.602568704 | 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 | alu,sky90,32,3128,0.389409,5641.860104,2720.0,1.566592407 | ||||||
| priorityonehot,sky90,32,7067,0.141491,1078.980015,1580.0,0.14389634700000004 | priorityonehot,sky90,32,7067,0.141491,1078.980015,1580.0,0.14389634700000004 | ||||||
| floprasync,sky90,8,10000,0.071444,362.600007,161.167,0.2729375132 | 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 | add,sky90,16,10,2.032906,221.479998,55.29,0.0012902854382000001 | ||||||
| flopr,sky90,128,10947,0.172973,5340.020018,2310.0,10.278747551999999 | flopr,sky90,128,10947,0.172973,5340.020018,2310.0,10.278747551999999 | ||||||
| shiftleft,sky90,64,4261,0.234657,5289.060089,3950.0,0.980396946 | 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 | priorityonehot,sky90,16,13333,0.077249,976.080015,1550.0,0.164694868 | ||||||
| flopenr,sky90,128,6637,0.228828,8134.980007,3210.0,11.399295648 | flopenr,sky90,128,6637,0.228828,8134.980007,3210.0,11.399295648 | ||||||
| shiftleft,sky90,64,6087,0.227478,6715.940117,5940.0,1.7761482240000002 | 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 | add,sky90,16,4144,0.240621,555.660011,274.571,0.092639085 | ||||||
| alu,sky90,64,2409,0.452715,12468.540233,6180.0,2.755676205 | 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,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 | alu,sky90,128,2061,0.515343,27812.400516,13300.0,6.941154867 | ||||||
| priorityonehot,sky90,64,4762,0.212289,1107.400013,650.606,0.09828980699999999 | priorityonehot,sky90,64,4762,0.212289,1107.400013,650.606,0.09828980699999999 | ||||||
| mult,sky90,8,1709,0.599356,2453.920037,2010.0,1.442649892 | 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 | 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,32,15394,0.081095,348.768003,1770.0,0.110694675 | ||||||
| add,tsmc28,16,25000,0.066258,202.608001,1140.0,0.082027404 | 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 | csa,sky90,16,12777,0.067531,329.280006,134.949,0.0528362544 | ||||||
| decoder,sky90,8,39096,0.030694,184.240003,330.692,0.021700658 | decoder,sky90,8,39096,0.030694,184.240003,330.692,0.021700658 | ||||||
| add,sky90,128,2359,0.423881,5520.340104,1490.0,0.846490357 | 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 | flopr,sky90,32,20000,0.085865,1540.560029,1070.0,2.7735253650000002 | ||||||
| flop,sky90,8,13279,0.070789,266.559998,129.629,0.35677656 | flop,sky90,8,13279,0.070789,266.559998,129.629,0.35677656 | ||||||
| csa,sky90,8,18207,0.060643,266.560005,213.306,0.0942877364 | 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 | flop,sky90,64,13844,0.070789,2132.47998,1040.0,2.974482991 | ||||||
| csa,sky90,128,16820,0.060643,4264.960083,3260.0,1.384661619 | csa,sky90,128,16820,0.060643,4264.960083,3260.0,1.384661619 | ||||||
| floprasync,sky90,8,8398,0.071444,362.600007,161.167,0.229263796 | 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,128,14126,0.070789,4264.959961,2070.0,6.069802805000001 | ||||||
| flop,sky90,32,12996,0.070789,1066.23999,518.516,1.3962139204 | flop,sky90,32,12996,0.070789,1066.23999,518.516,1.3962139204 | ||||||
| decoder,sky90,8,35838,0.030694,237.160005,420.74,0.025291855999999998 | 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 | add,tsmc28,64,7500,0.133293,307.944001,1320.0,0.09437144399999998 | ||||||
| alu,sky90,32,2398,0.416982,5257.700098,2000.0,1.094160768 | 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,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 | flopenr,sky90,64,2892,0.298899,3245.75997,644.425,1.6744321980000003 | ||||||
| priorityonehot,sky90,128,4000,0.253946,2661.680036,1330.0,0.210521234 | priorityonehot,sky90,128,4000,0.253946,2661.680036,1330.0,0.210521234 | ||||||
| floprasync,sky90,32,13997,0.071444,1446.480028,643.984,1.539332424 | floprasync,sky90,32,13997,0.071444,1446.480028,643.984,1.539332424 | ||||||
| csa,sky90,32,16291,0.060643,1066.240021,825.615,0.33547707600000004 | csa,sky90,32,16291,0.060643,1066.240021,825.615,0.33547707600000004 | ||||||
| flopenr,sky90,64,4627,0.20887,3954.300054,1660.0,3.0662116000000004 | 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 | 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 | flop,sky90,64,10000,0.070789,2132.47998,1040.0,2.1485735702000004 | ||||||
| decoder,sky90,8,33883,0.030694,263.620004,439.421,0.027102802 | 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 | flopenr,sky90,64,5836,0.198621,4564.840035,2580.0,4.922821485 | ||||||
| shiftleft,sky90,8,10444,0.095384,335.160004,328.601,0.060759608 | 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,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 | add,tsmc28,32,1000,0.912322,67.157999,231.062,0.0220781924 | ||||||
| flopenr,sky90,32,5764,0.185375,2024.679996,668.031,1.3873465 | flopenr,sky90,32,5764,0.185375,2024.679996,668.031,1.3873465 | ||||||
| flop,sky90,32,15000,0.070789,1066.23999,518.516,1.6115399006000002 | 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 | add,tsmc28,16,6443,0.138825,50.274,244.477,0.012882959999999999 | ||||||
| csa,sky90,128,18139,0.060643,4264.960083,3260.0,1.492970017 | csa,sky90,128,18139,0.060643,4264.960083,3260.0,1.492970017 | ||||||
| comparator,sky90,64,4364,0.229142,1709.120026,1020.0,0.276803536 | 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 | alu,sky90,32,2659,0.384337,6206.340103,3560.0,1.485846842 | ||||||
| flopenr,sky90,64,5079,0.203824,4340.420085,2230.0,4.60947976 | flopenr,sky90,64,5079,0.203824,4340.420085,2230.0,4.60947976 | ||||||
| add,tsmc28,8,9056,0.108551,21.42,107.887,0.0057749132 | 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 | mult,sky90,8,1855,0.605444,2332.40004,1740.0,1.4470111599999997 | ||||||
| flopenr,sky90,64,5013,0.228449,4007.220058,1760.0,3.779231807 | 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,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 | shiftleft,sky90,16,7231,0.138234,1233.820018,1400.0,0.21619797600000001 | ||||||
| add,tsmc28,64,9413,0.106226,423.108003,1900.0,0.12534668 | add,tsmc28,64,9413,0.106226,423.108003,1900.0,0.12534668 | ||||||
| decoder,sky90,8,10000,0.085629,37.240001,2.355,0.0012364827599999997 | 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 | decoder,sky90,8,25279,0.038956,48.020001,35.206,0.0031047931999999994 | ||||||
| add,tsmc28,64,7732,0.129331,331.128002,1450.0,0.102042159 | add,tsmc28,64,7732,0.129331,331.128002,1450.0,0.102042159 | ||||||
| flopr,sky90,64,10714,0.17183,2815.540026,1390.0,5.43756035 | 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 | priorityonehot,sky90,16,10000,0.099923,281.260004,117.94,0.02398152 | ||||||
| mult,sky90,8,10,2.076433,1009.399998,211.637,0.005689426420000001 | mult,sky90,8,10,2.076433,1009.399998,211.637,0.005689426420000001 | ||||||
| decoder,sky90,128,17868,0.101057,1072.12001,985.334,0.202922456 | 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 | add,sky90,64,3636,0.330032,3266.340054,1220.0,0.79537712 | ||||||
| flop,sky90,128,14692,0.070789,4264.959961,2070.0,6.313033809 | 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,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 | shiftleft,sky90,16,10000,0.128994,1192.660017,1420.0,0.242379726 | ||||||
| mult,sky90,64,10,14.7933,46798.920227,5460.0,2.7101325599999995 | mult,sky90,64,10,14.7933,46798.920227,5460.0,2.7101325599999995 | ||||||
| floprasync,sky90,16,14557,0.071444,723.240014,321.992,0.798601032 | 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 | flop,sky90,64,15539,0.070789,2132.47998,1040.0,3.3386216070000003 | ||||||
| add,tsmc28,8,12074,0.081502,23.31,115.92,0.0062838042000000005 | add,tsmc28,8,12074,0.081502,23.31,115.92,0.0062838042000000005 | ||||||
| flopr,sky90,128,12811,0.174211,5123.439977,1890.0,10.893762252 | 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 | mult,sky90,64,714,1.400528,87215.101373,43900.0,85.31176259200001 | ||||||
| alu,sky90,64,2496,0.442869,12618.480223,6700.0,2.9570363129999997 | alu,sky90,64,2496,0.442869,12618.480223,6700.0,2.9570363129999997 | ||||||
| priorityencoder,sky90,8,10323,0.104625,85.260002,26.481,0.0076690125 | 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 | priorityonehot,sky90,16,11111,0.089821,300.860005,305.978,0.029281646 | ||||||
| comparator,sky90,32,5474,0.192304,1188.740012,1430.0,0.20691910400000002 | comparator,sky90,32,5474,0.192304,1188.740012,1430.0,0.20691910400000002 | ||||||
| flopenr,sky90,32,4803,0.217601,2179.52003,1080.0,2.520907585 | 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 | csa,sky90,32,17568,0.060643,1066.240021,827.644,0.36203871 | ||||||
| comparator,sky90,128,4000,0.268954,4027.800041,3660.0,0.679377804 | comparator,sky90,128,4000,0.268954,4027.800041,3660.0,0.679377804 | ||||||
| decoder,sky90,8,31928,0.031295,106.82,190.81,0.010796775 | 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 | flop,sky90,16,16104,0.070789,533.119995,259.258,0.8651406846 | ||||||
| add,tsmc28,64,5043,0.178584,231.210001,1080.0,0.06107572799999999 | add,tsmc28,64,5043,0.178584,231.210001,1080.0,0.06107572799999999 | ||||||
| priorityonehot,sky90,16,15556,0.088601,610.540002,811.656,0.097726903 | 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 | shiftleft,sky90,128,3871,0.303026,12747.840208,11600.0,3.235408602 | ||||||
| flop,sky90,8,12996,0.070789,266.559998,129.629,0.34911011129999997 | flop,sky90,8,12996,0.070789,266.559998,129.629,0.34911011129999997 | ||||||
| shiftleft,sky90,64,4435,0.24668,5129.320094,4030.0,1.0940258000000003 | 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 | shiftleft,sky90,128,3032,0.329767,9579.500162,6250.0,1.8898946769999998 | ||||||
| flopr,sky90,32,12578,0.101547,1445.500023,882.979,2.039469948 | flopr,sky90,32,12578,0.101547,1445.500023,882.979,2.039469948 | ||||||
| alu,sky90,128,2217,0.514448,27540.940502,14000.0,7.25886128 | 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 | csa,sky90,128,16610,0.060643,4264.960083,3260.0,1.3673783640000001 | ||||||
| floprasync,sky90,64,14557,0.071444,2892.960056,1290.0,3.203048852 | floprasync,sky90,64,14557,0.071444,2892.960056,1290.0,3.203048852 | ||||||
| flopenr,sky90,16,4228,0.180729,842.799992,176.142,0.3973688523 | 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 | comparator,sky90,8,8545,0.116724,205.800003,165.947,0.041670467999999995 | ||||||
| mult,sky90,128,528,1.893939,255011.682875,66500.0,175.06625146500002 | mult,sky90,128,528,1.893939,255011.682875,66500.0,175.06625146500002 | ||||||
| shiftleft,sky90,64,10000,0.23373,6486.620108,6060.0,3.09762369 | 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 | flop,sky90,16,13561,0.070789,533.119995,259.258,0.7285179146000001 | ||||||
| priorityonehot,sky90,16,5000,0.196212,130.340003,29.8,0.005788254 | priorityonehot,sky90,16,5000,0.196212,130.340003,29.8,0.005788254 | ||||||
| mult,sky90,8,5000,0.552339,4261.040075,5050.0,5.394142674 | 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 | flopenr,sky90,8,9518,0.148606,636.020015,366.016,0.9204655639999999 | ||||||
| alu,sky90,16,3455,0.289435,3445.680058,2290.0,0.80289269 | 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,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 | 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,128,12112,0.177282,5399.800033,2390.0,11.989758942 | ||||||
| flopr,sky90,8,12112,0.11919,400.820003,214.285,0.675533163 | flopr,sky90,8,12112,0.11919,400.820003,214.285,0.675533163 | ||||||
|  | |||||||
| 
 | 
		Loading…
	
		Reference in New Issue
	
	Block a user