Use custom cells when needed.

This commit is contained in:
mrg 2020-11-03 11:58:25 -08:00
parent 87419bd640
commit 1890385be1
13 changed files with 25 additions and 25 deletions

View File

@ -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

View 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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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