Merge pull request #466 from stineje/main

Add pap runs for sweep
This commit is contained in:
Rose Thompson 2023-11-10 22:25:55 -08:00 committed by GitHub
commit 0d6fb879aa
5 changed files with 177 additions and 53 deletions

View File

@ -20,11 +20,11 @@ export MAXCORES ?= 1
export MAXOPT ?= 0
export DRIVE ?= FLOP
export USESRAM ?= 0
export WIDTH ?= 32
time := $(shell date +%F-%H-%M)
hash := $(shell git rev-parse --short HEAD)
export OUTPUTDIR := runs/$(DESIGN)_$(CONFIG)_$(MOD)_$(TECH)nm_$(FREQ)_MHz_$(time)_$(TITLE)_$(hash)
export OUTPUTDIR := runs/$(DESIGN)_$(WIDTH)_$(CONFIG)_$(MOD)_$(TECH)_$(FREQ)_MHz_$(time)_$(TITLE)_$(hash)
export SAIFPOWER ?= 0
OLDCONFIGDIR ?= ${WALLY}/config
@ -147,4 +147,4 @@ clean:
rm -f power.saif
rm -f Synopsys_stack_trace_*.txt
rm -f crte_*.txt

View File

@ -5,7 +5,7 @@ This subdirectory contains synthesis scripts for use with Synopsys
scripts/synth.tcl.
Example Usage
make synth DESIGN=wallypipelinedcore FREQ=500
make synth DESIGN=wallypipelinedcore FREQ=500 CONFIG=rv32e
environment variables
@ -38,5 +38,25 @@ To run ppa analysis that hones into target frequency, you can type:
python3 ppa/ppaSynth.py from the synthDC directory. This runs a sweep
across all modules listed at the bottom of the ppaSynth.py file.
Two options for running the sweep. The first run runs all modules for
all techs around a given frequency (i.e., freqs). The second option
will run all designs for the specific module based on bestSynths.csv
values. Since the second option is 2nd, it has priority. If the
second set of values is commented out, it will run all widths.
WARNING: The first option may runs lots of runs that could expend all
the licenses available for a license. Therefore, care must be taken
to be sure that enough licenses are available for this first option.
##### Run specific syntheses
widths = [8, 16, 32, 64, 128]
modules = ['mul', 'adder', 'shifter', 'flop', 'comparator', 'binencoder', 'csa', 'mux2', 'mux4', 'mux8']
techs = ['sky90', 'sky130', 'tsmc28', 'tsmc28psyn']
freqs = [5000]
synthsToRun = allCombos(widths, modules, techs, freqs)
##### Run a sweep based on best delay found in existing syntheses
module = 'adder'
width = 32
tech = 'tsmc28psyn'
synthsToRun = freqSweep(module, width, tech)

View File

