siliconcompiler 0.33.2__py3-none-any.whl → 0.34.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. siliconcompiler/__init__.py +2 -0
  2. siliconcompiler/_metadata.py +1 -1
  3. siliconcompiler/apps/sc_issue.py +5 -3
  4. siliconcompiler/apps/sc_remote.py +0 -17
  5. siliconcompiler/checklist.py +1 -1
  6. siliconcompiler/core.py +34 -47
  7. siliconcompiler/dependencyschema.py +392 -0
  8. siliconcompiler/design.py +664 -0
  9. siliconcompiler/flowgraph.py +32 -1
  10. siliconcompiler/package/__init__.py +383 -223
  11. siliconcompiler/package/git.py +75 -77
  12. siliconcompiler/package/github.py +70 -97
  13. siliconcompiler/package/https.py +77 -93
  14. siliconcompiler/packageschema.py +260 -0
  15. siliconcompiler/pdk.py +2 -2
  16. siliconcompiler/remote/client.py +15 -3
  17. siliconcompiler/report/dashboard/cli/board.py +1 -1
  18. siliconcompiler/scheduler/__init__.py +3 -1382
  19. siliconcompiler/scheduler/docker.py +268 -0
  20. siliconcompiler/scheduler/run_node.py +10 -16
  21. siliconcompiler/scheduler/scheduler.py +308 -0
  22. siliconcompiler/scheduler/schedulernode.py +934 -0
  23. siliconcompiler/scheduler/slurm.py +147 -163
  24. siliconcompiler/scheduler/taskscheduler.py +39 -52
  25. siliconcompiler/schema/__init__.py +3 -3
  26. siliconcompiler/schema/baseschema.py +234 -10
  27. siliconcompiler/schema/editableschema.py +4 -0
  28. siliconcompiler/schema/journal.py +210 -0
  29. siliconcompiler/schema/namedschema.py +31 -2
  30. siliconcompiler/schema/parameter.py +14 -1
  31. siliconcompiler/schema/parametervalue.py +1 -34
  32. siliconcompiler/schema/schema_cfg.py +210 -349
  33. siliconcompiler/tool.py +61 -20
  34. siliconcompiler/tools/builtin/concatenate.py +2 -2
  35. siliconcompiler/tools/builtin/verify.py +1 -2
  36. siliconcompiler/tools/openroad/scripts/common/procs.tcl +27 -25
  37. siliconcompiler/tools/vpr/route.py +69 -0
  38. siliconcompiler/toolscripts/_tools.json +4 -4
  39. siliconcompiler/utils/__init__.py +2 -23
  40. siliconcompiler/utils/flowgraph.py +5 -5
  41. siliconcompiler/utils/logging.py +2 -1
  42. {siliconcompiler-0.33.2.dist-info → siliconcompiler-0.34.0.dist-info}/METADATA +4 -3
  43. {siliconcompiler-0.33.2.dist-info → siliconcompiler-0.34.0.dist-info}/RECORD +47 -42
  44. siliconcompiler/scheduler/docker_runner.py +0 -254
  45. siliconcompiler/schema/journalingschema.py +0 -242
  46. {siliconcompiler-0.33.2.dist-info → siliconcompiler-0.34.0.dist-info}/WHEEL +0 -0
  47. {siliconcompiler-0.33.2.dist-info → siliconcompiler-0.34.0.dist-info}/entry_points.txt +0 -0
  48. {siliconcompiler-0.33.2.dist-info → siliconcompiler-0.34.0.dist-info}/licenses/LICENSE +0 -0
  49. {siliconcompiler-0.33.2.dist-info → siliconcompiler-0.34.0.dist-info}/top_level.txt +0 -0
@@ -1,25 +1,28 @@
1
- siliconcompiler/__init__.py,sha256=uAtiKhQwppyIpnV6kB3Z2Aa7rWVlKMlumh6uN-NfX2I,1064
1
+ siliconcompiler/__init__.py,sha256=oOM5-EdmAXJgXbko4v2t7AwQpJyR7DQb_RZ5OMH7MaM,1132
2
2
  siliconcompiler/__main__.py,sha256=JwWkcvaNngqgMWprEQ1cFy2Wdq9GMvk46UGTHyh_qvM,170
3
3
  siliconcompiler/_common.py,sha256=wt6W8iAHpx7ezVPPYxe_QFUc3YM1TLdDdq89eYaFMBA,1578
4
- siliconcompiler/_metadata.py,sha256=A1d4CeBbKsHgmYeULOnIdXClFzhJP6Kd6b08EtsTWxs,1286
4
+ siliconcompiler/_metadata.py,sha256=oLdV_TkHvqguzb3pg9zkV-Hr3t395b0GSw7CgzYTwLo,1286
5
5
  siliconcompiler/asic.py,sha256=vNBYrXlOZ1RqGrMZz9MdJIYR3aq4V0VlVPT6VZ9knyM,4287
