Skip to content

Commit

Permalink
add OUTLINE layer to tgate mux cells
Browse files Browse the repository at this point in the history
  • Loading branch information
rahulk29 committed Sep 29, 2024
1 parent 485491a commit df3fb81
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 4 deletions.
21 changes: 21 additions & 0 deletions src/blocks/tgatemux/layout.rs
Original file line number Diff line number Diff line change
Expand Up @@ -327,6 +327,9 @@ impl TGateMux {
ctx.draw_rect(nsdm, Rect::from_spans(bounds.hspan(), span));
}

let outline = layers.get(Selector::Name("outline"))?;
ctx.draw_rect(outline, ctx.brect());

Ok(())
}
}
Expand Down Expand Up @@ -437,6 +440,7 @@ fn tgate_mux_tap_layout(
let nwell = layers.get(Selector::Name("nwell"))?;
let nsdm = layers.get(Selector::Name("nsdm"))?;
let psdm = layers.get(Selector::Name("psdm"))?;
let outline = layers.get(Selector::Name("outline"))?;

// Draw n+ tap to nwell.
let viap = ViaParams::builder()
Expand Down Expand Up @@ -505,6 +509,12 @@ fn tgate_mux_tap_layout(
ctx.draw_rect(nwell, ntap_bounds);
ctx.draw_rect(nsdm, ntap_bounds);

let mux_outline = mux.layer_bbox(outline).into_rect();
ctx.draw_rect(
outline,
Rect::from_spans(ctx.brect().hspan(), mux_outline.vspan()),
);

Ok(())
}

Expand Down Expand Up @@ -594,6 +604,17 @@ impl TGateMuxGroup {
ctx.add_port(CellPort::with_shape(port_name, pc.h_metal, brm2))?;
}

let layers = ctx.layers();
let outline = layers.get(Selector::Name("outline"))?;
let mux_outline = gate.layer_bbox(outline).into_rect();
ctx.draw_rect(
outline,
Rect::from_spans(
ctx.brect().hspan(),
mux_outline.vspan().translate(tiler.translation(0).y),
),
);

Ok(())
}
}
6 changes: 2 additions & 4 deletions src/blocks/wrdriver/schematic.rs
Original file line number Diff line number Diff line change
@@ -1,9 +1,7 @@
use substrate::schematic::circuit::Direction;

use crate::blocks::{
delay_line::tristate::TristateInv,
gate::{And2, AndParams, PrimitiveGateParams},
};
use crate::blocks::delay_line::tristate::TristateInv;
use crate::blocks::gate::{And2, AndParams, PrimitiveGateParams};

use super::WriteDriver;

Expand Down

0 comments on commit df3fb81

Please sign in to comment.