librelane 3.0.7__tar.gz → 3.0.8__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.
Files changed (178) hide show
  1. {librelane-3.0.7 → librelane-3.0.8}/PKG-INFO +1 -1
  2. {librelane-3.0.7 → librelane-3.0.8}/librelane/scripts/pyosys/synthesize.py +7 -4
  3. {librelane-3.0.7 → librelane-3.0.8}/librelane/scripts/pyosys/ys_common.py +32 -5
  4. {librelane-3.0.7 → librelane-3.0.8}/pyproject.toml +1 -1
  5. {librelane-3.0.7 → librelane-3.0.8}/Readme.md +0 -0
  6. {librelane-3.0.7 → librelane-3.0.8}/librelane/__init__.py +0 -0
  7. {librelane-3.0.7 → librelane-3.0.8}/librelane/__main__.py +0 -0
  8. {librelane-3.0.7 → librelane-3.0.8}/librelane/__version__.py +0 -0
  9. {librelane-3.0.7 → librelane-3.0.8}/librelane/common/__init__.py +0 -0
  10. {librelane-3.0.7 → librelane-3.0.8}/librelane/common/cli.py +0 -0
  11. {librelane-3.0.7 → librelane-3.0.8}/librelane/common/drc.py +0 -0
  12. {librelane-3.0.7 → librelane-3.0.8}/librelane/common/generic_dict.py +0 -0
  13. {librelane-3.0.7 → librelane-3.0.8}/librelane/common/metrics/__init__.py +0 -0
  14. {librelane-3.0.7 → librelane-3.0.8}/librelane/common/metrics/__main__.py +0 -0
  15. {librelane-3.0.7 → librelane-3.0.8}/librelane/common/metrics/compare.py +0 -0
  16. {librelane-3.0.7 → librelane-3.0.8}/librelane/common/metrics/library.py +0 -0
  17. {librelane-3.0.7 → librelane-3.0.8}/librelane/common/metrics/metric.py +0 -0
  18. {librelane-3.0.7 → librelane-3.0.8}/librelane/common/metrics/util.py +0 -0
  19. {librelane-3.0.7 → librelane-3.0.8}/librelane/common/misc.py +0 -0
  20. {librelane-3.0.7 → librelane-3.0.8}/librelane/common/ring_buffer.py +0 -0
  21. {librelane-3.0.7 → librelane-3.0.8}/librelane/common/tcl.py +0 -0
  22. {librelane-3.0.7 → librelane-3.0.8}/librelane/common/toolbox.py +0 -0
  23. {librelane-3.0.7 → librelane-3.0.8}/librelane/common/tpe.py +0 -0
  24. {librelane-3.0.7 → librelane-3.0.8}/librelane/common/types.py +0 -0
  25. {librelane-3.0.7 → librelane-3.0.8}/librelane/config/__init__.py +0 -0
  26. {librelane-3.0.7 → librelane-3.0.8}/librelane/config/__main__.py +0 -0
  27. {librelane-3.0.7 → librelane-3.0.8}/librelane/config/config.py +0 -0
  28. {librelane-3.0.7 → librelane-3.0.8}/librelane/config/flow.py +0 -0
  29. {librelane-3.0.7 → librelane-3.0.8}/librelane/config/pdk_compat.py +0 -0
  30. {librelane-3.0.7 → librelane-3.0.8}/librelane/config/preprocessor.py +0 -0
  31. {librelane-3.0.7 → librelane-3.0.8}/librelane/config/removals.py +0 -0
  32. {librelane-3.0.7 → librelane-3.0.8}/librelane/config/variable.py +0 -0
  33. {librelane-3.0.7 → librelane-3.0.8}/librelane/container.py +0 -0
  34. {librelane-3.0.7 → librelane-3.0.8}/librelane/env_info.py +0 -0
  35. {librelane-3.0.7 → librelane-3.0.8}/librelane/examples/hold_eco_demo/config.yaml +0 -0
  36. {librelane-3.0.7 → librelane-3.0.8}/librelane/examples/hold_eco_demo/demo.v +0 -0
  37. {librelane-3.0.7 → librelane-3.0.8}/librelane/examples/spm/config.yaml +0 -0
  38. {librelane-3.0.7 → librelane-3.0.8}/librelane/examples/spm/pin_order.cfg +0 -0
  39. {librelane-3.0.7 → librelane-3.0.8}/librelane/examples/spm/src/impl.sdc +0 -0
  40. {librelane-3.0.7 → librelane-3.0.8}/librelane/examples/spm/src/signoff.sdc +0 -0
  41. {librelane-3.0.7 → librelane-3.0.8}/librelane/examples/spm/src/spm.v +0 -0
  42. {librelane-3.0.7 → librelane-3.0.8}/librelane/examples/spm/verify/spm_tb.v +0 -0
  43. {librelane-3.0.7 → librelane-3.0.8}/librelane/examples/spm-user_project_wrapper/SPM_example.v +0 -0
  44. {librelane-3.0.7 → librelane-3.0.8}/librelane/examples/spm-user_project_wrapper/base_sdc_file.sdc +0 -0
  45. {librelane-3.0.7 → librelane-3.0.8}/librelane/examples/spm-user_project_wrapper/config-tut.json +0 -0
  46. {librelane-3.0.7 → librelane-3.0.8}/librelane/examples/spm-user_project_wrapper/config.json +0 -0
  47. {librelane-3.0.7 → librelane-3.0.8}/librelane/examples/spm-user_project_wrapper/defines.v +0 -0
  48. {librelane-3.0.7 → librelane-3.0.8}/librelane/examples/spm-user_project_wrapper/template.def +0 -0
  49. {librelane-3.0.7 → librelane-3.0.8}/librelane/examples/spm-user_project_wrapper/user_project_wrapper.v +0 -0
  50. {librelane-3.0.7 → librelane-3.0.8}/librelane/flows/__init__.py +0 -0
  51. {librelane-3.0.7 → librelane-3.0.8}/librelane/flows/builtins.py +0 -0
  52. {librelane-3.0.7 → librelane-3.0.8}/librelane/flows/chip.py +0 -0
  53. {librelane-3.0.7 → librelane-3.0.8}/librelane/flows/classic.py +0 -0
  54. {librelane-3.0.7 → librelane-3.0.8}/librelane/flows/cli.py +0 -0
  55. {librelane-3.0.7 → librelane-3.0.8}/librelane/flows/flow.py +0 -0
  56. {librelane-3.0.7 → librelane-3.0.8}/librelane/flows/misc.py +0 -0
  57. {librelane-3.0.7 → librelane-3.0.8}/librelane/flows/optimizing.py +0 -0
  58. {librelane-3.0.7 → librelane-3.0.8}/librelane/flows/sequential.py +0 -0
  59. {librelane-3.0.7 → librelane-3.0.8}/librelane/flows/synth_explore.py +0 -0
  60. {librelane-3.0.7 → librelane-3.0.8}/librelane/help/__main__.py +0 -0
  61. {librelane-3.0.7 → librelane-3.0.8}/librelane/logging/__init__.py +0 -0
  62. {librelane-3.0.7 → librelane-3.0.8}/librelane/logging/logger.py +0 -0
  63. {librelane-3.0.7 → librelane-3.0.8}/librelane/pdk_hashes.yaml +0 -0
  64. {librelane-3.0.7 → librelane-3.0.8}/librelane/plugins.py +0 -0
  65. {librelane-3.0.7 → librelane-3.0.8}/librelane/py.typed +0 -0
  66. {librelane-3.0.7 → librelane-3.0.8}/librelane/scripts/base.sdc +0 -0
  67. {librelane-3.0.7 → librelane-3.0.8}/librelane/scripts/klayout/Readme.md +0 -0
  68. {librelane-3.0.7 → librelane-3.0.8}/librelane/scripts/klayout/insert_cell.py +0 -0
  69. {librelane-3.0.7 → librelane-3.0.8}/librelane/scripts/klayout/open_design.py +0 -0
  70. {librelane-3.0.7 → librelane-3.0.8}/librelane/scripts/klayout/render.py +0 -0
  71. {librelane-3.0.7 → librelane-3.0.8}/librelane/scripts/klayout/stream_out.py +0 -0
  72. {librelane-3.0.7 → librelane-3.0.8}/librelane/scripts/klayout/xml_drc_report_to_json.py +0 -0
  73. {librelane-3.0.7 → librelane-3.0.8}/librelane/scripts/klayout/xor.drc +0 -0
  74. {librelane-3.0.7 → librelane-3.0.8}/librelane/scripts/magic/Readme.md +0 -0
  75. {librelane-3.0.7 → librelane-3.0.8}/librelane/scripts/magic/common/read.tcl +0 -0
  76. {librelane-3.0.7 → librelane-3.0.8}/librelane/scripts/magic/def/antenna_check.tcl +0 -0
  77. {librelane-3.0.7 → librelane-3.0.8}/librelane/scripts/magic/def/mag.tcl +0 -0
  78. {librelane-3.0.7 → librelane-3.0.8}/librelane/scripts/magic/def/mag_gds.tcl +0 -0
  79. {librelane-3.0.7 → librelane-3.0.8}/librelane/scripts/magic/drc.tcl +0 -0
  80. {librelane-3.0.7 → librelane-3.0.8}/librelane/scripts/magic/extract_spice.tcl +0 -0
  81. {librelane-3.0.7 → librelane-3.0.8}/librelane/scripts/magic/gds/drc_batch.tcl +0 -0
  82. {librelane-3.0.7 → librelane-3.0.8}/librelane/scripts/magic/gds/erase_box.tcl +0 -0
  83. {librelane-3.0.7 → librelane-3.0.8}/librelane/scripts/magic/gds/extras_mag.tcl +0 -0
  84. {librelane-3.0.7 → librelane-3.0.8}/librelane/scripts/magic/gds/mag_with_pointers.tcl +0 -0
  85. {librelane-3.0.7 → librelane-3.0.8}/librelane/scripts/magic/get_bbox.tcl +0 -0
  86. {librelane-3.0.7 → librelane-3.0.8}/librelane/scripts/magic/lef/extras_maglef.tcl +0 -0
  87. {librelane-3.0.7 → librelane-3.0.8}/librelane/scripts/magic/lef/maglef.tcl +0 -0
  88. {librelane-3.0.7 → librelane-3.0.8}/librelane/scripts/magic/lef.tcl +0 -0
  89. {librelane-3.0.7 → librelane-3.0.8}/librelane/scripts/magic/open.tcl +0 -0
  90. {librelane-3.0.7 → librelane-3.0.8}/librelane/scripts/magic/spice_rcx.tcl +0 -0
  91. {librelane-3.0.7 → librelane-3.0.8}/librelane/scripts/magic/wrapper.tcl +0 -0
  92. {librelane-3.0.7 → librelane-3.0.8}/librelane/scripts/netgen/setup.tcl +0 -0
  93. {librelane-3.0.7 → librelane-3.0.8}/librelane/scripts/odbpy/apply_def_template.py +0 -0
  94. {librelane-3.0.7 → librelane-3.0.8}/librelane/scripts/odbpy/cell_frequency.py +0 -0
  95. {librelane-3.0.7 → librelane-3.0.8}/librelane/scripts/odbpy/check_antenna_properties.py +0 -0
  96. {librelane-3.0.7 → librelane-3.0.8}/librelane/scripts/odbpy/contextualize.py +0 -0
  97. {librelane-3.0.7 → librelane-3.0.8}/librelane/scripts/odbpy/defutil.py +0 -0
  98. {librelane-3.0.7 → librelane-3.0.8}/librelane/scripts/odbpy/diodes.py +0 -0
  99. {librelane-3.0.7 → librelane-3.0.8}/librelane/scripts/odbpy/disconnected_pins.py +0 -0
  100. {librelane-3.0.7 → librelane-3.0.8}/librelane/scripts/odbpy/eco_buffer.py +0 -0
  101. {librelane-3.0.7 → librelane-3.0.8}/librelane/scripts/odbpy/eco_diode.py +0 -0
  102. {librelane-3.0.7 → librelane-3.0.8}/librelane/scripts/odbpy/filter_unannotated.py +0 -0
  103. {librelane-3.0.7 → librelane-3.0.8}/librelane/scripts/odbpy/io_place.py +0 -0
  104. {librelane-3.0.7 → librelane-3.0.8}/librelane/scripts/odbpy/ioplace_parser/__init__.py +0 -0
  105. {librelane-3.0.7 → librelane-3.0.8}/librelane/scripts/odbpy/ioplace_parser/parse.py +0 -0
  106. {librelane-3.0.7 → librelane-3.0.8}/librelane/scripts/odbpy/label_macro_pins.py +0 -0
  107. {librelane-3.0.7 → librelane-3.0.8}/librelane/scripts/odbpy/lefutil.py +0 -0
  108. {librelane-3.0.7 → librelane-3.0.8}/librelane/scripts/odbpy/placers.py +0 -0
  109. {librelane-3.0.7 → librelane-3.0.8}/librelane/scripts/odbpy/power_utils.py +0 -0
  110. {librelane-3.0.7 → librelane-3.0.8}/librelane/scripts/odbpy/random_place.py +0 -0
  111. {librelane-3.0.7 → librelane-3.0.8}/librelane/scripts/odbpy/reader.py +0 -0
  112. {librelane-3.0.7 → librelane-3.0.8}/librelane/scripts/odbpy/remove_buffers.py +0 -0
  113. {librelane-3.0.7 → librelane-3.0.8}/librelane/scripts/odbpy/snap_to_grid.py +0 -0
  114. {librelane-3.0.7 → librelane-3.0.8}/librelane/scripts/odbpy/wire_lengths.py +0 -0
  115. {librelane-3.0.7 → librelane-3.0.8}/librelane/scripts/openroad/antenna_check.tcl +0 -0
  116. {librelane-3.0.7 → librelane-3.0.8}/librelane/scripts/openroad/antenna_repair.tcl +0 -0
  117. {librelane-3.0.7 → librelane-3.0.8}/librelane/scripts/openroad/buffer_list.tcl +0 -0
  118. {librelane-3.0.7 → librelane-3.0.8}/librelane/scripts/openroad/common/dpl.tcl +0 -0
  119. {librelane-3.0.7 → librelane-3.0.8}/librelane/scripts/openroad/common/dpl_cell_pad.tcl +0 -0
  120. {librelane-3.0.7 → librelane-3.0.8}/librelane/scripts/openroad/common/grt.tcl +0 -0
  121. {librelane-3.0.7 → librelane-3.0.8}/librelane/scripts/openroad/common/io.tcl +0 -0
  122. {librelane-3.0.7 → librelane-3.0.8}/librelane/scripts/openroad/common/pad_cfg.tcl +0 -0
  123. {librelane-3.0.7 → librelane-3.0.8}/librelane/scripts/openroad/common/pdn_cfg.tcl +0 -0
  124. {librelane-3.0.7 → librelane-3.0.8}/librelane/scripts/openroad/common/resizer.tcl +0 -0
  125. {librelane-3.0.7 → librelane-3.0.8}/librelane/scripts/openroad/common/set_global_connections.tcl +0 -0
  126. {librelane-3.0.7 → librelane-3.0.8}/librelane/scripts/openroad/common/set_layer_adjustments.tcl +0 -0
  127. {librelane-3.0.7 → librelane-3.0.8}/librelane/scripts/openroad/common/set_power_nets.tcl +0 -0
  128. {librelane-3.0.7 → librelane-3.0.8}/librelane/scripts/openroad/common/set_rc.tcl +0 -0
  129. {librelane-3.0.7 → librelane-3.0.8}/librelane/scripts/openroad/common/set_routing_layers.tcl +0 -0
  130. {librelane-3.0.7 → librelane-3.0.8}/librelane/scripts/openroad/cts.tcl +0 -0
  131. {librelane-3.0.7 → librelane-3.0.8}/librelane/scripts/openroad/cut_rows.tcl +0 -0
  132. {librelane-3.0.7 → librelane-3.0.8}/librelane/scripts/openroad/dpl.tcl +0 -0
  133. {librelane-3.0.7 → librelane-3.0.8}/librelane/scripts/openroad/drt.tcl +0 -0
  134. {librelane-3.0.7 → librelane-3.0.8}/librelane/scripts/openroad/dump_rc.tcl +0 -0
  135. {librelane-3.0.7 → librelane-3.0.8}/librelane/scripts/openroad/fill.tcl +0 -0
  136. {librelane-3.0.7 → librelane-3.0.8}/librelane/scripts/openroad/floorplan.tcl +0 -0
  137. {librelane-3.0.7 → librelane-3.0.8}/librelane/scripts/openroad/gpl.tcl +0 -0
  138. {librelane-3.0.7 → librelane-3.0.8}/librelane/scripts/openroad/grt.tcl +0 -0
  139. {librelane-3.0.7 → librelane-3.0.8}/librelane/scripts/openroad/gui.tcl +0 -0
  140. {librelane-3.0.7 → librelane-3.0.8}/librelane/scripts/openroad/insert_buffer.tcl +0 -0
  141. {librelane-3.0.7 → librelane-3.0.8}/librelane/scripts/openroad/ioplacer.tcl +0 -0
  142. {librelane-3.0.7 → librelane-3.0.8}/librelane/scripts/openroad/irdrop.tcl +0 -0
  143. {librelane-3.0.7 → librelane-3.0.8}/librelane/scripts/openroad/pad.tcl +0 -0
  144. {librelane-3.0.7 → librelane-3.0.8}/librelane/scripts/openroad/pdn.tcl +0 -0
  145. {librelane-3.0.7 → librelane-3.0.8}/librelane/scripts/openroad/rcx.tcl +0 -0
  146. {librelane-3.0.7 → librelane-3.0.8}/librelane/scripts/openroad/repair_design.tcl +0 -0
  147. {librelane-3.0.7 → librelane-3.0.8}/librelane/scripts/openroad/repair_design_postgrt.tcl +0 -0
  148. {librelane-3.0.7 → librelane-3.0.8}/librelane/scripts/openroad/rsz_timing_postcts.tcl +0 -0
  149. {librelane-3.0.7 → librelane-3.0.8}/librelane/scripts/openroad/rsz_timing_postgrt.tcl +0 -0
  150. {librelane-3.0.7 → librelane-3.0.8}/librelane/scripts/openroad/sta/check_macro_instances.tcl +0 -0
  151. {librelane-3.0.7 → librelane-3.0.8}/librelane/scripts/openroad/sta/corner.tcl +0 -0
  152. {librelane-3.0.7 → librelane-3.0.8}/librelane/scripts/openroad/tapcell.tcl +0 -0
  153. {librelane-3.0.7 → librelane-3.0.8}/librelane/scripts/openroad/ungpl.tcl +0 -0
  154. {librelane-3.0.7 → librelane-3.0.8}/librelane/scripts/openroad/write_cdl.tcl +0 -0
  155. {librelane-3.0.7 → librelane-3.0.8}/librelane/scripts/openroad/write_views.tcl +0 -0
  156. {librelane-3.0.7 → librelane-3.0.8}/librelane/scripts/pyosys/construct_abc_script.py +0 -0
  157. {librelane-3.0.7 → librelane-3.0.8}/librelane/scripts/pyosys/json_header.py +0 -0
  158. {librelane-3.0.7 → librelane-3.0.8}/librelane/scripts/tclsh/hello.tcl +0 -0
  159. {librelane-3.0.7 → librelane-3.0.8}/librelane/state/__init__.py +0 -0
  160. {librelane-3.0.7 → librelane-3.0.8}/librelane/state/__main__.py +0 -0
  161. {librelane-3.0.7 → librelane-3.0.8}/librelane/state/design_format.py +0 -0
  162. {librelane-3.0.7 → librelane-3.0.8}/librelane/state/state.py +0 -0
  163. {librelane-3.0.7 → librelane-3.0.8}/librelane/steps/__init__.py +0 -0
  164. {librelane-3.0.7 → librelane-3.0.8}/librelane/steps/__main__.py +0 -0
  165. {librelane-3.0.7 → librelane-3.0.8}/librelane/steps/checker.py +0 -0
  166. {librelane-3.0.7 → librelane-3.0.8}/librelane/steps/common_variables.py +0 -0
  167. {librelane-3.0.7 → librelane-3.0.8}/librelane/steps/klayout.py +0 -0
  168. {librelane-3.0.7 → librelane-3.0.8}/librelane/steps/magic.py +0 -0
  169. {librelane-3.0.7 → librelane-3.0.8}/librelane/steps/misc.py +0 -0
  170. {librelane-3.0.7 → librelane-3.0.8}/librelane/steps/netgen.py +0 -0
  171. {librelane-3.0.7 → librelane-3.0.8}/librelane/steps/odb.py +0 -0
  172. {librelane-3.0.7 → librelane-3.0.8}/librelane/steps/openroad.py +0 -0
  173. {librelane-3.0.7 → librelane-3.0.8}/librelane/steps/openroad_alerts.py +0 -0
  174. {librelane-3.0.7 → librelane-3.0.8}/librelane/steps/pyosys.py +0 -0
  175. {librelane-3.0.7 → librelane-3.0.8}/librelane/steps/step.py +0 -0
  176. {librelane-3.0.7 → librelane-3.0.8}/librelane/steps/tclstep.py +0 -0
  177. {librelane-3.0.7 → librelane-3.0.8}/librelane/steps/verilator.py +0 -0
  178. {librelane-3.0.7 → librelane-3.0.8}/librelane/steps/yosys.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: librelane
