From 76256a2f1bc2587fd9cc6554754d657772b67941 Mon Sep 17 00:00:00 2001 From: Bastian Koppelmann Date: Mon, 17 Feb 2020 14:27:35 +0100 Subject: [PATCH] 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 --- compiler/base/custom_cell_properties.py | 9 ++++++++- compiler/modules/sense_amp.py | 17 +++++++++++------ compiler/modules/sense_amp_array.py | 4 ++-- 3 files changed, 21 insertions(+), 9 deletions(-) diff --git a/compiler/base/custom_cell_properties.py b/compiler/base/custom_cell_properties.py index 04d27379..ba671279 100644 --- a/compiler/base/custom_cell_properties.py +++ b/compiler/base/custom_cell_properties.py @@ -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 diff --git a/compiler/modules/sense_amp.py b/compiler/modules/sense_amp.py index 0318d7bc..ff5638ba 100644 --- a/compiler/modules/sense_amp.py +++ b/compiler/modules/sense_amp.py @@ -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) diff --git a/compiler/modules/sense_amp_array.py b/compiler/modules/sense_amp_array.py index 452c0767..322cc1b3 100644 --- a/compiler/modules/sense_amp_array.py +++ b/compiler/modules/sense_amp_array.py @@ -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