sky130.pcells.pmos_5v

Contents

sky130.pcells.pmos_5v#

sky130.pcells.pmos_5v(diffusion_layer: tuple[int, int] | str = (65, 20), poly_layer: tuple[int, int] | str = (66, 20), gate_width: float = 0.75, gate_length: float = 0.5, sd_width: float = 0.3, end_cap: float = 0.13, contact_size: tuple[float, float] = (0.17, 0.17), contact_spacing: tuple[float, float] = (0.17, 0.17), contact_layer: tuple[int, int] | str = (66, 44), contact_enclosure: tuple[float, float] = (0.06, 0.06), diff_spacing: float = 0.37, diff_enclosure: tuple[float, float] = (0.33, 0.33), diffn_layer: tuple[int, int] | str = (65, 44), nwell_layer: tuple[int, int] | str = (64, 22), dnwell_enclosure: tuple[float, float] = (0.4, 0.4), dnwell_layer: tuple[int, int] | str = (64, 18), nf: int = 1, sdm_enclosure: tuple[float, float] = (0.125, 0.125), nsdm_layer: tuple[int, int] | str = (93, 44), psdm_layer: tuple[int, int] | str = (94, 20), sdm_spacing: float = 0.13, hvi_layer: tuple[int, int] | str = (75, 20), li_width: float = 0.17, li_layer: tuple[int, int] | str = (67, 20), li_enclosure: float = 0.08, mcon_layer: tuple[int, int] | str = (67, 44), mcon_enclosure: tuple[float, float] = (0.03, 0.06), m1_layer: tuple[int, int] | str = (68, 20), npc_layer: tuple[int, int] | str = (95, 20), npc_spacing: float = 0.09) Component[source]#

Return PMOS_5v.

Parameters:
  • diffusion_layer – spec.

  • poly_layer – spec.

  • gate_width – for poly.

  • gate_length – for poly.

  • sd_width – source drain length.

  • end_cap – end cap length.

  • contact_size – contact dimension (length and width)

  • contact_layer – for contacts

  • contact_enclosure – for contacts within diffusion or poly

  • diff_spacing – for two adjacent diffusions

  • diff_enclosure – for diffusion within well

  • diffp_layer – for bulk tie

  • layer (dnwell) – for deep nwell

  • nf – for finger option

import sky130

c = sky130.pcells.pmos_5v(gate_length= 2, gate_width=10, sd_width=5)
c.plot()

(Source code, png, hires.png, pdf)

../_images/sky130-pcells-pmos_5v-1.png