Source code for qpdk.cells.chip
"""Chip-related finishing touches."""
import gdsfactory as gf
from gdsfactory.typings import LayerSpec
from qpdk.cells.waveguides import rectangle
from qpdk.helper import show_components
[docs]
@gf.cell
def chip_edge(
size: tuple[float, float] = (10000.0, 10000.0),
width: float = 200.0,
layer: LayerSpec = "M1_ETCH",
) -> gf.Component:
"""Returns a chip edge component with hollow rectangle frame.
Creates a rectangular frame (hollow rectangle) on an etched metal layer,
typically used to define chip edge regions for proper fabrication.
Args:
size: (tuple) Width and height of the chip edge area.
width: Width/thickness of the etched frame border.
layer: Layer to put the etched frame on.
"""
c = gf.Component()
# Create the hollow rectangle frame using four rectangles
rect_configs = [
{"size": (size[0], width), "position": (0, size[1] - width)}, # Top edge
{"size": (size[0], width), "position": (0, 0)}, # Bottom edge
{"size": (width, size[1]), "position": (0, 0)}, # Left edge
{"size": (width, size[1]), "position": (size[0] - width, 0)}, # Right edge
]
common_params = {
"layer": layer,
"centered": False,
"port_type": None,
}
for config in rect_configs:
rect = c << rectangle(size=config["size"], **common_params)
rect.move(config["position"])
return c
if __name__ == "__main__":
show_components(
chip_edge,
spacing=50,
)