@ -1,24 +1,74 @@
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
binencoder,sky130,8,1000,1.0000,50.960001,24.761,0.010685929975270078
binencoder,sky130,16,1000,1.0000,136.220003,77.243,0.021773774467348
binencoder,sky130,32,1000,1.0000,372.400007,189.626,0.04371111111111111
binencoder,sky130,64,1000,1.0000,797.720015,382.205,0.07393850658857981
binencoder,sky130,128,1000,1.0000,1602.300031,610.009,0.1261366969785861
adder,sky130,8,1000,1.0000,253.820005,154.438,0.10825587752870422
adder,sky130,16,1000,1.0000,722.260013,485.109,0.32460910944935417
adder,sky130,32,1000,1.0000,1440.600027,714.057,0.6580226904376014
adder,sky130,64,1000,1.0000,2781.240054,1050.0,0.9392239364188874
adder,sky130,128,1000,1.0000,6186.740118,2230.0,2.1480106100795755
csa,sky130,8,1000,1.0000,266.560005,154.202,0.13650573115665163
csa,sky130,16,1000,1.0000,533.12001,308.404,0.27263530601922104
csa,sky130,32,1000,1.0000,1066.240021,616.808,0.5448072247308093
csa,sky130,64,1000,1.0000,2132.480042,1230.0,1.0905412240768841
csa,sky130,128,1000,1.0000,4264.960083,2470.0,2.178553363682347
shifter,sky130,8,1000,1.0000,259.700005,196.451,0.07534088282874972
shifter,sky130,16,1000,1.0000,666.400006,558.433,0.19552906110283155
shifter,sky130,32,1000,1.0000,1475.880027,768.262,0.3807431082700759
shifter,sky130,64,1000,1.0000,3914.120062,2680.0,1.144802541988198
shifter,sky130,128,1000,1.0000,9192.400136,6080.0,2.9008914525432616
comparator,sky130,8,1000,1.0000,200.900004,136.6,0.05001033271337053
comparator,sky130,16,1000,1.0000,358.680007,189.253,0.06321553011448482
comparator,sky130,32,1000,1.0000,690.900013,315.709,0.10771793448084398
comparator,sky130,64,1000,1.0000,1372.980026,508.393,0.2048577820389901
comparator,sky130,128,1000,1.0000,2744.980052,796.047,0.34396273737011823
flop,sky130,8,1000,1.0000,133.279999,64.8145,0.193835
flop,sky130,16,1000,1.0000,266.5599975,129.629,0.38715000000000005
flop,sky130,32,1000,1.0000,533.119995,259.258,0.7723000000000001
flop,sky130,64,1000,1.0000,1066.23999,520.0,1.54955
flop,sky130,128,1000,1.0000,2132.4799805,1035.0,3.094
mux2,sky130,8,1000,1.0000,63.700001,21.541,0.01932440083034535
mux2,sky130,16,1000,1.0000,119.560002,32.354,0.03884536082474227
mux2,sky130,32,1000,1.0000,375.340008,259.372,0.13671796921846893
mux2,sky130,64,1000,1.0000,479.220009,115.22,0.15148539160324087
mux2,sky130,128,1000,1.0000,1302.420025,767.078,0.4665334665334665
mux4,sky130,8,1000,1.0000,148.960002,66.984,0.04026661024121879
mux4,sky130,16,1000,1.0000,392.0,398.313,0.1037037037037037
mux4,sky130,32,1000,1.0000,594.860011,331.197,0.131617289946576
mux4,sky130,64,1000,1.0000,899.640016,344.331,0.2862533692722372
mux4,sky130,128,1000,1.0000,2013.900038,818.249,0.6094182825484764
mux8,sky130,8,1000,1.0000,287.140006,116.648,0.06089260808926081
mux8,sky130,16,1000,1.0000,582.120003,282.366,0.14455681142177274
mux8,sky130,32,1000,1.0000,1319.079995,670.683,0.35777218376337316
mux8,sky130,64,1000,1.0000,2132.48004,808.482,0.44287680660701995
mux8,sky130,128,1000,1.0000,4575.620089,1830.0,0.9786276715410572
mul,sky130,8,1000,1.0000,2194.220041,1440.0,1.421374045801527
mul,sky130,16,1000,1.0000,7519.540137,4940.0,6.376128385155466
mul,sky130,32,1000,1.0000,25200.700446,14900.0,24.931847968545217
mul,sky130,64,1000,1.0000,86011.661365,42600.0,88.84651898734177
mul,sky130,128,1000,1.0000,296198.144128,114000.0,273.3148854961832
binencoder,sky90,8,7683,0.12508649056358195,50.960001,24.761,0.010685929975270078
binencoder,sky90,16,5773,0.16977016282695304,136.220003,77.243,0.021773774467348
binencoder,sky90,32,4500,0.2218912222222222,372.400007,189.626,0.04371111111111111
binencoder,sky90,64,4098,0.2439914738897023,797.720015,382.205,0.07393850658857981
binencoder,sky90,128,3409,0.2933331557641537,1602.300031,610.009,0.1261366969785861
adder,sky90,8,3658,0.27337042810278844,253.820005,154.438,0.10825587752870422
adder,sky90,16,2942,0.3393218266485384,722.260013,485.109,0.32460910944935417
adder,sky90,32,2468,0.40496338573743923,1440.600027,714.057,0.6580226904376014
adder,sky90,64,2139,0.4674681813931744,2781.240054,1050.0,0.9392239364188874
adder,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
shifter,sky90,8,4327,0.23025600254217704,259.700005,196.451,0.07534088282874972
shifter,sky90,16,3355,0.29803959314456036,666.400006,558.433,0.19552906110283155
shifter,sky90,32,2503,0.39951757530962845,1475.880027,768.262,0.3807431082700759
shifter,sky90,64,2203,0.45385946391284615,3914.120062,2680.0,1.144802541988198
shifter,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
@ -44,31 +94,31 @@ 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
mul,sky90,8,1310,0.7631557786259543,2194.220041,1440.0,1.421374045801527
mul,sky90,16,997,1.0029260270812437,7519.540137,4940.0,6.376128385155466
mul,sky90,32,763,1.3106129895150722,25200.700446,14900.0,24.931847968545217
mul,sky90,64,632,1.5822664810126583,86011.661365,42600.0,88.84651898734177
mul,sky90,128,524,1.9083759465648855,296198.144128,114000.0,273.3148854961832
binencoder,tsmc28,8,31335,0.031912196106590074,8.316,34.836,0.001716929950534546
binencoder,tsmc28,16,21253,0.04703118086858326,21.672,78.026,0.004008845810003294
binencoder,tsmc28,32,16464,0.06071258114674442,61.614,207.499,0.009323372206025266
binencoder,tsmc28,64,13804,0.07239877021153289,137.466,425.592,0.01847290640394089
binencoder,tsmc28,128,11440,0.0874065874125874,317.646,973.649,0.041171328671328666
adder,tsmc28,8,13838,0.07207477814713109,34.272,187.089,0.013311172134701546
adder,tsmc28,16,11521,0.08678002100512108,90.972001,475.207,0.03367763214998698
adder,tsmc28,32,9812,0.1018860211985324,209.286002,1060.0,0.08153281695882594
adder,tsmc28,64,8206,0.12185605215695831,388.836003,1770.0,0.1409943943456008
adder,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
shifter,tsmc28,8,15202,0.0656078183133798,50.652,367.074,0.016991185370346006
shifter,tsmc28,16,11804,0.08465604506946797,127.511999,602.29,0.03388681802778719
shifter,tsmc28,32,9587,0.10430391697089808,384.803997,1940.0,0.10180452696359654
shifter,tsmc28,64,8272,0.12086674854932303,1041.263998,5460.0,0.2895309477756286
shifter,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
@ -94,8 +144,58 @@ 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
mul,tsmc28,8,5200,0.1922996923076923,577.206,4340.0,0.37769230769230766
mul,tsmc28,16,3819,0.26184265147944485,1634.472002,11800.0,1.4553548049227547
mul,tsmc28,32,3033,0.3295775611605671,6343.721998,47200.0,6.303330036267723
mul,tsmc28,64,2390,0.4184090418410042,16045.092071,109000.0,18.54602510460251
mul,tsmc28,128,1868,0.5353279057815846,44272.49428,262000.0,50.01177730192719
binencoder,tsmc28psyn,8,31335,0.031912196106590074,8.316,34.836,0.001716929950534546
binencoder,tsmc28psyn,16,21253,0.04703118086858326,21.672,78.026,0.004008845810003294
binencoder,tsmc28psyn,32,16464,0.06071258114674442,61.614,207.499,0.009323372206025266
binencoder,tsmc28psyn,64,13804,0.07239877021153289,137.466,425.592,0.01847290640394089
binencoder,tsmc28psyn,128,11440,0.0874065874125874,317.646,973.649,0.041171328671328666
adder,tsmc28psyn,8,13838,0.07207477814713109,34.272,187.089,0.013311172134701546
adder,tsmc28psyn,16,11521,0.08678002100512108,90.972001,475.207,0.03367763214998698
adder,tsmc28psyn,32,9812,0.1018860211985324,209.286002,1060.0,0.08153281695882594
adder,tsmc28psyn,64,8206,0.12185605215695831,388.836003,1770.0,0.1409943943456008
adder,tsmc28psyn,128,7354,0.13597341881968997,907.452008,4360.0,0.3451183029643731
csa,tsmc28psyn,8,24524,0.040663382319360626,52.416,482.462,0.02173381177621921
csa,tsmc28psyn,16,24524,0.040663382319360626,104.832,964.99,0.04346762355243842
csa,tsmc28psyn,32,24524,0.040663382319360626,209.664,1930.0,0.08677214157559941
csa,tsmc28psyn,64,24524,0.040663382319360626,419.327999,3860.0,0.17342195400424076
csa,tsmc28psyn,128,24524,0.040663382319360626,838.655998,7720.0,0.3471701190670363
shifter,tsmc28psyn,8,15202,0.0656078183133798,50.652,367.074,0.016991185370346006
shifter,tsmc28psyn,16,11804,0.08465604506946797,127.511999,602.29,0.03388681802778719
shifter,tsmc28psyn,32,9587,0.10430391697089808,384.803997,1940.0,0.10180452696359654
shifter,tsmc28psyn,64,8272,0.12086674854932303,1041.263998,5460.0,0.2895309477756286
shifter,tsmc28psyn,128,7023,0.14238329232521713,1836.953994,8670.0,0.566566994162039
comparator,tsmc28psyn,8,17422,0.05733769130983814,35.784,170.595,0.009488003673516243
comparator,tsmc28psyn,16,13736,0.07273839778683751,54.558,250.167,0.014349155503785673
comparator,tsmc28psyn,32,12139,0.08236710865804432,145.782,622.975,0.03567015404893319
comparator,tsmc28psyn,64,11080,0.09024670758122744,294.21,1250.0,0.0684115523465704
comparator,tsmc28psyn,128,9371,0.10671119720414043,558.432,2400.0,0.12794792444776437
flop,tsmc28psyn,8,10,0.048889000000002625,15.12,78.6345,0.027246000000000003
flop,tsmc28psyn,16,10,0.048889000000002625,30.24,157.29,0.054290000000000005
flop,tsmc28psyn,32,10,0.048889000000002625,60.4799995,314.5805,0.10908000000000001
flop,tsmc28psyn,64,10,0.048889000000002625,120.959999,630.0,0.21765500000000004
flop,tsmc28psyn,128,10,0.048889000000002625,241.919998,1260.0,0.43579999999999997
mux2,tsmc28psyn,8,29614,0.03374481252110488,16.758,114.564,0.005436617815897886
mux2,tsmc28psyn,16,18767,0.053046021580433735,15.75,88.025,0.005142004582511856
mux2,tsmc28psyn,32,17903,0.05585556035301346,32.130001,171.146,0.009897782494553985
mux2,tsmc28psyn,64,18568,0.05371109651012495,91.35,523.884,0.027574321413183972
mux2,tsmc28psyn,128,16637,0.05991099044298852,176.525999,941.106,0.05012923002945243
mux4,tsmc28psyn,8,18151,0.055092383284667513,27.971999,133.963,0.008032615282904523
mux4,tsmc28psyn,16,16486,0.06057952759917506,39.438,186.231,0.012556108213029236
mux4,tsmc28psyn,32,15196,0.06580579126085812,69.174,324.969,0.023229797315082915
mux4,tsmc28psyn,64,13926,0.07180612868016659,137.465999,648.086,0.04574177796926612
mux4,tsmc28psyn,128,13090,0.07636619404125286,294.335997,1420.0,0.09358288770053477
mux8,tsmc28psyn,8,12902,0.07750336319950395,44.604,214.286,0.0117501162610448
mux8,tsmc28psyn,16,12264,0.08147446510110894,128.771998,548.714,0.02666340508806262
mux8,tsmc28psyn,32,11713,0.08517122410996329,172.115999,823.633,0.046956373260479814
mux8,tsmc28psyn,64,11014,0.09067453550027238,304.163999,1460.0,0.08498274922825495
mux8,tsmc28psyn,128,10474,0.09542350830628223,683.045996,2820.0,0.15705556616383426
mul,tsmc28psyn,8,5200,0.1922996923076923,577.206,4340.0,0.37769230769230766
mul,tsmc28psyn,16,3819,0.26184265147944485,1634.472002,11800.0,1.4553548049227547
mul,tsmc28psyn,32,3033,0.3295775611605671,6343.721998,47200.0,6.303330036267723
mul,tsmc28psyn,64,2390,0.4184090418410042,16045.092071,109000.0,18.54602510460251
mul,tsmc28psyn,128,1868,0.5353279057815846,44272.49428,262000.0,50.01177730192719

