From 5b8a5d9785131ca27ffa802f2f9fd6a860189ad8 Mon Sep 17 00:00:00 2001 From: hneemann Date: Thu, 23 Feb 2017 12:20:09 +0100 Subject: [PATCH] improved fet shape including bulk connection --- .../digital/draw/shapes/NFETShape.java | 9 +- .../digital/draw/shapes/PFETShape.java | 11 +- src/test/resources/dig/test/fet/and.dig | 102 ++++++++---------- 3 files changed, 60 insertions(+), 62 deletions(-) diff --git a/src/main/java/de/neemann/digital/draw/shapes/NFETShape.java b/src/main/java/de/neemann/digital/draw/shapes/NFETShape.java index dc885e9f2..550e09e67 100644 --- a/src/main/java/de/neemann/digital/draw/shapes/NFETShape.java +++ b/src/main/java/de/neemann/digital/draw/shapes/NFETShape.java @@ -60,12 +60,15 @@ public class NFETShape implements Shape { .add(x1, SIZE * 2) .add(x1, SIZE * 2 - SIZE2 + g), Style.NORMAL); - graphic.drawLine(new Vector(SIZE2 + 3, SIZE), new Vector(SIZE + 2, SIZE), Style.THIN); + graphic.drawPolygon(new Polygon(false) + .add(SIZE2 + 3, SIZE) + .add(SIZE, SIZE) + .add(SIZE, SIZE * 2), Style.THIN); graphic.drawPolygon(new Polygon(true) .add(x1 + 4, SIZE) - .add(SIZE, SIZE - SIZE2 / 3) - .add(SIZE, SIZE + SIZE2 / 3), Style.THIN_FILLED); + .add(SIZE - SIZE2 / 3, SIZE - SIZE2 / 4) + .add(SIZE - SIZE2 / 3, SIZE + SIZE2 / 4), Style.THIN_FILLED); graphic.drawLine(new Vector(x1, SIZE2 + g), new Vector(x1, SIZE + SIZE2 - g), Style.NORMAL); diff --git a/src/main/java/de/neemann/digital/draw/shapes/PFETShape.java b/src/main/java/de/neemann/digital/draw/shapes/PFETShape.java index 54220a376..e69281423 100644 --- a/src/main/java/de/neemann/digital/draw/shapes/PFETShape.java +++ b/src/main/java/de/neemann/digital/draw/shapes/PFETShape.java @@ -60,12 +60,15 @@ public class PFETShape implements Shape { .add(x1, SIZE * 2) .add(x1, SIZE * 2 - SIZE2 + g), Style.NORMAL); - graphic.drawLine(new Vector(x1, SIZE), new Vector(SIZE - 2, SIZE), Style.THIN); + graphic.drawPolygon(new Polygon(false) + .add(x1, SIZE) + .add(SIZE, SIZE) + .add(SIZE, 0), Style.THIN); graphic.drawPolygon(new Polygon(true) - .add(SIZE, SIZE) - .add(x1 + 4, SIZE - SIZE2 / 3) - .add(x1 + 4, SIZE + SIZE2 / 3), Style.THIN_FILLED); + .add(SIZE-SIZE2/3, SIZE) + .add(x1 + 4, SIZE - SIZE2 / 4) + .add(x1 + 4, SIZE + SIZE2 / 4), Style.THIN_FILLED); graphic.drawLine(new Vector(x1, SIZE2 + g), new Vector(x1, SIZE + SIZE2 - g), Style.NORMAL); diff --git a/src/test/resources/dig/test/fet/and.dig b/src/test/resources/dig/test/fet/and.dig index 85c63cf0e..e20009676 100644 --- a/src/test/resources/dig/test/fet/and.dig +++ b/src/test/resources/dig/test/fet/and.dig @@ -5,7 +5,7 @@ VDD - + In @@ -30,7 +30,7 @@ NFET - + PFET @@ -40,7 +40,7 @@ Ground - + Testcase @@ -72,12 +72,12 @@ B - + NFET - + PFET @@ -98,10 +98,6 @@ - - - - @@ -114,23 +110,27 @@ - + - - - - - + - + + + + + + + + + @@ -140,54 +140,26 @@ - - - - - + - - - - - + - + - - - - - - - - - - - - - - - - - - - - @@ -220,6 +192,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -228,13 +228,5 @@ - - - - - - - - \ No newline at end of file