mirror of https://github.com/VLSIDA/OpenRAM.git
Use custom cells when needed.
This commit is contained in:
parent
87419bd640
commit
1890385be1
|
|
@ -33,7 +33,7 @@ class hierarchy_design(hierarchy_spice.spice, hierarchy_layout.layout):
|
|||
lvs_dir = OPTS.openram_tech + lvs_subdir + "/"
|
||||
|
||||
if os.path.exists(lvs_dir):
|
||||
self.lvs_file = lvs_dir + name + ".sp"
|
||||
self.lvs_file = lvs_dir + cell_name + ".sp"
|
||||
else:
|
||||
self.lvs_file = self.sp_file
|
||||
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@ from tech import drc, GDS
|
|||
from tech import layer as techlayer
|
||||
from tech import layer_indices
|
||||
from tech import layer_stacks
|
||||
from tech import preferred_directions
|
||||
import os
|
||||
from globals import OPTS
|
||||
from vector import vector
|
||||
|
|
|
|||
|
|
@ -26,14 +26,14 @@ class dff(design.design):
|
|||
cell_size_layer = "boundary"
|
||||
|
||||
def __init__(self, name="dff"):
|
||||
design.design.__init__(self, name)
|
||||
super().__init__(name)
|
||||
|
||||
(width, height) = utils.get_libcell_size(name,
|
||||
(width, height) = utils.get_libcell_size(self.cell_name,
|
||||
GDS["unit"],
|
||||
layer[self.cell_size_layer])
|
||||
|
||||
pin_map = utils.get_libcell_pins(self.pin_names,
|
||||
name,
|
||||
self.cell_name,
|
||||
GDS["unit"])
|
||||
|
||||
self.width = width
|
||||
|
|
|
|||
|
|
@ -9,7 +9,6 @@ import design
|
|||
from tech import GDS, layer, spice, parameter
|
||||
import logical_effort
|
||||
import utils
|
||||
import debug
|
||||
|
||||
|
||||
class inv_dec(design.design):
|
||||
|
|
@ -22,14 +21,14 @@ class inv_dec(design.design):
|
|||
cell_size_layer = "boundary"
|
||||
|
||||
def __init__(self, name="inv_dec", height=None):
|
||||
design.design.__init__(self, name)
|
||||
super().__init__(name)
|
||||
|
||||
(width, height) = utils.get_libcell_size(name,
|
||||
(width, height) = utils.get_libcell_size(self.cell_name,
|
||||
GDS["unit"],
|
||||
layer[self.cell_size_layer])
|
||||
|
||||
pin_map = utils.get_libcell_pins(self.pin_names,
|
||||
name,
|
||||
self.cell_name,
|
||||
GDS["unit"])
|
||||
|
||||
self.width = width
|
||||
|
|
|
|||
|
|
@ -21,14 +21,14 @@ class nand2_dec(design.design):
|
|||
cell_size_layer = "boundary"
|
||||
|
||||
def __init__(self, name="nand2_dec", height=None):
|
||||
design.design.__init__(self, name)
|
||||
super().__init__(name)
|
||||
|
||||
(width, height) = utils.get_libcell_size(name,
|
||||
(width, height) = utils.get_libcell_size(self.cell_name,
|
||||
GDS["unit"],
|
||||
layer[self.cell_size_layer])
|
||||
|
||||
pin_map = utils.get_libcell_pins(self.pin_names,
|
||||
name,
|
||||
self.cell_name,
|
||||
GDS["unit"])
|
||||
|
||||
self.width = width
|
||||
|
|
|
|||
|
|
@ -21,14 +21,14 @@ class nand3_dec(design.design):
|
|||
cell_size_layer = "boundary"
|
||||
|
||||
def __init__(self, name="nand3_dec", height=None):
|
||||
design.design.__init__(self, name)
|
||||
super().__init__(name)
|
||||
|
||||
(width, height) = utils.get_libcell_size(name,
|
||||
(width, height) = utils.get_libcell_size(self.cell_name,
|
||||
GDS["unit"],
|
||||
layer[self.cell_size_layer])
|
||||
|
||||
pin_map = utils.get_libcell_pins(self.pin_names,
|
||||
name,
|
||||
self.cell_name,
|
||||
GDS["unit"])
|
||||
|
||||
self.width = width
|
||||
|
|
|
|||
|
|
@ -21,14 +21,14 @@ class nand4_dec(design.design):
|
|||
cell_size_layer = "boundary"
|
||||
|
||||
def __init__(self, name="nand4_dec", height=None):
|
||||
design.design.__init__(self, name)
|
||||
super().__init__(name)
|
||||
|
||||
(width, height) = utils.get_libcell_size(name,
|
||||
(width, height) = utils.get_libcell_size(self.cell_name,
|
||||
GDS["unit"],
|
||||
layer[self.cell_size_layer])
|
||||
|
||||
pin_map = utils.get_libcell_pins(self.pin_names,
|
||||
name,
|
||||
self.cell_name,
|
||||
GDS["unit"])
|
||||
|
||||
self.width = width
|
||||
|
|
|
|||
|
|
@ -33,12 +33,12 @@ class sense_amp(design.design):
|
|||
super().__init__(name)
|
||||
debug.info(2, "Create sense_amp")
|
||||
|
||||
(width, height) = utils.get_libcell_size(name,
|
||||
(width, height) = utils.get_libcell_size(self.cell_name,
|
||||
GDS["unit"],
|
||||
layer[self.cell_size_layer])
|
||||
|
||||
pin_map = utils.get_libcell_pins(self.pin_names,
|
||||
name,
|
||||
self.cell_name,
|
||||
GDS["unit"])
|
||||
|
||||
self.width = width
|
||||
|
|
@ -28,15 +28,15 @@ class tri_gate(design.design):
|
|||
if name=="":
|
||||
name = "tri{0}".format(tri_gate.unique_id)
|
||||
tri_gate.unique_id += 1
|
||||
design.design.__init__(self, name)
|
||||
super().__init__(self, name)
|
||||
debug.info(2, "Create tri_gate")
|
||||
|
||||
(width, height) = utils.get_libcell_size(name,
|
||||
(width, height) = utils.get_libcell_size(self.cell_name,
|
||||
GDS["unit"],
|
||||
layer[self.cell_size_layer])
|
||||
|
||||
pin_map = utils.get_libcell_pins(self.pin_names,
|
||||
name,
|
||||
self.cell_name,
|
||||
GDS["unit"])
|
||||
|
||||
self.width = width
|
||||
|
|
|
|||
|
|
@ -31,15 +31,15 @@ class write_driver(design.design):
|
|||
cell_size_layer = "boundary"
|
||||
|
||||
def __init__(self, name):
|
||||
design.design.__init__(self, name)
|
||||
super().__init__(name)
|
||||
debug.info(2, "Create write_driver")
|
||||
|
||||
(width, height) = utils.get_libcell_size(name,
|
||||
(width, height) = utils.get_libcell_size(self.cell_name,
|
||||
GDS["unit"],
|
||||
layer[self.cell_size_layer])
|
||||
|
||||
pin_map = utils.get_libcell_pins(self.pin_names,
|
||||
name,
|
||||
self.cell_name,
|
||||
GDS["unit"])
|
||||
|
||||
self.width = width
|
||||
|
|
|
|||
Loading…
Reference in New Issue