6
- siliconcompiler/checklist.py,sha256=NDGG64Zk_-W2pw7ybJY_c0LvjkXdVuu_SRqk1323s00,5835
7
- siliconcompiler/core.py,sha256=O9p32P4UU0lQOLLYAWW25Ex1OHApElpShaYbG7X85pk,139309
8
- siliconcompiler/flowgraph.py,sha256=SM3ZaDyhj7Ee4wSBe6sxHIVSvRTHLw8cf7_HPf0Clks,30011
6
+ siliconcompiler/checklist.py,sha256=cuqddypoNvyC7vGMffnK0K5g8uRxLRigBJd7JlT34C4,5830
7
+ siliconcompiler/core.py,sha256=ysWwFuyR-yvF3dq7jZMb8B6CQJMMU3ySn3sw2SBAco8,138621
8
+ siliconcompiler/dependencyschema.py,sha256=lwqjHCnXTW_-dNC5hqD6s6Q7Zu3vvWnWInhu7woQoQA,13639
9
+ siliconcompiler/design.py,sha256=4jTobQdeT6dTASnNOmMMEh_jptOAaUHVIj6t-ZEEmNw,21956
10
+ siliconcompiler/flowgraph.py,sha256=pDSknBX6kpB3EsiA8KgNTwp_WMpeZM39P-Ao3Tkuaak,31166
9
11
  siliconcompiler/fpga.py,sha256=pww3UMIo9bNXUFCSwNYQbAeDpmdC1xF70B53Oa6rrO4,3036
10
12
  siliconcompiler/metric.py,sha256=VdqbAJLTBFqHkzUgUbRK3HmosKB5dSOSVBdNktN_PiA,19628
11
- siliconcompiler/pdk.py,sha256=prCcvzsUNQhtXaAxA68cGmC4JQm1-eEvk-Gv5B3EZzg,18660
13
+ siliconcompiler/packageschema.py,sha256=3Q-XD7Xzado3eXsR4qMwXmPpzdT7wele8Qjj68eXKBE,9280
14
+ siliconcompiler/pdk.py,sha256=DE3ek31jJ2jBhe1TbG5iiXNFeofahwKovSCfeXF-gbk,18650
12
15
  siliconcompiler/record.py,sha256=sQsU1r3x-pm94g5NBdgABGuO2zrgMzjTAlHiEdv7bzQ,17758
13
16
  siliconcompiler/schema_obj.py,sha256=0sxp6dRgqY-tAImtbXCjd4PzIK8yAKyqqy-QK2FM8P0,4181
14
- siliconcompiler/tool.py,sha256=FARsqlAou7q06gTOq86MKPIBEA0UGOrAaL-fEGgJmP8,57473
17
+ siliconcompiler/tool.py,sha256=P_wci3ttP6iVg7hnLqJ_mUwXBn2W7DromPS0VdKrTFc,58845
15
18
  siliconcompiler/use.py,sha256=zu17ogJv0x2t_6J9yb_5tH1DjridVQj0MrIRxJRJVGQ,6202
16
19
  siliconcompiler/apps/__init__.py,sha256=6LuAljPtVB6g5yXl_58ODoB4Svb6UfKaDbX1e0aNZfE,668
17
20
  siliconcompiler/apps/_common.py,sha256=YK5zNHHnHeEWwcK27wXwsaApsrphUenh9uQzGf2zKvs,4425
18
21
  siliconcompiler/apps/sc.py,sha256=yF2IoNQkFiSmmWNKJKESOoIhy5fDIv2oqoEG5x7TP5s,3284
19
22
  siliconcompiler/apps/sc_dashboard.py,sha256=60ccCeC6RxPSt4uxej6bEJlpwViiEvRbZlqXtAItf98,3633
20
23
  siliconcompiler/apps/sc_install.py,sha256=4U9o9-GyZckKz-iHPQ6FTZuFY9TlK8kZh-lRiM2JtJI,9040
21
- siliconcompiler/apps/sc_issue.py,sha256=UWL_wCPMWVRjKFNzfUMbfiItxPhquqB9XoLB9B0v3kc,6410
22
- siliconcompiler/apps/sc_remote.py,sha256=xEGs9E7JTPYb-2TZpk4tCa8mHzQti7uhzbLex88zaSE,7467
24
+ siliconcompiler/apps/sc_issue.py,sha256=EFXWSV5jPzlrKFhPvvhQjP6IzWId9iK-PszJTefQfAA,6430
25
+ siliconcompiler/apps/sc_remote.py,sha256=i5frMalzkTkEpXAYFT9TppSOkU0bAySA_1_0FexBcUo,6721
23
26
  siliconcompiler/apps/sc_server.py,sha256=d3SCfKtNneIBiAk7Udc5SqXvSIoFSK40iHWcKuY7unk,894
24
27
  siliconcompiler/apps/sc_show.py,sha256=ewfe1dwBC4IFgX7knAIynLePyXtnWbPvzS_VLQIVDyI,4847
25
28
  siliconcompiler/apps/smake.py,sha256=jj69IuMLf4jblpVGeLT3GAvC-zDLHwPq16YPKtHosdA,7124
@@ -72,13 +75,13 @@ siliconcompiler/fpgas/lattice_ice40.py,sha256=NsFgGvTnBVXpJeg3IiKKufsUwV7TYl-XU6
72
75
  siliconcompiler/libs/__init__.py,sha256=KXw1vU0KP83fg3rB8iKkpDhJZBLz_PWGZG65L3lAQ1Q,86
73
76
  siliconcompiler/optimizer/__init__.py,sha256=wdSuv3U7hoSdZn-TkaQtYehVdhS5F35Mb1McgaUw3hc,6599
74
77
  siliconcompiler/optimizer/vizier.py,sha256=BgQVuGI2xdi_m-2MH8MVgAgpYhx3y788UvL4mKebRPo,9025
