Source code for gdsfactory.components.mimcap

"""Mim capacitor."""

import gdsfactory as gf
from gdsfactory.add_padding import get_padding_points
from gdsfactory.components.via_stack import via_stack_m2_m3
from gdsfactory.typings import Component, LayerSpecs


[docs] @gf.cell def mimcap( size: tuple[float, float] = (64, 64), width_contact: float = 2.5, gap_top_metal: float = 2, via_stack=via_stack_m2_m3, layers_bot: LayerSpecs = ("M2",), offsets_bot: tuple[float, ...] = (0.5,), ) -> Component: """Returns high speed GSG pads for calibrating the RF probes. By default contact is on the left Args: size: for the mimcap. (right). width_contact: width of the contact (left). gap_top_metal: between left and right sides. """ c = Component() size_contact = (width_contact, size[1]) size_mimcap = (size[0] - width_contact - gap_top_metal - 2.0, size[1] - 2.0) contact = c << via_stack(size=size_contact) mim = c << via_stack(size=size_mimcap) mim.xmin = contact.xmax + gap_top_metal c2 = c.copy() for layer, offset in zip(layers_bot, offsets_bot): points = get_padding_points(c2, default=offset) c.add_polygon(points, layer=layer) c.add_ports(contact.ports, prefix="l_") c.add_ports(mim.ports, prefix="r_") return c
if __name__ == "__main__": c = mimcap(size=(20, 10), width_contact=2) gf.remove_from_cache(c) c.show(show_ports=True)