1 Module Tech Width Target Freq Delay Area L Power (nW) D energy (nJ)
2 priorityencoder binencoder sky90 sky130 8 7683 1000 0.12508649056358195 1.0000 50.960001 24.761 0.010685929975270078
3 priorityencoder binencoder sky90 sky130 16 5773 1000 0.16977016282695304 1.0000 136.220003 77.243 0.021773774467348
4 priorityencoder binencoder sky90 sky130 32 4500 1000 0.2218912222222222 1.0000 372.400007 189.626 0.04371111111111111
5 priorityencoder binencoder sky90 sky130 64 4098 1000 0.2439914738897023 1.0000 797.720015 382.205 0.07393850658857981
6 priorityencoder binencoder sky90 sky130 128 3409 1000 0.2933331557641537 1.0000 1602.300031 610.009 0.1261366969785861
7 add adder sky90 sky130 8 3658 1000 0.27337042810278844 1.0000 253.820005 154.438 0.10825587752870422
8 add adder sky90 sky130 16 2942 1000 0.3393218266485384 1.0000 722.260013 485.109 0.32460910944935417
9 add adder sky90 sky130 32 2468 1000 0.40496338573743923 1.0000 1440.600027 714.057 0.6580226904376014
10 add adder sky90 sky130 64 2139 1000 0.4674681813931744 1.0000 2781.240054 1050.0 0.9392239364188874
11 add adder sky90 sky130 128 1885 1000 0.5304949787798409 1.0000 6186.740118 2230.0 2.1480106100795755
12 csa sky130 8 1000 1.0000 266.560005 154.202 0.13650573115665163
13 csa sky130 16 1000 1.0000 533.12001 308.404 0.27263530601922104
14 csa sky130 32 1000 1.0000 1066.240021 616.808 0.5448072247308093
15 csa sky130 64 1000 1.0000 2132.480042 1230.0 1.0905412240768841
16 csa sky130 128 1000 1.0000 4264.960083 2470.0 2.178553363682347
17 shifter sky130 8 1000 1.0000 259.700005 196.451 0.07534088282874972
18 shifter sky130 16 1000 1.0000 666.400006 558.433 0.19552906110283155
19 shifter sky130 32 1000 1.0000 1475.880027 768.262 0.3807431082700759
20 shifter sky130 64 1000 1.0000 3914.120062 2680.0 1.144802541988198
21 shifter sky130 128 1000 1.0000 9192.400136 6080.0 2.9008914525432616
22 comparator sky130 8 1000 1.0000 200.900004 136.6 0.05001033271337053
23 comparator sky130 16 1000 1.0000 358.680007 189.253 0.06321553011448482
24 comparator sky130 32 1000 1.0000 690.900013 315.709 0.10771793448084398
25 comparator sky130 64 1000 1.0000 1372.980026 508.393 0.2048577820389901
26 comparator sky130 128 1000 1.0000 2744.980052 796.047 0.34396273737011823
27 flop sky130 8 1000 1.0000 133.279999 64.8145 0.193835
28 flop sky130 16 1000 1.0000 266.5599975 129.629 0.38715000000000005
29 flop sky130 32 1000 1.0000 533.119995 259.258 0.7723000000000001
30 flop sky130 64 1000 1.0000 1066.23999 520.0 1.54955
31 flop sky130 128 1000 1.0000 2132.4799805 1035.0 3.094
32 mux2 sky130 8 1000 1.0000 63.700001 21.541 0.01932440083034535
33 mux2 sky130 16 1000 1.0000 119.560002 32.354 0.03884536082474227
34 mux2 sky130 32 1000 1.0000 375.340008 259.372 0.13671796921846893
35 mux2 sky130 64 1000 1.0000 479.220009 115.22 0.15148539160324087
36 mux2 sky130 128 1000 1.0000 1302.420025 767.078 0.4665334665334665
37 mux4 sky130 8 1000 1.0000 148.960002 66.984 0.04026661024121879
38 mux4 sky130 16 1000 1.0000 392.0 398.313 0.1037037037037037
39 mux4 sky130 32 1000 1.0000 594.860011 331.197 0.131617289946576
40 mux4 sky130 64 1000 1.0000 899.640016 344.331 0.2862533692722372
41 mux4 sky130 128 1000 1.0000 2013.900038 818.249 0.6094182825484764
42 mux8 sky130 8 1000 1.0000 287.140006 116.648 0.06089260808926081
43 mux8 sky130 16 1000 1.0000 582.120003 282.366 0.14455681142177274
44 mux8 sky130 32 1000 1.0000 1319.079995 670.683 0.35777218376337316
45 mux8 sky130 64 1000 1.0000 2132.48004 808.482 0.44287680660701995
46 mux8 sky130 128 1000 1.0000 4575.620089 1830.0 0.9786276715410572
47 mul sky130 8 1000 1.0000 2194.220041 1440.0 1.421374045801527
48 mul sky130 16 1000 1.0000 7519.540137 4940.0 6.376128385155466
49 mul sky130 32 1000 1.0000 25200.700446 14900.0 24.931847968545217
50 mul sky130 64 1000 1.0000 86011.661365 42600.0 88.84651898734177
51 mul sky130 128 1000 1.0000 296198.144128 114000.0 273.3148854961832
52 binencoder sky90 8 7683 0.12508649056358195 50.960001 24.761 0.010685929975270078
53 binencoder sky90 16 5773 0.16977016282695304 136.220003 77.243 0.021773774467348
54 binencoder sky90 32 4500 0.2218912222222222 372.400007 189.626 0.04371111111111111
55 binencoder sky90 64 4098 0.2439914738897023 797.720015 382.205 0.07393850658857981
56 binencoder sky90 128 3409 0.2933331557641537 1602.300031 610.009 0.1261366969785861
57 adder sky90 8 3658 0.27337042810278844 253.820005 154.438 0.10825587752870422
58 adder sky90 16 2942 0.3393218266485384 722.260013 485.109 0.32460910944935417
59 adder sky90 32 2468 0.40496338573743923 1440.600027 714.057 0.6580226904376014
60 adder sky90 64 2139 0.4674681813931744 2781.240054 1050.0 0.9392239364188874
61 adder sky90 128 1885 0.5304949787798409 6186.740118 2230.0 2.1480106100795755
62 csa sky90 8 5758 0.16536141368530738 266.560005 154.202 0.13650573115665163
63 csa sky90 16 5931 0.1654056314280897 533.12001 308.404 0.27263530601922104
64 csa sky90 32 5758 0.16536141368530738 1066.240021 616.808 0.5448072247308093
65 csa sky90 64 5931 0.1654056314280897 2132.480042 1230.0 1.0905412240768841
66 csa sky90 128 5931 0.1654056314280897 4264.960083 2470.0 2.178553363682347
67 shiftleft shifter sky90 8 4327 0.23025600254217704 259.700005 196.451 0.07534088282874972
68 shiftleft shifter sky90 16 3355 0.29803959314456036 666.400006 558.433 0.19552906110283155
69 shiftleft shifter sky90 32 2503 0.39951757530962845 1475.880027 768.262 0.3807431082700759
70 shiftleft shifter sky90 64 2203 0.45385946391284615 3914.120062 2680.0 1.144802541988198
71 shiftleft shifter sky90 128 1907 0.5242938489774515 9192.400136 6080.0 2.9008914525432616
72 comparator sky90 8 4839 0.20629126741062204 200.900004 136.6 0.05001033271337053
73 comparator sky90 16 4018 0.24806303982080635 358.680007 189.253 0.06321553011448482
74 comparator sky90 32 3602 0.276293542476402 690.900013 315.709 0.10771793448084398
94 mux8 sky90 32 3178 0.3140553102580239 1319.079995 670.683 0.35777218376337316
95 mux8 sky90 64 2906 0.3440756228492774 2132.48004 808.482 0.44287680660701995
96 mux8 sky90 128 2667 0.3749401308586427 4575.620089 1830.0 0.9786276715410572
97 mult mul sky90 8 1310 0.7631557786259543 2194.220041 1440.0 1.421374045801527
98 mult mul sky90 16 997 1.0029260270812437 7519.540137 4940.0 6.376128385155466
99 mult mul sky90 32 763 1.3106129895150722 25200.700446 14900.0 24.931847968545217
100 mult mul sky90 64 632 1.5822664810126583 86011.661365 42600.0 88.84651898734177
101 mult mul sky90 128 524 1.9083759465648855 296198.144128 114000.0 273.3148854961832
102 priorityencoder binencoder tsmc28 8 31335 0.031912196106590074 8.316 34.836 0.001716929950534546
103 priorityencoder binencoder tsmc28 16 21253 0.04703118086858326 21.672 78.026 0.004008845810003294
104 priorityencoder binencoder tsmc28 32 16464 0.06071258114674442 61.614 207.499 0.009323372206025266
105 priorityencoder binencoder tsmc28 64 13804 0.07239877021153289 137.466 425.592 0.01847290640394089
106 priorityencoder binencoder tsmc28 128 11440 0.0874065874125874 317.646 973.649 0.041171328671328666
107 add adder tsmc28 8 13838 0.07207477814713109 34.272 187.089 0.013311172134701546
108 add adder tsmc28 16 11521 0.08678002100512108 90.972001 475.207 0.03367763214998698
109 add adder tsmc28 32 9812 0.1018860211985324 209.286002 1060.0 0.08153281695882594
110 add adder tsmc28 64 8206 0.12185605215695831 388.836003 1770.0 0.1409943943456008
111 add adder tsmc28 128 7354 0.13597341881968997 907.452008 4360.0 0.3451183029643731
112 csa tsmc28 8 24524 0.040663382319360626 52.416 482.462 0.02173381177621921
113 csa tsmc28 16 24524 0.040663382319360626 104.832 964.99 0.04346762355243842
114 csa tsmc28 32 24524 0.040663382319360626 209.664 1930.0 0.08677214157559941
115 csa tsmc28 64 24524 0.040663382319360626 419.327999 3860.0 0.17342195400424076
116 csa tsmc28 128 24524 0.040663382319360626 838.655998 7720.0 0.3471701190670363
117 shiftleft shifter tsmc28 8 15202 0.0656078183133798 50.652 367.074 0.016991185370346006
118 shiftleft shifter tsmc28 16 11804 0.08465604506946797 127.511999 602.29 0.03388681802778719
119 shiftleft shifter tsmc28 32 9587 0.10430391697089808 384.803997 1940.0 0.10180452696359654
120 shiftleft shifter tsmc28 64 8272 0.12086674854932303 1041.263998 5460.0 0.2895309477756286
121 shiftleft shifter tsmc28 128 7023 0.14238329232521713 1836.953994 8670.0 0.566566994162039
122 comparator tsmc28 8 17422 0.05733769130983814 35.784 170.595 0.009488003673516243
123 comparator tsmc28 16 13736 0.07273839778683751 54.558 250.167 0.014349155503785673
124 comparator tsmc28 32 12139 0.08236710865804432 145.782 622.975 0.03567015404893319
144 mux8 tsmc28 32 11713 0.08517122410996329 172.115999 823.633 0.046956373260479814
145 mux8 tsmc28 64 11014 0.09067453550027238 304.163999 1460.0 0.08498274922825495
146 mux8 tsmc28 128 10474 0.09542350830628223 683.045996 2820.0 0.15705556616383426
147 mult mul tsmc28 8 5200 0.1922996923076923 577.206 4340.0 0.37769230769230766
148 mult mul tsmc28 16 3819 0.26184265147944485 1634.472002 11800.0 1.4553548049227547
149 mult mul tsmc28 32 3033 0.3295775611605671 6343.721998 47200.0 6.303330036267723
150 mult mul tsmc28 64 2390 0.4184090418410042 16045.092071 109000.0 18.54602510460251
151 mult mul tsmc28 128 1868 0.5353279057815846 44272.49428 262000.0 50.01177730192719
152 binencoder tsmc28psyn 8 31335 0.031912196106590074 8.316 34.836 0.001716929950534546
153 binencoder tsmc28psyn 16 21253 0.04703118086858326 21.672 78.026 0.004008845810003294
154 binencoder tsmc28psyn 32 16464 0.06071258114674442 61.614 207.499 0.009323372206025266
155 binencoder tsmc28psyn 64 13804 0.07239877021153289 137.466 425.592 0.01847290640394089
156 binencoder tsmc28psyn 128 11440 0.0874065874125874 317.646 973.649 0.041171328671328666
157 adder tsmc28psyn 8 13838 0.07207477814713109 34.272 187.089 0.013311172134701546
158 adder tsmc28psyn 16 11521 0.08678002100512108 90.972001 475.207 0.03367763214998698
159 adder tsmc28psyn 32 9812 0.1018860211985324 209.286002 1060.0 0.08153281695882594
160 adder tsmc28psyn 64 8206 0.12185605215695831 388.836003 1770.0 0.1409943943456008
161 adder tsmc28psyn 128 7354 0.13597341881968997 907.452008 4360.0 0.3451183029643731
162 csa tsmc28psyn 8 24524 0.040663382319360626 52.416 482.462 0.02173381177621921
163 csa tsmc28psyn 16 24524 0.040663382319360626 104.832 964.99 0.04346762355243842
164 csa tsmc28psyn 32 24524 0.040663382319360626 209.664 1930.0 0.08677214157559941
165 csa tsmc28psyn 64 24524 0.040663382319360626 419.327999 3860.0 0.17342195400424076
166 csa tsmc28psyn 128 24524 0.040663382319360626 838.655998 7720.0 0.3471701190670363
167 shifter tsmc28psyn 8 15202 0.0656078183133798 50.652 367.074 0.016991185370346006
168 shifter tsmc28psyn 16 11804 0.08465604506946797 127.511999 602.29 0.03388681802778719
169 shifter tsmc28psyn 32 9587 0.10430391697089808 384.803997 1940.0 0.10180452696359654
170 shifter tsmc28psyn 64 8272 0.12086674854932303 1041.263998 5460.0 0.2895309477756286
171 shifter tsmc28psyn 128 7023 0.14238329232521713 1836.953994 8670.0 0.566566994162039
172 comparator tsmc28psyn 8 17422 0.05733769130983814 35.784 170.595 0.009488003673516243
173 comparator tsmc28psyn 16 13736 0.07273839778683751 54.558 250.167 0.014349155503785673
174 comparator tsmc28psyn 32 12139 0.08236710865804432 145.782 622.975 0.03567015404893319
175 comparator tsmc28psyn 64 11080 0.09024670758122744 294.21 1250.0 0.0684115523465704
176 comparator tsmc28psyn 128 9371 0.10671119720414043 558.432 2400.0 0.12794792444776437
177 flop tsmc28psyn 8 10 0.048889000000002625 15.12 78.6345 0.027246000000000003
178 flop tsmc28psyn 16 10 0.048889000000002625 30.24 157.29 0.054290000000000005
179 flop tsmc28psyn 32 10 0.048889000000002625 60.4799995 314.5805 0.10908000000000001
180 flop tsmc28psyn 64 10 0.048889000000002625 120.959999 630.0 0.21765500000000004
181 flop tsmc28psyn 128 10 0.048889000000002625 241.919998 1260.0 0.43579999999999997
182 mux2 tsmc28psyn 8 29614 0.03374481252110488 16.758 114.564 0.005436617815897886
183 mux2 tsmc28psyn 16 18767 0.053046021580433735 15.75 88.025 0.005142004582511856
184 mux2 tsmc28psyn 32 17903 0.05585556035301346 32.130001 171.146 0.009897782494553985
185 mux2 tsmc28psyn 64 18568 0.05371109651012495 91.35 523.884 0.027574321413183972
186 mux2 tsmc28psyn 128 16637 0.05991099044298852 176.525999 941.106 0.05012923002945243
187 mux4 tsmc28psyn 8 18151 0.055092383284667513 27.971999 133.963 0.008032615282904523
188 mux4 tsmc28psyn 16 16486 0.06057952759917506 39.438 186.231 0.012556108213029236
189 mux4 tsmc28psyn 32 15196 0.06580579126085812 69.174 324.969 0.023229797315082915
190 mux4 tsmc28psyn 64 13926 0.07180612868016659 137.465999 648.086 0.04574177796926612
191 mux4 tsmc28psyn 128 13090 0.07636619404125286 294.335997 1420.0 0.09358288770053477
192 mux8 tsmc28psyn 8 12902 0.07750336319950395 44.604 214.286 0.0117501162610448
193 mux8 tsmc28psyn 16 12264 0.08147446510110894 128.771998 548.714 0.02666340508806262
194 mux8 tsmc28psyn 32 11713 0.08517122410996329 172.115999 823.633 0.046956373260479814
195 mux8 tsmc28psyn 64 11014 0.09067453550027238 304.163999 1460.0 0.08498274922825495
196 mux8 tsmc28psyn 128 10474 0.09542350830628223 683.045996 2820.0 0.15705556616383426
197 mul tsmc28psyn 8 5200 0.1922996923076923 577.206 4340.0 0.37769230769230766
198 mul tsmc28psyn 16 3819 0.26184265147944485 1634.472002 11800.0 1.4553548049227547
199 mul tsmc28psyn 32 3033 0.3295775611605671 6343.721998 47200.0 6.303330036267723
200 mul tsmc28psyn 64 2390 0.4184090418410042 16045.092071 109000.0 18.54602510460251
201 mul tsmc28psyn 128 1868 0.5353279057815846 44272.49428 262000.0 50.01177730192719

