From 313e06d2af025f353a481eb64a3bf25d9274d805 Mon Sep 17 00:00:00 2001 From: Matt Guthaus Date: Mon, 29 Jan 2018 15:53:22 -0800 Subject: [PATCH] Fix pwell contact in column mux to have layers for Magic. --- compiler/single_level_column_mux.py | 25 +++---------------------- 1 file changed, 3 insertions(+), 22 deletions(-) diff --git a/compiler/single_level_column_mux.py b/compiler/single_level_column_mux.py index 0f9beee5..373aaee0 100644 --- a/compiler/single_level_column_mux.py +++ b/compiler/single_level_column_mux.py @@ -152,7 +152,6 @@ class single_level_column_mux(design.design): def add_wells(self): """ Add a well and implant over the whole cell. Also, add the pwell contact (if it exists) """ - # find right most gnd rail gnd_pins = self.bitcell.get_pins("gnd") @@ -167,26 +166,8 @@ class single_level_column_mux(design.design): offset=m1m2_offset) active_offset = right_gnd.bc() + vector(0,0.5*self.nmos.poly_height) self.add_via_center(layers=("active", "contact", "metal1"), - offset=active_offset) + offset=active_offset, + implant_type="p", + well_type="p") - # implant must surround the active area - active_correct = vector(contact.well.width,contact.well.height).scale(0.5,0.5) - offset_implant = active_offset - vector([drc["implant_to_contact"]]*2) - active_correct - implant_width = 2*drc["implant_to_contact"] + contact.well.width - implant_height = 2*drc["implant_to_contact"] + contact.well.height - self.add_rect(layer="pimplant", - offset=offset_implant, - width=implant_width, - height=implant_height) - - # Add a well around the whole cell - if info["has_pwell"]: - self.add_rect(layer="pwell", - offset=vector(0,0), - width=self.width + contact.well.width + drc["well_enclosure_active"], - height=self.height) - self.add_rect(layer="vtg", - offset=vector(0,0), - width=self.width + contact.well.width, - height=self.height)