OpenRAM/technology/sky130/custom/sky130_col_cap_array.py

36 lines
1.5 KiB
Python
Raw Normal View History

2023-08-26 01:39:32 +02:00
#!/usr/bin/env python3
2021-08-18 20:21:52 +02:00
# See LICENSE for licensing information.
#
2023-01-29 07:56:27 +01:00
# Copyright (c) 2016-2023 Regents of the University of California
2021-08-18 20:21:52 +02:00
# All rights reserved.
#
2022-11-27 22:01:20 +01:00
from openram.base import geometry
from openram.sram_factory import factory
from openram.tech import layer
from openram import OPTS
2023-08-26 01:39:32 +02:00
from openram.modules.col_cap_array import col_cap_array
from .sky130_bitcell_base_array import sky130_bitcell_base_array
2021-08-18 20:21:52 +02:00
2023-08-26 01:39:32 +02:00
class sky130_col_cap_array(col_cap_array, sky130_bitcell_base_array):
2021-08-18 20:21:52 +02:00
"""
Generate a dummy row/column for the replica array.
"""
2023-08-26 01:39:32 +02:00
def __init__(self, rows, cols, column_offset=0, mirror=0, location="", name=""):
super().__init__(rows, cols, column_offset=0, mirror=0, location="", name="")
2021-08-18 20:21:52 +02:00
def add_modules(self):
""" Add the modules used in this design """
if self.location == "top":
self.colend1 = factory.create(module_type="col_cap", version="colend")
self.colend2 = factory.create(module_type="col_cap", version="colend_p_cent")
self.colend3 = factory.create(module_type="col_cap", version="colend_cent")
elif self.location == "bottom":
self.colend1 = factory.create(module_type="col_cap", version="colenda")
self.colend2 = factory.create(module_type="col_cap", version="colenda_p_cent")
self.colend3 = factory.create(module_type="col_cap", version="colenda_cent")
self.cell = factory.create(module_type=OPTS.bitcell, version="opt1")
def create_instances(self):
2023-08-26 01:39:32 +02:00