mirror of https://github.com/VLSIDA/OpenRAM.git
Add redundant implant for s8
This commit is contained in:
parent
355474ce2c
commit
4cb827c3d7
|
|
@ -11,7 +11,7 @@ from tech import drc, layer
|
|||
from vector import vector
|
||||
from sram_factory import factory
|
||||
import logical_effort
|
||||
from utils import round_to_grid
|
||||
from globals import OPTS
|
||||
|
||||
|
||||
class single_level_column_mux(pgate.pgate):
|
||||
|
|
@ -119,6 +119,9 @@ class single_level_column_mux(pgate.pgate):
|
|||
offset=nmos_upper_position)
|
||||
self.connect_inst(["br", "sel", "br_out", "gnd"])
|
||||
|
||||
if OPTS.tech_name == "sky130":
|
||||
self.add_implants()
|
||||
|
||||
def connect_poly(self):
|
||||
""" Connect the poly gate of the two pass transistors """
|
||||
|
||||
|
|
@ -190,6 +193,19 @@ class single_level_column_mux(pgate.pgate):
|
|||
self.add_path(self.col_mux_stack[2],
|
||||
[br_pin.bc(), mid1, mid2, nmos_lower_d_pin.center()])
|
||||
|
||||
def add_implants(self):
|
||||
"""
|
||||
Add top-to-bottom implants for adjacency issues in s8.
|
||||
"""
|
||||
# Route to the bottom
|
||||
ll = (self.nmos_lower.ll() - vector(2 * [self.implant_enclose_active])).scale(1, 0)
|
||||
# Don't route to the top
|
||||
ur = self.nmos_upper.ur() + vector(self.implant_enclose_active, 0)
|
||||
self.add_rect("nimplant",
|
||||
ll,
|
||||
ur.x - ll.x,
|
||||
ur.y - ll.y)
|
||||
|
||||
def add_pn_wells(self):
|
||||
"""
|
||||
Add a well and implant over the whole cell. Also, add the
|
||||
|
|
|
|||
Loading…
Reference in New Issue