View File

@ -12,8 +12,6 @@ from ppaAnalyze import synthsfromcsv
def runCommand(module, width, tech, freq):
command = "make synth DESIGN={} WIDTH={} TECH={} DRIVE=INV FREQ={} MAXOPT=1 MAXCORES=1".format(module, width, tech, freq)
print('here we go')
subprocess.Popen(command, shell=True)
def deleteRedundant(synthsToRun):
@ -61,15 +59,15 @@ if __name__ == '__main__':
##### Run specific syntheses
widths = [8, 16, 32, 64, 128]
modules = ['mult', 'add', 'shiftleft', 'flop', 'comparator', 'priorityencoder', 'add', 'csa', 'mux2', 'mux4', 'mux8']
techs = ['sky90', 'tsmc28']
modules = ['mul', 'adder', 'shifter', 'flop', 'comparator', 'binencoder', 'csa', 'mux2', 'mux4', 'mux8']
techs = ['sky90', 'sky130', 'tsmc28', 'tsmc28psyn']
freqs = [5000]
synthsToRun = allCombos(widths, modules, techs, freqs)
##### Run a sweep based on best delay found in existing syntheses
module = 'add'
module = 'adder'
width = 32
tech = 'sky90'
tech = 'tsmc28psyn'
synthsToRun = freqSweep(module, width, tech)
##### Only do syntheses for which a run doesn't already exist

