sense_amp: Allow custom pin names

we don't want to propagate the sense amp's bl/br names out of the
sense_amp_array. Thus the sense_amp_array gets them named as
"bl"/"br" again.

Signed-off-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de>
This commit is contained in:
Bastian Koppelmann 2020-02-17 14:27:35 +01:00
parent 680dc6d2c7
commit 76256a2f1b
3 changed files with 21 additions and 9 deletions

View File

@ -120,7 +120,10 @@ class cell_properties():
'bl' : 'bl',
'br' : 'br',
'en' : 'en'})
self._sense_amp = _cell({'bl' : 'bl',
'br' : 'br',
'dout' : 'dout',
'en' : 'en'})
@property
def bitcell(self):
@ -141,3 +144,7 @@ class cell_properties():
@property
def write_driver(self):
return self._write_driver
@property
def sense_amp(self):
return self._sense_amp

View File

@ -9,6 +9,7 @@ import design
import debug
import utils
from tech import GDS,layer, parameter,drc
from tech import cell_properties as props
from globals import OPTS
import logical_effort
@ -19,8 +20,12 @@ class sense_amp(design.design):
the technology library.
Sense amplifier to read a pair of bit-lines.
"""
pin_names = ["bl", "br", "dout", "en", "vdd", "gnd"]
pin_names = [props.sense_amp.pin.bl,
props.sense_amp.pin.br,
props.sense_amp.pin.dout,
props.sense_amp.pin.en,
props.sense_amp.pin.vdd,
props.sense_amp.pin.gnd]
type_list = ["INPUT", "INPUT", "OUTPUT", "INPUT", "POWER", "GROUND"]
if not OPTS.netlist_only:
(width,height) = utils.get_libcell_size("sense_amp", GDS["unit"], layer["boundary"])
@ -30,18 +35,18 @@ class sense_amp(design.design):
pin_map = []
def get_bl_names(self):
return "bl"
return props.sense_amp.pin.bl
def get_br_names(self):
return "br"
return props.sense_amp.pin.br
@property
def dout_name(self):
return "dout"
return props.sense_amp.pin.dout
@property
def en_name(self):
return "en"
return props.sense_amp.pin.en
def __init__(self, name):
design.design.__init__(self, name)

View File

@ -34,11 +34,11 @@ class sense_amp_array(design.design):
self.create_layout()
def get_bl_name(self):
bl_name = self.amp.get_bl_names()
bl_name = "bl"
return bl_name
def get_br_name(self):
br_name = self.amp.get_br_names()
br_name = "br"
return br_name
@property