From 24546461addeebe03963be5a238ff775cb7531db Mon Sep 17 00:00:00 2001 From: Matt Guthaus Date: Tue, 17 Dec 2019 11:23:59 -0800 Subject: [PATCH] Fix over-writing of active spacing rule. --- compiler/base/design.py | 44 ++++++++++++++++--------------- technology/freepdk45/tech/tech.py | 5 ++-- 2 files changed, 25 insertions(+), 24 deletions(-) diff --git a/compiler/base/design.py b/compiler/base/design.py index 3b6ae914..2b11111d 100644 --- a/compiler/base/design.py +++ b/compiler/base/design.py @@ -81,27 +81,29 @@ class design(hierarchy_design): setattr(self, match.group(0), drc(match.group(0))) # These are for debugging previous manual rules - # print("poly_width", self.poly_width) - # print("poly_space", self.poly_space) - # print("m1_width", self.m1_width) - # print("m1_space", self.m1_space) - # print("m2_width", self.m2_width) - # print("m2_space", self.m2_space) - # print("m3_width", self.m3_width) - # print("m3_space", self.m3_space) - # print("m4_width", self.m4_width) - # print("m4_space", self.m4_space) - # print("active_width", self.active_width) - # print("active_space", self.active_space) - # print("contact_width", self.contact_width) - # print("poly_to_active", self.poly_to_active) - # print("poly_extend_active", self.poly_extend_active) - # print("poly_to_contact", self.poly_to_contact) - # print("contact_to_gate", self.contact_to_gate) - # print("well_enclose_active", self.well_enclose_active) - # print("implant_enclose_active", self.implant_enclose_active) - # print("implant_space", self.implant_space) - + if False: + print("poly_width", self.poly_width) + print("poly_space", self.poly_space) + print("m1_width", self.m1_width) + print("m1_space", self.m1_space) + print("m2_width", self.m2_width) + print("m2_space", self.m2_space) + print("m3_width", self.m3_width) + print("m3_space", self.m3_space) + print("m4_width", self.m4_width) + print("m4_space", self.m4_space) + print("active_width", self.active_width) + print("active_space", self.active_space) + print("contact_width", self.contact_width) + print("poly_to_active", self.poly_to_active) + print("poly_extend_active", self.poly_extend_active) + print("poly_to_contact", self.poly_to_contact) + print("contact_to_gate", self.contact_to_gate) + print("well_enclose_active", self.well_enclose_active) + print("implant_enclose_active", self.implant_enclose_active) + print("implant_space", self.implant_space) + import sys; sys.exit(1) + def setup_multiport_constants(self): """ These are contants and lists that aid multiport design. diff --git a/technology/freepdk45/tech/tech.py b/technology/freepdk45/tech/tech.py index 78b031c4..d87e98f1 100644 --- a/technology/freepdk45/tech/tech.py +++ b/technology/freepdk45/tech/tech.py @@ -152,12 +152,11 @@ drc["poly_to_field_poly"] = 0.075 # Not a rule drc["minarea_poly"] = 0.0 -# ACTIVE.2 Minimum spacing of active -drc["active_to_active"] = 0.08 # ACTIVE.1 Minimum width of active +# ACTIVE.2 Minimum spacing of active drc.add_layer("active", width = 0.09, - spacing = 0) + spacing = 0.08) # ACTIVE.3 Minimum enclosure/spacing of nwell/pwell to active drc.add_enclosure("well", layer = "active",