From 37f2ddffe8e8d6141b1abebbdd0bfe49fd174b3f Mon Sep 17 00:00:00 2001 From: Tim Edwards Date: Sun, 7 Apr 2024 10:42:59 -0400 Subject: [PATCH] Modified the deep nwell generation routine to draw the nwell boundary in four separate rectangles, because the method of drawing nwell over the area and erasing from the center causes unexpected/unwanted interactions with any existing layout in the center of the deep nwell region. --- VERSION | 2 +- sky130/magic/sky130.tcl | 33 +++++++++++++++++++++++++++++++-- 2 files changed, 32 insertions(+), 3 deletions(-) diff --git a/VERSION b/VERSION index 81b2e4af..c2126aa9 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.0.474 +1.0.475 diff --git a/sky130/magic/sky130.tcl b/sky130/magic/sky130.tcl index c4d85172..48cec26a 100644 --- a/sky130/magic/sky130.tcl +++ b/sky130/magic/sky130.tcl @@ -549,9 +549,38 @@ proc sky130::deep_nwell_draw {} { pushbox pushbox box grow c 0.4um + # Note: Previous implementation was to draw nwell over the whole + # area and then erase it from the center. That can interact with + # any layout already drawn in the center area. Instead, draw four + # separate rectangles. + # ----------------- + # paint nwell + # box grow c -1.43um + # erase nwell + # ----------------- + pushbox + box width 1.43um + paint nwell + popbox + pushbox + box height 1.43um + paint nwell + popbox + pushbox + box move n ${h}um + box move n 0.8um + box move s 1.43um + box height 1.43um + paint nwell + popbox + pushbox + box move e ${w}um + box move e 0.8um + box move w 1.43um + box width 1.43um paint nwell - box grow c -1.43um - erase nwell + popbox + popbox box grow c 0.03um