Skip to content

Commit

Permalink
Fix setting top/bottom routing layers in Innovus (#794)
Browse files Browse the repository at this point in the history
Move setting of routing layers to the end of the `init_design` Hammer
step, to after tech LEFs are loaded.
  • Loading branch information
ethanwu10 authored Jun 15, 2023
1 parent 53eeba0 commit 820ac1f
Showing 1 changed file with 13 additions and 12 deletions.
25 changes: 13 additions & 12 deletions hammer/par/innovus/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -249,18 +249,6 @@ def init_design(self) -> bool:
# Match SDC time units to timing libraries
verbose_append("set_library_unit -time 1{}".format(self.get_time_unit().value_prefix + self.get_time_unit().unit))

# Set the top and bottom global/detail routing layers.
layers = self.get_setting("vlsi.technology.routing_layers")
if layers is not None:
if self.version() >= self.version_number("201"):
verbose_append(f"set_db design_bottom_routing_layer {layers[0]}")
verbose_append(f"set_db design_top_routing_layer {layers[1]}")
else:
verbose_append(f"set_db route_early_global_bottom_layer {layers[0]}")
verbose_append(f"set_db route_early_global_top_layer {layers[1]}")
verbose_append(f"set_db route_design_bottom_layer {layers[0]}")
verbose_append(f"set_db route_design_top_layer {layers[1]}")

# Read LEF layouts.
lef_files = self.technology.read_libs([
hammer_tech.filters.lef_filter
Expand Down Expand Up @@ -313,6 +301,19 @@ def init_design(self) -> bool:
for l in self.generate_power_spec_commands():
verbose_append(l)

# Set the top and bottom global/detail routing layers.
# This must happen after the tech LEF is loaded
layers = self.get_setting("vlsi.technology.routing_layers")
if layers is not None:
if self.version() >= self.version_number("201"):
verbose_append(f"set_db design_bottom_routing_layer {layers[0]}")
verbose_append(f"set_db design_top_routing_layer {layers[1]}")
else:
verbose_append(f"set_db route_early_global_bottom_layer {layers[0]}")
verbose_append(f"set_db route_early_global_top_layer {layers[1]}")
verbose_append(f"set_db route_design_bottom_layer {layers[0]}")
verbose_append(f"set_db route_design_top_layer {layers[1]}")

# Set design effort.
verbose_append("set_db design_flow_effort {}".format(self.get_setting("par.innovus.design_flow_effort")))

Expand Down

0 comments on commit 820ac1f

Please sign in to comment.