View File

@ -18,7 +18,6 @@ suppress_message {VER-274}
# Enable Multicore
set_host_options -max_cores $::env(MAXCORES)
# get outputDir and configDir from environment (Makefile)
set outputDir $::env(OUTPUTDIR)
set cfg $::env(CONFIGDIR)
@ -26,6 +25,7 @@ set hdl_src "../src"
set saifpower $::env(SAIFPOWER)
set maxopt $::env(MAXOPT)
set drive $::env(DRIVE)
set width $::env(WIDTH)
eval file copy -force [glob ${cfg}/*.vh] {$outputDir/hdl/}
eval file copy -force [glob ${hdl_src}/cvw.sv] {$outputDir/hdl/}
@ -88,7 +88,13 @@ if { [shell_is_in_topographical_mode] } {
#set alib_library_analysis_path ./$outputDir
define_design_lib WORK -path ./$outputDir/WORK
analyze -f sverilog -lib WORK $my_verilog_files
elaborate $my_toplevel -lib WORK
# If wrapper=0, we want to run against a specific module and pass
# width to DC
if { $wrapper == 1 } {
elaborate $my_toplevel -lib WORK
} else {
elaborate $my_toplevel -lib WORK -parameters WIDTH=$width
}
# Set the current_design
current_design $my_toplevel
@ -447,4 +453,4 @@ set t2 [clock seconds]
set t [expr $t2 - $t1]
echo [expr $t/60]
quit
quit