improved fet shape including bulk connection

This commit is contained in:
hneemann 2017-02-23 12:20:09 +01:00
parent b87b0b52ab
commit 5b8a5d9785
3 changed files with 60 additions and 62 deletions

View File

@ -60,12 +60,15 @@ public class NFETShape implements Shape {
.add(x1, SIZE * 2) .add(x1, SIZE * 2)
.add(x1, SIZE * 2 - SIZE2 + g), Style.NORMAL); .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) graphic.drawPolygon(new Polygon(true)
.add(x1 + 4, SIZE) .add(x1 + 4, SIZE)
.add(SIZE, SIZE - SIZE2 / 3) .add(SIZE - SIZE2 / 3, SIZE - SIZE2 / 4)
.add(SIZE, SIZE + SIZE2 / 3), Style.THIN_FILLED); .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); graphic.drawLine(new Vector(x1, SIZE2 + g), new Vector(x1, SIZE + SIZE2 - g), Style.NORMAL);

View File

@ -60,12 +60,15 @@ public class PFETShape implements Shape {
.add(x1, SIZE * 2) .add(x1, SIZE * 2)
.add(x1, SIZE * 2 - SIZE2 + g), Style.NORMAL); .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) graphic.drawPolygon(new Polygon(true)
.add(SIZE, SIZE) .add(SIZE-SIZE2/3, SIZE)
.add(x1 + 4, SIZE - SIZE2 / 3) .add(x1 + 4, SIZE - SIZE2 / 4)
.add(x1 + 4, SIZE + SIZE2 / 3), Style.THIN_FILLED); .add(x1 + 4, SIZE + SIZE2 / 4), Style.THIN_FILLED);
graphic.drawLine(new Vector(x1, SIZE2 + g), new Vector(x1, SIZE + SIZE2 - g), Style.NORMAL); graphic.drawLine(new Vector(x1, SIZE2 + g), new Vector(x1, SIZE + SIZE2 - g), Style.NORMAL);

View File