75
- siliconcompiler/package/__init__.py,sha256=jf8VbIvkkU3BvZqe6QRG3ZdhzKiulqoeg2KyOjNOmHk,8742
76
- siliconcompiler/package/git.py,sha256=jQPsXKOS2OZZvht8GEC3EZoSsm1eMCwmCUWrsx9ZgSA,3286
77
- siliconcompiler/package/github.py,sha256=NCTMkV3WKNwVasciC30qGglysRMgqEWzC-0TXSSwmbU,3768
78
- siliconcompiler/package/https.py,sha256=_o0VpvImgBlW_egwgWXc0JC0T0ixFSV-Gu8dGGso4hM,3210
78
+ siliconcompiler/package/__init__.py,sha256=saEf9lVvoB7ergG9yant54tnlUqhv-a1Ck7tkpEUBXY,13970
79
+ siliconcompiler/package/git.py,sha256=H9Wvi7_RLD7RqfubRTQaf_mbhBBxuYhNFNv2fi1NxSQ,2761
80
+ siliconcompiler/package/github.py,sha256=4yAe7m3_NX43bfbLnbg-uvJ84VMdByMITjRDJBzQjUg,3011
81
+ siliconcompiler/package/https.py,sha256=Hmuz5vXxNoY7XUO6N8E3eapFOTX45uBmUSbzKyLoOvA,2760
79
82
  siliconcompiler/pdks/__init__.py,sha256=bWhtNR-Kq3fEyknon-x5vQX877b88g9EJXAHBMiDyGM,81
80
83
  siliconcompiler/remote/__init__.py,sha256=MoYnC1lkgbT5hN5Qi-0gTItaTWI2U1E8OuleffdTDSQ,977
81
- siliconcompiler/remote/client.py,sha256=vYOMgT4Ocgw5WCqV424f5ypefLCXuDQKBnTXkc2VFXs,36402
84
+ siliconcompiler/remote/client.py,sha256=XJTZfn5UGNa7b608yrXbQ6Gf-87sBIY_ImMsGj8DqDQ,36633
82
85
  siliconcompiler/remote/schema.py,sha256=1tc52nc1wHAIqOdYEEfviCrjCq-7VBHwRPZ89ONTThc,4614
83
86
  siliconcompiler/remote/server.py,sha256=TW5BR_VpwCoj-0kmJs4Wjrtd0mBjk84pzig9D8ngQCA,21691
84
87
  siliconcompiler/remote/server_schema/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -104,7 +107,7 @@ siliconcompiler/report/summary_table.py,sha256=q2efLmDzyVsZsSvPunz5j8RZism6S4YoM
104
107
  siliconcompiler/report/utils.py,sha256=UaYFpObjoonJeE7WN2WCsU9vgJ-00YfofX6guv24H48,6756
105
108
  siliconcompiler/report/dashboard/__init__.py,sha256=QHYxqusd6nRWTsvDrTgWRRrMtDkfNzKIytMijSdTEEQ,1780
106
109
  siliconcompiler/report/dashboard/cli/__init__.py,sha256=Mw3NHWYPRbaGTctkNkJ5fcQQZv3UALZIAxuwGrYCi-Y,2709
107
- siliconcompiler/report/dashboard/cli/board.py,sha256=3K-lS4xpxkhrhPzZGmcRYeP_s2HaQ5ku9YMzr2IXkTg,29710
110
+ siliconcompiler/report/dashboard/cli/board.py,sha256=tAgq-v6JH5sN4Y9EW5UW96A0Yaqt_G4Y1ubvITkEUV0,29703
108
111
  siliconcompiler/report/dashboard/web/__init__.py,sha256=YvHrljqH97S2rhM9uH4w5-5M9HU2cuPY_SzULvsWrfc,5872
109
112
  siliconcompiler/report/dashboard/web/state.py,sha256=fipysGAnTtVza-k5ut9dLPFlGW_Rvqo5-S9uYMu2iSQ,5923
110
113
  siliconcompiler/report/dashboard/web/viewer.py,sha256=FLwy7FpX34EP3-G07YqBg1YgmAcDK-Bq7nFEIS4g2Ho,1111
@@ -118,26 +121,28 @@ siliconcompiler/report/dashboard/web/layouts/vertical_flowgraph_node_tab.py,sha2
118
121
  siliconcompiler/report/dashboard/web/layouts/vertical_flowgraph_sac_tabs.py,sha256=MmCgSHVgdmvfs1MHtpW8-CNMZkY0ePS_wyHqDZpzLT0,4110
119
122
  siliconcompiler/report/dashboard/web/utils/__init__.py,sha256=lj8Exd87YkOGNTcFkqQZTbS-rEy_RxutUZJbXsoN0lQ,2726
120
123
  siliconcompiler/report/dashboard/web/utils/file_utils.py,sha256=5MKAyf7TGXQIc3yxwbP1H6xi0NGwUfzu2j3LOv1Yei0,3333
