OpenRAM/technology/sky130/custom/sky130_internal.py

41 lines
1.4 KiB
Python
Raw Normal View History

2021-08-18 20:21:52 +02:00
#!/usr/bin/env python3
# See LICENSE for licensing information.
#
# Copyright (c) 2016-2022 Regents of the University of California
2021-08-18 20:21:52 +02:00
# All rights reserved.
#
2022-09-13 01:07:00 +02:00
from copy import deepcopy
2022-11-27 22:01:20 +01:00
from openram.modules import internal_base
from openram.tech import cell_properties as props
2021-08-18 20:21:52 +02:00
2022-09-13 01:07:00 +02:00
class sky130_internal(internal_base):
2021-08-18 20:21:52 +02:00
def __init__(self, version, name=""):
2022-09-13 01:07:00 +02:00
prop = deepcopy(props.internal)
prop.boundary_layer = "mem"
2021-08-18 20:21:52 +02:00
if version == "wlstrap":
self.name = "sky130_fd_bd_sram__sram_sp_wlstrap"
2022-09-13 01:07:00 +02:00
prop.port_order = ["vdd"]
prop.port_types = ["POWER"]
prop.port_map = {'vdd': 'VPWR'}
2021-08-18 20:21:52 +02:00
elif version == "wlstrap_p":
self.name = "sky130_fd_bd_sram__sram_sp_wlstrap_p"
2022-09-13 01:07:00 +02:00
prop.port_order = ["gnd"]
prop.port_types = ["GROUND"]
prop.port_map = {'gnd': 'VGND'}
2021-08-18 20:21:52 +02:00
elif version == "wlstrapa":
self.name = "sky130_fd_bd_sram__sram_sp_wlstrapa"
2022-09-13 01:07:00 +02:00
prop.port_order = ["vdd"]
prop.port_types = ["POWER"]
prop.port_map = {'vdd': 'VPWR'}
2021-12-15 07:15:27 +01:00
elif version == "wlstrapa_p":
self.name = "sky130_fd_bd_sram__sram_sp_wlstrapa_p"
2022-09-13 01:07:00 +02:00
prop.port_order = ["gnd"]
prop.port_types = ["GROUND"]
prop.port_map = {'gnd': 'VGND'}
2021-08-18 20:21:52 +02:00
else:
debug.error("Invalid version", -1)
2022-09-13 01:07:00 +02:00
super().__init__(name, cell_name=self.name, prop=prop)