diff --git a/compiler/options.py b/compiler/options.py index 976595ad..d229b96e 100644 --- a/compiler/options.py +++ b/compiler/options.py @@ -58,7 +58,7 @@ class options(optparse.Values): delay_chain_stages = 9 delay_chain_fanout_per_stage = 4 - + accuracy_requirement = 0.75 ################### # Debug options. diff --git a/compiler/pgates/pgate.py b/compiler/pgates/pgate.py index 80a568fc..7f834fc4 100644 --- a/compiler/pgates/pgate.py +++ b/compiler/pgates/pgate.py @@ -15,7 +15,7 @@ from vector import vector from globals import OPTS if(OPTS.tech_name == "sky130"): - from tech import nmos_bins, pmos_bins, accuracy_requirement + from tech import nmos_bins, pmos_bins class pgate(design.design): @@ -372,7 +372,7 @@ class pgate(design.design): select = -1 for i in reversed(range(0, len(scaled_bins))): - if abs(target_width - scaled_bins[i])/target_width <= 1-accuracy_requirement: + if abs(target_width - scaled_bins[i])/target_width <= 1-OPTS.accuracy_requirement: select = i break if select == -1: diff --git a/compiler/pgates/pinv.py b/compiler/pgates/pinv.py index 1429e0c8..8b512e72 100644 --- a/compiler/pgates/pinv.py +++ b/compiler/pgates/pinv.py @@ -20,7 +20,7 @@ from sram_factory import factory from errors import drc_error if(OPTS.tech_name == "sky130"): - from tech import nmos_bins, pmos_bins, accuracy_requirement + from tech import nmos_bins, pmos_bins class pinv(pgate.pgate): @@ -169,13 +169,13 @@ class pinv(pgate.pgate): valid_pmos = [] for bin in pmos_bins: - if abs(self.bin_accuracy(self.pmos_width, bin[0])) > accuracy_requirement and abs(self.bin_accuracy(self.pmos_width, bin[0])) <= 1: + if abs(self.bin_accuracy(self.pmos_width, bin[0])) > OPTS.accuracy_requirement and abs(self.bin_accuracy(self.pmos_width, bin[0])) <= 1: valid_pmos.append(bin) valid_pmos.sort(key = operator.itemgetter(1)) valid_nmos = [] for bin in nmos_bins: - if abs(self.bin_accuracy(self.nmos_width, bin[0])) > accuracy_requirement and abs(self.bin_accuracy(self.nmos_width, bin[0])) <= 1: + if abs(self.bin_accuracy(self.nmos_width, bin[0])) > OPTS.accuracy_requirement and abs(self.bin_accuracy(self.nmos_width, bin[0])) <= 1: valid_nmos.append(bin) valid_nmos.sort(key = operator.itemgetter(1)) diff --git a/compiler/pgates/pinv_dec.py b/compiler/pgates/pinv_dec.py index 3960f1bf..3ce6ad80 100644 --- a/compiler/pgates/pinv_dec.py +++ b/compiler/pgates/pinv_dec.py @@ -14,7 +14,7 @@ from globals import OPTS from sram_factory import factory if(OPTS.tech_name == "sky130"): - from tech import nmos_bins, pmos_bins, accuracy_requirement + from tech import nmos_bins, pmos_bins class pinv_dec(pinv.pinv):