121
- siliconcompiler/scheduler/__init__.py,sha256=8bh-qcLLMjLPPWX7UHF0xCjFEcWDqaenk-QPB7K3_DU,53418
122
- siliconcompiler/scheduler/docker_runner.py,sha256=qu2xJ0mww-CHvdIWfQOF8FijQieB59gJuR1pcTKxqDQ,8110
123
- siliconcompiler/scheduler/run_node.py,sha256=qf_nir54DHlu64cuyn4J1RwjsN25D9rL56wh3Fos-4E,5493
124
+ siliconcompiler/scheduler/__init__.py,sha256=JTgpHKwESxjT1eSXRIUPSNzfOWTFBQSnGH0_QXczxMg,101
125
+ siliconcompiler/scheduler/docker.py,sha256=Vj7QwcAAcn5h3R-0LMpTQu0ERCla13PeUtVtQHefYMk,9078
126
+ siliconcompiler/scheduler/run_node.py,sha256=ffdANZwOBrCD-mPAcI6j-wiZLGiQHF6yQ6qBTQp64i4,5220
127
+ siliconcompiler/scheduler/scheduler.py,sha256=Sy-7K_g-E7LncJr0-QToQGt07hgNdQ40G4D44_HSXe0,12141
128
+ siliconcompiler/scheduler/schedulernode.py,sha256=aW0_aMo8zPK__3pYObyYBGW8UkOMouMUscgU9xWd8iY,36946
124
129
  siliconcompiler/scheduler/send_messages.py,sha256=fN95bExXbhKuYjRQ7oNIdLAQrj8D-U6Us5FMUOeL6o0,6868
125
- siliconcompiler/scheduler/slurm.py,sha256=fh2WeV6yQphHdJuwLnQlMJQeqqx1ckrrwUJDaXmz2TQ,5734
126
- siliconcompiler/scheduler/taskscheduler.py,sha256=l5yYZHEwrth745m3PdIqOTt_eW53WwJhHFWzDcstWww,11973
130
+ siliconcompiler/scheduler/slurm.py,sha256=gjaVDtusSTv21Y39wzfalsCSjg-bDnjE4KYWHxD7LH0,6117
131
+ siliconcompiler/scheduler/taskscheduler.py,sha256=M4gRkL-AhWoq5J9XEFof5qkttGMQfLLEjsSm03HlYfA,11489
127
132
  siliconcompiler/scheduler/validation/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
128
133
  siliconcompiler/scheduler/validation/email_credentials.json,sha256=hkJs0U2h2Bgm1zxeXvanIJ-prPhpn_aU6e3qwIs7qA0,1997
129
- siliconcompiler/schema/__init__.py,sha256=gnnYZ1_uHYaTINMEKsjOuedpY3RHUxmpQYtCR3LFkkY,600
130
- siliconcompiler/schema/baseschema.py,sha256=NqDSZPn00fvIIAf-KZdn1SjCFkszF5Y9kkW7rOLno58,17503
134
+ siliconcompiler/schema/__init__.py,sha256=aBq3q2nVhzfkag9Pss4v2yDFzAiv80Qy9QvAA5_I13Y,573
135
+ siliconcompiler/schema/baseschema.py,sha256=maTrNukTPR003Xh1W8juNv6297XYXmkU5Y7OUBzHZq8,26535
131
136
  siliconcompiler/schema/cmdlineschema.py,sha256=NCZJN-qQU1KQAZGRXDQDoHttdOfrDcYN91re4xs0ahU,10512
132
- siliconcompiler/schema/editableschema.py,sha256=x9GeBgYhRNWXgzHk28JAcVM_IpnerT5FVr16ZpjS7bo,4518
133
- siliconcompiler/schema/journalingschema.py,sha256=FQ1xX6Nc4Vz1fa2o96Pth7-_yAoxsj7hDtGVK1EmoKM,7583
134
- siliconcompiler/schema/namedschema.py,sha256=SpQTvvo2HV3IurlG35qh4KDnyzlenbfkulHhHLPNPd8,1032
137
+ siliconcompiler/schema/editableschema.py,sha256=b-Jt5WMWzplyGj1uf96svrQS1lPgYQCOO89r3bs-DMA,4678
138
+ siliconcompiler/schema/journal.py,sha256=7-XXc6A0z7dbNddLnAxPL6p4xSHCG_VvUPFBnqDAz8I,5780
139
+ siliconcompiler/schema/namedschema.py,sha256=bVhFqN-6Ng7525yvFESYqDkaB_aUpteAkI4QmChBWY0,1788
135
140
  siliconcompiler/schema/packageschema.py,sha256=S35mZVLrFEwHRtL9VIqPJiM1rALb2KncK4nQYiKtEG8,3808
136
- siliconcompiler/schema/parameter.py,sha256=Tp6VYu-b6RNfl33Hpt9Liy6lI4HxVivdkT3FIpjMtrg,27253
141
+ siliconcompiler/schema/parameter.py,sha256=7pdW7u40VlNgtE4UEPM06kF9Xa5KcdlR7yZengxqM4c,27802
137
142
  siliconcompiler/schema/parametertype.py,sha256=U7e_eXpIBcMhlgUgFUoYlwe-iGTO60dhs_jcCZT515M,11454
138
- siliconcompiler/schema/parametervalue.py,sha256=4oi54JrkcRhsPZliSgTlZBo97cP6qdyEFcM4CcAquyA,21210
143
+ siliconcompiler/schema/parametervalue.py,sha256=BJ3WRwpS-cuN8UIRUkYpBO3LSvE_oYCn5Ox-YquyOXY,20282
139
144
  siliconcompiler/schema/safeschema.py,sha256=H4nDo6D_A4xkTiUFuOSUz974HIBM2DUjyXz1_2xS4lw,1241
140
- siliconcompiler/schema/schema_cfg.py,sha256=A62LIEQh0mCSXML9vAy4C-HZwoWvYnqFSan8r3I_oDA,110719
145
+ siliconcompiler/schema/schema_cfg.py,sha256=l7kN-6nOxyu5Tf7PaSfXCiRnp-JWF7XGCsjHW6zTanI,104670
141
146
  siliconcompiler/schema/utils.py,sha256=YNtwoeueoL-56lBGHZW75uZNfsnLARvtwzUAv4PgjuM,1494
142
147
  siliconcompiler/schema/docs/__init__.py,sha256=1DRpzj1hl3pE0g4duKolKr1ahqzsnHE0Z14YazU_hKo,1924
143
148
  siliconcompiler/schema/docs/dynamicgen.py,sha256=ZZi2LMr9Z4iBbVFYQTY5H6oxleAqvVlMrfx1X12Kfzg,34299
@@ -168,13 +173,13 @@ siliconcompiler/tools/bluespec/convert.py,sha256=ukbD1x3gQMxwr5m4m7Xoqw16rLOsHGV
168
173
  siliconcompiler/tools/builtin/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
169
174
  siliconcompiler/tools/builtin/_common.py,sha256=x1BF7W7NZ3gqdxC72iqrbsUzne3-IZvTy4Q9GWM_mCE,5568
170
175
  siliconcompiler/tools/builtin/builtin.py,sha256=SfkmFaqLE8U-sjimVBtIgR8INRenV0eW0buTTgeTDPI,831
171
- siliconcompiler/tools/builtin/concatenate.py,sha256=503Hviy2QI8KWBB_ZEIad_L5r0R5iA1V8X0sZRXwxQY,3628
176
+ siliconcompiler/tools/builtin/concatenate.py,sha256=61E3uNR5VVYQPhJvFh2pKiRgHZmHOVJvYbUd4DDhibA,3656
172
177
  siliconcompiler/tools/builtin/join.py,sha256=-RLK7PG15wfHpqtm-MAV4xzxNjEm1-ieKFvBJN8zBYM,554
173
178
  siliconcompiler/tools/builtin/maximum.py,sha256=L9pz8s_uZWHPt_IQavuEQXaTyrI3fI2f-aLqLlk-odI,1295
174
179
  siliconcompiler/tools/builtin/minimum.py,sha256=Q52h_Y-UWXMzEMDbiLofSkoT2IRK7XX7X4M16M7_WKA,1920
175
180
  siliconcompiler/tools/builtin/mux.py,sha256=VFnBD49UJ3yPLU4dsKFQC7hgGnE_CL2FbZbYTfm2EaM,2494
176
181
  siliconcompiler/tools/builtin/nop.py,sha256=PZtDYkSdYvnkFvV60QBV7VsE_Gr1FzJfpdmkktlzelA,1183
177
- siliconcompiler/tools/builtin/verify.py,sha256=7CPT_0z234G7jffiQJLjENkbHLV-vcEHgep_BvdYg_s,3000
182
+ siliconcompiler/tools/builtin/verify.py,sha256=utiyzWREY3D_S8VCTAIo1gsjBRqv_PdSQ9UwbgAbFJE,2927
178
183
  siliconcompiler/tools/chisel/SCDriver.scala,sha256=VIdk2HrCnq10kAOxD4-WpqTiAVY4anuaBYBRt8Ylur8,194
179
184
  siliconcompiler/tools/chisel/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
180
185
  siliconcompiler/tools/chisel/build.sbt,sha256=VDVbnZrk4MtNW-qKPKa7fzhKifOox8VXUuZQBTq3pCc,877
@@ -279,7 +284,7 @@ siliconcompiler/tools/openroad/scripts/apr/sc_repair_design.tcl,sha256=ouuinoPvf
279
284
  siliconcompiler/tools/openroad/scripts/apr/sc_repair_timing.tcl,sha256=59YVHb1V1v1bwnicRg-1CAY7yLjQN-OvyAzshlNCvlg,4910
280
285
  siliconcompiler/tools/openroad/scripts/apr/sc_write_data.tcl,sha256=devgUdULAW_ZAyI_XrxsqwLlIHOUz2-xtGBIAbWFtLM,3672
281
286
  siliconcompiler/tools/openroad/scripts/common/debugging.tcl,sha256=i4oNtC0rQq3JaFf1-oKyr_jZQyu5ZF_--zskvG0hdKg,943
282
- siliconcompiler/tools/openroad/scripts/common/procs.tcl,sha256=21103Jatqur1ap3NkYQ-mXGslRJA__HueIhF4cZolsg,27288
287
+ siliconcompiler/tools/openroad/scripts/common/procs.tcl,sha256=H4jphgjXPPH51Jf4NOu0ZeBq-HrhD8H3UNw2J858N1Y,27448
283
288
  siliconcompiler/tools/openroad/scripts/common/read_input_files.tcl,sha256=fwHH95_9RFf8n-dzsJvu3K9-HfgHIxNVWA3Ur2C_RFM,1781
284
289
  siliconcompiler/tools/openroad/scripts/common/read_liberty.tcl,sha256=GeXZ8H3a8fg8o-4KyfZj2N4Db_P9XArZl2T4apfMSZI,778
285
290
  siliconcompiler/tools/openroad/scripts/common/read_timing_constraints.tcl,sha256=fsHSSGXkrqOKXjwH7U8XMLMnEPoZpavBVkl4qzLugOU,515
@@ -335,7 +340,7 @@ siliconcompiler/tools/vpr/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJW
335
340
  siliconcompiler/tools/vpr/_json_constraint.py,sha256=7cEKHmzgFKd0K3NLiIxVgiUOa1tbeSLv7M132SLuQig,2254
