librelane 3.0.0.dev32__tar.gz → 3.0.0.dev33__tar.gz

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.

Potentially problematic release.


This version of librelane might be problematic. Click here for more details.

Files changed (172) hide show
  1. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/PKG-INFO +1 -1
  2. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/scripts/pyosys/json_header.py +1 -0
  3. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/scripts/pyosys/synthesize.py +2 -0
  4. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/scripts/pyosys/ys_common.py +2 -0
  5. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/steps/pyosys.py +6 -1
  6. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/pyproject.toml +1 -1
  7. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/Readme.md +0 -0
  8. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/__init__.py +0 -0
  9. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/__main__.py +0 -0
  10. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/__version__.py +0 -0
  11. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/common/__init__.py +0 -0
  12. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/common/cli.py +0 -0
  13. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/common/drc.py +0 -0
  14. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/common/generic_dict.py +0 -0
  15. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/common/metrics/__init__.py +0 -0
  16. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/common/metrics/__main__.py +0 -0
  17. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/common/metrics/library.py +0 -0
  18. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/common/metrics/metric.py +0 -0
  19. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/common/metrics/util.py +0 -0
  20. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/common/misc.py +0 -0
  21. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/common/ring_buffer.py +0 -0
  22. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/common/tcl.py +0 -0
  23. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/common/toolbox.py +0 -0
  24. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/common/tpe.py +0 -0
  25. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/common/types.py +0 -0
  26. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/config/__init__.py +0 -0
  27. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/config/__main__.py +0 -0
  28. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/config/config.py +0 -0
  29. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/config/flow.py +0 -0
  30. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/config/pdk_compat.py +0 -0
  31. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/config/preprocessor.py +0 -0
  32. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/config/removals.py +0 -0
  33. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/config/variable.py +0 -0
  34. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/container.py +0 -0
  35. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/env_info.py +0 -0
  36. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/examples/spm/config.yaml +0 -0
  37. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/examples/spm/pin_order.cfg +0 -0
  38. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/examples/spm/src/impl.sdc +0 -0
  39. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/examples/spm/src/signoff.sdc +0 -0
  40. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/examples/spm/src/spm.v +0 -0
  41. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/examples/spm/verify/spm_tb.v +0 -0
  42. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/examples/spm-user_project_wrapper/SPM_example.v +0 -0
  43. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/examples/spm-user_project_wrapper/base_sdc_file.sdc +0 -0
  44. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/examples/spm-user_project_wrapper/config-tut.json +0 -0
  45. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/examples/spm-user_project_wrapper/config.json +0 -0
  46. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/examples/spm-user_project_wrapper/defines.v +0 -0
  47. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/examples/spm-user_project_wrapper/template.def +0 -0
  48. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/examples/spm-user_project_wrapper/user_project_wrapper.v +0 -0
  49. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/flows/__init__.py +0 -0
  50. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/flows/builtins.py +0 -0
  51. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/flows/classic.py +0 -0
  52. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/flows/cli.py +0 -0
  53. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/flows/flow.py +0 -0
  54. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/flows/misc.py +0 -0
  55. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/flows/optimizing.py +0 -0
  56. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/flows/sequential.py +0 -0
  57. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/flows/synth_explore.py +0 -0
  58. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/help/__main__.py +0 -0
  59. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/logging/__init__.py +0 -0
  60. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/logging/logger.py +0 -0
  61. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/pdk_hashes.yaml +0 -0
  62. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/plugins.py +0 -0
  63. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/py.typed +0 -0
  64. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/scripts/base.sdc +0 -0
  65. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/scripts/klayout/Readme.md +0 -0
  66. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/scripts/klayout/open_design.py +0 -0
  67. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/scripts/klayout/render.py +0 -0
  68. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/scripts/klayout/stream_out.py +0 -0
  69. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/scripts/klayout/xml_drc_report_to_json.py +0 -0
  70. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/scripts/klayout/xor.drc +0 -0
  71. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/scripts/magic/Readme.md +0 -0
  72. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/scripts/magic/common/read.tcl +0 -0
  73. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/scripts/magic/def/antenna_check.tcl +0 -0
  74. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/scripts/magic/def/mag.tcl +0 -0
  75. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/scripts/magic/def/mag_gds.tcl +0 -0
  76. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/scripts/magic/drc.tcl +0 -0
  77. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/scripts/magic/extract_spice.tcl +0 -0
  78. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/scripts/magic/gds/drc_batch.tcl +0 -0
  79. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/scripts/magic/gds/erase_box.tcl +0 -0
  80. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/scripts/magic/gds/extras_mag.tcl +0 -0
  81. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/scripts/magic/gds/mag_with_pointers.tcl +0 -0
  82. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/scripts/magic/get_bbox.tcl +0 -0
  83. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/scripts/magic/lef/extras_maglef.tcl +0 -0
  84. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/scripts/magic/lef/maglef.tcl +0 -0
  85. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/scripts/magic/lef.tcl +0 -0
  86. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/scripts/magic/open.tcl +0 -0
  87. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/scripts/magic/wrapper.tcl +0 -0
  88. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/scripts/netgen/setup.tcl +0 -0
  89. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/scripts/odbpy/apply_def_template.py +0 -0
  90. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/scripts/odbpy/cell_frequency.py +0 -0
  91. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/scripts/odbpy/check_antenna_properties.py +0 -0
  92. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/scripts/odbpy/contextualize.py +0 -0
  93. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/scripts/odbpy/defutil.py +0 -0
  94. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/scripts/odbpy/diodes.py +0 -0
  95. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/scripts/odbpy/disconnected_pins.py +0 -0
  96. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/scripts/odbpy/eco_buffer.py +0 -0
  97. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/scripts/odbpy/eco_diode.py +0 -0
  98. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/scripts/odbpy/filter_unannotated.py +0 -0
  99. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/scripts/odbpy/io_place.py +0 -0
  100. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/scripts/odbpy/ioplace_parser/__init__.py +0 -0
  101. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/scripts/odbpy/ioplace_parser/parse.py +0 -0
  102. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/scripts/odbpy/label_macro_pins.py +0 -0
  103. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/scripts/odbpy/lefutil.py +0 -0
  104. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/scripts/odbpy/placers.py +0 -0
  105. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/scripts/odbpy/power_utils.py +0 -0
  106. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/scripts/odbpy/random_place.py +0 -0
  107. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/scripts/odbpy/reader.py +0 -0
  108. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/scripts/odbpy/remove_buffers.py +0 -0
  109. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/scripts/odbpy/snap_to_grid.py +0 -0
  110. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/scripts/odbpy/wire_lengths.py +0 -0
  111. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/scripts/openroad/antenna_check.tcl +0 -0
  112. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/scripts/openroad/antenna_repair.tcl +0 -0
  113. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/scripts/openroad/basic_mp.tcl +0 -0
  114. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/scripts/openroad/buffer_list.tcl +0 -0
  115. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/scripts/openroad/common/dpl.tcl +0 -0
  116. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/scripts/openroad/common/dpl_cell_pad.tcl +0 -0
  117. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/scripts/openroad/common/grt.tcl +0 -0
  118. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/scripts/openroad/common/io.tcl +0 -0
  119. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/scripts/openroad/common/pdn_cfg.tcl +0 -0
  120. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/scripts/openroad/common/resizer.tcl +0 -0
  121. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/scripts/openroad/common/set_global_connections.tcl +0 -0
  122. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/scripts/openroad/common/set_layer_adjustments.tcl +0 -0
  123. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/scripts/openroad/common/set_power_nets.tcl +0 -0
  124. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/scripts/openroad/common/set_rc.tcl +0 -0
  125. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/scripts/openroad/common/set_routing_layers.tcl +0 -0
  126. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/scripts/openroad/cts.tcl +0 -0
  127. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/scripts/openroad/cut_rows.tcl +0 -0
  128. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/scripts/openroad/dpl.tcl +0 -0
  129. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/scripts/openroad/drt.tcl +0 -0
  130. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/scripts/openroad/dump_rc.tcl +0 -0
  131. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/scripts/openroad/fill.tcl +0 -0
  132. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/scripts/openroad/floorplan.tcl +0 -0
  133. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/scripts/openroad/gpl.tcl +0 -0
  134. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/scripts/openroad/grt.tcl +0 -0
  135. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/scripts/openroad/gui.tcl +0 -0
  136. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/scripts/openroad/insert_buffer.tcl +0 -0
  137. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/scripts/openroad/ioplacer.tcl +0 -0
  138. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/scripts/openroad/irdrop.tcl +0 -0
  139. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/scripts/openroad/pdn.tcl +0 -0
  140. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/scripts/openroad/rcx.tcl +0 -0
  141. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/scripts/openroad/repair_design.tcl +0 -0
  142. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/scripts/openroad/repair_design_postgrt.tcl +0 -0
  143. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/scripts/openroad/rsz_timing_postcts.tcl +0 -0
  144. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/scripts/openroad/rsz_timing_postgrt.tcl +0 -0
  145. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/scripts/openroad/sta/check_macro_instances.tcl +0 -0
  146. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/scripts/openroad/sta/corner.tcl +0 -0
  147. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/scripts/openroad/tapcell.tcl +0 -0
  148. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/scripts/openroad/ungpl.tcl +0 -0
  149. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/scripts/openroad/write_cdl.tcl +0 -0
  150. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/scripts/openroad/write_views.tcl +0 -0
  151. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/scripts/pyosys/construct_abc_script.py +0 -0
  152. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/scripts/tclsh/hello.tcl +0 -0
  153. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/state/__init__.py +0 -0
  154. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/state/__main__.py +0 -0
  155. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/state/design_format.py +0 -0
  156. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/state/state.py +0 -0
  157. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/steps/__init__.py +0 -0
  158. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/steps/__main__.py +0 -0
  159. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/steps/checker.py +0 -0
  160. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/steps/common_variables.py +0 -0
  161. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/steps/cvc_rv.py +0 -0
  162. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/steps/klayout.py +0 -0
  163. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/steps/magic.py +0 -0
  164. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/steps/misc.py +0 -0
  165. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/steps/netgen.py +0 -0
  166. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/steps/odb.py +0 -0
  167. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/steps/openroad.py +0 -0
  168. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/steps/openroad_alerts.py +0 -0
  169. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/steps/step.py +0 -0
  170. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/steps/tclstep.py +0 -0
  171. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/steps/verilator.py +0 -0
  172. {librelane-3.0.0.dev32 → librelane-3.0.0.dev33}/librelane/steps/yosys.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: librelane
3
- Version: 3.0.0.dev32
3
+ Version: 3.0.0.dev33
4
4
  Summary: An infrastructure for implementing chip design flows
5
5
  Home-page: https://github.com/librelane/librelane
6
6
  License: Apache-2.0
@@ -63,6 +63,7 @@ def json_header(
63
63
  includes=includes,
64
64
  defines=defines,
65
65
  use_slang=config["USE_SLANG"],
66
+ slang_arguments=config["SLANG_ARGUMENTS"] or [],
66
67
  )
67
68
  d.run_pass(
68
69
  "hierarchy",
@@ -263,6 +263,7 @@ def synthesize(
263
263
  includes=includes,
264
264
  defines=defines,
265
265
  use_slang=False,
266
+ slang_arguments=[],
266
267
  )
267
268
  elif verilog_files := config.get("VERILOG_FILES"):
268
269
  d.read_verilog_files(
@@ -272,6 +273,7 @@ def synthesize(
272
273
  includes=includes,
273
274
  defines=defines,
274
275
  use_slang=config["USE_SLANG"],
276
+ slang_arguments=config["SLANG_ARGUMENTS"] or [],
275
277
  )
276
278
  elif vhdl_files := config.get("VHDL_FILES"):
277
279
  d.run_pass("plugin", "-i", "ghdl")
@@ -51,6 +51,7 @@ def _Design_read_verilog_files(
51
51
  includes: Iterable[str],
52
52
  defines: Iterable[str],
53
53
  use_slang: bool = False,
54
+ slang_arguments: Iterable[str],
54
55
  ):
55
56
  files = list(files) # for easier concatenation
56
57
  include_args = [f"-I{dir}" for dir in includes]
@@ -72,6 +73,7 @@ def _Design_read_verilog_files(
72
73
  *define_args,
73
74
  *include_args,
74
75
  *slang_chparam_args,
76
+ *slang_arguments,
75
77
  *files,
76
78
  )
77
79
  else:
@@ -128,6 +128,11 @@ verilog_rtl_cfg_vars = [
128
128
  default=False,
129
129
  deprecated_names=["USE_SYNLIG"],
130
130
  ),
131
+ Variable(
132
+ "SLANG_ARGUMENTS",
133
+ Optional[List[str]],
134
+ "Pass arguments to the Slang frontend.",
135
+ ),
131
136
  ]
132
137
 
133
138
  DesignFormat(
@@ -439,7 +444,7 @@ class SynthesisCommon(VerilogStep):
439
444
  Variable(
440
445
  "SYNTH_HIERARCHY_MODE",
441
446
  Literal["flatten", "deferred_flatten", "keep"],
442
- "Affects how hierarchy is maintained throughout and after synthesis. 'flatten' flattens it during and after synthesis. 'deferred_flatten' flattens it after synthesis. 'keep' never flattens it.",
447
+ "Affects how hierarchy is maintained throughout and after synthesis. 'flatten' flattens it during and after synthesis. 'deferred_flatten' flattens it after synthesis. 'keep' never flattens it. Please note that when using the Slang plugin, you need to pass '--keep-hierarchy' to `SLANG_ARGUMENTS` separately.",
443
448
  default="flatten",
444
449
  deprecated_names=[
445
450
  (
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "librelane"
3
- version = "3.0.0.dev32"
3
+ version = "3.0.0.dev33"
4
4
  description = "An infrastructure for implementing chip design flows"
5
5
  # Technically, maintainer. We cannot use the maintainers field until
6
6
  # poetry-core>=2.0.0 which requires Python version 3.9+. This field does