mirror of
https://github.com/openhwgroup/cvw.git
synced 2025-04-20 03:47:20 -04:00
latest synths and synth script
This commit is contained in:
parent
cd56d256ad
commit
8449029bf3
4 changed files with 1369 additions and 1292 deletions
|
@ -1,101 +1,101 @@
|
|||
Module,Tech,Width,Target Freq,Delay,Area,L Power (nW),D energy (fJ)
|
||||
priorityencoder,sky90,8,7683,0.12508649056358195,50.960001,24.761,1.0685929975270078e-05
|
||||
priorityencoder,sky90,16,5773,0.16977016282695304,136.220003,77.243,2.1773774467348e-05
|
||||
priorityencoder,sky90,32,4500,0.2218912222222222,372.400007,189.626,4.371111111111111e-05
|
||||
priorityencoder,sky90,64,4098,0.2439914738897023,797.720015,382.205,7.393850658857981e-05
|
||||
priorityencoder,sky90,128,3409,0.2933331557641537,1602.300031,610.009,0.0001261366969785861
|
||||
add,sky90,8,3658,0.27337042810278844,253.820005,154.438,0.00010825587752870422
|
||||
add,sky90,16,2942,0.3393218266485384,722.260013,485.109,0.00032460910944935416
|
||||
add,sky90,32,2468,0.40496338573743923,1440.600027,714.057,0.0006580226904376014
|
||||
add,sky90,64,2139,0.4674681813931744,2781.240054,1050.0,0.0009392239364188873
|
||||
add,sky90,128,1885,0.5304949787798409,6186.740118,2230.0,0.0021480106100795755
|
||||
csa,sky90,8,5758,0.16536141368530738,266.560005,154.202,0.00013650573115665162
|
||||
csa,sky90,16,5931,0.1654056314280897,533.12001,308.404,0.00027263530601922105
|
||||
csa,sky90,32,5758,0.16536141368530738,1066.240021,616.808,0.0005448072247308093
|
||||
csa,sky90,64,5931,0.1654056314280897,2132.480042,1230.0,0.0010905412240768842
|
||||
csa,sky90,128,5931,0.1654056314280897,4264.960083,2470.0,0.002178553363682347
|
||||
shiftleft,sky90,8,4327,0.23025600254217704,259.700005,196.451,7.534088282874971e-05
|
||||
shiftleft,sky90,16,3355,0.29803959314456036,666.400006,558.433,0.00019552906110283157
|
||||
shiftleft,sky90,32,2503,0.39951757530962845,1475.880027,768.262,0.0003807431082700759
|
||||
shiftleft,sky90,64,2203,0.45385946391284615,3914.120062,2680.0,0.001144802541988198
|
||||
shiftleft,sky90,128,1907,0.5242938489774515,9192.400136,6080.0,0.0029008914525432616
|
||||
comparator,sky90,8,4839,0.20629126741062204,200.900004,136.6,5.001033271337053e-05
|
||||
comparator,sky90,16,4018,0.24806303982080635,358.680007,189.253,6.321553011448482e-05
|
||||
comparator,sky90,32,3602,0.276293542476402,690.900013,315.709,0.00010771793448084398
|
||||
comparator,sky90,64,3129,0.31954192361776923,1372.980026,508.393,0.0002048577820389901
|
||||
comparator,sky90,128,2791,0.35824651809387315,2744.980052,796.047,0.0003439627373701182
|
||||
flop,sky90,8,10,0.1143419999999935,133.279999,64.8145,0.000193835
|
||||
flop,sky90,16,10,0.1143419999999935,266.5599975,129.629,0.00038715000000000006
|
||||
flop,sky90,32,10,0.1143419999999935,533.119995,259.258,0.0007723000000000001
|
||||
flop,sky90,64,10,0.1143419999999935,1066.23999,520.0,0.00154955
|
||||
flop,sky90,128,10,0.1143419999999935,2132.4799805,1035.0,0.003094
|
||||
mux2,sky90,8,5299,0.1883518518588413,63.700001,21.541,1.932440083034535e-05
|
||||
mux2,sky90,16,4850,0.20207356701030926,119.560002,32.354,3.884536082474227e-05
|
||||
mux2,sky90,32,5003,0.19908807195682593,375.340008,259.372,0.00013671796921846892
|
||||
mux2,sky90,64,3989,0.24961239583855604,479.220007,148.175,0.00016570569064928555
|
||||
mux2,sky90,128,4004,0.24974824975024976,1302.420025,767.078,0.0004665334665334665
|
||||
mux4,sky90,8,4661,0.21448923471358078,164.640002,88.494,4.31452478009011e-05
|
||||
mux4,sky90,16,4392,0.22421770309653916,359.659999,419.855,0.0001006375227686703
|
||||
mux4,sky90,32,4118,0.24283532831471588,594.860011,331.197,0.00013161728994657602
|
||||
mux4,sky90,64,3710,0.26931477897574124,899.640016,344.331,0.00028625336927223723
|
||||
mux4,sky90,128,3167,0.31575023618566467,2016.840039,722.109,0.0005917271866119355
|
||||
mux8,sky90,8,3585,0.2789170278940028,287.140006,116.648,6.089260808926081e-05
|
||||
mux8,sky90,16,3362,0.295237998810232,582.120003,282.366,0.00014455681142177274
|
||||
mux8,sky90,32,3178,0.3140553102580239,1319.079995,670.683,0.0003577721837633732
|
||||
mux8,sky90,64,2906,0.3440756228492774,2132.48004,808.482,0.0004428768066070199
|
||||
mux8,sky90,128,2667,0.3749401308586427,4575.620089,1830.0,0.0009786276715410573
|
||||
mult,sky90,8,1310,0.7631557786259543,2194.220041,1440.0,0.0014213740458015268
|
||||
mult,sky90,16,997,1.0029260270812437,7519.540137,4940.0,0.0063761283851554666
|
||||
mult,sky90,32,763,1.3106129895150722,25200.700446,14900.0,0.024931847968545216
|
||||
mult,sky90,64,632,1.5822664810126583,86011.661365,42600.0,0.08884651898734176
|
||||
mult,sky90,128,524,1.9083759465648855,296198.144128,114000.0,0.2733148854961832
|
||||
priorityencoder,tsmc28,8,31335,0.031912196106590074,8.316,34.836,1.716929950534546e-06
|
||||
priorityencoder,tsmc28,16,21253,0.04703118086858326,21.672,78.026,4.008845810003294e-06
|
||||
priorityencoder,tsmc28,32,16464,0.06071258114674442,61.614,207.499,9.323372206025267e-06
|
||||
priorityencoder,tsmc28,64,13804,0.07239877021153289,137.466,425.592,1.847290640394089e-05
|
||||
priorityencoder,tsmc28,128,11440,0.0874065874125874,317.646,973.649,4.117132867132867e-05
|
||||
add,tsmc28,8,13838,0.07207477814713109,34.272,187.089,1.3311172134701546e-05
|
||||
add,tsmc28,16,11521,0.08678002100512108,90.972001,475.207,3.367763214998698e-05
|
||||
add,tsmc28,32,9812,0.1018860211985324,209.286002,1060.0,8.153281695882594e-05
|
||||
add,tsmc28,64,8206,0.12185605215695831,388.836003,1770.0,0.0001409943943456008
|
||||
add,tsmc28,128,7354,0.13597341881968997,907.452008,4360.0,0.00034511830296437315
|
||||
csa,tsmc28,8,24524,0.040663382319360626,52.416,482.462,2.173381177621921e-05
|
||||
csa,tsmc28,16,24524,0.040663382319360626,104.832,964.99,4.346762355243842e-05
|
||||
csa,tsmc28,32,24524,0.040663382319360626,209.664,1930.0,8.677214157559942e-05
|
||||
csa,tsmc28,64,24524,0.040663382319360626,419.327999,3860.0,0.00017342195400424075
|
||||
csa,tsmc28,128,24524,0.040663382319360626,838.655998,7720.0,0.00034717011906703634
|
||||
shiftleft,tsmc28,8,15202,0.0656078183133798,50.652,367.074,1.6991185370346006e-05
|
||||
shiftleft,tsmc28,16,11804,0.08465604506946797,127.511999,602.29,3.388681802778719e-05
|
||||
shiftleft,tsmc28,32,9587,0.10430391697089808,384.803997,1940.0,0.00010180452696359654
|
||||
shiftleft,tsmc28,64,8272,0.12086674854932303,1041.263998,5460.0,0.0002895309477756286
|
||||
shiftleft,tsmc28,128,7023,0.14238329232521713,1836.953994,8670.0,0.000566566994162039
|
||||
comparator,tsmc28,8,17422,0.05733769130983814,35.784,170.595,9.488003673516243e-06
|
||||
comparator,tsmc28,16,13736,0.07273839778683751,54.558,250.167,1.4349155503785673e-05
|
||||
comparator,tsmc28,32,12139,0.08236710865804432,145.782,622.975,3.567015404893319e-05
|
||||
comparator,tsmc28,64,11080,0.09024670758122744,294.21,1250.0,6.84115523465704e-05
|
||||
comparator,tsmc28,128,9371,0.10671119720414043,558.432,2400.0,0.00012794792444776438
|
||||
flop,tsmc28,8,10,0.048889000000002625,15.12,78.6345,2.7246000000000003e-05
|
||||
flop,tsmc28,16,10,0.048889000000002625,30.24,157.29,5.4290000000000004e-05
|
||||
flop,tsmc28,32,10,0.048889000000002625,60.4799995,314.5805,0.00010908
|
||||
flop,tsmc28,64,10,0.048889000000002625,120.959999,630.0,0.00021765500000000003
|
||||
flop,tsmc28,128,10,0.048889000000002625,241.919998,1260.0,0.00043579999999999997
|
||||
mux2,tsmc28,8,29614,0.03374481252110488,16.758,114.564,5.436617815897886e-06
|
||||
mux2,tsmc28,16,18767,0.053046021580433735,15.75,88.025,5.142004582511856e-06
|
||||
mux2,tsmc28,32,17903,0.05585556035301346,32.130001,171.146,9.897782494553986e-06
|
||||
mux2,tsmc28,64,18568,0.05371109651012495,91.35,523.884,2.757432141318397e-05
|
||||
mux2,tsmc28,128,16637,0.05991099044298852,176.525999,941.106,5.012923002945243e-05
|
||||
mux4,tsmc28,8,18151,0.055092383284667513,27.971999,133.963,8.032615282904523e-06
|
||||
mux4,tsmc28,16,16486,0.06057952759917506,39.438,186.231,1.2556108213029237e-05
|
||||
mux4,tsmc28,32,15196,0.06580579126085812,69.174,324.969,2.3229797315082915e-05
|
||||
mux4,tsmc28,64,13926,0.07180612868016659,137.465999,648.086,4.5741777969266124e-05
|
||||
mux4,tsmc28,128,13090,0.07636619404125286,294.335997,1420.0,9.358288770053477e-05
|
||||
mux8,tsmc28,8,12902,0.07750336319950395,44.604,214.286,1.17501162610448e-05
|
||||
mux8,tsmc28,16,12264,0.08147446510110894,128.771998,548.714,2.666340508806262e-05
|
||||
mux8,tsmc28,32,11713,0.08517122410996329,172.115999,823.633,4.695637326047981e-05
|
||||
mux8,tsmc28,64,11014,0.09067453550027238,304.163999,1460.0,8.498274922825495e-05
|
||||
mux8,tsmc28,128,10474,0.09542350830628223,683.045996,2820.0,0.00015705556616383426
|
||||
mult,tsmc28,8,5200,0.1922996923076923,577.206,4340.0,0.00037769230769230767
|
||||
mult,tsmc28,16,3819,0.26184265147944485,1634.472002,11800.0,0.0014553548049227546
|
||||
mult,tsmc28,32,3033,0.3295775611605671,6343.721998,47200.0,0.0063033300362677225
|
||||
mult,tsmc28,64,2390,0.4184090418410042,16045.092071,109000.0,0.01854602510460251
|
||||
mult,tsmc28,128,1868,0.5353279057815846,44272.49428,262000.0,0.05001177730192719
|
||||
Module,Tech,Width,Target Freq,Delay,Area,L Power (nW),D energy (nJ)
|
||||
priorityencoder,sky90,8,7683,0.12508649056358195,50.960001,24.761,0.010685929975270078
|
||||
priorityencoder,sky90,16,5773,0.16977016282695304,136.220003,77.243,0.021773774467348
|
||||
priorityencoder,sky90,32,4500,0.2218912222222222,372.400007,189.626,0.04371111111111111
|
||||
priorityencoder,sky90,64,4098,0.2439914738897023,797.720015,382.205,0.07393850658857981
|
||||
priorityencoder,sky90,128,3409,0.2933331557641537,1602.300031,610.009,0.1261366969785861
|
||||
add,sky90,8,3658,0.27337042810278844,253.820005,154.438,0.10825587752870422
|
||||
add,sky90,16,2942,0.3393218266485384,722.260013,485.109,0.32460910944935417
|
||||
add,sky90,32,2468,0.40496338573743923,1440.600027,714.057,0.6580226904376014
|
||||
add,sky90,64,2139,0.4674681813931744,2781.240054,1050.0,0.9392239364188874
|
||||
add,sky90,128,1885,0.5304949787798409,6186.740118,2230.0,2.1480106100795755
|
||||
csa,sky90,8,5758,0.16536141368530738,266.560005,154.202,0.13650573115665163
|
||||
csa,sky90,16,5931,0.1654056314280897,533.12001,308.404,0.27263530601922104
|
||||
csa,sky90,32,5758,0.16536141368530738,1066.240021,616.808,0.5448072247308093
|
||||
csa,sky90,64,5931,0.1654056314280897,2132.480042,1230.0,1.0905412240768841
|
||||
csa,sky90,128,5931,0.1654056314280897,4264.960083,2470.0,2.178553363682347
|
||||
shiftleft,sky90,8,4327,0.23025600254217704,259.700005,196.451,0.07534088282874972
|
||||
shiftleft,sky90,16,3355,0.29803959314456036,666.400006,558.433,0.19552906110283155
|
||||
shiftleft,sky90,32,2503,0.39951757530962845,1475.880027,768.262,0.3807431082700759
|
||||
shiftleft,sky90,64,2203,0.45385946391284615,3914.120062,2680.0,1.144802541988198
|
||||
shiftleft,sky90,128,1907,0.5242938489774515,9192.400136,6080.0,2.9008914525432616
|
||||
comparator,sky90,8,4839,0.20629126741062204,200.900004,136.6,0.05001033271337053
|
||||
comparator,sky90,16,4018,0.24806303982080635,358.680007,189.253,0.06321553011448482
|
||||
comparator,sky90,32,3602,0.276293542476402,690.900013,315.709,0.10771793448084398
|
||||
comparator,sky90,64,3129,0.31954192361776923,1372.980026,508.393,0.2048577820389901
|
||||
comparator,sky90,128,2791,0.35824651809387315,2744.980052,796.047,0.34396273737011823
|
||||
flop,sky90,8,10,0.1143419999999935,133.279999,64.8145,0.193835
|
||||
flop,sky90,16,10,0.1143419999999935,266.5599975,129.629,0.38715000000000005
|
||||
flop,sky90,32,10,0.1143419999999935,533.119995,259.258,0.7723000000000001
|
||||
flop,sky90,64,10,0.1143419999999935,1066.23999,520.0,1.54955
|
||||
flop,sky90,128,10,0.1143419999999935,2132.4799805,1035.0,3.094
|
||||
mux2,sky90,8,5299,0.1883518518588413,63.700001,21.541,0.01932440083034535
|
||||
mux2,sky90,16,4850,0.20207356701030926,119.560002,32.354,0.03884536082474227
|
||||
mux2,sky90,32,5003,0.19908807195682593,375.340008,259.372,0.13671796921846893
|
||||
mux2,sky90,64,4073,0.24517727326295113,479.220009,115.22,0.15148539160324087
|
||||
mux2,sky90,128,4004,0.24974824975024976,1302.420025,767.078,0.4665334665334665
|
||||
mux4,sky90,8,4726,0.21123742953872196,148.960002,66.984,0.04026661024121879
|
||||
mux4,sky90,16,4455,0.2231388911335578,392.0,398.313,0.1037037037037037
|
||||
mux4,sky90,32,4118,0.24283532831471588,594.860011,331.197,0.131617289946576
|
||||
mux4,sky90,64,3710,0.26931477897574124,899.640016,344.331,0.2862533692722372
|
||||
mux4,sky90,128,3249,0.3077210113881194,2013.900038,818.249,0.6094182825484764
|
||||
mux8,sky90,8,3585,0.2789170278940028,287.140006,116.648,0.06089260808926081
|
||||
mux8,sky90,16,3362,0.295237998810232,582.120003,282.366,0.14455681142177274
|
||||
mux8,sky90,32,3178,0.3140553102580239,1319.079995,670.683,0.35777218376337316
|
||||
mux8,sky90,64,2906,0.3440756228492774,2132.48004,808.482,0.44287680660701995
|
||||
mux8,sky90,128,2667,0.3749401308586427,4575.620089,1830.0,0.9786276715410572
|
||||
mult,sky90,8,1310,0.7631557786259543,2194.220041,1440.0,1.421374045801527
|
||||
mult,sky90,16,997,1.0029260270812437,7519.540137,4940.0,6.376128385155466
|
||||
mult,sky90,32,763,1.3106129895150722,25200.700446,14900.0,24.931847968545217
|
||||
mult,sky90,64,632,1.5822664810126583,86011.661365,42600.0,88.84651898734177
|
||||
mult,sky90,128,524,1.9083759465648855,296198.144128,114000.0,273.3148854961832
|
||||
priorityencoder,tsmc28,8,31335,0.031912196106590074,8.316,34.836,0.001716929950534546
|
||||
priorityencoder,tsmc28,16,21253,0.04703118086858326,21.672,78.026,0.004008845810003294
|
||||
priorityencoder,tsmc28,32,16464,0.06071258114674442,61.614,207.499,0.009323372206025266
|
||||
priorityencoder,tsmc28,64,13804,0.07239877021153289,137.466,425.592,0.01847290640394089
|
||||
priorityencoder,tsmc28,128,11440,0.0874065874125874,317.646,973.649,0.041171328671328666
|
||||
add,tsmc28,8,13838,0.07207477814713109,34.272,187.089,0.013311172134701546
|
||||
add,tsmc28,16,11521,0.08678002100512108,90.972001,475.207,0.03367763214998698
|
||||
add,tsmc28,32,9812,0.1018860211985324,209.286002,1060.0,0.08153281695882594
|
||||
add,tsmc28,64,8206,0.12185605215695831,388.836003,1770.0,0.1409943943456008
|
||||
add,tsmc28,128,7354,0.13597341881968997,907.452008,4360.0,0.3451183029643731
|
||||
csa,tsmc28,8,24524,0.040663382319360626,52.416,482.462,0.02173381177621921
|
||||
csa,tsmc28,16,24524,0.040663382319360626,104.832,964.99,0.04346762355243842
|
||||
csa,tsmc28,32,24524,0.040663382319360626,209.664,1930.0,0.08677214157559941
|
||||
csa,tsmc28,64,24524,0.040663382319360626,419.327999,3860.0,0.17342195400424076
|
||||
csa,tsmc28,128,24524,0.040663382319360626,838.655998,7720.0,0.3471701190670363
|
||||
shiftleft,tsmc28,8,15202,0.0656078183133798,50.652,367.074,0.016991185370346006
|
||||
shiftleft,tsmc28,16,11804,0.08465604506946797,127.511999,602.29,0.03388681802778719
|
||||
shiftleft,tsmc28,32,9587,0.10430391697089808,384.803997,1940.0,0.10180452696359654
|
||||
shiftleft,tsmc28,64,8272,0.12086674854932303,1041.263998,5460.0,0.2895309477756286
|
||||
shiftleft,tsmc28,128,7023,0.14238329232521713,1836.953994,8670.0,0.566566994162039
|
||||
comparator,tsmc28,8,17422,0.05733769130983814,35.784,170.595,0.009488003673516243
|
||||
comparator,tsmc28,16,13736,0.07273839778683751,54.558,250.167,0.014349155503785673
|
||||
comparator,tsmc28,32,12139,0.08236710865804432,145.782,622.975,0.03567015404893319
|
||||
comparator,tsmc28,64,11080,0.09024670758122744,294.21,1250.0,0.0684115523465704
|
||||
comparator,tsmc28,128,9371,0.10671119720414043,558.432,2400.0,0.12794792444776437
|
||||
flop,tsmc28,8,10,0.048889000000002625,15.12,78.6345,0.027246000000000003
|
||||
flop,tsmc28,16,10,0.048889000000002625,30.24,157.29,0.054290000000000005
|
||||
flop,tsmc28,32,10,0.048889000000002625,60.4799995,314.5805,0.10908000000000001
|
||||
flop,tsmc28,64,10,0.048889000000002625,120.959999,630.0,0.21765500000000004
|
||||
flop,tsmc28,128,10,0.048889000000002625,241.919998,1260.0,0.43579999999999997
|
||||
mux2,tsmc28,8,29614,0.03374481252110488,16.758,114.564,0.005436617815897886
|
||||
mux2,tsmc28,16,18767,0.053046021580433735,15.75,88.025,0.005142004582511856
|
||||
mux2,tsmc28,32,17903,0.05585556035301346,32.130001,171.146,0.009897782494553985
|
||||
mux2,tsmc28,64,18568,0.05371109651012495,91.35,523.884,0.027574321413183972
|
||||
mux2,tsmc28,128,16637,0.05991099044298852,176.525999,941.106,0.05012923002945243
|
||||
mux4,tsmc28,8,18151,0.055092383284667513,27.971999,133.963,0.008032615282904523
|
||||
mux4,tsmc28,16,16486,0.06057952759917506,39.438,186.231,0.012556108213029236
|
||||
mux4,tsmc28,32,15196,0.06580579126085812,69.174,324.969,0.023229797315082915
|
||||
mux4,tsmc28,64,13926,0.07180612868016659,137.465999,648.086,0.04574177796926612
|
||||
mux4,tsmc28,128,13090,0.07636619404125286,294.335997,1420.0,0.09358288770053477
|
||||
mux8,tsmc28,8,12902,0.07750336319950395,44.604,214.286,0.0117501162610448
|
||||
mux8,tsmc28,16,12264,0.08147446510110894,128.771998,548.714,0.02666340508806262
|
||||
mux8,tsmc28,32,11713,0.08517122410996329,172.115999,823.633,0.046956373260479814
|
||||
mux8,tsmc28,64,11014,0.09067453550027238,304.163999,1460.0,0.08498274922825495
|
||||
mux8,tsmc28,128,10474,0.09542350830628223,683.045996,2820.0,0.15705556616383426
|
||||
mult,tsmc28,8,5200,0.1922996923076923,577.206,4340.0,0.37769230769230766
|
||||
mult,tsmc28,16,3819,0.26184265147944485,1634.472002,11800.0,1.4553548049227547
|
||||
mult,tsmc28,32,3033,0.3295775611605671,6343.721998,47200.0,6.303330036267723
|
||||
mult,tsmc28,64,2390,0.4184090418410042,16045.092071,109000.0,18.54602510460251
|
||||
mult,tsmc28,128,1868,0.5353279057815846,44272.49428,262000.0,50.01177730192719
|
||||
|
|
|
2344
synthDC/ppaData.csv
2344
synthDC/ppaData.csv
File diff suppressed because it is too large
Load diff
|
@ -1,11 +1,11 @@
|
|||
Element,Best delay,Fast area,Fast leakage,Fast energy,Small area,Small leakage,Small energy
|
||||
priorityencoder,0.98$log_2$(N),0.33S,0.25S,0.093S,0.15S,0.046S,0.00046S
|
||||
add,1.8 + 1.4$log_2$(N),1.1S,0.95S,1S,0.34S,0.16S,0.025S
|
||||
csa,3.6,0.93S,1.5S,1.1S,0.34S,0.16S,0.00055S
|
||||
shiftleft,0.48 + 1.6$log_2$(N),1.9S,2.3S,1.5S,0.8S,0.29S,0.0059S
|
||||
comparator,2 + 0.94$log_2$(N),0.6S,0.47S,0.31S,0.34S,0.16S,0.00089S
|
||||
flop,3.3,0.34S,0.37S,0.0012S,0.34S,0.37S,0.0012S
|
||||
mux2,2.8 + 0.38$log_2$(N),0.2S,0.18S,0.16S,0.15S,0.12S,0.0011S
|
||||
mux4,3.1 + 0.51$log_2$(N),0.36S,0.32S,0.28S,0.28S,0.11S,0.0021S
|
||||
mux8,5 + 0.45$log_2$(N),0.76S,0.66S,0.45S,0.55S,0.24S,0.0029S
|
||||
mult,6$log_2$(N),13S + 10$S^2$,26S + 7.3$S^2$,42S + 25$S^2$,1.1S + 7.9$S^2$,1S + 3.4$S^2$,2.1$S^2$
|
||||
priorityencoder,0.98$log_2$(N),0.32S,0.22S,0.087S,0.14S,0.044S,0.033S
|
||||
add,1.9 + 1.4$log_2$(N),1S,0.89S,0.91S,0.32S,0.15S,0.33S
|
||||
csa,3.6,0.87S,1.3S,0.95S,0.33S,0.15S,0.31S
|
||||
shiftleft,0.46 + 1.6$log_2$(N),1.9S,2.1S,1.4S,0.77S,0.28S,0.48S
|
||||
comparator,2.1 + 0.91$log_2$(N),0.58S,0.44S,0.27S,0.33S,0.15S,0.12S
|
||||
flop,3.3,0.33S,0.33S,1.3S,0.33S,0.33S,1.3S
|
||||
mux2,2.6 + 0.41$log_2$(N),0.21S,0.23S,0.16S,0.14S,0.11S,0.14S
|
||||
mux4,3.1 + 0.5$log_2$(N),0.35S,0.31S,0.26S,0.27S,0.11S,0.19S
|
||||
mux8,4.9 + 0.46$log_2$(N),0.8S,0.66S,0.43S,0.53S,0.23S,0.24S
|
||||
mult,6$log_2$(N),13$S^2$,13$S^2$,33$S^2$,7.8$S^2$,3.5$S^2$,14$S^2$
|
||||
|
|
|
|
@ -1,16 +1,13 @@
|
|||
#!/usr/bin/python3
|
||||
# Madeleine Masser-Frye mmasserfrye@hmc.edu 5/22
|
||||
# Madeleine Masser-Frye mmasserfrye@hmc.edu 6/22
|
||||
|
||||
from collections import namedtuple
|
||||
import csv
|
||||
import subprocess
|
||||
import re
|
||||
from multiprocessing import Pool, cpu_count
|
||||
from multiprocessing import Pool
|
||||
from ppaAnalyze import synthsfromcsv
|
||||
|
||||
|
||||
def runCommand(module, width, tech, freq):
|
||||
command = "make synth DESIGN=ppa_{}_{} TECH={} DRIVE=INV FREQ={} MAXOPT=1".format(module, width, tech, freq)
|
||||
command = "make synth DESIGN=ppa_{}_{} TECH={} DRIVE=INV FREQ={} MAXOPT=1 MAXCORES=1".format(module, width, tech, freq)
|
||||
subprocess.Popen(command, shell=True)
|
||||
|
||||
def deleteRedundant(LoT):
|
||||
|
@ -20,58 +17,40 @@ def deleteRedundant(LoT):
|
|||
bashCommand = synthStr.format(*synth)
|
||||
outputCPL = subprocess.check_output(['bash','-c', bashCommand])
|
||||
|
||||
def getData(filename):
|
||||
Synth = namedtuple("Synth", "module tech width freq delay area lpower denergy")
|
||||
with open(filename, newline='') as csvfile:
|
||||
csvreader = csv.reader(csvfile)
|
||||
global allSynths
|
||||
allSynths = list(csvreader)
|
||||
for i in range(len(allSynths)):
|
||||
for j in range(len(allSynths[0])):
|
||||
try: allSynths[i][j] = int(allSynths[i][j])
|
||||
except:
|
||||
try: allSynths[i][j] = float(allSynths[i][j])
|
||||
except: pass
|
||||
allSynths[i] = Synth(*allSynths[i])
|
||||
if __name__ == '__main__':
|
||||
|
||||
LoT = []
|
||||
synthsToRun = []
|
||||
|
||||
##### Run specific syntheses
|
||||
# widths = [8]
|
||||
# modules = ['mult', 'add', 'shiftleft', 'flop', 'comparator', 'priorityencoder', 'add', 'csa', 'mux2', 'mux4', 'mux8']
|
||||
# techs = ['sky90']
|
||||
# freqs = [5000]
|
||||
# for w in widths:
|
||||
# for module in modules:
|
||||
# for tech in techs:
|
||||
# for freq in freqs:
|
||||
# LoT += [[module, str(w), tech, str(freq)]]
|
||||
|
||||
# arr = [-5, -3, -1, 1, 3, 5]
|
||||
arr2 = [-8, -6, -4, -2, 0, 2, 4, 6, 8]
|
||||
##### Run a sweep based on best delay found in existing syntheses
|
||||
arr = [-8, -6, -4, -2, 0, 2, 4, 6, 8]
|
||||
allSynths = synthsfromcsv('bestSynths.csv')
|
||||
for synth in allSynths:
|
||||
f = 1000/synth.delay
|
||||
for freq in [round(f+f*x/100) for x in arr]:
|
||||
LoT += [[synth.module, str(synth.width), synth.tech, str(freq)]]
|
||||
|
||||
##### Only do syntheses for which a run doesn't already exist
|
||||
bashCommand = "find . -path '*runs/ppa*rv32e*' -prune"
|
||||
output = subprocess.check_output(['bash','-c', bashCommand])
|
||||
specReg = re.compile('[a-zA-Z0-9]+')
|
||||
allSynths = output.decode("utf-8").split('\n')[:-1]
|
||||
allSynths = [specReg.findall(oneSynth)[2:7] for oneSynth in allSynths]
|
||||
allSynths = [oneSynth[0:2] + [oneSynth[3][:-2]] + [oneSynth[4]] for oneSynth in allSynths]
|
||||
for synth in LoT:
|
||||
if (synth not in allSynths):
|
||||
synthsToRun += [synth]
|
||||
|
||||
widths = [128]
|
||||
modules = ['mux2', 'mux4', 'mux8', 'shiftleft', 'flop', 'comparator', 'mult', 'priorityencoder', 'add', 'csa']
|
||||
techs = ['tsmc28']
|
||||
LoT = []
|
||||
|
||||
|
||||
allSynths = synthsfromcsv('ppaData.csv')
|
||||
|
||||
for w in widths:
|
||||
for module in modules:
|
||||
for tech in techs:
|
||||
m = 100000 # large number to start
|
||||
for oneSynth in allSynths:
|
||||
if (oneSynth.width == w) & (oneSynth.tech == tech) & (oneSynth.module == module):
|
||||
if (oneSynth.delay < m):
|
||||
m = oneSynth.delay
|
||||
synth = oneSynth
|
||||
# f = 1000/synth.delay
|
||||
for freq in [10]: #[round(f+f*x/100) for x in arr2]:
|
||||
LoT += [[synth.module, str(synth.width), synth.tech, str(freq)]]
|
||||
|
||||
|
||||
bashCommand = "find . -path '*runs/ppa*rv32e*' -prune"
|
||||
output = subprocess.check_output(['bash','-c', bashCommand])
|
||||
specReg = re.compile('[a-zA-Z0-9]+')
|
||||
allSynths = output.decode("utf-8").split('\n')[:-1]
|
||||
allSynths = [specReg.findall(oneSynth)[2:7] for oneSynth in allSynths]
|
||||
allSynths = [oneSynth[0:2] + [oneSynth[3][:-2]] + [oneSynth[4]] for oneSynth in allSynths]
|
||||
|
||||
synthsToRun = []
|
||||
for synth in LoT:
|
||||
if synth not in allSynths:
|
||||
synthsToRun += [synth]
|
||||
|
||||
pool = Pool(processes=25)
|
||||
pool.starmap(runCommand, synthsToRun)
|
||||
pool.close()
|
||||
pool = Pool(processes=25)
|
||||
pool.starmap(runCommand, synthsToRun)
|
Loading…
Add table
Add a link
Reference in a new issue