librelane 3.0.0.dev24__tar.gz → 3.0.0.dev25__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.dev24 → librelane-3.0.0.dev25}/PKG-INFO +1 -1
  2. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/examples/spm/config.yaml +8 -8
  3. librelane-3.0.0.dev25/librelane/examples/spm-user_project_wrapper/config.json +25 -0
  4. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/scripts/openroad/common/io.tcl +23 -11
  5. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/scripts/openroad/common/pdn_cfg.tcl +36 -36
  6. librelane-3.0.0.dev25/librelane/scripts/openroad/ioplacer.tcl +67 -0
  7. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/scripts/openroad/pdn.tcl +1 -1
  8. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/steps/common_variables.py +82 -33
  9. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/steps/odb.py +14 -35
  10. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/steps/openroad.py +21 -40
  11. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/pyproject.toml +1 -1
  12. librelane-3.0.0.dev24/librelane/examples/spm-user_project_wrapper/config.json +0 -13
  13. librelane-3.0.0.dev24/librelane/scripts/openroad/ioplacer.tcl +0 -66
  14. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/Readme.md +0 -0
  15. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/__init__.py +0 -0
  16. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/__main__.py +0 -0
  17. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/__version__.py +0 -0
  18. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/common/__init__.py +0 -0
  19. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/common/cli.py +0 -0
  20. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/common/drc.py +0 -0
  21. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/common/generic_dict.py +0 -0
  22. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/common/metrics/__init__.py +0 -0
  23. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/common/metrics/__main__.py +0 -0
  24. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/common/metrics/library.py +0 -0
  25. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/common/metrics/metric.py +0 -0
  26. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/common/metrics/util.py +0 -0
  27. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/common/misc.py +0 -0
  28. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/common/ring_buffer.py +0 -0
  29. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/common/tcl.py +0 -0
  30. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/common/toolbox.py +0 -0
  31. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/common/tpe.py +0 -0
  32. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/common/types.py +0 -0
  33. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/config/__init__.py +0 -0
  34. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/config/__main__.py +0 -0
  35. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/config/config.py +0 -0
  36. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/config/flow.py +0 -0
  37. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/config/pdk_compat.py +0 -0
  38. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/config/preprocessor.py +0 -0
  39. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/config/removals.py +0 -0
  40. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/config/variable.py +0 -0
  41. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/container.py +0 -0
  42. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/env_info.py +0 -0
  43. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/examples/spm/pin_order.cfg +0 -0
  44. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/examples/spm/src/impl.sdc +0 -0
  45. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/examples/spm/src/signoff.sdc +0 -0
  46. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/examples/spm/src/spm.v +0 -0
  47. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/examples/spm/verify/spm_tb.v +0 -0
  48. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/examples/spm-user_project_wrapper/SPM_example.v +0 -0
  49. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/examples/spm-user_project_wrapper/base_sdc_file.sdc +0 -0
  50. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/examples/spm-user_project_wrapper/config-tut.json +0 -0
  51. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/examples/spm-user_project_wrapper/defines.v +0 -0
  52. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/examples/spm-user_project_wrapper/template.def +0 -0
  53. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/examples/spm-user_project_wrapper/user_project_wrapper.v +0 -0
  54. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/flows/__init__.py +0 -0
  55. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/flows/builtins.py +0 -0
  56. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/flows/classic.py +0 -0
  57. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/flows/cli.py +0 -0
  58. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/flows/flow.py +0 -0
  59. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/flows/misc.py +0 -0
  60. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/flows/optimizing.py +0 -0
  61. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/flows/sequential.py +0 -0
  62. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/flows/synth_explore.py +0 -0
  63. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/logging/__init__.py +0 -0
  64. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/logging/logger.py +0 -0
  65. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/open_pdks_rev +0 -0
  66. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/plugins.py +0 -0
  67. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/py.typed +0 -0
  68. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/scripts/base.sdc +0 -0
  69. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/scripts/klayout/Readme.md +0 -0
  70. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/scripts/klayout/open_design.py +0 -0
  71. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/scripts/klayout/render.py +0 -0
  72. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/scripts/klayout/stream_out.py +0 -0
  73. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/scripts/klayout/xml_drc_report_to_json.py +0 -0
  74. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/scripts/klayout/xor.drc +0 -0
  75. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/scripts/magic/Readme.md +0 -0
  76. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/scripts/magic/common/read.tcl +0 -0
  77. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/scripts/magic/def/antenna_check.tcl +0 -0
  78. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/scripts/magic/def/mag.tcl +0 -0
  79. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/scripts/magic/def/mag_gds.tcl +0 -0
  80. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/scripts/magic/drc.tcl +0 -0
  81. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/scripts/magic/extract_spice.tcl +0 -0
  82. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/scripts/magic/gds/drc_batch.tcl +0 -0
  83. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/scripts/magic/gds/erase_box.tcl +0 -0
  84. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/scripts/magic/gds/extras_mag.tcl +0 -0
  85. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/scripts/magic/gds/mag_with_pointers.tcl +0 -0
  86. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/scripts/magic/get_bbox.tcl +0 -0
  87. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/scripts/magic/lef/extras_maglef.tcl +0 -0
  88. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/scripts/magic/lef/maglef.tcl +0 -0
  89. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/scripts/magic/lef.tcl +0 -0
  90. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/scripts/magic/open.tcl +0 -0
  91. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/scripts/magic/wrapper.tcl +0 -0
  92. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/scripts/netgen/setup.tcl +0 -0
  93. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/scripts/odbpy/apply_def_template.py +0 -0
  94. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/scripts/odbpy/cell_frequency.py +0 -0
  95. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/scripts/odbpy/check_antenna_properties.py +0 -0
  96. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/scripts/odbpy/contextualize.py +0 -0
  97. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/scripts/odbpy/defutil.py +0 -0
  98. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/scripts/odbpy/diodes.py +0 -0
  99. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/scripts/odbpy/disconnected_pins.py +0 -0
  100. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/scripts/odbpy/eco_buffer.py +0 -0
  101. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/scripts/odbpy/eco_diode.py +0 -0
  102. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/scripts/odbpy/filter_unannotated.py +0 -0
  103. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/scripts/odbpy/io_place.py +0 -0
  104. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/scripts/odbpy/ioplace_parser/__init__.py +0 -0
  105. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/scripts/odbpy/ioplace_parser/parse.py +0 -0
  106. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/scripts/odbpy/label_macro_pins.py +0 -0
  107. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/scripts/odbpy/lefutil.py +0 -0
  108. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/scripts/odbpy/placers.py +0 -0
  109. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/scripts/odbpy/power_utils.py +0 -0
  110. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/scripts/odbpy/random_place.py +0 -0
  111. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/scripts/odbpy/reader.py +0 -0
  112. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/scripts/odbpy/remove_buffers.py +0 -0
  113. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/scripts/odbpy/snap_to_grid.py +0 -0
  114. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/scripts/odbpy/wire_lengths.py +0 -0
  115. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/scripts/openroad/antenna_check.tcl +0 -0
  116. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/scripts/openroad/antenna_repair.tcl +0 -0
  117. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/scripts/openroad/basic_mp.tcl +0 -0
  118. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/scripts/openroad/buffer_list.tcl +0 -0
  119. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/scripts/openroad/common/dpl.tcl +0 -0
  120. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/scripts/openroad/common/dpl_cell_pad.tcl +0 -0
  121. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/scripts/openroad/common/grt.tcl +0 -0
  122. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/scripts/openroad/common/resizer.tcl +0 -0
  123. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/scripts/openroad/common/set_global_connections.tcl +0 -0
  124. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/scripts/openroad/common/set_layer_adjustments.tcl +0 -0
  125. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/scripts/openroad/common/set_power_nets.tcl +0 -0
  126. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/scripts/openroad/common/set_rc.tcl +0 -0
  127. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/scripts/openroad/common/set_routing_layers.tcl +0 -0
  128. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/scripts/openroad/cts.tcl +0 -0
  129. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/scripts/openroad/cut_rows.tcl +0 -0
  130. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/scripts/openroad/dpl.tcl +0 -0
  131. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/scripts/openroad/drt.tcl +0 -0
  132. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/scripts/openroad/dump_rc.tcl +0 -0
  133. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/scripts/openroad/fill.tcl +0 -0
  134. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/scripts/openroad/floorplan.tcl +0 -0
  135. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/scripts/openroad/gpl.tcl +0 -0
  136. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/scripts/openroad/grt.tcl +0 -0
  137. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/scripts/openroad/gui.tcl +0 -0
  138. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/scripts/openroad/insert_buffer.tcl +0 -0
  139. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/scripts/openroad/irdrop.tcl +0 -0
  140. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/scripts/openroad/rcx.tcl +0 -0
  141. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/scripts/openroad/repair_design.tcl +0 -0
  142. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/scripts/openroad/repair_design_postgrt.tcl +0 -0
  143. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/scripts/openroad/rsz_timing_postcts.tcl +0 -0
  144. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/scripts/openroad/rsz_timing_postgrt.tcl +0 -0
  145. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/scripts/openroad/sta/check_macro_instances.tcl +0 -0
  146. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/scripts/openroad/sta/corner.tcl +0 -0
  147. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/scripts/openroad/tapcell.tcl +0 -0
  148. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/scripts/openroad/ungpl.tcl +0 -0
  149. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/scripts/openroad/write_views.tcl +0 -0
  150. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/scripts/pyosys/construct_abc_script.py +0 -0
  151. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/scripts/pyosys/json_header.py +0 -0
  152. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/scripts/pyosys/synthesize.py +0 -0
  153. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/scripts/pyosys/ys_common.py +0 -0
  154. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/scripts/tclsh/hello.tcl +0 -0
  155. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/state/__init__.py +0 -0
  156. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/state/__main__.py +0 -0
  157. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/state/design_format.py +0 -0
  158. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/state/state.py +0 -0
  159. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/steps/__init__.py +0 -0
  160. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/steps/__main__.py +0 -0
  161. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/steps/checker.py +0 -0
  162. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/steps/cvc_rv.py +0 -0
  163. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/steps/klayout.py +0 -0
  164. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/steps/magic.py +0 -0
  165. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/steps/misc.py +0 -0
  166. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/steps/netgen.py +0 -0
  167. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/steps/openroad_alerts.py +0 -0
  168. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/steps/pyosys.py +0 -0
  169. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/steps/step.py +0 -0
  170. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/steps/tclstep.py +0 -0
  171. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/librelane/steps/verilator.py +0 -0
  172. {librelane-3.0.0.dev24 → librelane-3.0.0.dev25}/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.dev24
3
+ Version: 3.0.0.dev25
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
@@ -7,16 +7,16 @@ PNR_SDC_FILE: dir::src/impl.sdc
7
7
  SIGNOFF_SDC_FILE: dir::src/signoff.sdc
8
8
 
9
9
  # PDN
10
- FP_PDN_VOFFSET: 5
11
- FP_PDN_HOFFSET: 5
12
- FP_PDN_VWIDTH: 2
13
- FP_PDN_HWIDTH: 2
14
- FP_PDN_VPITCH: 30
15
- FP_PDN_HPITCH: 30
16
- FP_PDN_SKIPTRIM: true
10
+ PDN_VOFFSET: 5
11
+ PDN_HOFFSET: 5
12
+ PDN_VWIDTH: 2
13
+ PDN_HWIDTH: 2
14
+ PDN_VPITCH: 30
15
+ PDN_HPITCH: 30
16
+ PDN_SKIPTRIM: true
17
17
 
18
18
  # Pin Order
19
- FP_PIN_ORDER_CFG: dir::pin_order.cfg
19
+ IO_PIN_ORDER_CFG: dir::pin_order.cfg
20
20
 
21
21
  # Technology-Specific Configs
22
22
  pdk::sky130*:
@@ -0,0 +1,25 @@
1
+ {
2
+ "DESIGN_NAME": "SPM_example",
3
+ "VERILOG_FILES": [
4
+ "dir::./defines.v",
5
+ "dir::./SPM_example.v"
6
+ ],
7
+ "CLOCK_PERIOD": 25,
8
+ "CLOCK_PORT": "wb_clk_i",
9
+ "CLOCK_NET": "SPM.clk",
10
+ "RT_MAX_LAYER": "met4",
11
+ "FP_SIZING": "absolute",
12
+ "VDD_NETS": [
13
+ "vccd1"
14
+ ],
15
+ "GND_NETS": [
16
+ "vssd1"
17
+ ],
18
+ "PDN_MULTILAYER": false,
19
+ "DIE_AREA": [
20
+ 0,
21
+ 0,
22
+ 600,
23
+ 600
24
+ ]
25
+ }
@@ -99,23 +99,35 @@ proc read_pdn_cfg {} {
99
99
 
100
100
  # Compatibility Layer for Deprecated Variables That May Still Be Used By
101
101
  # User Files
102
- set ::env(DESIGN_IS_CORE) $::env(FP_PDN_MULTILAYER)
103
- set ::env(FP_PDN_ENABLE_MACROS_GRID) $::env(PDN_CONNECT_MACROS_TO_GRID)
104
- set ::env(FP_PDN_RAILS_LAYER) $::env(FP_PDN_RAIL_LAYER)
105
- set ::env(FP_PDN_UPPER_LAYER) $::env(FP_PDN_HORIZONTAL_LAYER)
106
- set ::env(FP_PDN_LOWER_LAYER) $::env(FP_PDN_VERTICAL_LAYER)
102
+ set unset_list {
103
+ DESIGN_IS_CORE
104
+ PDN_ENABLE_MACROS_GRID
105
+ PDN_RAILS_LAYER
106
+ PDN_UPPER_LAYER
107
+ PDN_LOWER_LAYER
108
+ }
109
+ set ::env(DESIGN_IS_CORE) $::env(PDN_MULTILAYER)
110
+ set ::env(PDN_ENABLE_MACROS_GRID) $::env(PDN_CONNECT_MACROS_TO_GRID)
111
+ set ::env(PDN_RAILS_LAYER) $::env(PDN_RAIL_LAYER)
112
+ set ::env(PDN_UPPER_LAYER) $::env(PDN_HORIZONTAL_LAYER)
113
+ set ::env(PDN_LOWER_LAYER) $::env(PDN_VERTICAL_LAYER)
114
+ foreach key [array names ::env] {
115
+ if { [string match PDN_* $key] } {
116
+ set fp_name FP_$key
117
+ lappend unset_list $fp_name
118
+ set ::env($fp_name) $::env($key)
119
+ }
120
+ }
107
121
 
108
- if {[catch {source $::env(FP_PDN_CFG)} errmsg]} {
122
+ if {[catch {source $::env(PDN_CFG)} errmsg]} {
109
123
  puts stderr $errmsg
110
124
  exit 1
111
125
  }
112
126
 
113
127
  # Restore Environment
114
- unset ::env(DESIGN_IS_CORE)
115
- unset ::env(FP_PDN_ENABLE_MACROS_GRID)
116
- unset ::env(FP_PDN_RAILS_LAYER)
117
- unset ::env(FP_PDN_UPPER_LAYER)
118
- unset ::env(FP_PDN_LOWER_LAYER)
128
+ foreach unsettable $unset_list {
129
+ unset ::env($unsettable)
130
+ }
119
131
  }
120
132
 
121
133
 
@@ -43,83 +43,83 @@ foreach vdd $::env(VDD_NETS) gnd $::env(GND_NETS) {
43
43
  set_voltage_domain -name CORE -power $::env(VDD_NET) -ground $::env(GND_NET) \
44
44
  -secondary_power $secondary
45
45
 
46
- if { $::env(FP_PDN_MULTILAYER) == 1 } {
46
+ if { $::env(PDN_MULTILAYER) == 1 } {
47
47
  define_pdn_grid \
48
48
  -name stdcell_grid \
49
49
  -starts_with POWER \
50
50
  -voltage_domain CORE \
51
- -pins "$::env(FP_PDN_VERTICAL_LAYER) $::env(FP_PDN_HORIZONTAL_LAYER)"
51
+ -pins "$::env(PDN_VERTICAL_LAYER) $::env(PDN_HORIZONTAL_LAYER)"
52
52
 
53
53
  add_pdn_stripe \
54
54
  -grid stdcell_grid \
55
- -layer $::env(FP_PDN_VERTICAL_LAYER) \
56
- -width $::env(FP_PDN_VWIDTH) \
57
- -pitch $::env(FP_PDN_VPITCH) \
58
- -offset $::env(FP_PDN_VOFFSET) \
59
- -spacing $::env(FP_PDN_VSPACING) \
55
+ -layer $::env(PDN_VERTICAL_LAYER) \
56
+ -width $::env(PDN_VWIDTH) \
57
+ -pitch $::env(PDN_VPITCH) \
58
+ -offset $::env(PDN_VOFFSET) \
59
+ -spacing $::env(PDN_VSPACING) \
60
60
  -starts_with POWER -extend_to_core_ring
61
61
 
62
62
  add_pdn_stripe \
63
63
  -grid stdcell_grid \
64
- -layer $::env(FP_PDN_HORIZONTAL_LAYER) \
65
- -width $::env(FP_PDN_HWIDTH) \
66
- -pitch $::env(FP_PDN_HPITCH) \
67
- -offset $::env(FP_PDN_HOFFSET) \
68
- -spacing $::env(FP_PDN_HSPACING) \
64
+ -layer $::env(PDN_HORIZONTAL_LAYER) \
65
+ -width $::env(PDN_HWIDTH) \
66
+ -pitch $::env(PDN_HPITCH) \
67
+ -offset $::env(PDN_HOFFSET) \
68
+ -spacing $::env(PDN_HSPACING) \
69
69
  -starts_with POWER -extend_to_core_ring
70
70
 
71
71
  add_pdn_connect \
72
72
  -grid stdcell_grid \
73
- -layers "$::env(FP_PDN_VERTICAL_LAYER) $::env(FP_PDN_HORIZONTAL_LAYER)"
73
+ -layers "$::env(PDN_VERTICAL_LAYER) $::env(PDN_HORIZONTAL_LAYER)"
74
74
  } else {
75
75
  define_pdn_grid \
76
76
  -name stdcell_grid \
77
77
  -starts_with POWER \
78
78
  -voltage_domain CORE \
79
- -pins $::env(FP_PDN_VERTICAL_LAYER)
79
+ -pins $::env(PDN_VERTICAL_LAYER)
80
80
 
81
81
  add_pdn_stripe \
82
82
  -grid stdcell_grid \
83
- -layer $::env(FP_PDN_VERTICAL_LAYER) \
84
- -width $::env(FP_PDN_VWIDTH) \
85
- -pitch $::env(FP_PDN_VPITCH) \
86
- -offset $::env(FP_PDN_VOFFSET) \
87
- -spacing $::env(FP_PDN_VSPACING) \
83
+ -layer $::env(PDN_VERTICAL_LAYER) \
84
+ -width $::env(PDN_VWIDTH) \
85
+ -pitch $::env(PDN_VPITCH) \
86
+ -offset $::env(PDN_VOFFSET) \
87
+ -spacing $::env(PDN_VSPACING) \
88
88
  -starts_with POWER -extend_to_core_ring
89
89
  }
90
90
 
91
91
  # Adds the standard cell rails if enabled.
92
- if { $::env(FP_PDN_ENABLE_RAILS) == 1 } {
92
+ if { $::env(PDN_ENABLE_RAILS) == 1 } {
93
93
  add_pdn_stripe \
94
94
  -grid stdcell_grid \
95
- -layer $::env(FP_PDN_RAIL_LAYER) \
96
- -width $::env(FP_PDN_RAIL_WIDTH) \
95
+ -layer $::env(PDN_RAIL_LAYER) \
96
+ -width $::env(PDN_RAIL_WIDTH) \
97
97
  -followpins
98
98
 
99
99
  add_pdn_connect \
100
100
  -grid stdcell_grid \
101
- -layers "$::env(FP_PDN_RAIL_LAYER) $::env(FP_PDN_VERTICAL_LAYER)"
101
+ -layers "$::env(PDN_RAIL_LAYER) $::env(PDN_VERTICAL_LAYER)"
102
102
  }
103
103
 
104
104
 
105
105
  # Adds the core ring if enabled.
106
- if { $::env(FP_PDN_CORE_RING) == 1 } {
107
- if { $::env(FP_PDN_MULTILAYER) == 1 } {
106
+ if { $::env(PDN_CORE_RING) == 1 } {
107
+ if { $::env(PDN_MULTILAYER) == 1 } {
108
108
  add_pdn_ring \
109
109
  -allow_out_of_die \
110
110
  -grid stdcell_grid \
111
- -layers "$::env(FP_PDN_VERTICAL_LAYER) $::env(FP_PDN_HORIZONTAL_LAYER)" \
112
- -widths "$::env(FP_PDN_CORE_RING_VWIDTH) $::env(FP_PDN_CORE_RING_HWIDTH)" \
113
- -spacings "$::env(FP_PDN_CORE_RING_VSPACING) $::env(FP_PDN_CORE_RING_HSPACING)" \
114
- -core_offset "$::env(FP_PDN_CORE_RING_VOFFSET) $::env(FP_PDN_CORE_RING_HOFFSET)"
111
+ -layers "$::env(PDN_VERTICAL_LAYER) $::env(PDN_HORIZONTAL_LAYER)" \
112
+ -widths "$::env(PDN_CORE_RING_VWIDTH) $::env(PDN_CORE_RING_HWIDTH)" \
113
+ -spacings "$::env(PDN_CORE_RING_VSPACING) $::env(PDN_CORE_RING_HSPACING)" \
114
+ -core_offset "$::env(PDN_CORE_RING_VOFFSET) $::env(PDN_CORE_RING_HOFFSET)"
115
115
  } else {
116
- throw APPLICATION "FP_PDN_CORE_RING cannot be used when FP_PDN_MULTILAYER is set to false."
116
+ throw APPLICATION "PDN_CORE_RING cannot be used when PDN_MULTILAYER is set to false."
117
117
  # add_pdn_ring \
118
118
  # -grid stdcell_grid \
119
- # -layers "$::env(FP_PDN_VERTICAL_LAYER)" \
120
- # -widths "$::env(FP_PDN_CORE_RING_VWIDTH)" \
121
- # -spacings "$::env(FP_PDN_CORE_RING_VSPACING)" \
122
- # -core_offset "$::env(FP_PDN_CORE_RING_VOFFSET)"
119
+ # -layers "$::env(PDN_VERTICAL_LAYER)" \
120
+ # -widths "$::env(PDN_CORE_RING_VWIDTH)" \
121
+ # -spacings "$::env(PDN_CORE_RING_VSPACING)" \
122
+ # -core_offset "$::env(PDN_CORE_RING_VOFFSET)"
123
123
  }
124
124
  }
125
125
 
@@ -128,8 +128,8 @@ define_pdn_grid \
128
128
  -default \
129
129
  -name macro \
130
130
  -starts_with POWER \
131
- -halo "$::env(FP_PDN_HORIZONTAL_HALO) $::env(FP_PDN_VERTICAL_HALO)"
131
+ -halo "$::env(PDN_HORIZONTAL_HALO) $::env(PDN_VERTICAL_HALO)"
132
132
 
133
133
  add_pdn_connect \
134
134
  -grid macro \
135
- -layers "$::env(FP_PDN_VERTICAL_LAYER) $::env(FP_PDN_HORIZONTAL_LAYER)"
135
+ -layers "$::env(PDN_VERTICAL_LAYER) $::env(PDN_HORIZONTAL_LAYER)"
@@ -0,0 +1,67 @@
1
+ # Copyright 2020-2022 Efabless Corporation
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+ source $::env(SCRIPTS_DIR)/openroad/common/io.tcl
15
+ read_current_odb
16
+
17
+ if { [info exists ::env(CONTEXTUAL_IO_FLAG)] } {
18
+ read_lef $::env(placement_tmpfiles)/top_level.lef
19
+ }
20
+
21
+ if { [info exists ::env(IO_PIN_H_LENGTH)] } {
22
+ set_pin_length -hor_length $::env(IO_PIN_H_LENGTH)
23
+ }
24
+
25
+ if { [info exists ::env(IO_PIN_V_LENGTH)] } {
26
+ set_pin_length -ver_length $::env(IO_PIN_V_LENGTH)
27
+ }
28
+
29
+ if { $::env(IO_PIN_H_EXTENSION) != "0"} {
30
+ set_pin_length_extension -hor_extension $::env(IO_PIN_H_EXTENSION)
31
+ }
32
+
33
+ if { $::env(IO_PIN_V_EXTENSION) != "0"} {
34
+ set_pin_length_extension -ver_extension $::env(IO_PIN_V_EXTENSION)
35
+ }
36
+
37
+ if {$::env(IO_PIN_V_THICKNESS_MULT) != "" && $::env(IO_PIN_H_THICKNESS_MULT) != ""} {
38
+ set_pin_thick_multiplier\
39
+ -hor_multiplier $::env(IO_PIN_H_THICKNESS_MULT) \
40
+ -ver_multiplier $::env(IO_PIN_V_THICKNESS_MULT)
41
+ }
42
+
43
+ set arg_list [list]
44
+ if { $::env(IO_PIN_PLACEMENT_MODE) == "random_equidistant" } {
45
+ lappend arg_list -random
46
+ }
47
+
48
+ if { [info exists ::env(IO_PIN_MIN_DISTANCE)] } {
49
+ lappend arg_list -min_distance $::env(IO_PIN_MIN_DISTANCE)
50
+ }
51
+
52
+ if { $::env(IO_PIN_PLACEMENT_MODE) == "annealing" } {
53
+ lappend arg_list -annealing
54
+ }
55
+
56
+ set HMETAL $::env(FP_IO_HLAYER)
57
+ set VMETAL $::env(FP_IO_VLAYER)
58
+
59
+ log_cmd place_pins {*}$arg_list \
60
+ -random_seed 42 \
61
+ -hor_layers $HMETAL \
62
+ -ver_layers $VMETAL
63
+
64
+ write_views
65
+
66
+ report_design_area_metrics
67
+
@@ -21,7 +21,7 @@ source $::env(SCRIPTS_DIR)/openroad/common/set_power_nets.tcl
21
21
  read_pdn_cfg
22
22
 
23
23
  set arg_list [list]
24
- if { $::env(FP_PDN_SKIPTRIM) } {
24
+ if { $::env(PDN_SKIPTRIM) } {
25
25
  lappend arg_list -skip_trim
26
26
  }
27
27
  # run PDNGEN
@@ -18,204 +18,253 @@ from ..config import Variable
18
18
 
19
19
  io_layer_variables = [
20
20
  Variable(
21
- "FP_IO_VEXTEND",
21
+ "IO_PIN_V_EXTENSION",
22
22
  Decimal,
23
23
  "Extends the vertical io pins outside of the die by the specified units.",
24
24
  default=0,
25
25
  units="µm",
26
+ deprecated_names=["FP_IO_VEXTEND"],
26
27
  ),
27
28
  Variable(
28
- "FP_IO_HEXTEND",
29
+ "IO_PIN_H_EXTENSION",
29
30
  Decimal,
30
31
  "Extends the horizontal io pins outside of the die by the specified units.",
31
32
  default=0,
32
33
  units="µm",
34
+ deprecated_names=["FP_IO_HEXTEND"],
33
35
  ),
34
36
  Variable(
35
- "FP_IO_VTHICKNESS_MULT",
37
+ "IO_PIN_V_THICKNESS_MULT",
36
38
  Decimal,
37
39
  "A multiplier for vertical pin thickness. Base thickness is the pins layer min width.",
38
40
  default=2,
41
+ deprecated_names=["FP_IO_VTHICKNESS_MULT"],
39
42
  ),
40
43
  Variable(
41
- "FP_IO_HTHICKNESS_MULT",
44
+ "IO_PIN_H_THICKNESS_MULT",
42
45
  Decimal,
43
46
  "A multiplier for horizontal pin thickness. Base thickness is the pins layer min width.",
44
47
  default=2,
48
+ deprecated_names=["FP_IO_HTHICKNESS_MULT"],
49
+ ),
50
+ Variable(
51
+ "IO_PIN_V_LENGTH",
52
+ Optional[Decimal],
53
+ """
54
+ The length of the pins with a north or south orientation. If unspecified by a PDK, OpenROAD will use whichever is higher of the following two values:
55
+ * The pin width
56
+ * The minimum value satisfying the minimum area constraint given the pin width
57
+ """,
58
+ units="µm",
59
+ pdk=True,
60
+ deprecated_names=["FP_IO_VLENGTH"],
61
+ ),
62
+ Variable(
63
+ "IO_PIN_H_LENGTH",
64
+ Optional[Decimal],
65
+ """
66
+ The length of the pins with an east or west orientation. If unspecified by a PDK, OpenROAD will use whichever is higher of the following two values:
67
+ * The pin width
68
+ * The minimum value satisfying the minimum area constraint given the pin width
69
+ """,
70
+ units="µm",
71
+ pdk=True,
72
+ deprecated_names=["FP_IO_HLENGTH"],
45
73
  ),
46
74
  ]
47
75
 
48
76
  pdn_variables = [
49
77
  Variable(
50
- "FP_PDN_SKIPTRIM",
78
+ "PDN_SKIPTRIM",
51
79
  bool,
52
80
  "Enables `-skip_trim` option during pdngen which skips the metal trim step, which attempts to remove metal stubs.",
53
81
  default=False,
82
+ deprecated_names=["FP_PDN_SKIPTRIM"],
54
83
  ),
55
84
  Variable(
56
- "FP_PDN_CORE_RING",
85
+ "PDN_CORE_RING",
57
86
  bool,
58
87
  "Enables adding a core ring around the design. More details on the control variables in the PDK config documentation.",
59
88
  default=False,
89
+ deprecated_names=["FP_PDN_CORE_RING"],
60
90
  ),
61
91
  Variable(
62
- "FP_PDN_ENABLE_RAILS",
92
+ "PDN_ENABLE_RAILS",
63
93
  bool,
64
94
  "Enables the creation of rails in the power grid.",
65
95
  default=True,
96
+ deprecated_names=["FP_PDN_ENABLE_RAILS"],
66
97
  ),
67
98
  Variable(
68
- "FP_PDN_HORIZONTAL_HALO",
99
+ "PDN_HORIZONTAL_HALO",
69
100
  Decimal,
70
101
  "Sets the horizontal halo around the macros during power grid insertion.",
71
102
  default=10,
72
103
  units="µm",
104
+ deprecated_names=["FP_PDN_HORIZONTAL_HALO"],
73
105
  ),
74
106
  Variable(
75
- "FP_PDN_VERTICAL_HALO",
107
+ "PDN_VERTICAL_HALO",
76
108
  Decimal,
77
109
  "Sets the vertical halo around the macros during power grid insertion.",
78
110
  default=10,
79
111
  units="µm",
112
+ deprecated_names=["FP_PDN_VERTICAL_HALO"],
80
113
  ),
81
114
  Variable(
82
- "FP_PDN_MULTILAYER",
115
+ "PDN_MULTILAYER",
83
116
  bool,
84
117
  "Controls the layers used in the power grid. If set to false, only the lower layer will be used, which is useful when hardening a macro for integrating into a larger top-level design.",
85
118
  default=True,
86
- deprecated_names=["DESIGN_IS_CORE"],
119
+ deprecated_names=["FP_PDN_MULTILAYER", "DESIGN_IS_CORE"],
87
120
  ),
88
121
  Variable(
89
- "FP_PDN_RAIL_OFFSET",
122
+ "PDN_RAIL_OFFSET",
90
123
  Decimal,
91
124
  "The offset for the power distribution network rails for first metal layer.",
92
125
  units="µm",
93
126
  pdk=True,
127
+ deprecated_names=["FP_PDN_RAIL_OFFSET"],
94
128
  ),
95
129
  Variable(
96
- "FP_PDN_VWIDTH",
130
+ "PDN_VWIDTH",
97
131
  Decimal,
98
132
  "The strap width for the vertical layer in generated power distribution networks.",
99
133
  units="µm",
100
134
  pdk=True,
135
+ deprecated_names=["FP_PDN_VWIDTH"],
101
136
  ),
102
137
  Variable(
103
- "FP_PDN_HWIDTH",
138
+ "PDN_HWIDTH",
104
139
  Decimal,
105
140
  "The strap width for the horizontal layer in generated power distribution networks.",
106
141
  units="µm",
107
142
  pdk=True,
143
+ deprecated_names=["FP_PDN_HWIDTH"],
108
144
  ),
109
145
  Variable(
110
- "FP_PDN_VSPACING",
146
+ "PDN_VSPACING",
111
147
  Decimal,
112
148
  "Intra-spacing (within a set) of vertical straps in generated power distribution networks.",
113
149
  units="µm",
114
150
  pdk=True,
151
+ deprecated_names=["FP_PDN_VSPACING"],
115
152
  ),
116
153
  Variable(
117
- "FP_PDN_HSPACING",
154
+ "PDN_HSPACING",
118
155
  Decimal,
119
156
  "Intra-spacing (within a set) of horizontal straps in generated power distribution networks.",
120
157
  units="µm",
121
158
  pdk=True,
159
+ deprecated_names=["FP_PDN_HSPACING"],
122
160
  ),
123
161
  Variable(
124
- "FP_PDN_VPITCH",
162
+ "PDN_VPITCH",
125
163
  Decimal,
126
164
  "Inter-distance (between sets) of vertical power straps in generated power distribution networks.",
127
165
  units="µm",
128
166
  pdk=True,
167
+ deprecated_names=["FP_PDN_VPITCH"],
129
168
  ),
130
169
  Variable(
131
- "FP_PDN_HPITCH",
170
+ "PDN_HPITCH",
132
171
  Decimal,
133
172
  "Inter-distance (between sets) of horizontal power straps in generated power distribution networks.",
134
173
  units="µm",
135
174
  pdk=True,
175
+ deprecated_names=["FP_PDN_HPITCH"],
136
176
  ),
137
177
  Variable(
138
- "FP_PDN_VOFFSET",
178
+ "PDN_VOFFSET",
139
179
  Decimal,
140
180
  "Initial offset for sets of vertical power straps.",
141
181
  units="µm",
142
182
  pdk=True,
183
+ deprecated_names=["FP_PDN_VOFFSET"],
143
184
  ),
144
185
  Variable(
145
- "FP_PDN_HOFFSET",
186
+ "PDN_HOFFSET",
146
187
  Decimal,
147
188
  "Initial offset for sets of horizontal power straps.",
148
189
  units="µm",
149
190
  pdk=True,
191
+ deprecated_names=["FP_PDN_HOFFSET"],
150
192
  ),
151
193
  Variable(
152
- "FP_PDN_CORE_RING_VWIDTH",
194
+ "PDN_CORE_RING_VWIDTH",
153
195
  Decimal,
154
196
  "The width for the vertical layer in the core ring of generated power distribution networks.",
155
197
  units="µm",
156
198
  pdk=True,
199
+ deprecated_names=["FP_PDN_CORE_RING_VWIDTH"],
157
200
  ),
158
201
  Variable(
159
- "FP_PDN_CORE_RING_HWIDTH",
202
+ "PDN_CORE_RING_HWIDTH",
160
203
  Decimal,
161
204
  "The width for the horizontal layer in the core ring of generated power distribution networks.",
162
205
  units="µm",
163
206
  pdk=True,
207
+ deprecated_names=["FP_PDN_CORE_RING_HWIDTH"],
164
208
  ),
165
209
  Variable(
166
- "FP_PDN_CORE_RING_VSPACING",
210
+ "PDN_CORE_RING_VSPACING",
167
211
  Decimal,
168
212
  "The spacing for the vertical layer in the core ring of generated power distribution networks.",
169
213
  units="µm",
170
214
  pdk=True,
215
+ deprecated_names=["FP_PDN_CORE_RING_VSPACING"],
171
216
  ),
172
217
  Variable(
173
- "FP_PDN_CORE_RING_HSPACING",
218
+ "PDN_CORE_RING_HSPACING",
174
219
  Decimal,
175
220
  "The spacing for the horizontal layer in the core ring of generated power distribution networks.",
176
221
  units="µm",
177
222
  pdk=True,
223
+ deprecated_names=["FP_PDN_CORE_RING_HSPACING"],
178
224
  ),
179
225
  Variable(
180
- "FP_PDN_CORE_RING_VOFFSET",
226
+ "PDN_CORE_RING_VOFFSET",
181
227
  Decimal,
182
228
  "The offset for the vertical layer in the core ring of generated power distribution networks.",
183
229
  units="µm",
184
230
  pdk=True,
231
+ deprecated_names=["FP_PDN_CORE_RING_VOFFSET"],
185
232
  ),
186
233
  Variable(
187
- "FP_PDN_CORE_RING_HOFFSET",
234
+ "PDN_CORE_RING_HOFFSET",
188
235
  Decimal,
189
236
  "The offset for the horizontal layer in the core ring of generated power distribution networks.",
190
237
  units="µm",
191
238
  pdk=True,
239
+ deprecated_names=["FP_PDN_CORE_RING_HOFFSET"],
192
240
  ),
193
241
  Variable(
194
- "FP_PDN_RAIL_LAYER",
242
+ "PDN_RAIL_LAYER",
195
243
  str,
196
244
  "Defines the metal layer used for PDN rails.",
197
- deprecated_names=["FP_PDN_RAILS_LAYER"],
245
+ deprecated_names=["FP_PDN_RAIL_LAYER", "FP_PDN_RAILS_LAYER"],
198
246
  pdk=True,
199
247
  ),
200
248
  Variable(
201
- "FP_PDN_RAIL_WIDTH",
249
+ "PDN_RAIL_WIDTH",
202
250
  Decimal,
203
251
  "Defines the width of PDN rails on the `FP_PDN_RAILS_LAYER` layer.",
204
252
  units="µm",
205
253
  pdk=True,
254
+ deprecated_names=["FP_PDN_RAIL_WIDTH"],
206
255
  ),
207
256
  Variable(
208
- "FP_PDN_HORIZONTAL_LAYER",
257
+ "PDN_HORIZONTAL_LAYER",
209
258
  str,
210
259
  "Defines the horizontal PDN layer.",
211
- deprecated_names=["FP_PDN_UPPER_LAYER"],
260
+ deprecated_names=["FP_PDN_HORIZONTAL_LAYER", "FP_PDN_UPPER_LAYER"],
212
261
  pdk=True,
213
262
  ),
214
263
  Variable(
215
- "FP_PDN_VERTICAL_LAYER",
264
+ "PDN_VERTICAL_LAYER",
216
265
  str,
217
266
  "Defines the vertical PDN layer.",
218
- deprecated_names=["FP_PDN_LOWER_LAYER"],
267
+ deprecated_names=["FP_PDN_VERTICAL_LAYER", "FP_PDN_LOWER_LAYER"],
219
268
  pdk=True,
220
269
  ),
221
270
  ]