fix(tt_tool): use correct timing data for gf180mcuD

We are targeting 3.3V, but until now we used 5V timing data.
This commit is contained in:
Uri Shaked
2025-09-30 15:47:56 +03:00
parent 65b404f80a
commit 7d5a6b229f
2 changed files with 14 additions and 1 deletions
+1
View File
@@ -492,6 +492,7 @@ class Project:
"GND_PIN": "VGND", "GND_PIN": "VGND",
"RT_MAX_LAYER": self.tech.project_top_metal_layer, "RT_MAX_LAYER": self.tech.project_top_metal_layer,
} }
config.update(self.tech.librelane_config)
write_config(config, os.path.join(self.src_dir, "user_config"), ("json",)) write_config(config, os.path.join(self.src_dir, "user_config"), ("json",))
self.create_merged_config() self.create_merged_config()
+13 -1
View File
@@ -1,6 +1,6 @@
import json import json
import os import os
from typing import Dict, List, Literal, Protocol, Tuple, TypedDict from typing import Dict, List, Literal, Protocol, Tuple, TypedDict, Union
from git.repo import Repo from git.repo import Repo
@@ -25,6 +25,8 @@ class Tech(Protocol):
netlist_type: Literal["pnl", "nl"] netlist_type: Literal["pnl", "nl"]
project_top_metal_layer: str project_top_metal_layer: str
""" Extra PDK-specific configuration for LibreLane """
librelane_config: Dict[str, Union[bool, int, float, str]]
""" These layers will be removed from the SVG render of the layout """ """ These layers will be removed from the SVG render of the layout """
label_layers: List[Tuple[int, int]] label_layers: List[Tuple[int, int]]
""" These layers are hardly visible and will also be removed from the SVG render of the layout """ """ These layers are hardly visible and will also be removed from the SVG render of the layout """
@@ -57,6 +59,7 @@ class Sky130Tech(Tech):
cell_regexp = r"sky130_(?P<cell_lib>\S+)__(?P<cell_name>\S+)_(?P<cell_drive>\d+)" cell_regexp = r"sky130_(?P<cell_lib>\S+)__(?P<cell_name>\S+)_(?P<cell_drive>\d+)"
netlist_type = "pnl" netlist_type = "pnl"
project_top_metal_layer = "met4" project_top_metal_layer = "met4"
librelane_config = {}
label_layers = [ label_layers = [
(64, 59), # pwell.label (64, 59), # pwell.label
(64, 5), # nwell.label (64, 5), # nwell.label
@@ -108,6 +111,7 @@ class IHPTech(Tech):
cell_regexp = r"sg13g2_(?P<cell_name>\S+)_(?P<cell_drive>\d+)" cell_regexp = r"sg13g2_(?P<cell_name>\S+)_(?P<cell_drive>\d+)"
netlist_type = "nl" netlist_type = "nl"
project_top_metal_layer = "Metal5" project_top_metal_layer = "Metal5"
librelane_config = {}
label_layers = [ label_layers = [
(8, 1), # Metal1.label (8, 1), # Metal1.label
(8, 25), # Metal1.text (8, 25), # Metal1.text
@@ -157,6 +161,14 @@ class GF180MCUDTech(Tech):
cell_regexp = r"gf180mcu_(?P<cell_lib>\S+)__(?P<cell_name>\S+)_(?P<cell_drive>\d+)" cell_regexp = r"gf180mcu_(?P<cell_lib>\S+)__(?P<cell_name>\S+)_(?P<cell_drive>\d+)"
netlist_type = "pnl" netlist_type = "pnl"
project_top_metal_layer = "Metal4" project_top_metal_layer = "Metal4"
librelane_config = {
# The default configuration is for a 5V supply, but TT targets a 3.3V supply,
# so we need to adjust the library paths to use the 3.3V libraries.
"VDD_PIN_VOLTAGE": 3.3,
"LIB_SYNTH": "pdk_dir::libs.ref/gf180mcu_fd_sc_mcu7t5v0/lib/gf180mcu_fd_sc_mcu7t5v0__tt_025C_3v30.lib",
"LIB_FASTEST": "pdk_dir::libs.ref/gf180mcu_fd_sc_mcu7t5v0/lib/gf180mcu_fd_sc_mcu7t5v0__ff_n40C_3v60.lib",
"LIB_SLOWEST": "pdk_dir::libs.ref/gf180mcu_fd_sc_mcu7t5v0/lib/gf180mcu_fd_sc_mcu7t5v0__ss_125C_3v00.lib",
}
label_layers = [ label_layers = [
# TODO: add label layers # TODO: add label layers
] ]