diff --git a/src/cheatsheets/Digitaltechnik.typ b/src/cheatsheets/Digitaltechnik.typ index 3fb426a..872889e 100644 --- a/src/cheatsheets/Digitaltechnik.typ +++ b/src/cheatsheets/Digitaltechnik.typ @@ -1,6 +1,7 @@ #import "../lib/common_rewrite.typ" : * #import "@preview/mannot:0.3.1" #import "@preview/cetz:0.4.2" +#import "@preview/zap:0.5.0" #show math.integral: it => math.limits(math.integral) #show math.sum: it => math.limits(math.sum) @@ -25,6 +26,9 @@ ], ) +#let pTypeFill = rgb("#dd5959"); +#let nTypeFill = rgb("#5997dd"); + #place(top+center, scope: "parent", float: true, heading( [Digitaltechnik] )) @@ -173,18 +177,118 @@ *KDNF:* Kanonische DNF\ *KKNF:* Kanonische KNF + *DMF:* Disjunktive #underline("Minimal")-Form: \ + $ --> LNot(x_0)x_1 + LNot(x_1)$\ + + *KMF:* Konjunktive #underline("Minimal")-Form: \ + $ --> (LNot(x_0) + x_1) dot LNot(x_1)$ + $f(underline(x)) -->$ *KKNF* / *KDNF* mit Boolsche Expansion ] + // Dotierung + #bgBlock(fill: colorRealsierung)[ + #table( + columns: (auto, 1fr), + [N-Type], + [ + - Dotierung: Phosphor (V) + - Negative Ladgunsträger ($e^-$) + - mehr Elektron als Si + ], + [P-Type], + [ + - Dotierung: Bor (III) + - Postive Landsträger (Löcher) + - mehr Löcher als Si + ] + ) + + #zap.circuit({ + import cetz.draw : * + import zap : * + + diode("A", (0,1.7), (3,1.7), fill: black, i: (content: $i_d$, anchor: "south")) + + + rect((0,0),(1,1), fill: pTypeFill, stroke: none) + rect((2,0),(3,1), fill: nTypeFill, stroke: none) + rect((1,0), (1.5,1), fill: color.lighten(pTypeFill, 50%), stroke: none) + rect((1.5,0), (2,1), fill: color.lighten(nTypeFill, 50%), stroke: none) + line((2, 0), (2, 1), stroke: (dash: "dotted")) + line((1, 0), (1, 1), stroke: (dash: "dotted")) + line((1.5, 0), (1.5, 1), stroke: (dash: "densely-dotted")) + + cetz.decorations.brace((2,-0.1),(1,-0.1)) + content((1.5, -0.6), "RLZ") + content((2.5, 0.5), "N") + content((0.5, 0.5), "P") + content((1.25, 0.5), "-") + content((1.75, 0.5), "+") + }) + + #zap.circuit({ + import cetz.draw : * + import zap : * + rect((1.5,0),(4-1.5, 0.1), fill: rgb("#535353"), stroke: none) + rect((0,0),(4,-1), fill: pTypeFill, stroke: none) + rect((0.5,-0),(1.5, -0.5), fill: nTypeFill, stroke: none) + rect((4 - 1.5,-0),(4-0.5, -0.5), fill: nTypeFill, stroke: none) +rect((1.5,-0),(2.5, -0.5), fill: none, stroke: (paint: black, dash: "dotted", thickness: 0.06)) +< + line((3, 0.3), (3, 0)) + line((1, 0.3), (1, 0)) + line((2, 0.3), (2, 0.1)) + + cetz.decorations.brace((2.5,-0.5),(1.5,-0.5)) + content((2, -1.3), "Channel") + content((3, -0.25), "N") + content((1, -0.25), "N") + content((0.5, -0.75), "P") + + content((3, 0.5), "S") + content((1, 0.5), "D") + content((2, 0.5), "G") + }) + + #zap.circuit({ + import cetz.draw : * + import zap : * + rect((1.5,0),(4-1.5, 0.1), fill: rgb("#535353"), stroke: none) + rect((0,0),(4,-1), fill: nTypeFill, stroke: none) + rect((0.5,-0),(1.5, -0.5), fill: pTypeFill, stroke: none) + rect((4 - 1.5,-0),(4-0.5, -0.5), fill: pTypeFill, stroke: none) + rect((1.5,-0),(2.5, -0.5), fill: none, stroke: (paint: black, dash: "dotted", thickness: 0.06)) + + line((3, 0.3), (3, 0)) + line((1, 0.3), (1, 0)) + line((2, 0.3), (2, 0.1)) + + cetz.decorations.brace((2.5,-0.5),(1.5,-0.5)) + content((2, -1.3), "Channel") + content((3, -0.25), "P") + content((1, -0.25), "P") + content((0.5, -0.75), "N") + + content((3, 0.5), "S") + content((1, 0.5), "D") + content((2, 0.5), "G") + }) + ] + + + // Quine McCluskey #bgBlock(fill: colorOptimierung)[ #subHeading(fill: colorOptimierung)[Quine McCluskey] ] + // NMOS/PMOS #bgBlock(fill: colorRealsierung)[ #subHeading(fill: colorRealsierung)[NMOS/PMOS] ] + // CMOS #bgBlock(fill: colorRealsierung)[ #subHeading(fill: colorRealsierung)[CMOS Verzögerung] diff --git a/src/cheatsheets/Schaltungstheorie.typ b/src/cheatsheets/Schaltungstheorie.typ index cff3727..b208331 100644 --- a/src/cheatsheets/Schaltungstheorie.typ +++ b/src/cheatsheets/Schaltungstheorie.typ @@ -804,7 +804,7 @@ columns: (auto, auto, auto, auto), inset: 2mm, align: horizon, - table.header([], [*Ein-Tor*], [*Zwei-Tor*], [*Complex AC*]), + table.header([], [*Ein-Tor*], [*Zwei-Tor*], [*Reaktive Elemente*]), [*passiv*\ (nimmt Energie auf)\ $not$aktiv], [$forall (u,i) in cal(F): u dot i >= 0$], [