Files
Kristaps Jurkans 904755cae3 feat(datasheet): automatically determine appropriate pinout table
This is determined by looking at the `pdk` key in the config. If `pdk` doesn't exist, `id` will be used (assuming that the structure of the shuttle ID follows ttX where X=[sky, ihp, gf]). If any part fails, it will fall back to `openframe_sky130`.

The pinout can also be manually controlled by setting the `datasheet_config.pinout` key in the shuttle config, and that will be used verbatim. Note that `datasheet_config.pinout` is not checked, so it *must* be exact, otherwise it will cause the datasheet build to fail.
2025-12-04 15:00:15 +00:00

46 lines
1022 B
Python

from typing import List, Literal, TypedDict
from tech import TechName
class ArtworkEntryType(TypedDict):
"""TypedDict for artwork, used by `config.DatasheetConfig`"""
id: str
rotate: str
class DatasheetConfig(TypedDict):
"""TypedDict for the datasheet config within Tiny Tapeout's config.yaml file"""
pinout: Literal[
"caravel",
"openframe",
"openframe_sky130",
"customframe_ihp_sg13g2",
"customframe_gf180mcud",
]
theme_override_colour: str
show_chip_viewer: bool
link_disable_colour: bool
link_override_colour: str
qrcode_follows_theme: bool
include: List[str]
disabled: List[str]
artwork: List[ArtworkEntryType]
class Config(TypedDict):
"""TypedDict for Tiny Tapeout's config.yaml file."""
id: str
name: str
project_dir: str
end_date: str
top_level_macro: str
powered_netlists: bool
no_power_gating: bool
pdk: TechName
datasheet_config: DatasheetConfig
openframe: bool