Add source/drain/gate to structure

This commit is contained in:
mrg 2020-02-28 18:23:36 +00:00
parent 266d68c395
commit 073bd47b31
1 changed files with 24 additions and 7 deletions

View File

@ -293,6 +293,7 @@ class ptx(design.design):
# poly_positions are the bottom center of the poly gates
self.poly_positions = []
self.poly_gates = []
# It is important that these are from left to right,
# so that the pins are in the right
@ -304,12 +305,14 @@ class ptx(design.design):
offset=poly_offset,
height=self.poly_height,
width=self.poly_width)
self.add_layout_pin_rect_center(text="G",
gate = self.add_layout_pin_rect_center(text="G",
layer="poly",
offset=poly_offset,
height=self.poly_height,
width=self.poly_width)
self.poly_positions.append(poly_offset)
self.poly_gates.append(gate)
poly_offset = poly_offset + vector(self.poly_pitch, 0)
if self.connect_poly:
@ -369,6 +372,10 @@ class ptx(design.design):
drain_positions = []
source_positions = []
# Keep a list of the source/drain contacts
self.source_contacts = []
self.drain_contacts = []
# First one is always a SOURCE
label = "S"
pos = self.contact_offset
@ -383,6 +390,7 @@ class ptx(design.design):
offset=pos,
width=contact.mod.second_layer_width,
height=contact.mod.second_layer_height)
self.source_contacts.append(contact)
source_positions.append(pos)
# Skip these if they are going to be in series
@ -410,6 +418,11 @@ class ptx(design.design):
width=contact.mod.second_layer_width,
height=contact.mod.second_layer_height)
if label == "S":
self.source_contacts.append(contact)
else:
self.drain_contacts.append(contact)
pos = vector(self.active_offset.x + self.active_width - 0.5 * self.active_contact.width,
self.contact_offset.y)
# Last one is the opposite of previous
@ -430,6 +443,10 @@ class ptx(design.design):
offset=pos,
width=contact.mod.second_layer_width,
height=contact.mod.second_layer_height)
if label == "S":
self.source_contacts.append(contact)
else:
self.drain_contacts.append(contact)
if self.connect_active:
self.connect_fingered_active(drain_positions, source_positions)