mirror of
https://github.com/VLSIDA/OpenRAM.git
synced 2026-08-30 18:02:23 +02:00
Some pgates are designs since not a fixed height
This commit is contained in:
@@ -1,12 +1,12 @@
|
||||
import contact
|
||||
import pgate
|
||||
import design
|
||||
import debug
|
||||
from tech import drc, parameter
|
||||
from vector import vector
|
||||
from globals import OPTS
|
||||
from sram_factory import factory
|
||||
|
||||
class precharge(pgate.pgate):
|
||||
class precharge(design.design):
|
||||
"""
|
||||
Creates a single precharge cell
|
||||
This module implements the precharge bitline cell used in the design.
|
||||
@@ -14,6 +14,7 @@ class precharge(pgate.pgate):
|
||||
def __init__(self, name, size=1, bitcell_bl="bl", bitcell_br="br"):
|
||||
|
||||
debug.info(2, "creating precharge cell {0}".format(name))
|
||||
design.design.__init__(self, name)
|
||||
|
||||
self.bitcell = factory.create(module_type="bitcell")
|
||||
self.beta = parameter["beta"]
|
||||
@@ -22,9 +23,13 @@ class precharge(pgate.pgate):
|
||||
self.bitcell_bl = bitcell_bl
|
||||
self.bitcell_br = bitcell_br
|
||||
|
||||
# Creates the netlist and layout
|
||||
pgate.pgate.__init__(self, name)
|
||||
|
||||
# Creates the netlist and layout
|
||||
# Since it has variable height, it is not a pgate.
|
||||
self.create_netlist()
|
||||
if not OPTS.netlist_only:
|
||||
self.create_layout()
|
||||
self.DRC_LVS()
|
||||
|
||||
def create_netlist(self):
|
||||
self.add_pins()
|
||||
@@ -150,7 +155,6 @@ class precharge(pgate.pgate):
|
||||
self.add_via_center(layers=("poly", "contact", "metal1"),
|
||||
offset=offset)
|
||||
|
||||
|
||||
# adds the en rail on metal1
|
||||
self.add_layout_pin_segment_center(text="en_bar",
|
||||
layer="metal1",
|
||||
|
||||
@@ -29,6 +29,7 @@ class ptx(design.design):
|
||||
# replace periods with underscore for newer spice compatibility
|
||||
name=name.replace('.','_')
|
||||
debug.info(3, "creating ptx {0}".format(name))
|
||||
design.design.__init__(self, name)
|
||||
|
||||
self.tx_type = tx_type
|
||||
self.mults = mults
|
||||
@@ -38,8 +39,7 @@ class ptx(design.design):
|
||||
self.num_contacts = num_contacts
|
||||
|
||||
# Do NOT create the netlist and layout (not a pgate)
|
||||
design.design.__init__(self, name)
|
||||
|
||||
# Since it has variable height, it is not a pgate.
|
||||
self.create_netlist()
|
||||
# We must always create ptx layout for pbitcell
|
||||
# some transistor sizes in other netlist depend on pbitcell
|
||||
|
||||
@@ -7,7 +7,7 @@ from globals import OPTS
|
||||
from sram_factory import factory
|
||||
import logical_effort
|
||||
|
||||
class single_level_column_mux(pgate.gate):
|
||||
class single_level_column_mux(pgate.pgate):
|
||||
"""
|
||||
This module implements the columnmux bitline cell used in the design.
|
||||
Creates a single columnmux cell with the given integer size relative
|
||||
|
||||
Reference in New Issue
Block a user