mirror of https://github.com/VLSIDA/OpenRAM.git
Add well around column muxes.
This commit is contained in:
parent
4273a3717d
commit
acf3fe8376
|
|
@ -496,6 +496,26 @@ class layout(lef.lef):
|
|||
|
||||
return blockages
|
||||
|
||||
def add_enclosure(self, insts, layer="nwell"):
|
||||
""" Add a layer that surrounds the given instances. Useful
|
||||
for creating wells, for example. Doesn't check for minimum widths or
|
||||
spacings."""
|
||||
|
||||
xmin=insts[0].lx()
|
||||
ymin=insts[0].by()
|
||||
xmax=insts[0].rx()
|
||||
ymax=insts[0].uy()
|
||||
for inst in insts:
|
||||
xmin = min(xmin, inst.lx())
|
||||
ymin = min(ymin, inst.by())
|
||||
xmax = max(xmax, inst.rx())
|
||||
ymax = max(ymax, inst.uy())
|
||||
|
||||
self.add_rect(layer=layer,
|
||||
offset=vector(xmin,ymin),
|
||||
width=xmax-xmin,
|
||||
height=ymax-ymin)
|
||||
|
||||
def pdf_write(self, pdf_name):
|
||||
# NOTE: Currently does not work (Needs further research)
|
||||
#self.pdf_name = self.name + ".pdf"
|
||||
|
|
|
|||
|
|
@ -40,6 +40,7 @@ class single_level_column_mux_array(design.design):
|
|||
self.setup_layout_constants()
|
||||
self.create_array()
|
||||
self.add_routing()
|
||||
self.add_enclosure(self.mux_inst, "pwell")
|
||||
|
||||
def add_modules(self):
|
||||
self.mux = single_level_column_mux(name="single_level_column_mux",
|
||||
|
|
@ -60,6 +61,7 @@ class single_level_column_mux_array(design.design):
|
|||
# mux height plus routing signal height plus well spacing at the top
|
||||
self.height = self.mux.height + self.route_height + drc["pwell_to_nwell"]
|
||||
|
||||
|
||||
def create_array(self):
|
||||
self.mux_inst = []
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue