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
|
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):
|
def pdf_write(self, pdf_name):
|
||||||
# NOTE: Currently does not work (Needs further research)
|
# NOTE: Currently does not work (Needs further research)
|
||||||
#self.pdf_name = self.name + ".pdf"
|
#self.pdf_name = self.name + ".pdf"
|
||||||
|
|
|
||||||
|
|
@ -40,6 +40,7 @@ class single_level_column_mux_array(design.design):
|
||||||
self.setup_layout_constants()
|
self.setup_layout_constants()
|
||||||
self.create_array()
|
self.create_array()
|
||||||
self.add_routing()
|
self.add_routing()
|
||||||
|
self.add_enclosure(self.mux_inst, "pwell")
|
||||||
|
|
||||||
def add_modules(self):
|
def add_modules(self):
|
||||||
self.mux = single_level_column_mux(name="single_level_column_mux",
|
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
|
# mux height plus routing signal height plus well spacing at the top
|
||||||
self.height = self.mux.height + self.route_height + drc["pwell_to_nwell"]
|
self.height = self.mux.height + self.route_height + drc["pwell_to_nwell"]
|
||||||
|
|
||||||
|
|
||||||
def create_array(self):
|
def create_array(self):
|
||||||
self.mux_inst = []
|
self.mux_inst = []
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue