mirror of
https://github.com/VLSIDA/OpenRAM.git
synced 2026-08-29 01:24:39 +02:00
fix col_cap array for dummu compatability ...bitcells next
This commit is contained in:
@@ -8,20 +8,29 @@
|
||||
from openram import debug
|
||||
from openram.base import design
|
||||
from openram.tech import cell_properties as props
|
||||
|
||||
from openram import OPTS
|
||||
|
||||
class sky130_col_cap(design):
|
||||
|
||||
def __init__(self, version, name=""):
|
||||
def __init__(self, version, name="",left_rbl=[],right_rbl=[]):
|
||||
|
||||
if version == "colend":
|
||||
cell_name = "sky130_fd_bd_sram__sram_sp_colend"
|
||||
if OPTS.control_logic == "control_logic_delay" or not right_rbl:
|
||||
cell_name = "sky130_fd_bd_sram__sram_sp_colend"
|
||||
else:
|
||||
cell_name = "sky130_fd_bd_sram__openram_sp_colend_replica"
|
||||
prop = props.col_cap_1port_bitcell
|
||||
|
||||
elif version == "colenda":
|
||||
if OPTS.control_logic == "control_logic_delay" or not left_rbl:
|
||||
cell_name = "sky130_fd_bd_sram__sram_sp_colenda"
|
||||
else:
|
||||
cell_name = "sky130_fd_bd_sram__openram_sp_colenda_replica"
|
||||
prop = props.col_cap_1port_bitcell
|
||||
|
||||
elif version == "colend_p_cent":
|
||||
cell_name = "sky130_fd_bd_sram__sram_sp_colend_p_cent"
|
||||
prop = props.col_cap_1port_strap_ground
|
||||
elif version == "colenda":
|
||||
cell_name = "sky130_fd_bd_sram__sram_sp_colenda"
|
||||
prop = props.col_cap_1port_bitcell
|
||||
elif version == "colenda_p_cent":
|
||||
cell_name = "sky130_fd_bd_sram__sram_sp_colenda_p_cent"
|
||||
prop = props.col_cap_1port_strap_ground
|
||||
|
||||
@@ -18,18 +18,20 @@ class sky130_col_cap_array(col_cap_array, sky130_bitcell_base_array):
|
||||
"""
|
||||
Generate a dummy row/column for the replica array.
|
||||
"""
|
||||
def __init__(self, rows, cols, column_offset=0, mirror=0, location="", name=""):
|
||||
super().__init__(rows, cols, column_offset=column_offset, mirror=mirror, location=location, name=name)
|
||||
def __init__(self, rows, cols, column_offset=0, mirror=0, location="", name="", left_rbl=[],right_rbl=[]):
|
||||
self.left_rbl = left_rbl
|
||||
self.right_rbl = right_rbl
|
||||
super().__init__(rows, cols, column_offset=column_offset, mirror=mirror, location=location, name=name, left_rbl=left_rbl, right_rbl=right_rbl)
|
||||
self.no_instances = False
|
||||
|
||||
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.colend1 = factory.create(module_type="col_cap", version="colend",left_rbl=self.left_rbl, right_rbl=self.right_rbl)
|
||||
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.colend1 = factory.create(module_type="col_cap", version="colenda",left_rbl=self.left_rbl, right_rbl=self.right_rbl)
|
||||
self.colend2 = factory.create(module_type="col_cap", version="colenda_p_cent")
|
||||
self.colend3 = factory.create(module_type="col_cap", version="colenda_cent")
|
||||
|
||||
|
||||
@@ -814,7 +814,9 @@ flatglob = ["*_?mos_m*",
|
||||
blackbox_cells = ["sky130_fd_bd_sram__openram_dp_cell",
|
||||
"sky130_fd_bd_sram__openram_dp_cell_dummy",
|
||||
"sky130_fd_bd_sram__openram_dp_cell_replica",
|
||||
|
||||
|
||||
"sky130_fd_bd_sram__openram_sp_colend_replica",
|
||||
"sky130_fd_bd_sram__openram_sp_colenda_replica",
|
||||
"sky130_fd_bd_sram__sram_sp_cell_opt1a",
|
||||
"sky130_fd_bd_sram__openram_sp_cell_opt1a_dummy",
|
||||
"sky130_fd_bd_sram__openram_sp_cell_opt1_dummy",
|
||||
|
||||
Reference in New Issue
Block a user