336
341
  siliconcompiler/tools/vpr/_xml_constraint.py,sha256=f7AeAtu4gDV08hPuorjRcniCyM5CLxJ6e8NgTbE79tw,2995
337
342
  siliconcompiler/tools/vpr/place.py,sha256=4tZGL4UivJGChbzQ4i5fkL5mC61QBdgvvNIselVChO4,5631
338
- siliconcompiler/tools/vpr/route.py,sha256=BNyEQ8snlwHY7DzLJloAJE07OJgXC6ZOqaW136QnITM,4908
343
+ siliconcompiler/tools/vpr/route.py,sha256=FQr_qvDKGtk2ikOhJvTHY9iFf1GG3GF798YfQnONo2k,8698
339
344
  siliconcompiler/tools/vpr/screenshot.py,sha256=0ielHnOnwHjqXzpKnVXOJLJjc8VUwy2isEIlpkyayUs,1809
340
345
  siliconcompiler/tools/vpr/show.py,sha256=y9SJ8f9pWaIq72LXb4IQvLZpGX0bEyhlYsFqncib7ds,3164
341
346
  siliconcompiler/tools/vpr/vpr.py,sha256=upuvbeDoaLQN7cACDWFZWMkZG6N7eIGmk2R9GRqhOvQ,17714
@@ -359,7 +364,7 @@ siliconcompiler/tools/yosys/techmaps/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeu
359
364
  siliconcompiler/tools/yosys/techmaps/lcu_kogge_stone.v,sha256=M4T-ygiKmlsprl5eGGLaV5w6HVqlEepn0wlUDmOkapg,773
360
365
  siliconcompiler/tools/yosys/templates/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
361
366
  siliconcompiler/tools/yosys/templates/abc.const,sha256=TAq9ThdLMYCJGrtToEU0gWcLuEtjE4Gk8huBbTm1v-I,116
362
- siliconcompiler/toolscripts/_tools.json,sha256=M814eCaWkin8g4amzehZEp4WX-IkFMOLDfGmbYQ8RFk,5231
367
+ siliconcompiler/toolscripts/_tools.json,sha256=sSUCHt_6x839LnAYV85NGeasMJHrpuQ1SZGylrn4Dxs,5231
363
368
  siliconcompiler/toolscripts/_tools.py,sha256=P30KY_xbbjl8eHGsPAxDcAzWvJJpiL07ZfGZZDQbdR8,7174
364
369
  siliconcompiler/toolscripts/rhel8/install-chisel.sh,sha256=RJ7BiZhsXBLTgQhHUcRZmHqhKB6syVaC2nvVoGrIXOI,709
365
370
  siliconcompiler/toolscripts/rhel8/install-icarus.sh,sha256=EW7308IUGYOx7A22s7s0tNq90nHhrpHHUMrx3cd9lMM,962
@@ -473,16 +478,16 @@ siliconcompiler/toolscripts/ubuntu24/install-yosys-moosic.sh,sha256=hhv3wNIofWCQ
473
478
  siliconcompiler/toolscripts/ubuntu24/install-yosys-parmys.sh,sha256=Ps_mEXAM6cdzKtjiwxOLfLVyHeeNXPB0T4l7Tgp_bMg,2149
474
479
  siliconcompiler/toolscripts/ubuntu24/install-yosys-slang.sh,sha256=lbOsHj31XpCKUqtpfFX7RkbOEORvJkikou2AljIXKuI,706
475
480
  siliconcompiler/toolscripts/ubuntu24/install-yosys.sh,sha256=NeHQqbRp81xc2sg-MG_d-ilZM-3sjRugdsgicCXYpzo,912
476
- siliconcompiler/utils/__init__.py,sha256=HbJIy-iMCm1uJ26W0VvyH0AaucGNpDtldpGnr5i53OY,13107
481
+ siliconcompiler/utils/__init__.py,sha256=bRtMkPpL67JSOyWYZ9E09Fbzwzjsks7DiIFBsHvFQhY,12308
477
482
  siliconcompiler/utils/asic.py,sha256=cMLs7dneSmh5BlHS0-bZ1tLUpvghTw__gNaUCMpyBds,4986
478
- siliconcompiler/utils/flowgraph.py,sha256=AtleeFPOCfP1IQY5rMdT48iLbQFUyeFetNE2pENYbKs,10103
483
+ siliconcompiler/utils/flowgraph.py,sha256=d2YPBpRmFdBwmG5ap0L7Ri73jhs6b1ro0UHfEVDGqb8,10177
479
484
  siliconcompiler/utils/issue.py,sha256=Ub12ftzSUkrqoyLsIQY3978T-kNtjTZFxBv3D-pvLbs,10859
480
- siliconcompiler/utils/logging.py,sha256=0ub-q1ZdjOCfnmiNmo8M47kb32KjymBMcR5fmt_sLyo,4008
485
+ siliconcompiler/utils/logging.py,sha256=698R6oRh2i0A2MOy9f5UNoPntP4Z7EUfogFO7xj-YyI,4017
481
486
  siliconcompiler/utils/showtools.py,sha256=gaAvjMTFlx_0qLKOtpRJx8Bs51TEeQ-4Pjj8kHfFf3o,1871
482
487
  siliconcompiler/utils/units.py,sha256=M_ZxViSysymv8mFdCtbQwfccEwEsBeiCmc8TcnoXZbk,5845
483
- siliconcompiler-0.33.2.dist-info/licenses/LICENSE,sha256=lbLR6sRo_CYJOf7SVgHi-U6CZdD8esESEZE5TZazOQE,10766
484
- siliconcompiler-0.33.2.dist-info/METADATA,sha256=ixHdbNWlH-j4pWqIOr1hYHLSCzGL8TyrrsZvfXcPg7Y,11713
485
- siliconcompiler-0.33.2.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
486
- siliconcompiler-0.33.2.dist-info/entry_points.txt,sha256=zOgup2DTMyBOSX9tMOvtycVWmlk8MVEvub-C-tdTn78,1139
487
- siliconcompiler-0.33.2.dist-info/top_level.txt,sha256=H8TOYhnEUZAV1RJTa8JRtjLIebwHzkQUhA2wkNU2O6M,16
488
- siliconcompiler-0.33.2.dist-info/RECORD,,
488
+ siliconcompiler-0.34.0.dist-info/licenses/LICENSE,sha256=lbLR6sRo_CYJOf7SVgHi-U6CZdD8esESEZE5TZazOQE,10766
489
+ siliconcompiler-0.34.0.dist-info/METADATA,sha256=vEgTEMiCD0YwuLYw5lJAHlPH4G_BSe2zeqXDIv19B28,11815
490
+ siliconcompiler-0.34.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
491
+ siliconcompiler-0.34.0.dist-info/entry_points.txt,sha256=zOgup2DTMyBOSX9tMOvtycVWmlk8MVEvub-C-tdTn78,1139
492
+ siliconcompiler-0.34.0.dist-info/top_level.txt,sha256=H8TOYhnEUZAV1RJTa8JRtjLIebwHzkQUhA2wkNU2O6M,16
493
+ siliconcompiler-0.34.0.dist-info/RECORD,,
@@ -1,254 +0,0 @@
1
- import docker
2
- import os
3
- from siliconcompiler.package import get_cache_path
4
- from siliconcompiler.package import path as sc_path
5
- from siliconcompiler.utils import default_email_credentials_file
6
- from pathlib import Path
7
- import sys
8
-
9
-
10
- def get_image(chip, step, index):
11
- from siliconcompiler import __version__
12
-
13
- queue = chip.get('option', 'scheduler', 'queue', step=step, index=index)
14
- if queue:
15
- return queue
16
-
17
- return os.getenv(
18
- 'SC_DOCKER_IMAGE',
19
- f'ghcr.io/siliconcompiler/sc_runner:v{__version__}')
20
-
21
-
22
- def get_volumes_directories(chip, cache_dir, workdir, step, index):
23
- all_dirs = set()
24
- # Collect files
25
- for key in chip.allkeys():
26
- sc_type = chip.get(*key, field='type')
27
-
28
- if 'file' in sc_type or 'dir' in sc_type:
29
- cstep = step
30
- cindex = index
31
-
32
- if chip.get(*key, field='pernode').is_never():
33
- cstep = None
34
- cindex = None
35
-
36
- files = chip.find_files(*key, step=cstep, index=cindex, missing_ok=True)
37
- if files:
38
- if not isinstance(files, list):
39
- files = [files]
40
- for path in files:
41
- if path is None:
42
- continue
43
- if 'file' in sc_type:
44
- all_dirs.add(os.path.dirname(path))
45
- else:
46
- all_dirs.add(path)
47
-
48
- # Collect caches
49
- for package in chip.getkeys('package', 'source'):
50
- all_dirs.add(sc_path(chip, package))
51
-
52
- all_dirs = [
53
- Path(cache_dir),
54
- Path(workdir),
55
- Path(chip.scroot),
56
- *[Path(path) for path in all_dirs]]
57
-
58
- pruned_dirs = all_dirs.copy()
59
- for base_path in all_dirs:
60
- if base_path not in pruned_dirs:
61
- continue
62
-
63
- new_pruned_dirs = [base_path]
64
- for check_path in pruned_dirs:
65
- if base_path == check_path:
66
- continue
67
-
68
- if base_path not in check_path.parents:
69
- new_pruned_dirs.append(check_path)
70
- pruned_dirs = new_pruned_dirs
71
-
72
- pruned_dirs = set(pruned_dirs)
73
-
74
- builddir = chip.find_files('option', 'builddir')
75
-
76
- rw_volumes = set()
77
-
78
- for path in pruned_dirs:
79
- for rw_allow in (Path(builddir), Path(workdir), Path(cache_dir)):
80
- if path == rw_allow or path in rw_allow.parents:
81
- rw_volumes.add(path)
82
-
83
- ro_volumes = pruned_dirs.difference(rw_volumes)
84
-
85
- return rw_volumes, ro_volumes
86
-
87
-
88
- def init(chip):
89
- if sys.platform == 'win32':
90
- # this avoids the issue of different file system types
91
- chip.logger.error('Setting copy field to true for docker run on Windows')
92
- for key in chip.allkeys():
93
- if key[0] == 'history':
94
- continue
95
- sc_type = chip.get(*key, field='type')
96
- if 'dir' in sc_type or 'file' in sc_type:
97
- chip.set(*key, True, field='copy')
98
- chip.collect()
99
-
100
-
101
- def run(chip, step, index, replay):
102
- # Import here to avoid circular import
103
- from siliconcompiler.scheduler import _haltstep
104
-
105
- try:
106
- client = docker.from_env()
107
- client.version()
108
- except (docker.errors.DockerException, docker.errors.APIError) as e:
109
- chip.logger.error(f'Unable to connect to docker: {e}')
110
- _haltstep(chip, chip.get('option', 'flow'), step, index)
111
-
112
- is_windows = sys.platform == 'win32'
113
-
114
- workdir = chip.getworkdir()
115
- start_cwd = os.getcwd()
116
-
117
- # Remove handlers from logger
118
- for handler in chip.logger.handlers.copy():
119
- chip.logger.removeHandler(handler)
120
-
121
- # Reinit logger
122
- chip._init_logger(step=step, index=index, in_run=True)
123
-
124
- # Change working directory since the run may delete this folder
125
- os.chdir(workdir)
126
-
127
- image_name = get_image(chip, step, index)
128
-
129
- # Pull image if needed
130
- try:
131
- image = client.images.get(image_name)
132
- except docker.errors.ImageNotFound:
133
- # Needs a lock to avoid downloading a bunch in parallel
134
- image_repo, image_tag = image_name.split(':')
135
- chip.logger.info(f'Pulling docker image {image_name}')
136
- try:
137
- image = client.images.pull(image_repo, tag=image_tag)
138
- except docker.errors.APIError as e:
139
- chip.logger.error(f'Unable to pull image: {e}')
140
- image_src = image_repo.split('/')[0]
141
- chip.logger.error(f" if you are logged into {image_src} with expired credentials, "
142
- f"please use 'docker logout {image_src}'")
143
- _haltstep(chip, chip.get('option', 'flow'), step, index)
144
-
145
- email_file = default_email_credentials_file()
146
- if is_windows:
147
- # Hack to get around manifest merging
148
- chip.set('option', 'cachedir', None)
149
- cache_dir = '/sc_cache'
150
- cwd = '/sc_docker'
151
- builddir = f'{cwd}/build'
152
-
153
- local_cfg = os.path.join(start_cwd, 'sc_docker.json')
154
- job = chip.get('option', 'jobname')
155
- cfg = f'{builddir}/{chip.design}/{job}/{step}/{index}/sc_docker.json'
156
-
157
- user = None
158
-
159
- volumes = [
160
- f"{chip.cwd}:{cwd}:rw",
161
- f"{get_cache_path(chip)}:{cache_dir}:rw"
162
- ]
163
- chip.logger.debug(f'Volumes: {volumes}')
164
-
165
- env = {}
166
-
167
- if os.path.exists(email_file):
168
- env["HOME"] = "/sc_home"
169
-
170
- volumes.append(f'{os.path.dirname(email_file)}:/sc_home/.sc:ro')
171
- else:
172
- cache_dir = get_cache_path(chip)
173
- cwd = chip.cwd
174
- builddir = chip.find_files('option', 'builddir')
175
-
176
- local_cfg = os.path.abspath('sc_docker.json')
177
- cfg = local_cfg
178
-
179
- user = os.getuid()
180
-
181
- rw_volumes, ro_volumes = get_volumes_directories(chip, cache_dir, workdir, step, index)
182
- volumes = [
183
- *[
184
- f'{path}:{path}:rw' for path in rw_volumes
185
- ],
186
- *[
187
- f'{path}:{path}:ro' for path in ro_volumes
188
- ]
189
- ]
190
- chip.logger.debug(f'Read write volumes: {rw_volumes}')
191
- chip.logger.debug(f'Read only volumes: {ro_volumes}')
192
-
193
- env = {}
194
- if os.path.exists(email_file):
195
- env["HOME"] = "/sc_home"
196
-
197
- volumes.append(f'{os.path.dirname(email_file)}:/sc_home/.sc:ro')
198
-
199
- container = None
200
- try:
201
- container = client.containers.run(
202
- image.id,
203
- volumes=volumes,
204
- labels=[
205
- "siliconcompiler",
206
- f"sc_node:{chip.design}:{step}{index}"
207
- ],
208
- user=user,
209
- detach=True,
210
- tty=True,
211
- auto_remove=True,
212
- environment=env)
213
-
214
- # Write manifest to make it available to the docker runner
215
- chip.write_manifest(local_cfg)
216
-
217
- cachemap = []
218
- for package in chip.getkeys('package', 'source'):
219
- cachemap.append(f'{package}:{sc_path(chip, package)}')
220
-
221
- chip.logger.info(f'Running in docker container: {container.name} ({container.short_id})')
222
- args = [
223
- '-cfg', cfg,
224
- '-cwd', cwd,
225
- '-builddir', builddir,
226
- '-cachedir', cache_dir,
227
- '-step', step,
228
- '-index', index,
229
- '-unset_scheduler'
230
- ]
231
- if not is_windows and cachemap:
232
- args.append('-cachemap')
233
- args.append(' '.join(cachemap))
234
- cmd = f'python3 -m siliconcompiler.scheduler.run_node {" ".join(args)}'
235
- exec_handle = client.api.exec_create(container.name, cmd)
236
- stream = client.api.exec_start(exec_handle, stream=True)
237
-
238
- # Print the log
239
- for chunk in stream:
240
- for line in chunk.decode().splitlines():
241
- print(line)
242
-
243
- if client.api.exec_inspect(exec_handle['Id']).get('ExitCode') != 0:
244
- _haltstep(chip, chip.get('option', 'flow'), step, index, log=False)
245
- finally:
246
- # Ensure we clean up containers
247
- if container:
248
- try:
249
- container.stop()
250
- except docker.errors.APIError:
251
- chip.logger.error('Failed to stop docker container')
252
-
253
- # Restore working directory
254
- os.chdir(start_cwd)