@ -5,7 +5,7 @@
<visualElement> <visualElement>
<elementName>VDD</elementName> <elementName>VDD</elementName>
<elementAttributes/> <elementAttributes/>
<pos x="240" y="220"/> <pos x="220" y="220"/>
</visualElement> </visualElement>
<visualElement> <visualElement>
<elementName>In</elementName> <elementName>In</elementName>
@ -30,7 +30,7 @@
<visualElement> <visualElement>
<elementName>NFET</elementName> <elementName>NFET</elementName>
<elementAttributes/> <elementAttributes/>
<pos x="220" y="400"/> <pos x="200" y="400"/>
</visualElement> </visualElement>
<visualElement> <visualElement>
<elementName>PFET</elementName> <elementName>PFET</elementName>
@ -40,7 +40,7 @@
<visualElement> <visualElement>
<elementName>Ground</elementName> <elementName>Ground</elementName>
<elementAttributes/> <elementAttributes/>
<pos x="240" y="540"/> <pos x="220" y="540"/>
</visualElement> </visualElement>
<visualElement> <visualElement>
<elementName>Testcase</elementName> <elementName>Testcase</elementName>
@ -72,12 +72,12 @@
<string>B</string> <string>B</string>
</entry> </entry>
</elementAttributes> </elementAttributes>
<pos x="140" y="340"/> <pos x="140" y="460"/>
</visualElement> </visualElement>
<visualElement> <visualElement>
<elementName>NFET</elementName> <elementName>NFET</elementName>
<elementAttributes/> <elementAttributes/>
<pos x="220" y="460"/> <pos x="200" y="460"/>
</visualElement> </visualElement>
<visualElement> <visualElement>
<elementName>PFET</elementName> <elementName>PFET</elementName>
@ -98,10 +98,6 @@
<wires> <wires>
<wire> <wire>
<p1 x="220" y="240"/> <p1 x="220" y="240"/>
<p2 x="240" y="240"/>
</wire>
<wire>
<p1 x="240" y="240"/>
<p2 x="260" y="240"/> <p2 x="260" y="240"/>
</wire> </wire>
<wire> <wire>
@ -114,23 +110,27 @@
</wire> </wire>
<wire> <wire>
<p1 x="160" y="500"/> <p1 x="160" y="500"/>
<p2 x="220" y="500"/> <p2 x="200" y="500"/>
</wire> </wire>
<wire> <wire>
<p1 x="180" y="260"/> <p1 x="180" y="260"/>
<p2 x="200" y="260"/> <p2 x="200" y="260"/>
</wire> </wire>
<wire> <wire>
<p1 x="140" y="340"/> <p1 x="220" y="520"/>
<p2 x="160" y="340"/>
</wire>
<wire>
<p1 x="240" y="520"/>
<p2 x="340" y="520"/> <p2 x="340" y="520"/>
</wire> </wire>
<wire> <wire>
<p1 x="180" y="440"/> <p1 x="180" y="440"/>
<p2 x="220" y="440"/> <p2 x="200" y="440"/>
</wire>
<wire>
<p1 x="140" y="460"/>
<p2 x="160" y="460"/>
</wire>
<wire>
<p1 x="300" y="460"/>
<p2 x="320" y="460"/>
</wire> </wire>
<wire> <wire>
<p1 x="300" y="300"/> <p1 x="300" y="300"/>
@ -140,54 +140,26 @@
<p1 x="140" y="300"/> <p1 x="140" y="300"/>
<p2 x="180" y="300"/> <p2 x="180" y="300"/>
</wire> </wire>
<wire>
<p1 x="220" y="380"/>
<p2 x="240" y="380"/>
</wire>
<wire> <wire>
<p1 x="340" y="380"/> <p1 x="340" y="380"/>
<p2 x="360" y="380"/> <p2 x="360" y="380"/>
</wire> </wire>
<wire> <wire>
<p1 x="240" y="380"/> <p1 x="220" y="380"/>
<p2 x="260" y="380"/> <p2 x="260" y="380"/>
</wire> </wire>
<wire> <wire>
<p1 x="260" y="380"/> <p1 x="260" y="380"/>
<p2 x="300" y="380"/> <p2 x="300" y="380"/>
</wire> </wire>
<wire>
<p1 x="300" y="460"/>
<p2 x="320" y="460"/>
</wire>
<wire> <wire>
<p1 x="160" y="320"/> <p1 x="160" y="320"/>
<p2 x="160" y="340"/> <p2 x="160" y="460"/>
</wire> </wire>
<wire> <wire>
<p1 x="160" y="340"/> <p1 x="160" y="460"/>
<p2 x="160" y="500"/> <p2 x="160" y="500"/>
</wire> </wire>
<wire>
<p1 x="240" y="220"/>
<p2 x="240" y="240"/>
</wire>
<wire>
<p1 x="240" y="440"/>
<p2 x="240" y="460"/>
</wire>
<wire>
<p1 x="240" y="500"/>
<p2 x="240" y="520"/>
</wire>
<wire>
<p1 x="240" y="380"/>
<p2 x="240" y="400"/>
</wire>
<wire>
<p1 x="240" y="520"/>
<p2 x="240" y="540"/>
</wire>
<wire> <wire>
<p1 x="340" y="240"/> <p1 x="340" y="240"/>
<p2 x="340" y="300"/> <p2 x="340" y="300"/>
@ -220,6 +192,34 @@
<p1 x="260" y="360"/> <p1 x="260" y="360"/>
<p2 x="260" y="380"/> <p2 x="260" y="380"/>
</wire> </wire>
<wire>
<p1 x="220" y="220"/>
<p2 x="220" y="240"/>
</wire>
<wire>
<p1 x="220" y="300"/>
<p2 x="220" y="380"/>
</wire>
<wire>
<p1 x="220" y="500"/>
<p2 x="220" y="520"/>
</wire>
<wire>
<p1 x="220" y="440"/>
<p2 x="220" y="460"/>
</wire>
<wire>
<p1 x="220" y="240"/>
<p2 x="220" y="260"/>
</wire>
<wire>
<p1 x="220" y="380"/>
<p2 x="220" y="400"/>
</wire>
<wire>
<p1 x="220" y="520"/>
<p2 x="220" y="540"/>
</wire>
<wire> <wire>
<p1 x="300" y="300"/> <p1 x="300" y="300"/>
<p2 x="300" y="380"/> <p2 x="300" y="380"/>
@ -228,13 +228,5 @@
<p1 x="300" y="380"/> <p1 x="300" y="380"/>
<p2 x="300" y="460"/> <p2 x="300" y="460"/>
</wire> </wire>
<wire>
<p1 x="220" y="240"/>
<p2 x="220" y="260"/>
</wire>
<wire>
<p1 x="220" y="300"/>
<p2 x="220" y="380"/>
</wire>
</wires> </wires>
</circuit> </circuit>