diff --git a/compiler/base/hierarchy_design.py b/compiler/base/hierarchy_design.py index 271e39b8..28954834 100644 --- a/compiler/base/hierarchy_design.py +++ b/compiler/base/hierarchy_design.py @@ -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 diff --git a/compiler/base/hierarchy_layout.py b/compiler/base/hierarchy_layout.py index 8d76e2d2..67482f61 100644 --- a/compiler/base/hierarchy_layout.py +++ b/compiler/base/hierarchy_layout.py @@ -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 diff --git a/compiler/custom/dff.py b/compiler/custom/dff.py index 2336ec74..38e3bd75 100644 --- a/compiler/custom/dff.py +++ b/compiler/custom/dff.py @@ -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 diff --git a/compiler/custom/inv_dec.py b/compiler/custom/inv_dec.py index 4fb76f7f..b150a38e 100644 --- a/compiler/custom/inv_dec.py +++ b/compiler/custom/inv_dec.py @@ -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 diff --git a/compiler/custom/nand2_dec.py b/compiler/custom/nand2_dec.py index 8a72bc5d..efec63b6 100644 --- a/compiler/custom/nand2_dec.py +++ b/compiler/custom/nand2_dec.py @@ -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 diff --git a/compiler/custom/nand3_dec.py b/compiler/custom/nand3_dec.py index 621626fc..3fc2b949 100644 --- a/compiler/custom/nand3_dec.py +++ b/compiler/custom/nand3_dec.py @@ -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 diff --git a/compiler/custom/nand4_dec.py b/compiler/custom/nand4_dec.py index c63239e8..abcfd2f3 100644 --- a/compiler/custom/nand4_dec.py +++ b/compiler/custom/nand4_dec.py @@ -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 diff --git a/compiler/modules/sense_amp.py b/compiler/custom/sense_amp.py similarity index 96% rename from compiler/modules/sense_amp.py rename to compiler/custom/sense_amp.py index dac6baac..4e84b7fe 100644 --- a/compiler/modules/sense_amp.py +++ b/compiler/custom/sense_amp.py @@ -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 diff --git a/compiler/custom/tri_gate.py b/compiler/custom/tri_gate.py index 81c7816f..476cc886 100644 --- a/compiler/custom/tri_gate.py +++ b/compiler/custom/tri_gate.py @@ -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 diff --git a/compiler/custom/write_driver.py b/compiler/custom/write_driver.py index ca86cf25..41375ab3 100644 --- a/compiler/custom/write_driver.py +++ b/compiler/custom/write_driver.py @@ -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 diff --git a/compiler/custom/and2_dec.py b/compiler/modules/and2_dec.py similarity index 100% rename from compiler/custom/and2_dec.py rename to compiler/modules/and2_dec.py diff --git a/compiler/custom/and3_dec.py b/compiler/modules/and3_dec.py similarity index 100% rename from compiler/custom/and3_dec.py rename to compiler/modules/and3_dec.py diff --git a/compiler/custom/and4_dec.py b/compiler/modules/and4_dec.py similarity index 100% rename from compiler/custom/and4_dec.py rename to compiler/modules/and4_dec.py