3
- Version: 3.0.7
3
+ Version: 3.0.8
4
4
  Summary: An infrastructure for implementing chip design flows
5
5
  License-Expression: Apache-2.0
6
6
  Maintainer: Mohamed Gaber
@@ -38,7 +38,7 @@ from typing import List, Optional
38
38
 
39
39
  import click
40
40
 
41
- from ys_common import ys
41
+ from ys_common import ys, yosys_version_at_least
42
42
  from construct_abc_script import ABCScriptCreator
43
43
 
44
44
 
@@ -225,9 +225,12 @@ def librelane_synth(
225
225
  librelane_opt(d, fast=True)
226
226
  librelane_opt(d, fast=True)
227
227
 
228
- d.run_pass(
229
- "abc", "-fast", *(["-dff"] if abc_dff else [])
230
- ) # Run ABC with fast settings
228
+ abc_pass = ["abc"]
229
+ if not yosys_version_at_least(0, 68):
230
+ abc_pass.append("-fast")
231
+ if abc_dff:
232
+ abc_pass.append("-dff")
233
+ d.run_pass(*abc_pass)
231
234
  d.run_pass("opt", "-fast") # MORE fast optimization
232
235
 
233
236
  # Checks and Stats
@@ -16,8 +16,9 @@
16
16
  # See the License for the specific language governing permissions and
17
17
  # limitations under the License.
18
18
  import os
19
+ import re
19
20
  import sys
20
- from typing import Iterable, List, Union
21
+ from typing import Iterable, List, Optional, Tuple, Union
21
22
 
22
23
  try:
23
24
  from pyosys import libyosys as ys
@@ -26,15 +27,41 @@ except ImportError:
26
27
  # flake8: noqa F401
27
28
  import libyosys
28
29
 
29
- ys.log_error("Current versions of LibreLane require Yosys 0.59.1 or higher.")
30
+ print(
31
+ "Current versions of LibreLane require Yosys 0.59.1 or higher.",
32
+ file=sys.stderr,
33
+ )
30
34
  exit(-1)
31
35
  except ImportError:
32
- ys.log_error(
36
+ print(
33
37
  "Failed to import pyosys -- make sure Yosys is compiled with ENABLE_PYTHON set to 1.",
34
38
  file=sys.stderr,
35
39
  )
36
40
  exit(-1)
37
41
 
42
+ _yosys_version_extracted: Optional[Tuple[int, int]] = None
43
+
44
+
45
+ def yosys_version_at_least(*target: Tuple[int, ...]) -> Tuple[int, int]:
46
+ """
47
+ check if version is >= the target components, i.e.
48
+
49
+ yosys_version_at_least(0, 68) checks if the verison >= 0.68
50
+ """
51
+ global _yosys_version_extracted
52
+ yosys_version_rx = re.compile(r"^\s*Yosys (\d+)\.(\d+)")
53
+ if _yosys_version_extracted is None:
54
+ _yosys_version_extracted = (999, 999)
55
+ try:
56
+ match = yosys_version_rx.search(ys.Globals.yosys_version_str)
57
+ _yosys_version_extracted = (int(match.group(1)), int(match.group(2)))
58
+ except Exception:
59
+ ys.log_warning(
60
+ "Could not identify Yosys version. "
61
+ "Defaulting to the latest version's behavior on all code.\n"
62
+ )
63
+ return _yosys_version_extracted >= target
64
+
38
65
 
39
66
  def _Design_run_pass(self, *command):
40
67
  ys.Pass.call(self, command)
@@ -71,9 +98,9 @@ def _Design_read_verilog_files(
71
98
  chparams[param] = value
72
99
  slang_chparam_args.append(f"-G{param}={value}")
73
100
 
74
- ys.log("use_slang" if use_slang else "wtaf")
75
101
  if use_slang:
76
- self.run_pass("plugin", "-i", "slang")
102
+ if not yosys_version_at_least(0, 67):
103
+ self.run_pass("plugin", "-i", "slang")
77
104
  self.run_pass(
78
105
  "read_slang",
79
106
  "--top",
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "librelane"
3
- version = "3.0.7"
3
+ version = "3.0.8"
4
4
  description = "An infrastructure for implementing chip design flows"
5
5
  maintainers = [
6
6
  {name = "Mohamed Gaber", email = "donn@fossi-foundation.org"},
File without changes
File without changes